@ofuma/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/dist/index.cjs CHANGED
@@ -1,6 +1,4 @@
1
1
  'use strict';Object.defineProperty(exports,'__esModule',{value:true});var zod=require('zod');/* @ofuma/sdk - https://github.com/thedumebi/ofuma.ai/tree/master/sdk */
2
- var ee=Object.create;var G=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var ne=(e,t,r)=>t in e?G(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var m=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var se=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of oe(t))!Ee.call(e,s)&&s!==r&&G(e,s,{get:()=>t[s],enumerable:!(n=te(t,s))||n.enumerable});return e};var Te=(e,t,r)=>(r=e!=null?ee(re(e)):{},se(G(r,"default",{value:e,enumerable:true}),e));var d=(e,t,r)=>ne(e,typeof t!="symbol"?t+"":t,r);var j=K((he,ae)=>{ae.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:false}};});var Z=K((ve,S)=>{var H=m("fs"),$=m("path"),_e=m("os"),Ie=m("crypto"),Re=j(),Y=Re.version,Ae=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Oe(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,`
3
- `);let n;for(;(n=Ae.exec(r))!=null;){let s=n[1],E=n[2]||"";E=E.trim();let T=E[0];E=E.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),T==='"'&&(E=E.replace(/\\n/g,`
4
- `),E=E.replace(/\\r/g,"\r")),t[s]=E;}return t}function Se(e){e=e||{};let t=W(e);e.path=t;let r=c.configDotenv(e);if(!r.parsed){let T=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw T.code="MISSING_DATA",T}let n=X(e).split(","),s=n.length,E;for(let T=0;T<s;T++)try{let i=n[T].trim(),I=le(r,i);E=c.decrypt(I.ciphertext,I.key);break}catch(i){if(T+1>=s)throw i}return c.parse(E)}function Ne(e){console.log(`[dotenv@${Y}][WARN] ${e}`);}function U(e){console.log(`[dotenv@${Y}][DEBUG] ${e}`);}function Q(e){console.log(`[dotenv@${Y}] ${e}`);}function X(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function le(e,t){let r;try{r=new URL(t);}catch(i){if(i.code==="ERR_INVALID_URL"){let I=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw I.code="INVALID_DOTENV_KEY",I}throw i}let n=r.password;if(!n){let i=new Error("INVALID_DOTENV_KEY: Missing key part");throw i.code="INVALID_DOTENV_KEY",i}let s=r.searchParams.get("environment");if(!s){let i=new Error("INVALID_DOTENV_KEY: Missing environment part");throw i.code="INVALID_DOTENV_KEY",i}let E=`DOTENV_VAULT_${s.toUpperCase()}`,T=e.parsed[E];if(!T){let i=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${E} in your .env.vault file.`);throw i.code="NOT_FOUND_DOTENV_ENVIRONMENT",i}return {ciphertext:T,key:n}}function W(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)H.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=$.resolve(process.cwd(),".env.vault");return H.existsSync(t)?t:null}function k(e){return e[0]==="~"?$.join(_e.homedir(),e.slice(1)):e}function de(e){let t=!!(e&&e.debug),r=e&&"quiet"in e?e.quiet:true;(t||!r)&&Q("Loading env from encrypted .env.vault");let n=c._parseVault(e),s=process.env;return e&&e.processEnv!=null&&(s=e.processEnv),c.populate(s,n,e),{parsed:n}}function De(e){let t=$.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug),s=e&&"quiet"in e?e.quiet:true;e&&e.encoding?r=e.encoding:n&&U("No encoding is specified. UTF-8 is used by default");let E=[t];if(e&&e.path)if(!Array.isArray(e.path))E=[k(e.path)];else {E=[];for(let N of e.path)E.push(k(N));}let T,i={};for(let N of E)try{let _=c.parse(H.readFileSync(N,{encoding:r}));c.populate(i,_,e);}catch(_){n&&U(`Failed to load ${N} ${_.message}`),T=_;}let I=process.env;if(e&&e.processEnv!=null&&(I=e.processEnv),c.populate(I,i,e),n||!s){let N=Object.keys(i).length,_=[];for(let B of E)try{let f=$.relative(process.cwd(),B);_.push(f);}catch(f){n&&U(`Failed to load ${B} ${f.message}`),T=f;}Q(`injecting env (${N}) from ${_.join(",")}`);}return T?{parsed:i,error:T}:{parsed:i}}function ue(e){if(X(e).length===0)return c.configDotenv(e);let t=W(e);return t?c._configVault(e):(Ne(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),c.configDotenv(e))}function Pe(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),s=n.subarray(0,12),E=n.subarray(-16);n=n.subarray(12,-16);try{let T=Ie.createDecipheriv("aes-256-gcm",r,s);return T.setAuthTag(E),`${T.update(n)}${T.final()}`}catch(T){let i=T instanceof RangeError,I=T.message==="Invalid key length",N=T.message==="Unsupported state or unable to authenticate data";if(i||I){let _=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw _.code="INVALID_DOTENV_KEY",_}else if(N){let _=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw _.code="DECRYPTION_FAILED",_}else throw T}}function Le(e,t,r={}){let n=!!(r&&r.debug),s=!!(r&&r.override);if(typeof t!="object"){let E=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw E.code="OBJECT_REQUIRED",E}for(let E of Object.keys(t))Object.prototype.hasOwnProperty.call(e,E)?(s===true&&(e[E]=t[E]),n&&U(s===true?`"${E}" is already defined and WAS overwritten`:`"${E}" is already defined and was NOT overwritten`)):e[E]=t[E];}var c={configDotenv:De,_configVault:de,_parseVault:Se,config:ue,decrypt:Pe,parse:Oe,populate:Le};S.exports.configDotenv=c.configDotenv;S.exports._configVault=c._configVault;S.exports._parseVault=c._parseVault;S.exports.config=c.config;S.exports.decrypt=c.decrypt;S.exports.parse=c.parse;S.exports.populate=c.populate;S.exports=c;});var o={PROMPTS:"/prompts",CHAINS:"/prompts/chains"},a={LIST:"/",CREATE:"/",GET_BY_ID:"/:id",GET_BY_PROMPT_ID:"/by-id/:promptId",INTERPOLATE:"/:id/interpolate",UPDATE:"/:id/update",DELETE:"/delete",DELETE_VERSION:"/versions/delete",ADD_LABEL:"/:id/labels",REMOVE_LABEL:"/:id/labels",SET_VERSION_ENVIRONMENT:"/versions/environment",EXECUTE:"/execute",PLAYGROUND_EXECUTE:"/playground/execute",SET_VERSION_AS_LATEST:"/versions/set-latest",DUPLICATE:"/duplicate"},p={LIST_CHAINS:"/list",CREATE_CHAIN:"/create",GET_CHAIN:"/:id",UPDATE_CHAIN:"/:id",DELETE_CHAIN:"/:id",DUPLICATE_CHAIN:"/:id/duplicate",CREATE_FROM_DEFINITION:"/from-definition",ADD_NODE:"/:id/nodes",UPDATE_NODE:"/:chainId/nodes/:nodeId",DELETE_NODE:"/:chainId/nodes/:nodeId",ADD_DEPENDENCY:"/:id/dependencies",DELETE_DEPENDENCY:"/:chainId/dependencies/:dependencyId",EXECUTE_CHAIN:"/:id/execute",RESUME_MANUAL_INPUT:"/executions/:executionId/resume",GET_EXECUTION:"/executions/:id",LIST_EXECUTIONS:"/:id/executions"},A={PROMPTS:{LIST:`${o.PROMPTS}${a.LIST}`,CREATE:`${o.PROMPTS}${a.CREATE}`,GET_BY_ID:e=>`${o.PROMPTS}${a.GET_BY_ID.replace(":id",e)}`,GET_BY_PROMPT_ID:e=>`${o.PROMPTS}${a.GET_BY_PROMPT_ID.replace(":promptId",e)}`,INTERPOLATE:e=>`${o.PROMPTS}${a.INTERPOLATE.replace(":id",e)}`,UPDATE:e=>`${o.PROMPTS}${a.UPDATE.replace(":id",e)}`,DELETE:`${o.PROMPTS}${a.DELETE}`,DELETE_VERSION:`${o.PROMPTS}${a.DELETE_VERSION}`,ADD_LABEL:e=>`${o.PROMPTS}${a.ADD_LABEL.replace(":id",e)}`,REMOVE_LABEL:e=>`${o.PROMPTS}${a.REMOVE_LABEL.replace(":id",e)}`,SET_VERSION_ENVIRONMENT:`${o.PROMPTS}${a.SET_VERSION_ENVIRONMENT}`,EXECUTE:`${o.PROMPTS}${a.EXECUTE}`,PLAYGROUND_EXECUTE:`${o.PROMPTS}${a.PLAYGROUND_EXECUTE}`,SET_VERSION_AS_LATEST:`${o.PROMPTS}${a.SET_VERSION_AS_LATEST}`,DUPLICATE:`${o.PROMPTS}${a.DUPLICATE}`},CHAINS:{LIST_CHAINS:`${o.CHAINS}${p.LIST_CHAINS}`,CREATE_CHAIN:`${o.CHAINS}${p.CREATE_CHAIN}`,GET_CHAIN:e=>`${o.CHAINS}${p.GET_CHAIN.replace(":id",e)}`,UPDATE_CHAIN:e=>`${o.CHAINS}${p.UPDATE_CHAIN.replace(":id",e)}`,DELETE_CHAIN:e=>`${o.CHAINS}${p.DELETE_CHAIN.replace(":id",e)}`,DUPLICATE_CHAIN:e=>`${o.CHAINS}${p.DUPLICATE_CHAIN.replace(":id",e)}`,CREATE_FROM_DEFINITION:`${o.CHAINS}${p.CREATE_FROM_DEFINITION}`,ADD_NODE:e=>`${o.CHAINS}${p.ADD_NODE.replace(":id",e)}`,UPDATE_NODE:(e,t)=>`${o.CHAINS}${p.UPDATE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,DELETE_NODE:(e,t)=>`${o.CHAINS}${p.DELETE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,ADD_DEPENDENCY:e=>`${o.CHAINS}${p.ADD_DEPENDENCY.replace(":id",e)}`,DELETE_DEPENDENCY:(e,t)=>`${o.CHAINS}${p.DELETE_DEPENDENCY.replace(":chainId",e).replace(":dependencyId",t)}`,EXECUTE_CHAIN:e=>`${o.CHAINS}${p.EXECUTE_CHAIN.replace(":id",e)}`,RESUME_MANUAL_INPUT:e=>`${o.CHAINS}${p.RESUME_MANUAL_INPUT.replace(":executionId",e)}`,GET_EXECUTION:e=>`${o.CHAINS}${p.GET_EXECUTION.replace(":id",e)}`,LIST_EXECUTIONS:e=>`${o.CHAINS}${p.LIST_EXECUTIONS.replace(":id",e)}`}};var pe=zod.z.object({apiKey:zod.z.string().min(1,"API key is required and cannot be empty"),organizationId:zod.z.string().optional(),env:zod.z.enum(["production","prod","staging","stg","localhost","local"]).optional().default("production"),baseUrl:zod.z.url().optional()});function q(e){try{return pe.parse(e)}catch(t){if(t instanceof zod.z.ZodError){let r=t.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new Error(`SDK configuration validation failed: ${r}`)}throw t}}var g=class extends Error{constructor(r,n,s){super(r);this._status=n;this._response=s;this.name="SDKError";}};var z=Te(Z());if(typeof process<"u"&&["development","test"].includes(process.env.NODE_ENV||""))try{let e=process.env.NODE_ENV==="test"?".env.test":".env";(0,z.config)({path:e});}catch{}var Ue=zod.z.object({OFUMA_API_URL:zod.z.url().optional(),OFUMA_API_URL_PRODUCTION:zod.z.url().optional(),OFUMA_API_URL_STAGING:zod.z.url().optional(),OFUMA_API_URL_LOCAL:zod.z.url().optional()}),h;try{typeof process<"u"&&process.env?h=Ue.parse(process.env):h={};}catch{h={};}var O=h;function v(e){if(e.baseUrl)return e.baseUrl;if(e.env){let t=Ce(e.env,O);if(t)return t}return O.OFUMA_API_URL?O.OFUMA_API_URL:J("production")}function Ce(e,t){let n={production:"OFUMA_API_URL_PRODUCTION",prod:"OFUMA_API_URL_PRODUCTION",staging:"OFUMA_API_URL_STAGING",stg:"OFUMA_API_URL_STAGING",localhost:"OFUMA_API_URL_LOCAL",local:"OFUMA_API_URL_LOCAL"}[e];if(!n)return;let s=t[n];return s||J(e)}function J(e){return {production:O.OFUMA_API_URL_PRODUCTION,prod:O.OFUMA_API_URL_PRODUCTION,staging:O.OFUMA_API_URL_STAGING,stg:O.OFUMA_API_URL_STAGING,localhost:O.OFUMA_API_URL_LOCAL,local:O.OFUMA_API_URL_LOCAL}[e]||"https://api.ofuma.ai"}var L=class{constructor(t){d(this,"config");let r=q(t),n=v(r);this.config={fetch:globalThis.fetch,baseUrl:n,...r};}async request(t,r={}){let n=new URL(t,this.config.baseUrl),s=new Headers({"Content-Type":"application/json",...r.headers});s.set("Authorization",`Bearer ${this.config.apiKey}`),this.config.organizationId&&s.set("x-organization-id",this.config.organizationId);let E=await this.config.fetch(n.toString(),{...r,headers:s});if(!E.ok){let i=await E.text().catch(()=>"Unknown error");throw new g(`HTTP ${E.status}: ${i}`,E.status,E)}return E.headers.get("content-type")?.includes("application/json")?E.json():E.text()}};var y=class extends L{async get(t,r={}){return this.request(A.CHAINS.GET_CHAIN(t),{method:"GET",...r})}async execute(t,r,n={}){return this.request(A.CHAINS.EXECUTE_CHAIN(t),{method:"POST",body:JSON.stringify({chainId:t,...r}),...n})}};var V=class extends L{async list(t={}){return this.request(A.PROMPTS.LIST,{method:"GET",...t})}async get(t,r={},n={}){let s=A.PROMPTS.GET_BY_ID(t);if(r.versionId){let E=new URLSearchParams;E.set("versionId",r.versionId.toString()),s+=`?${E.toString()}`;}return this.request(s,{method:"GET",...n})}async getByPromptId(t,r={},n={}){let s=A.PROMPTS.GET_BY_PROMPT_ID(t);if(r.versionId){let E=new URLSearchParams;E.set("versionId",r.versionId.toString()),s+=`?${E.toString()}`;}return this.request(s,{method:"GET",...n})}async interpolate(t,r,n={}){return this.request(A.PROMPTS.INTERPOLATE(t),{method:"POST",body:JSON.stringify(r),...n})}async setVersionEnvironment(t,r={}){return this.request(A.PROMPTS.SET_VERSION_ENVIRONMENT,{method:"PUT",body:JSON.stringify(t),...r})}async execute(t,r={}){return this.request(A.PROMPTS.EXECUTE,{method:"POST",body:JSON.stringify(t),...r})}};var b=class{constructor(t){d(this,"prompts");d(this,"chains");d(this,"_config");this._config=t,this.prompts=new V(t),this.chains=new y(t);}getBaseUrl(){return v(this._config)}},ze=b;
5
- exports.OfumaSDK=b;exports.default=ze;//# sourceMappingURL=index.cjs.map
2
+ var f=Object.defineProperty;var F=(e,t,o)=>t in e?f(e,t,{enumerable:true,configurable:true,writable:true,value:o}):e[t]=o;var i=(e,t,o)=>F(e,typeof t!="symbol"?t+"":t,o);var E={PROMPTS:"/prompts",CHAINS:"/prompts/chains"},n={LIST:"/",CREATE:"/",GET_BY_ID:"/:id",GET_BY_PROMPT_ID:"/by-id/:promptId",INTERPOLATE:"/:id/interpolate",UPDATE:"/:id/update",DELETE:"/delete",DELETE_VERSION:"/versions/delete",ADD_LABEL:"/:id/labels",REMOVE_LABEL:"/:id/labels",SET_VERSION_ENVIRONMENT:"/versions/environment",EXECUTE:"/execute",PLAYGROUND_EXECUTE:"/playground/execute",SET_VERSION_AS_LATEST:"/versions/set-latest",DUPLICATE:"/duplicate"},r={LIST_CHAINS:"/list",CREATE_CHAIN:"/create",GET_CHAIN:"/:id",UPDATE_CHAIN:"/:id",DELETE_CHAIN:"/:id",DUPLICATE_CHAIN:"/:id/duplicate",CREATE_FROM_DEFINITION:"/from-definition",ADD_NODE:"/:id/nodes",UPDATE_NODE:"/:chainId/nodes/:nodeId",DELETE_NODE:"/:chainId/nodes/:nodeId",ADD_DEPENDENCY:"/:id/dependencies",DELETE_DEPENDENCY:"/:chainId/dependencies/:dependencyId",EXECUTE_CHAIN:"/:id/execute",RESUME_MANUAL_INPUT:"/executions/:executionId/resume",GET_EXECUTION:"/executions/:id",LIST_EXECUTIONS:"/:id/executions"},_={PROMPTS:{LIST:`${E.PROMPTS}${n.LIST}`,CREATE:`${E.PROMPTS}${n.CREATE}`,GET_BY_ID:e=>`${E.PROMPTS}${n.GET_BY_ID.replace(":id",e)}`,GET_BY_PROMPT_ID:e=>`${E.PROMPTS}${n.GET_BY_PROMPT_ID.replace(":promptId",e)}`,INTERPOLATE:e=>`${E.PROMPTS}${n.INTERPOLATE.replace(":id",e)}`,UPDATE:e=>`${E.PROMPTS}${n.UPDATE.replace(":id",e)}`,DELETE:`${E.PROMPTS}${n.DELETE}`,DELETE_VERSION:`${E.PROMPTS}${n.DELETE_VERSION}`,ADD_LABEL:e=>`${E.PROMPTS}${n.ADD_LABEL.replace(":id",e)}`,REMOVE_LABEL:e=>`${E.PROMPTS}${n.REMOVE_LABEL.replace(":id",e)}`,SET_VERSION_ENVIRONMENT:`${E.PROMPTS}${n.SET_VERSION_ENVIRONMENT}`,EXECUTE:`${E.PROMPTS}${n.EXECUTE}`,PLAYGROUND_EXECUTE:`${E.PROMPTS}${n.PLAYGROUND_EXECUTE}`,SET_VERSION_AS_LATEST:`${E.PROMPTS}${n.SET_VERSION_AS_LATEST}`,DUPLICATE:`${E.PROMPTS}${n.DUPLICATE}`},CHAINS:{LIST_CHAINS:`${E.CHAINS}${r.LIST_CHAINS}`,CREATE_CHAIN:`${E.CHAINS}${r.CREATE_CHAIN}`,GET_CHAIN:e=>`${E.CHAINS}${r.GET_CHAIN.replace(":id",e)}`,UPDATE_CHAIN:e=>`${E.CHAINS}${r.UPDATE_CHAIN.replace(":id",e)}`,DELETE_CHAIN:e=>`${E.CHAINS}${r.DELETE_CHAIN.replace(":id",e)}`,DUPLICATE_CHAIN:e=>`${E.CHAINS}${r.DUPLICATE_CHAIN.replace(":id",e)}`,CREATE_FROM_DEFINITION:`${E.CHAINS}${r.CREATE_FROM_DEFINITION}`,ADD_NODE:e=>`${E.CHAINS}${r.ADD_NODE.replace(":id",e)}`,UPDATE_NODE:(e,t)=>`${E.CHAINS}${r.UPDATE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,DELETE_NODE:(e,t)=>`${E.CHAINS}${r.DELETE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,ADD_DEPENDENCY:e=>`${E.CHAINS}${r.ADD_DEPENDENCY.replace(":id",e)}`,DELETE_DEPENDENCY:(e,t)=>`${E.CHAINS}${r.DELETE_DEPENDENCY.replace(":chainId",e).replace(":dependencyId",t)}`,EXECUTE_CHAIN:e=>`${E.CHAINS}${r.EXECUTE_CHAIN.replace(":id",e)}`,RESUME_MANUAL_INPUT:e=>`${E.CHAINS}${r.RESUME_MANUAL_INPUT.replace(":executionId",e)}`,GET_EXECUTION:e=>`${E.CHAINS}${r.GET_EXECUTION.replace(":id",e)}`,LIST_EXECUTIONS:e=>`${E.CHAINS}${r.LIST_EXECUTIONS.replace(":id",e)}`}};var y=zod.z.object({apiKey:zod.z.string().min(1,"API key is required and cannot be empty"),organizationId:zod.z.string().optional(),env:zod.z.enum(["production","prod","staging","stg","localhost","local"]).optional().default("production"),baseUrl:zod.z.url().optional()});function $(e){try{return y.parse(e)}catch(t){if(t instanceof zod.z.ZodError){let o=t.issues.map(T=>`${T.path.join(".")}: ${T.message}`).join(", ");throw new Error(`SDK configuration validation failed: ${o}`)}throw t}}var L=class extends Error{constructor(o,T,I){super(o);this._status=T;this._response=I;this.name="SDKError";}};var H=zod.z.object({OFUMA_API_URL:zod.z.url().optional(),OFUMA_API_URL_PRODUCTION:zod.z.url().optional(),OFUMA_API_URL_STAGING:zod.z.url().optional(),OFUMA_API_URL_LOCAL:zod.z.url().optional()}),C;try{typeof process<"u"&&process.env?C=H.parse(process.env):C={};}catch{C={};}var p=C;function U(e){if(e.baseUrl)return e.baseUrl;if(e.env){let t=V(e.env,p);if(t)return t}return p.OFUMA_API_URL?p.OFUMA_API_URL:m("production")}function V(e,t){let T={production:"OFUMA_API_URL_PRODUCTION",prod:"OFUMA_API_URL_PRODUCTION",staging:"OFUMA_API_URL_STAGING",stg:"OFUMA_API_URL_STAGING",localhost:"OFUMA_API_URL_LOCAL",local:"OFUMA_API_URL_LOCAL"}[e];if(!T)return;let I=t[T];return I||m(e)}function m(e){return {production:p.OFUMA_API_URL_PRODUCTION,prod:p.OFUMA_API_URL_PRODUCTION,staging:p.OFUMA_API_URL_STAGING,stg:p.OFUMA_API_URL_STAGING,localhost:p.OFUMA_API_URL_LOCAL,local:p.OFUMA_API_URL_LOCAL}[e]||"https://api.ofuma.ai"}var N=class{constructor(t){i(this,"config");let o=$(t),T=U(o);this.config={fetch:globalThis.fetch,baseUrl:T,...o};}async request(t,o={}){let T=new URL(t,this.config.baseUrl),I=new Headers({"Content-Type":"application/json",...o.headers});I.set("Authorization",`Bearer ${this.config.apiKey}`),this.config.organizationId&&I.set("x-organization-id",this.config.organizationId);let s=await this.config.fetch(T.toString(),{...o,headers:I});if(!s.ok){let G=await s.text().catch(()=>"Unknown error");throw new L(`HTTP ${s.status}: ${G}`,s.status,s)}return s.headers.get("content-type")?.includes("application/json")?s.json():s.text()}};var d=class extends N{async get(t,o={}){return this.request(_.CHAINS.GET_CHAIN(t),{method:"GET",...o})}async execute(t,o,T={}){return this.request(_.CHAINS.EXECUTE_CHAIN(t),{method:"POST",body:JSON.stringify({chainId:t,...o}),...T})}};var M=class extends N{async list(t={}){return this.request(_.PROMPTS.LIST,{method:"GET",...t})}async get(t,o={},T={}){let I=_.PROMPTS.GET_BY_ID(t);if(o.versionId){let s=new URLSearchParams;s.set("versionId",o.versionId.toString()),I+=`?${s.toString()}`;}return this.request(I,{method:"GET",...T})}async getByPromptId(t,o={},T={}){let I=_.PROMPTS.GET_BY_PROMPT_ID(t);if(o.versionId){let s=new URLSearchParams;s.set("versionId",o.versionId.toString()),I+=`?${s.toString()}`;}return this.request(I,{method:"GET",...T})}async interpolate(t,o,T={}){return this.request(_.PROMPTS.INTERPOLATE(t),{method:"POST",body:JSON.stringify(o),...T})}async setVersionEnvironment(t,o={}){return this.request(_.PROMPTS.SET_VERSION_ENVIRONMENT,{method:"PUT",body:JSON.stringify(t),...o})}async execute(t,o={}){return this.request(_.PROMPTS.EXECUTE,{method:"POST",body:JSON.stringify(t),...o})}};var l=class{constructor(t){i(this,"prompts");i(this,"chains");i(this,"_config");this._config=t,this.prompts=new M(t),this.chains=new d(t);}getBaseUrl(){return U(this._config)}},Re=l;
3
+ exports.OfumaSDK=l;exports.default=Re;//# sourceMappingURL=index.cjs.map
6
4
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/.pnpm/dotenv@16.6.1/node_modules/dotenv/package.json","../../node_modules/.pnpm/dotenv@16.6.1/node_modules/dotenv/lib/main.js","../../packages/shared/dist/constants/endpoints.js","../src/types.ts","../src/env.ts","../src/utils.ts","../src/client.ts","../src/resources/chains/index.ts","../src/resources/prompts/index.ts","../src/index.ts"],"names":["require_package","__commonJSMin","exports","module","require_main","fs","path","os","crypto","packageJson","version","LINE","parse","src","obj","lines","match","key","value","maybeQuote","_parseVault","options","vaultPath","_vaultPath","result","DotenvModule","err","keys","_dotenvKey","length","decrypted","i","attrs","_instructions","error","_warn","message","_debug","_log","dotenvKey","uri","environment","environmentKey","ciphertext","possibleVaultPath","filepath","_resolveHome","envPath","_configVault","debug","quiet","parsed","processEnv","configDotenv","dotenvPath","encoding","optionPaths","lastError","parsedAll","e","keysCount","shortPaths","filePath","relative","config","decrypt","encrypted","keyStr","nonce","authTag","aesgcm","isRange","invalidKeyLength","decryptionFailed","populate","override","ROUTE_BASE_PATHS","PROMPT_ROUTES","PROMPT_CHAIN_ROUTES","API_ENDPOINTS","id","promptId","chainId","nodeId","dependencyId","executionId","SDKConfigSchema","z","validateSDKConfig","issues","issue","SDKError","_status","_response","import_dotenv","envFile","SDKEnvSchema","env","env_default","getBaseUrl","url","getEnvironmentUrl","getDefaultUrl","envName","envConfig","envVarKey","envVarValue","BaseClient","__publicField","validatedConfig","baseUrl","headers","response","errorMessage","ChainsResource","data","PromptsResource","queryOptions","params","OfumaSDK","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.6.1\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = Boolean(options && options.debug)\n const quiet = options && 'quiet' in options ? options.quiet : true\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n const quiet = options && 'quiet' in options ? options.quiet : true\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(parsedAll).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","export const ROUTE_BASE_PATHS = {\n PROMPTS: '/prompts',\n FOLDERS: '/folders',\n TEAMS: '/teams',\n ORGANIZATIONS: '/organizations',\n DASHBOARD: '/dashboard',\n API_KEYS: '/api-keys',\n VIRTUAL_KEYS: '/virtual-keys',\n AUTH: '/auth',\n CHAINS: '/prompts/chains',\n PROVIDERS: '/providers',\n FEATURES: '/features'\n};\nexport const PROMPT_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n GET_BY_PROMPT_ID: '/by-id/:promptId',\n INTERPOLATE: '/:id/interpolate',\n UPDATE: '/:id/update',\n DELETE: '/delete',\n DELETE_VERSION: '/versions/delete',\n ADD_LABEL: '/:id/labels',\n REMOVE_LABEL: '/:id/labels',\n SET_VERSION_ENVIRONMENT: '/versions/environment',\n EXECUTE: '/execute',\n PLAYGROUND_EXECUTE: '/playground/execute',\n SET_VERSION_AS_LATEST: '/versions/set-latest',\n DUPLICATE: '/duplicate'\n};\nexport const PROMPT_CHAIN_ROUTES = {\n LIST_CHAINS: '/list',\n CREATE_CHAIN: '/create',\n GET_CHAIN: '/:id',\n UPDATE_CHAIN: '/:id',\n DELETE_CHAIN: '/:id',\n DUPLICATE_CHAIN: '/:id/duplicate',\n CREATE_FROM_DEFINITION: '/from-definition',\n ADD_NODE: '/:id/nodes',\n UPDATE_NODE: '/:chainId/nodes/:nodeId',\n DELETE_NODE: '/:chainId/nodes/:nodeId',\n ADD_DEPENDENCY: '/:id/dependencies',\n DELETE_DEPENDENCY: '/:chainId/dependencies/:dependencyId',\n EXECUTE_CHAIN: '/:id/execute',\n RESUME_MANUAL_INPUT: '/executions/:executionId/resume',\n GET_EXECUTION: '/executions/:id',\n LIST_EXECUTIONS: '/:id/executions'\n};\nexport const TEAM_ROUTES = {\n LIST_ALL: '/all',\n CREATE: '/',\n UPDATE: '/:id',\n DELETE: '/:id',\n SET_ACTIVE: '/set-active',\n LIST_USER_TEAMS: '/user-all',\n LIST_MEMBERS: '/members',\n ADD_MEMBER: '/add-member',\n REMOVE_MEMBER: '/remove-member',\n CANCEL_INVITATION: '/cancel-invitation'\n};\nexport const ORGANIZATION_ROUTES = {\n LIST: '/',\n CREATE: '/create',\n SET_ACTIVE: '/set-active',\n INVITE_USER: '/invite',\n ACCEPT_INVITE: '/accept-invite',\n GET_MEMBER_ROLE: '/member-role'\n};\nexport const DASHBOARD_ROUTES = {\n GET_STATS: '/stats',\n GET_ACTIVITIES: '/activities'\n};\nexport const API_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n DELETE: '/delete',\n PERMISSIONS: '/permissions'\n};\nexport const VIRTUAL_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n UPDATE: '/:id',\n DELETE: '/:id',\n DUPLICATE: '/:id/duplicate',\n TOGGLE_STATUS: '/:id/toggle-status'\n};\nexport const PROVIDER_ROUTES = {\n LIST: '/',\n GET_BY_ID: '/:providerId',\n GET_SCHEMA: '/:providerId/schema',\n GET_MODELS: '/:providerId/models'\n};\nexport const FOLDERS_ROUTES = {\n GET_FOLDER_TREE: '/tree',\n CREATE_FOLDER: '/',\n UPDATE_FOLDER: '/:id',\n DELETE_FOLDER: '/:id',\n MOVE_PROMPT_TO_FOLDER: '/move-prompt',\n SET_FOLDER_PERMISSIONS: '/set-permissions'\n};\nexport const FEATURES_ROUTES = {\n LIST: '/',\n CHECK: '/:id',\n TOGGLE: '/toggle',\n CREATE: '/create'\n};\nexport const API_ENDPOINTS = {\n PROMPTS: {\n LIST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_ID.replace(':id', id)}`,\n GET_BY_PROMPT_ID: (promptId) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_PROMPT_ID.replace(':promptId', promptId)}`,\n INTERPOLATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.INTERPOLATE.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE}`,\n DELETE_VERSION: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE_VERSION}`,\n ADD_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.ADD_LABEL.replace(':id', id)}`,\n REMOVE_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.REMOVE_LABEL.replace(':id', id)}`,\n SET_VERSION_ENVIRONMENT: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_ENVIRONMENT}`,\n EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.EXECUTE}`,\n PLAYGROUND_EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.PLAYGROUND_EXECUTE}`,\n SET_VERSION_AS_LATEST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_AS_LATEST}`,\n DUPLICATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DUPLICATE}`\n },\n TEAMS: {\n LIST_ALL: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_ALL}`,\n CREATE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CREATE}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.DELETE.replace(':id', id)}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.SET_ACTIVE}`,\n LIST_USER_TEAMS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_USER_TEAMS}`,\n LIST_MEMBERS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_MEMBERS}`,\n ADD_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.ADD_MEMBER}`,\n REMOVE_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.REMOVE_MEMBER}`,\n CANCEL_INVITATION: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CANCEL_INVITATION}`\n },\n ORGANIZATIONS: {\n LIST: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.CREATE}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.SET_ACTIVE}`,\n INVITE_USER: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.INVITE_USER}`,\n ACCEPT_INVITE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.ACCEPT_INVITE}`,\n GET_MEMBER_ROLE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.GET_MEMBER_ROLE}`\n },\n DASHBOARD: {\n GET_STATS: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_STATS}`,\n GET_ACTIVITIES: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_ACTIVITIES}`\n },\n API_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.CREATE}`,\n DELETE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.DELETE}`,\n PERMISSIONS: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.PERMISSIONS}`\n },\n VIRTUAL_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.GET_BY_ID.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DELETE.replace(':id', id)}`,\n DUPLICATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DUPLICATE.replace(':id', id)}`,\n TOGGLE_STATUS: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.TOGGLE_STATUS.replace(':id', id)}`\n },\n CHAINS: {\n LIST_CHAINS: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_CHAINS}`,\n CREATE_CHAIN: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_CHAIN}`,\n GET_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_CHAIN.replace(':id', id)}`,\n UPDATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_CHAIN.replace(':id', id)}`,\n DELETE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_CHAIN.replace(':id', id)}`,\n DUPLICATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DUPLICATE_CHAIN.replace(':id', id)}`,\n CREATE_FROM_DEFINITION: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_FROM_DEFINITION}`,\n ADD_NODE: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_NODE.replace(':id', id)}`,\n UPDATE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n DELETE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n ADD_DEPENDENCY: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_DEPENDENCY.replace(':id', id)}`,\n DELETE_DEPENDENCY: (chainId, dependencyId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_DEPENDENCY.replace(':chainId', chainId).replace(':dependencyId', dependencyId)}`,\n EXECUTE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.EXECUTE_CHAIN.replace(':id', id)}`,\n RESUME_MANUAL_INPUT: (executionId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.RESUME_MANUAL_INPUT.replace(':executionId', executionId)}`,\n GET_EXECUTION: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_EXECUTION.replace(':id', id)}`,\n LIST_EXECUTIONS: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_EXECUTIONS.replace(':id', id)}`\n },\n PROVIDERS: {\n LIST: `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.LIST}`,\n GET_BY_ID: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_BY_ID.replace(':providerId', providerId)}`,\n GET_SCHEMA: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_SCHEMA.replace(':providerId', providerId)}`,\n GET_MODELS: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_MODELS.replace(':providerId', providerId)}`\n },\n FOLDERS: {\n GET_FOLDER_TREE: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.GET_FOLDER_TREE}`,\n CREATE_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.CREATE_FOLDER}`,\n UPDATE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.UPDATE_FOLDER.replace(':id', id)}`,\n DELETE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.DELETE_FOLDER.replace(':id', id)}`,\n MOVE_PROMPT_TO_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.MOVE_PROMPT_TO_FOLDER}`,\n SET_FOLDER_PERMISSIONS: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.SET_FOLDER_PERMISSIONS}`\n },\n FEATURES: {\n LIST: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.LIST}`,\n CHECK: (key) => `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.CHECK.replace(':id', key)}`,\n TOGGLE: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.TOGGLE}`\n }\n};\n","import { z } from 'zod'\n\n// const FetchSchema = z.custom<typeof fetch>(\n// (val) => typeof val === 'function',\n// { message: 'fetch must be a function' }\n// )\n\nconst SDKConfigSchema = z.object({\n apiKey: z.string().min(1, 'API key is required and cannot be empty'),\n organizationId: z.string().optional(),\n env: z.enum(['production', 'prod', 'staging', 'stg', 'localhost', 'local']).optional().default('production'),\n baseUrl: z.url().optional()\n})\n\nexport type SDKConfig = z.input<typeof SDKConfigSchema>\n\n// Validation function for SDK config\nexport function validateSDKConfig(config: unknown): SDKConfig {\n try {\n return SDKConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.issues.map(issue =>\n `${issue.path.join('.')}: ${issue.message}`\n ).join(', ')\n\n throw new Error(`SDK configuration validation failed: ${issues}`)\n }\n throw error\n }\n}\n\nexport interface RequestOptions {\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\nexport class SDKError extends Error {\n constructor(\n message: string,\n public _status?: number,\n public _response?: Response\n ) {\n super(message)\n this.name = 'SDKError'\n }\n}\n","/* eslint-disable node/no-process-env */\nimport { config } from 'dotenv'\nimport { z } from 'zod'\n\nif (typeof process !== 'undefined' && ['development', 'test'].includes(process.env.NODE_ENV || '')) {\n try {\n const envFile = process.env.NODE_ENV === 'test' ? '.env.test' : '.env'\n config({ path: envFile })\n } catch {}\n}\n\nconst SDKEnvSchema = z.object({\n OFUMA_API_URL: z.url().optional(),\n OFUMA_API_URL_PRODUCTION: z.url().optional(),\n OFUMA_API_URL_STAGING: z.url().optional(),\n OFUMA_API_URL_LOCAL: z.url().optional()\n})\n\nexport type SDKEnvType = z.infer<typeof SDKEnvSchema>\n\n// eslint-disable-next-line import/no-mutable-exports\nlet env: SDKEnvType\n\ntry {\n if (typeof process !== 'undefined' && process.env) {\n env = SDKEnvSchema.parse(process.env)\n } else {\n // In browser or no process.env available\n env = {}\n }\n} catch {\n env = {}\n}\n\nexport default env\n","import type { SDKEnvType } from './env.js'\nimport type { SDKConfig } from './types.js'\n\nimport env from './env.js'\n\n/**\n * Gets the base URL based on configuration priority:\n * 1. Custom baseUrl if provided\n * 2. Environment-based URL from env field (using environment variables or defaults)\n * 3. OFUMA_API_URL environment variable (backward compatibility)\n * 4. Default to production URL\n */\nexport function getBaseUrl(config: SDKConfig): string {\n // Priority 1: Custom baseUrl\n if (config.baseUrl) {\n return config.baseUrl\n }\n\n // Priority 2: Environment-based URL\n if (config.env) {\n const url = getEnvironmentUrl(config.env, env)\n if (url) {\n return url\n }\n }\n\n // Priority 3: Environment variable fallback (backward compatibility)\n if (env.OFUMA_API_URL) {\n return env.OFUMA_API_URL\n }\n\n // Priority 4: Default to production\n return getDefaultUrl('production')\n}\n\n/**\n * Maps environment names to their corresponding URLs\n * Uses environment variables if available, otherwise falls back to defaults\n */\nexport function getEnvironmentUrl(envName: string, envConfig: SDKEnvType): string | undefined {\n // Map of environment names to their environment variable keys\n const envVarMap: Record<string, keyof SDKEnvType> = {\n production: 'OFUMA_API_URL_PRODUCTION',\n prod: 'OFUMA_API_URL_PRODUCTION',\n staging: 'OFUMA_API_URL_STAGING',\n stg: 'OFUMA_API_URL_STAGING',\n localhost: 'OFUMA_API_URL_LOCAL',\n local: 'OFUMA_API_URL_LOCAL'\n }\n\n const envVarKey = envVarMap[envName]\n if (!envVarKey) {\n return undefined\n }\n\n // Use environment variable if available\n const envVarValue = envConfig[envVarKey]\n if (envVarValue) {\n return envVarValue as string\n }\n\n // Fall back to default URL for the environment\n return getDefaultUrl(envName)\n}\n\n/**\n * Returns the default URL for a given environment\n */\nexport function getDefaultUrl(envName: string): string {\n const defaultUrls: Record<string, string | undefined> = {\n production: env.OFUMA_API_URL_PRODUCTION,\n prod: env.OFUMA_API_URL_PRODUCTION,\n staging: env.OFUMA_API_URL_STAGING,\n stg: env.OFUMA_API_URL_STAGING,\n localhost: env.OFUMA_API_URL_LOCAL,\n local: env.OFUMA_API_URL_LOCAL\n }\n\n return defaultUrls[envName] || 'https://api.ofuma.ai'\n}\n","import type { RequestOptions, SDKConfig } from '@/types.js'\n\nimport { SDKError, validateSDKConfig } from '@/types.js'\nimport { getBaseUrl } from '@/utils.js'\n\nexport class BaseClient {\n protected config: SDKConfig & { fetch: typeof fetch }\n\n constructor(config: SDKConfig) {\n const validatedConfig = validateSDKConfig(config)\n\n const baseUrl = getBaseUrl(validatedConfig)\n\n this.config = {\n fetch: globalThis.fetch,\n baseUrl,\n ...validatedConfig\n }\n }\n\n protected async request<T>(\n path: string,\n options: RequestInit & RequestOptions = {}\n ): Promise<T> {\n const url = new URL(path, this.config.baseUrl)\n\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...options.headers\n })\n\n headers.set('Authorization', `Bearer ${this.config.apiKey}`)\n\n if (this.config.organizationId) {\n headers.set('x-organization-id', this.config.organizationId)\n }\n\n const response = await this.config.fetch(url.toString(), {\n ...options,\n headers\n })\n\n if (!response.ok) {\n const errorMessage = await response.text().catch(() => 'Unknown error')\n throw new SDKError(\n `HTTP ${response.status}: ${errorMessage}`,\n response.status,\n response\n )\n }\n\n const contentType = response.headers.get('content-type')\n if (contentType?.includes('application/json')) {\n return response.json()\n }\n\n return response.text() as unknown as T\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n ChainExecutionResponse,\n ChainResponse,\n ExecuteChainRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\n\nexport class ChainsResource extends BaseClient {\n async get(\n id: string,\n options: RequestOptions = {}\n ): Promise<ChainResponse> {\n return this.request<ChainResponse>(API_ENDPOINTS.CHAINS.GET_CHAIN(id), {\n method: 'GET',\n ...options\n })\n }\n\n async execute(\n id: string,\n data: Omit<ExecuteChainRequest, 'chainId'>,\n options: RequestOptions = {}\n ): Promise<ChainExecutionResponse> {\n return this.request<ChainExecutionResponse>(API_ENDPOINTS.CHAINS.EXECUTE_CHAIN(id), {\n method: 'POST',\n body: JSON.stringify({\n chainId: id,\n ...data\n }),\n ...options\n })\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n GetOneQueryType,\n InterpolatedPromptResponse,\n InterpolatePromptRequest,\n PromptListResponse,\n PromptResponse,\n PromptVersionResponse,\n SetVersionEnvironmentRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\nimport { ExecutePromptType } from '@ofuma/shared/types'\n\nexport class PromptsResource extends BaseClient {\n async list(options: RequestOptions = {}): Promise<PromptListResponse> {\n return this.request<PromptListResponse>(API_ENDPOINTS.PROMPTS.LIST, {\n method: 'GET',\n ...options\n })\n }\n\n async get(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async getByPromptId(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_PROMPT_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async interpolate(\n id: string,\n data: InterpolatePromptRequest,\n options: RequestOptions = {}\n ): Promise<InterpolatedPromptResponse> {\n return this.request<InterpolatedPromptResponse>(API_ENDPOINTS.PROMPTS.INTERPOLATE(id), {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async setVersionEnvironment(\n data: SetVersionEnvironmentRequest,\n options: RequestOptions = {}\n ): Promise<PromptVersionResponse> {\n return this.request<PromptVersionResponse>(API_ENDPOINTS.PROMPTS.SET_VERSION_ENVIRONMENT, {\n method: 'PUT',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async execute(\n data: ExecutePromptType,\n options: RequestOptions = {}\n ): Promise<any> {\n return this.request<any>(API_ENDPOINTS.PROMPTS.EXECUTE, {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n}\n","import type { SDKConfig } from './types.js'\n\nimport { ChainsResource } from './resources/chains/index.js'\nimport { PromptsResource } from './resources/prompts/index.js'\nimport { getBaseUrl } from './utils.js'\n\nexport class OfumaSDK {\n public prompts: PromptsResource\n public chains: ChainsResource\n private _config: SDKConfig\n\n constructor(config: SDKConfig) {\n this._config = config\n this.prompts = new PromptsResource(config)\n this.chains = new ChainsResource(config)\n }\n\n /**\n * Get the base URL used by the SDK (useful for debugging and testing)\n */\n getBaseUrl(): string {\n return getBaseUrl(this._config)\n }\n}\n\n// Export all prompt types from the types file\nexport type * from './resources/prompts/types.js'\n\n// Export all chain types from the types file\nexport type * from './resources/chains/types.js'\n\n// Export SDK configuration types\nexport type * from './types.js'\n\nexport default OfumaSDK\n"]}
1
+ {"version":3,"sources":["../../packages/shared/dist/constants/endpoints.js","../src/types.ts","../src/env.ts","../src/utils.ts","../src/client.ts","../src/resources/chains/index.ts","../src/resources/prompts/index.ts","../src/index.ts"],"names":["ROUTE_BASE_PATHS","PROMPT_ROUTES","PROMPT_CHAIN_ROUTES","API_ENDPOINTS","id","promptId","chainId","nodeId","dependencyId","executionId","SDKConfigSchema","z","validateSDKConfig","config","error","issues","issue","SDKError","message","_status","_response","SDKEnvSchema","env","env_default","getBaseUrl","url","getEnvironmentUrl","getDefaultUrl","envName","envConfig","envVarKey","envVarValue","BaseClient","__publicField","validatedConfig","baseUrl","path","options","headers","response","errorMessage","ChainsResource","data","PromptsResource","queryOptions","params","OfumaSDK","index_default"],"mappings":"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","file":"index.cjs","sourcesContent":["export const ROUTE_BASE_PATHS = {\n PROMPTS: '/prompts',\n FOLDERS: '/folders',\n TEAMS: '/teams',\n ORGANIZATIONS: '/organizations',\n DASHBOARD: '/dashboard',\n API_KEYS: '/api-keys',\n VIRTUAL_KEYS: '/virtual-keys',\n AUTH: '/auth',\n CHAINS: '/prompts/chains',\n PROVIDERS: '/providers',\n FEATURES: '/features'\n};\nexport const PROMPT_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n GET_BY_PROMPT_ID: '/by-id/:promptId',\n INTERPOLATE: '/:id/interpolate',\n UPDATE: '/:id/update',\n DELETE: '/delete',\n DELETE_VERSION: '/versions/delete',\n ADD_LABEL: '/:id/labels',\n REMOVE_LABEL: '/:id/labels',\n SET_VERSION_ENVIRONMENT: '/versions/environment',\n EXECUTE: '/execute',\n PLAYGROUND_EXECUTE: '/playground/execute',\n SET_VERSION_AS_LATEST: '/versions/set-latest',\n DUPLICATE: '/duplicate'\n};\nexport const PROMPT_CHAIN_ROUTES = {\n LIST_CHAINS: '/list',\n CREATE_CHAIN: '/create',\n GET_CHAIN: '/:id',\n UPDATE_CHAIN: '/:id',\n DELETE_CHAIN: '/:id',\n DUPLICATE_CHAIN: '/:id/duplicate',\n CREATE_FROM_DEFINITION: '/from-definition',\n ADD_NODE: '/:id/nodes',\n UPDATE_NODE: '/:chainId/nodes/:nodeId',\n DELETE_NODE: '/:chainId/nodes/:nodeId',\n ADD_DEPENDENCY: '/:id/dependencies',\n DELETE_DEPENDENCY: '/:chainId/dependencies/:dependencyId',\n EXECUTE_CHAIN: '/:id/execute',\n RESUME_MANUAL_INPUT: '/executions/:executionId/resume',\n GET_EXECUTION: '/executions/:id',\n LIST_EXECUTIONS: '/:id/executions'\n};\nexport const TEAM_ROUTES = {\n LIST_ALL: '/all',\n CREATE: '/',\n UPDATE: '/:id',\n DELETE: '/:id',\n SET_ACTIVE: '/set-active',\n LIST_USER_TEAMS: '/user-all',\n LIST_MEMBERS: '/members',\n ADD_MEMBER: '/add-member',\n REMOVE_MEMBER: '/remove-member',\n CANCEL_INVITATION: '/cancel-invitation'\n};\nexport const ORGANIZATION_ROUTES = {\n LIST: '/',\n CREATE: '/create',\n SET_ACTIVE: '/set-active',\n INVITE_USER: '/invite',\n ACCEPT_INVITE: '/accept-invite',\n GET_MEMBER_ROLE: '/member-role'\n};\nexport const DASHBOARD_ROUTES = {\n GET_STATS: '/stats',\n GET_ACTIVITIES: '/activities'\n};\nexport const API_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n DELETE: '/delete',\n PERMISSIONS: '/permissions'\n};\nexport const VIRTUAL_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n UPDATE: '/:id',\n DELETE: '/:id',\n DUPLICATE: '/:id/duplicate',\n TOGGLE_STATUS: '/:id/toggle-status'\n};\nexport const PROVIDER_ROUTES = {\n LIST: '/',\n GET_BY_ID: '/:providerId',\n GET_SCHEMA: '/:providerId/schema',\n GET_MODELS: '/:providerId/models'\n};\nexport const FOLDERS_ROUTES = {\n GET_FOLDER_TREE: '/tree',\n CREATE_FOLDER: '/',\n UPDATE_FOLDER: '/:id',\n DELETE_FOLDER: '/:id',\n MOVE_PROMPT_TO_FOLDER: '/move-prompt',\n SET_FOLDER_PERMISSIONS: '/set-permissions'\n};\nexport const FEATURES_ROUTES = {\n LIST: '/',\n CHECK: '/:id',\n TOGGLE: '/toggle',\n CREATE: '/create'\n};\nexport const API_ENDPOINTS = {\n PROMPTS: {\n LIST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_ID.replace(':id', id)}`,\n GET_BY_PROMPT_ID: (promptId) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_PROMPT_ID.replace(':promptId', promptId)}`,\n INTERPOLATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.INTERPOLATE.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE}`,\n DELETE_VERSION: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE_VERSION}`,\n ADD_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.ADD_LABEL.replace(':id', id)}`,\n REMOVE_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.REMOVE_LABEL.replace(':id', id)}`,\n SET_VERSION_ENVIRONMENT: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_ENVIRONMENT}`,\n EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.EXECUTE}`,\n PLAYGROUND_EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.PLAYGROUND_EXECUTE}`,\n SET_VERSION_AS_LATEST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_AS_LATEST}`,\n DUPLICATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DUPLICATE}`\n },\n TEAMS: {\n LIST_ALL: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_ALL}`,\n CREATE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CREATE}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.DELETE.replace(':id', id)}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.SET_ACTIVE}`,\n LIST_USER_TEAMS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_USER_TEAMS}`,\n LIST_MEMBERS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_MEMBERS}`,\n ADD_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.ADD_MEMBER}`,\n REMOVE_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.REMOVE_MEMBER}`,\n CANCEL_INVITATION: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CANCEL_INVITATION}`\n },\n ORGANIZATIONS: {\n LIST: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.CREATE}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.SET_ACTIVE}`,\n INVITE_USER: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.INVITE_USER}`,\n ACCEPT_INVITE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.ACCEPT_INVITE}`,\n GET_MEMBER_ROLE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.GET_MEMBER_ROLE}`\n },\n DASHBOARD: {\n GET_STATS: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_STATS}`,\n GET_ACTIVITIES: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_ACTIVITIES}`\n },\n API_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.CREATE}`,\n DELETE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.DELETE}`,\n PERMISSIONS: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.PERMISSIONS}`\n },\n VIRTUAL_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.GET_BY_ID.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DELETE.replace(':id', id)}`,\n DUPLICATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DUPLICATE.replace(':id', id)}`,\n TOGGLE_STATUS: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.TOGGLE_STATUS.replace(':id', id)}`\n },\n CHAINS: {\n LIST_CHAINS: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_CHAINS}`,\n CREATE_CHAIN: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_CHAIN}`,\n GET_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_CHAIN.replace(':id', id)}`,\n UPDATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_CHAIN.replace(':id', id)}`,\n DELETE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_CHAIN.replace(':id', id)}`,\n DUPLICATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DUPLICATE_CHAIN.replace(':id', id)}`,\n CREATE_FROM_DEFINITION: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_FROM_DEFINITION}`,\n ADD_NODE: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_NODE.replace(':id', id)}`,\n UPDATE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n DELETE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n ADD_DEPENDENCY: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_DEPENDENCY.replace(':id', id)}`,\n DELETE_DEPENDENCY: (chainId, dependencyId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_DEPENDENCY.replace(':chainId', chainId).replace(':dependencyId', dependencyId)}`,\n EXECUTE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.EXECUTE_CHAIN.replace(':id', id)}`,\n RESUME_MANUAL_INPUT: (executionId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.RESUME_MANUAL_INPUT.replace(':executionId', executionId)}`,\n GET_EXECUTION: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_EXECUTION.replace(':id', id)}`,\n LIST_EXECUTIONS: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_EXECUTIONS.replace(':id', id)}`\n },\n PROVIDERS: {\n LIST: `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.LIST}`,\n GET_BY_ID: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_BY_ID.replace(':providerId', providerId)}`,\n GET_SCHEMA: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_SCHEMA.replace(':providerId', providerId)}`,\n GET_MODELS: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_MODELS.replace(':providerId', providerId)}`\n },\n FOLDERS: {\n GET_FOLDER_TREE: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.GET_FOLDER_TREE}`,\n CREATE_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.CREATE_FOLDER}`,\n UPDATE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.UPDATE_FOLDER.replace(':id', id)}`,\n DELETE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.DELETE_FOLDER.replace(':id', id)}`,\n MOVE_PROMPT_TO_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.MOVE_PROMPT_TO_FOLDER}`,\n SET_FOLDER_PERMISSIONS: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.SET_FOLDER_PERMISSIONS}`\n },\n FEATURES: {\n LIST: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.LIST}`,\n CHECK: (key) => `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.CHECK.replace(':id', key)}`,\n TOGGLE: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.TOGGLE}`\n }\n};\n","import { z } from 'zod'\n\n// const FetchSchema = z.custom<typeof fetch>(\n// (val) => typeof val === 'function',\n// { message: 'fetch must be a function' }\n// )\n\nconst SDKConfigSchema = z.object({\n apiKey: z.string().min(1, 'API key is required and cannot be empty'),\n organizationId: z.string().optional(),\n env: z.enum(['production', 'prod', 'staging', 'stg', 'localhost', 'local']).optional().default('production'),\n baseUrl: z.url().optional()\n})\n\nexport type SDKConfig = z.input<typeof SDKConfigSchema>\n\n// Validation function for SDK config\nexport function validateSDKConfig(config: unknown): SDKConfig {\n try {\n return SDKConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.issues.map(issue =>\n `${issue.path.join('.')}: ${issue.message}`\n ).join(', ')\n\n throw new Error(`SDK configuration validation failed: ${issues}`)\n }\n throw error\n }\n}\n\nexport interface RequestOptions {\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\nexport class SDKError extends Error {\n constructor(\n message: string,\n public _status?: number,\n public _response?: Response\n ) {\n super(message)\n this.name = 'SDKError'\n }\n}\n","/* eslint-disable node/no-process-env */\nimport { z } from 'zod'\n\nconst SDKEnvSchema = z.object({\n OFUMA_API_URL: z.url().optional(),\n OFUMA_API_URL_PRODUCTION: z.url().optional(),\n OFUMA_API_URL_STAGING: z.url().optional(),\n OFUMA_API_URL_LOCAL: z.url().optional()\n})\n\nexport type SDKEnvType = z.infer<typeof SDKEnvSchema>\n\n// eslint-disable-next-line import/no-mutable-exports\nlet env: SDKEnvType\n\ntry {\n if (typeof process !== 'undefined' && process.env) {\n env = SDKEnvSchema.parse(process.env)\n } else {\n // In browser or no process.env available\n env = {}\n }\n} catch {\n env = {}\n}\n\nexport default env\n","import type { SDKEnvType } from './env.js'\nimport type { SDKConfig } from './types.js'\n\nimport env from './env.js'\n\n/**\n * Gets the base URL based on configuration priority:\n * 1. Custom baseUrl if provided\n * 2. Environment-based URL from env field (using environment variables or defaults)\n * 3. OFUMA_API_URL environment variable (backward compatibility)\n * 4. Default to production URL\n */\nexport function getBaseUrl(config: SDKConfig): string {\n // Priority 1: Custom baseUrl\n if (config.baseUrl) {\n return config.baseUrl\n }\n\n // Priority 2: Environment-based URL\n if (config.env) {\n const url = getEnvironmentUrl(config.env, env)\n if (url) {\n return url\n }\n }\n\n // Priority 3: Environment variable fallback (backward compatibility)\n if (env.OFUMA_API_URL) {\n return env.OFUMA_API_URL\n }\n\n // Priority 4: Default to production\n return getDefaultUrl('production')\n}\n\n/**\n * Maps environment names to their corresponding URLs\n * Uses environment variables if available, otherwise falls back to defaults\n */\nexport function getEnvironmentUrl(envName: string, envConfig: SDKEnvType): string | undefined {\n // Map of environment names to their environment variable keys\n const envVarMap: Record<string, keyof SDKEnvType> = {\n production: 'OFUMA_API_URL_PRODUCTION',\n prod: 'OFUMA_API_URL_PRODUCTION',\n staging: 'OFUMA_API_URL_STAGING',\n stg: 'OFUMA_API_URL_STAGING',\n localhost: 'OFUMA_API_URL_LOCAL',\n local: 'OFUMA_API_URL_LOCAL'\n }\n\n const envVarKey = envVarMap[envName]\n if (!envVarKey) {\n return undefined\n }\n\n // Use environment variable if available\n const envVarValue = envConfig[envVarKey]\n if (envVarValue) {\n return envVarValue as string\n }\n\n // Fall back to default URL for the environment\n return getDefaultUrl(envName)\n}\n\n/**\n * Returns the default URL for a given environment\n */\nexport function getDefaultUrl(envName: string): string {\n const defaultUrls: Record<string, string | undefined> = {\n production: env.OFUMA_API_URL_PRODUCTION,\n prod: env.OFUMA_API_URL_PRODUCTION,\n staging: env.OFUMA_API_URL_STAGING,\n stg: env.OFUMA_API_URL_STAGING,\n localhost: env.OFUMA_API_URL_LOCAL,\n local: env.OFUMA_API_URL_LOCAL\n }\n\n return defaultUrls[envName] || 'https://api.ofuma.ai'\n}\n","import type { RequestOptions, SDKConfig } from '@/types.js'\n\nimport { SDKError, validateSDKConfig } from '@/types.js'\nimport { getBaseUrl } from '@/utils.js'\n\nexport class BaseClient {\n protected config: SDKConfig & { fetch: typeof fetch }\n\n constructor(config: SDKConfig) {\n const validatedConfig = validateSDKConfig(config)\n\n const baseUrl = getBaseUrl(validatedConfig)\n\n this.config = {\n fetch: globalThis.fetch,\n baseUrl,\n ...validatedConfig\n }\n }\n\n protected async request<T>(\n path: string,\n options: RequestInit & RequestOptions = {}\n ): Promise<T> {\n const url = new URL(path, this.config.baseUrl)\n\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...options.headers\n })\n\n headers.set('Authorization', `Bearer ${this.config.apiKey}`)\n\n if (this.config.organizationId) {\n headers.set('x-organization-id', this.config.organizationId)\n }\n\n const response = await this.config.fetch(url.toString(), {\n ...options,\n headers\n })\n\n if (!response.ok) {\n const errorMessage = await response.text().catch(() => 'Unknown error')\n throw new SDKError(\n `HTTP ${response.status}: ${errorMessage}`,\n response.status,\n response\n )\n }\n\n const contentType = response.headers.get('content-type')\n if (contentType?.includes('application/json')) {\n return response.json()\n }\n\n return response.text() as unknown as T\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n ChainExecutionResponse,\n ChainResponse,\n ExecuteChainRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\n\nexport class ChainsResource extends BaseClient {\n async get(\n id: string,\n options: RequestOptions = {}\n ): Promise<ChainResponse> {\n return this.request<ChainResponse>(API_ENDPOINTS.CHAINS.GET_CHAIN(id), {\n method: 'GET',\n ...options\n })\n }\n\n async execute(\n id: string,\n data: Omit<ExecuteChainRequest, 'chainId'>,\n options: RequestOptions = {}\n ): Promise<ChainExecutionResponse> {\n return this.request<ChainExecutionResponse>(API_ENDPOINTS.CHAINS.EXECUTE_CHAIN(id), {\n method: 'POST',\n body: JSON.stringify({\n chainId: id,\n ...data\n }),\n ...options\n })\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n GetOneQueryType,\n InterpolatedPromptResponse,\n InterpolatePromptRequest,\n PromptListResponse,\n PromptResponse,\n PromptVersionResponse,\n SetVersionEnvironmentRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\nimport { ExecutePromptType } from '@ofuma/shared/types'\n\nexport class PromptsResource extends BaseClient {\n async list(options: RequestOptions = {}): Promise<PromptListResponse> {\n return this.request<PromptListResponse>(API_ENDPOINTS.PROMPTS.LIST, {\n method: 'GET',\n ...options\n })\n }\n\n async get(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async getByPromptId(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_PROMPT_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async interpolate(\n id: string,\n data: InterpolatePromptRequest,\n options: RequestOptions = {}\n ): Promise<InterpolatedPromptResponse> {\n return this.request<InterpolatedPromptResponse>(API_ENDPOINTS.PROMPTS.INTERPOLATE(id), {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async setVersionEnvironment(\n data: SetVersionEnvironmentRequest,\n options: RequestOptions = {}\n ): Promise<PromptVersionResponse> {\n return this.request<PromptVersionResponse>(API_ENDPOINTS.PROMPTS.SET_VERSION_ENVIRONMENT, {\n method: 'PUT',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async execute(\n data: ExecutePromptType,\n options: RequestOptions = {}\n ): Promise<any> {\n return this.request<any>(API_ENDPOINTS.PROMPTS.EXECUTE, {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n}\n","import type { SDKConfig } from './types.js'\n\nimport { ChainsResource } from './resources/chains/index.js'\nimport { PromptsResource } from './resources/prompts/index.js'\nimport { getBaseUrl } from './utils.js'\n\nexport class OfumaSDK {\n public prompts: PromptsResource\n public chains: ChainsResource\n private _config: SDKConfig\n\n constructor(config: SDKConfig) {\n this._config = config\n this.prompts = new PromptsResource(config)\n this.chains = new ChainsResource(config)\n }\n\n /**\n * Get the base URL used by the SDK (useful for debugging and testing)\n */\n getBaseUrl(): string {\n return getBaseUrl(this._config)\n }\n}\n\n// Export all prompt types from the types file\nexport type * from './resources/prompts/types.js'\n\n// Export all chain types from the types file\nexport type * from './resources/chains/types.js'\n\n// Export SDK configuration types\nexport type * from './types.js'\n\nexport default OfumaSDK\n"]}
package/dist/index.js CHANGED
@@ -1,6 +1,4 @@
1
- import {z as z$1}from'zod';/* @ofuma/sdk - https://github.com/thedumebi/ofuma.ai/tree/master/sdk */
2
- var ee=Object.create;var G=Object.defineProperty;var te=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var ne=(e,t,r)=>t in e?G(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var m=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var se=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of oe(t))!Ee.call(e,s)&&s!==r&&G(e,s,{get:()=>t[s],enumerable:!(n=te(t,s))||n.enumerable});return e};var Te=(e,t,r)=>(r=e!=null?ee(re(e)):{},se(G(r,"default",{value:e,enumerable:true}),e));var d=(e,t,r)=>ne(e,typeof t!="symbol"?t+"":t,r);var j=K((he,ae)=>{ae.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:false}};});var Z=K((ve,S)=>{var H=m("fs"),$=m("path"),_e=m("os"),Ie=m("crypto"),Re=j(),Y=Re.version,Ae=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Oe(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,`
3
- `);let n;for(;(n=Ae.exec(r))!=null;){let s=n[1],E=n[2]||"";E=E.trim();let T=E[0];E=E.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),T==='"'&&(E=E.replace(/\\n/g,`
4
- `),E=E.replace(/\\r/g,"\r")),t[s]=E;}return t}function Se(e){e=e||{};let t=W(e);e.path=t;let r=c.configDotenv(e);if(!r.parsed){let T=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw T.code="MISSING_DATA",T}let n=X(e).split(","),s=n.length,E;for(let T=0;T<s;T++)try{let i=n[T].trim(),I=le(r,i);E=c.decrypt(I.ciphertext,I.key);break}catch(i){if(T+1>=s)throw i}return c.parse(E)}function Ne(e){console.log(`[dotenv@${Y}][WARN] ${e}`);}function U(e){console.log(`[dotenv@${Y}][DEBUG] ${e}`);}function Q(e){console.log(`[dotenv@${Y}] ${e}`);}function X(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function le(e,t){let r;try{r=new URL(t);}catch(i){if(i.code==="ERR_INVALID_URL"){let I=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw I.code="INVALID_DOTENV_KEY",I}throw i}let n=r.password;if(!n){let i=new Error("INVALID_DOTENV_KEY: Missing key part");throw i.code="INVALID_DOTENV_KEY",i}let s=r.searchParams.get("environment");if(!s){let i=new Error("INVALID_DOTENV_KEY: Missing environment part");throw i.code="INVALID_DOTENV_KEY",i}let E=`DOTENV_VAULT_${s.toUpperCase()}`,T=e.parsed[E];if(!T){let i=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${E} in your .env.vault file.`);throw i.code="NOT_FOUND_DOTENV_ENVIRONMENT",i}return {ciphertext:T,key:n}}function W(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)H.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=$.resolve(process.cwd(),".env.vault");return H.existsSync(t)?t:null}function k(e){return e[0]==="~"?$.join(_e.homedir(),e.slice(1)):e}function de(e){let t=!!(e&&e.debug),r=e&&"quiet"in e?e.quiet:true;(t||!r)&&Q("Loading env from encrypted .env.vault");let n=c._parseVault(e),s=process.env;return e&&e.processEnv!=null&&(s=e.processEnv),c.populate(s,n,e),{parsed:n}}function De(e){let t=$.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug),s=e&&"quiet"in e?e.quiet:true;e&&e.encoding?r=e.encoding:n&&U("No encoding is specified. UTF-8 is used by default");let E=[t];if(e&&e.path)if(!Array.isArray(e.path))E=[k(e.path)];else {E=[];for(let N of e.path)E.push(k(N));}let T,i={};for(let N of E)try{let _=c.parse(H.readFileSync(N,{encoding:r}));c.populate(i,_,e);}catch(_){n&&U(`Failed to load ${N} ${_.message}`),T=_;}let I=process.env;if(e&&e.processEnv!=null&&(I=e.processEnv),c.populate(I,i,e),n||!s){let N=Object.keys(i).length,_=[];for(let B of E)try{let f=$.relative(process.cwd(),B);_.push(f);}catch(f){n&&U(`Failed to load ${B} ${f.message}`),T=f;}Q(`injecting env (${N}) from ${_.join(",")}`);}return T?{parsed:i,error:T}:{parsed:i}}function ue(e){if(X(e).length===0)return c.configDotenv(e);let t=W(e);return t?c._configVault(e):(Ne(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),c.configDotenv(e))}function Pe(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),s=n.subarray(0,12),E=n.subarray(-16);n=n.subarray(12,-16);try{let T=Ie.createDecipheriv("aes-256-gcm",r,s);return T.setAuthTag(E),`${T.update(n)}${T.final()}`}catch(T){let i=T instanceof RangeError,I=T.message==="Invalid key length",N=T.message==="Unsupported state or unable to authenticate data";if(i||I){let _=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw _.code="INVALID_DOTENV_KEY",_}else if(N){let _=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw _.code="DECRYPTION_FAILED",_}else throw T}}function Le(e,t,r={}){let n=!!(r&&r.debug),s=!!(r&&r.override);if(typeof t!="object"){let E=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw E.code="OBJECT_REQUIRED",E}for(let E of Object.keys(t))Object.prototype.hasOwnProperty.call(e,E)?(s===true&&(e[E]=t[E]),n&&U(s===true?`"${E}" is already defined and WAS overwritten`:`"${E}" is already defined and was NOT overwritten`)):e[E]=t[E];}var c={configDotenv:De,_configVault:de,_parseVault:Se,config:ue,decrypt:Pe,parse:Oe,populate:Le};S.exports.configDotenv=c.configDotenv;S.exports._configVault=c._configVault;S.exports._parseVault=c._parseVault;S.exports.config=c.config;S.exports.decrypt=c.decrypt;S.exports.parse=c.parse;S.exports.populate=c.populate;S.exports=c;});var o={PROMPTS:"/prompts",CHAINS:"/prompts/chains"},a={LIST:"/",CREATE:"/",GET_BY_ID:"/:id",GET_BY_PROMPT_ID:"/by-id/:promptId",INTERPOLATE:"/:id/interpolate",UPDATE:"/:id/update",DELETE:"/delete",DELETE_VERSION:"/versions/delete",ADD_LABEL:"/:id/labels",REMOVE_LABEL:"/:id/labels",SET_VERSION_ENVIRONMENT:"/versions/environment",EXECUTE:"/execute",PLAYGROUND_EXECUTE:"/playground/execute",SET_VERSION_AS_LATEST:"/versions/set-latest",DUPLICATE:"/duplicate"},p={LIST_CHAINS:"/list",CREATE_CHAIN:"/create",GET_CHAIN:"/:id",UPDATE_CHAIN:"/:id",DELETE_CHAIN:"/:id",DUPLICATE_CHAIN:"/:id/duplicate",CREATE_FROM_DEFINITION:"/from-definition",ADD_NODE:"/:id/nodes",UPDATE_NODE:"/:chainId/nodes/:nodeId",DELETE_NODE:"/:chainId/nodes/:nodeId",ADD_DEPENDENCY:"/:id/dependencies",DELETE_DEPENDENCY:"/:chainId/dependencies/:dependencyId",EXECUTE_CHAIN:"/:id/execute",RESUME_MANUAL_INPUT:"/executions/:executionId/resume",GET_EXECUTION:"/executions/:id",LIST_EXECUTIONS:"/:id/executions"},A={PROMPTS:{LIST:`${o.PROMPTS}${a.LIST}`,CREATE:`${o.PROMPTS}${a.CREATE}`,GET_BY_ID:e=>`${o.PROMPTS}${a.GET_BY_ID.replace(":id",e)}`,GET_BY_PROMPT_ID:e=>`${o.PROMPTS}${a.GET_BY_PROMPT_ID.replace(":promptId",e)}`,INTERPOLATE:e=>`${o.PROMPTS}${a.INTERPOLATE.replace(":id",e)}`,UPDATE:e=>`${o.PROMPTS}${a.UPDATE.replace(":id",e)}`,DELETE:`${o.PROMPTS}${a.DELETE}`,DELETE_VERSION:`${o.PROMPTS}${a.DELETE_VERSION}`,ADD_LABEL:e=>`${o.PROMPTS}${a.ADD_LABEL.replace(":id",e)}`,REMOVE_LABEL:e=>`${o.PROMPTS}${a.REMOVE_LABEL.replace(":id",e)}`,SET_VERSION_ENVIRONMENT:`${o.PROMPTS}${a.SET_VERSION_ENVIRONMENT}`,EXECUTE:`${o.PROMPTS}${a.EXECUTE}`,PLAYGROUND_EXECUTE:`${o.PROMPTS}${a.PLAYGROUND_EXECUTE}`,SET_VERSION_AS_LATEST:`${o.PROMPTS}${a.SET_VERSION_AS_LATEST}`,DUPLICATE:`${o.PROMPTS}${a.DUPLICATE}`},CHAINS:{LIST_CHAINS:`${o.CHAINS}${p.LIST_CHAINS}`,CREATE_CHAIN:`${o.CHAINS}${p.CREATE_CHAIN}`,GET_CHAIN:e=>`${o.CHAINS}${p.GET_CHAIN.replace(":id",e)}`,UPDATE_CHAIN:e=>`${o.CHAINS}${p.UPDATE_CHAIN.replace(":id",e)}`,DELETE_CHAIN:e=>`${o.CHAINS}${p.DELETE_CHAIN.replace(":id",e)}`,DUPLICATE_CHAIN:e=>`${o.CHAINS}${p.DUPLICATE_CHAIN.replace(":id",e)}`,CREATE_FROM_DEFINITION:`${o.CHAINS}${p.CREATE_FROM_DEFINITION}`,ADD_NODE:e=>`${o.CHAINS}${p.ADD_NODE.replace(":id",e)}`,UPDATE_NODE:(e,t)=>`${o.CHAINS}${p.UPDATE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,DELETE_NODE:(e,t)=>`${o.CHAINS}${p.DELETE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,ADD_DEPENDENCY:e=>`${o.CHAINS}${p.ADD_DEPENDENCY.replace(":id",e)}`,DELETE_DEPENDENCY:(e,t)=>`${o.CHAINS}${p.DELETE_DEPENDENCY.replace(":chainId",e).replace(":dependencyId",t)}`,EXECUTE_CHAIN:e=>`${o.CHAINS}${p.EXECUTE_CHAIN.replace(":id",e)}`,RESUME_MANUAL_INPUT:e=>`${o.CHAINS}${p.RESUME_MANUAL_INPUT.replace(":executionId",e)}`,GET_EXECUTION:e=>`${o.CHAINS}${p.GET_EXECUTION.replace(":id",e)}`,LIST_EXECUTIONS:e=>`${o.CHAINS}${p.LIST_EXECUTIONS.replace(":id",e)}`}};var pe=z$1.object({apiKey:z$1.string().min(1,"API key is required and cannot be empty"),organizationId:z$1.string().optional(),env:z$1.enum(["production","prod","staging","stg","localhost","local"]).optional().default("production"),baseUrl:z$1.url().optional()});function q(e){try{return pe.parse(e)}catch(t){if(t instanceof z$1.ZodError){let r=t.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new Error(`SDK configuration validation failed: ${r}`)}throw t}}var g=class extends Error{constructor(r,n,s){super(r);this._status=n;this._response=s;this.name="SDKError";}};var z=Te(Z());if(typeof process<"u"&&["development","test"].includes(process.env.NODE_ENV||""))try{let e=process.env.NODE_ENV==="test"?".env.test":".env";(0,z.config)({path:e});}catch{}var Ue=z$1.object({OFUMA_API_URL:z$1.url().optional(),OFUMA_API_URL_PRODUCTION:z$1.url().optional(),OFUMA_API_URL_STAGING:z$1.url().optional(),OFUMA_API_URL_LOCAL:z$1.url().optional()}),h;try{typeof process<"u"&&process.env?h=Ue.parse(process.env):h={};}catch{h={};}var O=h;function v(e){if(e.baseUrl)return e.baseUrl;if(e.env){let t=Ce(e.env,O);if(t)return t}return O.OFUMA_API_URL?O.OFUMA_API_URL:J("production")}function Ce(e,t){let n={production:"OFUMA_API_URL_PRODUCTION",prod:"OFUMA_API_URL_PRODUCTION",staging:"OFUMA_API_URL_STAGING",stg:"OFUMA_API_URL_STAGING",localhost:"OFUMA_API_URL_LOCAL",local:"OFUMA_API_URL_LOCAL"}[e];if(!n)return;let s=t[n];return s||J(e)}function J(e){return {production:O.OFUMA_API_URL_PRODUCTION,prod:O.OFUMA_API_URL_PRODUCTION,staging:O.OFUMA_API_URL_STAGING,stg:O.OFUMA_API_URL_STAGING,localhost:O.OFUMA_API_URL_LOCAL,local:O.OFUMA_API_URL_LOCAL}[e]||"https://api.ofuma.ai"}var L=class{constructor(t){d(this,"config");let r=q(t),n=v(r);this.config={fetch:globalThis.fetch,baseUrl:n,...r};}async request(t,r={}){let n=new URL(t,this.config.baseUrl),s=new Headers({"Content-Type":"application/json",...r.headers});s.set("Authorization",`Bearer ${this.config.apiKey}`),this.config.organizationId&&s.set("x-organization-id",this.config.organizationId);let E=await this.config.fetch(n.toString(),{...r,headers:s});if(!E.ok){let i=await E.text().catch(()=>"Unknown error");throw new g(`HTTP ${E.status}: ${i}`,E.status,E)}return E.headers.get("content-type")?.includes("application/json")?E.json():E.text()}};var y=class extends L{async get(t,r={}){return this.request(A.CHAINS.GET_CHAIN(t),{method:"GET",...r})}async execute(t,r,n={}){return this.request(A.CHAINS.EXECUTE_CHAIN(t),{method:"POST",body:JSON.stringify({chainId:t,...r}),...n})}};var V=class extends L{async list(t={}){return this.request(A.PROMPTS.LIST,{method:"GET",...t})}async get(t,r={},n={}){let s=A.PROMPTS.GET_BY_ID(t);if(r.versionId){let E=new URLSearchParams;E.set("versionId",r.versionId.toString()),s+=`?${E.toString()}`;}return this.request(s,{method:"GET",...n})}async getByPromptId(t,r={},n={}){let s=A.PROMPTS.GET_BY_PROMPT_ID(t);if(r.versionId){let E=new URLSearchParams;E.set("versionId",r.versionId.toString()),s+=`?${E.toString()}`;}return this.request(s,{method:"GET",...n})}async interpolate(t,r,n={}){return this.request(A.PROMPTS.INTERPOLATE(t),{method:"POST",body:JSON.stringify(r),...n})}async setVersionEnvironment(t,r={}){return this.request(A.PROMPTS.SET_VERSION_ENVIRONMENT,{method:"PUT",body:JSON.stringify(t),...r})}async execute(t,r={}){return this.request(A.PROMPTS.EXECUTE,{method:"POST",body:JSON.stringify(t),...r})}};var b=class{constructor(t){d(this,"prompts");d(this,"chains");d(this,"_config");this._config=t,this.prompts=new V(t),this.chains=new y(t);}getBaseUrl(){return v(this._config)}},ze=b;
5
- export{b as OfumaSDK,ze as default};//# sourceMappingURL=index.js.map
1
+ import {z}from'zod';/* @ofuma/sdk - https://github.com/thedumebi/ofuma.ai/tree/master/sdk */
2
+ var f=Object.defineProperty;var F=(e,t,o)=>t in e?f(e,t,{enumerable:true,configurable:true,writable:true,value:o}):e[t]=o;var i=(e,t,o)=>F(e,typeof t!="symbol"?t+"":t,o);var E={PROMPTS:"/prompts",CHAINS:"/prompts/chains"},n={LIST:"/",CREATE:"/",GET_BY_ID:"/:id",GET_BY_PROMPT_ID:"/by-id/:promptId",INTERPOLATE:"/:id/interpolate",UPDATE:"/:id/update",DELETE:"/delete",DELETE_VERSION:"/versions/delete",ADD_LABEL:"/:id/labels",REMOVE_LABEL:"/:id/labels",SET_VERSION_ENVIRONMENT:"/versions/environment",EXECUTE:"/execute",PLAYGROUND_EXECUTE:"/playground/execute",SET_VERSION_AS_LATEST:"/versions/set-latest",DUPLICATE:"/duplicate"},r={LIST_CHAINS:"/list",CREATE_CHAIN:"/create",GET_CHAIN:"/:id",UPDATE_CHAIN:"/:id",DELETE_CHAIN:"/:id",DUPLICATE_CHAIN:"/:id/duplicate",CREATE_FROM_DEFINITION:"/from-definition",ADD_NODE:"/:id/nodes",UPDATE_NODE:"/:chainId/nodes/:nodeId",DELETE_NODE:"/:chainId/nodes/:nodeId",ADD_DEPENDENCY:"/:id/dependencies",DELETE_DEPENDENCY:"/:chainId/dependencies/:dependencyId",EXECUTE_CHAIN:"/:id/execute",RESUME_MANUAL_INPUT:"/executions/:executionId/resume",GET_EXECUTION:"/executions/:id",LIST_EXECUTIONS:"/:id/executions"},_={PROMPTS:{LIST:`${E.PROMPTS}${n.LIST}`,CREATE:`${E.PROMPTS}${n.CREATE}`,GET_BY_ID:e=>`${E.PROMPTS}${n.GET_BY_ID.replace(":id",e)}`,GET_BY_PROMPT_ID:e=>`${E.PROMPTS}${n.GET_BY_PROMPT_ID.replace(":promptId",e)}`,INTERPOLATE:e=>`${E.PROMPTS}${n.INTERPOLATE.replace(":id",e)}`,UPDATE:e=>`${E.PROMPTS}${n.UPDATE.replace(":id",e)}`,DELETE:`${E.PROMPTS}${n.DELETE}`,DELETE_VERSION:`${E.PROMPTS}${n.DELETE_VERSION}`,ADD_LABEL:e=>`${E.PROMPTS}${n.ADD_LABEL.replace(":id",e)}`,REMOVE_LABEL:e=>`${E.PROMPTS}${n.REMOVE_LABEL.replace(":id",e)}`,SET_VERSION_ENVIRONMENT:`${E.PROMPTS}${n.SET_VERSION_ENVIRONMENT}`,EXECUTE:`${E.PROMPTS}${n.EXECUTE}`,PLAYGROUND_EXECUTE:`${E.PROMPTS}${n.PLAYGROUND_EXECUTE}`,SET_VERSION_AS_LATEST:`${E.PROMPTS}${n.SET_VERSION_AS_LATEST}`,DUPLICATE:`${E.PROMPTS}${n.DUPLICATE}`},CHAINS:{LIST_CHAINS:`${E.CHAINS}${r.LIST_CHAINS}`,CREATE_CHAIN:`${E.CHAINS}${r.CREATE_CHAIN}`,GET_CHAIN:e=>`${E.CHAINS}${r.GET_CHAIN.replace(":id",e)}`,UPDATE_CHAIN:e=>`${E.CHAINS}${r.UPDATE_CHAIN.replace(":id",e)}`,DELETE_CHAIN:e=>`${E.CHAINS}${r.DELETE_CHAIN.replace(":id",e)}`,DUPLICATE_CHAIN:e=>`${E.CHAINS}${r.DUPLICATE_CHAIN.replace(":id",e)}`,CREATE_FROM_DEFINITION:`${E.CHAINS}${r.CREATE_FROM_DEFINITION}`,ADD_NODE:e=>`${E.CHAINS}${r.ADD_NODE.replace(":id",e)}`,UPDATE_NODE:(e,t)=>`${E.CHAINS}${r.UPDATE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,DELETE_NODE:(e,t)=>`${E.CHAINS}${r.DELETE_NODE.replace(":chainId",e).replace(":nodeId",t)}`,ADD_DEPENDENCY:e=>`${E.CHAINS}${r.ADD_DEPENDENCY.replace(":id",e)}`,DELETE_DEPENDENCY:(e,t)=>`${E.CHAINS}${r.DELETE_DEPENDENCY.replace(":chainId",e).replace(":dependencyId",t)}`,EXECUTE_CHAIN:e=>`${E.CHAINS}${r.EXECUTE_CHAIN.replace(":id",e)}`,RESUME_MANUAL_INPUT:e=>`${E.CHAINS}${r.RESUME_MANUAL_INPUT.replace(":executionId",e)}`,GET_EXECUTION:e=>`${E.CHAINS}${r.GET_EXECUTION.replace(":id",e)}`,LIST_EXECUTIONS:e=>`${E.CHAINS}${r.LIST_EXECUTIONS.replace(":id",e)}`}};var y=z.object({apiKey:z.string().min(1,"API key is required and cannot be empty"),organizationId:z.string().optional(),env:z.enum(["production","prod","staging","stg","localhost","local"]).optional().default("production"),baseUrl:z.url().optional()});function $(e){try{return y.parse(e)}catch(t){if(t instanceof z.ZodError){let o=t.issues.map(T=>`${T.path.join(".")}: ${T.message}`).join(", ");throw new Error(`SDK configuration validation failed: ${o}`)}throw t}}var L=class extends Error{constructor(o,T,I){super(o);this._status=T;this._response=I;this.name="SDKError";}};var H=z.object({OFUMA_API_URL:z.url().optional(),OFUMA_API_URL_PRODUCTION:z.url().optional(),OFUMA_API_URL_STAGING:z.url().optional(),OFUMA_API_URL_LOCAL:z.url().optional()}),C;try{typeof process<"u"&&process.env?C=H.parse(process.env):C={};}catch{C={};}var p=C;function U(e){if(e.baseUrl)return e.baseUrl;if(e.env){let t=V(e.env,p);if(t)return t}return p.OFUMA_API_URL?p.OFUMA_API_URL:m("production")}function V(e,t){let T={production:"OFUMA_API_URL_PRODUCTION",prod:"OFUMA_API_URL_PRODUCTION",staging:"OFUMA_API_URL_STAGING",stg:"OFUMA_API_URL_STAGING",localhost:"OFUMA_API_URL_LOCAL",local:"OFUMA_API_URL_LOCAL"}[e];if(!T)return;let I=t[T];return I||m(e)}function m(e){return {production:p.OFUMA_API_URL_PRODUCTION,prod:p.OFUMA_API_URL_PRODUCTION,staging:p.OFUMA_API_URL_STAGING,stg:p.OFUMA_API_URL_STAGING,localhost:p.OFUMA_API_URL_LOCAL,local:p.OFUMA_API_URL_LOCAL}[e]||"https://api.ofuma.ai"}var N=class{constructor(t){i(this,"config");let o=$(t),T=U(o);this.config={fetch:globalThis.fetch,baseUrl:T,...o};}async request(t,o={}){let T=new URL(t,this.config.baseUrl),I=new Headers({"Content-Type":"application/json",...o.headers});I.set("Authorization",`Bearer ${this.config.apiKey}`),this.config.organizationId&&I.set("x-organization-id",this.config.organizationId);let s=await this.config.fetch(T.toString(),{...o,headers:I});if(!s.ok){let G=await s.text().catch(()=>"Unknown error");throw new L(`HTTP ${s.status}: ${G}`,s.status,s)}return s.headers.get("content-type")?.includes("application/json")?s.json():s.text()}};var d=class extends N{async get(t,o={}){return this.request(_.CHAINS.GET_CHAIN(t),{method:"GET",...o})}async execute(t,o,T={}){return this.request(_.CHAINS.EXECUTE_CHAIN(t),{method:"POST",body:JSON.stringify({chainId:t,...o}),...T})}};var M=class extends N{async list(t={}){return this.request(_.PROMPTS.LIST,{method:"GET",...t})}async get(t,o={},T={}){let I=_.PROMPTS.GET_BY_ID(t);if(o.versionId){let s=new URLSearchParams;s.set("versionId",o.versionId.toString()),I+=`?${s.toString()}`;}return this.request(I,{method:"GET",...T})}async getByPromptId(t,o={},T={}){let I=_.PROMPTS.GET_BY_PROMPT_ID(t);if(o.versionId){let s=new URLSearchParams;s.set("versionId",o.versionId.toString()),I+=`?${s.toString()}`;}return this.request(I,{method:"GET",...T})}async interpolate(t,o,T={}){return this.request(_.PROMPTS.INTERPOLATE(t),{method:"POST",body:JSON.stringify(o),...T})}async setVersionEnvironment(t,o={}){return this.request(_.PROMPTS.SET_VERSION_ENVIRONMENT,{method:"PUT",body:JSON.stringify(t),...o})}async execute(t,o={}){return this.request(_.PROMPTS.EXECUTE,{method:"POST",body:JSON.stringify(t),...o})}};var l=class{constructor(t){i(this,"prompts");i(this,"chains");i(this,"_config");this._config=t,this.prompts=new M(t),this.chains=new d(t);}getBaseUrl(){return U(this._config)}},Re=l;
3
+ export{l as OfumaSDK,Re as default};//# sourceMappingURL=index.js.map
6
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/.pnpm/dotenv@16.6.1/node_modules/dotenv/package.json","../../node_modules/.pnpm/dotenv@16.6.1/node_modules/dotenv/lib/main.js","../../packages/shared/dist/constants/endpoints.js","../src/types.ts","../src/env.ts","../src/utils.ts","../src/client.ts","../src/resources/chains/index.ts","../src/resources/prompts/index.ts","../src/index.ts"],"names":["require_package","__commonJSMin","exports","module","require_main","fs","path","os","crypto","packageJson","version","LINE","parse","src","obj","lines","match","key","value","maybeQuote","_parseVault","options","vaultPath","_vaultPath","result","DotenvModule","err","keys","_dotenvKey","length","decrypted","i","attrs","_instructions","error","_warn","message","_debug","_log","dotenvKey","uri","environment","environmentKey","ciphertext","possibleVaultPath","filepath","_resolveHome","envPath","_configVault","debug","quiet","parsed","processEnv","configDotenv","dotenvPath","encoding","optionPaths","lastError","parsedAll","e","keysCount","shortPaths","filePath","relative","config","decrypt","encrypted","keyStr","nonce","authTag","aesgcm","isRange","invalidKeyLength","decryptionFailed","populate","override","ROUTE_BASE_PATHS","PROMPT_ROUTES","PROMPT_CHAIN_ROUTES","API_ENDPOINTS","id","promptId","chainId","nodeId","dependencyId","executionId","SDKConfigSchema","z","validateSDKConfig","issues","issue","SDKError","_status","_response","import_dotenv","envFile","SDKEnvSchema","env","env_default","getBaseUrl","url","getEnvironmentUrl","getDefaultUrl","envName","envConfig","envVarKey","envVarValue","BaseClient","__publicField","validatedConfig","baseUrl","headers","response","errorMessage","ChainsResource","data","PromptsResource","queryOptions","params","OfumaSDK","index_default"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.6.1\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"homepage\": \"https://github.com/motdotla/dotenv#readme\",\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = Boolean(options && options.debug)\n const quiet = options && 'quiet' in options ? options.quiet : true\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n const quiet = options && 'quiet' in options ? options.quiet : true\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(parsedAll).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","export const ROUTE_BASE_PATHS = {\n PROMPTS: '/prompts',\n FOLDERS: '/folders',\n TEAMS: '/teams',\n ORGANIZATIONS: '/organizations',\n DASHBOARD: '/dashboard',\n API_KEYS: '/api-keys',\n VIRTUAL_KEYS: '/virtual-keys',\n AUTH: '/auth',\n CHAINS: '/prompts/chains',\n PROVIDERS: '/providers',\n FEATURES: '/features'\n};\nexport const PROMPT_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n GET_BY_PROMPT_ID: '/by-id/:promptId',\n INTERPOLATE: '/:id/interpolate',\n UPDATE: '/:id/update',\n DELETE: '/delete',\n DELETE_VERSION: '/versions/delete',\n ADD_LABEL: '/:id/labels',\n REMOVE_LABEL: '/:id/labels',\n SET_VERSION_ENVIRONMENT: '/versions/environment',\n EXECUTE: '/execute',\n PLAYGROUND_EXECUTE: '/playground/execute',\n SET_VERSION_AS_LATEST: '/versions/set-latest',\n DUPLICATE: '/duplicate'\n};\nexport const PROMPT_CHAIN_ROUTES = {\n LIST_CHAINS: '/list',\n CREATE_CHAIN: '/create',\n GET_CHAIN: '/:id',\n UPDATE_CHAIN: '/:id',\n DELETE_CHAIN: '/:id',\n DUPLICATE_CHAIN: '/:id/duplicate',\n CREATE_FROM_DEFINITION: '/from-definition',\n ADD_NODE: '/:id/nodes',\n UPDATE_NODE: '/:chainId/nodes/:nodeId',\n DELETE_NODE: '/:chainId/nodes/:nodeId',\n ADD_DEPENDENCY: '/:id/dependencies',\n DELETE_DEPENDENCY: '/:chainId/dependencies/:dependencyId',\n EXECUTE_CHAIN: '/:id/execute',\n RESUME_MANUAL_INPUT: '/executions/:executionId/resume',\n GET_EXECUTION: '/executions/:id',\n LIST_EXECUTIONS: '/:id/executions'\n};\nexport const TEAM_ROUTES = {\n LIST_ALL: '/all',\n CREATE: '/',\n UPDATE: '/:id',\n DELETE: '/:id',\n SET_ACTIVE: '/set-active',\n LIST_USER_TEAMS: '/user-all',\n LIST_MEMBERS: '/members',\n ADD_MEMBER: '/add-member',\n REMOVE_MEMBER: '/remove-member',\n CANCEL_INVITATION: '/cancel-invitation'\n};\nexport const ORGANIZATION_ROUTES = {\n LIST: '/',\n CREATE: '/create',\n SET_ACTIVE: '/set-active',\n INVITE_USER: '/invite',\n ACCEPT_INVITE: '/accept-invite',\n GET_MEMBER_ROLE: '/member-role'\n};\nexport const DASHBOARD_ROUTES = {\n GET_STATS: '/stats',\n GET_ACTIVITIES: '/activities'\n};\nexport const API_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n DELETE: '/delete',\n PERMISSIONS: '/permissions'\n};\nexport const VIRTUAL_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n UPDATE: '/:id',\n DELETE: '/:id',\n DUPLICATE: '/:id/duplicate',\n TOGGLE_STATUS: '/:id/toggle-status'\n};\nexport const PROVIDER_ROUTES = {\n LIST: '/',\n GET_BY_ID: '/:providerId',\n GET_SCHEMA: '/:providerId/schema',\n GET_MODELS: '/:providerId/models'\n};\nexport const FOLDERS_ROUTES = {\n GET_FOLDER_TREE: '/tree',\n CREATE_FOLDER: '/',\n UPDATE_FOLDER: '/:id',\n DELETE_FOLDER: '/:id',\n MOVE_PROMPT_TO_FOLDER: '/move-prompt',\n SET_FOLDER_PERMISSIONS: '/set-permissions'\n};\nexport const FEATURES_ROUTES = {\n LIST: '/',\n CHECK: '/:id',\n TOGGLE: '/toggle',\n CREATE: '/create'\n};\nexport const API_ENDPOINTS = {\n PROMPTS: {\n LIST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_ID.replace(':id', id)}`,\n GET_BY_PROMPT_ID: (promptId) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_PROMPT_ID.replace(':promptId', promptId)}`,\n INTERPOLATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.INTERPOLATE.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE}`,\n DELETE_VERSION: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE_VERSION}`,\n ADD_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.ADD_LABEL.replace(':id', id)}`,\n REMOVE_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.REMOVE_LABEL.replace(':id', id)}`,\n SET_VERSION_ENVIRONMENT: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_ENVIRONMENT}`,\n EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.EXECUTE}`,\n PLAYGROUND_EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.PLAYGROUND_EXECUTE}`,\n SET_VERSION_AS_LATEST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_AS_LATEST}`,\n DUPLICATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DUPLICATE}`\n },\n TEAMS: {\n LIST_ALL: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_ALL}`,\n CREATE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CREATE}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.DELETE.replace(':id', id)}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.SET_ACTIVE}`,\n LIST_USER_TEAMS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_USER_TEAMS}`,\n LIST_MEMBERS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_MEMBERS}`,\n ADD_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.ADD_MEMBER}`,\n REMOVE_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.REMOVE_MEMBER}`,\n CANCEL_INVITATION: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CANCEL_INVITATION}`\n },\n ORGANIZATIONS: {\n LIST: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.CREATE}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.SET_ACTIVE}`,\n INVITE_USER: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.INVITE_USER}`,\n ACCEPT_INVITE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.ACCEPT_INVITE}`,\n GET_MEMBER_ROLE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.GET_MEMBER_ROLE}`\n },\n DASHBOARD: {\n GET_STATS: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_STATS}`,\n GET_ACTIVITIES: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_ACTIVITIES}`\n },\n API_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.CREATE}`,\n DELETE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.DELETE}`,\n PERMISSIONS: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.PERMISSIONS}`\n },\n VIRTUAL_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.GET_BY_ID.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DELETE.replace(':id', id)}`,\n DUPLICATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DUPLICATE.replace(':id', id)}`,\n TOGGLE_STATUS: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.TOGGLE_STATUS.replace(':id', id)}`\n },\n CHAINS: {\n LIST_CHAINS: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_CHAINS}`,\n CREATE_CHAIN: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_CHAIN}`,\n GET_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_CHAIN.replace(':id', id)}`,\n UPDATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_CHAIN.replace(':id', id)}`,\n DELETE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_CHAIN.replace(':id', id)}`,\n DUPLICATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DUPLICATE_CHAIN.replace(':id', id)}`,\n CREATE_FROM_DEFINITION: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_FROM_DEFINITION}`,\n ADD_NODE: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_NODE.replace(':id', id)}`,\n UPDATE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n DELETE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n ADD_DEPENDENCY: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_DEPENDENCY.replace(':id', id)}`,\n DELETE_DEPENDENCY: (chainId, dependencyId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_DEPENDENCY.replace(':chainId', chainId).replace(':dependencyId', dependencyId)}`,\n EXECUTE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.EXECUTE_CHAIN.replace(':id', id)}`,\n RESUME_MANUAL_INPUT: (executionId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.RESUME_MANUAL_INPUT.replace(':executionId', executionId)}`,\n GET_EXECUTION: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_EXECUTION.replace(':id', id)}`,\n LIST_EXECUTIONS: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_EXECUTIONS.replace(':id', id)}`\n },\n PROVIDERS: {\n LIST: `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.LIST}`,\n GET_BY_ID: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_BY_ID.replace(':providerId', providerId)}`,\n GET_SCHEMA: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_SCHEMA.replace(':providerId', providerId)}`,\n GET_MODELS: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_MODELS.replace(':providerId', providerId)}`\n },\n FOLDERS: {\n GET_FOLDER_TREE: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.GET_FOLDER_TREE}`,\n CREATE_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.CREATE_FOLDER}`,\n UPDATE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.UPDATE_FOLDER.replace(':id', id)}`,\n DELETE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.DELETE_FOLDER.replace(':id', id)}`,\n MOVE_PROMPT_TO_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.MOVE_PROMPT_TO_FOLDER}`,\n SET_FOLDER_PERMISSIONS: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.SET_FOLDER_PERMISSIONS}`\n },\n FEATURES: {\n LIST: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.LIST}`,\n CHECK: (key) => `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.CHECK.replace(':id', key)}`,\n TOGGLE: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.TOGGLE}`\n }\n};\n","import { z } from 'zod'\n\n// const FetchSchema = z.custom<typeof fetch>(\n// (val) => typeof val === 'function',\n// { message: 'fetch must be a function' }\n// )\n\nconst SDKConfigSchema = z.object({\n apiKey: z.string().min(1, 'API key is required and cannot be empty'),\n organizationId: z.string().optional(),\n env: z.enum(['production', 'prod', 'staging', 'stg', 'localhost', 'local']).optional().default('production'),\n baseUrl: z.url().optional()\n})\n\nexport type SDKConfig = z.input<typeof SDKConfigSchema>\n\n// Validation function for SDK config\nexport function validateSDKConfig(config: unknown): SDKConfig {\n try {\n return SDKConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.issues.map(issue =>\n `${issue.path.join('.')}: ${issue.message}`\n ).join(', ')\n\n throw new Error(`SDK configuration validation failed: ${issues}`)\n }\n throw error\n }\n}\n\nexport interface RequestOptions {\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\nexport class SDKError extends Error {\n constructor(\n message: string,\n public _status?: number,\n public _response?: Response\n ) {\n super(message)\n this.name = 'SDKError'\n }\n}\n","/* eslint-disable node/no-process-env */\nimport { config } from 'dotenv'\nimport { z } from 'zod'\n\nif (typeof process !== 'undefined' && ['development', 'test'].includes(process.env.NODE_ENV || '')) {\n try {\n const envFile = process.env.NODE_ENV === 'test' ? '.env.test' : '.env'\n config({ path: envFile })\n } catch {}\n}\n\nconst SDKEnvSchema = z.object({\n OFUMA_API_URL: z.url().optional(),\n OFUMA_API_URL_PRODUCTION: z.url().optional(),\n OFUMA_API_URL_STAGING: z.url().optional(),\n OFUMA_API_URL_LOCAL: z.url().optional()\n})\n\nexport type SDKEnvType = z.infer<typeof SDKEnvSchema>\n\n// eslint-disable-next-line import/no-mutable-exports\nlet env: SDKEnvType\n\ntry {\n if (typeof process !== 'undefined' && process.env) {\n env = SDKEnvSchema.parse(process.env)\n } else {\n // In browser or no process.env available\n env = {}\n }\n} catch {\n env = {}\n}\n\nexport default env\n","import type { SDKEnvType } from './env.js'\nimport type { SDKConfig } from './types.js'\n\nimport env from './env.js'\n\n/**\n * Gets the base URL based on configuration priority:\n * 1. Custom baseUrl if provided\n * 2. Environment-based URL from env field (using environment variables or defaults)\n * 3. OFUMA_API_URL environment variable (backward compatibility)\n * 4. Default to production URL\n */\nexport function getBaseUrl(config: SDKConfig): string {\n // Priority 1: Custom baseUrl\n if (config.baseUrl) {\n return config.baseUrl\n }\n\n // Priority 2: Environment-based URL\n if (config.env) {\n const url = getEnvironmentUrl(config.env, env)\n if (url) {\n return url\n }\n }\n\n // Priority 3: Environment variable fallback (backward compatibility)\n if (env.OFUMA_API_URL) {\n return env.OFUMA_API_URL\n }\n\n // Priority 4: Default to production\n return getDefaultUrl('production')\n}\n\n/**\n * Maps environment names to their corresponding URLs\n * Uses environment variables if available, otherwise falls back to defaults\n */\nexport function getEnvironmentUrl(envName: string, envConfig: SDKEnvType): string | undefined {\n // Map of environment names to their environment variable keys\n const envVarMap: Record<string, keyof SDKEnvType> = {\n production: 'OFUMA_API_URL_PRODUCTION',\n prod: 'OFUMA_API_URL_PRODUCTION',\n staging: 'OFUMA_API_URL_STAGING',\n stg: 'OFUMA_API_URL_STAGING',\n localhost: 'OFUMA_API_URL_LOCAL',\n local: 'OFUMA_API_URL_LOCAL'\n }\n\n const envVarKey = envVarMap[envName]\n if (!envVarKey) {\n return undefined\n }\n\n // Use environment variable if available\n const envVarValue = envConfig[envVarKey]\n if (envVarValue) {\n return envVarValue as string\n }\n\n // Fall back to default URL for the environment\n return getDefaultUrl(envName)\n}\n\n/**\n * Returns the default URL for a given environment\n */\nexport function getDefaultUrl(envName: string): string {\n const defaultUrls: Record<string, string | undefined> = {\n production: env.OFUMA_API_URL_PRODUCTION,\n prod: env.OFUMA_API_URL_PRODUCTION,\n staging: env.OFUMA_API_URL_STAGING,\n stg: env.OFUMA_API_URL_STAGING,\n localhost: env.OFUMA_API_URL_LOCAL,\n local: env.OFUMA_API_URL_LOCAL\n }\n\n return defaultUrls[envName] || 'https://api.ofuma.ai'\n}\n","import type { RequestOptions, SDKConfig } from '@/types.js'\n\nimport { SDKError, validateSDKConfig } from '@/types.js'\nimport { getBaseUrl } from '@/utils.js'\n\nexport class BaseClient {\n protected config: SDKConfig & { fetch: typeof fetch }\n\n constructor(config: SDKConfig) {\n const validatedConfig = validateSDKConfig(config)\n\n const baseUrl = getBaseUrl(validatedConfig)\n\n this.config = {\n fetch: globalThis.fetch,\n baseUrl,\n ...validatedConfig\n }\n }\n\n protected async request<T>(\n path: string,\n options: RequestInit & RequestOptions = {}\n ): Promise<T> {\n const url = new URL(path, this.config.baseUrl)\n\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...options.headers\n })\n\n headers.set('Authorization', `Bearer ${this.config.apiKey}`)\n\n if (this.config.organizationId) {\n headers.set('x-organization-id', this.config.organizationId)\n }\n\n const response = await this.config.fetch(url.toString(), {\n ...options,\n headers\n })\n\n if (!response.ok) {\n const errorMessage = await response.text().catch(() => 'Unknown error')\n throw new SDKError(\n `HTTP ${response.status}: ${errorMessage}`,\n response.status,\n response\n )\n }\n\n const contentType = response.headers.get('content-type')\n if (contentType?.includes('application/json')) {\n return response.json()\n }\n\n return response.text() as unknown as T\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n ChainExecutionResponse,\n ChainResponse,\n ExecuteChainRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\n\nexport class ChainsResource extends BaseClient {\n async get(\n id: string,\n options: RequestOptions = {}\n ): Promise<ChainResponse> {\n return this.request<ChainResponse>(API_ENDPOINTS.CHAINS.GET_CHAIN(id), {\n method: 'GET',\n ...options\n })\n }\n\n async execute(\n id: string,\n data: Omit<ExecuteChainRequest, 'chainId'>,\n options: RequestOptions = {}\n ): Promise<ChainExecutionResponse> {\n return this.request<ChainExecutionResponse>(API_ENDPOINTS.CHAINS.EXECUTE_CHAIN(id), {\n method: 'POST',\n body: JSON.stringify({\n chainId: id,\n ...data\n }),\n ...options\n })\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n GetOneQueryType,\n InterpolatedPromptResponse,\n InterpolatePromptRequest,\n PromptListResponse,\n PromptResponse,\n PromptVersionResponse,\n SetVersionEnvironmentRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\nimport { ExecutePromptType } from '@ofuma/shared/types'\n\nexport class PromptsResource extends BaseClient {\n async list(options: RequestOptions = {}): Promise<PromptListResponse> {\n return this.request<PromptListResponse>(API_ENDPOINTS.PROMPTS.LIST, {\n method: 'GET',\n ...options\n })\n }\n\n async get(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async getByPromptId(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_PROMPT_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async interpolate(\n id: string,\n data: InterpolatePromptRequest,\n options: RequestOptions = {}\n ): Promise<InterpolatedPromptResponse> {\n return this.request<InterpolatedPromptResponse>(API_ENDPOINTS.PROMPTS.INTERPOLATE(id), {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async setVersionEnvironment(\n data: SetVersionEnvironmentRequest,\n options: RequestOptions = {}\n ): Promise<PromptVersionResponse> {\n return this.request<PromptVersionResponse>(API_ENDPOINTS.PROMPTS.SET_VERSION_ENVIRONMENT, {\n method: 'PUT',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async execute(\n data: ExecutePromptType,\n options: RequestOptions = {}\n ): Promise<any> {\n return this.request<any>(API_ENDPOINTS.PROMPTS.EXECUTE, {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n}\n","import type { SDKConfig } from './types.js'\n\nimport { ChainsResource } from './resources/chains/index.js'\nimport { PromptsResource } from './resources/prompts/index.js'\nimport { getBaseUrl } from './utils.js'\n\nexport class OfumaSDK {\n public prompts: PromptsResource\n public chains: ChainsResource\n private _config: SDKConfig\n\n constructor(config: SDKConfig) {\n this._config = config\n this.prompts = new PromptsResource(config)\n this.chains = new ChainsResource(config)\n }\n\n /**\n * Get the base URL used by the SDK (useful for debugging and testing)\n */\n getBaseUrl(): string {\n return getBaseUrl(this._config)\n }\n}\n\n// Export all prompt types from the types file\nexport type * from './resources/prompts/types.js'\n\n// Export all chain types from the types file\nexport type * from './resources/chains/types.js'\n\n// Export SDK configuration types\nexport type * from './types.js'\n\nexport default OfumaSDK\n"]}
1
+ {"version":3,"sources":["../../packages/shared/dist/constants/endpoints.js","../src/types.ts","../src/env.ts","../src/utils.ts","../src/client.ts","../src/resources/chains/index.ts","../src/resources/prompts/index.ts","../src/index.ts"],"names":["ROUTE_BASE_PATHS","PROMPT_ROUTES","PROMPT_CHAIN_ROUTES","API_ENDPOINTS","id","promptId","chainId","nodeId","dependencyId","executionId","SDKConfigSchema","z","validateSDKConfig","config","error","issues","issue","SDKError","message","_status","_response","SDKEnvSchema","env","env_default","getBaseUrl","url","getEnvironmentUrl","getDefaultUrl","envName","envConfig","envVarKey","envVarValue","BaseClient","__publicField","validatedConfig","baseUrl","path","options","headers","response","errorMessage","ChainsResource","data","PromptsResource","queryOptions","params","OfumaSDK","index_default"],"mappings":"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","file":"index.js","sourcesContent":["export const ROUTE_BASE_PATHS = {\n PROMPTS: '/prompts',\n FOLDERS: '/folders',\n TEAMS: '/teams',\n ORGANIZATIONS: '/organizations',\n DASHBOARD: '/dashboard',\n API_KEYS: '/api-keys',\n VIRTUAL_KEYS: '/virtual-keys',\n AUTH: '/auth',\n CHAINS: '/prompts/chains',\n PROVIDERS: '/providers',\n FEATURES: '/features'\n};\nexport const PROMPT_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n GET_BY_PROMPT_ID: '/by-id/:promptId',\n INTERPOLATE: '/:id/interpolate',\n UPDATE: '/:id/update',\n DELETE: '/delete',\n DELETE_VERSION: '/versions/delete',\n ADD_LABEL: '/:id/labels',\n REMOVE_LABEL: '/:id/labels',\n SET_VERSION_ENVIRONMENT: '/versions/environment',\n EXECUTE: '/execute',\n PLAYGROUND_EXECUTE: '/playground/execute',\n SET_VERSION_AS_LATEST: '/versions/set-latest',\n DUPLICATE: '/duplicate'\n};\nexport const PROMPT_CHAIN_ROUTES = {\n LIST_CHAINS: '/list',\n CREATE_CHAIN: '/create',\n GET_CHAIN: '/:id',\n UPDATE_CHAIN: '/:id',\n DELETE_CHAIN: '/:id',\n DUPLICATE_CHAIN: '/:id/duplicate',\n CREATE_FROM_DEFINITION: '/from-definition',\n ADD_NODE: '/:id/nodes',\n UPDATE_NODE: '/:chainId/nodes/:nodeId',\n DELETE_NODE: '/:chainId/nodes/:nodeId',\n ADD_DEPENDENCY: '/:id/dependencies',\n DELETE_DEPENDENCY: '/:chainId/dependencies/:dependencyId',\n EXECUTE_CHAIN: '/:id/execute',\n RESUME_MANUAL_INPUT: '/executions/:executionId/resume',\n GET_EXECUTION: '/executions/:id',\n LIST_EXECUTIONS: '/:id/executions'\n};\nexport const TEAM_ROUTES = {\n LIST_ALL: '/all',\n CREATE: '/',\n UPDATE: '/:id',\n DELETE: '/:id',\n SET_ACTIVE: '/set-active',\n LIST_USER_TEAMS: '/user-all',\n LIST_MEMBERS: '/members',\n ADD_MEMBER: '/add-member',\n REMOVE_MEMBER: '/remove-member',\n CANCEL_INVITATION: '/cancel-invitation'\n};\nexport const ORGANIZATION_ROUTES = {\n LIST: '/',\n CREATE: '/create',\n SET_ACTIVE: '/set-active',\n INVITE_USER: '/invite',\n ACCEPT_INVITE: '/accept-invite',\n GET_MEMBER_ROLE: '/member-role'\n};\nexport const DASHBOARD_ROUTES = {\n GET_STATS: '/stats',\n GET_ACTIVITIES: '/activities'\n};\nexport const API_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n DELETE: '/delete',\n PERMISSIONS: '/permissions'\n};\nexport const VIRTUAL_KEY_ROUTES = {\n LIST: '/',\n CREATE: '/',\n GET_BY_ID: '/:id',\n UPDATE: '/:id',\n DELETE: '/:id',\n DUPLICATE: '/:id/duplicate',\n TOGGLE_STATUS: '/:id/toggle-status'\n};\nexport const PROVIDER_ROUTES = {\n LIST: '/',\n GET_BY_ID: '/:providerId',\n GET_SCHEMA: '/:providerId/schema',\n GET_MODELS: '/:providerId/models'\n};\nexport const FOLDERS_ROUTES = {\n GET_FOLDER_TREE: '/tree',\n CREATE_FOLDER: '/',\n UPDATE_FOLDER: '/:id',\n DELETE_FOLDER: '/:id',\n MOVE_PROMPT_TO_FOLDER: '/move-prompt',\n SET_FOLDER_PERMISSIONS: '/set-permissions'\n};\nexport const FEATURES_ROUTES = {\n LIST: '/',\n CHECK: '/:id',\n TOGGLE: '/toggle',\n CREATE: '/create'\n};\nexport const API_ENDPOINTS = {\n PROMPTS: {\n LIST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_ID.replace(':id', id)}`,\n GET_BY_PROMPT_ID: (promptId) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.GET_BY_PROMPT_ID.replace(':promptId', promptId)}`,\n INTERPOLATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.INTERPOLATE.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE}`,\n DELETE_VERSION: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DELETE_VERSION}`,\n ADD_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.ADD_LABEL.replace(':id', id)}`,\n REMOVE_LABEL: (id) => `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.REMOVE_LABEL.replace(':id', id)}`,\n SET_VERSION_ENVIRONMENT: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_ENVIRONMENT}`,\n EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.EXECUTE}`,\n PLAYGROUND_EXECUTE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.PLAYGROUND_EXECUTE}`,\n SET_VERSION_AS_LATEST: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.SET_VERSION_AS_LATEST}`,\n DUPLICATE: `${ROUTE_BASE_PATHS.PROMPTS}${PROMPT_ROUTES.DUPLICATE}`\n },\n TEAMS: {\n LIST_ALL: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_ALL}`,\n CREATE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CREATE}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.DELETE.replace(':id', id)}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.SET_ACTIVE}`,\n LIST_USER_TEAMS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_USER_TEAMS}`,\n LIST_MEMBERS: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.LIST_MEMBERS}`,\n ADD_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.ADD_MEMBER}`,\n REMOVE_MEMBER: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.REMOVE_MEMBER}`,\n CANCEL_INVITATION: `${ROUTE_BASE_PATHS.TEAMS}${TEAM_ROUTES.CANCEL_INVITATION}`\n },\n ORGANIZATIONS: {\n LIST: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.CREATE}`,\n SET_ACTIVE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.SET_ACTIVE}`,\n INVITE_USER: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.INVITE_USER}`,\n ACCEPT_INVITE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.ACCEPT_INVITE}`,\n GET_MEMBER_ROLE: `${ROUTE_BASE_PATHS.ORGANIZATIONS}${ORGANIZATION_ROUTES.GET_MEMBER_ROLE}`\n },\n DASHBOARD: {\n GET_STATS: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_STATS}`,\n GET_ACTIVITIES: `${ROUTE_BASE_PATHS.DASHBOARD}${DASHBOARD_ROUTES.GET_ACTIVITIES}`\n },\n API_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.CREATE}`,\n DELETE: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.DELETE}`,\n PERMISSIONS: `${ROUTE_BASE_PATHS.API_KEYS}${API_KEY_ROUTES.PERMISSIONS}`\n },\n VIRTUAL_KEYS: {\n LIST: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.LIST}`,\n CREATE: `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.CREATE}`,\n GET_BY_ID: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.GET_BY_ID.replace(':id', id)}`,\n UPDATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.UPDATE.replace(':id', id)}`,\n DELETE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DELETE.replace(':id', id)}`,\n DUPLICATE: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.DUPLICATE.replace(':id', id)}`,\n TOGGLE_STATUS: (id) => `${ROUTE_BASE_PATHS.VIRTUAL_KEYS}${VIRTUAL_KEY_ROUTES.TOGGLE_STATUS.replace(':id', id)}`\n },\n CHAINS: {\n LIST_CHAINS: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_CHAINS}`,\n CREATE_CHAIN: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_CHAIN}`,\n GET_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_CHAIN.replace(':id', id)}`,\n UPDATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_CHAIN.replace(':id', id)}`,\n DELETE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_CHAIN.replace(':id', id)}`,\n DUPLICATE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DUPLICATE_CHAIN.replace(':id', id)}`,\n CREATE_FROM_DEFINITION: `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.CREATE_FROM_DEFINITION}`,\n ADD_NODE: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_NODE.replace(':id', id)}`,\n UPDATE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.UPDATE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n DELETE_NODE: (chainId, nodeId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_NODE.replace(':chainId', chainId).replace(':nodeId', nodeId)}`,\n ADD_DEPENDENCY: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.ADD_DEPENDENCY.replace(':id', id)}`,\n DELETE_DEPENDENCY: (chainId, dependencyId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.DELETE_DEPENDENCY.replace(':chainId', chainId).replace(':dependencyId', dependencyId)}`,\n EXECUTE_CHAIN: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.EXECUTE_CHAIN.replace(':id', id)}`,\n RESUME_MANUAL_INPUT: (executionId) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.RESUME_MANUAL_INPUT.replace(':executionId', executionId)}`,\n GET_EXECUTION: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.GET_EXECUTION.replace(':id', id)}`,\n LIST_EXECUTIONS: (id) => `${ROUTE_BASE_PATHS.CHAINS}${PROMPT_CHAIN_ROUTES.LIST_EXECUTIONS.replace(':id', id)}`\n },\n PROVIDERS: {\n LIST: `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.LIST}`,\n GET_BY_ID: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_BY_ID.replace(':providerId', providerId)}`,\n GET_SCHEMA: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_SCHEMA.replace(':providerId', providerId)}`,\n GET_MODELS: (providerId) => `${ROUTE_BASE_PATHS.PROVIDERS}${PROVIDER_ROUTES.GET_MODELS.replace(':providerId', providerId)}`\n },\n FOLDERS: {\n GET_FOLDER_TREE: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.GET_FOLDER_TREE}`,\n CREATE_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.CREATE_FOLDER}`,\n UPDATE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.UPDATE_FOLDER.replace(':id', id)}`,\n DELETE_FOLDER: (id) => `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.DELETE_FOLDER.replace(':id', id)}`,\n MOVE_PROMPT_TO_FOLDER: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.MOVE_PROMPT_TO_FOLDER}`,\n SET_FOLDER_PERMISSIONS: `${ROUTE_BASE_PATHS.FOLDERS}${FOLDERS_ROUTES.SET_FOLDER_PERMISSIONS}`\n },\n FEATURES: {\n LIST: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.LIST}`,\n CHECK: (key) => `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.CHECK.replace(':id', key)}`,\n TOGGLE: `${ROUTE_BASE_PATHS.FEATURES}${FEATURES_ROUTES.TOGGLE}`\n }\n};\n","import { z } from 'zod'\n\n// const FetchSchema = z.custom<typeof fetch>(\n// (val) => typeof val === 'function',\n// { message: 'fetch must be a function' }\n// )\n\nconst SDKConfigSchema = z.object({\n apiKey: z.string().min(1, 'API key is required and cannot be empty'),\n organizationId: z.string().optional(),\n env: z.enum(['production', 'prod', 'staging', 'stg', 'localhost', 'local']).optional().default('production'),\n baseUrl: z.url().optional()\n})\n\nexport type SDKConfig = z.input<typeof SDKConfigSchema>\n\n// Validation function for SDK config\nexport function validateSDKConfig(config: unknown): SDKConfig {\n try {\n return SDKConfigSchema.parse(config)\n } catch (error) {\n if (error instanceof z.ZodError) {\n const issues = error.issues.map(issue =>\n `${issue.path.join('.')}: ${issue.message}`\n ).join(', ')\n\n throw new Error(`SDK configuration validation failed: ${issues}`)\n }\n throw error\n }\n}\n\nexport interface RequestOptions {\n headers?: Record<string, string>;\n signal?: AbortSignal;\n}\n\nexport class SDKError extends Error {\n constructor(\n message: string,\n public _status?: number,\n public _response?: Response\n ) {\n super(message)\n this.name = 'SDKError'\n }\n}\n","/* eslint-disable node/no-process-env */\nimport { z } from 'zod'\n\nconst SDKEnvSchema = z.object({\n OFUMA_API_URL: z.url().optional(),\n OFUMA_API_URL_PRODUCTION: z.url().optional(),\n OFUMA_API_URL_STAGING: z.url().optional(),\n OFUMA_API_URL_LOCAL: z.url().optional()\n})\n\nexport type SDKEnvType = z.infer<typeof SDKEnvSchema>\n\n// eslint-disable-next-line import/no-mutable-exports\nlet env: SDKEnvType\n\ntry {\n if (typeof process !== 'undefined' && process.env) {\n env = SDKEnvSchema.parse(process.env)\n } else {\n // In browser or no process.env available\n env = {}\n }\n} catch {\n env = {}\n}\n\nexport default env\n","import type { SDKEnvType } from './env.js'\nimport type { SDKConfig } from './types.js'\n\nimport env from './env.js'\n\n/**\n * Gets the base URL based on configuration priority:\n * 1. Custom baseUrl if provided\n * 2. Environment-based URL from env field (using environment variables or defaults)\n * 3. OFUMA_API_URL environment variable (backward compatibility)\n * 4. Default to production URL\n */\nexport function getBaseUrl(config: SDKConfig): string {\n // Priority 1: Custom baseUrl\n if (config.baseUrl) {\n return config.baseUrl\n }\n\n // Priority 2: Environment-based URL\n if (config.env) {\n const url = getEnvironmentUrl(config.env, env)\n if (url) {\n return url\n }\n }\n\n // Priority 3: Environment variable fallback (backward compatibility)\n if (env.OFUMA_API_URL) {\n return env.OFUMA_API_URL\n }\n\n // Priority 4: Default to production\n return getDefaultUrl('production')\n}\n\n/**\n * Maps environment names to their corresponding URLs\n * Uses environment variables if available, otherwise falls back to defaults\n */\nexport function getEnvironmentUrl(envName: string, envConfig: SDKEnvType): string | undefined {\n // Map of environment names to their environment variable keys\n const envVarMap: Record<string, keyof SDKEnvType> = {\n production: 'OFUMA_API_URL_PRODUCTION',\n prod: 'OFUMA_API_URL_PRODUCTION',\n staging: 'OFUMA_API_URL_STAGING',\n stg: 'OFUMA_API_URL_STAGING',\n localhost: 'OFUMA_API_URL_LOCAL',\n local: 'OFUMA_API_URL_LOCAL'\n }\n\n const envVarKey = envVarMap[envName]\n if (!envVarKey) {\n return undefined\n }\n\n // Use environment variable if available\n const envVarValue = envConfig[envVarKey]\n if (envVarValue) {\n return envVarValue as string\n }\n\n // Fall back to default URL for the environment\n return getDefaultUrl(envName)\n}\n\n/**\n * Returns the default URL for a given environment\n */\nexport function getDefaultUrl(envName: string): string {\n const defaultUrls: Record<string, string | undefined> = {\n production: env.OFUMA_API_URL_PRODUCTION,\n prod: env.OFUMA_API_URL_PRODUCTION,\n staging: env.OFUMA_API_URL_STAGING,\n stg: env.OFUMA_API_URL_STAGING,\n localhost: env.OFUMA_API_URL_LOCAL,\n local: env.OFUMA_API_URL_LOCAL\n }\n\n return defaultUrls[envName] || 'https://api.ofuma.ai'\n}\n","import type { RequestOptions, SDKConfig } from '@/types.js'\n\nimport { SDKError, validateSDKConfig } from '@/types.js'\nimport { getBaseUrl } from '@/utils.js'\n\nexport class BaseClient {\n protected config: SDKConfig & { fetch: typeof fetch }\n\n constructor(config: SDKConfig) {\n const validatedConfig = validateSDKConfig(config)\n\n const baseUrl = getBaseUrl(validatedConfig)\n\n this.config = {\n fetch: globalThis.fetch,\n baseUrl,\n ...validatedConfig\n }\n }\n\n protected async request<T>(\n path: string,\n options: RequestInit & RequestOptions = {}\n ): Promise<T> {\n const url = new URL(path, this.config.baseUrl)\n\n const headers = new Headers({\n 'Content-Type': 'application/json',\n ...options.headers\n })\n\n headers.set('Authorization', `Bearer ${this.config.apiKey}`)\n\n if (this.config.organizationId) {\n headers.set('x-organization-id', this.config.organizationId)\n }\n\n const response = await this.config.fetch(url.toString(), {\n ...options,\n headers\n })\n\n if (!response.ok) {\n const errorMessage = await response.text().catch(() => 'Unknown error')\n throw new SDKError(\n `HTTP ${response.status}: ${errorMessage}`,\n response.status,\n response\n )\n }\n\n const contentType = response.headers.get('content-type')\n if (contentType?.includes('application/json')) {\n return response.json()\n }\n\n return response.text() as unknown as T\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n ChainExecutionResponse,\n ChainResponse,\n ExecuteChainRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\n\nexport class ChainsResource extends BaseClient {\n async get(\n id: string,\n options: RequestOptions = {}\n ): Promise<ChainResponse> {\n return this.request<ChainResponse>(API_ENDPOINTS.CHAINS.GET_CHAIN(id), {\n method: 'GET',\n ...options\n })\n }\n\n async execute(\n id: string,\n data: Omit<ExecuteChainRequest, 'chainId'>,\n options: RequestOptions = {}\n ): Promise<ChainExecutionResponse> {\n return this.request<ChainExecutionResponse>(API_ENDPOINTS.CHAINS.EXECUTE_CHAIN(id), {\n method: 'POST',\n body: JSON.stringify({\n chainId: id,\n ...data\n }),\n ...options\n })\n }\n}\n","import { API_ENDPOINTS } from '@ofuma/shared/constants'\n\nimport type { RequestOptions } from '../../types.js'\nimport type {\n GetOneQueryType,\n InterpolatedPromptResponse,\n InterpolatePromptRequest,\n PromptListResponse,\n PromptResponse,\n PromptVersionResponse,\n SetVersionEnvironmentRequest\n} from './types.js'\n\nimport { BaseClient } from '../../client.js'\nimport { ExecutePromptType } from '@ofuma/shared/types'\n\nexport class PromptsResource extends BaseClient {\n async list(options: RequestOptions = {}): Promise<PromptListResponse> {\n return this.request<PromptListResponse>(API_ENDPOINTS.PROMPTS.LIST, {\n method: 'GET',\n ...options\n })\n }\n\n async get(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async getByPromptId(\n id: string,\n queryOptions: GetOneQueryType = {},\n options: RequestOptions = {}\n ): Promise<PromptResponse> {\n let path = API_ENDPOINTS.PROMPTS.GET_BY_PROMPT_ID(id)\n\n if (queryOptions.versionId) {\n const params = new URLSearchParams()\n params.set('versionId', queryOptions.versionId.toString())\n path += `?${params.toString()}`\n }\n\n return this.request<PromptResponse>(path, {\n method: 'GET',\n ...options\n })\n }\n\n async interpolate(\n id: string,\n data: InterpolatePromptRequest,\n options: RequestOptions = {}\n ): Promise<InterpolatedPromptResponse> {\n return this.request<InterpolatedPromptResponse>(API_ENDPOINTS.PROMPTS.INTERPOLATE(id), {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async setVersionEnvironment(\n data: SetVersionEnvironmentRequest,\n options: RequestOptions = {}\n ): Promise<PromptVersionResponse> {\n return this.request<PromptVersionResponse>(API_ENDPOINTS.PROMPTS.SET_VERSION_ENVIRONMENT, {\n method: 'PUT',\n body: JSON.stringify(data),\n ...options\n })\n }\n\n async execute(\n data: ExecutePromptType,\n options: RequestOptions = {}\n ): Promise<any> {\n return this.request<any>(API_ENDPOINTS.PROMPTS.EXECUTE, {\n method: 'POST',\n body: JSON.stringify(data),\n ...options\n })\n }\n}\n","import type { SDKConfig } from './types.js'\n\nimport { ChainsResource } from './resources/chains/index.js'\nimport { PromptsResource } from './resources/prompts/index.js'\nimport { getBaseUrl } from './utils.js'\n\nexport class OfumaSDK {\n public prompts: PromptsResource\n public chains: ChainsResource\n private _config: SDKConfig\n\n constructor(config: SDKConfig) {\n this._config = config\n this.prompts = new PromptsResource(config)\n this.chains = new ChainsResource(config)\n }\n\n /**\n * Get the base URL used by the SDK (useful for debugging and testing)\n */\n getBaseUrl(): string {\n return getBaseUrl(this._config)\n }\n}\n\n// Export all prompt types from the types file\nexport type * from './resources/prompts/types.js'\n\n// Export all chain types from the types file\nexport type * from './resources/chains/types.js'\n\n// Export SDK configuration types\nexport type * from './types.js'\n\nexport default OfumaSDK\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ofuma/sdk",
3
3
  "type": "module",
4
- "version": "0.1.2",
4
+ "version": "0.1.3",
5
5
  "description": "TypeScript SDK for Ofuma API - Manage prompts, versions, and AI interactions",
6
6
  "author": "Ofuma Engineering",
7
7
  "license": "MIT",
@@ -39,6 +39,21 @@
39
39
  "files": [
40
40
  "dist"
41
41
  ],
42
+ "dependencies": {
43
+ "zod": "^4.0.5"
44
+ },
45
+ "devDependencies": {
46
+ "@types/node": "^24.3.1",
47
+ "tsup": "^8.3.0",
48
+ "typescript": "^5.8.3",
49
+ "vitest": "^3.2.4",
50
+ "@ofuma/shared": "1.0.0",
51
+ "@repo/typescript-config": "0.0.0",
52
+ "@repo/eslint-config": "0.0.0"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public"
56
+ },
42
57
  "scripts": {
43
58
  "build": "tsup",
44
59
  "dev-test": "tsup --watch",
@@ -49,25 +64,8 @@
49
64
  "test": "NODE_ENV=test vitest run",
50
65
  "test:watch": "NODE_ENV=test vitest",
51
66
  "test:coverage": "NODE_ENV=test vitest run --coverage",
52
- "prepublishOnly": "pnpm run clean && pnpm run build && pnpm run type-check && pnpm run test",
53
67
  "release": "pnpm version patch && pnpm publish",
54
68
  "release:minor": "pnpm version minor && pnpm publish",
55
69
  "release:major": "pnpm version major && pnpm publish"
56
- },
57
- "dependencies": {
58
- "@ofuma/shared": "workspace:*",
59
- "zod": "^4.0.5"
60
- },
61
- "devDependencies": {
62
- "@repo/eslint-config": "workspace:*",
63
- "@repo/typescript-config": "workspace:*",
64
- "@types/node": "^24.3.1",
65
- "dotenv": "^16.4.7",
66
- "tsup": "^8.3.0",
67
- "typescript": "^5.8.3",
68
- "vitest": "^3.2.4"
69
- },
70
- "publishConfig": {
71
- "access": "public"
72
70
  }
73
- }
71
+ }