99941cf4ed79aa21d266f965267d3865d8e5fdb9
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js           1) /*
lib/plankton/shape/logic-impl.js           2) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js           3) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js    4) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js           5) <info@greenscale.de>
lib/plankton/shape/logic-impl.js           6) 
lib/plankton/shape/logic-impl.js           7) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js           8) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js           9) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js          10) (at your option) any later version.
lib/plankton/shape/logic-impl.js          11) 
lib/plankton/shape/logic-impl.js          12) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js          13) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js          14) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js          15) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js          16) 
lib/plankton/shape/logic-impl.js          17) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js          18) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js          19)  */
lib/plankton/shape/logic-impl.js          20) var lib_shape;
lib/plankton/shape/logic-impl.js          21) (function (lib_shape) {
lib/plankton/shape/logic-impl.js          22)     /**
lib/plankton/shape/logic-impl.js          23)      * @author fenris
lib/plankton/shape/logic-impl.js          24)      */
lib/plankton/shape/logic-impl.js          25)     var _pool = {};
lib/plankton/shape/logic-impl.js          26)     /**
lib/plankton/shape/logic-impl.js          27)      * @author fenris
lib/plankton/shape/logic-impl.js          28)      */
lib/plankton/shape/logic-impl.js          29)     var _aliases = {};
lib/plankton/shape/logic-impl.js          30)     /**
lib/plankton/shape/logic-impl.js          31)      * @author fenris
lib/plankton/shape/logic-impl.js          32)      */
lib/plankton/shape/logic-impl.js          33)     function list() {
lib/plankton/shape/logic-impl.js          34)         return [].concat(Object.keys(_pool)).concat(Object.keys(_aliases));
lib/plankton/shape/logic-impl.js          35)     }
lib/plankton/shape/logic-impl.js          36)     lib_shape.list = list;
lib/plankton/shape/logic-impl.js          37)     /**
lib/plankton/shape/logic-impl.js          38)      * @author fenris
lib/plankton/shape/logic-impl.js          39)      */
lib/plankton/shape/logic-impl.js          40)     function inspection_create() {
lib/plankton/shape/logic-impl.js          41)         return {
lib/plankton/shape/logic-impl.js          42)             "messages": []
lib/plankton/shape/logic-impl.js          43)         };
lib/plankton/shape/logic-impl.js          44)     }
lib/plankton/shape/logic-impl.js          45)     lib_shape.inspection_create = inspection_create;
lib/plankton/shape/logic-impl.js          46)     /**
lib/plankton/shape/logic-impl.js          47)      * @author fenris
lib/plankton/shape/logic-impl.js          48)      */
lib/plankton/shape/logic-impl.js          49)     function inspection_add(main, message) {
lib/plankton/shape/logic-impl.js          50)         main.messages.push(message);
lib/plankton/shape/logic-impl.js          51)     }
lib/plankton/shape/logic-impl.js          52)     lib_shape.inspection_add = inspection_add;
lib/plankton/shape/logic-impl.js          53)     /**
lib/plankton/shape/logic-impl.js          54)      * @author fenris
lib/plankton/shape/logic-impl.js          55)      */
lib/plankton/shape/logic-impl.js          56)     function inspection_extend(main, prefix, sub) {
lib/plankton/shape/logic-impl.js          57)         main.messages = main.messages.concat(sub.messages.map(message => `${prefix}: ${message}`));
lib/plankton/shape/logic-impl.js          58)     }
lib/plankton/shape/logic-impl.js          59)     lib_shape.inspection_extend = inspection_extend;
lib/plankton/shape/logic-impl.js          60)     /**
lib/plankton/shape/logic-impl.js          61)      * @author fenris
lib/plankton/shape/logic-impl.js          62)      * @todo check for existing
lib/plankton/shape/logic-impl.js          63)      */
lib/plankton/shape/logic-impl.js          64)     function register({ "name": name, "make": make, "inspect": _inspect, "stance": _stance, "show": _show, }) {
lib/plankton/shape/logic-impl.js          65)         const entry = {
lib/plankton/shape/logic-impl.js          66)             "name": name,
lib/plankton/shape/logic-impl.js          67)             "make": make,
lib/plankton/shape/logic-impl.js          68)             "inspect": _inspect,
lib/plankton/shape/logic-impl.js          69)             "stance": _stance,
lib/plankton/shape/logic-impl.js          70)             "show": _show,
lib/plankton/shape/logic-impl.js          71)         };
lib/plankton/shape/logic-impl.js          72)         _pool[name] = entry;
lib/plankton/shape/logic-impl.js          73)     }
lib/plankton/shape/logic-impl.js          74)     lib_shape.register = register;
lib/plankton/shape/logic-impl.js          75)     /**
lib/plankton/shape/logic-impl.js          76)      * @author fenris
lib/plankton/shape/logic-impl.js          77)      * @todo check for existing
lib/plankton/shape/logic-impl.js          78)      */
lib/plankton/shape/logic-impl.js          79)     function define_alias({ "name": name, "target": target, }) {
lib/plankton/shape/logic-impl.js          80)         const entry = {
lib/plankton/shape/logic-impl.js          81)             "name": "alias",
lib/plankton/shape/logic-impl.js          82)             "target": target,
lib/plankton/shape/logic-impl.js          83)         };
lib/plankton/shape/logic-impl.js          84)         _aliases[name] = entry;
lib/plankton/shape/logic-impl.js          85)     }
lib/plankton/shape/logic-impl.js          86)     lib_shape.define_alias = define_alias;
lib/plankton/shape/logic-impl.js          87)     /**
lib/plankton/shape/logic-impl.js          88)      * @author fenris
lib/plankton/shape/logic-impl.js          89)      * @todo check for existing
lib/plankton/shape/logic-impl.js          90)      */
lib/plankton/shape/logic-impl.js          91)     /*
lib/plankton/shape/logic-impl.js          92)     export function inspect_jstype(
lib/plankton/shape/logic-impl.js          93)         inspection,
lib/plankton/shape/logic-impl.js          94)         jstype_expected : string,
lib/plankton/shape/logic-impl.js          95)         value : any
lib/plankton/shape/logic-impl.js          96)     ) : void {
lib/plankton/shape/logic-impl.js          97)         let jstype_actual : string = typeof(value);
lib/plankton/shape/logic-impl.js          98)         if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js          99)             // all good
lib/plankton/shape/logic-impl.js         100)         }
lib/plankton/shape/logic-impl.js         101)         else {
lib/plankton/shape/logic-impl.js         102)             inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         103)         }
lib/plankton/shape/logic-impl.js         104)     }
lib/plankton/shape/logic-impl.js         105)      */
lib/plankton/shape/logic-impl.js         106)     /**
lib/plankton/shape/logic-impl.js         107)      * @author fenris
lib/plankton/shape/logic-impl.js         108)      */
lib/plankton/shape/logic-impl.js         109)     function make(raw) {
lib/plankton/shape/logic-impl.js         110)         const name = raw["name"];
lib/plankton/shape/logic-impl.js         111)         if (_aliases.hasOwnProperty(name)) {
lib/plankton/shape/logic-impl.js         112)             const alias = _aliases[name];
lib/plankton/shape/logic-impl.js         113)             return alias.target;
lib/plankton/shape/logic-impl.js         114)         }
lib/plankton/shape/logic-impl.js         115)         else {
lib/plankton/shape/logic-impl.js         116)             if (_pool.hasOwnProperty(name)) {
lib/plankton/shape/logic-impl.js         117)                 const entry = _pool[name];
lib/plankton/shape/logic-impl.js         118)                 const parameters = entry.make(raw["parameters"] || {}, make);
lib/plankton/shape/logic-impl.js         119)                 return {
lib/plankton/shape/logic-impl.js         120)                     "name": name,
lib/plankton/shape/logic-impl.js         121)                     "parameters": parameters,
lib/plankton/shape/logic-impl.js         122)                 };
lib/plankton/shape/logic-impl.js         123)             }
lib/plankton/shape/logic-impl.js         124)             else {
lib/plankton/shape/logic-impl.js         125)                 const message = `no shape registered with name '${name}'`;
lib/plankton/shape/logic-impl.js         126)                 throw (new Error(message));
lib/plankton/shape/logic-impl.js         127)             }
lib/plankton/shape/logic-impl.js         128)         }
lib/plankton/shape/logic-impl.js         129)     }
lib/plankton/shape/logic-impl.js         130)     lib_shape.make = make;
lib/plankton/shape/logic-impl.js         131)     /**
lib/plankton/shape/logic-impl.js         132)      * @author fenris
lib/plankton/shape/logic-impl.js         133)      */
lib/plankton/shape/logic-impl.js         134)     function inspect(shape, value) {
lib/plankton/shape/logic-impl.js         135)         if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js         136)             const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js         137)             return entry.inspect(shape.parameters, value, inspect);
lib/plankton/shape/logic-impl.js         138)         }
lib/plankton/shape/logic-impl.js         139)         else {
lib/plankton/shape/logic-impl.js         140)             const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js         141)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         142)         }
lib/plankton/shape/logic-impl.js         143)     }
lib/plankton/shape/logic-impl.js         144)     lib_shape.inspect = inspect;
lib/plankton/shape/logic-impl.js         145)     /**
lib/plankton/shape/logic-impl.js         146)      * @author fenris
lib/plankton/shape/logic-impl.js         147)      */
lib/plankton/shape/logic-impl.js         148)     function check(shape, value) {
lib/plankton/shape/logic-impl.js         149)         if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js         150)             const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js         151)             const inspection = inspect(shape, value);
lib/plankton/shape/logic-impl.js         152)             inspection.messages
lib/plankton/shape/logic-impl.js         153)                 .forEach((message) => { console.warn(message); });
lib/plankton/shape/logic-impl.js         154)             return (inspection.messages.length === 0);
lib/plankton/shape/logic-impl.js         155)         }
lib/plankton/shape/logic-impl.js         156)         else {
lib/plankton/shape/logic-impl.js         157)             const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js         158)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         159)         }
lib/plankton/shape/logic-impl.js         160)     }
lib/plankton/shape/logic-impl.js         161)     lib_shape.check = check;
lib/plankton/shape/logic-impl.js         162)     /**
lib/plankton/shape/logic-impl.js         163)      * @author fenris
lib/plankton/shape/logic-impl.js         164)      */
lib/plankton/shape/logic-impl.js         165)     function stance(shape, bindings) {
lib/plankton/shape/logic-impl.js         166)         if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js         167)             const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js         168)             return entry.stance(shape.parameters, bindings, stance);
lib/plankton/shape/logic-impl.js         169)         }
lib/plankton/shape/logic-impl.js         170)         else {
lib/plankton/shape/logic-impl.js         171)             const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js         172)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         173)         }
lib/plankton/shape/logic-impl.js         174)     }
lib/plankton/shape/logic-impl.js         175)     lib_shape.stance = stance;
lib/plankton/shape/logic-impl.js         176)     /**
lib/plankton/shape/logic-impl.js         177)      * @author fenris
lib/plankton/shape/logic-impl.js         178)      */
lib/plankton/shape/logic-impl.js         179)     function show(shape) {
lib/plankton/shape/logic-impl.js         180)         if (_pool.hasOwnProperty(shape.name)) {
lib/plankton/shape/logic-impl.js         181)             const entry = _pool[shape.name];
lib/plankton/shape/logic-impl.js         182)             return entry.show(shape.parameters, show);
lib/plankton/shape/logic-impl.js         183)         }
lib/plankton/shape/logic-impl.js         184)         else {
lib/plankton/shape/logic-impl.js         185)             const message = `no shape registered with name '${shape.name}'`;
lib/plankton/shape/logic-impl.js         186)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         187)         }
lib/plankton/shape/logic-impl.js         188)     }
lib/plankton/shape/logic-impl.js         189)     lib_shape.show = show;
lib/plankton/shape/logic-impl.js         190) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         191) /*
lib/plankton/shape/logic-impl.js         192) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         193) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  194) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         195) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         196) 
lib/plankton/shape/logic-impl.js         197) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         198) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         199) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         200) (at your option) any later version.
lib/plankton/shape/logic-impl.js         201) 
lib/plankton/shape/logic-impl.js         202) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         203) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         204) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         205) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         206) 
lib/plankton/shape/logic-impl.js         207) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         208) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         209)  */
lib/plankton/shape/logic-impl.js         210) var lib_shape;
lib/plankton/shape/logic-impl.js         211) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         212)     /**
lib/plankton/shape/logic-impl.js         213)      * @author fenris
lib/plankton/shape/logic-impl.js         214)      */
lib/plankton/shape/logic-impl.js         215)     function variable_make({ "name": name }) {
lib/plankton/shape/logic-impl.js         216)         if (name == undefined) {
lib/plankton/shape/logic-impl.js         217)             let message = `mandatory parameter 'name' missing`;
lib/plankton/shape/logic-impl.js         218)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         219)         }
lib/plankton/shape/logic-impl.js         220)         else {
lib/plankton/shape/logic-impl.js         221)             return {
lib/plankton/shape/logic-impl.js         222)                 "name": name,
lib/plankton/shape/logic-impl.js         223)             };
lib/plankton/shape/logic-impl.js         224)         }
lib/plankton/shape/logic-impl.js         225)     }
lib/plankton/shape/logic-impl.js         226)     /**
lib/plankton/shape/logic-impl.js         227)      * @author fenris
lib/plankton/shape/logic-impl.js         228)      */
lib/plankton/shape/logic-impl.js         229)     function variable_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         230)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         231)         let message = "cannot inspect a value against a type variable";
lib/plankton/shape/logic-impl.js         232)         console.warn(message + "; will just pass ...");
lib/plankton/shape/logic-impl.js         233)         // throw (new Error(message));
lib/plankton/shape/logic-impl.js         234)         return inspection;
lib/plankton/shape/logic-impl.js         235)     }
lib/plankton/shape/logic-impl.js         236)     /**
lib/plankton/shape/logic-impl.js         237)      * @author fenris
lib/plankton/shape/logic-impl.js         238)      */
lib/plankton/shape/logic-impl.js         239)     function variable_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         240)         if (parameters.name in bindings) {
lib/plankton/shape/logic-impl.js         241)             return bindings[parameters.name];
lib/plankton/shape/logic-impl.js         242)         }
lib/plankton/shape/logic-impl.js         243)         else {
lib/plankton/shape/logic-impl.js         244)             return {
lib/plankton/shape/logic-impl.js         245)                 "name": "variable",
lib/plankton/shape/logic-impl.js         246)                 "parameters": parameters
lib/plankton/shape/logic-impl.js         247)             };
lib/plankton/shape/logic-impl.js         248)         }
lib/plankton/shape/logic-impl.js         249)     }
lib/plankton/shape/logic-impl.js         250)     /**
lib/plankton/shape/logic-impl.js         251)      * @author fenris
lib/plankton/shape/logic-impl.js         252)      */
lib/plankton/shape/logic-impl.js         253)     function variable_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         254)         let str;
lib/plankton/shape/logic-impl.js         255)         // core
lib/plankton/shape/logic-impl.js         256)         {
lib/plankton/shape/logic-impl.js         257)             str = ("$" + parameters.name);
lib/plankton/shape/logic-impl.js         258)         }
lib/plankton/shape/logic-impl.js         259)         return str;
lib/plankton/shape/logic-impl.js         260)     }
lib/plankton/shape/logic-impl.js         261)     /**
lib/plankton/shape/logic-impl.js         262)      * @author fenris
lib/plankton/shape/logic-impl.js         263)      */
lib/plankton/shape/logic-impl.js         264)     lib_shape.register({
lib/plankton/shape/logic-impl.js         265)         "name": "variable",
lib/plankton/shape/logic-impl.js         266)         "make": variable_make,
lib/plankton/shape/logic-impl.js         267)         "inspect": variable_inspect,
lib/plankton/shape/logic-impl.js         268)         "stance": variable_stance,
lib/plankton/shape/logic-impl.js         269)         "show": variable_show,
lib/plankton/shape/logic-impl.js         270)     });
lib/plankton/shape/logic-impl.js         271) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         272) /*
lib/plankton/shape/logic-impl.js         273) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         274) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  275) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         276) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         277) 
lib/plankton/shape/logic-impl.js         278) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         279) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         280) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         281) (at your option) any later version.
lib/plankton/shape/logic-impl.js         282) 
lib/plankton/shape/logic-impl.js         283) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         284) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         285) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         286) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         287) 
lib/plankton/shape/logic-impl.js         288) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         289) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         290)  */
lib/plankton/shape/logic-impl.js         291) var lib_shape;
lib/plankton/shape/logic-impl.js         292) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         293)     /**
lib/plankton/shape/logic-impl.js         294)      * @author fenris
lib/plankton/shape/logic-impl.js         295)      */
lib/plankton/shape/logic-impl.js         296)     function function_make({ "soft": soft = false, "shape_input": shape_input, "shape_output": shape_output, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js         297)         if (shape_input === undefined) {
lib/plankton/shape/logic-impl.js         298)             let message = `mandatory parameter 'shape_input' missing`;
lib/plankton/shape/logic-impl.js         299)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         300)         }
lib/plankton/shape/logic-impl.js         301)         if (shape_output === undefined) {
lib/plankton/shape/logic-impl.js         302)             let message = `mandatory parameter 'shape_output' missing`;
lib/plankton/shape/logic-impl.js         303)             throw (new Error(message));
lib/plankton/shape/logic-impl.js         304)         }
lib/plankton/shape/logic-impl.js         305)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js         306)             defaultvalue = (soft ? null : (x => x));
lib/plankton/shape/logic-impl.js         307)         }
lib/plankton/shape/logic-impl.js         308)         return {
lib/plankton/shape/logic-impl.js         309)             "soft": soft,
lib/plankton/shape/logic-impl.js         310)             "shape_input": _make(shape_input),
lib/plankton/shape/logic-impl.js         311)             "shape_output": _make(shape_output),
lib/plankton/shape/logic-impl.js         312)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         313)         };
lib/plankton/shape/logic-impl.js         314)     }
lib/plankton/shape/logic-impl.js         315)     /**
lib/plankton/shape/logic-impl.js         316)      * @author fenris
lib/plankton/shape/logic-impl.js         317)      */
lib/plankton/shape/logic-impl.js         318)     function function_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         319)         return {
lib/plankton/shape/logic-impl.js         320)             "name": "function",
lib/plankton/shape/logic-impl.js         321)             "parameters": {
lib/plankton/shape/logic-impl.js         322)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js         323)                 "shape_input": _stance(parameters.shape_input, bindings),
lib/plankton/shape/logic-impl.js         324)                 "shape_output": _stance(parameters.shape_output, bindings)
lib/plankton/shape/logic-impl.js         325)             }
lib/plankton/shape/logic-impl.js         326)         };
lib/plankton/shape/logic-impl.js         327)     }
lib/plankton/shape/logic-impl.js         328)     /**
lib/plankton/shape/logic-impl.js         329)      * @author fenris
lib/plankton/shape/logic-impl.js         330)      * @todo closer look not possible?
lib/plankton/shape/logic-impl.js         331)      */
lib/plankton/shape/logic-impl.js         332)     function function_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         333)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         334)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         335)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         336)                 // all good
lib/plankton/shape/logic-impl.js         337)             }
lib/plankton/shape/logic-impl.js         338)             else {
lib/plankton/shape/logic-impl.js         339)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         340)             }
lib/plankton/shape/logic-impl.js         341)         }
lib/plankton/shape/logic-impl.js         342)         else {
lib/plankton/shape/logic-impl.js         343)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js         344)             let jstype_expected = "function";
lib/plankton/shape/logic-impl.js         345)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js         346)                 // all good?
lib/plankton/shape/logic-impl.js         347)             }
lib/plankton/shape/logic-impl.js         348)             else {
lib/plankton/shape/logic-impl.js         349)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         350)             }
lib/plankton/shape/logic-impl.js         351)         }
lib/plankton/shape/logic-impl.js         352)         return inspection;
lib/plankton/shape/logic-impl.js         353)     }
lib/plankton/shape/logic-impl.js         354)     /**
lib/plankton/shape/logic-impl.js         355)      * @author fenris
lib/plankton/shape/logic-impl.js         356)      */
lib/plankton/shape/logic-impl.js         357)     function function_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         358)         let str;
lib/plankton/shape/logic-impl.js         359)         /*
lib/plankton/shape/logic-impl.js         360)         // core
lib/plankton/shape/logic-impl.js         361)         {
lib/plankton/shape/logic-impl.js         362)             str = "function";
lib/plankton/shape/logic-impl.js         363)         }
lib/plankton/shape/logic-impl.js         364)         // in/out
lib/plankton/shape/logic-impl.js         365)         {
lib/plankton/shape/logic-impl.js         366)             str += (
lib/plankton/shape/logic-impl.js         367)                 "<"
lib/plankton/shape/logic-impl.js         368)                 +
lib/plankton/shape/logic-impl.js         369)                 [
lib/plankton/shape/logic-impl.js         370)                     _show(parameters.shape_input),
lib/plankton/shape/logic-impl.js         371)                     _show(parameters.shape_output),
lib/plankton/shape/logic-impl.js         372)                 ].join(",")
lib/plankton/shape/logic-impl.js         373)                 +
lib/plankton/shape/logic-impl.js         374)                 ">"
lib/plankton/shape/logic-impl.js         375)             );
lib/plankton/shape/logic-impl.js         376)         }
lib/plankton/shape/logic-impl.js         377)          */
lib/plankton/shape/logic-impl.js         378)         str = "";
lib/plankton/shape/logic-impl.js         379)         str += ("(" + _show(parameters.shape_input) + " => " + _show(parameters.shape_output) + ")");
lib/plankton/shape/logic-impl.js         380)         // soft
lib/plankton/shape/logic-impl.js         381)         {
lib/plankton/shape/logic-impl.js         382)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         383)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         384)             }
lib/plankton/shape/logic-impl.js         385)         }
lib/plankton/shape/logic-impl.js         386)         return str;
lib/plankton/shape/logic-impl.js         387)     }
lib/plankton/shape/logic-impl.js         388)     /**
lib/plankton/shape/logic-impl.js         389)      * @author fenris
lib/plankton/shape/logic-impl.js         390)      */
lib/plankton/shape/logic-impl.js         391)     lib_shape.register({
lib/plankton/shape/logic-impl.js         392)         "name": "function",
lib/plankton/shape/logic-impl.js         393)         "make": function_make,
lib/plankton/shape/logic-impl.js         394)         "inspect": function_inspect,
lib/plankton/shape/logic-impl.js         395)         "stance": function_stance,
lib/plankton/shape/logic-impl.js         396)         "show": function_show,
lib/plankton/shape/logic-impl.js         397)     });
lib/plankton/shape/logic-impl.js         398) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         399) /*
lib/plankton/shape/logic-impl.js         400) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         401) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  402) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         403) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         404) 
lib/plankton/shape/logic-impl.js         405) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         406) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         407) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         408) (at your option) any later version.
lib/plankton/shape/logic-impl.js         409) 
lib/plankton/shape/logic-impl.js         410) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         411) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         412) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         413) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         414) 
lib/plankton/shape/logic-impl.js         415) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         416) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         417)  */
lib/plankton/shape/logic-impl.js         418) var lib_shape;
lib/plankton/shape/logic-impl.js         419) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         420)     /**
lib/plankton/shape/logic-impl.js         421)      * @author fenris
lib/plankton/shape/logic-impl.js         422)      */
lib/plankton/shape/logic-impl.js         423)     function void_make({ "soft": soft = true, }) {
lib/plankton/shape/logic-impl.js         424)         return {
lib/plankton/shape/logic-impl.js         425)             "soft": soft,
lib/plankton/shape/logic-impl.js         426)         };
lib/plankton/shape/logic-impl.js         427)     }
lib/plankton/shape/logic-impl.js         428)     /**
lib/plankton/shape/logic-impl.js         429)      * @author fenris
lib/plankton/shape/logic-impl.js         430)      */
lib/plankton/shape/logic-impl.js         431)     function void_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         432)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         433)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         434)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         435)                 // all good
lib/plankton/shape/logic-impl.js         436)             }
lib/plankton/shape/logic-impl.js         437)             else {
lib/plankton/shape/logic-impl.js         438)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         439)             }
lib/plankton/shape/logic-impl.js         440)         }
lib/plankton/shape/logic-impl.js         441)         else {
lib/plankton/shape/logic-impl.js         442)             // all good
lib/plankton/shape/logic-impl.js         443)         }
lib/plankton/shape/logic-impl.js         444)         return inspection;
lib/plankton/shape/logic-impl.js         445)     }
lib/plankton/shape/logic-impl.js         446)     /**
lib/plankton/shape/logic-impl.js         447)      * @author fenris
lib/plankton/shape/logic-impl.js         448)      */
lib/plankton/shape/logic-impl.js         449)     function void_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         450)         return {
lib/plankton/shape/logic-impl.js         451)             "name": "void",
lib/plankton/shape/logic-impl.js         452)             "parameters": parameters
lib/plankton/shape/logic-impl.js         453)         };
lib/plankton/shape/logic-impl.js         454)     }
lib/plankton/shape/logic-impl.js         455)     /**
lib/plankton/shape/logic-impl.js         456)      * @author fenris
lib/plankton/shape/logic-impl.js         457)      */
lib/plankton/shape/logic-impl.js         458)     function void_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         459)         let str;
lib/plankton/shape/logic-impl.js         460)         // core
lib/plankton/shape/logic-impl.js         461)         {
lib/plankton/shape/logic-impl.js         462)             str = "void";
lib/plankton/shape/logic-impl.js         463)         }
lib/plankton/shape/logic-impl.js         464)         // soft
lib/plankton/shape/logic-impl.js         465)         {
lib/plankton/shape/logic-impl.js         466)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         467)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         468)             }
lib/plankton/shape/logic-impl.js         469)         }
lib/plankton/shape/logic-impl.js         470)         return str;
lib/plankton/shape/logic-impl.js         471)     }
lib/plankton/shape/logic-impl.js         472)     /**
lib/plankton/shape/logic-impl.js         473)      * @author fenris
lib/plankton/shape/logic-impl.js         474)      */
lib/plankton/shape/logic-impl.js         475)     lib_shape.register({
lib/plankton/shape/logic-impl.js         476)         "name": "void",
lib/plankton/shape/logic-impl.js         477)         "make": void_make,
lib/plankton/shape/logic-impl.js         478)         "inspect": void_inspect,
lib/plankton/shape/logic-impl.js         479)         "stance": void_stance,
lib/plankton/shape/logic-impl.js         480)         "show": void_show,
lib/plankton/shape/logic-impl.js         481)     });
lib/plankton/shape/logic-impl.js         482) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         483) /*
lib/plankton/shape/logic-impl.js         484) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         485) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  486) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         487) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         488) 
lib/plankton/shape/logic-impl.js         489) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         490) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         491) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         492) (at your option) any later version.
lib/plankton/shape/logic-impl.js         493) 
lib/plankton/shape/logic-impl.js         494) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         495) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         496) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         497) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         498) 
lib/plankton/shape/logic-impl.js         499) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         500) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         501)  */
lib/plankton/shape/logic-impl.js         502) var lib_shape;
lib/plankton/shape/logic-impl.js         503) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         504)     /**
lib/plankton/shape/logic-impl.js         505)      * @author fenris
lib/plankton/shape/logic-impl.js         506)      */
lib/plankton/shape/logic-impl.js         507)     function any_make({ "soft": soft = true, "mutable": mutable = true, "defaultvalue": defaultvalue = null, }) {
lib/plankton/shape/logic-impl.js         508)         return {
lib/plankton/shape/logic-impl.js         509)             "soft": soft,
lib/plankton/shape/logic-impl.js         510)             "mutable": mutable,
lib/plankton/shape/logic-impl.js         511)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         512)         };
lib/plankton/shape/logic-impl.js         513)     }
lib/plankton/shape/logic-impl.js         514)     /**
lib/plankton/shape/logic-impl.js         515)      * @author fenris
lib/plankton/shape/logic-impl.js         516)      */
lib/plankton/shape/logic-impl.js         517)     function any_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         518)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         519)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         520)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         521)                 // all good
lib/plankton/shape/logic-impl.js         522)             }
lib/plankton/shape/logic-impl.js         523)             else {
lib/plankton/shape/logic-impl.js         524)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         525)             }
lib/plankton/shape/logic-impl.js         526)         }
lib/plankton/shape/logic-impl.js         527)         else {
lib/plankton/shape/logic-impl.js         528)             // all good
lib/plankton/shape/logic-impl.js         529)         }
lib/plankton/shape/logic-impl.js         530)         return inspection;
lib/plankton/shape/logic-impl.js         531)     }
lib/plankton/shape/logic-impl.js         532)     /**
lib/plankton/shape/logic-impl.js         533)      * @author fenris
lib/plankton/shape/logic-impl.js         534)      */
lib/plankton/shape/logic-impl.js         535)     function any_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         536)         return {
lib/plankton/shape/logic-impl.js         537)             "name": "any",
lib/plankton/shape/logic-impl.js         538)             "parameters": parameters
lib/plankton/shape/logic-impl.js         539)         };
lib/plankton/shape/logic-impl.js         540)     }
lib/plankton/shape/logic-impl.js         541)     /**
lib/plankton/shape/logic-impl.js         542)      * @author fenris
lib/plankton/shape/logic-impl.js         543)      */
lib/plankton/shape/logic-impl.js         544)     function any_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         545)         let str;
lib/plankton/shape/logic-impl.js         546)         // core
lib/plankton/shape/logic-impl.js         547)         {
lib/plankton/shape/logic-impl.js         548)             str = "any";
lib/plankton/shape/logic-impl.js         549)         }
lib/plankton/shape/logic-impl.js         550)         // soft
lib/plankton/shape/logic-impl.js         551)         {
lib/plankton/shape/logic-impl.js         552)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         553)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         554)             }
lib/plankton/shape/logic-impl.js         555)         }
lib/plankton/shape/logic-impl.js         556)         return str;
lib/plankton/shape/logic-impl.js         557)     }
lib/plankton/shape/logic-impl.js         558)     /**
lib/plankton/shape/logic-impl.js         559)      * @author fenris
lib/plankton/shape/logic-impl.js         560)      */
lib/plankton/shape/logic-impl.js         561)     lib_shape.register({
lib/plankton/shape/logic-impl.js         562)         "name": "any",
lib/plankton/shape/logic-impl.js         563)         "make": any_make,
lib/plankton/shape/logic-impl.js         564)         "inspect": any_inspect,
lib/plankton/shape/logic-impl.js         565)         "stance": any_stance,
lib/plankton/shape/logic-impl.js         566)         "show": any_show,
lib/plankton/shape/logic-impl.js         567)     });
lib/plankton/shape/logic-impl.js         568) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         569) /*
lib/plankton/shape/logic-impl.js         570) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         571) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  572) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         573) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         574) 
lib/plankton/shape/logic-impl.js         575) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         576) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         577) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         578) (at your option) any later version.
lib/plankton/shape/logic-impl.js         579) 
lib/plankton/shape/logic-impl.js         580) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         581) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         582) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         583) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         584) 
lib/plankton/shape/logic-impl.js         585) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         586) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         587)  */
lib/plankton/shape/logic-impl.js         588) var lib_shape;
lib/plankton/shape/logic-impl.js         589) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         590)     /**
lib/plankton/shape/logic-impl.js         591)      * @author fenris
lib/plankton/shape/logic-impl.js         592)      */
lib/plankton/shape/logic-impl.js         593)     function boolean_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js         594)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js         595)             defaultvalue = (soft ? null : false);
lib/plankton/shape/logic-impl.js         596)         }
lib/plankton/shape/logic-impl.js         597)         return {
lib/plankton/shape/logic-impl.js         598)             "soft": soft,
lib/plankton/shape/logic-impl.js         599)             "mutable": mutable,
lib/plankton/shape/logic-impl.js         600)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         601)         };
lib/plankton/shape/logic-impl.js         602)     }
lib/plankton/shape/logic-impl.js         603)     /**
lib/plankton/shape/logic-impl.js         604)      * @author fenris
lib/plankton/shape/logic-impl.js         605)      */
lib/plankton/shape/logic-impl.js         606)     function boolean_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         607)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         608)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         609)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         610)                 // all good
lib/plankton/shape/logic-impl.js         611)             }
lib/plankton/shape/logic-impl.js         612)             else {
lib/plankton/shape/logic-impl.js         613)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         614)             }
lib/plankton/shape/logic-impl.js         615)         }
lib/plankton/shape/logic-impl.js         616)         else {
lib/plankton/shape/logic-impl.js         617)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js         618)             let jstype_expected = "boolean";
lib/plankton/shape/logic-impl.js         619)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js         620)                 // all good
lib/plankton/shape/logic-impl.js         621)             }
lib/plankton/shape/logic-impl.js         622)             else {
lib/plankton/shape/logic-impl.js         623)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         624)             }
lib/plankton/shape/logic-impl.js         625)         }
lib/plankton/shape/logic-impl.js         626)         return inspection;
lib/plankton/shape/logic-impl.js         627)     }
lib/plankton/shape/logic-impl.js         628)     /**
lib/plankton/shape/logic-impl.js         629)      * @author fenris
lib/plankton/shape/logic-impl.js         630)      */
lib/plankton/shape/logic-impl.js         631)     function boolean_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         632)         return {
lib/plankton/shape/logic-impl.js         633)             "name": "boolean",
lib/plankton/shape/logic-impl.js         634)             "parameters": parameters
lib/plankton/shape/logic-impl.js         635)         };
lib/plankton/shape/logic-impl.js         636)     }
lib/plankton/shape/logic-impl.js         637)     /**
lib/plankton/shape/logic-impl.js         638)      * @author fenris
lib/plankton/shape/logic-impl.js         639)      */
lib/plankton/shape/logic-impl.js         640)     function boolean_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         641)         let str;
lib/plankton/shape/logic-impl.js         642)         // core
lib/plankton/shape/logic-impl.js         643)         {
lib/plankton/shape/logic-impl.js         644)             str = "boolean";
lib/plankton/shape/logic-impl.js         645)         }
lib/plankton/shape/logic-impl.js         646)         // soft
lib/plankton/shape/logic-impl.js         647)         {
lib/plankton/shape/logic-impl.js         648)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         649)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         650)             }
lib/plankton/shape/logic-impl.js         651)         }
lib/plankton/shape/logic-impl.js         652)         return str;
lib/plankton/shape/logic-impl.js         653)     }
lib/plankton/shape/logic-impl.js         654)     /**
lib/plankton/shape/logic-impl.js         655)      * @author fenris
lib/plankton/shape/logic-impl.js         656)      */
lib/plankton/shape/logic-impl.js         657)     lib_shape.register({
lib/plankton/shape/logic-impl.js         658)         "name": "boolean",
lib/plankton/shape/logic-impl.js         659)         "make": boolean_make,
lib/plankton/shape/logic-impl.js         660)         "inspect": boolean_inspect,
lib/plankton/shape/logic-impl.js         661)         "stance": boolean_stance,
lib/plankton/shape/logic-impl.js         662)         "show": boolean_show,
lib/plankton/shape/logic-impl.js         663)     });
lib/plankton/shape/logic-impl.js         664) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         665) /*
lib/plankton/shape/logic-impl.js         666) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         667) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  668) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         669) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         670) 
lib/plankton/shape/logic-impl.js         671) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         672) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         673) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         674) (at your option) any later version.
lib/plankton/shape/logic-impl.js         675) 
lib/plankton/shape/logic-impl.js         676) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         677) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         678) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         679) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         680) 
lib/plankton/shape/logic-impl.js         681) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         682) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         683)  */
lib/plankton/shape/logic-impl.js         684) var lib_shape;
lib/plankton/shape/logic-impl.js         685) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         686)     /**
lib/plankton/shape/logic-impl.js         687)      * @author fenris
lib/plankton/shape/logic-impl.js         688)      */
lib/plankton/shape/logic-impl.js         689)     function int_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "minimum": minimum = null, "maximum": maximum = null, }) {
lib/plankton/shape/logic-impl.js         690)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js         691)             defaultvalue = (soft ? null : 0);
lib/plankton/shape/logic-impl.js         692)         }
lib/plankton/shape/logic-impl.js         693)         return {
lib/plankton/shape/logic-impl.js         694)             "soft": soft,
lib/plankton/shape/logic-impl.js         695)             "mutable": mutable,
lib/plankton/shape/logic-impl.js         696)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         697)             "minimum": minimum,
lib/plankton/shape/logic-impl.js         698)             "maximum": maximum,
lib/plankton/shape/logic-impl.js         699)         };
lib/plankton/shape/logic-impl.js         700)     }
lib/plankton/shape/logic-impl.js         701)     /**
lib/plankton/shape/logic-impl.js         702)      * @author fenris
lib/plankton/shape/logic-impl.js         703)      */
lib/plankton/shape/logic-impl.js         704)     function int_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         705)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         706)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         707)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         708)                 // all good
lib/plankton/shape/logic-impl.js         709)             }
lib/plankton/shape/logic-impl.js         710)             else {
lib/plankton/shape/logic-impl.js         711)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         712)             }
lib/plankton/shape/logic-impl.js         713)         }
lib/plankton/shape/logic-impl.js         714)         else {
lib/plankton/shape/logic-impl.js         715)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js         716)             let jstype_expected = "number";
lib/plankton/shape/logic-impl.js         717)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js         718)                 if (!isNaN(parseInt(value))) {
lib/plankton/shape/logic-impl.js         719)                     if ((parameters.minimum === null) || (value >= parameters.minimum)) {
lib/plankton/shape/logic-impl.js         720)                         if ((parameters.maximum === null) || (value <= parameters.maximum)) {
lib/plankton/shape/logic-impl.js         721)                             // all good
lib/plankton/shape/logic-impl.js         722)                         }
lib/plankton/shape/logic-impl.js         723)                         else {
lib/plankton/shape/logic-impl.js         724)                             lib_shape.inspection_add(inspection, `value is beyond maximum`);
lib/plankton/shape/logic-impl.js         725)                         }
lib/plankton/shape/logic-impl.js         726)                     }
lib/plankton/shape/logic-impl.js         727)                     else {
lib/plankton/shape/logic-impl.js         728)                         lib_shape.inspection_add(inspection, `value is below minimum`);
lib/plankton/shape/logic-impl.js         729)                     }
lib/plankton/shape/logic-impl.js         730)                 }
lib/plankton/shape/logic-impl.js         731)                 else {
lib/plankton/shape/logic-impl.js         732)                     lib_shape.inspection_add(inspection, `value is not parsable into a valid int`);
lib/plankton/shape/logic-impl.js         733)                 }
lib/plankton/shape/logic-impl.js         734)             }
lib/plankton/shape/logic-impl.js         735)             else {
lib/plankton/shape/logic-impl.js         736)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         737)             }
lib/plankton/shape/logic-impl.js         738)         }
lib/plankton/shape/logic-impl.js         739)         return inspection;
lib/plankton/shape/logic-impl.js         740)     }
lib/plankton/shape/logic-impl.js         741)     /**
lib/plankton/shape/logic-impl.js         742)      * @author fenris
lib/plankton/shape/logic-impl.js         743)      */
lib/plankton/shape/logic-impl.js         744)     function int_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         745)         return {
lib/plankton/shape/logic-impl.js         746)             "name": "int",
lib/plankton/shape/logic-impl.js         747)             "parameters": parameters
lib/plankton/shape/logic-impl.js         748)         };
lib/plankton/shape/logic-impl.js         749)     }
lib/plankton/shape/logic-impl.js         750)     /**
lib/plankton/shape/logic-impl.js         751)      * @author fenris
lib/plankton/shape/logic-impl.js         752)      */
lib/plankton/shape/logic-impl.js         753)     function int_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         754)         let str;
lib/plankton/shape/logic-impl.js         755)         // core
lib/plankton/shape/logic-impl.js         756)         {
lib/plankton/shape/logic-impl.js         757)             str = "int";
lib/plankton/shape/logic-impl.js         758)         }
lib/plankton/shape/logic-impl.js         759)         // soft
lib/plankton/shape/logic-impl.js         760)         {
lib/plankton/shape/logic-impl.js         761)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         762)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         763)             }
lib/plankton/shape/logic-impl.js         764)         }
lib/plankton/shape/logic-impl.js         765)         return str;
lib/plankton/shape/logic-impl.js         766)     }
lib/plankton/shape/logic-impl.js         767)     /**
lib/plankton/shape/logic-impl.js         768)      * @author fenris
lib/plankton/shape/logic-impl.js         769)      */
lib/plankton/shape/logic-impl.js         770)     lib_shape.register({
lib/plankton/shape/logic-impl.js         771)         "name": "int",
lib/plankton/shape/logic-impl.js         772)         "make": int_make,
lib/plankton/shape/logic-impl.js         773)         "inspect": int_inspect,
lib/plankton/shape/logic-impl.js         774)         "stance": int_stance,
lib/plankton/shape/logic-impl.js         775)         "show": int_show,
lib/plankton/shape/logic-impl.js         776)     });
lib/plankton/shape/logic-impl.js         777) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         778) /*
lib/plankton/shape/logic-impl.js         779) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         780) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  781) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         782) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         783) 
lib/plankton/shape/logic-impl.js         784) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         785) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         786) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         787) (at your option) any later version.
lib/plankton/shape/logic-impl.js         788) 
lib/plankton/shape/logic-impl.js         789) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         790) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         791) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         792) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         793) 
lib/plankton/shape/logic-impl.js         794) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         795) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         796)  */
lib/plankton/shape/logic-impl.js         797) var lib_shape;
lib/plankton/shape/logic-impl.js         798) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         799)     /**
lib/plankton/shape/logic-impl.js         800)      * @author fenris
lib/plankton/shape/logic-impl.js         801)      */
lib/plankton/shape/logic-impl.js         802)     function float_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js         803)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js         804)             defaultvalue = (soft ? null : 0.0);
lib/plankton/shape/logic-impl.js         805)         }
lib/plankton/shape/logic-impl.js         806)         return {
lib/plankton/shape/logic-impl.js         807)             "soft": soft,
lib/plankton/shape/logic-impl.js         808)             "mutable": mutable,
lib/plankton/shape/logic-impl.js         809)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         810)         };
lib/plankton/shape/logic-impl.js         811)     }
lib/plankton/shape/logic-impl.js         812)     /**
lib/plankton/shape/logic-impl.js         813)      * @author fenris
lib/plankton/shape/logic-impl.js         814)      */
lib/plankton/shape/logic-impl.js         815)     function float_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         816)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         817)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         818)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         819)                 // all good
lib/plankton/shape/logic-impl.js         820)             }
lib/plankton/shape/logic-impl.js         821)             else {
lib/plankton/shape/logic-impl.js         822)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         823)             }
lib/plankton/shape/logic-impl.js         824)         }
lib/plankton/shape/logic-impl.js         825)         else {
lib/plankton/shape/logic-impl.js         826)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js         827)             let jstype_expected = "number";
lib/plankton/shape/logic-impl.js         828)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js         829)                 if (!isNaN(parseFloat(value))) {
lib/plankton/shape/logic-impl.js         830)                     // all good
lib/plankton/shape/logic-impl.js         831)                 }
lib/plankton/shape/logic-impl.js         832)                 else {
lib/plankton/shape/logic-impl.js         833)                     lib_shape.inspection_add(inspection, `value is not parsable into a valid float`);
lib/plankton/shape/logic-impl.js         834)                 }
lib/plankton/shape/logic-impl.js         835)             }
lib/plankton/shape/logic-impl.js         836)             else {
lib/plankton/shape/logic-impl.js         837)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         838)             }
lib/plankton/shape/logic-impl.js         839)         }
lib/plankton/shape/logic-impl.js         840)         return inspection;
lib/plankton/shape/logic-impl.js         841)     }
lib/plankton/shape/logic-impl.js         842)     /**
lib/plankton/shape/logic-impl.js         843)      * @author fenris
lib/plankton/shape/logic-impl.js         844)      */
lib/plankton/shape/logic-impl.js         845)     function float_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         846)         return {
lib/plankton/shape/logic-impl.js         847)             "name": "float",
lib/plankton/shape/logic-impl.js         848)             "parameters": parameters
lib/plankton/shape/logic-impl.js         849)         };
lib/plankton/shape/logic-impl.js         850)     }
lib/plankton/shape/logic-impl.js         851)     /**
lib/plankton/shape/logic-impl.js         852)      * @author fenris
lib/plankton/shape/logic-impl.js         853)      */
lib/plankton/shape/logic-impl.js         854)     function float_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         855)         let str;
lib/plankton/shape/logic-impl.js         856)         // core
lib/plankton/shape/logic-impl.js         857)         {
lib/plankton/shape/logic-impl.js         858)             str = "float";
lib/plankton/shape/logic-impl.js         859)         }
lib/plankton/shape/logic-impl.js         860)         // soft
lib/plankton/shape/logic-impl.js         861)         {
lib/plankton/shape/logic-impl.js         862)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         863)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         864)             }
lib/plankton/shape/logic-impl.js         865)         }
lib/plankton/shape/logic-impl.js         866)         return str;
lib/plankton/shape/logic-impl.js         867)     }
lib/plankton/shape/logic-impl.js         868)     /**
lib/plankton/shape/logic-impl.js         869)      * @author fenris
lib/plankton/shape/logic-impl.js         870)      */
lib/plankton/shape/logic-impl.js         871)     lib_shape.register({
lib/plankton/shape/logic-impl.js         872)         "name": "float",
lib/plankton/shape/logic-impl.js         873)         "make": float_make,
lib/plankton/shape/logic-impl.js         874)         "inspect": float_inspect,
lib/plankton/shape/logic-impl.js         875)         "stance": float_stance,
lib/plankton/shape/logic-impl.js         876)         "show": float_show,
lib/plankton/shape/logic-impl.js         877)     });
lib/plankton/shape/logic-impl.js         878) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         879) /*
lib/plankton/shape/logic-impl.js         880) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         881) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  882) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         883) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         884) 
lib/plankton/shape/logic-impl.js         885) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         886) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         887) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         888) (at your option) any later version.
lib/plankton/shape/logic-impl.js         889) 
lib/plankton/shape/logic-impl.js         890) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         891) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         892) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         893) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         894) 
lib/plankton/shape/logic-impl.js         895) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         896) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         897)  */
lib/plankton/shape/logic-impl.js         898) var lib_shape;
lib/plankton/shape/logic-impl.js         899) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         900)     /**
lib/plankton/shape/logic-impl.js         901)      * @author fenris
lib/plankton/shape/logic-impl.js         902)      */
lib/plankton/shape/logic-impl.js         903)     function string_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "long": long = false, }) {
lib/plankton/shape/logic-impl.js         904)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js         905)             defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js         906)         }
lib/plankton/shape/logic-impl.js         907)         return {
lib/plankton/shape/logic-impl.js         908)             "soft": soft,
lib/plankton/shape/logic-impl.js         909)             "mutable": mutable,
lib/plankton/shape/logic-impl.js         910)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js         911)             "long": long,
lib/plankton/shape/logic-impl.js         912)         };
lib/plankton/shape/logic-impl.js         913)     }
lib/plankton/shape/logic-impl.js         914)     /**
lib/plankton/shape/logic-impl.js         915)      * @author fenris
lib/plankton/shape/logic-impl.js         916)      */
lib/plankton/shape/logic-impl.js         917)     function string_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js         918)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js         919)         if (value == undefined) {
lib/plankton/shape/logic-impl.js         920)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         921)                 // all good
lib/plankton/shape/logic-impl.js         922)             }
lib/plankton/shape/logic-impl.js         923)             else {
lib/plankton/shape/logic-impl.js         924)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js         925)             }
lib/plankton/shape/logic-impl.js         926)         }
lib/plankton/shape/logic-impl.js         927)         else {
lib/plankton/shape/logic-impl.js         928)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js         929)             let jstype_expected = "string";
lib/plankton/shape/logic-impl.js         930)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js         931)                 // all good
lib/plankton/shape/logic-impl.js         932)             }
lib/plankton/shape/logic-impl.js         933)             else {
lib/plankton/shape/logic-impl.js         934)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js         935)             }
lib/plankton/shape/logic-impl.js         936)         }
lib/plankton/shape/logic-impl.js         937)         return inspection;
lib/plankton/shape/logic-impl.js         938)     }
lib/plankton/shape/logic-impl.js         939)     /**
lib/plankton/shape/logic-impl.js         940)      * @author fenris
lib/plankton/shape/logic-impl.js         941)      */
lib/plankton/shape/logic-impl.js         942)     function string_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js         943)         return {
lib/plankton/shape/logic-impl.js         944)             "name": "string",
lib/plankton/shape/logic-impl.js         945)             "parameters": parameters
lib/plankton/shape/logic-impl.js         946)         };
lib/plankton/shape/logic-impl.js         947)     }
lib/plankton/shape/logic-impl.js         948)     /**
lib/plankton/shape/logic-impl.js         949)      * @author fenris
lib/plankton/shape/logic-impl.js         950)      */
lib/plankton/shape/logic-impl.js         951)     function string_show(parameters, _show) {
lib/plankton/shape/logic-impl.js         952)         let str;
lib/plankton/shape/logic-impl.js         953)         // core
lib/plankton/shape/logic-impl.js         954)         {
lib/plankton/shape/logic-impl.js         955)             str = "string";
lib/plankton/shape/logic-impl.js         956)         }
lib/plankton/shape/logic-impl.js         957)         // soft
lib/plankton/shape/logic-impl.js         958)         {
lib/plankton/shape/logic-impl.js         959)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js         960)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js         961)             }
lib/plankton/shape/logic-impl.js         962)         }
lib/plankton/shape/logic-impl.js         963)         return str;
lib/plankton/shape/logic-impl.js         964)     }
lib/plankton/shape/logic-impl.js         965)     /**
lib/plankton/shape/logic-impl.js         966)      * @author fenris
lib/plankton/shape/logic-impl.js         967)      */
lib/plankton/shape/logic-impl.js         968)     lib_shape.register({
lib/plankton/shape/logic-impl.js         969)         "name": "string",
lib/plankton/shape/logic-impl.js         970)         "make": string_make,
lib/plankton/shape/logic-impl.js         971)         "inspect": string_inspect,
lib/plankton/shape/logic-impl.js         972)         "stance": string_stance,
lib/plankton/shape/logic-impl.js         973)         "show": string_show,
lib/plankton/shape/logic-impl.js         974)     });
lib/plankton/shape/logic-impl.js         975) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js         976) /*
lib/plankton/shape/logic-impl.js         977) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js         978) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js  979) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js         980) <info@greenscale.de>
lib/plankton/shape/logic-impl.js         981) 
lib/plankton/shape/logic-impl.js         982) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js         983) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js         984) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js         985) (at your option) any later version.
lib/plankton/shape/logic-impl.js         986) 
lib/plankton/shape/logic-impl.js         987) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js         988) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js         989) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js         990) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js         991) 
lib/plankton/shape/logic-impl.js         992) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js         993) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js         994)  */
lib/plankton/shape/logic-impl.js         995) var lib_shape;
lib/plankton/shape/logic-impl.js         996) (function (lib_shape) {
lib/plankton/shape/logic-impl.js         997)     /**
lib/plankton/shape/logic-impl.js         998)      * @author fenris
lib/plankton/shape/logic-impl.js         999)      */
lib/plankton/shape/logic-impl.js        1000)     function email_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js        1001)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1002)             defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js        1003)         }
lib/plankton/shape/logic-impl.js        1004)         return {
lib/plankton/shape/logic-impl.js        1005)             "soft": soft,
lib/plankton/shape/logic-impl.js        1006)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1007)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1008)         };
lib/plankton/shape/logic-impl.js        1009)     }
lib/plankton/shape/logic-impl.js        1010)     /**
lib/plankton/shape/logic-impl.js        1011)      * @author fenris
lib/plankton/shape/logic-impl.js        1012)      */
lib/plankton/shape/logic-impl.js        1013)     function email_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1014)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1015)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1016)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1017)                 // all good
lib/plankton/shape/logic-impl.js        1018)             }
lib/plankton/shape/logic-impl.js        1019)             else {
lib/plankton/shape/logic-impl.js        1020)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1021)             }
lib/plankton/shape/logic-impl.js        1022)         }
lib/plankton/shape/logic-impl.js        1023)         else {
lib/plankton/shape/logic-impl.js        1024)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1025)             let jstype_expected = "string";
lib/plankton/shape/logic-impl.js        1026)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1027)                 // all good
lib/plankton/shape/logic-impl.js        1028)             }
lib/plankton/shape/logic-impl.js        1029)             else {
lib/plankton/shape/logic-impl.js        1030)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1031)             }
lib/plankton/shape/logic-impl.js        1032)         }
lib/plankton/shape/logic-impl.js        1033)         return inspection;
lib/plankton/shape/logic-impl.js        1034)     }
lib/plankton/shape/logic-impl.js        1035)     /**
lib/plankton/shape/logic-impl.js        1036)      * @author fenris
lib/plankton/shape/logic-impl.js        1037)      */
lib/plankton/shape/logic-impl.js        1038)     function email_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1039)         return {
lib/plankton/shape/logic-impl.js        1040)             "name": "email",
lib/plankton/shape/logic-impl.js        1041)             "parameters": parameters
lib/plankton/shape/logic-impl.js        1042)         };
lib/plankton/shape/logic-impl.js        1043)     }
lib/plankton/shape/logic-impl.js        1044)     /**
lib/plankton/shape/logic-impl.js        1045)      * @author fenris
lib/plankton/shape/logic-impl.js        1046)      */
lib/plankton/shape/logic-impl.js        1047)     function email_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1048)         let str;
lib/plankton/shape/logic-impl.js        1049)         // core
lib/plankton/shape/logic-impl.js        1050)         {
lib/plankton/shape/logic-impl.js        1051)             str = "email";
lib/plankton/shape/logic-impl.js        1052)         }
lib/plankton/shape/logic-impl.js        1053)         // soft
lib/plankton/shape/logic-impl.js        1054)         {
lib/plankton/shape/logic-impl.js        1055)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1056)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1057)             }
lib/plankton/shape/logic-impl.js        1058)         }
lib/plankton/shape/logic-impl.js        1059)         return str;
lib/plankton/shape/logic-impl.js        1060)     }
lib/plankton/shape/logic-impl.js        1061)     /**
lib/plankton/shape/logic-impl.js        1062)      * @author fenris
lib/plankton/shape/logic-impl.js        1063)      */
lib/plankton/shape/logic-impl.js        1064)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1065)         "name": "email",
lib/plankton/shape/logic-impl.js        1066)         "make": email_make,
lib/plankton/shape/logic-impl.js        1067)         "inspect": email_inspect,
lib/plankton/shape/logic-impl.js        1068)         "stance": email_stance,
lib/plankton/shape/logic-impl.js        1069)         "show": email_show,
lib/plankton/shape/logic-impl.js        1070)     });
lib/plankton/shape/logic-impl.js        1071) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1072) /*
lib/plankton/shape/logic-impl.js        1073) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1074) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1075) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1076) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1077) 
lib/plankton/shape/logic-impl.js        1078) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1079) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1080) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1081) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1082) 
lib/plankton/shape/logic-impl.js        1083) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1084) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1085) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1086) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1087) 
lib/plankton/shape/logic-impl.js        1088) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1089) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1090)  */
lib/plankton/shape/logic-impl.js        1091) var lib_shape;
lib/plankton/shape/logic-impl.js        1092) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1093)     /**
lib/plankton/shape/logic-impl.js        1094)      * @author fenris
lib/plankton/shape/logic-impl.js        1095)      */
lib/plankton/shape/logic-impl.js        1096)     function url_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "type": type = "link", }) {
lib/plankton/shape/logic-impl.js        1097)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1098)             defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js        1099)         }
lib/plankton/shape/logic-impl.js        1100)         return {
lib/plankton/shape/logic-impl.js        1101)             "soft": soft,
lib/plankton/shape/logic-impl.js        1102)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1103)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1104)             "type": type,
lib/plankton/shape/logic-impl.js        1105)         };
lib/plankton/shape/logic-impl.js        1106)     }
lib/plankton/shape/logic-impl.js        1107)     /**
lib/plankton/shape/logic-impl.js        1108)      * @author fenris
lib/plankton/shape/logic-impl.js        1109)      */
lib/plankton/shape/logic-impl.js        1110)     function url_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1111)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1112)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1113)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1114)                 // all good
lib/plankton/shape/logic-impl.js        1115)             }
lib/plankton/shape/logic-impl.js        1116)             else {
lib/plankton/shape/logic-impl.js        1117)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1118)             }
lib/plankton/shape/logic-impl.js        1119)         }
lib/plankton/shape/logic-impl.js        1120)         else {
lib/plankton/shape/logic-impl.js        1121)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1122)             let jstype_expected = "string";
lib/plankton/shape/logic-impl.js        1123)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1124)                 // all good
lib/plankton/shape/logic-impl.js        1125)             }
lib/plankton/shape/logic-impl.js        1126)             else {
lib/plankton/shape/logic-impl.js        1127)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1128)             }
lib/plankton/shape/logic-impl.js        1129)         }
lib/plankton/shape/logic-impl.js        1130)         return inspection;
lib/plankton/shape/logic-impl.js        1131)     }
lib/plankton/shape/logic-impl.js        1132)     /**
lib/plankton/shape/logic-impl.js        1133)      * @author fenris
lib/plankton/shape/logic-impl.js        1134)      */
lib/plankton/shape/logic-impl.js        1135)     function url_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1136)         return {
lib/plankton/shape/logic-impl.js        1137)             "name": "url",
lib/plankton/shape/logic-impl.js        1138)             "parameters": parameters
lib/plankton/shape/logic-impl.js        1139)         };
lib/plankton/shape/logic-impl.js        1140)     }
lib/plankton/shape/logic-impl.js        1141)     /**
lib/plankton/shape/logic-impl.js        1142)      * @author fenris
lib/plankton/shape/logic-impl.js        1143)      */
lib/plankton/shape/logic-impl.js        1144)     function url_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1145)         let str;
lib/plankton/shape/logic-impl.js        1146)         // core
lib/plankton/shape/logic-impl.js        1147)         {
lib/plankton/shape/logic-impl.js        1148)             str = "url";
lib/plankton/shape/logic-impl.js        1149)         }
lib/plankton/shape/logic-impl.js        1150)         // soft
lib/plankton/shape/logic-impl.js        1151)         {
lib/plankton/shape/logic-impl.js        1152)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1153)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1154)             }
lib/plankton/shape/logic-impl.js        1155)         }
lib/plankton/shape/logic-impl.js        1156)         return str;
lib/plankton/shape/logic-impl.js        1157)     }
lib/plankton/shape/logic-impl.js        1158)     /**
lib/plankton/shape/logic-impl.js        1159)      * @author fenris
lib/plankton/shape/logic-impl.js        1160)      */
lib/plankton/shape/logic-impl.js        1161)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1162)         "name": "url",
lib/plankton/shape/logic-impl.js        1163)         "make": url_make,
lib/plankton/shape/logic-impl.js        1164)         "inspect": url_inspect,
lib/plankton/shape/logic-impl.js        1165)         "stance": url_stance,
lib/plankton/shape/logic-impl.js        1166)         "show": url_show,
lib/plankton/shape/logic-impl.js        1167)     });
lib/plankton/shape/logic-impl.js        1168) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1169) /*
lib/plankton/shape/logic-impl.js        1170) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1171) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1172) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1173) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1174) 
lib/plankton/shape/logic-impl.js        1175) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1176) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1177) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1178) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1179) 
lib/plankton/shape/logic-impl.js        1180) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1181) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1182) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1183) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1184) 
lib/plankton/shape/logic-impl.js        1185) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1186) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1187)  */
lib/plankton/shape/logic-impl.js        1188) var lib_shape;
lib/plankton/shape/logic-impl.js        1189) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1190)     /**
lib/plankton/shape/logic-impl.js        1191)      * @author fenris
lib/plankton/shape/logic-impl.js        1192)      */
lib/plankton/shape/logic-impl.js        1193)     function markdown_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, "type": type = "link", }) {
lib/plankton/shape/logic-impl.js        1194)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1195)             defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js        1196)         }
lib/plankton/shape/logic-impl.js        1197)         return {
lib/plankton/shape/logic-impl.js        1198)             "soft": soft,
lib/plankton/shape/logic-impl.js        1199)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1200)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1201)             "type": type,
lib/plankton/shape/logic-impl.js        1202)         };
lib/plankton/shape/logic-impl.js        1203)     }
lib/plankton/shape/logic-impl.js        1204)     /**
lib/plankton/shape/logic-impl.js        1205)      * @author fenris
lib/plankton/shape/logic-impl.js        1206)      */
lib/plankton/shape/logic-impl.js        1207)     function markdown_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1208)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1209)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1210)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1211)                 // all good
lib/plankton/shape/logic-impl.js        1212)             }
lib/plankton/shape/logic-impl.js        1213)             else {
lib/plankton/shape/logic-impl.js        1214)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1215)             }
lib/plankton/shape/logic-impl.js        1216)         }
lib/plankton/shape/logic-impl.js        1217)         else {
lib/plankton/shape/logic-impl.js        1218)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1219)             let jstype_expected = "string";
lib/plankton/shape/logic-impl.js        1220)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1221)                 // all good
lib/plankton/shape/logic-impl.js        1222)             }
lib/plankton/shape/logic-impl.js        1223)             else {
lib/plankton/shape/logic-impl.js        1224)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1225)             }
lib/plankton/shape/logic-impl.js        1226)         }
lib/plankton/shape/logic-impl.js        1227)         return inspection;
lib/plankton/shape/logic-impl.js        1228)     }
lib/plankton/shape/logic-impl.js        1229)     /**
lib/plankton/shape/logic-impl.js        1230)      * @author fenris
lib/plankton/shape/logic-impl.js        1231)      */
lib/plankton/shape/logic-impl.js        1232)     function markdown_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1233)         return {
lib/plankton/shape/logic-impl.js        1234)             "name": "markdown",
lib/plankton/shape/logic-impl.js        1235)             "parameters": parameters
lib/plankton/shape/logic-impl.js        1236)         };
lib/plankton/shape/logic-impl.js        1237)     }
lib/plankton/shape/logic-impl.js        1238)     /**
lib/plankton/shape/logic-impl.js        1239)      * @author fenris
lib/plankton/shape/logic-impl.js        1240)      */
lib/plankton/shape/logic-impl.js        1241)     function markdown_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1242)         let str;
lib/plankton/shape/logic-impl.js        1243)         // core
lib/plankton/shape/logic-impl.js        1244)         {
lib/plankton/shape/logic-impl.js        1245)             str = "markdown";
lib/plankton/shape/logic-impl.js        1246)         }
lib/plankton/shape/logic-impl.js        1247)         // soft
lib/plankton/shape/logic-impl.js        1248)         {
lib/plankton/shape/logic-impl.js        1249)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1250)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1251)             }
lib/plankton/shape/logic-impl.js        1252)         }
lib/plankton/shape/logic-impl.js        1253)         return str;
lib/plankton/shape/logic-impl.js        1254)     }
lib/plankton/shape/logic-impl.js        1255)     /**
lib/plankton/shape/logic-impl.js        1256)      * @author fenris
lib/plankton/shape/logic-impl.js        1257)      */
lib/plankton/shape/logic-impl.js        1258)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1259)         "name": "markdown",
lib/plankton/shape/logic-impl.js        1260)         "make": markdown_make,
lib/plankton/shape/logic-impl.js        1261)         "inspect": markdown_inspect,
lib/plankton/shape/logic-impl.js        1262)         "stance": markdown_stance,
lib/plankton/shape/logic-impl.js        1263)         "show": markdown_show,
lib/plankton/shape/logic-impl.js        1264)     });
lib/plankton/shape/logic-impl.js        1265) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1266) /*
lib/plankton/shape/logic-impl.js        1267) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1268) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1269) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1270) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1271) 
lib/plankton/shape/logic-impl.js        1272) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1273) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1274) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1275) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1276) 
lib/plankton/shape/logic-impl.js        1277) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1278) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1279) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1280) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1281) 
lib/plankton/shape/logic-impl.js        1282) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1283) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1284)  */
lib/plankton/shape/logic-impl.js        1285) var lib_shape;
lib/plankton/shape/logic-impl.js        1286) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1287)     /**
lib/plankton/shape/logic-impl.js        1288)      * @author fenris
lib/plankton/shape/logic-impl.js        1289)      */
lib/plankton/shape/logic-impl.js        1290)     function time_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js        1291)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1292)             defaultvalue = (soft ? null : "");
lib/plankton/shape/logic-impl.js        1293)         }
lib/plankton/shape/logic-impl.js        1294)         return {
lib/plankton/shape/logic-impl.js        1295)             "soft": soft,
lib/plankton/shape/logic-impl.js        1296)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1297)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1298)         };
lib/plankton/shape/logic-impl.js        1299)     }
lib/plankton/shape/logic-impl.js        1300)     /**
lib/plankton/shape/logic-impl.js        1301)      * @author fenris
lib/plankton/shape/logic-impl.js        1302)      */
lib/plankton/shape/logic-impl.js        1303)     function time_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1304)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1305)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1306)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1307)                 // all good
lib/plankton/shape/logic-impl.js        1308)             }
lib/plankton/shape/logic-impl.js        1309)             else {
lib/plankton/shape/logic-impl.js        1310)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1311)             }
lib/plankton/shape/logic-impl.js        1312)         }
lib/plankton/shape/logic-impl.js        1313)         else {
lib/plankton/shape/logic-impl.js        1314)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1315)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        1316)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1317)                 // all good?
lib/plankton/shape/logic-impl.js        1318)             }
lib/plankton/shape/logic-impl.js        1319)             else {
lib/plankton/shape/logic-impl.js        1320)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1321)             }
lib/plankton/shape/logic-impl.js        1322)         }
lib/plankton/shape/logic-impl.js        1323)         return inspection;
lib/plankton/shape/logic-impl.js        1324)     }
lib/plankton/shape/logic-impl.js        1325)     /**
lib/plankton/shape/logic-impl.js        1326)      * @author fenris
lib/plankton/shape/logic-impl.js        1327)      */
lib/plankton/shape/logic-impl.js        1328)     function time_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1329)         return {
lib/plankton/shape/logic-impl.js        1330)             "name": "time",
lib/plankton/shape/logic-impl.js        1331)             "parameters": parameters
lib/plankton/shape/logic-impl.js        1332)         };
lib/plankton/shape/logic-impl.js        1333)     }
lib/plankton/shape/logic-impl.js        1334)     /**
lib/plankton/shape/logic-impl.js        1335)      * @author fenris
lib/plankton/shape/logic-impl.js        1336)      */
lib/plankton/shape/logic-impl.js        1337)     function time_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1338)         let str;
lib/plankton/shape/logic-impl.js        1339)         // core
lib/plankton/shape/logic-impl.js        1340)         {
lib/plankton/shape/logic-impl.js        1341)             str = "time";
lib/plankton/shape/logic-impl.js        1342)         }
lib/plankton/shape/logic-impl.js        1343)         // soft
lib/plankton/shape/logic-impl.js        1344)         {
lib/plankton/shape/logic-impl.js        1345)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1346)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1347)             }
lib/plankton/shape/logic-impl.js        1348)         }
lib/plankton/shape/logic-impl.js        1349)         return str;
lib/plankton/shape/logic-impl.js        1350)     }
lib/plankton/shape/logic-impl.js        1351)     /**
lib/plankton/shape/logic-impl.js        1352)      * @author fenris
lib/plankton/shape/logic-impl.js        1353)      */
lib/plankton/shape/logic-impl.js        1354)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1355)         "name": "time",
lib/plankton/shape/logic-impl.js        1356)         "make": time_make,
lib/plankton/shape/logic-impl.js        1357)         "inspect": time_inspect,
lib/plankton/shape/logic-impl.js        1358)         "stance": time_stance,
lib/plankton/shape/logic-impl.js        1359)         "show": time_show,
lib/plankton/shape/logic-impl.js        1360)     });
lib/plankton/shape/logic-impl.js        1361) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1362) /*
lib/plankton/shape/logic-impl.js        1363) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1364) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1365) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1366) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1367) 
lib/plankton/shape/logic-impl.js        1368) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1369) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1370) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1371) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1372) 
lib/plankton/shape/logic-impl.js        1373) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1374) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1375) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1376) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1377) 
lib/plankton/shape/logic-impl.js        1378) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1379) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1380)  */
lib/plankton/shape/logic-impl.js        1381) var lib_shape;
lib/plankton/shape/logic-impl.js        1382) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1383)     /**
lib/plankton/shape/logic-impl.js        1384)      * @author fenris
lib/plankton/shape/logic-impl.js        1385)      */
lib/plankton/shape/logic-impl.js        1386)     function array_make({ "soft": soft = false, "mutable": mutable = true, "shape_element": shape_element, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        1387)         if (shape_element === undefined) {
lib/plankton/shape/logic-impl.js        1388)             let message = `mandatory parameter 'shape_element' missing`;
lib/plankton/shape/logic-impl.js        1389)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1390)         }
lib/plankton/shape/logic-impl.js        1391)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1392)             defaultvalue = (soft ? null : []);
lib/plankton/shape/logic-impl.js        1393)         }
lib/plankton/shape/logic-impl.js        1394)         return {
lib/plankton/shape/logic-impl.js        1395)             "soft": soft,
lib/plankton/shape/logic-impl.js        1396)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1397)             "shape_element": _make(shape_element),
lib/plankton/shape/logic-impl.js        1398)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1399)         };
lib/plankton/shape/logic-impl.js        1400)     }
lib/plankton/shape/logic-impl.js        1401)     /**
lib/plankton/shape/logic-impl.js        1402)      * @author fenris
lib/plankton/shape/logic-impl.js        1403)      */
lib/plankton/shape/logic-impl.js        1404)     function array_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1405)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1406)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1407)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1408)                 // all good
lib/plankton/shape/logic-impl.js        1409)             }
lib/plankton/shape/logic-impl.js        1410)             else {
lib/plankton/shape/logic-impl.js        1411)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1412)             }
lib/plankton/shape/logic-impl.js        1413)         }
lib/plankton/shape/logic-impl.js        1414)         else {
lib/plankton/shape/logic-impl.js        1415)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1416)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        1417)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1418)                 if (value instanceof Array) {
lib/plankton/shape/logic-impl.js        1419)                     value.forEach((element, index) => {
lib/plankton/shape/logic-impl.js        1420)                         lib_shape.inspection_extend(inspection, `element #${index.toFixed(0)}`, _inspect(parameters.shape_element, element));
lib/plankton/shape/logic-impl.js        1421)                     });
lib/plankton/shape/logic-impl.js        1422)                 }
lib/plankton/shape/logic-impl.js        1423)                 else {
lib/plankton/shape/logic-impl.js        1424)                     lib_shape.inspection_add(inspection, `value does not seem to be an array-instance`);
lib/plankton/shape/logic-impl.js        1425)                 }
lib/plankton/shape/logic-impl.js        1426)             }
lib/plankton/shape/logic-impl.js        1427)             else {
lib/plankton/shape/logic-impl.js        1428)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1429)             }
lib/plankton/shape/logic-impl.js        1430)         }
lib/plankton/shape/logic-impl.js        1431)         return inspection;
lib/plankton/shape/logic-impl.js        1432)     }
lib/plankton/shape/logic-impl.js        1433)     /**
lib/plankton/shape/logic-impl.js        1434)      * @author fenris
lib/plankton/shape/logic-impl.js        1435)      */
lib/plankton/shape/logic-impl.js        1436)     function array_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1437)         return {
lib/plankton/shape/logic-impl.js        1438)             "name": "array",
lib/plankton/shape/logic-impl.js        1439)             "parameters": {
lib/plankton/shape/logic-impl.js        1440)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        1441)                 "shape_element": _stance(parameters.shape_element, bindings)
lib/plankton/shape/logic-impl.js        1442)             }
lib/plankton/shape/logic-impl.js        1443)         };
lib/plankton/shape/logic-impl.js        1444)     }
lib/plankton/shape/logic-impl.js        1445)     /**
lib/plankton/shape/logic-impl.js        1446)      * @author fenris
lib/plankton/shape/logic-impl.js        1447)      */
lib/plankton/shape/logic-impl.js        1448)     function array_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1449)         let str;
lib/plankton/shape/logic-impl.js        1450)         // core
lib/plankton/shape/logic-impl.js        1451)         {
lib/plankton/shape/logic-impl.js        1452)             str = "array";
lib/plankton/shape/logic-impl.js        1453)         }
lib/plankton/shape/logic-impl.js        1454)         // shape_element
lib/plankton/shape/logic-impl.js        1455)         {
lib/plankton/shape/logic-impl.js        1456)             str += ("<"
lib/plankton/shape/logic-impl.js        1457)                 +
lib/plankton/shape/logic-impl.js        1458)                     _show(parameters.shape_element)
lib/plankton/shape/logic-impl.js        1459)                 +
lib/plankton/shape/logic-impl.js        1460)                     ">");
lib/plankton/shape/logic-impl.js        1461)         }
lib/plankton/shape/logic-impl.js        1462)         // soft
lib/plankton/shape/logic-impl.js        1463)         {
lib/plankton/shape/logic-impl.js        1464)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1465)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1466)             }
lib/plankton/shape/logic-impl.js        1467)         }
lib/plankton/shape/logic-impl.js        1468)         return str;
lib/plankton/shape/logic-impl.js        1469)     }
lib/plankton/shape/logic-impl.js        1470)     /**
lib/plankton/shape/logic-impl.js        1471)      * @author fenris
lib/plankton/shape/logic-impl.js        1472)      */
lib/plankton/shape/logic-impl.js        1473)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1474)         "name": "array",
lib/plankton/shape/logic-impl.js        1475)         "make": array_make,
lib/plankton/shape/logic-impl.js        1476)         "inspect": array_inspect,
lib/plankton/shape/logic-impl.js        1477)         "stance": array_stance,
lib/plankton/shape/logic-impl.js        1478)         "show": array_show,
lib/plankton/shape/logic-impl.js        1479)     });
lib/plankton/shape/logic-impl.js        1480) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1481) /*
lib/plankton/shape/logic-impl.js        1482) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1483) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1484) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1485) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1486) 
lib/plankton/shape/logic-impl.js        1487) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1488) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1489) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1490) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1491) 
lib/plankton/shape/logic-impl.js        1492) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1493) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1494) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1495) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1496) 
lib/plankton/shape/logic-impl.js        1497) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1498) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1499)  */
lib/plankton/shape/logic-impl.js        1500) var lib_shape;
lib/plankton/shape/logic-impl.js        1501) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1502)     /**
lib/plankton/shape/logic-impl.js        1503)      * @author fenris
lib/plankton/shape/logic-impl.js        1504)      */
lib/plankton/shape/logic-impl.js        1505)     function enumeration_make({ "soft": soft = false, "mutable": mutable = true, "shape_option": shape_option, "options": options, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        1506)         if (shape_option === undefined) {
lib/plankton/shape/logic-impl.js        1507)             let message = `mandatory parameter 'shape_option' missing`;
lib/plankton/shape/logic-impl.js        1508)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1509)         }
lib/plankton/shape/logic-impl.js        1510)         if (options === undefined) {
lib/plankton/shape/logic-impl.js        1511)             let message = `mandatory parameter 'options' missing`;
lib/plankton/shape/logic-impl.js        1512)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1513)         }
lib/plankton/shape/logic-impl.js        1514)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1515)             defaultvalue = (soft ? null : options[0].value);
lib/plankton/shape/logic-impl.js        1516)         }
lib/plankton/shape/logic-impl.js        1517)         return {
lib/plankton/shape/logic-impl.js        1518)             "soft": soft,
lib/plankton/shape/logic-impl.js        1519)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1520)             "shape_option": _make(shape_option),
lib/plankton/shape/logic-impl.js        1521)             "options": options,
lib/plankton/shape/logic-impl.js        1522)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1523)         };
lib/plankton/shape/logic-impl.js        1524)     }
lib/plankton/shape/logic-impl.js        1525)     /**
lib/plankton/shape/logic-impl.js        1526)      * @author fenris
lib/plankton/shape/logic-impl.js        1527)      */
lib/plankton/shape/logic-impl.js        1528)     function enumeration_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1529)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1530)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1531)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1532)                 // all good
lib/plankton/shape/logic-impl.js        1533)             }
lib/plankton/shape/logic-impl.js        1534)             else {
lib/plankton/shape/logic-impl.js        1535)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1536)             }
lib/plankton/shape/logic-impl.js        1537)         }
lib/plankton/shape/logic-impl.js        1538)         else {
lib/plankton/shape/logic-impl.js        1539)             lib_shape.inspection_extend(inspection, `given value for enumeration`, _inspect(parameters.shape_option, value));
lib/plankton/shape/logic-impl.js        1540)             // TODO: check if corresponding option exists
lib/plankton/shape/logic-impl.js        1541)         }
lib/plankton/shape/logic-impl.js        1542)         return inspection;
lib/plankton/shape/logic-impl.js        1543)     }
lib/plankton/shape/logic-impl.js        1544)     /**
lib/plankton/shape/logic-impl.js        1545)      * @author fenris
lib/plankton/shape/logic-impl.js        1546)      */
lib/plankton/shape/logic-impl.js        1547)     function enumeration_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1548)         return {
lib/plankton/shape/logic-impl.js        1549)             "name": "enumeration",
lib/plankton/shape/logic-impl.js        1550)             "parameters": {
lib/plankton/shape/logic-impl.js        1551)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        1552)                 "shape_option": _stance(parameters.shape_option, bindings),
lib/plankton/shape/logic-impl.js        1553)                 "options": parameters.options,
lib/plankton/shape/logic-impl.js        1554)             }
lib/plankton/shape/logic-impl.js        1555)         };
lib/plankton/shape/logic-impl.js        1556)     }
lib/plankton/shape/logic-impl.js        1557)     /**
lib/plankton/shape/logic-impl.js        1558)      * @author fenris
lib/plankton/shape/logic-impl.js        1559)      */
lib/plankton/shape/logic-impl.js        1560)     function enumeration_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1561)         let str;
lib/plankton/shape/logic-impl.js        1562)         // core
lib/plankton/shape/logic-impl.js        1563)         {
lib/plankton/shape/logic-impl.js        1564)             str = "enumeration";
lib/plankton/shape/logic-impl.js        1565)         }
lib/plankton/shape/logic-impl.js        1566)         // shape_option
lib/plankton/shape/logic-impl.js        1567)         {
lib/plankton/shape/logic-impl.js        1568)             str += ("<"
lib/plankton/shape/logic-impl.js        1569)                 +
lib/plankton/shape/logic-impl.js        1570)                     parameters.options.map(option => String(option)).join(",") + ":" + _show(parameters.shape_option)
lib/plankton/shape/logic-impl.js        1571)                 +
lib/plankton/shape/logic-impl.js        1572)                     ">");
lib/plankton/shape/logic-impl.js        1573)         }
lib/plankton/shape/logic-impl.js        1574)         // soft
lib/plankton/shape/logic-impl.js        1575)         {
lib/plankton/shape/logic-impl.js        1576)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1577)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1578)             }
lib/plankton/shape/logic-impl.js        1579)         }
lib/plankton/shape/logic-impl.js        1580)         return str;
lib/plankton/shape/logic-impl.js        1581)     }
lib/plankton/shape/logic-impl.js        1582)     /**
lib/plankton/shape/logic-impl.js        1583)      * @author fenris
lib/plankton/shape/logic-impl.js        1584)      */
lib/plankton/shape/logic-impl.js        1585)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1586)         "name": "enumeration",
lib/plankton/shape/logic-impl.js        1587)         "make": enumeration_make,
lib/plankton/shape/logic-impl.js        1588)         "inspect": enumeration_inspect,
lib/plankton/shape/logic-impl.js        1589)         "stance": enumeration_stance,
lib/plankton/shape/logic-impl.js        1590)         "show": enumeration_show,
lib/plankton/shape/logic-impl.js        1591)     });
lib/plankton/shape/logic-impl.js        1592) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1593) /*
lib/plankton/shape/logic-impl.js        1594) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1595) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1596) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1597) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1598) 
lib/plankton/shape/logic-impl.js        1599) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1600) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1601) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1602) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1603) 
lib/plankton/shape/logic-impl.js        1604) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1605) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1606) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1607) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1608) 
lib/plankton/shape/logic-impl.js        1609) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1610) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1611)  */
lib/plankton/shape/logic-impl.js        1612) var lib_shape;
lib/plankton/shape/logic-impl.js        1613) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1614)     /**
lib/plankton/shape/logic-impl.js        1615)      * @author fenris
lib/plankton/shape/logic-impl.js        1616)      */
lib/plankton/shape/logic-impl.js        1617)     function date_make({ "soft": soft = false, "mutable": mutable = true, "defaultvalue": defaultvalue = undefined, }) {
lib/plankton/shape/logic-impl.js        1618)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1619)             defaultvalue = (soft ? null : (new Date(Date.now())));
lib/plankton/shape/logic-impl.js        1620)         }
lib/plankton/shape/logic-impl.js        1621)         return {
lib/plankton/shape/logic-impl.js        1622)             "soft": soft,
lib/plankton/shape/logic-impl.js        1623)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1624)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1625)         };
lib/plankton/shape/logic-impl.js        1626)     }
lib/plankton/shape/logic-impl.js        1627)     /**
lib/plankton/shape/logic-impl.js        1628)      * @author fenris
lib/plankton/shape/logic-impl.js        1629)      */
lib/plankton/shape/logic-impl.js        1630)     function date_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1631)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1632)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1633)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1634)                 // all good
lib/plankton/shape/logic-impl.js        1635)             }
lib/plankton/shape/logic-impl.js        1636)             else {
lib/plankton/shape/logic-impl.js        1637)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1638)             }
lib/plankton/shape/logic-impl.js        1639)         }
lib/plankton/shape/logic-impl.js        1640)         else {
lib/plankton/shape/logic-impl.js        1641)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1642)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        1643)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1644)                 if (value instanceof Date) {
lib/plankton/shape/logic-impl.js        1645)                     // all gode
lib/plankton/shape/logic-impl.js        1646)                 }
lib/plankton/shape/logic-impl.js        1647)                 else {
lib/plankton/shape/logic-impl.js        1648)                     lib_shape.inspection_add(inspection, `value does not seem to be a date-instance`);
lib/plankton/shape/logic-impl.js        1649)                 }
lib/plankton/shape/logic-impl.js        1650)             }
lib/plankton/shape/logic-impl.js        1651)             else {
lib/plankton/shape/logic-impl.js        1652)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1653)             }
lib/plankton/shape/logic-impl.js        1654)         }
lib/plankton/shape/logic-impl.js        1655)         return inspection;
lib/plankton/shape/logic-impl.js        1656)     }
lib/plankton/shape/logic-impl.js        1657)     /**
lib/plankton/shape/logic-impl.js        1658)      * @author fenris
lib/plankton/shape/logic-impl.js        1659)      */
lib/plankton/shape/logic-impl.js        1660)     function date_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1661)         return {
lib/plankton/shape/logic-impl.js        1662)             "name": "date",
lib/plankton/shape/logic-impl.js        1663)             "parameters": parameters
lib/plankton/shape/logic-impl.js        1664)         };
lib/plankton/shape/logic-impl.js        1665)     }
lib/plankton/shape/logic-impl.js        1666)     /**
lib/plankton/shape/logic-impl.js        1667)      * @author fenris
lib/plankton/shape/logic-impl.js        1668)      */
lib/plankton/shape/logic-impl.js        1669)     function date_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1670)         let str;
lib/plankton/shape/logic-impl.js        1671)         // core
lib/plankton/shape/logic-impl.js        1672)         {
lib/plankton/shape/logic-impl.js        1673)             str = "date";
lib/plankton/shape/logic-impl.js        1674)         }
lib/plankton/shape/logic-impl.js        1675)         // soft
lib/plankton/shape/logic-impl.js        1676)         {
lib/plankton/shape/logic-impl.js        1677)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1678)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1679)             }
lib/plankton/shape/logic-impl.js        1680)         }
lib/plankton/shape/logic-impl.js        1681)         return str;
lib/plankton/shape/logic-impl.js        1682)     }
lib/plankton/shape/logic-impl.js        1683)     /**
lib/plankton/shape/logic-impl.js        1684)      * @author fenris
lib/plankton/shape/logic-impl.js        1685)      */
lib/plankton/shape/logic-impl.js        1686)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1687)         "name": "date",
lib/plankton/shape/logic-impl.js        1688)         "make": date_make,
lib/plankton/shape/logic-impl.js        1689)         "inspect": date_inspect,
lib/plankton/shape/logic-impl.js        1690)         "stance": date_stance,
lib/plankton/shape/logic-impl.js        1691)         "show": date_show,
lib/plankton/shape/logic-impl.js        1692)     });
lib/plankton/shape/logic-impl.js        1693) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1694) /*
lib/plankton/shape/logic-impl.js        1695) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1696) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1697) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1698) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1699) 
lib/plankton/shape/logic-impl.js        1700) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1701) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1702) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1703) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1704) 
lib/plankton/shape/logic-impl.js        1705) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1706) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1707) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1708) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1709) 
lib/plankton/shape/logic-impl.js        1710) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1711) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1712)  */
lib/plankton/shape/logic-impl.js        1713) var lib_shape;
lib/plankton/shape/logic-impl.js        1714) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1715)     /**
lib/plankton/shape/logic-impl.js        1716)      * @author fenris
lib/plankton/shape/logic-impl.js        1717)      */
lib/plankton/shape/logic-impl.js        1718)     function record_make({ "soft": soft = false, "mutable": mutable = true, "fields": fields = [], "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        1719)         let fields_ = (fields
lib/plankton/shape/logic-impl.js        1720)             .map((field) => ({ "name": field.name, "shape": _make(field.shape) })));
lib/plankton/shape/logic-impl.js        1721)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1722)             if (soft) {
lib/plankton/shape/logic-impl.js        1723)                 defaultvalue = null;
lib/plankton/shape/logic-impl.js        1724)             }
lib/plankton/shape/logic-impl.js        1725)             else {
lib/plankton/shape/logic-impl.js        1726)                 defaultvalue = {};
lib/plankton/shape/logic-impl.js        1727)                 fields_.forEach(field => {
lib/plankton/shape/logic-impl.js        1728)                     defaultvalue[field.name] = field.shape.parameters["defaultvalue"];
lib/plankton/shape/logic-impl.js        1729)                 });
lib/plankton/shape/logic-impl.js        1730)             }
lib/plankton/shape/logic-impl.js        1731)         }
lib/plankton/shape/logic-impl.js        1732)         return {
lib/plankton/shape/logic-impl.js        1733)             "soft": soft,
lib/plankton/shape/logic-impl.js        1734)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1735)             "fields": fields_,
lib/plankton/shape/logic-impl.js        1736)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1737)         };
lib/plankton/shape/logic-impl.js        1738)     }
lib/plankton/shape/logic-impl.js        1739)     /**
lib/plankton/shape/logic-impl.js        1740)      * @author fenris
lib/plankton/shape/logic-impl.js        1741)      */
lib/plankton/shape/logic-impl.js        1742)     function record_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1743)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1744)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1745)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1746)                 // all good
lib/plankton/shape/logic-impl.js        1747)             }
lib/plankton/shape/logic-impl.js        1748)             else {
lib/plankton/shape/logic-impl.js        1749)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1750)             }
lib/plankton/shape/logic-impl.js        1751)         }
lib/plankton/shape/logic-impl.js        1752)         else {
lib/plankton/shape/logic-impl.js        1753)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1754)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        1755)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1756)                 parameters.fields.forEach(field => {
lib/plankton/shape/logic-impl.js        1757)                     let value_ = value[field.name];
lib/plankton/shape/logic-impl.js        1758)                     lib_shape.inspection_extend(inspection, `field '${field.name}'`, _inspect(field.shape, value_));
lib/plankton/shape/logic-impl.js        1759)                 });
lib/plankton/shape/logic-impl.js        1760)             }
lib/plankton/shape/logic-impl.js        1761)             else {
lib/plankton/shape/logic-impl.js        1762)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1763)             }
lib/plankton/shape/logic-impl.js        1764)         }
lib/plankton/shape/logic-impl.js        1765)         return inspection;
lib/plankton/shape/logic-impl.js        1766)     }
lib/plankton/shape/logic-impl.js        1767)     /**
lib/plankton/shape/logic-impl.js        1768)      * @author fenris
lib/plankton/shape/logic-impl.js        1769)      */
lib/plankton/shape/logic-impl.js        1770)     function record_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1771)         return {
lib/plankton/shape/logic-impl.js        1772)             "name": "record",
lib/plankton/shape/logic-impl.js        1773)             "parameters": {
lib/plankton/shape/logic-impl.js        1774)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        1775)                 "fields": parameters.fields.map(field => {
lib/plankton/shape/logic-impl.js        1776)                     return {
lib/plankton/shape/logic-impl.js        1777)                         "name": field.name,
lib/plankton/shape/logic-impl.js        1778)                         "shape": _stance(field.shape, bindings)
lib/plankton/shape/logic-impl.js        1779)                     };
lib/plankton/shape/logic-impl.js        1780)                 })
lib/plankton/shape/logic-impl.js        1781)             }
lib/plankton/shape/logic-impl.js        1782)         };
lib/plankton/shape/logic-impl.js        1783)     }
lib/plankton/shape/logic-impl.js        1784)     /**
lib/plankton/shape/logic-impl.js        1785)      * @author fenris
lib/plankton/shape/logic-impl.js        1786)      */
lib/plankton/shape/logic-impl.js        1787)     function record_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1788)         let str;
lib/plankton/shape/logic-impl.js        1789)         // core
lib/plankton/shape/logic-impl.js        1790)         {
lib/plankton/shape/logic-impl.js        1791)             str = "record";
lib/plankton/shape/logic-impl.js        1792)         }
lib/plankton/shape/logic-impl.js        1793)         // fields
lib/plankton/shape/logic-impl.js        1794)         {
lib/plankton/shape/logic-impl.js        1795)             str += ("<"
lib/plankton/shape/logic-impl.js        1796)                 +
lib/plankton/shape/logic-impl.js        1797)                     parameters.fields.map(field => (field.name + ":" + _show(field.shape))).join(",")
lib/plankton/shape/logic-impl.js        1798)                 +
lib/plankton/shape/logic-impl.js        1799)                     ">");
lib/plankton/shape/logic-impl.js        1800)         }
lib/plankton/shape/logic-impl.js        1801)         // soft
lib/plankton/shape/logic-impl.js        1802)         {
lib/plankton/shape/logic-impl.js        1803)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1804)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1805)             }
lib/plankton/shape/logic-impl.js        1806)         }
lib/plankton/shape/logic-impl.js        1807)         return str;
lib/plankton/shape/logic-impl.js        1808)     }
lib/plankton/shape/logic-impl.js        1809)     /**
lib/plankton/shape/logic-impl.js        1810)      * @author fenris
lib/plankton/shape/logic-impl.js        1811)      */
lib/plankton/shape/logic-impl.js        1812)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1813)         "name": "record",
lib/plankton/shape/logic-impl.js        1814)         "make": record_make,
lib/plankton/shape/logic-impl.js        1815)         "inspect": record_inspect,
lib/plankton/shape/logic-impl.js        1816)         "stance": record_stance,
lib/plankton/shape/logic-impl.js        1817)         "show": record_show,
lib/plankton/shape/logic-impl.js        1818)     });
lib/plankton/shape/logic-impl.js        1819) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1820) /*
lib/plankton/shape/logic-impl.js        1821) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1822) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1823) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1824) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1825) 
lib/plankton/shape/logic-impl.js        1826) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1827) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1828) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1829) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1830) 
lib/plankton/shape/logic-impl.js        1831) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1832) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1833) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1834) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1835) 
lib/plankton/shape/logic-impl.js        1836) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1837) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1838)  */
lib/plankton/shape/logic-impl.js        1839) var lib_shape;
lib/plankton/shape/logic-impl.js        1840) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1841)     /**
lib/plankton/shape/logic-impl.js        1842)      * @author fenris
lib/plankton/shape/logic-impl.js        1843)      */
lib/plankton/shape/logic-impl.js        1844)     function map_make({ "soft": soft = false, "mutable": mutable = true, "shape_key": shape_key, "shape_value": shape_value, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        1845)         if (shape_key === undefined) {
lib/plankton/shape/logic-impl.js        1846)             let message = `mandatory parameter 'shape_key' missing`;
lib/plankton/shape/logic-impl.js        1847)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1848)         }
lib/plankton/shape/logic-impl.js        1849)         if (shape_value === undefined) {
lib/plankton/shape/logic-impl.js        1850)             let message = `mandatory parameter 'shape_value' missing`;
lib/plankton/shape/logic-impl.js        1851)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1852)         }
lib/plankton/shape/logic-impl.js        1853)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1854)             defaultvalue = (soft ? null : {});
lib/plankton/shape/logic-impl.js        1855)         }
lib/plankton/shape/logic-impl.js        1856)         return {
lib/plankton/shape/logic-impl.js        1857)             "soft": soft,
lib/plankton/shape/logic-impl.js        1858)             "mutable": mutable,
lib/plankton/shape/logic-impl.js        1859)             "shape_key": _make(shape_key),
lib/plankton/shape/logic-impl.js        1860)             "shape_value": _make(shape_value),
lib/plankton/shape/logic-impl.js        1861)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1862)         };
lib/plankton/shape/logic-impl.js        1863)     }
lib/plankton/shape/logic-impl.js        1864)     /**
lib/plankton/shape/logic-impl.js        1865)      * @author fenris
lib/plankton/shape/logic-impl.js        1866)      */
lib/plankton/shape/logic-impl.js        1867)     function map_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        1868)         return {
lib/plankton/shape/logic-impl.js        1869)             "name": "map",
lib/plankton/shape/logic-impl.js        1870)             "parameters": {
lib/plankton/shape/logic-impl.js        1871)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        1872)                 "shape_key": _stance(parameters.shape_key, bindings),
lib/plankton/shape/logic-impl.js        1873)                 "shape_value": _stance(parameters.shape_value, bindings)
lib/plankton/shape/logic-impl.js        1874)             }
lib/plankton/shape/logic-impl.js        1875)         };
lib/plankton/shape/logic-impl.js        1876)     }
lib/plankton/shape/logic-impl.js        1877)     /**
lib/plankton/shape/logic-impl.js        1878)      * @author fenris
lib/plankton/shape/logic-impl.js        1879)      * @todo closer look not possible?
lib/plankton/shape/logic-impl.js        1880)      */
lib/plankton/shape/logic-impl.js        1881)     function map_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1882)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1883)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1884)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1885)                 // all good
lib/plankton/shape/logic-impl.js        1886)             }
lib/plankton/shape/logic-impl.js        1887)             else {
lib/plankton/shape/logic-impl.js        1888)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1889)             }
lib/plankton/shape/logic-impl.js        1890)         }
lib/plankton/shape/logic-impl.js        1891)         else {
lib/plankton/shape/logic-impl.js        1892)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1893)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        1894)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        1895)                 Object.keys(value).forEach(key => {
lib/plankton/shape/logic-impl.js        1896)                     lib_shape.inspection_extend(inspection, `key '${key}'`, _inspect(parameters.shape_key, key));
lib/plankton/shape/logic-impl.js        1897)                     let value_ = value[key];
lib/plankton/shape/logic-impl.js        1898)                     lib_shape.inspection_extend(inspection, `value for key '${key}'`, _inspect(parameters.shape_value, value_));
lib/plankton/shape/logic-impl.js        1899)                 });
lib/plankton/shape/logic-impl.js        1900)             }
lib/plankton/shape/logic-impl.js        1901)             else {
lib/plankton/shape/logic-impl.js        1902)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        1903)             }
lib/plankton/shape/logic-impl.js        1904)         }
lib/plankton/shape/logic-impl.js        1905)         return inspection;
lib/plankton/shape/logic-impl.js        1906)     }
lib/plankton/shape/logic-impl.js        1907)     /**
lib/plankton/shape/logic-impl.js        1908)      * @author fenris
lib/plankton/shape/logic-impl.js        1909)      */
lib/plankton/shape/logic-impl.js        1910)     function map_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        1911)         let str;
lib/plankton/shape/logic-impl.js        1912)         // core
lib/plankton/shape/logic-impl.js        1913)         {
lib/plankton/shape/logic-impl.js        1914)             str = "map";
lib/plankton/shape/logic-impl.js        1915)         }
lib/plankton/shape/logic-impl.js        1916)         // in/out
lib/plankton/shape/logic-impl.js        1917)         {
lib/plankton/shape/logic-impl.js        1918)             str += ("<"
lib/plankton/shape/logic-impl.js        1919)                 +
lib/plankton/shape/logic-impl.js        1920)                     [
lib/plankton/shape/logic-impl.js        1921)                         _show(parameters.shape_key),
lib/plankton/shape/logic-impl.js        1922)                         _show(parameters.shape_value),
lib/plankton/shape/logic-impl.js        1923)                     ].join(",")
lib/plankton/shape/logic-impl.js        1924)                 +
lib/plankton/shape/logic-impl.js        1925)                     ">");
lib/plankton/shape/logic-impl.js        1926)         }
lib/plankton/shape/logic-impl.js        1927)         // soft
lib/plankton/shape/logic-impl.js        1928)         {
lib/plankton/shape/logic-impl.js        1929)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1930)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        1931)             }
lib/plankton/shape/logic-impl.js        1932)         }
lib/plankton/shape/logic-impl.js        1933)         return str;
lib/plankton/shape/logic-impl.js        1934)     }
lib/plankton/shape/logic-impl.js        1935)     /**
lib/plankton/shape/logic-impl.js        1936)      * @author fenris
lib/plankton/shape/logic-impl.js        1937)      */
lib/plankton/shape/logic-impl.js        1938)     lib_shape.register({
lib/plankton/shape/logic-impl.js        1939)         "name": "map",
lib/plankton/shape/logic-impl.js        1940)         "make": map_make,
lib/plankton/shape/logic-impl.js        1941)         "inspect": map_inspect,
lib/plankton/shape/logic-impl.js        1942)         "stance": map_stance,
lib/plankton/shape/logic-impl.js        1943)         "show": map_show,
lib/plankton/shape/logic-impl.js        1944)     });
lib/plankton/shape/logic-impl.js        1945) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        1946) /*
lib/plankton/shape/logic-impl.js        1947) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        1948) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 1949) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        1950) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        1951) 
lib/plankton/shape/logic-impl.js        1952) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        1953) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        1954) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        1955) (at your option) any later version.
lib/plankton/shape/logic-impl.js        1956) 
lib/plankton/shape/logic-impl.js        1957) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        1958) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        1959) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        1960) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        1961) 
lib/plankton/shape/logic-impl.js        1962) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        1963) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        1964)  */
lib/plankton/shape/logic-impl.js        1965) var lib_shape;
lib/plankton/shape/logic-impl.js        1966) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        1967)     /**
lib/plankton/shape/logic-impl.js        1968)      * @author fenris
lib/plankton/shape/logic-impl.js        1969)      */
lib/plankton/shape/logic-impl.js        1970)     function maybe_make({ "soft": soft = false, "shape_value": shape_value, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        1971)         if (shape_value === undefined) {
lib/plankton/shape/logic-impl.js        1972)             let message = `mandatory parameter 'shape_value' missing`;
lib/plankton/shape/logic-impl.js        1973)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        1974)         }
lib/plankton/shape/logic-impl.js        1975)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        1976)             defaultvalue = (soft ? null : { "kind": "nothing" });
lib/plankton/shape/logic-impl.js        1977)         }
lib/plankton/shape/logic-impl.js        1978)         return {
lib/plankton/shape/logic-impl.js        1979)             "soft": soft,
lib/plankton/shape/logic-impl.js        1980)             "shape_value": _make(shape_value),
lib/plankton/shape/logic-impl.js        1981)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        1982)         };
lib/plankton/shape/logic-impl.js        1983)     }
lib/plankton/shape/logic-impl.js        1984)     /**
lib/plankton/shape/logic-impl.js        1985)      * @author fenris
lib/plankton/shape/logic-impl.js        1986)      */
lib/plankton/shape/logic-impl.js        1987)     function maybe_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        1988)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        1989)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        1990)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        1991)                 // all good
lib/plankton/shape/logic-impl.js        1992)             }
lib/plankton/shape/logic-impl.js        1993)             else {
lib/plankton/shape/logic-impl.js        1994)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        1995)             }
lib/plankton/shape/logic-impl.js        1996)         }
lib/plankton/shape/logic-impl.js        1997)         else {
lib/plankton/shape/logic-impl.js        1998)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        1999)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        2000)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        2001)                 if ("kind" in value) {
lib/plankton/shape/logic-impl.js        2002)                     // all good?
lib/plankton/shape/logic-impl.js        2003)                 }
lib/plankton/shape/logic-impl.js        2004)                 else {
lib/plankton/shape/logic-impl.js        2005)                     lib_shape.inspection_add(inspection, `field 'kind' missing`);
lib/plankton/shape/logic-impl.js        2006)                 }
lib/plankton/shape/logic-impl.js        2007)             }
lib/plankton/shape/logic-impl.js        2008)             else {
lib/plankton/shape/logic-impl.js        2009)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        2010)             }
lib/plankton/shape/logic-impl.js        2011)         }
lib/plankton/shape/logic-impl.js        2012)         return inspection;
lib/plankton/shape/logic-impl.js        2013)     }
lib/plankton/shape/logic-impl.js        2014)     /**
lib/plankton/shape/logic-impl.js        2015)      * @author fenris
lib/plankton/shape/logic-impl.js        2016)      */
lib/plankton/shape/logic-impl.js        2017)     function maybe_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        2018)         return {
lib/plankton/shape/logic-impl.js        2019)             "name": "maybe",
lib/plankton/shape/logic-impl.js        2020)             "parameters": {
lib/plankton/shape/logic-impl.js        2021)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        2022)                 "shape_value": _stance(parameters.shape_value, bindings)
lib/plankton/shape/logic-impl.js        2023)             }
lib/plankton/shape/logic-impl.js        2024)         };
lib/plankton/shape/logic-impl.js        2025)     }
lib/plankton/shape/logic-impl.js        2026)     /**
lib/plankton/shape/logic-impl.js        2027)      * @author fenris
lib/plankton/shape/logic-impl.js        2028)      */
lib/plankton/shape/logic-impl.js        2029)     function maybe_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        2030)         let str;
lib/plankton/shape/logic-impl.js        2031)         // core
lib/plankton/shape/logic-impl.js        2032)         {
lib/plankton/shape/logic-impl.js        2033)             str = "maybe";
lib/plankton/shape/logic-impl.js        2034)         }
lib/plankton/shape/logic-impl.js        2035)         // shape_value
lib/plankton/shape/logic-impl.js        2036)         {
lib/plankton/shape/logic-impl.js        2037)             str += ("<"
lib/plankton/shape/logic-impl.js        2038)                 +
lib/plankton/shape/logic-impl.js        2039)                     _show(parameters.shape_value)
lib/plankton/shape/logic-impl.js        2040)                 +
lib/plankton/shape/logic-impl.js        2041)                     ">");
lib/plankton/shape/logic-impl.js        2042)         }
lib/plankton/shape/logic-impl.js        2043)         // soft
lib/plankton/shape/logic-impl.js        2044)         {
lib/plankton/shape/logic-impl.js        2045)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        2046)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        2047)             }
lib/plankton/shape/logic-impl.js        2048)         }
lib/plankton/shape/logic-impl.js        2049)         return str;
lib/plankton/shape/logic-impl.js        2050)     }
lib/plankton/shape/logic-impl.js        2051)     /**
lib/plankton/shape/logic-impl.js        2052)      * @author fenris
lib/plankton/shape/logic-impl.js        2053)      */
lib/plankton/shape/logic-impl.js        2054)     lib_shape.register({
lib/plankton/shape/logic-impl.js        2055)         "name": "maybe",
lib/plankton/shape/logic-impl.js        2056)         "make": maybe_make,
lib/plankton/shape/logic-impl.js        2057)         "inspect": maybe_inspect,
lib/plankton/shape/logic-impl.js        2058)         "stance": maybe_stance,
lib/plankton/shape/logic-impl.js        2059)         "show": maybe_show,
lib/plankton/shape/logic-impl.js        2060)     });
lib/plankton/shape/logic-impl.js        2061) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        2062) /*
lib/plankton/shape/logic-impl.js        2063) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        2064) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 2065) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'
Christian Fraß [add] lib:plankton

Christian Fraß authored 3 years ago

lib/plankton/shape/logic-impl.js        2066) <info@greenscale.de>
lib/plankton/shape/logic-impl.js        2067) 
lib/plankton/shape/logic-impl.js        2068) »bacterio-plankton:shape« is free software: you can redistribute it and/or modify
lib/plankton/shape/logic-impl.js        2069) it under the terms of the GNU Lesser General Public License as published by
lib/plankton/shape/logic-impl.js        2070) the Free Software Foundation, either version 3 of the License, or
lib/plankton/shape/logic-impl.js        2071) (at your option) any later version.
lib/plankton/shape/logic-impl.js        2072) 
lib/plankton/shape/logic-impl.js        2073) »bacterio-plankton:shape« is distributed in the hope that it will be useful,
lib/plankton/shape/logic-impl.js        2074) but WITHOUT ANY WARRANTY; without even the implied warranty of
lib/plankton/shape/logic-impl.js        2075) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
lib/plankton/shape/logic-impl.js        2076) GNU Lesser General Public License for more details.
lib/plankton/shape/logic-impl.js        2077) 
lib/plankton/shape/logic-impl.js        2078) You should have received a copy of the GNU Lesser General Public License
lib/plankton/shape/logic-impl.js        2079) along with »bacterio-plankton:shape«. If not, see <http://www.gnu.org/licenses/>.
lib/plankton/shape/logic-impl.js        2080)  */
lib/plankton/shape/logic-impl.js        2081) var lib_shape;
lib/plankton/shape/logic-impl.js        2082) (function (lib_shape) {
lib/plankton/shape/logic-impl.js        2083)     /**
lib/plankton/shape/logic-impl.js        2084)      * @author fenris
lib/plankton/shape/logic-impl.js        2085)      */
lib/plankton/shape/logic-impl.js        2086)     function promise_make({ "soft": soft = false, "shape_result": shape_result, "shape_reason": shape_reason, "defaultvalue": defaultvalue = undefined, }, _make) {
lib/plankton/shape/logic-impl.js        2087)         if (shape_result === undefined) {
lib/plankton/shape/logic-impl.js        2088)             let message = `mandatory parameter 'shape_result' missing`;
lib/plankton/shape/logic-impl.js        2089)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        2090)         }
lib/plankton/shape/logic-impl.js        2091)         if (shape_reason === undefined) {
lib/plankton/shape/logic-impl.js        2092)             let message = `mandatory parameter 'shape_reason' missing`;
lib/plankton/shape/logic-impl.js        2093)             throw (new Error(message));
lib/plankton/shape/logic-impl.js        2094)         }
lib/plankton/shape/logic-impl.js        2095)         if (defaultvalue === undefined) {
lib/plankton/shape/logic-impl.js        2096)             defaultvalue = (soft ? null : Promise.resolve(null));
lib/plankton/shape/logic-impl.js        2097)         }
lib/plankton/shape/logic-impl.js        2098)         return {
lib/plankton/shape/logic-impl.js        2099)             "soft": soft,
lib/plankton/shape/logic-impl.js        2100)             "shape_result": _make(shape_result),
lib/plankton/shape/logic-impl.js        2101)             "shape_reason": _make(shape_reason),
lib/plankton/shape/logic-impl.js        2102)             "defaultvalue": defaultvalue,
lib/plankton/shape/logic-impl.js        2103)         };
lib/plankton/shape/logic-impl.js        2104)     }
lib/plankton/shape/logic-impl.js        2105)     /**
lib/plankton/shape/logic-impl.js        2106)      * @author fenris
lib/plankton/shape/logic-impl.js        2107)      */
lib/plankton/shape/logic-impl.js        2108)     function promise_stance(parameters, bindings, _stance) {
lib/plankton/shape/logic-impl.js        2109)         return {
lib/plankton/shape/logic-impl.js        2110)             "name": "promise",
lib/plankton/shape/logic-impl.js        2111)             "parameters": {
lib/plankton/shape/logic-impl.js        2112)                 "soft": parameters.soft,
lib/plankton/shape/logic-impl.js        2113)                 "shape_result": _stance(parameters.shape_result, bindings),
lib/plankton/shape/logic-impl.js        2114)                 "shape_reason": _stance(parameters.shape_reason, bindings)
lib/plankton/shape/logic-impl.js        2115)             }
lib/plankton/shape/logic-impl.js        2116)         };
lib/plankton/shape/logic-impl.js        2117)     }
lib/plankton/shape/logic-impl.js        2118)     /**
lib/plankton/shape/logic-impl.js        2119)      * @author fenris
lib/plankton/shape/logic-impl.js        2120)      * @todo closer look not possible?
lib/plankton/shape/logic-impl.js        2121)      */
lib/plankton/shape/logic-impl.js        2122)     function promise_inspect(parameters, value, _inspect) {
lib/plankton/shape/logic-impl.js        2123)         let inspection = lib_shape.inspection_create();
lib/plankton/shape/logic-impl.js        2124)         if (value == undefined) {
lib/plankton/shape/logic-impl.js        2125)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        2126)                 // all good
lib/plankton/shape/logic-impl.js        2127)             }
lib/plankton/shape/logic-impl.js        2128)             else {
lib/plankton/shape/logic-impl.js        2129)                 lib_shape.inspection_add(inspection, "null is not allowed");
lib/plankton/shape/logic-impl.js        2130)             }
lib/plankton/shape/logic-impl.js        2131)         }
lib/plankton/shape/logic-impl.js        2132)         else {
lib/plankton/shape/logic-impl.js        2133)             let jstype_actual = typeof (value);
lib/plankton/shape/logic-impl.js        2134)             let jstype_expected = "object";
lib/plankton/shape/logic-impl.js        2135)             if (jstype_actual === jstype_expected) {
lib/plankton/shape/logic-impl.js        2136)                 if (value instanceof Promise /*<any, any>*/) {
lib/plankton/shape/logic-impl.js        2137)                     // all good?
lib/plankton/shape/logic-impl.js        2138)                 }
lib/plankton/shape/logic-impl.js        2139)                 else {
lib/plankton/shape/logic-impl.js        2140)                     lib_shape.inspection_add(inspection, `values is not an Promise-instance`);
lib/plankton/shape/logic-impl.js        2141)                 }
lib/plankton/shape/logic-impl.js        2142)             }
lib/plankton/shape/logic-impl.js        2143)             else {
lib/plankton/shape/logic-impl.js        2144)                 lib_shape.inspection_add(inspection, `expected JS-type '${jstype_expected}' but got '${jstype_actual}'`);
lib/plankton/shape/logic-impl.js        2145)             }
lib/plankton/shape/logic-impl.js        2146)         }
lib/plankton/shape/logic-impl.js        2147)         return inspection;
lib/plankton/shape/logic-impl.js        2148)     }
lib/plankton/shape/logic-impl.js        2149)     /**
lib/plankton/shape/logic-impl.js        2150)      * @author fenris
lib/plankton/shape/logic-impl.js        2151)      */
lib/plankton/shape/logic-impl.js        2152)     function promise_show(parameters, _show) {
lib/plankton/shape/logic-impl.js        2153)         let str;
lib/plankton/shape/logic-impl.js        2154)         // core
lib/plankton/shape/logic-impl.js        2155)         {
lib/plankton/shape/logic-impl.js        2156)             str = "promise";
lib/plankton/shape/logic-impl.js        2157)         }
lib/plankton/shape/logic-impl.js        2158)         // in/out
lib/plankton/shape/logic-impl.js        2159)         {
lib/plankton/shape/logic-impl.js        2160)             str += ("<"
lib/plankton/shape/logic-impl.js        2161)                 +
lib/plankton/shape/logic-impl.js        2162)                     [
lib/plankton/shape/logic-impl.js        2163)                         _show(parameters.shape_result),
lib/plankton/shape/logic-impl.js        2164)                         _show(parameters.shape_reason),
lib/plankton/shape/logic-impl.js        2165)                     ].join(",")
lib/plankton/shape/logic-impl.js        2166)                 +
lib/plankton/shape/logic-impl.js        2167)                     ">");
lib/plankton/shape/logic-impl.js        2168)         }
lib/plankton/shape/logic-impl.js        2169)         // soft
lib/plankton/shape/logic-impl.js        2170)         {
lib/plankton/shape/logic-impl.js        2171)             if (parameters.soft) {
lib/plankton/shape/logic-impl.js        2172)                 str = `~${str}`;
lib/plankton/shape/logic-impl.js        2173)             }
lib/plankton/shape/logic-impl.js        2174)         }
lib/plankton/shape/logic-impl.js        2175)         return str;
lib/plankton/shape/logic-impl.js        2176)     }
lib/plankton/shape/logic-impl.js        2177)     /**
lib/plankton/shape/logic-impl.js        2178)      * @author fenris
lib/plankton/shape/logic-impl.js        2179)      */
lib/plankton/shape/logic-impl.js        2180)     lib_shape.register({
lib/plankton/shape/logic-impl.js        2181)         "name": "promise",
lib/plankton/shape/logic-impl.js        2182)         "make": promise_make,
lib/plankton/shape/logic-impl.js        2183)         "inspect": promise_inspect,
lib/plankton/shape/logic-impl.js        2184)         "stance": promise_stance,
lib/plankton/shape/logic-impl.js        2185)         "show": promise_show,
lib/plankton/shape/logic-impl.js        2186)     });
lib/plankton/shape/logic-impl.js        2187) })(lib_shape || (lib_shape = {}));
lib/plankton/shape/logic-impl.js        2188) /*
lib/plankton/shape/logic-impl.js        2189) This file is part of »bacterio-plankton:shape«.
lib/plankton/shape/logic-impl.js        2190) 
Christian Fraß [upd] server:lib:plankton

Christian Fraß authored 3 years ago

server/lib/plankton/shape/logic-impl.js 2191) Copyright 2016-2021 'Christian Fraß, Christian Neubauer, Martin Springwald GbR'