@fraym/sync 1.0.0-alpha.17 → 1.0.0-alpha.19

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 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newClient",{enumerable:true,get:function(){return newClient}});var _indexfreymsyncmanagement=require("@fraym/proto/dist/index.freym.sync.management");var _grpcjs=require("@grpc/grpc-js");var _config=require("./config");var _connection=require("./connection");var _lease=require("./lease");var _lock=require("./lock");var _requestGate=require("./requestGate");var _rlock=require("./rlock");var _runlock=require("./runlock");var _tryLock=require("./tryLock");var _tryRLock=require("./tryRLock");var _unlock=require("./unlock");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 newClient(config){return _async_to_generator(function(){var serviceClient,lockRequestGate,unlockRequestGate,connection,lease;return _ts_generator(this,function(_state){switch(_state.label){case 0:config=(0,_config.useConfigDefaults)(config);serviceClient=new _indexfreymsyncmanagement.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});lockRequestGate=(0,_requestGate.newRequestGate)(900);unlockRequestGate=(0,_requestGate.newRequestGate)(80);return[4,(0,_connection.newConnection)()];case 1:connection=_state.sent();return[4,(0,_lease.createLease)(connection,config,serviceClient)];case 2:lease=_state.sent();return[4,lease.renew()];case 3:_state.sent();return[2,{lock:function lock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_lock.lock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:_state.sent();return[2]}})})()},tryLock:function tryLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_tryLock.tryLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:return[2,_state.sent()]}})})()},unlock:function unlock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_unlock.unlock)(lease,tenantId,resource,serviceClient,unlockRequestGate)];case 2:_state.sent();return[2]}})})()},rLock:function rLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_rlock.rLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:_state.sent();return[2]}})})()},tryRLock:function tryRLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_tryRLock.tryRLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:return[2,_state.sent()]}})})()},rUnlock:function rUnlock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_runlock.rUnlock)(lease,tenantId,resource,serviceClient,unlockRequestGate)];case 2:_state.sent();return[2]}})})()},close:function close(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:connection.stop();lease.stop();return[4,lease.waitForStop()];case 1:_state.sent();return[2]}})})()}}]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newClient",{enumerable:true,get:function(){return newClient}});var _indexfreymsyncmanagement=require("@fraym/proto/dist/index.freym.sync.management");var _plimit=/*#__PURE__*/_interop_require_default(require("p-limit"));var _grpcjs=require("@grpc/grpc-js");var _config=require("./config");var _connection=require("./connection");var _lease=require("./lease");var _lock=require("./lock");var _rlock=require("./rlock");var _runlock=require("./runlock");var _tryLock=require("./tryLock");var _tryRLock=require("./tryRLock");var _unlock=require("./unlock");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 _interop_require_default(obj){return obj&&obj.__esModule?obj:{default:obj}}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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 newClient(config){return _async_to_generator(function(){var serviceClient,lockRequestGate,unlockRequestGate,connection,lease;return _ts_generator(this,function(_state){switch(_state.label){case 0:config=(0,_config.useConfigDefaults)(config);serviceClient=new _indexfreymsyncmanagement.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});lockRequestGate=(0,_plimit.default)(900);unlockRequestGate=(0,_plimit.default)(80);return[4,(0,_connection.newConnection)()];case 1:connection=_state.sent();return[4,(0,_lease.createLease)(connection,config,serviceClient)];case 2:lease=_state.sent();return[4,lease.renew()];case 3:_state.sent();return[2,{lock:function lock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_lock.lock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:_state.sent();return[2]}})})()},tryLock:function tryLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_tryLock.tryLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:return[2,_state.sent()]}})})()},unlock:function unlock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_unlock.unlock)(lease,tenantId,resource,serviceClient,unlockRequestGate)];case 2:_state.sent();return[2]}})})()},rLock:function rLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_rlock.rLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:_state.sent();return[2]}})})()},tryRLock:function tryRLock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_tryRLock.tryRLock)(lease,tenantId,resource,serviceClient,lockRequestGate)];case 2:return[2,_state.sent()]}})})()},rUnlock:function rUnlock(tenantId){for(var _len=arguments.length,resource=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){resource[_key-1]=arguments[_key]}return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,connection.waitForConnect()];case 1:_state.sent();return[4,(0,_runlock.rUnlock)(lease,tenantId,resource,serviceClient,unlockRequestGate)];case 2:_state.sent();return[2]}})})()},close:function close(){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:connection.stop();lease.stop();return[4,lease.waitForStop()];case 1:_state.sent();return[2]}})})()}}]}})})()};
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const lock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"lock",{enumerable:true,get:function(){return lock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 lock=function lock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.lock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){requestGate.leave();if(error){reject(error);return}resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,false)];case 2:_state.sent();return[2]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"lock",{enumerable:true,get:function(){return lock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 lock=function lock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.lock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){if(error){reject(error);return}resolve()})})]})})()})})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,false)];case 2:_state.sent();return[2]}})})()};
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const rLock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"rLock",{enumerable:true,get:function(){return rLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 rLock=function rLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.rLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){requestGate.leave();if(error){reject(error);return}resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,true)];case 2:_state.sent();return[2]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"rLock",{enumerable:true,get:function(){return rLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 rLock=function rLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.rLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){if(error){reject(error);return}resolve()})})]})})()})})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,true)];case 2:_state.sent();return[2]}})})()};
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const rUnlock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"rUnlock",{enumerable:true,get:function(){return rUnlock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 rUnlock=function rUnlock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.rUnlock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){requestGate.leave();if(error){reject(error);return}resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.untrack(tenantId,resource,true)];case 2:_state.sent();return[2]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"rUnlock",{enumerable:true,get:function(){return rUnlock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 rUnlock=function rUnlock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.rUnlock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){if(error){reject(error);return}resolve()})})]})})()})})})];case 1:_state.sent();return[4,lease.untrack(tenantId,resource,true)];case 2:_state.sent();return[2]}})})()};
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const tryLock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<boolean>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"tryLock",{enumerable:true,get:function(){return tryLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 tryLock=function tryLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){var locked;return _ts_generator(this,function(_state){switch(_state.label){case 0:locked=false;return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.tryLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error,response){requestGate.leave();if(error){reject(error);return}locked=response.locked;resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,false)];case 2:_state.sent();return[2,locked]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"tryLock",{enumerable:true,get:function(){return tryLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 tryLock=function tryLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){var locked;return _ts_generator(this,function(_state){switch(_state.label){case 0:locked=false;return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.tryLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error,response){if(error){reject(error);return}locked=response.locked;resolve()})})]})})()})})})];case 1:_state.sent();if(!locked)return[3,3];return[4,lease.track(tenantId,resource,false)];case 2:_state.sent();_state.label=3;case 3:return[2,locked]}})})()};
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const tryRLock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<boolean>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"tryRLock",{enumerable:true,get:function(){return tryRLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 tryRLock=function tryRLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){var locked;return _ts_generator(this,function(_state){switch(_state.label){case 0:locked=false;return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.tryRLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error,response){requestGate.leave();if(error){reject(error);return}locked=response.locked;resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.track(tenantId,resource,true)];case 2:_state.sent();return[2,locked]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"tryRLock",{enumerable:true,get:function(){return tryRLock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 tryRLock=function tryRLock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){var locked;return _ts_generator(this,function(_state){switch(_state.label){case 0:locked=false;return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.tryRLock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error,response){if(error){reject(error);return}locked=response.locked;resolve()})})]})})()})})})];case 1:_state.sent();if(!locked)return[3,3];return[4,lease.track(tenantId,resource,true)];case 2:_state.sent();_state.label=3;case 3:return[2,locked]}})})()};
@@ -0,0 +1 @@
1
+ export type RequestGate = (fn: () => Promise<void>) => Promise<void>;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});
@@ -1,4 +1,4 @@
1
1
  import { ServiceClient } from "@fraym/proto/dist/index.freym.sync.management";
