@declaro/redis 2.0.0-beta.99 → 2.1.0

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.
@@ -1,4 +1,4 @@
1
- var A=Object.create;var{getPrototypeOf:I,defineProperty:X,getOwnPropertyNames:M}=Object;var U=Object.prototype.hasOwnProperty;var O=(f,T,E)=>{E=f!=null?A(I(f)):{};let S=T||!f||!f.__esModule?X(E,"default",{value:f,enumerable:!0}):E;for(let C of M(f))if(!U.call(S,C))X(S,C,{get:()=>f[C],enumerable:!0});return S};var x=(f,T)=>()=>(T||f((T={exports:{}}).exports,T),T.exports);var d=x((xf,L)=>{var k=function f(T){return h(T)&&!u(T)};function h(f){return!!f&&typeof f==="object"}function u(f){var T=Object.prototype.toString.call(f);return T==="[object RegExp]"||T==="[object Date]"||s(f)}var l=typeof Symbol==="function"&&Symbol.for,g=l?Symbol.for("react.element"):60103;function s(f){return f.$$typeof===g}function a(f){return Array.isArray(f)?[]:{}}function J(f,T){return T.clone!==!1&&T.isMergeableObject(f)?R(a(f),f,T):f}function t(f,T,E){return f.concat(T).map(function(S){return J(S,E)})}function o(f,T){if(!T.customMerge)return R;var E=T.customMerge(f);return typeof E==="function"?E:R}function c(f){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(f).filter(function(T){return Object.propertyIsEnumerable.call(f,T)}):[]}function r(f){return Object.keys(f).concat(c(f))}function F(f,T){try{return T in f}catch(E){return!1}}function n(f,T){return F(f,T)&&!(Object.hasOwnProperty.call(f,T)&&Object.propertyIsEnumerable.call(f,T))}function e(f,T,E){var S={};if(E.isMergeableObject(f))r(f).forEach(function(C){S[C]=J(f[C],E)});return r(T).forEach(function(C){if(n(f,C))return;if(F(f,C)&&E.isMergeableObject(T[C]))S[C]=o(C,E)(f[C],T[C],E);else S[C]=J(T[C],E)}),S}function R(f,T,E){E=E||{},E.arrayMerge=E.arrayMerge||t,E.isMergeableObject=E.isMergeableObject||k,E.cloneUnlessOtherwiseSpecified=J;var S=Array.isArray(T),C=Array.isArray(f),P=S===C;if(!P)return J(T,E);else if(S)return E.arrayMerge(f,T,E);else return e(f,T,E)}R.all=function f(T,E){if(!Array.isArray(T))throw new Error("first argument should be an array");return T.reduce(function(S,C){return R(S,C,E)},{})};var ff=R;L.exports=ff});import{App as _}from"@declaro/core";import Y from"ioredis";function z(f){return JSON.stringify(f)}function w(f){if(!f)return null;return JSON.parse(f)}var y;((E)=>{E.SET="SET";E.GET="GET"})(y||={});class H{redis;handlers={["GET"]:[],["SET"]:[]};constructor(f){this.redis=f}async set(f,T){let E=z(T),S=await this.redis.set(f,E);return await Promise.all(this.handlers.SET.map((C)=>C("SET",f,T))),S}async get(f){let T=await this.redis.get(f);if(!T)return null;let E=w(T);if(E)await Promise.all(this.handlers.GET.map((S)=>S("GET",f,E)));return E}on(f,T){return this.handlers[f].push(T),()=>{this.handlers[f]=this.handlers[f].filter((E)=>E!=T)}}onSet(f){return this.on("SET",f)}onGet(f){return this.on("GET",f)}}var N={Connect:"redis:connect",Destroy:"redis:destroy"},D=Symbol(),Z=Symbol(),q=Symbol(),m=Symbol(),Jf=(f)=>async(T)=>{T.provide(m,f),T.on(_.Events.Init,async(E)=>{let S=new Y(f);E.provide(D,S),await E.emit(N.Connect)}),T.on(_.Events.Destroy,async(E)=>{let S=G(E);await E.emit(N.Destroy)}),T.on(N.Destroy,async(E)=>{await G(E).quit()})};function G(f){let T=f.inject(D);if(!T)throw new Error("No Redis connection was found. Did you forget to provide one with `redisMiddleware`?");return T}function b(f){return f.inject(m)}function B(f){let T=b(f),E=new Y(T);return f.on(_.Events.Destroy,async()=>{await E.quit()}),E}function $f(f){let T=G(f);return new H(T)}async function p(f,T,E){let S=G(f),C=Array.isArray(T)?T:[T],P=JSON.stringify(E);return await Promise.all(C.map((V)=>S.lpush(V,P)))}async function Bf(f,T,E){let S=B(f),C=!0;while(C){let P=await S.brpop(T,1000),[V,K]=P??[];try{let $=w(K??"");await E($??void 0)}catch($){p(f,T,K)}}return()=>C=!1}async function _f(f,T,E){let S=JSON.stringify(E);return await G(f).publish(T,S)}function Qf(f,T,E){let S=B(f),C=Array.isArray(T)?T:[T];return S.psubscribe(...C),S.on("pmessage",(P,V,K)=>{let $=JSON.parse(K);E($)}),S}async function Zf(f,T,E){let S=G(f),C=z(E);return await S.set(T,C)}async function qf(f,T){let S=await G(f).get(T);return w(S)}class v{eventManager;publisher;subscriber;constructor(f,T,E){this.eventManager=f;this.publisher=T;this.subscriber=E;f.on("*",async(S)=>{try{if(S.__fromRedis)return;let C=JSON.stringify(S);await T.publish(S.type,C)}catch(C){console.error("Unserializable event:",S),console.error(`There was an error serializing event ${S.type}`,C)}}),E.psubscribe("*"),E.on("pmessage",this.onMessage)}onMessage=(f,T,E)=>{try{let S=JSON.parse(E);if(S.__fromRedis=!0,typeof S.type!=="string")throw new Error(`Event payload for ${T} does not have a type property, and cannot be processed`);this.eventManager.emit(S)}catch(S){console.error("Unparsable event:",E),console.error(`There was an error deserializing event ${T}`,S)}};unsubscribe(){this.publisher.unsubscribe(),this.subscriber.unsubscribe()}}var i=O(d(),1);var j="DeclaroSettings",bf="DeclaroSettingsNamespaces";class Tf{namespace;defaultValue;constructor(f,T){this.namespace=f;this.defaultValue=T}get namespaceKey(){return`${j}:${this.namespace}`}async get(f){let E=await G(f).get(this.namespaceKey);if(!E)return this.defaultValue;return JSON.parse(E)}async set(f,T){let E=G(f),S=await this.get(f),C=i.default.all([this.defaultValue??{},S??{},T]),P=JSON.stringify(C);await E.set(this.namespaceKey,P)}}class Q{namespace;defaultValues;constructor(f,T){this.namespace=f;this.defaultValues=T}get namespaceKey(){return`${j}:${this.namespace}`}async set(f,T,E={}){let S=G(f),C=await this.get(f,T),P=i.default.all([this.defaultValues,C??{},E]),V=JSON.stringify(P);await S.hset(this.namespaceKey,{[T]:V})}async getAll(f){let E=await G(f).hgetall(this.namespaceKey);return Object.keys(E).reduce((C,P)=>{let V=E[P],K=V?JSON.parse(V):this.defaultValues;return{...C,[P]:K}},{})}async get(f,T){let S=await G(f).hget(this.namespaceKey,T);if(!S)return this.defaultValues;return JSON.parse(S)}}var kf=new Q("Site",{domain:process.env.APP_DOMAIN??"http://localhost:8080",email:process.env.APP_EMAIL??"admin@declaro.io"});import W from"ioredis-mock";var tf=()=>async(f)=>{let T=new W,E=new W,S=new W;f.provide(D,S),f.provide(Z,T),f.provide(q,E),f.provide(m,void 0)};export{$f as useRedisRepository,b as useRedisOptions,G as useRedis,w as unserialize,kf as siteConfig,Zf as set,z as serialize,_f as sendMessage,Jf as redisMiddleware,p as pushMessage,Qf as onMessage,Bf as onFulfillMessage,tf as mockRedisMiddleware,qf as get,B as createRedis,bf as SETTINGS_NAMESPACES,j as SETTINGS_KEY,y as RedisRepositoryEvent,H as RedisRepository,N as RedisEvents,v as RedisEventAdapter,q as REDIS_SUB_KEY,Z as REDIS_PUB_KEY,m as REDIS_OPTIONS_KEY,D as REDIS_CLIENT_KEY,Q as ConfigSet,Tf as Config};
1
+ var A=Object.create;var{getPrototypeOf:I,defineProperty:W,getOwnPropertyNames:M}=Object;var U=Object.prototype.hasOwnProperty;function O(f){return this[f]}var x,y,b=(f,T,E)=>{var S=f!=null&&typeof f==="object";if(S){var C=T?x??=new WeakMap:y??=new WeakMap,G=C.get(f);if(G)return G}E=f!=null?A(I(f)):{};let V=T||!f||!f.__esModule?W(E,"default",{value:f,enumerable:!0}):E;for(let K of M(f))if(!U.call(V,K))W(V,K,{get:O.bind(f,K),enumerable:!0});if(S)C.set(f,V);return V};var p=(f,T)=>()=>(T||f((T={exports:{}}).exports,T),T.exports);var d=p((pf,L)=>{var l=function(T){return g(T)&&!s(T)};function g(f){return!!f&&typeof f==="object"}function s(f){var T=Object.prototype.toString.call(f);return T==="[object RegExp]"||T==="[object Date]"||o(f)}var a=typeof Symbol==="function"&&Symbol.for,t=a?Symbol.for("react.element"):60103;function o(f){return f.$$typeof===t}function c(f){return Array.isArray(f)?[]:{}}function J(f,T){return T.clone!==!1&&T.isMergeableObject(f)?R(c(f),f,T):f}function n(f,T,E){return f.concat(T).map(function(S){return J(S,E)})}function e(f,T){if(!T.customMerge)return R;var E=T.customMerge(f);return typeof E==="function"?E:R}function ff(f){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(f).filter(function(T){return Object.propertyIsEnumerable.call(f,T)}):[]}function q(f){return Object.keys(f).concat(ff(f))}function F(f,T){try{return T in f}catch(E){return!1}}function Tf(f,T){return F(f,T)&&!(Object.hasOwnProperty.call(f,T)&&Object.propertyIsEnumerable.call(f,T))}function Ef(f,T,E){var S={};if(E.isMergeableObject(f))q(f).forEach(function(C){S[C]=J(f[C],E)});return q(T).forEach(function(C){if(Tf(f,C))return;if(F(f,C)&&E.isMergeableObject(T[C]))S[C]=e(C,E)(f[C],T[C],E);else S[C]=J(T[C],E)}),S}function R(f,T,E){E=E||{},E.arrayMerge=E.arrayMerge||n,E.isMergeableObject=E.isMergeableObject||l,E.cloneUnlessOtherwiseSpecified=J;var S=Array.isArray(T),C=Array.isArray(f),G=S===C;if(!G)return J(T,E);else if(S)return E.arrayMerge(f,T,E);else return Ef(f,T,E)}R.all=function(T,E){if(!Array.isArray(T))throw Error("first argument should be an array");return T.reduce(function(S,C){return R(S,C,E)},{})};var Sf=R;L.exports=Sf});import{App as N}from"@declaro/core";import X from"ioredis";function z(f){return JSON.stringify(f)}function w(f){if(!f)return null;return JSON.parse(f)}var v;((E)=>{E.SET="SET";E.GET="GET"})(v||={});class B{redis;handlers={["GET"]:[],["SET"]:[]};constructor(f){this.redis=f}async set(f,T){let E=z(T),S=await this.redis.set(f,E);return await Promise.all(this.handlers.SET.map((C)=>C("SET",f,T))),S}async get(f){let T=await this.redis.get(f);if(!T)return null;let E=w(T);if(E)await Promise.all(this.handlers.GET.map((S)=>S("GET",f,E)));return E}on(f,T){return this.handlers[f].push(T),()=>{this.handlers[f]=this.handlers[f].filter((E)=>E!=T)}}onSet(f){return this.on("SET",f)}onGet(f){return this.on("GET",f)}}var H={Connect:"redis:connect",Destroy:"redis:destroy"},D=Symbol(),Y=Symbol(),Z=Symbol(),i=Symbol(),Df=(f)=>async(T)=>{T.provide(i,f),T.on(N.Events.Init,async(E)=>{let S=new X(f);E.provide(D,S),await E.emit(H.Connect)}),T.on(N.Events.Destroy,async(E)=>{let S=P(E);await E.emit(H.Destroy)}),T.on(H.Destroy,async(E)=>{await P(E).quit()})};function P(f){let T=f.inject(D);if(!T)throw Error("No Redis connection was found. Did you forget to provide one with `redisMiddleware`?");return T}function k(f){return f.inject(i)}function m(f){let T=k(f),E=new X(T);return f.on(N.Events.Destroy,async()=>{await E.quit()}),E}function mf(f){let T=P(f);return new B(T)}async function h(f,T,E){let S=P(f),C=Array.isArray(T)?T:[T],G=JSON.stringify(E);return await Promise.all(C.map((V)=>S.lpush(V,G)))}async function _f(f,T,E){let S=m(f),C=!0;while(C){let G=await S.brpop(T,1000),[V,K]=G??[];try{let $=w(K??"");await E($??void 0)}catch($){h(f,T,K)}}return()=>C=!1}async function Wf(f,T,E){let S=JSON.stringify(E);return await P(f).publish(T,S)}function Xf(f,T,E){let S=m(f),C=Array.isArray(T)?T:[T];return S.psubscribe(...C),S.on("pmessage",(G,V,K)=>{let $=JSON.parse(K);E($)}),S}async function Ff(f,T,E){let S=P(f),C=z(E);return await S.set(T,C)}async function Lf(f,T){let S=await P(f).get(T);return w(S)}class u{eventManager;publisher;subscriber;constructor(f,T,E){this.eventManager=f;this.publisher=T;this.subscriber=E;f.on("*",async(S)=>{try{if(S.__fromRedis)return;let C=JSON.stringify(S);await T.publish(S.type,C)}catch(C){console.error("Unserializable event:",S),console.error(`There was an error serializing event ${S.type}`,C)}}),E.psubscribe("*"),E.on("pmessage",this.onMessage)}onMessage=(f,T,E)=>{try{let S=JSON.parse(E);if(S.__fromRedis=!0,typeof S.type!=="string")throw Error(`Event payload for ${T} does not have a type property, and cannot be processed`);this.eventManager.emit(S)}catch(S){console.error("Unparsable event:",E),console.error(`There was an error deserializing event ${T}`,S)}};unsubscribe(){this.publisher.unsubscribe(),this.subscriber.unsubscribe()}}var _=b(d(),1);var j="DeclaroSettings",kf="DeclaroSettingsNamespaces";class Cf{namespace;defaultValue;constructor(f,T){this.namespace=f;this.defaultValue=T}get namespaceKey(){return`${j}:${this.namespace}`}async get(f){let E=await P(f).get(this.namespaceKey);if(!E)return this.defaultValue;return JSON.parse(E)}async set(f,T){let E=P(f),S=await this.get(f),C=_.default.all([this.defaultValue??{},S??{},T]),G=JSON.stringify(C);await E.set(this.namespaceKey,G)}}class r{namespace;defaultValues;constructor(f,T){this.namespace=f;this.defaultValues=T}get namespaceKey(){return`${j}:${this.namespace}`}async set(f,T,E={}){let S=P(f),C=await this.get(f,T),G=_.default.all([this.defaultValues,C??{},E]),V=JSON.stringify(G);await S.hset(this.namespaceKey,{[T]:V})}async getAll(f){let E=await P(f).hgetall(this.namespaceKey);return Object.keys(E).reduce((C,G)=>{let V=E[G],K=V?JSON.parse(V):this.defaultValues;return{...C,[G]:K}},{})}async get(f,T){let S=await P(f).hget(this.namespaceKey,T);if(!S)return this.defaultValues;return JSON.parse(S)}}var lf=new r("Site",{domain:process.env.APP_DOMAIN??"http://localhost:8080",email:process.env.APP_EMAIL??"admin@declaro.io"});import Q from"ioredis-mock";var nf=()=>async(f)=>{let T=new Q,E=new Q,S=new Q;f.provide(D,S),f.provide(Y,T),f.provide(Z,E),f.provide(i,void 0)};export{mf as useRedisRepository,k as useRedisOptions,P as useRedis,w as unserialize,lf as siteConfig,Ff as set,z as serialize,Wf as sendMessage,Df as redisMiddleware,h as pushMessage,Xf as onMessage,_f as onFulfillMessage,nf as mockRedisMiddleware,Lf as get,m as createRedis,kf as SETTINGS_NAMESPACES,j as SETTINGS_KEY,v as RedisRepositoryEvent,B as RedisRepository,H as RedisEvents,u as RedisEventAdapter,Z as REDIS_SUB_KEY,Y as REDIS_PUB_KEY,i as REDIS_OPTIONS_KEY,D as REDIS_CLIENT_KEY,r as ConfigSet,Cf as Config};
2
2
 
