nope/CHANGELOG.md

352 lines
17 KiB
Markdown

# 1.0.12
Inital commit, which is working with the browser
# 1.0.25
- Fixes:
- log-to-file: is now storing the last logs as well
- nope-package-loader: is transmitting the correct parameters.
- Optimazations:
- nope-package-loader: now storing elements with stringifyWithFunctions and is capable to read functions.
- pub-sub-system: Adding partial changes of the topic structure. This speeds up the entire system.
# 1.0.26
- Fixes:
- pub-sub-system: Fixed `_notify` and `_updatePartialMatching`
- Added:
- pub-sub-system: Listeners receive now: topicOfContent (the path of the data that is extracted), topicOfChange (the path of the data that emitted teh update), topicOfSubscription (the subscription.),
- nope repl: Added the context `nope`
# 1.0.27
- Fixes:
- helpers.jsonSchemaMethods: -> renamed flatten to nested.
- Added:
- helpers.descriptors: -> parseFunctionToJsonSchema
- helpers.jsonSchemaMethods: -> added `flattenSchema` and `reduceSchema`. This Function will create a nested JSON-Schema.
# 1.0.28
- Fixes:
- communication.layer.events: -> fixing receivingOwnMessages.
- runNopeBackend -> if io-server is used, no configuration file is loaded
# 1.0.29
- Added:
- helpers.limit: limitedCalls -> Functinality to limit parallel calls.
# 1.0.30
- Added:
- helpers.limit: getLimitedOptions -> Helper to get the correspondings options
- helpers.limit.spec: Adding test cases
# 1.0.31
- Modified:
- helpers.singleton: Prevent using symbols, to make global version work with local version.
# 1.0.32
- Fixes:
- helpers.singleton: work with `Symbol.for` --> Can be used in different systems now.
- symbols.symbols: work with `Symbol.for` --> Can be used in different systems now.
# 1.0.33
- Modified:
- cli.runNopeBackend: added the flag "noBaseServices" to prevent providing the base-services
- communication.getLayer.nodejs\browser: adding default value for logger
- dispatcher.getDispatcher: changed option "constructorClass" to "dispatcherConstructorClass"
- helpers.limit.spec: Adapted Timings
- loader.getPackageLoader.nodejs\browser: Changed the options.
# 1.0.34
- Fixes:
- dispatchers.ConnectivityManager.ConnectivityManager: fixing isMaster- Fixed
- Modified:
- types.nope.ConnectivityManager.interface:
- INopeStatusInfo.upTime =renamed=> connectedSince
- INopeConnectivityManager added => "upTime" and "connectedSince"
- dispatchers.ConnectivityManager.ConnectivityManager:
- INopeConnectivityManager added "connectedSince" (which is expressed in the adapted Timestamp.)
- Added:
- dispatchers.ConnectivityManager.ConnectivityManager.spec: Added Master - Test
# 1.0.35
- Fixes:
- dispatchers.ConnectivityManager.ConnectivityManager: fixing isMaster. Now deals corecctly with multiple masters.
- Modified:
- cli.runNopeBackend: prevented io-server to be a master.
- dispatcher.getDispatcher: Adapted input to `options`. This includes all options
- dispatcher.core.NopeCore: Add flag Displising. This shows, if the dispatcher is getting disposed
- loader.getPackageLoader.browser: Adapted input to `options`. This includes all options
- loader.getPackageLoader.nodejs: Adapted input to `options`. This includes all options
- types.nope.ConnectivityManager.interface:
- INopeStatusInfo.isMasterForced: Flag if the master mode is forced
- INopeStatusInfo.isMaster: Flag if the node is a master. this could be forced or selected
- types.nope.nopeCore.interface:
- INopeCore.disposing: A Flag, that indicates, that the core is disposing.
- types.nope.nopeDispatcher.interface:
- INopeDispatcherOptions: Utilizes `INopeINopeConnectivityOptions` now.
- dispatchers.ConnectivityManager.ConnectivityManager.spec:
- Added test for forced masters.
- helpers.arrayMethods: Added Typings for `minOfArray`
# 1.0.36
- Fixes:
- Small fixes in the imports of some items in `module.BaseModule.injectable`; `module.GenericWrapper.injectable`; `helpers.descriptors` to make shure, the `nope.d.ts` for the browser is compiled.
# 1.1.0
- Added:
- Added gui defintion files in `types.ui` containing:
- rendering callback options
- base layout based helpers,
- provided libraries
- Added dev-depencies for libraries.
- added `ui.loader` a backend component to readin the ui.
# 1.1.1
- Added:
- Added `internalInstances: INopeObservable<string[]>` to `InstanceManager`.:
- Added dev-depencies for libraries.
- Modified:
- Modified `addAllBaseServices` now includes some options, which can be used to determine the specific service to load.
# 1.2.0
- Added:
- `lib\cli\nope` adding scan for ui service
- `lib\decorators\container`: Main Container, holding all `methods` and `classes`. Use `getCentralDecoratedContainer()` to get this decorator.
- `types\nope\nopePackage.interface` added `IClassDescription` which contains the class description used in the Package Description.
- `logger\nopeLogger`: added methods: `enabledFor`, `enableFor`, `shouldLog`
- `package.json`: installed types of `ace` text editor.
- `ui\helpers.browser`: Created `convertInstanceRenderPage` and `IUiDefinition`
- `ui\helpers.nodejs`: Added a Helper to write the Ui-File (`writeUiFile`) and parse its arguments (`readInwriteUiFileArgs`)
- `ui\index.*`: Crated the corresponding exports.
- Modified:
- `lib\decorators\*` Adding the main `container` where every function, service method etc is added. All decorators now safe the decorated elements in the container.
- `helpers\json`: Adding `BEGIN_STR` and `END_STR` for parsing functions as constants.
- `logger\eventLogging`: simplify `useEventLogger`
- `logger\index.browser`: Adating exports.
- `loader\loadPackages`: Modifing `IPackageConfig` now extends Partial the `IPackageDescription`
- `types\ui\editor\IEditPage`: adapting Type of `getData` to `T`->`any`. Adapting the return of `getPorts` (The Ports will be generated in the ui then)
- `types\ui\editor\helpers.interface`: Adapting the `w2ui` and added `w2uiHelpers` and added `ace`. Rearanging `IRenderData` element. to compact the data.
- `types\ui\editor\render.callbacks`: Rearange the Generic Type of `TRenderInstancePage` and Renaming `TCreatorPage` to `TInstanceManagerPage`. Adapting the `option` of `TInstanceManagerPage` regarding the `createInstance` and `instances`
- `types\ui\editor\index`: Adapting the Exports.
- `lib\index.browser`: Exporting `ui` elements
- `lib\index.nodejs`: Exporting `ui` elements
- `lib\types\index`: Exporting `ui` elements
- Fixes:
- `types\nope\nopeInstanceManager.interface`: Fixing Type of createInstance. Now the Type `I` extends `INopeModule` instead of being set to `IGenericNopeModule`
# 1.2.1
- Added:
- `types\ui\helpers.interface`: Added the ui section in `IRenderData`. This contains the following props: `fullscreen` (INopeObservable<boolean>) to controll the fullscreen \ ge the state. Additionally the functions `openFullscreen`, `closeFullScreen` and `getTheme` have been added. Added type `IUiTheme`
- Modified:
- Renamed `IEditPage` to `IServiceEditPage`
- Renamed `NODE_TYPE_COMPOSED` to `NODE_TYPE_GROUP`
- Adapted `TRenderConfigureServicePage`, `TRenderInstancePage` and `TInstanceManagerPage` by adding `Extension`-Type
- Adapted `TRenderFunction` removing the args setting.
# 1.2.2
- Modified:
- renaming the following constants in `lib\types\ui\editor\INodes`:
- NODE_TYPE_CONSTANT = "node:data:constant";
- NODE_TYPE_DATA_TO_TOKEN = "node:logic:data-to-token";
- NODE_TYPE_FLOW_OPERATION = "node:logic:flow";
- NODE_TYPE_PLACE = "node:logic:place";
- NODE_TYPE_TOKEN_TO_DATA = "node:logic:token-to-data";
- NODE_TYPE_TRANSITION = "node:logic:transition";
- NODE_TYPE_VAR = "node:data:constant";
- NODE_TYPE_MODULE = "node:module";
- updating `TServiceGetPortsReturn` (adding `label` and removing `type`)and `IServiceEditPage` (remove `getPorts`) in `lib\types\ui\editor\IServiceEditPage`
- relocating `IUiDefinition` to `lib\types\ui\helpers.interface`
- influences `lib\ui\helpers.browser` and `lib\ui\helpers.nodejs`
# 1.3.0
- Fixes:
- Small Syntax-Fixes for better parsing.
- Added:
-`py-helpers`: Added a Parser, which will create a Tree and then will be used to transpile the coresponding ast.
# 1.3.1
- Fixes:
- `py-helpers`: Now using correct elements.
- Small comments etc.
# 1.3.2
- Fixes:
- `helpers\objectMethods`: The function `convertData` no converts not matching items as well
- `helpers\objectMethods`: The function `tranformMap` no works with empty pathes like `""`
# 1.3.3
- Fixes:
- `dispatcher\instanceManager\InstanceManager`: Fixing the Mapbased item
- `dispatcher\RpcManager\RpcManager`: Fixing the Mapbased item
# 1.3.4
- reverting 1.3.3
- Fixes:
- `dispatcher\instanceManager\InstanceManager`: Fixing the Mapbased item
- `dispatcher\RpcManager\RpcManager`: Fixing the Mapbased item
- `helpers\mapMethods*`: Fixing `extractUniqueValues` and some tests. If you want to extract the data of an array please use `+`
- `helpers\mergeData*`: Fixing the Mapbased item
- `helpers\objectMethods*`: Fixing `convertData` function
# 1.3.5
- reverting 1.3.3
- Added:
- `helpers\stringMethods`: Added the function `varifyString`
- Modified:
- `dispatcher\instanceManager\InstanceManager`: Adapting the name of the instance to use a valid instance name.
- `dispatcher\rpcManager\rpcManager`: Adapting the name of the service to use a valid service name.
- `cli\runNopeBackend`: Adapting the name of the service to use a valid service name.
# 1.3.6
- Added:
- `cli\runNopeBackend`: Added the a helper to add varify the `name`. (see modifications in `dispatcher\InstanceManager\InstanceManager`, `dispatcher\RpcManager\NopeRpcManager`)
- Modified:
- `helpers\stringMethods`: added function `union` and `difference`.
- `helpers\setMethods`: added function `varifyString`.
- `types\nope\nopeDispatcher.interface`: Added option `forceUsingValidVarNames`
- Fixes:
- `types\nope\nopeInstanceManager.interface`: Fixed the typing of `getInstancesOfType` and `createInstance`
# 1.3.7
- Fixes:
- `helpers\mapMethods`: Fixing `tranformMap`. Now correctly assigning `onlyValidProps`
# 1.3.8
- Modified:
- `helpers\limit`: Now providing an logger level in the options, results in creating a logger and logging the desired messages in the provided level.
# 1.3.9
- Fixing:
- `helpers\limit`: Now enrows all functions provided.
# 1.3.10
- Modified:
- `helpers\limit`: Adding parameter `assignControlFunction` to assing the controll function.
- `helpers\index`: modified the export of the `limit` stuff.
- Added:
- `helpers\functionMethods*`: Added helpers for functions
# 1.3.11
- Modified:
- `helpers\functionMethods`: Adding `asnyc` detection
# 1.3.12
- Modified:
- `helpers\limit`: added the option `minDelay`. If provided, the calles are ensured to be delayed with this options. If `0` or smaller -> no delay is added.
# 1.3.13
- Fixes:
- `cli\runNopeBackend`: Fixing parameter `preventVarifiedNames` no works correctly.
# 1.3.14
- Fixes:
- `helpers\ui\helpers.nodejs`: Adding the option `upload-ui`
- `helpers\ui\helpers.nodejs`: Adding the option `upload-ui`
# 1.4.0
- Modified:
- asyncified all ui-related services.
- Adapted ui-defintion of functions:
- `autoGenBySchema` Helper to enable auto generating a configuration
- `requiresProviderForRendering` Flag to indicate, that rendering the service configuration requires a provider itself. This for instance is the case, if some needs to be called.
- `types\ui\editor\IServiceEditPage.ts`: Asnycify the Calls
- `types\ui\editor\render.callbacks.ts`: Asnycify the Calls
# 1.4.1
- Modified:
- loading all files related to `*.functions.js`
- Adapted the following files to implement that behavior:
- `getCentralDecoratedContainer` in `lib\decorators\container.ts` -> now provides services as Map
- `exportFunctionAsNopeService` in `lib\decorators\functionDecorators.ts` to work with the map.
- `loadFunctions` in `lib\loader\loadPackages.ts` to match the interface of `loadPackages` and add the functions to the package-loader.
- added the function `addDecoratedElements` in the package-loader and the interface.
# 1.4.2
- Fixes:
- Fixing time based issue in `ConnectivityManager` (using the now synced time for checkups)
- `dispatchers.ConnectivityManager.ConnectivityManager`: fixing `_checkDispatcherHealth`
- Fixing `extractUniqueValues` now it is possible to use different pathes for the `key` and `value`
- `lib\helpers\mapMethods.ts` has been adapted
- `lib\pubSub\nopePubSubSystem.ts` contains the following fixes:
- fixing typo of method `updateMatching`
- Modified:
- `lib\pubSub\nopePubSubSystem.ts`:
- throws error if `register` method doest not contain a topic.
- Adapted the behavior of `_patternbasedPullData`. If no default default value is present -> the function returns an empty array.
# 1.4.3
- Fixes:
- Fixing time based issue in `ConnectivityManager` (using the now synced time for checkups)
- `dispatchers.ConnectivityManager.ConnectivityManager`: fixing `_checkDispatcherHealth`
- Fixing `extractUniqueValues` now it is possible to use different pathes for the `key` and `value`
- `lib\helpers\mapMethods.ts` has been adapted
- `lib\pubSub\nopePubSubSystem.ts` contains the following fixes:
- fixing typo of method `updateMatching`
- Modified:
- Adapted the event-names of the communication. Now starts with lower chars.
- Code clean ups:
- removed `_communcatorCallback` from `dispatcher\RpcManager\NopeRpcManager.ts`
- renamed `quite` to `quiet`
- adapted internal methods of `NopeRpcManager`:
- added: `_cancelHelper`
- > Now the `target`in the Request segement is provided every time!
- renamed `_partialMatchingUpdate` to `_updatePartialMatching`
- adapted `NopePubSub`:
- renamed parameter `mqttBasedPatternSubscriptions` to `mqttPatternBasedSubscriptions`
- `helpers\path` -> in `_getLeastCommonPathSegment` we only iterate over the avaible keys.
# 1.4.4
- Modified:
- Renamed the decorator `exportFunctionAsNopeService` -> `exportAsNopeService` and the Interface `IexportFunctionAsNopeServiceParameters` -> `IexportAsNopeServiceParameters`
- `NopeInstanceManager` and `GenericWrapper`: Now receives a factory to generate the a `NopeEventEmitter`:
- This affects a lot packages.
- `NopeModule`:
- renamed `listFunctions` to `listMethods`
- renamed `functions` is now called `methods`
- The Description format is being updated (`functions` is now called `methods`)
- Fixes:
- `NopeModule`:
- Now disposes Emitters as Properties as well
- `getIdentifierOf` checks event emitters as well now.
- `GenericWrapper`:
- Now automatically registers emitters as well.
- Added:
- `NopeModule`: Added the method `listEvents` (to show the available Emitters registered as Properties.)
# 1.4.5
- Modified:
- `lib\dispatcher\ConnectivityManager\ConnectivityManager.ts`:
- Status is only send if required (if no other item)
- Dispatcher Health is only checked if required.
- `lib\dispatcher\InstanceManager\InstanceManager.ts`:
- Made: `getServiceName` public
- `lib/dispatcher/RpcManager/NopeRpcManager.ts`:
- The following functions are now async:
- `_sendAvailableServices` -> it is awaited in some functions now (hasnt before)
- `unregisterService` -> now returns a boolean for sucess
- Added:
- `lib\demo\instances`: Added demo elements. (Instances.)
# 1.4.6
- Fixes:
- `lib\dispatcher\ConnectivityManager\ConnectivityManager.ts`:
- Fixing Master Assignment.
- Only sending one Status on init.
- `lib/dispatcher/InstanceManager/InstanceManager.ts`:
- Fixing pathes of `constructors` variable. Now `amountOf` etc is working
- Fixing pathes of `constructorExists`. Now working with Type-Name.
- Only sending one Status on init.
- `lib/helpers/mapMethods.ts`:
- Fixing `tranformMap` in the case of only a `pathExtractedValue` or `pathExtractedKey` is given.
- `lib/helpers/objectMethods.ts`:
- fixing `rgetattr` -> Now correctly returns "null" in all cases.
- `lib\demo`:
- Fixing imports of demo instances.
- Modified:
- `lib\types`:
- renamed `IFunctionOptions` to `IServiceOptions`
- `lib/types/nope/nopeModule.interface.ts`:
- `listMethods` now returns a different array, where the attribute is named `method` instead of `func` -> Adaptions affect `BaseModule` and `GenericModule`
- Added:
- Added Tests for the Properties of NopeRpcManager, NopeConnectivityManager