@payscore/web-widget-sdk 1.1.0 → 1.3.0

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.
package/dist/index.d.mts CHANGED
@@ -10,13 +10,30 @@ declare enum PayscoreWidgetEventType {
10
10
  IncomeVerificationLoaded = "payscore/incomeVerification/loaded",
11
11
  IncomeVerificationStarted = "payscore/incomeVerification/started",
12
12
  IncomeVerificationCompleted = "payscore/incomeVerification/completed",
13
- WidgetClosed = "payscore/incomeVerification/widgetClosed"
13
+ WidgetClosed = "payscore/incomeVerification/widgetClosed",
14
+ InstitutionConnected = "payscore/incomeVerification/institutionConnected",
15
+ DocumentUploaded = "payscore/incomeVerification/documentUploaded",
16
+ InstitutionSelected = "payscore/incomeVerification/institutionSelected"
17
+ }
18
+ declare enum IncomeVerificationMethod {
19
+ Bank = "bank",
20
+ Payroll = "payroll",
21
+ DocumentUpload = "document_upload"
14
22
  }
15
23
  type PayscoreEnvironment = 'staging' | 'production';
24
+ interface InstitutionConnectedPayload {
25
+ institution: string;
26
+ }
27
+ interface InstitutionSelectedPayload {
28
+ institution: string;
29
+ }
30
+ type PayscoreEventPayload<T extends PayscoreWidgetEventType> = T extends PayscoreWidgetEventType.InstitutionConnected ? InstitutionConnectedPayload : T extends PayscoreWidgetEventType.InstitutionSelected ? InstitutionSelectedPayload : undefined;
16
31
  interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {
17
32
  type: T;
18
33
  timestamp: string;
19
34
  payscore: true;
35
+ methods: IncomeVerificationMethod[];
36
+ payload: PayscoreEventPayload<T>;
20
37
  }
21
38
  interface PayscoreWidgetOptions {
22
39
  hideCloseButton?: boolean;
@@ -43,4 +60,4 @@ declare class IncomeVerificationWidget {
43
60
  private removeListener;
44
61
  }
45
62
 
46
- export { IncomeVerificationWidget, type PayscoreBaseEvent, type PayscoreEnvironment, type PayscoreWidgetConfiguration, PayscoreWidgetEventType, type PayscoreWidgetOptions };
63
+ export { IncomeVerificationMethod, IncomeVerificationWidget, type InstitutionConnectedPayload, type InstitutionSelectedPayload, type PayscoreBaseEvent, type PayscoreEnvironment, type PayscoreEventPayload, type PayscoreWidgetConfiguration, PayscoreWidgetEventType, type PayscoreWidgetOptions };
package/dist/index.d.ts CHANGED
@@ -10,13 +10,30 @@ declare enum PayscoreWidgetEventType {
10
10
  IncomeVerificationLoaded = "payscore/incomeVerification/loaded",
11
11
  IncomeVerificationStarted = "payscore/incomeVerification/started",
12
12
  IncomeVerificationCompleted = "payscore/incomeVerification/completed",
13
- WidgetClosed = "payscore/incomeVerification/widgetClosed"
13
+ WidgetClosed = "payscore/incomeVerification/widgetClosed",
14
+ InstitutionConnected = "payscore/incomeVerification/institutionConnected",
15
+ DocumentUploaded = "payscore/incomeVerification/documentUploaded",
16
+ InstitutionSelected = "payscore/incomeVerification/institutionSelected"
17
+ }
18
+ declare enum IncomeVerificationMethod {
19
+ Bank = "bank",
20
+ Payroll = "payroll",
21
+ DocumentUpload = "document_upload"
14
22
  }
15
23
  type PayscoreEnvironment = 'staging' | 'production';
24
+ interface InstitutionConnectedPayload {
25
+ institution: string;
26
+ }
27
+ interface InstitutionSelectedPayload {
28
+ institution: string;
29
+ }
30
+ type PayscoreEventPayload<T extends PayscoreWidgetEventType> = T extends PayscoreWidgetEventType.InstitutionConnected ? InstitutionConnectedPayload : T extends PayscoreWidgetEventType.InstitutionSelected ? InstitutionSelectedPayload : undefined;
16
31
  interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {
17
32
  type: T;
18
33
  timestamp: string;
19
34
  payscore: true;
35
+ methods: IncomeVerificationMethod[];
36
+ payload: PayscoreEventPayload<T>;
20
37
  }
21
38
  interface PayscoreWidgetOptions {
22
39
  hideCloseButton?: boolean;
@@ -43,4 +60,4 @@ declare class IncomeVerificationWidget {
43
60
  private removeListener;
44
61
  }
45
62
 
46
- export { IncomeVerificationWidget, type PayscoreBaseEvent, type PayscoreEnvironment, type PayscoreWidgetConfiguration, PayscoreWidgetEventType, type PayscoreWidgetOptions };
63
+ export { IncomeVerificationMethod, IncomeVerificationWidget, type InstitutionConnectedPayload, type InstitutionSelectedPayload, type PayscoreBaseEvent, type PayscoreEnvironment, type PayscoreEventPayload, type PayscoreWidgetConfiguration, PayscoreWidgetEventType, type PayscoreWidgetOptions };
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // style-loader:src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
+ IncomeVerificationMethod: () => IncomeVerificationMethod,
23
24
  IncomeVerificationWidget: () => IncomeVerificationWidget,
24
25
  PayscoreWidgetEventType: () => PayscoreWidgetEventType
25
26
  });
@@ -31,8 +32,17 @@ var PayscoreWidgetEventType = /* @__PURE__ */ ((PayscoreWidgetEventType2) => {
31
32
  PayscoreWidgetEventType2["IncomeVerificationStarted"] = "payscore/incomeVerification/started";
32
33
  PayscoreWidgetEventType2["IncomeVerificationCompleted"] = "payscore/incomeVerification/completed";
33
34
  PayscoreWidgetEventType2["WidgetClosed"] = "payscore/incomeVerification/widgetClosed";
35
+ PayscoreWidgetEventType2["InstitutionConnected"] = "payscore/incomeVerification/institutionConnected";
36
+ PayscoreWidgetEventType2["DocumentUploaded"] = "payscore/incomeVerification/documentUploaded";
37
+ PayscoreWidgetEventType2["InstitutionSelected"] = "payscore/incomeVerification/institutionSelected";
34
38
  return PayscoreWidgetEventType2;
35
39
  })(PayscoreWidgetEventType || {});
40
+ var IncomeVerificationMethod = /* @__PURE__ */ ((IncomeVerificationMethod2) => {
41
+ IncomeVerificationMethod2["Bank"] = "bank";
42
+ IncomeVerificationMethod2["Payroll"] = "payroll";
43
+ IncomeVerificationMethod2["DocumentUpload"] = "document_upload";
44
+ return IncomeVerificationMethod2;
45
+ })(IncomeVerificationMethod || {});
36
46
 