3
- //# debugId=E4455030B90CE1E464756E2164756E21
3
+ //# debugId=9341080E6CE2BEC764756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@
5
5
  "'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n",
6
6
  "import { Context, App } from '@declaro/core'\nimport Redis, { Redis as RedisInstance, type RedisOptions } from 'ioredis'\nimport { RedisRepository } from './repository'\n\nexport const RedisEvents = {\n Connect: 'redis:connect',\n Destroy: 'redis:destroy',\n}\n\nexport const REDIS_CLIENT_KEY = Symbol()\nexport const REDIS_PUB_KEY = Symbol()\nexport const REDIS_SUB_KEY = Symbol()\nexport const REDIS_OPTIONS_KEY = Symbol()\n\n/**\n * @deprecated Use context's DI system instead\n * @param options The options to pass to the Redis client\n * @returns\n */\nexport const redisMiddleware = (options: RedisOptions) => async (context: Context) => {\n context.provide(REDIS_OPTIONS_KEY, options)\n\n context.on(App.Events.Init, async (context) => {\n const redis = new Redis(options)\n\n context.provide(REDIS_CLIENT_KEY, redis)\n await context.emit(RedisEvents.Connect)\n })\n\n context.on(App.Events.Destroy, async (context) => {\n const redis = useRedis(context)\n await context.emit(RedisEvents.Destroy)\n })\n\n context.on(RedisEvents.Destroy, async (context) => {\n const redis = useRedis(context)\n await redis.quit()\n })\n}\n\n/**\n * Get the centralized redis connection\n * NOTE: Do not use this connection to subscribe to events. Create your own instead with createRedis.\n * @param context\n * @returns\n */\nexport function useRedis(context: Context): RedisInstance {\n const conn = context.inject<RedisInstance>(REDIS_CLIENT_KEY)\n\n if (!conn) {\n throw new Error('No Redis connection was found. Did you forget to provide one with `redisMiddleware`?')\n }\n\n return conn\n}\n\n/**\n * Get the redis options that were provided\n *\n * @param context\n * @returns The redis options that were provided in the given context\n */\nexport function useRedisOptions(context: Context): RedisOptions {\n const options = context.inject<RedisOptions>(REDIS_OPTIONS_KEY)\n\n return options!\n}\n\n/**\n * Create a Redis connection\n *\n * @param context The context in which to create the Redis instance\n */\nexport function createRedis(context: Context): RedisInstance {\n const options = useRedisOptions(context)\n\n const conn = new Redis(options)\n\n context.on(App.Events.Destroy, async () => {\n await conn.quit()\n })\n\n return conn\n}\n\nexport function useRedisRepository<T = string>(context: Context): RedisRepository<T> {\n const conn = useRedis(context)\n\n const repository = new RedisRepository<T>(conn)\n\n return repository\n}\n",
