@rootintf/protocol-subverseinfo 0.0.4-api-0.1 → 1.0.7-api.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/antora-docs/modules/ROOT/pages/development.adoc +11 -0
- package/dist/subverseinfo.cjs.js +235 -179
- package/dist/subverseinfo.es.mjs +234 -179
- package/package.json +40 -40
- package/schema/definitions_SubverseInfo.json +22 -11
- package/schema/schema_SubverseInfo_expanse.json +7 -6
- package/schema/{schema_SubverseInfo_discovery.json → schema_SubverseInfo_query.json} +5 -4
- package/schema/schema_expanse_instances.json +3 -7
- package/src/ajv-gen-validate.cjs +6 -6
- package/src/subverseinfo.mjs +21 -12
- package/src/validate-esm.mjs +1 -1
- package/tests/subverseinfo.spec.mjs +162 -92
package/dist/subverseinfo.cjs.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const schema_SubverseInfo_discovery = validate19;function validate19(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate19.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.discovery === undefined) && (missing0 = "discovery")) || ((data.subverse_info === undefined) && (missing0 = "subverse_info"))){validate19.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.discovery !== undefined){let data0 = data.discovery;const _errs1 = errors;{if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((((data0.name === undefined) && (missing1 = "name")) || ((data0.graphql === undefined) && (missing1 = "graphql"))) || ((data0.ttl_msec === undefined) && (missing1 = "ttl_msec"))){validate19.errors = [{instancePath:instancePath+"/discovery",schemaPath:"#/properties/discovery/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data0.name !== undefined){const _errs3 = errors;if(typeof data0.name !== "string"){validate19.errors = [{instancePath:instancePath+"/discovery/name",schemaPath:"#/properties/discovery/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.graphql !== undefined){const _errs5 = errors;if(typeof data0.graphql !== "string"){validate19.errors = [{instancePath:instancePath+"/discovery/graphql",schemaPath:"#/properties/discovery/properties/graphql/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.ttl_msec !== undefined){let data3 = data0.ttl_msec;const _errs7 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate19.errors = [{instancePath:instancePath+"/discovery/ttl_msec",schemaPath:"#/properties/discovery/properties/ttl_msec/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid1 = _errs7 === errors;}else {var valid1 = true;}}}}}else {validate19.errors = [{instancePath:instancePath+"/discovery",schemaPath:"#/properties/discovery/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.subverse_info !== undefined){const _errs9 = errors;if("0.1" !== data.subverse_info){validate19.errors = [{instancePath:instancePath+"/subverse_info",schemaPath:"definitions_SubverseInfo#/definitions/_v/const",keyword:"const",params:{allowedValue: "0.1"},message:"must be equal to constant"}];return false;}var valid0 = _errs9 === errors;}else {var valid0 = true;}}}}else {validate19.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate19.errors = vErrors;return errors === 0;}validate19.evaluated = {"props":{"discovery":true,"subverse_info":true},"dynamicProps":false,"dynamicItems":false};const schema_SubverseInfo_expanse = validate20;function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.name === undefined) && (missing0 = "name")) || ((data.uri === undefined) && (missing0 = "uri"))){validate21.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.name !== undefined){const _errs1 = errors;if(typeof data.name !== "string"){validate21.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.uri !== undefined){const _errs3 = errors;if(typeof data.uri !== "string"){validate21.errors = [{instancePath:instancePath+"/uri",schemaPath:"#/properties/uri/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.favicon !== undefined){const _errs5 = errors;if(typeof data.favicon !== "string"){validate21.errors = [{instancePath:instancePath+"/favicon",schemaPath:"#/properties/favicon/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.info !== undefined){let data3 = data.info;const _errs7 = errors;if(!(data3 && typeof data3 == "object" && !Array.isArray(data3))){validate21.errors = [{instancePath:instancePath+"/info",schemaPath:"definitions_SubverseInfo#/definitions/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}}else {validate21.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":{"name":true,"uri":true,"favicon":true,"info":true},"dynamicProps":false,"dynamicItems":false};function validate24(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.name === undefined) && (missing0 = "name")) || ((data.uri === undefined) && (missing0 = "uri"))){validate24.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.name !== undefined){const _errs1 = errors;if(typeof data.name !== "string"){validate24.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.uri !== undefined){const _errs3 = errors;if(typeof data.uri !== "string"){validate24.errors = [{instancePath:instancePath+"/uri",schemaPath:"#/properties/uri/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.favicon !== undefined){const _errs5 = errors;if(typeof data.favicon !== "string"){validate24.errors = [{instancePath:instancePath+"/favicon",schemaPath:"#/properties/favicon/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.info !== undefined){let data3 = data.info;const _errs7 = errors;if(!(data3 && typeof data3 == "object" && !Array.isArray(data3))){validate24.errors = [{instancePath:instancePath+"/info",schemaPath:"definitions_SubverseInfo#/definitions/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}}else {validate24.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {"props":{"name":true,"uri":true,"favicon":true,"info":true},"dynamicProps":false,"dynamicItems":false};function validate23(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate23.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs1 = errors;if(!(validate24(data0, {instancePath:instancePath+"/" + i0,parentData:data,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}if(errors === _errs1){if(!(data0 && typeof data0 == "object" && !Array.isArray(data0))){validate23.errors = [{instancePath:instancePath+"/" + i0,schemaPath:"#/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate23.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {"items":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.expanse === undefined) && (missing0 = "expanse")) || ((data.subverse_info === undefined) && (missing0 = "subverse_info"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.expanse !== undefined){let data0 = data.expanse;const _errs1 = errors;if(errors === _errs1){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if(((data0.subverse === undefined) && (missing1 = "subverse")) || ((data0.protocols === undefined) && (missing1 = "protocols"))){validate20.errors = [{instancePath:instancePath+"/expanse",schemaPath:"#/properties/expanse/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data0.subverse !== undefined){let data1 = data0.subverse;const _errs3 = errors;if(!(validate21(data1, {instancePath:instancePath+"/expanse/subverse",parentData:data0,parentDataProperty:"subverse",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}if(errors === _errs3){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){let missing2;if((data1.map_url === undefined) && (missing2 = "map_url")){validate20.errors = [{instancePath:instancePath+"/expanse/subverse",schemaPath:"#/properties/expanse/properties/subverse/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {if(data1.map_url !== undefined){if(typeof data1.map_url !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/subverse/map_url",schemaPath:"#/properties/expanse/properties/subverse/properties/map_url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/subverse",schemaPath:"#/properties/expanse/properties/subverse/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.instances !== undefined){const _errs8 = errors;if(!(validate23(data0.instances, {instancePath:instancePath+"/expanse/instances",parentData:data0,parentDataProperty:"instances",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var valid1 = _errs8 === errors;}else {var valid1 = true;}if(valid1){if(data0.platforms !== undefined){let data4 = data0.platforms;const _errs9 = errors;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data4)){var valid5 = true;const len0 = data4.length;for(let i0=0; i0<len0; i0++){let data5 = data4[i0];const _errs12 = errors;if(errors === _errs12){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){let missing3;if((data5.name === undefined) && (missing3 = "name")){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {if(data5.name !== undefined){const _errs14 = errors;if(typeof data5.name !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/name",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs14 === errors;}else {var valid6 = true;}if(valid6){if(data5.archs !== undefined){let data7 = data5.archs;const _errs16 = errors;if(errors === _errs16){if(Array.isArray(data7)){var valid7 = true;const len1 = data7.length;for(let i1=0; i1<len1; i1++){const _errs18 = errors;if(typeof data7[i1] !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/archs/" + i1,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/archs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid7 = _errs18 === errors;if(!valid7){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/archs",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/archs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs16 === errors;}else {var valid6 = true;}if(valid6){if(data5.agents !== undefined){let data9 = data5.agents;const _errs20 = errors;if(errors === _errs20){if(Array.isArray(data9)){var valid8 = true;const len2 = data9.length;for(let i2=0; i2<len2; i2++){const _errs22 = errors;if(typeof data9[i2] !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/agents/" + i2,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/agents/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid8 = _errs22 === errors;if(!valid8){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/agents",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/agents/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs20 === errors;}else {var valid6 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs12 === errors;if(!valid5){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms",schemaPath:"definitions_SubverseInfo#/definitions/platforms/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs9 === errors;}else {var valid1 = true;}if(valid1){if(data0.protocols !== undefined){let data11 = data0.protocols;const _errs24 = errors;const _errs25 = errors;if(errors === _errs25){if(Array.isArray(data11)){var valid10 = true;const len3 = data11.length;for(let i3=0; i3<len3; i3++){let data12 = data11[i3];const _errs27 = errors;if(errors === _errs27){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){let missing4;if(((data12.name === undefined) && (missing4 = "name")) || ((data12.attr === undefined) && (missing4 = "attr"))){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3,schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {if(data12.name !== undefined){const _errs29 = errors;if(typeof data12.name !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/name",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs29 === errors;}else {var valid11 = true;}if(valid11){if(data12.attr !== undefined){const _errs31 = errors;if(typeof data12.attr !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/attr",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/attr/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs31 === errors;}else {var valid11 = true;}if(valid11){if(data12.url !== undefined){const _errs33 = errors;if(typeof data12.url !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/url",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs33 === errors;}else {var valid11 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3,schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs27 === errors;if(!valid10){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/protocols",schemaPath:"definitions_SubverseInfo#/definitions/protocols/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs24 === errors;}else {var valid1 = true;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse",schemaPath:"#/properties/expanse/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.subverse_info !== undefined){const _errs35 = errors;if("0.1" !== data.subverse_info){validate20.errors = [{instancePath:instancePath+"/subverse_info",schemaPath:"definitions_SubverseInfo#/definitions/_v/const",keyword:"const",params:{allowedValue: "0.1"},message:"must be equal to constant"}];return false;}var valid0 = _errs35 === errors;}else {var valid0 = true;}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"expanse":true,"subverse_info":true},"dynamicProps":false,"dynamicItems":false};
|
|
3
|
+
const schema_SubverseInfo_query = validate19;function validate19(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate19.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.query === undefined) && (missing0 = "query")) || ((data.subverse_info === undefined) && (missing0 = "subverse_info"))){validate19.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.query !== undefined){let data0 = data.query;const _errs1 = errors;{if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((((data0.name === undefined) && (missing1 = "name")) || ((data0.graphql === undefined) && (missing1 = "graphql"))) || ((data0.ttl_msec === undefined) && (missing1 = "ttl_msec"))){validate19.errors = [{instancePath:instancePath+"/query",schemaPath:"#/properties/query/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data0.name !== undefined){const _errs3 = errors;if(typeof data0.name !== "string"){validate19.errors = [{instancePath:instancePath+"/query/name",schemaPath:"#/properties/query/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.graphql !== undefined){const _errs5 = errors;if(typeof data0.graphql !== "string"){validate19.errors = [{instancePath:instancePath+"/query/graphql",schemaPath:"#/properties/query/properties/graphql/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.ttl_msec !== undefined){let data3 = data0.ttl_msec;const _errs7 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate19.errors = [{instancePath:instancePath+"/query/ttl_msec",schemaPath:"#/properties/query/properties/ttl_msec/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid1 = _errs7 === errors;}else {var valid1 = true;}if(valid1){if(data0.unevaluatedProperties !== undefined){var valid1 = false;validate19.errors = [{instancePath:instancePath+"/query/unevaluatedProperties",schemaPath:"#/properties/query/properties/unevaluatedProperties/false schema",keyword:"false schema",params:{},message:"boolean schema is false"}];return false;}else {var valid1 = true;}}}}}}else {validate19.errors = [{instancePath:instancePath+"/query",schemaPath:"#/properties/query/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.subverse_info !== undefined){const _errs9 = errors;if("1.0" !== data.subverse_info){validate19.errors = [{instancePath:instancePath+"/subverse_info",schemaPath:"definitions_SubverseInfo#/definitions/_v/const",keyword:"const",params:{allowedValue: "1.0"},message:"must be equal to constant"}];return false;}var valid0 = _errs9 === errors;}else {var valid0 = true;}}}}else {validate19.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate19.errors = vErrors;return errors === 0;}validate19.evaluated = {"props":{"query":true,"subverse_info":true},"dynamicProps":false,"dynamicItems":false};const schema_SubverseInfo_expanse = validate20;function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.uri === undefined) && (missing0 = "uri")) || ((data.name === undefined) && (missing0 = "name"))){validate21.errors = [{instancePath,schemaPath:"definitions_SubverseInfo#/definitions/unique-id/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.uri !== undefined){const _errs4 = errors;if(typeof data.uri !== "string"){validate21.errors = [{instancePath:instancePath+"/uri",schemaPath:"definitions_SubverseInfo#/definitions/unique-id/properties/uri/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs4 === errors;}else {var valid2 = true;}if(valid2){if(data.name !== undefined){const _errs6 = errors;if(typeof data.name !== "string"){validate21.errors = [{instancePath:instancePath+"/name",schemaPath:"definitions_SubverseInfo#/definitions/unique-id/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs6 === errors;}else {var valid2 = true;}}}}else {validate21.errors = [{instancePath,schemaPath:"definitions_SubverseInfo#/definitions/unique-id/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}{if(data && typeof data == "object" && !Array.isArray(data)){if(data.favicon !== undefined){const _errs8 = errors;if(typeof data.favicon !== "string"){validate21.errors = [{instancePath:instancePath+"/favicon",schemaPath:"#/properties/favicon/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid3 = _errs8 === errors;}else {var valid3 = true;}if(valid3){if(data.info !== undefined){let data3 = data.info;const _errs10 = errors;if(!(data3 && typeof data3 == "object" && !Array.isArray(data3))){validate21.errors = [{instancePath:instancePath+"/info",schemaPath:"definitions_SubverseInfo#/definitions/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid3 = _errs10 === errors;}else {var valid3 = true;}}}else {validate21.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":{"favicon":true,"hyperport":true,"info":true,"uri":true,"name":true},"dynamicProps":false,"dynamicItems":false};function validate24(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate24.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.uri === undefined) && (missing0 = "uri")) || ((data.name === undefined) && (missing0 = "name"))){validate24.errors = [{instancePath,schemaPath:"definitions_SubverseInfo#/definitions/unique-id/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.uri !== undefined){const _errs4 = errors;if(typeof data.uri !== "string"){validate24.errors = [{instancePath:instancePath+"/uri",schemaPath:"definitions_SubverseInfo#/definitions/unique-id/properties/uri/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs4 === errors;}else {var valid2 = true;}if(valid2){if(data.name !== undefined){const _errs6 = errors;if(typeof data.name !== "string"){validate24.errors = [{instancePath:instancePath+"/name",schemaPath:"definitions_SubverseInfo#/definitions/unique-id/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs6 === errors;}else {var valid2 = true;}}}}else {validate24.errors = [{instancePath,schemaPath:"definitions_SubverseInfo#/definitions/unique-id/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}{if(data && typeof data == "object" && !Array.isArray(data)){if(data.favicon !== undefined){const _errs8 = errors;if(typeof data.favicon !== "string"){validate24.errors = [{instancePath:instancePath+"/favicon",schemaPath:"#/properties/favicon/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid3 = _errs8 === errors;}else {var valid3 = true;}if(valid3){if(data.info !== undefined){let data3 = data.info;const _errs10 = errors;if(!(data3 && typeof data3 == "object" && !Array.isArray(data3))){validate24.errors = [{instancePath:instancePath+"/info",schemaPath:"definitions_SubverseInfo#/definitions/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid3 = _errs10 === errors;}else {var valid3 = true;}}}else {validate24.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate24.errors = vErrors;return errors === 0;}validate24.evaluated = {"props":{"favicon":true,"hyperport":true,"info":true,"uri":true,"name":true},"dynamicProps":false,"dynamicItems":false};function validate23(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate23.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0<len0; i0++){let data0 = data[i0];const _errs1 = errors;if(!(validate24(data0, {instancePath:instancePath+"/" + i0,parentData:data,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate24.errors : vErrors.concat(validate24.errors);errors = vErrors.length;}if(errors === _errs1){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key0 in data0){if(((((key0 !== "favicon") && (key0 !== "hyperport")) && (key0 !== "info")) && (key0 !== "uri")) && (key0 !== "name")){validate23.errors = [{instancePath:instancePath+"/" + i0,schemaPath:"#/items/unevaluatedProperties",keyword:"unevaluatedProperties",params:{unevaluatedProperty: key0},message:"must NOT have unevaluated properties"}];return false;}}}else {validate23.errors = [{instancePath:instancePath+"/" + i0,schemaPath:"#/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate23.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}validate23.errors = vErrors;return errors === 0;}validate23.evaluated = {"items":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.expanse === undefined) && (missing0 = "expanse")) || ((data.subverse_info === undefined) && (missing0 = "subverse_info"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.expanse !== undefined){let data0 = data.expanse;const _errs1 = errors;if(errors === _errs1){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if(((data0.subverse === undefined) && (missing1 = "subverse")) || ((data0.protocols === undefined) && (missing1 = "protocols"))){validate20.errors = [{instancePath:instancePath+"/expanse",schemaPath:"#/properties/expanse/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data0.subverse !== undefined){let data1 = data0.subverse;const _errs3 = errors;if(!(validate21(data1, {instancePath:instancePath+"/expanse/subverse",parentData:data0,parentDataProperty:"subverse",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}if(errors === _errs3){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){if(data1["map-uri"] !== undefined){const _errs6 = errors;if(typeof data1["map-uri"] !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/subverse/map-uri",schemaPath:"#/properties/expanse/properties/subverse/properties/map-uri/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid3 = _errs6 === errors;}else {var valid3 = true;}if(valid3){if(data1.instances !== undefined){const _errs8 = errors;if(!(validate23(data1.instances, {instancePath:instancePath+"/expanse/subverse/instances",parentData:data1,parentDataProperty:"instances",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate23.errors : vErrors.concat(validate23.errors);errors = vErrors.length;}var valid3 = _errs8 === errors;}else {var valid3 = true;}if(valid3){for(const key0 in data1){if(((((((key0 !== "map-uri") && (key0 !== "instances")) && (key0 !== "favicon")) && (key0 !== "hyperport")) && (key0 !== "info")) && (key0 !== "uri")) && (key0 !== "name")){validate20.errors = [{instancePath:instancePath+"/expanse/subverse",schemaPath:"#/properties/expanse/properties/subverse/unevaluatedProperties",keyword:"unevaluatedProperties",params:{unevaluatedProperty: key0},message:"must NOT have unevaluated properties"}];return false;}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/subverse",schemaPath:"#/properties/expanse/properties/subverse/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs3 === errors;}else {var valid1 = true;}if(valid1){if(data0.platforms !== undefined){let data4 = data0.platforms;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(Array.isArray(data4)){var valid5 = true;const len0 = data4.length;for(let i0=0; i0<len0; i0++){let data5 = data4[i0];const _errs13 = errors;if(errors === _errs13){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){let missing2;if((data5.id === undefined) && (missing2 = "id")){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {if(data5.id !== undefined){const _errs15 = errors;if(typeof data5.id !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/id",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs15 === errors;}else {var valid6 = true;}if(valid6){if(data5.archs !== undefined){let data7 = data5.archs;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data7)){var valid7 = true;const len1 = data7.length;for(let i1=0; i1<len1; i1++){const _errs19 = errors;if(typeof data7[i1] !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/archs/" + i1,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/archs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid7 = _errs19 === errors;if(!valid7){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/archs",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/archs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs17 === errors;}else {var valid6 = true;}if(valid6){if(data5.agents !== undefined){let data9 = data5.agents;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data9)){var valid8 = true;const len2 = data9.length;for(let i2=0; i2<len2; i2++){const _errs23 = errors;if(typeof data9[i2] !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/agents/" + i2,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/agents/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid8 = _errs23 === errors;if(!valid8){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0+"/agents",schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/properties/agents/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs21 === errors;}else {var valid6 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms/" + i0,schemaPath:"definitions_SubverseInfo#/definitions/platforms/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs13 === errors;if(!valid5){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/platforms",schemaPath:"definitions_SubverseInfo#/definitions/platforms/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs10 === errors;}else {var valid1 = true;}if(valid1){if(data0.protocols !== undefined){let data11 = data0.protocols;const _errs25 = errors;const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data11)){var valid10 = true;const len3 = data11.length;for(let i3=0; i3<len3; i3++){let data12 = data11[i3];const _errs28 = errors;if(errors === _errs28){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){let missing3;if(((data12.id === undefined) && (missing3 = "id")) || ((data12.attr === undefined) && (missing3 = "attr"))){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3,schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {if(data12.id !== undefined){const _errs30 = errors;if(typeof data12.id !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/id",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs30 === errors;}else {var valid11 = true;}if(valid11){if(data12.name !== undefined){const _errs32 = errors;if(typeof data12.name !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/name",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs32 === errors;}else {var valid11 = true;}if(valid11){if(data12.version !== undefined){const _errs34 = errors;if(typeof data12.version !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/version",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs34 === errors;}else {var valid11 = true;}if(valid11){if(data12.attr !== undefined){const _errs36 = errors;if(typeof data12.attr !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/attr",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/attr/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs36 === errors;}else {var valid11 = true;}if(valid11){if(data12.url !== undefined){const _errs38 = errors;if(typeof data12.url !== "string"){validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3+"/url",schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/properties/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid11 = _errs38 === errors;}else {var valid11 = true;}}}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/protocols/" + i3,schemaPath:"definitions_SubverseInfo#/definitions/protocols/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs28 === errors;if(!valid10){break;}}}else {validate20.errors = [{instancePath:instancePath+"/expanse/protocols",schemaPath:"definitions_SubverseInfo#/definitions/protocols/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs25 === errors;}else {var valid1 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/expanse",schemaPath:"#/properties/expanse/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.subverse_info !== undefined){const _errs40 = errors;if("1.0" !== data.subverse_info){validate20.errors = [{instancePath:instancePath+"/subverse_info",schemaPath:"definitions_SubverseInfo#/definitions/_v/const",keyword:"const",params:{allowedValue: "1.0"},message:"must be equal to constant"}];return false;}var valid0 = _errs40 === errors;}else {var valid0 = true;}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"expanse":true,"subverse_info":true},"dynamicProps":false,"dynamicItems":false};
|
|
4
4
|
|
|
5
5
|
// console.log('OUT', __name({variableName}) );
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
function l_LL_(obj, x) {
|
|
9
|
+
if (! obj || typeof obj !== 'object')
|
|
10
|
+
throw new Error('obj must be an object');
|
|
11
|
+
if (! Number.isSafeInteger(x) || x < 0)
|
|
12
|
+
throw new Error('Shift value must be a safe, non-negative integer');
|
|
13
|
+
|
|
14
|
+
const obj_new= {};
|
|
10
15
|
for (const [k,v] of Object.entries(obj)) {
|
|
11
|
-
if (
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
if (typeof v !== 'number' || ! Number.isFinite(v))
|
|
17
|
+
continue; // Skip non-numeric
|
|
18
|
+
obj_new[k] = v<<x;
|
|
14
19
|
}
|
|
15
|
-
return
|
|
20
|
+
return Object.freeze(obj_new);
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
//-------------------------------------------------------------------------------------------------
|
|
@@ -25,56 +30,85 @@ function handler_default_( /* ... */ ) {
|
|
|
25
30
|
|
|
26
31
|
//-------------------------------------------------------------------------------------------------
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
BitLogr.prototype['log']= function (nr_logged, /* ... */ ) {
|
|
35
|
-
// console.log('NOP')
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
set handler(fx) {
|
|
40
|
-
this._handler_log= fx;
|
|
41
|
-
}
|
|
33
|
+
function l_toBigInt_(obj_labels, obj, ignore= false) {
|
|
34
|
+
if (! obj_labels || typeof obj_labels !== 'object')
|
|
35
|
+
throw new Error('obj_labels must be an object');
|
|
36
|
+
if (! obj || typeof obj !== 'object')
|
|
37
|
+
throw new Error('obj must be an object');
|
|
42
38
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
let bigInt = BigInt(0);
|
|
40
|
+
for (const [k,v] of Object.entries(obj)) {
|
|
41
|
+
if ( ( ignore || v ) && obj_labels[k] !== undefined && typeof obj_labels[k] === 'number')
|
|
42
|
+
bigInt|= BigInt( obj_labels[k] );
|
|
43
|
+
// console.log('0b'+ bigInt.toString(2) );
|
|
47
44
|
}
|
|
45
|
+
return bigInt;
|
|
46
|
+
}
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
// let name= __name(label);
|
|
51
|
-
// _labels[name]= label[name];
|
|
52
|
-
// console.log(_labels);
|
|
53
|
-
// }
|
|
48
|
+
// console.log(l_toBigInt_({},{}))
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this._Bint_toggled= l_toBigInt_(this._Bint_labels, obj);
|
|
50
|
+
const LOGR = (function () {
|
|
51
|
+
let _instance; // Private variable to hold the single instance
|
|
58
52
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
function _create_instance() {
|
|
54
|
+
// Private state (replacing constructor properties)
|
|
55
|
+
let _handler_log = handler_default_;
|
|
56
|
+
let _obj_labels = undefined;
|
|
57
|
+
let _Bint_toggled = BigInt(0);
|
|
63
58
|
|
|
64
|
-
|
|
65
|
-
if (
|
|
59
|
+
function _log_fxn(nr_logged, argsFn /* args */) {
|
|
60
|
+
if ((BigInt(nr_logged) & _Bint_toggled) === BigInt(0))
|
|
66
61
|
return false;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
62
|
+
|
|
63
|
+
const args = argsFn();
|
|
64
|
+
_handler_log.apply(this, args);
|
|
65
|
+
// _handler_log.apply(this, args);
|
|
72
66
|
return true;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
set handler(fx) {
|
|
71
|
+
_handler_log = fx;
|
|
72
|
+
},
|
|
73
|
+
get handler() {
|
|
74
|
+
return _handler_log;
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
get labels() { return _obj_labels; },
|
|
78
|
+
set labels(obj) {
|
|
79
|
+
_obj_labels = obj;
|
|
80
|
+
_Bint_toggled = BigInt(0);
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
// put= function(label, abbrv) {
|
|
84
|
+
// let name= __name(label);
|
|
85
|
+
// _labels[name]= label[name];
|
|
86
|
+
// console.log(_labels);
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
get toggled() { return _Bint_toggled; },
|
|
90
|
+
set toggled(obj_toggled) {
|
|
91
|
+
_Bint_toggled= l_toBigInt_(_obj_labels, obj_toggled);
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
log(nr_logged, argsFn) {
|
|
95
|
+
|
|
96
|
+
return _log_fxn.call(this, nr_logged, argsFn); // Pass the thunk
|
|
97
|
+
}
|
|
73
98
|
};
|
|
74
99
|
}
|
|
75
100
|
|
|
76
|
-
//
|
|
77
|
-
|
|
101
|
+
// Public interface
|
|
102
|
+
return {
|
|
103
|
+
get_instance() {
|
|
104
|
+
if (!_instance) {
|
|
105
|
+
_instance = _create_instance(); // Lazy initialization
|
|
106
|
+
}
|
|
107
|
+
return _instance;
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
})();
|
|
78
112
|
|
|
79
113
|
var jsonMsg_cjs = {};
|
|
80
114
|
|
|
@@ -84,77 +118,66 @@ function requireJsonMsg_cjs () {
|
|
|
84
118
|
if (hasRequiredJsonMsg_cjs) return jsonMsg_cjs;
|
|
85
119
|
hasRequiredJsonMsg_cjs = 1;
|
|
86
120
|
|
|
87
|
-
|
|
121
|
+
const schema_Msg = validate18;function validate18(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate18.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.id === undefined) && (missing0 = "id")) || ((data.referer === undefined) && (missing0 = "referer"))) || ((data.dt === undefined) && (missing0 = "dt"))){validate18.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.id !== undefined){const _errs1 = errors;if(typeof data.id !== "string"){validate18.errors = [{instancePath:instancePath+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs1 === errors;}else {var valid0 = true;}if(valid0){if(data.dt !== undefined){const _errs3 = errors;if(typeof data.dt !== "string"){validate18.errors = [{instancePath:instancePath+"/dt",schemaPath:"#/properties/dt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}}}}else {validate18.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate18.errors = vErrors;return errors === 0;}validate18.evaluated = {"props":{"id":true,"dt":true},"dynamicProps":false,"dynamicItems":false};const schema_Msg_msg = validate19;function validate19(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate19.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data._msg === undefined) && (missing0 = "_msg")){validate19.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}}else {validate19.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate19.errors = vErrors;return errors === 0;}validate19.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema_MsgAck_msg = validate20;function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}{if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.ack === undefined) && (missing0 = "ack")){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {if(data.ack !== undefined){let data0 = data.ack;{if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((data0.ok === undefined) && (missing1 = "ok")){validate20.errors = [{instancePath:instancePath+"/ack",schemaPath:"#/properties/ack/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data0.ok !== undefined){if(typeof data0.ok !== "boolean"){validate20.errors = [{instancePath:instancePath+"/ack/ok",schemaPath:"#/properties/ack/properties/ok/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}}}}else {validate20.errors = [{instancePath:instancePath+"/ack",schemaPath:"#/properties/ack/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":{"ack":true},"dynamicProps":false,"dynamicItems":false};
|
|
88
122
|
|
|
89
|
-
const
|
|
123
|
+
const byteToHex = [];
|
|
124
|
+
for (let i = 0; i < 256; ++i) {
|
|
125
|
+
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
126
|
+
}
|
|
127
|
+
function unsafeStringify(arr, offset = 0) {
|
|
128
|
+
return (byteToHex[arr[offset + 0]] +
|
|
129
|
+
byteToHex[arr[offset + 1]] +
|
|
130
|
+
byteToHex[arr[offset + 2]] +
|
|
131
|
+
byteToHex[arr[offset + 3]] +
|
|
132
|
+
'-' +
|
|
133
|
+
byteToHex[arr[offset + 4]] +
|
|
134
|
+
byteToHex[arr[offset + 5]] +
|
|
135
|
+
'-' +
|
|
136
|
+
byteToHex[arr[offset + 6]] +
|
|
137
|
+
byteToHex[arr[offset + 7]] +
|
|
138
|
+
'-' +
|
|
139
|
+
byteToHex[arr[offset + 8]] +
|
|
140
|
+
byteToHex[arr[offset + 9]] +
|
|
141
|
+
'-' +
|
|
142
|
+
byteToHex[arr[offset + 10]] +
|
|
143
|
+
byteToHex[arr[offset + 11]] +
|
|
144
|
+
byteToHex[arr[offset + 12]] +
|
|
145
|
+
byteToHex[arr[offset + 13]] +
|
|
146
|
+
byteToHex[arr[offset + 14]] +
|
|
147
|
+
byteToHex[arr[offset + 15]]).toLowerCase();
|
|
148
|
+
}
|
|
90
149
|
|
|
91
|
-
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
|
92
|
-
// require the crypto API and do not support built-in fallback to lower quality random number
|
|
93
|
-
// generators (like Math.random()).
|
|
94
150
|
let getRandomValues;
|
|
95
151
|
const rnds8 = new Uint8Array(16);
|
|
96
152
|
function rng() {
|
|
97
|
-
// lazy load so that environments that need to polyfill have a chance to do so
|
|
98
|
-
if (!getRandomValues) {
|
|
99
|
-
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
|
100
|
-
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
|
101
|
-
|
|
102
153
|
if (!getRandomValues) {
|
|
103
|
-
|
|
154
|
+
if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
|
|
155
|
+
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
|
156
|
+
}
|
|
157
|
+
getRandomValues = crypto.getRandomValues.bind(crypto);
|
|
104
158
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return getRandomValues(rnds8);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Convert array of 16 byte values to UUID string format of the form:
|
|
112
|
-
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
113
|
-
*/
|
|
114
|
-
|
|
115
|
-
const byteToHex = [];
|
|
116
|
-
|
|
117
|
-
for (let i = 0; i < 256; ++i) {
|
|
118
|
-
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function unsafeStringify(arr, offset = 0) {
|
|
122
|
-
// Note: Be careful editing this code! It's been tuned for performance
|
|
123
|
-
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
124
|
-
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
|
159
|
+
return getRandomValues(rnds8);
|
|
125
160
|
}
|
|
126
161
|
|
|
127
162
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
|
128
|
-
var native = {
|
|
129
|
-
randomUUID
|
|
130
|
-
};
|
|
163
|
+
var native = { randomUUID };
|
|
131
164
|
|
|
132
165
|
function v4(options, buf, offset) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
166
|
+
if (native.randomUUID && true && !options) {
|
|
167
|
+
return native.randomUUID();
|
|
168
|
+
}
|
|
169
|
+
options = options || {};
|
|
170
|
+
const rnds = options.random ?? options.rng?.() ?? rng();
|
|
171
|
+
if (rnds.length < 16) {
|
|
172
|
+
throw new Error('Random bytes length must be >= 16');
|
|
173
|
+
}
|
|
174
|
+
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
175
|
+
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
176
|
+
return unsafeStringify(rnds);
|
|
144
177
|
}
|
|
145
178
|
|
|
146
179
|
// console.log('OUT', __name({variableName}) );
|
|
147
180
|
|
|
148
|
-
function l_toBigInt_(ref, obj, ignore= false) {
|
|
149
|
-
console.assert(ref !== BigInt(0), 'no labels initialized');
|
|
150
|
-
let bigInt = BigInt(0);
|
|
151
|
-
for (const [k,v] of Object.entries(obj)) {
|
|
152
|
-
if ( ( ignore || v ) && ref[k])
|
|
153
|
-
bigInt|= BigInt( ref[k] );
|
|
154
|
-
// console.log('0b'+ bigInt.toString(2) );
|
|
155
|
-
}
|
|
156
|
-
return bigInt;
|
|
157
|
-
}
|
|
158
181
|
|
|
159
182
|
//-------------------------------------------------------------------------------------------------
|
|
160
183
|
|
|
@@ -166,87 +189,112 @@ function requireJsonMsg_cjs () {
|
|
|
166
189
|
|
|
167
190
|
//-------------------------------------------------------------------------------------------------
|
|
168
191
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
BitLogr.prototype['log']= function (nr_logged, /* ... */ ) {
|
|
176
|
-
// console.log('NOP')
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
set handler(fx) {
|
|
181
|
-
this._handler_log= fx;
|
|
182
|
-
}
|
|
192
|
+
function l_toBigInt_(obj_labels, obj, ignore= false) {
|
|
193
|
+
if (! obj_labels || typeof obj_labels !== 'object')
|
|
194
|
+
throw new Error('obj_labels must be an object');
|
|
195
|
+
if (! obj || typeof obj !== 'object')
|
|
196
|
+
throw new Error('obj must be an object');
|
|
183
197
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
198
|
+
let bigInt = BigInt(0);
|
|
199
|
+
for (const [k,v] of Object.entries(obj)) {
|
|
200
|
+
if ( ( ignore || v ) && obj_labels[k] !== undefined && typeof obj_labels[k] === 'number')
|
|
201
|
+
bigInt|= BigInt( obj_labels[k] );
|
|
202
|
+
// console.log('0b'+ bigInt.toString(2) );
|
|
188
203
|
}
|
|
204
|
+
return bigInt;
|
|
205
|
+
}
|
|
189
206
|
|
|
190
|
-
|
|
191
|
-
// let name= __name(label);
|
|
192
|
-
// _labels[name]= label[name];
|
|
193
|
-
// console.log(_labels);
|
|
194
|
-
// }
|
|
207
|
+
// console.log(l_toBigInt_({},{}))
|
|
195
208
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
this._Bint_toggled= l_toBigInt_(this._Bint_labels, obj);
|
|
209
|
+
const LOGR = (function () {
|
|
210
|
+
let _instance; // Private variable to hold the single instance
|
|
199
211
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
212
|
+
function _create_instance() {
|
|
213
|
+
// Private state (replacing constructor properties)
|
|
214
|
+
let _handler_log = handler_default_;
|
|
215
|
+
let _obj_labels = undefined;
|
|
216
|
+
let _Bint_toggled = BigInt(0);
|
|
204
217
|
|
|
205
|
-
|
|
206
|
-
if (
|
|
218
|
+
function _log_fxn(nr_logged, argsFn /* args */) {
|
|
219
|
+
if ((BigInt(nr_logged) & _Bint_toggled) === BigInt(0))
|
|
207
220
|
return false;
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
221
|
+
|
|
222
|
+
const args = argsFn();
|
|
223
|
+
_handler_log.apply(this, args);
|
|
224
|
+
// _handler_log.apply(this, args);
|
|
213
225
|
return true;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return {
|
|
229
|
+
set handler(fx) {
|
|
230
|
+
_handler_log = fx;
|
|
231
|
+
},
|
|
232
|
+
get handler() {
|
|
233
|
+
return _handler_log;
|
|
234
|
+
},
|
|
235
|
+
|
|
236
|
+
get labels() { return _obj_labels; },
|
|
237
|
+
set labels(obj) {
|
|
238
|
+
_obj_labels = obj;
|
|
239
|
+
_Bint_toggled = BigInt(0);
|
|
240
|
+
},
|
|
241
|
+
|
|
242
|
+
// put= function(label, abbrv) {
|
|
243
|
+
// let name= __name(label);
|
|
244
|
+
// _labels[name]= label[name];
|
|
245
|
+
// console.log(_labels);
|
|
246
|
+
// }
|
|
247
|
+
|
|
248
|
+
get toggled() { return _Bint_toggled; },
|
|
249
|
+
set toggled(obj_toggled) {
|
|
250
|
+
_Bint_toggled= l_toBigInt_(_obj_labels, obj_toggled);
|
|
251
|
+
},
|
|
252
|
+
|
|
253
|
+
log(nr_logged, argsFn) {
|
|
254
|
+
|
|
255
|
+
return _log_fxn.call(this, nr_logged, argsFn); // Pass the thunk
|
|
256
|
+
}
|
|
214
257
|
};
|
|
215
258
|
}
|
|
216
259
|
|
|
217
|
-
//
|
|
218
|
-
|
|
260
|
+
// Public interface
|
|
261
|
+
return {
|
|
262
|
+
get_instance() {
|
|
263
|
+
if (!_instance) {
|
|
264
|
+
_instance = _create_instance(); // Lazy initialization
|
|
265
|
+
}
|
|
266
|
+
return _instance;
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
})();
|
|
219
271
|
|
|
220
|
-
let LOGR_=
|
|
272
|
+
let LOGR_= LOGR.get_instance();
|
|
273
|
+
const log_= LOGR_.log;
|
|
221
274
|
|
|
222
275
|
const l_= {
|
|
223
276
|
VALIDATION : 0b1 << 0,
|
|
224
277
|
};
|
|
278
|
+
LOGR_.labels= l_;
|
|
225
279
|
|
|
226
280
|
// TODO: use RFC3339 "timestamp"? https://ajv.js.org/json-type-definition.html
|
|
227
281
|
|
|
228
282
|
// "module" pattern to avoid "static" and "#" private : https://stackoverflow.com/a/1479341/298545
|
|
229
283
|
var JSON_Msg = (function() {
|
|
230
284
|
return {
|
|
231
|
-
merge
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
};
|
|
238
|
-
// https://stackoverflow.com/questions/684672/how-do-i-loop-through-or-enumerate-a-javascript-object
|
|
239
|
-
for (var key of Object.keys(json)) {
|
|
240
|
-
json_msg[key]= json[key];
|
|
241
|
-
}
|
|
242
|
-
return json_msg;
|
|
285
|
+
merge: function(json) {
|
|
286
|
+
return Object.assign({
|
|
287
|
+
id: v4(),
|
|
288
|
+
referer: null,
|
|
289
|
+
dt: new Date().toISOString()
|
|
290
|
+
}, json || {});
|
|
243
291
|
},
|
|
244
|
-
validate : function(json) {
|
|
245
|
-
const b_valid=
|
|
246
|
-
if (!b_valid)
|
|
247
|
-
|
|
292
|
+
validate : function (json) {
|
|
293
|
+
const b_valid = schema_Msg(json);
|
|
294
|
+
if (!b_valid)
|
|
295
|
+
log_(l_.VALIDATION, () => ['JSON_Msg: validate: ', schema_Msg.errors]);
|
|
248
296
|
return b_valid;
|
|
249
|
-
}
|
|
297
|
+
},
|
|
250
298
|
// TODO: requires a separate ajv module require, and JTD specific schema
|
|
251
299
|
// https://ajv.js.org/guide/getting-started.html#parsing-and-serializing-json
|
|
252
300
|
// static #ajv_parse_= ajv.compileParser(this.#schema_json_Msg);
|
|
@@ -255,26 +303,24 @@ function requireJsonMsg_cjs () {
|
|
|
255
303
|
// }
|
|
256
304
|
}
|
|
257
305
|
})();
|
|
258
|
-
|
|
306
|
+
|
|
259
307
|
var JSON_Msg_msg = (function() {
|
|
260
308
|
return {
|
|
261
|
-
create_with_msg_merge
|
|
262
|
-
|
|
263
|
-
json_msg._msg= _msg;
|
|
264
|
-
return json_msg;
|
|
309
|
+
create_with_msg_merge: function(_msg, json) {
|
|
310
|
+
return Object.assign(JSON_Msg.merge(json), { _msg });
|
|
265
311
|
},
|
|
266
312
|
validate : function(json) {
|
|
267
313
|
if (! JSON_Msg.validate(json))
|
|
268
314
|
return false;
|
|
269
|
-
const b_valid=
|
|
315
|
+
const b_valid= schema_Msg_msg(json);
|
|
270
316
|
if (!b_valid)
|
|
271
|
-
|
|
317
|
+
log_(l_.VALIDATION, () => ['JSON_Msg_msg: validate: ', schema_Msg_msg.errors]);
|
|
272
318
|
return b_valid;
|
|
273
319
|
}
|
|
274
320
|
}
|
|
275
321
|
})();
|
|
276
322
|
|
|
277
|
-
var
|
|
323
|
+
var JSON_MsgAck_msg = (function() {
|
|
278
324
|
return {
|
|
279
325
|
create_with_msgOk : function(_msg, b_ok= true) {
|
|
280
326
|
return JSON_Msg_msg.create_with_msg_merge(_msg, {
|
|
@@ -294,40 +340,44 @@ function requireJsonMsg_cjs () {
|
|
|
294
340
|
validate : function(json) {
|
|
295
341
|
if (! JSON_Msg_msg.validate(json))
|
|
296
342
|
return false;
|
|
297
|
-
const b_valid=
|
|
343
|
+
const b_valid= schema_MsgAck_msg(json);
|
|
298
344
|
if (!b_valid)
|
|
299
|
-
|
|
345
|
+
log_(l_.VALIDATION, () => ['JSON_MsgAck: validate: ', schema_MsgAck_msg.errors]);
|
|
300
346
|
return b_valid;
|
|
301
347
|
}
|
|
302
348
|
}
|
|
303
349
|
})();
|
|
304
350
|
|
|
305
351
|
jsonMsg_cjs.JSON_Msg = JSON_Msg;
|
|
306
|
-
jsonMsg_cjs.
|
|
352
|
+
jsonMsg_cjs.JSON_MsgAck_msg = JSON_MsgAck_msg;
|
|
307
353
|
jsonMsg_cjs.JSON_Msg_msg = JSON_Msg_msg;
|
|
354
|
+
jsonMsg_cjs.l = l_;
|
|
308
355
|
return jsonMsg_cjs;
|
|
309
356
|
}
|
|
310
357
|
|
|
311
358
|
var jsonMsg_cjsExports = requireJsonMsg_cjs();
|
|
312
359
|
|
|
313
|
-
let LOGR_=
|
|
360
|
+
let LOGR_= LOGR.get_instance();
|
|
361
|
+
const log_ = LOGR_.log;
|
|
362
|
+
|
|
363
|
+
Object.assign(jsonMsg_cjsExports.l, l_LL_(jsonMsg_cjsExports.l, 2)); // VALIDATION : 4
|
|
314
364
|
|
|
315
365
|
const l_= {
|
|
316
|
-
VALIDATION : 0b1 <<
|
|
366
|
+
VALIDATION : 0b1 << 2, //4
|
|
317
367
|
};
|
|
318
368
|
LOGR_.labels= l_;
|
|
319
369
|
|
|
320
370
|
LOGR_.toggled= {
|
|
321
|
-
// VALIDATION :
|
|
371
|
+
// VALIDATION : true
|
|
322
372
|
};
|
|
323
373
|
|
|
324
|
-
const kstr_VERSION= "0
|
|
374
|
+
const kstr_VERSION= "1.0";
|
|
325
375
|
|
|
326
376
|
// TODO: use RFC3339 "timestamp"? https://ajv.js.org/json-type-definition.html
|
|
327
377
|
|
|
328
378
|
// const regex_IOI= new RegExp('\\bquery\\s*\\{\\s*IOI\\s*\\(\\s*pkg\\s*:\\s*"([^"]*)"\\s*\\)\\s*\\{.*heartbeat\\s*\\}\\s*\\}');
|
|
329
379
|
|
|
330
|
-
var
|
|
380
|
+
var JSON_MsgSubverseInfo_query = (function() {
|
|
331
381
|
return {
|
|
332
382
|
merge : function(json) {
|
|
333
383
|
let json_msg= jsonMsg_cjsExports.JSON_Msg.merge(json);
|
|
@@ -339,8 +389,8 @@ var JSON_MsgSubverseInfo_discovery = (function() {
|
|
|
339
389
|
if (! jsonMsg_cjsExports.JSON_Msg.validate(json))
|
|
340
390
|
return false;
|
|
341
391
|
|
|
342
|
-
if (!
|
|
343
|
-
|
|
392
|
+
if (! schema_SubverseInfo_query(json)) {
|
|
393
|
+
log_(l_.VALIDATION, () => ['schema_SubverseInfo_query_: validate: ', schema_SubverseInfo_query.errors]);
|
|
344
394
|
return false;
|
|
345
395
|
}
|
|
346
396
|
|
|
@@ -369,8 +419,13 @@ var JSON_MsgSubverseInfo_expanse = (function() {
|
|
|
369
419
|
validate : function(json) {
|
|
370
420
|
if (! jsonMsg_cjsExports.JSON_Msg_msg.validate(json))
|
|
371
421
|
return false;
|
|
422
|
+
|
|
423
|
+
if (json._msg)
|
|
424
|
+
if (! JSON_MsgSubverseInfo_query.validate(json._msg))
|
|
425
|
+
return false;
|
|
426
|
+
|
|
372
427
|
if (! schema_SubverseInfo_expanse(json)) {
|
|
373
|
-
|
|
428
|
+
log_(l_.VALIDATION, () => ['JSON_SubverseInfo_expanse: validate: ', schema_SubverseInfo_expanse.errors]);
|
|
374
429
|
return false;
|
|
375
430
|
}
|
|
376
431
|
return true;
|
|
@@ -378,5 +433,6 @@ var JSON_MsgSubverseInfo_expanse = (function() {
|
|
|
378
433
|
}
|
|
379
434
|
})();
|
|
380
435
|
|
|
381
|
-
exports.JSON_MsgSubverseInfo_discovery = JSON_MsgSubverseInfo_discovery;
|
|
382
436
|
exports.JSON_MsgSubverseInfo_expanse = JSON_MsgSubverseInfo_expanse;
|
|
437
|
+
exports.JSON_MsgSubverseInfo_query = JSON_MsgSubverseInfo_query;
|
|
438
|
+
exports.l = l_;
|