@olympeio/runtime-node 9.0.2 → 9.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/import/olympe.dm/datamodel/05_permission_schema.updateInst.json +1 -1
- package/import/olympe.dm/datamodel/06_structure.newInst.json +1 -1
- package/import/olympe.sc/datamodel/01_language.newInst.json +1 -1
- package/package.json +1 -1
- package/types/base.d.ts +316 -8
- package/types/cloud.d.ts +883 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"rootTag":"100000000000000000dd","operations":[{"o":2,"t":"0163d9653067b6237f62","p":{"ff023000000000000001":"guest","ff023000000000000004":"
|
|
1
|
+
{"rootTag":"100000000000000000dd","operations":[{"o":2,"t":"0163d9653067b6237f62","p":{"ff023000000000000001":"guest","ff023000000000000004":"f51f1c4bc2a9b2625629e8432e0ece5ab9a3a4a5f540921ce034f134f7274a23","ff023000000000000005":"3567c453d51df66c93ab2c123fade205922b55048e31cd5f338e19944a79463c96d7529db5adce1db8e49d3a77f3589783fddf64605e6330d9d6659096628568cc251f734501184484327037acc94eedd2ef006aceeb5746c08bb621cac332b5feb10e72801325a66705760a938c124e57ac8e095b4219098a21df20ae3bca2309419f3f16dd624512b33fb1c7111175e997eae8607aaed5d4c51ed9bf0a1dbdcf60c662cb5da00343d261033c856ba9b578c5725978e087a95d6f8b5d29e0d7ddcd93e05e380afcbdb05626050cd233faa2cad6c38223eb3bf6389663156a02a7c7eee342cc55145349bf3a10d9a955dabc16f36206c1649579773f3edb58ff"},"i":30}],"optionalOperations":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"rootTag":"10000000000000000000","operations":[{"o":1,"t":"10000000000000000000","p":{"ff023000000000000011":"Home"},"i":15},{"o":1,"t":"100000000000000000dd","p":{"017869c7d2833c9492c1":"@olympeio/runtime","017869c80bb9929c76d0":"9.0.
|
|
1
|
+
{"rootTag":"10000000000000000000","operations":[{"o":1,"t":"10000000000000000000","p":{"ff023000000000000011":"Home"},"i":15},{"o":1,"t":"100000000000000000dd","p":{"017869c7d2833c9492c1":"@olympeio/runtime","017869c80bb9929c76d0":"9.0.3","ff023000000000000011":"Primordial"},"i":26}],"optionalOperations":[{"o":1,"t":"10000000000000000001","p":{"ff023000000000000011":"Olympe"},"i":18}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"011100000000000adef0","p":{"ff023000000000000011":"Function Signature"},"i":276},{"o":1,"t":"011100000001000adef0","p":{"01703376c4a81c0e9d92":"A function signature defines the inputs and outputs, with names and types, of a function, but does not provide an implementation.Function signatures can be used to define the type of a function input or output or of a visual component property.A signature for functions"},"i":277},{"o":1,"t":"0112000000000000def0","p":{"fd01692aa71f3108454479":false,"ff023000000000000011":"Runnable Definition"},"i":293},{"o":1,"t":"01120300000000adef00","p":{"ff023000000000000011":"Application Definition","ff023000000000000012":true},"i":453},{"o":1,"t":"011203300000000adee0","p":{"ff023000000000000011":"dependencies"},"i":469},{"o":1,"t":"011203300000000adef3","p":{"ff023000000000000011":"Service App"},"i":475},{"o":1,"t":"011203300000000adef4","p":{"ff023000000000000011":"Deployment Info","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":475},{"o":1,"t":"011203300000000adef5","p":{"fd011203300000000adef6":false,"fd011203300000000adef7":false,"fd011203300000000adef8":0,"ff023000000000000011":"Deployment Info"},"i":469},{"o":1,"t":"011203300000000adef6","p":{"ff023000000000000011":"activated"},"i":469},{"o":1,"t":"011203300000000adef7","p":{"ff023000000000000011":"rebuild"},"i":469},{"o":1,"t":"011203300000000adef8","p":{"ff023000000000000011":"status"},"i":469},{"o":1,"t":"011203300000000adef9","p":{"ff023000000000000011":"last error"},"i":469},{"o":1,"t":"011203300000000adefa","p":{"ff023000000000000011":"project URL"},"i":469},{"o":1,"t":"011203300000000adefb","p":{"ff023000000000000011":"project branch"},"i":469},{"o":1,"t":"011203300000000adefc","p":{"ff023000000000000011":"build command"},"i":469},{"o":1,"t":"011203300000000adefd","p":{"ff023000000000000011":"project config"},"i":469},{"o":1,"t":"011203300000000adefe","p":{"ff023000000000000011":"logs"},"i":469},{"o":1,"t":"011203300000000adeff","p":{"ff023000000000000011":"port mappings"},"i":469},{"o":1,"t":"011203300000000adf00","p":{"fd011203300000000adf01":0,"fd011203300000000adf02":20000,"ff023000000000000011":"System Information"},"i":445},{"o":1,"t":"011203300000000adf01","p":{"ff023000000000000011":"appController timestamp"},"i":445},{"o":1,"t":"011203300000000adf02","p":{"ff023000000000000011":"appController heart rate"},"i":445},{"o":1,"t":"011203300000000adf0f","p":{},"i":447},{"o":1,"t":"011203300001000adef3","p":{"01703376c4a81c0e9d91":"A headless (with no UI) application.","01703376c4a81c0e9d92":"Service Apps are back-end applications that are meant to be run on servers or IoT devices that do not have screens. They run in the background and are typically used to capture data from a third party, process data, perform data input validation, etc."},"i":476},{"o":1,"t":"01130000000000ca1100","p":{"ff023000000000000011":"Runnable","ff023000000000000012":true},"i":303},{"o":1,"t":"0113030000000aca1100","p":{"ff023000000000000011":"Application","ff023000000000000012":true},"i":498},{"o":1,"t":"0113032000000aca1102","p":{"ff023000000000000011":"Headless Application","ff023000000000000012":true},"i":502},{"o":1,"t":"01621fb84e32000000a0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Ascender"},"i":374},{"o":1,"t":"01621fb84e32000000a1","p":{"ff023000000000000011":"Input","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2},"i":374},{"o":1,"t":"01621fb84e32000000a2","p":{"ff023000000000000011":"Upward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2},"i":374},{"o":1,"t":"01621fb84e32000000d0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Descender"},"i":380},{"o":1,"t":"01621fb84e32000000d1","p":{"ff023000000000000011":"Downward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2},"i":380},{"o":1,"t":"01621fb84e32000000d2","p":{"ff023000000000000011":"Output","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2},"i":380},{"o":1,"t":"01621fb84e320000a000","p":{"ff023000000000000011":"Action"},"i":390},{"o":1,"t":"01621fb84e320000cf00","p":{"ff023000000000000011":"Control Flow"},"i":233},{"o":1,"t":"01621fb84e320000f000","p":{"ff023000000000000011":"Function"},"i":330},{"o":1,"t":"01621fb84e320000f00a","p":{"ff023000000000000011":"Inputs","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":293},{"o":1,"t":"01621fb84e320000f00b","p":{"ff023000000000000011":"Outputs","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":293},{"o":1,"t":"01621fb84e320000f011","p":{"ff023000000000000011":"Coded Function"},"i":341},{"o":1,"t":"01621fb84e320000f012","p":{"ff023000000000000011":"Coded Action"},"i":398},{"o":1,"t":"01621fb84e330000a000","p":{"01703376c4a81c0e9d91":"A function triggered by a control flow.","01703376c4a81c0e9d92":"An action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow."},"i":391},{"o":1,"t":"01621fb84e330000f000","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A function is the basic bloc for creating automation. It takes some inputs and produces outputs.\nFor instance the addition is a function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs."},"i":331},{"o":1,"t":"01621fb84e330000f011","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A function is the basic bloc for creating automation. It takes some inputs and produces outputs.\nFor instance the addition is a function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs. A coded function needs to be implemented with code (e.g.: javascript) and deployed to be functional."},"i":342},{"o":1,"t":"01621fb84e330000f012","p":{"01703376c4a81c0e9d91":"A coded function triggered by a control flow.","01703376c4a81c0e9d92":"An action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow.A Coded action needs to be implemented with code (e.g.: javascript) and deployed to be functional."},"i":399},{"o":1,"t":"0162f15740c36629dc57","p":{"ff023000000000000011":"description"},"i":330},{"o":1,"t":"0162f672366be5ca7a86","p":{"ff023000000000000011":"Type"},"i":134},{"o":1,"t":"01631aacd5c1f9d61c5d","p":{"ff023000000000000011":"Map"},"i":138},{"o":1,"t":"01631aacd5c2f9d61c5d","p":{"01703376c4a81c0e9d91":"An ordered collection of key-value pairs.","01703376c4a81c0e9d92":"A Map is a collection of values. Each value has a unique key and can be accessed through that key."},"i":139},{"o":1,"t":"01631aacd8276ea98490","p":{"ff023000000000000011":"List"},"i":146},{"o":1,"t":"01631aacd8276ea98491","p":{"ff023000000000000011":"Array"},"i":163},{"o":1,"t":"01631aacd8276ea98492","p":{"ff023000000000000011":"Query Result"},"i":173},{"o":1,"t":"01631aacd8276ea98493","p":{"ff023000000000000011":"Query"},"i":183},{"o":1,"t":"01631aacd8276ea98494","p":{"ff023000000000000011":"Filter Type"},"i":191},{"o":1,"t":"01631aacd8276ea98495","p":{"ff023000000000000011":"Sort Direction"},"i":199},{"o":1,"t":"01631aacd8276ea98496","p":{"017a7690c915975ea995":0,"ff023000000000000011":"equals","ff023000000000000026":"equals"},"i":215},{"o":1,"t":"01631aacd8276ea98497","p":{"017a7690c915975ea995":1,"ff023000000000000011":"different","ff023000000000000026":"different"},"i":216},{"o":1,"t":"01631aacd8276ea98498","p":{"017a7690c915975ea995":2,"ff023000000000000011":"contains","ff023000000000000026":"contains"},"i":217},{"o":1,"t":"01631aacd8276ea98499","p":{"017a7690c915975ea995":3,"ff023000000000000011":"greater than","ff023000000000000026":"greater than"},"i":218},{"o":1,"t":"01631aacd8276ea9849a","p":{"017a7690c915975ea995":4,"ff023000000000000011":"greater or equals","ff023000000000000026":"greater or equals"},"i":219},{"o":1,"t":"01631aacd8276ea9849b","p":{"017a7690c915975ea995":5,"ff023000000000000011":"smaller than","ff023000000000000026":"smaller than"},"i":220},{"o":1,"t":"01631aacd8276ea9849c","p":{"017a7690c915975ea995":6,"ff023000000000000011":"smaller or equals","ff023000000000000026":"smaller or equals"},"i":221},{"o":1,"t":"01631aacd8276ea9849d","p":{"017a7690c915975ea995":7,"ff023000000000000011":"regexp","ff023000000000000026":"regexp"},"i":222},{"o":1,"t":"01631aacd8276ea9849e","p":{"017a7690c915975ea995":0,"ff023000000000000011":"ascending","ff023000000000000026":"ascending"},"i":224},{"o":1,"t":"01631aacd8276ea9849f","p":{"017a7690c915975ea995":1,"ff023000000000000011":"descending","ff023000000000000026":"descending"},"i":225},{"o":1,"t":"01631aacd8286ea98490","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **List** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":147},{"o":1,"t":"01631aacd8286ea98491","p":{"01703376c4a81c0e9d91":"A mutable ordered collection of objects.","01703376c4a81c0e9d92":"An **Array** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":164},{"o":1,"t":"01631aacd8286ea98492","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **QueryResult** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":174},{"o":1,"t":"01631aacd8286ea98493","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":184},{"o":1,"t":"01631aacd8286ea98494","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":192},{"o":1,"t":"01631aacd8286ea98495","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":200},{"o":1,"t":"016324fde11a836f76c2","p":{"ff023000000000000011":"Data Type"},"i":40},{"o":1,"t":"016324fde11b836f76c2","p":{"01703376c4a81c0e9d91":"An application specific data structure.","01703376c4a81c0e9d92":"A data type let you specify a complex data structure which contains a number of properties an relations.\nThis is very similar to the concept of 'Class' in object-oriented programming languages."},"i":41},{"o":1,"t":"0163a68ce44f3d1fa84c","p":{"ff023000000000000011":"Data Model"},"i":49},{"o":1,"t":"0163a68ce4503d1fa84c","p":{"01703376c4a81c0e9d91":"A set of data types.","01703376c4a81c0e9d92":"A **Data Model** is where you define the data structures, called **Data Types**, that your applications will manipulate (e.g. Customer, Receipt, Order, etc...). A project can have multiple **Data Models**."},"i":50},{"o":1,"t":"0163c9ae01f2d6e9ca49","p":{"ff023000000000000011":"ObjectRef"},"i":122},{"o":1,"t":"0163c9ae0401d21eb0c3","p":{"ff023000000000000011":"objectTag"},"i":122},{"o":1,"t":"016421bb3797e22d1c4e","p":{"ff023000000000000011":"Video Stream"},"i":130},{"o":1,"t":"01644b6297305d62fca2","p":{"ff023000000000000011":"Image File"},"i":74},{"o":1,"t":"01644b6297315d62fca2","p":{"01703376c4a81c0e9d91":"A file containing an image.","01703376c4a81c0e9d92":"An image file contains a binary encoded image. Supported formats are jpeg, png and gif."},"i":75},{"o":1,"t":"01644b6d4543b344b857","p":{"ff023000000000000011":"Media Library"},"i":66},{"o":1,"t":"01644b6d4544b344b857","p":{"01703376c4a81c0e9d91":"A repository for media resources.","01703376c4a81c0e9d92":"A **Media Library** is a set of assets like fonts & images that can be used by the project it belongs to."},"i":67},{"o":1,"t":"01645fe6873aeea59e64","p":{"ff023000000000000011":"Data Set"},"i":29},{"o":1,"t":"01645fe6873beea59e64","p":{"01703376c4a81c0e9d91":"Set of data records.","01703376c4a81c0e9d92":"**Data Sets** are used to create data records that will be available in the applications at runtime.\nCompared to business data created at runtime, records inside **Data Sets** are saved during the export of the project, as part of the application data.\nFor example this is where you would create initial entries of your **Customer** data types."},"i":30},{"o":1,"t":"0164643c432146a71d5c","p":{"ff023000000000000011":"Video File"},"i":105},{"o":1,"t":"0164643c432246a71d5c","p":{"01703376c4a81c0e9d91":"A file containing a video recording.","01703376c4a81c0e9d92":"An video file contains a binary encoded video. Supported formats are mp4, mpeg and avi."},"i":106},{"o":1,"t":"01647e113043c637b541","p":{"fd01647e677f5d1cfbdf42":"normal","fd01647e6780999bf8bd25":300,"ff023000000000000011":"Font File"},"i":98},{"o":1,"t":"01647e113044c637b541","p":{"01703376c4a81c0e9d91":"A file containing a font definition.","01703376c4a81c0e9d92":"A font file contains a set of graphically related used to display strings on the screen.\n Supported formats are: woff & woff2"},"i":99},{"o":1,"t":"01647e35ecd24ef0b88d","p":{"ff023000000000000011":"Font Family"},"i":98},{"o":1,"t":"01647e677f5d1cfbdf42","p":{"ff023000000000000011":"Font Style"},"i":98},{"o":1,"t":"01647e6780999bf8bd25","p":{"ff023000000000000011":"Font Weight"},"i":98},{"o":1,"t":"0166446c1f128ebc903a","p":{"ff023000000000000011":"On Load"},"i":293},{"o":1,"t":"0168a431d25001540000","p":{"ff023000000000000011":"Runnable IO","ff023000000000000012":true},"i":257},{"o":1,"t":"0168a431d25001540001","p":{"ff023000000000000011":"Runnable Input"},"i":262},{"o":1,"t":"0168a431d25001540002","p":{"ff023000000000000011":"Runnable Output"},"i":265},{"o":1,"t":"0168a431d3b9b7438424","p":{"ff023000000000000011":"Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1},"i":257},{"o":1,"t":"0168a431d91f25780000","p":{"ff023000000000000011":"Pipe"},"i":366},{"o":1,"t":"0168a431d91f25780001","p":{"ff023000000000000011":"Source Value"},"i":366},{"o":1,"t":"0168a431d91f25780002","p":{"ff023000000000000011":"Source Scope","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f25780003","p":{"ff023000000000000011":"Source Output","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f25780004","p":{"ff023000000000000011":"Source Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000a","p":{"ff023000000000000011":"Destination Scope","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":10,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000b","p":{"ff023000000000000011":"Destination Input","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000c","p":{"ff023000000000000011":"Destination Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168c6f020f2a96a0000","p":{"ff023000000000000011":"Action Call","ff023000000000000012":true},"i":407},{"o":1,"t":"0168c6f020f2a96f0000","p":{"ff023000000000000011":"Function Call","ff023000000000000012":true},"i":352},{"o":1,"t":"01692a4af82e8984742b","p":{"ff023000000000000011":"Definition of runnable","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":303},{"o":1,"t":"01692a4af82e8984742c","p":{"ff023000000000000011":"Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":6},"i":306},{"o":1,"t":"01692a4af82e8984742d","p":{"ff023000000000000011":"Conditional Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":1,"ff023000000000000337":6},"i":307},{"o":1,"t":"01692a4af82e8984742e","p":{"ff023000000000000011":"Extra Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":4,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":4},"i":308},{"o":1,"t":"01692aa71f3108454479","p":{"ff023000000000000011":"hardcoded"},"i":293},{"o":1,"t":"0169b5a8a33144fb0b49","p":{"ff023000000000000011":"reference","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":122},{"o":1,"t":"016a9766c230916ea5ec","p":{"ff023000000000000011":"Service"},"i":412},{"o":1,"t":"016a9766c231916ea5ec","p":{"01703376c4a81c0e9d91":"A function to be run in a Service Application.","01703376c4a81c0e9d92":"A `Service` is a function meant to be run inside a headless application."},"i":413},{"o":1,"t":"016ac4f59a2917fdef01","p":{"ff023000000000000011":"Predefined Inputs rel","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":276},{"o":1,"t":"016ac4f59a2917fdef02","p":{"ff023000000000000011":"Predefined Outputs rel","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":276},{"o":1,"t":"016ac4f59c592b862457","p":{"ff023000000000000011":"Predefined Input"},"i":247},{"o":1,"t":"016ac4f59dd99f5df3e1","p":{"ff023000000000000011":"Predefined Output"},"i":250},{"o":1,"t":"016ac4f59ee8ea2081ba","p":{"ff023000000000000011":"Predefined IO","ff023000000000000012":true},"i":244},{"o":1,"t":"016ac4f5a0091c4790e2","p":{"ff023000000000000011":"Predefined Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1},"i":244},{"o":1,"t":"016ac63229782039429f","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":390},{"o":1,"t":"016ac6322acf67eebfe7","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":390},{"o":1,"t":"016ac63c5b3ed0562740","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":412},{"o":1,"t":"016c2d996d9ca27fa9d8","p":{"ff023000000000000011":"Delegate","ff023000000000000012":true},"i":315},{"o":1,"t":"016c3cb7742ec9309e0b","p":{"ff023000000000000011":"Delegator Relation","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1},"i":315},{"o":1,"t":"016c42d3454636f90533","p":{"ff023000000000000011":"Delegated Properties","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1},"i":315},{"o":1,"t":"016cfca73e63f9ab5ba4","p":{"ff023000000000000011":"Text"},"i":155},{"o":1,"t":"016d3f37610ae4fc3962","p":{"ff023000000000000011":"SizeDelegator"},"i":318},{"o":1,"t":"016eb13ba1388f7bdd71","p":{"ff023000000000000011":"picture_default","ff023000000000000050":"picture_default.svg","ff023000000000000051":{"c":4,"h":15,"m":19,"s":5,"S":182,"z":0,"y":2022,"M":5,"d":2},"ff023000000000000052":"image/svg+xml","ff023000000000000053":"images/picture_default.svg","ff023000000000000054":false,"ff023000000000000055":{"c":4,"h":15,"m":19,"s":5,"S":182,"z":0,"y":2022,"M":5,"d":2}},"i":89},{"o":1,"t":"016eeb5ede9f3094d8f0","p":{"ff023000000000000011":"Error Flow"},"i":237},{"o":1,"t":"0171838bcfed0000a00a","p":{"ff023000000000000011":"Auxiliary model","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":0},"i":293},{"o":1,"t":"0171838bcfed0000e00e","p":{"ff023000000000000011":"Super Definition","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":293},{"o":1,"t":"0171bc1f15da96dfdb89","p":{"ff023000000000000011":"app project import","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":453},{"o":1,"t":"01740c5d4ae4b520dd01","p":{"ff023000000000000011":"IO Rank"},"i":257},{"o":1,"t":"01740c5d4ae4b520dd02","p":{"ff023000000000000011":"Default Value"},"i":262},{"o":1,"t":"01756a18d4921c103111","p":{"ff023000000000000011":"Anonymous definition","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":10,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":10},"i":303},{"o":1,"t":"017a7a9ff057958e5678","p":{"ff023000000000000011":"Enums"},"i":15},{"o":1,"t":"017a7a9ff058958e5678","p":{"01703376c4a81c0e9d91":"A folder for grouping enums.","01703376c4a81c0e9d92":"A Enum Folder is a group of 1 or more enums, it is linked to the Enum Editor."},"i":16},{"o":1,"t":"017a7b07a948e30508fa","p":{"ff023000000000000011":"Remote Action"},"i":424},{"o":1,"t":"017a7b07a949e30508fa","p":{"01703376c4a81c0e9d91":"A remote function triggered by a control flow.","01703376c4a81c0e9d92":"A remote action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow. It is executed on a remote service."},"i":425},{"o":1,"t":"017a7b07b09e3b22c8b4","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":424},{"o":1,"t":"017a7b07ba05807a74b0","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"User"},"i":424},{"o":1,"t":"017a7b0818c12388d731","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":424},{"o":1,"t":"017a7b085146d5e69aec","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"},"i":424},{"o":1,"t":"017a7b0c5dcbd8964c5d","p":{"fd017a7b0c62a02a89444f":false,"ff023000000000000011":"Remote Action Call","ff023000000000000012":true},"i":434},{"o":1,"t":"017a7b0c62a02a89444f","p":{"ff023000000000000011":"listener"},"i":434},{"o":1,"t":"017b3aa8fae1e3d044dc","p":{"ff023000000000000011":"Business Container"},"i":60},{"o":1,"t":"017b3aa8fd1659291b92","p":{"ff023000000000000011":"business container to project","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":0,"ff023000000000000337":9},"i":60},{"o":1,"t":"017b3aa8fe7ec3fd52f2","p":{"ff023000000000000011":"business container to runtime objects","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":0},"i":60},{"o":1,"t":"017bc044aeacce7ffc8f","p":{"ff023000000000000011":"Predefined IO Rank"},"i":244},{"o":1,"t":"017dc8c114aa61a0e27f","p":{"ff023000000000000011":"DBConnector","ff023000000000000012":true},"i":493},{"o":1,"t":"017dc8d6c8fd8c8bd2f0","p":{"ff023000000000000011":"DBConnectorDefinition"},"i":487},{"o":1,"t":"017dc8d6d8ef9135f08a","p":{"ff023000000000000011":"DBConnector to business models","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":493},{"o":1,"t":"017dc8d6d8ef9135f08b","p":{"ff023000000000000011":"DBConnector to projects","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":4,"ff023000000000000137":9,"ff023000000000000237":8,"ff023000000000000337":4},"i":493},{"o":1,"t":"017dc92292107fb98b21","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"ID"},"i":487},{"o":1,"t":"017ed8ac775f48d4d589","p":{"ff023000000000000011":"dataRel","ff023000000000000030":16,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":0,"ff023000000000000337":2},"i":29}],"optionalOperations":[]}
|
|
1
|
+
{"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"011100000000000adef0","p":{"ff023000000000000011":"Function Signature"},"i":276},{"o":1,"t":"011100000001000adef0","p":{"01703376c4a81c0e9d92":"A function signature defines the inputs and outputs, with names and types, of a function, but does not provide an implementation.Function signatures can be used to define the type of a function input or output or of a visual component property.A signature for functions"},"i":277},{"o":1,"t":"0112000000000000def0","p":{"fd01692aa71f3108454479":false,"ff023000000000000011":"Runnable Definition"},"i":293},{"o":1,"t":"01120300000000adef00","p":{"ff023000000000000011":"Application Definition","ff023000000000000012":true},"i":453},{"o":1,"t":"011203300000000adee0","p":{"ff023000000000000011":"dependencies"},"i":469},{"o":1,"t":"011203300000000adef3","p":{"ff023000000000000011":"Service App"},"i":475},{"o":1,"t":"011203300000000adef4","p":{"ff023000000000000011":"Deployment Info","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":475},{"o":1,"t":"011203300000000adef5","p":{"fd011203300000000adef6":false,"fd011203300000000adef7":false,"fd011203300000000adef8":0,"ff023000000000000011":"Deployment Info"},"i":469},{"o":1,"t":"011203300000000adef6","p":{"ff023000000000000011":"activated"},"i":469},{"o":1,"t":"011203300000000adef7","p":{"ff023000000000000011":"rebuild"},"i":469},{"o":1,"t":"011203300000000adef8","p":{"ff023000000000000011":"status"},"i":469},{"o":1,"t":"011203300000000adef9","p":{"ff023000000000000011":"last error"},"i":469},{"o":1,"t":"011203300000000adefa","p":{"ff023000000000000011":"project URL"},"i":469},{"o":1,"t":"011203300000000adefb","p":{"ff023000000000000011":"project branch"},"i":469},{"o":1,"t":"011203300000000adefc","p":{"ff023000000000000011":"build command"},"i":469},{"o":1,"t":"011203300000000adefd","p":{"ff023000000000000011":"project config"},"i":469},{"o":1,"t":"011203300000000adefe","p":{"ff023000000000000011":"logs"},"i":469},{"o":1,"t":"011203300000000adeff","p":{"ff023000000000000011":"port mappings"},"i":469},{"o":1,"t":"011203300000000adf00","p":{"fd011203300000000adf01":0,"fd011203300000000adf02":20000,"ff023000000000000011":"System Information"},"i":445},{"o":1,"t":"011203300000000adf01","p":{"ff023000000000000011":"appController timestamp"},"i":445},{"o":1,"t":"011203300000000adf02","p":{"ff023000000000000011":"appController heart rate"},"i":445},{"o":1,"t":"011203300000000adf0f","p":{},"i":447},{"o":1,"t":"011203300001000adef3","p":{"01703376c4a81c0e9d91":"A headless (with no UI) application.","01703376c4a81c0e9d92":"Service Apps are back-end applications that are meant to be run on servers or IoT devices that do not have screens. They run in the background and are typically used to capture data from a third party, process data, perform data input validation, etc."},"i":476},{"o":1,"t":"01130000000000ca1100","p":{"ff023000000000000011":"Runnable","ff023000000000000012":true},"i":303},{"o":1,"t":"0113030000000aca1100","p":{"ff023000000000000011":"Application","ff023000000000000012":true},"i":498},{"o":1,"t":"0113032000000aca1102","p":{"ff023000000000000011":"Headless Application","ff023000000000000012":true},"i":502},{"o":1,"t":"01621fb84e32000000a0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Ascender"},"i":374},{"o":1,"t":"01621fb84e32000000a1","p":{"ff023000000000000011":"Input","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2},"i":374},{"o":1,"t":"01621fb84e32000000a2","p":{"ff023000000000000011":"Upward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2},"i":374},{"o":1,"t":"01621fb84e32000000d0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Descender"},"i":380},{"o":1,"t":"01621fb84e32000000d1","p":{"ff023000000000000011":"Downward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2},"i":380},{"o":1,"t":"01621fb84e32000000d2","p":{"ff023000000000000011":"Output","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2},"i":380},{"o":1,"t":"01621fb84e320000a000","p":{"ff023000000000000011":"Action"},"i":390},{"o":1,"t":"01621fb84e320000cf00","p":{"ff023000000000000011":"Control Flow"},"i":233},{"o":1,"t":"01621fb84e320000f000","p":{"ff023000000000000011":"Function"},"i":330},{"o":1,"t":"01621fb84e320000f00a","p":{"ff023000000000000011":"Inputs","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":293},{"o":1,"t":"01621fb84e320000f00b","p":{"ff023000000000000011":"Outputs","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":293},{"o":1,"t":"01621fb84e320000f011","p":{"ff023000000000000011":"Coded Function"},"i":341},{"o":1,"t":"01621fb84e320000f012","p":{"ff023000000000000011":"Coded Action"},"i":398},{"o":1,"t":"01621fb84e330000a000","p":{"01703376c4a81c0e9d91":"A function triggered by a control flow.","01703376c4a81c0e9d92":"An action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow."},"i":391},{"o":1,"t":"01621fb84e330000f000","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A function is the basic bloc for creating automation. It takes some inputs and produces outputs.\nFor instance the addition is a function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs."},"i":331},{"o":1,"t":"01621fb84e330000f011","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A function is the basic bloc for creating automation. It takes some inputs and produces outputs.\nFor instance the addition is a function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs. A coded function needs to be implemented with code (e.g.: javascript) and deployed to be functional."},"i":342},{"o":1,"t":"01621fb84e330000f012","p":{"01703376c4a81c0e9d91":"A coded function triggered by a control flow.","01703376c4a81c0e9d92":"An action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow.A Coded action needs to be implemented with code (e.g.: javascript) and deployed to be functional."},"i":399},{"o":1,"t":"0162f15740c36629dc57","p":{"ff023000000000000011":"description"},"i":330},{"o":1,"t":"0162f672366be5ca7a86","p":{"ff023000000000000011":"Type"},"i":134},{"o":1,"t":"01631aacd5c1f9d61c5d","p":{"ff023000000000000011":"Map"},"i":138},{"o":1,"t":"01631aacd5c2f9d61c5d","p":{"01703376c4a81c0e9d91":"An ordered collection of key-value pairs.","01703376c4a81c0e9d92":"A Map is a collection of values. Each value has a unique key and can be accessed through that key."},"i":139},{"o":1,"t":"01631aacd8276ea98490","p":{"ff023000000000000011":"List"},"i":146},{"o":1,"t":"01631aacd8276ea98491","p":{"ff023000000000000011":"Array"},"i":163},{"o":1,"t":"01631aacd8276ea98492","p":{"ff023000000000000011":"Query Result"},"i":173},{"o":1,"t":"01631aacd8276ea98493","p":{"ff023000000000000011":"Query"},"i":183},{"o":1,"t":"01631aacd8276ea98494","p":{"ff023000000000000011":"Filter Type"},"i":191},{"o":1,"t":"01631aacd8276ea98495","p":{"ff023000000000000011":"Sort Direction"},"i":199},{"o":1,"t":"01631aacd8276ea98496","p":{"017a7690c915975ea995":0,"ff023000000000000011":"equals","ff023000000000000026":"equals"},"i":215},{"o":1,"t":"01631aacd8276ea98497","p":{"017a7690c915975ea995":1,"ff023000000000000011":"different","ff023000000000000026":"different"},"i":216},{"o":1,"t":"01631aacd8276ea98498","p":{"017a7690c915975ea995":2,"ff023000000000000011":"contains","ff023000000000000026":"contains"},"i":217},{"o":1,"t":"01631aacd8276ea98499","p":{"017a7690c915975ea995":3,"ff023000000000000011":"greater than","ff023000000000000026":"greater than"},"i":218},{"o":1,"t":"01631aacd8276ea9849a","p":{"017a7690c915975ea995":4,"ff023000000000000011":"greater or equals","ff023000000000000026":"greater or equals"},"i":219},{"o":1,"t":"01631aacd8276ea9849b","p":{"017a7690c915975ea995":5,"ff023000000000000011":"smaller than","ff023000000000000026":"smaller than"},"i":220},{"o":1,"t":"01631aacd8276ea9849c","p":{"017a7690c915975ea995":6,"ff023000000000000011":"smaller or equals","ff023000000000000026":"smaller or equals"},"i":221},{"o":1,"t":"01631aacd8276ea9849d","p":{"017a7690c915975ea995":7,"ff023000000000000011":"regexp","ff023000000000000026":"regexp"},"i":222},{"o":1,"t":"01631aacd8276ea9849e","p":{"017a7690c915975ea995":0,"ff023000000000000011":"ascending","ff023000000000000026":"ascending"},"i":224},{"o":1,"t":"01631aacd8276ea9849f","p":{"017a7690c915975ea995":1,"ff023000000000000011":"descending","ff023000000000000026":"descending"},"i":225},{"o":1,"t":"01631aacd8286ea98490","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **List** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":147},{"o":1,"t":"01631aacd8286ea98491","p":{"01703376c4a81c0e9d91":"A mutable ordered collection of objects.","01703376c4a81c0e9d92":"An **Array** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":164},{"o":1,"t":"01631aacd8286ea98492","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **QueryResult** is a collection of objects of the same type (e.g. a list of strings). It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).\nThis is similar to arrays in programming languages."},"i":174},{"o":1,"t":"01631aacd8286ea98493","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":184},{"o":1,"t":"01631aacd8286ea98494","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":192},{"o":1,"t":"01631aacd8286ea98495","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"},"i":200},{"o":1,"t":"016324fde11a836f76c2","p":{"ff023000000000000011":"Data Type"},"i":40},{"o":1,"t":"016324fde11b836f76c2","p":{"01703376c4a81c0e9d91":"An application specific data structure.","01703376c4a81c0e9d92":"A data type let you specify a complex data structure which contains a number of properties an relations.\nThis is very similar to the concept of 'Class' in object-oriented programming languages."},"i":41},{"o":1,"t":"0163a68ce44f3d1fa84c","p":{"ff023000000000000011":"Data Model"},"i":49},{"o":1,"t":"0163a68ce4503d1fa84c","p":{"01703376c4a81c0e9d91":"A set of data types.","01703376c4a81c0e9d92":"A **Data Model** is where you define the data structures, called **Data Types**, that your applications will manipulate (e.g. Customer, Receipt, Order, etc...). A project can have multiple **Data Models**."},"i":50},{"o":1,"t":"0163c9ae01f2d6e9ca49","p":{"ff023000000000000011":"ObjectRef"},"i":122},{"o":1,"t":"0163c9ae0401d21eb0c3","p":{"ff023000000000000011":"objectTag"},"i":122},{"o":1,"t":"016421bb3797e22d1c4e","p":{"ff023000000000000011":"Video Stream"},"i":130},{"o":1,"t":"01644b6297305d62fca2","p":{"ff023000000000000011":"Image File"},"i":74},{"o":1,"t":"01644b6297315d62fca2","p":{"01703376c4a81c0e9d91":"A file containing an image.","01703376c4a81c0e9d92":"An image file contains a binary encoded image. Supported formats are jpeg, png and gif."},"i":75},{"o":1,"t":"01644b6d4543b344b857","p":{"ff023000000000000011":"Media Library"},"i":66},{"o":1,"t":"01644b6d4544b344b857","p":{"01703376c4a81c0e9d91":"A repository for media resources.","01703376c4a81c0e9d92":"A **Media Library** is a set of assets like fonts & images that can be used by the project it belongs to."},"i":67},{"o":1,"t":"01645fe6873aeea59e64","p":{"ff023000000000000011":"Data Set"},"i":29},{"o":1,"t":"01645fe6873beea59e64","p":{"01703376c4a81c0e9d91":"Set of data records.","01703376c4a81c0e9d92":"**Data Sets** are used to create data records that will be available in the applications at runtime.\nCompared to business data created at runtime, records inside **Data Sets** are saved during the export of the project, as part of the application data.\nFor example this is where you would create initial entries of your **Customer** data types."},"i":30},{"o":1,"t":"0164643c432146a71d5c","p":{"ff023000000000000011":"Video File"},"i":105},{"o":1,"t":"0164643c432246a71d5c","p":{"01703376c4a81c0e9d91":"A file containing a video recording.","01703376c4a81c0e9d92":"An video file contains a binary encoded video. Supported formats are mp4, mpeg and avi."},"i":106},{"o":1,"t":"01647e113043c637b541","p":{"fd01647e677f5d1cfbdf42":"normal","fd01647e6780999bf8bd25":300,"ff023000000000000011":"Font File"},"i":98},{"o":1,"t":"01647e113044c637b541","p":{"01703376c4a81c0e9d91":"A file containing a font definition.","01703376c4a81c0e9d92":"A font file contains a set of graphically related used to display strings on the screen.\n Supported formats are: woff & woff2"},"i":99},{"o":1,"t":"01647e35ecd24ef0b88d","p":{"ff023000000000000011":"Font Family"},"i":98},{"o":1,"t":"01647e677f5d1cfbdf42","p":{"ff023000000000000011":"Font Style"},"i":98},{"o":1,"t":"01647e6780999bf8bd25","p":{"ff023000000000000011":"Font Weight"},"i":98},{"o":1,"t":"0166446c1f128ebc903a","p":{"ff023000000000000011":"On Load"},"i":293},{"o":1,"t":"0168a431d25001540000","p":{"ff023000000000000011":"Runnable IO","ff023000000000000012":true},"i":257},{"o":1,"t":"0168a431d25001540001","p":{"ff023000000000000011":"Runnable Input"},"i":262},{"o":1,"t":"0168a431d25001540002","p":{"ff023000000000000011":"Runnable Output"},"i":265},{"o":1,"t":"0168a431d3b9b7438424","p":{"ff023000000000000011":"Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1},"i":257},{"o":1,"t":"0168a431d91f25780000","p":{"ff023000000000000011":"Pipe"},"i":366},{"o":1,"t":"0168a431d91f25780001","p":{"ff023000000000000011":"Source Value"},"i":366},{"o":1,"t":"0168a431d91f25780002","p":{"ff023000000000000011":"Source Scope","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f25780003","p":{"ff023000000000000011":"Source Output","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f25780004","p":{"ff023000000000000011":"Source Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000a","p":{"ff023000000000000011":"Destination Scope","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":10,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000b","p":{"ff023000000000000011":"Destination Input","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168a431d91f2578000c","p":{"ff023000000000000011":"Destination Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":366},{"o":1,"t":"0168c6f020f2a96a0000","p":{"ff023000000000000011":"Action Call","ff023000000000000012":true},"i":407},{"o":1,"t":"0168c6f020f2a96f0000","p":{"ff023000000000000011":"Function Call","ff023000000000000012":true},"i":352},{"o":1,"t":"01692a4af82e8984742b","p":{"ff023000000000000011":"Definition of runnable","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":303},{"o":1,"t":"01692a4af82e8984742c","p":{"ff023000000000000011":"Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":6},"i":306},{"o":1,"t":"01692a4af82e8984742d","p":{"ff023000000000000011":"Conditional Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":1,"ff023000000000000337":6},"i":307},{"o":1,"t":"01692a4af82e8984742e","p":{"ff023000000000000011":"Extra Calls Runnable","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":4,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":4},"i":308},{"o":1,"t":"01692aa71f3108454479","p":{"ff023000000000000011":"hardcoded"},"i":293},{"o":1,"t":"0169b5a8a33144fb0b49","p":{"ff023000000000000011":"reference","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1},"i":122},{"o":1,"t":"016a9766c230916ea5ec","p":{"ff023000000000000011":"Service"},"i":412},{"o":1,"t":"016a9766c231916ea5ec","p":{"01703376c4a81c0e9d91":"A function to be run in a Service Application.","01703376c4a81c0e9d92":"A `Service` is a function meant to be run inside a headless application."},"i":413},{"o":1,"t":"016ac4f59a2917fdef01","p":{"ff023000000000000011":"Predefined Inputs rel","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":276},{"o":1,"t":"016ac4f59a2917fdef02","p":{"ff023000000000000011":"Predefined Outputs rel","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2},"i":276},{"o":1,"t":"016ac4f59c592b862457","p":{"ff023000000000000011":"Predefined Input"},"i":247},{"o":1,"t":"016ac4f59dd99f5df3e1","p":{"ff023000000000000011":"Predefined Output"},"i":250},{"o":1,"t":"016ac4f59ee8ea2081ba","p":{"ff023000000000000011":"Predefined IO","ff023000000000000012":true},"i":244},{"o":1,"t":"016ac4f5a0091c4790e2","p":{"ff023000000000000011":"Predefined Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1},"i":244},{"o":1,"t":"016ac63229782039429f","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":390},{"o":1,"t":"016ac6322acf67eebfe7","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":390},{"o":1,"t":"016ac63c5b3ed0562740","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":412},{"o":1,"t":"016c2d996d9ca27fa9d8","p":{"ff023000000000000011":"Delegate","ff023000000000000012":true},"i":315},{"o":1,"t":"016c3cb7742ec9309e0b","p":{"ff023000000000000011":"Delegator Relation","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1},"i":315},{"o":1,"t":"016c42d3454636f90533","p":{"ff023000000000000011":"Delegated Properties","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1},"i":315},{"o":1,"t":"016cfca73e63f9ab5ba4","p":{"ff023000000000000011":"Text"},"i":155},{"o":1,"t":"016d3f37610ae4fc3962","p":{"ff023000000000000011":"SizeDelegator"},"i":318},{"o":1,"t":"016eb13ba1388f7bdd71","p":{"ff023000000000000011":"picture_default","ff023000000000000050":"picture_default.svg","ff023000000000000051":{"c":4,"h":13,"m":50,"s":3,"S":731,"z":0,"y":2022,"M":5,"d":4},"ff023000000000000052":"image/svg+xml","ff023000000000000053":"images/picture_default.svg","ff023000000000000054":false,"ff023000000000000055":{"c":4,"h":13,"m":50,"s":3,"S":731,"z":0,"y":2022,"M":5,"d":4}},"i":89},{"o":1,"t":"016eeb5ede9f3094d8f0","p":{"ff023000000000000011":"Error Flow"},"i":237},{"o":1,"t":"0171838bcfed0000a00a","p":{"ff023000000000000011":"Auxiliary model","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":0},"i":293},{"o":1,"t":"0171838bcfed0000e00e","p":{"ff023000000000000011":"Super Definition","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":293},{"o":1,"t":"0171bc1f15da96dfdb89","p":{"ff023000000000000011":"app project import","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":453},{"o":1,"t":"01740c5d4ae4b520dd01","p":{"ff023000000000000011":"IO Rank"},"i":257},{"o":1,"t":"01740c5d4ae4b520dd02","p":{"ff023000000000000011":"Default Value"},"i":262},{"o":1,"t":"01756a18d4921c103111","p":{"ff023000000000000011":"Anonymous definition","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":10,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":10},"i":303},{"o":1,"t":"017a7a9ff057958e5678","p":{"ff023000000000000011":"Enums"},"i":15},{"o":1,"t":"017a7a9ff058958e5678","p":{"01703376c4a81c0e9d91":"A folder for grouping enums.","01703376c4a81c0e9d92":"A Enum Folder is a group of 1 or more enums, it is linked to the Enum Editor."},"i":16},{"o":1,"t":"017a7b07a948e30508fa","p":{"ff023000000000000011":"Remote Action"},"i":424},{"o":1,"t":"017a7b07a949e30508fa","p":{"01703376c4a81c0e9d91":"A remote function triggered by a control flow.","01703376c4a81c0e9d92":"A remote action is a function that is executed only when the incoming control flow is triggered and all its inputs have a value. Once it has updated all its outputs, it will trigger the outgoing control flow. It is executed on a remote service."},"i":425},{"o":1,"t":"017a7b07b09e3b22c8b4","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":424},{"o":1,"t":"017a7b07ba05807a74b0","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"User"},"i":424},{"o":1,"t":"017a7b0818c12388d731","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"},"i":424},{"o":1,"t":"017a7b085146d5e69aec","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"},"i":424},{"o":1,"t":"017a7b0c5dcbd8964c5d","p":{"fd017a7b0c62a02a89444f":false,"ff023000000000000011":"Remote Action Call","ff023000000000000012":true},"i":434},{"o":1,"t":"017a7b0c62a02a89444f","p":{"ff023000000000000011":"listener"},"i":434},{"o":1,"t":"017b3aa8fae1e3d044dc","p":{"ff023000000000000011":"Business Container"},"i":60},{"o":1,"t":"017b3aa8fd1659291b92","p":{"ff023000000000000011":"business container to project","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":0,"ff023000000000000337":9},"i":60},{"o":1,"t":"017b3aa8fe7ec3fd52f2","p":{"ff023000000000000011":"business container to runtime objects","ff023000000000000030":514,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":0},"i":60},{"o":1,"t":"017bc044aeacce7ffc8f","p":{"ff023000000000000011":"Predefined IO Rank"},"i":244},{"o":1,"t":"017dc8c114aa61a0e27f","p":{"ff023000000000000011":"DBConnector","ff023000000000000012":true},"i":493},{"o":1,"t":"017dc8d6c8fd8c8bd2f0","p":{"ff023000000000000011":"DBConnectorDefinition"},"i":487},{"o":1,"t":"017dc8d6d8ef9135f08a","p":{"ff023000000000000011":"DBConnector to business models","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1},"i":493},{"o":1,"t":"017dc8d6d8ef9135f08b","p":{"ff023000000000000011":"DBConnector to projects","ff023000000000000030":514,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":8,"ff023000000000000137":9,"ff023000000000000237":8,"ff023000000000000337":8},"i":493},{"o":1,"t":"017dc92292107fb98b21","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"ID"},"i":487},{"o":1,"t":"017ed8ac775f48d4d589","p":{"ff023000000000000011":"dataRel","ff023000000000000030":16,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":0,"ff023000000000000337":2},"i":29}],"optionalOperations":[]}
|
package/package.json
CHANGED
package/types/base.d.ts
CHANGED
|
@@ -6,29 +6,69 @@ import {Empty, PropertyModel, Query, QueryResult, QuerySingle} from "./cloud";
|
|
|
6
6
|
// Primitives
|
|
7
7
|
// **********************************
|
|
8
8
|
|
|
9
|
-
declare type Class<T> = { new
|
|
10
|
-
|
|
9
|
+
declare type Class<T> = { new(): T };
|
|
10
|
+
/**
|
|
11
|
+
* A Tag can be either a `string`, a `HasTag` (CloudObject instance, Property, Relation, ...)
|
|
12
|
+
* or the class constructor for a `CloudObject`
|
|
13
|
+
*/
|
|
11
14
|
export type Tag = string | HasTag | Class<CloudObject>;
|
|
15
|
+
|
|
12
16
|
export type List<T> = Array<T> | QueryResult<T>;
|
|
13
17
|
|
|
18
|
+
/**
|
|
19
|
+
* Generates a unique olympe tag used to identify `CloudObjects`
|
|
20
|
+
*
|
|
21
|
+
* @return {string} tag
|
|
22
|
+
*/
|
|
14
23
|
export function generateTag(): string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get the unique identifier of the specified Tag as a string
|
|
27
|
+
*
|
|
28
|
+
* If the given tag is a `CloudObject` instance, the tag of that instance is returned.
|
|
29
|
+
* If a class constructor is given, the tag of the corresponding `CloudObject` is returned.
|
|
30
|
+
*
|
|
31
|
+
* @param tag
|
|
32
|
+
* @return string tag of given input
|
|
33
|
+
*/
|
|
15
34
|
export function tagToString(tag: Tag): string;
|
|
16
35
|
|
|
36
|
+
/**
|
|
37
|
+
* The HasTag interface defines objects that have a tag.
|
|
38
|
+
* The tag of these objects must be returned by the override method: `getTag()`
|
|
39
|
+
*/
|
|
17
40
|
export interface HasTag {
|
|
41
|
+
/**
|
|
42
|
+
* @return tag of this instance
|
|
43
|
+
*/
|
|
18
44
|
getTag(): string;
|
|
19
45
|
}
|
|
20
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Softcoded application context
|
|
49
|
+
*
|
|
50
|
+
* Contexts have parents and children, they represent the lifecycle of bricks.
|
|
51
|
+
* They contain callbacks executed at specific time of the brick lifespan.
|
|
52
|
+
*
|
|
53
|
+
* Each time a brick is updated with new inputs, {@link clear} is called,
|
|
54
|
+
* executing all callbacks registered with {@link onClear}.
|
|
55
|
+
*
|
|
56
|
+
* When a brick is destroyed, {@link destroy} is called,
|
|
57
|
+
* executing all callbacks registered with {@link onClear} and {@link onDestroy}
|
|
58
|
+
*/
|
|
21
59
|
export abstract class Context {
|
|
22
60
|
/**
|
|
23
61
|
* Destroy the current context. It destroys all children context attached to this one and clear their values.
|
|
24
62
|
* The context cannot be reused after calling this function.
|
|
25
63
|
*/
|
|
26
64
|
destroy(): void;
|
|
65
|
+
|
|
27
66
|
/**
|
|
28
67
|
* Clear the current context: detach and destroys all children context.
|
|
29
68
|
* The context can be reused.
|
|
30
69
|
*/
|
|
31
70
|
clear(): void;
|
|
71
|
+
|
|
32
72
|
/**
|
|
33
73
|
* Register a callback to execute when the context is destroyed. Return the callback id.
|
|
34
74
|
*
|
|
@@ -36,12 +76,14 @@ export abstract class Context {
|
|
|
36
76
|
* @return the callback id
|
|
37
77
|
*/
|
|
38
78
|
onDestroy(callback: () => void): string;
|
|
79
|
+
|
|
39
80
|
/**
|
|
40
81
|
* Remove a previously registered callback with {@link Context#onDestroy} method using its id.
|
|
41
82
|
*
|
|
42
83
|
* @param callbackId the id of the callback to unregister
|
|
43
84
|
*/
|
|
44
85
|
offDestroy(callbackId: string): boolean;
|
|
86
|
+
|
|
45
87
|
/**
|
|
46
88
|
* Register a callback to execute every time the context is cleared.
|
|
47
89
|
* This happens every time the brick is refreshed with new inputs and during the brick destruction.
|
|
@@ -60,58 +102,324 @@ export abstract class Context {
|
|
|
60
102
|
offClear(id: string): void;
|
|
61
103
|
}
|
|
62
104
|
|
|
105
|
+
/**
|
|
106
|
+
* A `CloudObject` is the base class for all objects that can be persisted and exchanged between Olympe applications.
|
|
107
|
+
* In essence, it represents a remote reference to an object in the data cloud.
|
|
108
|
+
* It is identified by its unique ID, or tag. From a `CloudObject` you can access related `CloudObjects`.
|
|
109
|
+
*
|
|
110
|
+
* A `CloudObject` can be instantiated via the [Tag]{@link Tag} of its model, and it can be instantiated multiple times with different properties values.
|
|
111
|
+
* *Data types* defined in DRAW are such `CloudObjects`, instances of Data types are also `CloudObjects`.
|
|
112
|
+
*
|
|
113
|
+
* **Example:**
|
|
114
|
+
* ```javascript
|
|
115
|
+
* const dcObject = olympe.dc.CloudObject.get(tag);
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
63
118
|
export abstract class CloudObject implements HasTag {
|
|
119
|
+
/**
|
|
120
|
+
* The attributes of a CloudObject are called properties. Properties can be of different types,
|
|
121
|
+
* e.g. `Property<string>`, `Property<number>`, Property<Date>`.
|
|
122
|
+
*
|
|
123
|
+
* If a `Person` `CloudObject` has an `age` property, all the instances of `Person` can access
|
|
124
|
+
* the `age` property using the same tag, the tag of the `age` property. This method returns all
|
|
125
|
+
* properties defined by the Data Type associated to this class.
|
|
126
|
+
*
|
|
127
|
+
* @return All properties defined for a data type
|
|
128
|
+
*/
|
|
64
129
|
static getProperties(): Property<any>[];
|
|
65
|
-
static getRelations<O extends CloudObject, D extends CloudObject>(this: Class<O>): Relation<O, D>[];
|
|
66
|
-
static instancesOf<T extends CloudObject>(this: Class<T>): Query<T, Empty>;
|
|
67
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Return all the relations whose origin OR destination is the `CloudObject` associated to this class.
|
|
133
|
+
*
|
|
134
|
+
* @return All relations defined on the current data type. It can be the destination or the origin of the relations.
|
|
135
|
+
*/
|
|
136
|
+
static getRelations<O extends CloudObject, D extends CloudObject>(this: Class<O>): (Relation<O, D> | Relation<D, O>)[];
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Return a query starting from all instances of this Data Type.
|
|
140
|
+
*
|
|
141
|
+
* @param model data type to get instances of
|
|
142
|
+
* @return A query starting from the instances of the specified model.
|
|
143
|
+
*/
|
|
144
|
+
static instancesOf<T extends CloudObject>(model: Tag): Query<T, Empty>;
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Get the CloudObject whose tag is specified.
|
|
148
|
+
*
|
|
149
|
+
* This only works if the `CloudObject` is already present in the local datacloud cache.
|
|
150
|
+
* (NB: you can use a {@link Query} to retrieve a distant `CloudObject`)
|
|
151
|
+
*
|
|
152
|
+
* @param tag tag of the `CloudObject`
|
|
153
|
+
* @return `CloudObject` specified by the tag
|
|
154
|
+
*/
|
|
68
155
|
static get<T extends CloudObject>(tag: Tag): T;
|
|
156
|
+
/**
|
|
157
|
+
* Create an instance of the specified data type (or `model`)
|
|
158
|
+
* in the local datacloud (not persisted) with the specified property values.
|
|
159
|
+
*
|
|
160
|
+
* If the model is not specified, it uses `this` DataType.
|
|
161
|
+
*
|
|
162
|
+
* @param properties mappings of (propertyTag -> propertyValue)
|
|
163
|
+
* @param model tag of the model of the `CloudObject` you want to create.
|
|
164
|
+
* @return newly created `CloudObject`
|
|
165
|
+
*/
|
|
69
166
|
static createWith<T>(this: Class<T>, properties: Map<Tag, any>, model?: Tag, source?: string): T;
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Get this `CloudObject` class as a `CloudObject` instance.
|
|
170
|
+
*
|
|
171
|
+
* @return the current data type class as a CloudObject instance.
|
|
172
|
+
*/
|
|
70
173
|
static asInstance<T>(this: Class<T>): T;
|
|
71
174
|
|
|
175
|
+
/**
|
|
176
|
+
* Every `CloudObject` has a unique tag.
|
|
177
|
+
*
|
|
178
|
+
* @return tag of the CloudObject
|
|
179
|
+
*/
|
|
72
180
|
getTag(): string;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Every `CloudObject` can define a value for its `nameProperty`.
|
|
184
|
+
* This method returns the current value of that property for this instance.
|
|
185
|
+
*
|
|
186
|
+
* @return the value of the `name property` of `this`
|
|
187
|
+
*/
|
|
73
188
|
name(): string;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Every `CloudObject` has a model which defines relations and properties its instances may have.
|
|
192
|
+
*
|
|
193
|
+
* @return the tag of the model of this `CloudObject` instance
|
|
194
|
+
*/
|
|
74
195
|
getModelTag(): string;
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Every `CloudObject` has a model which defines relations and properties its instances may have.
|
|
199
|
+
*
|
|
200
|
+
* @return the model of this `CloudObject` instance as a `CloudObject` instance
|
|
201
|
+
*/
|
|
75
202
|
getModel(): CloudObject;
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Create and return a query starting from this instance
|
|
206
|
+
*
|
|
207
|
+
* @return a query starting at this `CloudObject` instance
|
|
208
|
+
*/
|
|
76
209
|
query(): Query<this, Empty>;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Return the persistence state of this instance.
|
|
213
|
+
*
|
|
214
|
+
* `CloudObject`s can either be volatile, and only live in the local cache. In this case,
|
|
215
|
+
* the `CloudObject` instance is *not* persisted. If a `CloudObject`is persisted, it is stored in an external data store.
|
|
216
|
+
* This means that the instance can be accessible through other Olympe VMs in the same environment.
|
|
217
|
+
*
|
|
218
|
+
* @return a boolean indicating if this object is persisted in a non-volatile way.
|
|
219
|
+
*/
|
|
77
220
|
isPersisted(): boolean;
|
|
78
221
|
equals(object: any): boolean;
|
|
79
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Start a query from this instance and follow the relation given as argument.
|
|
225
|
+
* The query starts from this single instance, and follows a relation to an arbitrary
|
|
226
|
+
* number of destination instances. See [Query.follow]{@link Query#follow}
|
|
227
|
+
*
|
|
228
|
+
* The following are equivalent:
|
|
229
|
+
* ```javascript
|
|
230
|
+
* myCloudObject.follow(relation);
|
|
231
|
+
* myCloudObject.query().follow(relation);
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* @param relation the relation to follow from the starting instance (`this`)
|
|
235
|
+
* @return query starting from `this` and following the relation `relation` as first step of the query
|
|
236
|
+
*/
|
|
80
237
|
follow<D extends CloudObject>(relation: Relation<this, D>): Query<D, Empty>;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Start a `querySingle` from this instance that follows 0..1 relations
|
|
241
|
+
*
|
|
242
|
+
* The query starts from this instance, and follow the relation to a single
|
|
243
|
+
* destination instance. It is equivalent to `QuerySingle.from(this).follow(relation)`.
|
|
244
|
+
*
|
|
245
|
+
* @param relation to follow from this starting instance
|
|
246
|
+
* @return a query following 0-1 relations
|
|
247
|
+
*/
|
|
81
248
|
followSingle<D extends CloudObject>(relation: Relation<this, D>): QuerySingle<D>;
|
|
82
249
|
|
|
83
250
|
// Properties getters
|
|
84
|
-
|
|
85
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Get the current value of the specified property for this `CloudObject` instance
|
|
253
|
+
*
|
|
254
|
+
* @param property property or property's tag
|
|
255
|
+
* @return property value
|
|
256
|
+
*/
|
|
257
|
+
get<T>(property: Property<T> | Tag): T | null;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Get an observable to the current value of the specified property for this `CloudObject` instance.
|
|
261
|
+
*
|
|
262
|
+
* The observable gets the new value each time the property gets updated in the datacloud.
|
|
263
|
+
* The observable gets completed automatically once the specified context is [cleared]{@link Context#onClear}.
|
|
264
|
+
*
|
|
265
|
+
* @param context [context]{@link Context} to which the Observable is attached
|
|
266
|
+
* @param property property or property's tag to observe
|
|
267
|
+
* @return Observable of property values
|
|
268
|
+
*/
|
|
269
|
+
observe<T>(context: Context, property: Property<T> | Tag): Observable<T>;
|
|
86
270
|
|
|
87
271
|
// Properties and Relations
|
|
272
|
+
/**
|
|
273
|
+
* Name property for all `CloudObjects`
|
|
274
|
+
*/
|
|
88
275
|
static nameProp: Property<string>;
|
|
89
|
-
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Relation between a `CloudObject`and its model
|
|
279
|
+
* instance --modelRel-> model
|
|
280
|
+
*/
|
|
90
281
|
static modelRel: Relation<CloudObject, CloudObject>;
|
|
91
|
-
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Inverse relation of {@link modelRel} between a model and its instances
|
|
285
|
+
* Equivalent to `modelRel.getInverse()`
|
|
286
|
+
*/
|
|
287
|
+
static instanceRel: Relation<CloudObject, CloudObject>;
|
|
288
|
+
/**
|
|
289
|
+
* Model `CloudObjects` can inherit relations and properties
|
|
290
|
+
* from another `CloudObject` model to mimic their behaviour.
|
|
291
|
+
*
|
|
292
|
+
* Relation from a model to the CloudObject model it extends.
|
|
293
|
+
* A --extendRel-> B
|
|
294
|
+
* A inherits B's properties and relations.
|
|
295
|
+
*/
|
|
92
296
|
static extendRel: Relation<CloudObject, CloudObject>;
|
|
297
|
+
/**
|
|
298
|
+
* Inverse relation of {@link extendRel}
|
|
299
|
+
*/
|
|
93
300
|
static extendedByRel: Relation<CloudObject, CloudObject>;
|
|
301
|
+
/**
|
|
302
|
+
* Relation between a container (a `CloudObject`) that has children (other `CloudObject`s)
|
|
303
|
+
*
|
|
304
|
+
* For example, from a folder to the contained elements or from a function to the elements needed for that function to run.
|
|
305
|
+
*/
|
|
306
|
+
static containsRel: Relation<CloudObject, CloudObject>;
|
|
307
|
+
/**
|
|
308
|
+
* Relation between a model and the properties it defines.
|
|
309
|
+
*/
|
|
94
310
|
static propertyRel: Relation<CloudObject, PropertyModel>;
|
|
95
311
|
}
|
|
96
312
|
|
|
313
|
+
/**
|
|
314
|
+
* A property of a model defines an attribute. A property has a `tag`.
|
|
315
|
+
* Each instance of a model can have value for these defined properties.
|
|
316
|
+
*/
|
|
97
317
|
export interface Property<T> extends HasTag {}
|
|
98
318
|
|
|
319
|
+
/**
|
|
320
|
+
* Relations are directed from A -> B and can be followed in either direction.
|
|
321
|
+
*/
|
|
99
322
|
export enum Direction {
|
|
323
|
+
/**
|
|
324
|
+
* For relation A -> B, go to A, the origin
|
|
325
|
+
*/
|
|
100
326
|
ORIGIN = '<',
|
|
327
|
+
/**
|
|
328
|
+
* For relation A -> B, go to B, the destination
|
|
329
|
+
*/
|
|
101
330
|
DESTINATION = '>'
|
|
102
331
|
}
|
|
103
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Relations can be defined between from a `CloudObject` to another, for example between two data types.
|
|
335
|
+
* Relations are directed and have two types: the origin type, the destination type.
|
|
336
|
+
*
|
|
337
|
+
* Defining a relation between two data types means that instances of these data types can be related with that relation.
|
|
338
|
+
*/
|
|
104
339
|
export class Relation<O extends CloudObject, D extends CloudObject> implements HasTag {
|
|
340
|
+
/**
|
|
341
|
+
* Create a relation between two CloudObject classes
|
|
342
|
+
* @param tag tag of the relation to create
|
|
343
|
+
* @param direction whether the relation points to the origin or destination
|
|
344
|
+
* @param origin origin class of the relation
|
|
345
|
+
* @param destination destination class of the relation
|
|
346
|
+
*/
|
|
105
347
|
constructor(tag: Tag, direction?: Direction, origin?: Class<O>, destination?: Class<D>);
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* @return tag of the relation
|
|
351
|
+
*/
|
|
106
352
|
getTag(): string;
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* @return direction of the relation, whether it points to origin or destination
|
|
356
|
+
*/
|
|
107
357
|
getDirection(): Direction;
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* @return class type for the destination of the relation
|
|
361
|
+
*/
|
|
108
362
|
type(): Class<D>;
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* @return class type for the origin of the relation
|
|
366
|
+
*/
|
|
109
367
|
originType(): Class<O>;
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* @return inverse relation where newOrigin = oldDestination, newDestination = oldOrigin
|
|
371
|
+
*/
|
|
110
372
|
getInverse(): Relation<D, O>;
|
|
111
373
|
}
|
|
112
374
|
|
|
375
|
+
/**
|
|
376
|
+
* Register the class constructor as the class associated to the specified tag.
|
|
377
|
+
*
|
|
378
|
+
* This creates the link between a class and an DataType in the database.
|
|
379
|
+
* Once this link is created, all the instances of the DataType (model)
|
|
380
|
+
* are instantiated as JS objects using the specified class (see [CloudObject.get]{@link CloudObject#get})
|
|
381
|
+
*
|
|
382
|
+
* @param tag tag of the DataType
|
|
383
|
+
* @param object `CloudObject` constructor
|
|
384
|
+
*/
|
|
113
385
|
export function register(tag: Tag, object: Class<CloudObject>): void;
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* Create a constant property object which has the specified tag and type to be used in coded bricks.
|
|
389
|
+
*
|
|
390
|
+
* @param tag the property tag
|
|
391
|
+
* @param type type the property holds values of
|
|
392
|
+
* @return newly defined property
|
|
393
|
+
*/
|
|
114
394
|
export function defineProperty<T>(tag: Tag, type?: Class<T>): Property<T>;
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* Create a constant relation object between two specified DataTypes.
|
|
398
|
+
*
|
|
399
|
+
* That constant is used especially to create queries see [Query.follow(relation)]{@link Query#follow}
|
|
400
|
+
*
|
|
401
|
+
* @param tag tag of the relation
|
|
402
|
+
* @param origin origin DataType of the relation
|
|
403
|
+
* @param destination destination DataType of the relation. Default is `CloudObject`
|
|
404
|
+
* @param direction direction of the relation, pointing towards origin or destination. Default is `DESTINATION`
|
|
405
|
+
* @return newly defined relation
|
|
406
|
+
*/
|
|
115
407
|
export function defineRelation<O extends CloudObject, D extends CloudObject>(tag: Tag, origin?: Class<O>, destination?: Class<D>, direction?: Direction): Relation<O, D>;
|
|
408
|
+
/**
|
|
409
|
+
* Create a constant relation object between two generic `CloudObjects`
|
|
410
|
+
*
|
|
411
|
+
* That constant is used especially to create queries see [Query.follow(relation)]{@link Query#follow}
|
|
412
|
+
*
|
|
413
|
+
* @param tag tag of the relation
|
|
414
|
+
* @param direction direction of the relation, pointing towards origin or destination. Default is `DESTINATION`
|
|
415
|
+
* @return newly defined relation
|
|
416
|
+
*/
|
|
116
417
|
export function defineRelation(tag: Tag, direction?: Direction): Relation<CloudObject, CloudObject>;
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Returns a constant object corresponding to the specified relation going to the opposite direction
|
|
421
|
+
*
|
|
422
|
+
* @param relation relation to inverse
|
|
423
|
+
* @return inverse relation
|
|
424
|
+
*/
|
|
117
425
|
export function defineInverseRelation<O extends CloudObject, D extends CloudObject>(relation: Relation<O, D>): Relation<D, O>;
|