7
7
  "/**\n * Serialize a payload into a JSON string\n * @param message A payload to serialize\n * @returns A JSON serialized string\n */\nexport function serialize<T = string>(message: T) {\n return JSON.stringify(message)\n}\n\n/**\n * Extract a payload from a serialized string.\n * @param message A JSON string to unserialize\n * @returns\n */\nexport function unserialize<T = string>(message?: string | null): T | null | undefined {\n if (!message) {\n return null as any\n }\n return JSON.parse(message)\n}\n\nexport type MessageHandler<T = string> = (message?: T) => any\n",
8
- "import { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
8
+ "import type { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
9
9
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler, unserialize } from './utils'\n\n/**\n * Push a message to a queue to be resolved by only one client.\n * NOTE: This uses LPUSH under the hood, not PUBLISH. For PUBLISH functionality, use `sendMessage`\n *\n * @param context\n * @param channel The channel to send the message on\n * @param payload The payload to send\n * @returns\n */\nexport async function pushMessage<T = string>(context: Context, channel: string | string[], payload: T) {\n const conn = useRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n const message = JSON.stringify(payload)\n\n return await Promise.all(channels.map((channel) => conn.lpush(channel, message)))\n}\n\n/**\n * Fulfills messages pushed to a list (LPUSH), and pops them from the list to ensure they are only processed once.\n * NOTE: If the handler fails, the message will be pushed back to the queue and an error message will be logged.\n *\n * @param context\n * @param channel The channel to receive messages on\n */\nexport async function onFulfillMessage<T>(context: Context, channel: string, handler: MessageHandler<T>) {\n const conn = createRedis(context)\n\n let shouldContinue = true\n\n while (shouldContinue) {\n const result = await conn.brpop(channel, 1000)\n const [msgChannel, message] = result ?? []\n\n try {\n const payload = unserialize<T>(message ?? '')\n await handler(payload ?? undefined)\n } catch (e) {\n pushMessage(context, channel, message)\n }\n }\n\n return () => (shouldContinue = false)\n}\n",
10
10
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler } from './utils'\n/**\n * Send a message to a channel in Redis\n *\n * @param context Application context from which to inject dependencies\n * @param channel The channel on which to publish the event\n * @param message The payload to send (could be a string or JSON-serialized object)\n * @returns The number of subscribers that received the message\n */\nexport async function sendMessage<T = string>(context: Context, channel: string, message: T): Promise<number> {\n const payload = JSON.stringify(message)\n const conn = useRedis(context)\n\n const result = await conn.publish(channel, payload)\n\n return result\n}\n\n/**\n * Subscribe to messages on a channel\n * NOTE: Creates a dedicated Redis connection\n *\n * @param context\n * @param channel The channel to subscribe to\n * @param messageHandler A function to run whenever messages are received\n * @returns A dedicated connection to handle the subscription on. NOTE: Close this connection to unsubscribe.\n */\nexport function onMessage<T = string>(context: Context, channel: string | string[], messageHandler: MessageHandler<T>) {\n const conn = createRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n conn.psubscribe(...channels)\n\n conn.on('pmessage', (pattern, msgChannel, message) => {\n const payload: T = JSON.parse(message)\n\n messageHandler(payload)\n })\n\n return conn\n}\n",
11
11
  "import { serialize, unserialize } from './utils'\nimport { useRedis } from './redis-middleware'\nimport { Context } from '@declaro/core'\n\nexport async function set<T>(context: Context, id: string, item: T) {\n const conn = useRedis(context)\n\n const payload = serialize(item)\n\n return await conn.set(id, payload)\n}\n\nexport async function get<T>(context: Context, id: string) {\n const conn = useRedis(context)\n\n const payload = await conn.get(id)\n\n const item = unserialize<T>(payload)\n\n return item\n}\n",
