obi-sdk 0.1.2 → 0.1.3
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/README.md +58 -65
- package/dist/modular/chunks/{index-634e0df5.js → obi-widget-9c0306f4.js} +2151 -146
- package/dist/modular/chunks/obi-widget-9c0306f4.js.map +1 -0
- package/dist/modular/chunks/{session-e208b5bb.js → session-37970ed1.js} +18 -18
- package/dist/modular/chunks/session-37970ed1.js.map +1 -0
- package/dist/modular/core.js +34 -3
- package/dist/modular/core.js.map +1 -1
- package/dist/modular/index.js +122 -119
- package/dist/modular/index.js.map +1 -1
- package/dist/modular/ui.js +29 -1992
- package/dist/modular/ui.js.map +1 -1
- package/dist/obi-loader.iife.js +1 -1
- package/dist/obi-loader.iife.js.map +1 -1
- package/dist/obi-loader.js +36 -33
- package/dist/obi-loader.js.map +1 -1
- package/dist/obi-loader.umd.cjs +1 -1
- package/dist/obi-loader.umd.cjs.map +1 -1
- package/dist/obi-sdk.es.js +1183 -1142
- package/dist/obi-sdk.standalone.iife.js +76 -47
- package/dist/obi-sdk.standalone.iife.js.map +1 -1
- package/dist/obi-sdk.umd.js +88 -59
- package/package.json +2 -2
- package/dist/modular/chunks/index-634e0df5.js.map +0 -1
- package/dist/modular/chunks/session-e208b5bb.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obi-loader.umd.cjs","sources":["../src/loader.ts"],"sourcesContent":["/**\n * Obi Widget Loader Script\n *\n * This script dynamically loads the Obi Widget web component on any webpage\n * with a simple script tag inclusion.\n */\n\n// Configuration with defaults that can be overridden\ninterface ObiWidgetConfig {\n // Position options\n position?: \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\"\n // API key for authentication\n apiKey?: string\n //
|
|
1
|
+
{"version":3,"file":"obi-loader.umd.cjs","sources":["../src/loader.ts"],"sourcesContent":["/**\n * Obi Widget Loader Script\n *\n * This script dynamically loads the Obi Widget web component on any webpage\n * with a simple script tag inclusion.\n */\n\n// Configuration with defaults that can be overridden\ninterface ObiWidgetConfig {\n // Position options\n position?: \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\"\n // API key for authentication\n apiKey?: string\n // Auto-initialize the widget\n autoInit?: boolean\n // User information\n user?: {\n id: string\n email?: string\n metadata?: any\n }\n}\n\n// API Base URL constant\nconst API_BASE_URL = \"https://www.iamobi.ai/api/\"\n\n// Default configuration\nconst DEFAULT_CONFIG: ObiWidgetConfig = {\n position: \"bottom-right\",\n autoInit: true,\n}\n\nclass ObiWidgetLoader {\n private config: ObiWidgetConfig\n private widget: HTMLElement | null\n\n constructor(config: ObiWidgetConfig = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config }\n this.widget = null\n\n // Only auto-initialize if autoInit is true\n if (this.config.autoInit !== false) {\n this.init()\n }\n }\n\n private async init() {\n try {\n await this.loadScript()\n\n // Create and mount the widget\n this.createWidget()\n\n // Initialize the SDK\n this.initializeSDK()\n } catch (error) {\n console.error(\"Failed to initialize Obi Widget:\", error)\n }\n }\n\n private async loadScript() {\n return new Promise<void>((resolve, reject) => {\n // Check if already loaded\n if (document.querySelector(\"script[data-obi-sdk]\")) {\n resolve()\n return\n }\n\n // First fetch the latest version number from npm registry\n this.fetchLatestVersion()\n .then((version) => {\n const script = document.createElement(\"script\")\n // Use a regular script tag (not module) for the IIFE build\n script.type = \"text/javascript\"\n\n // Use the specific version for better caching\n const versionToUse = version || \"latest\"\n const cdnUrl = `https://unpkg.com/obi-sdk@${versionToUse}/dist/obi-sdk.standalone.iife.js`\n\n script.src = cdnUrl\n script.dataset.obiSdk = \"true\"\n script.onload = () => resolve()\n script.onerror = () => reject(new Error(\"Failed to load Obi SDK script\"))\n\n document.head.appendChild(script)\n })\n .catch(() => {\n // If fetching version fails, fallback to latest\n const script = document.createElement(\"script\")\n script.type = \"text/javascript\"\n script.src = \"https://unpkg.com/obi-sdk@latest/dist/obi-sdk.standalone.iife.js\"\n script.dataset.obiSdk = \"true\"\n script.onload = () => resolve()\n script.onerror = () => reject(new Error(\"Failed to load Obi SDK script\"))\n document.head.appendChild(script)\n })\n })\n }\n\n // Fetch the latest version from npm registry\n private async fetchLatestVersion(): Promise<string | null> {\n try {\n const response = await fetch(\"https://registry.npmjs.org/obi-sdk/latest\")\n if (response.ok) {\n const data = await response.json()\n return data.version\n }\n return null\n } catch (error) {\n console.warn(\"Failed to fetch latest version:\", error)\n return null\n }\n }\n\n private createWidget() {\n // Don't create multiple widgets\n if (document.querySelector(\"obi-widget\")) {\n this.widget = document.querySelector(\"obi-widget\")\n return\n }\n\n // Check if the component is registered\n if (!customElements.get(\"obi-widget\")) {\n console.warn(\n \"Obi Widget component not registered - import the component before using the loader\"\n )\n return\n }\n\n const widget = document.createElement(\"obi-widget\")\n\n // Pass API key if provided\n if (this.config.apiKey) {\n widget.setAttribute(\"api-key\", this.config.apiKey)\n }\n\n // Set API base URL\n widget.setAttribute(\"api-base-url\", API_BASE_URL)\n\n // Set position attribute\n if (this.config.position) {\n widget.setAttribute(\"position\", this.config.position)\n }\n\n // Set user information if provided\n if (this.config.user) {\n widget.setAttribute(\"user\", JSON.stringify(this.config.user))\n }\n\n // Append to body\n document.body.appendChild(widget)\n this.widget = widget\n console.log(\"Widget created and added to DOM\")\n }\n\n private initializeSDK() {\n // Initialize SDK with config\n if (typeof (window as any).ObiSDK !== \"undefined\") {\n // Define a basic type for the SDK\n type SDKInstance = {\n // Add known properties/methods of your SDK here\n [key: string]: any\n }\n\n // Create the SDK instance with API key only\n const config = {\n apiKey: this.config.apiKey,\n apiBaseUrl: API_BASE_URL,\n }\n\n try {\n const sdk: SDKInstance = new (window as any).ObiSDK(config)\n // Store SDK instance on window for debugging\n ;(window as any).obiSDKInstance = sdk\n } catch (error) {\n console.error(\"Failed to initialize SDK:\", error)\n }\n }\n }\n\n // Public method to manually initialize the widget\n public initialize(): void {\n this.init()\n }\n\n // Add a public method to get the widget element\n public getWidget(): HTMLElement | null {\n return this.widget\n }\n}\n\n// Auto-initialize if config is provided in window.obiWidgetConfig\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n const config = (window as any).obiWidgetConfig || {}\n new ObiWidgetLoader(config)\n})\n\n// Export the loader for manual initialization\nexport { ObiWidgetLoader }\n"],"names":["API_BASE_URL","DEFAULT_CONFIG","ObiWidgetLoader","config","error","resolve","reject","version","script","cdnUrl","response","widget","sdk"],"mappings":"uOAwBA,MAAMA,EAAe,6BAGfC,EAAkC,CACtC,SAAU,eACV,SAAU,EACZ,EAEA,MAAMC,CAAgB,CAIpB,YAAYC,EAA0B,GAAI,CACxC,KAAK,OAAS,CAAE,GAAGF,EAAgB,GAAGE,CAAO,EAC7C,KAAK,OAAS,KAGV,KAAK,OAAO,WAAa,IAC3B,KAAK,KAAK,CAEd,CAEA,MAAc,MAAO,CACf,GAAA,CACF,MAAM,KAAK,aAGX,KAAK,aAAa,EAGlB,KAAK,cAAc,QACZC,EAAO,CACN,QAAA,MAAM,mCAAoCA,CAAK,CACzD,CACF,CAEA,MAAc,YAAa,CACzB,OAAO,IAAI,QAAc,CAACC,EAASC,IAAW,CAExC,GAAA,SAAS,cAAc,sBAAsB,EAAG,CAC1CD,IACR,MACF,CAGA,KAAK,mBAAmB,EACrB,KAAME,GAAY,CACX,MAAAC,EAAS,SAAS,cAAc,QAAQ,EAE9CA,EAAO,KAAO,kBAIR,MAAAC,EAAS,6BADMF,GAAW,QACwB,mCAExDC,EAAO,IAAMC,EACbD,EAAO,QAAQ,OAAS,OACjBA,EAAA,OAAS,IAAMH,IACtBG,EAAO,QAAU,IAAMF,EAAO,IAAI,MAAM,+BAA+B,CAAC,EAE/D,SAAA,KAAK,YAAYE,CAAM,CAAA,CACjC,EACA,MAAM,IAAM,CAEL,MAAAA,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,KAAO,kBACdA,EAAO,IAAM,mEACbA,EAAO,QAAQ,OAAS,OACjBA,EAAA,OAAS,IAAMH,IACtBG,EAAO,QAAU,IAAMF,EAAO,IAAI,MAAM,+BAA+B,CAAC,EAC/D,SAAA,KAAK,YAAYE,CAAM,CAAA,CACjC,CAAA,CACJ,CACH,CAGA,MAAc,oBAA6C,CACrD,GAAA,CACI,MAAAE,EAAW,MAAM,MAAM,2CAA2C,EACxE,OAAIA,EAAS,IACE,MAAMA,EAAS,QAChB,QAEP,WACAN,EAAO,CACN,eAAA,KAAK,kCAAmCA,CAAK,EAC9C,IACT,CACF,CAEQ,cAAe,CAEjB,GAAA,SAAS,cAAc,YAAY,EAAG,CACnC,KAAA,OAAS,SAAS,cAAc,YAAY,EACjD,MACF,CAGA,GAAI,CAAC,eAAe,IAAI,YAAY,EAAG,CAC7B,QAAA,KACN,oFAAA,EAEF,MACF,CAEM,MAAAO,EAAS,SAAS,cAAc,YAAY,EAG9C,KAAK,OAAO,QACdA,EAAO,aAAa,UAAW,KAAK,OAAO,MAAM,EAI5CA,EAAA,aAAa,eAAgBX,CAAY,EAG5C,KAAK,OAAO,UACdW,EAAO,aAAa,WAAY,KAAK,OAAO,QAAQ,EAIlD,KAAK,OAAO,MACdA,EAAO,aAAa,OAAQ,KAAK,UAAU,KAAK,OAAO,IAAI,CAAC,EAIrD,SAAA,KAAK,YAAYA,CAAM,EAChC,KAAK,OAASA,EACd,QAAQ,IAAI,iCAAiC,CAC/C,CAEQ,eAAgB,CAElB,GAAA,OAAQ,OAAe,OAAW,IAAa,CAQjD,MAAMR,EAAS,CACb,OAAQ,KAAK,OAAO,OACpB,WAAYH,CAAA,EAGV,GAAA,CACF,MAAMY,EAAmB,IAAK,OAAe,OAAOT,CAAM,EAExD,OAAe,eAAiBS,QAC3BR,EAAO,CACN,QAAA,MAAM,4BAA6BA,CAAK,CAClD,CACF,CACF,CAGO,YAAmB,CACxB,KAAK,KAAK,CACZ,CAGO,WAAgC,CACrC,OAAO,KAAK,MACd,CACF,CAGA,SAAS,iBAAiB,mBAAoB,IAAM,CAC5C,MAAAD,EAAU,OAAe,iBAAmB,GAClD,IAAID,EAAgBC,CAAM,CAC5B,CAAC"}
|