@lionweb/core
TypeScript icon, indicating that this package has built-in type declarations

0.6.4 • Public • Published

The core package

license CI npm

An NPM package that can be added to a Node.js/NPM codebase as follows:

$ npm add @lionweb/core

It contains:

  • several base types
  • the LionCore M3, including the builtins language
  • functions for (de-)serialization

Starting points

The following is a list of links to potential starting points:

Changelog

0.6.4

  • Add functions mapValues and instantiableClassifiers.
  • Add a method SymbolTable.languageMatching to look up a language.

0.6.3

  • The deserializer now deserializes all nodes in the serialization chunk, not just the root nodes (identified as having parent set to null). (This fixes issue #145.)
    • Also: deserializeChunk is renamed to deserializeSerializationChunk for naming consistency, although deserializeChunk is retained as an alias.
  • Add a method metaType to M3 types, to deduce classifiers' names from. (That fixes issue #143.)

0.6.2

  • Add a method Classifier.metaPointer.

0.6.1

  • Introduce a isBuiltinNodeConcept function that checks whether a classifier happens to be the Node concept built into LionCore.
  • Add a reference annotates to Annotation.

0.6.0

  • Introduce a type SymbolTable to encapsulate lookup of languages' entities and their features.
    • Provide a naive and a memoising implementation of the SymbolTable abstraction, and use the latter in the deserializer to make that (a bit) more performant.

0.5.0

This is the first version corresponding to a release of LionWeb (version: 2023.1) as a whole.

  • Remove JSON Schema generation functionality – this wasn't up-to-date at all.
  • Implement persistence of annotations on Nodes, including (de-)serialization.
  • Added an optional field resolveInfoFor to the ExtractionFacade type, to compute the field resolveInfo field of a serialized reference target. The default used is to check whether a node instance implements INamed and takes the value of the name field.
  • Breaking change: serializeLanguage and deserializeLanguage are now "multi-lingual" in the sense that a serialization chunk can contain multiple Languages. As a result, these functions have been renamed to (the plural) serializeLanguages (with varargs), and deserializeLanguages (returning Language[]).
  • (Bugfix:) Deserialize Annotations.
  • Breaking change: Rework ID and key generation in the LionCore LanguageFactory. As part of that:
    • Add String[s]Mapper types, a StringsMapper instance last, and functions concatenator and chain to produce instances of them.
    • Remove M3Node.keyed and the "awkward" key generation in the InstantiationFacade for the LionCore language.
    • Remove types IdGenerator, and KeyGenerator and everything related to that.
    • Expose keys (instead of qualified names) for LionCore M3 and the LionCore built-ins.
  • Add a type DynamicINamed and an M3-function conceptsOf, primarily for generation purposes.
  • Move asText and ID checking to @lionweb/utilities.
  • Expose a helper function nameSorted.
  • Rename ConceptInterfaceInterface.
  • Change names: ReadModelAPIExtractionFacade, WriteModelAPIInstantiationFacade.
  • Change name of concept fields to classifier, and their types (where applicable) to Classifier.
  • Fix license field in package.json to "Apache-2.0".
  • Replace all occurrences of "LIon" (with uppercase 'I') with "Lion" (with lowercase 'i').
  • Split the ModelAPI interface into a read- and write-part: ReadModelAPI vs. WriteModelAPI.
  • Make fixes w.r.t. multi-language models.
  • Migrate from Deno to Node.js.
  • Implement import of enums in Ecore importer.

No changelog has been kept for previous versions, regardless of whether these were published or not.

Development

Build it from source as follows:

npm run build

Readme

Keywords

none

Package Sidebar

Install

npm i @lionweb/core

Weekly Downloads

9

Version

0.6.4

License

Apache-2.0

Unpacked Size

183 kB

Total Files

119

Last publish

Collaborators

  • ftomassetti
  • jwarmer
  • dslmeinte