@@ -14,7 +14,7 @@
14
14
  "import { ConfigSet } from './setting'\n\nexport const siteConfig = new ConfigSet('Site', {\n domain: process.env.APP_DOMAIN ?? 'http://localhost:8080',\n email: process.env.APP_EMAIL ?? 'admin@declaro.io',\n})\n",
15
15
  "import { Context } from '@declaro/core'\nimport Redis from 'ioredis-mock'\nimport { REDIS_CLIENT_KEY, REDIS_OPTIONS_KEY, REDIS_PUB_KEY, REDIS_SUB_KEY } from '../redis'\n\n// TODO: move this to core\nexport const mockRedisMiddleware = () => async (context: Context) => {\n const pub = new Redis()\n const sub = new Redis()\n const redis = new Redis()\n\n context.provide(REDIS_CLIENT_KEY, redis)\n context.provide(REDIS_PUB_KEY, pub)\n context.provide(REDIS_SUB_KEY, sub)\n context.provide(REDIS_OPTIONS_KEY, undefined)\n}\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "E4455030B90CE1E464756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "9341080E6CE2BEC764756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -4,45 +4,66 @@ var __defProp = Object.defineProperty;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ function __accessProp(key) {
8
+ return this[key];
9
+ }
10
+ var __toESMCache_node;
11
+ var __toESMCache_esm;
7
12
  var __toESM = (mod, isNodeMode, target) => {
13
+ var canCache = mod != null && typeof mod === "object";
14
+ if (canCache) {
15
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
+ var cached = cache.get(mod);
17
+ if (cached)
18
+ return cached;
19
+ }
8
20
  target = mod != null ? __create(__getProtoOf(mod)) : {};
9
21
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
22
  for (let key of __getOwnPropNames(mod))
11
23
  if (!__hasOwnProp.call(to, key))
12
24
  __defProp(to, key, {
13
- get: () => mod[key],
25
+ get: __accessProp.bind(mod, key),
14
26
  enumerable: true
15
27
  });
28
+ if (canCache)
29
+ cache.set(mod, to);
16
30
  return to;
17
31
  };
18
- var __moduleCache = /* @__PURE__ */ new WeakMap;
19
32
  var __toCommonJS = (from) => {
20
- var entry = __moduleCache.get(from), desc;
33
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
21
34
  if (entry)
22
35
  return entry;
23
36
  entry = __defProp({}, "__esModule", { value: true });
24
- if (from && typeof from === "object" || typeof from === "function")
25
- __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
26
- get: () => from[key],
27
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
28
- }));
37
+ if (from && typeof from === "object" || typeof from === "function") {
38
+ for (var key of __getOwnPropNames(from))
39
+ if (!__hasOwnProp.call(entry, key))
40
+ __defProp(entry, key, {
41
+ get: __accessProp.bind(from, key),
42
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
43
+ });
44
+ }
29
45
  __moduleCache.set(from, entry);
30
46
  return entry;
31
47
  };
