@justifi/webcomponents 6.10.0 → 6.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/cjs/bank-account-document-form-inputs_9.cjs.entry.js +1 -1
  2. package/dist/cjs/{check-pkg-version-DjlvidPw.js → check-pkg-version-axrC8Ato.js} +18 -1
  3. package/dist/cjs/form-control-number-masked_3.cjs.entry.js +1 -1
  4. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  5. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +20 -3
  7. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  13. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +20 -0
  18. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  19. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  20. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  21. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  24. package/dist/cjs/justifi-refund-payment.cjs.entry.js +2 -2
  25. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  26. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  27. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/cjs/{package-C5inXJfW.js → package-CAxc3X25.js} +1 -1
  30. package/dist/cjs/webcomponents.cjs.js +1 -1
  31. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +16 -4
  32. package/dist/collection/components/business-forms/payment-provisioning/business-core-info/business-core-info-form-step.js +1 -1
  33. package/dist/collection/components/business-forms/payment-provisioning/business-owners/business-owners-form-step.js +6 -0
  34. package/dist/collection/components/business-forms/payment-provisioning/form-address-fields/form-address-fields.js +1 -1
  35. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-already-provisioned.js +6 -0
  36. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-core.js +15 -0
  37. package/dist/collection/components/business-forms/payment-provisioning/payment-provisioning-submission-complete.js +6 -0
  38. package/dist/collection/components/business-forms/payment-provisioning/plaid-verification/plaid-verification.js +2 -2
  39. package/dist/collection/utils/check-pkg-version.js +17 -0
  40. package/dist/docs.json +6 -73
  41. package/dist/esm/bank-account-document-form-inputs_9.entry.js +2 -2
  42. package/dist/esm/{check-pkg-version-wgHSN5sV.js → check-pkg-version-BVLXSZXz.js} +18 -1
  43. package/dist/esm/form-control-number-masked_3.entry.js +1 -1
  44. package/dist/esm/hidden-input_2.entry.js +1 -1
  45. package/dist/esm/internal-tokenize-payment-method_7.entry.js +2 -2
  46. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +21 -4
  47. package/dist/esm/justifi-apple-pay_8.entry.js +2 -2
  48. package/dist/esm/justifi-business-details.entry.js +2 -2
  49. package/dist/esm/justifi-business-form.entry.js +2 -2
  50. package/dist/esm/justifi-checkout.entry.js +2 -2
  51. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  52. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  53. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  54. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  55. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  56. package/dist/esm/justifi-payment-details.entry.js +2 -2
  57. package/dist/esm/justifi-payment-provisioning-core.entry.js +21 -1
  58. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  59. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  60. package/dist/esm/justifi-payments-list.entry.js +2 -2
  61. package/dist/esm/justifi-payout-details.entry.js +2 -2
  62. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  63. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  64. package/dist/esm/justifi-refund-payment.entry.js +2 -2
  65. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  66. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  67. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/esm/{package-D4eE0MBI.js → package-Bjv3eJBk.js} +1 -1
  70. package/dist/esm/webcomponents.js +1 -1
  71. package/dist/module/Analytics.js +17 -0
  72. package/dist/module/business-bank-account-form-step.js +15 -3
  73. package/dist/module/business-core-info-form-step.js +2 -2
  74. package/dist/module/business-core-info.js +1 -1
  75. package/dist/module/business-owners-form-step.js +7 -1
  76. package/dist/module/business-representative-form-inputs.js +1 -1
  77. package/dist/module/business-representative.js +1 -1
  78. package/dist/module/button.js +1 -1
  79. package/dist/module/dispute-notification.js +1 -1
  80. package/dist/module/dispute-response-core.js +1 -1
  81. package/dist/module/form-address-fields.js +1 -1
  82. package/dist/module/justifi-order-terminals.js +1 -1
  83. package/dist/module/owner-form-inputs2.js +1 -1
  84. package/dist/module/package.js +1 -1
  85. package/dist/module/parts.js +1 -1
  86. package/dist/module/payment-provisioning-core.js +22 -1
  87. package/dist/module/plaid-verification2.js +2 -2
  88. package/dist/module/terminal-quantity-selector2.js +1 -1
  89. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +3 -0
  90. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-already-provisioned.d.ts +1 -0
  91. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-core.d.ts +1 -0
  92. package/dist/types/components/business-forms/payment-provisioning/payment-provisioning-submission-complete.d.ts +1 -0
  93. package/dist/types/ui-components/button.d.ts +1 -1
  94. package/dist/webcomponents/{p-df61f19b.entry.js → p-0588173b.entry.js} +1 -1
  95. package/dist/webcomponents/{p-2bbd810a.entry.js → p-1a4d5f16.entry.js} +1 -1
  96. package/dist/webcomponents/{p-ed4f8027.entry.js → p-21620dd2.entry.js} +1 -1
  97. package/dist/webcomponents/p-21b5240d.entry.js +1 -0
  98. package/dist/webcomponents/{p-2b679e5a.entry.js → p-282134de.entry.js} +1 -1
  99. package/dist/webcomponents/p-35d1be0f.entry.js +1 -0
  100. package/dist/webcomponents/{p-423b63ad.entry.js → p-479e4baf.entry.js} +1 -1
  101. package/dist/webcomponents/{p-d62da4f2.entry.js → p-4d6031dd.entry.js} +1 -1
  102. package/dist/webcomponents/{p-d766763a.entry.js → p-4ebaafe3.entry.js} +1 -1
  103. package/dist/webcomponents/{p-8728065b.entry.js → p-4fc5ffda.entry.js} +1 -1
  104. package/dist/webcomponents/{p-979d22d0.entry.js → p-643f1616.entry.js} +1 -1
  105. package/dist/webcomponents/{p-38c1e9fa.entry.js → p-6486555d.entry.js} +1 -1
  106. package/dist/webcomponents/{p-d0813f21.entry.js → p-7318981d.entry.js} +1 -1
  107. package/dist/webcomponents/{p-3971d6b7.entry.js → p-7d122d5b.entry.js} +1 -1
  108. package/dist/webcomponents/p-7dc5995e.entry.js +1 -0
  109. package/dist/webcomponents/{p-d9118b1e.entry.js → p-7e3030c2.entry.js} +1 -1
  110. package/dist/webcomponents/{p-5d753fd4.entry.js → p-8dc8ad9a.entry.js} +1 -1
  111. package/dist/webcomponents/p-Bjv3eJBk.js +1 -0
  112. package/dist/webcomponents/{p-CbTf_N6u.js → p-BqpQa748.js} +1 -1
  113. package/dist/webcomponents/{p-b4b540fa.entry.js → p-b61080bd.entry.js} +1 -1
  114. package/dist/webcomponents/p-cb9abd2c.entry.js +1 -0
  115. package/dist/webcomponents/{p-eb1251bf.entry.js → p-ccb0a84a.entry.js} +1 -1
  116. package/dist/webcomponents/{p-e2bc6c68.entry.js → p-d36725a3.entry.js} +1 -1
  117. package/dist/webcomponents/{p-7769de83.entry.js → p-d7bd9d76.entry.js} +1 -1
  118. package/dist/webcomponents/{p-0e21749b.entry.js → p-e8f9b081.entry.js} +1 -1
  119. package/dist/webcomponents/{p-2438363d.entry.js → p-ec933218.entry.js} +1 -1
  120. package/dist/webcomponents/{p-300002dd.entry.js → p-eeee370f.entry.js} +1 -1
  121. package/dist/webcomponents/{p-f18e90b1.entry.js → p-f1b99b0d.entry.js} +1 -1
  122. package/dist/webcomponents/webcomponents.esm.js +1 -1
  123. package/package.json +3 -2
  124. package/dist/webcomponents/p-12665340.entry.js +0 -1
  125. package/dist/webcomponents/p-5cee4e33.entry.js +0 -1
  126. package/dist/webcomponents/p-D4eE0MBI.js +0 -1
  127. package/dist/webcomponents/p-afa2ebd9.entry.js +0 -1
  128. package/dist/webcomponents/p-c725dc53.entry.js +0 -1
