From 53d8b65ec15aeb5236deb7350834e067e16b87b4 Mon Sep 17 00:00:00 2001 From: Chris Russell Date: Mon, 20 Apr 2020 04:10:14 -0700 Subject: [PATCH] WIP: Test release of v0.0.41-addenbroke ... Includes refactoring of @encapsule/holarchy RTL ObservableControllerData so that methods OCD.readNamespace, OCD.writeNamespace, and OCD.getNamespaceSpec methods now all the caller to specify a fully-qualified dot-delimited path (what it's always been) OR on OCD path resolution descriptor object that will be used to resolve the fully-qualified path used by the method. This cuts in half the number of calls a developer needs to make to perform most OCD read/write/specification accesses against the OCD API because you no longer have to make a separate static method call to OCD to get the fully-qualified path to pass to the OCD read/write/getSpec methods. --- PACKAGES/d2r2-components/README.md | 6 +- PACKAGES/d2r2-components/package.json | 6 +- PACKAGES/d2r2/README.md | 6 +- PACKAGES/d2r2/package.json | 6 +- PACKAGES/holarchy-cm/README.md | 6 +- PACKAGES/holarchy-cm/package.json | 6 +- PACKAGES/holarchy/README.md | 6 +- .../holarchy/lib/ObservableControllerData.js | 299 +++--------------- .../filters/iospecs/ocd-method-path-spec.js | 20 ++ .../filters/ocd-method-constructor-filter.js | 102 ++++++ .../ocd-method-get-namespace-spec-filter.js | 95 ++++++ .../ocd-method-read-namespace-filter.js | 134 ++++++++ .../ocd-method-write-namespace-filter.js | 175 ++++++++++ .../filters/opc-method-constructor-filter.js | 23 +- PACKAGES/holarchy/package.json | 6 +- PACKAGES/holism-metadata/README.md | 6 +- PACKAGES/holism-metadata/package.json | 6 +- PACKAGES/holism-services/README.md | 6 +- PACKAGES/holism-services/package.json | 6 +- PACKAGES/holism/README.md | 6 +- .../holism/docs/data-gateway-router-filter.md | 2 +- PACKAGES/holism/docs/integrations-factory.md | 2 +- PACKAGES/holism/docs/server-factory.md | 2 +- PACKAGES/holism/docs/server-response.md | 2 +- PACKAGES/holism/docs/service-data-gateway.md | 2 +- .../holism/docs/service-error-response.md | 2 +- PACKAGES/holism/docs/service-factory.md | 2 +- .../holism/docs/service-result-response.md | 2 +- PACKAGES/holism/package.json | 6 +- PACKAGES/holistic-app-client-cm/README.md | 6 +- PACKAGES/holistic-app-client-cm/package.json | 6 +- PACKAGES/holistic-app-common-cm/README.md | 6 +- PACKAGES/holistic-app-common-cm/package.json | 6 +- PACKAGES/holistic-app-server-cm/README.md | 6 +- PACKAGES/holistic-app-server-cm/package.json | 6 +- PACKAGES/holistic.json | 8 +- PACKAGES/holodeck-assets/README.md | 6 +- PACKAGES/holodeck-assets/package.json | 6 +- PACKAGES/holodeck/README.md | 6 +- PACKAGES/holodeck/package.json | 6 +- PACKAGES/hrequest/README.md | 6 +- PACKAGES/hrequest/docs/client-factory.md | 2 +- .../hrequest/docs/client-request-transport.md | 2 +- PACKAGES/hrequest/docs/request-factory.md | 2 +- PACKAGES/hrequest/docs/server-factory.md | 2 +- .../hrequest/docs/server-request-transport.md | 2 +- PACKAGES/hrequest/package.json | 6 +- README.md | 6 +- package.json | 6 +- 49 files changed, 683 insertions(+), 367 deletions(-) create mode 100644 PACKAGES/holarchy/lib/filters/iospecs/ocd-method-path-spec.js create mode 100644 PACKAGES/holarchy/lib/filters/ocd-method-constructor-filter.js create mode 100644 PACKAGES/holarchy/lib/filters/ocd-method-get-namespace-spec-filter.js create mode 100644 PACKAGES/holarchy/lib/filters/ocd-method-read-namespace-filter.js create mode 100644 PACKAGES/holarchy/lib/filters/ocd-method-write-namespace-filter.js diff --git a/PACKAGES/d2r2-components/README.md b/PACKAGES/d2r2-components/README.md index 6fc703f6..c11d9ac6 100644 --- a/PACKAGES/d2r2-components/README.md +++ b/PACKAGES/d2r2-components/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains a collection of re-usable d2r2 React components for use with the d2r2 ComponentRouter dynamic view compositor. ``` -Package: @encapsule/d2r2-components v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/d2r2-components v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/d2r2-components/package.json b/PACKAGES/d2r2-components/package.json index 91541e09..1066f52a 100644 --- a/PACKAGES/d2r2-components/package.json +++ b/PACKAGES/d2r2-components/package.json @@ -6,9 +6,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/d2r2/README.md b/PACKAGES/d2r2/README.md index 8ec5b316..5f84bc0e 100644 --- a/PACKAGES/d2r2/README.md +++ b/PACKAGES/d2r2/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains the Data-Driven React Router (d2r2) component factory extension for React. And, the ComponentRouter dynamic view compositor packaged as a generic React component. Used to build extensible view templates, and decoupled view libraries. ``` -Package: @encapsule/d2r2 v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/d2r2 v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/d2r2/package.json b/PACKAGES/d2r2/package.json index eff45d61..58f9c041 100644 --- a/PACKAGES/d2r2/package.json +++ b/PACKAGES/d2r2/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holarchy-cm/README.md b/PACKAGES/holarchy-cm/README.md index 4a871805..a9207fb4 100644 --- a/PACKAGES/holarchy-cm/README.md +++ b/PACKAGES/holarchy-cm/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains the Holistic App Platform's core re-usable CellModel library. ``` -Package: @encapsule/holarchy-cm v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holarchy-cm v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holarchy-cm/package.json b/PACKAGES/holarchy-cm/package.json index cfb7fe20..1e8beca8 100644 --- a/PACKAGES/holarchy-cm/package.json +++ b/PACKAGES/holarchy-cm/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holarchy/README.md b/PACKAGES/holarchy/README.md index c7c92c3b..e99988eb 100644 --- a/PACKAGES/holarchy/README.md +++ b/PACKAGES/holarchy/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H Cellular process modeling and runtime engine for Node.js and browser. ``` -Package: @encapsule/holarchy v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holarchy v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holarchy/lib/ObservableControllerData.js b/PACKAGES/holarchy/lib/ObservableControllerData.js index 92c68a74..33c2af95 100644 --- a/PACKAGES/holarchy/lib/ObservableControllerData.js +++ b/PACKAGES/holarchy/lib/ObservableControllerData.js @@ -6,288 +6,81 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -var arccore = require("@encapsule/arccore"); +// ObserverableControllerData.js +var methodFilterConstructor = require("./filters/ocd-method-constructor-filter"); -var getNamespaceInReferenceFromPathFilter = require("./filters/get-namespace-in-reference-from-path"); +var methodFilterDataPathResolve = require("./filters/ocd-method-data-path-resolve-filter"); -var dataPathResolveFilter = require("./filters/ocd-method-data-path-resolve-filter"); +var methodFilterReadNamespace = require("./filters/ocd-method-read-namespace-filter"); -var ObservableControllerData = /*#__PURE__*/function () { - // request = { spec: filter descriptor object, data: variant } - function ObservableControllerData(request_) { - _classCallCheck(this, ObservableControllerData); - - var factoryResponse = arccore.filter.create({ - operationID: "3aDV_cacQByO0tTzVrBxnA", - operationName: "OCD Constructor Request Processor", - operationDescription: "Validate/normalize data per input spec to deduce initial runtime value of the state data managed by an OPC class instance.", - inputFilterSpec: request_.spec - }); - - if (factoryResponse.error) { - throw new Error(factoryResponse.error); - } +var methodFilterWriteNamespace = require("./filters/ocd-method-write-namespace-filter"); - var dataFilter = factoryResponse.result; - var filterResponse = dataFilter.request(request_.data); +var methodFilterGetNamespaceSpec = require("./filters/ocd-method-get-namespace-spec-filter"); - if (filterResponse.error) { - throw new Error(filterResponse.error); - } // Private implementation state. Consumers of this class should not access the _private namespace; use class methods to interact with class instances instead. - - - this._private = { - storeData: filterResponse.result, - storeDataSpec: dataFilter.filterDescriptor.inputFilterSpec, - accessFilters: { - read: {}, - write: {} - } - }; // API methods... Use these methods. +module.exports = /*#__PURE__*/function () { + function ObservableControllerData(request_) { + _classCallCheck(this, ObservableControllerData); + // request = { spec: filter descriptor object, data: variant } + this.isValid = this.isValid.bind(this); this.toJSON = this.toJSON.bind(this); this.readNamespace = this.readNamespace.bind(this); this.writeNamespace = this.writeNamespace.bind(this); this.getNamespaceSpec = this.getNamespaceSpec.bind(this); + var methodFilterResponse = methodFilterConstructor.request(request_); + this._private = !methodFilterResponse.error ? methodFilterResponse.result : { + constructorError: methodFilterResponse.error + }; } // end constructor _createClass(ObservableControllerData, [{ + key: "isValid", + value: function isValid() { + return this._private.constructorError ? false : true; + } + }, { key: "toJSON", value: function toJSON() { - // Only return the data; no other runtime state maintained by this class instance should ever be serialized. - return this._private.storeData; - } // Returns an arccore.filter-style response descriptor object. - + return this.isValid() ? this._private.storeData : this._private.constructorError; + } }, { key: "readNamespace", - value: function readNamespace(dataPath_) { - var _this = this; - - var methodResponse = { - error: null, - result: undefined + value: function readNamespace(path_) { + return this.isValid() ? methodFilterReadNamespace.request({ + ocdReference: this, + path: path_ + }) : { + error: this.toJSON() }; - var errors = []; - var inBreakScope = false; - - while (!inBreakScope) { - inBreakScope = true; // Determine if we have already instantiated a read filter for this namespace. - - if (!this._private.accessFilters.read[dataPath_]) { - // Cache miss. Create a new read filter for the requested namespace. - var operationId = arccore.identifier.irut.fromReference("read-filter" + dataPath_).result; - var filterResponse = getNamespaceInReferenceFromPathFilter.request({ - namespacePath: dataPath_, - sourceRef: this._private.storeDataSpec, - parseFilterSpec: true - }); - - if (filterResponse.error || !filterResponse.result) { - errors.push("Cannot read controller data store namespace path '".concat(dataPath_, "' because it is not possible to construct a read filter for this namespace.")); - errors.push(filterResponse.error); - break; - } // if error - - - var targetNamespaceSpec = filterResponse.result; - filterResponse = arccore.filter.create({ - operationID: operationId, - operationName: "Controller Data Read Filter ".concat(operationId), - operationDescription: "Validated/normalized read operations from OCD namespace '".concat(dataPath_, "'."), - bodyFunction: function bodyFunction() { - return getNamespaceInReferenceFromPathFilter.request({ - namespacePath: dataPath_, - sourceRef: _this._private.storeData - }); - }, - outputFilterSpec: targetNamespaceSpec - }); - - if (filterResponse.error) { - errors.push("Cannot read controller data store namespace path '".concat(dataPath_, "' because it is not possible to construct a read filter for this namespace.")); - errors.push(filterResponse.error); - break; - } // if error - // Cache the newly-created read filter. - - - this._private.accessFilters.read[dataPath_] = filterResponse.result; - } // if read filter doesn't exist - - - var readFilter = this._private.accessFilters.read[dataPath_]; - methodResponse = readFilter.request(); - break; - } // end while - - - if (errors.length) { - methodResponse.error = errors.join(" "); - } - - return methodResponse; - } // readNamespace - // Returns an arccore.filter-style response descriptor object. - + } }, { key: "writeNamespace", - value: function writeNamespace(dataPath_, value_) { - var _this2 = this; - - var methodResponse = { - error: null, - result: undefined + value: function writeNamespace(path_, data_) { + return this.isValid() ? methodFilterWriteNamespace.request({ + ocdReference: this, + path: path_, + data: data_ + }) : { + error: this.toJSON() }; - var errors = []; - var inBreakScope = false; - - while (!inBreakScope) { - inBreakScope = true; // Determine if we have already instantiated a read filter for this namespace. - - if (!this._private.accessFilters.write[dataPath_]) { - var _ret = function () { - // Cache miss. Create a new write filter for the requested namespace. - var operationId = arccore.identifier.irut.fromReference("write-filter" + dataPath_).result; - var pathTokens = dataPath_.split("."); - - if (pathTokens.length < 2) { - errors.push("Cannot write to controller data store namespace '".concat(dataPath_, "'; invalid attempt to overwrite the entire store.")); - return "break"; - } // if invalid write attempt - - - var parentPath = pathTokens.slice(0, pathTokens.length - 1).join("."); - var targetNamespace = pathTokens[pathTokens.length - 1]; - var filterResponse = getNamespaceInReferenceFromPathFilter.request({ - namespacePath: dataPath_, - sourceRef: _this2._private.storeDataSpec, - parseFilterSpec: true - }); - - if (filterResponse.error || !filterResponse.result) { - errors.push("Cannot write controller data store namespace path '".concat(dataPath_, "' because it is not possible to construct a write filter for this namespace.")); - errors.push(filterResponse.error); - return "break"; - } // if error - - - var targetNamespaceSpec = filterResponse.result; - filterResponse = arccore.filter.create({ - operationID: operationId, - operationName: "Controller Data Write Filter ".concat(operationId), - operationDescription: "Validated/normalized write to OCD namespace '".concat(dataPath_, "'."), - inputFilterSpec: targetNamespaceSpec, - bodyFunction: function bodyFunction(request_) { - var response = { - error: null, - result: undefined - }; - var errors = []; - var inBreakScope = false; - - while (!inBreakScope) { - inBreakScope = true; - var innerResponse = getNamespaceInReferenceFromPathFilter.request({ - namespacePath: parentPath, - sourceRef: _this2._private.storeData - }); - - if (innerResponse.error) { - errors.push("Unable to write to OCD namespace '".concat(dataPath_, "' due to an error reading parent namespace '").concat(parentPath, "'.")); - errors.push(innerResponse.error); - break; - } - - var parentNamespace = innerResponse.result; - parentNamespace[targetNamespace] = request_; // the actual write - - response.result = request_; // return the validated/normalized data written to the OCD - - break; - } - - if (errors.length) { - response.error = errors.join(" "); - } - - return response; - } - }); - - if (filterResponse.error) { - errors.push("Cannot write controller data store namespace path '".concat(dataPath_, "' because it is not possible to construct a write filter for this namespace.")); - errors.push(filterResponse.error); - return "break"; - } // if error - // Cache the newly-created write filter. - - - _this2._private.accessFilters.write[dataPath_] = filterResponse.result; - }(); - - if (_ret === "break") break; - } // if write filter doesn't exist - - - var writeFilter = this._private.accessFilters.write[dataPath_]; - methodResponse = writeFilter.request(value_); - break; - } // end while - - - if (errors.length) { - methodResponse.error = errors.join(" "); - } - - return methodResponse; - } // writeNamespace - + } }, { key: "getNamespaceSpec", - value: function getNamespaceSpec(dataPath_) { - var methodResponse = { - error: null, - result: undefined + value: function getNamespaceSpec(path_) { + return this.isValid() ? methodFilterGetNamespaceSpec.request({ + ocdReference: this, + path: path_ + }) : { + error: this.toJSON() }; - var errors = []; - var inBreakScope = false; - - while (!inBreakScope) { - inBreakScope = true; - var filterResponse = getNamespaceInReferenceFromPathFilter.request({ - namespacePath: dataPath_, - sourceRef: this._private.storeDataSpec, - parseFilterSpec: true - }); - - if (filterResponse.error) { - errors.push("Cannot resolve a namespace descriptor in filter specification for path '".concat(dataPath_, "'.")); - errors.push(filterResponse.error); - break; - } // if error - - - methodResponse.result = filterResponse.result; - break; - } - - if (errors.length) { - methodResponse.error = errors.join(" "); - } - - return methodResponse; - } // getNamespaceSpec - + } }], [{ key: "dataPathResolve", value: function dataPathResolve(request_) { - return dataPathResolveFilter.request(request_); + return methodFilterDataPathResolve.request(request_); } }]); return ObservableControllerData; -}(); // class ObservableControllerData - - -module.exports = ObservableControllerData; \ No newline at end of file +}(); // class ObservableControllerData \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/iospecs/ocd-method-path-spec.js b/PACKAGES/holarchy/lib/filters/iospecs/ocd-method-path-spec.js new file mode 100644 index 00000000..a64746d1 --- /dev/null +++ b/PACKAGES/holarchy/lib/filters/iospecs/ocd-method-path-spec.js @@ -0,0 +1,20 @@ +"use strict"; + +// ocd-method-path-spec.js +module.exports = { + ____label: "OCD Path", + ____description: "Either a fully-qualified OCD dot-delimited path string. Or, equivalent OCD relative path resolve request object.", + ____types: ["jsString", // fully-qualified, dot-delimited OCD path beginning in ~ + "jsObject" // OCD relative path resolve request object + ], + apmBindingPath: { + ____label: "APM Binding Path", + ____description: "The fully-qualified OCD path associated with an APM instance in the OCD.", + ____accept: "jsString" + }, + dataPath: { + ____label: "Resolve Path", + ____description: "A fully-qualified OCD path. Or, a relative path to be converted by this filter using apmBindingPath.", + ____accept: "jsString" + } +}; \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/ocd-method-constructor-filter.js b/PACKAGES/holarchy/lib/filters/ocd-method-constructor-filter.js new file mode 100644 index 00000000..79a683a2 --- /dev/null +++ b/PACKAGES/holarchy/lib/filters/ocd-method-constructor-filter.js @@ -0,0 +1,102 @@ +"use strict"; + +// ocd-method-contructor-filter.js +var arccore = require("@encapsule/arccore"); + +var factoryResponse = arccore.filter.create({ + operationID: "Z0_rX_NhQ5-c0BCWNTXmgw", + operationName: "OCD Method Constructor Filter", + operationDescription: "Implements the ObservableControllerData class constructor method.", + inputFilterSpec: { + ____label: "OCD Constructor Request", + ____types: "jsObject", + ____defaultValue: {}, + spec: { + ____label: "OCD Filter Specification", + ____accept: "jsObject" // this is a filter specification + + }, + data: { + ____label: "OCD Constructor Data", + ____opaque: true + } + }, + outputFilterSpec: { + ____label: "OCD Constructor Result", + ____types: "jsObject", + storeData: { + ____label: "Initial Store Data", + ____opaque: true + }, + storeDataSpec: { + ____label: "OCD Filter Spec", + ____accept: "jsObject" + }, + accessFilters: { + ____label: "Access Filter Cache", + ____types: "jsObject", + read: { + ____accept: "jsObject" + }, + write: { + ____accept: "jsObject" + } + } + }, + bodyFunction: function bodyFunction(request_) { + var response = { + error: null + }; + var errors = []; + var inBreakScope = false; + + while (!inBreakScope) { + inBreakScope = true; + var innerResponse = arccore.filter.create({ + operationID: "3aDV_cacQByO0tTzVrBxnA", + operationName: "OCD Constructor Data Filter", + operationDescription: "Validate/normalize data per input spec to deduce initial runtime value of the state data managed by an OPC class instance.", + inputFilterSpec: request_.spec + }); + + if (innerResponse.error) { + errors.push("Invalid arccore.filter specification specified for OCD store."); + errors.push(innerResponse.error); + break; + } + + var dataFilter = innerResponse.result; + innerResponse = dataFilter.request(request_.data); + + if (innerResponse.error) { + errors.push("Invalid initialization data specified for OCD store."); + errors.push(innerResponse.error); + break; + } + + response.result = { + storeData: innerResponse.result, + storeDataSpec: dataFilter.filterDescriptor.inputFilterSpec, + accessFilters: { + read: {}, + write: {} + } + }; + break; + } // while(!inBreakScope) + + + if (errors.length) { + response.error = errors.join(" "); + } + + return response; + } // bodyFunction + +}); + +if (factoryResponse.error) { + throw new Error(factoryResponse.error); +} + +module.exports = factoryResponse.result; \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/ocd-method-get-namespace-spec-filter.js b/PACKAGES/holarchy/lib/filters/ocd-method-get-namespace-spec-filter.js new file mode 100644 index 00000000..27733b0c --- /dev/null +++ b/PACKAGES/holarchy/lib/filters/ocd-method-get-namespace-spec-filter.js @@ -0,0 +1,95 @@ +"use strict"; + +// ocd-method-get-namespace-spec-filter.js +var arccore = require("@encapsule/arccore"); + +var ocdMethodPathSpec = require("./iospecs/ocd-method-path-spec"); + +var getNamespaceInReferenceFromPathFilter = require("./get-namespace-in-reference-from-path"); + +var factoryResponse = arccore.filter.create({ + operationID: "DD5Kc2KETyOPQ07hYu8n-w", + operationName: "OCD.getNamespaceSpec Method Filter", + operationDescription: "Implements ObservableControllerData::getNamespaceSpec method.", + inputFilterSpec: { + ____label: "OCD.getNamespaceSpec Request", + ____types: "jsObject", + ocdReference: { + ____label: "OCD Instance Reference", + ____description: "A reference to the calling OCD class instance.", + ____opaque: true + }, + path: ocdMethodPathSpec + }, + outputFilterSpec: { + ____label: "OCD.getNamespaceSpec Result", + ____opaque: true // Result depends on the namespace's filter specification + + }, + // outputFilterSpec + bodyFunction: function bodyFunction(request_) { + var response = { + error: null + }; + var errors = []; + var inBreakScope = false; + + while (!inBreakScope) { + inBreakScope = true; + var fqPath = null; + + switch (Object.prototype.toString.call(request_.path)) { + case "[object String]": + fqPath = request_.path; + break; + + case "[object Object]": + var rpResponse = request_.ocdReference.dataPathResolve({ + apmBindingPath: request_.path.apmBindingPath, + dataPath: request_.path.dataPath + }); + + if (rpResponse.error) { + errors.push(rpResponse.error); + } else { + fqPath = rpResponse.result; + } + + break; + } + + if (errors.length) { + break; + } + + var filterResponse = getNamespaceInReferenceFromPathFilter.request({ + namespacePath: fqPath, + sourceRef: request_.ocdReference._private.storeDataSpec, + parseFilterSpec: true + }); + + if (filterResponse.error) { + errors.push("Cannot resolve a namespace descriptor in filter specification for path '".concat(fqPath, "'.")); + errors.push(filterResponse.error); + break; + } // if error + + + response.result = filterResponse.result; + break; + } + + if (errors.length) { + reponse.error = errors.join(" "); + } + + return response; + } // bodyFunction + +}); + +if (factoryResponse.error) { + throw new Error(factoryResponse.error); +} + +module.exports = factoryResponse.result; \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/ocd-method-read-namespace-filter.js b/PACKAGES/holarchy/lib/filters/ocd-method-read-namespace-filter.js new file mode 100644 index 00000000..5cd94885 --- /dev/null +++ b/PACKAGES/holarchy/lib/filters/ocd-method-read-namespace-filter.js @@ -0,0 +1,134 @@ +"use strict"; + +// ocd-method-read-namespace-filter.js +var arccore = require("@encapsule/arccore"); + +var getNamespaceInReferenceFromPathFilter = require("./get-namespace-in-reference-from-path"); + +var ocdMethodPathSpec = require("./iospecs/ocd-method-path-spec"); + +var factoryResponse = arccore.filter.create({ + operationID: "wjTFsXoyQ_ehUHIdegBumQ", + operationName: "OCD.readNamespace Method Filter", + operationDescription: "Implements ObservableControllerData::readNamespace method.", + inputFilterSpec: { + ____label: "OCD Read Namespace Request", + ____types: "jsObject", + ocdReference: { + ____label: "OCD Instance Reference", + ____description: "A reference to the calling OCD class instance.", + ____opaque: true + }, + path: ocdMethodPathSpec + }, + // inputFilterSpec + outputFilterSpec: { + ____label: "OCD Read Namepace Result", + ____opaque: true // Result depends on the namespace's filter specification + + }, + // outputFilterSpec + bodyFunction: function bodyFunction(request_) { + var response = { + error: null, + result: undefined + }; + var errors = []; + var inBreakScope = false; + + var _loop = function _loop() { + var fqPath = null; + + switch (Object.prototype.toString.call(request_.path)) { + case "[object String]": + fqPath = request_.path; + break; + + case "[object Object]": + var rpResponse = request_.ocdReference.dataPathResolve({ + apmBindingPath: request_.path.apmBindingPath, + dataPath: request_.path.dataPath + }); + + if (rpResponse.error) { + errors.push(rpResponse.error); + } else { + fqPath = rpResponse.result; + } + + break; + } + + if (errors.length) { + return "break"; + } // Determine if we have already instantiated a read filter for this namespace. + + + if (!request_.ocdReference._private.accessFilters.read[fqPath]) { + // Cache miss. Create a new read filter for the requested namespace. + var operationId = arccore.identifier.irut.fromReference("read-filter" + fqPath).result; + var filterResponse = getNamespaceInReferenceFromPathFilter.request({ + namespacePath: fqPath, + sourceRef: request_.ocdReference._private.storeDataSpec, + parseFilterSpec: true + }); + + if (filterResponse.error || !filterResponse.result) { + errors.push("Cannot read controller data store namespace path '".concat(fqPath, "' because it is not possible to construct a read filter for this namespace.")); + errors.push(filterResponse.error); + return "break"; + } // if error + + + var targetNamespaceSpec = filterResponse.result; + filterResponse = arccore.filter.create({ + operationID: operationId, + operationName: "Controller Data Read Filter ".concat(operationId), + operationDescription: "Validated/normalized read operations from OCD namespace '".concat(fqPath, "'."), + bodyFunction: function bodyFunction() { + return getNamespaceInReferenceFromPathFilter.request({ + namespacePath: fqPath, + sourceRef: request_.ocdReference._private.storeData + }); + }, + outputFilterSpec: targetNamespaceSpec + }); + + if (filterResponse.error) { + errors.push("Cannot read controller data store namespace path '".concat(fqPath, "' because it is not possible to construct a read filter for this namespace.")); + errors.push(filterResponse.error); + return "break"; + } // if error + // Cache the newly-created read filter. + + + request_.ocdReference._private.accessFilters.read[fqPath] = filterResponse.result; + } // if read filter doesn't exist + + + var readFilter = request_.ocdReference._private.accessFilters.read[fqPath]; + response = readFilter.request(); + return "break"; + }; + + while (!inBreakScope) { + var _ret = _loop(); + + if (_ret === "break") break; + } // end while + + + if (errors.length) { + response.error = errors.join(" "); + } + + return response; + } // bodyFunction + +}); + +if (factoryResponse.error) { + throw new Error(factoryResponse.error); +} + +module.exports = factoryResponse.result; \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/ocd-method-write-namespace-filter.js b/PACKAGES/holarchy/lib/filters/ocd-method-write-namespace-filter.js new file mode 100644 index 00000000..4b289b4e --- /dev/null +++ b/PACKAGES/holarchy/lib/filters/ocd-method-write-namespace-filter.js @@ -0,0 +1,175 @@ +"use strict"; + +// ocd-method-write-namespace-filter.js +var arccore = require("@encapsule/arccore"); + +var ocdMethodPathSpec = require("./iospecs/ocd-method-path-spec"); + +var getNamespaceInReferenceFromPathFilter = require("./get-namespace-in-reference-from-path"); + +var factoryResponse = arccore.filter.create({ + operationID: "NqAyu1cLQQyX0w95zaQt6A", + operationName: "OCD::writeNamespace Method Filter", + operationDescription: "Implementes ObservableControllerData.writeNamespace method.", + inputFilterSpec: { + ____label: "OCD Write Namespace Request", + ____types: "jsObject", + ocdReference: { + ____label: "OCD Instance Reference", + ____description: "A reference to the calling OCD class instance.", + ____opaque: true + }, + path: ocdMethodPathSpec, + data: { + ____label: "Write Data", + ____opaque: true + } + }, + outputFilterSpec: { + ____label: "OCD Read Namepace Result", + ____opaque: true // Result depends on the namespace's filter specification + + }, + // outputFilterSpec + bodyFunction: function bodyFunction(request_) { + var response = { + error: null, + result: undefined + }; + var errors = []; + var inBreakScope = false; + + var _loop = function _loop() { + inBreakScope = true; + var fqPath = null; + + switch (Object.prototype.toString.call(request_.path)) { + case "[object String]": + fqPath = request_.path; + break; + + case "[object Object]": + var rpResponse = request_.ocdReference.dataPathResolve({ + apmBindingPath: request_.path.apmBindingPath, + dataPath: request_.path.dataPath + }); + + if (rpResponse.error) { + errors.push(rpResponse.error); + } else { + fqPath = rpResponse.result; + } + + break; + } + + if (errors.length) { + return "break"; + } // Determine if we have already instantiated a read filter for this namespace. + + + if (!request_.ocdReference._private.accessFilters.write[fqPath]) { + // Cache miss. Create a new write filter for the requested namespace. + var operationId = arccore.identifier.irut.fromReference("write-filter" + fqPath).result; + var pathTokens = fqPath.split("."); + + if (pathTokens.length < 2) { + errors.push("Cannot write to controller data store namespace '".concat(fqPath, "'; invalid attempt to overwrite the entire store.")); + return "break"; + } // if invalid write attempt + + + var parentPath = pathTokens.slice(0, pathTokens.length - 1).join("."); + var targetNamespace = pathTokens[pathTokens.length - 1]; + var filterResponse = getNamespaceInReferenceFromPathFilter.request({ + namespacePath: fqPath, + sourceRef: request_.ocdReference._private.storeDataSpec, + parseFilterSpec: true + }); + + if (filterResponse.error || !filterResponse.result) { + errors.push("Cannot write controller data store namespace path '".concat(fqPath, "' because it is not possible to construct a write filter for this namespace.")); + errors.push(filterResponse.error); + return "break"; + } // if error + + + var targetNamespaceSpec = filterResponse.result; + filterResponse = arccore.filter.create({ + operationID: operationId, + operationName: "Controller Data Write Filter ".concat(operationId), + operationDescription: "Validated/normalized write to OCD namespace '".concat(fqPath, "'."), + inputFilterSpec: targetNamespaceSpec, + bodyFunction: function bodyFunction(data_) { + var response = { + error: null, + result: undefined + }; + var errors = []; + var inBreakScope = false; + + while (!inBreakScope) { + inBreakScope = true; + var innerResponse = getNamespaceInReferenceFromPathFilter.request({ + namespacePath: parentPath, + sourceRef: request_.ocdReference._private.storeData + }); + + if (innerResponse.error) { + errors.push("Unable to write to OCD namespace '".concat(fqPath, "' due to an error reading parent namespace '").concat(parentPath, "'.")); + errors.push(innerResponse.error); + break; + } + + var parentNamespace = innerResponse.result; // the actual write & return the validated/normalized data written to the OCD store. + + parentNamespace[targetNamespace] = response.result = data_; + break; + } + + if (errors.length) { + response.error = errors.join(" "); + } + + return response; + } + }); + + if (filterResponse.error) { + errors.push("Cannot write controller data store namespace path '".concat(fqPath, "' because it is not possible to construct a write filter for this namespace.")); + errors.push(filterResponse.error); + return "break"; + } // if error + // Cache the newly-created write filter. + + + request_.ocdReference._private.accessFilters.write[fqPath] = filterResponse.result; + } // if write filter doesn't exist + + + var writeFilter = request_.ocdReference._private.accessFilters.write[fqPath]; + response = writeFilter.request(request_.data); + return "break"; + }; + + while (!inBreakScope) { + var _ret = _loop(); + + if (_ret === "break") break; + } // end while + + + if (errors.length) { + response.error = errors.join(" "); + } + + return response; + } // bodyFunction + +}); + +if (factoryResponse.error) { + throw new Error(factoryResponse.error); +} + +module.exports = factoryResponse.result; \ No newline at end of file diff --git a/PACKAGES/holarchy/lib/filters/opc-method-constructor-filter.js b/PACKAGES/holarchy/lib/filters/opc-method-constructor-filter.js index 0c24cae8..4646d4ae 100644 --- a/PACKAGES/holarchy/lib/filters/opc-method-constructor-filter.js +++ b/PACKAGES/holarchy/lib/filters/opc-method-constructor-filter.js @@ -336,28 +336,25 @@ var factoryResponse = arccore.filter.create({ return "break"; } // ================================================================ // Construct the contained Observable Controller Data that the OPC instance uses to manage the state associated with APM instances. - // TODO: OCD constructor function still throws. We're hiding that here. Convert it over to report construction errors on method access - // just like OPC. - try { - // TODO: ObservableControllerData to no throw implementation consistent w/everything else. - // Holding off until we 100% deprecate the use of ApplicationDataStore class in derived apps. - result.ocdi = new ObservableControllerData({ - spec: result.ocdRuntimeSpec, - data: request_.ocdInitData - }); - } catch (exception_) { + var ocdInstance = new ObservableControllerData({ + spec: result.ocdRuntimeSpec, + data: request_.ocdInitData + }); + + if (!ocdInstance.isValid()) { errors.push("Unable to initialize the OPC instance's shared OCD store due to constructor failure:"); - errors.push(exception_.message); + errors.push(ocdInstance.toJSON()); return "break"; - } // ================================================================ + } + + result.ocdi = ocdInstance; // ================================================================ // Build an arccore.discriminator filter instance to route transition // operatror request messages to a registered transition operator // filter for processing. This is an application of the Discriminated // Message Routing (DMR) pattern. - var transitionOperatorFilters = []; // Flatten the array of array of TransitionOperator classes and extract their arccore.filter references. request_.transitionOperatorSets.push(intrinsics.operators); diff --git a/PACKAGES/holarchy/package.json b/PACKAGES/holarchy/package.json index b0ae264a..2bb06447 100644 --- a/PACKAGES/holarchy/package.json +++ b/PACKAGES/holarchy/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holism-metadata/README.md b/PACKAGES/holism-metadata/README.md index 7a4c4081..d37111e8 100644 --- a/PACKAGES/holism-metadata/README.md +++ b/PACKAGES/holism-metadata/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains an extensible framework for defining application-specific metadata - i.e. data about your app. It is intended for use in derived apps/services and is typically used in conjunction with @encapsule/holism integration plug-in filters to satisfy queries re: publishing organization, application, page, route, hashroute, resource, operation... ``` -Package: @encapsule/holism-metadata v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holism-metadata v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holism-metadata/package.json b/PACKAGES/holism-metadata/package.json index 039ed8da..133e93ca 100644 --- a/PACKAGES/holism-metadata/package.json +++ b/PACKAGES/holism-metadata/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holism-services/README.md b/PACKAGES/holism-services/README.md index 7c817471..e1cf4862 100644 --- a/PACKAGES/holism-services/README.md +++ b/PACKAGES/holism-services/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains re-usable service filter plug-ins for use with the @encapsule/holism app server package. ``` -Package: @encapsule/holism-services v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holism-services v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holism-services/package.json b/PACKAGES/holism-services/package.json index e1e70834..9ee5229d 100644 --- a/PACKAGES/holism-services/package.json +++ b/PACKAGES/holism-services/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holism/README.md b/PACKAGES/holism/README.md index 574be2fb..acb84d7f 100644 --- a/PACKAGES/holism/README.md +++ b/PACKAGES/holism/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains an experimental HTTP 1.1 application server and REST framework derived from the Node.js HTTP API's and the @encapsule/arccore filter RTL. This provides developers with a simple mechanism to define and re-use backend operations as plug-in service filters hosted by the holism server RTL. The package is intended for use in derived applications and services. ``` -Package: @encapsule/holism v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holism v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holism/docs/data-gateway-router-filter.md b/PACKAGES/holism/docs/data-gateway-router-filter.md index 0342b5a7..4e2ac8af 100644 --- a/PACKAGES/holism/docs/data-gateway-router-filter.md +++ b/PACKAGES/holism/docs/data-gateway-router-filter.md @@ -90,5 +90,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:58 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/integrations-factory.md b/PACKAGES/holism/docs/integrations-factory.md index af652e36..3e93a07c 100644 --- a/PACKAGES/holism/docs/integrations-factory.md +++ b/PACKAGES/holism/docs/integrations-factory.md @@ -425,5 +425,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:57 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/server-factory.md b/PACKAGES/holism/docs/server-factory.md index 383972ef..6802d44b 100644 --- a/PACKAGES/holism/docs/server-factory.md +++ b/PACKAGES/holism/docs/server-factory.md @@ -511,5 +511,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:56 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/server-response.md b/PACKAGES/holism/docs/server-response.md index 64b51443..2058a341 100644 --- a/PACKAGES/holism/docs/server-response.md +++ b/PACKAGES/holism/docs/server-response.md @@ -212,5 +212,5 @@ Filter classification: **input processor** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:57 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/service-data-gateway.md b/PACKAGES/holism/docs/service-data-gateway.md index 65825a61..8da343aa 100644 --- a/PACKAGES/holism/docs/service-data-gateway.md +++ b/PACKAGES/holism/docs/service-data-gateway.md @@ -341,5 +341,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:58 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/service-error-response.md b/PACKAGES/holism/docs/service-error-response.md index 25f283aa..f04e1f31 100644 --- a/PACKAGES/holism/docs/service-error-response.md +++ b/PACKAGES/holism/docs/service-error-response.md @@ -422,5 +422,5 @@ Filter classification: **input processor** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:57 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/service-factory.md b/PACKAGES/holism/docs/service-factory.md index bbda1017..c0e6fa5d 100644 --- a/PACKAGES/holism/docs/service-factory.md +++ b/PACKAGES/holism/docs/service-factory.md @@ -225,5 +225,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:57 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/docs/service-result-response.md b/PACKAGES/holism/docs/service-result-response.md index 05a1cac2..e9a80f49 100644 --- a/PACKAGES/holism/docs/service-result-response.md +++ b/PACKAGES/holism/docs/service-result-response.md @@ -391,5 +391,5 @@ Filter classification: **input processor** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:54:57 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:01 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/holism/package.json b/PACKAGES/holism/package.json index 6bd18b37..a4bb38bb 100644 --- a/PACKAGES/holism/package.json +++ b/PACKAGES/holism/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holistic-app-client-cm/README.md b/PACKAGES/holistic-app-client-cm/README.md index 01452140..de21c383 100644 --- a/PACKAGES/holistic-app-client-cm/README.md +++ b/PACKAGES/holistic-app-client-cm/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H Exports the HolisticAppClient CellModel library for use in derived HTML5 applications. ``` -Package: @encapsule/holistic-app-client-cm v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holistic-app-client-cm v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holistic-app-client-cm/package.json b/PACKAGES/holistic-app-client-cm/package.json index 553db67c..257546b3 100644 --- a/PACKAGES/holistic-app-client-cm/package.json +++ b/PACKAGES/holistic-app-client-cm/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holistic-app-common-cm/README.md b/PACKAGES/holistic-app-common-cm/README.md index e69c5691..e7c53ae1 100644 --- a/PACKAGES/holistic-app-common-cm/README.md +++ b/PACKAGES/holistic-app-common-cm/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H Exports the HolisticAppCommon CellModel library for use in derived HolisticAppServer and HolisticAppClient CellModels. ``` -Package: @encapsule/holistic-app-common-cm v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holistic-app-common-cm v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holistic-app-common-cm/package.json b/PACKAGES/holistic-app-common-cm/package.json index 9a2f0875..29f8a3d9 100644 --- a/PACKAGES/holistic-app-common-cm/package.json +++ b/PACKAGES/holistic-app-common-cm/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holistic-app-server-cm/README.md b/PACKAGES/holistic-app-server-cm/README.md index b9269b8b..be61a042 100644 --- a/PACKAGES/holistic-app-server-cm/README.md +++ b/PACKAGES/holistic-app-server-cm/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H Exports the HolisticAppServer CellModel for use in derived @encapsule/holistic applications/services. ``` -Package: @encapsule/holistic-app-server-cm v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holistic-app-server-cm v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holistic-app-server-cm/package.json b/PACKAGES/holistic-app-server-cm/package.json index 7c93cac6..bab7769e 100644 --- a/PACKAGES/holistic-app-server-cm/package.json +++ b/PACKAGES/holistic-app-server-cm/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holistic.json b/PACKAGES/holistic.json index 5153b73b..408804c4 100644 --- a/PACKAGES/holistic.json +++ b/PACKAGES/holistic.json @@ -16,8 +16,8 @@ } ], "license": "MIT", - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, - "buildDateISO": "2020-04-18T16:54:56.000Z" + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, + "buildDateISO": "2020-04-20T11:05:00.000Z" } diff --git a/PACKAGES/holodeck-assets/README.md b/PACKAGES/holodeck-assets/README.md index 09587543..91e05b0b 100644 --- a/PACKAGES/holodeck-assets/README.md +++ b/PACKAGES/holodeck-assets/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains re-usable test runners, harnesses, and vectors for use in conjunction with @encapsule/holodeck test infrastructure package. ``` -Package: @encapsule/holodeck-assets v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holodeck-assets v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holodeck-assets/package.json b/PACKAGES/holodeck-assets/package.json index abc0390e..c49a1867 100644 --- a/PACKAGES/holodeck-assets/package.json +++ b/PACKAGES/holodeck-assets/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/holodeck/README.md b/PACKAGES/holodeck/README.md index 6c40c348..065515fb 100644 --- a/PACKAGES/holodeck/README.md +++ b/PACKAGES/holodeck/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains the holodeck test runner and test harness plug-in filter factory infrastructure. Holodeck functions like a medical imaging system for your code that bombards it with queries and captures the results to disk. Comparison of git diff's is often all that's required to verify the correct and expected behavior of updated app/service code tracked in this way. ``` -Package: @encapsule/holodeck v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/holodeck v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/holodeck/package.json b/PACKAGES/holodeck/package.json index e6a1e690..b794783f 100644 --- a/PACKAGES/holodeck/package.json +++ b/PACKAGES/holodeck/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/PACKAGES/hrequest/README.md b/PACKAGES/hrequest/README.md index c76a53d3..8d619da3 100644 --- a/PACKAGES/hrequest/README.md +++ b/PACKAGES/hrequest/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H This package contains arccore.filter wrappers for XMLHttpRequest (browser) and the request module (Node.js server). Provides a mechanism to ensure the runtime fidelity of HTTP GET/POST communication between the client and server. And, between the server and other backend REST service integrations. ``` -Package: @encapsule/hrequest v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: library (Node.js) License: MIT +Package: @encapsule/hrequest v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: library (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/PACKAGES/hrequest/docs/client-factory.md b/PACKAGES/hrequest/docs/client-factory.md index 4428942e..7c479979 100644 --- a/PACKAGES/hrequest/docs/client-factory.md +++ b/PACKAGES/hrequest/docs/client-factory.md @@ -144,5 +144,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:55:01 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:04 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/hrequest/docs/client-request-transport.md b/PACKAGES/hrequest/docs/client-request-transport.md index b7469fc0..d20b0d31 100644 --- a/PACKAGES/hrequest/docs/client-request-transport.md +++ b/PACKAGES/hrequest/docs/client-request-transport.md @@ -108,5 +108,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:55:01 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:04 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/hrequest/docs/request-factory.md b/PACKAGES/hrequest/docs/request-factory.md index d3a184fa..63ce18e8 100644 --- a/PACKAGES/hrequest/docs/request-factory.md +++ b/PACKAGES/hrequest/docs/request-factory.md @@ -149,5 +149,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:55:01 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:04 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/hrequest/docs/server-factory.md b/PACKAGES/hrequest/docs/server-factory.md index 990a3107..5584721a 100644 --- a/PACKAGES/hrequest/docs/server-factory.md +++ b/PACKAGES/hrequest/docs/server-factory.md @@ -144,5 +144,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:55:00 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:03 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/hrequest/docs/server-request-transport.md b/PACKAGES/hrequest/docs/server-request-transport.md index e50d9d09..2c86b5d8 100644 --- a/PACKAGES/hrequest/docs/server-request-transport.md +++ b/PACKAGES/hrequest/docs/server-request-transport.md @@ -108,5 +108,5 @@ Filter classification: **normalized operation** ## About Filters are created with the [Encapsule/arccore](https://github.com/Encapsule/arccore/) library.
This document was generated with [Encapsule/arctools](https://github.com/Encapsule/arctools/) v0.1.9 toolset.
-Document updated Sat Apr 18 2020 09:55:01 GMT-0700 (Pacific Daylight Time) +Document updated Mon Apr 20 2020 04:05:04 GMT-0700 (Pacific Daylight Time) diff --git a/PACKAGES/hrequest/package.json b/PACKAGES/hrequest/package.json index d607d744..2e4a78c7 100644 --- a/PACKAGES/hrequest/package.json +++ b/PACKAGES/hrequest/package.json @@ -3,9 +3,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ { diff --git a/README.md b/README.md index 1bc1c3c6..fd130d98 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ Encapsule Project is MIT-licensed libs & tools for building full-stack Node.js/H Full-stack component engineering platform for building complex stateful webs apps and services with software models. ``` -Package: @encapsule/holistic v0.0.41 "addenbroke" build ID "bPQWjwHRSRyW5kIBVDsC-Q" -Sources: Encapsule/holistic-master#99fabf7c9ddfd4eff00da56a0c18d58e362dba24 -Created: 2020-04-18T16:54:56.000Z Purpose: tools (Node.js) License: MIT +Package: @encapsule/holistic v0.0.41 "addenbroke" build ID "iTF-_ZbDSP2wkawlSezNcQ" +Sources: Encapsule/holistic-master#31589969ae5a2b8991b03eca4b81c0ce1aa3a22f +Created: 2020-04-20T11:05:00.000Z Purpose: tools (Node.js) License: MIT ``` ## ![](ASSETS/encapsule-holistic-24x24.png) Overview diff --git a/package.json b/package.json index 6d0f6d0e..248d5b49 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,9 @@ "bugs": { "url": "https://github.com/Encapsule/holistic/issues" }, - "buildID": "bPQWjwHRSRyW5kIBVDsC-Q", - "buildSource": "99fabf7c9ddfd4eff00da56a0c18d58e362dba24", - "buildTime": 1587228896, + "buildID": "iTF-_ZbDSP2wkawlSezNcQ", + "buildSource": "31589969ae5a2b8991b03eca4b81c0ce1aa3a22f", + "buildTime": 1587380700, "codename": "addenbroke", "contributors": [ {