2
0
mirror of https://github.com/esiur/esiur-js.git synced 2025-05-06 12:32:58 +00:00
This commit is contained in:
Ahmed Zamil 2020-04-30 09:26:58 +03:00
parent 98877b9b85
commit 5967d6c901
19 changed files with 2102 additions and 1784 deletions

View File

@ -1,5 +1,9 @@
{ {
"presets": ["@babel/preset-env"], "presets": [
[
"@babel/preset-env", { "useBuiltIns": "entry" }
]
],
"plugins": [ "plugins": [
["@babel/transform-runtime"] ["@babel/transform-runtime"]
] ]

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2017 Esi Ur Copyright (c) 2017-2020 Esyur
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -212,6 +212,8 @@ function _superPropBase(object, property) {
module.exports = _superPropBase; module.exports = _superPropBase;
},{"./getPrototypeOf":7}],14:[function(require,module,exports){ },{"./getPrototypeOf":7}],14:[function(require,module,exports){
function _typeof(obj) { function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) { module.exports = _typeof = function _typeof(obj) {
return typeof obj; return typeof obj;
@ -1048,9 +1050,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js")); var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js"));
var AsyncBag = var AsyncBag = /*#__PURE__*/function (_AsyncReply) {
/*#__PURE__*/
function (_AsyncReply) {
(0, _inherits2["default"])(AsyncBag, _AsyncReply); (0, _inherits2["default"])(AsyncBag, _AsyncReply);
function AsyncBag() { function AsyncBag() {
@ -1156,9 +1156,7 @@ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/w
var _ExceptionCode = _interopRequireDefault(require("./ExceptionCode.js")); var _ExceptionCode = _interopRequireDefault(require("./ExceptionCode.js"));
var AsyncException = var AsyncException = /*#__PURE__*/function (_Error) {
/*#__PURE__*/
function (_Error) {
(0, _inherits2["default"])(AsyncException, _Error); (0, _inherits2["default"])(AsyncException, _Error);
function AsyncException() { function AsyncException() {
@ -1194,7 +1192,7 @@ function (_Error) {
} }
}]); }]);
return AsyncException; return AsyncException;
}((0, _wrapNativeSuper2["default"])(Error)); }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));
exports["default"] = AsyncException; exports["default"] = AsyncException;
@ -1247,9 +1245,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js")); var _AsyncReply2 = _interopRequireDefault(require("./AsyncReply.js"));
var AsyncQueue = var AsyncQueue = /*#__PURE__*/function (_AsyncReply) {
/*#__PURE__*/
function (_AsyncReply) {
(0, _inherits2["default"])(AsyncQueue, _AsyncReply); (0, _inherits2["default"])(AsyncQueue, _AsyncReply);
function AsyncQueue() { function AsyncQueue() {
@ -1264,8 +1260,15 @@ function (_AsyncReply) {
for (var i = 0; i < self.list.length; i++) { for (var i = 0; i < self.list.length; i++) {
if (self.list[i].ready) { if (self.list[i].ready) {
self.trigger(self.list[i].result); self.trigger(self.list[i].result);
self.list.splice(i, 1); self.ready = false; //self.list.splice(i, 1);
self.list.shift();
i--; i--;
} else if (self.list[i].failed) {
self.ready = false;
self.list.shift();
i--;
console.log("AsyncQueue (Reply Failed)");
} else break; } else break;
} }
@ -1280,11 +1283,12 @@ function (_AsyncReply) {
value: function add(reply) { value: function add(reply) {
this.list.push(reply); this.list.push(reply);
this.ready = false; this.ready = false;
reply.then(this.processQueue); reply.then(this.processQueue).error(this.processQueue);
} }
}, { }, {
key: "remove", key: "remove",
value: function remove(reply) { value: function remove(reply) {
console.log("REMOVE QUEUE");
this.list.splice(this.list.indexOf(reply), 1); this.list.splice(this.list.indexOf(reply), 1);
this.processQueue(); this.processQueue();
} }
@ -1345,9 +1349,7 @@ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/w
var _AsyncException = _interopRequireDefault(require("./AsyncException.js")); var _AsyncException = _interopRequireDefault(require("./AsyncException.js"));
var AsyncReply = var AsyncReply = /*#__PURE__*/function (_Promise) {
/*#__PURE__*/
function (_Promise) {
(0, _inherits2["default"])(AsyncReply, _Promise); (0, _inherits2["default"])(AsyncReply, _Promise);
(0, _createClass2["default"])(AsyncReply, [{ (0, _createClass2["default"])(AsyncReply, [{
key: "then", key: "then",
@ -1464,7 +1466,7 @@ function (_Promise) {
} }
return AsyncReply; return AsyncReply;
}((0, _wrapNativeSuper2["default"])(Promise)); }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Promise));
exports["default"] = AsyncReply; exports["default"] = AsyncReply;
@ -1569,9 +1571,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _IEventHandler2 = _interopRequireDefault(require("./IEventHandler.js")); var _IEventHandler2 = _interopRequireDefault(require("./IEventHandler.js"));
var IDestructible = var IDestructible = /*#__PURE__*/function (_IEventHandler) {
/*#__PURE__*/
function (_IEventHandler) {
(0, _inherits2["default"])(IDestructible, _IEventHandler); (0, _inherits2["default"])(IDestructible, _IEventHandler);
(0, _createClass2["default"])(IDestructible, [{ (0, _createClass2["default"])(IDestructible, [{
key: "destroy", key: "destroy",
@ -1629,9 +1629,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var IEventHandler = var IEventHandler = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
(0, _createClass2["default"])(IEventHandler, [{ (0, _createClass2["default"])(IEventHandler, [{
key: "_register", key: "_register",
value: function _register(event) { value: function _register(event) {
@ -1764,9 +1762,7 @@ var _IEventHandler2 = _interopRequireDefault(require("../Core/IEventHandler.js")
var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js")); var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js"));
var AutoList = var AutoList = /*#__PURE__*/function (_IEventHandler) {
/*#__PURE__*/
function (_IEventHandler) {
(0, _inherits2["default"])(AutoList, _IEventHandler); (0, _inherits2["default"])(AutoList, _IEventHandler);
function AutoList() { function AutoList() {
@ -1888,9 +1884,7 @@ var _DataType = _interopRequireDefault(require("./DataType.js"));
var _DataConverter = _interopRequireDefault(require("./DataConverter.js")); var _DataConverter = _interopRequireDefault(require("./DataConverter.js"));
var BinaryList = var BinaryList = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function BinaryList() { function BinaryList() {
(0, _classCallCheck2["default"])(this, BinaryList); (0, _classCallCheck2["default"])(this, BinaryList);
this.list = []; this.list = [];
@ -2197,9 +2191,7 @@ var _DistributedResource = _interopRequireDefault(require("../Net/IIP/Distribute
var _IResource = _interopRequireDefault(require("../Resource/IResource.js")); var _IResource = _interopRequireDefault(require("../Resource/IResource.js"));
var Codec = var Codec = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function Codec() { function Codec() {
(0, _classCallCheck2["default"])(this, Codec); (0, _classCallCheck2["default"])(this, Codec);
} }
@ -3029,9 +3021,7 @@ exports.UNIX_EPOCH = UNIX_EPOCH;
var TWO_PWR_32 = (1 << 16) * (1 << 16); var TWO_PWR_32 = (1 << 16) * (1 << 16);
exports.TWO_PWR_32 = TWO_PWR_32; exports.TWO_PWR_32 = TWO_PWR_32;
var DC = var DC = /*#__PURE__*/function (_Uint8Array) {
/*#__PURE__*/
function (_Uint8Array) {
(0, _inherits2["default"])(DC, _Uint8Array); (0, _inherits2["default"])(DC, _Uint8Array);
function DC(bufferOrSize) { function DC(bufferOrSize) {
@ -3155,45 +3145,58 @@ function (_Uint8Array) {
value: function getUint8Array(offset, length) { value: function getUint8Array(offset, length) {
return new Uint8Array(this.buffer, offset, length); return new Uint8Array(this.buffer, offset, length);
} }
}, {
key: "copy",
value: function copy(offset, length, elementSize, func, dstType) {
var rt = new dstType(length / elementSize);
var d = 0,
end = offset + length;
for (var i = offset; i < end; i += elementSize) {
rt[d++] = func.call(this, i);
}
return rt;
}
}, { }, {
key: "getInt16Array", key: "getInt16Array",
value: function getInt16Array(offset, length) { value: function getInt16Array(offset, length) {
return new Int16Array(this.clip(offset, length).buffer); return this.copy(offset, length, 2, this.getInt16, Int16Array); //return new Int16Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getUint16Array", key: "getUint16Array",
value: function getUint16Array(offset, length) { value: function getUint16Array(offset, length) {
return new Uint16Array(this.clip(offset, length).buffer); return this.copy(offset, length, 2, this.getUint16, Uint16Array); //return new Uint16Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getInt32Array", key: "getInt32Array",
value: function getInt32Array(offset, length) { value: function getInt32Array(offset, length) {
return new Int32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getInt32, Int32Array); //return new Int32Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getUint32Array", key: "getUint32Array",
value: function getUint32Array(offset, length) { value: function getUint32Array(offset, length) {
return new Uint32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getUint32, Uint32Array); //return new Uint32Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getFloat32Array", key: "getFloat32Array",
value: function getFloat32Array(offset, length) { value: function getFloat32Array(offset, length) {
return new Float32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getFloat32, Float32Array); //return new Float32Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getFloat64Array", key: "getFloat64Array",
value: function getFloat64Array(offset, length) { value: function getFloat64Array(offset, length) {
return new Float64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getFloat64, Float64Array); // return new Float64Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getInt64Array", key: "getInt64Array",
value: function getInt64Array(offset, length) { value: function getInt64Array(offset, length) {
return new Int64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getInt64, Int64Array); //return new Int64Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getUint64Array", key: "getUint64Array",
value: function getUint64Array(offset, length) { value: function getUint64Array(offset, length) {
return new Uint64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getUint64, Uint64Array); //return new Uint64Array(this.clip(offset, length).buffer);
} }
}, { }, {
key: "getBoolean", key: "getBoolean",
@ -3503,7 +3506,7 @@ function (_Uint8Array) {
} }
}]); }]);
return DC; return DC;
}((0, _wrapNativeSuper2["default"])(Uint8Array)); }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Uint8Array));
exports.DC = exports["default"] = DC; exports.DC = exports["default"] = DC;
@ -3671,9 +3674,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var Guid = var Guid = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function Guid(dc) { function Guid(dc) {
(0, _classCallCheck2["default"])(this, Guid); (0, _classCallCheck2["default"])(this, Guid);
this.value = dc; this.value = dc;
@ -3731,9 +3732,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js")); var _IDestructible = _interopRequireDefault(require("../Core/IDestructible.js"));
var KeyList = var KeyList = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function KeyList() { function KeyList() {
(0, _classCallCheck2["default"])(this, KeyList); (0, _classCallCheck2["default"])(this, KeyList);
this.keys = []; this.keys = [];
@ -3932,9 +3931,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var Structure = var Structure = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
(0, _createClass2["default"])(Structure, [{ (0, _createClass2["default"])(Structure, [{
key: "getKeys", key: "getKeys",
value: function getKeys() { value: function getKeys() {
@ -4009,9 +4006,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
var StructureArray = var StructureArray = /*#__PURE__*/function (_Array) {
/*#__PURE__*/
function (_Array) {
(0, _inherits2["default"])(StructureArray, _Array); (0, _inherits2["default"])(StructureArray, _Array);
function StructureArray() { function StructureArray() {
@ -4026,7 +4021,7 @@ function (_Array) {
} }
}]); }]);
return StructureArray; return StructureArray;
}((0, _wrapNativeSuper2["default"])(Array)); }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Array));
exports["default"] = StructureArray; exports["default"] = StructureArray;
@ -4156,9 +4151,11 @@ var _DistributedPropertyContext = _interopRequireDefault(require("./DistributedP
var _IResource = require("../../Resource/IResource.js"); var _IResource = require("../../Resource/IResource.js");
var DistributedConnection = var _Ruling = _interopRequireDefault(require("../../Security/Permissions/Ruling.js"));
/*#__PURE__*/
function (_IStore) { var _ActionType = _interopRequireDefault(require("../../Security/Permissions/ActionType.js"));
var DistributedConnection = /*#__PURE__*/function (_IStore) {
(0, _inherits2["default"])(DistributedConnection, _IStore); (0, _inherits2["default"])(DistributedConnection, _IStore);
(0, _createClass2["default"])(DistributedConnection, [{ (0, _createClass2["default"])(DistributedConnection, [{
key: "send", key: "send",
@ -4246,6 +4243,7 @@ function (_IStore) {
} else { } else {
offset += rt; offset += rt;
try {
if (packet.command == _IIPPacketCommand["default"].Event) { if (packet.command == _IIPPacketCommand["default"].Event) {
switch (packet.event) { switch (packet.event) {
case _IIPPacketEvent["default"].ResourceReassigned: case _IIPPacketEvent["default"].ResourceReassigned:
@ -4485,6 +4483,9 @@ function (_IStore) {
break; break;
} }
} }
} catch (ex) {
console.log("Esyur Error ", ex);
}
} }
} else { } else {
var rt = authPacket.parse(msg, offset, ends); var rt = authPacket.parse(msg, offset, ends);
@ -4683,7 +4684,13 @@ function (_IStore) {
self.hold(); self.hold();
while (this.networkBuffer.available > 0 && !this.networkBuffer["protected"]) { while (this.networkBuffer.available > 0 && !this.networkBuffer["protected"]) {
self.receive(this.networkBuffer); // try
// {
self.receive(this.networkBuffer); // }
// catch(e)
//{
// console.log(e);
//}
} }
self.unhold(); self.unhold();
@ -4832,19 +4839,18 @@ function (_IStore) {
value: function IIPEventPropertyUpdated(resourceId, index, content) { value: function IIPEventPropertyUpdated(resourceId, index, content) {
var self = this; var self = this;
this.fetch(resourceId).then(function (r) { this.fetch(resourceId).then(function (r) {
var pt = r.instance.template.getPropertyTemplateByIndex(index);
if (pt == null) return; // ft found, fi not found, this should never happen
// push to the queue to gaurantee serialization // push to the queue to gaurantee serialization
var item = new _AsyncReply["default"](); var item = new _AsyncReply["default"]();
self.queue.add(item); self.queue.add(item);
_Codec["default"].parse(content, 0, {}, self).then(function (args) { _Codec["default"].parse(content, 0, {}, self).then(function (args) {
var pt = r.instance.template.getPropertyTemplateByIndex(index);
if (pt != null) {
item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Propery, args, index)); item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Propery, args, index));
} else { }).error(function (ex) {
// ft found, fi not found, this should never happen
self.queue.remove(item); self.queue.remove(item);
} console.log("Esyur Property Error", ex);
}); });
}); });
} }
@ -4853,20 +4859,18 @@ function (_IStore) {
value: function IIPEventEventOccurred(resourceId, index, content) { value: function IIPEventEventOccurred(resourceId, index, content) {
var self = this; var self = this;
this.fetch(resourceId).then(function (r) { this.fetch(resourceId).then(function (r) {
var et = r.instance.template.getEventTemplateByIndex(index);
if (et == null) return; // ft found, fi not found, this should never happen
// push to the queue to guarantee serialization // push to the queue to guarantee serialization
var item = new _AsyncReply["default"](); var item = new _AsyncReply["default"]();
var r = self.resources[resourceId];
self.queue.add(item); self.queue.add(item);
_Codec["default"].parseVarArray(content, 0, content.length, self).then(function (args) { _Codec["default"].parseVarArray(content, 0, content.length, self).then(function (args) {
var et = r.instance.template.getEventTemplateByIndex(index);
if (et != null) {
item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Event, args, index)); item.trigger(new _DistributedResourceQueueItem["default"](r, _DistributedResourceQueueItemType["default"].Event, args, index));
} else { }).error(function (ex) {
// ft found, fi not found, this should never happen
self.queue.remove(item); self.queue.remove(item);
} console.log("Esyur Event Error", ex);
}); });
}); });
} }
@ -4926,7 +4930,7 @@ function (_IStore) {
_Warehouse["default"].getById(resourceId).then(function (r) { _Warehouse["default"].getById(resourceId).then(function (r) {
if (r != null) { if (r != null) {
if (r.instance.applicable(self.session, ActionType.Attach, null) == Ruling.Denied) { if (r.instance.applicable(self.session, _ActionType["default"].Attach, null) == _Ruling["default"].Denied) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AttachDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AttachDenied);
return; return;
} }
@ -4997,14 +5001,14 @@ function (_IStore) {
} // check security } // check security
if (store.instance.applicable(self.session, ActionType.CreateResource, null) != Ruling.Allowed) { if (store.instance.applicable(self.session, _ActionType["default"].CreateResource, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].CreateDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].CreateDenied);
return; return;
} }
_Warehouse["default"].getById(parentId).then(function (parent) { _Warehouse["default"].getById(parentId).then(function (parent) {
// check security // check security
if (parent != null) if (parent.instance.applicable(self.session, ActionType.AddChild, null) != Ruling.Allowed) { if (parent != null) if (parent.instance.applicable(self.session, _ActionType["default"].AddChild, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied);
return; return;
} }
@ -5054,7 +5058,7 @@ function (_IStore) {
return; return;
} }
if (r.instance.store.instance.applicable(session, ActionType.Delete, null) != Ruling.Allowed) { if (r.instance.store.instance.applicable(session, _ActionType["default"].Delete, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].DeleteDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].DeleteDenied);
return; return;
} }
@ -5121,15 +5125,13 @@ function (_IStore) {
} else { } else {
var fi = r[ft.name]; var fi = r[ft.name];
if (r.instance.applicable(self.session, ActionType.Execute, ft) == Ruling.Denied) { if (r.instance.applicable(self.session, _ActionType["default"].Execute, ft) == _Ruling["default"].Denied) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied);
return; return;
} }
if (fi instanceof Function) { if (fi instanceof Function) {
var itt = var itt = /*#__PURE__*/_regenerator["default"].mark(function itt() {
/*#__PURE__*/
_regenerator["default"].mark(function itt() {
return _regenerator["default"].wrap(function itt$(_context) { return _regenerator["default"].wrap(function itt$(_context) {
while (1) { while (1) {
switch (_context.prev = _context.next) { switch (_context.prev = _context.next) {
@ -5211,7 +5213,7 @@ function (_IStore) {
} else { } else {
var fi = r[ft.name]; var fi = r[ft.name];
if (r.instance.applicable(self.session, ActionType.Execute, ft) == Ruling.Denied) { if (r.instance.applicable(self.session, _ActionType["default"].Execute, ft) == _Ruling["default"].Denied) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].InvokeDenied);
return; return;
} }
@ -5335,7 +5337,7 @@ function (_IStore) {
self.sendError(x.type, callback, x.code, x.message).done(); self.sendError(x.type, callback, x.code, x.message).done();
}); });
} else { } else {
if (r.instance.applicable(self.session, ActionType.SetProperty, pt) == Ruling.Denied) { if (r.instance.applicable(self.session, _ActionType["default"].SetProperty, pt) == _Ruling["default"].Denied) {
self.sendError(_AsyncReply["default"].ErrorType.Exception, callback, _ExceptionCode["default"].SetPropertyDenied); self.sendError(_AsyncReply["default"].ErrorType.Exception, callback, _ExceptionCode["default"].SetPropertyDenied);
return; return;
} }
@ -5381,7 +5383,7 @@ function (_IStore) {
_Warehouse["default"].query(resourceLink).then(function (resources) { _Warehouse["default"].query(resourceLink).then(function (resources) {
var list = resources.filter(function (r) { var list = resources.filter(function (r) {
return r.instance.applicable(self.session, ActionType.Attach, null) != Ruling.Denied; return r.instance.applicable(self.session, _ActionType["default"].Attach, null) != _Ruling["default"].Denied;
}); });
if (list.length == 0) self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound);else self.sendReply(_IIPPacketAction["default"].QueryLink, callback).addUint8Array(_Codec["default"].composeResourceArray(list, self, true)).done(); if (list.length == 0) self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].ResourceNotFound);else self.sendReply(_IIPPacketAction["default"].QueryLink, callback).addUint8Array(_Codec["default"].composeResourceArray(list, self, true)).done();
}); });
@ -5541,7 +5543,7 @@ function (_IStore) {
var et = resource.instance.template.getEventTemplateByName(name); var et = resource.instance.template.getEventTemplateByName(name);
if (et == null) return; if (et == null) return;
if (receivers != null) if (receivers.indexOf(this.session) < 0) return; if (receivers != null) if (receivers.indexOf(this.session) < 0) return;
if (resource.instance.applicable(this.session, ActionType.ReceiveEvent, et, issuer) == Ruling.Denied) return; // compose the packet if (resource.instance.applicable(this.session, _ActionType["default"].ReceiveEvent, et, issuer) == _Ruling["default"].Denied) return; // compose the packet
this.sendEvent(_IIPPacketEvent["default"].EventOccurred).addUint32(resource.instance.id).addUint8(et.index).addUint8Array(_Codec["default"].composeVarArray(args, this, true)).done(); this.sendEvent(_IIPPacketEvent["default"].EventOccurred).addUint32(resource.instance.id).addUint8(et.index).addUint8Array(_Codec["default"].composeVarArray(args, this, true)).done();
} }
@ -5562,12 +5564,12 @@ function (_IStore) {
return; return;
} }
if (parent.instance.applicable(self.session, ActionType.AddChild, null) != Ruling.Allowed) { if (parent.instance.applicable(self.session, _ActionType["default"].AddChild, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied);
return; return;
} }
if (child.instance.applicable(self.session, ActionType.AddParent, null) != Ruling.Allowed) { if (child.instance.applicable(self.session, _ActionType["default"].AddParent, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied);
return; return;
} }
@ -5594,12 +5596,12 @@ function (_IStore) {
return; return;
} }
if (parent.instance.applicable(self.session, ActionType.RemoveChild, null) != Ruling.Allowed) { if (parent.instance.applicable(self.session, _ActionType["default"].RemoveChild, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddChildDenied);
return; return;
} }
if (child.instance.applicable(self.session, ActionType.RemoveParent, null) != Ruling.Allowed) { if (child.instance.applicable(self.session, _ActionType["default"].RemoveParent, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].AddParentDenied);
return; return;
} }
@ -5620,7 +5622,7 @@ function (_IStore) {
return; return;
} }
if (resource.instance.applicable(self.session, ActionType.Rename, null) != Ruling.Allowed) { if (resource.instance.applicable(self.session, _ActionType["default"].Rename, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].RenameDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].RenameDenied);
return; return;
} }
@ -5668,7 +5670,7 @@ function (_IStore) {
return; return;
} }
if (r.instance.store.instance.applicable(self.session, ActionType.UpdateAttributes, null) != Ruling.Allowed) { if (r.instance.store.instance.applicable(self.session, _ActionType["default"].UpdateAttributes, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied);
return; return;
} }
@ -5690,7 +5692,7 @@ function (_IStore) {
return; return;
} }
if (r.instance.store.instance.applicable(self.session, ActionType.UpdateAttributes, null) != Ruling.Allowed) { if (r.instance.store.instance.applicable(self.session, _ActionType["default"].UpdateAttributes, null) != _Ruling["default"].Allowed) {
self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied); self.sendError(_ErrorType["default"].Management, callback, _ExceptionCode["default"].UpdateAttributeDenied);
return; return;
} }
@ -5808,7 +5810,7 @@ function (_IStore) {
exports["default"] = DistributedConnection; exports["default"] = DistributedConnection;
},{"../../Core/AsyncQueue.js":20,"../../Core/AsyncReply.js":21,"../../Core/ErrorType.js":22,"../../Core/ExceptionCode.js":23,"../../Core/ProgressType.js":26,"../../Data/Codec.js":29,"../../Data/DataConverter.js":30,"../../Data/KeyList.js":33,"../../Resource/IResource.js":56,"../../Resource/IStore.js":57,"../../Resource/Template/ResourceTemplate.js":64,"../../Resource/Warehouse.js":65,"../../Security/Authority/Authentication.js":66,"../../Security/Authority/AuthenticationType.js":67,"../../Security/Authority/Session.js":68,"../../Security/Integrity/SHA256.js":69,"../Packets//IIPPacketReport.js":52,"../Packets/IIPAuthPacket.js":44,"../Packets/IIPAuthPacketAction.js":45,"../Packets/IIPAuthPacketCommand.js":46,"../Packets/IIPAuthPacketMethod.js":47,"../Packets/IIPPacket.js":48,"../Packets/IIPPacketAction.js":49,"../Packets/IIPPacketCommand.js":50,"../Packets/IIPPacketEvent.js":51,"../SendList.js":53,"../Sockets/NetworkBuffer.js":54,"./DistributedPropertyContext.js":40,"./DistributedResource.js":41,"./DistributedResourceQueueItem.js":42,"./DistributedResourceQueueItemType.js":43,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/regenerator":17}],40:[function(require,module,exports){ },{"../../Core/AsyncQueue.js":20,"../../Core/AsyncReply.js":21,"../../Core/ErrorType.js":22,"../../Core/ExceptionCode.js":23,"../../Core/ProgressType.js":26,"../../Data/Codec.js":29,"../../Data/DataConverter.js":30,"../../Data/KeyList.js":33,"../../Resource/IResource.js":56,"../../Resource/IStore.js":57,"../../Resource/Template/ResourceTemplate.js":64,"../../Resource/Warehouse.js":65,"../../Security/Authority/Authentication.js":66,"../../Security/Authority/AuthenticationType.js":67,"../../Security/Authority/Session.js":68,"../../Security/Integrity/SHA256.js":69,"../../Security/Permissions/ActionType.js":70,"../../Security/Permissions/Ruling.js":72,"../Packets//IIPPacketReport.js":52,"../Packets/IIPAuthPacket.js":44,"../Packets/IIPAuthPacketAction.js":45,"../Packets/IIPAuthPacketCommand.js":46,"../Packets/IIPAuthPacketMethod.js":47,"../Packets/IIPPacket.js":48,"../Packets/IIPPacketAction.js":49,"../Packets/IIPPacketCommand.js":50,"../Packets/IIPPacketEvent.js":51,"../SendList.js":53,"../Sockets/NetworkBuffer.js":54,"./DistributedPropertyContext.js":40,"./DistributedResource.js":41,"./DistributedResourceQueueItem.js":42,"./DistributedResourceQueueItemType.js":43,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/regenerator":17}],40:[function(require,module,exports){
/* /*
* Copyright (c) 2017-2018 Ahmed Kh. Zamil * Copyright (c) 2017-2018 Ahmed Kh. Zamil
* *
@ -5913,9 +5915,7 @@ var _Structure = _interopRequireDefault(require("../../Data/Structure.js"));
var _IIPPacketAction = _interopRequireDefault(require("../Packets//IIPPacketAction.js")); var _IIPPacketAction = _interopRequireDefault(require("../Packets//IIPPacketAction.js"));
var DistributedResource = var DistributedResource = /*#__PURE__*/function (_IResource) {
/*#__PURE__*/
function (_IResource) {
(0, _inherits2["default"])(DistributedResource, _IResource); (0, _inherits2["default"])(DistributedResource, _IResource);
(0, _createClass2["default"])(DistributedResource, [{ (0, _createClass2["default"])(DistributedResource, [{
key: "destroy", key: "destroy",
@ -6181,9 +6181,7 @@ var _IIPAuthPacketAction = _interopRequireDefault(require("./IIPAuthPacketAction
var _IIPAuthPacketMethod = _interopRequireDefault(require("./IIPAuthPacketMethod.js")); var _IIPAuthPacketMethod = _interopRequireDefault(require("./IIPAuthPacketMethod.js"));
var IIPAuthPacket = var IIPAuthPacket = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function IIPAuthPacket() { function IIPAuthPacket() {
(0, _classCallCheck2["default"])(this, IIPAuthPacket); (0, _classCallCheck2["default"])(this, IIPAuthPacket);
this.command = 0; this.command = 0;
@ -6412,9 +6410,7 @@ var _IIPPacketReport = _interopRequireDefault(require("./IIPPacketReport.js"));
var _DataType = _interopRequireDefault(require("../../Data/DataType.js")); var _DataType = _interopRequireDefault(require("../../Data/DataType.js"));
var IIPPacket = var IIPPacket = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function IIPPacket() { function IIPPacket() {
(0, _classCallCheck2["default"])(this, IIPPacket); (0, _classCallCheck2["default"])(this, IIPPacket);
this.command = 0; this.command = 0;
@ -6897,9 +6893,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _BinaryList2 = _interopRequireDefault(require("../Data/BinaryList.js")); var _BinaryList2 = _interopRequireDefault(require("../Data/BinaryList.js"));
var SendList = var SendList = /*#__PURE__*/function (_BinaryList) {
/*#__PURE__*/
function (_BinaryList) {
(0, _inherits2["default"])(SendList, _BinaryList); (0, _inherits2["default"])(SendList, _BinaryList);
function SendList(connection, doneReply) { function SendList(connection, doneReply) {
@ -6965,9 +6959,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js")); var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js"));
var NetworkBuffer = var NetworkBuffer = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function NetworkBuffer() { function NetworkBuffer() {
(0, _classCallCheck2["default"])(this, NetworkBuffer); (0, _classCallCheck2["default"])(this, NetworkBuffer);
this.neededDataLength = 0; this.neededDataLength = 0;
@ -7164,9 +7156,7 @@ var ResourceTrigger = {
}; };
exports.ResourceTrigger = ResourceTrigger; exports.ResourceTrigger = ResourceTrigger;
var IResource = var IResource = /*#__PURE__*/function (_IDestructible) {
/*#__PURE__*/
function (_IDestructible) {
(0, _inherits2["default"])(IResource, _IDestructible); (0, _inherits2["default"])(IResource, _IDestructible);
(0, _createClass2["default"])(IResource, [{ (0, _createClass2["default"])(IResource, [{
key: "trigger", key: "trigger",
@ -7241,9 +7231,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _IResource2 = _interopRequireDefault(require("./IResource.js")); var _IResource2 = _interopRequireDefault(require("./IResource.js"));
var IStore = var IStore = /*#__PURE__*/function (_IResource) {
/*#__PURE__*/
function (_IResource) {
(0, _inherits2["default"])(IStore, _IResource); (0, _inherits2["default"])(IStore, _IResource);
(0, _createClass2["default"])(IStore, [{ (0, _createClass2["default"])(IStore, [{
key: "get", key: "get",
@ -7342,9 +7330,7 @@ var _CustomResourceEvent = _interopRequireDefault(require("./CustomResourceEvent
var _Warehouse = _interopRequireDefault(require("./Warehouse.js")); var _Warehouse = _interopRequireDefault(require("./Warehouse.js"));
var Instance = var Instance = /*#__PURE__*/function (_IEventHandler) {
/*#__PURE__*/
function (_IEventHandler) {
(0, _inherits2["default"])(Instance, _IEventHandler); (0, _inherits2["default"])(Instance, _IEventHandler);
(0, _createClass2["default"])(Instance, [{ (0, _createClass2["default"])(Instance, [{
key: "getAge", key: "getAge",
@ -7616,7 +7602,7 @@ function (_IEventHandler) {
exports["default"] = Instance; exports["default"] = Instance;
},{"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Data/PropertyValue.js":34,"../Data/Structure.js":36,"../Data/StructureArray.js":37,"../Security/Permissions/IPermissionsManager.js":70,"./CustomResourceEvent.js":55,"./Warehouse.js":65,"@babel/runtime/helpers/assertThisInitialized":1,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],59:[function(require,module,exports){ },{"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Data/PropertyValue.js":34,"../Data/Structure.js":36,"../Data/StructureArray.js":37,"../Security/Permissions/IPermissionsManager.js":71,"./CustomResourceEvent.js":55,"./Warehouse.js":65,"@babel/runtime/helpers/assertThisInitialized":1,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],59:[function(require,module,exports){
/* /*
* Copyright (c) 2017 Ahmed Kh. Zamil * Copyright (c) 2017 Ahmed Kh. Zamil
* *
@ -7669,9 +7655,7 @@ var _MemberTemplate2 = _interopRequireDefault(require("./MemberTemplate.js"));
var _MemberType = _interopRequireDefault(require("./MemberType.js")); var _MemberType = _interopRequireDefault(require("./MemberType.js"));
var EventTemplate = var EventTemplate = /*#__PURE__*/function (_MemberTemplate) {
/*#__PURE__*/
function (_MemberTemplate) {
(0, _inherits2["default"])(EventTemplate, _MemberTemplate); (0, _inherits2["default"])(EventTemplate, _MemberTemplate);
function EventTemplate() { function EventTemplate() {
@ -7754,9 +7738,7 @@ var _MemberTemplate2 = _interopRequireDefault(require("./MemberTemplate.js"));
var _MemberType = _interopRequireDefault(require("./MemberType.js")); var _MemberType = _interopRequireDefault(require("./MemberType.js"));
var FunctionTemplate = var FunctionTemplate = /*#__PURE__*/function (_MemberTemplate) {
/*#__PURE__*/
function (_MemberTemplate) {
(0, _inherits2["default"])(FunctionTemplate, _MemberTemplate); (0, _inherits2["default"])(FunctionTemplate, _MemberTemplate);
(0, _createClass2["default"])(FunctionTemplate, [{ (0, _createClass2["default"])(FunctionTemplate, [{
key: "compose", key: "compose",
@ -7827,9 +7809,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js")); var _DataConverter = _interopRequireDefault(require("../../Data/DataConverter.js"));
var MemberTemplate = var MemberTemplate = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function MemberTemplate() { function MemberTemplate() {
(0, _classCallCheck2["default"])(this, MemberTemplate); (0, _classCallCheck2["default"])(this, MemberTemplate);
} }
@ -7919,9 +7899,7 @@ var PropertyPermission = {
}; };
exports.PropertyPermission = PropertyPermission; exports.PropertyPermission = PropertyPermission;
var PropertyTemplate = var PropertyTemplate = /*#__PURE__*/function (_MemberTemplate) {
/*#__PURE__*/
function (_MemberTemplate) {
(0, _inherits2["default"])(PropertyTemplate, _MemberTemplate); (0, _inherits2["default"])(PropertyTemplate, _MemberTemplate);
function PropertyTemplate() { function PropertyTemplate() {
@ -8007,9 +7985,7 @@ var _SHA = _interopRequireDefault(require("../../Security/Integrity/SHA256.js"))
var _DataConverter = require("../../Data/DataConverter.js"); var _DataConverter = require("../../Data/DataConverter.js");
var ResourceTemplate = var ResourceTemplate = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
(0, _createClass2["default"])(ResourceTemplate, [{ (0, _createClass2["default"])(ResourceTemplate, [{
key: "getEventTemplateByName", key: "getEventTemplateByName",
value: function getEventTemplateByName(eventName) { value: function getEventTemplateByName(eventName) {
@ -8353,9 +8329,7 @@ var _IStore = _interopRequireDefault(require("./IStore.js"));
var _IResource = require("./IResource.js"); var _IResource = require("./IResource.js");
var WH = var WH = /*#__PURE__*/function (_IEventHandler) {
/*#__PURE__*/
function (_IEventHandler) {
(0, _inherits2["default"])(WH, _IEventHandler); (0, _inherits2["default"])(WH, _IEventHandler);
function WH() { function WH() {
@ -8625,9 +8599,7 @@ function (_IEventHandler) {
}, { }, {
key: "query", key: "query",
value: function () { value: function () {
var _query = (0, _asyncToGenerator2["default"])( var _query = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(path) {
/*#__PURE__*/
_regenerator["default"].mark(function _callee(path) {
var rt, p, resource, i, store, res, children; var rt, p, resource, i, store, res, children;
return _regenerator["default"].wrap(function _callee$(_context) { return _regenerator["default"].wrap(function _callee$(_context) {
while (1) { while (1) {
@ -8758,7 +8730,7 @@ Warehouse.protocols.add("mem", function () {
var _default = Warehouse; var _default = Warehouse;
exports["default"] = _default; exports["default"] = _default;
},{"../Core/AsyncReply.js":21,"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Net/IIP/DistributedConnection.js":39,"../Resource/Instance.js":58,"../Resource/Template/ResourceTemplate.js":64,"../Stores/MemoryStore.js":71,"./IResource.js":56,"./IStore.js":57,"@babel/runtime/helpers/asyncToGenerator":2,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/typeof":14,"@babel/runtime/regenerator":17}],66:[function(require,module,exports){ },{"../Core/AsyncReply.js":21,"../Core/IEventHandler.js":25,"../Data/AutoList.js":27,"../Data/KeyList.js":33,"../Net/IIP/DistributedConnection.js":39,"../Resource/Instance.js":58,"../Resource/Template/ResourceTemplate.js":64,"../Stores/MemoryStore.js":73,"./IResource.js":56,"./IStore.js":57,"@babel/runtime/helpers/asyncToGenerator":2,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11,"@babel/runtime/helpers/typeof":14,"@babel/runtime/regenerator":17}],66:[function(require,module,exports){
/* /*
* Copyright (c) 2017 Ahmed Kh. Zamil * Copyright (c) 2017 Ahmed Kh. Zamil
* *
@ -8797,9 +8769,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var Authentication = var Authentication = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function Authentication(type) { function Authentication(type) {
(0, _classCallCheck2["default"])(this, Authentication); (0, _classCallCheck2["default"])(this, Authentication);
this.type = type; this.type = type;
@ -8925,9 +8895,7 @@ var _DataConverter = require("../../Data/DataConverter.js");
* Created by Ahmed Zamil on 25/12/2017. * Created by Ahmed Zamil on 25/12/2017.
* Ref: https://en.wikipedia.org/wiki/SHA-2 * Ref: https://en.wikipedia.org/wiki/SHA-2
*/ */
var SHA256 = var SHA256 = /*#__PURE__*/function () {
/*#__PURE__*/
function () {
function SHA256() { function SHA256() {
(0, _classCallCheck2["default"])(this, SHA256); (0, _classCallCheck2["default"])(this, SHA256);
} }
@ -9070,22 +9038,16 @@ exports["default"] = SHA256;
*/ */
/** /**
* Created by Ahmed Zamil on 16/11/2017. * Created by Ahmed Zamil on 9/2/2017.
*/ */
"use strict"; "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
exports["default"] = exports.Ruling = exports.ActionType = void 0; exports["default"] = void 0;
var _default = // ActionType =
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); {
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var ActionType = {
Attach: 0, Attach: 0,
Delete: 1, Delete: 1,
Execute: 2, Execute: 2,
@ -9101,17 +9063,48 @@ var ActionType = {
Rename: 12, Rename: 12,
ReceiveEvent: 13 ReceiveEvent: 13
}; };
exports.ActionType = ActionType; exports["default"] = _default;
var Ruling = {
Denied: 0,
Allowed: 1,
DontCare: 2
};
exports.Ruling = Ruling;
var IPermissionsManager = },{}],71:[function(require,module,exports){
/*#__PURE__*/ /*
function () { * Copyright (c) 2017 Ahmed Kh. Zamil
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* Created by Ahmed Zamil on 16/11/2017.
*/
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var IPermissionsManager = /*#__PURE__*/function () {
function IPermissionsManager() { function IPermissionsManager() {
(0, _classCallCheck2["default"])(this, IPermissionsManager); (0, _classCallCheck2["default"])(this, IPermissionsManager);
} }
@ -9139,7 +9132,47 @@ function () {
exports["default"] = IPermissionsManager; exports["default"] = IPermissionsManager;
},{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],71:[function(require,module,exports){ },{"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/interopRequireDefault":9}],72:[function(require,module,exports){
/*
* Copyright (c) 2017 Ahmed Kh. Zamil
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* Created by Ahmed Zamil on 9/2/2020.
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = //Ruling =
{
Denied: 0,
Allowed: 1,
DontCare: 2
};
exports["default"] = _default;
},{}],73:[function(require,module,exports){
/* /*
* Copyright (c) 2017 Ahmed Kh. Zamil * Copyright (c) 2017 Ahmed Kh. Zamil
* *
@ -9186,9 +9219,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
var _IStore2 = _interopRequireDefault(require("../Resource/IStore.js")); var _IStore2 = _interopRequireDefault(require("../Resource/IStore.js"));
var MemoryStore = var MemoryStore = /*#__PURE__*/function (_IStore) {
/*#__PURE__*/
function (_IStore) {
(0, _inherits2["default"])(MemoryStore, _IStore); (0, _inherits2["default"])(MemoryStore, _IStore);
function MemoryStore() { function MemoryStore() {
@ -9237,7 +9268,8 @@ function (_IStore) {
exports["default"] = MemoryStore; exports["default"] = MemoryStore;
},{"../Resource/IStore.js":57,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],72:[function(require,module,exports){ },{"../Resource/IStore.js":57,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":11}],74:[function(require,module,exports){
(function (global){
"use strict"; "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@ -9253,13 +9285,26 @@ var _Structure = _interopRequireDefault(require("./Data/Structure.js"));
var _DistributedResource = _interopRequireDefault(require("./Net/IIP/DistributedResource.js")); var _DistributedResource = _interopRequireDefault(require("./Net/IIP/DistributedResource.js"));
var _MemoryStore = _interopRequireDefault(require("./Stores/MemoryStore.js"));
var _IResource = _interopRequireDefault(require("./Resource/IResource.js"));
if (window) { if (window) {
window.wh = _Warehouse["default"]; window.wh = _Warehouse["default"];
window.Structure = _Structure["default"]; window.Structure = _Structure["default"];
window.DistributedResource = _DistributedResource["default"]; window.DistributedResource = _DistributedResource["default"];
window.MemoryStore = _MemoryStore["default"];
window.IResource = _IResource["default"];
} else if (global) {
global.wh = _Warehouse["default"];
global.Structure = _Structure["default"];
global.DistributedResource = _DistributedResource["default"];
global.MemoryStore = _MemoryStore["default"];
global.IResource = _IResource["default"];
} }
var _default = _Warehouse["default"]; var _default = _Warehouse["default"];
exports["default"] = _default; exports["default"] = _default;
},{"./Data/Structure.js":36,"./Net/IIP/DistributedResource.js":41,"./Resource/Warehouse.js":65,"@babel/runtime/helpers/interopRequireDefault":9}]},{},[72]); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./Data/Structure.js":36,"./Net/IIP/DistributedResource.js":41,"./Resource/IResource.js":56,"./Resource/Warehouse.js":65,"./Stores/MemoryStore.js":73,"@babel/runtime/helpers/interopRequireDefault":9}]},{},[74]);

View File

@ -5,3 +5,4 @@ exports.printMsg = function() {
module.exports = { wh }; module.exports = { wh };
let WebSocket = require('ws') let WebSocket = require('ws')

1091
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "esyur", "name": "esyur",
"version": "1.4.0", "version": "1.4.6",
"description": "Distributed Object Framework", "description": "Distributed Object Framework",
"main": "esyur.js", "main": "esyur.js",
"scripts": { "scripts": {
@ -19,14 +19,15 @@
}, },
"homepage": "https://github.com/esyur/esyur-js#readme", "homepage": "https://github.com/esyur/esyur-js#readme",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.7.7", "@babel/polyfill": "^7.8.3",
"ws": "^6.2.0" "@babel/runtime": "^7.8.4",
"ws": "^6.2.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.7.7", "@babel/cli": "^7.8.4",
"@babel/core": "^7.7.7", "@babel/core": "^7.8.6",
"@babel/plugin-transform-runtime": "^7.7.6", "@babel/plugin-transform-runtime": "^7.8.3",
"@babel/preset-env": "^7.7.7", "@babel/preset-env": "^7.8.6",
"babel-cli": "^6.0.0", "babel-cli": "^6.0.0",
"babelify": "^10.0.0", "babelify": "^10.0.0",
"browserify": "^16.5.0" "browserify": "^16.5.0"

View File

@ -40,12 +40,20 @@ export default class AsyncQueue extends AsyncReply
this.processQueue = function () this.processQueue = function ()
{ {
for (var i = 0; i < self.list.length; i++) for (var i = 0; i < self.list.length; i++)
if (self.list[i].ready) if (self.list[i].ready) {
{
self.trigger(self.list[i].result); self.trigger(self.list[i].result);
self.list.splice(i, 1); self.ready = false;
//self.list.splice(i, 1);
self.list.shift();
i--; i--;
} }
else if (self.list[i].failed) {
self.ready = false;
self.list.shift();
i--;
console.log("AsyncQueue (Reply Failed)");
}
else else
break; break;
@ -57,11 +65,13 @@ export default class AsyncQueue extends AsyncReply
{ {
this.list.push(reply); this.list.push(reply);
this.ready = false; this.ready = false;
reply.then(this.processQueue); reply.then(this.processQueue).error(this.processQueue);
} }
remove(reply) remove(reply)
{ {
console.log("REMOVE QUEUE");
this.list.splice(this.list.indexOf(reply), 1); this.list.splice(this.list.indexOf(reply), 1);
this.processQueue(); this.processQueue();
} }

View File

@ -72,6 +72,7 @@ export default class IEventHandler
return this; return this;
} }
off(event, fn) off(event, fn)
{ {
event = event.toLocaleString(); event = event.toLocaleString();

View File

@ -295,45 +295,64 @@ export default class DC extends Uint8Array
return new Uint8Array(this.buffer, offset, length); return new Uint8Array(this.buffer, offset, length);
} }
copy(offset, length, elementSize, func, dstType)
{
let rt = new dstType(length / elementSize);
let d = 0, end = offset + length;
for (let i = offset; i < end; i += elementSize)
rt[d++] = func.call(this, i);
return rt;
}
getInt16Array(offset, length) getInt16Array(offset, length)
{ {
return new Int16Array(this.clip(offset, length).buffer); return this.copy(offset, length, 2, this.getInt16, Int16Array);
//return new Int16Array(this.clip(offset, length).buffer);
} }
getUint16Array(offset, length) getUint16Array(offset, length)
{ {
return new Uint16Array(this.clip(offset, length).buffer); return this.copy(offset, length, 2, this.getUint16, Uint16Array);
//return new Uint16Array(this.clip(offset, length).buffer);
} }
getInt32Array(offset, length) getInt32Array(offset, length)
{ {
return new Int32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getInt32, Int32Array);
//return new Int32Array(this.clip(offset, length).buffer);
} }
getUint32Array(offset, length) getUint32Array(offset, length)
{ {
return new Uint32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getUint32, Uint32Array);
//return new Uint32Array(this.clip(offset, length).buffer);
} }
getFloat32Array(offset, length) getFloat32Array(offset, length)
{ {
return new Float32Array(this.clip(offset, length).buffer); return this.copy(offset, length, 4, this.getFloat32, Float32Array);
//return new Float32Array(this.clip(offset, length).buffer);
} }
getFloat64Array(offset, length) getFloat64Array(offset, length)
{ {
return new Float64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getFloat64, Float64Array);
// return new Float64Array(this.clip(offset, length).buffer);
} }
getInt64Array(offset, length) getInt64Array(offset, length)
{ {
return new Int64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getInt64, BigInt64Array);
//return new Int64Array(this.clip(offset, length).buffer);
} }
getUint64Array(offset, length) getUint64Array(offset, length)
{ {
return new Uint64Array(this.clip(offset, length).buffer); return this.copy(offset, length, 8, this.getUint64, BigUint64Array);
//return new Uint64Array(this.clip(offset, length).buffer);
} }
getBoolean(offset) getBoolean(offset)

View File

@ -92,6 +92,11 @@ export default class KeyList
return false; return false;
} }
containsKey(key)
{
return this.contains(key);
}
set(key, value) set(key, value)
{ {
this.remove(key); this.remove(key);

File diff suppressed because it is too large Load Diff

View File

@ -37,15 +37,24 @@ export default class DistributedResource extends IResource
destroy() destroy()
{ {
this.destroyed = true; this.destroyed = true;
this._p.attached = false;
this._p.connection.sendDetachRequest(this._p.instanceId);
this._emit("destroy", this); this._emit("destroy", this);
} }
_suspend()
{
this._p.suspended = true;
this._p.attached = false;
}
constructor(connection, instanceId, age, link) constructor(connection, instanceId, age, link)
{ {
super(); super();
this._p = { this._p = {
isAttached: false, suspended: false,
attached: false,
connection: connection, connection: connection,
instanceId: instanceId, instanceId: instanceId,
age: age, age: age,
@ -66,13 +75,16 @@ export default class DistributedResource extends IResource
return props; return props;
} }
_attached(properties) _attach(properties)
{ {
if (this._isAttached) if (this._p.attached)
return false; return false;
else else
{ {
this._p.suspended = false;
for(var i = 0; i < properties.length; i++) for(var i = 0; i < properties.length; i++)
{ {
this.instance.setAge(i, properties[i].age); this.instance.setAge(i, properties[i].age);
@ -81,7 +93,7 @@ export default class DistributedResource extends IResource
} }
this._p.isAttached = true; this._p.attached = true;
var self = this; var self = this;
@ -154,6 +166,9 @@ export default class DistributedResource extends IResource
if (this.destroyed) if (this.destroyed)
throw new Error("Trying to access destroyed object"); throw new Error("Trying to access destroyed object");
if (this._p.suspended)
throw new Error("Trying to access suspended object");
if (index >= this.instance.template.functions.length) if (index >= this.instance.template.functions.length)
throw new Error("Function index is incorrect"); throw new Error("Function index is incorrect");
@ -164,6 +179,9 @@ export default class DistributedResource extends IResource
if (this.destroyed) if (this.destroyed)
throw new Error("Trying to access destroyed object"); throw new Error("Trying to access destroyed object");
if (this._p.suspended)
throw new Error("Trying to access suspended object");
if (index >= this.instance.template.functions.length) if (index >= this.instance.template.functions.length)
throw new Error("Function index is incorrect"); throw new Error("Function index is incorrect");

View File

@ -189,6 +189,9 @@ export default class IIPPacket
var cl = data.getUint32(offset); var cl = data.getUint32(offset);
offset += 4; offset += 4;
if (this.notEnough(offset, ends, cl))
return -this.dataLengthNeeded;
this.content = data.clip(offset, cl); this.content = data.clip(offset, cl);
offset += cl; offset += cl;
} }

View File

@ -137,7 +137,8 @@ export default class Instance extends IEventHandler
this.store.record(this.resource, pt.name, value, this.ages[pt.index], now); this.store.record(this.resource, pt.name, value, this.ages[pt.index], now);
super._emit("ResourceModified", this.resource, pt.name, value); super._emit("ResourceModified", this.resource, pt.name, value);
this.resource._emit("modified", pt.name, value); //this.resource._emit("modified", pt.name, value);
this.resource._emit(":" + pt.name, value);
} }
modified(propertyName = null) modified(propertyName = null)

View File

@ -0,0 +1,45 @@
/*
* Copyright (c) 2017 Ahmed Kh. Zamil
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* Created by Ahmed Zamil on 9/2/2017.
*/
"use strict";
export default // ActionType =
{
Attach: 0,
Delete: 1,
Execute: 2,
GetProperty: 3,
SetProperty: 4,
CreateResource: 5,
UpdateAttributes: 6,
InquireAttributes: 7,
AddParent: 8,
RemoveParent: 9,
AddChild: 10,
RemoveChild: 11,
Rename: 12,
ReceiveEvent: 13
};

View File

@ -26,30 +26,6 @@
"use strict"; "use strict";
export const ActionType =
{
Attach: 0,
Delete: 1,
Execute: 2,
GetProperty: 3,
SetProperty: 4,
CreateResource: 5,
UpdateAttributes: 6,
InquireAttributes: 7,
AddParent: 8,
RemoveParent: 9,
AddChild: 10,
RemoveChild: 11,
Rename: 12,
ReceiveEvent: 13
};
export const Ruling = {
Denied: 0,
Allowed: 1,
DontCare: 2,
};
export default class IPermissionsManager export default class IPermissionsManager
{ {
/// <summary> /// <summary>

View File

@ -0,0 +1,35 @@
/*
* Copyright (c) 2017 Ahmed Kh. Zamil
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* Created by Ahmed Zamil on 9/2/2020.
*/
"use strict";
export default //Ruling =
{
Denied: 0,
Allowed: 1,
DontCare: 2,
};

View File

@ -2,11 +2,24 @@
import wh from './Resource/Warehouse.js'; import wh from './Resource/Warehouse.js';
import Structure from './Data/Structure.js'; import Structure from './Data/Structure.js';
import DistributedResource from './Net/IIP/DistributedResource.js' import DistributedResource from './Net/IIP/DistributedResource.js'
import MemoryStore from './Stores/MemoryStore.js';
import IResource from './Resource/IResource.js';
if (window) { if (window) {
window.wh = wh; window.wh = wh;
window.Structure = Structure; window.Structure = Structure;
window.DistributedResource = DistributedResource; window.DistributedResource = DistributedResource;
window.MemoryStore = MemoryStore;
window.IResource = IResource;
}
else if (global)
{
global.wh = wh;
global.Structure = Structure;
global.DistributedResource = DistributedResource;
global.MemoryStore = MemoryStore;
global.IResource = IResource;
} }
export default wh; export default wh;