@hotmeshio/hotmesh
Version:
Serverless Workflow
1 lines • 9.22 kB
JavaScript
'use strict';const F=b;(function(c,d){const E=b,e=c();while(!![]){try{const f=-parseInt(E(0x10b))/0x1+-parseInt(E(0xf5))/0x2*(-parseInt(E(0xdb))/0x3)+-parseInt(E(0xe7))/0x4+parseInt(E(0x11b))/0x5+parseInt(E(0xe0))/0x6*(parseInt(E(0x120))/0x7)+-parseInt(E(0x108))/0x8+parseInt(E(0x11c))/0x9;if(f===d)break;else e['push'](e['shift']());}catch(g){e['push'](e['shift']());}}}(a,0xdd125));function b(c,d){const e=a();return b=function(f,g){f=f-0xda;let h=e[f];return h;},b(c,d);}Object[F(0xf0)](exports,F(0x10c),{'value':!0x0}),exports['PostgresStreamService']=void 0x0;const key_1=require(F(0x12a)),utils_1=require(F(0x106)),index_1=require(F(0x109)),kvtables_1=require(F(0xee));class PostgresStreamService extends index_1['StreamService']{constructor(c,d,f={}){super(c,d,f);}async[F(0xeb)](c,d,f){const G=F;this[G(0x10a)]=c,this[G(0x104)]=d,this['logger']=f,await(0x0,kvtables_1['deploySchema'])(this[G(0xe1)],this[G(0x104)],this[G(0x10f)]);}[F(0x130)](c,d){const H=F;if(!this[H(0x10a)])throw new Error(H(0x122));return key_1[H(0xfd)][H(0x130)](this[H(0x10a)],c,{...d,'appId':this[H(0x104)]});}[F(0x107)](){return{};}[F(0x12d)](){const I=F;return this[I(0xec)](this[I(0x104)])+I(0xf2);}[F(0xec)](c){return c['replace'](/[^a-zA-Z0-9_]/g,'_');}async['createStream'](c){return!0x0;}async[F(0xe4)](c){const J=F,d=this[J(0xe1)],f=this[J(0x12d)]();try{return'*'===c?await d['query'](J(0xf8)+f):await d['query'](J(0xf8)+f+J(0xe5),[c]),!0x0;}catch(g){throw this[J(0x10f)][J(0xde)](J(0xed)+c,{'error':g}),g;}}async['createConsumerGroup'](c,d){return!0x0;}async[F(0x10d)](c,d){const K=F,f=this['streamClient'],g=this[K(0x12d)]();try{return await f[K(0xf7)](K(0xf8)+g+K(0x113),[c,d]),!0x0;}catch(h){throw this[K(0x10f)][K(0xde)]('postgres-stream-delete-group-error-'+c+'.'+d,{'error':h}),h;}}async[F(0x115)](c,d,f){const L=F,{sql:g,params:h}=this[L(0xf9)](c,d);if(f?.[L(0x10e)]&&L(0x102)==typeof f['transaction'][L(0x116)])return f[L(0x10e)][L(0x116)](g,h,L(0x118),i=>i['map'](j=>j['id'][L(0x12f)]())),f[L(0x10e)];try{const i=[],j=await this[L(0xe1)][L(0xf7)](g,h);for(const k of j[L(0xff)])i[L(0x12c)](k['id'][L(0x12f)]());return i;}catch(l){throw this[L(0x10f)][L(0xde)](L(0xe8)+c,{'error':l}),l;}}[F(0xf9)](c,d){const M=F,f=this[M(0x12d)](),g=c[M(0xef)](':')?M(0xf3):'WORKER';return{'sql':M(0xda)+f+M(0x119)+d[M(0xdd)]((h,i)=>'($1,\x20$2,\x20$'+(i+0x3)+')')[M(0x123)](',\x20')+'\x20RETURNING\x20id','params':[c,g,...d]};}async[F(0xe9)](d,f,h,j){const N=F,k=this['streamClient'],l=this['getTableName'](),q=j?.[N(0xfc)]??!0x1,v=j?.[N(0xf4)]??0x64,w=j?.['maxBackoff']??0xbb8,x=j?.[N(0x126)]??0x3;let y=v,z=0x0;try{for(;z<x;){z++;const A=j?.[N(0xe6)]||0x1,B=j?.['reservationTimeout']||0x1e,C=(await k[N(0xf7)]('WITH\x20selected_messages\x20AS\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20id,\x20message\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20'+l+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20group_name\x20=\x20$2\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20COALESCE(reserved_at,\x20\x271970-01-01\x27)\x20<\x20NOW()\x20-\x20INTERVAL\x20\x27'+B+N(0x117)+l+N(0x125),[d,f,A,h]))['rows'][N(0xdd)](D=>({'id':D['id']['toString'](),'data':(0x0,utils_1['parseStreamMessage'])(D[N(0x11a)])}));if(C['length']>0x0||!q)return C;await(0x0,utils_1['sleepFor'])(y),y=Math['min'](0x2*y,w);}return[];}catch(D){throw this[N(0x10f)][N(0xde)](N(0xdc)+d,{'error':D}),D;}}async[F(0xfa)](c,d,f){const O=F;return await this[O(0x101)](c,d,f);}async[F(0xdf)](c,d,f,g){const P=F;return f[P(0x128)];}async[F(0x101)](c,d,f,g){const Q=F,h=this[Q(0xe1)],i=this[Q(0x12d)]();try{const j=f[Q(0xdd)](k=>parseInt(k));return await h['query']('UPDATE\x20'+i+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20expired_at\x20=\x20NOW()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20$1\x20AND\x20id\x20=\x20ANY($2::bigint[])\x20AND\x20group_name\x20=\x20$3',[c,j,d]),f[Q(0x128)];}catch(k){throw this[Q(0x10f)][Q(0xde)]('postgres-stream-delete-error-'+c,{'error':k}),k;}}async['retryMessages'](c,d,f){return[];}async['getStreamStats'](c){const R=F,d=this[R(0xe1)],f=this[R(0x12d)]();try{const g=await d[R(0xf7)]('SELECT\x20COUNT(*)\x20AS\x20available_count\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20'+f+R(0xfe),[c]);return{'messageCount':parseInt(g[R(0xff)][0x0][R(0x11f)],0xa)};}catch(h){throw this[R(0x10f)][R(0xde)]('postgres-stream-stats-error-'+c,{'error':h}),h;}}async['getStreamDepth'](c){const S=F;return(await this[S(0x112)](c))[S(0x12e)];}async[F(0x12b)](c){const T=F,d=this[T(0xe1)],f=this['getTableName']();try{const g=c[T(0xdd)](i=>i[T(0xf6)]),h=await d[T(0xf7)](T(0xea)+f+T(0x110),[g]);return h[T(0xff)]['map'](i=>({'stream':i[T(0xe2)],'depth':parseInt(i[T(0x121)],0xa)}));}catch(i){throw this['logger']['error'](T(0x111),{'error':i}),i;}}async[F(0xf1)](c,d){const U=F,f=this['streamClient'],g=this[U(0x12d)]();try{let h=0x0;return void 0x0!==d[U(0x105)]&&(h+=(await f[U(0xf7)](U(0x127)+g+U(0x100)+g+U(0xe3),[c,d[U(0x105)]]))['rowCount']),void 0x0!==d[U(0x114)]&&(h+=(await f[U(0xf7)](U(0x124)+g+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20expired_at\x20=\x20NOW()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20$1\x20AND\x20created_at\x20<\x20NOW()\x20-\x20INTERVAL\x20\x27'+d[U(0x114)]+U(0x103),[c]))[U(0x129)]),h;}catch(i){throw this[U(0x10f)][U(0xde)](U(0x11d)+c,{'error':i}),i;}}[F(0xfb)](){return{'supportsBatching':!0x0,'supportsDeadLetterQueue':!0x1,'supportsOrdering':!0x0,'supportsTrimming':!0x0,'supportsRetry':!0x1,'maxMessageSize':0x100000,'maxBatchSize':0x100};}}function a(){const V=['.streams','ENGINE','initialBackoff','6WglXJi','stream','query','DELETE\x20FROM\x20','_publishMessages','ackAndDelete','getProviderSpecificFeatures','enableBackoff','KeyService','\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20$1\x20AND\x20expired_at\x20IS\x20NULL','rows','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20id\x20ASC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20OFFSET\x20$2\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UPDATE\x20','deleteMessages','function','\x20milliseconds\x27','appId','maxLen','../../../../modules/utils','transact','5817192wqAgob','../../index','namespace','1597352rKcjyo','__esModule','deleteConsumerGroup','transaction','logger','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20stream_name\x20=\x20ANY($1::text[])\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20GROUP\x20BY\x20stream_name','postgres-stream-depth-error','getStreamStats','\x20WHERE\x20stream_name\x20=\x20$1\x20AND\x20group_name\x20=\x20$2','maxAge','publishMessages','addCommand','\x20seconds\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20expired_at\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x20$3\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOR\x20UPDATE\x20SKIP\x20LOCKED\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20update_reservation\x20AS\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UPDATE\x20','array','\x20(stream_name,\x20group_name,\x20message)\x20VALUES\x20','message','3795960GYpAjY','13321359FCSHtT','postgres-stream-trim-error-','PostgresStreamService','available_count','277039yOGDOy','count','namespace\x20not\x20set','join','UPDATE\x20','\x20t\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20reserved_at\x20=\x20NOW(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20reserved_by\x20=\x20$4\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20selected_messages\x20s\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20t.stream_name\x20=\x20$1\x20AND\x20t.id\x20=\x20s.id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20t.id,\x20t.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20*\x20FROM\x20update_reservation','maxRetries','WITH\x20to_expire\x20AS\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20id\x20FROM\x20','length','rowCount','../../../../modules/key','getStreamDepths','push','getTableName','messageCount','toString','mintKey','INSERT\x20INTO\x20','1266123YubLUM','postgres-stream-consumer-error-','map','error','acknowledgeMessages','174ClTTzv','streamClient','stream_name','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20expired_at\x20=\x20NOW()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20id\x20IN\x20(SELECT\x20id\x20FROM\x20to_expire)','deleteStream','\x20WHERE\x20stream_name\x20=\x20$1','batchSize','5692756zWIXSV','postgres-stream-publish-error-','consumeMessages','SELECT\x20stream_name,\x20COUNT(*)\x20AS\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20','init','safeName','postgres-stream-delete-error-','./kvtables','endsWith','defineProperty','trimStream'];a=function(){return V;};return a();}exports[F(0x11e)]=PostgresStreamService;