48
+ var __moduleCache;
32
49
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
50
+ var __returnValue = (v) => v;
51
+ function __exportSetter(name, newValue) {
52
+ this[name] = __returnValue.bind(null, newValue);
53
+ }
33
54
  var __export = (target, all) => {
34
55
  for (var name in all)
35
56
  __defProp(target, name, {
36
57
  get: all[name],
37
58
  enumerable: true,
38
59
  configurable: true,
39
- set: (newValue) => all[name] = () => newValue
60
+ set: __exportSetter.bind(all, name)
40
61
  });
41
62
  };
42
63
 
43
64
  // ../../node_modules/deepmerge/dist/cjs.js
44
65
  var require_cjs = __commonJS((exports2, module2) => {
45
- var isMergeableObject = function isMergeableObject(value) {
66
+ var isMergeableObject = function isMergeableObject2(value) {
46
67
  return isNonNullObject(value) && !isSpecial(value);
47
68
  };
48
69
  function isNonNullObject(value) {
@@ -379,7 +400,7 @@ class RedisEventAdapter {
379
400
  }
380
401
  }
381
402
  // src/settings/setting.ts
382
- var import_deepmerge = __toESM(require_cjs());
403
+ var import_deepmerge = __toESM(require_cjs(), 1);
383
404
  var SETTINGS_KEY = "DeclaroSettings";
384
405
  var SETTINGS_NAMESPACES = "DeclaroSettingsNamespaces";
385
406
 
@@ -468,5 +489,5 @@ var mockRedisMiddleware = () => async (context) => {
468
489
  context.provide(REDIS_OPTIONS_KEY, undefined);
469
490
  };
470
491
 
471
- //# debugId=AF6ADAB67CD5B3E764756E2164756E21
492
+ //# debugId=EEFD63C020918BCC64756E2164756E21
472
493
  //# sourceMappingURL=index.cjs.map
@@ -5,7 +5,7 @@
5
5
  "'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n",
6
6
  "import { Context, App } from '@declaro/core'\nimport Redis, { Redis as RedisInstance, type RedisOptions } from 'ioredis'\nimport { RedisRepository } from './repository'\n\nexport const RedisEvents = {\n Connect: 'redis:connect',\n Destroy: 'redis:destroy',\n}\n\nexport const REDIS_CLIENT_KEY = Symbol()\nexport const REDIS_PUB_KEY = Symbol()\nexport const REDIS_SUB_KEY = Symbol()\nexport const REDIS_OPTIONS_KEY = Symbol()\n\n/**\n * @deprecated Use context's DI system instead\n * @param options The options to pass to the Redis client\n * @returns\n */\nexport const redisMiddleware = (options: RedisOptions) => async (context: Context) => {\n context.provide(REDIS_OPTIONS_KEY, options)\n\n context.on(App.Events.Init, async (context) => {\n const redis = new Redis(options)\n\n context.provide(REDIS_CLIENT_KEY, redis)\n await context.emit(RedisEvents.Connect)\n })\n\n context.on(App.Events.Destroy, async (context) => {\n const redis = useRedis(context)\n await context.emit(RedisEvents.Destroy)\n })\n\n context.on(RedisEvents.Destroy, async (context) => {\n const redis = useRedis(context)\n await redis.quit()\n })\n}\n\n/**\n * Get the centralized redis connection\n * NOTE: Do not use this connection to subscribe to events. Create your own instead with createRedis.\n * @param context\n * @returns\n */\nexport function useRedis(context: Context): RedisInstance {\n const conn = context.inject<RedisInstance>(REDIS_CLIENT_KEY)\n\n if (!conn) {\n throw new Error('No Redis connection was found. Did you forget to provide one with `redisMiddleware`?')\n }\n\n return conn\n}\n\n/**\n * Get the redis options that were provided\n *\n * @param context\n * @returns The redis options that were provided in the given context\n */\nexport function useRedisOptions(context: Context): RedisOptions {\n const options = context.inject<RedisOptions>(REDIS_OPTIONS_KEY)\n\n return options!\n}\n\n/**\n * Create a Redis connection\n *\n * @param context The context in which to create the Redis instance\n */\nexport function createRedis(context: Context): RedisInstance {\n const options = useRedisOptions(context)\n\n const conn = new Redis(options)\n\n context.on(App.Events.Destroy, async () => {\n await conn.quit()\n })\n\n return conn\n}\n\nexport function useRedisRepository<T = string>(context: Context): RedisRepository<T> {\n const conn = useRedis(context)\n\n const repository = new RedisRepository<T>(conn)\n\n return repository\n}\n",
7
7
  "/**\n * Serialize a payload into a JSON string\n * @param message A payload to serialize\n * @returns A JSON serialized string\n */\nexport function serialize<T = string>(message: T) {\n return JSON.stringify(message)\n}\n\n/**\n * Extract a payload from a serialized string.\n * @param message A JSON string to unserialize\n * @returns\n */\nexport function unserialize<T = string>(message?: string | null): T | null | undefined {\n if (!message) {\n return null as any\n }\n return JSON.parse(message)\n}\n\nexport type MessageHandler<T = string> = (message?: T) => any\n",
8
- "import { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
8
+ "import type { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
9
9
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler, unserialize } from './utils'\n\n/**\n * Push a message to a queue to be resolved by only one client.\n * NOTE: This uses LPUSH under the hood, not PUBLISH. For PUBLISH functionality, use `sendMessage`\n *\n * @param context\n * @param channel The channel to send the message on\n * @param payload The payload to send\n * @returns\n */\nexport async function pushMessage<T = string>(context: Context, channel: string | string[], payload: T) {\n const conn = useRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n const message = JSON.stringify(payload)\n\n return await Promise.all(channels.map((channel) => conn.lpush(channel, message)))\n}\n\n/**\n * Fulfills messages pushed to a list (LPUSH), and pops them from the list to ensure they are only processed once.\n * NOTE: If the handler fails, the message will be pushed back to the queue and an error message will be logged.\n *\n * @param context\n * @param channel The channel to receive messages on\n */\nexport async function onFulfillMessage<T>(context: Context, channel: string, handler: MessageHandler<T>) {\n const conn = createRedis(context)\n\n let shouldContinue = true\n\n while (shouldContinue) {\n const result = await conn.brpop(channel, 1000)\n const [msgChannel, message] = result ?? []\n\n try {\n const payload = unserialize<T>(message ?? '')\n await handler(payload ?? undefined)\n } catch (e) {\n pushMessage(context, channel, message)\n }\n }\n\n return () => (shouldContinue = false)\n}\n",
10
10
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler } from './utils'\n/**\n * Send a message to a channel in Redis\n *\n * @param context Application context from which to inject dependencies\n * @param channel The channel on which to publish the event\n * @param message The payload to send (could be a string or JSON-serialized object)\n * @returns The number of subscribers that received the message\n */\nexport async function sendMessage<T = string>(context: Context, channel: string, message: T): Promise<number> {\n const payload = JSON.stringify(message)\n const conn = useRedis(context)\n\n const result = await conn.publish(channel, payload)\n\n return result\n}\n\n/**\n * Subscribe to messages on a channel\n * NOTE: Creates a dedicated Redis connection\n *\n * @param context\n * @param channel The channel to subscribe to\n * @param messageHandler A function to run whenever messages are received\n * @returns A dedicated connection to handle the subscription on. NOTE: Close this connection to unsubscribe.\n */\nexport function onMessage<T = string>(context: Context, channel: string | string[], messageHandler: MessageHandler<T>) {\n const conn = createRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n conn.psubscribe(...channels)\n\n conn.on('pmessage', (pattern, msgChannel, message) => {\n const payload: T = JSON.parse(message)\n\n messageHandler(payload)\n })\n\n return conn\n}\n",
11
11
  "import { serialize, unserialize } from './utils'\nimport { useRedis } from './redis-middleware'\nimport { Context } from '@declaro/core'\n\nexport async function set<T>(context: Context, id: string, item: T) {\n const conn = useRedis(context)\n\n const payload = serialize(item)\n\n return await conn.set(id, payload)\n}\n\nexport async function get<T>(context: Context, id: string) {\n const conn = useRedis(context)\n\n const payload = await conn.get(id)\n\n const item = unserialize<T>(payload)\n\n return item\n}\n",
@@ -14,7 +14,7 @@
14
14
  "import { ConfigSet } from './setting'\n\nexport const siteConfig = new ConfigSet('Site', {\n domain: process.env.APP_DOMAIN ?? 'http://localhost:8080',\n email: process.env.APP_EMAIL ?? 'admin@declaro.io',\n})\n",
15
15
  "import { Context } from '@declaro/core'\nimport Redis from 'ioredis-mock'\nimport { REDIS_CLIENT_KEY, REDIS_OPTIONS_KEY, REDIS_PUB_KEY, REDIS_SUB_KEY } from '../redis'\n\n// TODO: move this to core\nexport const mockRedisMiddleware = () => async (context: Context) => {\n const pub = new Redis()\n const sub = new Redis()\n const redis = new Redis()\n\n context.provide(REDIS_CLIENT_KEY, redis)\n context.provide(REDIS_PUB_KEY, pub)\n context.provide(REDIS_SUB_KEY, sub)\n context.provide(REDIS_OPTIONS_KEY, undefined)\n}\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "AF6ADAB67CD5B3E764756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "EEFD63C020918BCC64756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -3,22 +3,36 @@ var __getProtoOf = Object.getPrototypeOf;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ function __accessProp(key) {
7
+ return this[key];
8
+ }
9
+ var __toESMCache_node;
10
+ var __toESMCache_esm;
6
11
  var __toESM = (mod, isNodeMode, target) => {
12
+ var canCache = mod != null && typeof mod === "object";
13
+ if (canCache) {
14
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
15
+ var cached = cache.get(mod);
16
+ if (cached)
17
+ return cached;
18
+ }
7
19
  target = mod != null ? __create(__getProtoOf(mod)) : {};
8
20
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
9
21
  for (let key of __getOwnPropNames(mod))
10
22
  if (!__hasOwnProp.call(to, key))
11
23
  __defProp(to, key, {
12
- get: () => mod[key],
24
+ get: __accessProp.bind(mod, key),
13
25
  enumerable: true
14
26
  });
27
+ if (canCache)
28
+ cache.set(mod, to);
15
29
  return to;
16
30
  };
