npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@lionweb/core

v0.6.10

Published

LionWeb core for {Java|Type}Script

Downloads

427

Readme

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.10 - not officially released yet

  • Make DefaultPrimitiveTypeDeserializer and DefaultPrimitiveTypeSerializer be able to deal with duplicate definitions of datatypes.
    • Expose a function shouldBeIdentical that determines whether two datatypes should be structurally equal based on equality of: meta type, key, and language's key.
  • Make serializer more resilient against unresolved (i.e., null-valued) children.
  • Fix that resolveInfo of a serialized reference must be null, not undefined.

0.6.9

  • Improve deserialization:
    • Produce more meaningful messages for problems
    • Configure how problems are reported through an instance of a SimplisticHandler, calling a new function deserializeLanguagesWithHandler. The default value for the handler is defaultSimplisticHandler which just reports the problem to the JavaScript console (using console.log). The AccumulatingSimplisticHandler class accumulates the problems reported, which can be accessed through its allProblems method. The AggregatingSimplisticHandler class aggregates the problems reported (with count), which can be output using its reportAllProblemsOnConsole method, and accessed through its allProblems method.
    • Pass dependent languages also as languages from languages deserializer to regular deserializer, not just as referable data (which is only useful for the built-ins)
  • Fix a bug in the serializer that caused an "unhelpful" exception on an unset or unresolved — i.e., "not-connected", represented by a null value — reference target . Now, such reference targets are simply skipped.

0.6.8

  • With respect to deserialization:
    • Relax deserialization to just skip serialized nodes for which the corresponding M2 data can't be found.
    • Fix a bug w.r.t. enumeration literals — deserializing changed the keys of enumeration literals in the language's definition.
    • Deserialization doesn't throw on unresolvable references, but warns on the console and returns null (which means “unresolved”).
  • Export byIdMap function, which computes a map id → thing from an array of things with an id, from the package.
  • Make SerializedProperty.value null-able, to align with the specification.

0.6.7

  • Fix cycle in imports that some bundlers were having trouble with.

0.6.6

  • The serializer now also serializes annotations.
  • Add support for custom primitive types. Specifically:
    • A new interface type PrimitiveTypeSerializer.
    • A default implementation DefaultPrimitiveTypeSerializer of that that's aware of the LionCore built-in primitive types.
    • serializeNodes has an additional argument of type PrimitiveTypeSerializer with as default value an instance of DefaultPrimitiveTypeSerializer.

0.6.5

  • Add support for custom primitive types. Specifically:
    • A new interface type PrimitiveTypeDeserializer.
    • A default implementation DefaultPrimitiveTypeDeserializer of that that's aware of the LionCore built-in primitive types.
    • deserializeSerializationChunk has an additional argument of type PrimitiveTypeDeserializer with as default value an instance of DefaultPrimitiveTypeDeserializer.
  • Expose function inheritsFrom.

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