@olympeio/runtime-node 9.11.12 → 9.11.13

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.
@@ -1 +1 @@
1
- {"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"100000000000000000dd","p":{"017869c7d2833c9492c1":"@olympeio/runtime","017869c80bb9929c76d0":"9.11.12","ff023000000000000011":"Primordial"}},{"o":1,"t":"00000000000000000060","p":{"ff023000000000000011":"Embedded Graph Database","ff023000000000000060":true,"ff023000000000000063":"hybrid","ff023000000000000065":false}}],"optionalOperations":[{"o":1,"t":"10000000000000000001","p":{"ff023000000000000011":"Olympe Libraries"}},{"o":1,"t":"10000000000000000002","p":{"ff023000000000000011":"Internal"}},{"o":1,"t":"10000000000000000000","p":{"ff023000000000000011":"Home"}}]}
1
+ {"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"100000000000000000dd","p":{"017869c7d2833c9492c1":"@olympeio/runtime","017869c80bb9929c76d0":"9.11.13","ff023000000000000011":"Primordial"}},{"o":1,"t":"00000000000000000060","p":{"ff023000000000000011":"Embedded Graph Database","ff023000000000000060":true,"ff023000000000000063":"hybrid","ff023000000000000065":false}}],"optionalOperations":[{"o":1,"t":"10000000000000000001","p":{"ff023000000000000011":"Olympe Libraries"}},{"o":1,"t":"10000000000000000002","p":{"ff023000000000000011":"Internal"}},{"o":1,"t":"10000000000000000000","p":{"ff023000000000000011":"Home"}}]}
@@ -1 +1 @@
1
- {"rootTag":"100000000000000000dd","operations":[{"o":2,"t":"014831d95fd7d12b8568","p":{"ff023000000000000001":"admin","ff023000000000000004":"e7e0b14288222bbb21c3f0d00c923a9a85b26243839c16f2cf83de0702ae9a44","ff023000000000000005":"1d63511d7b144f8c11b93acc9d67b94ef17bd8956cc8e498b782652e1e5141ce2366a2db22fbd9cdcd505079011e2d70cc319b1ca55174fcf172386280d019e3ff8a2314e16ce26b6977f6a4557c240359d9b0729b25d5d91d65684c047217dec51a04164f1b37848a719abad26c53e396da48f4bf64408ed1ddc665774211cc3ed3e13594235595932ba251ba121bcb2643c73b7883abed719e3b83fe9fbaac9d3b711c7c6dfb935d1ea3d32fcfde8abdde2bd24fe4fbb2d390ce4b18db30045dac7a69538388c9762326919f113b93a52f7bead6101aa0f2edd5583901c0f37817a317695ba140cbf8c7af4334b984c6466253e55ab88ec45acf07e2aa8833"}},{"o":2,"t":"0163d9653067b6237f62","p":{"ff023000000000000001":"guest","ff023000000000000004":"d3cab8983acf056becf0e9c6c560ed0bc7ce0baa08b901ac8ef789602e6dfd31","ff023000000000000005":"270740570305a1b52abf34ce8046a4262f618b1df8feee230d40227be8a901b9a7b390758f1e191adf090a2018bb6c5ac08213a80311c65b6dd7fa604fad3ea39a600d8e3b3bb506683b524479fc0c68b485012b04097dbf43ecc5508b4943a53f2266a4c63a4d5917e31cfa459ca70ad470414e6a4f69032d844d7eaf3a400711de9bf2dc8acdc27f0a3e6b6db6c670b94323406fcd8e178e36ecfee1580b0257a8c6635dcb29f1943068830772b619d8d9ff755b5cda62bd13cfcf78b2e35ae3bb52d2172621eea7c803430133fdd3ac89ca759c63d0256d80533c0627f100975ead84470fb1794073a8288af53dced1637623f093fd5b709b683c2f1ffee4"}}],"optionalOperations":[]}
1
+ {"rootTag":"100000000000000000dd","operations":[{"o":2,"t":"014831d95fd7d12b8568","p":{"ff023000000000000001":"admin","ff023000000000000004":"e8f0b213513fbc582815aee188e796a35dede3b29981b8b1467d7ea476f64534","ff023000000000000005":"61c2df1a6409e961f0533dd3ae274d2da227314ad32ba63871e7b086b0017035715439d6c9399f1825b6a241942636074606b89cc6ab0bd3820964584f4fe238108e46dde43cdffd1c129436458833c3225c78a8f97f68901b152e419c71f94ae1fffa63303482967b633afbbe06291999bc2eae40c87920fa5b935f00447128a98a8b5469d7d3c00c827bab5a15390741be5aab6c102e535f27fa29d389f436edbfae5e962d43b5cd8bac7e9a34ed3071ca04f79ceaab83e6132934574307c201d73acce89d20176a65e516a9cc555518589fb4ebb15b7f9c2892b1c6e1c9e96bf1ae0f0a7438ccbb9dae3c072e715cd939d30de2378cfbc5299187664c9fe"}},{"o":2,"t":"0163d9653067b6237f62","p":{"ff023000000000000001":"guest","ff023000000000000004":"63d82b277ec1fa38dc173c3f4ec8b148576d8474c0014b884dba4a73eb7d89ef","ff023000000000000005":"16ebed2895f980028709dcb89962b39bb62f89fc83d3d067ac009b6a08692955f14bb6b4037de3ffa2490e782b8cd0b1b649c93e7240da93d6debb3c5f28ca66cee7ff4b6f63f19567a44aa92e16952c1fcd56b0fd2f510b68f2f08f1d5afc9124b051e92bac75205dc041a6270f630d8f7062af7c092ec399e56e81e7cc9390bf1bf5d8748fcbdcc631c40f3808b798a5b98ac915c7bb5108565750b8af0d8ddf01d6e690b94d3f902028bcf348feb4e79fdf5e1b4eb97526f73ac99351f2bcc83610b8d3db0c6cea2447f8bcde6caa16d1ce71801e28b163a7181149e725d0985e7ae9b6c671099a77c341186372b498466893e6e64058b26a16574761cb52"}}],"optionalOperations":[]}
@@ -1 +1 @@
1
- {"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"017a7a9ff057958e5678","p":{"ff023000000000000011":"Enums"}},{"o":1,"t":"017a7a9ff058958e5678","p":{"01703376c4a81c0e9d91":"Allows defining one or more enums.","01703376c4a81c0e9d92":"An enum is an ordered list of entries, with a `Value` and a `Display Name`. The `Value` is the actual value being used within dataflows, while the `Display Name` is the text displayed in DRAW.<br/><br/>Enums are treated as *types* within Olympe, and they can therefore be used in various places:\n- In Functions and Actions, as types of inputs and outputs\n- In Visual Components, as types of properties\n- In Data Models, as types of properties within Data Types\n\n"}},{"o":1,"t":"016cdd861b32d56c8208","p":{"ff023000000000000011":"Enum Item"}},{"o":1,"t":"01645fe6873aeea59e64","p":{"ff023000000000000011":"Config Data Set"}},{"o":1,"t":"017ed8ac775f48d4d589","p":{"ff023000000000000011":"dataRel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":0,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01645fe6873beea59e64","p":{"01703376c4a81c0e9d91":"Set of Config Data Type instances.","01703376c4a81c0e9d92":"Config Data Sets are used to create instances of Config Data Types.\nThey are typically used to create sets of data that can be used by your application as configuration, a bit like enums, with custom properties.<br/><br/>Since that data is part of the definition of applications, it cannot be updated by applications at runtime.\nCompared to instances of regular Data Types, which are created and modified by users at runtime, records inside Config Data Sets are saved during the export of the project, as part of the application data."}},{"o":1,"t":"016324fde11a836f77d3","p":{"ff023000000000000011":"Config Data Type"}},{"o":1,"t":"016324fde11a836088d3","p":{"ff023000000000000011":"Config Data Type -> Project","ff023000000000000030":610,"ff023000000000000031":96,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":8,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016324fde11b836f77d3","p":{"01703376c4a81c0e9d91":"A data structure to be used as configuration within bricks and applications.","01703376c4a81c0e9d92":"A Config 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.\nCompare to regular Data Types, a Config Data Type is defined in a *Config Data Model*, and it must be instantiated in a *Config Data Set*."}},{"o":1,"t":"0163a68ce44f3d1fa95d","p":{"ff023000000000000011":"Config Data Model"}},{"o":1,"t":"0163a68ce4503d1fa95d","p":{"01703376c4a81c0e9d91":"Defines Config Data Types and their relations.","01703376c4a81c0e9d92":"A Config Data Model is where you define the data structures called *Config Data Types*, which can be used within bricks and applications as configuration.<br/><br/>A Config Data Model allows defining complex data structure with multiple config data types, properties and relations.<br/><br/>A project can have multiple Config Data Models."}},{"o":1,"t":"016324fde11a836f76c2","p":{"ff023000000000000011":"Data Type"}},{"o":1,"t":"016324fde11a836087c2","p":{"ff023000000000000011":"Data Type -> Project","ff023000000000000030":610,"ff023000000000000031":96,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":8,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016324fde11b836f76c2","p":{"01703376c4a81c0e9d91":"Defines a new type.","01703376c4a81c0e9d92":"A Data Type is very similar to the concept of 'Class' in object-oriented programming languages, or to a table in a relational database. A data type can contain:\n- Properties: values attached to data type instances\n- Relations: these are many-to-many relationships between data type instances.\n\n"}},{"o":1,"t":"0163a68ce44f3d1fa84c","p":{"ff023000000000000011":"Data Model"}},{"o":1,"t":"0163a68ce4503d1fa84c","p":{"01703376c4a81c0e9d91":"Defines data types and relations between them.","01703376c4a81c0e9d92":"A Data Model enables defining the structure of the data that the application and its users will manage.A single Data Model can define multiple Data Types, as well as the relations between them. A project can have multiple Data Models."}},{"o":1,"t":"017b3aa8fae1e3d044dc","p":{"ff023000000000000011":"Business Container"}},{"o":1,"t":"017b3aa8fd1659291b92","p":{"ff023000000000000011":"business container to project","ff023000000000000030":515,"ff023000000000000031":1,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":0,"ff023000000000000337":9,"ff023000000000000437":9,"ff023000000000000537":0}},{"o":1,"t":"017b3aa8fe7ec3fd52f2","p":{"ff023000000000000011":"business container to runtime objects","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":0,"ff023000000000000437":0,"ff023000000000000537":0}},{"o":1,"t":"01644b6d4543b344b857","p":{"ff023000000000000011":"Media Library"}},{"o":1,"t":"01644b6d4544b344b857","p":{"01703376c4a81c0e9d91":"A repository for media resources.","01703376c4a81c0e9d92":"A Media Library stores assets like images, videos and fonts that can be used within the project."}},{"o":1,"t":"01644b6297305d62fca2","p":{"ff023000000000000011":"Image File"}},{"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."}},{"o":1,"t":"016eb13ba1388f7bdd71","p":{"ff023000000000000011":"picture_default","ff023000000000000050":"picture_default.svg","ff023000000000000051":{"c":4,"h":12,"m":19,"s":17,"S":695,"z":0,"y":2025,"M":11,"d":12},"ff023000000000000052":"image/svg+xml","ff023000000000000053":"images/picture_default.svg","ff023000000000000054":false,"ff023000000000000055":{"c":4,"h":12,"m":19,"s":17,"S":695,"z":0,"y":2025,"M":11,"d":12}}},{"o":1,"t":"01647e113043c637b541","p":{"fd01647e677f5d1cfbdf42":"normal","fd01647e6780999bf8bd25":300,"ff023000000000000011":"Font File"}},{"o":1,"t":"01647e35ecd24ef0b88d","p":{"ff023000000000000011":"Font Family"}},{"o":1,"t":"01647e677f5d1cfbdf42","p":{"ff023000000000000011":"Font Style"}},{"o":1,"t":"01647e6780999bf8bd25","p":{"ff023000000000000011":"Font Weight"}},{"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"}},{"o":1,"t":"0164643c432146a71d5c","p":{"ff023000000000000011":"Video File"}},{"o":1,"t":"0164643c432246a71d5c","p":{"01703376c4a81c0e9d91":"A file containing a video recording.","01703376c4a81c0e9d92":"A Video File contains a binary encoded video. Supported formats are mp4, mpeg and avi."}},{"o":1,"t":"0163c9ae01f2d6e9ca49","p":{"ff023000000000000011":"ObjectRef"}},{"o":1,"t":"0163c9ae0401d21eb0c3","p":{"ff023000000000000011":"objectTag"}},{"o":1,"t":"0169b5a8a33144fb0b49","p":{"ff023000000000000011":"reference","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"016421bb3797e22d1c4e","p":{"ff023000000000000011":"Video Stream"}},{"o":1,"t":"0162f672366be5ca7a86","p":{"ff023000000000000011":"Type"}},{"o":1,"t":"018119241abce0e5696e","p":{"ff023000000000000011":"Map"}},{"o":1,"t":"018119241abde0e5696e","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."}},{"o":1,"t":"01631aacd8276ea98490","p":{"ff023000000000000011":"List"}},{"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."}},{"o":1,"t":"016cfca73e63f9ab5ba4","p":{"ff023000000000000011":"Text"}},{"o":1,"t":"01631aacd8276ea98491","p":{"ff023000000000000011":"Array"}},{"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).<br/><br/>This is similar to arrays in programming languages."}},{"o":1,"t":"01631aacd8276ea98492","p":{"ff023000000000000011":"Query Result"}},{"o":1,"t":"01631aacd8286ea98492","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **QueryResult** is a collection of object tuples produced by the execution of a Query. It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).<br/><br/>This is similar to arrays in programming languages."}},{"o":1,"t":"01631aacd8276ea98493","p":{"ff023000000000000011":"Query"}},{"o":1,"t":"01631aacd8286ea98493","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98494","p":{"ff023000000000000011":"Filter Type"}},{"o":1,"t":"01631aacd8286ea98494","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98495","p":{"ff023000000000000011":"Sort Direction"}},{"o":1,"t":"01631aacd8286ea98495","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98496","p":{"017a7690c915975ea995":0,"ff023000000000000011":"equals","ff023000000000000026":"equals"}},{"o":1,"t":"01631aacd8276ea98497","p":{"017a7690c915975ea995":1,"ff023000000000000011":"different","ff023000000000000026":"different"}},{"o":1,"t":"01631aacd8276ea98498","p":{"017a7690c915975ea995":2,"ff023000000000000011":"contains","ff023000000000000026":"contains"}},{"o":1,"t":"01631aacd8276ea98499","p":{"017a7690c915975ea995":3,"ff023000000000000011":"greater than","ff023000000000000026":"greater than"}},{"o":1,"t":"01631aacd8276ea9849a","p":{"017a7690c915975ea995":4,"ff023000000000000011":"greater or equals","ff023000000000000026":"greater or equals"}},{"o":1,"t":"01631aacd8276ea9849b","p":{"017a7690c915975ea995":5,"ff023000000000000011":"smaller than","ff023000000000000026":"smaller than"}},{"o":1,"t":"01631aacd8276ea9849c","p":{"017a7690c915975ea995":6,"ff023000000000000011":"smaller or equals","ff023000000000000026":"smaller or equals"}},{"o":1,"t":"01631aacd8276ea9849d","p":{"017a7690c915975ea995":7,"ff023000000000000011":"regexp","ff023000000000000026":"regexp"}},{"o":1,"t":"01631aacd8276ea9849e","p":{"017a7690c915975ea995":0,"ff023000000000000011":"ascending","ff023000000000000026":"ascending"}},{"o":1,"t":"01631aacd8276ea9849f","p":{"017a7690c915975ea995":1,"ff023000000000000011":"descending","ff023000000000000026":"descending"}},{"o":1,"t":"018312ceeb3e93618a85","p":{"ff023000000000000011":"Context"}},{"o":1,"t":"018312ceeb3f93618a85","p":{"01703376c4a81c0e9d91":"Context of a brick","01703376c4a81c0e9d92":"A Context is a placeholder to store some key/value related to a specific part (context) of the application"}},{"o":1,"t":"01621fb84e320000cf00","p":{"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016eeb5ede9f3094d8f0","p":{"ff023000000000000011":"Error Flow"}},{"o":1,"t":"016ac4f59ee8ea2081ba","p":{"ff023000000000000011":"Predefined IO","ff023000000000000012":true}},{"o":1,"t":"017bc044aeacce7ffc8f","p":{"ff023000000000000011":"Predefined IO Rank"}},{"o":1,"t":"016ac4f5a0091c4790e2","p":{"ff023000000000000011":"Predefined Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"016ac4f59c592b862457","p":{"ff023000000000000011":"Predefined Input"}},{"o":1,"t":"016ac4f59dd99f5df3e1","p":{"ff023000000000000011":"Predefined Output"}},{"o":1,"t":"0168a431d25001540000","p":{"ff023000000000000011":"Runnable IO","ff023000000000000012":true}},{"o":1,"t":"01740c5d4ae4b520dd01","p":{"ff023000000000000011":"IO Rank"}},{"o":1,"t":"0168a431d3b9b7438424","p":{"ff023000000000000011":"Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"0168a431d25001540001","p":{"ff023000000000000011":"Runnable Input"}},{"o":1,"t":"01740c5d4ae4b520dd02","p":{"ff023000000000000011":"Default Value"}},{"o":1,"t":"0168a431d25001540002","p":{"ff023000000000000011":"Runnable Output"}},{"o":1,"t":"011100000000000adef0","p":{"ff023000000000000011":"Function Signature"}},{"o":1,"t":"016ac4f59a2917fdef01","p":{"ff023000000000000011":"Predefined Inputs rel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"016ac4f59a2917fdef02","p":{"ff023000000000000011":"Predefined Outputs rel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"011100000001000adef0","p":{"01703376c4a81c0e9d91":"A signature for functions","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 as types within the inputs or outputs of Functions and Actions, as well as within properties of Visual Components.<br/><br/>A Function Signature is analogous to an <a href=\"https://en.wikipedia.org/wiki/Interface_(object-oriented_programming)\" targer=\"_blank\">interface</a> in object-oriented programming."}},{"o":1,"t":"0112000000000000def0","p":{"fd01692aa71f3108454479":false,"ff023000000000000011":"Runnable Definition"}},{"o":1,"t":"01692aa71f3108454479","p":{"ff023000000000000011":"hardcoded"}},{"o":1,"t":"0166446c1f128ebc903a","p":{"ff023000000000000011":"On Load"}},{"o":1,"t":"0166446c1f128ebc904e","p":{"ff023000000000000011":"On Error"}},{"o":1,"t":"01621fb84e320000f00a","p":{"ff023000000000000011":"Inputs","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01621fb84e320000f00b","p":{"ff023000000000000011":"Outputs","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"0171838bcfed0000e00e","p":{"ff023000000000000011":"Super Definition","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"0171838bcfed0000a00a","p":{"ff023000000000000011":"Auxiliary model","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"01130000000000ca1100","p":{"ff023000000000000011":"Runnable","ff023000000000000012":true}},{"o":1,"t":"01692a4af82e8984742b","p":{"ff023000000000000011":"Definition of runnable","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"01756a18d4921c103111","p":{"ff023000000000000011":"Anonymous definition","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":10,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":10,"ff023000000000000437":10,"ff023000000000000537":10}},{"o":1,"t":"01692a4af82e8984742c","p":{"ff023000000000000011":"Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01692a4af82e8984742d","p":{"ff023000000000000011":"Conditional Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01692a4af82e8984742e","p":{"ff023000000000000011":"Extra Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":4,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":4,"ff023000000000000437":4,"ff023000000000000537":2}},{"o":1,"t":"016c2d996d9ca27fa9d8","p":{"ff023000000000000011":"Delegate","ff023000000000000012":true}},{"o":1,"t":"016c3cb7742ec9309e0b","p":{"ff023000000000000011":"Delegator Relation","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016c42d3454636f90533","p":{"ff023000000000000011":"Delegated Properties","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016d3f37610ae4fc3962","p":{"ff023000000000000011":"SizeDelegator"}},{"o":1,"t":"01621fb84e320000f000","p":{"ff023000000000000011":"Function"}},{"o":1,"t":"0162f15740c36629dc57","p":{"ff023000000000000011":"description"}},{"o":1,"t":"01621fb84e330000f000","p":{"01703376c4a81c0e9d91":"A Function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A Function is the basic logic brick. It takes one or several inputs and produces one or several outputs.\nFor instance `Plus` is a Function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs.<br/><br/>A Function can be reused within other Functions, Actions and Visual Components.<br/><br/>By default, a Function is triggered once each one of its inputs has been defined, and then everytime one of its inputs changes."}},{"o":1,"t":"01621fb84e320000f011","p":{"ff023000000000000011":"Coded Function"}},{"o":1,"t":"01621fb84e330000f011","p":{"01703376c4a81c0e9d91":"A Function implemented using code.","01703376c4a81c0e9d92":"A Coded Function is a function implemented using code, such as JavaScript or TypeScript.<br/><br/>Coded Functions are typically used to add new functionalities within applications, or to implement more complex logic."}},{"o":1,"t":"0168c6f020f2a96f0000","p":{"ff023000000000000011":"Function Call","ff023000000000000012":true}},{"o":1,"t":"0168a431d91f25780000","p":{"ff023000000000000011":"Pipe"}},{"o":1,"t":"0168a431d91f25780001","p":{"ff023000000000000011":"Source Value"}},{"o":1,"t":"0168a431d91f25780002","p":{"ff023000000000000011":"Source Scope","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f25780003","p":{"ff023000000000000011":"Source Output","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f25780004","p":{"ff023000000000000011":"Source Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000a","p":{"ff023000000000000011":"Destination Scope","ff023000000000000030":994,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":10,"ff023000000000000337":9,"ff023000000000000437":9,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000b","p":{"ff023000000000000011":"Destination Input","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000c","p":{"ff023000000000000011":"Destination Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"01621fb84e32000000a0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Ascender"}},{"o":1,"t":"01621fb84e32000000a1","p":{"ff023000000000000011":"Input","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000a2","p":{"ff023000000000000011":"Upward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000d0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Descender"}},{"o":1,"t":"01621fb84e32000000d1","p":{"ff023000000000000011":"Downward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000d2","p":{"ff023000000000000011":"Output","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e320000a000","p":{"ff023000000000000011":"Action"}},{"o":1,"t":"016ac63229782039429f","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016ac6322acf67eebfe7","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"01621fb84e330000a000","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"An Action is the other basic logic brick. It also takes one or several inputs and produces one or several outputs.\nAdditionally, an Action has an input and output *control flows*. The Action is executed when the input control flow is triggered, and it defines all outputs before the output control flow is triggered.<br/><br/>By default, an action is triggered everytime the control flow is triggered, regardless of the value of the other inputs.<br/><br/>An Action can be reused within other Functions, Actions and Visual Components."}},{"o":1,"t":"01621fb84e320000f012","p":{"ff023000000000000011":"Coded Action"}},{"o":1,"t":"01621fb84e330000f012","p":{"01703376c4a81c0e9d91":"An Action implemented using code.","01703376c4a81c0e9d92":"A Coded Action is an Action implemented using code, such as JavaScript or TypeScript.<br/><br/>Coded Actions are typically used to add new functionalities within applications, or to implement more complex logic."}},{"o":1,"t":"0168c6f020f2a96a0000","p":{"ff023000000000000011":"Action Call","ff023000000000000012":true}},{"o":1,"t":"016a9766c230916ea5ec","p":{"ff023000000000000011":"Service"}},{"o":1,"t":"016ac63c5b3ed0562740","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016a9766c231916ea5ec","p":{"01703376c4a81c0e9d91":"A long running action to be run in a Service Application.","01703376c4a81c0e9d92":"A Service is an Action meant to be run inside a Service App. The Service is triggered when the Service App starts, and runs until the Service App stops.<br/><br/>A Service has no input, and its configuration is therefore generally read from configuration files, APIs or other external sources.<br/><br/>Typical uses of Services are to run batch jobs, expose web services, or listen to outside events such as incoming emails."}},{"o":1,"t":"0169b6876a03f139d50a","p":{"ff023000000000000011":"Interaction Event Definition"}},{"o":1,"t":"016ac63808535703691c","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"0169b6876a03f14ae61b","p":{"ff023000000000000011":"Error Handler Definition"}},{"o":1,"t":"016ac638085357047a2d","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017a7b07a948e30508fa","p":{"ff023000000000000011":"Remote Action"}},{"o":1,"t":"017a7b07b09e3b22c8b4","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017a7b07ba05807a74b0","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"User"}},{"o":1,"t":"017a7b0818c12388d731","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017a7b085146d5e69aec","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017a7b07a949e30508fa","p":{"01703376c4a81c0e9d91":"An action running remotely in a Service App.","01703376c4a81c0e9d92":"A Remote Action is an Action which is running within a Service App. It behaves and it is used like an action, but it runs remotely. The Remote Action takes care of serializing the inputs, send them to the Service App, executes the content of the Remote Action, and serializes the outputs back to the caller.<br/><br/>Remote Actions are typically used to call APIs, databases, send emails and perform other back-end operations.<br/><br/>A remote action is synchronous, and can therefore be subject to timeouts if running for too long. The timeout value is configurable per environment."}},{"o":1,"t":"017a7b0c5dcbd8964c5d","p":{"fd017a7b0c62a02a89444f":false,"ff023000000000000011":"Remote Action Call","ff023000000000000012":true}},{"o":1,"t":"017a7b0c62a02a89444f","p":{"ff023000000000000011":"listener"}},{"o":1,"t":"011203300000000adf00","p":{"fd011203300000000adf01":0,"fd011203300000000adf02":20000,"ff023000000000000011":"System Information"}},{"o":1,"t":"011203300000000adf01","p":{"ff023000000000000011":"appController timestamp"}},{"o":1,"t":"011203300000000adf02","p":{"ff023000000000000011":"appController heart rate"}},{"o":1,"t":"011203300000000adf0f","p":{}},{"o":1,"t":"01120300000000adef00","p":{"ff023000000000000011":"Application Definition","ff023000000000000012":true}},{"o":1,"t":"0171bc1f15da96dfdb89","p":{"ff023000000000000011":"app project import","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"0171bc1f15da96dfdb90","p":{"ff023000000000000011":"deploy data source","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"011203300000000adef5","p":{"fd011203300000000adef6":false,"fd011203300000000adef7":false,"fd011203300000000adef8":0,"ff023000000000000011":"Deployment Info"}},{"o":1,"t":"011203300000000adef6","p":{"ff023000000000000011":"activated"}},{"o":1,"t":"011203300000000adef7","p":{"ff023000000000000011":"rebuild"}},{"o":1,"t":"011203300000000adef8","p":{"ff023000000000000011":"status"}},{"o":1,"t":"011203300000000adef9","p":{"ff023000000000000011":"last error"}},{"o":1,"t":"011203300000000adefa","p":{"ff023000000000000011":"project URL"}},{"o":1,"t":"011203300000000adefb","p":{"ff023000000000000011":"project branch"}},{"o":1,"t":"011203300000000adefc","p":{"ff023000000000000011":"build command"}},{"o":1,"t":"011203300000000adefd","p":{"ff023000000000000011":"project config"}},{"o":1,"t":"011203300000000adefe","p":{"ff023000000000000011":"logs"}},{"o":1,"t":"011203300000000adeff","p":{"ff023000000000000011":"port mappings"}},{"o":1,"t":"011203300000000adee0","p":{"ff023000000000000011":"dependencies"}},{"o":1,"t":"011203300000000adef3","p":{"ff023000000000000011":"Service App"}},{"o":1,"t":"011203300000000adef4","p":{"ff023000000000000011":"Deployment Info","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"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 on any edge or IoT device that does not have a screen. They run in the background and are typically used to capture data from a third party, process data, perform data input validation, etc."}},{"o":1,"t":"017dc8d6c8fd8c8bd2ff","p":{"ff023000000000000011":"Data Connector"}},{"o":1,"t":"0113030000000aca1100","p":{"ff023000000000000011":"Application","ff023000000000000012":true}},{"o":1,"t":"0113032000000aca1102","p":{"ff023000000000000011":"Headless Application","ff023000000000000012":true}},{"o":1,"t":"017ffdc010e5bcc9c971","p":{"fd017ffdc010e5bcc9c972":false,"ff023000000000000011":"Workflow"}},{"o":1,"t":"017ffdc010e5bcc9c972","p":{"ff023000000000000011":"Serialization Enabled"}},{"o":1,"t":"017ffdc010e5bcc9c973","p":{"ff023000000000000011":"Data Type","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"017ffdc010e5bcc9c974","p":{"ff023000000000000011":"States","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":6,"ff023000000000000437":6,"ff023000000000000537":0}},{"o":1,"t":"017ffdc010e5bcc9c975","p":{"ff023000000000000011":"Initial State","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"017ffdc010e6bcc9c971","p":{"01703376c4a81c0e9d91":"Defines states and transitions between states.","01703376c4a81c0e9d92":"A Workflow defines a set of *states* through which the instances of a Data Type can go through, as well as the transitions allows between those states.<br/><br/>A Workflow can therefore be seen as a state machine. Each transition can have an optional *Process Function*, which can embed any custom logic to:\n- Add predefined processing within a transition\n- Add additional verification logic to allow or deny the transition to happen\n\nEach Workflow is assigned to a Data Type, and can then be used to control the possible states of the instances of that Data Type."}},{"o":1,"t":"017ffdc2dda51d46b430","p":{"ff023000000000000011":"Workflow State"}},{"o":1,"t":"017ffdc2dda61d46b430","p":{"01703376c4a81c0e9d91":"A single state of a workflow sequence.","01703376c4a81c0e9d92":"A Workflow State represents a single state in a workflow."}},{"o":1,"t":"017ffde21f5fe0f704ce","p":{"ff023000000000000011":"Workflow Process Function Definition"}},{"o":1,"t":"017ffe02381f9fac5060","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017ffe02381f9fac5061","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Object"}},{"o":1,"t":"017ffe02381f9fac5062","p":{"017bc044aeacce7ffc8f":2,"ff023000000000000011":"User"}},{"o":1,"t":"017ffe02381f9fac5065","p":{"017bc044aeacce7ffc8f":3,"ff023000000000000011":"Data Map"}},{"o":1,"t":"017ffe02381f9fac5063","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017ffe02381f9fac5064","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017ffdc633219f16beea","p":{"ff023000000000000011":"Workflow Transition"}},{"o":1,"t":"017ffdc633219f16beec","p":{"ff023000000000000011":"Process"}},{"o":1,"t":"017ffdc2dda51d46b431","p":{"ff023000000000000011":"From State","ff023000000000000030":994,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":8,"ff023000000000000137":9,"ff023000000000000237":8,"ff023000000000000337":8,"ff023000000000000437":8,"ff023000000000000537":0}},{"o":1,"t":"017ffdc633219f16beeb","p":{"ff023000000000000011":"To State","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":8,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":8,"ff023000000000000437":8,"ff023000000000000537":0}}],"optionalOperations":[]}
1
+ {"rootTag":"100000000000000000dd","operations":[{"o":1,"t":"017a7a9ff057958e5678","p":{"ff023000000000000011":"Enums"}},{"o":1,"t":"017a7a9ff058958e5678","p":{"01703376c4a81c0e9d91":"Allows defining one or more enums.","01703376c4a81c0e9d92":"An enum is an ordered list of entries, with a `Value` and a `Display Name`. The `Value` is the actual value being used within dataflows, while the `Display Name` is the text displayed in DRAW.<br/><br/>Enums are treated as *types* within Olympe, and they can therefore be used in various places:\n- In Functions and Actions, as types of inputs and outputs\n- In Visual Components, as types of properties\n- In Data Models, as types of properties within Data Types\n\n"}},{"o":1,"t":"016cdd861b32d56c8208","p":{"ff023000000000000011":"Enum Item"}},{"o":1,"t":"01645fe6873aeea59e64","p":{"ff023000000000000011":"Config Data Set"}},{"o":1,"t":"017ed8ac775f48d4d589","p":{"ff023000000000000011":"dataRel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":0,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01645fe6873beea59e64","p":{"01703376c4a81c0e9d91":"Set of Config Data Type instances.","01703376c4a81c0e9d92":"Config Data Sets are used to create instances of Config Data Types.\nThey are typically used to create sets of data that can be used by your application as configuration, a bit like enums, with custom properties.<br/><br/>Since that data is part of the definition of applications, it cannot be updated by applications at runtime.\nCompared to instances of regular Data Types, which are created and modified by users at runtime, records inside Config Data Sets are saved during the export of the project, as part of the application data."}},{"o":1,"t":"016324fde11a836f77d3","p":{"ff023000000000000011":"Config Data Type"}},{"o":1,"t":"016324fde11a836088d3","p":{"ff023000000000000011":"Config Data Type -> Project","ff023000000000000030":610,"ff023000000000000031":96,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":8,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016324fde11b836f77d3","p":{"01703376c4a81c0e9d91":"A data structure to be used as configuration within bricks and applications.","01703376c4a81c0e9d92":"A Config 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.\nCompare to regular Data Types, a Config Data Type is defined in a *Config Data Model*, and it must be instantiated in a *Config Data Set*."}},{"o":1,"t":"0163a68ce44f3d1fa95d","p":{"ff023000000000000011":"Config Data Model"}},{"o":1,"t":"0163a68ce4503d1fa95d","p":{"01703376c4a81c0e9d91":"Defines Config Data Types and their relations.","01703376c4a81c0e9d92":"A Config Data Model is where you define the data structures called *Config Data Types*, which can be used within bricks and applications as configuration.<br/><br/>A Config Data Model allows defining complex data structure with multiple config data types, properties and relations.<br/><br/>A project can have multiple Config Data Models."}},{"o":1,"t":"016324fde11a836f76c2","p":{"ff023000000000000011":"Data Type"}},{"o":1,"t":"016324fde11a836087c2","p":{"ff023000000000000011":"Data Type -> Project","ff023000000000000030":610,"ff023000000000000031":96,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":8,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016324fde11b836f76c2","p":{"01703376c4a81c0e9d91":"Defines a new type.","01703376c4a81c0e9d92":"A Data Type is very similar to the concept of 'Class' in object-oriented programming languages, or to a table in a relational database. A data type can contain:\n- Properties: values attached to data type instances\n- Relations: these are many-to-many relationships between data type instances.\n\n"}},{"o":1,"t":"0163a68ce44f3d1fa84c","p":{"ff023000000000000011":"Data Model"}},{"o":1,"t":"0163a68ce4503d1fa84c","p":{"01703376c4a81c0e9d91":"Defines data types and relations between them.","01703376c4a81c0e9d92":"A Data Model enables defining the structure of the data that the application and its users will manage.A single Data Model can define multiple Data Types, as well as the relations between them. A project can have multiple Data Models."}},{"o":1,"t":"017b3aa8fae1e3d044dc","p":{"ff023000000000000011":"Business Container"}},{"o":1,"t":"017b3aa8fd1659291b92","p":{"ff023000000000000011":"business container to project","ff023000000000000030":515,"ff023000000000000031":1,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":0,"ff023000000000000337":9,"ff023000000000000437":9,"ff023000000000000537":0}},{"o":1,"t":"017b3aa8fe7ec3fd52f2","p":{"ff023000000000000011":"business container to runtime objects","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":0,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":0,"ff023000000000000437":0,"ff023000000000000537":0}},{"o":1,"t":"01644b6d4543b344b857","p":{"ff023000000000000011":"Media Library"}},{"o":1,"t":"01644b6d4544b344b857","p":{"01703376c4a81c0e9d91":"A repository for media resources.","01703376c4a81c0e9d92":"A Media Library stores assets like images, videos and fonts that can be used within the project."}},{"o":1,"t":"01644b6297305d62fca2","p":{"ff023000000000000011":"Image File"}},{"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."}},{"o":1,"t":"016eb13ba1388f7bdd71","p":{"ff023000000000000011":"picture_default","ff023000000000000050":"picture_default.svg","ff023000000000000051":{"c":4,"h":9,"m":7,"s":13,"S":623,"z":0,"y":2025,"M":12,"d":16},"ff023000000000000052":"image/svg+xml","ff023000000000000053":"images/picture_default.svg","ff023000000000000054":false,"ff023000000000000055":{"c":4,"h":9,"m":7,"s":13,"S":623,"z":0,"y":2025,"M":12,"d":16}}},{"o":1,"t":"01647e113043c637b541","p":{"fd01647e677f5d1cfbdf42":"normal","fd01647e6780999bf8bd25":300,"ff023000000000000011":"Font File"}},{"o":1,"t":"01647e35ecd24ef0b88d","p":{"ff023000000000000011":"Font Family"}},{"o":1,"t":"01647e677f5d1cfbdf42","p":{"ff023000000000000011":"Font Style"}},{"o":1,"t":"01647e6780999bf8bd25","p":{"ff023000000000000011":"Font Weight"}},{"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"}},{"o":1,"t":"0164643c432146a71d5c","p":{"ff023000000000000011":"Video File"}},{"o":1,"t":"0164643c432246a71d5c","p":{"01703376c4a81c0e9d91":"A file containing a video recording.","01703376c4a81c0e9d92":"A Video File contains a binary encoded video. Supported formats are mp4, mpeg and avi."}},{"o":1,"t":"0163c9ae01f2d6e9ca49","p":{"ff023000000000000011":"ObjectRef"}},{"o":1,"t":"0163c9ae0401d21eb0c3","p":{"ff023000000000000011":"objectTag"}},{"o":1,"t":"0169b5a8a33144fb0b49","p":{"ff023000000000000011":"reference","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"016421bb3797e22d1c4e","p":{"ff023000000000000011":"Video Stream"}},{"o":1,"t":"0162f672366be5ca7a86","p":{"ff023000000000000011":"Type"}},{"o":1,"t":"018119241abce0e5696e","p":{"ff023000000000000011":"Map"}},{"o":1,"t":"018119241abde0e5696e","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."}},{"o":1,"t":"01631aacd8276ea98490","p":{"ff023000000000000011":"List"}},{"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."}},{"o":1,"t":"016cfca73e63f9ab5ba4","p":{"ff023000000000000011":"Text"}},{"o":1,"t":"01631aacd8276ea98491","p":{"ff023000000000000011":"Array"}},{"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).<br/><br/>This is similar to arrays in programming languages."}},{"o":1,"t":"01631aacd8276ea98492","p":{"ff023000000000000011":"Query Result"}},{"o":1,"t":"01631aacd8286ea98492","p":{"01703376c4a81c0e9d91":"An ordered collection of objects.","01703376c4a81c0e9d92":"A **QueryResult** is a collection of object tuples produced by the execution of a Query. It can be accessed sequentially (one entry after the other) or directly by specifying the rank of the entry (e.g. the 3rd entry).<br/><br/>This is similar to arrays in programming languages."}},{"o":1,"t":"01631aacd8276ea98493","p":{"ff023000000000000011":"Query"}},{"o":1,"t":"01631aacd8286ea98493","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98494","p":{"ff023000000000000011":"Filter Type"}},{"o":1,"t":"01631aacd8286ea98494","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98495","p":{"ff023000000000000011":"Sort Direction"}},{"o":1,"t":"01631aacd8286ea98495","p":{"01703376c4a81c0e9d91":"TODO","01703376c4a81c0e9d92":"TODO"}},{"o":1,"t":"01631aacd8276ea98496","p":{"017a7690c915975ea995":0,"ff023000000000000011":"equals","ff023000000000000026":"equals"}},{"o":1,"t":"01631aacd8276ea98497","p":{"017a7690c915975ea995":1,"ff023000000000000011":"different","ff023000000000000026":"different"}},{"o":1,"t":"01631aacd8276ea98498","p":{"017a7690c915975ea995":2,"ff023000000000000011":"contains","ff023000000000000026":"contains"}},{"o":1,"t":"01631aacd8276ea98499","p":{"017a7690c915975ea995":3,"ff023000000000000011":"greater than","ff023000000000000026":"greater than"}},{"o":1,"t":"01631aacd8276ea9849a","p":{"017a7690c915975ea995":4,"ff023000000000000011":"greater or equals","ff023000000000000026":"greater or equals"}},{"o":1,"t":"01631aacd8276ea9849b","p":{"017a7690c915975ea995":5,"ff023000000000000011":"smaller than","ff023000000000000026":"smaller than"}},{"o":1,"t":"01631aacd8276ea9849c","p":{"017a7690c915975ea995":6,"ff023000000000000011":"smaller or equals","ff023000000000000026":"smaller or equals"}},{"o":1,"t":"01631aacd8276ea9849d","p":{"017a7690c915975ea995":7,"ff023000000000000011":"regexp","ff023000000000000026":"regexp"}},{"o":1,"t":"01631aacd8276ea9849e","p":{"017a7690c915975ea995":0,"ff023000000000000011":"ascending","ff023000000000000026":"ascending"}},{"o":1,"t":"01631aacd8276ea9849f","p":{"017a7690c915975ea995":1,"ff023000000000000011":"descending","ff023000000000000026":"descending"}},{"o":1,"t":"018312ceeb3e93618a85","p":{"ff023000000000000011":"Context"}},{"o":1,"t":"018312ceeb3f93618a85","p":{"01703376c4a81c0e9d91":"Context of a brick","01703376c4a81c0e9d92":"A Context is a placeholder to store some key/value related to a specific part (context) of the application"}},{"o":1,"t":"01621fb84e320000cf00","p":{"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016eeb5ede9f3094d8f0","p":{"ff023000000000000011":"Error Flow"}},{"o":1,"t":"016ac4f59ee8ea2081ba","p":{"ff023000000000000011":"Predefined IO","ff023000000000000012":true}},{"o":1,"t":"017bc044aeacce7ffc8f","p":{"ff023000000000000011":"Predefined IO Rank"}},{"o":1,"t":"016ac4f5a0091c4790e2","p":{"ff023000000000000011":"Predefined Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"016ac4f59c592b862457","p":{"ff023000000000000011":"Predefined Input"}},{"o":1,"t":"016ac4f59dd99f5df3e1","p":{"ff023000000000000011":"Predefined Output"}},{"o":1,"t":"0168a431d25001540000","p":{"ff023000000000000011":"Runnable IO","ff023000000000000012":true}},{"o":1,"t":"01740c5d4ae4b520dd01","p":{"ff023000000000000011":"IO Rank"}},{"o":1,"t":"0168a431d3b9b7438424","p":{"ff023000000000000011":"Type IO","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"0168a431d25001540001","p":{"ff023000000000000011":"Runnable Input"}},{"o":1,"t":"01740c5d4ae4b520dd02","p":{"ff023000000000000011":"Default Value"}},{"o":1,"t":"0168a431d25001540002","p":{"ff023000000000000011":"Runnable Output"}},{"o":1,"t":"011100000000000adef0","p":{"ff023000000000000011":"Function Signature"}},{"o":1,"t":"016ac4f59a2917fdef01","p":{"ff023000000000000011":"Predefined Inputs rel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"016ac4f59a2917fdef02","p":{"ff023000000000000011":"Predefined Outputs rel","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"011100000001000adef0","p":{"01703376c4a81c0e9d91":"A signature for functions","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 as types within the inputs or outputs of Functions and Actions, as well as within properties of Visual Components.<br/><br/>A Function Signature is analogous to an <a href=\"https://en.wikipedia.org/wiki/Interface_(object-oriented_programming)\" targer=\"_blank\">interface</a> in object-oriented programming."}},{"o":1,"t":"0112000000000000def0","p":{"fd01692aa71f3108454479":false,"ff023000000000000011":"Runnable Definition"}},{"o":1,"t":"01692aa71f3108454479","p":{"ff023000000000000011":"hardcoded"}},{"o":1,"t":"0166446c1f128ebc903a","p":{"ff023000000000000011":"On Load"}},{"o":1,"t":"0166446c1f128ebc904e","p":{"ff023000000000000011":"On Error"}},{"o":1,"t":"01621fb84e320000f00a","p":{"ff023000000000000011":"Inputs","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01621fb84e320000f00b","p":{"ff023000000000000011":"Outputs","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"0171838bcfed0000e00e","p":{"ff023000000000000011":"Super Definition","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"0171838bcfed0000a00a","p":{"ff023000000000000011":"Auxiliary model","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"01130000000000ca1100","p":{"ff023000000000000011":"Runnable","ff023000000000000012":true}},{"o":1,"t":"01692a4af82e8984742b","p":{"ff023000000000000011":"Definition of runnable","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"01756a18d4921c103111","p":{"ff023000000000000011":"Anonymous definition","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":10,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":10,"ff023000000000000437":10,"ff023000000000000537":10}},{"o":1,"t":"01692a4af82e8984742c","p":{"ff023000000000000011":"Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01692a4af82e8984742d","p":{"ff023000000000000011":"Conditional Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"01692a4af82e8984742e","p":{"ff023000000000000011":"Extra Calls Runnable","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":4,"ff023000000000000037":4,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":4,"ff023000000000000437":4,"ff023000000000000537":2}},{"o":1,"t":"016c2d996d9ca27fa9d8","p":{"ff023000000000000011":"Delegate","ff023000000000000012":true}},{"o":1,"t":"016c3cb7742ec9309e0b","p":{"ff023000000000000011":"Delegator Relation","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016c42d3454636f90533","p":{"ff023000000000000011":"Delegated Properties","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"016d3f37610ae4fc3962","p":{"ff023000000000000011":"SizeDelegator"}},{"o":1,"t":"01621fb84e320000f000","p":{"ff023000000000000011":"Function"}},{"o":1,"t":"0162f15740c36629dc57","p":{"ff023000000000000011":"description"}},{"o":1,"t":"01621fb84e330000f000","p":{"01703376c4a81c0e9d91":"A Function takes inputs and produces outputs.","01703376c4a81c0e9d92":"A Function is the basic logic brick. It takes one or several inputs and produces one or several outputs.\nFor instance `Plus` is a Function that takes 2 numbers as inputs an produces, as output, a number that is the sum of these 2 inputs.<br/><br/>A Function can be reused within other Functions, Actions and Visual Components.<br/><br/>By default, a Function is triggered once each one of its inputs has been defined, and then everytime one of its inputs changes."}},{"o":1,"t":"01621fb84e320000f011","p":{"ff023000000000000011":"Coded Function"}},{"o":1,"t":"01621fb84e330000f011","p":{"01703376c4a81c0e9d91":"A Function implemented using code.","01703376c4a81c0e9d92":"A Coded Function is a function implemented using code, such as JavaScript or TypeScript.<br/><br/>Coded Functions are typically used to add new functionalities within applications, or to implement more complex logic."}},{"o":1,"t":"0168c6f020f2a96f0000","p":{"ff023000000000000011":"Function Call","ff023000000000000012":true}},{"o":1,"t":"0168a431d91f25780000","p":{"ff023000000000000011":"Pipe"}},{"o":1,"t":"0168a431d91f25780001","p":{"ff023000000000000011":"Source Value"}},{"o":1,"t":"0168a431d91f25780002","p":{"ff023000000000000011":"Source Scope","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f25780003","p":{"ff023000000000000011":"Source Output","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f25780004","p":{"ff023000000000000011":"Source Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000a","p":{"ff023000000000000011":"Destination Scope","ff023000000000000030":994,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":9,"ff023000000000000137":9,"ff023000000000000237":10,"ff023000000000000337":9,"ff023000000000000437":9,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000b","p":{"ff023000000000000011":"Destination Input","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"0168a431d91f2578000c","p":{"ff023000000000000011":"Destination Property","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":9,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":8}},{"o":1,"t":"01621fb84e32000000a0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Ascender"}},{"o":1,"t":"01621fb84e32000000a1","p":{"ff023000000000000011":"Input","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000a2","p":{"ff023000000000000011":"Upward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000d0","p":{"01621fb84e320000f001":"private","ff023000000000000011":"Descender"}},{"o":1,"t":"01621fb84e32000000d1","p":{"ff023000000000000011":"Downward","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":1,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e32000000d2","p":{"ff023000000000000011":"Output","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":10,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"o":1,"t":"01621fb84e320000a000","p":{"ff023000000000000011":"Action"}},{"o":1,"t":"016ac63229782039429f","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016ac6322acf67eebfe7","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"01621fb84e330000a000","p":{"01703376c4a81c0e9d91":"A function takes inputs and produces outputs.","01703376c4a81c0e9d92":"An Action is the other basic logic brick. It also takes one or several inputs and produces one or several outputs.\nAdditionally, an Action has an input and output *control flows*. The Action is executed when the input control flow is triggered, and it defines all outputs before the output control flow is triggered.<br/><br/>By default, an action is triggered everytime the control flow is triggered, regardless of the value of the other inputs.<br/><br/>An Action can be reused within other Functions, Actions and Visual Components."}},{"o":1,"t":"01621fb84e320000f012","p":{"ff023000000000000011":"Coded Action"}},{"o":1,"t":"01621fb84e330000f012","p":{"01703376c4a81c0e9d91":"An Action implemented using code.","01703376c4a81c0e9d92":"A Coded Action is an Action implemented using code, such as JavaScript or TypeScript.<br/><br/>Coded Actions are typically used to add new functionalities within applications, or to implement more complex logic."}},{"o":1,"t":"0168c6f020f2a96a0000","p":{"ff023000000000000011":"Action Call","ff023000000000000012":true}},{"o":1,"t":"016a9766c230916ea5ec","p":{"ff023000000000000011":"Service"}},{"o":1,"t":"016ac63c5b3ed0562740","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"016a9766c231916ea5ec","p":{"01703376c4a81c0e9d91":"A long running action to be run in a Service Application.","01703376c4a81c0e9d92":"A Service is an Action meant to be run inside a Service App. The Service is triggered when the Service App starts, and runs until the Service App stops.<br/><br/>A Service has no input, and its configuration is therefore generally read from configuration files, APIs or other external sources.<br/><br/>Typical uses of Services are to run batch jobs, expose web services, or listen to outside events such as incoming emails."}},{"o":1,"t":"0169b6876a03f139d50a","p":{"ff023000000000000011":"Interaction Event Definition"}},{"o":1,"t":"016ac63808535703691c","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"0169b6876a03f14ae61b","p":{"ff023000000000000011":"Error Handler Definition"}},{"o":1,"t":"016ac638085357047a2d","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017a7b07a948e30508fa","p":{"ff023000000000000011":"Remote Action"}},{"o":1,"t":"017a7b07b09e3b22c8b4","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017a7b07ba05807a74b0","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"User"}},{"o":1,"t":"017a7b0818c12388d731","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017a7b085146d5e69aec","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017a7b07a949e30508fa","p":{"01703376c4a81c0e9d91":"An action running remotely in a Service App.","01703376c4a81c0e9d92":"A Remote Action is an Action which is running within a Service App. It behaves and it is used like an action, but it runs remotely. The Remote Action takes care of serializing the inputs, send them to the Service App, executes the content of the Remote Action, and serializes the outputs back to the caller.<br/><br/>Remote Actions are typically used to call APIs, databases, send emails and perform other back-end operations.<br/><br/>A remote action is synchronous, and can therefore be subject to timeouts if running for too long. The timeout value is configurable per environment."}},{"o":1,"t":"017a7b0c5dcbd8964c5d","p":{"fd017a7b0c62a02a89444f":false,"ff023000000000000011":"Remote Action Call","ff023000000000000012":true}},{"o":1,"t":"017a7b0c62a02a89444f","p":{"ff023000000000000011":"listener"}},{"o":1,"t":"011203300000000adf00","p":{"fd011203300000000adf01":0,"fd011203300000000adf02":20000,"ff023000000000000011":"System Information"}},{"o":1,"t":"011203300000000adf01","p":{"ff023000000000000011":"appController timestamp"}},{"o":1,"t":"011203300000000adf02","p":{"ff023000000000000011":"appController heart rate"}},{"o":1,"t":"011203300000000adf0f","p":{}},{"o":1,"t":"01120300000000adef00","p":{"ff023000000000000011":"Application Definition","ff023000000000000012":true}},{"o":1,"t":"0171bc1f15da96dfdb89","p":{"ff023000000000000011":"app project import","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":2,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"0171bc1f15da96dfdb90","p":{"ff023000000000000011":"deploy data source","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":2}},{"o":1,"t":"011203300000000adef5","p":{"fd011203300000000adef6":false,"fd011203300000000adef7":false,"fd011203300000000adef8":0,"ff023000000000000011":"Deployment Info"}},{"o":1,"t":"011203300000000adef6","p":{"ff023000000000000011":"activated"}},{"o":1,"t":"011203300000000adef7","p":{"ff023000000000000011":"rebuild"}},{"o":1,"t":"011203300000000adef8","p":{"ff023000000000000011":"status"}},{"o":1,"t":"011203300000000adef9","p":{"ff023000000000000011":"last error"}},{"o":1,"t":"011203300000000adefa","p":{"ff023000000000000011":"project URL"}},{"o":1,"t":"011203300000000adefb","p":{"ff023000000000000011":"project branch"}},{"o":1,"t":"011203300000000adefc","p":{"ff023000000000000011":"build command"}},{"o":1,"t":"011203300000000adefd","p":{"ff023000000000000011":"project config"}},{"o":1,"t":"011203300000000adefe","p":{"ff023000000000000011":"logs"}},{"o":1,"t":"011203300000000adeff","p":{"ff023000000000000011":"port mappings"}},{"o":1,"t":"011203300000000adee0","p":{"ff023000000000000011":"dependencies"}},{"o":1,"t":"011203300000000adef3","p":{"ff023000000000000011":"Service App"}},{"o":1,"t":"011203300000000adef4","p":{"ff023000000000000011":"Deployment Info","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":2,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":2,"ff023000000000000437":2,"ff023000000000000537":0}},{"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 on any edge or IoT device that does not have a screen. They run in the background and are typically used to capture data from a third party, process data, perform data input validation, etc."}},{"o":1,"t":"017dc8d6c8fd8c8bd2ff","p":{"ff023000000000000011":"Data Connector"}},{"o":1,"t":"0113030000000aca1100","p":{"ff023000000000000011":"Application","ff023000000000000012":true}},{"o":1,"t":"0113032000000aca1102","p":{"ff023000000000000011":"Headless Application","ff023000000000000012":true}},{"o":1,"t":"017ffdc010e5bcc9c971","p":{"fd017ffdc010e5bcc9c972":false,"ff023000000000000011":"Workflow"}},{"o":1,"t":"017ffdc010e5bcc9c972","p":{"ff023000000000000011":"Serialization Enabled"}},{"o":1,"t":"017ffdc010e5bcc9c973","p":{"ff023000000000000011":"Data Type","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":2}},{"o":1,"t":"017ffdc010e5bcc9c974","p":{"ff023000000000000011":"States","ff023000000000000030":543,"ff023000000000000031":31,"ff023000000000000034":0,"ff023000000000000037":6,"ff023000000000000137":6,"ff023000000000000237":2,"ff023000000000000337":6,"ff023000000000000437":6,"ff023000000000000537":0}},{"o":1,"t":"017ffdc010e5bcc9c975","p":{"ff023000000000000011":"Initial State","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":1,"ff023000000000000137":5,"ff023000000000000237":1,"ff023000000000000337":1,"ff023000000000000437":1,"ff023000000000000537":0}},{"o":1,"t":"017ffdc010e6bcc9c971","p":{"01703376c4a81c0e9d91":"Defines states and transitions between states.","01703376c4a81c0e9d92":"A Workflow defines a set of *states* through which the instances of a Data Type can go through, as well as the transitions allows between those states.<br/><br/>A Workflow can therefore be seen as a state machine. Each transition can have an optional *Process Function*, which can embed any custom logic to:\n- Add predefined processing within a transition\n- Add additional verification logic to allow or deny the transition to happen\n\nEach Workflow is assigned to a Data Type, and can then be used to control the possible states of the instances of that Data Type."}},{"o":1,"t":"017ffdc2dda51d46b430","p":{"ff023000000000000011":"Workflow State"}},{"o":1,"t":"017ffdc2dda61d46b430","p":{"01703376c4a81c0e9d91":"A single state of a workflow sequence.","01703376c4a81c0e9d92":"A Workflow State represents a single state in a workflow."}},{"o":1,"t":"017ffde21f5fe0f704ce","p":{"ff023000000000000011":"Workflow Process Function Definition"}},{"o":1,"t":"017ffe02381f9fac5060","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017ffe02381f9fac5061","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Object"}},{"o":1,"t":"017ffe02381f9fac5062","p":{"017bc044aeacce7ffc8f":2,"ff023000000000000011":"User"}},{"o":1,"t":"017ffe02381f9fac5065","p":{"017bc044aeacce7ffc8f":3,"ff023000000000000011":"Data Map"}},{"o":1,"t":"017ffe02381f9fac5063","p":{"017bc044aeacce7ffc8f":0,"ff023000000000000011":"Control Flow"}},{"o":1,"t":"017ffe02381f9fac5064","p":{"017bc044aeacce7ffc8f":1,"ff023000000000000011":"Error Flow"}},{"o":1,"t":"017ffdc633219f16beea","p":{"ff023000000000000011":"Workflow Transition"}},{"o":1,"t":"017ffdc633219f16beec","p":{"ff023000000000000011":"Process"}},{"o":1,"t":"017ffdc2dda51d46b431","p":{"ff023000000000000011":"From State","ff023000000000000030":994,"ff023000000000000031":992,"ff023000000000000034":0,"ff023000000000000037":8,"ff023000000000000137":9,"ff023000000000000237":8,"ff023000000000000337":8,"ff023000000000000437":8,"ff023000000000000537":0}},{"o":1,"t":"017ffdc633219f16beeb","p":{"ff023000000000000011":"To State","ff023000000000000030":514,"ff023000000000000031":0,"ff023000000000000034":0,"ff023000000000000037":8,"ff023000000000000137":9,"ff023000000000000237":1,"ff023000000000000337":8,"ff023000000000000437":8,"ff023000000000000537":0}}],"optionalOperations":[]}
package/index.js CHANGED
@@ -314,10 +314,10 @@ olympe.ha.zb.j={Uw:0,dg:1,Ev:2,tk:3,Cs:4,Bb:5,Au:6,yC:7};olympe.ha.zb.D={0:'TRAC
314
314
  olympe.ha.ye.zb=class{constructor(a,b){this.name=a;const c=b instanceof rxjs.Observable;this.D=c?olympe.ha.zb.j.tk:b;c&&b.subscribe(d=>{this.D=d});this.X=a.toUpperCase();this.R=new Map;this.Ha=console}ka(){return this.name}H(){return this.D}F(){return this.D<=olympe.ha.zb.j.Uw}j(){return this.D<=olympe.ha.zb.j.dg}N(){return this.D<=olympe.ha.zb.j.Ev}ia(){return this.D<=olympe.ha.zb.j.tk}wa(){return this.D<=olympe.ha.zb.j.Cs}Z(){return this.D<=olympe.ha.zb.j.Bb}ba(){return this.D<=olympe.ha.zb.j.Au}trace(...a){this.F()&&
315
315
  Ib(this,'trace',a)}debug(...a){this.j()&&Ib(this,'debug',a)}log(...a){this.N()&&Ib(this,'log',a)}info(...a){this.ia()&&Ib(this,'info',a)}warn(...a){this.wa()&&Ib(this,'warn',a)}error(...a){this.Z()&&Ib(this,'error',a)}fatal(...a){this.ba()&&Ib(this,'error',a)}};olympe.ha.ye.zb.ya=[olympe.ha.zb];olympe.ha.ye.Ta=class{constructor(a,b,c){this.j=a;this.D=parseInt(b,10);this.F=c;this.channels=new Map;this.G=this.dd('logging');this.G.log('Logging initialized, global log level is '+olympe.ha.zb.D[b])}dd(a){var b=this.channels.get(a);if(!b){b=`${olympe.ha.Config.fu}.${a}`;var c;const d=new rxjs.BehaviorSubject(null!=(c=this.j.getParameter(b))?c:this.D);Ta(this.j,b,e=>{d.next(e)});c=this.F;b=`${b}.${olympe.ha.Config.Fw}`;Object.prototype.hasOwnProperty.call(this.j.parameters,b.toLowerCase())&&(c=
316
316
  !0===this.j.getParameter(b));b=new olympe.ha.ye.zb(a,d.asObservable(),c);this.channels.set(a,b)}return b}};olympe.ha.ye.Ta.ya=[olympe.ha.Ta];olympe.ha.P={Ea:'logging.Manager'};olympe.ha.Config={Up:'logging',Vp:'logging.showLogLevel',fu:'logging',Fw:'showLogLevel'};olympe.V.config(function(a){E(a,olympe.ha.Config.Up,olympe.ha.zb.j.tk);E(a,olympe.ha.Config.Vp,!0);Va(a,olympe.ha.P.Ea,olympe.ha.ye.Ta,olympe.V.P.Fg,new olympe.V.ma(olympe.ha.Config.Up),new olympe.V.ma(olympe.ha.Config.Vp))},'olympe.logging');olympe.V.run([olympe.ha.P.Ea],a=>{olympe.ha.Wa=b=>a.dd(b)},'Logging singleton getter initialization');olympe.C={};olympe.C.Config={Pq:'df.nodeCreationThreshold'};const Jb=[];function Kb(){}function Lb(){}olympe.C.J=class a{constructor(b,c,d){this.j=void 0===b?Kb:b;this.D=void 0===c?Jb:c;this.X=d}static H(){var b=[];return void 0===b||0===b.length?olympe.C.J.Z:new a(Lb,b)}H(){return this.j?this.j():void 0}F(){return this.D?this.D:Jb}N(){return null===this.j&&null===this.D}R(){return this.j===Lb}};olympe.C.J.X=new olympe.C.J;olympe.C.J.j=new olympe.C.J(null,null);olympe.C.J.Z=new olympe.C.J(Lb);olympe.C.J.F=new olympe.C.J(()=>olympe.C.$);
317
- olympe.C.J.D=new olympe.C.J(()=>olympe.C.Sa);olympe.C.J.N=new olympe.C.J(()=>olympe.C.da);olympe.C.J.R=new olympe.C.J(()=>olympe.C.Zb);olympe.C.Jh=class{T(){return''}Pn(){return''}destroy(){}fb(){return!1}kd(){return!1}run(a,...b){return a(...b)}tc(a){return a}getParent(){return null}Ht(){}pe(){}detach(){}jl(){}ug(){}onDestroy(){return''}Zf(){}Yd(){return''}wt(){}};olympe.C.Jh.prototype.offDestroy=olympe.C.Jh.prototype.Zf;olympe.C.Jh.prototype.onDestroy=olympe.C.Jh.prototype.onDestroy;let Mb=0;olympe.V.run([new olympe.V.ma(olympe.C.Config.Pq)],()=>{});
318
- olympe.C.Yb=class{constructor(a='SimpleContext',b){++Mb;this.ba=new Map;this.Z=new Map;this.X=new Map;this.Ha=0;this.name=a;this.id=String(Mb);this.F=this.ia=!1;(this.N=void 0===b?olympe.C.Za():b)&&this.N.pe(this);this.debug=!1}T(){return this.id}Pn(){return this.name}run(a,...b){if(!this.ia){var c=olympe.C.Gt(this);a=a(...b);c&&olympe.C.Gt(c);return a}}tc(a){return(...b)=>this.run(a,...b)}destroy(){if(!this.ia&&!this.F){this.F=!0;this.ug();for(const a of this.Z.keys())this.Z.has(a)&&this.Z.get(a)();
317
+ olympe.C.J.D=new olympe.C.J(()=>olympe.C.Sa);olympe.C.J.N=new olympe.C.J(()=>olympe.C.da);olympe.C.J.R=new olympe.C.J(()=>olympe.C.$b);olympe.C.Jh=class{T(){return''}Pn(){return''}destroy(){}fb(){return!1}kd(){return!1}run(a,...b){return a(...b)}tc(a){return a}getParent(){return null}Ht(){}pe(){}detach(){}jl(){}ug(){}onDestroy(){return''}Zf(){}Yd(){return''}wt(){}};olympe.C.Jh.prototype.offDestroy=olympe.C.Jh.prototype.Zf;olympe.C.Jh.prototype.onDestroy=olympe.C.Jh.prototype.onDestroy;let Mb=0;olympe.V.run([new olympe.V.ma(olympe.C.Config.Pq)],()=>{});
318
+ olympe.C.Zb=class{constructor(a='SimpleContext',b){++Mb;this.ba=new Map;this.Z=new Map;this.X=new Map;this.Ha=0;this.name=a;this.id=String(Mb);this.F=this.ia=!1;(this.N=void 0===b?olympe.C.Za():b)&&this.N.pe(this);this.debug=!1}T(){return this.id}Pn(){return this.name}run(a,...b){if(!this.ia){var c=olympe.C.Gt(this);a=a(...b);c&&olympe.C.Gt(c);return a}}tc(a){return(...b)=>this.run(a,...b)}destroy(){if(!this.ia&&!this.F){this.F=!0;this.ug();for(const a of this.Z.keys())this.Z.has(a)&&this.Z.get(a)();
319
319
  this.Z.clear();this.X.clear();this.N&&(this.N.detach(this,!1),this.N=null);this.ia=!0;this.F=!1;this.ug()}}fb(){return this.ia}kd(){return this.F}pe(a){if(!this.ia){var b;olympe.C.gb(a)?b=a.Ba:olympe.C.ao(a)&&(b=a);b&&this.ba.set(b.T(),b)}}detach(a,b=!0){let c;olympe.C.gb(a)?c=a.Ba:olympe.C.ao(a)&&(c=a);c&&this.ba.has(c.T())&&(b&&c.jl(this),this.ba.delete(c.T()))}jl(){this.N=null;this.destroy()}ug(){const a=this.ba;for(const b of a.keys())a.has(b)&&a.get(b).jl(this);this.ba.clear();for(const b of this.X.keys())this.X.has(b)&&
320
- this.X.get(b)();this.X.clear()}onDestroy(a,b){void 0===b&&(++this.Ha,b=String(this.Ha));this.Z.set(b,a);return b}Zf(a){this.Z.delete(a)}Yd(a){if(void 0===b){++this.Ha;var b=String(this.Ha)}this.X.set(b,a);return b}wt(a){this.X.delete(a)}Ht(a){this.N&&this.N.detach(this,!1);(this.N=a||null)&&this.N.pe(this)}getParent(){return this.N}};olympe.C.Ur=class extends olympe.C.Yb{constructor(){super('Root',null)}destroy(){}onDestroy(){return''}Zf(){}};olympe.C.Jh.ya=[olympe.C.Jh];let Nb=0;
320
+ this.X.get(b)();this.X.clear()}onDestroy(a,b){void 0===b&&(++this.Ha,b=String(this.Ha));this.Z.set(b,a);return b}Zf(a){this.Z.delete(a)}Yd(a){if(void 0===b){++this.Ha;var b=String(this.Ha)}this.X.set(b,a);return b}wt(a){this.X.delete(a)}Ht(a){this.N&&this.N.detach(this,!1);(this.N=a||null)&&this.N.pe(this)}getParent(){return this.N}};olympe.C.Ur=class extends olympe.C.Zb{constructor(){super('Root',null)}destroy(){}onDestroy(){return''}Zf(){}};olympe.C.Jh.ya=[olympe.C.Jh];let Nb=0;
321
321
  function Ob(a,b){a.R||(a.R=new Map);a.R.set(b.T(),b);switch(b.Lc()){case olympe.C.Node.j.Sh:break;case olympe.C.Node.j.di:break;case olympe.C.Node.j.zk:case olympe.C.Node.j.fg:olympe.C.G.warn('Not bad as such but should not happen!');break;case olympe.C.Node.j.Kh:Pb(a,olympe.C.Node.j.Kh);break;case olympe.C.Node.j.OBSOLETE:a.lb=!0;a.j!==olympe.C.Node.j.Kh&&Pb(a,olympe.C.Node.j.OBSOLETE);break;case olympe.C.Node.j.$d:olympe.C.G.warn('Adding a destroyed node as upstream => should never happen!');break;
322
322
  default:olympe.C.G.warn('Unknown state, investigate: ',b.Lc())}Qb(b,a)}
323
323
  function Rb(a){if(a.Nc){var b=[],c=[];if(a.$f)if(a.$f instanceof olympe.C.Node)if(Sb(a.$f))b=a.$f.Fb;else return;else b=a.$f;else b=null;if(null!==a.Wd){const e=a.tg;for(let f=0,g=a.Wd.length;f<g;f++)if(null!==e&&-1<e.indexOf(f)){const h=a.Wd[f];if(Sb(h))c.push(h.Fb);else return}else c.push(a.Wd[f])}if(a.Nc instanceof Function)var d=a.Nc;else b&&(b[a.Nc]||olympe.C.G.warn('looks like you forget a cast somewhere around '+a.Nc),d=b[a.Nc]);a.run(()=>{a.ug();if(void 0!==d){const e=d.apply(b,c);e&&e.Gs?
@@ -329,7 +329,7 @@ Object?d=!0:b.toLowerCase()!==e.toLowerCase()&&a.valueType!==Object&&(d=!0),d&&(
329
329
  function bc(a,b){if(a.j!==olympe.C.Node.j.fg&&a.j!==olympe.C.Node.j.$d&&(a.j!==olympe.C.Node.j.Sh||a.Nc)){var c=void 0!==a.defaultValue;a.Nc&&b!==a.D&&a.ug();if(c)L(a,a.defaultValue,!0);else if(a.Fb=void 0,Pb(a,olympe.C.Node.j.Sh),b=a.H)for(const d of b.values())bc(d,a)}}function Ub(a){if(a.j!==olympe.C.Node.j.Kh){Pb(a,olympe.C.Node.j.Kh);var b=a.H;if(b)for(const c of b.values())Ub(c);a.ug();void 0!==a.D&&Wb(a);a.Fb=a.defaultValue}}function Sb(a){return a.j===olympe.C.Node.j.di}
330
330
  function Tb(a,b){b===a?olympe.C.G.error('Setting a node as provider of itself. Ignoring'):(a.D&&a.D!==b&&Wb(a),Qb(b,a),Sb(b)?L(a,b.Fb,!0):void 0!==a.defaultValue?L(a,a.defaultValue,!0):bc(a),a.D=b)}function cc(a,b){a.Nc&&(a.Nc=void 0);a.cd='Repeater';Tb(a,b)}function Zb(a){a.D?Yb(a):null!==a.R&&0===Array.from(a.R.values()).filter(b=>!Sb(b)).length&&(a.lb&&(a.lb=!1,Rb(a)),Yb(a))}
331
331
  function Qb(a,b){a.H||(a.H=new Map);a.H.set(b.T(),b);a.j===olympe.C.Node.j.$d&&olympe.C.G.warn('adding a downstream node on a deleted one (#'+a.T()+') !')}function Xb(a,b){a.H&&(b=b.T(),a.H.has(b)&&(a.H.delete(b),dc(a)))}function dc(a){if(null===a.getParent()){var b=a.H;b&&0<b.size||a.destroy()}}
332
- olympe.C.Node=class extends olympe.C.Yb{constructor({valueType:a,Nc:b,eA:c=!0,$f:d,Xn:e,debug:f=!1,tg:g=null,cd:h='Node',rj:k}={}){++Nb;super(String(Nb));this.debug=!!f;this.cd=h;h&&'string'===typeof h||(b?this.cd=b.name?b.name:'anon()':this.cd='Node');this.Wd=e&&0<e.length?e:null;this.tg=g&&0<g.length?g:null;this.valueType=a;this.Fb=void 0;this.wa=!1;this.j=olympe.C.Node.j.Sh;this.lb=!1;this.H=this.R=null;this.Nc=b;this.$f=d||null;this.defaultValue=this.Ua=this.D=void 0;this.rj=k;d&&d instanceof
332
+ olympe.C.Node=class extends olympe.C.Zb{constructor({valueType:a,Nc:b,eA:c=!0,$f:d,Xn:e,debug:f=!1,tg:g=null,cd:h='Node',rj:k}={}){++Nb;super(String(Nb));this.debug=!!f;this.cd=h;h&&'string'===typeof h||(b?this.cd=b.name?b.name:'anon()':this.cd='Node');this.Wd=e&&0<e.length?e:null;this.tg=g&&0<g.length?g:null;this.valueType=a;this.Fb=void 0;this.wa=!1;this.j=olympe.C.Node.j.Sh;this.lb=!1;this.H=this.R=null;this.Nc=b;this.$f=d||null;this.defaultValue=this.Ua=this.D=void 0;this.rj=k;d&&d instanceof
333
333
  olympe.C.Node&&Ob(this,d);if(g)for(b=0;b<g.length;b++)a=e[g[b]],Ob(this,a);c&&Rb(this)}zh(a){this.defaultValue=a;this.j===olympe.C.Node.j.Sh&&L(this,a,!0);return this}tj(a){this.valueType=a}Mb(){return this.valueType||Object}asObservable(a=olympe.C.Za()){return new rxjs.Observable(b=>{const c=a.run(()=>olympe.C.createNode(this.valueType,b.next.bind(b),null,[this],[0],`Observable of ${this.cd}`));c.onDestroy(()=>b.complete());return()=>c.destroy()})}Lc(){return this.j}fb(){return this.j===olympe.C.Node.j.$d}kd(){return this.j===
334
334
  olympe.C.Node.j.fg}wb(...a){if(this.rj instanceof Function)return this.rj(...a);var b=a.length;--b;const c=a[b];--b;const d=a[b],e=Array(b);for(var f=0;f<b;f++)e[f]=a[f];a=this.Lc();a!==olympe.C.Node.j.fg&&a!==olympe.C.Node.j.$d||olympe.C.G.warn('Calling a function on a destroyed node!!!',this);a=d.F();b=[];if(1===a.length&&-1===a[0])for(var g of e)olympe.C.gb(g)&&b.push(g.Ba);else for(let h=0,k=a.length;h<k;h++)g=a[h],f=e[g],void 0!==f&&null!==f&&f.hh&&(e[g]=f.Ba,b.push(g));return M(new olympe.C.Node({valueType:d.H(),
335
335
  Nc:c,$f:this,Xn:e,debug:!1,tg:b,cd:'Proxy.'+c+'()'}))}jl(a){if(null===this.getParent())olympe.C.G.warn('context is undefined, investigate');else if(this.getParent()!==a){olympe.C.G.warn('Investigate a potential issue in creator-createe link: create node mismatch',a,this.getParent());return}this.Ht(null);dc(this)}destroy(){var a=this.j;if(a!==olympe.C.Node.j.fg&&a!==olympe.C.Node.j.$d){Pb(this,olympe.C.Node.j.fg);if(a=this.H){for(const c of a.values())if(a.has(c.T())){var b=c;b.R&&b.R.delete(this.T());
@@ -384,11 +384,11 @@ b.g,b.b,b.a)}static create(a,b,c,d=1){return olympe.C.ua([a,b,c,d],(e,f,g,h)=>{e
384
384
  b){return olympe.C.Color.create(this.j.Jj(a.rh(),b),this.D.Jj(a.oh(),b),this.b.Jj(a.kh(),b),this.a.Jj(a.jh(),b))}ey(a){return olympe.C.Color.create(this.j,this.D,this.b,a)}Kt(){return`rgba(${this.j},${this.D},${this.b},${this.a})`}no(){const a=(16777216|this.b|this.D<<8|this.j<<16).toString(16).slice(1),b=1===this.a.valueOf()?'':(256|255*this.a).toString(16).slice(1);return'#'+(a+b).toUpperCase()}toString(){return this.no()}Fa(a){return a instanceof olympe.C.Color?this.j.valueOf()===a.j.valueOf()&&
385
385
  this.D.valueOf()===a.D.valueOf()&&this.b.valueOf()===a.b.valueOf()&&this.a.valueOf()===a.a.valueOf():!1}compare(a){const b=(this.rh().valueOf()<<16|this.oh().valueOf()<<8|this.kh().valueOf())-(a.rh().valueOf()<<16|a.oh().valueOf()<<8|a.kh().valueOf());return 0===b?this.jh().valueOf()-a.jh().valueOf():b}};olympe.C.Color.prototype.equals=olympe.C.Color.prototype.Fa;olympe.C.Color.prototype.toHexString=olympe.C.Color.prototype.no;olympe.C.Color.prototype.toRGBString=olympe.C.Color.prototype.Kt;
386
386
  olympe.C.Color.prototype.getAlpha=olympe.C.Color.prototype.jh;olympe.C.Color.prototype.getGreen=olympe.C.Color.prototype.oh;olympe.C.Color.prototype.getBlue=olympe.C.Color.prototype.kh;olympe.C.Color.prototype.getRed=olympe.C.Color.prototype.rh;olympe.C.Color.create=olympe.C.Color.create;m=olympe.C.Color.prototype;m.toJSON.K=olympe.C.J.j;m.rh.K=olympe.C.J.F;m.kh.K=olympe.C.J.F;m.oh.K=olympe.C.J.F;m.jh.K=olympe.C.J.F;m.Ex.K=new olympe.C.J(()=>olympe.C.Color,[]);
387
- m.ey.K=new olympe.C.J(()=>olympe.C.Color,[]);m.Kt.K=new olympe.C.J(()=>String,[]);m.no.K=new olympe.C.J(()=>String,[]);m.Fa.K=olympe.C.J.j;m.compare.K=olympe.C.J.j;olympe.C.File=class{ka(){}Aq(){}Bq(){}ht(){}ll(){}Nn(){}ml(){}rename(){}};olympe.C.Zb=class{constructor(a,b){this.x=olympe.C.ge(a);this.y=olympe.C.ge(b)}toJSON(){return'{ "type": "vector2", "x": '+JSON.stringify(olympe.C.Qa(this.x).valueOf())+', "y": '+JSON.stringify(olympe.C.Qa(this.y).valueOf())+' }'}static Qb(a){let b;'string'===typeof a?b=JSON.parse(a):b=a;return new olympe.C.Zb(b.x,b.y)}bv(){return this.x}pA(a){kc(this.x,a)}dv(){return this.y}qA(a){kc(this.y,a)}ez(){return this.x.Ct(this.y)}he(a){return olympe.C.ua([this,a],(b,c)=>new olympe.C.Zb(b.x.he(c.x),b.y.he(c.y)),
388
- olympe.C.Zb,'Vector2.plus')}xh(a){return olympe.C.ua([this,a],(b,c)=>new olympe.C.Zb(b.x.xh(c.x),b.y.xh(c.y)),olympe.C.Zb,'Vector2.minus')}Jz(a){return new olympe.C.Zb(this.x.Al(a),this.y.Al(a))}Yx(a){return new olympe.C.Zb(this.x.wj(a),this.y.wj(a))}Lz(){return new olympe.C.Zb(this.x.Rj(),this.y.Rj())}Zx(a){return olympe.C.ua([this,a],(b,c)=>olympe.C.ua([b.x,b.y,c.x,c.y],(d,e,f,g)=>olympe.C.sa(d*f+e*g),olympe.C.$),olympe.C.$)}length(){return olympe.C.ua([this.x,this.y],(a,b)=>olympe.C.sa(Math.sqrt(a*
389
- a+b*b)),olympe.C.$)}normalize(){return olympe.C.ua([this.x,this.y],(a,b)=>{const c=Math.sqrt(a*a+b*b);return new olympe.C.Zb(a/c,b/c)},olympe.C.Zb)}floor(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.Zb(Math.floor(a),Math.floor(b)),olympe.C.Zb)}ceil(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.Zb(Math.ceil(a),Math.ceil(b)),olympe.C.Zb)}round(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.Zb(Math.round(a),Math.round(b)),olympe.C.Zb)}vx(a){return new olympe.C.Zb(this.x.he(a),
390
- this.y.he(a))}wx(a,b){return new olympe.C.Zb(this.x.he(a),this.y.he(b))}Zc(){return olympe.C.ua([this.x,this.y],(a,b)=>olympe.C.yb(`Vector2[${a.valueOf()}, ${b.valueOf()}]`),olympe.C.Sa)}toString(){return`Vector2[${this.x.Ba.Fb}, ${this.y.Ba.Fb}]`}Fa(a){return this===a?!0:!1}};m=olympe.C.Zb.prototype;m.toJSON.K=olympe.C.J.j;m.bv.K=olympe.C.J.F;m.pA.K=olympe.C.J.j;m.dv.K=olympe.C.J.F;m.qA.K=olympe.C.J.j;m.ez.K=olympe.C.J.F;m.he.K=new olympe.C.J(()=>olympe.C.Zb,[0]);
391
- m.xh.K=new olympe.C.J(()=>olympe.C.Zb,[0]);m.Jz.K=olympe.C.J.R;m.Yx.K=olympe.C.J.R;m.Lz.K=olympe.C.J.R;m.Zx.K=new olympe.C.J(()=>olympe.C.$,[0]);m.length.K=olympe.C.J.F;m.normalize.K=olympe.C.J.R;m.floor.K=olympe.C.J.R;m.ceil.K=olympe.C.J.R;m.round.K=olympe.C.J.R;m.vx.K=olympe.C.J.R;m.wx.K=olympe.C.J.R;m.Zc.K=olympe.C.J.D;m.toString.K=olympe.C.J.j;m.Fa.K=olympe.C.J.j;olympe.C.Jg=class{constructor(){}Mb(){}Sd(){}get(){}si(){}has(){}uh(){}Kc(){}Vf(){}Df(){}xg(){}forEach(){}qe(){}};olympe.C.Jg.prototype.forEachCurrentValue=olympe.C.Jg.prototype.qe;olympe.C.Jg.prototype.forEach=olympe.C.Jg.prototype.forEach;m=olympe.C.Jg.prototype;m.has.K=olympe.C.J.N;m.uh.K=olympe.C.J.j;m.Kc.K=new olympe.C.J(()=>Object,[]);m.Vf.K=new olympe.C.J(()=>String,[]);m.Df.K=olympe.C.J.F;m.xg.K=olympe.C.J.j;m.forEach.K=new olympe.C.J(()=>{},[]);m.qe.K=olympe.C.J.j;olympe.C.wd=class extends olympe.C.Jg{Kd(){}Uf(){}nf(){}Tf(){}se(){}mf(){}xj(){}vi(){}};olympe.C.wd.prototype.getCurrentAt=olympe.C.wd.prototype.mf;olympe.C.wd.prototype.getAt=olympe.C.wd.prototype.se;olympe.C.wd.prototype.getCurrentKeyAt=olympe.C.wd.prototype.Tf;olympe.C.wd.prototype.getKeyAt=olympe.C.wd.prototype.nf;olympe.C.wd.prototype.getCurrentRank=olympe.C.wd.prototype.Uf;olympe.C.wd.prototype.getRank=olympe.C.wd.prototype.Kd;m=olympe.C.wd.prototype;m.Kd.K=olympe.C.J.F;m.Uf.K=olympe.C.J.j;
387
+ m.ey.K=new olympe.C.J(()=>olympe.C.Color,[]);m.Kt.K=new olympe.C.J(()=>String,[]);m.no.K=new olympe.C.J(()=>String,[]);m.Fa.K=olympe.C.J.j;m.compare.K=olympe.C.J.j;olympe.C.File=class{ka(){}Aq(){}Bq(){}ht(){}ll(){}Nn(){}ml(){}rename(){}};olympe.C.$b=class{constructor(a,b){this.x=olympe.C.ge(a);this.y=olympe.C.ge(b)}toJSON(){return'{ "type": "vector2", "x": '+JSON.stringify(olympe.C.Qa(this.x).valueOf())+', "y": '+JSON.stringify(olympe.C.Qa(this.y).valueOf())+' }'}static Qb(a){let b;'string'===typeof a?b=JSON.parse(a):b=a;return new olympe.C.$b(b.x,b.y)}bv(){return this.x}pA(a){kc(this.x,a)}dv(){return this.y}qA(a){kc(this.y,a)}ez(){return this.x.Ct(this.y)}he(a){return olympe.C.ua([this,a],(b,c)=>new olympe.C.$b(b.x.he(c.x),b.y.he(c.y)),
388
+ olympe.C.$b,'Vector2.plus')}xh(a){return olympe.C.ua([this,a],(b,c)=>new olympe.C.$b(b.x.xh(c.x),b.y.xh(c.y)),olympe.C.$b,'Vector2.minus')}Jz(a){return new olympe.C.$b(this.x.Al(a),this.y.Al(a))}Yx(a){return new olympe.C.$b(this.x.wj(a),this.y.wj(a))}Lz(){return new olympe.C.$b(this.x.Rj(),this.y.Rj())}Zx(a){return olympe.C.ua([this,a],(b,c)=>olympe.C.ua([b.x,b.y,c.x,c.y],(d,e,f,g)=>olympe.C.sa(d*f+e*g),olympe.C.$),olympe.C.$)}length(){return olympe.C.ua([this.x,this.y],(a,b)=>olympe.C.sa(Math.sqrt(a*
389
+ a+b*b)),olympe.C.$)}normalize(){return olympe.C.ua([this.x,this.y],(a,b)=>{const c=Math.sqrt(a*a+b*b);return new olympe.C.$b(a/c,b/c)},olympe.C.$b)}floor(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.$b(Math.floor(a),Math.floor(b)),olympe.C.$b)}ceil(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.$b(Math.ceil(a),Math.ceil(b)),olympe.C.$b)}round(){return olympe.C.ua([this.x,this.y],(a,b)=>new olympe.C.$b(Math.round(a),Math.round(b)),olympe.C.$b)}vx(a){return new olympe.C.$b(this.x.he(a),
390
+ this.y.he(a))}wx(a,b){return new olympe.C.$b(this.x.he(a),this.y.he(b))}Zc(){return olympe.C.ua([this.x,this.y],(a,b)=>olympe.C.yb(`Vector2[${a.valueOf()}, ${b.valueOf()}]`),olympe.C.Sa)}toString(){return`Vector2[${this.x.Ba.Fb}, ${this.y.Ba.Fb}]`}Fa(a){return this===a?!0:!1}};m=olympe.C.$b.prototype;m.toJSON.K=olympe.C.J.j;m.bv.K=olympe.C.J.F;m.pA.K=olympe.C.J.j;m.dv.K=olympe.C.J.F;m.qA.K=olympe.C.J.j;m.ez.K=olympe.C.J.F;m.he.K=new olympe.C.J(()=>olympe.C.$b,[0]);
391
+ m.xh.K=new olympe.C.J(()=>olympe.C.$b,[0]);m.Jz.K=olympe.C.J.R;m.Yx.K=olympe.C.J.R;m.Lz.K=olympe.C.J.R;m.Zx.K=new olympe.C.J(()=>olympe.C.$,[0]);m.length.K=olympe.C.J.F;m.normalize.K=olympe.C.J.R;m.floor.K=olympe.C.J.R;m.ceil.K=olympe.C.J.R;m.round.K=olympe.C.J.R;m.vx.K=olympe.C.J.R;m.wx.K=olympe.C.J.R;m.Zc.K=olympe.C.J.D;m.toString.K=olympe.C.J.j;m.Fa.K=olympe.C.J.j;olympe.C.Jg=class{constructor(){}Mb(){}Sd(){}get(){}si(){}has(){}uh(){}Kc(){}Vf(){}Df(){}xg(){}forEach(){}qe(){}};olympe.C.Jg.prototype.forEachCurrentValue=olympe.C.Jg.prototype.qe;olympe.C.Jg.prototype.forEach=olympe.C.Jg.prototype.forEach;m=olympe.C.Jg.prototype;m.has.K=olympe.C.J.N;m.uh.K=olympe.C.J.j;m.Kc.K=new olympe.C.J(()=>Object,[]);m.Vf.K=new olympe.C.J(()=>String,[]);m.Df.K=olympe.C.J.F;m.xg.K=olympe.C.J.j;m.forEach.K=new olympe.C.J(()=>{},[]);m.qe.K=olympe.C.J.j;olympe.C.wd=class extends olympe.C.Jg{Kd(){}Uf(){}nf(){}Tf(){}se(){}mf(){}xj(){}vi(){}};olympe.C.wd.prototype.getCurrentAt=olympe.C.wd.prototype.mf;olympe.C.wd.prototype.getAt=olympe.C.wd.prototype.se;olympe.C.wd.prototype.getCurrentKeyAt=olympe.C.wd.prototype.Tf;olympe.C.wd.prototype.getKeyAt=olympe.C.wd.prototype.nf;olympe.C.wd.prototype.getCurrentRank=olympe.C.wd.prototype.Uf;olympe.C.wd.prototype.getRank=olympe.C.wd.prototype.Kd;m=olympe.C.wd.prototype;m.Kd.K=olympe.C.J.F;m.Uf.K=olympe.C.J.j;
392
392
  m.nf.K=new olympe.C.J(()=>String,[]);m.Tf.K=olympe.C.J.j;m.se.K=new olympe.C.J(()=>Object,[]);m.mf.K=olympe.C.J.j;m.xj.K=olympe.C.J.j;m.vi.K=new olympe.C.J(()=>Array,[]);olympe.C.Ei=class{constructor(a,b){this.H=b||olympe.C.Za();this.valueType=a||Object;this.values={};this.Ua=this.ia=null;this.Re=0;this.R=Object.create(null);this.lb=Object.create(null);this.size=0;this.F=null;this.H.onDestroy(()=>{const c=this.R;if(c){const d=Object.keys(c),e=d.length;for(let f=0;f<e;f++){const g=c[d[f]],h=Object.keys(g);for(let k=h.length,l=0;l<k;l++)g[h[l]].destroy()}}})}getContext(){return this.H}Mb(){return this.valueType}Sd(a){this.valueType=a;const b=this.ia;if(null!==b)for(const c in b)Object.prototype.hasOwnProperty.call(b,
393
393
  c)&&gc(b[c],a)}get(a){const b=c=>{null===this.ia&&(this.ia={});return this.Cj(this.ia,c,this.values[c],this.valueType,'Map.get('+c+')')};return olympe.C.ua([a],c=>b(c),this.valueType)}si(a){a=this.values[a];return olympe.C.gb(a)?Sb(a.Ba)?a.Ba.Fb:void 0:a}has(a){const b=c=>{null===this.Ua&&(this.Ua={});return this.Cj(this.Ua,c,c in this.values?olympe.C.da.D:olympe.C.da.j,olympe.C.da,'Map.has('+c+')')};return olympe.C.ua([a],c=>b(c),olympe.C.da)}uh(a){return a in this.values}Cj(a,b,c,d,e){let f=a[b];
394
394
  f||this.H.run(()=>{f=olympe.C.Xd(d,void 0,e);a[b]=f;f.Ba.onDestroy(()=>delete a[b]);olympe.C.gb(c)?jc(f,c):hc(f,c)});return f}Kc(){throw Error('Abstract method getFirstKey needs to be overridden');}Vf(){throw Error('Abstract method getFirstKey needs to be overridden');}Df(){null===this.F&&this.H.run(()=>{this.F=olympe.C.Xd(olympe.C.$,olympe.C.sa(this.size));this.F.Ba.onDestroy(()=>{this.F=null})});return this.F}xg(){return this.size}forEach(a,b){const c=this.tn();a=this.Is(c,a,b);this.sn(c,a)}tn(){return String(++this.Re)}sn(a,
@@ -405,7 +405,7 @@ if(null!==a)for(b in a)ic(a[parseInt(b,10)]);var b=this.Z;null!==b&&($b(b.Ba),hc
405
405
  m.Tf.K=olympe.C.J.j;m.se.K=new olympe.C.J(()=>Object,[]);m.mf.K=olympe.C.J.j;m.xj.K=new olympe.C.J(()=>{},[]);m.tt.K=olympe.C.J.j;m.vi.K=new olympe.C.J(()=>Array,[]);m.qe.K=olympe.C.J.j;m.vn.K=olympe.C.J.j;m.un.K=olympe.C.J.j;m.Js.K=olympe.C.J.j;m.Of.K=olympe.C.J.j;m.ii.K=olympe.C.J.j;m.Mg.K=olympe.C.J.j;olympe.C.Map=class extends olympe.C.Ei{constructor(a){a===olympe.C.Proxy&&(a=Object);super(a);this.j=this.D=null}Sd(a){a===olympe.C.Proxy&&(a=Object);null!==this.D&&gc(this.D,a);super.Sd(a)}Kc(){null===this.D&&this.Hn();return this.D}Vf(){null===this.j&&this.Hn();return this.j}Hn(){this.getContext().run(()=>{this.D=olympe.C.Xd(this.Mb());this.j=olympe.C.Xd(String);this.Pj(this.Kn())})}Kn(){const a=this.values;let b,c;for(b in a)if(Object.prototype.hasOwnProperty.call(a,b)){c=b;break}return c}Pj(a){if(void 0!==
406
406
  a){const b=this.values[a];b&&b instanceof olympe.C.Proxy?jc(this.D,b):hc(this.D,b);hc(this.j,a)}else void 0!==this.D.Ba.Fb&&(ic(this.D),ic(this.j))}set(a,b){this.fl(a,b);1===this.size&&null!==this.j&&this.Pj(a);this.Of()}remove(a){const b=this.qj(a);null!==this.j&&this.j.Ba.Fb===a&&this.Pj(this.Kn());return b}clear(){this.ii();null!==this.j&&this.Pj()}};m=olympe.C.Map.prototype;m.Sd.K=olympe.C.J.j;m.Kc.K=new olympe.C.J(()=>Object,[]);m.Vf.K=new olympe.C.J(()=>String,[]);m.Hn.K=olympe.C.J.j;
407
407
  m.Kn.K=olympe.C.J.j;m.Pj.K=olympe.C.J.j;m.set.K=olympe.C.J.j;m.remove.K=new olympe.C.J(()=>Object,[]);m.clear.K=olympe.C.J.j;olympe.C.Pg=class extends olympe.C.Uj{constructor(a){super(a)}set(a,b,c){this.fl(a,b);void 0!==c&&olympe.C.Yc([c],d=>{this.vn(a,d)});this.Of()}remove(a){this.un(a);return this.qj(a)}clear(){this.ii()}};olympe.C.Pg.prototype.remove.K=olympe.C.J.j;olympe.C.Pg.prototype.clear.K=olympe.C.J.j;olympe.C.Ut=class extends olympe.C.nk{constructor(a,b){super(olympe.C.$,'animatedFlowSource');this.duration=a;this.j=b||olympe.C.$.vp.Hq}ub(){return olympe.C.Nz(this.node,this.duration,this.j,void 0)}};let sc=null;olympe.C.G=void 0;olympe.C.ho=void 0;olympe.C.ni=void 0;olympe.C.hi=new Map;olympe.C.hi.set(0,olympe.C.$.ZERO);olympe.C.hi.set(1,olympe.C.$.ONE);olympe.C.hi.set(2,olympe.C.$.Xw);olympe.C.el=new Map;olympe.C.el.set('',olympe.C.Sa.EMPTY);olympe.C.el.set(' ',olympe.C.Sa.Iw);olympe.C.createNode=function(a,b,c,d,e,f,g,h){return new olympe.C.Node({valueType:a,Nc:b,$f:c,Xn:d,debug:g,tg:e,cd:f,rj:h})};olympe.C.Yf=function(a){return a instanceof olympe.C.Node};
408
- olympe.C.Xd=function(a,b,c){a=olympe.C.createNode(a,void 0,void 0,void 0,void 0,c);olympe.C.Yf(b)?cc(a,b):olympe.C.gb(b)?cc(a,b.Ba):L(a,b);return M(a)};olympe.C.gb=function(a){return!(!a||!a.hh)};olympe.C.qf=function(a){return!(!a||!(a instanceof olympe.C.Node||a.hh))};olympe.C.ao=function(a){return a instanceof olympe.C.Yb||a instanceof olympe.C.Ur||a instanceof olympe.C.Node};olympe.C.vh=function(a){return a instanceof olympe.C.nk};
408
+ olympe.C.Xd=function(a,b,c){a=olympe.C.createNode(a,void 0,void 0,void 0,void 0,c);olympe.C.Yf(b)?cc(a,b):olympe.C.gb(b)?cc(a,b.Ba):L(a,b);return M(a)};olympe.C.gb=function(a){return!(!a||!a.hh)};olympe.C.qf=function(a){return!(!a||!(a instanceof olympe.C.Node||a.hh))};olympe.C.ao=function(a){return a instanceof olympe.C.Zb||a instanceof olympe.C.Ur||a instanceof olympe.C.Node};olympe.C.vh=function(a){return a instanceof olympe.C.nk};
409
409
  olympe.C.co=function(a,b){if(void 0!==a){olympe.C.vh(a)&&(a=a.ub().Ba);if(!olympe.C.qf(a))return b(a);var c=[];olympe.C.gb(a)?c.push(a.Ba):c.push(a);return olympe.C.createNode(void 0,b,null,c,[0],'onResolved')}};olympe.C.Qa=function(a,b){let c=a;olympe.C.gb(a)?c=a.Ba.Fb:olympe.C.Yf(a)?c=a.Fb:olympe.C.vh(a)&&(c=a.ub().Ba.Fb);return void 0===c?b:c};
410
410
  olympe.C.zh=function(a,b){let c;olympe.C.gb(a)?c=a.Ba:olympe.C.Yf(a)?c=a:olympe.C.vh(a)&&(c=a.ub().Ba);c&&olympe.C.Yc([b],d=>{c.zh(d)},'setDefaultValue');return a};olympe.C.Bi=function(a,b,c,d){const e=a.length,f=Array(e),g=[];let h;for(let k=0;k<e;k++)h=a[k],void 0!==h&&null!==h&&(void 0!==h.Gs?(h=h.Ba,g.push(k)):h instanceof olympe.C.Node?g.push(k):olympe.C.vh(h)&&(h=h.ub().Ba,g.push(k))),f[k]=h;return olympe.C.createNode(c,b,null,f,g,d||'syncNodes')};
411
411
  olympe.C.Ae=function(a,b,c,d){return M(olympe.C.Bi(a,b,c,d||'syncProxies'))};const tc=a=>{for(const b of a)if(olympe.C.qf(b)||olympe.C.vh(b))return!1;return!0};olympe.C.ua=function(a,b,c,d,e){if(tc(a))return b(...a);const f=olympe.C.Bi(a,b,c,d||'TransformFlows');e&&olympe.C.Yc([e],g=>{f.zh(g)},'setDefaultValue');return M(f)};olympe.C.Yc=function(a,b,c){tc(a)?b(...a):olympe.C.Bi(a,b,void 0,c||'processFlows')};
@@ -418,14 +418,14 @@ olympe.C.$x=function(a,b,c){if(a){var d=a.T();null===sc&&(sc={});if(sc[d])olympe
418
418
  olympe.C.sa=function(a){if(void 0===a)return olympe.C.$.ZERO;if(a instanceof olympe.C.$)return a;a&&a.valueOf&&(a=a.valueOf());if('number'===typeof a){if(isNaN(a))return olympe.C.$.Oq;if(a===Math.PI)return olympe.C.$.PI;if(Infinity===a)return olympe.C.$.Ru;if(-Infinity===a)return olympe.C.$.Ov;if(isNaN(a))var b=!1;else b=parseFloat(a),b=(b|0)===b;return b&&-1<=a&&100>=a?(olympe.C.hi.has(a)||olympe.C.hi.set(a,new olympe.C.$(a)),olympe.C.hi.get(a)):new olympe.C.$(a)}return null};
419
419
  olympe.C.ge=function(a){return void 0===a?olympe.C.Xd(olympe.C.$):olympe.C.Xd(olympe.C.$,olympe.C.qf(a)?a:olympe.C.sa(a))};olympe.C.Nz=olympe.C.$.animate;olympe.C.xF=function(a,b){return new olympe.C.Ut(a,b)};olympe.C.yb=function(a){if(a instanceof olympe.C.Sa)return a;a instanceof Object&&(a=a.valueOf());const b=typeof a;if('string'===b||'number'===b||'boolean'===b)return a=String(a),olympe.C.el.has(a)?olympe.C.el.get(a):new olympe.C.Sa(a)};
420
420
  olympe.C.CF=function(a){return void 0===a?olympe.C.Xd(olympe.C.Sa):olympe.C.Xd(olympe.C.Sa,olympe.C.qf(a)?a:olympe.C.yb(a))};olympe.C.Sb=function(a){return a instanceof olympe.C.da?a:void 0!==a&&null!==a&&a.valueOf()?olympe.C.da.D:olympe.C.da.j};olympe.C.zF=function(a){return void 0===a?olympe.C.Xd(olympe.C.da):olympe.C.Xd(olympe.C.da,olympe.C.qf(a)?a:olympe.C.Sb(a))};olympe.C.yF=function(a){if(a instanceof Date)return new olympe.C.eb(a)};
421
- olympe.C.BF=function(a){return olympe.C.Xd(olympe.C.eb,void 0!==a?new olympe.C.eb(a):null)};olympe.C.pt=a=>a instanceof olympe.C.da||a instanceof olympe.C.$||a instanceof olympe.C.Sa||a instanceof olympe.C.eb;olympe.C.DF=function(a,b){return olympe.C.Xd(olympe.C.Zb,void 0===a&&void 0===b?void 0:new olympe.C.Zb(a,b))};olympe.C.Zz=function(a,b,c,d){let e;void 0!==a&&(a instanceof olympe.C.Color?e=a:e=olympe.C.Color.create(a,b,c,d));return olympe.C.Xd(olympe.C.Color,e)};olympe.C.AF=olympe.C.Zz;
421
+ olympe.C.BF=function(a){return olympe.C.Xd(olympe.C.eb,void 0!==a?new olympe.C.eb(a):null)};olympe.C.pt=a=>a instanceof olympe.C.da||a instanceof olympe.C.$||a instanceof olympe.C.Sa||a instanceof olympe.C.eb;olympe.C.DF=function(a,b){return olympe.C.Xd(olympe.C.$b,void 0===a&&void 0===b?void 0:new olympe.C.$b(a,b))};olympe.C.Zz=function(a,b,c,d){let e;void 0!==a&&(a instanceof olympe.C.Color?e=a:e=olympe.C.Color.create(a,b,c,d));return olympe.C.Xd(olympe.C.Color,e)};olympe.C.AF=olympe.C.Zz;
422
422
  olympe.C.Rx=function(a){olympe.C.G=a;olympe.C.ni=olympe.C.nh()};olympe.C.nh=function(){olympe.C.ho||(olympe.C.ho=new olympe.C.Ur);return olympe.C.ho};olympe.C.Za=function(){olympe.C.ni||(olympe.C.ni=olympe.C.nh());return olympe.C.ni};olympe.C.Gt=function(a){const b=olympe.C.ni;olympe.C.ao(a)&&(olympe.C.ni=a);return null!=b?b:null};
423
- olympe.C.Qb=a=>{a='string'===typeof a?JSON.parse(a):a;if(a.type){let b=null;switch(a.type){case 'dateTime':b=olympe.C.eb.Qb(a);break;case 'number':b=olympe.C.$.Qb(a);break;case 'string':b=olympe.C.Sa.Qb(a);break;case 'vector2':b=olympe.C.Zb.Qb(a);break;case 'color':b=olympe.C.Color.Qb(a);break;case 'boolean':b=olympe.C.da.Qb(a)}return b}return null};function uc(a){a.j.fb()||(a.F.forEach(b=>{b.destroy()}),a.F.clear(),a.D.clear(),a.size.clear(),a.N.clear(),a.R.length=0,a.H.length=0)}
424
- olympe.C.yD=class{constructor(){this.j=new olympe.C.Yb('Slot Manager context');this.F=new Map;this.j.run(()=>{this.D=olympe.C.bc(vc,'Last slot manager entry');this.size=lc(olympe.C.bc(olympe.C.$,'SlotManager size').repeat(this.D.ub().Qn()),olympe.C.$.ZERO);this.N=lc(olympe.C.bc(olympe.C.$,'last valid slots'),olympe.C.sa(-1))});this.R=[];this.H=[];this.j.onDestroy(()=>{uc(this)})}};
425
- class vc{constructor(a,b,c,d){this.id=a;this.D=new olympe.C.Yb('Slot manager entry');this.H=c;this.N=d;this.D.run(()=>{const e=lc(olympe.C.bc(olympe.C.$),olympe.C.$.ZERO);olympe.C.gb(b)?e.repeat(b):e.update(b);this.j=olympe.C.bc(olympe.C.$);this.F=this.j.ub().he(e.ub())});this.next=null}T(){return this.id}iz(){return this.j.ub()}Qn(){return this.F}Kd(){return this.H}rz(){return this.N}BA(a){this.H=a}oA(a){null===a?this.j.update(olympe.C.$.ZERO):(this.j.repeat(a.Qn()),a.next=this)}ev(){this.j.clear();
423
+ olympe.C.Qb=a=>{a='string'===typeof a?JSON.parse(a):a;if(a.type){let b=null;switch(a.type){case 'dateTime':b=olympe.C.eb.Qb(a);break;case 'number':b=olympe.C.$.Qb(a);break;case 'string':b=olympe.C.Sa.Qb(a);break;case 'vector2':b=olympe.C.$b.Qb(a);break;case 'color':b=olympe.C.Color.Qb(a);break;case 'boolean':b=olympe.C.da.Qb(a)}return b}return null};function uc(a){a.j.fb()||(a.F.forEach(b=>{b.destroy()}),a.F.clear(),a.D.clear(),a.size.clear(),a.N.clear(),a.R.length=0,a.H.length=0)}
424
+ olympe.C.yD=class{constructor(){this.j=new olympe.C.Zb('Slot Manager context');this.F=new Map;this.j.run(()=>{this.D=olympe.C.bc(vc,'Last slot manager entry');this.size=lc(olympe.C.bc(olympe.C.$,'SlotManager size').repeat(this.D.ub().Qn()),olympe.C.$.ZERO);this.N=lc(olympe.C.bc(olympe.C.$,'last valid slots'),olympe.C.sa(-1))});this.R=[];this.H=[];this.j.onDestroy(()=>{uc(this)})}};
425
+ class vc{constructor(a,b,c,d){this.id=a;this.D=new olympe.C.Zb('Slot manager entry');this.H=c;this.N=d;this.D.run(()=>{const e=lc(olympe.C.bc(olympe.C.$),olympe.C.$.ZERO);olympe.C.gb(b)?e.repeat(b):e.update(b);this.j=olympe.C.bc(olympe.C.$);this.F=this.j.ub().he(e.ub())});this.next=null}T(){return this.id}iz(){return this.j.ub()}Qn(){return this.F}Kd(){return this.H}rz(){return this.N}BA(a){this.H=a}oA(a){null===a?this.j.update(olympe.C.$.ZERO):(this.j.repeat(a.Qn()),a.next=this)}ev(){this.j.clear();
426
426
  this.next=null}destroy(){this.D.destroy();this.F=this.j=this.next=null}}m=vc.prototype;m.T.K=olympe.C.J.j;m.iz.K=new olympe.C.J(()=>olympe.C.$);m.Qn.K=new olympe.C.J(()=>olympe.C.$);m.Kd.K=olympe.C.J.j;m.rz.K=olympe.C.J.j;m.BA.K=olympe.C.J.j;m.oA.K=olympe.C.J.j;m.ev.K=olympe.C.J.j;m.destroy.K=olympe.C.J.j;olympe.C.P={Ca:'df.Logger'};olympe.V.config(a=>{E(a,olympe.C.Config.Pq,Number.POSITIVE_INFINITY);D(a,olympe.C.P.Ca,[olympe.ha.P.Ea],b=>b.dd('df'))},'olympe.df');olympe.V.run([olympe.C.P.Ca],a=>{olympe.C.Rx(a)},'olympe.df');olympe.host={};const wc=new Map,xc=new Map;olympe.host.Wq=class{static register(a,b,...c){wc.set(a,b);0<c.length&&xc.set(a,c)}static create(a,b,c,d){const e=wc.get(a);if(void 0===e)throw Error('Undefined UI element type: '+a);a=xc.get(a);return void 0!==a?new e(b,c,...a.map(f=>Sa(d,f))):new e(b,c)}};function yc(a,b,c){a.G.debug('CREATE #',b,', type=',c);a.j.set(b,olympe.host.Wq.create(c,b,a.G,a.H))}function zc(a,b,c,...d){const e=a.j.get(b);if(void 0!==e){a.G.H()<=olympe.ha.zb.j.dg&&a.G.debug('CALL #'+b+', '+c+'('+Array.prototype.slice.call(d,0)+')');b=[];for(const f of d)if(void 0===f||null===f)b.push(f);else if(olympe.C.gb(f))b.push(a.j.get(f.ox)||null);else if('function'===typeof f){const g=f,h=olympe.C.Za();b.push((...k)=>{h.fb()||g(...k)})}else b.push(f.valueOf());e[c].apply(e,b)}}
427
427
  function Ac(a){var b=olympe.host.Qe.Jd,c=olympe.host.Qe.Vq.As;++a.F;const d=a.F;yc(a,d,c);const e=olympe.C.createNode(b,void 0,void 0,void 0,void 0,'Native('+d+')',!1,function(){var f=arguments.length-2;const g=Array.from({length:f}),h=[],k=arguments[f+1],l=d+'_'+k;this.D.has(l)&&this.D.get(l).destroy();for(let n=0;n<f;n++){let p=arguments[n];olympe.C.gb(p)?(h.push(n),p=p.Ba):olympe.C.Yf(p)&&h.push(n);g[n]=p}0===h.length?e.run(()=>{zc(this,d,k,...g)}):(f=olympe.C.createNode(void 0,(...n)=>{e.run(()=>
428
- {zc(this,d,k,...n)})},void 0,g,h,'Native('+d+').'+k),this.D.set(l,f),f.onDestroy(()=>this.D.delete(l)));return null}.bind(a));e.Yd(a.N.bind(a,d));a=M(e);a.ox=d;L(e,a);return a}olympe.host.Ta=class{constructor(a,b){this.G=a;this.H=b;this.F=0;this.j=new Map;this.D=new Map;a.debug('Starting host manager')}Wa(){return this.G}N(a){this.G.debug('DESTROY #',a);const b=this.j.get(a);this.j.delete(a);b.destroy()}};olympe.host.Td=class{constructor(a){this.j=a;this.D=olympe.C.Za()}F(){return this.j}kd(){return this.j.Ba.kd()||this.D.kd()}fb(){return this.j.Ba.fb()}};olympe.host.Td.prototype.F.K=new olympe.C.J(()=>olympe.host.Qe.Td,[]);olympe.host.Yk=class{j(){}D(){}};olympe.host.Lu=class{};function Bc(a,b){var c=olympe.host.ag;const d=olympe.U.Mc(),e=new olympe.C.Yb('onTimeout context');c.j.X(b,d,()=>{e.fb()||e.kd()||e.run(a);c.j.F(d)});return new olympe.host.Jd.D(c.j,d,e)}function Cc(a,b){var c=olympe.host.ag;const d=olympe.U.Mc(),e=new olympe.C.Yb('onInterval context');c.j.R(b,d,()=>{e.fb()||e.kd()?c.j.D(d):e.run(a)})}olympe.host.Jd=class{constructor(a){this.j=Ac(a)}};olympe.host.Jd.j=class{constructor(a,b,c){this.ag=a;this.id=b;this.j=null!=c?c:null}T(){return this.id}cancel(){}};
428
+ {zc(this,d,k,...n)})},void 0,g,h,'Native('+d+').'+k),this.D.set(l,f),f.onDestroy(()=>this.D.delete(l)));return null}.bind(a));e.Yd(a.N.bind(a,d));a=M(e);a.ox=d;L(e,a);return a}olympe.host.Ta=class{constructor(a,b){this.G=a;this.H=b;this.F=0;this.j=new Map;this.D=new Map;a.debug('Starting host manager')}Wa(){return this.G}N(a){this.G.debug('DESTROY #',a);const b=this.j.get(a);this.j.delete(a);b.destroy()}};olympe.host.Td=class{constructor(a){this.j=a;this.D=olympe.C.Za()}F(){return this.j}kd(){return this.j.Ba.kd()||this.D.kd()}fb(){return this.j.Ba.fb()}};olympe.host.Td.prototype.F.K=new olympe.C.J(()=>olympe.host.Qe.Td,[]);olympe.host.Yk=class{j(){}D(){}};olympe.host.Lu=class{};function Bc(a,b){var c=olympe.host.ag;const d=olympe.U.Mc(),e=new olympe.C.Zb('onTimeout context');c.j.X(b,d,()=>{e.fb()||e.kd()||e.run(a);c.j.F(d)});return new olympe.host.Jd.D(c.j,d,e)}function Cc(a,b){var c=olympe.host.ag;const d=olympe.U.Mc(),e=new olympe.C.Zb('onInterval context');c.j.R(b,d,()=>{e.fb()||e.kd()?c.j.D(d):e.run(a)})}olympe.host.Jd=class{constructor(a){this.j=Ac(a)}};olympe.host.Jd.j=class{constructor(a,b,c){this.ag=a;this.id=b;this.j=null!=c?c:null}T(){return this.id}cancel(){}};
429
429
  olympe.host.Jd.H=class extends olympe.host.Jd.j{cancel(){this.ag.N(this.id);let a;null==(a=this.j)||a.destroy();this.j=null}};olympe.host.Jd.D=class extends olympe.host.Jd.j{cancel(){this.ag.F(this.id);let a;null==(a=this.j)||a.destroy();this.j=null}};olympe.host.Jd.F=class extends olympe.host.Jd.j{cancel(){this.ag.D(this.id);let a;null==(a=this.j)||a.destroy();this.j=null}};olympe.host.Le=class{H(a,b){return null!=b?b:''}ia(a,b){return null!=b?b:''}Ha(a,b){return null!=b?b:''}F(){}j(a,b){return null!=b?b:''}D(){}};olympe.host.Le.j={LIVENESS:'liveness',READINESS:'readiness',ALL:'all'};olympe.host.Qe={};olympe.host.Qe.Td=class{destroy(){}};olympe.host.Qe.Td.prototype.destroy=olympe.host.Qe.Td.prototype.destroy;olympe.host.Qe.Vq={JA:100,LA:101,KA:102,NA:103,MA:104,IA:105,pD:201,nD:202,kD:204,sD:205,jD:206,mD:207,qD:208,tD:209,uD:210,vD:211,lD:212,rD:218,oD:219,wD:220,iD:221,hD:222,DD:300,ED:301,FD:302,JD:303,KD:304,LD:305,GD:310,HD:311,ID:312,JC:400,KC:401,LC:402,xC:450,qC:500,oC:501,tC:502,sC:503,pC:504,rC:505,dE:600,VD:601,ZD:602,RD:603,SD:604,PD:605,UD:606,jE:607,bE:608,MD:609,QD:610,TD:611,aE:612,fE:613,ND:614,eE:615,$D:616,iE:617,WD:618,XD:619,YD:620,cE:630,OD:631,gE:632,hE:633,PE:700,sE:701,tE:702,
430
430
  uE:703,wE:704,xE:705,yE:706,vE:707,AE:708,zE:709,BE:710,FE:711,NE:712,CE:713,DE:714,GE:715,HE:716,JE:717,KE:718,ME:719,IE:720,LE:721,OE:722,EE:723,QE:724,RE:725,As:800};olympe.host.Qe.Jd=class{N(){}X(){}F(){}R(){}D(){}};olympe.host.P={Uk:'host.System',bq:'host.HistoryManager',Wr:'host.Scheduler',Ca:'host.platform.Logger',Ea:'host.Manager',Ie:'host.ProcessManager'};olympe.host.Config={Nk:'host.role',cq:'host.currentHost',tr:'host.processProbe',cs:'host.gracefulShutdownTimeout'};olympe.host.Yg={Ll:'active',Wh:'preview'};olympe.host.ag=null;
431
431
  olympe.V.config(function(a){var b,c;const d='object'===typeof window&&(null==(b=window)?void 0:null==(c=b.location)?void 0:c.hostname)||'127.0.0.1';a.setParameter(olympe.host.Config.cq,d);b=olympe.host.Yg.Ll;c=olympe.host.Yg.Wh;E(a,olympe.host.Config.Nk,d.startsWith(`${c}.`)?c:b);Xa(a,olympe.host.P.Uk);Xa(a,olympe.host.P.bq);C(a,olympe.host.P.Ie,olympe.host.Le);D(a,olympe.host.P.Ca,[olympe.ha.P.Ea],e=>e.dd('host'));C(a,olympe.host.P.Ea,olympe.host.Ta,olympe.host.P.Ca,olympe.V.P.Fg);D(a,olympe.host.P.Wr,
@@ -481,10 +481,10 @@ hd.Sk;yield c.j.close();c.j=c.createServer();yield c.start()})})})}stop(){return
481
481
  fd(a);a.addContentTypeParser('*',{parseAs:'buffer'},(c,d,e)=>{e(null,d)});return a}vj(a,b=1E3){this.timer&&clearTimeout(this.timer);this.timer=setTimeout(a,b)}};olympe.V.config(function(a){C(a,olympe.net.P.oj,olympe.Xa.node.net.http.fi,olympe.net.P.Ca,new olympe.V.ma(olympe.net.Config.Cf),new olympe.V.ma(olympe.net.Config.gq),new olympe.V.ma(olympe.net.Config.zs),new olympe.V.ma(olympe.net.Config.fq))},'olympe.native.node.net.http');olympe.Xa.node.U={};const od=require('stream').Readable,pd=require('buffer');
482
482
  olympe.Xa.node.U.Vl=class extends olympe.U.Vl{D(a){return new Uint8Array(Buffer.from(a,'base64'))}j(a){return a instanceof Uint8Array?Buffer.from(a,a.byteOffset,a.byteLength).toString('base64'):Buffer.from(a).toString('base64')}H(a){const b=this,c=()=>super.H;return u(function*(){if(a instanceof od){const d=[];for(const e=ha(a);;){const f=yield e.next();if(f.done)break;d.push(f.value)}return Buffer.concat(d)}return c().call(b,a)})}F(a){return Promise.resolve().then(()=>pd.resolveObjectURL(a)).catch(b=>
483
483
  {throw Error(`Error while trying to fetch buffer from ObjectURL: ${b}`);})}};olympe.V.config(function(a){Va(a,olympe.U.P.Eg,olympe.Xa.node.U.Vl)},'olympe.native.node.utils');olympe.async={};function qd(a,b){a.H||a.X.push(a.F.tc(b))}
484
- olympe.async.Gp=class{constructor(a,b=void 0===a){this.D=[];this.X=[];this.F=a||new olympe.C.Yb('Async executor context');this.ia=b;this.j=null;this.env=new Map;this.env.set('Executor',this);this.H=this.N=!1;this.G=null;this.timer=this.timeout=0;this.Z=olympe.U.Mc()}bg(a){0<=a&&(this.timeout=a);return this}Wa(){return this.G}add(a){this.H||this.D.push(this.F.tc(a));return this}start(){this.N||(this.G&&this.G.log('Executor started.'),this.N=!0,this.F.onDestroy(()=>{this.j='Context destroyed.';this.complete(!1)},
484
+ olympe.async.Gp=class{constructor(a,b=void 0===a){this.D=[];this.X=[];this.F=a||new olympe.C.Zb('Async executor context');this.ia=b;this.j=null;this.env=new Map;this.env.set('Executor',this);this.H=this.N=!1;this.G=null;this.timer=this.timeout=0;this.Z=olympe.U.Mc()}bg(a){0<=a&&(this.timeout=a);return this}Wa(){return this.G}add(a){this.H||this.D.push(this.F.tc(a));return this}start(){this.N||(this.G&&this.G.log('Executor started.'),this.N=!0,this.F.onDestroy(()=>{this.j='Context destroyed.';this.complete(!1)},
485
485
  this.Z),0<this.timeout&&(this.timer=setTimeout(()=>{this.j='Timeout expired.';this.timer=0;this.complete(!1)},this.timeout)))}clear(){this.D=[];this.X=[];this.env.clear();this.ia&&this.F.destroy()}complete(a){this.F.Zf(this.Z);if(!this.H){this.H=!0;this.timer&&(clearTimeout(this.timer),this.timer=0);this.G&&this.G.log(a?'Executor completed successfully':`Executor completed with error: ${this.j}`);for(const b of this.X)b(a,a?null:this.j,this.env);this.clear()}}getContext(){return this.F}};
486
- function rd(a){if(0<a.D.length){const b=a.D.shift();a.G&&a.G.log(`Executing next task. ${a.D.length} tasks left in the pipeline.`);a.getContext().run(()=>{b(()=>{Promise.resolve().then(()=>{rd(a)})},c=>{c&&(a.j=c);a.complete(!1)},a.env)})}else a.complete(!0)}olympe.async.Lw=class extends olympe.async.Gp{static create(){return new olympe.async.Lw(new olympe.C.Yb('SequencedExecutor'),!0)}start(){this.N||(super.start(),rd(this))}};
487
- olympe.async.Hk=class extends olympe.async.Gp{constructor(a,b){super(a,b);this.R=0;this.ba=!0}static create(){return new olympe.async.Hk(new olympe.C.Yb('ParallelExecutor'),!0)}run(a){this.G&&this.G.log('Starting a task');this.getContext().run(()=>{a(()=>{this.done()},b=>{this.ba=!1;b&&(this.j=this.j?`${this.j}. ${b}`:b);this.done()},this.env)})}add(a){super.add(a);this.N&&!this.H&&(this.R++,this.run(a));return this}done(){this.R--;0>=this.R&&this.complete(this.ba)}start(){if(!this.N)if(super.start(),
486
+ function rd(a){if(0<a.D.length){const b=a.D.shift();a.G&&a.G.log(`Executing next task. ${a.D.length} tasks left in the pipeline.`);a.getContext().run(()=>{b(()=>{Promise.resolve().then(()=>{rd(a)})},c=>{c&&(a.j=c);a.complete(!1)},a.env)})}else a.complete(!0)}olympe.async.Lw=class extends olympe.async.Gp{static create(){return new olympe.async.Lw(new olympe.C.Zb('SequencedExecutor'),!0)}start(){this.N||(super.start(),rd(this))}};
487
+ olympe.async.Hk=class extends olympe.async.Gp{constructor(a,b){super(a,b);this.R=0;this.ba=!0}static create(){return new olympe.async.Hk(new olympe.C.Zb('ParallelExecutor'),!0)}run(a){this.G&&this.G.log('Starting a task');this.getContext().run(()=>{a(()=>{this.done()},b=>{this.ba=!1;b&&(this.j=this.j?`${this.j}. ${b}`:b);this.done()},this.env)})}add(a){super.add(a);this.N&&!this.H&&(this.R++,this.run(a));return this}done(){this.R--;0>=this.R&&this.complete(this.ba)}start(){if(!this.N)if(super.start(),
488
488
  0<this.D.length){this.R=this.D.length;for(const a of this.D)this.run(a)}else this.complete(!0)}};olympe.Eb={};olympe.Eb.Bv=class{D(){return u(function*(){})}X(){}N(){}F(){}R(){}forEach(){}has(){}get(){}set(){}remove(){}ba(){}Z(){}clear(){}H(){}};olympe.Eb.Cv=class{D(){}};olympe.Eb.Storage=class{open(){}write(){}close(){}};olympe.Eb.Lv=class{get(){return null}set(){return this}delete(){}};olympe.Eb.P={uk:'localStorage.KeyValueDatabaseManager',ij:'localStorage.Storage',bB:'localStorage.DatacloudStorage',Im:'localStorage.LocalStorage',Ca:'localStorage.Logger',bh:'localStorage.prefix'};olympe.V.config(function(a){Xa(a,olympe.Eb.P.uk);D(a,olympe.Eb.P.bh,[],()=>'olympe');D(a,olympe.Eb.P.Ca,[olympe.ha.P.Ea],b=>b.dd('localstorage'));C(a,olympe.Eb.P.Im,olympe.Eb.Lv)},'olympe.localstorage');olympe.L={};olympe.L.Ob={kk:'urls.FileSvc',Do:'urls.BackupSvc',Ir:'urls.RestoreBackupSvc',Kg:'urls.GetContext',Xp:'urls.GraphDef',Ro:'urls.StaticGraphDef',TRANSACTION:'urls.Transaction',ys:'urls.UserTagFromToken',ix:'urls.UserNameFromTag',hx:'urls.UserRoles',sw:'urls.RoleMembers',Ak:'urls.OpenIDSvc',Bp:'urls.EventMonitor'};
489
489
  olympe.V.config(a=>{E(a,olympe.L.Ob.kk,'rest/filesvc');E(a,olympe.L.Ob.Do,'rest/backupsvc');E(a,olympe.L.Ob.Ir,'rest/backupsvc/restore');E(a,olympe.L.Ob.Ak,'rest/openid');E(a,olympe.L.Ob.Kg,'rest/initialData');E(a,olympe.L.Ob.Xp,'rest/querysvc/graphDef');E(a,olympe.L.Ob.Ro,'rest/querysvc/graphDef/static');E(a,olympe.L.Ob.TRANSACTION,'rest/transaction');E(a,olympe.L.Ob.ys,'rest/token');E(a,olympe.L.Ob.ix,'rest/authorization/getUserTag');E(a,olympe.L.Ob.hx,'rest/authorization/getUserRoles');E(a,olympe.L.Ob.sw,
490
490
  'rest/authorization/roleMembers');E(a,olympe.L.Ob.Bp,'rest/backend/event')});function sd(a,b){a.validate=b.ack.bind(b);a.N=b.reject.bind(b);a.H=b.yi();return a}
@@ -556,7 +556,7 @@ a:if(!this.X)throw Error('No stream handler has been set, so cannot serialize th
556
556
  typeof a:return a}if(Array.isArray(a))return a.map(d=>this.j(d));if('object'!==typeof a)throw new olympe.error.up(`Impossible to deserialize the following value: ${a}`);const {t:b,v:c}=a;switch(b){case olympe.L.cc.j.hm:return new Date(c);case olympe.L.cc.j.COLOR:return olympe.C.Color.Qb(c);case olympe.L.cc.j.Lq:return new Map(Object.entries(c).map(([e,f])=>[e,this.j(f)]));case olympe.L.cc.j.$g:return new Set(c.map(e=>this.j(e)));case olympe.L.cc.j.ARRAY_BUFFER:return olympe.U.kf().D(c).buffer;case olympe.L.cc.j.ci:return olympe.U.kf().D(c);
557
557
  case olympe.L.cc.j.le:if(!this.R)throw Error('No stream handler has been set, so cannot deserialize the stream.');let d;return null==(d=this.R)?void 0:d.call(this,c);case olympe.L.cc.j.dr:return Object.entries(c).reduce((e,[f,g])=>{e[f]=this.j(g);return e},{});default:throw new olympe.error.up(`Impossible to deserialize the following value: ${c}`);}}format(a,b){return{t:a,v:b}}};olympe.L.cc.j={hm:1,COLOR:2,Lq:3,$g:4,ARRAY_BUFFER:5,ci:6,le:7,dr:8};const Me=olympe.L.pa.j.SEND,Ne=olympe.L.pa.j.GET,Oe=olympe.L.pa.j.PUBLISH,Pe=olympe.L.pa.j.SUBSCRIBE,Qe=olympe.L.pa.j.kg,Re=olympe.L.pa.j.vs,Se=olympe.L.pa.j.Xr,Te=olympe.L.pa.j.Bb,Ue=olympe.L.pa.j.bl,Ve=olympe.L.pa.j.pg,We=olympe.L.pa.F.ej,Xe=olympe.L.pa.F.Xm;function Ed(a,b){a.j||(a.j=gb(new olympe.U.pn(a.D.ih+3E4),c=>{let d;null==(d=a.H)||d.call(a,c)}));a.j.add(b)}
558
558
  function Ye(a){let b,c;const d=null!=(c=null==(b=a.jc())?void 0:b.code)?c:olympe.error.mc.$k;let e,f;a=null!=(f=null==(e=a.jc())?void 0:e.reason)?f:'Unknown Error';return d===olympe.error.mc.TIMEOUT?new olympe.error.Zk(a):new olympe.error.qd(a,d)}function Ze(a,b){const c=olympe.L.pa.j.pg,d=olympe.L.pa.j.rs;return b.getType()!==c?Promise.reject('Should only call `topicAck` on TOPIC responses'):a.send(b.jc().seq,b.jb(),b.jb(),d)}
559
- olympe.L.rb=class{constructor(a,b){this.D=olympe.L.lh();this.F=a;this.H=this.j=null;this.N=new olympe.C.Yb(`Service ${a}`,'function'===typeof b.Db?b.Db():b);this.G=olympe.ha.Wa(`Service ${this.F}`)}It(a){this.H=a;return this}stop(){this.N.destroy()}clear(){Td(this.D,this.F).catch(b=>this.G.error('Failed to unsubscribe from '+this.F+', error: '+b));if(this.H){let b;null==(b=this.j)||b.forEach(c=>{let d;return null==(d=this.H)?void 0:d.call(this,c)})}let a;null==(a=this.j)||a.clear()}static md(a,b){return u(function*(){yield olympe.L.lh().request(a,
559
+ olympe.L.rb=class{constructor(a,b){this.D=olympe.L.lh();this.F=a;this.H=this.j=null;this.N=new olympe.C.Zb(`Service ${a}`,'function'===typeof b.Db?b.Db():b);this.G=olympe.ha.Wa(`Service ${this.F}`)}It(a){this.H=a;return this}stop(){this.N.destroy()}clear(){Td(this.D,this.F).catch(b=>this.G.error('Failed to unsubscribe from '+this.F+', error: '+b));if(this.H){let b;null==(b=this.j)||b.forEach(c=>{let d;return null==(d=this.H)?void 0:d.call(this,c)})}let a;null==(a=this.j)||a.clear()}static md(a,b){return u(function*(){yield olympe.L.lh().request(a,
560
560
  a,Oe,b,!1)})}static mt(a){const b=olympe.L.lh(),c=new olympe.L.Ik(a,b);be(b,a).then(d=>$e(c,d)).catch(d=>olympe.ha.Wa('Publisher for service '+a).error('Failed to get session id for publisher',d));return c}static send(a,b,c={}){return olympe.L.lh().request(a,a,Me,b,!0,c.timeout).then(d=>{switch(d.getType()){case Se:break;case Te:throw Ye(d);default:throw Error('Unsupported response type for a SEND request');}})}static get(a,b,c={}){return olympe.L.lh().request(a,a,Ne,b,!0,c.timeout).then(d=>{switch(d.getType()){case Ue:d=
561
561
  d.jc();if(null!==d)return d;throw Error('No payload after request to service: '+a);case Te:throw Ye(d);default:throw Error('Unsupported response type for a GET request');}})}static observe(a,b,c,d={}){const e='function'===typeof b.Db?b.Db():b,f=olympe.L.lh(),g=new olympe.L.Ik(a,f);return{observable:(new rxjs.Observable(h=>{let k=null,l=null,n=null;const p=()=>{h.complete();l&&n&&(ge(f,a,n,l),l=n=null);k&&(Td(f,k).catch(q=>olympe.ha.Wa('Service '+a).error('Failed to unsubscribe from a topic '+q)),
562
562
  k=null)};e.Yd(p);f.request(a,a,Pe,c,!0,d.timeout).then(q=>{switch(q.getType()){case Ve:$e(g,q.jb());const r=q.jc();k=r.topic;q.ack().catch(()=>olympe.ha.Wa('Service '+a).error('Failed to ack the msg'));Ud(f,k,t=>{t.getType()===Oe?h.next(t.jc()):(h.error('Unsupported notification message. It should be a publish'),p())}).then(()=>{l=r.id;n=q.jb();fe(f,a,n,l,r.refresh,t=>h.error(t));Ze(f,q).catch(t=>{h.error(`Was unable to ack the subscription: ${t}`);p()})}).catch(t=>{h.error(`Was not able to subscribe to notification topic ${k}: ${t}`);
@@ -628,19 +628,19 @@ olympe.dc.Request.j={pc:1,Kg:10,Fu:24,Yp:25,Gu:28,Ug:30,Kk:31,WC:32,ef:40,fh:41,
628
628
  p.W(),!a.sources.has(h)){const q=new olympe.dc.sources.Iq(a.G,p);a.sources.set(h,q);l=c.j(()=>q.healthCheck(),h,olympe.host.Le.j.READINESS);n=c.H(()=>q.destroy(),`Datasource ${h}`);g.set(h,[l,n]);q.init(a)}});Of(b,a.j,'router',!0)},'router')}function Xf(a,b,c){let d=a.D.get(b);void 0===d&&(d=[],a.D.set(b,d));d.push(c)}
629
629
  olympe.dc.uw=class{constructor(a,b,c,d,e,f,g){this.G=a;this.j=f;this.F=g;this.sources=new Map;this.D=new Map;Wf(this,d,e,b,c)}request(a){this.G.debug('Router: sends',a);return this.jb(a.ic()).request(a)}subscribe(a,b){this.G.debug('Router: subscribes',a);return this.jb(a.ic()).subscribe(a,b)}Oc(a){if(a.ic()!==this.j)this.G.error(`Router: try to reply to a request that is not for this data cloud, ignore it: ${a}`);else{var b;null==(b=this.D.get(a.getType()))||b.forEach(c=>c(a))}}zi(a){let b;null==
630
630
  (b=this.D.get(a.getType()))||b.forEach(c=>c(a));return this.jb(olympe.dc.Ia.$e).zi(a)}jb(a){let b;return null!=(b=this.sources.get(a))?b:this.sources.get(olympe.dc.Ia.$e)}};function Pf(a,b){b=new olympe.dc.Ig(a.T(),null!=b?b:null);b.j=a;return b}function Yf(a,b,c,d){c=new olympe.dc.Ig(null!=d?d:olympe.U.Mc(),null!=c?c:null);c.D=b;c.Ga=a;return c}
631
- olympe.dc.Ig=class{constructor(a,b){this.id=a;this.Ga=this.j=this.D=null;this.il=b}static j(a){return Yf(a.p,a.s,a.t,a.i)}T(){return this.id}rc(a){return this.j instanceof olympe.dc.db.ec?this.j.rc(a):Array.isArray(this.Ga)?(new olympe.dc.transaction.dj(this.D)).D(this.Ga,a):a}H(){let a,b,c,d;return null!=(d=null!=(c=null==(a=this.Ga)?void 0:a.length)?c:null==(b=this.j)?void 0:b.H())?d:0}ac(){return this.j instanceof olympe.dc.db.ec?this.j:Array.isArray(this.Ga)?(this.j=(new olympe.dc.transaction.dj(this.D)).j(this.Ga,
631
+ olympe.dc.Ig=class{constructor(a,b){this.id=a;this.Ga=this.j=this.D=null;this.il=b}static j(a){return Yf(a.p,a.s,a.t,a.i)}T(){return this.id}rc(a){return this.j instanceof olympe.dc.db.ec?this.j.rc(a):Array.isArray(this.Ga)?(new olympe.dc.transaction.dj(this.D)).D(this.Ga,a):a}H(){let a,b,c,d;return null!=(d=null!=(c=null==(a=this.Ga)?void 0:a.length)?c:null==(b=this.j)?void 0:b.H())?d:0}Yb(){return this.j instanceof olympe.dc.db.ec?this.j:Array.isArray(this.Ga)?(this.j=(new olympe.dc.transaction.dj(this.D)).j(this.Ga,
632
632
  this.id),this.Ga=null,this.j):new olympe.dc.db.ec(this.id)}pl(){if(Array.isArray(this.Ga))return this.Ga;if(this.j instanceof olympe.dc.db.ec){const a=new olympe.dc.transaction.Je;this.j.rc(a);return Zf(a)}return[]}fa(){return{p:this.pl(),t:this.il,s:this.D,i:this.id}}};olympe.dc.Ig.ya=[olympe.dc.xr];olympe.dc.Ra={};const $f=olympe.dc.va.ORIGIN,ag=olympe.dc.va.DESTINATION,bg=new Map,cg=new Map,dg=new Map,eg=new Map;function Sf(a){let b;return null!=(b=bg.get(a))?b:null}function fg(a,b,c){let d=a;'function'===typeof a&&(d=c.entry);a=[...(d.mo||[])];return olympe.dc.oa.j(b,c,...a)}function gg(a,b){eg.set(a,b);return a}function hg(a){let b,c;return null!=(c=null==(b=bg.get(a))?void 0:b.D)?c:olympe.dc.CloudObject}
633
633
  function ig(a,b,c){const d=a+'@'+(b===ag?$f:ag);if(cg.has(d))throw Error(`Try to register the same relation (${b+a}) multiple times.`);cg.set(d,c)}function jg(a){a=a.W()+'@'+a.La();return cg.get(a)||olympe.dc.CloudObject}function Q(a,b){b.NAME=a;dg.set(a,b)}function R(a){let b;return null!=(b=a.NAME)?b:null}
634
- olympe.dc.oa=class{constructor(){}static j(a,b,...c){if(bg.has(a))throw Error(`Tag: ${a} - overwriting already defined CloudObject class ${bg.get(a).D.name} with ${b.name}`);let d=null;const e=c.length;if(0<e){d=Array(e);for(let f=0;f<e;f++){let g=c[f];d[f]='string'===typeof g?new olympe.V.rb(g):g}}b=new olympe.dc.Ra.Entry(a,b,d);bg.set(a,b);return b.D.entry=b}static Xb(a){let b,c;return null!=(c=null==(b=a.entry)?void 0:b.W())?c:null}};function kg(a,b){a.j=b}function S(a,b){b=b.$b();ig(b.W(),b.La(),a.D);return b}function lg(a){a.F=!0;return a}
634
+ olympe.dc.oa=class{constructor(){}static j(a,b,...c){if(bg.has(a))throw Error(`Tag: ${a} - overwriting already defined CloudObject class ${bg.get(a).D.name} with ${b.name}`);let d=null;const e=c.length;if(0<e){d=Array(e);for(let f=0;f<e;f++){let g=c[f];d[f]='string'===typeof g?new olympe.V.rb(g):g}}b=new olympe.dc.Ra.Entry(a,b,d);bg.set(a,b);return b.D.entry=b}static Xb(a){let b,c;return null!=(c=null==(b=a.entry)?void 0:b.W())?c:null}};function kg(a,b){a.j=b}function S(a,b){b=b.ac();ig(b.W(),b.La(),a.D);return b}function lg(a){a.F=!0;return a}
635
635
  olympe.dc.Ra.Entry=class{constructor(a,b,c){this.tag=a;this.D=b;this.mo=c||null;this.j=null;this.F=!1}W(){return this.tag}instantiate(a,b){const c=this.D;if(this.Yn()&&b.getParameter(olympe.dc.Config.zp)){var d=olympe.dc.ga();d=`Trying to instantiate an abstract class ${d.name(this)} (${this.W()}).`+` This may happen when the implementation of another class extending ${d.name(this)} has not been registered`;olympe.ha.Wa('dc').error(d)}return this.mo?(a=[void 0,a].concat(Oa(b,this.mo)),new c(...a)):
636
- new c(void 0,a)}ja(a){return new olympe.dc.Ra.Property(a)}ta(a,b=olympe.dc.va.DESTINATION){ig(a,b,this.D);return new olympe.dc.aa.af(a,b)}Yn(){return this.F}};w('olympe.dc.registry.Entry',olympe.dc.Ra.Entry);olympe.dc.Ra.Entry.prototype.addRelation=olympe.dc.Ra.Entry.prototype.ta;olympe.dc.Ra.Entry.prototype.addProperty=olympe.dc.Ra.Entry.prototype.ja;olympe.dc.Ra.Entry.ya=[olympe.dc.Ze];olympe.dc.Ra.Property=class{constructor(a){this.tag=a}W(){return this.tag}toString(){return`Property: ${this.tag}`}};olympe.dc.Ra.Property.prototype.getTag=olympe.dc.Ra.Property.prototype.W;olympe.dc.Ra.Property.ya=[olympe.dc.Ze];olympe.dc.Ra.Relation=class{constructor(a,b=olympe.dc.va.DESTINATION,c=olympe.dc.CloudObject,d=olympe.dc.CloudObject){this.tag=olympe.dc.ea(a);this.direction=b;this.origin=c;this.H=d}W(){return this.tag}La(){return this.direction}type(){return this.H}$b(){return new olympe.dc.Ra.Relation(this.tag,this.direction===olympe.dc.va.DESTINATION?olympe.dc.va.ORIGIN:olympe.dc.va.DESTINATION,this.H,this.origin)}Fa(a){return a instanceof olympe.dc.Ra.Relation?a.W()===this.W()&&a.La()===this.La():!1}toString(){return`${this.direction}${olympe.dc.ga().name(this.tag)} (${this.tag})`}};
637
- olympe.dc.Ra.Relation.prototype.getInverse=olympe.dc.Ra.Relation.prototype.$b;olympe.dc.Ra.Relation.prototype.getDirection=olympe.dc.Ra.Relation.prototype.La;olympe.dc.Ra.Relation.prototype.getTag=olympe.dc.Ra.Relation.prototype.W;olympe.dc.Ra.Relation.ya=[olympe.dc.Ze];olympe.dc.db={};function mg(a,b){const c=a.H,d=olympe.dc.ga(),e=olympe.dc.db.Database.D.fj,f=olympe.dc.db.Database.D.Ye,g=olympe.dc.db.Database.D.ORIGIN,h=olympe.dc.db.Database.D.DESTINATION,k=new olympe.dc.db.ec('rev-'+b.T());a.G.debug('Generate the reverse graphLayer of',b.T());b.Cb.forEach((l,n)=>{if(l.D()){k.D(n,olympe.dc.Lb.NONE);for(const [r,t]of l.Ld())k.hc(r,n,t)}else{var p=c.get(n);if(void 0!==p)if(l.Bd())for(const r of ng(d,n,l.F())){l=c.get(r);const t=new Map;l.forEach((v,x)=>{const y=x[0],z=x.substring(1);
636
+ new c(void 0,a)}ja(a){return new olympe.dc.Ra.Property(a)}ta(a,b=olympe.dc.va.DESTINATION){ig(a,b,this.D);return new olympe.dc.aa.af(a,b)}Yn(){return this.F}};w('olympe.dc.registry.Entry',olympe.dc.Ra.Entry);olympe.dc.Ra.Entry.prototype.addRelation=olympe.dc.Ra.Entry.prototype.ta;olympe.dc.Ra.Entry.prototype.addProperty=olympe.dc.Ra.Entry.prototype.ja;olympe.dc.Ra.Entry.ya=[olympe.dc.Ze];olympe.dc.Ra.Property=class{constructor(a){this.tag=a}W(){return this.tag}toString(){return`Property: ${this.tag}`}};olympe.dc.Ra.Property.prototype.getTag=olympe.dc.Ra.Property.prototype.W;olympe.dc.Ra.Property.ya=[olympe.dc.Ze];olympe.dc.Ra.Relation=class{constructor(a,b=olympe.dc.va.DESTINATION,c=olympe.dc.CloudObject,d=olympe.dc.CloudObject){this.tag=olympe.dc.ea(a);this.direction=b;this.origin=c;this.H=d}W(){return this.tag}La(){return this.direction}type(){return this.H}ac(){return new olympe.dc.Ra.Relation(this.tag,this.direction===olympe.dc.va.DESTINATION?olympe.dc.va.ORIGIN:olympe.dc.va.DESTINATION,this.H,this.origin)}Fa(a){return a instanceof olympe.dc.Ra.Relation?a.W()===this.W()&&a.La()===this.La():!1}toString(){return`${this.direction}${olympe.dc.ga().name(this.tag)} (${this.tag})`}};
637
+ olympe.dc.Ra.Relation.prototype.getInverse=olympe.dc.Ra.Relation.prototype.ac;olympe.dc.Ra.Relation.prototype.getDirection=olympe.dc.Ra.Relation.prototype.La;olympe.dc.Ra.Relation.prototype.getTag=olympe.dc.Ra.Relation.prototype.W;olympe.dc.Ra.Relation.ya=[olympe.dc.Ze];olympe.dc.db={};function mg(a,b){const c=a.H,d=olympe.dc.ga(),e=olympe.dc.db.Database.D.fj,f=olympe.dc.db.Database.D.Ye,g=olympe.dc.db.Database.D.ORIGIN,h=olympe.dc.db.Database.D.DESTINATION,k=new olympe.dc.db.ec('rev-'+b.T());a.G.debug('Generate the reverse graphLayer of',b.T());b.Cb.forEach((l,n)=>{if(l.D()){k.D(n,olympe.dc.Lb.NONE);for(const [r,t]of l.Ld())k.hc(r,n,t)}else{var p=c.get(n);if(void 0!==p)if(l.Bd())for(const r of ng(d,n,l.F())){l=c.get(r);const t=new Map;l.forEach((v,x)=>{const y=x[0],z=x.substring(1);
638
638
  y===e?t.set(z,v):y===f?t.set(x,v):y===g?v.forEach((A,K)=>{k.Oa(z,K,r)}):y===h&&v.forEach((A,K)=>{k.Oa(z,r,K)})});l=l.source();k.Uc(r,l,t)}else{const r=new Map;for(const t of l.Ab().keys()){var q=t[0]===f;const v=q?t.substring(1):t;q=q?og(p,v,!0):p.Pa(v,!0);let x;r.set(t,null!=(x=q)?x:null)}0<r.size&&k.$c(n,r);for(const [t,v,x]of l.Ld())x?k.hc(t,n,v):k.Oa(t,n,v)}}});return k}
639
639
  function pg(a,b,c){const d=b.T();if(a.F.has(d))throw Error(`You try to execute the patch ${d} a second times whereas the first execution has not been validated yet.`);const e=new qg(b,mg(a,b));a.D.unshift(d);a.F.set(d,e);a.H.wl(c);a.write(b,!1,!1)}
640
640
  function rg(a,b,c){if(0>=a.N||null===c)return b;var d=a.j.findIndex(h=>h.T()===b.T()),e=a.j[d];-1<d&&a.j.splice(d,1);d=0<a.j.length?a.j.findIndex(h=>c>=h.D):0;d=-1<d?d:a.j.length;const f=a.j.slice(0,d).reduce((h,k)=>k.od(h),b);let g;e=null!=(g=null==e?void 0:e.update(f,c))?g:new sg(f,c,a.j,a.N);a.j.splice(d,0,e);a.G.F()&&a.G.debug('CommitController buffer:\n',a.j.map(h=>`${h.T()} at ${h.D}`).join('\n'));return f}
641
641
  function tg(a,b,c){return a.D.slice(0,c).map(d=>a.F.get(d)).reduce((d,e)=>{let f;return null!=(f=null==e?void 0:e.od(d))?f:d},b)}function ug(a,b,c,d=!1){return u(function*(){const e=new olympe.dc.db.rn(a.G,a.H,a.ga,c);e.open(d);for(const f=ha(b);;){const g=yield f.next();if(g.done)break;e.write(g.value,a.R)}e.close()})}
642
- function vg(a,b,c,d){b=b.pipeThrough(olympe.U.stream.tap(e=>{0<a.D.length&&rg(a,tg(a,e.ac(),a.D.length),e.il)}));return ug(a,b,c,d).then(()=>a.G.debug('Rebase stream completed')).catch(e=>a.G.error('Rebase stream failed:',e))}
643
- olympe.dc.db.ku=class{constructor(a,b,c,d){this.G=a;this.H=b;this.ga=c;let e;this.R=null!=(e=d.get('debug'))?e:!1;let f;this.N=null!=(f=d.get('bufferTimeout'))?f:0;this.D=[];this.F=new Map;this.j=[];b.addEventListener(olympe.dc.db.Database.j.Pp,g=>{this.j.forEach(h=>{for(const k of g)h.j.j(k)})})}od(a,b,c){const d=a.T(),e=a.il;this.F.has(d)?this.push(d,e):(a=rg(this,tg(this,a.ac(),this.D.length),e),this.write(a,b,c))}push(a,b){const c=this.D.indexOf(a);if(-1<c){const d=this.F.get(a);this.D.splice(c,
642
+ function vg(a,b,c,d){b=b.pipeThrough(olympe.U.stream.tap(e=>{0<a.D.length&&rg(a,tg(a,e.Yb(),a.D.length),e.il)}));return ug(a,b,c,d).then(()=>a.G.debug('Rebase stream completed')).catch(e=>a.G.error('Rebase stream failed:',e))}
643
+ olympe.dc.db.ku=class{constructor(a,b,c,d){this.G=a;this.H=b;this.ga=c;let e;this.R=null!=(e=d.get('debug'))?e:!1;let f;this.N=null!=(f=d.get('bufferTimeout'))?f:0;this.D=[];this.F=new Map;this.j=[];b.addEventListener(olympe.dc.db.Database.j.Pp,g=>{this.j.forEach(h=>{for(const k of g)h.j.j(k)})})}od(a,b,c){const d=a.T(),e=a.il;this.F.has(d)?this.push(d,e):(a=rg(this,tg(this,a.Yb(),this.D.length),e),this.write(a,b,c))}push(a,b){const c=this.D.indexOf(a);if(-1<c){const d=this.F.get(a);this.D.splice(c,
644
644
  1);rg(this,tg(this,d.D,c),b);this.F.delete(a)}}write(a,b,c=!1){b=new olympe.dc.db.rn(this.G,this.H,this.ga,b);b.open(c);b.write(a,this.R);b.close()}};class wg{T(){}od(){}}function xg(a,b,c,d){const e=olympe.dc.va.DESTINATION;c=c.tag();const f=a.j.Wc(c);b.Ab().forEach((g,h)=>{f.ja(h,g);b.Z(h)});for(const [g,h,k,l]of b.ba()){if(!l)continue;const n=h===e?c:k,p=h===e?k:c;a.j.Oa(g,n,p);d.N(g,n,p)}}
645
645
  function yg(a,b,c,d){const e=olympe.dc.va.DESTINATION,f=c.tag(),g=a.j.Wc(f);b.Ab().forEach((h,k)=>{void 0!==c.Pa(k)&&(g.ja(k,h),b.Z(k))});for(const [h,k,l]of b.Ld()){const n=c.lb(h,e,k);void 0!==n&&(d.N(h,f,k),n===l&&a.j.N(h,f,k))}}
646
646
  class qg extends wg{constructor(a,b){super();this.D=a;this.j=b;this.db=olympe.dc.ga()}T(){return this.D.T()}od(a){for(const [b,c]of this.D.ba(a)){const d=b.tag();c.Bd()?b.D()?a.j(d,b.F()):(this.D.j(d,c.F()),this.j.j(d,c.F())):b.Bd()?(xg(this,c,b,a),a.j(d,b.F())):yg(this,c,b,a)}return a}}function zg(a){clearTimeout(a.F);a.F=setTimeout(()=>{a.buffer.splice(a.buffer.indexOf(a),1)},a.H)}
@@ -665,7 +665,7 @@ function wh(a,b,c){if(!a.Ja(b))return a.G.warn(`No instance found with tag ${b}`
665
665
  olympe.dc.kb=class{constructor(a,b){this.G=a;this.j=b}T(){return this.j.T()}D(a,b,c,d=!1){a=T(this,a);if(null!==a){b=b.La()+b.W();const e=eh(a,b,c);void 0!==e&&(this.j.getState()!==ch.vf||a.F()&&!d||this.j.R(c),d||!a.Ja()&&!a.F()||mh(a,b,!1,e,!1))}}Ja(a){a=this.j.get(olympe.dc.ea(a));return!(null==a||!a.Ja())}name(a){let b,c;return null!=(c=null==(b=T(this,a))?void 0:b.Pa(olympe.dc.CloudObject.nameProp.W()))?c:''}model(a){return(a=(a=T(this,a,!0))?a.model():null)?a.tag():null}gf(a){return(a=(a=T(this,
666
666
  a,!0))&&a.gf())?a.tag():null}xi(a){a=T(this,a,!0);return!(!a||!a.gf())}Nb(a,b){a=(a=T(this,a,!0))&&a.model();return!(!a||!this.Xf(a.tag(),b))}source(a){return(a=T(this,a,!0))&&a.source()}Se(a){a=T(this,a,!1);return!a||a.N}Pa(a,b,c){a=T(this,a,!0);b=olympe.dc.ea(b);let d;return null!=(d=null==a?void 0:a.Pa(b,c))?d:null}Ab(a,b=!1){var c=T(this,a,!0);a=new Map;if(c)for(const [d,e]of c)c=d[0],(c===Xg||!b&&c===Zg)&&a.set(d.substring(1),e);return a}ol(a,b){return qh(this,a,b).filter(([c])=>c.Ja()).map(([c,
667
667
  ...d])=>[c.tag(),...d])}cb(a,b){a=T(this,a,!0);b=b.La()+b.W();b=null==a?void 0:a.get(b);a=[];if(b)for(const c of b.values())c.Ja()&&a.push(c.tag());return a}rt(a,b,c){let d,e;a=null==(d=T(this,a,!0))?void 0:null==(e=d.get(b.La()+b.W()))?void 0:e.get(olympe.dc.ea(c));return!(null==a||!a.Ja())}Tn(a,b){a=T(this,a,!0);if(!a)return[];a=[a.tag()];for(const c of b){b=[];for(const d of a)if(a=T(this,d,!0).get(c.La()+c.W()),void 0!==a)for(const e of a.values())e.Ja()&&b.push(e.tag());a=b}return a}Ib(a,b){var c=
668
- T(this,a,!0);const d=b.La()+b.W();c=null==c?void 0:c.get(d);if(1<(null==c?void 0:c.size))return this.G.warn(`Relation ${b.W()} to instance ${a} is not unique: found ${c.size} related items`),null;a=null==c?void 0:c.values().next().value;return(null==a?0:a.Ja())?a.tag():null}qh(a,b,c){a=olympe.dc.ea(a);const d=wh(this,a,b);d.delete(a);return c?(c=olympe.dc.ea(c),d.has(c)?Array.from(wh(this,c,b.$b()).keys()).filter(e=>d.has(e)):[]):Array.from(d.keys())}Vs(a,b,c){if(!this.Ja(a))return null;b=wh(this,
668
+ T(this,a,!0);const d=b.La()+b.W();c=null==c?void 0:c.get(d);if(1<(null==c?void 0:c.size))return this.G.warn(`Relation ${b.W()} to instance ${a} is not unique: found ${c.size} related items`),null;a=null==c?void 0:c.values().next().value;return(null==a?0:a.Ja())?a.tag():null}qh(a,b,c){a=olympe.dc.ea(a);const d=wh(this,a,b);d.delete(a);return c?(c=olympe.dc.ea(c),d.has(c)?Array.from(wh(this,c,b.ac()).keys()).filter(e=>d.has(e)):[]):Array.from(d.keys())}Vs(a,b,c){if(!this.Ja(a))return null;b=wh(this,
669
669
  a,b);const d=[olympe.dc.ea(a)];for(const e of d){if(c(e))return e;if(a=b.get(e))for(const f of a.filter(g=>!d.includes(g)))d.push(f)}return null}Ln(a,b,c){return this.Tn(a,b).find(c)||null}gy(a,b,c){return this.Tn(a,b).filter(c)}at(a,b=olympe.dc.CloudObject){var c=T(this,a,!0);const d=b&&T(this,b,!0),e=[c];for(;c&&c!==d;){c=c.gf();if(e.includes(c))throw Error(`Cycle detected when following recursively extend relations from base model instance "${a}".`);if(c&&!c.Ja())throw a=`Try to get all extensions of the model ${olympe.dc.ea(a)} but one of them does not exists (${c.tag()})`,
670
670
  Error(a);null!==c&&e.push(c)}c=T(this,olympe.dc.CloudObject,!0);if(d!==c&&e[e.length-1]===c)throw Error(`The model "${this.name(a)}" (tag = ${a}) does not extend the expected model "${this.name(b)}" (tag = ${b}).`);return e.map(f=>f.tag())}Xf(a,b){const c=olympe.dc.ea(b);return!!this.Vs(a,olympe.dc.CloudObject.extendRel,d=>d===c)}Xc(a){return this.cb(a,olympe.dc.CloudObject.instancesRel)}};olympe.dc.kb.prototype.getInstances=olympe.dc.kb.prototype.Xc;olympe.dc.kb.prototype.isExtending=olympe.dc.kb.prototype.Xf;
671
671
  olympe.dc.kb.prototype.getExtendedModels=olympe.dc.kb.prototype.at;olympe.dc.kb.prototype.findAllRelated=olympe.dc.kb.prototype.gy;olympe.dc.kb.prototype.findRelated=olympe.dc.kb.prototype.Ln;olympe.dc.kb.prototype.findRecursive=olympe.dc.kb.prototype.Vs;olympe.dc.kb.prototype.getRecursiveRelated=olympe.dc.kb.prototype.qh;olympe.dc.kb.prototype.getUniqueRelated=olympe.dc.kb.prototype.Ib;olympe.dc.kb.prototype.getMultiRelated=olympe.dc.kb.prototype.Tn;olympe.dc.kb.prototype.isRelated=olympe.dc.kb.prototype.rt;
@@ -747,7 +747,7 @@ a;let d;return Ei(olympe.dc.query.sl(),Bi(this),a,olympe.dc.Ia.SELF,c,{li:null!=
747
747
  r:Array.from(this.F),s:this.source,e:{m:this.j.max,o:this.j.offset,s:this.j.Od,rm:null!=(a=this.j.Ue)?a:this.db.model(this.D)}}}toString(){return`Query: ${JSON.stringify(this)}`}toJSON(){return{origin:this.db.Ja(this.D)?olympe.dc.CloudObject.get(this.D):this.D,relations:this.na.map(a=>a.toJSON())}}};olympe.dc.la.prototype.observe=olympe.dc.la.prototype.observe;olympe.dc.la.prototype.executeFromCache=olympe.dc.la.prototype.Dc;olympe.dc.la.prototype.execute=olympe.dc.la.prototype.mb;
748
748
  olympe.dc.la.prototype.parse=olympe.dc.la.prototype.parse;olympe.dc.la.prototype.back=olympe.dc.la.prototype.back;olympe.dc.la.prototype.sortBy=olympe.dc.la.prototype.Il;olympe.dc.la.prototype.limit=olympe.dc.la.prototype.Ij;olympe.dc.la.prototype.cast=olympe.dc.la.prototype.tj;olympe.dc.la.prototype.filter=olympe.dc.la.prototype.filter;olympe.dc.la.prototype.andReturn=olympe.dc.la.prototype.oe;olympe.dc.la.prototype.followRecursively=olympe.dc.la.prototype.vg;olympe.dc.la.prototype.follow=olympe.dc.la.prototype.bb;
749
749
  olympe.dc.la.followRule=olympe.dc.la.Pb;olympe.dc.la.instancesOf=olympe.dc.la.xl;olympe.dc.la.fromTag=olympe.dc.la.re;olympe.dc.la.from=olympe.dc.la.from;olympe.dc.la.oc={xf:1,Gk:2,Sg:3};olympe.dc.la.j={Yl:'cacheBucketName',uq:'isCacheable'};function Fi(a){null===a.Ga&&null===a.j&&(a.Ga=Zf(a.F))}
750
- olympe.dc.query.Id=class extends olympe.dc.Ig{constructor(a){super(a,null);this.F=new olympe.dc.transaction.Je}static yj(a){const b=new olympe.dc.query.Id(`DataResult_${a.T()}`);b.D=a.jb();return b}static j(a){const b=new olympe.dc.query.Id(a.i);let c;b.D=null!=(c=a.s)?c:null;let d;b.il=null!=(d=a.t)?d:null;let e;b.Ga=null!=(e=a.p)?e:[];return b}rc(a){Fi(this);return super.rc(a)}ac(){Fi(this);return super.ac()}pl(){Fi(this);return super.pl()}create(a,b,c){this.F.Uc(a,this.D,c,b);return this}Oa(a,
750
+ olympe.dc.query.Id=class extends olympe.dc.Ig{constructor(a){super(a,null);this.F=new olympe.dc.transaction.Je}static yj(a){const b=new olympe.dc.query.Id(`DataResult_${a.T()}`);b.D=a.jb();return b}static j(a){const b=new olympe.dc.query.Id(a.i);let c;b.D=null!=(c=a.s)?c:null;let d;b.il=null!=(d=a.t)?d:null;let e;b.Ga=null!=(e=a.p)?e:[];return b}rc(a){Fi(this);return super.rc(a)}Yb(){Fi(this);return super.Yb()}pl(){Fi(this);return super.pl()}create(a,b,c){this.F.Uc(a,this.D,c,b);return this}Oa(a,
751
751
  b,c){this.F.Oa(a,b,c,null,null);return this}fa(){return super.fa()}};olympe.dc.query.Id.prototype.createRelation=olympe.dc.query.Id.prototype.Oa;olympe.dc.query.Id.prototype.create=olympe.dc.query.Id.prototype.create;olympe.dc.query.Id.fromQuery=olympe.dc.query.Id.yj;function Di(a,b){const c=new olympe.dc.query.vr(a.G,b);if(a.D.view.Ja(b.D)){ri(c,b.D);for(const d of li(b))d.mb(c)}return c}
752
752
  function Ei(a,b,c,d,e,f){const g=b.T();let h=a.j.get(g);if(!h){var k=b.jb();a.G.debug(`Create new subscription for query ${g} for subscriber ${d}, to be executed by the data source ${k}`);k=!1===f.Cc||a.H&&k===olympe.dc.Ia.SERVER?[]:Array.from(a.j.values());h=new olympe.dc.query.Dr(a.G,a.D,b,e,a.R.bind(a,e,f));a.j.set(g,h);Gi(h,l=>a.F.add(l));h.start(k)&&(null==f?0:f.li)&&Hi(a,b,e,f).catch(l=>{a.G.error(`Was not able to get the result of the subscribed query ${g} to add it to the cache: ${l}`)})}return new rxjs.Observable(l=>
753
753
  {const n=()=>{p&&c.wt(p);l.complete();if(q){var r=q;const v=a.j.get(g);a.G.debug(`${d} unsubscribed from ${g}`);if(null==v)r=0;else{var t=v;t.H.delete(r)&&t.G.debug(`Remove subscriber ${d} for query ${t.query.T()}, now have ${t.H.size} subscribers`);d!==olympe.dc.Ia.SELF&&(t.Z--,0===t.Z&&ui(t.j));r=0===t.H.size}r&&(a.G.debug(`No more subscriber to ${g}, remove the subscription`),a.F.delete(g),a.j.delete(g),v.destroy())}},p=c.Yd(n),q=Ii(h,d,l);return n})}
@@ -778,7 +778,7 @@ function $i(a,b){return a.F.has(Ti+b)||a.F.has(Si+b)}
778
778
  class Zi{constructor(a,b,c,d){this.G=a;this.db=b;this.H=d;this.R=[];this.N=-1<c.j.max||0<c.j.offset;this.F=new Map;this.j=!1;const e=new Map;for(const f of li(c)){a=f.T();this.R.push(a);if(f instanceof olympe.dc.query.na.Zh){a=f.relation;a=`${a.La()}${a.W()}`;let g;b=null!=(g=this.F.get(a))?g:[];b.push(f);this.F.set(a,b)}aj(f).forEach(g=>{let h;const k=null!=(h=e.get(g))?h:[];k.push(f.T());e.set(g,k)})}this.properties=Array.from(e.entries())}flush(){const a=this.j;this.j=!1;return a}Uc(){}$c(a,b){if(!(this.j||
779
779
  !this.N&&this.db.Ja(a))){var c;this.j||(this.j=null==(c=this.properties)?void 0:c.some(([d,e])=>b.has(d)&&qi(this.H,a,e)))}}D(a){this.j||this.db.Ja(a)&&!this.N||this.j||(this.j=this.R.some(b=>qi(this.H,a,b)))}Oa(a,b,c){if(!this.j&&$i(this,a)){var d=this.db.Ja(b),e=this.db.Ja(c);if(d&&!e||!d&&e){const f=this.F.get(Ti+a);a=this.F.get(Si+a);this.j||(this.j=d&&(null==f?void 0:f.some(g=>qi(this.H,b,g.j)))||e&&(null==a?void 0:a.some(g=>qi(this.H,c,g.j))))}}}hc(a,b,c){if(!this.j&&this.N&&$i(this,a)&&this.db.rt(b,
780
780
  new olympe.dc.Ra.Relation(a),c)){const d=this.F.get(Ti+a);a=this.F.get(Si+a);const e=this.H;this.j||(this.j=(null==d?void 0:d.some(f=>qi(e,b,f.j)&&qi(e,c,f.T())))||(null==a?void 0:a.some(f=>qi(e,c,f.j)&&qi(e,b,f.T()))))}}}olympe.dc.query.Dr.ya=[olympe.dc.Writable];function bj(a){return new olympe.dc.query.Relation(a.tag,a.direction,!0)}
781
- olympe.dc.query.Relation=class extends olympe.dc.Ra.Relation{constructor(a,b,c){super(a,b);this.recursive=c}toJSON(){let a='{ "tag": '+JSON.stringify(this.W())+', ';a+='"direction": '+JSON.stringify(this.La())+', ';a+='"recursive": '+JSON.stringify(this.recursive);return a+'}'}static Qb(a){let b;'string'===typeof a?b=JSON.parse(a):b=a;return new olympe.dc.query.Relation(b.tag,b.direction,b.recursive)}static from(a,b){return new olympe.dc.query.Relation(a.W(),a.La(),null!=b?b:a instanceof olympe.dc.aa.Me)}$b(){const a=
781
+ olympe.dc.query.Relation=class extends olympe.dc.Ra.Relation{constructor(a,b,c){super(a,b);this.recursive=c}toJSON(){let a='{ "tag": '+JSON.stringify(this.W())+', ';a+='"direction": '+JSON.stringify(this.La())+', ';a+='"recursive": '+JSON.stringify(this.recursive);return a+'}'}static Qb(a){let b;'string'===typeof a?b=JSON.parse(a):b=a;return new olympe.dc.query.Relation(b.tag,b.direction,b.recursive)}static from(a,b){return new olympe.dc.query.Relation(a.W(),a.La(),null!=b?b:a instanceof olympe.dc.aa.Me)}ac(){const a=
782
782
  olympe.dc.va.DESTINATION,b=olympe.dc.va.ORIGIN;return new olympe.dc.query.Relation(this.tag,this.direction===a?b:a,this.recursive)}T(){return`${this.direction}${this.tag}${this.recursive?'-r':''}`}};olympe.dc.query.P={Ca:'dc.query.Logger',Jk:'dc.query.QueryProcessor'};olympe.V.config(function(a){D(a,olympe.dc.query.P.Ca,[olympe.ha.P.Ea],b=>b.dd('query'));C(a,olympe.dc.query.P.Jk,olympe.dc.query.nw,olympe.dc.query.P.Ca,olympe.dc.db.P.Ea,olympe.dc.transaction.P.Ea,olympe.dc.P.Wg,new olympe.V.ma(olympe.dc.Config.ai))});olympe.V.run([olympe.dc.query.P.Jk],a=>{olympe.dc.query.sl=()=>a});olympe.dc.query.Hd=class extends Error{};olympe.dc.query.Y={};olympe.dc.query.Y.Pd=class extends olympe.dc.query.za{constructor(...a){super();this.Y=a}compile(){return this.Y.reduce((a,b)=>{const c=[];for(const d of b.compile()){for(const e of a)d.push(...e);c.push(d)}return c},[])}Cd(){return new olympe.dc.query.Y.He(...this.Y.map(a=>a.Cd()))}Ab(){return this.Y.flatMap(a=>a.Ab())}Jc(){throw Error('Should not try to check predicate coverage on And (should be removed by compiling predicates');}mb(a){return this.Y.reduce((b,c)=>b&&c.mb(a),!0)}observe(a,b,c){const d=
783
783
  Array(this.Y.length).fill(!1);let e=null;const f=(g,h)=>{d[g]=h;g=d.every(k=>k);e!==g&&(e=g,c(g))};this.Y.forEach((g,h)=>{g.observe(a,olympe.U.sb('AND-'+b+a+h),f.bind(null,h))})}fa(){return{pr:olympe.dc.query.za.j.qo,p:this.Y.map(a=>a.fa())}}Pc(){throw Error('toObject for AND predicate should not be called');}toString(){return'And-'+this.Y.reduce((a,b)=>a+'-'+b.toString(),'')}clear(a,b){this.Y.forEach((c,d)=>{c.clear(a,olympe.U.sb('AND-'+b+a+d))})}};olympe.dc.query.Y.zf=class extends olympe.dc.query.za{constructor(a,b,c,d=!1){super();this.Da=olympe.dc.ea(a);this.substring=b;this.db=c;this.j=d}Ab(){return[this.Da]}Jc(a,b){return a instanceof olympe.dc.query.Y.zf&&a.Da===this.Da?b?a.j?a.substring.toLowerCase().includes(this.substring.toLowerCase()):a.substring.includes(this.substring):this.j?this.substring.toLowerCase().includes(a.substring.toLowerCase()):this.substring.includes(a.substring):!1}Pa(){return this.Da}mb(a){return this.apply(this.db.Pa(a,
784
784
  this.Da))}observe(a,b,c){ih(this.db,a,this.Da,d=>{c(this.apply(d))},olympe.U.sb(b+a+this.toString()))}apply(a){a=olympe.dc.ib.uc(a);return'string'===typeof a?this.j?a.includes(this.substring):a.toLowerCase().includes(this.substring.toLowerCase()):!1}toString(){return'Contains'+this.Da+'-'+this.substring+'-'+this.j}clear(a,b){jh(this.db,a,this.Da,olympe.U.sb(b+a+this.toString()))}Pc(){return{name:'CONTAINS',property:this.Pa(),value:this.substring,caseSensitive:this.j}}fa(){return{pr:olympe.dc.query.za.j.$j,
@@ -817,48 +817,48 @@ function wj(a,b,c){c=b instanceof olympe.dm.DataSource?b.Sf(c):xj(b,c);null===c&
817
817
  function yj(a,b,c){if(b===olympe.dc.Ia.SERVER){var d;return null!=(d=re(a.H,a.ba.get(c)))?d:null}var e=a.N.get(b);if(!e){d=a.Z.jb(b);e=olympe.dc.sources.Config.Mh;const f=olympe.dc.sources.Config.Cf,g=olympe.dc.sources.Config.Ri,h=olympe.dc.sources.Config.xm;let k;e=`${wj(a,null!=d?d:b,g)?'https':'http'}://${wj(a,null!=d?d:b,e)}:${null!=(k=wj(a,null!=d?d:b,f))?k:wj(a,null!=d?d:b,g)?443:80}`+`/${wj(a,null!=d?d:b,h)}/${b}`.replace(/\/+/g,'/').replace(/\/$/,'');a.N.set(b,e)}return`${e}/${c}`}
818
818
  function zj(a,b){return b instanceof olympe.net.Ti?te(a.H,b,de(a.X).zd()):Promise.reject('No http request to send')}function Aj(a,b){var c=yj(a,b.ic(),b.getType());if(!c)return Promise.reject(`No destination URL to send the query to destination: ${b.ic()}`);const d=b.content,e=JSON.stringify(a.D.fa(d));c=N(c,ij,e,olympe.net.ra.ResponseType.JSON);O(c,{['X-Source-Origin']:b.origin,[lj]:'application/json'});return zj(a,c).then(f=>(f=f.getData())?a.D.N(f):olympe.dc.query.Id.yj(d))}
819
819
  function Bj(a,b){var c=yj(a,b.ic(),b.getType());if(!c)return Promise.reject(`No destination URL to send the transaction to destination: ${b.ic()}`);const d=JSON.stringify(a.D.fa(b.content));c=N(c,ij,d);O(c,{['X-Source-Origin']:b.origin,[lj]:'application/json'});return zj(a,c).then(e=>Number.parseInt(e.getData(),10))}function tj(a,b){return'string'!==typeof b?Promise.reject('Please provide an authorization token.'):new Promise((c,d)=>{a.X.th(b,(e,f)=>{e?d(e):c(f)})})}
820
- olympe.dc.sources.Ku=class{constructor(a,b,c,d,e,f){this.G=a;this.R=b;this.H=c;this.X=d;this.Z=e;this.D=f;this.F=new Map;new olympe.C.Yb('Http service of remote data provider');this.N=new Map;this.j=new Map;this.ba=new Map([[olympe.dc.Request.j.Kg,olympe.L.Ob.Kg],[olympe.dc.Request.j.gg,olympe.L.Ob.kk],[olympe.dc.Request.j.qg,olympe.L.Ob.kk],[olympe.dc.Request.j.eg,olympe.L.Ob.kk],[olympe.dc.Request.j.Eo,olympe.L.Ob.Do],[olympe.dc.Request.j.Jr,olympe.L.Ob.Ir],[olympe.dc.Request.j.Yp,olympe.L.Ob.Xp],
820
+ olympe.dc.sources.Ku=class{constructor(a,b,c,d,e,f){this.G=a;this.R=b;this.H=c;this.X=d;this.Z=e;this.D=f;this.F=new Map;new olympe.C.Zb('Http service of remote data provider');this.N=new Map;this.j=new Map;this.ba=new Map([[olympe.dc.Request.j.Kg,olympe.L.Ob.Kg],[olympe.dc.Request.j.gg,olympe.L.Ob.kk],[olympe.dc.Request.j.qg,olympe.L.Ob.kk],[olympe.dc.Request.j.eg,olympe.L.Ob.kk],[olympe.dc.Request.j.Eo,olympe.L.Ob.Do],[olympe.dc.Request.j.Jr,olympe.L.Ob.Ir],[olympe.dc.Request.j.Yp,olympe.L.Ob.Xp],
821
821
  [olympe.dc.Request.j.Ug,olympe.L.Ob.Ro],[olympe.dc.Request.j.fh,olympe.L.Ob.TRANSACTION]])}Lc(a){var b=yj(this,a.ic(),a.getType());if(!b)return Promise.reject(`No destination URL to send the status request to destination: ${a.ic()}`);b=Gc(N(b,hj),olympe.net.ra.ResponseType.JSON);O(b,{['X-Source-Origin']:a.origin});return zj(this,b).then(c=>c.getData())}uploadFileContent(a){const {tag:b,model:c,content:d}=a.content,e=a.ic(),f=yj(this,e,a.getType());if(!f)return Promise.reject(`No destination URL to upload the file. ${b}`);
822
822
  const g=N(e===olympe.dc.Ia.SERVER?`${f}/${b}`:`${f}?tag=${b}&model=${c}`,kj,d);O(g,{[lj]:'application/octet-stream'});e!==olympe.dc.Ia.SERVER&&O(g,{['X-Source-Origin']:a.origin});return zj(this,g).then(()=>(new URL(g.j())).pathname)}deleteFileContent(a){const {tag:b,model:c}=a.content,d=a.ic();var e=yj(this,d,a.getType());if(!e)return Promise.reject(`No destination URL to delete the file. ${b}`);e=N(d===olympe.dc.Ia.SERVER?`${e}/${b}`:`${e}?tag=${b}&model=${c}`,jj,b);d!==olympe.dc.Ia.SERVER&&O(e,
823
823
  {['X-Source-Origin']:a.origin});return zj(this,e).then(()=>{})}downloadFileContent(a){const {tag:b,model:c}=a.content,d=a.ic();var e=yj(this,d,a.getType());if(!e)return Promise.reject(Error(`No destination URL to download the file. ${b}`));var f;const g=null!=(f=this.j.get(b))?f:[];f=new Promise((h,k)=>{g.push({done:h,oi:k})});if(this.j.has(b))return f;this.j.set(b,g);e=N(d===olympe.dc.Ia.SERVER?`${e}/${b}`:`${e}?tag=${b}&model=${c}`,hj,void 0,olympe.net.ra.ResponseType.ci);d!==olympe.dc.Ia.SERVER&&
824
824
  O(e,{['X-Source-Origin']:a.origin});zj(this,e).then(h=>{let k;null==(k=this.j.get(b))||k.forEach(l=>l.done(h.getData()))}).catch(h=>{let k;null==(k=this.j.get(b))||k.forEach(l=>l.oi(`${h}`))}).finally(()=>{this.j.delete(b)});return f}};olympe.dc.sources.tq=class{constructor(a,b){this.G=a;this.Jb=b}};olympe.dc.sources.tq.Ub={jj:0,eD:1,fD:3,zC:4};const Cj=olympe.dc.Request.j.pc,Dj=olympe.dc.Request.j.Ug,Ej=olympe.dc.Request.j.Kk,Fj=olympe.dc.Request.j.qg,Gj=olympe.dc.Request.j.gg,Hj=olympe.dc.Request.j.eg,Ij=olympe.dc.Request.j.Hi,Jj=olympe.dc.Request.j.Bh,Kj=olympe.dc.Request.j.ef,Lj=olympe.dc.Request.j.fh,Mj=olympe.dc.Request.j.ek;
825
825
  function Nj(a,b){const c=b.T();null===a.D&&(a.D=new olympe.U.bi(6E4),hb(a.D,(f,g)=>{a.applyTransaction(g,!1).catch(h=>{a.G.error(`Error occurred when applying burst transaction ${f} to the data source: ${h}`)})}),ib(a.D,()=>{a.D=null}));let d;const e=null!=(d=a.D.get(c))?d:new olympe.dc.db.ec(c);b.rc(e);fb(a.D.j,c)||a.D.set(c,e)}function Oj(a,b){return u(function*(){const c=Tf(new olympe.dc.Request(olympe.dc.Request.j.ek,a.T(),b),olympe.dc.Ia.SELF);let d;yield null==(d=a.Jb)?void 0:d.zi(c)})}
826
826
  function Pj(a,b){const c=b.T();let d,e;const f=null!=(e=null==(d=a.D)?void 0:d.get(c))?e:new olympe.dc.db.ec(c);let g;null==(g=a.D)||g.delete(c);b.rc(f);return a.applyTransaction(f,!1).catch(h=>{a.G.error(`Error occurred when applying burst transaction ${c} to the data source: ${h}`)})}function Qj(a,b){const c=rxjs.defer(()=>a.j.executeQuery(b));return 0<a.N?rxjs.interval(a.N).pipe(rxjs.operators.switchMap(()=>c)):c}
827
- olympe.dc.sources.Iq=class{constructor(a,b){this.G=a;this.j=b;this.Jb=null;this.H=olympe.dc.query.sl();this.F=new olympe.C.Yb('Context of source '+this.T());let c;this.N=null!=(c=b.Sf(olympe.dc.sources.Config.Wm))?c:-1;this.D=null}T(){return this.j.T()}init(a){this.Jb=a;if(this.T()===olympe.dc.Ia.SELF)return this;(new Promise((b,c)=>{let d=!0;Rj(this.j,this.F).subscribe(rxjs.Subscriber.create(e=>{if(this.G.j()){this.G.debug(`Data source ${this.j.name()} has loaded ${e.size()} data types in its cache:`);
827
+ olympe.dc.sources.Iq=class{constructor(a,b){this.G=a;this.j=b;this.Jb=null;this.H=olympe.dc.query.sl();this.F=new olympe.C.Zb('Context of source '+this.T());let c;this.N=null!=(c=b.Sf(olympe.dc.sources.Config.Wm))?c:-1;this.D=null}T(){return this.j.T()}init(a){this.Jb=a;if(this.T()===olympe.dc.Ia.SELF)return this;(new Promise((b,c)=>{let d=!0;Rj(this.j,this.F).subscribe(rxjs.Subscriber.create(e=>{if(this.G.j()){this.G.debug(`Data source ${this.j.name()} has loaded ${e.size()} data types in its cache:`);
828
828
  for(const [f,g]of e)this.G.debug(`=> DataType: ${g.name()} (${f})`)}d&&(d=!1,b())},c))})).then(()=>this.j.init(this.F)).catch(b=>{this.G.error(`Error while initialization of DataSource ${this.j.name()} (${this.T()}): ${b}`)});return this}healthCheck(){return this.j.healthCheck().then(()=>`Data source ${this.j.name()} (${this.j.T()}) OK`)}destroy(){this.F.destroy();return this.j.destroy()}request(a){const b=a.content;var c=a.getType();switch(c){case Cj:const d=olympe.dm.DataSource.pc.Bb,e=olympe.dm.DataSource.pc.Yh;
829
- return this.j.healthCheck().then(()=>({s:e})).catch(h=>({s:d,r:String(h)}));case Dj:return this.j.executeQuery(b);case Ij:const f=b.ac();Nj(this,f);Oj(this,Pf(f)).catch(h=>{this.G.warn(`Error occurred when applying burst transaction ${f.T()} to the data source: ${h}`)});return Promise.resolve();case Kj:case Lj:const g=b.ac();return this.applyTransaction(g,c===Lj).finally(()=>{if(a.origin===olympe.dc.Ia.SELF){var h=g.T();h=Tf(new olympe.dc.Request(olympe.dc.Request.j.lk,olympe.dc.Ia.SELF,{id:h,finalize:olympe.dc.transaction.Kf.j.$i,
830
- error:null}),this.T());let k;null==(k=this.Jb)||k.Oc(h)}});case Jj:return Pj(this,b.ac());case Fj:return b.content instanceof Uint8Array?this.j.uploadFileContent(b.tag,b.model,b.content).then(()=>`datasource://${b.tag}`):Promise.reject('File content is undefined');case Gj:return this.j.downloadFileContent(b.tag,b.model);case Hj:return this.j.deleteFileContent(b.tag,b.model);case Mj:return c=Tf(new olympe.dc.Request(Mj,olympe.dc.Ia.SELF,b,a.yc()),this.T()),this.Jb.Oc(c);default:return Promise.reject(`Request of type ${a.getType()} is not supported by the data source`)}}subscribe(a){if(a.getType()===
829
+ return this.j.healthCheck().then(()=>({s:e})).catch(h=>({s:d,r:String(h)}));case Dj:return this.j.executeQuery(b);case Ij:const f=b.Yb();Nj(this,f);Oj(this,Pf(f)).catch(h=>{this.G.warn(`Error occurred when applying burst transaction ${f.T()} to the data source: ${h}`)});return Promise.resolve();case Kj:case Lj:const g=b.Yb();return this.applyTransaction(g,c===Lj).finally(()=>{if(a.origin===olympe.dc.Ia.SELF){var h=g.T();h=Tf(new olympe.dc.Request(olympe.dc.Request.j.lk,olympe.dc.Ia.SELF,{id:h,finalize:olympe.dc.transaction.Kf.j.$i,
830
+ error:null}),this.T());let k;null==(k=this.Jb)||k.Oc(h)}});case Jj:return Pj(this,b.Yb());case Fj:return b.content instanceof Uint8Array?this.j.uploadFileContent(b.tag,b.model,b.content).then(()=>`datasource://${b.tag}`):Promise.reject('File content is undefined');case Gj:return this.j.downloadFileContent(b.tag,b.model);case Hj:return this.j.deleteFileContent(b.tag,b.model);case Mj:return c=Tf(new olympe.dc.Request(Mj,olympe.dc.Ia.SELF,b,a.yc()),this.T()),this.Jb.Oc(c);default:return Promise.reject(`Request of type ${a.getType()} is not supported by the data source`)}}subscribe(a){if(a.getType()===
831
831
  Ej){const b=a.content;a=a.origin;return a===olympe.dc.Ia.SELF?Qj(this,b):Ei(this.H,b,this.F,a,olympe.dc.la.oc.xf,{}).pipe(rxjs.operators.map(c=>{let d,e;return null!=(e=null==(d=c.Te)?void 0:d.F)?e:null}),rxjs.operators.filter(c=>null!==c),rxjs.operators.map(c=>Pf(c,Date.now())))}return rxjs.throwError(()=>Error('Subscription request not supported'))}applyTransaction(a,b){const c=this;return u(function*(){var d=Sj(a);yield c.j.applyTransaction(d,{batch:b});d=Date.now();yield Oi(c.H,c.T(),a);const e=
832
832
  Pf(a,d);yield Oj(c,e);return d})}};olympe.dc.sources.Iq.ya=[olympe.dc.sources.hk];function Sj(a){const b=olympe.dc.sources.ng.j.hu,c=olympe.dc.sources.ng.j.ex,d=olympe.dc.sources.ng.j.nu,e=olympe.dc.sources.ng.j.iu,f=olympe.dc.sources.ng.j.ou,g=[],h=[],k=[],l=[],n=[];a.Cb.forEach((p,q)=>{const r=p.Wb();p.D()?g.push(Tj(b,q,r,p.N()?p.Ab():null)):p.Bd()?k.push(Tj(d,q,r,null,p.F())):p.N()&&h.push(Tj(c,q,r,p.Ab()));for(const [t,v,x]of p.Ld())p=a.Wc(v),x?l.push(new Uj(e,t,q,v,r,p.Wb())):n.push(new Uj(f,t,q,v,r,p.Wb()))});return n.concat(k,g,h,l)}
833
833
  function Tj(a,b,c,d,e){if('string'!==typeof c)throw Error(`Patch: model of instance ${b} is missing. It is invalid transaction.`);return new Vj(a,b,c,d,e)}olympe.dc.sources.ng=class{constructor(a){this.type=a}};class Vj extends olympe.dc.sources.ng{constructor(a,b,c,d,e){super(a);this.object=b;this.model=c;this.properties=null!=d?d:null;this.deleteRules=null!=e?e:olympe.dc.Lb.NONE}}
834
834
  class Uj extends olympe.dc.sources.ng{constructor(a,b,c,d,e,f){super(a);this.relation=b;this.from=c;this.to=d;this.fromModel=e;this.toModel=f}}olympe.dc.sources.ng.j={hu:'CREATE',ex:'UPDATE',nu:'DELETE',iu:'CREATE_RELATION',ou:'DELETE_RELATION'};function Wj(a,b){b=Tf(new olympe.dc.Request(olympe.dc.Request.j.lk,olympe.dc.Ia.SELF,{id:b,finalize:olympe.dc.transaction.Kf.j.$i,error:null}),a.T());let c;null==(c=a.Jb)||c.Oc(b)}
835
835
  olympe.dc.sources.cm=class{constructor(a,b){this.G=a;this.D=b;this.Jb=null}T(){}X(){}Z(){}init(a){this.Jb=a;return this}destroy(){return Promise.resolve()}request(a){const b=this;return u(function*(){if(!b.D.j)return b.X(a);var c=olympe.dc.Request.j.pc,d=olympe.dc.Request.j.Ug;const e=olympe.dc.Request.j.ef,f=olympe.dc.Request.j.fh;var g=olympe.dc.Request.j.Hi;const h=olympe.dc.Request.j.Bh,k=olympe.dc.Request.j.qg;var l=olympe.dc.Request.j.gg;const n=olympe.dc.Request.j.eg,p=olympe.dc.sources.de(),
836
- q=a.getType(),r=a.ic();if(Nd(b.D)){q===d&&(c=a.content,(g=Vf(a).get(olympe.dc.la.j.Yl))&&(yield Xj(p,c.T(),g)),b.G.debug(`Data Provider: Query ${c.T()} will be executed with its default Remote or Server provider`));if(q===l&&(l=a.content,'string'===typeof(null==l?void 0:l.url)&&l.url.startsWith('offline://')))return p.downloadFileContent(l.tag);l=yield b.X(a);if(q===d){const t=a.content;d=l;const v=new olympe.dc.db.ec(`fullResult_${t.T()}`);l=d.pipeThrough(new TransformStream({transform:(x,y)=>u(function*(){const z=
837
- x.ac();yield Yj(p,z);z.rc(v);b.G.j()&&b.G.debug(`Data Provider: Data result for query ${t.T()}`,z.Cb.size,'instances',Array.from(z.Ld()).length,'relations');y.enqueue(x)}),flush:()=>u(function*(){yield Zj(p,t.T(),r,v,!0)})}))}else if(q===e||q===f||q===h)b.G.debug('Data Provider: Persisting graph patch in offline cache after successful transaction'),yield ak(p,null,r,a.content.ac(),!1);return l}b.G.debug(`Data Provider: Request (type: ${q}) will be sent to the cache data provider: ${a.content}`);switch(q){case c:return{s:olympe.dm.DataSource.pc.Ff};
838
- case d:return p.executeQuery(a.content);case e:case f:case h:d=a.content;const t=d.ac().T();return p.applyTransaction(d,r).finally(()=>Wj(b,t));case g:return Promise.resolve();case k:return d=a.content,p.uploadFileContent(d.tag,d.content,d.mimeType);case l:return p.downloadFileContent(a.content.tag);case n:return p.deleteFileContent(a.content.tag);default:return Promise.reject(`Messages of type ${a.getType()} is not supported by the source ${b.T()}`)}})}subscribe(a,b){if(!this.D.j)return this.Z(a,
839
- b);const c=olympe.dc.sources.de(),d=a.content,e=a.ic();return rxjs.of(null).pipe(rxjs.operators.switchMap(()=>{if(Nd(this.D)){const f=new rxjs.Observable(h=>{olympe.C.yt([this.D.rf()],()=>{h.error(new olympe.error.aq('Go Offline',d.T()))})}),g=this.Z(a,b);return rxjs.merge(f,g)}return new rxjs.Observable(f=>{olympe.C.yt([this.D.rf()],()=>{f.error(new olympe.error.Qo('Back Online',d.T()))})})})).pipe(rxjs.operators.switchMap(f=>rxjs.from(ak(c,d.T(),e,f.ac()).then(()=>f).catch(g=>{this.G.error(`Data Provider: Cache database failed to handle the data result with message: ${g}`);
840
- throw g;}))))}};olympe.dc.sources.cm.ya=[olympe.dc.sources.hk];const bk=olympe.dc.Request.j.pc,ck=olympe.dc.Request.j.Ug,dk=olympe.dc.Request.j.Kk,ek=olympe.dc.Request.j.ef,fk=olympe.dc.Request.j.fh,gk=olympe.dc.Request.j.Hi,hk=olympe.dc.Request.j.Bh,ik=olympe.dc.Request.j.qg,jk=olympe.dc.Request.j.gg,kk=olympe.dc.Request.j.eg;function lk(a,b){let c;return(null==(c=a.Ha.jb(b))?void 0:c.Sf(olympe.dc.sources.Config.We))!==olympe.dm.DataSource.We.eq}
841
- function mk(a,b){let c;return(null==(c=a.Ha.jb(b))?void 0:c.Sf(olympe.dc.sources.Config.We))!==olympe.dm.DataSource.We.Ho}function nk(a,b,c){const d=c.content.ac().T();let e=a.ba.get(d);e||(e=olympe.L.rb.mt(b),a.ba.set(d,e));return e.md(c)}function ok(a,b){b=b.yc();if(b!==olympe.dm.User.j&&a.Sf(olympe.dc.sources.Config.dn))throw a=`User ${b} has no right to access the restricted data source ${a.name()} (${a.T()}). Please use an admin account instead.`,new olympe.error.yk(a);}
836
+ q=a.getType(),r=a.ic();if(Nd(b.D)){q===d&&(c=a.content,(g=Vf(a).get(olympe.dc.la.j.Yl))&&(yield Xj(p,c.T(),g)),b.G.debug(`Data Provider: Query ${c.T()} will be executed with its default Remote or Server provider`));if(q===l&&(l=a.content,'string'===typeof(null==l?void 0:l.url)&&l.url.startsWith('offline://')))return p.downloadFileContent(l.tag);l=yield b.X(a);if(q===d){const t=a.content;if(l instanceof ReadableStream){const v=new olympe.dc.db.ec(`fullResult_${t.T()}`);l=l.pipeThrough(new TransformStream({transform:(x,
837
+ y)=>u(function*(){const z=x.Yb();yield Yj(p,z);z.rc(v);b.G.j()&&b.G.debug(`Data Provider: Data result for query ${t.T()}`,z.Cb.size,'instances',Array.from(z.Ld()).length,'relations');y.enqueue(x)}),flush:()=>u(function*(){yield Zj(p,t.T(),r,v,!0)})}))}else d=l.Yb(),yield Yj(p,d),yield Zj(p,t.T(),r,d,!0)}else if(q===e||q===f||q===h)b.G.debug('Data Provider: Persisting graph patch in offline cache after successful transaction'),yield ak(p,null,r,a.content.Yb(),!1);return l}b.G.debug(`Data Provider: Request (type: ${q}) will be sent to the cache data provider: ${a.content}`);
838
+ switch(q){case c:return{s:olympe.dm.DataSource.pc.Ff};case d:return p.executeQuery(a.content);case e:case f:case h:d=a.content;const t=d.Yb().T();return p.applyTransaction(d,r).finally(()=>Wj(b,t));case g:return Promise.resolve();case k:return d=a.content,p.uploadFileContent(d.tag,d.content,d.mimeType);case l:return p.downloadFileContent(a.content.tag);case n:return p.deleteFileContent(a.content.tag);default:return Promise.reject(`Messages of type ${a.getType()} is not supported by the source ${b.T()}`)}})}subscribe(a,
839
+ b){if(!this.D.j)return this.Z(a,b);const c=olympe.dc.sources.de(),d=a.content,e=a.ic();return rxjs.of(null).pipe(rxjs.operators.switchMap(()=>{if(Nd(this.D)){const f=new rxjs.Observable(h=>{olympe.C.yt([this.D.rf()],()=>{h.error(new olympe.error.aq('Go Offline',d.T()))})}),g=this.Z(a,b);return rxjs.merge(f,g)}return new rxjs.Observable(f=>{olympe.C.yt([this.D.rf()],()=>{f.error(new olympe.error.Qo('Back Online',d.T()))})})})).pipe(rxjs.operators.switchMap(f=>rxjs.from(ak(c,d.T(),e,f.Yb()).then(()=>
840
+ f).catch(g=>{this.G.error(`Data Provider: Cache database failed to handle the data result with message: ${g}`);throw g;}))))}};olympe.dc.sources.cm.ya=[olympe.dc.sources.hk];const bk=olympe.dc.Request.j.pc,ck=olympe.dc.Request.j.Ug,dk=olympe.dc.Request.j.Kk,ek=olympe.dc.Request.j.ef,fk=olympe.dc.Request.j.fh,gk=olympe.dc.Request.j.Hi,hk=olympe.dc.Request.j.Bh,ik=olympe.dc.Request.j.qg,jk=olympe.dc.Request.j.gg,kk=olympe.dc.Request.j.eg;function lk(a,b){let c;return(null==(c=a.Ha.jb(b))?void 0:c.Sf(olympe.dc.sources.Config.We))!==olympe.dm.DataSource.We.eq}
841
+ function mk(a,b){let c;return(null==(c=a.Ha.jb(b))?void 0:c.Sf(olympe.dc.sources.Config.We))!==olympe.dm.DataSource.We.Ho}function nk(a,b,c){const d=c.content.Yb().T();let e=a.ba.get(d);e||(e=olympe.L.rb.mt(b),a.ba.set(d,e));return e.md(c)}function ok(a,b){b=b.yc();if(b!==olympe.dm.User.j&&a.Sf(olympe.dc.sources.Config.dn))throw a=`User ${b} has no right to access the restricted data source ${a.name()} (${a.T()}). Please use an admin account instead.`,new olympe.error.yk(a);}
842
842
  function pk(a,b,c,d,e){return u(function*(){var f=olympe.L.pa.j.SEND,g=olympe.L.pa.j.GET;const h=olympe.L.pa.j.PUBLISH,k=olympe.L.pa.j.SUBSCRIBE,l=d.At();var n=d.body();if(e!==n.yc())throw Error('Access denied: try to impersonate a user');ok(c,n);let p;if(null==(p=a.Jb)||!p.sources.has(n.ic()))throw Error(`Try to process a message with destination data source ${n.ic()} coming from remote but not started here`);if(l===k){if(n.getType()===dk)f=n.content.T();else throw Error('Not supported type of subscription');
843
843
  g=yield d.bo(f);a.ia.set(g,f);g=a.N.get(f);g||(g=new qk(a.G,f,b,Tf(n,olympe.dc.Ia.$e)),a.N.set(f,g));g.subscribe()}else l===g?(n=yield b.request(n),void 0!==n?yield d.Oc(n):a.G.warn(`Request from ${d.source()} requires an output value, but got undefined instead.`)):l===f?(yield b.request(n),yield d.ack()):l===h&&(yield b.request(n))})}
844
- olympe.dc.sources.Tr=class extends olympe.dc.sources.cm{constructor(a,b,c,d,e,f){super(a,d);this.H=b;this.j=c;this.db=e;this.F=new olympe.C.Yb('Remote Provider Context');this.wa=new Map;this.R=new Map;this.N=new Map;this.ia=new Map;this.Ha=f;this.ba=new Map}T(){return olympe.dc.Ia.$e}X(a){var b=olympe.L.rb;const c=a.ic();var d=a.getType();this.G.j()&&this.G.debug(`Request (type: ${d}) will be sent to remote data provider ${c}: ${a.content}`);switch(d){case bk:const e=olympe.dm.DataSource.pc.Bb,f=
845
- olympe.dm.DataSource.pc.Yh;b=lk(this,c)?b.get(c,a):Promise.resolve({s:f});a=mk(this,c)?this.j.Lc(a):Promise.resolve({s:f});return Promise.all([b,a]).then(([k,l])=>{if((null==k?void 0:k.s)===e||(null==l?void 0:l.s)===e){let n,p;return{s:e,r:`${null!=(n=null==k?void 0:k.r)?n:''} ${null!=(p=null==l?void 0:l.r)?p:''}`}}return{s:f}});case ck:return mk(this,c)?Aj(this.j,a):b.get(c,a);case ek:const g=a.content.ac().T();return(lk(this,c)?b.get(c,a):Bj(this.j,a)).finally(()=>Wj(this,g));case fk:const h=a.content.ac().T();
846
- return(mk(this,c)?Bj(this.j,a):b.get(c,a)).finally(()=>Wj(this,h));case gk:return lk(this,c)?nk(this,c,a).catch(k=>{this.G.error(`An error occurred while sending "burst transaction" to the data source ${c}: ${k}`)}):Promise.resolve();case hk:return d=a.content.ac().T(),this.ba.delete(d),lk(this,c)?b.get(c,a):Bj(this.j,a);case ik:return mk(this,c)?this.j.uploadFileContent(a):b.get(c,a);case jk:return mk(this,c)?this.j.downloadFileContent(a):b.get(c,a);case kk:return mk(this,c)?this.j.deleteFileContent(a):
844
+ olympe.dc.sources.Tr=class extends olympe.dc.sources.cm{constructor(a,b,c,d,e,f){super(a,d);this.H=b;this.j=c;this.db=e;this.F=new olympe.C.Zb('Remote Provider Context');this.wa=new Map;this.R=new Map;this.N=new Map;this.ia=new Map;this.Ha=f;this.ba=new Map}T(){return olympe.dc.Ia.$e}X(a){var b=olympe.L.rb;const c=a.ic();var d=a.getType();this.G.j()&&this.G.debug(`Request (type: ${d}) will be sent to remote data provider ${c}: ${a.content}`);switch(d){case bk:const e=olympe.dm.DataSource.pc.Bb,f=
845
+ olympe.dm.DataSource.pc.Yh;b=lk(this,c)?b.get(c,a):Promise.resolve({s:f});a=mk(this,c)?this.j.Lc(a):Promise.resolve({s:f});return Promise.all([b,a]).then(([k,l])=>{if((null==k?void 0:k.s)===e||(null==l?void 0:l.s)===e){let n,p;return{s:e,r:`${null!=(n=null==k?void 0:k.r)?n:''} ${null!=(p=null==l?void 0:l.r)?p:''}`}}return{s:f}});case ck:return mk(this,c)?Aj(this.j,a):b.get(c,a);case ek:const g=a.content.Yb().T();return(lk(this,c)?b.get(c,a):Bj(this.j,a)).finally(()=>Wj(this,g));case fk:const h=a.content.Yb().T();
846
+ return(mk(this,c)?Bj(this.j,a):b.get(c,a)).finally(()=>Wj(this,h));case gk:return lk(this,c)?nk(this,c,a).catch(k=>{this.G.error(`An error occurred while sending "burst transaction" to the data source ${c}: ${k}`)}):Promise.resolve();case hk:return d=a.content.Yb().T(),this.ba.delete(d),lk(this,c)?b.get(c,a):Bj(this.j,a);case ik:return mk(this,c)?this.j.uploadFileContent(a):b.get(c,a);case jk:return mk(this,c)?this.j.downloadFileContent(a):b.get(c,a);case kk:return mk(this,c)?this.j.deleteFileContent(a):
847
847
  b.send(c,a);default:return Promise.reject(`Messages of type ${a.getType()} is not supported by the source ${this.T()}`)}}Z(a,b){const c=a.ic(),d=a.getType();if(!lk(this,c))return rxjs.throwError(()=>Error(`Subscription request not supported for data source ${this.db.name(c)} (${c}) which uses HTTP only.`));this.G.j()&&this.G.debug(`Subscription (type: ${d}) will be sent to remote data provider ${c}: ${a.content}`);return d===dk?olympe.L.rb.observe(c,this.F,a,{onRetry:b}).observable:rxjs.throwError(()=>
848
848
  Error(`Do not handle subscription request of type ${d}`))}init(a){super.init(a);if(a.F)return this;olympe.dc.la.from(this.H,this.H).bb(olympe.dm.DataSource.Nj).filter(olympe.dc.query.za.Fa(olympe.dm.DataSource.ji,!0)).filter(olympe.dc.query.za.Fa(olympe.dm.DataSource.Us,!0)).observe(this.F).subscribe(b=>{b.zj().forEach(this.lb.bind(this,a));b.Fj().forEach(c=>{let d;null==(d=this.wa.get(c))||d.destroy();this.wa.delete(c)})});this.db.Pa(this.H,olympe.dm.DataSource.Us)&&(new olympe.L.rb(this.H,this.F)).listen().subscribe(b=>
849
- {b=b.body();b instanceof olympe.dc.Request?a.Oc(b):this.G.error('Self source received something else than a data request, ignore it.')});return this}destroy(){return u(function*(){})}lb(a,b){const c=b.W(),d=new olympe.C.Yb(`Published data provider context ${c}`,this.F);this.wa.set(c,d);let e;rk(b,d).subscribe(f=>{let g;null==(g=e)||g();let h;null==(h=this.R.get(c))||h.stop();this.R.delete(c);f!==olympe.dm.DataSource.We.Ho&&(e=vj(this.j,c,k=>{ok(b,k);return a.request(k)}),d.onDestroy(()=>{let k;return null==
850
- (k=e)?void 0:k()}));f!==olympe.dm.DataSource.We.eq&&(f=new olympe.C.Yb(`Bus Service of data source ${c}`,d),f=(new olympe.L.rb(c,f)).It(this.Ua.bind(this)),this.R.set(c,f),f.listen().subscribe(k=>{k.Di().then(l=>pk(this,a,b,k,l)).catch(l=>{this.G.warn(`Error occurred while processing request from ${k.source()}: ${l}`);return k.oi(l instanceof Error?l:Error(l))})}))})}zi(a){const b=this;return u(function*(){let c;yield null==(c=b.R.get(a.ic()))?void 0:c.zi(a)})}Ua(a){const b=this.ia.get(a);this.ia.delete(a);
849
+ {b=b.body();b instanceof olympe.dc.Request?a.Oc(b):this.G.error('Self source received something else than a data request, ignore it.')});return this}destroy(){return u(function*(){})}lb(a,b){const c=b.W(),d=new olympe.C.Zb(`Published data provider context ${c}`,this.F);this.wa.set(c,d);let e;rk(b,d).subscribe(f=>{let g;null==(g=e)||g();let h;null==(h=this.R.get(c))||h.stop();this.R.delete(c);f!==olympe.dm.DataSource.We.Ho&&(e=vj(this.j,c,k=>{ok(b,k);return a.request(k)}),d.onDestroy(()=>{let k;return null==
850
+ (k=e)?void 0:k()}));f!==olympe.dm.DataSource.We.eq&&(f=new olympe.C.Zb(`Bus Service of data source ${c}`,d),f=(new olympe.L.rb(c,f)).It(this.Ua.bind(this)),this.R.set(c,f),f.listen().subscribe(k=>{k.Di().then(l=>pk(this,a,b,k,l)).catch(l=>{this.G.warn(`Error occurred while processing request from ${k.source()}: ${l}`);return k.oi(l instanceof Error?l:Error(l))})}))})}zi(a){const b=this;return u(function*(){let c;yield null==(c=b.R.get(a.ic()))?void 0:c.zi(a)})}Ua(a){const b=this.ia.get(a);this.ia.delete(a);
851
851
  if(a=b)null==(a=this.N.get(b))?a=0:(0<a.j&&--a.j,0===a.j?(a.G.debug(`Data subscription ${a.D} has more subscriber: unsubscribe`),a.F.unsubscribe(),a=!0):(a.G.debug(`Data subscription ${a.D} has ${a.j} subscribers`),a=!1));a&&this.N.delete(b)}};
852
852
  class qk{constructor(a,b,c,d){this.G=a;this.D=b;this.j=0;this.F=c.subscribe(d).subscribe({next:e=>{olympe.L.rb.md(b,e).catch(f=>a.error(`Error occurred while publishing a data notification: ${f}`))},error:e=>a.error(`Error occurred while trying to subscribe to topic ${b} for a datasource: ${e}`)})}subscribe(){this.j++;this.G.debug(`Data subscription ${this.D} has ${this.j} subscribers`);return this}}olympe.dc.sources.Tr.ya=[olympe.dc.sources.hk];const X={Fs:10,Wo:11,Hp:12,Ar:13,QUERY_RESULT:14,Zp:15,mp:16,ef:17,Br:18,lp:19,gj:20};function sk(a,b){const c=new olympe.dc.transaction.Je,d=new olympe.dc.transaction.Je;b.forEach(e=>{const f=new Map(Array.from(Object.entries(e.p).map(([h,k])=>[h,a.j(k)]))),g=e.v?d:c;g.Uc(e.t,e.s,f,e.m);e.r.forEach(h=>g.Oa(h.r,h.o,h.d))});a.Z.od(Yf(Zf(d),olympe.dc.Ia.SELF),{persist:!1});a.Z.od(Yf(Zf(c),olympe.dc.Ia.SELF))}
853
853
  olympe.dc.sources.cc=class extends olympe.L.cc{constructor(a){super();this.Z=a;this.db=a.view;this.F=new Map}fa(a){a=super.fa(a);if(0<this.F.size){const b=Array.from(this.F.values());this.F.clear();return Object.assign(this.format(X.Fs,a),{i:b})}return a}N(a){return(null==a?void 0:a.t)===X.Fs&&Array.isArray(null==a?void 0:a.i)?(sk(this,a.i),this.j(a.v)):this.j(a)}D(a){switch(!0){case a instanceof olympe.dm.File:var b=this.format,c=X.Hp;{const d=a.W(),e={t:d};if(!this.F.has(d)&&(this.H(d),!this.db.Se(d))){const f=
854
854
  a.get(olympe.dm.File.urlProp);if(f.startsWith('blob:')||f.startsWith('stream:'))a=olympe.dc.bt().Ha(a),this.F.get(d).p[olympe.dm.File.urlProp.W()]='stream://'+d,e.s=this.D(a)}a=e}return b.call(this,c,a);case a instanceof olympe.dc.CloudObject:return this.format(X.Wo,this.H(a.W()));case a instanceof olympe.dc.la:return this.format(X.Ar,a.fa());case a instanceof olympe.dc.Ka:return this.format(X.QUERY_RESULT,a.fa(this.H.bind(this)));case a instanceof olympe.dc.db.ec:return b=new olympe.dc.transaction.Je,
855
- a.rc(b),this.format(X.Zp,{i:a.T(),p:Zf(b)});case a instanceof olympe.dc.Request:return this.format(X.mp,{r:a.getType(),o:a.origin,d:a.ic(),u:a.yc(),c:this.D(a.content)});case a instanceof olympe.dc.transaction.mj:return this.format(X.ef,{r:a.wh(),p:this.D(a.ac())});case a instanceof olympe.dc.query.Id:return this.format(X.Br,a.fa());case a instanceof olympe.dc.Ig:return this.format(X.lp,a.fa());case a instanceof olympe.dc.wc:return this.format(X.gj,this.H(a.W()));default:return super.D(a)}}j(a){if(null===
855
+ a.rc(b),this.format(X.Zp,{i:a.T(),p:Zf(b)});case a instanceof olympe.dc.Request:return this.format(X.mp,{r:a.getType(),o:a.origin,d:a.ic(),u:a.yc(),c:this.D(a.content)});case a instanceof olympe.dc.transaction.mj:return this.format(X.ef,{r:a.wh(),p:this.D(a.Yb())});case a instanceof olympe.dc.query.Id:return this.format(X.Br,a.fa());case a instanceof olympe.dc.Ig:return this.format(X.lp,a.fa());case a instanceof olympe.dc.wc:return this.format(X.gj,this.H(a.W()));default:return super.D(a)}}j(a){if(null===
856
856
  a||'object'!==typeof a)return super.j(a);const {t:b,v:c}=a;switch(b){case X.Hp:var d=c.t;c.s&&(a=this.j(c.s),olympe.dc.bt().wb(d,a));return olympe.dc.CloudObject.get(d);case X.Wo:return olympe.dc.CloudObject.get(c);case X.Ar:return d=c.p.map(olympe.dc.query.na.Zm.j),a=c.e,new olympe.dc.la(c.b,c.s,d,d.length-1,new Set(c.r),{max:a.m,offset:a.o,Od:a.s,Ue:a.rm});case X.QUERY_RESULT:return Qi(c);case X.Zp:return(new olympe.dc.transaction.dj).j(c.p,c.i);case X.mp:return a=null!=(d=this.j(c.c))?d:void 0,
857
857
  Tf(new olympe.dc.Request(c.r,c.d,a,c.u),c.o);case X.ef:return d=this.j(c.p),new olympe.dc.transaction.mj(d,c.r);case X.Br:return olympe.dc.query.Id.j(c);case X.lp:return olympe.dc.Ig.j(c);case X.gj:return new olympe.dc.wc(c);default:return super.j(a)}}H(a){if(this.F.has(a))return a;if(!this.db.Ja(a))throw new olympe.dc.jr(a);const b={};this.db.Ab(a).forEach((d,e)=>{b[e]=this.D(d)});var c=[];for(const [d,e,f]of vh(this.db,a))this.F.has(f)&&c.push(e===olympe.dc.va.DESTINATION?{r:d,o:a,d:f}:{r:d,o:f,
858
858
  d:a});c={t:a,m:this.db.model(a),s:this.db.source(a),p:b,r:c};this.db.Se(a)||(c.v=!0);this.F.set(a,c);return a}};const tk=olympe.dc.Request.j.Kg,uk=olympe.dc.Request.j.ef,vk=olympe.dc.Request.j.fh,wk=olympe.dc.Request.j.Hi,xk=olympe.dc.Request.j.Eo,yk=olympe.dc.Request.j.Jr,zk=olympe.dc.Request.j.Ug,Ak=olympe.dc.Request.j.Kk,Bk=olympe.dc.Request.j.Yp,Ck=olympe.dc.Request.j.Fu,Dk=olympe.dc.Request.j.Gu,Ek=olympe.dc.Request.j.Hu,Fk=olympe.dc.Request.j.eg,Gk=olympe.dc.Request.j.gg,Hk=olympe.dc.Request.j.qg,Ik=olympe.dc.Request.j.lk,Jk=olympe.dc.Request.j.ax,Kk=olympe.dc.Request.j.pw,Lk=olympe.dc.Request.j.Tp,Mk=
859
- olympe.dc.Request.j.Bh,Nk=olympe.dc.Request.j.gu,Ok=olympe.dc.Request.j.pc;function Pk(a){return Qk(a,olympe.dc.Request.j.Kg).then(b=>{b=b.getData().p;const c=Yf(b,a.T());a.G.j()&&a.G.debug('< Get Context result',b);a.G.N()&&a.G.log('< Get Context result has',b.length,'operations');return c})}function Rk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1}),d=b.ac(),e=b.j;d.rc(c);return Sk(a,uk,{i:d.T(),r:b.wh(),p:Zf(c),bd:e?!0:void 0}).then(f=>f.ct)}
860
- function Tk(a,b){const c=b.ac(),d=new olympe.dc.transaction.Je({Fl:!0,ne:!1,ki:!1});c.rc(d);b=b.j?'bd=true':'';return Qk(a,vk,Zf(d),b,olympe.net.ra.ResponseType.mn).then(e=>{try{const f=e.getData();let g;return null!=(g=JSON.parse(f).ct)?g:Date.now()}catch(f){return Date.now()}}).finally(()=>{Uk(a,Ik,{id:c.T(),finalize:olympe.dc.transaction.Kf.j.$i})})}
861
- function Vk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1}),d=b.ac();d.rc(c);return Sk(a,wk,{i:d.T(),r:b.wh(),p:Zf(c)},!1).catch(e=>a.G.error(`Error while publishing burst transaction: ${e}`))}function Wk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1});b=b.ac();b.rc(c);return Sk(a,Mk,{i:b.T(),p:Zf(c)}).then(d=>d.ct)}
859
+ olympe.dc.Request.j.Bh,Nk=olympe.dc.Request.j.gu,Ok=olympe.dc.Request.j.pc;function Pk(a){return Qk(a,olympe.dc.Request.j.Kg).then(b=>{b=b.getData().p;const c=Yf(b,a.T());a.G.j()&&a.G.debug('< Get Context result',b);a.G.N()&&a.G.log('< Get Context result has',b.length,'operations');return c})}function Rk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1}),d=b.Yb(),e=b.j;d.rc(c);return Sk(a,uk,{i:d.T(),r:b.wh(),p:Zf(c),bd:e?!0:void 0}).then(f=>f.ct)}
860
+ function Tk(a,b){const c=b.Yb(),d=new olympe.dc.transaction.Je({Fl:!0,ne:!1,ki:!1});c.rc(d);b=b.j?'bd=true':'';return Qk(a,vk,Zf(d),b,olympe.net.ra.ResponseType.mn).then(e=>{try{const f=e.getData();let g;return null!=(g=JSON.parse(f).ct)?g:Date.now()}catch(f){return Date.now()}}).finally(()=>{Uk(a,Ik,{id:c.T(),finalize:olympe.dc.transaction.Kf.j.$i})})}
861
+ function Vk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1}),d=b.Yb();d.rc(c);return Sk(a,wk,{i:d.T(),r:b.wh(),p:Zf(c)},!1).catch(e=>a.G.error(`Error while publishing burst transaction: ${e}`))}function Wk(a,b){const c=new olympe.dc.transaction.Je({ne:!1,ki:!1});b=b.Yb();b.rc(c);return Sk(a,Mk,{i:b.T(),p:Zf(c)}).then(d=>d.ct)}
862
862
  function Xk(a,b){const c=encodeURI(ab(olympe.U.kf(),JSON.stringify(Yk(a,b))));a.G.j()&&a.G.debug(`Static GraphDef query ${b} sent to orchestrator`);return Qk(a,zk,void 0,`query=${c}&v=${a.version}`,olympe.net.ra.ResponseType.le).then(d=>Zk(a,d))}function $k(a,b){const c=b.T();a.G.j()&&a.G.debug(`Query (${c}) sent to orchestrator: ${b}`);const d=Yk(a,b);return vb(a.wa,()=>Qk(a,Bk,d,void 0,olympe.net.ra.ResponseType.le)).then(e=>Zk(a,e))}
863
863
  function al(a,b){if(!ze(a.F))return a.G.error(`Server is disconnected, backup of instance ${b} is canceled.`),Promise.reject('Server is disconnected');b=Yk(a,olympe.dc.la.from(b));b.f=olympe.dc.Lb.qp;b=N(yj(a.j,olympe.dc.Ia.SERVER,xk),olympe.net.ra.Gd.Rg,JSON.stringify(b),olympe.net.ra.ResponseType.ci);O(b,{[olympe.net.ra.Headers.Eh]:olympe.net.ra.bk.JSON});return zj(a.j,b).then(c=>c.getData())}
864
864
  function bl(a,b,c,d){if(!ze(a.F))return a.G.error('Server is disconnected, restore of instance is canceled.'),Promise.reject('Server is disconnected');const e=yj(a.j,olympe.dc.Ia.SERVER,yk);b=N(e+`?debug=${c}&optional=${d}`,olympe.net.ra.Gd.Rg,b);O(b,{[olympe.net.ra.Headers.Eh]:olympe.net.ra.bk.nx});return zj(a.j,b).then(f=>f.getData())}
@@ -872,7 +872,7 @@ olympe.dc.sources.hs=class extends olympe.dc.sources.cm{constructor(a,b,c,d,e,f,
872
872
  olympe.dm.DataSource.pc.Bb,b=olympe.dm.DataSource.pc.Yh,Promise.resolve(ze(this.F)?{s:b}:{s:a,r:'Disconnected'});case tk:return Pk(this);case uk:return Rk(this,c);case vk:return Tk(this,c);case wk:return Vk(this,c);case Mk:return Wk(this,c);case zk:return d.get(olympe.dc.la.j.uq)?Xk(this,c):$k(this,c);case xk:return al(this,c);case yk:return bl(this,c.NF,c.debug,c.optional);case Jk:case Kk:case Lk:case Nk:return Sk(this,b,{});case Gk:return this.j.downloadFileContent(a);case Fk:return this.j.deleteFileContent(a);
873
873
  case Hk:return this.j.uploadFileContent(a);default:return Promise.reject(`ServerProvider: Message of type ${b} not supported yet`)}}Z(a,b){if(a.getType()===Ak){const c=a.content,d=c.T();return(new rxjs.Observable(e=>{const f=Yk(this,c);this.N.delete(d);this.H.set(d,e);Sk(this,Ck,f).catch(g=>e.error(g))})).pipe(sb(olympe.error.Th,(e,f)=>{this.G.debug(`Subscribe to topic ${e.T()} now that we are back online, after waiting for ${f}ms`);b()}),rxjs.operators.finalize(()=>{this.N.add(d);Sk(this,Dk,{i:d}).catch(e=>
874
874
  {this.G.warn(`Fail to unsubscribe to graphdef ${d}: ${e}`)}).finally(()=>{this.N.has(d)&&this.H.delete(d);this.N.delete(d)})}))}return rxjs.throwError(()=>Error(`Subscription of type ${a.getType()} is not supported`))}init(a){super.init(a);xe(this.F,olympe.L.Ge.Hg,this.ia.bind(this));return this}destroy(){return u(function*(){})}ia(a,b){const c=olympe.dc.Request.j.Go,d=olympe.dc.Request.j.Lm,e=a.c;if(e===olympe.dc.Request.j.ek)cl(this,a,b).then(f=>{Uk(this,e,f)});else if(e===c)b=this.R.j(a.p,a.i),
875
- b=Pf(b,a.ct),Uk(this,e,{rollback:b,error:a.error});else if(e===Ek){const f=a.i;cl(this,a,b).then(g=>{let h;null==(h=this.H.get(f))||h.next(g)})}else e===d&&Uk(this,Ik,{id:a.i,finalize:olympe.dc.transaction.Kf.j.Lm,error:0<a.s?a.error:null})}ba(a,b){if(b instanceof olympe.dc.query.na.Zh){const c=b.relation;let d;b=null!=(d=a.get(b.T()))?d:[];return{t:c.W(),d:c.La()===olympe.dc.va.ORIGIN?1:2,v:!0,r:c.recursive,q:b.map(this.ba.bind(this,a))}}return{}}};olympe.dc.sources.hs.ya=[olympe.dc.sources.hk];function dl(a,b,c){const d=new olympe.C.Yb(`Source solver ${b.W()}`);b.bb(olympe.dm.Ed.F.$b()).bb(olympe.dm.Ed.D).oe().back().bb(olympe.dm.Ed.j).oe().observe(d,{nd:c,Cc:!0}).subscribe(e=>{e.zj().forEach(([f,g])=>{a.D.set(f.W(),g.T())});e.Fj().forEach(([f])=>{a.D.delete(f)})});b.bb(olympe.dm.hb.D).observe(d,{nd:c,Cc:!0}).subscribe(e=>{let f,g;a.F=null!=(g=null==(f=e.Kc())?void 0:f.T())?g:null});d.onDestroy(()=>{a.D.clear();a.F=null})}
875
+ b=Pf(b,a.ct),Uk(this,e,{rollback:b,error:a.error});else if(e===Ek){const f=a.i;cl(this,a,b).then(g=>{let h;null==(h=this.H.get(f))||h.next(g)})}else e===d&&Uk(this,Ik,{id:a.i,finalize:olympe.dc.transaction.Kf.j.Lm,error:0<a.s?a.error:null})}ba(a,b){if(b instanceof olympe.dc.query.na.Zh){const c=b.relation;let d;b=null!=(d=a.get(b.T()))?d:[];return{t:c.W(),d:c.La()===olympe.dc.va.ORIGIN?1:2,v:!0,r:c.recursive,q:b.map(this.ba.bind(this,a))}}return{}}};olympe.dc.sources.hs.ya=[olympe.dc.sources.hk];function dl(a,b,c){const d=new olympe.C.Zb(`Source solver ${b.W()}`);b.bb(olympe.dm.Ed.F.ac()).bb(olympe.dm.Ed.D).oe().back().bb(olympe.dm.Ed.j).oe().observe(d,{nd:c,Cc:!0}).subscribe(e=>{e.zj().forEach(([f,g])=>{a.D.set(f.W(),g.T())});e.Fj().forEach(([f])=>{a.D.delete(f)})});b.bb(olympe.dm.hb.D).observe(d,{nd:c,Cc:!0}).subscribe(e=>{let f,g;a.F=null!=(g=null==(f=e.Kc())?void 0:f.T())?g:null});d.onDestroy(()=>{a.D.clear();a.F=null})}
876
876
  olympe.dc.sources.Wk=class{constructor(a,b,c){this.db=a;this.j=b;this.N=c;this.D=new Map;this.F=null;this.H=!1}fromModel(a){a=olympe.dc.ea(a);return this.D.has(a)?this.D.get(a):this.F&&this.R(a)?this.F:this.N}re(a){let b;return null!=(b=this.db.source(a))?b:this.N}jb(a){return a===this.j?olympe.dc.CloudObject.get(this.j):a===olympe.dc.Ia.SERVER?olympe.dc.CloudObject.get(olympe.dm.DataSource.SERVER):this.db.Ja(a)&&this.db.Nb(a,olympe.dm.DataSource)?olympe.dc.CloudObject.get(a):null}R(){return!1}init(){if(!this.H){this.H=
877
877
  !0;var a=new olympe.dc.Ya;Y(a.create(olympe.dm.DataSource,this.j).Ai(this.j),olympe.dm.DataSource.ji,!0);a.Oa(olympe.dm.DataSource.Nj,this.j,this.j);a.mb(()=>{olympe.dc.la.from(this.j).observe(olympe.C.nh()).subscribe(()=>{})})}}};olympe.dc.sources.P={Ca:'dc.sources.Logger',sk:'dc.sources.HTTPService',Vu:'dc.sources.IOService',Hr:'dc.sources.RemoteProvider',$r:'dc.sources.ServerProvider',BC:'dc.sources.OfflineProvider',bf:'dc.sources.SourceSolver',Ne:'dc.sources.Serializer',jp:'dc.sources.cache.Cache',kp:'dc.sources.cache.DATABASE',Zl:'dc.sources.cache.Logger'};
878
878
  olympe.dc.sources.Config={Mh:'data.httpHost',Cf:'data.httpPort',Ri:'data.httpSSL',xm:'data.httpBasePath',Wm:'data.pollingFrequency',We:'data.communicationMode',dn:'data.restrictedUse',VERSION:'version.version',es:'data.streamWorker',ir:'data.queryConcurrencyLimit'};olympe.dc.sources.Oh={fw:'olympe.internal.data.',Mh:'olympe.internal.data.httpHost',Cf:'olympe.internal.data.httpPort',Ri:'olympe.internal.data.httpSSL'};
@@ -903,20 +903,20 @@ function El(a){const b=olympe.dc.sources.de();return u(function*(){let c;try{c=J
903
903
  function Gl(){const a=olympe.dc.sources.de();return u(function*(){yield Hl(a.j);yield nl(a)})}
904
904
  olympe.dc.sources.cache.Cache=class{constructor(a,b,c,d,e,f,g,h,k,l){this.G=a;this.Jb=b;this.j=c;this.Ha=d;this.xd=e;this.lb=f;this.Ua=g;this.wa=h;this.version=l;this.Z=this.version!==this.Ua.get('__code-as-data-version__');this.Vb=this.wb=!1;this.D=new Map;this.N=new rxjs.BehaviorSubject([]);this.H=null;this.ba=new rxjs.BehaviorSubject(!1);this.F=new olympe.dc.db.ec;this.Ic=this.Hc=!1;this.ia=[];this.X=0;this.me=new rxjs.BehaviorSubject(!1);this.status=new rxjs.BehaviorSubject({processing:!1});this.R=
905
905
  !1;this.jd=new rxjs.Subject;this.Dd=new olympe.U.promise.ms(k)}Lc(){return this.status.asObservable()}init(){const a=this;return u(function*(){if(!a.Hc)if(a.Ic)yield new Promise(b=>{a.ia.push(b)});else{a.Ic=!0;(yield Il(a.j)).forEach(b=>{a.D.set(b.name,new Set(b.j))});a.N.next(gl(a));yield nl(a);a.Ha.od(Pf(a.F));for(const b of a.ia)b();a.Hc=!0;a.ia=[]}})}executeQuery(a){const b=this;return u(function*(){yield b.init();return sl(b,a.T())&&li(a).some(c=>c instanceof olympe.dc.query.na.Qd)?Jl(b.j,a).then(olympe.U.stream.Xs):
906
- b.j.executeQuery(a).then(olympe.U.stream.Xs)})}applyTransaction(a,b){const c=this;return u(function*(){c.G.debug('Cache: apply transaction',a,b);yield c.init();const d=a.ac(),e=Array.from(d.Cb.keys());let f,g;const h=Array.from(null!=(g=null==(f=c.H)?void 0:f.j.Cb.keys())?g:[]);let k;b!==(null==(k=c.H)?void 0:k.D)||e.some(l=>!h.includes(l))?(yield Kl(c.j,d,b),c.H=new olympe.dc.sources.cache.ju(d,b),c.ba.next(!0)):(d.rc(c.H.j),yield Kl(c.j,c.H.j,b));d.rc(c.F);yield jl(c.j,d,'local-transaction')})}uploadFileContent(a,
906
+ b.j.executeQuery(a).then(olympe.U.stream.Xs)})}applyTransaction(a,b){const c=this;return u(function*(){c.G.debug('Cache: apply transaction',a,b);yield c.init();const d=a.Yb(),e=Array.from(d.Cb.keys());let f,g;const h=Array.from(null!=(g=null==(f=c.H)?void 0:f.j.Cb.keys())?g:[]);let k;b!==(null==(k=c.H)?void 0:k.D)||e.some(l=>!h.includes(l))?(yield Kl(c.j,d,b),c.H=new olympe.dc.sources.cache.ju(d,b),c.ba.next(!0)):(d.rc(c.H.j),yield Kl(c.j,c.H.j,b));d.rc(c.F);yield jl(c.j,d,'local-transaction')})}uploadFileContent(a,
907
907
  b,c){const d=this;return u(function*(){yield d.init();yield rl(d.j,a,b,c);return`offline://${a}`})}downloadFileContent(a){const b=this;return u(function*(){yield b.init();return xl(b.j,a).then(c=>c.content)})}deleteFileContent(a){const b=this;return u(function*(){yield b.init();yield Ll(b.j,[a])})}};olympe.dc.sources.cache.ju=class{constructor(a,b){this.j=a;this.D=b}};olympe.dc.sources.cache.Cache.D='__code-as-data-version__';olympe.dc.sources.cache.Cache.j='__code-as-data__';function Il(a){return u(function*(){return(yield a.db.F('buckets')).map(b=>olympe.dc.sources.cache.kr.Qb(b))})}function ol(a){return u(function*(){return(yield a.db.F('pending-transactions')).map(b=>{b=olympe.dc.sources.cache.Vh.Qb(b);return el(b.j)})})}function hl(a,b,c){return u(function*(){a.G.debug(`Offline DB: Adding query ${b} in bucket ${c}`);return a.db.D()})}function il(a){return u(function*(){return a.db.D()})}
908
908
  function jl(a,b,c){a.G.debug(`Offline DB: Apply patch ${b.T()} on local offline db`);Array.from(b.Cb.keys());return a.db.D().then(()=>{null===c&&(b.Cb.forEach((d,e)=>a.D.add(e)),a.F().then(()=>{}))})}function ql(a,b){return new Promise((c,d)=>{null!==a.files?c(a.files.has(b)):a.j.push(e=>{let f;return e?d(e):c(!(null==(f=a.files)||!f.has(b)))})})}
909
909
  function rl(a,b,c,d){c=new olympe.dc.sources.cache.Tm(b,c,d);a.files.add(b);return a.db.set('files',c.toJSON()).then(()=>{}).catch(e=>{a.files.delete(b);throw e;})}function ul(a,b){return u(function*(){return a.db.remove('buckets',b).then(()=>{})})}function Al(a){return u(function*(){return(yield a.db.F('pending-transactions')).reduce((b,c)=>{c=olympe.dc.sources.cache.Vh.Qb(c);const d=c.D;let e;const f=null!=(e=b.get(d))?e:[];f.push(el(c.j));b.set(d,f);return b},new Map)})}
910
910
  function Bl(a,b){return u(function*(){return a.db.remove('pending-transactions',b.T()).then(()=>{})})}function xl(a,b){return u(function*(){const c=yield a.db.get('files',b);if(!c)throw Error(`File ${b} not found in offline cache database`);return olympe.dc.sources.cache.Tm.Qb(c)})}function Dl(a){return u(function*(){return a.db.F('pending-transactions')})}
911
911
  function Fl(a,b){return u(function*(){const c=new Map;for(const d of b){const e=olympe.dc.sources.cache.Vh.Qb(d);e&&c.set(e.j.i,d)}yield a.db.ba()})}function Hl(a){return u(function*(){return a.db.clear('pending-transactions').then(()=>{})})}
912
912
  function Jl(a,b){return u(function*(){const c=b.jb();a.G.debug(`Offline DB: Executing query ${b.T()} by ID with source ${c}`);const d=olympe.dc.query.Id.yj(b);var e=(yield a.db.H(b.T())).map(f=>olympe.dc.sources.cache.Qg.Qb(f));for(const f of e){if(f.source!==c)continue;e=olympe.dc.sources.cache.Ck.Xb(f);const g=Ml(f.Nd);d.create(f.tag,e,g);for(const h of f.pb)if(e=h.match(/^([a-z0-9]*)(<|>)([a-z0-9]*)$/)){const [,k,l,n]=e;e='<'===l;k===olympe.dc.fc.ad&&!0===e||d.Oa(k,e?n:f.tag,e?f.tag:n)}}a.G.j()&&
913
- a.G.debug(`Offline DB: Data result for query ${b.T()}`,d.ac().Cb.size,'instances',Array.from(d.ac().Ld()).length,'relations');return d})}function Kl(a,b,c){b=a.N.fa(b);a.G.debug(`save transaction in destination '${c}'`,JSON.stringify(b));return a.db.set('pending-transactions',(new olympe.dc.sources.cache.Vh(c,b,Date.now())).toJSON())}function Nl(a){return u(function*(){return a.db.N('pending-transactions')})}function Ll(a,b){return u(function*(){b.forEach(c=>a.files.delete(c));yield a.db.Z()})}
913
+ a.G.debug(`Offline DB: Data result for query ${b.T()}`,d.Yb().Cb.size,'instances',Array.from(d.Yb().Ld()).length,'relations');return d})}function Kl(a,b,c){b=a.N.fa(b);a.G.debug(`save transaction in destination '${c}'`,JSON.stringify(b));return a.db.set('pending-transactions',(new olympe.dc.sources.cache.Vh(c,b,Date.now())).toJSON())}function Nl(a){return u(function*(){return a.db.N('pending-transactions')})}function Ll(a,b){return u(function*(){b.forEach(c=>a.files.delete(c));yield a.db.Z()})}
914
914
  function Ml(a){return Object.entries(a).reduce((b,[c,d])=>b.set(c,el(d)),new Map)}
915
915
  olympe.dc.sources.cache.Ck=class{constructor(a,b,c){this.H=`Olympe_Cache_${a}`;this.G=b;this.N=new olympe.dc.sources.cache.iq;this.db=c.D(this.H);this.D=new Set;this.j=[];this.files=null;this.db.R('files').then(d=>{this.files=new Set(d);this.j.forEach(e=>e(null))}).catch(d=>{this.j.forEach(e=>e(d))});this.F=olympe.U.Promise.vj(()=>{const d=this;return u(function*(){if(!(0===d.D.size||0<(yield Nl(d))))if(0<d.db.X())d.F().then(()=>{}),d.G.debug('Offline DB GC: Postponing round while the stack is busy');
916
916
  else{d.G.debug(`Offline DB GC: Round with ${d.D.size} candidates`);var e=Date.now();yield d.db.D().then(()=>{});d.G.debug(`Offline DB GC: has taken ${Date.now()-e}ms to run`)}})},5E3)}static Xb(a){const b=new RegExp(`^(${olympe.dc.fc.ad})>([a-z0-9]*)$`);for(const c of a.pb)if(a=c.match(b))return a[2];return null}executeQuery(a){const b=this;return u(function*(){const c=Date.now();b.G.debug(`Offline DB: Executing query ${a.T()} with source ${a.jb()}`);const d=olympe.dc.query.Id.yj(a),e=a.jb();var f=
917
- yield b.db.get('instances',a.D),g=olympe.dc.sources.cache.Qg.Qb(f);if(!g)return d;f=new Map;const h=new Set([g.tag]);d.create(g.tag,olympe.dc.sources.cache.Ck.Xb(g),Ml(g.Nd));for(const p of li(a))if(p instanceof olympe.dc.query.na.Zh){var k=p.relation;g=k.La()===olympe.dc.va.ORIGIN;const q=k.W(),r=k.$b();k=new Set;f.set(p.T(),k);const t=[f.has(p.j)?new Set(f.get(p.j)):new Set([a.D])];for(const v of t){const x=new Map;var l=yield Promise.all(Array.from(v).map(y=>{if(!h.has(y))return b.G.warn(`Offline DB: Instance ${y} not found while processing query part, this should not happen`),
917
+ yield b.db.get('instances',a.D),g=olympe.dc.sources.cache.Qg.Qb(f);if(!g)return d;f=new Map;const h=new Set([g.tag]);d.create(g.tag,olympe.dc.sources.cache.Ck.Xb(g),Ml(g.Nd));for(const p of li(a))if(p instanceof olympe.dc.query.na.Zh){var k=p.relation;g=k.La()===olympe.dc.va.ORIGIN;const q=k.W(),r=k.ac();k=new Set;f.set(p.T(),k);const t=[f.has(p.j)?new Set(f.get(p.j)):new Set([a.D])];for(const v of t){const x=new Map;var l=yield Promise.all(Array.from(v).map(y=>{if(!h.has(y))return b.G.warn(`Offline DB: Instance ${y} not found while processing query part, this should not happen`),
918
918
  Promise.resolve([]);r.W();return b.db.H().then(z=>z.map(A=>olympe.dc.sources.cache.Qg.Qb(A))).then(z=>{x.set(y,z)})})).then(()=>x);for(const [y,z]of l){p instanceof olympe.dc.query.na.Ee&&p.F&&k.add(y);for(const A of z)if(l=A.tag,A.source===e){if(p instanceof olympe.dc.query.na.Ee&&!k.has(l)){var n=t[t.length-1];n||(n=new Set,t.push(n));n.add(l)}k.add(l);h.has(l)||(h.add(l),n=olympe.dc.sources.cache.Ck.Xb(A),d.create(l,n,Ml(A.Nd)));q===olympe.dc.fc.ad&&!0===g||d.Oa(q,g?l:y,g?y:l)}}}}else p instanceof
919
- olympe.dc.query.na.Qd&&b.G.warn(`Offline DB: Trying to execute a query ${a.T()} on the Cache DB that contains a FollowRule part. This is not supported and designed not to happen.`);b.G.j()&&(b.G.debug(`Offline DB: Data result for query ${a.T()}`,d.ac().Cb.size,'instances',Array.from(d.ac().Ld()).length,'relations'),b.G.debug(`Offline DB: Data result for query ${a.T()} took ${Date.now()-c}ms to be executed`));return d})}};
919
+ olympe.dc.query.na.Qd&&b.G.warn(`Offline DB: Trying to execute a query ${a.T()} on the Cache DB that contains a FollowRule part. This is not supported and designed not to happen.`);b.G.j()&&(b.G.debug(`Offline DB: Data result for query ${a.T()}`,d.Yb().Cb.size,'instances',Array.from(d.Yb().Ld()).length,'relations'),b.G.debug(`Offline DB: Data result for query ${a.T()} took ${Date.now()-c}ms to be executed`));return d})}};
920
920
  olympe.dc.sources.cache.kr=class{constructor(a,b){this.name=a;this.j=b}static Qb(a){return a?new olympe.dc.sources.cache.kr(a.name,a.queryIds):null}toJSON(){return{name:this.name,queryIds:this.j}}};
921
921
  olympe.dc.sources.cache.Qg=class{constructor(a,b,c,d,e){this.tag=a;this.source=b;this.Nd=null!=c?c:{};this.pb=null!=d?d:[];this.j=null!=e?e:[]}static Qb(a){return a?new olympe.dc.sources.cache.Qg(a.tag,a.source,a.props,a.relations,a.queryIds):null}toJSON(){return{tag:this.tag,source:this.source,props:this.Nd,relations:this.pb,queryIds:this.j}}};
922
922
  olympe.dc.sources.cache.Vh=class{constructor(a,b,c){this.D=a;this.j=b;this.timestamp=c}static Qb(a){return a?new olympe.dc.sources.cache.Vh(a.destination,a.patch,a.timestamp):null}toJSON(){return{destination:this.D,patch:this.j,timestamp:this.timestamp}}};
@@ -925,7 +925,7 @@ olympe.dc.sources.cache.Tm=class{constructor(a,b,c){this.tag=a;this.content=b;th
925
925
  olympe.dc.sources.cache.Ou=class{constructor(a,b){this.G=a;this.F=b;this.j=new Map;this.R=new Set;this.X=new Set;this.H=new olympe.dc.sources.cache.iq;this.N=new Map}Xc(){this.R.forEach(a=>this.j.delete(a));Array.from(this.j.entries()).forEach(([a,b])=>{b||this.j.delete(a)});return this.j}Uc(a,b,c){const d=this.j.get(a);d||this.X.add(a);var e;c=Array.from(null!=c?c:[]).reduce((h,k)=>{h[k[0]]=this.H.fa(k[1]);return h},null!=(e=null==d?void 0:d.Nd)?e:{});let f;e=null!=(f=null==d?void 0:d.j)?f:[];null===
926
926
  this.F||e.includes(this.F)||e.push(this.F);let g;b=new olympe.dc.sources.cache.Qg(a,b,c,null!=(g=null==d?void 0:d.pb)?g:[],e);this.j.set(a,b)}$c(a,b){const c=this.j.get(a);if(c){var d;c.Nd=Array.from(b).reduce((e,[f,g])=>{null===g?delete e[f]:e[f]=this.H.fa(g);return e},null!=(d=c.Nd)?d:{})}else this.G.warn(`Trying to update an instance (${a}) which do not exists in the cache database: ignoring.`)}D(a){this.R.add(a)}Oa(a,b,c){var d;const e=null!=(d=this.j.get(b))?d:new olympe.dc.sources.cache.Qg(b,
927
927
  'unknown',{},[],[]);var f;d=null!=(f=this.j.get(c))?f:new olympe.dc.sources.cache.Qg(c,'unknown',{},[],[]);b=`${a}${olympe.dc.va.ORIGIN}${b}`;f=(g,h)=>{this.j.set(g.tag,g);const k=Ol(this,g.tag);k.has(h)||(g.pb.push(h),k.add(h));null===this.F||g.j.includes(this.F)||g.j.push(this.F)};f(e,`${a}${olympe.dc.va.DESTINATION}${c}`);f(d,b)}hc(a,b,c){const d=this.j.get(b),e=this.j.get(c);c=`${a}${olympe.dc.va.DESTINATION}${c}`;a=`${a}${olympe.dc.va.ORIGIN}${b}`;b=(f,g)=>{const h=Ol(this,f.tag);if(h.has(g)){const k=
928
- f.pb.indexOf(g);f.pb.splice(k,1);h.delete(g)}};d&&b(d,c);e&&b(e,a)}};olympe.dc.sources.cache.Ou.ya=[olympe.dc.Writable];olympe.dc.transaction={};olympe.dc.Ii=class a{constructor(b,c){this.id=null!=b?b:olympe.U.Mc();this.D=new olympe.C.Yb('BurstTransaction#'+this.id,c);this.wb=Pl(this);this.R=!1;this.D.onDestroy(()=>this.N());this.X=new Set;this.F=new Map;this.H=new Set;this.j=null;let d;this.Ua=null!=(d=olympe.V.getParameter(olympe.dc.transaction.Config.Fo))?d:30;this.ia=[]}static j(b,c){return`${b},${c}`}Vb(b){for(const c of this.ia)c(b);this.stop()}Ha(){null!==this.j&&(clearTimeout(this.j),this.j=null);const b=this.ba(this.H);0<b.size&&
928
+ f.pb.indexOf(g);f.pb.splice(k,1);h.delete(g)}};d&&b(d,c);e&&b(e,a)}};olympe.dc.sources.cache.Ou.ya=[olympe.dc.Writable];olympe.dc.transaction={};olympe.dc.Ii=class a{constructor(b,c){this.id=null!=b?b:olympe.U.Mc();this.D=new olympe.C.Zb('BurstTransaction#'+this.id,c);this.wb=Pl(this);this.R=!1;this.D.onDestroy(()=>this.N());this.X=new Set;this.F=new Map;this.H=new Set;this.j=null;let d;this.Ua=null!=(d=olympe.V.getParameter(olympe.dc.transaction.Config.Fo))?d:30;this.ia=[]}static j(b,c){return`${b},${c}`}Vb(b){for(const c of this.ia)c(b);this.stop()}Ha(){null!==this.j&&(clearTimeout(this.j),this.j=null);const b=this.ba(this.H);0<b.size&&
929
929
  Ql(this,b,!1);this.H.clear()}ba(b){const c=new Map;b.forEach(d=>{const e=d.split(',');let f=c.get(e[0]);void 0===f&&(f=new Map,c.set(e[0],f));f.set(e[1],this.F.get(d))});return c}Z(b,c,d){this.wa(b,c,d);this.wb(b,c,d);null===this.j&&(this.j=setTimeout(this.Ha.bind(this),this.Ua))}wa(b,c,d){b=a.j(b,c);this.F.set(b,d);this.H.add(b)}lb(b,c){return this.F.get(a.j(b,c))}push(b,c){const d=olympe.dc.ea(b);b=c.subscribe(e=>{for(const [f,g]of e)e=olympe.dc.ea(f),this.lb(d,e)!==g&&this.Z(d,e,g.valueOf())});
930
930
  this.X.add(b)}complete(){return new Promise((b,c)=>{this.N((d,e)=>{for(const f of this.X)f.unsubscribe();d?b():c(e)})})}update(b,c,d){const e=olympe.dc.ea(b),f=olympe.dc.ea(c);void 0===e||void 0===f?olympe.ha.Wa('dc').error('Burst transaction: instance tag or property tag is undefined'):(this.D.run(()=>{olympe.C.eo([d],g=>{this.R=!0;if(g instanceof olympe.dc.wc)olympe.ha.Wa('dc').error('Cannot send complex property values in burst transactions');else{var h;this.Z(e,f,null!=(h=null==g?void 0:g.valueOf())?
931
931
  h:null)}})}),this.D.Yd(()=>{this.N()}))}stop(){this.D.destroy();this.ia.length=0}getContext(){return this.D}T(){return this.id}wh(){return!1}N(b){if(this.R){this.R=!1;null!==this.j&&(clearTimeout(this.j),this.j=null);this.H.clear();const c=this.ba(new Set(this.F.keys()));Ql(this,c,!0,b)}else null==b||b(!0)}toString(){return'Burst transaction #'+this.id}};olympe.dc.Ii.prototype.complete=olympe.dc.Ii.prototype.complete;olympe.dc.Ii.prototype.push=olympe.dc.Ii.prototype.push;olympe.dc.Sc=class{j(){}toString(){}};olympe.dc.Sc.j=1;olympe.dc.Sc.D=2;olympe.dc.Sc.H=3;olympe.dc.Sc.F=4;olympe.dc.Sc.N=5;olympe.dc.transaction.dj=class a{constructor(b){this.F=null!=b?b:olympe.dc.Ia.SERVER}static j(b){const c=new Map;for(const [d,e]of Object.entries(b)){b=d;let f=typeof e;20<b.length&&b.startsWith('fd')&&(b=olympe.dc.je.Ye+b.substring(2));'object'===f&&(f=e&&e.c?String(e.c):'untyped');switch(f){case '1':case '2':case '3':throw Error('Complex format for primitive types not supported.');case 'string':case 'boolean':case 'number':c.set(b,e);break;case '4':c.set(b,new Date(Date.UTC(e.y,e.M-1,e.d,e.h,e.m,
@@ -959,7 +959,7 @@ new olympe.dc.db.ec);return Sg(a.j,n)})}function lm(a,b,c,d){const e=olympe.C.nh
959
959
  function mm(a,b,c,d,e){if(c&&olympe.C.Qa(a.ba.state)!==olympe.auth.Ta.j.tf)return Promise.reject('Cannot persist with batch transactions API if not authenticated (aka: `Transaction.executeAsLarge()`).');const f=c?olympe.dc.Request.j.fh:olympe.dc.Request.j.ef;return Promise.all(Array.from(b).map(([g,h])=>{g=new olympe.dc.Request(f,g,new olympe.dc.transaction.mj(h,d,e));return a.Jb.request(g)})).then(g=>g[0])}
960
960
  function im(a,b,c,d){let e,f;null==(f=null==(e=a.F.get(b))?void 0:e.pop())||f(c,null!=d?d:null)}function nm(a,b){var c;null==(c=a.F.get(b))||c.forEach(d=>{d(olympe.dc.transaction.Kf.j.$i,null)});a.F.delete(b);if(0===a.F.size){for(const d of a.X)d();a.X=[]}a.D.has(b)&&(c=a.D.get(b),a.D.delete(b),c(!0))}
961
961
  olympe.dc.transaction.Kf=class{constructor(a,b,c,d,e,f,g){this.G=a;this.j=b;this.db=b.view;this.Jb=c;this.ia=d;this.N=e;this.ba=f;this.R=g.get('notificationTimeout');this.Z=[];let h;this.wa=new Set(null!=(h=g.get('disabledCompilers'))?h:[]);this.H=new olympe.U.bi(g.get('burstHoldTime'));this.F=new Map;this.X=[];this.D=new Map;this.Ha=new olympe.U.promise.Xk;hm(this)}ue(a){vb(this.Ha,()=>this.Jb.request(new olympe.dc.Request(olympe.dc.Request.j.Tp,olympe.dc.Ia.SERVER)).then(b=>{a(b.ids,b.undo_stack_size,
962
- b.redo_stack_size)}).catch(b=>this.G.error('Failed to process get stack request',b))).then(()=>{})}};olympe.dc.transaction.Kf.j={Lm:0,$i:1,Tv:2};olympe.dc.transaction.mj=class{constructor(a,b=!1,c=!1){this.D=a;this.F=b;this.j=c}wh(){return this.F}ac(){return this.D}};olympe.dc.transaction.P={Ca:'dc.transaction.Logger',Ea:'dc.transaction.Manager'};olympe.dc.transaction.Config={Rq:'dc.transaction.timeout',Fo:'dc.transaction.burstInterval',om:'dc.transaction.disabledCompilers'};
962
+ b.redo_stack_size)}).catch(b=>this.G.error('Failed to process get stack request',b))).then(()=>{})}};olympe.dc.transaction.Kf.j={Lm:0,$i:1,Tv:2};olympe.dc.transaction.mj=class{constructor(a,b=!1,c=!1){this.D=a;this.F=b;this.j=c}wh(){return this.F}Yb(){return this.D}};olympe.dc.transaction.P={Ca:'dc.transaction.Logger',Ea:'dc.transaction.Manager'};olympe.dc.transaction.Config={Rq:'dc.transaction.timeout',Fo:'dc.transaction.burstInterval',om:'dc.transaction.disabledCompilers'};
963
963
  olympe.V.config(function(a){E(a,olympe.dc.transaction.Config.Rq,9E4);E(a,olympe.dc.transaction.Config.Fo,30);E(a,olympe.dc.transaction.Config.om,[]);D(a,olympe.dc.transaction.P.Ca,[olympe.ha.P.Ea],b=>b.dd('dc'));D(a,'olympe.dc.transaction.Config',[new olympe.V.ma(olympe.dc.transaction.Config.Rq),new olympe.V.ma(olympe.dc.transaction.Config.om),new olympe.V.ma(olympe.dc.db.Config.am)],(b,c,d)=>new Map([['notificationTimeout',b],['disabledCompilers',c],['burstHoldTime',d]]));C(a,olympe.dc.transaction.P.Ea,
964
964
  olympe.dc.transaction.Kf,olympe.dc.transaction.P.Ca,olympe.dc.db.P.Ea,olympe.dc.P.Wg,olympe.dc.sources.P.bf,olympe.dc.P.jk,olympe.auth.P.Ea,'olympe.dc.transaction.Config')},'olympe.dc.transaction');olympe.dc.transaction.Ga={};function om(a,b){const c=new Map;for(const [d,e]of b)c.set(d,a.Qa(e));return c}olympe.dc.transaction.Ga.Dg=class{constructor(){this.ga=olympe.dc.ga()}j(){throw Error('Abstract method build() not override !');}toString(){throw Error('Abstract method toString() not override !');}Qa(a){a=olympe.C.Qa(a);return void 0===a||null===a?null:olympe.C.pt(a)?a.valueOf():a}};olympe.dc.transaction.Ga.Dg.ya=[olympe.dc.Sc];olympe.dc.transaction.Ga.zo=class extends olympe.dc.transaction.Ga.Dg{constructor(a,b){super();this.relation=a instanceof olympe.dc.Ra.Relation?a:new olympe.dc.Ra.Relation(olympe.dc.ea(a));this.origin=this.ga.Ja(b)?olympe.dc.CloudObject.get(b):b}getType(){return this.relation.W()}La(){return this.relation.La()}j(){throw Error('Abstract method build() not override !');}toString(){throw Error('Abstract method toString() not override !');}};function Y(a,b,c){a.Nd.set(olympe.dc.ea(b),c);return a}olympe.dc.transaction.Ga.hp=class extends olympe.dc.transaction.Ga.Dg{constructor(a,b){super();let c;this.tag=null!=(c=b&&olympe.dc.ea(b))?c:olympe.U.jf();this.model=olympe.dc.ea(a);this.source=null;this.Nd=new Map}W(){return this.tag}Xb(){return this.model}Ai(a){this.source=a;return this}j(a){const b=this.Xb(),c=this.W();if(!b)throw Error('OperationError: Cannot create instance, model tag is undefined');a.Uc(c,b,this.source,om(this,this.Nd))}toString(){return`CreateInstance(${this.Xb()}, ${this.W()})`}};
965
965
  olympe.dc.transaction.Ga.hp.ya=[olympe.dc.Ze];olympe.dc.transaction.Ga.gm=class extends olympe.dc.transaction.Ga.zo{constructor(a,b,c){super(a,b);this.D=this.ga.Ja(c)?olympe.dc.CloudObject.get(c):c}j(a){const b=this.getType();if(''===b)throw Error('OperationError: Cannot create relation, type is undefined, null or empty string');if(b===olympe.dc.fc.ad)throw Error('OperationError: Cannot create the instance -> model relation');if(!this.origin)throw Error('OperationError: Cannot create relation, origin tag is undefined, null or empty string');
@@ -968,7 +968,7 @@ a.hc(b,c,f):a.hc(b,f,c)}toString(){return`DeleteAllRelations(${this.La()}${this.
968
968
  this.relation.La()===olympe.dc.va.DESTINATION?a.hc(b,c,d):a.hc(b,d,c)}toString(){return'DeleteRelation('+this.relation.La()+this.relation.W()+', '+olympe.dc.ea(this.origin)+', '+olympe.dc.ea(this.D)+')'}};olympe.dc.transaction.Ga.lx=class extends olympe.dc.transaction.Ga.Dg{constructor(a,b,c){super();this.tag=this.ga.Ja(a)?olympe.dc.CloudObject.get(a):a;this.Nd=new Map;void 0!==b&&this.Nd.set(olympe.dc.ea(b),c)}W(){return olympe.dc.ea(this.tag)}j(a){const b=this.W();if(void 0===b)throw Error('OperationError: Cannot update instance, tag is undefined');var c;if(!(null!=(c=a.j.Wc(b))&&c.D()||this.ga.Ja(b)))throw Error('OperationError: Instance #'+b+' not found so it cannot be updated');c=om(this,this.Nd);
969
969
  for(const [e,f]of c){var d=this.ga.Pa(b,e,!0);d instanceof olympe.dc.wc&&Yl(a,d.W(),olympe.dc.Lb.Ec);f instanceof olympe.dc.wc&&!Tl(a,f.W())&&(d=new olympe.dc.Ya,d.persist(f.W()),d.j(a))}a.$c(b,c)}toString(){return'UpdateInstance('+this.W()+', '+om(this,this.Nd)+')'}};olympe.dc.transaction.Ga.kw=class a extends olympe.dc.transaction.Ga.Dg{constructor(b,c){super();this.tag=b;this.source=c}j(b){const c=olympe.dc.ga();if(Tl(b,this.tag)&&c.Ja(this.tag)&&!c.Se(this.tag)){const e=c.Ab(this.tag,!0);var d;let f;null==(f=null==(d=b.j.Wc(this.tag))?void 0:d.Ab())||f.forEach((g,h)=>{e.set(h,g)});for(const g of e.values())g instanceof olympe.dc.wc&&c.Ja(g.W())&&(new a(g.W(),this.source)).j(b);d=c.model(this.tag);b.Uc(this.tag,d,this.source,e);for(const [g,h,k]of vh(c,this.tag))Tl(b,
970
970
  k)&&(h===olympe.dc.va.ORIGIN?b.Oa(g,k,this.tag):b.Oa(g,this.tag,k))}}toString(){return`PersistOperation: tag - ${this.tag}, src - ${this.source}`}};olympe.dc.ea=function(a){let b=null;if('string'===typeof a)return a;if('function'===typeof(null==a?void 0:a.W)&&(null==a||!a.hh))b=a.W();else if('function'===typeof a){let d;b=null!=(d=olympe.dc.oa.Xb(a))?d:''}else if(olympe.C.qf(a)){let d;b=olympe.dc.ea(null==(d=olympe.C.Qa(a))?void 0:d.valueOf())}let c;return null!=(c=b)?c:''};w('olympe.dc.instanceToTag',olympe.dc.ea);olympe.dc.ga=function(){return olympe.dc.Ys().view};olympe.dc.register=function(a,b){olympe.dc.oa.j(a,b)};
971
- olympe.dc.defineProperty=function(a){return new olympe.dc.Ra.Property(a)};olympe.dc.Rs=function(a,b=olympe.dc.va.DESTINATION,c=olympe.dc.CloudObject,d=olympe.dc.va.DESTINATION){const e=olympe.dc.va.DESTINATION;return b===olympe.dc.va.ORIGIN||b===e?new olympe.dc.Ra.Relation(a,b):new olympe.dc.Ra.Relation(a,d,b,c)};olympe.dc.Tx=function(a){return a.$b()};olympe.dc.ib={};olympe.dc.ib.Fn=a=>'string'===typeof a||'number'===typeof a||'boolean'===typeof a||a instanceof String?olympe.C.yb(a):a instanceof olympe.C.Sa?a:null;olympe.dc.ib.Cn=a=>'boolean'===typeof a||a instanceof Boolean?olympe.C.Sb(a):a instanceof olympe.C.da?a:null;olympe.dc.ib.En=a=>'number'===typeof a||a instanceof Number?olympe.C.sa(a):'string'===typeof a||a instanceof String?olympe.C.sa(Number.parseFloat(a.valueOf())):a instanceof olympe.C.$?a:null;
971
+ olympe.dc.defineProperty=function(a){return new olympe.dc.Ra.Property(a)};olympe.dc.Rs=function(a,b=olympe.dc.va.DESTINATION,c=olympe.dc.CloudObject,d=olympe.dc.va.DESTINATION){const e=olympe.dc.va.DESTINATION;return b===olympe.dc.va.ORIGIN||b===e?new olympe.dc.Ra.Relation(a,b):new olympe.dc.Ra.Relation(a,d,b,c)};olympe.dc.Tx=function(a){return a.ac()};olympe.dc.ib={};olympe.dc.ib.Fn=a=>'string'===typeof a||'number'===typeof a||'boolean'===typeof a||a instanceof String?olympe.C.yb(a):a instanceof olympe.C.Sa?a:null;olympe.dc.ib.Cn=a=>'boolean'===typeof a||a instanceof Boolean?olympe.C.Sb(a):a instanceof olympe.C.da?a:null;olympe.dc.ib.En=a=>'number'===typeof a||a instanceof Number?olympe.C.sa(a):'string'===typeof a||a instanceof String?olympe.C.sa(Number.parseFloat(a.valueOf())):a instanceof olympe.C.$?a:null;
972
972
  olympe.dc.ib.Dn=a=>'number'===typeof a||a instanceof Number?nc(a.valueOf()):'string'===typeof a||a instanceof String?new olympe.C.eb(new Date(a.valueOf().valueOf())):a instanceof Date?new olympe.C.eb(a):a instanceof olympe.C.eb?a:null;olympe.dc.ib.Ms=function(a){return a instanceof olympe.C.Color?a:'string'===typeof a||a instanceof String?rc(a.valueOf()):null};olympe.dc.ib.Ns=a=>a instanceof olympe.dc.CloudObject?a:a instanceof olympe.dc.wc?olympe.dc.CloudObject.get(a.tag):null;
973
973
  olympe.dc.ib.uj=a=>a instanceof olympe.dc.wc?olympe.dc.CloudObject.get(a.tag):a;olympe.dc.ib.uc=a=>{a=a instanceof olympe.dc.wc?olympe.dc.CloudObject.get(a.tag):a;let b;return null!=(b=a instanceof olympe.dc.CloudObject?a.uc():a)?b:null};
974
974
  olympe.dc.ib.py=a=>{switch(a){case olympe.C.da:return olympe.dc.ib.Cn;case olympe.C.Sa:return olympe.dc.ib.Fn;case olympe.C.$:return olympe.dc.ib.En;case olympe.C.eb:return olympe.dc.ib.Dn;case olympe.C.Color:return olympe.dc.ib.Ms;case olympe.dc.CloudObject:return olympe.dc.ib.Ns;default:return olympe.dc.ib.uj}};olympe.dc.kc={};olympe.dc.yf=class{ka(){}F(){}compare(){}H(){}fa(){}toString(){}};function pm(a){let b=null;for(a=[...a.aa];null===b&&0<a.length;)b=a.pop().Mb();return b}function qm(a,b){a.N()||(a=`Calling "${b}" on subscription with id ${a.T()} while it is not ready (thus no data is available).`+'This call should be made within an onReady callback. You can also consider to use Queries API instead of ListDefs (which are deprecated)',olympe.ha.Wa('dc').warn(a))}
@@ -997,9 +997,9 @@ function zm(a,b,c,d,e){const f=[b.ce()],g=l=>l instanceof olympe.dc.aa.Mf;let h;
997
997
  function Am(a,b,c,d,e){a.G.debug('CoverageProcessor: [ID:',c,'] - checking coverage of remote query over',b.length,'paths.');const f=olympe.C.Za(),g=new olympe.async.Hk(f);b.forEach(h=>{g.add((k,l)=>{let n=!1;Ei(a.H,h,f,olympe.dc.Ia.SELF,olympe.dc.la.oc.xf,{Cc:e}).subscribe(rxjs.Subscriber.create(()=>{n||(n=!0,f.run(k))},p=>f.run(()=>l(`The query ${c} is not covered by an existing graphdef, `+`and the specific graphdef id ${h.T()} has encountered an error: ${p}`))))})});qd(g,(h,k)=>d(k));g.start()}
998
998
  function xm(a,b,c){const d=new olympe.dc.lc.Wj;let e=!1;const f=olympe.C.Za(),g=b.sh(),h=[];h[g?g.length:0]=(k,l,n,p)=>{f.kd()||f.fb()||(k?b.uh(n)?a.G.warn('Adding the same index twice (should never happen) for sub #',b.T(),', index #',n,', tag #',l):(a.G.debug('ListProcessor: [ID:',b.T(),'] - Adding Instance',l,'to the subscription'),b.Dd(n,l)):(a.G.debug('ListProcessor: [ID:',b.T(),'] - Removing Instance',l,'from the subscription'),b.Rf(n)),e||(Bm(c,()=>{p.rg();ym(c)}),f.run(()=>p.te().Ag(b.Ic.bind(b))),
999
999
  e=!0),Cm(c,n))};if(null!==g)for(let k=g.length-1;0<=k;k--)h[k]=g[k].j(f,c,h[k+1]);return(k,l)=>{const n=b.T();c.register(n,null);const p=d.j(k,l,n,null);if(null!==p)h[0](k,l,n,Dm(p,k,l,n))}}
1000
- olympe.dc.kc.Jv=class{constructor(a,b,c,d,e,f){this.G=a;this.db=b;this.D=f||e;this.H=d;this.j=new Map;this.F=new olympe.C.Yb('Legacy ListDef processor')}process(a,b){const c=a.T();var d=this.j.get(c);d||(d=new olympe.dc.kc.Qw(a),this.j.set(c,d));d.counter++;Em(d)?this.G.debug('ListProcessor: [ID:',c,'] - id already processed'):(this.G.debug('ListProcessor: [ID:',c,'] - NOT processed yet.'),d=a.ff(),b||this.D&&d===olympe.dc.Ia.SERVER||d===olympe.dc.Ia.SELF?(this.G.debug('QueryMGR: [ID:',c,'] - Local subscription, no need for coverage check, booting subscription '),
1000
+ olympe.dc.kc.Jv=class{constructor(a,b,c,d,e,f){this.G=a;this.db=b;this.D=f||e;this.H=d;this.j=new Map;this.F=new olympe.C.Zb('Legacy ListDef processor')}process(a,b){const c=a.T();var d=this.j.get(c);d||(d=new olympe.dc.kc.Qw(a),this.j.set(c,d));d.counter++;Em(d)?this.G.debug('ListProcessor: [ID:',c,'] - id already processed'):(this.G.debug('ListProcessor: [ID:',c,'] - NOT processed yet.'),d=a.ff(),b||this.D&&d===olympe.dc.Ia.SERVER||d===olympe.dc.Ia.SELF?(this.G.debug('QueryMGR: [ID:',c,'] - Local subscription, no need for coverage check, booting subscription '),
1001
1001
  wm(this,a)):zm(this,a,d,e=>{e?this.G.error(e):wm(this,a)},b))}};function Fm(a){return olympe.C.gb(a)?'Node#'+a.Ba.T():String(a)}function Gm(a,b){return olympe.C.gb(b)?'{"c":"Parameter","v":"'+a.add(b)+'"}':JSON.stringify(b)}
1002
- olympe.dc.query.iw=class{constructor(){this.j=0;this.values=null}add(a){let b;b=olympe.C.gb(a)?'n'+a.Ba.T():'p'+ ++this.j;null===this.values&&(this.values={});this.values[b]=a;return b}get(a){return this.values[a]}clear(){const a=this.values;if(null!==a)for(let b=Object.keys(a),c=b.length,d=0;d<c;d++)delete a[b[d]]}forEach(a){const b=this.values;if(null!==b)for(let c=Object.keys(b),d=c.length,e=0;e<d;e++)a(b[c[e]],c[e])}};olympe.dc.za=class{ka(){}j(){}D(){}fa(){}toString(){}};olympe.dc.kc.Subscription=class a extends olympe.C.Uj{constructor(b,c,d,e){super(olympe.dc.CloudObject,new olympe.C.Yb('context subscription '+b,e));this.id=b;this.jd=c;this.aa=d||null;this.state=this.H.run(()=>olympe.C.ge(olympe.dc.kc.Subscription.j.INIT));this.Hc=!1;this.X=this.Vb=null}static F(b,c,d){let e;try{e=b;if(c)for(let f=0,g=c.length;f<g;f++)e+='|'+c[f].fa(d);else e+='|null';e=olympe.U.sb(e)}catch(f){e=olympe.U.Mc()}return e}T(){return this.id}ce(){return this.jd}sh(){return this.aa}ff(){const b=
1002
+ olympe.dc.query.iw=class{constructor(){this.j=0;this.values=null}add(a){let b;b=olympe.C.gb(a)?'n'+a.Ba.T():'p'+ ++this.j;null===this.values&&(this.values={});this.values[b]=a;return b}get(a){return this.values[a]}clear(){const a=this.values;if(null!==a)for(let b=Object.keys(a),c=b.length,d=0;d<c;d++)delete a[b[d]]}forEach(a){const b=this.values;if(null!==b)for(let c=Object.keys(b),d=c.length,e=0;e<d;e++)a(b[c[e]],c[e])}};olympe.dc.za=class{ka(){}j(){}D(){}fa(){}toString(){}};olympe.dc.kc.Subscription=class a extends olympe.C.Uj{constructor(b,c,d,e){super(olympe.dc.CloudObject,new olympe.C.Zb('context subscription '+b,e));this.id=b;this.jd=c;this.aa=d||null;this.state=this.H.run(()=>olympe.C.ge(olympe.dc.kc.Subscription.j.INIT));this.Hc=!1;this.X=this.Vb=null}static F(b,c,d){let e;try{e=b;if(c)for(let f=0,g=c.length;f<g;f++)e+='|'+c[f].fa(d);else e+='|null';e=olympe.U.sb(e)}catch(f){e=olympe.U.Mc()}return e}T(){return this.id}ce(){return this.jd}sh(){return this.aa}ff(){const b=
1003
1003
  olympe.dc.fe(),c=olympe.C.Qa(this.ce());let d;return olympe.dc.CloudObject.instancesRel.Fa(null==(d=this.aa)?void 0:d[0])?b.fromModel(c):b.re(c)}Qf(){const b=olympe.C.Qa(this.state);return b&&b.valueOf()>=olympe.dc.kc.Subscription.j.gs}ih(){if(this.state.Ba.fb())throw Error(`Cannot set destroyed subscription '${this.id}' as subscribed`);const b=this.Vb;this.Vb=null;for(let c in b)if(Object.prototype.hasOwnProperty.call(b,c))b[c](this);kc(this.state,olympe.C.ge(olympe.dc.kc.Subscription.j.gs))}xd(){return olympe.C.ua([this.state],
1004
1004
  ()=>{},olympe.C.da)}N(){const b=this.state.Ba.Fb;return b&&b.valueOf()>=olympe.dc.kc.Subscription.j.Yh}ld(b,c){this.N()?b(this):(null===this.X&&(this.X=new Map),void 0===c&&(c=olympe.U.Mc()),this.X.set(c,olympe.C.Za().tc(b)));return c||''}Cl(b){null!==this.X&&b&&this.X.delete(b)}wb(){const b=olympe.dc.kc.Subscription.j.Yh;if(!this.state.Ba.fb()&&olympe.C.Qa(this.state)!==b&&(this.Of(),kc(this.state,b),null!==this.X)){for(const c of this.X.values())c(this);this.X=null}}onDestroy(b){this.H.onDestroy(b)}release(){this.H.destroy()}Ic(b){if(!this.state.Ba.fb()){for(let c=
1005
1005
  0,d=b.length;c<d;c++)this.vn(b[c],c);if(this.N())this.Of();else{this.Hc=b=!0;for(let c in this.D)if(Object.prototype.hasOwnProperty.call(this.D,c)&&!Object.prototype.hasOwnProperty.call(this.values,c)){b=!1;break}b&&this.wb()}}}Dd(b,c){if(!this.state.Ba.fb()&&(this.fl(b,olympe.dc.CloudObject.get(c)),b=this.N(),this.Hc&&!b)){b=!0;for(let d in this.D)if(Object.prototype.hasOwnProperty.call(this.D,d)&&!Object.prototype.hasOwnProperty.call(this.values,d)){b=!1;break}b&&this.wb()}}Rf(b){this.state.Ba.fb()||
@@ -1043,7 +1043,7 @@ this.ka()+'","a":['+Gm(a,this.start)+','+Gm(a,this.D)+']}'}toString(){return`Lim
1043
1043
  olympe.dc.aa.xk=class{constructor(a,b){this.direction=b||olympe.dc.va.DESTINATION;this.pb=a.map(c=>new olympe.dc.Ra.Relation(c,this.direction))}Mb(){return olympe.dc.CloudObject}ka(){return R(olympe.dc.aa.xk)}La(){return this.direction}j(a,b,c){const d=olympe.dc.ga(),e=(f,g,h,k)=>U(d,f,k,(l,n)=>{var p=k.W();p=olympe.U.sb(g+k.La()+p+n,20);const q=Dm(h,l,n,p);l&&b.register(p,g,f,k.W(),k.La());c(l,n,p,q)},g);return(f,g,h,k)=>{f?this.pb.forEach(l=>{$m(b,h,g,l.W(),l.La());e(g,h,k,l)}):this.pb.forEach(l=>
1044
1044
  {d.D(g,l,h)})}}fa(){return'{"c":"'+this.ka()+'","a":['+JSON.stringify(jn(this))+',"'+this.direction+'"]}'}toString(){return'MultiRelated('+this.La()+'['+jn(this).join(',')+'])'}};Q('olympe.dc.transformers.MultiRelated',olympe.dc.aa.xk);olympe.dc.aa.xk.ya=[olympe.dc.Lf];olympe.dc.aa.Me=class extends olympe.dc.Ra.Relation{constructor(a,b=olympe.dc.va.DESTINATION,c=1,d=-1){super(a,b);this.F=c;this.D=d}Mb(){return jg(this)}ka(){return R(olympe.dc.aa.Me)}j(a,b,c){const d=olympe.dc.ga(),e=Object.create(null),f=olympe.dc.va.ORIGIN,g=olympe.dc.va.DESTINATION,h=this.W(),k=this.La(),l=(p,q,r)=>{if(!(0<=this.D&&p>=this.D)){var t=d.cb(r,this);p+=1;for(let v=0,x=t.length;v<x;v++){if(void 0!==e[t[v]]||r===t[v])continue;const y=olympe.U.sb(q+k+(h+'_'+p)+t[v],20);b.register(y,
1045
1045
  q,r,h,k||g);null===k&&b.register(y,q,r,h,f)}}},n=(p,q,r,t,v,x)=>{v&&!b.D&&l(p,t,x);p>=this.F?c(v,x,t,Dm(r,v,x,t)):$m(b,t,x,h,k);0<=this.D&&p>=this.D||(v?e[x]||(e[x]=!0,U(d,x,this,(y,z)=>{const A=p+1,K=olympe.U.sb(t+k+(h+'_'+A)+z,20);n(A,x,r,K,y,z)},t)):(d.D(x,this,t),delete e[x]))};return(p,q,r,t)=>n(0,null,t,r,p,q)}fa(){return'{"c":"'+this.ka()+'","a":["'+this.W()+'","'+this.La()+'",'+this.F+','+this.D+']}'}toString(){return'RecursiveRelated('+this.La()+this.W()+'['+this.F+'..'+this.D+'])'}};
1046
- Q('olympe.dc.transformers.RecursiveRelated',olympe.dc.aa.Me);olympe.dc.aa.Me.ya=[olympe.dc.Lf];olympe.dc.aa.af=class extends olympe.dc.Ra.Relation{constructor(a,b){super(a,b||olympe.dc.va.DESTINATION)}Mb(){return jg(this)}ka(){return R(olympe.dc.aa.af)}$b(){return new olympe.dc.aa.af(this.tag,this.direction===olympe.dc.va.DESTINATION?olympe.dc.va.ORIGIN:olympe.dc.va.DESTINATION)}j(a,b,c){const d=olympe.dc.ga(),e=this.W(),f=this.La();return(g,h,k,l)=>{$m(b,k,h,e,f);g?U(d,h,this,(n,p)=>{const q=olympe.U.sb(k+f+e+p,20),r=Dm(l,n,p,q);n&&b.register(q,k,h,e,f);c(n,p,q,r)},k):d.D(h,this,k)}}fa(){return'{"c":"'+
1046
+ Q('olympe.dc.transformers.RecursiveRelated',olympe.dc.aa.Me);olympe.dc.aa.Me.ya=[olympe.dc.Lf];olympe.dc.aa.af=class extends olympe.dc.Ra.Relation{constructor(a,b){super(a,b||olympe.dc.va.DESTINATION)}Mb(){return jg(this)}ka(){return R(olympe.dc.aa.af)}ac(){return new olympe.dc.aa.af(this.tag,this.direction===olympe.dc.va.DESTINATION?olympe.dc.va.ORIGIN:olympe.dc.va.DESTINATION)}j(a,b,c){const d=olympe.dc.ga(),e=this.W(),f=this.La();return(g,h,k,l)=>{$m(b,k,h,e,f);g?U(d,h,this,(n,p)=>{const q=olympe.U.sb(k+f+e+p,20),r=Dm(l,n,p,q);n&&b.register(q,k,h,e,f);c(n,p,q,r)},k):d.D(h,this,k)}}fa(){return'{"c":"'+
1047
1047
  this.ka()+'","a":["'+this.W()+'","'+this.La()+'"]}'}toString(){return'Related('+this.La()+this.W()+')'}};Q('olympe.dc.transformers.Related',olympe.dc.aa.af);olympe.dc.aa.af.ya=[olympe.dc.Lf];olympe.dc.aa.dh=class{constructor(a,b){this.Hb=a;this.D=void 0===b?!0:!!b}Mb(){return null}ka(){return R(olympe.dc.aa.dh)}mh(){return this.Hb}F(){return[this.Hb.H()]}j(a,b,c){const d=new olympe.dc.lc.ls(a.tc(this.D?this.Hb.compare.bind(this.Hb):(e,f)=>this.Hb.compare(f,e)));return(e,f,g)=>{var h=e?this.Hb.F(a,f):void 0;h=d.j(e,f,g,h);c(e,f,g,h)}}fa(a){return'{"c":"'+this.ka()+'","a":['+this.Hb.fa(a)+','+JSON.stringify(this.D)+']}'}toString(){return'Sort('+this.Hb.toString()+','+JSON.stringify(this.D)+
1048
1048
  ')'}};Q('olympe.dc.transformers.Sort',olympe.dc.aa.dh);olympe.dc.aa.dh.ya=[olympe.dc.Lf,olympe.dc.yr];function kn(a,b,c,d,e,f){function g(n,p){if(l)for(var q=l.length-1;0<=q;q--)f=l[q].j(b,e,f);e.register(h,null);q=d.j(n,p,c,null);f(n,p,h,Dm(q,n,p,h))}const h=olympe.U.Mc(),k=olympe.dc.ga(),l=a.aa;b.run(()=>olympe.C.Yc([a.D],n=>{ln(k,n,g,h);void 0===k.model(n)&&ym(e)}))}function ln(a,b,c,d){const e=b&&b.valueOf();e&&(Qf(a,e,c,d),olympe.C.Za().Yd(()=>Of(a,e,d)))}
1049
1049
  olympe.dc.aa.Mf=class{constructor(a,b){this.aa=this.D=null;a instanceof olympe.dc.Aa?(this.D=a.ce(),this.aa=a.Dm()):(this.D=a,b&&(this.aa=b))}Mb(){return null}ka(){return R(olympe.dc.aa.Mf)||''}sh(){return this.aa}ce(){return this.D}j(a,b,c){const d=new olympe.dc.lc.Jm,e=new olympe.dc.lc.Wj;let f=[],g=[],h=!1,k=!1;const l=bn(b),n=bn(b);en(b,()=>{const p=f.concat(g);0<p.length?b.D||(b.j.j=p[p.length-1]):fn(b);Rm(d,p,0,p.length,c)});an(b,n);kn(this,a,this.D,e,b,(p,q,r,t)=>{const v=olympe.C.Za();v.kd()||
@@ -1075,10 +1075,10 @@ olympe.V.run([olympe.dc.db.P.Ea,olympe.dc.transaction.P.Ea,olympe.dc.P.rq,olympe
1075
1075
  olympe.dm.Vd.D=gg('014831d95f83635090ea','ADMIN_USERS_ROLE');olympe.dm.Vd.prototype.ka.K=olympe.C.J.D;olympe.dm.Vd.prototype.j.K=olympe.C.J.D;olympe.dm.Vd.prototype.D.K=olympe.C.J.N;olympe.dm.Ol={NONE:0,iB:1,pu:2,jB:4,fB:8,hB:16,gB:31,GC:32,DC:64,HC:128,EC:256,$v:512,FC:992,XB:1023};olympe.dm.User=class extends olympe.dc.CloudObject{Iy(){return this.Sn()}ka(){return this.Sn()}Sn(){return this.xb(olympe.dm.User.loginProp)}mv(){return this.xb(olympe.dm.User.D)}lv(){return olympe.C.Sa.EMPTY}cz(){return this.xb(olympe.dm.User.saltProp)}lz(){return this.xb(olympe.dm.User.verifierProp)}az(){return this.cb(olympe.dm.User.F,olympe.dm.Vd)}};olympe.dm.User.O=olympe.dc.oa.j('ff021000000000000003',olympe.dm.User);olympe.dm.User.loginProp=olympe.dm.User.O.ja('ff023000000000000001');
1076
1076
  w('olympe.dm.User.loginProp',olympe.dm.User.loginProp);olympe.dm.User.D=olympe.dm.User.O.ja('ff023000000000000002');olympe.dm.User.R=olympe.dm.User.O.ja('ff023000000000000003');olympe.dm.User.saltProp=olympe.dm.User.O.ja('ff023000000000000004');w('olympe.dm.User.saltProp',olympe.dm.User.saltProp);olympe.dm.User.verifierProp=olympe.dm.User.O.ja('ff023000000000000005');w('olympe.dm.User.verifierProp',olympe.dm.User.verifierProp);olympe.dm.User.N=olympe.dm.User.O.ja('ff023000000000000020');
1077
1077
  olympe.dm.User.SAMLnameIdProp=olympe.dm.User.O.ja('ff023000000000000036');w('olympe.dm.User.SAMLnameIdProp',olympe.dm.User.SAMLnameIdProp);olympe.dm.User.F=S(olympe.dm.User.O,olympe.dm.Vd.j);olympe.dm.User.X=olympe.dm.User.O.ta('ff022000000000000002');olympe.dm.User.j=gg('014831d95fd7d12b8568','ADMIN_USER');olympe.dm.User.H=gg('0163d9653067b6237f62','GUEST_USER');m=olympe.dm.User.prototype;m.Iy.K=olympe.C.J.D;m.ka.K=olympe.C.J.D;m.Sn.K=olympe.C.J.D;m.mv.K=olympe.C.J.D;m.lv.K=olympe.C.J.D;m.cz.K=olympe.C.J.D;
1078
- m.lz.K=olympe.C.J.D;m.az.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.dm.hg=class extends olympe.dc.CloudObject{Z(){return this.On()}Ha(){return this.xb(olympe.dm.hg.wa)}};olympe.dm.hg.O=olympe.dc.oa.j('01621fb84e3300000000',olympe.dm.hg);olympe.dm.hg.wa=olympe.dm.hg.O.ja('01609de3f292e3c2c6ff');olympe.dm.hg.prototype.Z.K=new olympe.C.J(()=>olympe.C.wd,[]);olympe.dm.hg.prototype.Ha.K=olympe.C.J.D;olympe.dm.BrickMetadata=class extends olympe.dm.hg{mz(){return this.xb(olympe.dm.BrickMetadata.Hc)}Lc(){return this.xb(olympe.dm.BrickMetadata.ba)}getType(){return this.xb(olympe.dm.BrickMetadata.Vb)}xz(){return this.ph(olympe.dm.BrickMetadata.wb)}xe(){return null}sy(){return this.cb(olympe.sc.ui.Nx.Comment.ZE.$b(),olympe.sc.ui.Nx.Comment)}ql(){return this.wg(olympe.dm.BrickMetadata.Ha).Dc().ql()}};olympe.dm.BrickMetadata.O=lg(olympe.dc.oa.j('01621fb84e3500000000',olympe.dm.BrickMetadata));
1078
+ m.lz.K=olympe.C.J.D;m.az.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.dm.hg=class extends olympe.dc.CloudObject{Z(){return this.On()}Ha(){return this.xb(olympe.dm.hg.wa)}};olympe.dm.hg.O=olympe.dc.oa.j('01621fb84e3300000000',olympe.dm.hg);olympe.dm.hg.wa=olympe.dm.hg.O.ja('01609de3f292e3c2c6ff');olympe.dm.hg.prototype.Z.K=new olympe.C.J(()=>olympe.C.wd,[]);olympe.dm.hg.prototype.Ha.K=olympe.C.J.D;olympe.dm.BrickMetadata=class extends olympe.dm.hg{mz(){return this.xb(olympe.dm.BrickMetadata.Hc)}Lc(){return this.xb(olympe.dm.BrickMetadata.ba)}getType(){return this.xb(olympe.dm.BrickMetadata.Vb)}xz(){return this.ph(olympe.dm.BrickMetadata.wb)}xe(){return null}sy(){return this.cb(olympe.sc.ui.Nx.Comment.ZE.ac(),olympe.sc.ui.Nx.Comment)}ql(){return this.wg(olympe.dm.BrickMetadata.Ha).Dc().ql()}};olympe.dm.BrickMetadata.O=lg(olympe.dc.oa.j('01621fb84e3500000000',olympe.dm.BrickMetadata));
1079
1079
  olympe.dm.BrickMetadata.Hc=olympe.dm.BrickMetadata.O.ja('01621fb84e320000f001');olympe.dm.BrickMetadata.ba=olympe.dm.BrickMetadata.O.ja('01703376c4a81c0e9d94');olympe.dm.BrickMetadata.Vb=olympe.dm.BrickMetadata.O.ja('01703376c4a81c0e9d00');olympe.dm.BrickMetadata.wb=olympe.dm.BrickMetadata.O.ja('01703376c4a81c0eaea5');olympe.dm.BrickMetadata.Ha=olympe.dm.BrickMetadata.O.ta('0161ae97622bb21f335b');olympe.dm.BrickMetadata.me={PC:'private',RC:'public'};
1080
1080
  olympe.dm.BrickMetadata.Ub={qB:'experimental',gD:'stable',dB:'deprecated'};olympe.dm.BrickMetadata.Dd={QA:'business',CD:'technical'};m=olympe.dm.BrickMetadata.prototype;m.mz.K=olympe.C.J.D;m.Lc.K=olympe.C.J.D;m.getType.K=olympe.C.J.D;m.xz.K=olympe.C.J.N;m.xe.K=new olympe.C.J(()=>String,[]);m.sy.K=new olympe.C.J(()=>olympe.dc.Aa,[]);m.ql.K=olympe.C.J.R;function xj(a,b){b=b.startsWith('data.')?b.substring(5):b;let c,d;return null!=(d=null!=(c=olympe.V.getParameter(`${'data.'}${a}.${b}`))?c:olympe.V.getParameter(`${'data.'}${b}`))?d:olympe.V.getParameter(`${olympe.dc.sources.Oh.fw}${b}`)}
1081
- function Rj(a,b){const c=a.query().bb(olympe.dm.Ed.j.$b()).bb(olympe.dm.Ed.D);a=a.query().bb(olympe.dm.hb.D.$b()).vg(olympe.dm.hb.F,!0).bb(olympe.sc.Bc.j.$b());const d=e=>e.oe().vg(olympe.dc.CloudObject.extendRel,!0).bb(olympe.dc.CloudObject.Mj,!0).bb(olympe.dm.Relation.destinationModelRel).back(2).bb(olympe.dc.CloudObject.propertyRel,!0).bb(olympe.dm.Property.typeRel).observe(b);return rxjs.combineLatest([d(c),d(a)]).pipe(rxjs.operators.map(([e,...f])=>e.concat(...f)))}
1081
+ function Rj(a,b){const c=a.query().bb(olympe.dm.Ed.j.ac()).bb(olympe.dm.Ed.D);a=a.query().bb(olympe.dm.hb.D.ac()).vg(olympe.dm.hb.F,!0).bb(olympe.sc.Bc.j.ac());const d=e=>e.oe().vg(olympe.dc.CloudObject.extendRel,!0).bb(olympe.dc.CloudObject.Mj,!0).bb(olympe.dm.Relation.destinationModelRel).back(2).bb(olympe.dc.CloudObject.propertyRel,!0).bb(olympe.dm.Property.typeRel).observe(b);return rxjs.combineLatest([d(c),d(a)]).pipe(rxjs.operators.map(([e,...f])=>e.concat(...f)))}
1082
1082
  function rk(a,b){return a.observe(b,olympe.dm.DataSource.Os).pipe(rxjs.operators.map(()=>a.Sf(olympe.dc.sources.Config.We)),rxjs.operators.distinctUntilChanged())}
1083
1083
  olympe.dm.DataSource=class extends olympe.dc.CloudObject{constructor(a,b,c){super(a,b);this.Jb=c;this.Qs=new Map([[olympe.dc.sources.Config.Wm,olympe.dm.DataSource.dA],[olympe.dc.sources.Config.We,olympe.dm.DataSource.Os],[olympe.dc.sources.Config.dn,olympe.dm.DataSource.kA]])}gt(){return this.name().toLowerCase().replace(/\W/g,'_')}T(){return this.tag===olympe.dm.DataSource.SERVER?olympe.dc.Ia.SERVER:this.tag}Sf(a){const b=a.startsWith('data.')?a.split('.')[1]:a,c=`${'data.'}${b}`;let d,e;return null!=
1084
1084
  (e=null!=(d=olympe.V.getParameter(`${'data.'}${this.gt()}.${b}`))?d:xj(this.W(),a))?e:this.Qs.has(c)?this.get(this.Qs.get(c)):null}Lc(){const a=this;return u(function*(){const b=olympe.dm.DataSource.pc.su,c=olympe.dm.DataSource.pc.Bb,d=new olympe.dc.Request(olympe.dc.Request.j.pc,a.T());return a.Jb.request(d).then(e=>{let f;const g=null!=(f=null==e?void 0:e.s)?f:c;(e=null==e?void 0:e.r)&&olympe.ha.Wa('dc').warn(`Source ${a.name()} (${a.T()}) has encountered issues: ${e}`);return g}).catch(e=>e instanceof
@@ -1098,7 +1098,7 @@ null==d||d(a);return Promise.reject(Error(a))}rename(a,b){const c=b&&olympe.C.Za
1098
1098
  olympe.dm.File.prototype.saveAs=olympe.dm.File.prototype.Dt;olympe.dm.File.prototype.getContentUrl=olympe.dm.File.prototype.ml;olympe.dm.File.prototype.getContentAsString=olympe.dm.File.prototype.Nn;olympe.dm.File.prototype.getContentAsBinary=olympe.dm.File.prototype.ll;olympe.dm.File.O=olympe.dc.oa.j('ff021000000000000030',olympe.dm.File,olympe.dc.P.jk,olympe.net.P.Ea,olympe.U.P.Eg);olympe.dm.File.nameProp=olympe.dm.File.O.ja('ff023000000000000050');w('olympe.dm.File.nameProp',olympe.dm.File.nameProp);
1099
1099
  olympe.dm.File.fileNameProp=olympe.dm.File.O.ja('ff023000000000000050');w('olympe.dm.File.fileNameProp',olympe.dm.File.fileNameProp);olympe.dm.File.creationDateProp=olympe.dm.File.O.ja('ff023000000000000051');w('olympe.dm.File.creationDateProp',olympe.dm.File.creationDateProp);olympe.dm.File.modificationDateProp=olympe.dm.File.O.ja('ff023000000000000055');w('olympe.dm.File.modificationDateProp',olympe.dm.File.modificationDateProp);olympe.dm.File.mimeTypeProp=olympe.dm.File.O.ja('ff023000000000000052');
1100
1100
  w('olympe.dm.File.mimeTypeProp',olympe.dm.File.mimeTypeProp);olympe.dm.File.urlProp=olympe.dm.File.O.ja('ff023000000000000053');w('olympe.dm.File.urlProp',olympe.dm.File.urlProp);olympe.dm.File.j=olympe.dm.File.O.ja('ff023000000000000054');olympe.dm.File.O.j=olympe.dm.File.D.bind(null,olympe.dm.File);olympe.dm.File.N='application/data';olympe.dm.File.ya=[olympe.C.File];m=olympe.dm.File.prototype;m.ht.K=olympe.C.J.D;m.ll.K=olympe.C.J.j;m.Nn.K=olympe.C.J.j;m.ml.K=olympe.C.J.j;m.rename.K=olympe.C.J.j;
1101
- m.Bq.K=olympe.C.J.D;m.Aq.K=olympe.C.J.D;m.xy.K=new olympe.C.J(()=>olympe.C.eb,[]);m.Ry.K=new olympe.C.J(()=>olympe.C.eb,[]);m.wz.K=olympe.C.J.N;olympe.dm.Rd=class extends olympe.dc.CloudObject{j(){return this.xb(olympe.dm.Rd.D)}F(){return this.Ad(olympe.dm.Rd.F)}D(){return this.cb(olympe.dm.Rd.j,olympe.dm.Module)}};olympe.dm.Rd.O=olympe.dc.oa.j('ff021000000000000041',olympe.dm.Rd);olympe.dm.Rd.D=olympe.dm.Rd.O.ja('ff023000000000000047');olympe.dm.Rd.F=olympe.dm.Rd.O.ja('ff023000000000000048');olympe.dm.Rd.j=olympe.dm.Module.j.$b();olympe.dm.Rd.prototype.j.K=olympe.C.J.D;olympe.dm.Rd.prototype.F.K=olympe.C.J.F;
1101
+ m.Bq.K=olympe.C.J.D;m.Aq.K=olympe.C.J.D;m.xy.K=new olympe.C.J(()=>olympe.C.eb,[]);m.Ry.K=new olympe.C.J(()=>olympe.C.eb,[]);m.wz.K=olympe.C.J.N;olympe.dm.Rd=class extends olympe.dc.CloudObject{j(){return this.xb(olympe.dm.Rd.D)}F(){return this.Ad(olympe.dm.Rd.F)}D(){return this.cb(olympe.dm.Rd.j,olympe.dm.Module)}};olympe.dm.Rd.O=olympe.dc.oa.j('ff021000000000000041',olympe.dm.Rd);olympe.dm.Rd.D=olympe.dm.Rd.O.ja('ff023000000000000047');olympe.dm.Rd.F=olympe.dm.Rd.O.ja('ff023000000000000048');olympe.dm.Rd.j=olympe.dm.Module.j.ac();olympe.dm.Rd.prototype.j.K=olympe.C.J.D;olympe.dm.Rd.prototype.F.K=olympe.C.J.F;
1102
1102
  olympe.dm.Rd.prototype.D.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.dm.hb=class extends olympe.dm.Tc{j(){return this.cb(olympe.dm.Kb.j,olympe.dm.Kb)}F(){return this.xb(olympe.dm.hb.X)}R(){return this.xb(olympe.dm.hb.lb)}D(){return this.cb(olympe.dm.hb.F,olympe.dm.hb)}};olympe.dm.hb.O=olympe.dc.oa.j('0163d9594700fcf61e54',olympe.dm.hb);olympe.dm.hb.X=olympe.dm.hb.O.ja('017869c7d2833c9492c1');olympe.dm.hb.zl=olympe.dm.hb.O.ja('017869c7d2833c9492c2');olympe.dm.hb.Re=olympe.dm.hb.O.ja('017869c7d2833c9492c3');olympe.dm.hb.lb=olympe.dm.hb.O.ja('017869c80bb9929c76d0');
1103
1103
  olympe.dm.hb.Ua=olympe.dm.hb.O.ta('ff02200000000000002a');olympe.dm.hb.F=olympe.dm.hb.O.ta('ff02200000000000002b');olympe.dm.hb.Qf=S(olympe.dm.hb.O,olympe.dm.hb.F);olympe.dm.hb.D=olympe.dm.hb.O.ta('ff02200000000000002c');olympe.dm.hb.Rf=olympe.dm.hb.O.ta('017e9c412e2b944bc48f');olympe.dm.hb.ff=olympe.dm.hb.O.ta('017e9c412e2b944bd590');olympe.dm.hb.wl=olympe.dm.hb.O.ta('017e9c416872a89d3415');olympe.dm.hb.ul=olympe.dm.hb.O.ta('017ebf8fe5c506662098');S(olympe.dc.CloudObject.O,olympe.dm.hb.Ua);
1104
1104
  olympe.dm.hb.xd=gg('100000000000000000dd','PRIMORDIAL');olympe.dm.hb.prototype.j.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.dm.hb.prototype.F.K=olympe.C.J.D;olympe.dm.hb.prototype.R.K=olympe.C.J.D;olympe.dm.hb.prototype.D.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.dm.Property=class extends olympe.dc.CloudObject{j(){return this.Vc(olympe.dm.Property.definingModelRel,olympe.dc.CloudObject)}getType(){return this.Vc(olympe.dm.Property.typeRel,olympe.dc.CloudObject)}D(){return this.wg(olympe.dm.Property.typeRel).Dc()}Zc(){return this.j().ka().Ps(this.ka())}};olympe.dm.Property.O=olympe.dc.oa.j('ff021000000000000005',olympe.dm.Property);olympe.dm.Property.definingModelRel=S(olympe.dm.Property.O,olympe.dc.CloudObject.propertyRel);
@@ -1109,9 +1109,9 @@ olympe.dm.Relation.H={CC:3,Yv:4,nC:5,mC:6};olympe.dm.Relation.N=olympe.dm.Ol.$v+
1109
1109
  olympe.dm.Ke.O=olympe.dc.oa.j('ff021000000000000019',olympe.dm.Ke);olympe.dm.String=class extends olympe.dm.Ke{getValue(){return this.xb(olympe.dm.String.valueProp)}uc(){return this.get(olympe.dm.String.valueProp)}toString(){let a;return null!=(a=this.get(olympe.dm.String.valueProp))?a:''}};olympe.dm.String.O=olympe.dc.oa.j('ff021000000000000011',olympe.dm.String);olympe.dm.String.valueProp=olympe.dm.String.O.ja('ff023000000000000026');w('olympe.dm.String.valueProp',olympe.dm.String.valueProp);olympe.dm.String.prototype.getValue.K=olympe.C.J.D;
1110
1110
  olympe.dm.String.prototype.toString.K=olympe.C.J.j;olympe.dm.Boolean=class extends olympe.dm.Ke{getValue(){return this.ph(olympe.dm.Boolean.valueProp)}uc(){return this.get(olympe.dm.Boolean.valueProp)}};olympe.dm.Boolean.O=olympe.dc.oa.j('ff021000000000000012',olympe.dm.Boolean);olympe.dm.Boolean.valueProp=olympe.dm.Boolean.O.ja('ff023000000000000027');w('olympe.dm.Boolean.valueProp',olympe.dm.Boolean.valueProp);olympe.dm.Boolean.prototype.getValue.K=olympe.C.J.N;olympe.dm.Color=class extends olympe.dm.Ke{getValue(){return this.kt()}uc(){return this.get(olympe.dm.Color.valueProp)}};olympe.dm.Color.O=olympe.dc.oa.j('ff021000000000000017',olympe.dm.Color);olympe.dm.Color.valueProp=olympe.dm.Color.O.ja('ff023000000000000032');w('olympe.dm.Color.valueProp',olympe.dm.Color.valueProp);olympe.dm.Color.prototype.getValue.K=new olympe.C.J(()=>olympe.C.Color,[]);olympe.dm.DateTime=class extends olympe.dm.Ke{getValue(){return this.Ej(olympe.dm.DateTime.valueProp)}uc(){return this.get(olympe.dm.DateTime.valueProp)}};olympe.dm.DateTime.O=olympe.dc.oa.j('ff021000000000000014',olympe.dm.DateTime);olympe.dm.DateTime.valueProp=olympe.dm.DateTime.O.ja('ff023000000000000029');w('olympe.dm.DateTime.valueProp',olympe.dm.DateTime.valueProp);olympe.dm.DateTime.prototype.getValue.K=new olympe.C.J(()=>olympe.C.eb,[]);olympe.dm.Enum=class extends olympe.dm.String{ka(){return olympe.C.ua([super.ka(),super.getValue()],(a,b)=>''!==a.valueOf()?a:b,olympe.C.Sa)}Kd(){return this.Ad(olympe.dm.Enum.rankProp)}};olympe.dm.Enum.O=olympe.dc.oa.j('016cdd861b32d56c81f7',olympe.dm.Enum);olympe.dm.Enum.rankProp=olympe.dm.Enum.O.ja('017a7690c915975ea995');olympe.dm.Enum.prototype.Kd.K=olympe.C.J.F;olympe.dm.ig=class extends olympe.dm.BrickMetadata{kz(){return this.bb(olympe.dc.CloudObject.instancesRel).Il(olympe.dm.Enum.rankProp,olympe.dc.query.Fk.ASC).Dc()}static create(a,b){b=a.create(olympe.dm.ig,(new Map).set(olympe.dc.CloudObject.nameProp,b));a.Oa(olympe.dc.CloudObject.extendRel,b,olympe.dm.Enum);return b}};olympe.dm.ig.create=olympe.dm.ig.create;olympe.dm.ig.prototype.getValues=olympe.dm.ig.prototype.kz;olympe.dm.ig.O=olympe.dc.oa.j('017a768f966fc08ebb98',olympe.dm.ig);olympe.dm.Number=class extends olympe.dm.Ke{getValue(){return this.Ad(olympe.dm.Number.valueProp)}uc(){return this.get(olympe.dm.Number.valueProp)}};olympe.dm.Number.O=olympe.dc.oa.j('ff021000000000000013',olympe.dm.Number);olympe.dm.Number.valueProp=olympe.dm.Number.O.ja('ff023000000000000028');w('olympe.dm.Number.valueProp',olympe.dm.Number.valueProp);olympe.dm.Number.prototype.getValue.K=olympe.C.J.F;olympe.sc={};olympe.sc.P={Ca:'sc.Logger',Ok:'sc.RootContext',Ne:'sc.Serializer'};olympe.sc.Config={ie:'sc.app',dg:'sc.debug',uo:'sc.autostartProfiler',np:'sc.debugger',qu:'sc.disableTheme',PRODUCTION:'sc.production',Zv:'sc.onstartTimeout',Gr:'sc.remoteActionTimeout'};
1111
1111
  olympe.V.config(a=>{E(a,olympe.sc.Config.ie,'');E(a,olympe.sc.Config.dg,!1);E(a,olympe.sc.Config.qu,!0);E(a,olympe.sc.Config.PRODUCTION,!1);E(a,olympe.sc.Config.Zv,2E4);E(a,olympe.sc.Config.Gr,3E4);E(a,olympe.sc.Config.uo,!1);D(a,olympe.sc.P.Ca,[olympe.ha.P.Ea],b=>b.dd('sc'));C(a,olympe.sc.P.Ne,olympe.sc.cc,olympe.dc.db.P.Ea);Wa(a,olympe.dc.sources.P.Ne,olympe.sc.P.Ne);D(a,olympe.sc.P.Ok,[new olympe.V.ma(olympe.sc.Config.PRODUCTION)],b=>{const c=new olympe.sc.Gg('root','root',null);olympe.sc.fo=c;
1112
- c.set(olympe.sc.xa.j.PRODUCTION,b);return new olympe.sc.xa(c)})},'olympe.sc');olympe.V.run([olympe.sc.P.Ok,new olympe.V.ma(olympe.L.Config.$l)],(a,b)=>{olympe.ee().ctx=a;olympe.ee().oVersion=()=>b});olympe.sc.Zn=()=>null!==olympe.dc.ga().Ib(void 0,olympe.sc.Runnable.j.$b());olympe.sc.$E=(a,b,c,d)=>{c=Y(Y(a.create(olympe.sc.hd),olympe.sc.hd.j,c||null),olympe.sc.hd.F,d||null);a.Oa(olympe.sc.hd.D,c,b);a.Oa(olympe.dc.CloudObject.containsRel,b,c);return c.W()};olympe.sc.uj=(a,b)=>{a=olympe.dc.ib.py(b)(a);return a instanceof olympe.sc.Ud?a.j():a};
1113
- olympe.sc.rF=function(a){const b=olympe.dc.CloudObject.containsRel.$b();var c=olympe.dc.ea(a);if(void 0===c)return[];a=olympe.dc.ga();const d=[];let e=[];const f=new Set;for(;!a.Nb(c,olympe.dm.Kb);){f.add(c);const g=a.Ib(c,b);if(null===g)return olympe.ha.Wa('sc').warn(`Object ${c} has no container`),[];a.Nb(c,olympe.sc.logic.qb)||g===a.Ib(c,olympe.sc.Runnable.j.$b())||d.push(c);c=g;if(f.has(c))throw Error(`Instance ${c} (${a.name(c)}) is part of a cyclic contain pattern`);}e.push(c);e=e.concat(a.qh(e[0],
1114
- olympe.dm.Kb.ia));e=e.concat(a.qh(e[e.length-1],olympe.dm.Tc.R.$b()));e=e.concat(a.qh(e[e.length-1],olympe.dm.Tc.N.$b()));return[...d,...e].reverse()};olympe.sc.sF=a=>{a=a&&a.valueOf()||'';return a.startsWith('image/')?olympe.sc.Lg:a.startsWith('video/')?olympe.sc.ei:a.startsWith('font/')||a.startsWith('application/font-woff')?olympe.sc.Rc:olympe.dm.File};
1112
+ c.set(olympe.sc.xa.j.PRODUCTION,b);return new olympe.sc.xa(c)})},'olympe.sc');olympe.V.run([olympe.sc.P.Ok,new olympe.V.ma(olympe.L.Config.$l)],(a,b)=>{olympe.ee().ctx=a;olympe.ee().oVersion=()=>b});olympe.sc.Zn=()=>null!==olympe.dc.ga().Ib(void 0,olympe.sc.Runnable.j.ac());olympe.sc.$E=(a,b,c,d)=>{c=Y(Y(a.create(olympe.sc.hd),olympe.sc.hd.j,c||null),olympe.sc.hd.F,d||null);a.Oa(olympe.sc.hd.D,c,b);a.Oa(olympe.dc.CloudObject.containsRel,b,c);return c.W()};olympe.sc.uj=(a,b)=>{a=olympe.dc.ib.py(b)(a);return a instanceof olympe.sc.Ud?a.j():a};
1113
+ olympe.sc.rF=function(a){const b=olympe.dc.CloudObject.containsRel.ac();var c=olympe.dc.ea(a);if(void 0===c)return[];a=olympe.dc.ga();const d=[];let e=[];const f=new Set;for(;!a.Nb(c,olympe.dm.Kb);){f.add(c);const g=a.Ib(c,b);if(null===g)return olympe.ha.Wa('sc').warn(`Object ${c} has no container`),[];a.Nb(c,olympe.sc.logic.qb)||g===a.Ib(c,olympe.sc.Runnable.j.ac())||d.push(c);c=g;if(f.has(c))throw Error(`Instance ${c} (${a.name(c)}) is part of a cyclic contain pattern`);}e.push(c);e=e.concat(a.qh(e[0],
1114
+ olympe.dm.Kb.ia));e=e.concat(a.qh(e[e.length-1],olympe.dm.Tc.R.ac()));e=e.concat(a.qh(e[e.length-1],olympe.dm.Tc.N.ac()));return[...d,...e].reverse()};olympe.sc.sF=a=>{a=a&&a.valueOf()||'';return a.startsWith('image/')?olympe.sc.Lg:a.startsWith('video/')?olympe.sc.ei:a.startsWith('font/')||a.startsWith('application/font-woff')?olympe.sc.Rc:olympe.dm.File};
1115
1115
  olympe.sc.qF=a=>a instanceof olympe.sc.Lg?'image/*':a instanceof olympe.sc.ei?'video/*':a instanceof olympe.sc.Rc?'font/*,application/font-woff':null;olympe.sc.$a={};function on(a,b){var c=olympe.sc.xa,d=a.state;a=a.Db();b=olympe.dc.ea(b);let e,f=null==(e=d.j)?void 0:e.get(b);if(!f){f=d.mi(a,void 0,b);for(d=f.getParent();d&&d.ia&&!d.id.startsWith('_');)d=d.getParent();let g;null==(g=d)||pn(g,b,f)}return new c(f)}function qn(a,b){let c,d;return(a=null!=(d=null==(c=a.state.j)?void 0:c.get(olympe.dc.ea(b)))?d:null)?new olympe.sc.xa(a):null}function rn(a){let b;return null!=(b=a.Qa(olympe.sc.xa.j.PRODUCTION))?b:!1}
1116
1116
  olympe.sc.xa=class{constructor(a=olympe.sc.fo){this.state=a;this.G=olympe.ha.Wa('sc');this.j=null}T(){return this.state.T()}getParent(){if(null===this.j){const a=this.state.getParent();this.j=null===a?null:new olympe.sc.xa(a)}return this.j}qy(a){const b=olympe.dc.ga();let c=this.getParent();if(!c)return this;const d=e=>{e=e.lf();if('string'!==typeof e)return!1;const f=b.model(e);return f&&b.Pa(f,olympe.sc.Va.Z)||a.modelTag&&!b.Nb(e,a.modelTag)?!1:!0};for(;c&&!d(c);){const e=c.getParent();if(!e)break;
1117
1117
  c=e}return c}lf(){return this.state.lf()}Db(){return this.state.Db()}set(a,b){this.state.set(a,b);return this}oo(a){return this.set(a,Date.now())}remove(a){this.set(a,null)}ub(a,b,c=!1){const d=olympe.dc.ea(a),e=olympe.C.bc(null!=b?b:Object,`Get context value flow source of ${d}`);e.getContext().onDestroy(this.on(a,f=>{null===f?e.clear():e.update(f)},c?this.state.T():void 0));return e.ub()}get(a,b=!1){a=this.Qa(a,b);return void 0!==a?a:null}has(a,b=!1){return this.state.has(a,b)}observe(a,b=!0,c=
@@ -1123,20 +1123,20 @@ a?void 0:a.constructor)!==this.constructor?!1:this.state===a.state}ue(){const a=
1123
1123
  olympe.sc.xa.prototype.getEvent=olympe.sc.xa.prototype.Gy;olympe.sc.xa.prototype.getProperty=olympe.sc.xa.prototype.Pa;olympe.sc.xa.prototype.isDestroyed=olympe.sc.xa.prototype.fb;olympe.sc.xa.prototype.clear=olympe.sc.xa.prototype.clear;olympe.sc.xa.prototype.offDestroy=olympe.sc.xa.prototype.Zf;olympe.sc.xa.prototype.onDestroy=olympe.sc.xa.prototype.onDestroy;olympe.sc.xa.prototype.offClear=olympe.sc.xa.prototype.Bl;olympe.sc.xa.prototype.onClear=olympe.sc.xa.prototype.yh;
1124
1124
  olympe.sc.xa.prototype.destroy=olympe.sc.xa.prototype.destroy;olympe.sc.xa.prototype.getOtherContext=olympe.sc.xa.prototype.Vy;olympe.sc.xa.prototype.onContext=olympe.sc.xa.prototype.Dl;olympe.sc.xa.prototype.createChild=olympe.sc.xa.prototype.mi;olympe.sc.xa.prototype.setParentElement=olympe.sc.xa.prototype.nA;olympe.sc.xa.prototype['throw']=olympe.sc.xa.prototype.throw;olympe.sc.xa.prototype.waitFor=olympe.sc.xa.prototype.Nt;olympe.sc.xa.prototype.runner=olympe.sc.xa.prototype.mA;
1125
1125
  olympe.sc.xa.prototype.repeat=olympe.sc.xa.prototype.repeat;olympe.sc.xa.prototype.observe=olympe.sc.xa.prototype.observe;olympe.sc.xa.prototype.has=olympe.sc.xa.prototype.has;olympe.sc.xa.prototype.get=olympe.sc.xa.prototype.get;olympe.sc.xa.prototype.remove=olympe.sc.xa.prototype.remove;olympe.sc.xa.prototype.trigger=olympe.sc.xa.prototype.oo;olympe.sc.xa.prototype.set=olympe.sc.xa.prototype.set;olympe.sc.xa.prototype.getClosest=olympe.sc.xa.prototype.qy;olympe.sc.xa.prototype.getParent=olympe.sc.xa.prototype.getParent;
1126
- olympe.sc.xa.j={PRODUCTION:'__production',EDITION:'__editionMode',TRANSACTION:'__transaction',REDELIVERED:'__redelivered',Fg:'__htmlContainer',kB:'__dockableElement',ro:'__appHasStarted'};olympe.sc.kx=class extends olympe.sc.xa{constructor(a){super(a);this.D=new olympe.C.Yb('SC Update Context',super.Db());const b=a.yh(()=>{b&&a.Bl(b);this.D.destroy()})}Db(){return this.D}yh(a,b){return this.Db().onDestroy(a,null!=b?b:olympe.U.Mc())}};let xn=0;function sn(a,b){b=olympe.dc.ea(b);let c,d,e,f;return null!=(f=null!=(e=null==(c=a.Z)?void 0:c.get('I#'+b))?e:null==(d=a.Z)?void 0:d.get('IO#'+b))?f:b}function un(a,b){if(null===a.H)a.G.error(`An error occurred in a brick: ${b.toString()}`);else if(a.ba&&olympe.dc.ga().Ja(a.ba)){var c=yn(olympe.dc.CloudObject.get(a.ba));null!==c&&zn(a,c).some(d=>{let e,f;return 0<(null==(e=a.F)?void 0:null==(f=e.get(d))?void 0:f.size)})&&!a.N.has('$'+c)?a.set(c,b):un(a.H,b)}else un(a.H,b)}
1126
+ olympe.sc.xa.j={PRODUCTION:'__production',EDITION:'__editionMode',TRANSACTION:'__transaction',REDELIVERED:'__redelivered',Fg:'__htmlContainer',kB:'__dockableElement',ro:'__appHasStarted'};olympe.sc.kx=class extends olympe.sc.xa{constructor(a){super(a);this.D=new olympe.C.Zb('SC Update Context',super.Db());const b=a.yh(()=>{b&&a.Bl(b);this.D.destroy()})}Db(){return this.D}yh(a,b){return this.Db().onDestroy(a,null!=b?b:olympe.U.Mc())}};let xn=0;function sn(a,b){b=olympe.dc.ea(b);let c,d,e,f;return null!=(f=null!=(e=null==(c=a.Z)?void 0:c.get('I#'+b))?e:null==(d=a.Z)?void 0:d.get('IO#'+b))?f:b}function un(a,b){if(null===a.H)a.G.error(`An error occurred in a brick: ${b.toString()}`);else if(a.ba&&olympe.dc.ga().Ja(a.ba)){var c=yn(olympe.dc.CloudObject.get(a.ba));null!==c&&zn(a,c).some(d=>{let e,f;return 0<(null==(e=a.F)?void 0:null==(f=e.get(d))?void 0:f.size)})&&!a.N.has('$'+c)?a.set(c,b):un(a.H,b)}else un(a.H,b)}
1127
1127
  function vn(a,b){if(b===a.id||a.R.has(b)||!b)return a;for(a=a.H;a;){if(b===a.T()||a.R.has(b))return a;const c=An(a.j,b);if(c)return c;a=a.getParent()}return null}function Bn(a,b,c=0){null===a.$a&&(a.$a=new Map);a.$a.has(b.T())||(a.$a.set(b.T(),{El:b,depth:c}),Cn(a,d=>{(-1===b.F||c<b.F)&&Bn(d,b,c+1)}),a.onDestroy(()=>{Dn(a,b.T())}));return b.T()}
1128
1128
  function Dn(a,b){if(null===a.$a||!a.$a.has(b))return!1;const {El:c,depth:d}=a.$a.get(b);Cn(a,f=>{Dn(f,b)});0===d&&c.D();const e=a.$a.delete(b);0===a.$a.size&&(a.$a=null);return e}function wn(a,b){let c;return(null==(c=a.Z)?void 0:c.get('IO#'+b))||null}
1129
1129
  function En(a){a.D.Yd(()=>{Cn(a,c=>c.destroy())});a.D.onDestroy(()=>{void 0!==a.Qa(olympe.sc.xa.j.TRANSACTION,!1)&&a.G.warn(`The context ${a.T()} is being destroyed but still has unreleased transactions. You probably forgot to end a transaction.`);a.clear();let c;if(null!=(c=a.H)){let d;null==(d=c.j)||d.delete(a.T());let e;0===(null==(e=c.j)?void 0:e.size)&&(c.j=null)}a.R.clear()});let b;null==(b=a.H)||Fn(b,a)}
1130
1130
  function An(a,b){if(null===a)return null;if(a.has(b))return a.get(b);for(const c of a.values())if(c.ia&&!c.id.startsWith('_')&&(a=An(c.j,b)))return a;return null}function Gn(a,b,...c){if(null!==a.$a)for(const {El:d,depth:e}of a.$a.values())d.process(a,b,e,...c)}function Hn(a,b){a.ba=olympe.dc.ea(b);a.ia=b.yd().Zn();b.H().forEach(c=>{a.id===c||a.R.has(c)||(a.R.add(c),pn(a,c,a))});a.Z=b.D();Gn(a,olympe.sc.$a.qc.j.INIT)}function In(a){a.wa=!0;let b;null==(b=a.j)||b.forEach(c=>{In(c)})}
1131
1131
  function Jn(a){a.wa=!1;let b;null==(b=a.j)||b.forEach(c=>{Jn(c)})}function zn(a,b){return['*',a.id,...a.R].map(c=>`${'@'}${c}.${b}`)}function Kn(a,b,c,d){c.forEach(f=>{let g,h;null==(g=a.F)||null==(h=g.get(f))||h.forEach(k=>{k(d)})});let e;null==(e=a.j)||e.forEach(f=>{!f.wa&&f.data.has(b)||Kn(f,b,c,d)})}function Ln(a,b,c){a.F||(a.F=new Map);let d=a.F.get(b);void 0===d&&(d=new Map,a.F.set(b,d));xn++;const e=xn;d.set(e,c);return()=>{const f=a.F.get(b);f&&(f.delete(e),0===f.size&&a.F.delete(b))}}
1132
1132
  function pn(a,b,c){a.N.add(b);let d,e;null==(d=a.F)||null==(e=d.get('&'+b))||e.forEach(f=>{f(c)});Cn(a,f=>{f.N.has(b)||pn(f,b,c)});a.N.delete(b)}function Cn(a,b){let c;null==(c=a.j)||c.forEach(b)}function Mn(a,b){a.data.forEach((c,d)=>b(c,d.slice(1)))}function Nn(a){var b=olympe.sc.$a.qc.D.$e;const c=[];if(null!==a.$a)for(const {El:d}of a.$a.values())d.getType()===b&&(c.push(d.T()),d.D(),Dn(a,d.T()))}function Fn(a,b){null===a.j&&(a.j=new Map);a.j.set(b.id,b)}
1133
- olympe.sc.Gg=class{constructor(a,b='no name',c=olympe.sc.fo){this.id=a;this.cd=b;this.R=new Set;this.H=c;this.D=new olympe.C.Yb('SC Context');this.data=new Map;this.ba=this.X=this.j=this.F=null;this.ia=!1;this.N=new Set;this.wa=!1;this.Z=null;this.G=olympe.ha.Wa('sc');this.$a=null;En(this)}T(){return this.id}getParent(){return this.H}lf(){return this.ba}set(a,b){if(!this.D.kd()&&!this.D.fb()){const g=olympe.dc.ea(a);var c,d;let h,k;a=null!=(k=null!=(h=null==(c=this.Z)?void 0:c.get('O#'+g))?h:null==
1133
+ olympe.sc.Gg=class{constructor(a,b='no name',c=olympe.sc.fo){this.id=a;this.cd=b;this.R=new Set;this.H=c;this.D=new olympe.C.Zb('SC Context');this.data=new Map;this.ba=this.X=this.j=this.F=null;this.ia=!1;this.N=new Set;this.wa=!1;this.Z=null;this.G=olympe.ha.Wa('sc');this.$a=null;En(this)}T(){return this.id}getParent(){return this.H}lf(){return this.ba}set(a,b){if(!this.D.kd()&&!this.D.fb()){const g=olympe.dc.ea(a);var c,d;let h,k;a=null!=(k=null!=(h=null==(c=this.Z)?void 0:c.get('O#'+g))?h:null==
1134
1134
  (d=this.Z)?void 0:d.get('IO#'+g))?k:g;c='$'+a;var e;d=null!=(e=this.data.get(c))?e:null;b=null!=b?b:null;if(e=!this.N.has(c)){a:{if('function'===typeof(null==b?void 0:b.Fa))try{var f=b.Fa(d);break a}catch(l){f=!1;break a}f=b===d}e=!f}e&&(null===b?this.data.delete(c):this.data.set(c,b),null!==this.$a&&0<this.$a.size&&Gn(this,olympe.sc.$a.qc.j.$g,a,b),f=zn(this,a),this.N.add(c),Kn(this,c,f,b),this.N.delete(c))}}on(a,b,c,d=!0){if(this.D.fb()||this.D.kd())return()=>{};const e=sn(this,a),f=c?olympe.dc.ea(c):
1135
1135
  '*';a=Ln(this,'@'+f+'.'+e,b);c=c?(c=vn(this,f))?c.Qa(e,!1):void 0:this.Qa(e);void 0!==c&&b(c);if(d)olympe.C.Za().onDestroy(a);return a}has(a,b=!1){a='$'+sn(this,a);let c=this.data.has(a),d=this.getParent();if(b)for(;!c&&d;)c=d.data.has(a),d=d.getParent();return c}mi(a,b,c){const d=null!=c?c:'_'+olympe.U.Mc();if(a.fb()||a.kd())throw Error(`Try to create new child context in a destroyed context ${a.T()}, probably because \`runner()\` is called on a destroyed context`);const e=a.run(()=>new olympe.sc.Gg(d,
1136
1136
  b,this));null!==this.$a&&0<this.$a.size&&this.$a.forEach(({El:f,depth:g})=>{(-1===f.F||g<f.F)&&Bn(e,f,g+1)});return e}Dl(a,b){const c=vn(this,a);if(c)return b(c),()=>{};const d=Ln(this,'&'+a,e=>{let f;null==(f=d)||f();b(e)});return d}Qa(a,b=!0){a='$'+sn(this,a);let c=this.data.get(a),d=this.getParent();if(b)for(;void 0===c&&null!==d;)c=d.data.get(a),d=d.getParent();return c}destroy(){this.D.kd()||this.D.fb()||(Gn(this,olympe.sc.$a.qc.j.fk),this.D.destroy(),Gn(this,olympe.sc.$a.qc.j.$d))}yh(a,b){if(this.D.fb())a();
1137
1137
  else return xn++,b=null!=b?b:String(xn),null===this.X&&(this.X=new Map),this.X.set(b,a),b;return b||'noId'}Bl(a){null!==this.X&&this.X.delete(a)}onDestroy(a){return this.fb()?(a(),'noId'):this.D.onDestroy(a)}clear(){if(!this.D.fb()){Gn(this,olympe.sc.$a.qc.j.Yj);let a;null==(a=this.X)||a.forEach(b=>b());Gn(this,olympe.sc.$a.qc.j.Zj)}}fb(){return this.D.fb()}Db(){return this.D}};olympe.sc.Gg.prototype.getParent=olympe.sc.Gg.prototype.getParent;olympe.sc.Gg.j={Am:'I#',Rm:'O#',dC:'IO#'};function On(a,b,c){return(c=c.lf())?`${a}.${c}.${b}`:`${a}.${b}`}olympe.sc.$a.qc=class{constructor(a=-1){this.id=olympe.U.jf();this.active=!0;this.F=a}D(){this.active=!1}T(){return this.id}getType(){}process(){}};olympe.sc.$a.qc.j={INIT:'INIT',$g:'SET',Yj:'CLEAR',Zj:'CLEARED',fk:'DESTROY',$d:'DESTROYED'};olympe.sc.$a.qc.D={$e:'REMOTE',Dv:'LOCAL',lg:'PROFILER'};olympe.sc.ae=class a{constructor(){this.D=this.H=this.N=null;this.R=new Map;this.F=new Map;this.j=new olympe.U.pn(1E4);gb(this.j,b=>{Nn(b)})}Z(b,c,d){const e=b.body(),f=e.c,g=this.R.get(f);switch(e.t){case olympe.sc.ae.j.dw:c=this.F.get(e.f);b.Oc(c).catch(l=>{d.error('Unable to reply with paths: ',l)});break;case olympe.sc.ae.j.ew:const h=f+c,k=(l,n,p=0)=>{Mn(l,(q,r)=>{let t;q instanceof olympe.dc.CloudObject?t=a.F(q):t=q;let v;q=null!=(v=l.lf())?v:'';0<q.length&&(q+='.');n.push([`${p}.${q}${r}`,
1138
1138
  t])})};b.bo(h).then(()=>{const l=[];k(g,l,0);Cn(g,p=>{k(p,l,1)});olympe.L.rb.md(h,{t:olympe.sc.ae.j.Tu,v:l,ts:0}).catch(p=>{d.error('Error publishing on service : ',p)});const n=new olympe.sc.$a.tw(h);Bn(g,n);this.j.has(g)?fb(this.j,g):this.j.add(g)}).catch(l=>{d.error('Error notifying on a contextId : ',l)});break;case olympe.sc.ae.j.ej:void 0!==g&&this.j.has(g)&&fb(this.j,g);break;case olympe.sc.ae.j.Ih:void 0!==g&&(this.j.delete(g),Nn(g))}}ba(b,c,d){this.N=new olympe.L.rb('discovery_debug_id',
1139
- c);this.N.listen().subscribe(e=>{var f=e.body();if(f.t===olympe.sc.ae.j.ru){e=f.i;f=f.f;if(!this.F.has(f)){const g=this.X(f,c,b);if(0!==g.length)this.F.set(f,g);else return}null===this.D&&(this.D=olympe.U.jf(),f=new olympe.C.Yb(this.D,c.Db()),this.H=new olympe.L.rb(this.D,f),this.H.listen().subscribe(g=>{this.Z(g,b,d)}));olympe.L.rb.md(e,{t:olympe.sc.ae.j.Ot,n:olympe.V.getParameter(olympe.sc.Config.np)||'no name',a:b,s:this.D}).catch(g=>{d.error('Error publishing on draw service : '+g)})}})}X(b,c,
1139
+ c);this.N.listen().subscribe(e=>{var f=e.body();if(f.t===olympe.sc.ae.j.ru){e=f.i;f=f.f;if(!this.F.has(f)){const g=this.X(f,c,b);if(0!==g.length)this.F.set(f,g);else return}null===this.D&&(this.D=olympe.U.jf(),f=new olympe.C.Zb(this.D,c.Db()),this.H=new olympe.L.rb(this.D,f),this.H.listen().subscribe(g=>{this.Z(g,b,d)}));olympe.L.rb.md(e,{t:olympe.sc.ae.j.Ot,n:olympe.V.getParameter(olympe.sc.Config.np)||'no name',a:b,s:this.D}).catch(g=>{d.error('Error publishing on draw service : '+g)})}})}X(b,c,
1140
1140
  d){const e=[],f=olympe.dc.ga(),g=(h,k)=>{Cn(h,l=>{if(null!==l.lf()){const n=olympe.dc.CloudObject.get(l.lf()).wg(olympe.sc.Runnable.D).Dc();if(null!==n){const p=k+'/'+f.name(n);n.W()===b&&(e.push([p,l.T()]),this.R.set(l.T(),l));g(l,p)}}})};g(c.state,f.name(d));return e}static D(b,c,d){let e=d;d instanceof olympe.dc.CloudObject&&(e=a.F(d));olympe.L.rb.md(b,{t:olympe.sc.ae.j.al,k:c,v:e,ts:Date.now()}).catch(f=>{olympe.ha.Wa('Debugger').error('Error publishing on service : ',f)})}static F(b){if(null===
1141
1141
  b||void 0===b)return'<null>';const c=olympe.dc.ga();if(b instanceof olympe.dc.CloudObject){var d=b.Xb();if(!c.Nb(d,olympe.sc.Bc))return b.toString();let f=`${b.Wb().name()} (${b.W()})`;var e=olympe.dc.CloudObject.get(d);d=olympe.dc.la.from(e).vg(olympe.dc.CloudObject.extendRel,!0).oe().bb(olympe.dc.CloudObject.propertyRel).oe().Dc();e=olympe.dc.la.from(e).vg(olympe.dc.CloudObject.extendRel,!0).oe().bb(olympe.dc.CloudObject.Mj).oe().Dc();d=d.filter(([g])=>g instanceof olympe.sc.Bc);0!==d.length&&(f+=
1142
1142
  '<br> ',f+='Properties:<br>',d.forEach(([,g])=>{f+=' ';f+=' - '+c.name(g)+' : '+c.Pa(b.W(),g)+'<br>'}));d=e.filter(([g])=>g instanceof olympe.sc.Bc);0!==d.length&&(f+=' ',f+='Relations:<br>',d.forEach(([,g])=>{f+=' ';f+=' - '+c.name(g)+'<br>'}));return f}return b.toString()}};olympe.sc.ae.H='discovery_debug_id';olympe.sc.ae.j={ru:0,Ot:1,dw:2,ew:3,Tu:4,al:5,ej:6,Ih:7};olympe.sc.$a.lC=class extends olympe.sc.$a.qc{constructor(a=-1){super(a);this.j=new Map}getType(){return olympe.sc.$a.qc.D.Dv}process(a,b,c,...d){if(this.active&&b===olympe.sc.$a.qc.j.$g){a=On(c,sn(a,d[0]),a);d=d[1];let e;null==(e=this.j.get(a))||e(d)}}on(a,b){this.j.set(a,b)}};function Pn(a,b,c,d=new Map){for(var e=[];b;){const n=b.lf();if(!n)break;e.push(n);b=b.getParent()}rb(a.j,c,d.set('context',e));var f;let g;for(const n of[...e,null==(f=d)?void 0:f.get('propId'),null==(g=d)?void 0:g.get('type')])if(c=n,'string'===typeof c&&!a.H.has(c)){e=a;f=c;e.ga||(e.ga=olympe.dc.ga());d=e.ga.name(f);e=(f=e.ga.model(f))?e.ga.name(f):'';var [h,k,l]=[d,f,e];d=a.j;e=(new Map).set(c,h).set(k,l);c=(new Map).set(c,k);for(const [p,q]of e.entries())d.N.set(p,q);for(const [p,q]of c.entries())d.H.set(p,
@@ -1144,9 +1144,9 @@ q)}}
1144
1144
  olympe.sc.$a.mw=class extends olympe.sc.$a.qc{constructor(a){super();this.j=a;this.ga=olympe.dc.ga();this.H=new Set}getType(){return olympe.sc.$a.qc.D.lg}process(a,b,c,...d){var e=Qn.Am,f=Qn.Rm,g=Qn.hw;const h=Qn.INIT,k=Qn.Yj,l=Qn.Zj,n=Qn.fk,p=Qn.$d;c=Qn.aw;if(b===olympe.sc.$a.qc.j.$g){const [q,r]=d;b=(d=a.lf())?olympe.dc.ga().Nb(d,olympe.sc.logic.Function):!1;d=d?olympe.dc.ga().Nb(d,olympe.sc.ui.cD):!1;b?(g=this.ga.Ib(q,olympe.dm.Property.typeRel),b=this.ga.Nb(q,olympe.sc.logic.vb),d=this.ga.Nb(q,olympe.sc.logic.Gb),
1145
1145
  Pn(this,a,b?e:d?f:c,new Map([['propId',q],['value',r],['type',g]]))):d&&(e=this.ga.Nb(q,olympe.dm.Property),f=this.ga.Ib(q,olympe.dm.Property.typeRel),Pn(this,a,e?g:c,new Map([['propId',q],['value',r],['type',f]])))}else b===olympe.sc.$a.qc.j.INIT?Pn(this,a,h):b===olympe.sc.$a.qc.j.Yj?Pn(this,a,k):b===olympe.sc.$a.qc.j.Zj?Pn(this,a,l):b===olympe.sc.$a.qc.j.fk?Pn(this,a,n):b===olympe.sc.$a.qc.j.$d&&Pn(this,a,p)}};
1146
1146
  const Qn={Am:'input',Rm:'output',hw:'prop',INIT:'init',Yj:'clear',Zj:'cleared',fk:'destroy',$d:'destroyed',aw:'other'};olympe.sc.$a.tw=class extends olympe.sc.$a.qc{constructor(a){super(1);this.H=a;this.j=new Map;this.db=olympe.dc.ga()}getType(){return olympe.sc.$a.qc.D.$e}D(){super.D();for(const a of this.j.values())a();this.j.clear()}process(a,b,c,...d){if(this.active&&b===olympe.sc.$a.qc.j.$g&&void 0!==d[0]&&null!==d[0]){const e=On(c,sn(a,d[0]),a),f=d[1];let g;null==(g=this.j.get(e))||g();this.j.delete(e);if(f instanceof olympe.dc.CloudObject&&f.Wb()instanceof olympe.sc.Bc){const h=kh(this.db,f,()=>{olympe.sc.ae.D(this.H,
1147
- e,f)});this.j.set(e,()=>{lh(this.db,f,h)})}olympe.sc.ae.D(this.H,e,f)}}};olympe.sc.Metadata=class extends olympe.dc.CloudObject{ov(){return this.Ad(this.Un())}pv(){return this.Ad(this.Vn())}ql(){return new olympe.C.Zb(this.Ad(this.Un()),this.Ad(this.Vn()))}Un(){}Vn(){}};olympe.sc.Metadata.O=olympe.dc.oa.j('0161ae936c62f9fcd131',olympe.sc.Metadata);m=olympe.sc.Metadata.prototype;m.ov.K=olympe.C.J.F;m.pv.K=olympe.C.J.F;m.ql.K=olympe.C.J.R;m.Un.K=olympe.C.J.j;m.Vn.K=olympe.C.J.j;olympe.sc.hd=class extends olympe.dc.CloudObject{D(){return this.xb(olympe.sc.hd.F)}j(){return this.xb(olympe.sc.hd.j)}};olympe.sc.hd.O=olympe.dc.oa.j('01703376c4a81c0e9d90',olympe.sc.hd);olympe.sc.hd.F=olympe.sc.hd.O.ja('01703376c4a81c0e9d91');olympe.sc.hd.j=olympe.sc.hd.O.ja('01703376c4a81c0e9d92');olympe.sc.hd.D=olympe.sc.hd.O.ta('01703376c4a81c0e9d93');S(olympe.dc.CloudObject.O,olympe.sc.hd.D);olympe.sc.hd.prototype.D.K=olympe.C.J.D;olympe.sc.hd.prototype.j.K=olympe.C.J.D;olympe.sc.ze={};olympe.sc.ze.Pe={Cu:'folders',xw:'screenflow',Zw:'ui-design',ds:'software-intelligence',Fh:'data-management',QC:'projects'};olympe.sc.Hf=class extends olympe.dc.CloudObject{constructor(a,b){super(a,b)}Kd(){return this.Ad(olympe.sc.Hf.D)}};olympe.sc.Hf.O=olympe.dc.oa.j('019131fb930466a1ad79',olympe.sc.Hf);olympe.sc.Hf.D=olympe.sc.Hf.O.ja('016d1bb681929c2cc3f1');olympe.sc.Hf.j=olympe.sc.Hf.O.ta('019131fb930466a1ad7a');S(olympe.dc.CloudObject.O,olympe.sc.Hf.j);olympe.sc.Hf.prototype.Kd.K=olympe.C.J.F;olympe.sc.ud=class extends olympe.dm.BrickMetadata{xe(){return olympe.sc.ze.Pe.ds}j(){return this.cb(olympe.sc.ud.j,olympe.sc.logic.Xh)}D(){return this.cb(olympe.sc.ud.D,olympe.sc.logic.Tg)}};olympe.sc.ud.O=olympe.dc.oa.j('011100000000000adef0',olympe.sc.ud);olympe.sc.ud.j=olympe.sc.ud.O.ta('016ac4f59a2917fdef01');olympe.sc.ud.D=olympe.sc.ud.O.ta('016ac4f59a2917fdef02');olympe.sc.ud.O.j=(a,b)=>dm(a,b||'New function signature',olympe.sc.ud,olympe.sc.logic.Fd).W();
1147
+ e,f)});this.j.set(e,()=>{lh(this.db,f,h)})}olympe.sc.ae.D(this.H,e,f)}}};olympe.sc.Metadata=class extends olympe.dc.CloudObject{ov(){return this.Ad(this.Un())}pv(){return this.Ad(this.Vn())}ql(){return new olympe.C.$b(this.Ad(this.Un()),this.Ad(this.Vn()))}Un(){}Vn(){}};olympe.sc.Metadata.O=olympe.dc.oa.j('0161ae936c62f9fcd131',olympe.sc.Metadata);m=olympe.sc.Metadata.prototype;m.ov.K=olympe.C.J.F;m.pv.K=olympe.C.J.F;m.ql.K=olympe.C.J.R;m.Un.K=olympe.C.J.j;m.Vn.K=olympe.C.J.j;olympe.sc.hd=class extends olympe.dc.CloudObject{D(){return this.xb(olympe.sc.hd.F)}j(){return this.xb(olympe.sc.hd.j)}};olympe.sc.hd.O=olympe.dc.oa.j('01703376c4a81c0e9d90',olympe.sc.hd);olympe.sc.hd.F=olympe.sc.hd.O.ja('01703376c4a81c0e9d91');olympe.sc.hd.j=olympe.sc.hd.O.ja('01703376c4a81c0e9d92');olympe.sc.hd.D=olympe.sc.hd.O.ta('01703376c4a81c0e9d93');S(olympe.dc.CloudObject.O,olympe.sc.hd.D);olympe.sc.hd.prototype.D.K=olympe.C.J.D;olympe.sc.hd.prototype.j.K=olympe.C.J.D;olympe.sc.ze={};olympe.sc.ze.Pe={Cu:'folders',xw:'screenflow',Zw:'ui-design',ds:'software-intelligence',Fh:'data-management',QC:'projects'};olympe.sc.Hf=class extends olympe.dc.CloudObject{constructor(a,b){super(a,b)}Kd(){return this.Ad(olympe.sc.Hf.D)}};olympe.sc.Hf.O=olympe.dc.oa.j('019131fb930466a1ad79',olympe.sc.Hf);olympe.sc.Hf.D=olympe.sc.Hf.O.ja('016d1bb681929c2cc3f1');olympe.sc.Hf.j=olympe.sc.Hf.O.ta('019131fb930466a1ad7a');S(olympe.dc.CloudObject.O,olympe.sc.Hf.j);olympe.sc.Hf.prototype.Kd.K=olympe.C.J.F;olympe.sc.ud=class extends olympe.dm.BrickMetadata{xe(){return olympe.sc.ze.Pe.ds}j(){return this.cb(olympe.sc.ud.j,olympe.sc.logic.Xh)}D(){return this.cb(olympe.sc.ud.D,olympe.sc.logic.Tg)}};olympe.sc.ud.O=olympe.dc.oa.j('011100000000000adef0',olympe.sc.ud);olympe.sc.ud.j=olympe.sc.ud.O.ta('016ac4f59a2917fdef01');olympe.sc.ud.D=olympe.sc.ud.O.ta('016ac4f59a2917fdef02');olympe.sc.ud.O.j=(a,b)=>dm(a,b||'New function signature',olympe.sc.ud,olympe.sc.logic.Fd).W();
1148
1148
  olympe.sc.ud.prototype.j.K=new olympe.C.J(()=>olympe.dc.Aa,[]);olympe.sc.ud.prototype.D.K=new olympe.C.J(()=>olympe.dc.Aa,[]);function Rn(a,b){[].forEach(c=>c.call(a,b,(d,e)=>{null===e?b.remove(d):b.set(d,e)}))}function Sn(a,b){b=b.filter(c=>'string'===typeof c&&a.db.Nb(c,olympe.sc.logic.Tb));b.sort((c,d)=>{let e;c=null!=(e=a.db.Pa(c,olympe.sc.logic.Tb.j,!0))?e:0;let f;d=null!=(f=a.db.Pa(d,olympe.sc.logic.Tb.j,!0))?f:0;return c-d});return b}function Tn(a){return Sn(a,a.db.cb(a.tag,olympe.sc.Va.F))}function Un(a){return Sn(a,a.db.cb(a.tag,olympe.sc.Va.D))}
1149
- olympe.sc.Va=class extends olympe.dm.BrickMetadata{rv(a,b,c,d,e=!0){e||olympe.ha.Wa('sc').error('parameter own= false ignored, investigate');return olympe.C.zh(M(this.Wf(a,olympe.dc.ib.uj,c)),d)}H(){return[]}F(){return rxjs.of([])}bz(){return this.cb(olympe.sc.Va.H,olympe.sc.Runnable)}uy(){return this.cb(olympe.sc.Va.R,olympe.sc.Runnable)}wi(){return this.db.Pa(this,olympe.sc.Va.Z)}Zn(){return null!==this.db.Ib(this.tag,olympe.sc.Runnable.j.$b())}qv(){return this.cb(olympe.sc.Va.F,olympe.sc.logic.vb)}Cq(){return this.cb(olympe.sc.Va.D,
1149
+ olympe.sc.Va=class extends olympe.dm.BrickMetadata{rv(a,b,c,d,e=!0){e||olympe.ha.Wa('sc').error('parameter own= false ignored, investigate');return olympe.C.zh(M(this.Wf(a,olympe.dc.ib.uj,c)),d)}H(){return[]}F(){return rxjs.of([])}bz(){return this.cb(olympe.sc.Va.H,olympe.sc.Runnable)}uy(){return this.cb(olympe.sc.Va.R,olympe.sc.Runnable)}wi(){return this.db.Pa(this,olympe.sc.Va.Z)}Zn(){return null!==this.db.Ib(this.tag,olympe.sc.Runnable.j.ac())}qv(){return this.cb(olympe.sc.Va.F,olympe.sc.logic.vb)}Cq(){return this.cb(olympe.sc.Va.D,
1150
1150
  olympe.sc.logic.Gb)}N(){return[olympe.sc.Va.Ua]}};olympe.sc.Va.O=olympe.dc.oa.j('0112000000000000def0',olympe.sc.Va);olympe.sc.Va.Z=olympe.sc.Va.O.ja('01692aa71f3108454479');olympe.sc.Va.lb=olympe.sc.Va.O.ja('0166446c1f128ebc903a');olympe.sc.Va.Ua=olympe.sc.Va.O.ja('0166446c1f128ebc904e');olympe.sc.Va.H=olympe.sc.Va.O.ta('01692a4af82e8984742c');olympe.sc.Va.R=olympe.sc.Va.O.ta('01692a4af82e8984742d');olympe.sc.Va.X=olympe.sc.Va.O.ta('01692a4af82e8984742e');olympe.sc.Va.F=olympe.sc.Va.O.ta('01621fb84e320000f00a');
1151
1151
  olympe.sc.Va.D=olympe.sc.Va.O.ta('01621fb84e320000f00b');olympe.sc.Va.xd=olympe.sc.Va.O.ta('0171838bcfed0000e00e');olympe.sc.Va.jd=olympe.sc.Va.O.ta('0171838bcfed0000a00a');m=olympe.sc.Va.prototype;m.rv.K=olympe.C.J.j;m.bz.K=new olympe.C.J(()=>olympe.dc.Aa,[]);m.uy.K=new olympe.C.J(()=>olympe.dc.Aa,[]);m.wi.K=olympe.C.J.j;m.Zn.K=olympe.C.J.j;m.qv.K=new olympe.C.J(()=>olympe.dc.Aa,[]);m.Cq.K=new olympe.C.J(()=>olympe.dc.Aa,[]);function yn(a){let b;return null!=(b=a.yd().N().map(olympe.dc.ea)[0])?b:null}function Vn(a){const b=new olympe.dc.Ya;a=b.create(a);b.persist(a,!1);b.mb((d,e)=>{d||olympe.ha.Wa('sc').error(`Error occurred for transaction executed by createLocalRunnable: ${e}`)});const c=olympe.dc.CloudObject.get(a);olympe.C.Za().onDestroy(()=>{const d=new olympe.dc.Ya;d.delete(c);d.mb()});return c}
1152
1152
  function Wn(a,b){Hn(b.state,a);Rn(a.yd(),b);const c=a.R(),d=Xn(b,c),e=[];c.forEach((f,g)=>{f===a.ia?e[0]=g:f===a.ba&&(e[1]=g)});void 0!==e[0]&&void 0!==e[1]&&(Yn(a,b,d[e[0]],d[e[1]]),c[e[0]]=null,c[e[1]]=null);c.forEach((f,g)=>{f&&f.call(a,b,d[g])})}
@@ -1155,11 +1155,11 @@ b.onDestroy(g.unsubscribe.bind(g))}function ao(a,b,c,d){let e=[];const f=U(a.db,
1155
1155
  function Xn(a,b){if(1===b.length)return[(d,e)=>{null!==e?a.set(d,e):a.remove(d)}];const c=b.map(()=>new Map);return c.map(d=>(e,f)=>{null!==f?d.set(e,f):d.delete(e);a:{for(const g of c)if(f=g.get(e),void 0!==f){a.set(e,f);break a}a.remove(e)}})}function Yn(a,b,c,d){b=b.Db();const e=kh(a.db,a.tag,b.tc((f,g,h)=>{const k=h?d:c;null!==k&&(k(f,olympe.dc.ib.uc(g)),h&&c!==k&&(null==c||c(f,null)))}));b.onDestroy(()=>{lh(a.db,a.tag,e)})}
1156
1156
  olympe.sc.Runnable=class extends olympe.dm.BrickMetadata{constructor(a,b,c){super(a,b);this.G=c}run(a){a.Db().run(()=>{Wn(this,a);this.init(a);a.yh(this.clear.bind(this,a));a.onDestroy(this.destroy.bind(this,a));Zn(this,a);this.F(a)})}yd(){return this.Wb()}init(a){this.onInit(a)}update(a,b,c){const d=this.yd();if(d.wi())this.onUpdate(a,b,c);else this.G.debug(`Softcoded runnable ${this.db.name(this)} with tag ${this.tag} running in context ${a.T()}`),ao(this,d,olympe.sc.Va.H,a),this.wa()&&ao(this,
1157
1157
  d,olympe.sc.Va.X,a)}F(a){a.oo(olympe.sc.Va.lb)}clear(){}destroy(a){this.onDestroy(a)}setupExecution(a){return this.yd().F(a)}onInit(){}onUpdate(){const a=this.Xb(),b=this.db.name(a),c=this.db.name(this.db.model(a));this.G.error(`No code was found for ${b} (${c}: ${a})\n\n`+'This is probably because the code has not yet been deployed to the environment, or because the package.json does not import the required dependencies.')}onDestroy(){}getInputs(){return Tn(this.yd())}getOutputs(){return Un(this.yd())}H(){return[]}D(){return null}wa(){return!1}N(a,
1158
- b,c,d){a=b.ub(a,c,!0);void 0!==d&&olympe.C.zh(a,d);return a}Ua(a,b,c,d,e){olympe.C.eo([d],f=>{b.set(a,olympe.C.pt(f)?f.valueOf():f)});return this.N(a,b,c,e)}R(){return[this.ia,this.ba]}ia(a,b){Yn(this,a,b,null)}ba(a,b){Yn(this,a,null,b)}lb(a,b){const c=this.db,d=olympe.sc.logic.qb.F.$b(),e=olympe.sc.logic.qb.D,f=olympe.sc.logic.qb.j;this.Ws(d,g=>{var h=g.W();if(h=c.Ib(h,e)||c.Ib(h,f))return bo(g,a,b.bind(null,h))})}};olympe.sc.Runnable.O=lg(olympe.dc.oa.j('01130000000000ca1100',olympe.sc.Runnable));
1158
+ b,c,d){a=b.ub(a,c,!0);void 0!==d&&olympe.C.zh(a,d);return a}Ua(a,b,c,d,e){olympe.C.eo([d],f=>{b.set(a,olympe.C.pt(f)?f.valueOf():f)});return this.N(a,b,c,e)}R(){return[this.ia,this.ba]}ia(a,b){Yn(this,a,b,null)}ba(a,b){Yn(this,a,null,b)}lb(a,b){const c=this.db,d=olympe.sc.logic.qb.F.ac(),e=olympe.sc.logic.qb.D,f=olympe.sc.logic.qb.j;this.Ws(d,g=>{var h=g.W();if(h=c.Ib(h,e)||c.Ib(h,f))return bo(g,a,b.bind(null,h))})}};olympe.sc.Runnable.O=lg(olympe.dc.oa.j('01130000000000ca1100',olympe.sc.Runnable));
1159
1159
  olympe.sc.Runnable.D=olympe.sc.Runnable.O.ta('01692a4af82e8984742b');olympe.sc.Runnable.j=olympe.sc.Runnable.O.ta('01756a18d4921c103111');olympe.sc.Runnable.N=S(olympe.sc.Runnable.O,olympe.sc.Va.H);olympe.sc.Runnable.R=S(olympe.sc.Runnable.O,olympe.sc.Va.R);olympe.sc.Runnable.X=S(olympe.sc.Runnable.O,olympe.sc.Va.X);S(olympe.sc.Va.O,olympe.sc.Runnable.D);S(olympe.sc.Va.O,olympe.sc.Runnable.j);olympe.sc.Runnable.prototype.yd.K=new olympe.C.J(()=>olympe.sc.Va,[]);
1160
1160
  olympe.sc.Runnable.prototype.N.K=new olympe.C.J(()=>Object,[]);olympe.sc.Runnable.prototype.Ua.K=olympe.C.J.j;function co(a){if(a){if('string'===typeof a)return a;if(a instanceof olympe.sc.Ud)return(a=a.D())?a.valueOf():null;if('function'===typeof a.W)return a.W()}return null}olympe.sc.Ud=class extends olympe.dc.CloudObject{D(){return this.db.cb(this,olympe.sc.Ud.j)[0]}j(){const a=co(this);return olympe.dc.CloudObject.get(a)}uc(){return this.j().uc()}toString(){const a=co(this);let b;a&&(b=this.db.name(a));return b||super.toString()}};olympe.sc.Ud.O=olympe.dc.oa.j('0163c9ae01f2d6e9ca49',olympe.sc.Ud);
1161
1161
  olympe.sc.Ud.j=olympe.sc.Ud.O.ta('0169b5a8a33144fb0b49');S(olympe.dc.CloudObject.O,olympe.sc.Ud.j);olympe.sc.Ud.prototype.D.K=new olympe.C.J(()=>String,[]);olympe.sc.Ud.prototype.j.K=new olympe.C.J(()=>olympe.dc.CloudObject,[]);olympe.sc.rp=class extends olympe.dm.Kb{xe(){return olympe.sc.ze.Pe.Fh}};olympe.sc.rp.O=olympe.dc.oa.j('0163a68ce44f3d1fa84c',olympe.sc.rp);olympe.sc.Bc=class extends olympe.dm.BrickMetadata{};olympe.sc.Bc.O=olympe.dc.oa.j('016324fde11a836f76c2',olympe.sc.Bc);olympe.sc.Bc.j=olympe.sc.Bc.O.ta('016324fde11a836087c2');olympe.sc.Bc.O.j=function(a,b){return dm(a,null!=b?b:'New type',olympe.sc.Bc).W()};let eo=null,fo=null,go=[];
1162
- function ho(a,b){eo=a;const c=olympe.C.Za();return olympe.dc.td.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.sc.uf.j.$b()).mb({li:'__code-as-data__'}).then(d=>{let e;null==(e=go)||e.forEach(f=>f());go=null;fo=d;if(null!==d){if(b){const f=olympe.dc.ga();return new Promise(g=>{Ai(c,d,h=>{h=f.xi(h)?h:f.model(h);return null!==h&&f.Nb(h,olympe.sc.Bc)},{lo:!0}).subscribe(rxjs.Subscriber.create(()=>{g()},()=>{olympe.ha.Wa('sc').error('Impossible to load the business container for the application',a,'maybe are you offline?');
1162
+ function ho(a,b){eo=a;const c=olympe.C.Za();return olympe.dc.td.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.sc.uf.j.ac()).mb({li:'__code-as-data__'}).then(d=>{let e;null==(e=go)||e.forEach(f=>f());go=null;fo=d;if(null!==d){if(b){const f=olympe.dc.ga();return new Promise(g=>{Ai(c,d,h=>{h=f.xi(h)?h:f.model(h);return null!==h&&f.Nb(h,olympe.sc.Bc)},{lo:!0}).subscribe(rxjs.Subscriber.create(()=>{g()},()=>{olympe.ha.Wa('sc').error('Impossible to load the business container for the application',a,'maybe are you offline?');
1163
1163
  g()}))})}olympe.ha.Wa('sc').debug("Found business container but won't load it's content according to configuration.")}else olympe.ha.Wa('sc').info(`No business container for application ${a}. You probably miss permissions.`);return Promise.resolve()}).catch(d=>{go=null;throw d;})}function Nf(){return null===go?Promise.resolve():new Promise(a=>{go.push(()=>a())})}olympe.sc.uf=class extends olympe.dc.CloudObject{};olympe.sc.uf.O=olympe.dc.oa.j('017b3aa8fae1e3d044dc',olympe.sc.uf);olympe.sc.uf.j=olympe.sc.uf.O.ta('017b3aa8fd1659291b92');
1164
1164
  olympe.sc.uf.D=olympe.sc.uf.O.ta('017b3aa8fe7ec3fd52f2');olympe.sc.Map=class extends olympe.dc.CloudObject{};olympe.sc.Map.O=olympe.dc.oa.j('018119241abce0e5696e',olympe.sc.Map);olympe.sc.Pg=class extends olympe.sc.Map{};olympe.sc.Pg.O=olympe.dc.oa.j('01631aacd8276ea98490',olympe.sc.Pg);olympe.sc.File=class extends olympe.dm.File{static Px(a,b,c,d,e,f){e=a.create(olympe.sc.File,new Map,e,f);olympe.sc.File.Ft(a,e,b,c,d);return e}static Qx(a,b,c,d,e,f){e=a.create(olympe.sc.File,new Map,e,f);olympe.sc.File.ko(a,e,b,c,d);return e}static Ft(a,b,c,d,e){e=null!=e?e:'application/data';d=URL.createObjectURL(new Blob([d],{type:e}));olympe.sc.File.ko(a,b,c,d,e)}static ko(a,b,c,d,e){const f=olympe.dc.ga(),g=f.Ja(b);var h;const k=null!=(h=a.model(b))?h:olympe.sc.File;if(null===k||!f.Xf(k,olympe.dm.File))throw Error(`Try to set the content of an object which is not a file: ${b}`);
1165
1165
  h=new Date;c=(new Map).set(olympe.dm.File.fileNameProp,null!=c?c:'file').set(olympe.dm.File.urlProp,d).set(olympe.dm.File.modificationDateProp,h).set(olympe.dm.File.mimeTypeProp,null!=e?e:'application/data');g&&null!==f.Pa(b,olympe.dm.File.urlProp)||c.set(olympe.dm.File.creationDateProp,h).set(olympe.dm.File.j,!1);a.vt(b,c)}};olympe.sc.File.setURLContent=olympe.sc.File.ko;olympe.sc.File.setContent=olympe.sc.File.Ft;olympe.sc.File.createFromURL=olympe.sc.File.Qx;olympe.sc.File.createFromContent=olympe.sc.File.Px;
@@ -1169,7 +1169,7 @@ olympe.sc.logic.kC=(a,b,c,d,e,f,g)=>{const h=b.W();b=olympe.C.Qa(b.getType().W()
1169
1169
  return}let n;if('<'===f)n=(p,q)=>olympe.sc.logic.$p(q,p);else if('>'===f)n=(p,q)=>olympe.sc.logic.$p(p,q);else{g.error(`Unknown inequality ${f}. Please use '<' or '>'`);return}e(a.gl().filter(p=>olympe.C.ua([l(p)],q=>{q=n(q.valueOf(),k);return olympe.C.Sb(d.valueOf()?1===q:0<=q)},olympe.C.da,'FilterList ListDefBuilder Filter TransformFlows')).Xi())};
1170
1170
  olympe.sc.logic.YE=(a,b)=>{if(a instanceof olympe.C.$)return a;if(a instanceof olympe.C.Sa)return a.Jt();if(a instanceof olympe.C.da)return a.it();if('string'===typeof a||'number'===typeof a)return olympe.C.sa(Number(a));b.error(`Could not parse provided value ${a} into a number`);return olympe.C.$.Oq};olympe.sc.logic.Ra={};function io(a){kg(a.O,(b,c)=>{b=b.create(a.O.D);Y(b,olympe.dc.CloudObject.nameProp,c);return b.W()})}olympe.sc.logic.Ra.Op=class{constructor(a,b,c){this.O=olympe.dc.oa.j(a,b,...c);io(this)}W(){return this.O.W()}};olympe.sc.logic.Ra.Op.ya=[olympe.dc.Ze];const jo=Object.create(null),ko=new Map;function lo(a){if(void 0===jo[a])throw Error(`Tag: ${a} - does not correspond to a registered function`);return hg(a)}function mo(a,b,c=olympe.sc.logic.Function){if(ko.has(a))throw c=lo(a),Error(`Tag: ${a} - overwriting existing function definition "${c.name}" with "${b.name}"`);const d=olympe.dc.oa.j(a,b,...[]);ko.set(a,{O:d,oF:b,VE:c});return d}
1171
1171
  olympe.sc.logic.oa=class{constructor(){}static j(a,b,...c){if(jo[a])throw c=lo(a),Error(`Tag: ${a} - overwriting already defined function "${c.name}" with "${b.name}"`);b=new olympe.sc.logic.Ra.Op(a,b,[olympe.sc.P.Ca].concat(c));return jo[a]=b}};olympe.sc.logic.$A=class{};olympe.sc.logic.ck=class extends olympe.dc.CloudObject{};olympe.sc.logic.ck.O=olympe.dc.oa.j('01621fb84e320000cf00',olympe.sc.logic.ck);function tn(a,b,c){return new olympe.sc.logic.Error(a,b,c)}olympe.sc.logic.Error=class extends Error{constructor(a,b,c){super(a);this.code=b;this.j=null!=c?c:null}static create(a,b){return new olympe.sc.logic.Error(a,b)}Qy(){return this.message}Bj(){return this.code}ue(){let a;return null!=(a=this.j)?a:''}toString(){return`${this.message}\nError found in:\n${this.ue()}\n\n${this.stack}`}};olympe.sc.logic.Error.prototype.getStack=olympe.sc.logic.Error.prototype.ue;
1172
- olympe.sc.logic.Error.prototype.getCode=olympe.sc.logic.Error.prototype.Bj;olympe.sc.logic.Error.prototype.getMessage=olympe.sc.logic.Error.prototype.Qy;olympe.sc.logic.Error.create=olympe.sc.logic.Error.create;olympe.sc.logic.Oi=class extends olympe.sc.logic.ck{};olympe.sc.logic.Oi.O=olympe.dc.oa.j('016eeb5ede9f3094d8f0',olympe.sc.logic.Oi);olympe.sc.logic.sd=class extends olympe.dc.CloudObject{j(){return this.Vc(olympe.sc.logic.sd.j,olympe.dc.CloudObject)}};olympe.sc.logic.sd.O=olympe.dc.oa.j('016ac4f59ee8ea2081ba',olympe.sc.logic.sd);olympe.sc.logic.sd.D=olympe.sc.logic.sd.O.ja('017bc044aeacce7ffc8f');olympe.sc.logic.sd.j=olympe.sc.logic.sd.O.ta('016ac4f5a0091c4790e2');S(olympe.dc.CloudObject.O,olympe.sc.logic.sd.j);olympe.sc.logic.sd.prototype.j.K=new olympe.C.J(()=>olympe.dc.CloudObject,[]);olympe.sc.logic.Xh=class extends olympe.sc.logic.sd{};olympe.sc.logic.Xh.O=olympe.dc.oa.j('016ac4f59c592b862457',olympe.sc.logic.Xh);olympe.sc.logic.Xh.F=olympe.sc.ud.j.$b();olympe.sc.logic.Xh.O.j=(a,b,c,d,e)=>{b=dm(a,b||'New Predefined Input',olympe.sc.logic.Xh,olympe.sc.logic.vb);Y(b,olympe.sc.logic.sd.D,e);a.Oa(olympe.sc.logic.sd.j,b,c);a.Oa(olympe.sc.ud.j,d,b);return b.W()};olympe.sc.logic.Tg=class extends olympe.sc.logic.sd{};olympe.sc.logic.Tg.O=olympe.dc.oa.j('016ac4f59dd99f5df3e1',olympe.sc.logic.Tg);olympe.sc.logic.Tg.F=S(olympe.sc.logic.Tg.O,olympe.sc.ud.D);olympe.sc.logic.Tg.O.j=(a,b,c,d,e)=>{b=dm(a,b||'New Predefined Output',olympe.sc.logic.Tg,olympe.sc.logic.Gb);Y(b,olympe.sc.logic.sd.D,e);a.Oa(olympe.sc.logic.sd.j,b,c);a.Oa(olympe.sc.ud.D,d,b);return b.W()};olympe.sc.logic.Fd=class extends olympe.sc.Va{xe(){return olympe.sc.ze.Pe.ds}Z(){return this.On().gl().Nb([olympe.sc.logic.Function]).and().Cd().Nb([olympe.sc.logic.pd,olympe.sc.logic.gd]).Xi()}N(){const a=olympe.dc.ea(olympe.sc.logic.Oi);return this.db.cb(this,olympe.sc.logic.Fd.D).filter(b=>this.db.Ib(b,olympe.sc.logic.Tb.typeRel)===a)}j(a){const b=this.db.Ln(this,[olympe.sc.Va.F],c=>this.db.model(c)===olympe.dc.ea(a));return b?olympe.dc.CloudObject.get(b):null}D(a){const b=this.db.Ln(this,[olympe.sc.Va.D],
1172
+ olympe.sc.logic.Error.prototype.getCode=olympe.sc.logic.Error.prototype.Bj;olympe.sc.logic.Error.prototype.getMessage=olympe.sc.logic.Error.prototype.Qy;olympe.sc.logic.Error.create=olympe.sc.logic.Error.create;olympe.sc.logic.Oi=class extends olympe.sc.logic.ck{};olympe.sc.logic.Oi.O=olympe.dc.oa.j('016eeb5ede9f3094d8f0',olympe.sc.logic.Oi);olympe.sc.logic.sd=class extends olympe.dc.CloudObject{j(){return this.Vc(olympe.sc.logic.sd.j,olympe.dc.CloudObject)}};olympe.sc.logic.sd.O=olympe.dc.oa.j('016ac4f59ee8ea2081ba',olympe.sc.logic.sd);olympe.sc.logic.sd.D=olympe.sc.logic.sd.O.ja('017bc044aeacce7ffc8f');olympe.sc.logic.sd.j=olympe.sc.logic.sd.O.ta('016ac4f5a0091c4790e2');S(olympe.dc.CloudObject.O,olympe.sc.logic.sd.j);olympe.sc.logic.sd.prototype.j.K=new olympe.C.J(()=>olympe.dc.CloudObject,[]);olympe.sc.logic.Xh=class extends olympe.sc.logic.sd{};olympe.sc.logic.Xh.O=olympe.dc.oa.j('016ac4f59c592b862457',olympe.sc.logic.Xh);olympe.sc.logic.Xh.F=olympe.sc.ud.j.ac();olympe.sc.logic.Xh.O.j=(a,b,c,d,e)=>{b=dm(a,b||'New Predefined Input',olympe.sc.logic.Xh,olympe.sc.logic.vb);Y(b,olympe.sc.logic.sd.D,e);a.Oa(olympe.sc.logic.sd.j,b,c);a.Oa(olympe.sc.ud.j,d,b);return b.W()};olympe.sc.logic.Tg=class extends olympe.sc.logic.sd{};olympe.sc.logic.Tg.O=olympe.dc.oa.j('016ac4f59dd99f5df3e1',olympe.sc.logic.Tg);olympe.sc.logic.Tg.F=S(olympe.sc.logic.Tg.O,olympe.sc.ud.D);olympe.sc.logic.Tg.O.j=(a,b,c,d,e)=>{b=dm(a,b||'New Predefined Output',olympe.sc.logic.Tg,olympe.sc.logic.Gb);Y(b,olympe.sc.logic.sd.D,e);a.Oa(olympe.sc.logic.sd.j,b,c);a.Oa(olympe.sc.ud.D,d,b);return b.W()};olympe.sc.logic.Fd=class extends olympe.sc.Va{xe(){return olympe.sc.ze.Pe.ds}Z(){return this.On().gl().Nb([olympe.sc.logic.Function]).and().Cd().Nb([olympe.sc.logic.pd,olympe.sc.logic.gd]).Xi()}N(){const a=olympe.dc.ea(olympe.sc.logic.Oi);return this.db.cb(this,olympe.sc.logic.Fd.D).filter(b=>this.db.Ib(b,olympe.sc.logic.Tb.typeRel)===a)}j(a){const b=this.db.Ln(this,[olympe.sc.Va.F],c=>this.db.model(c)===olympe.dc.ea(a));return b?olympe.dc.CloudObject.get(b):null}D(a){const b=this.db.Ln(this,[olympe.sc.Va.D],
1173
1173
  c=>this.db.model(c)===olympe.dc.ea(a));return b?olympe.dc.CloudObject.get(b):null}H(a){if(!this.wi())return super.H(a);const b=olympe.dc.ea(olympe.sc.logic.ck),c=olympe.dc.ea(olympe.sc.logic.Oi);return Un(this).map(d=>{switch(this.db.Ib(d,olympe.sc.logic.Tb.typeRel)){case b:return a.oo.bind(a,d);case c:return a.throw.bind(a);default:return a.set.bind(a,d)}})}F(a){if(!this.wi())return super.F(a);const b=Tn(this);return 0<b.length?rxjs.combineLatest(b.map(c=>a.observe(c))).pipe(rxjs.operators.map(c=>
1174
1174
  c.includes(null)?null:c)):rxjs.of([])}};olympe.sc.logic.Fd.O=mo('01621fb84e320000f000',olympe.sc.logic.Fd,olympe.sc.logic.Function);olympe.sc.logic.Fd.prototype.j.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.Fd.prototype.D.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);let no=null;function oo(){if(null===no){let a;no=null!=(a=olympe.V.getParameter('sc.action.experimental'))?a:!1}return no}
1175
1175
  olympe.sc.logic.cg=class extends olympe.sc.logic.Fd{R(){return this.j('016ac63229782039429f')}X(){return this.D('016ac6322acf67eebfe7')}ba(){return this.Cq().gl().bb(olympe.sc.logic.Tb.typeRel).vl(olympe.sc.logic.Oi).Xi().Df().$n(olympe.C.$.ZERO)}F(a){if(this.wi()||oo()){const b=this.R().W();return a.observe(b).pipe(rxjs.operators.map(c=>null===c?null:Tn(this).filter(d=>d!==b).map(d=>a.get(d))))}return super.F(a)}};olympe.sc.logic.cg.j='016ac63229782039429f';olympe.sc.logic.cg.N='016ac6322acf67eebfe7';
@@ -1178,7 +1178,7 @@ olympe.sc.logic.Tb.prototype.getType.K=new olympe.C.J(()=>olympe.dc.CloudObject,
1178
1178
  olympe.sc.logic.vb.H=olympe.sc.logic.vb.O.ta('01621fb84e32000000d1',olympe.dc.va.ORIGIN);olympe.sc.logic.vb.O.j=function(a,b,c,d,e,f=olympe.sc.logic.vb){f=a.create(f);Y(f,olympe.dc.CloudObject.nameProp,b||'New input');a.Oa(olympe.sc.logic.Tb.typeRel,f,c);void 0!==e&&Y(f,olympe.sc.logic.Tb.j,e);d&&a.Oa(olympe.sc.Va.F,d,f);return f.W()};olympe.sc.logic.Gb=class extends olympe.sc.logic.Tb{};olympe.sc.logic.Gb.O=olympe.dc.oa.j('0168a431d25001540002',olympe.sc.logic.Gb);olympe.sc.logic.Gb.N=S(olympe.sc.logic.Gb.O,olympe.sc.Va.D);olympe.sc.logic.Gb.D=olympe.sc.logic.Gb.O.ta('0168a431d91f25780003',olympe.dc.va.ORIGIN);olympe.sc.logic.Gb.H=olympe.sc.logic.Gb.O.ta('01621fb84e32000000a2',olympe.dc.va.ORIGIN);olympe.sc.logic.Gb.F=olympe.sc.logic.Gb.O.ta('01621fb84e32000000d2',olympe.dc.va.ORIGIN);
1179
1179
  olympe.sc.logic.Gb.O.j=function(a,b,c,d,e,f=olympe.sc.logic.Gb){f=a.create(f);Y(f,olympe.dc.CloudObject.nameProp,b||'New output');a.Oa(olympe.sc.logic.Tb.typeRel,f,c);void 0!==e&&Y(f,olympe.sc.logic.Tb.j,e);d&&a.Oa(olympe.sc.Va.D,d,f);return f.W()};olympe.sc.logic.pd=class extends olympe.sc.logic.Function{run(a){Wn(this,a);const b=a.getParent(),c=this.db.Ib(this,olympe.sc.logic.pd.H),d=this.db.Ib(this,olympe.sc.logic.pd.F);a.on(c,e=>b.set(d,e),this.tag)}j(){return this.wg(olympe.sc.logic.pd.H).Dc()}X(){return this.wg(olympe.sc.logic.pd.F).Dc()}};olympe.sc.logic.pd.O=olympe.dc.oa.j('01621fb84e32000000a0',olympe.sc.logic.pd,olympe.sc.P.Ca);olympe.sc.logic.pd.H=S(olympe.sc.logic.pd.O,olympe.sc.logic.vb.F);
1180
1180
  olympe.sc.logic.pd.F=S(olympe.sc.logic.pd.O,olympe.sc.logic.Gb.H);olympe.sc.logic.pd.O.j=function(a,b,c){b=a.create(olympe.sc.logic.pd);a.Oa(olympe.sc.logic.pd.F,b,c);return b.W()};olympe.sc.logic.pd.prototype.j.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.pd.prototype.X.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.logic.gd=class extends olympe.sc.logic.Function{run(a){const b=a.getParent(),c=this.db.Ib(this,olympe.sc.logic.gd.F),d=this.db.Ib(this,olympe.sc.logic.gd.H);b.on(c,e=>a.set(d,e),b.T())}X(){return this.wg(olympe.sc.logic.gd.F).Dc()}j(){return this.wg(olympe.sc.logic.gd.H).Dc()}};olympe.sc.logic.gd.O=olympe.dc.oa.j('01621fb84e32000000d0',olympe.sc.logic.gd,olympe.sc.P.Ca);olympe.sc.logic.gd.F=S(olympe.sc.logic.gd.O,olympe.sc.logic.vb.H);olympe.sc.logic.gd.H=S(olympe.sc.logic.gd.O,olympe.sc.logic.Gb.F);
1181
- olympe.sc.logic.gd.O.j=function(a,b,c){b=a.create(olympe.sc.logic.gd);a.Oa(olympe.sc.logic.gd.F,b,c);return b.W()};olympe.sc.logic.gd.prototype.X.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.gd.prototype.j.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);function bo(a,b,c){var d;const e=null!=(d=a.db.Ib(a,olympe.sc.logic.qb.R))?d:a.db.Ib(a,olympe.sc.logic.qb.H),f=a.db.Ib(a,olympe.sc.logic.qb.N);if(null!==e&&null!==f){d=a.db.Xf(po(a),olympe.dm.Ke)?new olympe.C.Yb('Pipe Context'):null;const k=a.j.bind(a,c,d);let l;const n=b.Dl(f,p=>{let q;null==(q=l)||q();l=p.on(e,k,f)});return()=>{k(null);n();let p;null==(p=l)||p()}}const g=k=>c(olympe.dc.ib.uc(k)),h=ih(a.db,a,olympe.sc.logic.qb.valueProp,g);return()=>{g(null);jh(a.db,a,olympe.sc.logic.qb.valueProp,
1181
+ olympe.sc.logic.gd.O.j=function(a,b,c){b=a.create(olympe.sc.logic.gd);a.Oa(olympe.sc.logic.gd.F,b,c);return b.W()};olympe.sc.logic.gd.prototype.X.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.gd.prototype.j.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);function bo(a,b,c){var d;const e=null!=(d=a.db.Ib(a,olympe.sc.logic.qb.R))?d:a.db.Ib(a,olympe.sc.logic.qb.H),f=a.db.Ib(a,olympe.sc.logic.qb.N);if(null!==e&&null!==f){d=a.db.Xf(po(a),olympe.dm.Ke)?new olympe.C.Zb('Pipe Context'):null;const k=a.j.bind(a,c,d);let l;const n=b.Dl(f,p=>{let q;null==(q=l)||q();l=p.on(e,k,f)});return()=>{k(null);n();let p;null==(p=l)||p()}}const g=k=>c(olympe.dc.ib.uc(k)),h=ih(a.db,a,olympe.sc.logic.qb.valueProp,g);return()=>{g(null);jh(a.db,a,olympe.sc.logic.qb.valueProp,
1182
1182
  h)}}function po(a){let b=null,c=a.db.Ib(a,olympe.sc.logic.qb.D);c?b=a.db.Ib(c,olympe.dm.Property.typeRel):(c=a.db.Ib(a,olympe.sc.logic.qb.j))&&(b=a.db.Ib(c,olympe.sc.logic.Tb.typeRel));return b||olympe.dc.ea(olympe.dc.CloudObject)}
1183
1183
  olympe.sc.logic.qb=class extends olympe.dc.CloudObject{constructor(a,b,c){super(a,b);this.G=c}j(a,b,c){const d=olympe.sc.uj(c);null==b||b.ug();b&&d instanceof olympe.dm.Ke?null==b||b.run(()=>{olympe.C.Yc([d.getValue()],e=>{a(e.valueOf())})}):a(d)}getValue(a){return this.Wf(olympe.sc.logic.qb.valueProp,a||olympe.dc.ib.uj,Object)}getType(){const a=this.transform(olympe.sc.logic.qb.j,olympe.sc.logic.Tb.typeRel);a.Sd(olympe.dc.CloudObject);return a.Kc()}hz(){return this.Vc(olympe.sc.logic.qb.N,olympe.dc.CloudObject)}fz(){return this.Vc(olympe.sc.logic.qb.R,
1184
1184
  olympe.sc.logic.Gb)}gz(){return this.Vc(olympe.sc.logic.qb.H,olympe.dm.Property)}Dy(){return this.Vc(olympe.sc.logic.qb.F,olympe.dc.CloudObject)}By(){return this.Vc(olympe.sc.logic.qb.j,olympe.sc.logic.vb)}Cy(){return this.Vc(olympe.sc.logic.qb.D,olympe.dm.Property)}};olympe.sc.logic.qb.O=olympe.dc.oa.j('0168a431d91f25780000',olympe.sc.logic.qb,olympe.sc.P.Ca);olympe.sc.logic.qb.valueProp=olympe.sc.logic.qb.O.ja('0168a431d91f25780001');olympe.sc.logic.qb.N=olympe.sc.logic.qb.O.ta('0168a431d91f25780002');
@@ -1193,7 +1193,7 @@ this.G.error(`Error while listening on remote action ${this.db.name(l)} (${l}):
1193
1193
  olympe.sc.logic.oa.j('0171889b060b6cd54300',olympe.sc.logic.kl.Kv);olympe.sc.logic.Rb={};olympe.sc.logic.Rb.sm=class extends olympe.sc.logic.Fd{R(){return this.j('016ac638085357047a2d')}};olympe.sc.logic.Rb.sm.O=mo('0169b6876a03f14ae61b',olympe.sc.logic.Rb.sm);olympe.sc.logic.Rb.sm.prototype.R.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);let to=null;olympe.sc.logic.Rb.Cm=class extends olympe.sc.logic.Fd{R(){return this.j('016ac63808535703691c')}F(a){if(null===to){let b;to=null!=(b=olympe.V.getParameter('sc.event.experimental'))?b:!1}return to?a.observe(Tn(this)[0]):super.F(a)}};olympe.sc.logic.Rb.Cm.O=mo('0169b6876a03f139d50a',olympe.sc.logic.Rb.Cm);olympe.sc.logic.Rb.Cm.prototype.R.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.Rb.Sm=class extends olympe.sc.logic.Fd{R(){return this.j('016ac63809a9a8e6db96')}X(){return this.D('016ac6380ab003363b3e')}};mo('01646ad602f933b8caaf',olympe.sc.logic.Rb.Sm);olympe.sc.logic.Rb.Sm.prototype.R.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.Rb.Sm.prototype.X.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.logic.Rb.Bk=class extends olympe.sc.logic.Fd{R(){return this.j('016ac6380bd98f1d91a0')}ba(){return this.D('016ac63c589ae38ca3ae')}X(){return this.D('016ac63c5a377fceabaa')}};mo('0168ec42fc01747a98b6',olympe.sc.logic.Rb.Bk);olympe.sc.logic.Rb.Bk.prototype.R.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.logic.Rb.Bk.prototype.ba.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.logic.Rb.Bk.prototype.X.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.logic.Rb.Xg=class extends olympe.sc.logic.Fd{Em(){return this.j('017a7b07b09e3b22c8b4')}Dq(){return this.j('017a7b07ba05807a74b0')}Fm(){return this.D('017a7b0818c12388d731')}Gm(){return this.D('017a7b085146d5e69aec')}tv(){return olympe.C.da.D}};olympe.sc.logic.Rb.Xg.N='017a7b07b09e3b22c8b4';olympe.sc.logic.Rb.Xg.Ic='017a7b07ba05807a74b0';olympe.sc.logic.Rb.Xg.ia='017a7b0818c12388d731';olympe.sc.logic.Rb.Xg.j='017a7b085146d5e69aec';
1194
1194
  olympe.sc.logic.Rb.Xg.O=mo('017a7b07a948e30508fa',olympe.sc.logic.Rb.Xg,olympe.sc.logic.$h);m=olympe.sc.logic.Rb.Xg.prototype;m.Em.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.Dq.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.Fm.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);m.Gm.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);m.tv.K=olympe.C.J.N;olympe.sc.logic.Rb.js=class extends olympe.sc.logic.Fd{R(){return this.j('016ac63c5b3ed0562740')}};mo('016a9766c230916ea5ec',olympe.sc.logic.Rb.js);olympe.sc.logic.Rb.js.prototype.R.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);olympe.sc.query={};olympe.sc.query.Co=class extends olympe.sc.Pg{};olympe.sc.query.Co.O=olympe.dc.oa.j('01631aacd8276ea98491',olympe.sc.query.Co);olympe.sc.query.mr=class extends olympe.dm.Enum{};olympe.sc.query.mr.O=olympe.dc.oa.j('01631aacd8276ea98495',olympe.sc.query.mr);olympe.sc.query.zr=class extends olympe.dm.Enum{};olympe.sc.query.zr.O=olympe.dc.oa.j('01631aacd8276ea98494',olympe.sc.query.zr);olympe.sc.query.Cr=class extends olympe.sc.Pg{};olympe.sc.query.Cr.O=olympe.dc.oa.j('01631aacd8276ea98492',olympe.sc.query.Cr);olympe.sc.query.oc=class extends olympe.dc.CloudObject{};olympe.sc.query.oc.O=olympe.dc.oa.j('01631aacd8276ea98493',olympe.sc.query.oc);olympe.sc.gp=class extends olympe.dc.CloudObject{};olympe.sc.gp.O=olympe.dc.oa.j('018312ceeb3e93618a85',olympe.sc.gp);olympe.sc.workflow={};olympe.sc.workflow.ObjectState=class extends olympe.dc.CloudObject{};olympe.sc.workflow.ObjectState.O=olympe.dc.oa.j('017ffdd8f0b1e31fe138',olympe.sc.workflow.ObjectState);olympe.sc.workflow.ObjectState.workflowProp=olympe.sc.workflow.ObjectState.O.ja('017ffdd8f0b1e31fe13e');olympe.sc.workflow.ObjectState.stateProp=olympe.sc.workflow.ObjectState.O.ja('017ffdd8f0b1e31fe139');olympe.sc.workflow.ObjectState.assigneeProp=olympe.sc.workflow.ObjectState.O.ja('017ffdd8f0b1e31fe13a');
1195
1195
  olympe.sc.workflow.ObjectState.dateTimeProp=olympe.sc.workflow.ObjectState.O.ja('017ffdd8f0b1e31fe13b');olympe.sc.workflow.ObjectState.serializedObjectProp=olympe.sc.workflow.ObjectState.O.ja('017ffdd8f0b1e31fe13d');olympe.sc.workflow.ObjectState.objectRel=olympe.sc.workflow.ObjectState.O.ta('017ffdd8f0b1e31fe13c');olympe.sc.workflow.ObjectState.currentObjectRel=olympe.sc.workflow.ObjectState.O.ta('017ffdd8f0b1e31fe13f');olympe.sc.workflow.Gf=class extends olympe.sc.logic.Fd{uv(){return this.j('017ffe02381f9fac5060')}xv(){return this.j('017ffe02381f9fac5061')}yv(){return this.j('017ffe02381f9fac5062')}zy(){return this.j('017ffe02381f9fac5065')}vv(){return this.D('017ffe02381f9fac5063')}wv(){return this.D('017ffe02381f9fac5064')}};olympe.sc.workflow.Gf.O=mo('017ffde21f5fe0f704ce',olympe.sc.workflow.Gf);olympe.sc.workflow.Gf.j='017ffe02381f9fac5060';olympe.sc.workflow.Gf.Re='017ffe02381f9fac5061';
1196
- olympe.sc.workflow.Gf.ff='017ffe02381f9fac5062';olympe.sc.workflow.Gf.ia='017ffe02381f9fac5065';olympe.sc.workflow.Gf.N='017ffe02381f9fac5063';olympe.sc.workflow.Gf.Ic='017ffe02381f9fac5064';m=olympe.sc.workflow.Gf.prototype;m.uv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.xv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.yv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.zy.K=new olympe.C.J(()=>Map,[]);m.vv.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);m.wv.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.workflow.df=class extends olympe.dm.BrickMetadata{Zc(){return this.Vc(olympe.sc.workflow.Workflow.statesRel.$b(),olympe.sc.workflow.Workflow).ka().concat(['.',this.ka()])}};olympe.sc.workflow.df.O=olympe.dc.oa.j('017ffdc2dda51d46b430',olympe.sc.workflow.df);olympe.sc.workflow.Transition=class extends olympe.dc.CloudObject{D(){return this.lt()}j(){return this.Vc(olympe.sc.workflow.Transition.fromStateRel,olympe.sc.workflow.df)}F(){return this.Vc(olympe.sc.workflow.Transition.toStateRel,olympe.sc.workflow.df)}Zc(){const a=this.Vc(olympe.sc.workflow.Transition.fromStateRel,olympe.sc.workflow.df);return a.Vc(olympe.sc.workflow.Workflow.statesRel.$b(),olympe.sc.workflow.Workflow).ka().concat(['.',a.ka(),'->',this.ka()])}};
1196
+ olympe.sc.workflow.Gf.ff='017ffe02381f9fac5062';olympe.sc.workflow.Gf.ia='017ffe02381f9fac5065';olympe.sc.workflow.Gf.N='017ffe02381f9fac5063';olympe.sc.workflow.Gf.Ic='017ffe02381f9fac5064';m=olympe.sc.workflow.Gf.prototype;m.uv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.xv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.yv.K=new olympe.C.J(()=>olympe.sc.logic.vb,[]);m.zy.K=new olympe.C.J(()=>Map,[]);m.vv.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);m.wv.K=new olympe.C.J(()=>olympe.sc.logic.Gb,[]);olympe.sc.workflow.df=class extends olympe.dm.BrickMetadata{Zc(){return this.Vc(olympe.sc.workflow.Workflow.statesRel.ac(),olympe.sc.workflow.Workflow).ka().concat(['.',this.ka()])}};olympe.sc.workflow.df.O=olympe.dc.oa.j('017ffdc2dda51d46b430',olympe.sc.workflow.df);olympe.sc.workflow.Transition=class extends olympe.dc.CloudObject{D(){return this.lt()}j(){return this.Vc(olympe.sc.workflow.Transition.fromStateRel,olympe.sc.workflow.df)}F(){return this.Vc(olympe.sc.workflow.Transition.toStateRel,olympe.sc.workflow.df)}Zc(){const a=this.Vc(olympe.sc.workflow.Transition.fromStateRel,olympe.sc.workflow.df);return a.Vc(olympe.sc.workflow.Workflow.statesRel.ac(),olympe.sc.workflow.Workflow).ka().concat(['.',a.ka(),'->',this.ka()])}};
1197
1197
  olympe.sc.workflow.Transition.O=olympe.dc.oa.j('017ffdc633219f16beea',olympe.sc.workflow.Transition);olympe.sc.workflow.Transition.processRefProp=olympe.sc.workflow.Transition.O.ja('017ffdc633219f16beec');olympe.sc.workflow.Transition.fromStateRel=olympe.sc.workflow.Transition.O.ta('017ffdc2dda51d46b431');olympe.sc.workflow.Transition.toStateRel=olympe.sc.workflow.Transition.O.ta('017ffdc633219f16beeb');olympe.sc.workflow.Transition.prototype.D.K=new olympe.C.J(()=>olympe.dc.CloudObject,[]);
1198
1198
  olympe.sc.workflow.Transition.prototype.j.K=new olympe.C.J(()=>olympe.sc.workflow.df,[]);olympe.sc.workflow.Transition.prototype.F.K=new olympe.C.J(()=>olympe.sc.workflow.df,[]);olympe.sc.workflow.Workflow=class extends olympe.dm.BrickMetadata{xe(){return olympe.sc.ze.Pe.Fh}F(){return this.ph(olympe.sc.workflow.Workflow.serializationEnabledProp)}j(){return this.Vc(olympe.sc.workflow.Workflow.dataTypeRel,olympe.sc.Bc)}D(){return this.Vc(olympe.sc.workflow.Workflow.initialStateRel,olympe.sc.workflow.df)}};olympe.sc.workflow.Workflow.O=olympe.dc.oa.j('017ffdc010e5bcc9c971',olympe.sc.workflow.Workflow);olympe.sc.workflow.Workflow.serializationEnabledProp=olympe.sc.workflow.Workflow.O.ja('017ffdc010e5bcc9c972');
1199
1199
  olympe.sc.workflow.Workflow.dataTypeRel=olympe.sc.workflow.Workflow.O.ta('017ffdc010e5bcc9c973');olympe.sc.workflow.Workflow.statesRel=olympe.sc.workflow.Workflow.O.ta('017ffdc010e5bcc9c974');olympe.sc.workflow.Workflow.initialStateRel=olympe.sc.workflow.Workflow.O.ta('017ffdc010e5bcc9c975');olympe.sc.workflow.Workflow.prototype.F.K=olympe.C.J.N;olympe.sc.workflow.Workflow.prototype.j.K=new olympe.C.J(()=>olympe.sc.Bc,[]);
@@ -1201,7 +1201,7 @@ olympe.sc.workflow.Workflow.prototype.D.K=new olympe.C.J(()=>olympe.sc.workflow.
1201
1201
  olympe.sc.qa.ob.O=olympe.dc.oa.j('011203300000000adef5',olympe.sc.qa.ob);olympe.sc.qa.ob.ji=olympe.sc.qa.ob.O.ja('011203300000000adef6');olympe.sc.qa.ob.ia=olympe.sc.qa.ob.O.ja('011203300000000adef7');olympe.sc.qa.ob.j=olympe.sc.qa.ob.O.ja('011203300000000adef8');olympe.sc.qa.ob.H=olympe.sc.qa.ob.O.ja('011203300000000adef9');olympe.sc.qa.ob.ba=olympe.sc.qa.ob.O.ja('011203300000000adefa');olympe.sc.qa.ob.X=olympe.sc.qa.ob.O.ja('011203300000000adefb');olympe.sc.qa.ob.D=olympe.sc.qa.ob.O.ja('011203300000000adefc');
1202
1202
  olympe.sc.qa.ob.Z=olympe.sc.qa.ob.O.ja('011203300000000adefd');olympe.sc.qa.ob.N=olympe.sc.qa.ob.O.ja('011203300000000adefe');olympe.sc.qa.ob.R=olympe.sc.qa.ob.O.ja('011203300000000adeff');olympe.sc.qa.ob.F=olympe.sc.qa.ob.O.ja('011203300000000adee0');olympe.sc.qa.ob.pc={INIT:0,PA:1,Tk:2,Sk:3,gn:4,xD:5,Bb:9};m=olympe.sc.qa.ob.prototype;m.Av.K=olympe.C.J.N;m.Kz.K=olympe.C.J.N;m.Lc.K=olympe.C.J.F;m.Fy.K=olympe.C.J.D;m.$y.K=olympe.C.J.D;m.Zy.K=olympe.C.J.D;m.Sf.K=olympe.C.J.D;m.Py.K=olympe.C.J.D;
1203
1203
  m.ny.K=olympe.C.J.D;m.Yy.K=olympe.C.J.D;m.zv.K=olympe.C.J.D;olympe.sc.qa.zm=class extends olympe.sc.qa.Gi{F(a){a.set(olympe.sc.xa.j.ro,!0);super.F(a)}wa(){return!0}};olympe.sc.qa.zm.O=olympe.dc.oa.j('0113032000000aca1102',olympe.sc.qa.zm,olympe.sc.P.Ca);olympe.sc.qa.cf=class extends olympe.sc.qa.Qc{j(){return(new olympe.dc.vk(this.W(),olympe.sc.qa.ob)).bb(olympe.sc.qa.cf.N).Xi().Kc()}};olympe.sc.qa.cf.O=olympe.dc.oa.j('011203300000000adef3',olympe.sc.qa.cf);olympe.sc.qa.cf.N=olympe.sc.qa.cf.O.ta('011203300000000adef4');S(olympe.sc.qa.ob.O,olympe.sc.qa.cf.N);
1204
- olympe.sc.qa.cf.O.j=(a,b,c)=>{b=dm(a,b||'New Service Application model',olympe.sc.qa.cf,olympe.sc.qa.zm);a.Oa(olympe.sc.qa.Qc.j,b,c);c=a.create(olympe.sc.qa.ob).W();a.Oa(olympe.sc.qa.cf.N,b,c);return b.W()};olympe.sc.qa.cf.prototype.j.K=new olympe.C.J(()=>olympe.sc.qa.ob,[]);olympe.sc.eh=class extends olympe.dc.CloudObject{static get(){return olympe.dc.CloudObject.get('011203300000000adf0f')}};olympe.sc.eh.O=olympe.dc.oa.j('011203300000000adf00',olympe.sc.eh);olympe.sc.eh.D=olympe.sc.eh.O.ja('011203300000000adf01');olympe.sc.eh.j=olympe.sc.eh.O.ja('011203300000000adf02');olympe.sc.eh.F='011203300000000adf0f';olympe.sc.Bg={};olympe.sc.Bg.zz=a=>{var b=a.j;const c=olympe.dc.ga();var d=null;var e=null===go;for(const f of b.Xc())if((b=f.Wb())&&f.D()&&f.jb()===olympe.dc.Ia.SERVER&&Tl(a,f.tag())&&c.Nb(b,olympe.sc.Bc)){if(!e)throw new olympe.dc.cr;let g,h;null==d&&(d=null,null!==fo?d=fo:'string'===typeof eo&&(d=olympe.dc.td.from(eo).bb(olympe.sc.qa.Qc.j).bb(olympe.sc.uf.j.$b()).Dc()),d=null==(g=d)?void 0:g.W());d=null!=(h=d)?h:null;if(null===d)throw Error(`No business container for new instance of ${olympe.dc.ea(b)}`);a.Oa(olympe.sc.uf.D.W(),
1204
+ olympe.sc.qa.cf.O.j=(a,b,c)=>{b=dm(a,b||'New Service Application model',olympe.sc.qa.cf,olympe.sc.qa.zm);a.Oa(olympe.sc.qa.Qc.j,b,c);c=a.create(olympe.sc.qa.ob).W();a.Oa(olympe.sc.qa.cf.N,b,c);return b.W()};olympe.sc.qa.cf.prototype.j.K=new olympe.C.J(()=>olympe.sc.qa.ob,[]);olympe.sc.eh=class extends olympe.dc.CloudObject{static get(){return olympe.dc.CloudObject.get('011203300000000adf0f')}};olympe.sc.eh.O=olympe.dc.oa.j('011203300000000adf00',olympe.sc.eh);olympe.sc.eh.D=olympe.sc.eh.O.ja('011203300000000adf01');olympe.sc.eh.j=olympe.sc.eh.O.ja('011203300000000adf02');olympe.sc.eh.F='011203300000000adf0f';olympe.sc.Bg={};olympe.sc.Bg.zz=a=>{var b=a.j;const c=olympe.dc.ga();var d=null;var e=null===go;for(const f of b.Xc())if((b=f.Wb())&&f.D()&&f.jb()===olympe.dc.Ia.SERVER&&Tl(a,f.tag())&&c.Nb(b,olympe.sc.Bc)){if(!e)throw new olympe.dc.cr;let g,h;null==d&&(d=null,null!==fo?d=fo:'string'===typeof eo&&(d=olympe.dc.td.from(eo).bb(olympe.sc.qa.Qc.j).bb(olympe.sc.uf.j.ac()).Dc()),d=null==(g=d)?void 0:g.W());d=null!=(h=d)?h:null;if(null===d)throw Error(`No business container for new instance of ${olympe.dc.ea(b)}`);a.Oa(olympe.sc.uf.D.W(),
1205
1205
  d,f.tag())}};
1206
1206
  olympe.sc.Bg.Mz=a=>{const b=a.j,c=olympe.dc.ga();for(const d of b.Xc()){const e=d.Wb();e&&!d.Bd()&&c.Nb(e,olympe.sc.Bc)&&d.Ab().forEach((f,g)=>{if(f instanceof olympe.dc.wc){const l=b.Wc(f.W());if(null===l)throw Error(`Try to assign an instance as complex property which is not created within the same transaction: ${f.W()}`);var h;f=null!=(h=null==l?void 0:l.Wb())?h:null;h=l.tag();let n;if(f===olympe.dc.ea(olympe.sc.Ud)){h=l.Ib(olympe.sc.Ud.j);if(!h)throw Error('No object reference found for new ObjectRef');var k;
1207
1207
  let p;f=null!=(p=null==(k=b.Wc(h))?void 0:k.Wb())?p:c.model(h)}if(c.Xf(f,olympe.dm.Ke)){k=nn(f);let p;n=null!=(p=l.Pa(k.W()))?p:c.Pa(h,k)}if(void 0===n)throw Error(`Try to set a complex property to an instance of a DataType: ${c.name(e)} (${e})`);a.$c(d.tag(),new Map([[g,n]]));Yl(a,l.tag(),olympe.dc.Lb.Ec)}})}};
@@ -1215,7 +1215,7 @@ olympe.sc.Ya.prototype['delete']=olympe.sc.Ya.prototype.delete;olympe.sc.Ya.prot
1215
1215
  olympe.zc.Ta=class{constructor(a,b){this.j=a;this.G=b;this.D=null;this.F='';this.G.info('HC Manager will execute application registered as:',this.j)}Oj(a,b,c=''){b||(b='default');b===this.j?(null===this.D?this.G.log('Application',c,'designated to be launched'):this.G.log('OVERRIDE: Application',c,'designated to be launched'),this.D=a,this.F=c):this.G.debug('ignoring application:'+c+' as it is registered under name '+b+' and not '+this.j)}run(){null!==this.D?(this.G.info('Running application:',this.F),
1216
1216
  this.D.run()):this.G.error('No app registered under name: '+this.j)}};olympe.zc.Oj=function(a,b,c='default'){const d=a.Wa();c?d.debug('Pre-registering application '+b+' under name '+c+' (use '+olympe.zc.Config.ie+'='+c+' to start it)'):d.debug('Pre-registering application '+b+' as default one');a.yd(olympe.zc.P.Ea).config(c,[b],(e,f)=>f.Oj(e,c,b),e=>vo(e,c),'olympe.hc.registerApp')};olympe.zc.P={Ea:'hc.Manager',Ca:'hc.Logger'};olympe.zc.Config={ie:'hc.app',Wp:'hc.globalToken'};olympe.V.config(function(a){E(a,olympe.zc.Config.ie,'default');E(a,olympe.zc.Config.Wp,!1);D(a,olympe.zc.P.Ca,[olympe.ha.P.Ea],b=>b.dd('hc'));D(a,olympe.Eb.P.bh,[new olympe.V.ma(olympe.zc.Config.ie)],b=>b);D(a,olympe.auth.P.Nl,[olympe.Eb.P.bh,new olympe.V.ma(olympe.zc.Config.Wp)],(b,c)=>new olympe.auth.Bo(c?'':b));C(a,olympe.zc.P.Ea,olympe.zc.Ta,new olympe.V.ma(olympe.zc.Config.ie),olympe.zc.P.Ca)},'olympe.hc');
1217
1217
  olympe.V.run([olympe.zc.P.Ea],a=>a.run(),'olympe.hc');olympe.sc.nb={};function wo(a){a.X=a.F.H(()=>u(function*(){return xo(a)}),'Stop application')}function yo(a){a.R=a.F.j(()=>olympe.C.Qa(a.Z)===olympe.C.da.D?Promise.resolve('The application is started'):Promise.reject('The application is not started'),'Application health check',olympe.host.Le.j.READINESS)}
1218
- function zo(a){if(a.wa)return a.G.debug('Sending getContext request'),Mi(a.Ha).then(()=>{a.G.debug('synchronisation request successful');var f=a.j;go=null;eo=f}).catch(f=>{a.G.error('failed to synchronise (authenticated) with server: '+f.message)});const b=rn(a.D);!b&&ml();a.G.debug((b?'PULLING':'SUBSCRIBING')+' application '+a.j);const c=a.D.Db(),d=new Promise((f,g)=>{const h=olympe.dc.ga(),k=new olympe.C.Yb('Primordial Subscription Context',c);Ai(k,a.j,l=>{l=h.xi(l)?l:h.model(l);return null!==l&&
1218
+ function zo(a){if(a.wa)return a.G.debug('Sending getContext request'),Mi(a.Ha).then(()=>{a.G.debug('synchronisation request successful');var f=a.j;go=null;eo=f}).catch(f=>{a.G.error('failed to synchronise (authenticated) with server: '+f.message)});const b=rn(a.D);!b&&ml();a.G.debug((b?'PULLING':'SUBSCRIBING')+' application '+a.j);const c=a.D.Db(),d=new Promise((f,g)=>{const h=olympe.dc.ga(),k=new olympe.C.Zb('Primordial Subscription Context',c);Ai(k,a.j,l=>{l=h.xi(l)?l:h.model(l);return null!==l&&
1219
1219
  h.Nb(l,olympe.sc.Ch)},{nd:b?olympe.dc.la.oc.Sg:olympe.dc.la.oc.xf,lo:!0,qt:!0}).subscribe(rxjs.Subscriber.create(c.tc(()=>{h.Nb(a.j,olympe.sc.qa.Qc)?(a.Ua.X(a.j,b),f()):Nd(a.N)?g(Error(`The specified application tag (${a.j}) is not an application or does not exist`)):(k.destroy(),a.N.connect().catch(l=>{g(Error(`Failed to load the app while offline, you might want to try again when online: ${l}`))}))}),l=>g(l)))}),e=new Promise(f=>{olympe.C.Yc([a.ia.we()],g=>{olympe.dc.la.re(g,olympe.dm.User,olympe.dc.Ia.SERVER).observe(c,
1220
1220
  {nd:olympe.dc.la.oc.Gk,hl:'__code-as-data__'}).subscribe(()=>f())})});return Promise.all([d,e]).then(()=>{if(a.ba)return Ao(a);Ao(a).then(()=>{})})}
1221
1221
  function Bo(a){a.G.info('Starting application '+a.j);const b=olympe.dc.ga();if(0<a.j.length){const c=Qf(b,a.j,a.D.Db().tc((f,g)=>{if(f)if(f=Vn(g),f instanceof olympe.sc.qa.Gi){a.G.debug('application retrieved: running');g=on(a.D,f);const h=new olympe.sc.$a.mw(a.H);ob(a.H,()=>Bn(a.D.state,h));pb(a.H,()=>{var k=h.T();return Dn(a.D.state,k)});a.lb&&a.H.start();f.run(g);'string'===typeof a.wb&&(new olympe.sc.ae).ba(f.W(),g,a.G);g.Nt(olympe.sc.xa.j.ro).then(()=>{var k;null==(k=d)||k.cancel();a.Z.update(olympe.C.da.D);
@@ -1225,8 +1225,8 @@ olympe.sc.nb.en=class{constructor(a,b,c,d,e,f,g,h,k,l){this.G=a;this.ia=b;this.N
1225
1225
  c=olympe.L.vc.j.Ff,d=olympe.L.vc.j.Ac;olympe.C.Yc([this.N.getState()],e=>{switch(e){case b:case c:this.G.debug('Server session opened or working offline, start the application');a||(a=!0,zo(this).then(olympe.C.Za().tc(()=>Bo(this))));break;case d:this.G.debug('Impossible to open a connection to the orchestrator and offline mode is disabled.')}})}};olympe.sc.nb.en.j='app_instance';olympe.sc.nb.en.ya=[olympe.zc.Vt];olympe.sc.nb.vw=class{constructor(a,b,c,d){this.G=a;this.D=b;this.F=d.get('httpManifestPath');this.j=d.get('manifestCommon');if(!this.j)this.j={};else if('string'===typeof this.j)try{this.j=JSON.parse(this.j)}catch(e){this.G.warn('Invalid manifest common config'),this.j={}}}start(){const a=b=>{this.G.debug('Request URL',b.j());const c=(new URL(b.j())).searchParams.get('origin');if(c)return c;b=b.Dj();this.G.debug('Request headers',b);return b.origin?b.origin:b.iA?(new URL(b.iA)).origin:b[olympe.net.ra.Headers.Mp]&&
1226
1226
  b[olympe.net.ra.Headers.Np]?b[olympe.net.ra.Headers.Np]+'://'+b[olympe.net.ra.Headers.Mp]:null};this.D.D('manifest',`${this.F}/:${'appTag'}`,[olympe.net.ra.Gd.GET],(b,c)=>{const d=this;return u(function*(){var e=c.get('appTag');d.G.debug('Processing request to serve manifest for app',e);if(20!==e.length)return new olympe.net.rd('Invalid appTag',olympe.net.ra.Ub.Rl);try{var f=yield olympe.dc.la.re(e,olympe.sc.qa.Qc).mb()}catch(h){return new olympe.net.rd(`Something went wrong: ${'string'===typeof h?
1227
1227
  h:h.message}`,olympe.net.ra.Ub.Rl)}if(0===f.size())return new olympe.net.rd('App not found',olympe.net.ra.Ub.Zi);var g=a(b);f=f.Kc();g={name:f.name(),short_name:f.name(),id:e,start_url:g?`${g}?hc.app=sc.runtime&sc.app=${e}`:void 0,display:'standalone',backgroundColor:'#fff',icons:g?[{src:`${g}/images/logo.svg`,sizes:'150x150',type:'image/png'},{src:`${g}/images/logo.png`,sizes:'1024x1024',type:'image/png',purpose:'maskable any'}]:void 0};f=olympe.V.getParameter(`app.manifest.${e}`);if(!f)f={};else if('string'===
1228
- typeof f)try{f=JSON.parse(f)}catch(h){d.G.warn(`Invalid manifest app config for app: ${e}`),f={}}e=Object.assign({},g,d.j,f);return new olympe.net.rd(JSON.stringify(e),olympe.net.ra.Ub.Uh,void 0,{'content-type':'application/json'})})}).catch(()=>this.G.error('Error while starting the RuntimeHTTPService'));this.G.debug('Started RuntimeHTTPService')}};function Co(a){var b=olympe.dm.DataSource.SERVER;const c=olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.dm.Ed.F.$b()).bb(olympe.dm.Ed.j).Dc();a=olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.dm.hb.D).Dc();return c.concat(a).has(b)}
1229
- olympe.sc.nb.Wk=class extends olympe.dc.sources.Wk{R(a){return this.db.Nb(a,olympe.sc.Bc)}X(a,b){if(!this.H){super.init();var c=olympe.dc.td.from(a).bb(olympe.sc.qa.Qc.j).Dc();if(!(c instanceof olympe.dm.hb))throw Error(`Impossible to initialize the source solver for the application ${a}: no project is linked to it`);b=b?olympe.dc.la.oc.Sg:olympe.dc.la.oc.xf;dl(this,c,b);c=new olympe.C.Yb('deployed data sources');olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.ia).observe(c,{nd:b}).subscribe(d=>{const e=
1228
+ typeof f)try{f=JSON.parse(f)}catch(h){d.G.warn(`Invalid manifest app config for app: ${e}`),f={}}e=Object.assign({},g,d.j,f);return new olympe.net.rd(JSON.stringify(e),olympe.net.ra.Ub.Uh,void 0,{'content-type':'application/json'})})}).catch(()=>this.G.error('Error while starting the RuntimeHTTPService'));this.G.debug('Started RuntimeHTTPService')}};function Co(a){var b=olympe.dm.DataSource.SERVER;const c=olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.dm.Ed.F.ac()).bb(olympe.dm.Ed.j).Dc();a=olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.j).bb(olympe.dm.hb.D).Dc();return c.concat(a).has(b)}
1229
+ olympe.sc.nb.Wk=class extends olympe.dc.sources.Wk{R(a){return this.db.Nb(a,olympe.sc.Bc)}X(a,b){if(!this.H){super.init();var c=olympe.dc.td.from(a).bb(olympe.sc.qa.Qc.j).Dc();if(!(c instanceof olympe.dm.hb))throw Error(`Impossible to initialize the source solver for the application ${a}: no project is linked to it`);b=b?olympe.dc.la.oc.Sg:olympe.dc.la.oc.xf;dl(this,c,b);c=new olympe.C.Zb('deployed data sources');olympe.dc.la.from(a).bb(olympe.sc.qa.Qc.ia).observe(c,{nd:b}).subscribe(d=>{const e=
1230
1230
  new olympe.dc.Ya;d.zj().forEach(f=>{e.Oa(olympe.dm.DataSource.Nj,this.j,f)});d.Fj().forEach(f=>{e.hc(olympe.dm.DataSource.Nj,this.j,f)});e.mb()})}}};function Do(a){a.j||(a.j=setInterval(()=>{a.flush().catch(()=>{})},a.Z),'function'===typeof a.j.unref&&a.j.unref())}function Eo(a,b){return u(function*(){var c=N(re(a.R,olympe.L.Ob.Bp),olympe.net.ra.Gd.Rg,JSON.stringify(b),olympe.net.ra.ResponseType.mn);const d=de(a.N);O(c,{[olympe.net.ra.Headers.Eh]:olympe.net.ra.bk.JSON,[olympe.net.ra.Headers.Ql]:d.zd()});c=yield zj(a.X,c);a.G.trace('[Event Monitor] Response:',c)})}
1231
1231
  olympe.sc.zu=class{constructor(a,b,c,d,e,f,g,h){this.G=a;this.X=b;this.N=c;this.R=d;this.H=e;this.F=f;this.Z='number'===typeof g?Math.max(1E3,g):36E5;this.host=h;this.D=new Map;this.j=null;this.F&&Do(this)}isEnabled(){return this.F}track(a,b){this.G.trace('[Event Monitor] tracking',a,b,this.F);this.F&&(a=`${a}||${b}`,b=this.D.get(a)||0,this.D.set(a,b+1))}flush(){const a=this;return u(function*(){if(0!==a.D.size){a.G.debug('[Event Monitor] flushing');var b=(new Date).toISOString(),c=[],d=olympe.dc.ga().name(a.H);
1232
1232
  for(const [e,f]of a.D.entries()){const [g,h]=e.split('||');c.push({host:a.host,serviceAppName:d,eventType:g,eventName:h,count:f,timestamp:b})}try{yield Eo(a,c),a.G.debug('[Event Monitor] flush done'),a.D.clear()}catch(e){a.G.warn('[EventMonitor] flush failed:',(null==e?void 0:e.message)||e)}}})}destroy(){this.j&&(clearInterval(this.j),this.j=null);this.D.clear()}};olympe.sc.nb.P={mg:'sc.runtime.Main',bf:'sc.runtime.SourceSolver',Mr:'sc.runtime.appConfig',Pr:'sc.runtime.runtimeHTTPServiceConfig',Nr:'sc.runtime.RuntimeHTTPService',er:'sc.runtime.OfflineAppConfig',Cp:'sc.runtime.EventMonitor'};olympe.sc.nb.Config={hq:'app.httpManifestPath',Kq:'app.manifest.common',Gq:'sc.loadBusinessContainer',Dp:'eventMonitor.enabled',Ep:'eventMonitor.flushFrequency'};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olympeio/runtime-node",
3
- "version": "9.11.12",
3
+ "version": "9.11.13",
4
4
  "description": "Olympe Node Runtime Environment",
5
5
  "types": "types/index.d.ts",
6
6
  "dependencies": {