@timeback/sdk 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +10 -8
  2. package/dist/chunk-1cqa51je.js +2 -0
  3. package/dist/chunk-3ew9vn2d.js +2 -0
  4. package/dist/chunk-6b0ppq9d.js +2 -0
  5. package/dist/{chunk-3mqpr9vx.js → chunk-bavxzt1k.js} +2 -2
  6. package/dist/chunk-c8pw96sp.js +10 -0
  7. package/dist/chunk-edk3nfj7.js +2 -0
  8. package/dist/chunk-g67efaph.js +4 -0
  9. package/dist/chunk-pd91g539.js +1 -0
  10. package/dist/client/namespaces/activity.d.ts +6 -3
  11. package/dist/client/namespaces/activity.d.ts.map +1 -1
  12. package/dist/identity.d.ts +2 -5
  13. package/dist/identity.d.ts.map +1 -1
  14. package/dist/identity.js +1 -1
  15. package/dist/index.d.ts +6 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +16 -7
  18. package/dist/server/adapters/express.js +1 -1
  19. package/dist/server/adapters/native.js +2 -2
  20. package/dist/server/adapters/nextjs.js +1 -1
  21. package/dist/server/adapters/nuxt.js +1 -1
  22. package/dist/server/adapters/solid-start.js +1 -1
  23. package/dist/server/adapters/svelte-kit.js +1 -1
  24. package/dist/server/adapters/tanstack-start.js +1 -1
  25. package/dist/server/adapters/types.d.ts +16 -4
  26. package/dist/server/adapters/types.d.ts.map +1 -1
  27. package/dist/server/handlers/activity/attempts.d.ts +1 -1
  28. package/dist/server/handlers/activity/attempts.d.ts.map +1 -1
  29. package/dist/server/handlers/activity/caliper.d.ts +4 -2
  30. package/dist/server/handlers/activity/caliper.d.ts.map +1 -1
  31. package/dist/server/lib/utils.d.ts +4 -1
  32. package/dist/server/lib/utils.d.ts.map +1 -1
  33. package/dist/server/timeback-identity.d.ts +3 -3
  34. package/dist/server/timeback.d.ts +4 -2
  35. package/dist/server/timeback.d.ts.map +1 -1
  36. package/dist/server/types.d.ts +18 -7
  37. package/dist/server/types.d.ts.map +1 -1
  38. package/dist/shared/types.d.ts +24 -8
  39. package/dist/shared/types.d.ts.map +1 -1
  40. package/dist/shared/types.ts +24 -8
  41. package/package.json +7 -10
  42. package/dist/chunk-af3xwwsv.js +0 -16
  43. package/dist/chunk-b8649tw4.js +0 -2
  44. package/dist/chunk-bd09q1fw.js +0 -8
  45. package/dist/chunk-js665z11.js +0 -1
  46. package/dist/chunk-nsr7a2dv.js +0 -2
  47. package/dist/chunk-txwjkpfz.js +0 -1
  48. package/dist/chunk-whc53e0y.js +0 -11
  49. package/dist/edge.d.ts +0 -13
  50. package/dist/edge.d.ts.map +0 -1
  51. package/dist/edge.js +0 -1
