@smartcomply/web-sdk 1.0.1 → 1.0.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.
package/LICENSE.txt ADDED
@@ -0,0 +1,7 @@
1
+ Copyright (c) 2026 Smartcomply. All rights reserved.
2
+
3
+ This software and its source code are the proprietary information of Smartcomply.
4
+ Unauthorized copying, modification, distribution, or any other use of this software without the express written consent of Smartcomply is strictly prohibited.
5
+
6
+ The use of this SDK is governed by the Smartcomply Terms of Service provided
7
+ at https://adhere.smartcomply.com.
package/README.md CHANGED
@@ -1,73 +1,80 @@
1
- # React + TypeScript + Vite
1
+ ## @smartcomply/web-sdk
2
2
 
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
3
+ The lightweight, secure, and performance-optimized Identity Verification SDK for Smartcomply.
4
4
 
5
- Currently, two official plugins are available:
5
+ ### Overview
6
+ The Smartcomply Web SDK provides a seamless identity verification experience. Built with performance in mind, it features:
6
7
 
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
8
+ - **Ultra-Lightweight:** Only ~80kB gzipped.
9
9
 
10
- ## React Compiler
10
+ - **Encapsulated Styles:** Powered by Shadow DOM to prevent style clashing with your website.
11
11
 
12
- The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
12
+ - **Privacy-First:** Automatic hardware cleanup ensures the camera turns off immediately after use.
13
13
 
14
- ## Expanding the ESLint configuration
14
+ - **Framework Agnostic:** Works with React, Vue, Angular, or Vanilla JavaScript.
15
15
 
