From 38f3ea59db9bf0ac6f660f4b1218de5ed48994d1 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 9 Jun 2026 21:04:48 -0700 Subject: [PATCH 1/5] feat: add formation energy contributions --- dist/js/PropertyFactory.d.ts | 4 ++- dist/js/PropertyFactory.js | 7 ++++ ...nergyContributionsPropertySchemaMixin.d.ts | 5 +++ ...nEnergyContributionsPropertySchemaMixin.js | 21 ++++++++++++ dist/js/index.d.ts | 1 + dist/js/index.js | 4 ++- .../FormationEnergyContributionsProperty.d.ts | 14 ++++++++ .../FormationEnergyContributionsProperty.js | 18 ++++++++++ dist/js/settings.d.ts | 4 ++- dist/js/settings.js | 2 ++ src/js/PropertyFactory.ts | 11 ++++++ ...nEnergyContributionsPropertySchemaMixin.ts | 34 +++++++++++++++++++ src/js/index.ts | 1 + .../FormationEnergyContributionsProperty.ts | 27 +++++++++++++++ src/js/settings.ts | 2 ++ 15 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.d.ts create mode 100644 dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.js create mode 100644 dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.d.ts create mode 100644 dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.js create mode 100644 src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts create mode 100644 src/js/properties/array-of-objects/FormationEnergyContributionsProperty.ts diff --git a/dist/js/PropertyFactory.d.ts b/dist/js/PropertyFactory.d.ts index 876ec8b..9cf4824 100644 --- a/dist/js/PropertyFactory.d.ts +++ b/dist/js/PropertyFactory.d.ts @@ -1,5 +1,6 @@ import type { MetaPropertyHolderSchema, PropertyHolderSchema, ProtoPropertyHolderSchema } from "@mat3ra/esse/dist/js/types"; import type MetaProperty from "./MetaProperty"; +import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty"; import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty"; import BandGapsProperty from "./properties/non-scalar/BandGapsProperty"; import BandStructureProperty from "./properties/non-scalar/BandStructureProperty"; @@ -52,8 +53,9 @@ export default class PropertyFactory { static getMultipleResultsPropertyNames(): PropertyName[]; static getScalarPropertyNames(): PropertyName[]; static getNonScalarPropertyNames(): PropertyName[]; + static getArrayOfObjectsPropertyNames(): PropertyName[]; private static filterPropertyNames; - static createProperty(config: AnyProperty): AveragePotentialProfileProperty | BandGapsProperty | BandStructureProperty | ChargeDensityProfileProperty | ConvergenceElectronicProperty | ConvergenceIonicProperty | DensityOfStatesProperty | DielectricTensorProperty | FileContentProperty | FinalStructureProperty | HubbardUProperty | HubbardVNNProperty | HubbardVProperty | IsRelaxedProperty | JupyterNotebookEndpointProperty | PhononDispersionsProperty | PhononDOSProperty | PotentialProfileProperty | ReactionEnergyProfileProperty | WavefunctionAmplitudeProperty | WorkflowProperty | TotalEnergyContributionsProperty | FermiEnergyProperty | FormationEnergyProperty | HOMOEnergyProperty | IonizationPotentialElementalProperty | LUMOEnergyProperty | PressureProperty | ReactionEnergyBarrierProperty | SurfaceEnergyProperty | ThermalCorrectionToEnergyProperty | ThermalCorrectionToEnthalpyProperty | TotalEnergyProperty | TotalForcesProperty | ValenceBandOffsetProperty | ZeroPointEnergyProperty | AtomicForcesProperty | MagneticMomentsProperty | StressTensorProperty; + static createProperty(config: AnyProperty): FormationEnergyContributionsProperty | AveragePotentialProfileProperty | BandGapsProperty | BandStructureProperty | ChargeDensityProfileProperty | ConvergenceElectronicProperty | ConvergenceIonicProperty | DensityOfStatesProperty | DielectricTensorProperty | FileContentProperty | FinalStructureProperty | HubbardUProperty | HubbardVNNProperty | HubbardVProperty | IsRelaxedProperty | JupyterNotebookEndpointProperty | PhononDispersionsProperty | PhononDOSProperty | PotentialProfileProperty | ReactionEnergyProfileProperty | WavefunctionAmplitudeProperty | WorkflowProperty | TotalEnergyContributionsProperty | FermiEnergyProperty | FormationEnergyProperty | HOMOEnergyProperty | IonizationPotentialElementalProperty | LUMOEnergyProperty | PressureProperty | ReactionEnergyBarrierProperty | SurfaceEnergyProperty | ThermalCorrectionToEnergyProperty | ThermalCorrectionToEnthalpyProperty | TotalEnergyProperty | TotalForcesProperty | ValenceBandOffsetProperty | ZeroPointEnergyProperty | AtomicForcesProperty | MagneticMomentsProperty | StressTensorProperty; static createMetaProperty(config: AnyMetaProperty): MetaProperty; static createProtoProperty(config: AnyProtoProperty): AtomicConstraintsProperty | BoundaryConditionsProperty; } diff --git a/dist/js/PropertyFactory.js b/dist/js/PropertyFactory.js index b83901e..363ee13 100644 --- a/dist/js/PropertyFactory.js +++ b/dist/js/PropertyFactory.js @@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const PseudopotentialMetaProperty_1 = __importDefault(require("./meta_properties/PseudopotentialMetaProperty")); +const FormationEnergyContributionsProperty_1 = __importDefault(require("./properties/array-of-objects/FormationEnergyContributionsProperty")); const AveragePotentialProfileProperty_1 = __importDefault(require("./properties/non-scalar/AveragePotentialProfileProperty")); const BandGapsProperty_1 = __importDefault(require("./properties/non-scalar/BandGapsProperty")); const BandStructureProperty_1 = __importDefault(require("./properties/non-scalar/BandStructureProperty")); @@ -61,6 +62,7 @@ const PROPERTY_CLASS_MAP = { [ThermalCorrectionToEnthalpyProperty_1.default.propertyName]: ThermalCorrectionToEnthalpyProperty_1.default, [ZeroPointEnergyProperty_1.default.propertyName]: ZeroPointEnergyProperty_1.default, [TotalEnergyContributionsProperty_1.default.propertyName]: TotalEnergyContributionsProperty_1.default, + [FormationEnergyContributionsProperty_1.default.propertyName]: FormationEnergyContributionsProperty_1.default, [AtomicForcesProperty_1.default.propertyName]: AtomicForcesProperty_1.default, [StressTensorProperty_1.default.propertyName]: StressTensorProperty_1.default, [DensityOfStatesProperty_1.default.propertyName]: DensityOfStatesProperty_1.default, @@ -120,6 +122,11 @@ class PropertyFactory { return PropertyClass.propertyType === settings_1.PropertyType.non_scalar; }); } + static getArrayOfObjectsPropertyNames() { + return this.filterPropertyNames((PropertyClass) => { + return (PropertyClass.propertyType === settings_1.PropertyType.array_of_objects); + }); + } static filterPropertyNames(filterFn) { const properties = Object.values({ ...PROPERTY_CLASS_MAP, diff --git a/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.d.ts b/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.d.ts new file mode 100644 index 0000000..ded09fc --- /dev/null +++ b/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.d.ts @@ -0,0 +1,5 @@ +import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity"; +import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; +export type FormationEnergyContributionsPropertySchemaMixin = Omit; +export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin; +export declare function formationEnergyContributionsPropertySchemaMixin(item: InMemoryEntity): asserts item is T & FormationEnergyContributionsPropertySchemaMixin; diff --git a/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.js b/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.js new file mode 100644 index 0000000..2632272 --- /dev/null +++ b/dist/js/generated/FormationEnergyContributionsPropertySchemaMixin.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.formationEnergyContributionsPropertySchemaMixin = formationEnergyContributionsPropertySchemaMixin; +function formationEnergyContributionsPropertySchemaMixin(item) { + // @ts-expect-error + const properties = { + get name() { + return this.requiredProp("name"); + }, + set name(value) { + this.setProp("name", value); + }, + get values() { + return this.requiredProp("values"); + }, + set values(value) { + this.setProp("values", value); + }, + }; + Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties)); +} diff --git a/dist/js/index.d.ts b/dist/js/index.d.ts index c90e9f0..face66e 100644 --- a/dist/js/index.d.ts +++ b/dist/js/index.d.ts @@ -3,6 +3,7 @@ export { PropertyName, PropertyType } from "./settings"; export { default as Property } from "./Property"; export { default as MetaProperty } from "./MetaProperty"; export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty"; +export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty"; export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty"; export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty"; export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty"; diff --git a/dist/js/index.js b/dist/js/index.js index 7fdfbd9..75705eb 100644 --- a/dist/js/index.js +++ b/dist/js/index.js @@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ProtoPropertyHolder = exports.MetaPropertyHolder = exports.PropertyHolder = exports.metaPropertyHolderMixin = exports.propertyHolderMixin = exports.protoPropertyHolderMixin = exports.ReactionEnergyProfileProperty = exports.WavefunctionAmplitudeProperty = exports.PotentialProfileProperty = exports.ChargeDensityProfileProperty = exports.BandStructureProperty = exports.ThermalCorrectionToEnthalpyProperty = exports.ThermalCorrectionToEnergyProperty = exports.LUMOEnergyProperty = exports.HOMOEnergyProperty = exports.TotalEnergyProperty = exports.SurfaceEnergyProperty = exports.FormationEnergyProperty = exports.ReactionEnergyBarrierProperty = exports.PressureProperty = exports.IsRelaxedProperty = exports.BandGapsProperty = exports.FinalStructureProperty = exports.PseudopotentialMetaProperty = exports.MetaProperty = exports.Property = exports.PropertyType = exports.PropertyName = exports.PropertyFactory = void 0; +exports.ProtoPropertyHolder = exports.MetaPropertyHolder = exports.PropertyHolder = exports.metaPropertyHolderMixin = exports.propertyHolderMixin = exports.protoPropertyHolderMixin = exports.ReactionEnergyProfileProperty = exports.WavefunctionAmplitudeProperty = exports.PotentialProfileProperty = exports.ChargeDensityProfileProperty = exports.BandStructureProperty = exports.ThermalCorrectionToEnthalpyProperty = exports.ThermalCorrectionToEnergyProperty = exports.LUMOEnergyProperty = exports.HOMOEnergyProperty = exports.TotalEnergyProperty = exports.SurfaceEnergyProperty = exports.FormationEnergyProperty = exports.ReactionEnergyBarrierProperty = exports.PressureProperty = exports.IsRelaxedProperty = exports.BandGapsProperty = exports.FinalStructureProperty = exports.FormationEnergyContributionsProperty = exports.PseudopotentialMetaProperty = exports.MetaProperty = exports.Property = exports.PropertyType = exports.PropertyName = exports.PropertyFactory = void 0; var PropertyFactory_1 = require("./PropertyFactory"); Object.defineProperty(exports, "PropertyFactory", { enumerable: true, get: function () { return __importDefault(PropertyFactory_1).default; } }); var settings_1 = require("./settings"); @@ -29,6 +29,8 @@ var MetaProperty_1 = require("./MetaProperty"); Object.defineProperty(exports, "MetaProperty", { enumerable: true, get: function () { return __importDefault(MetaProperty_1).default; } }); var PseudopotentialMetaProperty_1 = require("./meta_properties/PseudopotentialMetaProperty"); Object.defineProperty(exports, "PseudopotentialMetaProperty", { enumerable: true, get: function () { return __importDefault(PseudopotentialMetaProperty_1).default; } }); +var FormationEnergyContributionsProperty_1 = require("./properties/array-of-objects/FormationEnergyContributionsProperty"); +Object.defineProperty(exports, "FormationEnergyContributionsProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyContributionsProperty_1).default; } }); var FinalStructureProperty_1 = require("./properties/non-scalar/FinalStructureProperty"); Object.defineProperty(exports, "FinalStructureProperty", { enumerable: true, get: function () { return __importDefault(FinalStructureProperty_1).default; } }); var BandGapsProperty_1 = require("./properties/non-scalar/BandGapsProperty"); diff --git a/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.d.ts b/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.d.ts new file mode 100644 index 0000000..fd88dc5 --- /dev/null +++ b/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.d.ts @@ -0,0 +1,14 @@ +import type { Constructor } from "@mat3ra/code/dist/js/utils/types"; +import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; +import { FormationEnergyContributionsPropertySchemaMixin } from "../../generated/FormationEnergyContributionsPropertySchemaMixin"; +import Property from "../../Property"; +import { PropertyName, PropertyType } from "../../settings"; +type Schema = FormationEnergyContributionsPropertySchema; +type Base = typeof Property & Constructor; +declare const PropertyBase: Base; +export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema { + static readonly propertyType = PropertyType.array_of_objects; + static readonly propertyName = PropertyName.formation_energy_contributions; + constructor(config: Omit); +} +export {}; diff --git a/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.js b/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.js new file mode 100644 index 0000000..405eb35 --- /dev/null +++ b/dist/js/properties/array-of-objects/FormationEnergyContributionsProperty.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const FormationEnergyContributionsPropertySchemaMixin_1 = require("../../generated/FormationEnergyContributionsPropertySchemaMixin"); +const Property_1 = __importDefault(require("../../Property")); +const settings_1 = require("../../settings"); +const PropertyBase = Property_1.default; +class FormationEnergyContributionsProperty extends PropertyBase { + constructor(config) { + super({ ...config, name: FormationEnergyContributionsProperty.propertyName }); + } +} +FormationEnergyContributionsProperty.propertyType = settings_1.PropertyType.array_of_objects; +FormationEnergyContributionsProperty.propertyName = settings_1.PropertyName.formation_energy_contributions; +exports.default = FormationEnergyContributionsProperty; +(0, FormationEnergyContributionsPropertySchemaMixin_1.formationEnergyContributionsPropertySchemaMixin)(FormationEnergyContributionsProperty.prototype); diff --git a/dist/js/settings.d.ts b/dist/js/settings.d.ts index a0ec5b9..ef3d3e4 100644 --- a/dist/js/settings.d.ts +++ b/dist/js/settings.d.ts @@ -6,7 +6,8 @@ export declare enum PropertyType { scalar = "scalar", non_scalar = "non-scalar", tensor = "tensor", - object = "object" + object = "object", + array_of_objects = "array-of-objects" } export declare enum PropertyName { pressure = "pressure", @@ -23,6 +24,7 @@ export declare enum PropertyName { thermal_correction_to_energy = "thermal_correction_to_energy", thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy", total_energy_contributions = "total_energy_contributions", + formation_energy_contributions = "formation_energy_contributions", atomic_forces = "atomic_forces", atomic_constraints = "atomic_constraints", stress_tensor = "stress_tensor", diff --git a/dist/js/settings.js b/dist/js/settings.js index 1daeae8..30f723c 100644 --- a/dist/js/settings.js +++ b/dist/js/settings.js @@ -14,6 +14,7 @@ var PropertyType; // non-scalar subtypes PropertyType["tensor"] = "tensor"; PropertyType["object"] = "object"; + PropertyType["array_of_objects"] = "array-of-objects"; })(PropertyType || (exports.PropertyType = PropertyType = {})); var PropertyName; (function (PropertyName) { @@ -31,6 +32,7 @@ var PropertyName; PropertyName["thermal_correction_to_energy"] = "thermal_correction_to_energy"; PropertyName["thermal_correction_to_enthalpy"] = "thermal_correction_to_enthalpy"; PropertyName["total_energy_contributions"] = "total_energy_contributions"; + PropertyName["formation_energy_contributions"] = "formation_energy_contributions"; PropertyName["atomic_forces"] = "atomic_forces"; PropertyName["atomic_constraints"] = "atomic_constraints"; PropertyName["stress_tensor"] = "stress_tensor"; diff --git a/src/js/PropertyFactory.ts b/src/js/PropertyFactory.ts index 2146876..f16d4c5 100644 --- a/src/js/PropertyFactory.ts +++ b/src/js/PropertyFactory.ts @@ -7,6 +7,7 @@ import type { import PseudopotentialProperty from "./meta_properties/PseudopotentialMetaProperty"; import type MetaProperty from "./MetaProperty"; +import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty"; import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty"; import BandGapsProperty from "./properties/non-scalar/BandGapsProperty"; import BandStructureProperty from "./properties/non-scalar/BandStructureProperty"; @@ -71,6 +72,7 @@ type PropertyClassMap = { | Constructor | Constructor | Constructor + | Constructor | Constructor | Constructor | Constructor @@ -123,6 +125,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = { [ThermalCorrectionToEnthalpyProperty.propertyName]: ThermalCorrectionToEnthalpyProperty, [ZeroPointEnergyProperty.propertyName]: ZeroPointEnergyProperty, [TotalEnergyContributionsProperty.propertyName]: TotalEnergyContributionsProperty, + [FormationEnergyContributionsProperty.propertyName]: FormationEnergyContributionsProperty, [AtomicForcesProperty.propertyName]: AtomicForcesProperty, [StressTensorProperty.propertyName]: StressTensorProperty, [DensityOfStatesProperty.propertyName]: DensityOfStatesProperty, @@ -192,6 +195,14 @@ export default class PropertyFactory { }); } + static getArrayOfObjectsPropertyNames(): PropertyName[] { + return this.filterPropertyNames((PropertyClass) => { + return ( + (PropertyClass as typeof Property).propertyType === PropertyType.array_of_objects + ); + }); + } + private static filterPropertyNames( filterFn: (PropertyClass: Constructor) => boolean, ): PropertyName[] { diff --git a/src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts b/src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts new file mode 100644 index 0000000..c967c19 --- /dev/null +++ b/src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts @@ -0,0 +1,34 @@ +import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity"; +import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; + +export type FormationEnergyContributionsPropertySchemaMixin = Omit< + FormationEnergyContributionsPropertySchema, + "_id" | "slug" | "systemName" | "schemaVersion" +>; + +export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity & + FormationEnergyContributionsPropertySchemaMixin; + +export function formationEnergyContributionsPropertySchemaMixin( + item: InMemoryEntity, +): asserts item is T & FormationEnergyContributionsPropertySchemaMixin { + // @ts-expect-error + const properties: InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin = { + get name() { + return this.requiredProp("name"); + }, + set name(value: FormationEnergyContributionsPropertySchema["name"]) { + this.setProp("name", value); + }, + get values() { + return this.requiredProp( + "values", + ); + }, + set values(value: FormationEnergyContributionsPropertySchema["values"]) { + this.setProp("values", value); + }, + }; + + Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties)); +} diff --git a/src/js/index.ts b/src/js/index.ts index 1ae46c7..b50f920 100644 --- a/src/js/index.ts +++ b/src/js/index.ts @@ -3,6 +3,7 @@ export { PropertyName, PropertyType } from "./settings"; export { default as Property } from "./Property"; export { default as MetaProperty } from "./MetaProperty"; export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty"; +export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty"; export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty"; export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty"; export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty"; diff --git a/src/js/properties/array-of-objects/FormationEnergyContributionsProperty.ts b/src/js/properties/array-of-objects/FormationEnergyContributionsProperty.ts new file mode 100644 index 0000000..6ac85e5 --- /dev/null +++ b/src/js/properties/array-of-objects/FormationEnergyContributionsProperty.ts @@ -0,0 +1,27 @@ +import type { Constructor } from "@mat3ra/code/dist/js/utils/types"; +import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; + +import { + FormationEnergyContributionsPropertySchemaMixin, + formationEnergyContributionsPropertySchemaMixin, +} from "../../generated/FormationEnergyContributionsPropertySchemaMixin"; +import Property from "../../Property"; +import { PropertyName, PropertyType } from "../../settings"; + +type Schema = FormationEnergyContributionsPropertySchema; + +type Base = typeof Property & Constructor; + +const PropertyBase = Property as Base; + +export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema { + static readonly propertyType = PropertyType.array_of_objects; + + static readonly propertyName = PropertyName.formation_energy_contributions; + + constructor(config: Omit) { + super({ ...config, name: FormationEnergyContributionsProperty.propertyName }); + } +} + +formationEnergyContributionsPropertySchemaMixin(FormationEnergyContributionsProperty.prototype); diff --git a/src/js/settings.ts b/src/js/settings.ts index e15c552..4b42950 100644 --- a/src/js/settings.ts +++ b/src/js/settings.ts @@ -10,6 +10,7 @@ export enum PropertyType { // non-scalar subtypes tensor = "tensor", object = "object", + array_of_objects = "array-of-objects", } export enum PropertyName { @@ -27,6 +28,7 @@ export enum PropertyName { thermal_correction_to_energy = "thermal_correction_to_energy", thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy", total_energy_contributions = "total_energy_contributions", + formation_energy_contributions = "formation_energy_contributions", atomic_forces = "atomic_forces", atomic_constraints = "atomic_constraints", stress_tensor = "stress_tensor", From c4b7a846d0f67f186c13c3638d8c242af5a8442c Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 9 Jun 2026 21:06:01 -0700 Subject: [PATCH 2/5] update: related --- scripts/generate-mixins.ts | 2 + .../formation_energy_contributions.test.ts | 52 +++++++++++++++++++ tests/js/property_factory.test.ts | 13 +++++ 3 files changed, 67 insertions(+) create mode 100644 tests/js/properties/formation_energy_contributions.test.ts diff --git a/scripts/generate-mixins.ts b/scripts/generate-mixins.ts index 0126593..748ff6d 100644 --- a/scripts/generate-mixins.ts +++ b/scripts/generate-mixins.ts @@ -66,6 +66,8 @@ const OUTPUT_PATHS = { "properties-directory/non-scalar/workflow": "src/js/generated/WorkflowPropertySchemaMixin.ts", "properties-directory/non-scalar/total-energy-contributions": "src/js/generated/TotalEnergyContributionsPropertySchemaMixin.ts", + "properties-directory/non-scalar/formation-energy-contributions": + "src/js/generated/FormationEnergyContributionsPropertySchemaMixin.ts", "properties-directory/scalar/fermi-energy": "src/js/generated/FermiEnergyPropertySchemaMixin.ts", "properties-directory/scalar/homo-energy": "src/js/generated/HOMOEnergyPropertySchemaMixin.ts", diff --git a/tests/js/properties/formation_energy_contributions.test.ts b/tests/js/properties/formation_energy_contributions.test.ts new file mode 100644 index 0000000..865f771 --- /dev/null +++ b/tests/js/properties/formation_energy_contributions.test.ts @@ -0,0 +1,52 @@ +import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; +import { expect } from "chai"; + +import FormationEnergyContributionsProperty from "../../../src/js/properties/array-of-objects/FormationEnergyContributionsProperty"; +import { PropertyName, PropertyType } from "../../../src/js/settings"; + +const FORMATION_ENERGY_CONTRIBUTIONS_VALUES: FormationEnergyContributionsPropertySchema["values"] = + [ + { + formula: "SiC", + n_atoms: 4, + is_elemental: false, + total_energy: -520.003969643439, + total_energy_per_atom: -130.0, + precision_value: 8192, + precision_metric: "KPPRA", + }, + { + formula: "Si", + n_atoms: 2, + is_elemental: true, + total_energy: -261.003969643439, + total_energy_per_atom: -130.501, + precision_value: 8192, + precision_metric: "KPPRA", + }, + ]; + +describe("FormationEnergyContributionsProperty", () => { + it("should create a formation energy contributions property with correct constructor, propertyType, propertyName, and values", () => { + const config: Omit = { + values: FORMATION_ENERGY_CONTRIBUTIONS_VALUES, + }; + + const formationEnergyContributionsProperty = new FormationEnergyContributionsProperty( + config, + ); + + expect(formationEnergyContributionsProperty).to.be.instanceOf( + FormationEnergyContributionsProperty, + ); + expect(FormationEnergyContributionsProperty.propertyType).equal( + PropertyType.array_of_objects, + ); + expect(FormationEnergyContributionsProperty.propertyName).equal( + PropertyName.formation_energy_contributions, + ); + expect(formationEnergyContributionsProperty.values).to.deep.equal( + FORMATION_ENERGY_CONTRIBUTIONS_VALUES, + ); + }); +}); diff --git a/tests/js/property_factory.test.ts b/tests/js/property_factory.test.ts index dd6fa7b..814abb6 100644 --- a/tests/js/property_factory.test.ts +++ b/tests/js/property_factory.test.ts @@ -17,6 +17,7 @@ describe("PropertyFactory", () => { const multipleResultsPropertyNames = PropertyFactory.getMultipleResultsPropertyNames(); const scalarPropertyNames = PropertyFactory.getScalarPropertyNames(); const nonScalarPropertyNames = PropertyFactory.getNonScalarPropertyNames(); + const arrayOfObjectsPropertyNames = PropertyFactory.getArrayOfObjectsPropertyNames(); // Verify all methods return arrays expect(refinedPropertyNames).to.be.an("array"); @@ -24,6 +25,7 @@ describe("PropertyFactory", () => { expect(multipleResultsPropertyNames).to.be.an("array"); expect(scalarPropertyNames).to.be.an("array"); expect(nonScalarPropertyNames).to.be.an("array"); + expect(arrayOfObjectsPropertyNames).to.be.an("array"); // Verify arrays are not empty expect(refinedPropertyNames.length).to.be.greaterThan(0); @@ -31,6 +33,7 @@ describe("PropertyFactory", () => { expect(multipleResultsPropertyNames.length).to.be.greaterThan(0); expect(scalarPropertyNames.length).to.be.greaterThan(0); expect(nonScalarPropertyNames.length).to.be.greaterThan(0); + expect(arrayOfObjectsPropertyNames.length).to.be.greaterThan(0); // Verify all returned values are valid PropertyName enum values const allPropertyNames = [ @@ -39,6 +42,7 @@ describe("PropertyFactory", () => { ...multipleResultsPropertyNames, ...scalarPropertyNames, ...nonScalarPropertyNames, + ...arrayOfObjectsPropertyNames, ]; expect([ @@ -59,6 +63,7 @@ describe("PropertyFactory", () => { const multipleResultsPropertyNames = PropertyFactory.getMultipleResultsPropertyNames(); const scalarPropertyNames = PropertyFactory.getScalarPropertyNames(); const nonScalarPropertyNames = PropertyFactory.getNonScalarPropertyNames(); + const arrayOfObjectsPropertyNames = PropertyFactory.getArrayOfObjectsPropertyNames(); // Test specific known properties are in correct categories expect(refinedPropertyNames).to.include(PropertyName.total_energy); @@ -85,6 +90,8 @@ describe("PropertyFactory", () => { expect(nonScalarPropertyNames).to.include(PropertyName.band_structure); expect(nonScalarPropertyNames).to.include(PropertyName.density_of_states); expect(nonScalarPropertyNames).to.include(PropertyName.file_content); + + expect(arrayOfObjectsPropertyNames).to.include(PropertyName.formation_energy_contributions); }); it("should not have overlapping categories", () => { @@ -93,6 +100,7 @@ describe("PropertyFactory", () => { const multipleResultsPropertyNames = PropertyFactory.getMultipleResultsPropertyNames(); const scalarPropertyNames = PropertyFactory.getScalarPropertyNames(); const nonScalarPropertyNames = PropertyFactory.getNonScalarPropertyNames(); + const arrayOfObjectsPropertyNames = PropertyFactory.getArrayOfObjectsPropertyNames(); // Verify scalar and non-scalar properties don't overlap const scalarNonScalarOverlap = scalarPropertyNames.filter((name) => @@ -111,5 +119,10 @@ describe("PropertyFactory", () => { scalarPropertyNames.includes(name), ); expect(multipleResultsScalarOverlap).to.have.length(0); + + const scalarArrayOfObjectsOverlap = scalarPropertyNames.filter((name) => + arrayOfObjectsPropertyNames.includes(name), + ); + expect(scalarArrayOfObjectsOverlap).to.have.length(0); }); }); From c7ee2324dc0b73985d23e0864f11d2f69ee94926 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 9 Jun 2026 21:25:08 -0700 Subject: [PATCH 3/5] update: use ESSE for test --- .../formation_energy_contributions.test.ts | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/tests/js/properties/formation_energy_contributions.test.ts b/tests/js/properties/formation_energy_contributions.test.ts index 865f771..9030871 100644 --- a/tests/js/properties/formation_energy_contributions.test.ts +++ b/tests/js/properties/formation_energy_contributions.test.ts @@ -1,30 +1,13 @@ +import formationEnergyContributionsExample from "@mat3ra/esse/dist/js/example/properties_directory/non_scalar/formation_energy_contributions.json"; import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types"; import { expect } from "chai"; import FormationEnergyContributionsProperty from "../../../src/js/properties/array-of-objects/FormationEnergyContributionsProperty"; import { PropertyName, PropertyType } from "../../../src/js/settings"; -const FORMATION_ENERGY_CONTRIBUTIONS_VALUES: FormationEnergyContributionsPropertySchema["values"] = - [ - { - formula: "SiC", - n_atoms: 4, - is_elemental: false, - total_energy: -520.003969643439, - total_energy_per_atom: -130.0, - precision_value: 8192, - precision_metric: "KPPRA", - }, - { - formula: "Si", - n_atoms: 2, - is_elemental: true, - total_energy: -261.003969643439, - total_energy_per_atom: -130.501, - precision_value: 8192, - precision_metric: "KPPRA", - }, - ]; +const FORMATION_ENERGY_CONTRIBUTIONS_EXAMPLE = + formationEnergyContributionsExample as FormationEnergyContributionsPropertySchema; +const FORMATION_ENERGY_CONTRIBUTIONS_VALUES = FORMATION_ENERGY_CONTRIBUTIONS_EXAMPLE.values; describe("FormationEnergyContributionsProperty", () => { it("should create a formation energy contributions property with correct constructor, propertyType, propertyName, and values", () => { From c3fc3d5e29fbe3e6f0e9f2804748631d56db9fa9 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 9 Jun 2026 21:37:31 -0700 Subject: [PATCH 4/5] chore: esse --- package-lock.json | 274 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 271 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f925c7f..7f2d556 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@babel/eslint-parser": "^7.16.3", "@exabyte-io/eslint-config": "2025.5.13-0", "@mat3ra/code": "2026.5.27-0", - "@mat3ra/esse": "2026.6.5-0", + "@mat3ra/esse": "git+https://github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", "@mat3ra/made": "2026.5.28-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/lodash": "^4.17.20", @@ -2902,9 +2902,9 @@ } }, "node_modules/@mat3ra/esse": { - "version": "2026.6.5-0", - "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2026.6.5-0.tgz", - "integrity": "sha512-soQcxlFTmgsowfscDDErHNY2kr55vNQ+wLxpa0SxrP1gEb1lKOYgZhv9BUGYB1P1CsKOrpdm4WZFMK/7OIlNjA==", + "version": "0.0.0", + "resolved": "git+ssh://git@github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", + "integrity": "sha512-PgtHL6J+JK4CYRfNC5Lg2fgr+dPbPewIpV6ZPTdJ2NIbSmbXgsRqcF71SXhvv5cKDHBEKrcfiy1NPmyyKnGzhg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3616,6 +3616,20 @@ "node": ">= 8" } }, + "node_modules/@pkgr/core": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", + "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.10.tgz", @@ -5131,6 +5145,17 @@ "node": ">=0.3.1" } }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -5339,6 +5364,37 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.6.5.tgz", + "integrity": "sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-compat-utils/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-config-airbnb": { "version": "19.0.2", "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.2.tgz", @@ -5449,6 +5505,29 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-json-compat-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/eslint-json-compat-utils/-/eslint-json-compat-utils-0.2.3.tgz", + "integrity": "sha512-RbBmDFyu7FqnjE8F0ZxPNzx5UaptdeS9Uu50r7A+D7s/+FCX+ybiyViYEgFUaFIFqSWJgZRTpL5d8Kanxxl2lQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esquery": "^1.6.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": "*", + "jsonc-eslint-parser": "^2.4.0 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@eslint/json": { + "optional": true + } + } + }, "node_modules/eslint-module-utils": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", @@ -5633,6 +5712,81 @@ "node": ">=10" } }, + "node_modules/eslint-plugin-jsonc": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsonc/-/eslint-plugin-jsonc-2.21.1.tgz", + "integrity": "sha512-dbNR5iEnQeORwsK2WZzr3QaMtFCY3kKJVMRHPzUpKzMhmVy2zIpVgFDpX8MNoIdoqz6KCpCfOJavhfiSbZbN+w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.5.1", + "diff-sequences": "^27.5.1", + "eslint-compat-utils": "^0.6.4", + "eslint-json-compat-utils": "^0.2.1", + "espree": "^9.6.1 || ^10.3.0", + "graphemer": "^1.4.0", + "jsonc-eslint-parser": "^2.4.0", + "natural-compare": "^1.4.0", + "synckit": "^0.6.2 || ^0.7.3 || ^0.11.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-jsonc/node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/eslint-plugin-jsonc/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-jsonc/node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", @@ -5730,6 +5884,20 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -7425,6 +7593,87 @@ "node": ">=6" } }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.2.tgz", + "integrity": "sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/semver": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz", + "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==", + "dev": true, + "license": "ISC", + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", @@ -9729,6 +9978,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.13.tgz", + "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@pkgr/core": "^0.3.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/table": { "version": "6.8.0", "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", diff --git a/package.json b/package.json index ca80830..2d8ba19 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@babel/eslint-parser": "^7.16.3", "@exabyte-io/eslint-config": "2025.5.13-0", "@mat3ra/code": "2026.5.27-0", - "@mat3ra/esse": "2026.6.5-0", + "@mat3ra/esse": "git+https://github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", "@mat3ra/made": "2026.5.28-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/lodash": "^4.17.20", From df8b43691d4490750502ff927396db0baa178ab1 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Thu, 11 Jun 2026 23:47:09 -0700 Subject: [PATCH 5/5] update: esse --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f2d556..17a3cb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@babel/eslint-parser": "^7.16.3", "@exabyte-io/eslint-config": "2025.5.13-0", "@mat3ra/code": "2026.5.27-0", - "@mat3ra/esse": "git+https://github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", + "@mat3ra/esse": "2026.6.12-0", "@mat3ra/made": "2026.5.28-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/lodash": "^4.17.20", @@ -2902,9 +2902,9 @@ } }, "node_modules/@mat3ra/esse": { - "version": "0.0.0", - "resolved": "git+ssh://git@github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", - "integrity": "sha512-PgtHL6J+JK4CYRfNC5Lg2fgr+dPbPewIpV6ZPTdJ2NIbSmbXgsRqcF71SXhvv5cKDHBEKrcfiy1NPmyyKnGzhg==", + "version": "2026.6.12-0", + "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2026.6.12-0.tgz", + "integrity": "sha512-UaZSVIOlXoqhIsP/qGit+7D9BC/Jcjgggtt2dYYd3Z/YHMAMWqoMoHfPQs+fh/68+koyPgMcq0ME83JObhdTcg==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 2d8ba19..af89a36 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "@babel/eslint-parser": "^7.16.3", "@exabyte-io/eslint-config": "2025.5.13-0", "@mat3ra/code": "2026.5.27-0", - "@mat3ra/esse": "git+https://github.com/Exabyte-io/esse.git#bf3c8c51a83b6fbd3cf2105bdb69a5d1b50c743e", + "@mat3ra/esse": "2026.6.12-0", "@mat3ra/made": "2026.5.28-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/lodash": "^4.17.20",