17
31
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
18
32
 
19
33
  // ../../node_modules/deepmerge/dist/cjs.js
20
34
  var require_cjs = __commonJS((exports, module) => {
21
- var isMergeableObject = function isMergeableObject(value) {
35
+ var isMergeableObject = function isMergeableObject2(value) {
22
36
  return isNonNullObject(value) && !isSpecial(value);
23
37
  };
24
38
  function isNonNullObject(value) {
@@ -440,5 +454,5 @@ export {
440
454
  Config
441
455
  };
442
456
 
443
- //# debugId=AB1C0BF141BA7C3064756E2164756E21
457
+ //# debugId=D4630D151C43971B64756E2164756E21
444
458
  //# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@
5
5
  "'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n",
6
6
  "import { Context, App } from '@declaro/core'\nimport Redis, { Redis as RedisInstance, type RedisOptions } from 'ioredis'\nimport { RedisRepository } from './repository'\n\nexport const RedisEvents = {\n Connect: 'redis:connect',\n Destroy: 'redis:destroy',\n}\n\nexport const REDIS_CLIENT_KEY = Symbol()\nexport const REDIS_PUB_KEY = Symbol()\nexport const REDIS_SUB_KEY = Symbol()\nexport const REDIS_OPTIONS_KEY = Symbol()\n\n/**\n * @deprecated Use context's DI system instead\n * @param options The options to pass to the Redis client\n * @returns\n */\nexport const redisMiddleware = (options: RedisOptions) => async (context: Context) => {\n context.provide(REDIS_OPTIONS_KEY, options)\n\n context.on(App.Events.Init, async (context) => {\n const redis = new Redis(options)\n\n context.provide(REDIS_CLIENT_KEY, redis)\n await context.emit(RedisEvents.Connect)\n })\n\n context.on(App.Events.Destroy, async (context) => {\n const redis = useRedis(context)\n await context.emit(RedisEvents.Destroy)\n })\n\n context.on(RedisEvents.Destroy, async (context) => {\n const redis = useRedis(context)\n await redis.quit()\n })\n}\n\n/**\n * Get the centralized redis connection\n * NOTE: Do not use this connection to subscribe to events. Create your own instead with createRedis.\n * @param context\n * @returns\n */\nexport function useRedis(context: Context): RedisInstance {\n const conn = context.inject<RedisInstance>(REDIS_CLIENT_KEY)\n\n if (!conn) {\n throw new Error('No Redis connection was found. Did you forget to provide one with `redisMiddleware`?')\n }\n\n return conn\n}\n\n/**\n * Get the redis options that were provided\n *\n * @param context\n * @returns The redis options that were provided in the given context\n */\nexport function useRedisOptions(context: Context): RedisOptions {\n const options = context.inject<RedisOptions>(REDIS_OPTIONS_KEY)\n\n return options!\n}\n\n/**\n * Create a Redis connection\n *\n * @param context The context in which to create the Redis instance\n */\nexport function createRedis(context: Context): RedisInstance {\n const options = useRedisOptions(context)\n\n const conn = new Redis(options)\n\n context.on(App.Events.Destroy, async () => {\n await conn.quit()\n })\n\n return conn\n}\n\nexport function useRedisRepository<T = string>(context: Context): RedisRepository<T> {\n const conn = useRedis(context)\n\n const repository = new RedisRepository<T>(conn)\n\n return repository\n}\n",
7
7
  "/**\n * Serialize a payload into a JSON string\n * @param message A payload to serialize\n * @returns A JSON serialized string\n */\nexport function serialize<T = string>(message: T) {\n return JSON.stringify(message)\n}\n\n/**\n * Extract a payload from a serialized string.\n * @param message A JSON string to unserialize\n * @returns\n */\nexport function unserialize<T = string>(message?: string | null): T | null | undefined {\n if (!message) {\n return null as any\n }\n return JSON.parse(message)\n}\n\nexport type MessageHandler<T = string> = (message?: T) => any\n",
8
- "import { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
8
+ "import type { Redis } from 'ioredis'\nimport { serialize, unserialize } from './utils'\n\nexport enum RedisRepositoryEvent {\n SET = 'SET',\n GET = 'GET',\n}\n\nexport type RepositoryEventHandler<T> = (event: RedisRepositoryEvent, id: string, item: T) => any\n\nexport class RedisRepository<T> {\n private readonly handlers = {\n [RedisRepositoryEvent.GET]: [] as RepositoryEventHandler<T>[],\n [RedisRepositoryEvent.SET]: [] as RepositoryEventHandler<T>[],\n }\n\n constructor(protected readonly redis: Redis) {}\n\n async set(id: string, item: T): Promise<'OK'> {\n const payload = serialize(item)\n\n const result = await this.redis.set(id, payload)\n\n await Promise.all(this.handlers.SET.map((handler) => handler(RedisRepositoryEvent.SET, id, item)))\n\n return result\n }\n\n async get(id: string): Promise<T | null | undefined> {\n const payload = await this.redis.get(id)\n\n if (!payload) {\n return null\n }\n\n const item = unserialize<T>(payload)\n\n if (item) {\n await Promise.all(this.handlers.GET.map((handler) => handler(RedisRepositoryEvent.GET, id, item)))\n }\n\n return item\n }\n\n on(event: RedisRepositoryEvent, handler: RepositoryEventHandler<T>) {\n this.handlers[event].push(handler)\n\n return () => {\n this.handlers[event] = this.handlers[event].filter((item) => item != handler)\n }\n }\n\n onSet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.SET, handler)\n }\n\n onGet(handler: RepositoryEventHandler<T>) {\n return this.on(RedisRepositoryEvent.GET, handler)\n }\n}\n",
9
9
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler, unserialize } from './utils'\n\n/**\n * Push a message to a queue to be resolved by only one client.\n * NOTE: This uses LPUSH under the hood, not PUBLISH. For PUBLISH functionality, use `sendMessage`\n *\n * @param context\n * @param channel The channel to send the message on\n * @param payload The payload to send\n * @returns\n */\nexport async function pushMessage<T = string>(context: Context, channel: string | string[], payload: T) {\n const conn = useRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n const message = JSON.stringify(payload)\n\n return await Promise.all(channels.map((channel) => conn.lpush(channel, message)))\n}\n\n/**\n * Fulfills messages pushed to a list (LPUSH), and pops them from the list to ensure they are only processed once.\n * NOTE: If the handler fails, the message will be pushed back to the queue and an error message will be logged.\n *\n * @param context\n * @param channel The channel to receive messages on\n */\nexport async function onFulfillMessage<T>(context: Context, channel: string, handler: MessageHandler<T>) {\n const conn = createRedis(context)\n\n let shouldContinue = true\n\n while (shouldContinue) {\n const result = await conn.brpop(channel, 1000)\n const [msgChannel, message] = result ?? []\n\n try {\n const payload = unserialize<T>(message ?? '')\n await handler(payload ?? undefined)\n } catch (e) {\n pushMessage(context, channel, message)\n }\n }\n\n return () => (shouldContinue = false)\n}\n",
10
10
  "import { Context } from '@declaro/core'\nimport { createRedis, useRedis } from './redis-middleware'\nimport { type MessageHandler } from './utils'\n/**\n * Send a message to a channel in Redis\n *\n * @param context Application context from which to inject dependencies\n * @param channel The channel on which to publish the event\n * @param message The payload to send (could be a string or JSON-serialized object)\n * @returns The number of subscribers that received the message\n */\nexport async function sendMessage<T = string>(context: Context, channel: string, message: T): Promise<number> {\n const payload = JSON.stringify(message)\n const conn = useRedis(context)\n\n const result = await conn.publish(channel, payload)\n\n return result\n}\n\n/**\n * Subscribe to messages on a channel\n * NOTE: Creates a dedicated Redis connection\n *\n * @param context\n * @param channel The channel to subscribe to\n * @param messageHandler A function to run whenever messages are received\n * @returns A dedicated connection to handle the subscription on. NOTE: Close this connection to unsubscribe.\n */\nexport function onMessage<T = string>(context: Context, channel: string | string[], messageHandler: MessageHandler<T>) {\n const conn = createRedis(context)\n const channels = Array.isArray(channel) ? channel : [channel]\n\n conn.psubscribe(...channels)\n\n conn.on('pmessage', (pattern, msgChannel, message) => {\n const payload: T = JSON.parse(message)\n\n messageHandler(payload)\n })\n\n return conn\n}\n",
11
11
  "import { serialize, unserialize } from './utils'\nimport { useRedis } from './redis-middleware'\nimport { Context } from '@declaro/core'\n\nexport async function set<T>(context: Context, id: string, item: T) {\n const conn = useRedis(context)\n\n const payload = serialize(item)\n\n return await conn.set(id, payload)\n}\n\nexport async function get<T>(context: Context, id: string) {\n const conn = useRedis(context)\n\n const payload = await conn.get(id)\n\n const item = unserialize<T>(payload)\n\n return item\n}\n",
@@ -14,7 +14,7 @@
14
14
  "import { ConfigSet } from './setting'\n\nexport const siteConfig = new ConfigSet('Site', {\n domain: process.env.APP_DOMAIN ?? 'http://localhost:8080',\n email: process.env.APP_EMAIL ?? 'admin@declaro.io',\n})\n",
15
15
  "import { Context } from '@declaro/core'\nimport Redis from 'ioredis-mock'\nimport { REDIS_CLIENT_KEY, REDIS_OPTIONS_KEY, REDIS_PUB_KEY, REDIS_SUB_KEY } from '../redis'\n\n// TODO: move this to core\nexport const mockRedisMiddleware = () => async (context: Context) => {\n const pub = new Redis()\n const sub = new Redis()\n const redis = new Redis()\n\n context.provide(REDIS_CLIENT_KEY, redis)\n context.provide(REDIS_PUB_KEY, pub)\n context.provide(REDIS_SUB_KEY, sub)\n context.provide(REDIS_OPTIONS_KEY, undefined)\n}\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "AB1C0BF141BA7C3064756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "D4630D151C43971B64756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -1,4 +1,4 @@
1
- import { Redis } from 'ioredis';
1
+ import type { Redis } from 'ioredis';
2
2
  export declare enum RedisRepositoryEvent {
3
3
  SET = "SET",
4
4
  GET = "GET"
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/redis/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG/B,oBAAY,oBAAoB;IAC5B,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAA;AAEjG,qBAAa,eAAe,CAAC,CAAC;IAMd,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAL3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGxB;gBAE8B,KAAK,EAAE,KAAK;IAErC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAgBpD,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAQlE,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAIxC,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAG3C"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/redis/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,oBAAY,oBAAoB;IAC5B,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAA;AAEjG,qBAAa,eAAe,CAAC,CAAC;IAMd,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAL3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGxB;gBAE8B,KAAK,EAAE,KAAK;IAErC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAgBpD,EAAE,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAQlE,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAIxC,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;CAG3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@declaro/redis",
3
- "version": "2.0.0-beta.99",
3
+ "version": "2.1.0",
4
4
  "description": "Redis tools for Declaro",
5
5
  "main": "dist/node/index.cjs",
6
6
  "module": "dist/node/index.js",
@@ -22,7 +22,7 @@
22
22
  "typecheck": "bun tsc --noEmit"
23
23
  },
24
24
  "devDependencies": {
25
- "@declaro/core": "^2.0.0-beta.99",
25
+ "@declaro/core": "^2.1.0",
26
26
  "@types/ioredis-mock": "^8.2.5",
27
27
  "@vitest/coverage-v8": "^0.32.2",
28
28
  "ioredis": "^5.5.0",
@@ -45,12 +45,18 @@
45
45
  "url": "https://github.com/emmertio/declaro/issues"
46
46
  },
47
47
  "homepage": "https://github.com/emmertio/declaro/tree/main#readme",
48
- "gitHead": "0277b5d86fbbb5b1c1f77e367005bb11551471e7",
48
+ "gitHead": "d474a72810905706fdf1011441af4deb6c6f2620",
49
+ "files": [
50
+ "dist",
51
+ "src",
52
+ "readme.md"
53
+ ],
49
54
  "exports": {
50
55
  "bun": "./src/index.ts",
51
56
  "types": "./dist/ts/index.d.ts",
52
57
  "import": "./dist/node/index.js",
53
58
  "require": "./dist/node/index.cjs",
54
- "browser": "./dist/browser/index.js"
59
+ "browser": "./dist/browser/index.js",
60
+ "default": "./dist/node/index.js"
55
61
  }
56
62
  }
@@ -1,4 +1,4 @@
1
- import { Redis } from 'ioredis'
1
+ import type { Redis } from 'ioredis'
2
2
  import { serialize, unserialize } from './utils'
3
3
 
4
4
  export enum RedisRepositoryEvent {
package/scripts/build.ts DELETED
@@ -1,68 +0,0 @@
1
- import { build } from 'bun'
2
- import { resolve } from 'path'
3
- import packageJson from '../package.json'
4
-
5
- /**
6
- * Get all packages that should be external from dependencies, peerDependencies, and optionalDependencies
7
- * Packages in devDependencies will be bundled
8
- */
9
- const getExternalPackages = (): string[] => {
10
- const pkg = packageJson as any
11
- const dependencyKeys: string[] = []
12
-
13
- // Add dependencies if they exist
14
- if (pkg.dependencies && typeof pkg.dependencies === 'object') {
15
- dependencyKeys.push(...Object.keys(pkg.dependencies))
16
- }
17
-
18
- // Add peerDependencies if they exist
19
- if (pkg.peerDependencies && typeof pkg.peerDependencies === 'object') {
20
- dependencyKeys.push(...Object.keys(pkg.peerDependencies))
21
- }
22
-
23
- // Add optionalDependencies if they exist
24
- if (pkg.optionalDependencies && typeof pkg.optionalDependencies === 'object') {
25
- dependencyKeys.push(...Object.keys(pkg.optionalDependencies))
26
- }
27
-
28
- // Remove duplicates and return
29
- return [...new Set(dependencyKeys)]
30
- }
31
-
32
- const externalPackages = getExternalPackages()
33
-
34
- const defaults = {
35
- entrypoints: [resolve(__dirname, '../src/index.ts')],
36
- }
37
-
38
- await Promise.all([
39
- // CommonJS build for Node.js - externalize all dependencies and peerDependencies
40
- build({
41
- ...defaults,
42
- target: 'node',
43
- format: 'cjs',
44
- outdir: 'dist/node',
45
- sourcemap: 'linked',
46
- naming: '[dir]/[name].cjs',
47
- external: externalPackages,
48
- }),
49
- // ES modules build for Node.js - same externals as CommonJS
50
- build({
51
- ...defaults,
52
- target: 'node',
53
- format: 'esm',
54
- outdir: 'dist/node',
55
- sourcemap: 'linked',
56
- naming: '[dir]/[name].js',
57
- external: externalPackages,
58
- }),
59
- // Browser build - same external behavior for consistency
60
- build({
61
- ...defaults,
62
- target: 'browser',
63
- outdir: 'dist/browser',
64
- sourcemap: 'linked',
65
- minify: true,
66
- external: externalPackages,
67
- }),
68
- ])
package/tsconfig.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "extends": ["../../tsconfig.json"],
3
- "compilerOptions": {
4
- "esModuleInterop": true,
5
- "allowSyntheticDefaultImports": true,
6
- "declaration": true,
7
- "declarationMap": true,
8
- "sourceMap": true
9
- },
10
- "include": ["src/*.ts", "src/**/*.ts", "src/**/*.d.ts"],
11
- "buildOptions": {
12
- "outDir": "dist"
13
- }
14
- }
package/vite.config.ts DELETED
@@ -1,31 +0,0 @@
1
- import { resolve } from 'path'
2
- import { defineConfig } from 'vitest/config'
3
- import dts from 'vite-plugin-dts'
4
-
5
- const extensions = {
6
- es: 'mjs',
7
- cjs: 'cjs',
8
- }
9
-
10
- export default defineConfig({
11
- build: {
12
- lib: {
13
- entry: resolve(__dirname, 'src/index.ts'),
14
- name: 'DeclaroRedis',
15
- formats: ['es', 'cjs'],
16
- fileName: (format) => `pkg.${extensions[format]}`,
17
- },
18
- write: true,
19
- rollupOptions: {
20
- external: ['ioredis', 'ioredis-mock'],
21
- },
22
- },
23
- plugins: [
24
- dts({
25
- entryRoot: resolve(__dirname, 'src'),
26
- }) as any,
27
- ],
28
- optimizeDeps: {
29
- include: ['src/**/*'],
30
- },
31
- })