16
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
17
-
18
- ```js
19
- export default defineConfig([
20
- globalIgnores(['dist']),
21
- {
22
- files: ['**/*.{ts,tsx}'],
23
- extends: [
24
- // Other configs...
16
+ ### Installation
17
+ ```bash
18
+ npm install @smartcomply/web-sdk
19
+ ```
25
20
 
26
- // Remove tseslint.configs.recommended and replace with this
27
- tseslint.configs.recommendedTypeChecked,
28
- // Alternatively, use this for stricter rules
29
- tseslint.configs.strictTypeChecked,
30
- // Optionally, add this for stylistic rules
31
- tseslint.configs.stylisticTypeChecked,
21
+ **or**
32
22
 
33
- // Other configs...
34
- ],
35
- languageOptions: {
36
- parserOptions: {
37
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
38
- tsconfigRootDir: import.meta.dirname,
39
- },
40
- // other options...
41
- },
42
- },
43
- ])
23
+ ```bash
24
+ yarn add @smartcomply/web-sdk
44
25
  ```
45
26
 
46
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47
-
48
- ```js
49
- // eslint.config.js
50
- import reactX from 'eslint-plugin-react-x'
51
- import reactDom from 'eslint-plugin-react-dom'
52
-
53
- export default defineConfig([
54
- globalIgnores(['dist']),
55
- {
56
- files: ['**/*.{ts,tsx}'],
57
- extends: [
58
- // Other configs...
59
- // Enable lint rules for React
60
- reactX.configs['recommended-typescript'],
61
- // Enable lint rules for React DOM
62
- reactDom.configs.recommended,
63
- ],
64
- languageOptions: {
65
- parserOptions: {
66
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
67
- tsconfigRootDir: import.meta.dirname,
68
- },
69
- // other options...
70
- },
27
+ ### Usage
28
+ Integrating the SDK is straightforward. Initialize it with your configuration and launch it.
29
+
30
+ #### Basic Integration
31
+ ```JavaScript
32
+ import AdhereSDK from '@smartcomply/web-sdk';
33
+
34
+ const sdk = new AdhereSDK({
35
+ session: 'sessionId',
36
+ onSuccess: (data) => {
37
+ console.log('Verification successful:', data);
71
38
  },
72
- ])
39
+ onExpire: () => {
40
+ console.log('User cancelled verification');
41
+ },
42
+ onError: (error) => {
43
+ console.error('Verification error:', error);
44
+ }
45
+ });
46
+
47
+ // To open the SDK
48
+ sdk.launch();
73
49
  ```
50
+
51
+ ### Styling & Customization
52
+ The SDK uses a custom prefix (sc:) for its Tailwind-powered UI. Because it resides in a Shadow DOM, your global CSS will not affect the SDK, and the SDK's styles will not leak into your application.
53
+
54
+ ### Security & Privacy
55
+ - **Camera Permissions:** The SDK only requests camera access during the liveness detection phase.
56
+
57
+ - **Resource Management:** Hardware streams are automatically released upon session expiry or user exit.
58
+
59
+ - **Data Encryption:** All verification data is encrypted in transit.
60
+
61
+
62
+ ### License
63
+ Copyright © 2026 Smartcomply. All rights reserved.
64
+ This software and its source code are the proprietary information of Smartcomply.
65
+ Unauthorized copying, modification, distribution, or any other use of this software without the express written consent of Smartcomply is strictly prohibited.
66
+
67
+ The use of this SDK is governed by the Smartcomply Terms of Service provided at https://adhere.smartcomply.com.
68
+
69
+ ### Contributors
70
+
71
+ ##### This SDK is developed and maintained by the Smartcomply Engineering Team.
72
+
73
+ <a href="https://github.com/titoadeoye">
74
+ <img src="https://avatars.githubusercontent.com/titoadeoye?s=80"
75
+ alt="Tito Adeoye"
76
+ width="100"
77
+ style="border-radius:50%;" />
78
+ </a>
79
+
80
+ ---
package/dist/index.js CHANGED
@@ -32,7 +32,7 @@ return Ut("section",{className:"sc:space-y-6",children:[
32
32
  /* @__PURE__ */Ut("p",{className:"sc:text-center sc:text-sm sc:font-normal sc:text-gray-400",children:"Accepted file types: JPG, PNG"})]}),
33
33
  /* @__PURE__ */Ut("p",{className:"sc:text-sm sc:text-gray-600 sc:font-semibold",children:"Max file size: 200KB"}),o&&/* @__PURE__ */Ut("aside",{className:"sc:mt-3",children:/* @__PURE__ */Ut("ul",{children:/* @__PURE__ */Ut("li",{className:"sc:m-0 sc:mb-1 sc:flex sc:justify-between sc:gap-3 sc:p-2 sc:hover:rounded-3xl sc:hover:border-1.5 sc:hover:border-gray-100 sc:hover:!bg-transparent",children:[
34
34
  /* @__PURE__ */Ut("div",{className:"sc:flex sc:flex-1 sc:gap-3",children:/* @__PURE__ */Ut("div",{className:"sc:flex sc:flex-1 sc:flex-col",children:/* @__PURE__ */Ut("p",{className:"sc:break-all sc:text-left sc:text-[14px] sc:font-normal sc:text-gray-600",children:o?.name})})}),
35
- /* @__PURE__ */Ut("div",{className:"sc:flex shrink-0 sc:gap-2",children:/* @__PURE__ */Ut("button",{onClick:f,className:"sc:text-lg sc:font-semibold",children:/* @__PURE__ */Ut("img",{src:"https://res.cloudinary.com/dilpkxreh/image/upload/v1771844904/trash_eshhwf.svg",className:"size-5 sc:mx-auto shrink-0",alt:"delete",loading:"eager"})})})]})})})]}):null]}),
35
+ /* @__PURE__ */Ut("div",{className:"sc:flex shrink-0 sc:gap-2",children:/* @__PURE__ */Ut("button",{onClick:f,className:"sc:text-lg sc:font-semibold",children:/* @__PURE__ */Ut("img",{src:"https://adhere-prod.s3.amazonaws.com/logo/trash.svg",className:"size-5 sc:mx-auto shrink-0",alt:"delete",loading:"eager"})})})]})})})]}):null]}),
36
36
  /* @__PURE__ */Ut("button",{onClick:()=>r(i.identifier,i.identifier_type,i.country),className:Od("sc:text-md sc:h-12 sc:w-full sc:rounded-xl sc:text-center sc:font-semibold sc:disabled:opacity-50"),disabled:!i?.country||!i?.identifier||!i?.identifier_type||!o&&t.verification_type.includes("document_verification"),style:{background:e.primaryColor,color:e.buttonText},children:"Continue"}),