@@ -10,7 +10,7 @@ export class FormAddressFields {
10
10
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
11
11
  const labels = countryLabels[this.country];
12
12
  const options = countryOptions[this.country];
13
- return (h(Host, { key: '8dabbee93e0f319db333ada6c20af49ed6131b8d' }, h("div", { key: '4b308ca9fa92321e5f60f3e4d9ab1c4e60cbd703', class: "row gy-3" }, h("div", { key: '9c25eec2effd7caed70a3f02f6a780513fae930c', class: "col-12" }, h("form-control-text", { key: '6c2ae178c2122d1f6085906690adadf98cb0774b', name: "line1", label: "Street Address", inputHandler: this.inputHandler, defaultValue: (_a = this.defaultValues) === null || _a === void 0 ? void 0 : _a.line1, errorText: (_b = this.errors) === null || _b === void 0 ? void 0 : _b.line1, helpText: "No PO Boxes." })), h("div", { key: 'eba53a69fc4c869014ef8b7bf6ff9b1d8f5be566', class: "col-12" }, h("form-control-text", { key: '11c743ce2388173c41cb16f1865fe58b2015d6bb', name: "line2", label: "Address Line 2 (optional)", inputHandler: this.inputHandler, defaultValue: (_c = this.defaultValues) === null || _c === void 0 ? void 0 : _c.line2, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.line2 })), h("div", { key: '2025c9bb15286f5c3e4693b596372a7dff730ce8', class: "col-12" }, h("form-control-text", { key: '5e0e40fd028d12b88cb15a38906738320e30aeca', name: "city", label: "City", inputHandler: this.inputHandler, defaultValue: (_e = this.defaultValues) === null || _e === void 0 ? void 0 : _e.city, errorText: (_f = this.errors) === null || _f === void 0 ? void 0 : _f.city })), h("div", { key: '5ec53f357907749c9abdcf568c027b71faad19fa', class: "col-12" }, h("form-control-select", { key: 'b9eef22eb507ffbd58c26bffa41b5b225925297c', name: "state", label: labels.stateLabel, options: options.stateOptions, inputHandler: this.inputHandler, defaultValue: (_g = this.defaultValues) === null || _g === void 0 ? void 0 : _g.state, errorText: (_h = this.errors) === null || _h === void 0 ? void 0 : _h.state })), h("div", { key: '7456cd4f6b62b59bc9289ca3721440083e9aa4f3', class: "col-12" }, h("form-control-text", { key: 'c483c93d0f09d5ded3c11145216273ba75822009', name: "postal_code", label: labels.postalLabel, inputHandler: this.inputHandler, defaultValue: (_j = this.defaultValues) === null || _j === void 0 ? void 0 : _j.postal_code, errorText: (_k = this.errors) === null || _k === void 0 ? void 0 : _k.postal_code, maxLength: this.country === CountryCode.USA ? 5 : 7, keyDownHandler: this.country === CountryCode.USA ? numberOnlyHandler : undefined })))));
13
+ return (h(Host, { key: '8dabbee93e0f319db333ada6c20af49ed6131b8d' }, h("div", { key: '4b308ca9fa92321e5f60f3e4d9ab1c4e60cbd703', class: "row gy-3" }, h("div", { key: '9c25eec2effd7caed70a3f02f6a780513fae930c', class: "col-12" }, h("form-control-text", { key: '6c2ae178c2122d1f6085906690adadf98cb0774b', name: "line1", label: "Street Address", inputHandler: this.inputHandler, defaultValue: (_a = this.defaultValues) === null || _a === void 0 ? void 0 : _a.line1, errorText: (_b = this.errors) === null || _b === void 0 ? void 0 : _b.line1, helpText: "No PO Boxes." })), h("div", { key: 'eba53a69fc4c869014ef8b7bf6ff9b1d8f5be566', class: "col-12" }, h("form-control-text", { key: '11c743ce2388173c41cb16f1865fe58b2015d6bb', name: "line2", label: "Address Line 2 (optional)", inputHandler: this.inputHandler, defaultValue: (_c = this.defaultValues) === null || _c === void 0 ? void 0 : _c.line2, errorText: (_d = this.errors) === null || _d === void 0 ? void 0 : _d.line2 })), h("div", { key: '2025c9bb15286f5c3e4693b596372a7dff730ce8', class: "col-12" }, h("form-control-text", { key: '5e0e40fd028d12b88cb15a38906738320e30aeca', name: "city", label: "City", inputHandler: this.inputHandler, defaultValue: (_e = this.defaultValues) === null || _e === void 0 ? void 0 : _e.city, errorText: (_f = this.errors) === null || _f === void 0 ? void 0 : _f.city })), h("div", { key: '407eac6eee8ca33a6648f2d1a45003961353f877', class: "col-12 col-md-6" }, h("form-control-select", { key: 'c598b24e0dc594ae725a7473212a6ed36102ce49', name: "state", label: labels.stateLabel, options: options.stateOptions, inputHandler: this.inputHandler, defaultValue: (_g = this.defaultValues) === null || _g === void 0 ? void 0 : _g.state, errorText: (_h = this.errors) === null || _h === void 0 ? void 0 : _h.state })), h("div", { key: '49861d791272c745f881d19016b93885ce59f724', class: "col-12 col-md-6" }, h("form-control-text", { key: '90b9db4630dd4fad7e86151f2a632cd62b8509f3', name: "postal_code", label: labels.postalLabel, inputHandler: this.inputHandler, defaultValue: (_j = this.defaultValues) === null || _j === void 0 ? void 0 : _j.postal_code, errorText: (_k = this.errors) === null || _k === void 0 ? void 0 : _k.postal_code, maxLength: this.country === CountryCode.USA ? 5 : 7, keyDownHandler: this.country === CountryCode.USA ? numberOnlyHandler : undefined })))));
14
14
  }
