@fraym/streams 0.44.1 → 0.45.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,5 +1,5 @@
1
1
  import { ClientConfig } from "./config";
2
- import { HandlerFunc, PublishEvent, SubscriptionEvent } from "./event";
2
+ import { ErroneousEvent, HandlerFunc, PublishEvent, SubscriptionEvent } from "./event";
3
3
  import { Subscription } from "./subscribe";
4
4
  export interface StreamIterator {
5
5
  forEach: (callback: (event: SubscriptionEvent) => void) => Promise<void>;
@@ -21,5 +21,8 @@ export interface Client {
21
21
  invalidateGdprData: (tenantId: string, topic: string, gdprId: string) => Promise<void>;
22
22
  introduceGdprOnEventField: (tenantId: string, defaultValue: string, topic: string, eventId: string, fieldName: string) => Promise<void>;
23
23
  renameEventType: (topic: string, oldEventType: string, newEventType: string) => Promise<void>;
24
+ waitForTransactionalConsistency: (tenantId: string, topic: string, correlationId: string, consumerGroups: string[]) => Promise<void>;
25
+ listErroneousEvents: (tenantId: string, topic: string, eventTypes: string[], limit: number) => Promise<ErroneousEvent[]>;
26
+ resendErroneousEvent: (tenantId: string, topic: string, consumerGroup: string, eventId: string) => Promise<void>;
24
27
  }
25
28
  export declare const newClient: (inputConfig: ClientConfig) => Promise<Client>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newClient",{enumerable:true,get:function(){return newClient}});var _indexfreymstreamsmanagement=require("@fraym/proto/dist/index.freym.streams.management");var _grpcjs=require("@grpc/grpc-js");var _allEvents=require("./allEvents");var _config=require("./config");var _getEvent=require("./getEvent");var _getLastEvent=require("./getLastEvent");var _getLastEventByTypes=require("./getLastEventByTypes");var _getLastHandledEvent=require("./getLastHandledEvent");var _introduceGdpr=require("./introduceGdpr");var _invalidateGdpr=require("./invalidateGdpr");var _publish=require("./publish");var _rename=require("./rename");var _stream=require("./stream");var _subscribe=require("./subscribe");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newClient=function(inputConfig){return _async_to_generator(function(){var config,serviceClient,closeFunctions,getLastEventCheck;return _ts_generator(this,function(_state){config=(0,_config.useConfigDefaults)(inputConfig);serviceClient=new _indexfreymstreamsmanagement.ServiceClient(config.serverAddress,_grpcjs.credentials.createInsecure(),{"grpc.keepalive_time_ms":config.keepaliveInterval,"grpc.keepalive_timeout_ms":config.keepaliveTimeout,"grpc.keepalive_permit_without_calls":1,"grpc.max_receive_message_length":0x7fffffff});closeFunctions=[];getLastEventCheck=function(tenantId,topic){return _async_to_generator(function(){var now,lastEvent,lastOrderSerial;return _ts_generator(this,function(_state){switch(_state.label){case 0:now=new Date(new Date().getTime()+3e3);return[4,(0,_getLastEvent.getLastEvent)(tenantId,topic,serviceClient)];case 1:lastEvent=_state.sent();if(!lastEvent){return[2,null]}lastOrderSerial=lastEvent.orderSerial;return[2,function(lastEvent){if(!lastEvent){return true}if(lastOrderSerial==undefined){return lastEvent.raisedAt>now}var orderSerial=lastEvent.orderSerial?lastEvent.orderSerial:0;return orderSerial>lastOrderSerial}]}})})()};return[2,{getEvent:function(tenantId,topic,eventId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getEvent.getEvent)(tenantId,topic,eventId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastEvent:function(tenantId,topic){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastEvent.getLastEvent)(tenantId,topic,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastHandledEvent:function(tenantId,topic){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastHandledEvent.getLastHandledEvent)(tenantId,topic,config.groupId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastEventByTypes:function(tenantId,topic,types){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastEventByTypes.getLastEventByTypes)(tenantId,topic,types,serviceClient)];case 1:return[2,_state.sent()]}})})()},iterateAllEvents:function(tenantId,topic,includedEventTypes,perPage,handler){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_allEvents.getAllEvents)(tenantId,topic,includedEventTypes,perPage,handler,lastEventCheck,serviceClient)];case 2:_state.sent();return[2]}})})()},iterateAllEventsAfterEvent:function(tenantId,topic,includedEventTypes,eventId,perPage,handler){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_allEvents.getAllEventsAfterEvent)(tenantId,topic,includedEventTypes,eventId,perPage,handler,lastEventCheck,serviceClient)];case 2:_state.sent();return[2]}})})()},publish:function(topic,events){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_publish.sendPublish)(topic,events,config.deploymentId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getStreamIterator:function(topic,tenantId,stream,perPage){return{forEach:function(callback){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_stream.getStream)(topic,tenantId,stream,perPage,function(event){return _async_to_generator(function(){return _ts_generator(this,function(_state){callback(event);return[2]})})()},lastEventCheck,config.deploymentId,serviceClient)];case 2:return[2,_state.sent()]}})})()},forEachAfterEvent:function(eventId,callback){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_stream.getStreamAfterEvent)(topic,tenantId,stream,eventId,perPage,function(event){return _async_to_generator(function(){return _ts_generator(this,function(_state){callback(event);return[2]})})()},lastEventCheck,config.deploymentId,serviceClient)];case 2:return[2,_state.sent()]}})})()},isEmpty:function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_stream.isStreamEmpty)(topic,tenantId,stream,serviceClient)]})})()}}},subscribe:function(){var topics=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],ignoreUnhandledEvents=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;var subscription=(0,_subscribe.newSubscription)(topics,ignoreUnhandledEvents,config,serviceClient);closeFunctions.push(subscription.stop);return subscription},introduceGdprOnEventField:function(tenantId,defaultValue,topic,eventId,fieldName){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_introduceGdpr.introduceGdprOnEventField)(tenantId,defaultValue,topic,eventId,fieldName,serviceClient)];case 1:return[2,_state.sent()]}})})()},invalidateGdprData:function(tenantId,topic,gdprId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_invalidateGdpr.sendInvalidateGdpr)(tenantId,topic,gdprId,serviceClient)];case 1:return[2,_state.sent()]}})})()},createStreamSnapshot:function(tenantId,topic,stream,idOfLastEventThatGotSnapshotted,snapshotEvent){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_stream.createStreamSnapshot)(tenantId,topic,stream,idOfLastEventThatGotSnapshotted,snapshotEvent,config.deploymentId,serviceClient)];case 1:return[2,_state.sent()]}})})()},renameEventType:function(topic,oldEventType,newEventType){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_rename.renameEventType)(topic,oldEventType,newEventType,serviceClient)];case 1:return[2,_state.sent()]}})})()},close:function(){closeFunctions.forEach(function(close){return close()})}}]})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newClient",{enumerable:true,get:function(){return newClient}});var _indexfreymstreamsmanagement=require("@fraym/proto/dist/index.freym.streams.management");var _grpcjs=require("@grpc/grpc-js");var _allEvents=require("./allEvents");var _config=require("./config");var _erroneousEvents=require("./erroneousEvents");var _getEvent=require("./getEvent");var _getLastEvent=require("./getLastEvent");var _getLastEventByTypes=require("./getLastEventByTypes");var _getLastHandledEvent=require("./getLastHandledEvent");var _introduceGdpr=require("./introduceGdpr");var _invalidateGdpr=require("./invalidateGdpr");var _publish=require("./publish");var _rename=require("./rename");var _stream=require("./stream");var _subscribe=require("./subscribe");var _transactionalConsistency=require("./transactionalConsistency");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newClient=function(inputConfig){return _async_to_generator(function(){var config,serviceClient,closeFunctions,getLastEventCheck;return _ts_generator(this,function(_state){config=(0,_config.useConfigDefaults)(inputConfig);serviceClient=new _indexfreymstreamsmanagement.ServiceClient(config.serverAddress,_grpcjs.credentials.createInsecure(),{"grpc.keepalive_time_ms":config.keepaliveInterval,"grpc.keepalive_timeout_ms":config.keepaliveTimeout,"grpc.keepalive_permit_without_calls":1,"grpc.max_receive_message_length":0x7fffffff});closeFunctions=[];getLastEventCheck=function(tenantId,topic){return _async_to_generator(function(){var now,lastEvent,lastOrderSerial;return _ts_generator(this,function(_state){switch(_state.label){case 0:now=new Date(new Date().getTime()+3e3);return[4,(0,_getLastEvent.getLastEvent)(tenantId,topic,serviceClient)];case 1:lastEvent=_state.sent();if(!lastEvent){return[2,null]}lastOrderSerial=lastEvent.orderSerial;return[2,function(lastEvent){if(!lastEvent){return true}if(lastOrderSerial==undefined){return lastEvent.raisedAt>now}var orderSerial=lastEvent.orderSerial?lastEvent.orderSerial:0;return orderSerial>lastOrderSerial}]}})})()};return[2,{getEvent:function(tenantId,topic,eventId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getEvent.getEvent)(tenantId,topic,eventId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastEvent:function(tenantId,topic){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastEvent.getLastEvent)(tenantId,topic,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastHandledEvent:function(tenantId,topic){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastHandledEvent.getLastHandledEvent)(tenantId,topic,config.groupId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getLastEventByTypes:function(tenantId,topic,types){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_getLastEventByTypes.getLastEventByTypes)(tenantId,topic,types,serviceClient)];case 1:return[2,_state.sent()]}})})()},iterateAllEvents:function(tenantId,topic,includedEventTypes,perPage,handler){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_allEvents.getAllEvents)(tenantId,topic,includedEventTypes,perPage,handler,lastEventCheck,serviceClient)];case 2:_state.sent();return[2]}})})()},iterateAllEventsAfterEvent:function(tenantId,topic,includedEventTypes,eventId,perPage,handler){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_allEvents.getAllEventsAfterEvent)(tenantId,topic,includedEventTypes,eventId,perPage,handler,lastEventCheck,serviceClient)];case 2:_state.sent();return[2]}})})()},publish:function(topic,events){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_publish.sendPublish)(topic,events,config.deploymentId,serviceClient)];case 1:return[2,_state.sent()]}})})()},getStreamIterator:function(topic,tenantId,stream,perPage){return{forEach:function(callback){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_stream.getStream)(topic,tenantId,stream,perPage,function(event){return _async_to_generator(function(){return _ts_generator(this,function(_state){callback(event);return[2]})})()},lastEventCheck,config.deploymentId,serviceClient)];case 2:return[2,_state.sent()]}})})()},forEachAfterEvent:function(eventId,callback){return _async_to_generator(function(){var lastEventCheck;return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,getLastEventCheck(tenantId,topic)];case 1:lastEventCheck=_state.sent();if(!lastEventCheck){return[2]}return[4,(0,_stream.getStreamAfterEvent)(topic,tenantId,stream,eventId,perPage,function(event){return _async_to_generator(function(){return _ts_generator(this,function(_state){callback(event);return[2]})})()},lastEventCheck,config.deploymentId,serviceClient)];case 2:return[2,_state.sent()]}})})()},isEmpty:function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_stream.isStreamEmpty)(topic,tenantId,stream,serviceClient)]})})()}}},subscribe:function(){var topics=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],ignoreUnhandledEvents=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;var subscription=(0,_subscribe.newSubscription)(topics,ignoreUnhandledEvents,config,serviceClient);closeFunctions.push(subscription.stop);return subscription},introduceGdprOnEventField:function(tenantId,defaultValue,topic,eventId,fieldName){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_introduceGdpr.introduceGdprOnEventField)(tenantId,defaultValue,topic,eventId,fieldName,serviceClient)];case 1:return[2,_state.sent()]}})})()},invalidateGdprData:function(tenantId,topic,gdprId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_invalidateGdpr.sendInvalidateGdpr)(tenantId,topic,gdprId,serviceClient)];case 1:return[2,_state.sent()]}})})()},createStreamSnapshot:function(tenantId,topic,stream,idOfLastEventThatGotSnapshotted,snapshotEvent){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_stream.createStreamSnapshot)(tenantId,topic,stream,idOfLastEventThatGotSnapshotted,snapshotEvent,config.deploymentId,serviceClient)];case 1:return[2,_state.sent()]}})})()},renameEventType:function(topic,oldEventType,newEventType){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_rename.renameEventType)(topic,oldEventType,newEventType,serviceClient)];case 1:return[2,_state.sent()]}})})()},waitForTransactionalConsistency:function(tenantId,topic,correlationId,consumerGroups){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_transactionalConsistency.waitForTransactionalConsistency)(tenantId,topic,correlationId,consumerGroups,serviceClient)];case 1:return[2,_state.sent()]}})})()},listErroneousEvents:function(tenantId,topic,eventTypes,limit){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_erroneousEvents.listErroneousEvents)(tenantId,topic,eventTypes,limit,serviceClient)];case 1:return[2,_state.sent()]}})})()},resendErroneousEvent:function(tenantId,topic,consumerGroup,eventId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_erroneousEvents.resendErroneousEvent)(tenantId,topic,consumerGroup,eventId,serviceClient)];case 1:return[2,_state.sent()]}})})()},close:function(){closeFunctions.forEach(function(close){return close()})}}]})})()};