37
37
  /* @__PURE__ */Ut("div",{className:"sc:w-full sc:h-12"})]});var p}function qd({selectedTheme:t,onStart:e}){/* @__PURE__ */
38
38
  return Ut("section",{className:"sc:mt-8 sc:space-y-6",children:[
@@ -43,7 +43,7 @@ return Ut("section",{className:"sc:mt-8 sc:space-y-6",children:[
43
43
  /* @__PURE__ */Ut("li",{children:"Stay in a well lit area with your eyes clearly visible. "}),
44
44
  /* @__PURE__ */Ut("li",{children:"Remove anything covering your face like masks, glasses, hats."}),
45
45
  /* @__PURE__ */Ut("li",{children:"Follow the onscreen instruction for face capture."})]}),
46
- /* @__PURE__ */Ut("button",{onClick:e,className:Od("sc:text-md sc:h-12 sc:w-full sc:rounded-xl sc:text-center sc:font-semibold "),style:{background:t.primaryColor,color:t.buttonText},children:"Take a selfie"})]})}const Yd=[362,385,387,263,373,380],Xd=[33,160,158,133,153,144],Jd=t=>{const e=t[1].x,r=t[234].x,n=(e-r)/(t[454].x-r);return n<.35?"LEFT":n>.65?"RIGHT":"CENTER"};class Zd{baseUrl;timeout;session;onError;destroy;constructor(t,e){this.baseUrl="http://localhost:8000",this.timeout=t.timeout||45e3,this.session=t.session,this.onError=t.onError,this.destroy=e}async request(t,e,r,n){const o=new AbortController,s=setTimeout(()=>o.abort(),this.timeout);try{const s=r instanceof FormData,a=await fetch(`${this.baseUrl}${e}`,{method:t,headers:{Authorization:`Session ${this.session}`,...n||{},...s?{}:{"Content-Type":"application/json"}},body:r?s?r:JSON.stringify(r):void 0,signal:o.signal});if(!(a.headers.get("content-type")||"").includes("application/json"))throw new Error(`Unexpected response from ${e} (${a.status})`);let c;try{c=await a.json()}catch(i){c=null}if(!a.ok){const t=c?.message||c?.error||`Error: ${a.status}`;throw{status:a.status,message:t,data:c}}return c}catch(a){throw"AbortError"===a.name?this.onError?.({error:a,message:"Request timeout",code:"TIMEOUT_ERROR"}):403==a.status||401==a.status?(this.onError?.({error:a,message:"Session expired. Please restart the process",code:"AUTH_ERROR"}),console.error("Authentication failed. Session is no longer valid."),setTimeout(()=>{"function"==typeof this.destroy&&this.destroy()},2e3)):this.onError?.({error:a||a.data,message:"An error occured",code:"UNKNOWN_ERROR"}),a}finally{clearTimeout(s)}}post(t,e,r){return this.request("POST",t,e,r)}patch(t,e,r){return this.request("PATCH",t,e,r)}get(t){return this.request("GET",t)}}function Qd({onComplete:t,canClose:e}){const[r,n]=et(0);return rt(()=>{let o;return r<99?o=setInterval(()=>{n(t=>{const e=t+(Math.floor(10*Math.random())+1);return e>=99?99:e})},500):99===r&&e&&(n(100),t&&t()),()=>clearInterval(o)},[r,e,t]),/* @__PURE__ */Ut("div",{className:"sc:mt-8 sc:space-y-4",children:[
46
+ /* @__PURE__ */Ut("button",{onClick:e,className:Od("sc:text-md sc:h-12 sc:w-full sc:rounded-xl sc:text-center sc:font-semibold "),style:{background:t.primaryColor,color:t.buttonText},children:"Take a selfie"})]})}const Yd=[362,385,387,263,373,380],Xd=[33,160,158,133,153,144],Jd=t=>{const e=t[1].x,r=t[234].x,n=(e-r)/(t[454].x-r);return n<.35?"LEFT":n>.65?"RIGHT":"CENTER"};class Zd{baseUrl;timeout;session;onError;destroy;constructor(t,e){this.baseUrl="https://dev-adhere.smartcomply.com",this.timeout=t.timeout||45e3,this.session=t.session,this.onError=t.onError,this.destroy=e}async request(t,e,r,n){const o=new AbortController,s=setTimeout(()=>o.abort(),this.timeout);try{const s=r instanceof FormData,a=await fetch(`${this.baseUrl}${e}`,{method:t,headers:{Authorization:`Session ${this.session}`,...n||{},...s?{}:{"Content-Type":"application/json"}},body:r?s?r:JSON.stringify(r):void 0,signal:o.signal});if(!(a.headers.get("content-type")||"").includes("application/json"))throw new Error(`Unexpected response from ${e} (${a.status})`);let c;try{c=await a.json()}catch(i){c=null}if(!a.ok){const t=c?.message||c?.error||`Error: ${a.status}`;throw{status:a.status,message:t,data:c}}return c}catch(a){throw"AbortError"===a.name?this.onError?.({error:a,message:"Request timeout",code:"TIMEOUT_ERROR"}):403==a.status||401==a.status?(this.onError?.({error:a,message:"Session expired. Please restart the process",code:"AUTH_ERROR"}),console.error("Authentication failed. Session is no longer valid."),setTimeout(()=>{"function"==typeof this.destroy&&this.destroy()},2e3)):this.onError?.({error:a||a.data,message:"An error occured",code:"UNKNOWN_ERROR"}),a}finally{clearTimeout(s)}}post(t,e,r){return this.request("POST",t,e,r)}patch(t,e,r){return this.request("PATCH",t,e,r)}get(t){return this.request("GET",t)}}function Qd({onComplete:t,canClose:e}){const[r,n]=et(0);return rt(()=>{let o;return r<99?o=setInterval(()=>{n(t=>{const e=t+(Math.floor(10*Math.random())+1);return e>=99?99:e})},500):99===r&&e&&(n(100),t&&t()),()=>clearInterval(o)},[r,e,t]),/* @__PURE__ */Ut("div",{className:"sc:mt-8 sc:space-y-4",children:[
47
47
  /* @__PURE__ */Ut("section",{className:"sc:space-y-1",children:[
48
48
  /* @__PURE__ */Ut("h3",{className:"sc:text-center sc:animate-pulse sc:text-2xl sc:font-semibold sc:text-gray-600",children:"Finalizing Verification..."}),
49
49
  /* @__PURE__ */Ut("p",{className:"sc:text-center sc:text-sm sc:text-gray-600",children:"Please do not close this page"})]}),
@@ -54,9 +54,9 @@ return Ut(v,{children:F?/* @__PURE__ */Ut(Qd,{canClose:M,onComplete:()=>{t.onSuc
54
54
  /* @__PURE__ */Ut("h3",{className:"sc:text-2xl sc:font-bold sc:text-gray-600 sc:animate-pulse",children:O?0===_&&!E&&b?"Synchronizing Session...":th[_]?.label:"Getting ready..."}),O&&E?/* @__PURE__ */Ut("p",{className:"sc:text-sm sc:text-gray-500",children:th[_]?.subtitle}):null]}),
55
55
  /* @__PURE__ */Ut("div",{className:Od("sc:relative sc:w-full sc:max-w-md sc:aspect-[3/4] sc:overflow-hidden sc:rounded-3xl",O?"sc:bg-[rgba(0,0,0,0.6)]":"sc:bg-[#262A2F]"),children:[
56
56
  /* @__PURE__ */Ut("video",{ref:a,className:"sc:absolute sc:inset-0 sc:w-full sc:h-full sc:object-cover sc:mirror",muted:!0,playsInline:!0}),/* @__PURE__ */Ut("div",O?{className:"sc:absolute sc:inset-0 sc:pointer-events-none sc:flex sc:items-center sc:justify-center",children:/* @__PURE__ */Ut("svg",{viewBox:"0 0 100 100",className:"sc:w-[80%] sc:h-[80%] sc:overflow-visible",children:/* @__PURE__ */Ut("ellipse",{cx:"50",cy:"50",rx:"35",ry:"45",fill:"none",strokeWidth:"3",className:Od("sc:transition-colors sc:duration-500 sc:ease-in-out","neutral"===R&&"sc:stroke-white/50","success"===R&&"sc:stroke-[#62DF98]","error"===R&&"sc:stroke-error-6/60"),style:{filter:"neutral"!==R?`drop-shadow(0 0 8px ${"success"===R?"#22c55e":"#ef4444"})`:"none"}})})}:{className:"sc:absolute sc:w-full sc:h-full sc:gap-1.5 sc:pointer-events-none sc:flex sc:flex-col sc:items-center sc:justify-center",children:[
57
- /* @__PURE__ */Ut("img",{src:"https://res.cloudinary.com/dilpkxreh/image/upload/v1771844904/loading_c1wddz.svg",alt:"loading",loading:"eager",className:"size-9 sc:animate-spin"}),
57
+ /* @__PURE__ */Ut("img",{src:"https://adhere-prod.s3.amazonaws.com/logo/loading.svg",alt:"loading",loading:"eager",className:"size-9 sc:animate-spin"}),
58
58
  /* @__PURE__ */Ut("span",{className:"sc:text-white sc:text-sm sc:text-center",children:"Loading camera"})]})]})]})})};function rh({redirect_url:t,destroy:e}){return rt(()=>{const r=setTimeout(()=>{t?window.location.assign(t):e()},3e3);return()=>clearTimeout(r)},[]),/* @__PURE__ */Ut("section",{className:"sc:mt-8 sc:space-y-3",children:[
59
- /* @__PURE__ */Ut("img",{src:"https://res.cloudinary.com/dilpkxreh/image/upload/v1771844904/success_whdphq.svg",className:"size-44 sc:mx-auto shrink-0",alt:"success-icon",loading:"eager"}),
59
+ /* @__PURE__ */Ut("img",{src:"https://adhere-prod.s3.amazonaws.com/logo/success.svg",className:"size-44 sc:mx-auto shrink-0",alt:"success-icon",loading:"eager"}),
60
60
  /* @__PURE__ */Ut("h3",{className:"sc:text-center sc:text-2xl sc:font-semibold sc:text-gray-600",children:"Identity verified"}),
61
61
  /* @__PURE__ */Ut("p",{className:"sc:text-center sc:text-sm sc:text-gray-600",children:"We have successfully verified your identity. You can close this page now."})]})}function nh({destroy:t,onExpire:e}){const[r,n]=et(120),[o,s]=et(!1);rt(()=>{const t=setInterval(()=>{n(t=>t>0?t-1:0)},1e3);return()=>clearInterval(t)},[]),rt(()=>{if(r>0&&!o)return;Kd.error("Time limit exceeded"),s(!1);const n=setTimeout(()=>{e?.(),t()},1500);return()=>clearTimeout(n)},[r,o]);const i=Math.floor(r/60),a=r%60;/* @__PURE__ */
62
62
  return Ut("p",{className:Od("sc:text-2xl sc:font-bold sc:font-[monospace]",r<60?"sc:text-error-6":"sc:text-gray-600"),children:[i,":",a.toString().padStart(2,"0")]})}function oh(){const[t,e]=et([]);return rt(()=>Kd.subscribe(e),[]),/* @__PURE__ */Ut("div",{className:"sc:fixed sc:top-6 sc:left-1/2 sc:-translate-x-1/2 sc:z-50 sc:flex sc:flex-col sc:gap-3 sc:w-auto",children:t.map(t=>/* @__PURE__ */Ut("div",{className:`\n sc:flex sc:items-center sc:gap-3\n sc:px-4 sc:py-3\n sc:rounded-lg\n sc:shadow-lg\n sc:text-sm\n sc:text-white\n sc:animate-in sc:fade-in sc:slide-in-from-top-2\n ${"success"===t.type?"sc:bg-green-600":"error"===t.type?"sc:bg-red-600":"sc:bg-gray-50 sc:text-gray-500!"}\n `,children:[
@@ -75,7 +75,7 @@ return Ut("svg","success"===t?{className:"sc:w-4 sc:h-4",viewBox:"0 0 20 20",fil
75
75
  /* @__PURE__ */Ut("p",{className:"sc:relative sc:pt-2 sc:text-center sc:text-xs sc:font-medium sc:text-gray-400",children:"Powered by Adhere"})]}),
76
76
  /* @__PURE__ */Ut("div",{className:"sc:flex sc:flex-1 sc:items-start sc:justify-center sc:px-4 sc:py-24! sc:sm:px-10 sc:md:justify-start sc:h-full",children:/* @__PURE__ */Ut("div",{className:Od("sc:w-full sc:max-w-[500px] sc:max-sm:w-[80vw] sc:max-[450px]:!w-[calc(100vw_-_2rem)]",Dd.includes(e)?"mx-auto":""),children:["loading"===e&&/* @__PURE__ */Ut(zt,{selectedTheme:p}),"welcome"===e&&/* @__PURE__ */Ut(Ud,{config:n,onNext:()=>{r("identity"),h(!0)},selectedTheme:p}),"identity"===e&&/* @__PURE__ */Ut($d,{config:n,onSubmit:async(e,o,i)=>{if(!s&&n?.verification_type?.includes("document_verification"))return void Kd.error("Please upload ID");const a={session_id:f.session,onboarding_type:o,id_number:e,name_to_confirm:"",[o]:e};u({identifier:e,identifier_type:o,country:i});try{const e=t.getHttp(),n=await e.post("/v1/onboarding/verify",a);"verified"===n.status&&(Kd.success(n.message||"Verification successful"),r("liveness-intro"))}catch(c){const t=c?.message||"An error occured. Please try again";Kd.error(t)}},selectedTheme:p,handleIdUpdate:async(t,e)=>{i(t),c(e)},idFile:s}),"liveness-intro"===e&&/* @__PURE__ */Ut(qd,{config:n,onStart:()=>r("liveness-check"),selectedTheme:p}),"liveness-check"===e&&/* @__PURE__ */Ut(eh,{config:n,updateStep:t=>r(t),sdkInstance:f,idFile:s,snapshotFile:a,identityFormData:l,handleDetectionPass:()=>h(!1)}),"success-confirmation"===e&&/* @__PURE__ */Ut(rh,{destroy:t.destroy,redirect_url:n.redirect_url})]})}),"loading"===e||"welcome"===e?/* @__PURE__ */Ut("div",{className:"sc:relative sc:hidden sc:w-[35%] sc:bg-gray-100 sc:h-full sc:md:flex",children:[
77
77
  /* @__PURE__ */Ut("section",{className:"sc:mx-auto sc:flex sc:h-[90%] sc:max-w-[90%] sc:flex-col sc:justify-center sc:space-y-4",children:[
78
- /* @__PURE__ */Ut("img",{src:"https://res.cloudinary.com/dilpkxreh/image/upload/v1771844904/shield-checkmark_cg13fd.png",className:"size-30 sc:mx-auto shrink-0",alt:"shield-checkmark",loading:"eager"}),
78
+ /* @__PURE__ */Ut("img",{src:"https://adhere-prod.s3.amazonaws.com/logo/shield-checkmark.png",className:"size-30 sc:mx-auto shrink-0",alt:"shield-checkmark",loading:"eager"}),
79
79
  /* @__PURE__ */Ut("section",{className:"sc:space-y-2",children:[
80
80
  /* @__PURE__ */Ut("h3",{className:"sc:text-center sc:text-xl sc:font-semibold sc:text-gray-600",children:["Welcome to"," ",n?.brand_name?n?.brand_name:"Brand Name"]}),
81
81
  /* @__PURE__ */Ut("p",{className:"sc:break-all sc:text-center sc:text-sm sc:text-gray-500",children:n?.description?n?.description:"Description"})]})]})," ",
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "@smartcomply/web-sdk",
3
3
  "private": false,
4
- "version": "1.0.1",
4
+ "version": "1.0.2",
5
5
  "description": "Smartcomply Identity Verification SDK",
6
6
  "author": {
7
- "name": "Tito Adeoye"
7
+ "name": "Tito Adeoye",
8
+ "email": "tito@smartcomply.com"
8
9
  },
10
+ "contributors": [
11
+ {
12
+ "name": "Tito Adeoye",
13
+ "url": "https://github.com/titoadeoye",
14
+ "email": "tito@smartcomply.com"
15
+ }
16
+ ],
9
17
  "type": "module",
10
18
  "main": "dist/index.js",
11
19
  "module": "dist/index.cjs",
@@ -57,5 +65,6 @@
57
65
  "typescript": "~5.9.3",
58
66
  "typescript-eslint": "^8.48.0",
59
67
  "vite": "^7.3.1"
60
- }
68
+ },
69
+ "license": "UNLICENSED"
61
70
  }