@seeka-labs/sdk-apps-server-host 3.2.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/LICENSE +19 -0
- package/README.md +1 -0
- package/dist/sdk-apps-server-host.commonjs.js +1 -0
- package/dist/sdk-apps-server-host.module.mjs +1 -0
- package/dist/types/auth/index.d.ts +13 -0
- package/dist/types/auth/index.d.ts.map +1 -0
- package/dist/types/browser/index.d.ts +5 -0
- package/dist/types/browser/index.d.ts.map +1 -0
- package/dist/types/http/index.d.ts +21 -0
- package/dist/types/http/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/jobs/models/index.d.ts +9 -0
- package/dist/types/jobs/models/index.d.ts.map +1 -0
- package/dist/types/logger/index.d.ts +9 -0
- package/dist/types/logger/index.d.ts.map +1 -0
- package/dist/types/state/adapters/redis.d.ts +15 -0
- package/dist/types/state/adapters/redis.d.ts.map +1 -0
- package/dist/types/state/installation/index.d.ts +7 -0
- package/dist/types/state/installation/index.d.ts.map +1 -0
- package/dist/types/ui/auth/index.d.ts +5 -0
- package/dist/types/ui/auth/index.d.ts.map +1 -0
- package/package.json +67 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
in the Software without restriction, including without limitation the rights
|
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
furnished to do so, subject to the following conditions:
|
|
9
|
+
|
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
|
11
|
+
copies or substantial portions of the Software.
|
|
12
|
+
|
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
19
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Seeka Apps SDK - Node JS
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var ue=Object.create;var y=Object.defineProperty;var fe=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var Ae=(e,t)=>{for(var n in t)y(e,n,{get:t[n],enumerable:!0})},V=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of ge(t))!me.call(e,a)&&a!==n&&y(e,a,{get:()=>t[a],enumerable:!(s=fe(t,a))||s.enumerable});return e};var I=(e,t,n)=>(n=e!=null?ue(Ie(e)):{},V(t||!e||!e.__esModule?y(n,"default",{value:e,enumerable:!0}):n,e)),ke=e=>V(y({},"__esModule",{value:!0}),e);var Le={};Ae(Le,{appLogger:()=>re,backgroundJobLogger:()=>Pe,checkAuth:()=>ne,childLogger:()=>k,connect:()=>z,createOrUpdateInstallation:()=>xe,deleteInstallation:()=>he,disconnect:()=>Y,generateAppUiHttpRequestResponse:()=>Ee,getAccessTokenAndCheck:()=>F,getKey:()=>C,getList:()=>$,getOrCreate:()=>we,getOrCreateClient:()=>u,getSeekaBrowserPlugin:()=>Re,getSeekaBrowserPluginByName:()=>ce,isConnected:()=>b,listInstallations:()=>ye,remove:()=>H,set:()=>D,startServices:()=>U,stopServices:()=>Ce,tryGet:()=>B,tryGetInstallation:()=>P,webhookLogger:()=>ve});module.exports=ke(Le);var X=require("redis"),h=I(require("winston")),Se=process.env.REDIS_CONNECTION_TLS==="true"?"rediss://":"redis://",Te=`${Se}${process.env.REDIS_CONNECTION_USER}:${process.env.REDIS_CONNECTION_PASSWORD}@${process.env.REDIS_CONNECTION_HOST}:${process.env.REDIS_CONNECTION_PORT}`,x,u=e=>x||(x=(0,X.createClient)({url:Te,disableClientInfo:!0}).on("error",t=>e.error("Redis Client ",{ex:h.exceptions.getAllInfo(t)})),x),z=async e=>{await(await u(e)).connect()},b=async e=>(await u(e)).isOpen,Y=async e=>{await(await u(e)).destroy()},Z=e=>`seeka:app:${process.env.SEEKA_APP_ID}:${e}`,C=(e,t)=>`${Z(e)}:${t}`;async function we(e,t,n,s="string",a){let r=C(e,t),o=await u(a),p=await ee(o,r);return p?JSON.parse(p):(s==="json"?await o.json.set(r,"$",n):await o.set(r,JSON.stringify(n)),n)}async function B(e,t,n="string",s){let a=C(e,t),r=await u(s);if(n==="json"){let o=await r.json.get(a);if(o)return o}else{let o=await ee(r,a);if(o)return JSON.parse(o)}return null}async function $(e,t){let n=Z(e),s=await u(t),a=await s.keys(`${n}:*`),r=await s.mGet(a);return r?r.filter(o=>!!o).map(o=>JSON.parse(o)):[]}async function D(e,t,n,s="string",a){let r=C(e,t),o=await u(a);s==="json"?await o.json.set(r,"$",n):await o.set(r,JSON.stringify(n))}async function H(e,t,n){let s=C(e,t);await(await u(n)).del(s)}async function ee(e,t){let n=await e.get(t);return typeof n=="string"?n:n?n.toString():""}var U=async e=>{e.debug(`Trying to connect to Redis - ${process.env.REDIS_CONNECTION_HOST}`);try{await b(e)?e.verbose(`Redis already connected - ${process.env.REDIS_CONNECTION_HOST}`):(e.profile("service.redis.connect"),await z(e),e.profile("service.redis.connect"),e.debug(`Redis connected - ${process.env.REDIS_CONNECTION_HOST}`))}catch(t){throw e.error(`Failed to connect to Redis - ${process.env.REDIS_CONNECTION_HOST}`,{ex:h.exceptions.getAllInfo(t)}),t}},Ce=async e=>{e.debug(`Trying to disconnect from Redis - ${process.env.REDIS_CONNECTION_HOST}`);try{await b(e)===!1?e.verbose(`Redis already disconnected - ${process.env.REDIS_CONNECTION_HOST}`):(e.profile("service.redis.disconnect"),await Y(e),e.profile("service.redis.disconnect"),e.verbose(`Redis disconnected - ${process.env.REDIS_CONNECTION_HOST}`))}catch(t){throw e.error(`Failed to disconnect from Redis - ${process.env.REDIS_CONNECTION_HOST}`,{ex:h.exceptions.getAllInfo(t)}),t}};var v="install",P=async(e,t,n)=>{let s=await B(v,e,"string",n);if(s==null&&t)throw n.error(`Seeka installation ${e} not found`),new Error(`Seeka installation ${e} not found`);return s},ye=async e=>await $(v,e),xe=async(e,t)=>{e.installationState||(e.installationState={}),e.installedAt||(e.installedAt=new Date().toISOString());let n=await P(e.applicationInstallId,!1,t)===null;return await D(v,e.applicationInstallId,e,"string",t),t.info(n?"Created installation state":"Updated installation state",{applicationInstallId:e.applicationInstallId,organisationId:e.organisationId,organisationBrandId:e.organisationBrandId}),e},he=async(e,t)=>{await H(v,e,t),t.info("Deleted installation state",{applicationInstallId:e})};var E=e=>"seeka_app_"+e+"_at_app",N=e=>"seeka_app_"+e+"_at_core",j="X-Seeka-App-Token",W="X-Seeka-CoreApi-Token",_="at_app",O="at_core";var te=I(require("jsonwebtoken"));var F=async(e,t,n,s)=>{let a=new URL(e),r=t.get("Cookie"),o=a.searchParams.get(_)||"";if(!o&&t.get(j)&&(o=t.get(j)?.split("Bearer ")[1]),!o&&r){let i=r.split(";").find(d=>d.trim().startsWith(E(process.env.SEEKA_APP_ID)));i&&(o=i.split("=")[1])}let p=a.searchParams.get(O)||"";if(!p&&t.get(W)&&(p=t.get(W)?.split("Bearer ")[1]),!p&&r){let i=r.split(";").find(d=>d.trim().startsWith(N(process.env.SEEKA_APP_ID)));i&&(p=i.split("=")[1])}return await ne(o,p,n,s)},ne=async(e,t,n,s)=>{let a,r,o;if(e)try{let i=te.default.verify(e,process.env.SEEKA_APP_SECRET,{ignoreNotBefore:!0});if(s.info("Decoded token",{decoded:i}),!i.appId||i.appId.replace(/-/g,"")!==process.env.SEEKA_APP_ID.replace(/-/g,"")){s.error("Invalid token - app id does not match",{decoded:i,appIdToken:i.appId,appIdEnv:process.env.SEEKA_APP_ID});return}else a=i.appId;if(i.appInstallId)r=i.appInstallId;else{s.error("Invalid token - no appInstallId",{decoded:i});return}o=i.exp}catch(i){s.error("Failed to validate token",{err:i});return}else{s.error("No access token present");return}n&&await n(s);let p=await P(r,!1,s);if(p==null){s.warn("UI call cannot be processed as the installation ID is not known by this app",{seekaAppInstallId:r});return}return{appAccessToken:e,coreApiAccessToken:t,seekaAppId:a,seekaAppInstallId:r,expiresAt:o,installation:p}};var K=require("fs"),S=I(require("path"));var f=I(require("winston")),se=require("@opentelemetry/winston-transport"),oe=[new f.transports.Console({level:process.env.LOGGING_LEVEL,format:f.format.combine(f.format.errors({stack:!0}),f.format.cli(),f.format.splat()),handleExceptions:!0,handleRejections:!0})];process.env.OTEL_SDK_DISABLED!=="true"&&oe.push(new se.OpenTelemetryTransportV3({handleExceptions:!0,handleRejections:!0}));var re=f.createLogger({level:process.env.LOGGING_LEVEL,transports:oe,exitOnError:!1}),k=(e,t,n=re,s={})=>n.child({...e,...t?{seekaAppInstallId:t.applicationInstallId,seekaAppInstallOrganisationBrandId:t.organisationBrandId,seekaAppInstallOrganisationId:t.organisationId,...s?.invocationId?{"faas.invocation_id":s.invocationId}:{}}:{}}),ve=(e,t)=>{let n={seekaWebhookType:e.type,seekaWebhookIsTest:e.isTest,RequestId:e.requestId,"faas.invocation_id":t.invocationId,CausationId:e.causationId,CorrelationId:e.causationId},s=e.context;return s&&(n.seekaAppInstallId=s.applicationInstallId,n.seekaAppInstallOrganisationBrandId=s.organisationBrandId,n.seekaAppInstallOrganisationId=s.organisationId),k(n)},Pe=(e,t,n)=>{let s={jobContext:t,jobName:e,"faas.invocation_id":n.invocationId,CausationId:t?.causationId,CorrelationId:t?.causationId,seekaAppInstallId:t?.applicationInstallId??t?.payload.applicationInstallId,seekaAppInstallOrganisationBrandId:t?.organisationBrandId,seekaAppInstallOrganisationId:t?.organisationId};return k(s)};async function ie(e,t){return await K.promises.readFile(e,{encoding:t})}var q="config.js",Ee=async(e,t,n,s,a,r)=>{let o=k(null,void 0,void 0,s);o.profile("http.seeka.webhook.app.ui");let i=new URL(e).pathname?.replace(/^\/app/,"")||"/";o.verbose("Received Seeka ui request",{requestedPath:i,url:e,method:t});let d=S.default.resolve("./dist/src/ui/build"),Q=null,M=null,T,le={},R=[],c,L=async()=>(c=await F(e,n,()=>U(o),o),c?(Q=c.seekaAppId,M=c.seekaAppInstallId,T=c.installation,o=k(null,T,o,s),R.push({name:E(process.env.SEEKA_APP_ID),value:c.appAccessToken,httpOnly:!0,secure:!0,sameSite:"None",expires:new Date(c.expiresAt*1e3)}),R.push({name:N(process.env.SEEKA_APP_ID),value:c.coreApiAccessToken,httpOnly:!0,secure:!0,sameSite:"None",expires:new Date(c.expiresAt*1e3)}),null):{status:403,jsonBody:{error:"Invalid token"}}),g=S.default.join(d,i),m;try{if(i==="/"+q){let l=await L();if(l)return l;let A=process.env.APP_UI_BASE_PATH?`${process.env.APP_UI_BASE_PATH}`:"",w=`${process.env.SELF_HOST_BASEURL}${A}`,de={seekaAppId:Q||"",seekaAppInstallId:M||"",organisationBrandId:T?.organisationBrandId||"",appBaseUrl:w,state:await a(T,o)};m=`window.seekaAppConfig = ${JSON.stringify(de)}`}if(i.startsWith("/api")){let l=await L();if(l)return l;let A=await r(i,t,T,o);return A||{status:404,jsonBody:{error:"Not found"}}}if(i==="/"||i==="/index.html"){let l=await L();if(l)return l;let A=`?${_}=${encodeURIComponent(c?.appAccessToken||"")}&${O}=${encodeURIComponent(c?.coreApiAccessToken||"")}&`;g=S.default.join(d,"index.html");let w=await ie(g,"utf-8");w=w.replace(q+"?",q+A),m=w}else m||(g=S.default.join(d,i),await K.promises.access(g))}catch(l){g=S.default.join(d,"index.html"),console.log("File not found, serving index.html",{err:l,requestedPath:i,buildPath:d,filePath:g,content:m})}return m||(m=await ie(g)),{status:200,headers:{"Content-Type":Ne(g),"Referrer-Policy":"no-referrer",...le},cookies:R,body:m}};function Ne(e){return e.endsWith(".html")?"text/html":e.endsWith(".js")?"application/javascript":e.endsWith(".css")?"text/css":e.endsWith(".png")?"image/png":e.endsWith(".jpg")||e.endsWith(".jpeg")?"image/jpeg":e.endsWith(".gif")?"image/gif":"application/octet-stream"}var J=I(require("fs")),ae=I(require("path")),G=I(require("util")),pe=I(require("winston")),_e=G.default.promisify(J.default.existsSync),Oe=G.default.promisify(J.default.readFile);async function Re(e,t,n){return await ce(e,"seeka-browser-plugin.min.js",t,n)}async function ce(e,t,n,s){s.profile("http.seeka.browser.plugin");let a,r;try{s.verbose("Handling request for browser plugin content");let o=ae.default.resolve(`./dist/src/browser/${t}`);await _e(o)?(a=await Oe(o,"utf8"),r=`${e}(${JSON.stringify(n)})`):s.error("Browser plugin content not found",{path:o})}catch(o){s.error("Failed to handle request for browser plugin content",{ex:pe.default.exceptions.getAllInfo(o)})}finally{s.profile("http.seeka.browser.plugin"),s.verbose("Request for browser plugin content handled")}if(!a||!r)throw new Error("Failed to handle request for browser plugin content");return{content:a,init:r}}0&&(module.exports={appLogger,backgroundJobLogger,checkAuth,childLogger,connect,createOrUpdateInstallation,deleteInstallation,disconnect,generateAppUiHttpRequestResponse,getAccessTokenAndCheck,getKey,getList,getOrCreate,getOrCreateClient,getSeekaBrowserPlugin,getSeekaBrowserPluginByName,isConnected,listInstallations,remove,set,startServices,stopServices,tryGet,tryGetInstallation,webhookLogger});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createClient as Z}from"redis";import*as C from"winston";var ee=process.env.REDIS_CONNECTION_TLS==="true"?"rediss://":"redis://",te=`${ee}${process.env.REDIS_CONNECTION_USER}:${process.env.REDIS_CONNECTION_PASSWORD}@${process.env.REDIS_CONNECTION_HOST}:${process.env.REDIS_CONNECTION_PORT}`,w,g=e=>w||(w=Z({url:te,disableClientInfo:!0}).on("error",t=>e.error("Redis Client ",{ex:C.exceptions.getAllInfo(t)})),w),ne=async e=>{await(await g(e)).connect()},D=async e=>(await g(e)).isOpen,se=async e=>{await(await g(e)).destroy()},H=e=>`seeka:app:${process.env.SEEKA_APP_ID}:${e}`,y=(e,t)=>`${H(e)}:${t}`;async function Ae(e,t,s,n="string",a){let r=y(e,t),o=await g(a),p=await q(o,r);return p?JSON.parse(p):(n==="json"?await o.json.set(r,"$",s):await o.set(r,JSON.stringify(s)),s)}async function U(e,t,s="string",n){let a=y(e,t),r=await g(n);if(s==="json"){let o=await r.json.get(a);if(o)return o}else{let o=await q(r,a);if(o)return JSON.parse(o)}return null}async function j(e,t){let s=H(e),n=await g(t),a=await n.keys(`${s}:*`),r=await n.mGet(a);return r?r.filter(o=>!!o).map(o=>JSON.parse(o)):[]}async function W(e,t,s,n="string",a){let r=y(e,t),o=await g(a);n==="json"?await o.json.set(r,"$",s):await o.set(r,JSON.stringify(s))}async function F(e,t,s){let n=y(e,t);await(await g(s)).del(n)}async function q(e,t){let s=await e.get(t);return typeof s=="string"?s:s?s.toString():""}var K=async e=>{e.debug(`Trying to connect to Redis - ${process.env.REDIS_CONNECTION_HOST}`);try{await D(e)?e.verbose(`Redis already connected - ${process.env.REDIS_CONNECTION_HOST}`):(e.profile("service.redis.connect"),await ne(e),e.profile("service.redis.connect"),e.debug(`Redis connected - ${process.env.REDIS_CONNECTION_HOST}`))}catch(t){throw e.error(`Failed to connect to Redis - ${process.env.REDIS_CONNECTION_HOST}`,{ex:C.exceptions.getAllInfo(t)}),t}},ke=async e=>{e.debug(`Trying to disconnect from Redis - ${process.env.REDIS_CONNECTION_HOST}`);try{await D(e)===!1?e.verbose(`Redis already disconnected - ${process.env.REDIS_CONNECTION_HOST}`):(e.profile("service.redis.disconnect"),await se(e),e.profile("service.redis.disconnect"),e.verbose(`Redis disconnected - ${process.env.REDIS_CONNECTION_HOST}`))}catch(t){throw e.error(`Failed to disconnect from Redis - ${process.env.REDIS_CONNECTION_HOST}`,{ex:C.exceptions.getAllInfo(t)}),t}};var x="install",O=async(e,t,s)=>{let n=await U(x,e,"string",s);if(n==null&&t)throw s.error(`Seeka installation ${e} not found`),new Error(`Seeka installation ${e} not found`);return n},we=async e=>await j(x,e),Ce=async(e,t)=>{e.installationState||(e.installationState={}),e.installedAt||(e.installedAt=new Date().toISOString());let s=await O(e.applicationInstallId,!1,t)===null;return await W(x,e.applicationInstallId,e,"string",t),t.info(s?"Created installation state":"Updated installation state",{applicationInstallId:e.applicationInstallId,organisationId:e.organisationId,organisationBrandId:e.organisationBrandId}),e},ye=async(e,t)=>{await F(x,e,t),t.info("Deleted installation state",{applicationInstallId:e})};var h=e=>"seeka_app_"+e+"_at_app",v=e=>"seeka_app_"+e+"_at_core",R="X-Seeka-App-Token",L="X-Seeka-CoreApi-Token",P="at_app",E="at_core";import oe from"jsonwebtoken";var J=async(e,t,s,n)=>{let a=new URL(e),r=t.get("Cookie"),o=a.searchParams.get(P)||"";if(!o&&t.get(R)&&(o=t.get(R)?.split("Bearer ")[1]),!o&&r){let i=r.split(";").find(d=>d.trim().startsWith(h(process.env.SEEKA_APP_ID)));i&&(o=i.split("=")[1])}let p=a.searchParams.get(E)||"";if(!p&&t.get(L)&&(p=t.get(L)?.split("Bearer ")[1]),!p&&r){let i=r.split(";").find(d=>d.trim().startsWith(v(process.env.SEEKA_APP_ID)));i&&(p=i.split("=")[1])}return await re(o,p,s,n)},re=async(e,t,s,n)=>{let a,r,o;if(e)try{let i=oe.verify(e,process.env.SEEKA_APP_SECRET,{ignoreNotBefore:!0});if(n.info("Decoded token",{decoded:i}),!i.appId||i.appId.replace(/-/g,"")!==process.env.SEEKA_APP_ID.replace(/-/g,"")){n.error("Invalid token - app id does not match",{decoded:i,appIdToken:i.appId,appIdEnv:process.env.SEEKA_APP_ID});return}else a=i.appId;if(i.appInstallId)r=i.appInstallId;else{n.error("Invalid token - no appInstallId",{decoded:i});return}o=i.exp}catch(i){n.error("Failed to validate token",{err:i});return}else{n.error("No access token present");return}s&&await s(n);let p=await O(r,!1,n);if(p==null){n.warn("UI call cannot be processed as the installation ID is not known by this app",{seekaAppInstallId:r});return}return{appAccessToken:e,coreApiAccessToken:t,seekaAppId:a,seekaAppInstallId:r,expiresAt:o,installation:p}};import{promises as M}from"fs";import T from"path";import*as u from"winston";import{OpenTelemetryTransportV3 as ie}from"@opentelemetry/winston-transport";var G=[new u.transports.Console({level:process.env.LOGGING_LEVEL,format:u.format.combine(u.format.errors({stack:!0}),u.format.cli(),u.format.splat()),handleExceptions:!0,handleRejections:!0})];process.env.OTEL_SDK_DISABLED!=="true"&&G.push(new ie({handleExceptions:!0,handleRejections:!0}));var ae=u.createLogger({level:process.env.LOGGING_LEVEL,transports:G,exitOnError:!1}),S=(e,t,s=ae,n={})=>s.child({...e,...t?{seekaAppInstallId:t.applicationInstallId,seekaAppInstallOrganisationBrandId:t.organisationBrandId,seekaAppInstallOrganisationId:t.organisationId,...n?.invocationId?{"faas.invocation_id":n.invocationId}:{}}:{}}),Oe=(e,t)=>{let s={seekaWebhookType:e.type,seekaWebhookIsTest:e.isTest,RequestId:e.requestId,"faas.invocation_id":t.invocationId,CausationId:e.causationId,CorrelationId:e.causationId},n=e.context;return n&&(s.seekaAppInstallId=n.applicationInstallId,s.seekaAppInstallOrganisationBrandId=n.organisationBrandId,s.seekaAppInstallOrganisationId=n.organisationId),S(s)},Re=(e,t,s)=>{let n={jobContext:t,jobName:e,"faas.invocation_id":s.invocationId,CausationId:t?.causationId,CorrelationId:t?.causationId,seekaAppInstallId:t?.applicationInstallId??t?.payload.applicationInstallId,seekaAppInstallOrganisationBrandId:t?.organisationBrandId,seekaAppInstallOrganisationId:t?.organisationId};return S(n)};async function Q(e,t){return await M.readFile(e,{encoding:t})}var b="config.js",We=async(e,t,s,n,a,r)=>{let o=S(null,void 0,void 0,n);o.profile("http.seeka.webhook.app.ui");let i=new URL(e).pathname?.replace(/^\/app/,"")||"/";o.verbose("Received Seeka ui request",{requestedPath:i,url:e,method:t});let d=T.resolve("./dist/src/ui/build"),B=null,$=null,A,z={},N=[],c,_=async()=>(c=await J(e,s,()=>K(o),o),c?(B=c.seekaAppId,$=c.seekaAppInstallId,A=c.installation,o=S(null,A,o,n),N.push({name:h(process.env.SEEKA_APP_ID),value:c.appAccessToken,httpOnly:!0,secure:!0,sameSite:"None",expires:new Date(c.expiresAt*1e3)}),N.push({name:v(process.env.SEEKA_APP_ID),value:c.coreApiAccessToken,httpOnly:!0,secure:!0,sameSite:"None",expires:new Date(c.expiresAt*1e3)}),null):{status:403,jsonBody:{error:"Invalid token"}}),f=T.join(d,i),I;try{if(i==="/"+b){let l=await _();if(l)return l;let m=process.env.APP_UI_BASE_PATH?`${process.env.APP_UI_BASE_PATH}`:"",k=`${process.env.SELF_HOST_BASEURL}${m}`,Y={seekaAppId:B||"",seekaAppInstallId:$||"",organisationBrandId:A?.organisationBrandId||"",appBaseUrl:k,state:await a(A,o)};I=`window.seekaAppConfig = ${JSON.stringify(Y)}`}if(i.startsWith("/api")){let l=await _();if(l)return l;let m=await r(i,t,A,o);return m||{status:404,jsonBody:{error:"Not found"}}}if(i==="/"||i==="/index.html"){let l=await _();if(l)return l;let m=`?${P}=${encodeURIComponent(c?.appAccessToken||"")}&${E}=${encodeURIComponent(c?.coreApiAccessToken||"")}&`;f=T.join(d,"index.html");let k=await Q(f,"utf-8");k=k.replace(b+"?",b+m),I=k}else I||(f=T.join(d,i),await M.access(f))}catch(l){f=T.join(d,"index.html"),console.log("File not found, serving index.html",{err:l,requestedPath:i,buildPath:d,filePath:f,content:I})}return I||(I=await Q(f)),{status:200,headers:{"Content-Type":pe(f),"Referrer-Policy":"no-referrer",...z},cookies:N,body:I}};function pe(e){return e.endsWith(".html")?"text/html":e.endsWith(".js")?"application/javascript":e.endsWith(".css")?"text/css":e.endsWith(".png")?"image/png":e.endsWith(".jpg")||e.endsWith(".jpeg")?"image/jpeg":e.endsWith(".gif")?"image/gif":"application/octet-stream"}import V from"fs";import ce from"path";import X from"util";import le from"winston";var de=X.promisify(V.existsSync),ue=X.promisify(V.readFile);async function Me(e,t,s){return await fe(e,"seeka-browser-plugin.min.js",t,s)}async function fe(e,t,s,n){n.profile("http.seeka.browser.plugin");let a,r;try{n.verbose("Handling request for browser plugin content");let o=ce.resolve(`./dist/src/browser/${t}`);await de(o)?(a=await ue(o,"utf8"),r=`${e}(${JSON.stringify(s)})`):n.error("Browser plugin content not found",{path:o})}catch(o){n.error("Failed to handle request for browser plugin content",{ex:le.exceptions.getAllInfo(o)})}finally{n.profile("http.seeka.browser.plugin"),n.verbose("Request for browser plugin content handled")}if(!a||!r)throw new Error("Failed to handle request for browser plugin content");return{content:a,init:r}}export{ae as appLogger,Re as backgroundJobLogger,re as checkAuth,S as childLogger,ne as connect,Ce as createOrUpdateInstallation,ye as deleteInstallation,se as disconnect,We as generateAppUiHttpRequestResponse,J as getAccessTokenAndCheck,y as getKey,j as getList,Ae as getOrCreate,g as getOrCreateClient,Me as getSeekaBrowserPlugin,fe as getSeekaBrowserPluginByName,D as isConnected,we as listInstallations,F as remove,W as set,K as startServices,ke as stopServices,U as tryGet,O as tryGetInstallation,Oe as webhookLogger};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Logger } from 'winston';
|
|
2
|
+
import { SeekaAppInstallContext } from "@seeka-labs/sdk-apps-core";
|
|
3
|
+
export declare const getAccessTokenAndCheck: (requestUrl: string, headers: Headers, startAppServices: (logger: Logger) => Promise<void>, logger: Logger) => Promise<AppApiAuthInfo | undefined>;
|
|
4
|
+
export declare const checkAuth: <TInstallState>(appAccessToken: string | undefined, coreApiAccessToken: string | undefined, startAppServices: (logger: Logger) => Promise<void> | undefined, logger: Logger) => Promise<AppApiAuthInfo | undefined>;
|
|
5
|
+
export interface AppApiAuthInfo {
|
|
6
|
+
appAccessToken: string | undefined;
|
|
7
|
+
coreApiAccessToken: string | undefined;
|
|
8
|
+
seekaAppId: string;
|
|
9
|
+
seekaAppInstallId: string;
|
|
10
|
+
expiresAt: number;
|
|
11
|
+
installation: SeekaAppInstallContext<any>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAC,sBAAsB,EAAC,MAAM,2BAA2B,CAAC;AAEjE,eAAO,MAAM,sBAAsB,GAAU,YAAY,MAAM,EAAE,SAAS,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CA8B1L,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,aAAa,EAAE,gBAAgB,MAAM,GAAG,SAAS,EAAE,oBAAoB,MAAM,GAAG,SAAS,EAAE,kBAAkB,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAgD9O,CAAA;AAED,MAAM,WAAW,cAAc;IAAG,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAAE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Logger } from 'winston';
|
|
2
|
+
import { SeekaBrowserSdkPluginWebhookResponse } from "@seeka-labs/sdk-apps-server";
|
|
3
|
+
export declare function getSeekaBrowserPlugin<TAppBrowserSdkPluginConfig>(browserPluginGlobalName: string, pluginConfig: TAppBrowserSdkPluginConfig, logger: Logger): Promise<SeekaBrowserSdkPluginWebhookResponse>;
|
|
4
|
+
export declare function getSeekaBrowserPluginByName<TAppBrowserSdkPluginConfig>(browserPluginGlobalName: string, pluginBuildJsFilename: string, pluginConfig: TAppBrowserSdkPluginConfig, logger: Logger): Promise<SeekaBrowserSdkPluginWebhookResponse>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAC,oCAAoC,EAAC,MAAM,6BAA6B,CAAC;AAKjF,wBAAsB,qBAAqB,CAAC,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAIhN;AAED,wBAAsB,2BAA2B,CAAC,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAkCrP"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BodyInit, HeadersInit } from "undici";
|
|
2
|
+
export type HttpMethod = 'GET' | 'POST' | 'DELETE' | 'PATCH' | 'HEAD';
|
|
3
|
+
export interface CookieInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
value: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
path?: string;
|
|
8
|
+
expires?: Date | number;
|
|
9
|
+
secure?: boolean;
|
|
10
|
+
httpOnly?: boolean;
|
|
11
|
+
sameSite?: 'Strict' | 'Lax' | 'None' | undefined;
|
|
12
|
+
maxAge?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface AppUiHttpRequestResponse {
|
|
15
|
+
body?: BodyInit;
|
|
16
|
+
jsonBody?: any;
|
|
17
|
+
status?: number;
|
|
18
|
+
headers?: HeadersInit;
|
|
19
|
+
cookies?: CookieInfo[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAKd,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAOd,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAKxB,MAAM,CAAC,EAAE,OAAO,CAAC;IAKjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAKjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,wBAAwB;IAIvC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAMhB,QAAQ,CAAC,EAAE,GAAG,CAAC;IAMf,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,OAAO,CAAC,EAAE,WAAW,CAAC;IAKtB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './state/adapters/redis';
|
|
2
|
+
export * from './state/installation';
|
|
3
|
+
export * from './auth';
|
|
4
|
+
export * from './ui/auth';
|
|
5
|
+
export * from './browser';
|
|
6
|
+
export * from './jobs/models';
|
|
7
|
+
export * from './http';
|
|
8
|
+
export * from './logger';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/jobs/models/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B,CAAC,QAAQ;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,QAAQ,CAAA;CAClB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as winston from 'winston';
|
|
2
|
+
import type { SeekaAppInstallContext, ServerlessFunctionExecutionContext } from "@seeka-labs/sdk-apps-core";
|
|
3
|
+
import { BackgroundJobRequestContext } from "../jobs/models";
|
|
4
|
+
import { SeekaWebhookPayload } from "@seeka-labs/sdk-apps-server";
|
|
5
|
+
export declare const appLogger: winston.Logger;
|
|
6
|
+
export declare const childLogger: (meta: object | null, installation?: SeekaAppInstallContext<any>, l?: winston.Logger, serverlessContext?: ServerlessFunctionExecutionContext) => winston.Logger;
|
|
7
|
+
export declare const webhookLogger: (payload: SeekaWebhookPayload, serverlessContext: ServerlessFunctionExecutionContext) => winston.Logger;
|
|
8
|
+
export declare const backgroundJobLogger: (jobName: string, jobContext: BackgroundJobRequestContext<any> | undefined, serverlessContext: ServerlessFunctionExecutionContext) => winston.Logger;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,KAAK,EAAC,sBAAsB,EAAE,kCAAkC,EAAC,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAC,2BAA2B,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAC,mBAAmB,EAA8C,MAAM,6BAA6B,CAAC;AAwB7G,eAAO,MAAM,SAAS,gBAIpB,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,GAAG,IAAI,EAAE,eAAe,sBAAsB,CAAC,GAAG,CAAC,EAAE,IAAG,OAAO,CAAC,MAAkB,EAAE,oBAAmB,kCAAuC,mBAOpL,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,SAAS,mBAAmB,EAAE,mBAAmB,kCAAkC,mBAmBhH,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,YAAY,2BAA2B,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,mBAAmB,kCAAkC,mBAanK,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RedisClientType } from 'redis';
|
|
2
|
+
import { type Logger } from 'winston';
|
|
3
|
+
export declare const getOrCreateClient: (logger: Logger) => RedisClientType;
|
|
4
|
+
export declare const connect: (logger: Logger) => Promise<void>;
|
|
5
|
+
export declare const isConnected: (logger: Logger) => Promise<boolean>;
|
|
6
|
+
export declare const disconnect: (logger: Logger) => Promise<void>;
|
|
7
|
+
export declare const getKey: (stateType: string, key: string) => string;
|
|
8
|
+
export declare function getOrCreate<TState>(stateType: string, key: string, toCreate: TState, mode: "string" | "json" | undefined, logger: Logger): Promise<TState>;
|
|
9
|
+
export declare function tryGet<TState>(stateType: string, key: string, mode: "string" | "json" | undefined, logger: Logger): Promise<TState | null>;
|
|
10
|
+
export declare function getList<TState>(stateType: string, logger: Logger): Promise<TState[]>;
|
|
11
|
+
export declare function set<TState>(stateType: string, key: string, toCreate: TState, mode: "string" | "json" | undefined, logger: Logger): Promise<void>;
|
|
12
|
+
export declare function remove(stateType: string, key: string, logger: Logger): Promise<void>;
|
|
13
|
+
export declare const startServices: (logger: Logger) => Promise<void>;
|
|
14
|
+
export declare const stopServices: (logger: Logger) => Promise<void>;
|
|
15
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/state/adapters/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,SAAS,CAAC;AAMpC,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,KAAG,eAWlD,CAAA;AAED,eAAO,MAAM,OAAO,GAAU,QAAQ,MAAM,kBAG3C,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,qBAG/C,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,kBAG9C,CAAA;AAGD,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,EAAE,KAAK,MAAM,WAAwC,CAAA;AAE7F,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,YAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/J;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,YAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAa/I;AAED,wBAAsB,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAS1F;AAED,wBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,YAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASrJ;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1F;AAaD,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,kBAiBjD,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,kBAiBhD,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Logger } from "winston";
|
|
2
|
+
import { SeekaAppInstallContext } from "@seeka-labs/sdk-apps-core";
|
|
3
|
+
export declare const tryGetInstallation: <TInstallState>(applicationInstallId: string, throwWhenNotFound: boolean, logger: Logger) => Promise<SeekaAppInstallContext<TInstallState> | null>;
|
|
4
|
+
export declare const listInstallations: <TInstallState>(logger: Logger) => Promise<SeekaAppInstallContext<TInstallState>[]>;
|
|
5
|
+
export declare const createOrUpdateInstallation: <TInstallState>(state: SeekaAppInstallContext<TInstallState>, logger: Logger) => Promise<SeekaAppInstallContext<TInstallState>>;
|
|
6
|
+
export declare const deleteInstallation: (applicationInstallId: string, logger: Logger) => Promise<void>;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/state/installation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,sBAAsB,EAAC,MAAM,2BAA2B,CAAC;AAIjE,eAAO,MAAM,kBAAkB,GAAU,aAAa,EAAE,sBAAsB,MAAM,EAAE,mBAAmB,OAAO,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAQtL,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,aAAa,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE,CAItH,CAAA;AAGD,eAAO,MAAM,0BAA0B,GAAU,aAAa,EAAE,OAAO,sBAAsB,CAAC,aAAa,CAAC,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAW3K,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,sBAAsB,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAInG,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SeekaAppInstallContext, ServerlessFunctionExecutionContext } from "@seeka-labs/sdk-apps-core";
|
|
2
|
+
import { AppUiHttpRequestResponse, HttpMethod } from "../../http";
|
|
3
|
+
import { Logger } from "winston";
|
|
4
|
+
export declare const generateAppUiHttpRequestResponse: <TAppUiClientInitState, TInstallationState>(requestUrl: string, requestMethod: HttpMethod, requestHeaders: Headers, context: ServerlessFunctionExecutionContext, createBrowserInitState: (installation: SeekaAppInstallContext<TInstallationState>, logger: Logger) => Promise<TAppUiClientInitState>, apiRouteHandler: (requestedPath: string, requestedMethod: HttpMethod, installation: SeekaAppInstallContext<TInstallationState>, logger: Logger) => Promise<AppUiHttpRequestResponse | null>) => Promise<AppUiHttpRequestResponse>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/auth/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EAEtB,kCAAkC,EACnC,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAC,wBAAwB,EAAc,UAAU,EAAC,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAYjC,eAAO,MAAM,gCAAgC,GAAU,qBAAqB,EAAE,kBAAkB,EAC9F,YAAY,MAAM,EAClB,eAAe,UAAU,EACzB,gBAAgB,OAAO,EACvB,SAAS,kCAAkC,EAC3C,wBAAwB,CAAC,YAAY,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,EACpI,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,KAC1L,OAAO,CAAC,wBAAwB,CAyIlC,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@seeka-labs/sdk-apps-server-host",
|
|
3
|
+
"version": "3.2.3",
|
|
4
|
+
"description": "Seeka - Apps SDK - Node.js - hosting layer",
|
|
5
|
+
"author": "SEEKA <platform@seeka.co>",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"apps",
|
|
9
|
+
"seeka",
|
|
10
|
+
"node"
|
|
11
|
+
],
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/"
|
|
14
|
+
],
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"types": "./dist/types/index.d.ts",
|
|
19
|
+
"src": "src/index.ts",
|
|
20
|
+
"main": "./dist/sdk-apps-server-host.commonjs.js",
|
|
21
|
+
"module": "./dist/sdk-apps-server-host.module.mjs",
|
|
22
|
+
"scripts": {
|
|
23
|
+
"clean": "rimraf dist build package",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"build:ci": "yarn run build",
|
|
26
|
+
"build": "yarn esbuild src/index.ts --outfile=dist/sdk-apps-server-host.module.mjs --bundle --analyze --platform=node --format=esm --packages=external --minify && yarn esbuild src/index.ts --outfile=dist/sdk-apps-server-host.commonjs.js --bundle --analyze --platform=node --format=cjs --packages=external --minify && yarn tsc --emitDeclarationOnly",
|
|
27
|
+
"dev": "yarn esbuild src/index.ts --outfile=dist/sdk-apps-server-host.module.mjs --bundle --analyze --platform=node --format=esm --packages=external --sourcemap && yarn tsc --emitDeclarationOnly",
|
|
28
|
+
"watch": "yarn esbuild watch --platform=node --sourcemap --format=esm",
|
|
29
|
+
"test": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 jest"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@jest/globals": "^30",
|
|
33
|
+
"@redis/client": "^5",
|
|
34
|
+
"@redis/json": "^5",
|
|
35
|
+
"@seeka-labs/sdk-apps-core": "^3.2.3",
|
|
36
|
+
"@seeka-labs/sdk-apps-server": "^3.2.3",
|
|
37
|
+
"@types/jest": "^30",
|
|
38
|
+
"@types/memory-cache": "^0",
|
|
39
|
+
"@types/node": "^22",
|
|
40
|
+
"axios": "^1",
|
|
41
|
+
"cross-env": "^10",
|
|
42
|
+
"esbuild": "^0",
|
|
43
|
+
"jest": "^30",
|
|
44
|
+
"memory-cache": "^0",
|
|
45
|
+
"nswag": "^14",
|
|
46
|
+
"openid-client": "^6",
|
|
47
|
+
"redis": "^5",
|
|
48
|
+
"ts-jest": "^29",
|
|
49
|
+
"ts-node": "^10",
|
|
50
|
+
"typescript": "^5",
|
|
51
|
+
"undici": "^7",
|
|
52
|
+
"winston": "^3"
|
|
53
|
+
},
|
|
54
|
+
"gitHead": "2e406e463088cdf6ccdb2e2b15eb35c369b729c0",
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@redis/client": "^5",
|
|
57
|
+
"@redis/json": "^5",
|
|
58
|
+
"@seeka-labs/sdk-apps-core": "workspace:* || ^3",
|
|
59
|
+
"@seeka-labs/sdk-apps-server": "workspace:* || ^3",
|
|
60
|
+
"axios": "^1",
|
|
61
|
+
"memory-cache": "^0",
|
|
62
|
+
"openid-client": "^6",
|
|
63
|
+
"redis": "^5",
|
|
64
|
+
"undici": "^7",
|
|
65
|
+
"winston": "^3"
|
|
66
|
+
}
|
|
67
|
+
}
|