@lunora/server 1.0.0-alpha.177 → 1.0.0-alpha.179
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.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ACTION_CACHE_DEFAULT_TTL_MS as t,ACTION_CACHE_TABLE as i,actionCacheExtension as n,cacheKeyFor as a,defineActionCache as f}from"./packem_shared/ACTION_CACHE_DEFAULT_TTL_MS-DHpfdhmu.mjs";import{initLunora as d}from"./packem_shared/initLunora-DAbEYdSo.mjs";import{isPerDispatchMiddleware as m,tagPerDispatchMiddleware as x}from"./packem_shared/isPerDispatchMiddleware-DDQPatSm.mjs";import{createSecrets as l}from"./packem_shared/createSecrets-D6rLB42U.mjs";import{beginDeferredDeletes as h,flushDeferredDeletes as S,withDeferredDeletes as u}from"./packem_shared/beginDeferredDeletes-DhwFBbvs.mjs";import{beginDeferredSchedules as T,withDeferredSchedules as g}from"./packem_shared/beginDeferredSchedules-DJ6U4iq5.mjs";import{DOCUMENT_HISTORY_REDACTED_FIELDS as R,DOCUMENT_HISTORY_TABLE as _,defineDocumentHistory as L,documentHistoryExtension as C}from"./packem_shared/DOCUMENT_HISTORY_REDACTED_FIELDS-DAfomt5Q.mjs";import{LunoraEnvError as M,defineEnv as P,redactSecrets as b}from"./packem_shared/LunoraEnvError-
|
|
1
|
+
import{ACTION_CACHE_DEFAULT_TTL_MS as t,ACTION_CACHE_TABLE as i,actionCacheExtension as n,cacheKeyFor as a,defineActionCache as f}from"./packem_shared/ACTION_CACHE_DEFAULT_TTL_MS-DHpfdhmu.mjs";import{initLunora as d}from"./packem_shared/initLunora-DAbEYdSo.mjs";import{isPerDispatchMiddleware as m,tagPerDispatchMiddleware as x}from"./packem_shared/isPerDispatchMiddleware-DDQPatSm.mjs";import{createSecrets as l}from"./packem_shared/createSecrets-D6rLB42U.mjs";import{beginDeferredDeletes as h,flushDeferredDeletes as S,withDeferredDeletes as u}from"./packem_shared/beginDeferredDeletes-DhwFBbvs.mjs";import{beginDeferredSchedules as T,withDeferredSchedules as g}from"./packem_shared/beginDeferredSchedules-DJ6U4iq5.mjs";import{DOCUMENT_HISTORY_REDACTED_FIELDS as R,DOCUMENT_HISTORY_TABLE as _,defineDocumentHistory as L,documentHistoryExtension as C}from"./packem_shared/DOCUMENT_HISTORY_REDACTED_FIELDS-DAfomt5Q.mjs";import{LunoraEnvError as M,defineEnv as P,redactSecrets as b}from"./packem_shared/LunoraEnvError-bkdMu_-N.mjs";import{bindOrm as F,bindTableFacade as O}from"./packem_shared/bindOrm-D_hFUjmr.mjs";import{httpAction as N,httpRoute as w,httpRouter as U,isSafeHeaderValue as k}from"./packem_shared/httpAction-DFVhrm8u.mjs";import{serveStorageObject as B}from"./packem_shared/serveStorageObject-9mdw0nyU.mjs";import{defineIdentity as W}from"./packem_shared/defineIdentity-DwkNKwYa.mjs";import{onConnect as Y,onDisconnect as J,onShardInit as K}from"./packem_shared/onConnect-BLRoOpv2.mjs";import{DEFAULT_LIMIT as X,DEFAULT_MAX_LIMIT as q,clampLimit as z,defineListArgs as G}from"./packem_shared/DEFAULT_LIMIT-pT_tV8R0.mjs";import{defineMigration as $}from"./packem_shared/defineMigration-CXOS0Bvq.mjs";import{defineModule as re}from"./packem_shared/defineModule-OecXWM3U.mjs";import{defineMutator as te}from"./packem_shared/defineMutator-B4ipDtDR.mjs";import{c as ne,d as ae,a as fe,b as se,e as de,f as pe,g as me,h as xe,i as ce,j as le,k as Ee,m as he}from"./packem_shared/plugin-DRIqze14.mjs";import{PRESENCE_DEFAULT_TTL_MS as ue,PRESENCE_TABLE as De,definePresence as Te,presenceExtension as ge}from"./packem_shared/PRESENCE_DEFAULT_TTL_MS-DObDBz6_.mjs";import{protectPublic as Re}from"./packem_shared/protectPublic-BUYCMZZB.mjs";import{onQueryChange as Le}from"./packem_shared/onQueryChange-CatdYnH5.mjs";import{createServices as Ie}from"./packem_shared/createServices-IJvoqi0e.mjs";import{defineShape as Pe}from"./packem_shared/defineShape-CbHQpfYD.mjs";import{anyApi as ye}from"./types.mjs";import{onWhisper as Oe}from"./packem_shared/onWhisper-CfDbFLQh.mjs";import{LunoraError as Ne}from"@lunora/errors";import{cronJobs as Ue}from"@lunora/scheduler";import{ValidationError as ve,v as Be}from"@lunora/values";import{allowAll as We,deny as je,isDeny as Ye,toWhereInput as Je}from"./packem_shared/allowAll-DkRAgItV.mjs";import{asBucketStorage as Qe}from"./packem_shared/asBucketStorage-DoGYOjq3.mjs";import{assertShapesDeclareReadPolicies as qe,buildRlsReadRegistry as ze,composeShapeReadWhere as Ge}from"./packem_shared/assertShapesDeclareReadPolicies-d9t7YZ7U.mjs";import{buildMaskRegistry as $e}from"./packem_shared/buildMaskRegistry-DpWMtalG.mjs";import{createPolicyDsl as rr,definePermission as or,definePolicies as tr,definePolicy as ir,defineRole as nr}from"./packem_shared/createPolicyDsl-BZa6SqLJ.mjs";import{defineStorageRule as fr,defineStorageRules as sr}from"./packem_shared/defineStorageRule-Dv4nJE0H.mjs";import{mask as pr}from"./packem_shared/mask-DrapWB_J.mjs";import{r as xr}from"./packem_shared/middleware-ChNz4wOv.mjs";import{storageRules as lr}from"./packem_shared/storageRules-1GWSFFnl.mjs";const e="0.0.0";export{t as ACTION_CACHE_DEFAULT_TTL_MS,i as ACTION_CACHE_TABLE,X as DEFAULT_LIMIT,q as DEFAULT_MAX_LIMIT,R as DOCUMENT_HISTORY_REDACTED_FIELDS,_ as DOCUMENT_HISTORY_TABLE,M as LunoraEnvError,Ne as LunoraError,ue as PRESENCE_DEFAULT_TTL_MS,De as PRESENCE_TABLE,e as VERSION,ve as ValidationError,n as actionCacheExtension,We as allowAll,ye as anyApi,Qe as asBucketStorage,qe as assertShapesDeclareReadPolicies,h as beginDeferredDeletes,T as beginDeferredSchedules,F as bindOrm,O as bindTableFacade,$e as buildMaskRegistry,ze as buildRlsReadRegistry,a as cacheKeyFor,z as clampLimit,ne as composePluginMiddleware,Ge as composeShapeReadWhere,rr as createPolicyDsl,l as createSecrets,Ie as createServices,Ue as cronJobs,f as defineActionCache,ae as defineAggregateIndex,fe as defineComponent,L as defineDocumentHistory,P as defineEnv,W as defineIdentity,G as defineListArgs,$ as defineMigration,re as defineModule,te as defineMutator,or as definePermission,se as definePlugin,tr as definePolicies,ir as definePolicy,Te as definePresence,de as defineRankIndex,nr as defineRole,pe as defineSchema,me as defineSchemaExtension,Pe as defineShape,fr as defineStorageRule,sr as defineStorageRules,xe as defineTable,ce as defineVectorIndex,je as deny,C as documentHistoryExtension,S as flushDeferredDeletes,N as httpAction,w as httpRoute,U as httpRouter,le as indexFieldsFromSchema,d as initLunora,Ee as installPlugins,Ye as isDeny,m as isPerDispatchMiddleware,k as isSafeHeaderValue,pr as mask,he as mergeSchemaExtension,Y as onConnect,J as onDisconnect,Le as onQueryChange,K as onShardInit,Oe as onWhisper,ge as presenceExtension,Re as protectPublic,b as redactSecrets,xr as rls,B as serveStorageObject,lr as storageRules,x as tagPerDispatchMiddleware,Je as toWhereInput,Be as v,u as withDeferredDeletes,g as withDeferredSchedules};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{LunoraError as R}from"@lunora/errors";import{optionalInner as T}from"@lunora/values";const A=e=>e.endsWith("S")?e.slice(0,-1):e,d=e=>e.replaceAll(/([a-z\d])([A-Z])/gu,"$1_$2").toUpperCase().split(/[_-]+/u).filter(t=>t.length>0),m=new Set(["CREDENTIAL","DSN","PASSPHRASE","PASSWD","PASSWORD","SECRET","TOKEN"]),I=["ACCESS_KEY","API_KEY","ENCRYPTION_KEY","PRIVATE_KEY","SIGNING_KEY"],p=new RegExp(`(?:${[...m,...I.map(e=>e.replaceAll("_",""))].join("|")})S?$`,"iu"),L=e=>d(e).some(t=>t==="PUBLIC"||t==="PUBLISHABLE"),k=e=>{if(L(e))return!1;const t=d(e);if(t.some(n=>m.has(A(n))))return!0;const r=A(t.join("_"));return I.some(n=>r===n||r.endsWith(`_${n}`))||p.test(e)},b=[/^sk_/u,/^pk_/u,/^rk_/u,/^ghp_/u,/^gho_/u,/^ghs_/u,/^ghr_/u,/^github_pat_/u,/^xox[baprs]-/u,/^AKIA/u,/^AIza/u,/^Bearer\s/u],K=/[\w./+-]{24,}/gu,w=/^[\w./+-]+$/u,D=/\b(?:(?:sk|pk|rk|ghp|gho|ghs|ghr)_[\w./+-]*|github_pat_[\w./+-]*|xox[baprs]-[\w./+-]*)/gu,O=/\b(?:AKIA|AIza)[\w./+-]+|Bearer\s+[\w./+-]+/gu,P=/:\/\/([\w.%+-]*):[\w.%+-]+@/gu,l="[redacted]",$=e=>{if(b.some(r=>r.test(e)))return!0;const t=e.trim();return t.length>=24&&w.test(t)},g=new Set([`
|
|
2
|
+
`,"\r","\u2028","\u2029"]),v=(e,t)=>{const r=e.charAt(t);let n=-1,o=t+1;for(;o<e.length;){const s=e.charAt(o);if(s===r)return o;if(g.has(s))break;const i=e.charAt(o+1);s==="\\"&&o+1<e.length&&!g.has(i)?(i===r&&(n=o+1),o+=2):o+=1}return n},y=(e,t)=>{let r="",n=0;for(;n<e.length;){const o=e.charAt(n),s=o==='"'||o==="'"?v(e,n):-1;s===-1?(r+=o,n+=1):(r+=t(e.slice(n,s+1),e.slice(n+1,s)),n=s+1)}return r},C=/\b(?<key>[A-Za-z_]\w*)\s*[=:]\s*\S+/gu,x=e=>{let t=e;return t=y(t,(r,n)=>$(n)?l:r),t=t.replaceAll(P,(r,n)=>`://${n}:${l}@`),t=t.replaceAll(D,l),t=t.replaceAll(O,l),t=t.replaceAll(C,(r,...n)=>{const o=n.at(-1);return o?.key!==void 0&&k(o.key)?`${o.key}=${l}`:r}),t=t.replaceAll(K,l),t},U=(e,t,r)=>{const n=x(e);return typeof r=="string"&&r!==""&&k(t)?n.replaceAll(r,l):n};class f extends R{failures;constructor(t){const r=t.map(n=>` - ${n.key}: ${n.message}`).join(`
|
|
3
|
+
`);super("ENV_INVALID",`Invalid environment (${String(t.length)} key(s)):
|
|
4
|
+
${r}`,{name:"LunoraEnvError"}),this.failures=t}}const V=new Set(["1","on","true","yes"]),Y=new Set(["0","false","no","off"]),B=/^-?\d+$/u,N=e=>{if(e.kind!=="optional")return e.kind;const t=T(e);return t?N(t):e.kind},j=(e,t)=>{if(typeof t!="string")return t;switch(N(e)){case"bigint":return B.test(t.trim())?BigInt(t.trim()):t;case"boolean":{const r=t.trim().toLowerCase();return V.has(r)?!0:Y.has(r)?!1:t}case"number":{const r=t.trim();if(r==="")return t;const n=Number(r);return Number.isNaN(n)?t:n}default:return t}},h=(e,t,r,n)=>{const o=r[e];if(o===void 0&&t.kind==="optional")return{ok:!0,value:void 0};const s=t.safeParse(j(t,o));return s.ok?{ok:!0,value:s.value}:(n.push({key:e,message:U(s.error.message,e,o)}),{ok:!1})},S=e=>{if(typeof e!="object"||e===null)throw new f([{key:"<env>",message:`expected an object, received ${e===null?"null":typeof e}`}]);return e},z=e=>{const t=Object.keys(e),r=new WeakMap,n=(o=>{const s=S(o);let i=r.get(s);i===void 0&&(i=new Map,r.set(s,i));const a=i,E=u=>{if(a.has(u))return a.get(u);const c=[],_=h(u,e[u],s,c);if(!_.ok)throw new f(c);return a.set(u,_.value),_.value};return new Proxy({},{get(u,c){if(!(typeof c!="string"||!(c in e)))return E(c)},getOwnPropertyDescriptor(u,c){if(typeof c=="string"&&c in e)return{configurable:!0,enumerable:!0,value:E(c),writable:!1}},has(u,c){return typeof c=="string"&&c in e},ownKeys(){return t}})});return n.parse=o=>{const s=S(o),i=[],a={};for(const E of t){const u=h(E,e[E],s,i);u.ok&&u.value!==void 0&&(a[E]=u.value)}if(i.length>0)throw new f(i);return a},n};export{f as LunoraEnvError,z as defineEnv,x as redactSecrets};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lunora/server",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.179",
|
|
4
4
|
"description": "Server primitives for Lunora: defineSchema, defineTable, query, mutation, and action",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"backend",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@lunora/errors": "1.0.0-alpha.50",
|
|
70
|
-
"@lunora/scheduler": "1.0.0-alpha.
|
|
71
|
-
"@lunora/shard-engine": "1.0.0-alpha.
|
|
70
|
+
"@lunora/scheduler": "1.0.0-alpha.111",
|
|
71
|
+
"@lunora/shard-engine": "1.0.0-alpha.113",
|
|
72
72
|
"@lunora/values": "1.0.0-alpha.60",
|
|
73
|
-
"drizzle-orm": "^0.45.
|
|
74
|
-
"hono": "^4.13.
|
|
73
|
+
"drizzle-orm": "^0.45.3",
|
|
74
|
+
"hono": "^4.13.13"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
77
|
"@opentelemetry/api": "^1.9.0"
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{LunoraError as h}from"@lunora/errors";import{optionalInner as T}from"@lunora/values";const f=t=>t.endsWith("S")?t.slice(0,-1):t,S=t=>t.replaceAll(/([a-z\d])([A-Z])/gu,"$1_$2").toUpperCase().split(/[_-]+/u).filter(e=>e.length>0),d=new Set(["CREDENTIAL","DSN","PASSPHRASE","PASSWD","PASSWORD","SECRET","TOKEN"]),k=["ACCESS_KEY","API_KEY","ENCRYPTION_KEY","PRIVATE_KEY","SIGNING_KEY"],p=new RegExp(`(?:${[...d,...k.map(t=>t.replaceAll("_",""))].join("|")})S?$`,"iu"),L=t=>S(t).some(e=>e==="PUBLIC"||e==="PUBLISHABLE"),I=t=>{if(L(t))return!1;const e=S(t);if(e.some(r=>d.has(f(r))))return!0;const n=f(e.join("_"));return k.some(r=>n===r||n.endsWith(`_${r}`))||p.test(t)},R=[/^sk_/u,/^pk_/u,/^rk_/u,/^ghp_/u,/^gho_/u,/^ghs_/u,/^ghr_/u,/^github_pat_/u,/^xox[baprs]-/u,/^AKIA/u,/^AIza/u,/^Bearer\s/u],D=/[\w./+-]{24,}/gu,K=/^[\w./+-]+$/u,b=/\b(?:(?:sk|pk|rk|ghp|gho|ghs|ghr)_[\w./+-]*|github_pat_[\w./+-]*|xox[baprs]-[\w./+-]*)/gu,w=/\b(?:AKIA|AIza)[\w./+-]+|Bearer\s+[\w./+-]+/gu,O=/:\/\/([\w.%+-]*):[\w.%+-]+@/gu,a="[redacted]",P=t=>{if(R.some(n=>n.test(t)))return!0;const e=t.trim();return e.length>=24&&K.test(e)},v=/(["'])(?<inner>(?:\\.|(?!\1).)*)\1/gu,$=/\b(?<key>[A-Za-z_]\w*)\s*[=:]\s*\S+/gu,y=t=>{let e=t;return e=e.replaceAll(v,(n,...r)=>{const s=r.at(-1);return s?.inner!==void 0&&P(s.inner)?a:n}),e=e.replaceAll(O,(n,r)=>`://${r}:${a}@`),e=e.replaceAll(b,a),e=e.replaceAll(w,a),e=e.replaceAll($,(n,...r)=>{const s=r.at(-1);return s?.key!==void 0&&I(s.key)?`${s.key}=${a}`:n}),e=e.replaceAll(D,a),e},C=(t,e,n)=>{const r=y(t);return typeof n=="string"&&n!==""&&I(e)?r.replaceAll(n,a):r};class g extends h{failures;constructor(e){const n=e.map(r=>` - ${r.key}: ${r.message}`).join(`
|
|
2
|
-
`);super("ENV_INVALID",`Invalid environment (${String(e.length)} key(s)):
|
|
3
|
-
${n}`,{name:"LunoraEnvError"}),this.failures=e}}const U=new Set(["1","on","true","yes"]),V=new Set(["0","false","no","off"]),Y=/^-?\d+$/u,N=t=>{if(t.kind!=="optional")return t.kind;const e=T(t);return e?N(e):t.kind},x=(t,e)=>{if(typeof e!="string")return e;switch(N(t)){case"bigint":return Y.test(e.trim())?BigInt(e.trim()):e;case"boolean":{const n=e.trim().toLowerCase();return U.has(n)?!0:V.has(n)?!1:e}case"number":{const n=e.trim();if(n==="")return e;const r=Number(n);return Number.isNaN(r)?e:r}default:return e}},m=(t,e,n,r)=>{const s=n[t];if(s===void 0&&e.kind==="optional")return{ok:!0,value:void 0};const c=e.safeParse(x(e,s));return c.ok?{ok:!0,value:c.value}:(r.push({key:t,message:C(c.error.message,t,s)}),{ok:!1})},A=t=>{if(typeof t!="object"||t===null)throw new g([{key:"<env>",message:`expected an object, received ${t===null?"null":typeof t}`}]);return t},F=t=>{const e=Object.keys(t),n=new WeakMap,r=(s=>{const c=A(s);let i=n.get(c);i===void 0&&(i=new Map,n.set(c,i));const l=i,E=u=>{if(l.has(u))return l.get(u);const o=[],_=m(u,t[u],c,o);if(!_.ok)throw new g(o);return l.set(u,_.value),_.value};return new Proxy({},{get(u,o){if(!(typeof o!="string"||!(o in t)))return E(o)},getOwnPropertyDescriptor(u,o){if(typeof o=="string"&&o in t)return{configurable:!0,enumerable:!0,value:E(o),writable:!1}},has(u,o){return typeof o=="string"&&o in t},ownKeys(){return e}})});return r.parse=s=>{const c=A(s),i=[],l={};for(const E of e){const u=m(E,t[E],c,i);u.ok&&u.value!==void 0&&(l[E]=u.value)}if(i.length>0)throw new g(i);return l},r};export{g as LunoraEnvError,F as defineEnv,y as redactSecrets};
|