@@ -1 +0,0 @@
1
- import{x as a,y as N}from"./chunk-txwjkpfz.js";import{I as O,K as _,M as x,N as v,O as d,P as q}from"./chunk-nsr7a2dv.js";import{Q as u,S as c}from"./chunk-b8649tw4.js";var J=null,T=!1,C=!1;function g(K){let z=K.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*");return new RegExp(`^${z}$`)}function K6(){if(J!==null)return;if(J=[],typeof process>"u"||!process.env?.DEBUG){C=!1;return}C=!0;let K=process.env.DEBUG.trim();if(K==="1"||K==="true"||K==="*"){T=!0;return}let Q=K.split(",").map((Z)=>Z.trim()).filter(Boolean);for(let Z of Q)if(Z.startsWith("-"))J.push({regex:g(Z.slice(1)),exclude:!0});else J.push({regex:g(Z),exclude:!1});if(!J.some((Z)=>!Z.exclude)&&J.length>0)T=!0}function p(K){if(K6(),!C)return!0;if(T){if(K){for(let Q of J)if(Q.exclude&&Q.regex.test(K))return!1}return!0}if(!K)return!1;for(let Q of J)if(Q.exclude&&Q.regex.test(K))return!1;for(let Q of J)if(!Q.exclude&&Q.regex.test(K))return!0;return!1}function R(){return typeof globalThis<"u"&&"window"in globalThis}function U(){if(R())return"browser";if(typeof process<"u"&&process.env){if(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.JENKINS_URL||process.env.BUILDKITE)return"ci"}return"terminal"}var k;if(!R())try{k=(await import("node:util")).inspect}catch{}var F={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m"};function Q6(K){switch(K){case"debug":return F.blue;case"info":return F.cyan;case"warn":return F.yellow;case"error":return F.red}}function z6(K){switch(K){case"debug":return console.debug;case"info":return console.info;case"warn":return console.warn;case"error":return console.error}}function Z6(K){if(k)return k(K,{depth:null,colors:!0,breakLength:80,compact:!1});return JSON.stringify(K,null,2)}var w=(K)=>{let Q=Q6(K.level),z=z6(K.level),Z=K.level.toUpperCase().padEnd(5),$=K.timestamp.toISOString().replace(/\.\d{3}Z$/,""),X=`${F.dim}[${$}]${F.reset}`,Y=`${Q}${Z}${F.reset}`,B=K.scope?`${F.bold}[${K.scope}]${F.reset} `:"",G=`${X} ${Y} ${B}${K.message}`;if(K.context&&Object.keys(K.context).length>0)z(G,Z6(K.context));else z(G)};var $6={debug:"[DEBUG]",info:"[INFO]",warn:"[WARN]",error:"[ERROR]"};function B6(K){return Object.entries(K).map(([Q,z])=>`${Q}=${X6(z)}`).join(" ")}function X6(K){if(typeof K==="string")return K;if(typeof K==="number")return String(K);if(typeof K==="boolean")return String(K);if(K===null)return"null";if(K===void 0)return"undefined";return JSON.stringify(K)}var D=(K)=>{let Q=[];if(Q.push(K.timestamp.toISOString()),Q.push($6[K.level]),K.scope)Q.push(`[${K.scope}]`);if(Q.push(K.message),K.context&&Object.keys(K.context).length>0)Q.push(B6(K.context));console.log(Q.join(" "))};var P=(K)=>{let Q={timestamp:K.timestamp.toISOString(),level:K.level,...K.scope&&{scope:K.scope},msg:K.message};if(K.context&&Object.keys(K.context).length>0)Object.assign(Q,K.context);console.log(JSON.stringify(Q))};var Y6={debug:"color: gray",info:"color: #0ea5e9",warn:"color: #f59e0b",error:"color: #ef4444; font-weight: bold"},H6={debug:"log",info:"info",warn:"warn",error:"error"},S=(K)=>{let Q=H6[K.level],z=Y6[K.level],$=`%c${K.scope?`[${K.scope}]`:""} ${K.message}`;if(K.context&&Object.keys(K.context).length>0)console[Q]($,z,K.context);else console[Q]($,z)};var i=["debug","info","warn","error"];function J6(K){switch(K){case"terminal":return w;case"ci":return D;case"production":return P;case"browser":return S;case"test":return()=>{}}}function F6(){if(typeof process<"u"&&process.env?.DEBUG)return"debug";return"info"}function G6(K,Q){return i.indexOf(K)>=i.indexOf(Q)}class A{scope;minLevel;environment;formatter;defaultContext;constructor(K={}){this.scope=K.scope,this.minLevel=K.minLevel??F6(),this.defaultContext=K.defaultContext??{},this.environment=K.environment??U(),this.formatter=J6(this.environment)}child(K){let Q=this.scope?`${this.scope}:${K}`:K;return new A({scope:Q,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext}})}withContext(K){return new A({scope:this.scope,minLevel:this.minLevel,environment:this.environment,defaultContext:{...this.defaultContext,...K}})}debug(K,Q){this.log("debug",K,Q)}info(K,Q){this.log("info",K,Q)}warn(K,Q){this.log("warn",K,Q)}error(K,Q){this.log("error",K,Q)}log(K,Q,z){if(K==="debug"&&!p(this.scope))return;if(!G6(K,this.minLevel))return;let Z={level:K,message:Q,scope:this.scope,context:z||Object.keys(this.defaultContext).length>0?{...this.defaultContext,...z}:void 0,timestamp:new Date};this.formatter(Z)}}function E(K={}){return new A(K)}var L,l,W6={debug(){},info(){},warn(){},error(){}};function M6(){try{let K=typeof process>"u"?void 0:process.env.DEBUG;return K==="1"||K==="true"}catch{return!1}}var h=new Map;function N6(K,Q){let z=`[${Q}]`;return{debug:(...Z)=>K.debug(`${z} ${Z[0]}`,...Z.slice(1)),info:(...Z)=>K.info(`${z} ${Z[0]}`,...Z.slice(1)),warn:(...Z)=>K.warn(`${z} ${Z[0]}`,...Z.slice(1)),error:(...Z)=>K.error(`${z} ${Z[0]}`,...Z.slice(1))}}function I(K){let Q=h.get(K);if(Q)return Q;if(L)Q=N6(L,K);else{let z=l??(M6()?"debug":"warn");if(z==="silent")Q=W6;else Q=E({scope:K,minLevel:z})}return h.set(K,Q),Q}function j6(K){L=K.logger,l=K.logLevel,h.clear()}function V(K){let Q=`timeback:${K}`;return{debug(z,...Z){I(Q).debug(z,...Z)},info(z,...Z){I(Q).info(z,...Z)},warn(z,...Z){I(Q).warn(z,...Z)},error(z,...Z){I(Q).error(z,...Z)}}}var W=V("sso"),j=V("oidc");var n=new Map;async function b(K){let Q=n.get(K);if(Q)return Q;let z=`${K}/.well-known/openid-configuration`,Z=await fetch(z);if(!Z.ok)throw j.error("Discovery fetch failed",{status:Z.status}),Error(`Failed to fetch OIDC discovery: ${Z.statusText}`);let $=await Z.json();return j.debug("Fetched OIDC discovery document",{authEndpoint:$.authorization_endpoint,tokenEndpoint:$.token_endpoint}),n.set(K,$),$}function f(K){switch(K){case"production":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_3uhuoRM3R";case"staging":return"https://cognito-idp.us-east-1.amazonaws.com/us-east-1_5EUwTP9XD";case"local":throw Error("Local environment is not yet supported for OIDC")}}async function y(K){let Q=await b(K.issuer),z=new URL(Q.authorization_endpoint);return z.searchParams.set("response_type","code"),z.searchParams.set("client_id",K.clientId),z.searchParams.set("redirect_uri",K.redirectUri),z.searchParams.set("scope","openid profile email"),z.searchParams.set("state",K.state),z.toString()}async function A6(K){let Q=await b(K.issuer),z=await fetch(Q.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:K.clientId,client_secret:K.clientSecret,code:K.code,redirect_uri:K.redirectUri})});if(!z.ok){let $=await z.text();throw j.error("Token exchange failed",{status:z.status,body:$}),Error(`Token exchange failed: ${z.status} ${$}`)}let Z=await z.json();return j.debug("Received tokens from IdP",{expiresIn:Z.expires_in}),Z}async function V6(K){let Q=await b(K.issuer),z=await fetch(Q.userinfo_endpoint,{headers:{Authorization:`Bearer ${K.accessToken}`}});if(!z.ok)throw Error(`UserInfo request failed: ${z.statusText}`);return z.json()}import{TimebackClient as O6}from"@timeback/core";var M=V("resolve");class H extends Error{code;constructor(K,Q){super(K);this.code=Q;this.name="TimebackUserResolutionError"}}function q6(K){switch(K.code){case"timeback_user_ambiguous":return 409;case"timeback_user_not_found":return 404;default:return 502}}function _6(K){return{sub:K.sub,email:K.email,firstName:K.given_name,lastName:K.family_name,pictureUrl:K.picture}}async function t(K,Q){let Z=(await K.oneroster.users.list({where:{email:Q},limit:2})).data;if(Z.length===0)throw M.warn("No Timeback user found for email",{email:N(Q)}),new H(`No Timeback user found with email: ${Q}`,"timeback_user_not_found");if(Z.length>1)throw M.error("Multiple Timeback users found for email",{email:N(Q),count:Z.length}),new H(`Multiple Timeback users found with email: ${Q}`,"timeback_user_ambiguous");let $=Z[0];if(!$.sourcedId)throw new H("Timeback user is missing sourcedId","timeback_user_lookup_failed");return $}async function w6(K){let{env:Q,apiCredentials:z,userInfo:Z}=K;if(!Z.email)throw M.error("Missing email in IdP user info",{sub:Z.sub}),new H("IdP did not return an email address, which is required to resolve Timeback identity","missing_email");let $=Z.email;M.debug("Resolving Timeback user by email",{email:N($),env:Q});let X=K.client,Y=X??new O6({env:O(Q),auth:{clientId:z.clientId,clientSecret:z.clientSecret}});try{let B=await t(Y,$);return{...{id:B.sourcedId,email:B.email??$,name:a(B.givenName,B.familyName),school:B.primaryOrg?{id:B.primaryOrg.sourcedId,name:B.primaryOrg.name??B.primaryOrg.sourcedId}:void 0,grade:B.grades?.length?Math.max(...B.grades):void 0},claims:_6(Z)}}catch(B){if(B instanceof H)throw B;let G=B instanceof Error?B.message:"Unknown error";throw M.error("Failed to lookup Timeback user",{email:N($),error:G}),new H(`Failed to lookup Timeback user: ${G}`,"timeback_user_lookup_failed")}finally{if(!X)Y.close()}}async function D6(K){let{email:Q,client:z}=K;M.debug("Looking up Timeback user ID by email",{email:N(Q)});try{return(await t(z,Q)).sourcedId}catch(Z){if(Z instanceof H)throw Z;let $=Z instanceof Error?Z.message:"Unknown error";throw M.error("Failed to lookup Timeback user",{email:N(Q),error:$}),new H(`Failed to lookup Timeback user: ${$}`,"timeback_user_lookup_failed")}}function m(K,Q,z,Z){return{error:K,errorCode:Q,state:z,req:Z,redirect:x,json:_}}function o(K){try{return d(K)}catch{W.warn("Failed to decode state");return}}function P6(K,Q,z,Z,$){let X=Q.searchParams.get("error_description");W.error("IdP returned error",{error:K,description:X});let Y=Error(X??K);if($)return $(m(Y,K,z,Z));return _({error:K},400)}function S6(K,Q,z){W.error("Missing authorization code in callback");let Z=Error("Missing authorization code");if(z)return z(m(Z,"missing_code",K,Q));return _({error:"Missing authorization code"},400)}async function I6(K){let{req:Q,env:z,clientId:Z,buildState:$}=K,X=K.issuer??f(z),Y=new URL(Q.url),B=K.redirectUri;if(!B){let e=Y.pathname.replace(q.IDENTITY.SIGNIN,"");B=`${Y.origin}${e}${q.IDENTITY.CALLBACK}`}W.debug("SSO sign-in initiated",{env:z,issuer:X,clientId:Z,redirectUri:B});let G=$?$({req:Q,url:Y}):{},s=v(G),r=await y({issuer:X,clientId:Z,redirectUri:B,state:s});return x(r)}function x6(K){let Q=new URL(K.url),z=Q.searchParams.get("code"),Z=Q.searchParams.get("error"),$=Q.searchParams.get("state");W.debug("Received callback from IdP",{hasCode:!!z,error:Z});let X=$?o($):void 0;return{url:Q,code:z,errorParam:Z,state:X}}function T6(K,Q){if(Q)return Q;let z=K.pathname.replace(q.IDENTITY.CALLBACK,"");return`${K.origin}${z}${q.IDENTITY.CALLBACK}`}function C6(K,Q){let z=K.totalQuestions!==void 0,Z=K.correctQuestions!==void 0;if(z!==Z){Q.addIssue({code:"custom",message:"totalQuestions and correctQuestions must be provided together."});return}if(z&&Z){let{correctQuestions:$,totalQuestions:X}=K;if($>X)Q.addIssue({code:"custom",message:"correctQuestions cannot exceed totalQuestions."})}}function R6(K,Q,z){let Z=O(z),$=Q.overrides?.[Z]?.sensor??Q.sensor??K.sensor;if(!$){let X=Q.overrides?.[Z]?.launchUrl??Q.launchUrl??K.launchUrl;if(X)try{$=new URL(X).origin}catch{}}return $}function U6(K,Q,z){if(!Q?.onRequestStart&&!Q?.onRequestEnd)return z;return async(Z)=>{await Q.onRequestStart?.({handler:K});let $=Date.now(),X;try{X=await z(Z)}catch(Y){throw await Q.onRequestEnd?.({handler:K,durationMs:Date.now()-$,status:500}),Y}return await Q.onRequestEnd?.({handler:K,durationMs:Date.now()-$,status:X.status}),X}}export{j6 as e,V as f,W as g,f as h,A6 as i,V6 as j,H as k,q6 as l,w6 as m,D6 as n,m as o,P6 as p,S6 as q,I6 as r,x6 as s,T6 as t,C6 as u,R6 as v,U6 as w};
@@ -1,2 +0,0 @@
1
- import{createHash as C}from"node:crypto";function J(q){return{course:q,component:`${q}-component`,resource:`${q}-resource`,componentResource:`${q}-cr`}}function K(q){return C("sha256").update(q).digest("hex")}function L(q){if(q==="local"||q==="staging")return"staging";return"production"}function M(q){if(q==="production"||q==="local"||q==="staging")return q;return"staging"}function F(q,w=200,z){let A=new Headers(z);return A.set("Content-Type","application/json"),new Response(JSON.stringify(q),{status:w,headers:A})}function N(q,w,z,A){let B={code:q,message:w};if(A?.details!==void 0)B.details=A.details;return F({...A?.fields,error:B},z)}function O(q,w){let z=new Headers(w);return z.set("Location",q),new Response(null,{status:302,headers:z})}function P(q){let w=JSON.stringify(q);return btoa(w).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Q(q){let w=q.replace(/-/g,"+").replace(/_/g,"/"),z=atob(w);return JSON.parse(z)}var T={ACTIVITY:"/activity",ACTIVITY_HEARTBEAT:"/activity/heartbeat",ACTIVITY_SUBMIT:"/activity/submit",IDENTITY:{SIGNIN:"/identity/signin",SIGNOUT:"/identity/signout",CALLBACK:"/identity/callback"},USER:{ME:"/user/me",VERIFY:"/user/verify"}};
2
- export{J as G,K as H,L as I,M as J,F as K,N as L,O as M,P as N,Q as O,T as P};
@@ -1 +0,0 @@
1
- function k(x,I){let E=I?.batchSize??50;if(E<=0)return[x.slice()];let R=[];for(let $=0;$<x.length;$+=E)R.push(x.slice($,$+E));return R}function q(x){return x.filter((I)=>I.status==="fulfilled").flatMap((I)=>I.value)}function C(...x){return x.map((E)=>E?.trim()).filter((E)=>Boolean(E)).join(" ")||void 0}function D(x){let I=x.lastIndexOf("@");if(I<=0)return"<redacted>";let E=x.slice(0,I),R=x.slice(I+1);return`${E.slice(0,1)}***@${R}`}export{C as x,D as y,k as z,q as A};
@@ -1,11 +0,0 @@
1
- var V=Object.create;var{getPrototypeOf:W,defineProperty:a,getOwnPropertyNames:A,getOwnPropertyDescriptor:q}=Object,F=Object.prototype.hasOwnProperty;var de=(e,t,n)=>{n=e!=null?V(W(e)):{};let r=t||!e||!e.__esModule?a(n,"default",{value:e,enumerable:!0}):n;for(let o of A(e))if(!F.call(r,o))a(r,o,{get:()=>e[o],enumerable:!0});return r},$=new WeakMap,be=(e)=>{var t=$.get(e),n;if(t)return t;if(t=a({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")A(e).map((r)=>!F.call(t,r)&&a(t,r,{get:()=>e[r],enumerable:!(n=q(e,r))||n.enumerable}));return $.set(e,t),t},he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var K=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var Q=(e,t)=>()=>(e&&(t=e(e=0)),t);var ge=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ae={};K(ae,{types:()=>oe,promisify:()=>U,log:()=>J,isUndefined:()=>p,isSymbol:()=>se,isString:()=>j,isRegExp:()=>d,isPrimitive:()=>ce,isObject:()=>y,isNumber:()=>H,isNullOrUndefined:()=>fe,isNull:()=>O,isFunction:()=>h,isError:()=>b,isDate:()=>E,isBuffer:()=>ue,isBoolean:()=>C,isArray:()=>R,inspect:()=>l,inherits:()=>_,format:()=>D,deprecate:()=>Y,default:()=>ye,debuglog:()=>v,callbackifyOnRejected:()=>N,callbackify:()=>M,_extend:()=>k,TextEncoder:()=>G,TextDecoder:()=>Z});function D(e,...t){if(!j(e)){var n=[e];for(var r=0;r<t.length;r++)n.push(l(t[r]));return n.join(" ")}var r=0,o=t.length,f=String(e).replace(X,function(s){if(s==="%%")return"%";if(r>=o)return s;switch(s){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch(c){return"[Circular]"}default:return s}});for(var i=t[r];r<o;i=t[++r])if(O(i)||!y(i))f+=" "+i;else f+=" "+l(i);return f}function Y(e,t){if(typeof process>"u"||process?.noDeprecation===!0)return e;var n=!1;function r(...o){if(!n){if(process.throwDeprecation)throw Error(t);else if(process.traceDeprecation)console.trace(t);else console.error(t);n=!0}return e.apply(this,...o)}return r}function x(e,t){var n=l.styles[t];if(n)return"\x1B["+l.colors[n][0]+"m"+e+"\x1B["+l.colors[n][1]+"m";else return e}function ee(e,t){return e}function te(e){var t={};return e.forEach(function(n,r){t[n]=!0}),t}function g(e,t,n){if(e.customInspect&&t&&h(t.inspect)&&t.inspect!==l&&!(t.constructor&&t.constructor.prototype===t)){var r=t.inspect(n,e);if(!j(r))r=g(e,r,n);return r}var o=re(e,t);if(o)return o;var f=Object.keys(t),i=te(f);if(e.showHidden)f=Object.getOwnPropertyNames(t);if(b(t)&&(f.indexOf("message")>=0||f.indexOf("description")>=0))return w(t);if(f.length===0){if(h(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(d(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(E(t))return e.stylize(Date.prototype.toString.call(t),"date");if(b(t))return w(t)}var c="",u=!1,m=["{","}"];if(R(t))u=!0,m=["[","]"];if(h(t)){var I=t.name?": "+t.name:"";c=" [Function"+I+"]"}if(d(t))c=" "+RegExp.prototype.toString.call(t);if(E(t))c=" "+Date.prototype.toUTCString.call(t);if(b(t))c=" "+w(t);if(f.length===0&&(!u||t.length==0))return m[0]+c+m[1];if(n<0)if(d(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");else return e.stylize("[Object]","special");e.seen.push(t);var S;if(u)S=ne(e,t,n,i,f);else S=f.map(function(L){return z(e,t,n,i,L,u)});return e.seen.pop(),ie(S,c,m)}function re(e,t){if(p(t))return e.stylize("undefined","undefined");if(j(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(H(t))return e.stylize(""+t,"number");if(C(t))return e.stylize(""+t,"boolean");if(O(t))return e.stylize("null","null")}function w(e){return"["+Error.prototype.toString.call(e)+"]"}function ne(e,t,n,r,o){var f=[];for(var i=0,s=t.length;i<s;++i)if(B(t,String(i)))f.push(z(e,t,n,r,String(i),!0));else f.push("");return o.forEach(function(c){if(!c.match(/^\d+$/))f.push(z(e,t,n,r,c,!0))}),f}function z(e,t,n,r,o,f){var i,s,c;if(c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]},c.get)if(c.set)s=e.stylize("[Getter/Setter]","special");else s=e.stylize("[Getter]","special");else if(c.set)s=e.stylize("[Setter]","special");if(!B(r,o))i="["+o+"]";if(!s)if(e.seen.indexOf(c.value)<0){if(O(n))s=g(e,c.value,null);else s=g(e,c.value,n-1);if(s.indexOf(`
2
- `)>-1)if(f)s=s.split(`
3
- `).map(function(u){return" "+u}).join(`
4
- `).slice(2);else s=`
5
- `+s.split(`
6
- `).map(function(u){return" "+u}).join(`
7
- `)}else s=e.stylize("[Circular]","special");if(p(i)){if(f&&o.match(/^\d+$/))return s;if(i=JSON.stringify(""+o),i.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/))i=i.slice(1,-1),i=e.stylize(i,"name");else i=i.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),i=e.stylize(i,"string")}return i+": "+s}function ie(e,t,n){var r=0,o=e.reduce(function(f,i){if(r++,i.indexOf(`
8
- `)>=0)r++;return f+i.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(o>60)return n[0]+(t===""?"":t+`
9
- `)+" "+e.join(`,
10
- `)+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}function R(e){return Array.isArray(e)}function C(e){return typeof e==="boolean"}function O(e){return e===null}function fe(e){return e==null}function H(e){return typeof e==="number"}function j(e){return typeof e==="string"}function se(e){return typeof e==="symbol"}function p(e){return e===void 0}function d(e){return y(e)&&T(e)==="[object RegExp]"}function y(e){return typeof e==="object"&&e!==null}function E(e){return y(e)&&T(e)==="[object Date]"}function b(e){return y(e)&&(T(e)==="[object Error]"||e instanceof Error)}function h(e){return typeof e==="function"}function ce(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e>"u"}function ue(e){return e instanceof Buffer}function T(e){return Object.prototype.toString.call(e)}function P(e){return e<10?"0"+e.toString(10):e.toString(10)}function pe(){var e=new Date,t=[P(e.getHours()),P(e.getMinutes()),P(e.getSeconds())].join(":");return[e.getDate(),le[e.getMonth()],t].join(" ")}function J(...e){console.log("%s - %s",pe(),D.apply(null,e))}function _(e,t){if(t)e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function k(e,t){if(!t||!y(t))return e;var n=Object.keys(t),r=n.length;while(r--)e[n[r]]=t[n[r]];return e}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function N(e,t){if(!e){var n=Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}function M(e){if(typeof e!=="function")throw TypeError('The "original" argument must be of type Function');function t(...n){var r=n.pop();if(typeof r!=="function")throw TypeError("The last argument must be of type Function");var o=this,f=function(...i){return r.apply(o,...i)};e.apply(this,n).then(function(i){process.nextTick(f.bind(null,null,i))},function(i){process.nextTick(N.bind(null,i,f))})}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)),t}var X,v,l,oe=()=>{},le,U,G,Z,ye;var me=Q(()=>{X=/%[sdj%]/g;v=((e={},t={},n)=>((n=typeof process<"u"&&!1)&&(n=n.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase()),t=new RegExp("^"+n+"$","i"),(r)=>{if(r=r.toUpperCase(),!e[r])if(t.test(r))e[r]=function(...o){console.error("%s: %s",r,pid,D.apply(null,...o))};else e[r]=function(){};return e[r]}))(),l=((e)=>(e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.custom=Symbol.for("nodejs.util.inspect.custom"),e))(function(e,t,...n){var r={seen:[],stylize:ee};if(n.length>=1)r.depth=n[0];if(n.length>=2)r.colors=n[1];if(C(t))r.showHidden=t;else if(t)k(r,t);if(p(r.showHidden))r.showHidden=!1;if(p(r.depth))r.depth=2;if(p(r.colors))r.colors=!1;if(r.colors)r.stylize=x;return g(r,e,r.depth)});le=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];U=((e)=>(e.custom=Symbol.for("nodejs.util.promisify.custom"),e))(function(e){if(typeof e!=="function")throw TypeError('The "original" argument must be of type Function');if(kCustomPromisifiedSymbol&&e[kCustomPromisifiedSymbol]){var t=e[kCustomPromisifiedSymbol];if(typeof t!=="function")throw TypeError('The "nodejs.util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,kCustomPromisifiedSymbol,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(...n){var r,o,f=new Promise(function(i,s){r=i,o=s});n.push(function(i,s){if(i)o(i);else r(s)});try{e.apply(this,n)}catch(i){o(i)}return f}if(Object.setPrototypeOf(t,Object.getPrototypeOf(e)),kCustomPromisifiedSymbol)Object.defineProperty(t,kCustomPromisifiedSymbol,{value:t,enumerable:!1,writable:!1,configurable:!0});return Object.defineProperties(t,Object.getOwnPropertyDescriptors(e))});({TextEncoder:G,TextDecoder:Z}=globalThis),ye={TextEncoder:G,TextDecoder:Z,promisify:U,log:J,inherits:_,_extend:k,callbackifyOnRejected:N,callbackify:M}});me();export{oe as types,U as promisify,J as log,p as isUndefined,se as isSymbol,j as isString,d as isRegExp,ce as isPrimitive,y as isObject,H as isNumber,fe as isNullOrUndefined,O as isNull,h as isFunction,b as isError,E as isDate,ue as isBuffer,C as isBoolean,R as isArray,l as inspect,_ as inherits,D as format,Y as deprecate,ye as default,v as debuglog,N as callbackifyOnRejected,M as callbackify,k as _extend,G as TextEncoder,Z as TextDecoder};
11
- export{de as d,be as e,he as f,K as g,Q as h,ge as i,ae as j,me as k};
package/dist/edge.d.ts DELETED
@@ -1,13 +0,0 @@
1
- /**
2
- * Timeback (edge/worker friendly entrypoint)
3
- *
4
- * This entrypoint is intended for runtimes like Cloudflare Workers / workerd.
5
- * It avoids importing Node-only dependencies (notably config loading via `c12`).
6
- *
7
- * It includes identity-only SSO plus a small set of edge-safe helpers.
8
- */
9
- export { createTimebackIdentity } from './server/timeback-identity';
10
- export type { IdentityOnlyConfig, IdentityOnlyInstance, IdentityOnlyHandlers } from './server';
11
- export { toNativeHandler } from './server/adapters/native';
12
- export { ROUTES } from './shared/constants';
13
- //# sourceMappingURL=edge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/edge.js DELETED
@@ -1 +0,0 @@
1
- import{a as L,b as G,c as D}from"./chunk-bd09q1fw.js";import"./chunk-whc53e0y.js";function V(g){let y=g.trim();if(y==="")return"/";let x=y.indexOf("?");if(x===-1)return y;let C=y.slice(0,x);if(C==="")return"/";return C}function $(g){let y=V(g);if(y!==""&&!y.startsWith("/"))y=`/${y}`;if(y==="/"||y==="")return"";if(y.endsWith("/"))return y.slice(0,-1);return y}function Y(g){let y=g.method.toUpperCase(),x=V(g.pathname),C=g.callbackPath?V(g.callbackPath):void 0;if(C&&x===C)return y==="GET"?"identity.callback":null;let I=g.basePath,M=I!==void 0,J=M?$(I):void 0,Q=(f)=>{if(y==="GET"){if(f===G.IDENTITY.SIGNIN)return"identity.signIn";if(f===G.IDENTITY.CALLBACK)return"identity.callback";if(f===G.IDENTITY.SIGNOUT)return"identity.signOut";if(f===G.USER.ME)return"user.me";if(f===G.USER.VERIFY)return"user.verify"}if(y==="POST"){if(f===G.ACTIVITY_HEARTBEAT)return"activity.heartbeat";if(f===G.ACTIVITY_SUBMIT)return"activity.submit"}return null};if(M&&J!==void 0){if(J!==""&&x===J)return null;if(J!==""&&!x.startsWith(`${J}/`))return null;let f=J===""?x:x.slice(J.length),_=f.startsWith("/")?f:`/${f}`;return Q(_)}if(y==="GET"){if(x.endsWith(G.IDENTITY.SIGNIN))return"identity.signIn";if(x.endsWith(G.IDENTITY.CALLBACK))return"identity.callback";if(x.endsWith(G.IDENTITY.SIGNOUT))return"identity.signOut";if(x.endsWith(G.USER.ME))return"user.me";if(x.endsWith(G.USER.VERIFY))return"user.verify"}if(y==="POST"){if(x.endsWith(G.ACTIVITY_HEARTBEAT))return"activity.heartbeat";if(x.endsWith(G.ACTIVITY_SUBMIT))return"activity.submit"}return null}function Z(g){return"handle"in g?g.handle:g}function W(g){return"activity"in g}function X(g){return"user"in g}function K(g){return typeof g==="object"&&g!==null&&"timeback"in g}function F(g){let{timeback:y,callbackPath:x}=K(g)?g:{timeback:g,callbackPath:void 0},C=Z(y);return(I)=>{let J=new URL(I.url).pathname,Q=I.method,f=Y({pathname:J,method:Q,callbackPath:x});if(f==="identity.signIn")return C.identity.signIn(I);if(f==="identity.callback")return C.identity.callback(I);if(f==="identity.signOut")return Promise.resolve(C.identity.signOut());if(f==="user.me"){if(!X(C))return Promise.resolve(L({error:"Not found"},404));return C.user.me(I)}if(f==="user.verify"){if(!X(C))return Promise.resolve(L({error:"Not found"},404));return C.user.verify(I)}if(f==="activity.heartbeat"){if(!W(C))return Promise.resolve(L({error:"Not found"},404));return C.activity.heartbeat(I)}if(f==="activity.submit"){if(!W(C))return Promise.resolve(L({error:"Not found"},404));return C.activity.submit(I)}return Promise.resolve(L({error:"Not found"},404))}}export{F as toNativeHandler,D as createTimebackIdentity,G as ROUTES};