37
47
  // src/utils.ts
38
48
  var PAYSCORE_STAGING_URL = "https://app.staging.payscore.com";
@@ -159,6 +169,7 @@ var IncomeVerificationWidget = class {
159
169
  typeof document === "object" && document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(":root {\n --payscore-container-z-index: 999999;\n}\n\n#payscore-widget-container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: var(--payscore-container-z-index);\n background-color: rgba(0, 0, 0, 0.5);\n animation: fade-in 0.5s forwards;\n}\n\n#payscore-widget {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 90%;\n height: 90%;\n border-radius: 10px;\n transform: translate(-50%, -50%) scale(0);\n background-color: #fff;\n\n @media only screen and (max-width: 1200px) {\n width: 99.5%;\n height: 99.5%;\n min-width: 99.5%;\n min-height: 99.5%;\n }\n}\n\n#payscore-widget.loaded {\n animation: zoom-in 0.5s forwards;\n}\n\n#payscore-loading-spinner {\n position: absolute;\n top: calc(40% - 104px);\n left: calc(50% - 104px);\n width: 200px;\n height: 200px;\n padding: 8px;\n aspect-ratio: 1;\n border-radius: 50%;\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: loading-spin 1s infinite linear;\n\n background-color: #014ffa;\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes zoom-in {\n from {\n transform: translate(-50%, -50%) scale(0);\n }\n to {\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n@keyframes loading-spin {\n to {\n transform: rotate(1turn);\n }\n}\n"));
160
170
  // Annotate the CommonJS export names for ESM import in node:
161
171
  0 && (module.exports = {
172
+ IncomeVerificationMethod,
162
173
  IncomeVerificationWidget,
163
174
  PayscoreWidgetEventType
164
175
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["style-loader:src/index.ts","../src/types/index.ts","../src/utils.ts","../src/widgets.ts"],"sourcesContent":["typeof document === 'object' &&document.head.appendChild(document.createElement('style')).appendChild(document.createTextNode(\":root {\\n --payscore-container-z-index: 999999;\\n}\\n\\n#payscore-widget-container {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: var(--payscore-container-z-index);\\n background-color: rgba(0, 0, 0, 0.5);\\n animation: fade-in 0.5s forwards;\\n}\\n\\n#payscore-widget {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 90%;\\n height: 90%;\\n border-radius: 10px;\\n transform: translate(-50%, -50%) scale(0);\\n background-color: #fff;\\n\\n @media only screen and (max-width: 1200px) {\\n width: 99.5%;\\n height: 99.5%;\\n min-width: 99.5%;\\n min-height: 99.5%;\\n }\\n}\\n\\n#payscore-widget.loaded {\\n animation: zoom-in 0.5s forwards;\\n}\\n\\n#payscore-loading-spinner {\\n position: absolute;\\n top: calc(40% - 104px);\\n left: calc(50% - 104px);\\n width: 200px;\\n height: 200px;\\n padding: 8px;\\n aspect-ratio: 1;\\n border-radius: 50%;\\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\\n -webkit-mask-composite: source-out;\\n mask-composite: subtract;\\n animation: loading-spin 1s infinite linear;\\n\\n background-color: #014ffa;\\n}\\n\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes zoom-in {\\n from {\\n transform: translate(-50%, -50%) scale(0);\\n }\\n to {\\n transform: translate(-50%, -50%) scale(1);\\n }\\n}\\n\\n@keyframes loading-spin {\\n to {\\n transform: rotate(1turn);\\n }\\n}\\n\"))\nexport * from './types/index';\nexport { IncomeVerificationWidget } from './widgets';\n","export interface PayscoreWidgetConfiguration {\n environment: PayscoreEnvironment;\n applicantId: string;\n testUrl?: string;\n widgetToken: string;\n options?: PayscoreWidgetOptions;\n onEvent?(event: PayscoreBaseEvent): void;\n}\n\nexport enum PayscoreWidgetEventType {\n IncomeVerificationLoaded = 'payscore/incomeVerification/loaded',\n IncomeVerificationStarted = 'payscore/incomeVerification/started',\n IncomeVerificationCompleted = 'payscore/incomeVerification/completed',\n WidgetClosed = 'payscore/incomeVerification/widgetClosed',\n}\n\nexport type PayscoreEnvironment = 'staging' | 'production';\n\nexport interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {\n type: T;\n timestamp: string;\n payscore: true;\n}\n\nexport interface PayscoreWidgetOptions {\n hideCloseButton?: boolean;\n}\n","import { PayscoreEnvironment } from './types';\nimport { Permutations } from './types/utils';\n\nexport const PAYSCORE_STAGING_URL = 'https://app.staging.payscore.com';\nexport const PAYSCORE_PRODUCTION_URL = 'https://app.payscore.com';\n\nexport const AVAILABLE_ENVIRONMENTS: Permutations<PayscoreEnvironment> = [\n 'production',\n 'staging',\n];\n","import {\n PayscoreBaseEvent,\n PayscoreEnvironment,\n PayscoreWidgetConfiguration,\n PayscoreWidgetEventType,\n PayscoreWidgetOptions,\n} from './types';\nimport { AVAILABLE_ENVIRONMENTS, PAYSCORE_PRODUCTION_URL, PAYSCORE_STAGING_URL } from './utils';\n\nconst PAYSCORE_WIDGET_ID = 'payscore-widget';\nconst PAYSCORE_WIDGET_CONTAINER_ID = 'payscore-widget-container';\nconst PAYSCORE_LOADING_SPINNER_ID = 'payscore-loading-spinner';\n\nexport class IncomeVerificationWidget {\n private environment: PayscoreEnvironment;\n private isUnmounting: boolean;\n private applicantId: string;\n private widgetToken: string;\n private testUrl?: string;\n private options?: PayscoreWidgetOptions;\n private onEvent?: (event: PayscoreBaseEvent, widget: IncomeVerificationWidget) => void;\n private windowMessageCallback: (event: MessageEvent) => void;\n\n constructor(configuration: PayscoreWidgetConfiguration) {\n const { environment, applicantId, testUrl, widgetToken, options, onEvent } = configuration;\n\n if (!environment || !AVAILABLE_ENVIRONMENTS.includes(environment)) {\n throw new Error(\n 'Invalid environment configuration for the Payscore Widget, please use either \"staging\" or \"production\" as the environment configuration.'\n );\n }\n\n if (!applicantId) {\n throw new Error(\n 'applicantId is missing from the Payscore Widget configuration. Please provide a valid applicant ID.'\n );\n }\n\n if (!widgetToken) {\n throw new Error(\n 'widgetToken is missing from the Payscore Widget configuration. Please provide a valid widget token.'\n );\n }\n\n this.environment = environment;\n this.applicantId = applicantId;\n this.testUrl = testUrl;\n this.widgetToken = widgetToken;\n this.options = options;\n this.onEvent = onEvent;\n\n this.isUnmounting = false;\n\n this.windowMessageCallback = (event: MessageEvent) => {\n this.handlePayscoreMessage(event);\n };\n }\n\n private get baseUrl(): string {\n if (!!this.testUrl) {\n return this.testUrl;\n }\n\n switch (this.environment) {\n case 'staging':\n return PAYSCORE_STAGING_URL;\n case 'production':\n return PAYSCORE_PRODUCTION_URL;\n }\n }\n\n private get widgetUrl() {\n const options = this.options ? encodeURIComponent(JSON.stringify(this.options)) : '';\n return `${this.baseUrl}/applicants/${this.applicantId}?token=${this.widgetToken}${\n options ? `&options=${options}` : ''\n }`;\n }\n\n load(): void {\n const existingWidgetContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n\n if (!!existingWidgetContainer || this.isUnmounting) {\n return;\n }\n\n this.mountIFrame();\n }\n\n unmount(): void {\n if (this.isUnmounting) {\n console.log('Widget is already unmounting');\n return;\n }\n\n this.unmountIFrame();\n }\n\n private mountIFrame(): void {\n this.setupListener();\n\n const iframe = document.createElement('iframe');\n\n iframe.setAttribute('id', PAYSCORE_WIDGET_ID);\n iframe.setAttribute('title', 'Payscore Widget');\n iframe.setAttribute('src', this.widgetUrl);\n\n iframe.addEventListener('load', () => {\n iframe.classList.add('loaded');\n const iframeContainer = iframe.parentElement;\n if (!!iframeContainer) {\n const spinner = document.getElementById(PAYSCORE_LOADING_SPINNER_ID);\n if (!!spinner) {\n iframeContainer.removeChild(spinner);\n }\n }\n });\n\n const iframeContainer = document.createElement('div');\n iframeContainer.setAttribute('id', PAYSCORE_WIDGET_CONTAINER_ID);\n\n const iframeLoadingSpinner = document.createElement('div');\n iframeLoadingSpinner.setAttribute('id', PAYSCORE_LOADING_SPINNER_ID);\n\n iframeContainer.appendChild(iframeLoadingSpinner);\n iframeContainer.appendChild(iframe);\n\n document.body.appendChild(iframeContainer);\n }\n\n private unmountIFrame(): void {\n this.isUnmounting = true;\n\n this.removeListener();\n\n const iframeContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n if (!!iframeContainer) {\n document.body.removeChild(iframeContainer);\n }\n\n this.isUnmounting = false;\n }\n\n private handlePayscoreMessage(event: MessageEvent<PayscoreBaseEvent>): void {\n if (!event.data.payscore) {\n return;\n }\n\n this.onEvent?.(event.data, this);\n\n if (event.data.type === PayscoreWidgetEventType.WidgetClosed) {\n this.unmount();\n }\n }\n\n private setupListener(): void {\n window.addEventListener('message', this.windowMessageCallback);\n }\n\n private removeListener(): void {\n window.removeEventListener('message', this.windowMessageCallback);\n }\n}\n"],"mappings":"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","names":["PayscoreWidgetEventType","iframeContainer"]}
1
+ {"version":3,"sources":["style-loader:src/index.ts","../src/types/index.ts","../src/utils.ts","../src/widgets.ts"],"sourcesContent":["typeof document === 'object' &&document.head.appendChild(document.createElement('style')).appendChild(document.createTextNode(\":root {\\n --payscore-container-z-index: 999999;\\n}\\n\\n#payscore-widget-container {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: var(--payscore-container-z-index);\\n background-color: rgba(0, 0, 0, 0.5);\\n animation: fade-in 0.5s forwards;\\n}\\n\\n#payscore-widget {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 90%;\\n height: 90%;\\n border-radius: 10px;\\n transform: translate(-50%, -50%) scale(0);\\n background-color: #fff;\\n\\n @media only screen and (max-width: 1200px) {\\n width: 99.5%;\\n height: 99.5%;\\n min-width: 99.5%;\\n min-height: 99.5%;\\n }\\n}\\n\\n#payscore-widget.loaded {\\n animation: zoom-in 0.5s forwards;\\n}\\n\\n#payscore-loading-spinner {\\n position: absolute;\\n top: calc(40% - 104px);\\n left: calc(50% - 104px);\\n width: 200px;\\n height: 200px;\\n padding: 8px;\\n aspect-ratio: 1;\\n border-radius: 50%;\\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\\n -webkit-mask-composite: source-out;\\n mask-composite: subtract;\\n animation: loading-spin 1s infinite linear;\\n\\n background-color: #014ffa;\\n}\\n\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes zoom-in {\\n from {\\n transform: translate(-50%, -50%) scale(0);\\n }\\n to {\\n transform: translate(-50%, -50%) scale(1);\\n }\\n}\\n\\n@keyframes loading-spin {\\n to {\\n transform: rotate(1turn);\\n }\\n}\\n\"))\nexport * from './types/index';\nexport { IncomeVerificationWidget } from './widgets';\n","export interface PayscoreWidgetConfiguration {\n environment: PayscoreEnvironment;\n applicantId: string;\n testUrl?: string;\n widgetToken: string;\n options?: PayscoreWidgetOptions;\n onEvent?(event: PayscoreBaseEvent): void;\n}\n\nexport enum PayscoreWidgetEventType {\n IncomeVerificationLoaded = 'payscore/incomeVerification/loaded',\n IncomeVerificationStarted = 'payscore/incomeVerification/started',\n IncomeVerificationCompleted = 'payscore/incomeVerification/completed',\n WidgetClosed = 'payscore/incomeVerification/widgetClosed',\n InstitutionConnected = 'payscore/incomeVerification/institutionConnected',\n DocumentUploaded = 'payscore/incomeVerification/documentUploaded',\n InstitutionSelected = 'payscore/incomeVerification/institutionSelected',\n}\n\nexport enum IncomeVerificationMethod {\n Bank = 'bank',\n Payroll = 'payroll',\n DocumentUpload = 'document_upload',\n}\n\nexport type PayscoreEnvironment = 'staging' | 'production';\n\nexport interface InstitutionConnectedPayload {\n institution: string;\n}\n\nexport interface InstitutionSelectedPayload {\n institution: string;\n}\n\nexport type PayscoreEventPayload<T extends PayscoreWidgetEventType> =\n T extends PayscoreWidgetEventType.InstitutionConnected\n ? InstitutionConnectedPayload\n : T extends PayscoreWidgetEventType.InstitutionSelected\n ? InstitutionSelectedPayload\n : undefined;\n\nexport interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {\n type: T;\n timestamp: string;\n payscore: true;\n methods: IncomeVerificationMethod[];\n payload: PayscoreEventPayload<T>;\n}\n\nexport interface PayscoreWidgetOptions {\n hideCloseButton?: boolean;\n}\n","import { PayscoreEnvironment } from './types';\nimport { Permutations } from './types/utils';\n\nexport const PAYSCORE_STAGING_URL = 'https://app.staging.payscore.com';\nexport const PAYSCORE_PRODUCTION_URL = 'https://app.payscore.com';\n\nexport const AVAILABLE_ENVIRONMENTS: Permutations<PayscoreEnvironment> = [\n 'production',\n 'staging',\n];\n","import {\n PayscoreBaseEvent,\n PayscoreEnvironment,\n PayscoreWidgetConfiguration,\n PayscoreWidgetEventType,\n PayscoreWidgetOptions,\n} from './types';\nimport { AVAILABLE_ENVIRONMENTS, PAYSCORE_PRODUCTION_URL, PAYSCORE_STAGING_URL } from './utils';\n\nconst PAYSCORE_WIDGET_ID = 'payscore-widget';\nconst PAYSCORE_WIDGET_CONTAINER_ID = 'payscore-widget-container';\nconst PAYSCORE_LOADING_SPINNER_ID = 'payscore-loading-spinner';\n\nexport class IncomeVerificationWidget {\n private environment: PayscoreEnvironment;\n private isUnmounting: boolean;\n private applicantId: string;\n private widgetToken: string;\n private testUrl?: string;\n private options?: PayscoreWidgetOptions;\n private onEvent?: (event: PayscoreBaseEvent, widget: IncomeVerificationWidget) => void;\n private windowMessageCallback: (event: MessageEvent) => void;\n\n constructor(configuration: PayscoreWidgetConfiguration) {\n const { environment, applicantId, testUrl, widgetToken, options, onEvent } = configuration;\n\n if (!environment || !AVAILABLE_ENVIRONMENTS.includes(environment)) {\n throw new Error(\n 'Invalid environment configuration for the Payscore Widget, please use either \"staging\" or \"production\" as the environment configuration.'\n );\n }\n\n if (!applicantId) {\n throw new Error(\n 'applicantId is missing from the Payscore Widget configuration. Please provide a valid applicant ID.'\n );\n }\n\n if (!widgetToken) {\n throw new Error(\n 'widgetToken is missing from the Payscore Widget configuration. Please provide a valid widget token.'\n );\n }\n\n this.environment = environment;\n this.applicantId = applicantId;\n this.testUrl = testUrl;\n this.widgetToken = widgetToken;\n this.options = options;\n this.onEvent = onEvent;\n\n this.isUnmounting = false;\n\n this.windowMessageCallback = (event: MessageEvent) => {\n this.handlePayscoreMessage(event);\n };\n }\n\n private get baseUrl(): string {\n if (!!this.testUrl) {\n return this.testUrl;\n }\n\n switch (this.environment) {\n case 'staging':\n return PAYSCORE_STAGING_URL;\n case 'production':\n return PAYSCORE_PRODUCTION_URL;\n }\n }\n\n private get widgetUrl() {\n const options = this.options ? encodeURIComponent(JSON.stringify(this.options)) : '';\n return `${this.baseUrl}/applicants/${this.applicantId}?token=${this.widgetToken}${\n options ? `&options=${options}` : ''\n }`;\n }\n\n load(): void {\n const existingWidgetContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n\n if (!!existingWidgetContainer || this.isUnmounting) {\n return;\n }\n\n this.mountIFrame();\n }\n\n unmount(): void {\n if (this.isUnmounting) {\n console.log('Widget is already unmounting');\n return;\n }\n\n this.unmountIFrame();\n }\n\n private mountIFrame(): void {\n this.setupListener();\n\n const iframe = document.createElement('iframe');\n\n iframe.setAttribute('id', PAYSCORE_WIDGET_ID);\n iframe.setAttribute('title', 'Payscore Widget');\n iframe.setAttribute('src', this.widgetUrl);\n\n iframe.addEventListener('load', () => {\n iframe.classList.add('loaded');\n const iframeContainer = iframe.parentElement;\n if (!!iframeContainer) {\n const spinner = document.getElementById(PAYSCORE_LOADING_SPINNER_ID);\n if (!!spinner) {\n iframeContainer.removeChild(spinner);\n }\n }\n });\n\n const iframeContainer = document.createElement('div');\n iframeContainer.setAttribute('id', PAYSCORE_WIDGET_CONTAINER_ID);\n\n const iframeLoadingSpinner = document.createElement('div');\n iframeLoadingSpinner.setAttribute('id', PAYSCORE_LOADING_SPINNER_ID);\n\n iframeContainer.appendChild(iframeLoadingSpinner);\n iframeContainer.appendChild(iframe);\n\n document.body.appendChild(iframeContainer);\n }\n\n private unmountIFrame(): void {\n this.isUnmounting = true;\n\n this.removeListener();\n\n const iframeContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n if (!!iframeContainer) {\n document.body.removeChild(iframeContainer);\n }\n\n this.isUnmounting = false;\n }\n\n private handlePayscoreMessage(event: MessageEvent<PayscoreBaseEvent>): void {\n if (!event.data.payscore) {\n return;\n }\n\n this.onEvent?.(event.data, this);\n\n if (event.data.type === PayscoreWidgetEventType.WidgetClosed) {\n this.unmount();\n }\n }\n\n private setupListener(): void {\n window.addEventListener('message', this.windowMessageCallback);\n }\n\n private removeListener(): void {\n window.removeEventListener('message', this.windowMessageCallback);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACSO,IAAK,0BAAL,kBAAKA,6BAAL;AACH,EAAAA,yBAAA,8BAA2B;AAC3B,EAAAA,yBAAA,+BAA4B;AAC5B,EAAAA,yBAAA,iCAA8B;AAC9B,EAAAA,yBAAA,kBAAe;AACf,EAAAA,yBAAA,0BAAuB;AACvB,EAAAA,yBAAA,sBAAmB;AACnB,EAAAA,yBAAA,yBAAsB;AAPd,SAAAA;AAAA,GAAA;AAUL,IAAK,2BAAL,kBAAKC,8BAAL;AACH,EAAAA,0BAAA,UAAO;AACP,EAAAA,0BAAA,aAAU;AACV,EAAAA,0BAAA,oBAAiB;AAHT,SAAAA;AAAA,GAAA;;;AChBL,IAAM,uBAAuB;AAC7B,IAAM,0BAA0B;AAEhC,IAAM,yBAA4D;AAAA,EACrE;AAAA,EACA;AACJ;;;ACAA,IAAM,qBAAqB;AAC3B,IAAM,+BAA+B;AACrC,IAAM,8BAA8B;AAE7B,IAAM,2BAAN,MAA+B;AAAA,EAUlC,YAAY,eAA4C;AACpD,UAAM,EAAE,aAAa,aAAa,SAAS,aAAa,SAAS,QAAQ,IAAI;AAE7E,QAAI,CAAC,eAAe,CAAC,uBAAuB,SAAS,WAAW,GAAG;AAC/D,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,CAAC,aAAa;AACd,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,CAAC,aAAa;AACd,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,UAAU;AAEf,SAAK,eAAe;AAEpB,SAAK,wBAAwB,CAAC,UAAwB;AAClD,WAAK,sBAAsB,KAAK;AAAA,IACpC;AAAA,EACJ;AAAA,EAEA,IAAY,UAAkB;AAC1B,QAAI,CAAC,CAAC,KAAK,SAAS;AAChB,aAAO,KAAK;AAAA,IAChB;AAEA,YAAQ,KAAK,aAAa;AAAA,MACtB,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEA,IAAY,YAAY;AACpB,UAAM,UAAU,KAAK,UAAU,mBAAmB,KAAK,UAAU,KAAK,OAAO,CAAC,IAAI;AAClF,WAAO,GAAG,KAAK,OAAO,eAAe,KAAK,WAAW,UAAU,KAAK,WAAW,GAC3E,UAAU,YAAY,OAAO,KAAK,EACtC;AAAA,EACJ;AAAA,EAEA,OAAa;AACT,UAAM,0BAA0B,SAAS,eAAe,4BAA4B;AAEpF,QAAI,CAAC,CAAC,2BAA2B,KAAK,cAAc;AAChD;AAAA,IACJ;AAEA,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,UAAgB;AACZ,QAAI,KAAK,cAAc;AACnB,cAAQ,IAAI,8BAA8B;AAC1C;AAAA,IACJ;AAEA,SAAK,cAAc;AAAA,EACvB;AAAA,EAEQ,cAAoB;AACxB,SAAK,cAAc;AAEnB,UAAM,SAAS,SAAS,cAAc,QAAQ;AAE9C,WAAO,aAAa,MAAM,kBAAkB;AAC5C,WAAO,aAAa,SAAS,iBAAiB;AAC9C,WAAO,aAAa,OAAO,KAAK,SAAS;AAEzC,WAAO,iBAAiB,QAAQ,MAAM;AAClC,aAAO,UAAU,IAAI,QAAQ;AAC7B,YAAMC,mBAAkB,OAAO;AAC/B,UAAI,CAAC,CAACA,kBAAiB;AACnB,cAAM,UAAU,SAAS,eAAe,2BAA2B;AACnE,YAAI,CAAC,CAAC,SAAS;AACX,UAAAA,iBAAgB,YAAY,OAAO;AAAA,QACvC;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,UAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,oBAAgB,aAAa,MAAM,4BAA4B;AAE/D,UAAM,uBAAuB,SAAS,cAAc,KAAK;AACzD,yBAAqB,aAAa,MAAM,2BAA2B;AAEnE,oBAAgB,YAAY,oBAAoB;AAChD,oBAAgB,YAAY,MAAM;AAElC,aAAS,KAAK,YAAY,eAAe;AAAA,EAC7C;AAAA,EAEQ,gBAAsB;AAC1B,SAAK,eAAe;AAEpB,SAAK,eAAe;AAEpB,UAAM,kBAAkB,SAAS,eAAe,4BAA4B;AAC5E,QAAI,CAAC,CAAC,iBAAiB;AACnB,eAAS,KAAK,YAAY,eAAe;AAAA,IAC7C;AAEA,SAAK,eAAe;AAAA,EACxB;AAAA,EAEQ,sBAAsB,OAA8C;AA9IhF;AA+IQ,QAAI,CAAC,MAAM,KAAK,UAAU;AACtB;AAAA,IACJ;AAEA,eAAK,YAAL,8BAAe,MAAM,MAAM;AAE3B,QAAI,MAAM,KAAK,wEAA+C;AAC1D,WAAK,QAAQ;AAAA,IACjB;AAAA,EACJ;AAAA,EAEQ,gBAAsB;AAC1B,WAAO,iBAAiB,WAAW,KAAK,qBAAqB;AAAA,EACjE;AAAA,EAEQ,iBAAuB;AAC3B,WAAO,oBAAoB,WAAW,KAAK,qBAAqB;AAAA,EACpE;AACJ;;;AHjKA,OAAO,aAAa,YAAW,SAAS,KAAK,YAAY,SAAS,cAAc,OAAO,CAAC,EAAE,YAAY,SAAS,eAAe,yiDAAyiD,CAAC;","names":["PayscoreWidgetEventType","IncomeVerificationMethod","iframeContainer"]}
package/dist/index.mjs CHANGED
@@ -4,8 +4,17 @@ var PayscoreWidgetEventType = /* @__PURE__ */ ((PayscoreWidgetEventType2) => {
4
4
  PayscoreWidgetEventType2["IncomeVerificationStarted"] = "payscore/incomeVerification/started";
5
5
  PayscoreWidgetEventType2["IncomeVerificationCompleted"] = "payscore/incomeVerification/completed";
6
6
  PayscoreWidgetEventType2["WidgetClosed"] = "payscore/incomeVerification/widgetClosed";
7
+ PayscoreWidgetEventType2["InstitutionConnected"] = "payscore/incomeVerification/institutionConnected";
8
+ PayscoreWidgetEventType2["DocumentUploaded"] = "payscore/incomeVerification/documentUploaded";
9
+ PayscoreWidgetEventType2["InstitutionSelected"] = "payscore/incomeVerification/institutionSelected";
7
10
  return PayscoreWidgetEventType2;
8
11
  })(PayscoreWidgetEventType || {});
12
+ var IncomeVerificationMethod = /* @__PURE__ */ ((IncomeVerificationMethod2) => {
13
+ IncomeVerificationMethod2["Bank"] = "bank";
14
+ IncomeVerificationMethod2["Payroll"] = "payroll";
15
+ IncomeVerificationMethod2["DocumentUpload"] = "document_upload";
16
+ return IncomeVerificationMethod2;
17
+ })(IncomeVerificationMethod || {});
9
18
 
10
19
  // src/utils.ts
11
20
  var PAYSCORE_STAGING_URL = "https://app.staging.payscore.com";
@@ -131,6 +140,7 @@ var IncomeVerificationWidget = class {
131
140
  // style-loader:src/index.ts
132
141
  typeof document === "object" && document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(":root {\n --payscore-container-z-index: 999999;\n}\n\n#payscore-widget-container {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: var(--payscore-container-z-index);\n background-color: rgba(0, 0, 0, 0.5);\n animation: fade-in 0.5s forwards;\n}\n\n#payscore-widget {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 90%;\n height: 90%;\n border-radius: 10px;\n transform: translate(-50%, -50%) scale(0);\n background-color: #fff;\n\n @media only screen and (max-width: 1200px) {\n width: 99.5%;\n height: 99.5%;\n min-width: 99.5%;\n min-height: 99.5%;\n }\n}\n\n#payscore-widget.loaded {\n animation: zoom-in 0.5s forwards;\n}\n\n#payscore-loading-spinner {\n position: absolute;\n top: calc(40% - 104px);\n left: calc(50% - 104px);\n width: 200px;\n height: 200px;\n padding: 8px;\n aspect-ratio: 1;\n border-radius: 50%;\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: loading-spin 1s infinite linear;\n\n background-color: #014ffa;\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes zoom-in {\n from {\n transform: translate(-50%, -50%) scale(0);\n }\n to {\n transform: translate(-50%, -50%) scale(1);\n }\n}\n\n@keyframes loading-spin {\n to {\n transform: rotate(1turn);\n }\n}\n"));
133
142
  export {
143
+ IncomeVerificationMethod,
134
144
  IncomeVerificationWidget,
135
145
  PayscoreWidgetEventType
136
146
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types/index.ts","../src/utils.ts","../src/widgets.ts","style-loader:src/index.ts"],"sourcesContent":["export interface PayscoreWidgetConfiguration {\n environment: PayscoreEnvironment;\n applicantId: string;\n testUrl?: string;\n widgetToken: string;\n options?: PayscoreWidgetOptions;\n onEvent?(event: PayscoreBaseEvent): void;\n}\n\nexport enum PayscoreWidgetEventType {\n IncomeVerificationLoaded = 'payscore/incomeVerification/loaded',\n IncomeVerificationStarted = 'payscore/incomeVerification/started',\n IncomeVerificationCompleted = 'payscore/incomeVerification/completed',\n WidgetClosed = 'payscore/incomeVerification/widgetClosed',\n}\n\nexport type PayscoreEnvironment = 'staging' | 'production';\n\nexport interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {\n type: T;\n timestamp: string;\n payscore: true;\n}\n\nexport interface PayscoreWidgetOptions {\n hideCloseButton?: boolean;\n}\n","import { PayscoreEnvironment } from './types';\nimport { Permutations } from './types/utils';\n\nexport const PAYSCORE_STAGING_URL = 'https://app.staging.payscore.com';\nexport const PAYSCORE_PRODUCTION_URL = 'https://app.payscore.com';\n\nexport const AVAILABLE_ENVIRONMENTS: Permutations<PayscoreEnvironment> = [\n 'production',\n 'staging',\n];\n","import {\n PayscoreBaseEvent,\n PayscoreEnvironment,\n PayscoreWidgetConfiguration,\n PayscoreWidgetEventType,\n PayscoreWidgetOptions,\n} from './types';\nimport { AVAILABLE_ENVIRONMENTS, PAYSCORE_PRODUCTION_URL, PAYSCORE_STAGING_URL } from './utils';\n\nconst PAYSCORE_WIDGET_ID = 'payscore-widget';\nconst PAYSCORE_WIDGET_CONTAINER_ID = 'payscore-widget-container';\nconst PAYSCORE_LOADING_SPINNER_ID = 'payscore-loading-spinner';\n\nexport class IncomeVerificationWidget {\n private environment: PayscoreEnvironment;\n private isUnmounting: boolean;\n private applicantId: string;\n private widgetToken: string;\n private testUrl?: string;\n private options?: PayscoreWidgetOptions;\n private onEvent?: (event: PayscoreBaseEvent, widget: IncomeVerificationWidget) => void;\n private windowMessageCallback: (event: MessageEvent) => void;\n\n constructor(configuration: PayscoreWidgetConfiguration) {\n const { environment, applicantId, testUrl, widgetToken, options, onEvent } = configuration;\n\n if (!environment || !AVAILABLE_ENVIRONMENTS.includes(environment)) {\n throw new Error(\n 'Invalid environment configuration for the Payscore Widget, please use either \"staging\" or \"production\" as the environment configuration.'\n );\n }\n\n if (!applicantId) {\n throw new Error(\n 'applicantId is missing from the Payscore Widget configuration. Please provide a valid applicant ID.'\n );\n }\n\n if (!widgetToken) {\n throw new Error(\n 'widgetToken is missing from the Payscore Widget configuration. Please provide a valid widget token.'\n );\n }\n\n this.environment = environment;\n this.applicantId = applicantId;\n this.testUrl = testUrl;\n this.widgetToken = widgetToken;\n this.options = options;\n this.onEvent = onEvent;\n\n this.isUnmounting = false;\n\n this.windowMessageCallback = (event: MessageEvent) => {\n this.handlePayscoreMessage(event);\n };\n }\n\n private get baseUrl(): string {\n if (!!this.testUrl) {\n return this.testUrl;\n }\n\n switch (this.environment) {\n case 'staging':\n return PAYSCORE_STAGING_URL;\n case 'production':\n return PAYSCORE_PRODUCTION_URL;\n }\n }\n\n private get widgetUrl() {\n const options = this.options ? encodeURIComponent(JSON.stringify(this.options)) : '';\n return `${this.baseUrl}/applicants/${this.applicantId}?token=${this.widgetToken}${\n options ? `&options=${options}` : ''\n }`;\n }\n\n load(): void {\n const existingWidgetContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n\n if (!!existingWidgetContainer || this.isUnmounting) {\n return;\n }\n\n this.mountIFrame();\n }\n\n unmount(): void {\n if (this.isUnmounting) {\n console.log('Widget is already unmounting');\n return;\n }\n\n this.unmountIFrame();\n }\n\n private mountIFrame(): void {\n this.setupListener();\n\n const iframe = document.createElement('iframe');\n\n iframe.setAttribute('id', PAYSCORE_WIDGET_ID);\n iframe.setAttribute('title', 'Payscore Widget');\n iframe.setAttribute('src', this.widgetUrl);\n\n iframe.addEventListener('load', () => {\n iframe.classList.add('loaded');\n const iframeContainer = iframe.parentElement;\n if (!!iframeContainer) {\n const spinner = document.getElementById(PAYSCORE_LOADING_SPINNER_ID);\n if (!!spinner) {\n iframeContainer.removeChild(spinner);\n }\n }\n });\n\n const iframeContainer = document.createElement('div');\n iframeContainer.setAttribute('id', PAYSCORE_WIDGET_CONTAINER_ID);\n\n const iframeLoadingSpinner = document.createElement('div');\n iframeLoadingSpinner.setAttribute('id', PAYSCORE_LOADING_SPINNER_ID);\n\n iframeContainer.appendChild(iframeLoadingSpinner);\n iframeContainer.appendChild(iframe);\n\n document.body.appendChild(iframeContainer);\n }\n\n private unmountIFrame(): void {\n this.isUnmounting = true;\n\n this.removeListener();\n\n const iframeContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n if (!!iframeContainer) {\n document.body.removeChild(iframeContainer);\n }\n\n this.isUnmounting = false;\n }\n\n private handlePayscoreMessage(event: MessageEvent<PayscoreBaseEvent>): void {\n if (!event.data.payscore) {\n return;\n }\n\n this.onEvent?.(event.data, this);\n\n if (event.data.type === PayscoreWidgetEventType.WidgetClosed) {\n this.unmount();\n }\n }\n\n private setupListener(): void {\n window.addEventListener('message', this.windowMessageCallback);\n }\n\n private removeListener(): void {\n window.removeEventListener('message', this.windowMessageCallback);\n }\n}\n","typeof document === 'object' &&document.head.appendChild(document.createElement('style')).appendChild(document.createTextNode(\":root {\\n --payscore-container-z-index: 999999;\\n}\\n\\n#payscore-widget-container {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: var(--payscore-container-z-index);\\n background-color: rgba(0, 0, 0, 0.5);\\n animation: fade-in 0.5s forwards;\\n}\\n\\n#payscore-widget {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 90%;\\n height: 90%;\\n border-radius: 10px;\\n transform: translate(-50%, -50%) scale(0);\\n background-color: #fff;\\n\\n @media only screen and (max-width: 1200px) {\\n width: 99.5%;\\n height: 99.5%;\\n min-width: 99.5%;\\n min-height: 99.5%;\\n }\\n}\\n\\n#payscore-widget.loaded {\\n animation: zoom-in 0.5s forwards;\\n}\\n\\n#payscore-loading-spinner {\\n position: absolute;\\n top: calc(40% - 104px);\\n left: calc(50% - 104px);\\n width: 200px;\\n height: 200px;\\n padding: 8px;\\n aspect-ratio: 1;\\n border-radius: 50%;\\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\\n -webkit-mask-composite: source-out;\\n mask-composite: subtract;\\n animation: loading-spin 1s infinite linear;\\n\\n background-color: #014ffa;\\n}\\n\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes zoom-in {\\n from {\\n transform: translate(-50%, -50%) scale(0);\\n }\\n to {\\n transform: translate(-50%, -50%) scale(1);\\n }\\n}\\n\\n@keyframes loading-spin {\\n to {\\n transform: rotate(1turn);\\n }\\n}\\n\"))\nexport * from './types/index';\nexport { IncomeVerificationWidget } from './widgets';\n"],"mappings":"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","names":["PayscoreWidgetEventType","iframeContainer"]}
1
+ {"version":3,"sources":["../src/types/index.ts","../src/utils.ts","../src/widgets.ts","style-loader:src/index.ts"],"sourcesContent":["export interface PayscoreWidgetConfiguration {\n environment: PayscoreEnvironment;\n applicantId: string;\n testUrl?: string;\n widgetToken: string;\n options?: PayscoreWidgetOptions;\n onEvent?(event: PayscoreBaseEvent): void;\n}\n\nexport enum PayscoreWidgetEventType {\n IncomeVerificationLoaded = 'payscore/incomeVerification/loaded',\n IncomeVerificationStarted = 'payscore/incomeVerification/started',\n IncomeVerificationCompleted = 'payscore/incomeVerification/completed',\n WidgetClosed = 'payscore/incomeVerification/widgetClosed',\n InstitutionConnected = 'payscore/incomeVerification/institutionConnected',\n DocumentUploaded = 'payscore/incomeVerification/documentUploaded',\n InstitutionSelected = 'payscore/incomeVerification/institutionSelected',\n}\n\nexport enum IncomeVerificationMethod {\n Bank = 'bank',\n Payroll = 'payroll',\n DocumentUpload = 'document_upload',\n}\n\nexport type PayscoreEnvironment = 'staging' | 'production';\n\nexport interface InstitutionConnectedPayload {\n institution: string;\n}\n\nexport interface InstitutionSelectedPayload {\n institution: string;\n}\n\nexport type PayscoreEventPayload<T extends PayscoreWidgetEventType> =\n T extends PayscoreWidgetEventType.InstitutionConnected\n ? InstitutionConnectedPayload\n : T extends PayscoreWidgetEventType.InstitutionSelected\n ? InstitutionSelectedPayload\n : undefined;\n\nexport interface PayscoreBaseEvent<T extends PayscoreWidgetEventType = PayscoreWidgetEventType> {\n type: T;\n timestamp: string;\n payscore: true;\n methods: IncomeVerificationMethod[];\n payload: PayscoreEventPayload<T>;\n}\n\nexport interface PayscoreWidgetOptions {\n hideCloseButton?: boolean;\n}\n","import { PayscoreEnvironment } from './types';\nimport { Permutations } from './types/utils';\n\nexport const PAYSCORE_STAGING_URL = 'https://app.staging.payscore.com';\nexport const PAYSCORE_PRODUCTION_URL = 'https://app.payscore.com';\n\nexport const AVAILABLE_ENVIRONMENTS: Permutations<PayscoreEnvironment> = [\n 'production',\n 'staging',\n];\n","import {\n PayscoreBaseEvent,\n PayscoreEnvironment,\n PayscoreWidgetConfiguration,\n PayscoreWidgetEventType,\n PayscoreWidgetOptions,\n} from './types';\nimport { AVAILABLE_ENVIRONMENTS, PAYSCORE_PRODUCTION_URL, PAYSCORE_STAGING_URL } from './utils';\n\nconst PAYSCORE_WIDGET_ID = 'payscore-widget';\nconst PAYSCORE_WIDGET_CONTAINER_ID = 'payscore-widget-container';\nconst PAYSCORE_LOADING_SPINNER_ID = 'payscore-loading-spinner';\n\nexport class IncomeVerificationWidget {\n private environment: PayscoreEnvironment;\n private isUnmounting: boolean;\n private applicantId: string;\n private widgetToken: string;\n private testUrl?: string;\n private options?: PayscoreWidgetOptions;\n private onEvent?: (event: PayscoreBaseEvent, widget: IncomeVerificationWidget) => void;\n private windowMessageCallback: (event: MessageEvent) => void;\n\n constructor(configuration: PayscoreWidgetConfiguration) {\n const { environment, applicantId, testUrl, widgetToken, options, onEvent } = configuration;\n\n if (!environment || !AVAILABLE_ENVIRONMENTS.includes(environment)) {\n throw new Error(\n 'Invalid environment configuration for the Payscore Widget, please use either \"staging\" or \"production\" as the environment configuration.'\n );\n }\n\n if (!applicantId) {\n throw new Error(\n 'applicantId is missing from the Payscore Widget configuration. Please provide a valid applicant ID.'\n );\n }\n\n if (!widgetToken) {\n throw new Error(\n 'widgetToken is missing from the Payscore Widget configuration. Please provide a valid widget token.'\n );\n }\n\n this.environment = environment;\n this.applicantId = applicantId;\n this.testUrl = testUrl;\n this.widgetToken = widgetToken;\n this.options = options;\n this.onEvent = onEvent;\n\n this.isUnmounting = false;\n\n this.windowMessageCallback = (event: MessageEvent) => {\n this.handlePayscoreMessage(event);\n };\n }\n\n private get baseUrl(): string {\n if (!!this.testUrl) {\n return this.testUrl;\n }\n\n switch (this.environment) {\n case 'staging':\n return PAYSCORE_STAGING_URL;\n case 'production':\n return PAYSCORE_PRODUCTION_URL;\n }\n }\n\n private get widgetUrl() {\n const options = this.options ? encodeURIComponent(JSON.stringify(this.options)) : '';\n return `${this.baseUrl}/applicants/${this.applicantId}?token=${this.widgetToken}${\n options ? `&options=${options}` : ''\n }`;\n }\n\n load(): void {\n const existingWidgetContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n\n if (!!existingWidgetContainer || this.isUnmounting) {\n return;\n }\n\n this.mountIFrame();\n }\n\n unmount(): void {\n if (this.isUnmounting) {\n console.log('Widget is already unmounting');\n return;\n }\n\n this.unmountIFrame();\n }\n\n private mountIFrame(): void {\n this.setupListener();\n\n const iframe = document.createElement('iframe');\n\n iframe.setAttribute('id', PAYSCORE_WIDGET_ID);\n iframe.setAttribute('title', 'Payscore Widget');\n iframe.setAttribute('src', this.widgetUrl);\n\n iframe.addEventListener('load', () => {\n iframe.classList.add('loaded');\n const iframeContainer = iframe.parentElement;\n if (!!iframeContainer) {\n const spinner = document.getElementById(PAYSCORE_LOADING_SPINNER_ID);\n if (!!spinner) {\n iframeContainer.removeChild(spinner);\n }\n }\n });\n\n const iframeContainer = document.createElement('div');\n iframeContainer.setAttribute('id', PAYSCORE_WIDGET_CONTAINER_ID);\n\n const iframeLoadingSpinner = document.createElement('div');\n iframeLoadingSpinner.setAttribute('id', PAYSCORE_LOADING_SPINNER_ID);\n\n iframeContainer.appendChild(iframeLoadingSpinner);\n iframeContainer.appendChild(iframe);\n\n document.body.appendChild(iframeContainer);\n }\n\n private unmountIFrame(): void {\n this.isUnmounting = true;\n\n this.removeListener();\n\n const iframeContainer = document.getElementById(PAYSCORE_WIDGET_CONTAINER_ID);\n if (!!iframeContainer) {\n document.body.removeChild(iframeContainer);\n }\n\n this.isUnmounting = false;\n }\n\n private handlePayscoreMessage(event: MessageEvent<PayscoreBaseEvent>): void {\n if (!event.data.payscore) {\n return;\n }\n\n this.onEvent?.(event.data, this);\n\n if (event.data.type === PayscoreWidgetEventType.WidgetClosed) {\n this.unmount();\n }\n }\n\n private setupListener(): void {\n window.addEventListener('message', this.windowMessageCallback);\n }\n\n private removeListener(): void {\n window.removeEventListener('message', this.windowMessageCallback);\n }\n}\n","typeof document === 'object' &&document.head.appendChild(document.createElement('style')).appendChild(document.createTextNode(\":root {\\n --payscore-container-z-index: 999999;\\n}\\n\\n#payscore-widget-container {\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n z-index: var(--payscore-container-z-index);\\n background-color: rgba(0, 0, 0, 0.5);\\n animation: fade-in 0.5s forwards;\\n}\\n\\n#payscore-widget {\\n position: absolute;\\n top: 50%;\\n left: 50%;\\n width: 90%;\\n height: 90%;\\n border-radius: 10px;\\n transform: translate(-50%, -50%) scale(0);\\n background-color: #fff;\\n\\n @media only screen and (max-width: 1200px) {\\n width: 99.5%;\\n height: 99.5%;\\n min-width: 99.5%;\\n min-height: 99.5%;\\n }\\n}\\n\\n#payscore-widget.loaded {\\n animation: zoom-in 0.5s forwards;\\n}\\n\\n#payscore-loading-spinner {\\n position: absolute;\\n top: calc(40% - 104px);\\n left: calc(50% - 104px);\\n width: 200px;\\n height: 200px;\\n padding: 8px;\\n aspect-ratio: 1;\\n border-radius: 50%;\\n mask: conic-gradient(#0000 10%, #000), linear-gradient(#000 0 0) content-box;\\n -webkit-mask-composite: source-out;\\n mask-composite: subtract;\\n animation: loading-spin 1s infinite linear;\\n\\n background-color: #014ffa;\\n}\\n\\n@keyframes fade-in {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes zoom-in {\\n from {\\n transform: translate(-50%, -50%) scale(0);\\n }\\n to {\\n transform: translate(-50%, -50%) scale(1);\\n }\\n}\\n\\n@keyframes loading-spin {\\n to {\\n transform: rotate(1turn);\\n }\\n}\\n\"))\nexport * from './types/index';\nexport { IncomeVerificationWidget } from './widgets';\n"],"mappings":"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","names":["PayscoreWidgetEventType","IncomeVerificationMethod","iframeContainer"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payscore/web-widget-sdk",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Payscore Web Widget SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -24,7 +24,10 @@
24
24
  "test": "jest --verbose --coverage",
25
25
  "release": "release-it"
26
26
  },
27
- "repository": "https://github.com/Payscore/web-widget-sdk",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/Payscore/web-widget-sdk.git"
30
+ },
28
31
  "author": "Payscore",
29
32
  "license": "MIT",
30
33
  "devDependencies": {
@@ -32,7 +35,7 @@
32
35
  "@types/jest": "^29.5.12",
33
36
  "jest": "^29.7.0",
34
37
  "jest-environment-jsdom": "^29.7.0",
35
- "release-it": "^17.6.0",
38
+ "release-it": "^19.0.0",
36
39
  "ts-jest": "^29.1.5",
37
40
  "tsup": "^8.1.0",
38
41
  "typescript": "^5.5.2"
@@ -40,5 +43,8 @@
40
43
  "publishConfig": {
41
44
  "registry": "https://registry.npmjs.org",
42
45
  "access": "public"
46
+ },
47
+ "resolutions": {
48
+ "@types/parse-path": "7.0.3"
43
49
  }
44
50
  }