15
15
  static get is() { return "justifi-form-address-fields"; }
16
16
  static get properties() {
@@ -0,0 +1,6 @@
1
+ import { h } from "@stencil/core";
2
+ import { Header1 } from "../../../ui-components";
3
+ import { text } from "../../../styles/parts";
4
+ export const PaymentProvisioningAlreadyProvisioned = () => {
5
+ return (h("div", { class: "row gap-3 p-5" }, h("div", { class: "col-12" }, h(Header1, { text: "Business Already Provisioned" })), h("div", { class: "col-12", part: text }, h("p", null, "We have already received the onboarding information for this business."))));
6
+ };
@@ -7,11 +7,14 @@ import { BusinessFormClickActions } from "../utils/event-types";
7
7
  import { CountryCode } from "../../../utils/country-codes";
8
8
  import { Business } from "../../../api/Business";
9
9
  import { PaymentProvisioningLoading } from "./payment-provisioning-loading";
10
+ import { PaymentProvisioningAlreadyProvisioned } from "./payment-provisioning-already-provisioned";
11
+ import { PaymentProvisioningSubmissionComplete } from "./payment-provisioning-submission-complete";
10
12
  export class PaymentProvisioningCore {
11
13
  constructor() {
12
14
  this.loading = false;
13
15
  this.businessLoading = true;
14
16
  this.businessProvisioned = false;
17
+ this.formSubmitted = false;
15
18
  this.currentStep = 0;
16
19
  this.country = CountryCode.USA;
17
20
  this.allowOptionalFields = false;
@@ -47,6 +50,7 @@ export class PaymentProvisioningCore {
47
50
  this.postProvisioningData = () => {
48
51
  this.postProvisioning({
49
52
  onSuccess: (response) => {
53
+ this.formSubmitted = true;
50
54
  this.submitEvent.emit({ response: response });
51
55
  },
52
56
  onError: ({ error, code, severity }) => {
@@ -113,9 +117,19 @@ export class PaymentProvisioningCore {
113
117
  this.loading = event.detail;
114
118
  }
115
119
  render() {
120
+ // State 1: Loading
116
121
  if (this.businessLoading) {
117
122
  return (h(StyledHost, null, h(PaymentProvisioningLoading, null)));
118
123
  }
124
+ // State 2: Already Provisioned
125
+ if (this.businessProvisioned) {
126
+ return (h(StyledHost, null, h(PaymentProvisioningAlreadyProvisioned, null)));
127
+ }
128
+ // State 3: Submission Complete
129
+ if (this.formSubmitted) {
130
+ return (h(StyledHost, null, h(PaymentProvisioningSubmissionComplete, null)));
131
+ }
132
+ // State 4: Form Steps (default)
119
133
  return (h(StyledHost, null, h("div", { class: 'row gap-3' }, h(Header1, { text: this.formTitle }), h("justifi-payment-provisioning-form-steps", { businessId: this.businessId, authToken: this.authToken, refs: this.refs, currentStep: this.currentStep, allowOptionalFields: this.allowOptionalFields, country: this.country, handleFormLoading: this.handleFormLoading }), h("div", { class: 'd-flex justify-content-between align-items-center' }, h("div", { class: 'd-flex align-items-center', part: text }, this.stepCounter), h("justifi-payment-provisioning-form-buttons", { currentStep: this.currentStep, totalSteps: this.totalSteps, formLoading: this.loading, formDisabled: this.formDisabled, previousStepButtonOnClick: this.previousStepButtonOnClick, nextStepButtonOnClick: this.nextStepButtonOnClick })))));
120
134
  }
121
135
  static get is() { return "justifi-payment-provisioning-core"; }
@@ -249,6 +263,7 @@ export class PaymentProvisioningCore {
249
263
  "loading": {},
250
264
  "businessLoading": {},
251
265
  "businessProvisioned": {},
266
+ "formSubmitted": {},
252
267
  "currentStep": {},
253
268
  "errorMessage": {},
254
269
  "country": {}
@@ -0,0 +1,6 @@
1
+ import { h } from "@stencil/core";
2
+ import { Header1 } from "../../../ui-components";
3
+ import { text } from "../../../styles/parts";
4
+ export const PaymentProvisioningSubmissionComplete = () => {
5
+ return (h("div", { class: "row gap-3 p5" }, h("div", { class: "col-12" }, h(Header1, { text: "You're all set for now" })), h("div", { class: "col-12", part: text }, h("p", null, "We're reviewing your information and working on your approval. We'll be in touch to let you know once you've been approved (or if we find anything that needs fixing). Have a good one!"))));
6
+ };
@@ -4,7 +4,7 @@ import { PlaidService } from "../../../../api/services/plaid.service";
4
4
  import { ComponentErrorSeverity } from "../../../../api/ComponentError";
5
5
  import { PlaidErrorCodes, PLAID_ERROR_MESSAGES, PLAID_ERROR_SEVERITY, } from "../../../../api/Plaid";
6
6
  import plaidLogoSvg from "../../../../assets/plaid-icon.svg";
7
- import { buttonSecondary } from "../../../../styles/parts";
7
+ import { buttonPrimary } from "../../../../styles/parts";
8
8
  export class PlaidVerification {
9
9
  constructor() {
10
10
  this.linkToken = null;
@@ -316,7 +316,7 @@ export class PlaidVerification {
316
316
  marginLeft: '5px',
317
317
  marginTop: '-2px',
318
318
  } }));
319
- return (h(StyledHost, null, h("script", { src: "https://cdn.plaid.com/link/v2/stable/link-initialize.js", async: true, ref: (el) => (this.scriptRef = el) }), h("div", null, h("div", { class: "mb-3" }, h(Button, { variant: "secondary", type: "button", onClick: (event) => { event.preventDefault(); this.openPlaidLink(); }, disabled: this.isLoading, part: buttonSecondary }, "Link Bank Account with ", plaidLogo)), renderErrorState(), renderStatusState())));
319
+ return (h(StyledHost, null, h("script", { src: "https://cdn.plaid.com/link/v2/stable/link-initialize.js", async: true, ref: (el) => (this.scriptRef = el) }), h("div", null, h("div", { class: "mb-3" }, h(Button, { variant: "primary", type: "button", onClick: (event) => { event.preventDefault(); this.openPlaidLink(); }, disabled: this.isLoading, part: buttonPrimary }, "Connect with Plaid ", plaidLogo, " (instant verification)")), renderErrorState(), renderStatusState())));
320
320
  }
321
321
  static get is() { return "plaid-verification"; }
322
322
  static get properties() {
@@ -1,4 +1,20 @@
1
1
  import packageJson from "../../package.json";
2
+ const JUSTIFI_VERSION_KEY = '__JUSTIFI_WC_VERSION__';
3
+ const detectDuplicateVersion = () => {
4
+ if (typeof globalThis === 'undefined')
5
+ return;
6
+ const currentVersion = packageJson.version;
7
+ const existingVersion = globalThis[JUSTIFI_VERSION_KEY];
8
+ if (existingVersion && existingVersion !== currentVersion) {
9
+ console.error(`@justifi/webcomponents: Multiple versions detected. ` +
10
+ `Version ${existingVersion} was loaded first and registered all components. ` +
11
+ `Version ${currentVersion} is also present but its components will NOT be used. ` +
12
+ `To fix this, add to your package.json:\n` +
13
+ `"pnpm": { "overrides": { "@justifi/webcomponents": "${currentVersion}" } }`);
14
+ return;
15
+ }
16
+ globalThis[JUSTIFI_VERSION_KEY] = currentVersion;
17
+ };
2
18
  const latestVersion = async (packageName) => {
3
19
  const response = await fetch('https://registry.npmjs.org/' + packageName + '/latest');
4
20
  const json = await response.json();
@@ -6,6 +22,7 @@ const latestVersion = async (packageName) => {
6
22
  };
7
23
  export const checkPkgVersion = async () => {
8
24
  var _a, _b;
25
+ detectDuplicateVersion();
9
26
  // Skip version check in test environments to avoid async logs after tests complete
10
27
  if (typeof process !== 'undefined' &&
11
28
  (((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'test' || ((_b = process.env) === null || _b === void 0 ? void 0 : _b.JEST_WORKER_ID))) {