2
2
  import { Lease } from "./lease";
3
- import { RequestGate } from "./requestGate";
3
+ import { RequestGate } from "./types";
4
4
  export declare const unlock: (lease: Lease, tenantId: string, resource: string[], serviceClient: ServiceClient, requestGate: RequestGate) => Promise<void>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"unlock",{enumerable:true,get:function(){return unlock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 unlock=function unlock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate.enter()];case 1:_state.sent();return[2,new Promise(function(resolve,reject){serviceClient.unlock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){requestGate.leave();if(error){reject(error);return}resolve()})})]}})})()})})];case 1:_state.sent();return[4,lease.untrack(tenantId,resource,false)];case 2:_state.sent();return[2]}})})()};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"unlock",{enumerable:true,get:function(){return unlock}});var _retry=require("./retry");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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 unlock=function unlock(lease,tenantId,resource,serviceClient,requestGate){return _async_to_generator(function(){return _ts_generator(this,function(_state){switch(_state.label){case 0:return[4,requestGate(function(){return(0,_retry.retry)(function(){return lease.runWithLeaseId(function(leaseId){return _async_to_generator(function(){return _ts_generator(this,function(_state){return[2,new Promise(function(resolve,reject){serviceClient.unlock({leaseId:leaseId,tenantId:tenantId,resource:resource},function(error){if(error){reject(error);return}resolve()})})]})})()})})})];case 1:_state.sent();return[4,lease.untrack(tenantId,resource,false)];case 2:_state.sent();return[2]}})})()};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fraym/sync",
3
- "version": "1.0.0-alpha.17",
3
+ "version": "1.0.0-alpha.19",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/fraym/fraeym",
6
6
  "repository": {
@@ -22,9 +22,10 @@
22
22
  "node": ">=20"
23
23
  },
24
24
  "dependencies": {
25
- "@fraym/proto": "^1.0.0-alpha.17",
25
+ "@fraym/proto": "^1.0.0-alpha.19",
26
26
  "@grpc/grpc-js": "^1.14.3",
27
- "dotenv": "^17.2.3"
27
+ "dotenv": "^17.2.4",
28
+ "p-limit": "3.1.0"
28
29
  },
29
30
  "prettier": "@becklyn/prettier"
30
31
  }
@@ -1,5 +0,0 @@
1
- export interface RequestGate {
2
- enter: () => Promise<void>;
3
- leave: () => void;
4
- }
5
- export declare const newRequestGate: (maxRequests: number) => RequestGate;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"newRequestGate",{enumerable:true,get:function(){return newRequestGate}});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),d=Object.defineProperty;return d(g,"next",{value:verb(0)}),d(g,"throw",{value:verb(1)}),d(g,"return",{value:verb(2)}),typeof Symbol==="function"&&d(g,Symbol.iterator,{value: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 newRequestGate=function newRequestGate(maxRequests){var activeRequests=0;var waitingQueue=[];return{enter:function enter(){return _async_to_generator(function(){return _ts_generator(this,function(_state){if(activeRequests<maxRequests){activeRequests++;return[2]}return[2,new Promise(function(resolve){waitingQueue.push({resolve:resolve})})]})})()},leave:function leave(){activeRequests--;if(waitingQueue.length>0){var waiting=waitingQueue.shift();activeRequests++;waiting.resolve()}}}};