@@ -0,0 +1,4 @@
1
+ import { ServiceClient } from "@fraym/proto/dist/index.freym.streams.management";
2
+ import { ErroneousEvent } from "./event";
3
+ export declare const listErroneousEvents: (tenantId: string, topic: string, eventTypes: string[], limit: number, serviceClient: ServiceClient) => Promise<ErroneousEvent[]>;
4
+ export declare const resendErroneousEvent: (tenantId: string, topic: string, consumerGroup: string, eventId: string, serviceClient: ServiceClient) => Promise<void>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get listErroneousEvents(){return listErroneousEvents},get resendErroneousEvent(){return resendErroneousEvent}});var _event=require("./event");var _util=require("./util");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var listErroneousEvents=function(tenantId,topic,eventTypes,limit,serviceClient){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_util.retry)(function(){return new Promise(function(resolve,reject){serviceClient.listErroneousEvents({tenantId:tenantId,topic:topic,eventTypes:eventTypes,limit:limit.toString()},function(error,data){return _async_to_generator(function(){var erroneousEvents,_iteratorNormalCompletion,_didIteratorError,_iteratorError,_iterator,_step,event,erroneousEvent;return _ts_generator(this,function(_state){if(error){reject(error);return[2]}erroneousEvents=[];_iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(_iterator=data.events[Symbol.iterator]();!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){event=_step.value;erroneousEvent=(0,_event.getErroneousEvent)(event);if(erroneousEvent){erroneousEvents.push(erroneousEvent)}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}resolve(erroneousEvents);return[2]})})()})})})]})})()};var resendErroneousEvent=function(tenantId,topic,consumerGroup,eventId,serviceClient){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_util.retry)(function(){return new Promise(function(resolve,reject){serviceClient.resendErroneousEvent({tenantId:tenantId,topic:topic,consumerGroup:consumerGroup,eventId:eventId},function(error){return _async_to_generator(function(){return _ts_generator(this,function(_state){if(error){reject(error);return[2]}resolve();return[2]})})()})})})]})})()};
@@ -0,0 +1,9 @@
1
+ export interface RetryableError {
2
+ message: string;
3
+ shouldRetry: boolean;
4
+ }
5
+ export declare class StreamHandlerError extends Error implements RetryableError {
6
+ shouldRetry: boolean;
7
+ constructor(message: string, shouldRetry?: boolean);
8
+ }
9
+ export declare const isRetryableError: (error: unknown) => error is RetryableError;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get StreamHandlerError(){return StreamHandlerError},get isRetryableError(){return isRetryableError}});function _assert_this_initialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _call_super(_this,derived,args){derived=_get_prototype_of(derived);return _possible_constructor_return(_this,_is_native_reflect_construct()?Reflect.construct(derived,args||[],_get_prototype_of(_this).constructor):derived.apply(_this,args))}function _class_call_check(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _construct(Parent,args,Class){if(_is_native_reflect_construct()){_construct=Reflect.construct}else{_construct=function construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor;if(Class)_set_prototype_of(instance,Class.prototype);return instance}}return _construct.apply(null,arguments)}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _get_prototype_of(o){_get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _get_prototype_of(o)}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_set_prototype_of(subClass,superClass)}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _is_native_function(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1}function _possible_constructor_return(self,call){if(call&&(_type_of(call)==="object"||typeof call==="function")){return call}return _assert_this_initialized(self)}function _set_prototype_of(o,p){_set_prototype_of=Object.setPrototypeOf||function setPrototypeOf(o,p){o.__proto__=p;return o};return _set_prototype_of(o,p)}function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}function _wrap_native_super(Class){var _cache=typeof Map==="function"?new Map:undefined;_wrap_native_super=function wrapNativeSuper(Class){if(Class===null||!_is_native_function(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function")}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper)}function Wrapper(){return _construct(Class,arguments,_get_prototype_of(this).constructor)}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _set_prototype_of(Wrapper,Class)};return _wrap_native_super(Class)}function _is_native_reflect_construct(){try{var result=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(_){}return(_is_native_reflect_construct=function(){return!!result})()}var StreamHandlerError=/*#__PURE__*/function(Error1){"use strict";_inherits(StreamHandlerError,Error1);function StreamHandlerError(message){var shouldRetry=arguments.length>1&&arguments[1]!==void 0?arguments[1]:false;_class_call_check(this,StreamHandlerError);var _this;_this=_call_super(this,StreamHandlerError,[message]),_define_property(_this,"shouldRetry",void 0);_this.name="StreamHandlerError";_this.shouldRetry=shouldRetry;return _this}return StreamHandlerError}(_wrap_native_super(Error));var isRetryableError=function(error){return _instanceof(error,StreamHandlerError)||(typeof error==="undefined"?"undefined":_type_of(error))==="object"&&error!==null&&"shouldRetry"in error&&"message"in error};
@@ -1,9 +1,10 @@
1
- import { Event } from "@fraym/proto/dist/index.freym.streams.management";
1
+ import { ErroneousEvent as ErroneousEventPb, Event } from "@fraym/proto/dist/index.freym.streams.management";
2
2
  export interface SubscriptionEvent extends BaseEvent {
3
3
  topic: string;
4
4
  raisedAt: Date;
5
5
  orderSerial?: number;
6
6
  deploymentId?: number;
7
+ retryNumber?: number;
7
8
  }
8
9
  export interface PublishEvent extends BaseEvent {
9
10
  broadcast?: boolean;
@@ -28,4 +29,10 @@ export interface GdprEventData {
28
29
  }
29
30
  export declare const isGdprEventData: (value: EventData) => value is GdprEventData;
30
31
  export type HandlerFunc = (event: SubscriptionEvent) => Promise<void>;
31
- export declare const getSubscriptionEvent: (event: Event) => SubscriptionEvent | null;
32
+ export declare const getSubscriptionEvent: (event: Event) => SubscriptionEvent;
33
+ export interface ErroneousEvent {
34
+ event: SubscriptionEvent;
35
+ consumerGroup: string;
36
+ error: string;
37
+ }
38
+ export declare const getErroneousEvent: (event: ErroneousEventPb) => ErroneousEvent | null;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getSubscriptionEvent(){return getSubscriptionEvent},get isGdprEventData(){return isGdprEventData}});function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}var isGdprEventData=function(value){return value&&(typeof value==="undefined"?"undefined":_type_of(value))==="object"&&Object.keys(value).length==2&&Object.prototype.hasOwnProperty.call(value,"value")&&Object.prototype.hasOwnProperty.call(value,"gdprDefault")};var getSubscriptionEvent=function(event){var payload={};for(var key in event.payload){var data=event.payload[key];if(data===undefined){continue}if(data.gdpr){payload[key]={id:data.gdpr.id,value:JSON.parse(data.value),gdprDefault:data.gdpr.default?JSON.parse(data.gdpr.default):"",isInvalidated:data.gdpr.isInvalidated}}else{payload[key]=JSON.parse(data.value)}}return{id:event.id,topic:event.topic,tenantId:event.tenantId,payload:payload,raisedAt:new Date(parseInt(event.raisedAt.slice(0,-6))),stream:event.stream||undefined,type:event.type||undefined,causationId:event.metadata?event.metadata.causationId:undefined,correlationId:event.metadata?event.metadata.correlationId:undefined,reason:event.reason||undefined,orderSerial:event.metadata?parseInt(event.metadata.orderSerial):undefined,deploymentId:event.metadata&&event.metadata.deploymentId?parseInt(event.metadata.deploymentId):undefined,userId:event.metadata?event.metadata.userId||undefined:undefined}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getErroneousEvent(){return getErroneousEvent},get getSubscriptionEvent(){return getSubscriptionEvent},get isGdprEventData(){return isGdprEventData}});function _type_of(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj}var isGdprEventData=function(value){return value&&(typeof value==="undefined"?"undefined":_type_of(value))==="object"&&Object.keys(value).length==2&&Object.prototype.hasOwnProperty.call(value,"value")&&Object.prototype.hasOwnProperty.call(value,"gdprDefault")};var getSubscriptionEvent=function(event){var payload={};for(var key in event.payload){var data=event.payload[key];if(data===undefined){continue}if(data.gdpr){payload[key]={id:data.gdpr.id,value:JSON.parse(data.value),gdprDefault:data.gdpr.default?JSON.parse(data.gdpr.default):"",isInvalidated:data.gdpr.isInvalidated}}else{payload[key]=JSON.parse(data.value)}}return{id:event.id,topic:event.topic,tenantId:event.tenantId,payload:payload,raisedAt:new Date(parseInt(event.raisedAt.slice(0,-6))),stream:event.stream||undefined,type:event.type||undefined,causationId:event.metadata?event.metadata.causationId:undefined,correlationId:event.metadata?event.metadata.correlationId:undefined,reason:event.reason||undefined,orderSerial:event.metadata?parseInt(event.metadata.orderSerial):undefined,deploymentId:event.metadata&&event.metadata.deploymentId?parseInt(event.metadata.deploymentId):undefined,userId:event.metadata?event.metadata.userId||undefined:undefined,retryNumber:event.metadata?parseInt(event.metadata.retryNumber):undefined}};var getErroneousEvent=function(event){if(!event.event){return null}return{event:getSubscriptionEvent(event.event),consumerGroup:event.consumerGroup,error:event.error}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getProtobufPublishEventFromPublishedEvent(){return getProtobufPublishEventFromPublishedEvent},get sendPublish(){return sendPublish}});var _event=require("./event");var _util=require("./util");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var sendPublish=function(topic,events,deploymentId,serviceClient){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_util.retry)(function(){return new Promise(function(resolve,reject){serviceClient.publish({events:events.map(function(event){return getProtobufPublishEventFromPublishedEvent(event,deploymentId)}),topic:topic},function(error){if(error){reject(error);return}resolve()})})})]})})()};var getProtobufPublishEventFromPublishedEvent=function(event,deploymentId){var payload={};for(var key in event.payload){var currentData=event.payload[key];var _currentData_id;payload[key]=(0,_event.isGdprEventData)(currentData)?{value:JSON.stringify(currentData.value),gdpr:{default:JSON.stringify(currentData.gdprDefault),id:(_currentData_id=currentData.id)!==null&&_currentData_id!==void 0?_currentData_id:"",isInvalidated:false}}:{value:JSON.stringify(currentData),gdpr:undefined}}var _event_causationId,_event_correlationId,_event_userId,_event_broadcast,_event_reason,_event_stream,_event_type;return{id:event.id,metadata:{causationId:(_event_causationId=event.causationId)!==null&&_event_causationId!==void 0?_event_causationId:"",correlationId:(_event_correlationId=event.correlationId)!==null&&_event_correlationId!==void 0?_event_correlationId:"",orderSerial:"0",deploymentId:deploymentId.toString(),userId:(_event_userId=event.userId)!==null&&_event_userId!==void 0?_event_userId:""},options:{broadcast:(_event_broadcast=event.broadcast)!==null&&_event_broadcast!==void 0?_event_broadcast:false},reason:(_event_reason=event.reason)!==null&&_event_reason!==void 0?_event_reason:"",stream:(_event_stream=event.stream)!==null&&_event_stream!==void 0?_event_stream:"",tenantId:event.tenantId,type:(_event_type=event.type)!==null&&_event_type!==void 0?_event_type:"",payload:payload}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get getProtobufPublishEventFromPublishedEvent(){return getProtobufPublishEventFromPublishedEvent},get sendPublish(){return sendPublish}});var _event=require("./event");var _util=require("./util");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var sendPublish=function(topic,events,deploymentId,serviceClient){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_util.retry)(function(){return new Promise(function(resolve,reject){serviceClient.publish({events:events.map(function(event){return getProtobufPublishEventFromPublishedEvent(event,deploymentId)}),topic:topic},function(error){if(error){reject(error);return}resolve()})})})]})})()};var getProtobufPublishEventFromPublishedEvent=function(event,deploymentId){var payload={};for(var key in event.payload){var currentData=event.payload[key];var _currentData_id;payload[key]=(0,_event.isGdprEventData)(currentData)?{value:JSON.stringify(currentData.value),gdpr:{default:JSON.stringify(currentData.gdprDefault),id:(_currentData_id=currentData.id)!==null&&_currentData_id!==void 0?_currentData_id:"",isInvalidated:false}}:{value:JSON.stringify(currentData),gdpr:undefined}}var _event_causationId,_event_correlationId,_event_userId,_event_broadcast,_event_reason,_event_stream,_event_type;return{id:event.id,metadata:{causationId:(_event_causationId=event.causationId)!==null&&_event_causationId!==void 0?_event_causationId:"",correlationId:(_event_correlationId=event.correlationId)!==null&&_event_correlationId!==void 0?_event_correlationId:"",orderSerial:"0",deploymentId:deploymentId.toString(),userId:(_event_userId=event.userId)!==null&&_event_userId!==void 0?_event_userId:"",retryNumber:""},options:{broadcast:(_event_broadcast=event.broadcast)!==null&&_event_broadcast!==void 0?_event_broadcast:false},reason:(_event_reason=event.reason)!==null&&_event_reason!==void 0?_event_reason:"",stream:(_event_stream=event.stream)!==null&&_event_stream!==void 0?_event_stream:"",tenantId:event.tenantId,type:(_event_type=event.type)!==null&&_event_type!==void 0?_event_type:"",payload:payload}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get initStream(){return initStream},get newSubscription(){return newSubscription}});var _uuid=require("uuid");var _constants=require("@grpc/grpc-js/build/src/constants");var _event=require("./event");function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_without_holes(arr){if(Array.isArray(arr))return _array_like_to_array(arr)}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _iterable_to_array(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _to_consumable_array(arr){return _array_without_holes(arr)||_iterable_to_array(arr)||_unsupported_iterable_to_array(arr)||_non_iterable_spread()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newSubscription=function(topics,ignoreUnhandledEvents,config,serviceClient){var stream=null;var closed=false;var typeHandlerMap={};var globalHandlers=[];var rebuildConnection=function(currentStream,retries){currentStream.cancel();currentStream.removeAllListeners();setTimeout(function(){stream=null;reconnect(retries)},100)};var reconnect=function(retries){return _async_to_generator(function(){var newStream,dataFn;return _ts_generator(this,function(_state){switch(_state.label){case 0:newStream=serviceClient.subscribe();newStream.on("end",function(){if(closed){newStream.cancel();return}rebuildConnection(newStream,retries-1)});newStream.on("error",function(err){if(closed){return}if(retries===0||err&&err.code&&err.code===_constants.Status.UNKNOWN){closed=true;throw err}rebuildConnection(newStream,retries-1)});dataFn=function(data){return _async_to_generator(function(){var _currentHandlers,_data_payload,_data_payload1,event,_event_type,_typeHandlerMap_,currentHandlers,_iteratorNormalCompletion,_didIteratorError,_iteratorError,_iterator,_step,handler,err,err1;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!data.payload||((_data_payload=data.payload)===null||_data_payload===void 0?void 0:_data_payload.$case)==="panic"||((_data_payload1=data.payload)===null||_data_payload1===void 0?void 0:_data_payload1.$case)==="subscribed"){newStream.cancel();return[2]}event=(0,_event.getSubscriptionEvent)(data.payload.event);if(!event){return[2]}currentHandlers=(_typeHandlerMap_=typeHandlerMap[(_event_type=event.type)!==null&&_event_type!==void 0?_event_type:""])!==null&&_typeHandlerMap_!==void 0?_typeHandlerMap_:[];(_currentHandlers=currentHandlers).push.apply(_currentHandlers,_to_consumable_array(globalHandlers));if(currentHandlers.length===0){if(ignoreUnhandledEvents){newStream.write(newHandledRequest(event.tenantId,event.topic));return[2]}newStream.write(newHandledRequest(event.tenantId,event.topic,"no handlers for this event, maybe you forgot to register an event handler"));return[2]}_state.label=1;case 1:_state.trys.push([1,10,,11]);_iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;_state.label=2;case 2:_state.trys.push([2,7,8,9]);_iterator=currentHandlers[Symbol.iterator]();_state.label=3;case 3:if(!!(_iteratorNormalCompletion=(_step=_iterator.next()).done))return[3,6];handler=_step.value;return[4,handler(event)];case 4:_state.sent();_state.label=5;case 5:_iteratorNormalCompletion=true;return[3,3];case 6:return[3,9];case 7:err=_state.sent();_didIteratorError=true;_iteratorError=err;return[3,9];case 8:try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}return[7];case 9:newStream.write(newHandledRequest(event.tenantId,event.topic));return[3,11];case 10:err1=_state.sent();newStream.write(newHandledRequest(event.tenantId,event.topic,err1));throw err1;case 11:return[2]}})})()};stream=newStream;return[4,initStream(topics,config,newStream)];case 1:_state.sent();retries=50;newStream.on("data",dataFn);return[2]}})})()};return{useHandler:function(type,handler){if(!typeHandlerMap[type]){typeHandlerMap[type]=[handler]}else{typeHandlerMap[type].push(handler)}},useHandlerForAllTypes:function(handler){globalHandlers.push(handler)},start:function(){reconnect(50)},stop:function(){if(stream){stream.cancel();stream=null}closed=true}}};var initStream=function(topics,config,stream){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){stream.write({payload:{$case:"subscribe",subscribe:{metadata:{group:config.groupId,subscriberId:(0,_uuid.v4)(),deploymentId:config.deploymentId.toString()},topics:topics}}});stream.once("data",function(data){var _data_payload;if(((_data_payload=data.payload)===null||_data_payload===void 0?void 0:_data_payload.$case)!=="subscribed"){reject("connection to streams service was not initialized correctly");return}if(data.payload.subscribed.error){reject("unable to subscribe to streams service: ".concat(data.payload.subscribed.error));return}resolve(stream)})})]})})()};var newHandledRequest=function(tenantId,topic,error){return{payload:{$case:"handled",handled:{tenantId:tenantId,topic:topic,error:error!==null&&error!==void 0?error:""}}}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:Object.getOwnPropertyDescriptor(all,name).get})}_export(exports,{get initStream(){return initStream},get newSubscription(){return newSubscription}});var _uuid=require("uuid");var _constants=require("@grpc/grpc-js/build/src/constants");var _error=require("./error");var _event=require("./event");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _instanceof(left,right){if(right!=null&&typeof Symbol!=="undefined"&&right[Symbol.hasInstance]){return!!right[Symbol.hasInstance](left)}else{return left instanceof right}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var newSubscription=function(topics,ignoreUnhandledEvents,config,serviceClient){var stream=null;var closed=false;var typeHandlerMap={};var globalHandler=null;var rebuildConnection=function(currentStream,retries){currentStream.cancel();currentStream.removeAllListeners();setTimeout(function(){stream=null;reconnect(retries)},100)};var reconnect=function(retries){return _async_to_generator(function(){var newStream,dataFn;return _ts_generator(this,function(_state){switch(_state.label){case 0:newStream=serviceClient.subscribe();newStream.on("end",function(){if(closed){newStream.cancel();return}rebuildConnection(newStream,retries-1)});newStream.on("error",function(err){if(closed){return}if(retries===0||err&&err.code&&err.code===_constants.Status.UNKNOWN){closed=true;throw err}rebuildConnection(newStream,retries-1)});dataFn=function(data){return _async_to_generator(function(){var _data_payload,_data_payload1,event,typedHandler,err,shouldRetry,errorMessage;return _ts_generator(this,function(_state){switch(_state.label){case 0:if(!data.payload||((_data_payload=data.payload)===null||_data_payload===void 0?void 0:_data_payload.$case)==="panic"||((_data_payload1=data.payload)===null||_data_payload1===void 0?void 0:_data_payload1.$case)==="subscribed"){newStream.cancel();return[2]}event=(0,_event.getSubscriptionEvent)(data.payload.event);if(!event){return[2]}if(!event.type){return[2]}_state.label=1;case 1:_state.trys.push([1,7,,8]);typedHandler=typeHandlerMap[event.type];if(!typedHandler)return[3,3];return[4,typedHandler(event)];case 2:_state.sent();return[3,6];case 3:if(!globalHandler)return[3,5];return[4,globalHandler(event)];case 4:_state.sent();return[3,6];case 5:if(ignoreUnhandledEvents){newStream.write(newHandledRequest(event.tenantId,event.topic));return[2]}newStream.write(newHandledRequest(event.tenantId,event.topic,"no handlers for this event, maybe you forgot to register an event handler",true));return[2];case 6:newStream.write(newHandledRequest(event.tenantId,event.topic));return[3,8];case 7:err=_state.sent();shouldRetry=(0,_error.isRetryableError)(err)&&err.shouldRetry;errorMessage=_instanceof(err,Error)?err.message:String(err);newStream.write(newHandledRequest(event.tenantId,event.topic,errorMessage,shouldRetry));throw err;case 8:return[2]}})})()};stream=newStream;return[4,initStream(topics,config,newStream)];case 1:_state.sent();retries=50;newStream.on("data",dataFn);return[2]}})})()};return{useHandler:function(type,handler){typeHandlerMap[type]=handler},useHandlerForAllTypes:function(handler){globalHandler=handler},start:function(){reconnect(50)},stop:function(){if(stream){stream.cancel();stream=null}closed=true}}};var initStream=function(topics,config,stream){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){stream.write({payload:{$case:"subscribe",subscribe:{metadata:{group:config.groupId,subscriberId:(0,_uuid.v4)(),deploymentId:config.deploymentId.toString()},topics:topics}}});stream.once("data",function(data){var _data_payload;if(((_data_payload=data.payload)===null||_data_payload===void 0?void 0:_data_payload.$case)!=="subscribed"){reject("connection to streams service was not initialized correctly");return}if(data.payload.subscribed.error){reject("unable to subscribe to streams service: ".concat(data.payload.subscribed.error));return}resolve(stream)})})]})})()};var newHandledRequest=function(tenantId,topic,error,retry){return{payload:{$case:"handled",handled:{tenantId:tenantId,topic:topic,error:error!==null&&error!==void 0?error:"",retry:retry!==null&&retry!==void 0?retry:false}}}};
@@ -0,0 +1,2 @@
1
+ import { ServiceClient } from "@fraym/proto/dist/index.freym.streams.management";
2
+ export declare const waitForTransactionalConsistency: (tenantId: string, topic: string, correlationId: string, consumerGroups: string[], serviceClient: ServiceClient) => Promise<void>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"waitForTransactionalConsistency",{enumerable:true,get:function(){return waitForTransactionalConsistency}});var _util=require("./util");function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}var waitForTransactionalConsistency=function(tenantId,topic,correlationId,consumerGroups,serviceClient){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,(0,_util.retry)(function(){return new Promise(function(resolve,reject){serviceClient.waitForTransactionalConsistency({tenantId:tenantId,topic:topic,correlationId:correlationId,consumerGroups:consumerGroups},function(error){if(error){reject(error);return}resolve()})})})]})})()};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fraym/streams",
3
- "version": "0.44.1",
3
+ "version": "0.45.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/fraym/freym-api",
6
6
  "repository": {
@@ -22,9 +22,9 @@
22
22
  "main": "dist/index.js",
23
23
  "types": "dist/index.d.ts",
24
24
  "dependencies": {
25
- "@fraym/proto": "^0.44.1",
25
+ "@fraym/proto": "^0.45.0",
26
26
  "@grpc/grpc-js": "^1.13.4",
27
- "dotenv": "^17.2.0",
27
+ "dotenv": "^17.2.1",
28
28
  "uuid": "^11.1.0"
29
29
  },
30
30
  "devDependencies": {