@mat3ra/prode 2026.6.5-0 → 2026.7.14-0

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,5 +1,6 @@
1
1
  import type { MetaPropertyHolderSchema, PropertyHolderSchema, ProtoPropertyHolderSchema } from "@mat3ra/esse/dist/js/types";
2
2
  import type MetaProperty from "./MetaProperty";
3
+ import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty";
3
4
  import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
4
5
  import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
5
6
  import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
@@ -25,6 +26,7 @@ import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyCon
25
26
  import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
26
27
  import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
27
28
  import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
29
+ import InterfacialEnergyProperty from "./properties/scalar/InterfacialEnergyProperty";
28
30
  import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
29
31
  import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
30
32
  import PressureProperty from "./properties/scalar/PressureProperty";
@@ -52,8 +54,9 @@ export default class PropertyFactory {
52
54
  static getMultipleResultsPropertyNames(): PropertyName[];
53
55
  static getScalarPropertyNames(): PropertyName[];
54
56
  static getNonScalarPropertyNames(): PropertyName[];
57
+ static getArrayOfObjectsPropertyNames(): PropertyName[];
55
58
  private static filterPropertyNames;
56
- 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;
59
+ 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 | InterfacialEnergyProperty | IonizationPotentialElementalProperty | LUMOEnergyProperty | PressureProperty | ReactionEnergyBarrierProperty | SurfaceEnergyProperty | ThermalCorrectionToEnergyProperty | ThermalCorrectionToEnthalpyProperty | TotalEnergyProperty | TotalForcesProperty | ValenceBandOffsetProperty | ZeroPointEnergyProperty | AtomicForcesProperty | MagneticMomentsProperty | StressTensorProperty;
57
60
  static createMetaProperty(config: AnyMetaProperty): MetaProperty;
58
61
  static createProtoProperty(config: AnyProtoProperty): AtomicConstraintsProperty | BoundaryConditionsProperty;
59
62
  }
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const PseudopotentialMetaProperty_1 = __importDefault(require("./meta_properties/PseudopotentialMetaProperty"));
7
+ const FormationEnergyContributionsProperty_1 = __importDefault(require("./properties/array-of-objects/FormationEnergyContributionsProperty"));
7
8
  const AveragePotentialProfileProperty_1 = __importDefault(require("./properties/non-scalar/AveragePotentialProfileProperty"));
8
9
  const BandGapsProperty_1 = __importDefault(require("./properties/non-scalar/BandGapsProperty"));
9
10
  const BandStructureProperty_1 = __importDefault(require("./properties/non-scalar/BandStructureProperty"));
@@ -29,6 +30,7 @@ const TotalEnergyContributionsProperty_1 = __importDefault(require("./properties
29
30
  const FermiEnergyProperty_1 = __importDefault(require("./properties/scalar/FermiEnergyProperty"));
30
31
  const FormationEnergyProperty_1 = __importDefault(require("./properties/scalar/FormationEnergyProperty"));
31
32
  const HOMOEnergyProperty_1 = __importDefault(require("./properties/scalar/HOMOEnergyProperty"));
33
+ const InterfacialEnergyProperty_1 = __importDefault(require("./properties/scalar/InterfacialEnergyProperty"));
32
34
  const IonizationPotentialElementalProperty_1 = __importDefault(require("./properties/scalar/IonizationPotentialElementalProperty"));
33
35
  const LUMOEnergyProperty_1 = __importDefault(require("./properties/scalar/LUMOEnergyProperty"));
34
36
  const PressureProperty_1 = __importDefault(require("./properties/scalar/PressureProperty"));
@@ -54,6 +56,7 @@ const PROPERTY_CLASS_MAP = {
54
56
  [LUMOEnergyProperty_1.default.propertyName]: LUMOEnergyProperty_1.default,
55
57
  [FormationEnergyProperty_1.default.propertyName]: FormationEnergyProperty_1.default,
56
58
  [SurfaceEnergyProperty_1.default.propertyName]: SurfaceEnergyProperty_1.default,
59
+ [InterfacialEnergyProperty_1.default.propertyName]: InterfacialEnergyProperty_1.default,
57
60
  [ConvergenceElectronicProperty_1.default.propertyName]: ConvergenceElectronicProperty_1.default,
58
61
  [ConvergenceIonicProperty_1.default.propertyName]: ConvergenceIonicProperty_1.default,
59
62
  [FermiEnergyProperty_1.default.propertyName]: FermiEnergyProperty_1.default,
@@ -61,6 +64,7 @@ const PROPERTY_CLASS_MAP = {
61
64
  [ThermalCorrectionToEnthalpyProperty_1.default.propertyName]: ThermalCorrectionToEnthalpyProperty_1.default,
62
65
  [ZeroPointEnergyProperty_1.default.propertyName]: ZeroPointEnergyProperty_1.default,
63
66
  [TotalEnergyContributionsProperty_1.default.propertyName]: TotalEnergyContributionsProperty_1.default,
67
+ [FormationEnergyContributionsProperty_1.default.propertyName]: FormationEnergyContributionsProperty_1.default,
64
68
  [AtomicForcesProperty_1.default.propertyName]: AtomicForcesProperty_1.default,
65
69
  [StressTensorProperty_1.default.propertyName]: StressTensorProperty_1.default,
66
70
  [DensityOfStatesProperty_1.default.propertyName]: DensityOfStatesProperty_1.default,
@@ -120,6 +124,11 @@ class PropertyFactory {
120
124
  return PropertyClass.propertyType === settings_1.PropertyType.non_scalar;
121
125
  });
122
126
  }
127
+ static getArrayOfObjectsPropertyNames() {
128
+ return this.filterPropertyNames((PropertyClass) => {
129
+ return (PropertyClass.propertyType === settings_1.PropertyType.array_of_objects);
130
+ });
131
+ }
123
132
  static filterPropertyNames(filterFn) {
124
133
  const properties = Object.values({
125
134
  ...PROPERTY_CLASS_MAP,
@@ -0,0 +1,5 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ export type FormationEnergyContributionsPropertySchemaMixin = Omit<FormationEnergyContributionsPropertySchema, "_id" | "slug" | "systemName" | "schemaVersion">;
4
+ export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin;
5
+ export declare function formationEnergyContributionsPropertySchemaMixin<T extends InMemoryEntity>(item: InMemoryEntity): asserts item is T & FormationEnergyContributionsPropertySchemaMixin;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formationEnergyContributionsPropertySchemaMixin = formationEnergyContributionsPropertySchemaMixin;
4
+ function formationEnergyContributionsPropertySchemaMixin(item) {
5
+ // @ts-expect-error
6
+ const properties = {
7
+ get name() {
8
+ return this.requiredProp("name");
9
+ },
10
+ set name(value) {
11
+ this.setProp("name", value);
12
+ },
13
+ get values() {
14
+ return this.requiredProp("values");
15
+ },
16
+ set values(value) {
17
+ this.setProp("values", value);
18
+ },
19
+ };
20
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
21
+ }
@@ -0,0 +1,5 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { InterfacialEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ export type InterfacialEnergyPropertySchemaMixin = Omit<InterfacialEnergyPropertySchema, "_id" | "slug" | "systemName" | "schemaVersion">;
4
+ export type InterfacialEnergyPropertyInMemoryEntity = InMemoryEntity & InterfacialEnergyPropertySchemaMixin;
5
+ export declare function interfacialEnergyPropertySchemaMixin<T extends InMemoryEntity>(item: InMemoryEntity): asserts item is T & InterfacialEnergyPropertySchemaMixin;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interfacialEnergyPropertySchemaMixin = interfacialEnergyPropertySchemaMixin;
4
+ function interfacialEnergyPropertySchemaMixin(item) {
5
+ // @ts-expect-error
6
+ const properties = {
7
+ get name() {
8
+ return this.requiredProp("name");
9
+ },
10
+ set name(value) {
11
+ this.setProp("name", value);
12
+ },
13
+ get units() {
14
+ return this.requiredProp("units");
15
+ },
16
+ set units(value) {
17
+ this.setProp("units", value);
18
+ },
19
+ get value() {
20
+ return this.requiredProp("value");
21
+ },
22
+ set value(value) {
23
+ this.setProp("value", value);
24
+ },
25
+ };
26
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
27
+ }
@@ -16,6 +16,12 @@ function workflowPropertySchemaMixin(item) {
16
16
  set workflows(value) {
17
17
  this.setProp("workflows", value);
18
18
  },
19
+ get compute() {
20
+ return this.prop("compute");
21
+ },
22
+ set compute(value) {
23
+ this.setProp("compute", value);
24
+ },
19
25
  get metadata() {
20
26
  return this.prop("metadata");
21
27
  },
@@ -64,6 +70,18 @@ function workflowPropertySchemaMixin(item) {
64
70
  set tags(value) {
65
71
  this.setProp("tags", value);
66
72
  },
73
+ get description() {
74
+ return this.prop("description");
75
+ },
76
+ set description(value) {
77
+ this.setProp("description", value);
78
+ },
79
+ get descriptionObject() {
80
+ return this.prop("descriptionObject");
81
+ },
82
+ set descriptionObject(value) {
83
+ this.setProp("descriptionObject", value);
84
+ },
67
85
  };
68
86
  Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
69
87
  }
@@ -3,6 +3,7 @@ export { PropertyName, PropertyType } from "./settings";
3
3
  export { default as Property } from "./Property";
4
4
  export { default as MetaProperty } from "./MetaProperty";
5
5
  export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty";
6
+ export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty";
6
7
  export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty";
7
8
  export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty";
8
9
  export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
@@ -10,6 +11,7 @@ export { default as PressureProperty } from "./properties/scalar/PressurePropert
10
11
  export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
11
12
  export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
12
13
  export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
14
+ export { default as InterfacialEnergyProperty } from "./properties/scalar/InterfacialEnergyProperty";
13
15
  export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
14
16
  export { default as HOMOEnergyProperty } from "./properties/scalar/HOMOEnergyProperty";
15
17
  export { default as LUMOEnergyProperty } from "./properties/scalar/LUMOEnergyProperty";
package/dist/js/index.js CHANGED
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- 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;
20
+ 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.InterfacialEnergyProperty = 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;
21
21
  var PropertyFactory_1 = require("./PropertyFactory");
22
22
  Object.defineProperty(exports, "PropertyFactory", { enumerable: true, get: function () { return __importDefault(PropertyFactory_1).default; } });
23
23
  var settings_1 = require("./settings");
@@ -29,6 +29,8 @@ var MetaProperty_1 = require("./MetaProperty");
29
29
  Object.defineProperty(exports, "MetaProperty", { enumerable: true, get: function () { return __importDefault(MetaProperty_1).default; } });
30
30
  var PseudopotentialMetaProperty_1 = require("./meta_properties/PseudopotentialMetaProperty");
31
31
  Object.defineProperty(exports, "PseudopotentialMetaProperty", { enumerable: true, get: function () { return __importDefault(PseudopotentialMetaProperty_1).default; } });
32
+ var FormationEnergyContributionsProperty_1 = require("./properties/array-of-objects/FormationEnergyContributionsProperty");
33
+ Object.defineProperty(exports, "FormationEnergyContributionsProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyContributionsProperty_1).default; } });
32
34
  var FinalStructureProperty_1 = require("./properties/non-scalar/FinalStructureProperty");
33
35
  Object.defineProperty(exports, "FinalStructureProperty", { enumerable: true, get: function () { return __importDefault(FinalStructureProperty_1).default; } });
34
36
  var BandGapsProperty_1 = require("./properties/non-scalar/BandGapsProperty");
@@ -43,6 +45,8 @@ var FormationEnergyProperty_1 = require("./properties/scalar/FormationEnergyProp
43
45
  Object.defineProperty(exports, "FormationEnergyProperty", { enumerable: true, get: function () { return __importDefault(FormationEnergyProperty_1).default; } });
44
46
  var SurfaceEnergyProperty_1 = require("./properties/scalar/SurfaceEnergyProperty");
45
47
  Object.defineProperty(exports, "SurfaceEnergyProperty", { enumerable: true, get: function () { return __importDefault(SurfaceEnergyProperty_1).default; } });
48
+ var InterfacialEnergyProperty_1 = require("./properties/scalar/InterfacialEnergyProperty");
49
+ Object.defineProperty(exports, "InterfacialEnergyProperty", { enumerable: true, get: function () { return __importDefault(InterfacialEnergyProperty_1).default; } });
46
50
  var TotalEnergyProperty_1 = require("./properties/scalar/TotalEnergyProperty");
47
51
  Object.defineProperty(exports, "TotalEnergyProperty", { enumerable: true, get: function () { return __importDefault(TotalEnergyProperty_1).default; } });
48
52
  var HOMOEnergyProperty_1 = require("./properties/scalar/HOMOEnergyProperty");
@@ -0,0 +1,14 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import { FormationEnergyContributionsPropertySchemaMixin } from "../../generated/FormationEnergyContributionsPropertySchemaMixin";
4
+ import Property from "../../Property";
5
+ import { PropertyName, PropertyType } from "../../settings";
6
+ type Schema = FormationEnergyContributionsPropertySchema;
7
+ type Base = typeof Property<Schema> & Constructor<FormationEnergyContributionsPropertySchemaMixin>;
8
+ declare const PropertyBase: Base;
9
+ export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema {
10
+ static readonly propertyType = PropertyType.array_of_objects;
11
+ static readonly propertyName = PropertyName.formation_energy_contributions;
12
+ constructor(config: Omit<Schema, "name">);
13
+ }
14
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const FormationEnergyContributionsPropertySchemaMixin_1 = require("../../generated/FormationEnergyContributionsPropertySchemaMixin");
7
+ const Property_1 = __importDefault(require("../../Property"));
8
+ const settings_1 = require("../../settings");
9
+ const PropertyBase = Property_1.default;
10
+ class FormationEnergyContributionsProperty extends PropertyBase {
11
+ constructor(config) {
12
+ super({ ...config, name: FormationEnergyContributionsProperty.propertyName });
13
+ }
14
+ }
15
+ FormationEnergyContributionsProperty.propertyType = settings_1.PropertyType.array_of_objects;
16
+ FormationEnergyContributionsProperty.propertyName = settings_1.PropertyName.formation_energy_contributions;
17
+ exports.default = FormationEnergyContributionsProperty;
18
+ (0, FormationEnergyContributionsPropertySchemaMixin_1.formationEnergyContributionsPropertySchemaMixin)(FormationEnergyContributionsProperty.prototype);
@@ -0,0 +1,15 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { InterfacialEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import { InterfacialEnergyPropertySchemaMixin } from "../../generated/InterfacialEnergyPropertySchemaMixin";
4
+ import Property from "../../Property";
5
+ import { PropertyName, PropertyType } from "../../settings";
6
+ type Schema = InterfacialEnergyPropertySchema;
7
+ type Base = typeof Property<Schema> & Constructor<InterfacialEnergyPropertySchemaMixin>;
8
+ declare const InterfacialEnergyProperty_base: Base;
9
+ export default class InterfacialEnergyProperty extends InterfacialEnergyProperty_base implements Schema {
10
+ static readonly isRefined = true;
11
+ static readonly propertyName = PropertyName.interfacial_energy;
12
+ static readonly propertyType = PropertyType.scalar;
13
+ constructor(config: Omit<Schema, "name">);
14
+ }
15
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const InterfacialEnergyPropertySchemaMixin_1 = require("../../generated/InterfacialEnergyPropertySchemaMixin");
7
+ const Property_1 = __importDefault(require("../../Property"));
8
+ const settings_1 = require("../../settings");
9
+ class InterfacialEnergyProperty extends Property_1.default {
10
+ constructor(config) {
11
+ super({ ...config, name: InterfacialEnergyProperty.propertyName });
12
+ }
13
+ }
14
+ InterfacialEnergyProperty.isRefined = true;
15
+ InterfacialEnergyProperty.propertyName = settings_1.PropertyName.interfacial_energy;
16
+ InterfacialEnergyProperty.propertyType = settings_1.PropertyType.scalar;
17
+ exports.default = InterfacialEnergyProperty;
18
+ (0, InterfacialEnergyPropertySchemaMixin_1.interfacialEnergyPropertySchemaMixin)(InterfacialEnergyProperty.prototype);
@@ -6,7 +6,8 @@ export declare enum PropertyType {
6
6
  scalar = "scalar",
7
7
  non_scalar = "non-scalar",
8
8
  tensor = "tensor",
9
- object = "object"
9
+ object = "object",
10
+ array_of_objects = "array-of-objects"
10
11
  }
11
12
  export declare enum PropertyName {
12
13
  pressure = "pressure",
@@ -15,6 +16,7 @@ export declare enum PropertyName {
15
16
  homo_energy = "homo_energy",
16
17
  lumo_energy = "lumo_energy",
17
18
  surface_energy = "surface_energy",
19
+ interfacial_energy = "interfacial_energy",
18
20
  formation_energy = "formation_energy",
19
21
  convergence_electronic = "convergence_electronic",
20
22
  convergence_ionic = "convergence_ionic",
@@ -23,6 +25,7 @@ export declare enum PropertyName {
23
25
  thermal_correction_to_energy = "thermal_correction_to_energy",
24
26
  thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy",
25
27
  total_energy_contributions = "total_energy_contributions",
28
+ formation_energy_contributions = "formation_energy_contributions",
26
29
  atomic_forces = "atomic_forces",
27
30
  atomic_constraints = "atomic_constraints",
28
31
  stress_tensor = "stress_tensor",
@@ -14,6 +14,7 @@ var PropertyType;
14
14
  // non-scalar subtypes
15
15
  PropertyType["tensor"] = "tensor";
16
16
  PropertyType["object"] = "object";
17
+ PropertyType["array_of_objects"] = "array-of-objects";
17
18
  })(PropertyType || (exports.PropertyType = PropertyType = {}));
18
19
  var PropertyName;
19
20
  (function (PropertyName) {
@@ -23,6 +24,7 @@ var PropertyName;
23
24
  PropertyName["homo_energy"] = "homo_energy";
24
25
  PropertyName["lumo_energy"] = "lumo_energy";
25
26
  PropertyName["surface_energy"] = "surface_energy";
27
+ PropertyName["interfacial_energy"] = "interfacial_energy";
26
28
  PropertyName["formation_energy"] = "formation_energy";
27
29
  PropertyName["convergence_electronic"] = "convergence_electronic";
28
30
  PropertyName["convergence_ionic"] = "convergence_ionic";
@@ -31,6 +33,7 @@ var PropertyName;
31
33
  PropertyName["thermal_correction_to_energy"] = "thermal_correction_to_energy";
32
34
  PropertyName["thermal_correction_to_enthalpy"] = "thermal_correction_to_enthalpy";
33
35
  PropertyName["total_energy_contributions"] = "total_energy_contributions";
36
+ PropertyName["formation_energy_contributions"] = "formation_energy_contributions";
34
37
  PropertyName["atomic_forces"] = "atomic_forces";
35
38
  PropertyName["atomic_constraints"] = "atomic_constraints";
36
39
  PropertyName["stress_tensor"] = "stress_tensor";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mat3ra/prode",
3
- "version": "2026.6.5-0",
3
+ "version": "2026.7.14-0",
4
4
  "description": "PROperty DEfinitions",
5
5
  "scripts": {
6
6
  "test": "nyc --reporter=text mocha --recursive --bail",
@@ -52,7 +52,7 @@
52
52
  "@babel/eslint-parser": "^7.16.3",
53
53
  "@exabyte-io/eslint-config": "2025.5.13-0",
54
54
  "@mat3ra/code": "2026.5.27-0",
55
- "@mat3ra/esse": "2026.6.5-0",
55
+ "@mat3ra/esse": "2026.7.14-0",
56
56
  "@mat3ra/made": "2026.5.28-0",
57
57
  "@mat3ra/tsconfig": "2024.6.3-0",
58
58
  "@types/lodash": "^4.17.20",
@@ -7,6 +7,7 @@ import type {
7
7
 
8
8
  import PseudopotentialProperty from "./meta_properties/PseudopotentialMetaProperty";
9
9
  import type MetaProperty from "./MetaProperty";
10
+ import FormationEnergyContributionsProperty from "./properties/array-of-objects/FormationEnergyContributionsProperty";
10
11
  import AveragePotentialProfileProperty from "./properties/non-scalar/AveragePotentialProfileProperty";
11
12
  import BandGapsProperty from "./properties/non-scalar/BandGapsProperty";
12
13
  import BandStructureProperty from "./properties/non-scalar/BandStructureProperty";
@@ -32,6 +33,7 @@ import TotalEnergyContributionsProperty from "./properties/object/TotalEnergyCon
32
33
  import FermiEnergyProperty from "./properties/scalar/FermiEnergyProperty";
33
34
  import FormationEnergyProperty from "./properties/scalar/FormationEnergyProperty";
34
35
  import HOMOEnergyProperty from "./properties/scalar/HOMOEnergyProperty";
36
+ import InterfacialEnergyProperty from "./properties/scalar/InterfacialEnergyProperty";
35
37
  import IonizationPotentialElementalProperty from "./properties/scalar/IonizationPotentialElementalProperty";
36
38
  import LUMOEnergyProperty from "./properties/scalar/LUMOEnergyProperty";
37
39
  import PressureProperty from "./properties/scalar/PressureProperty";
@@ -64,6 +66,7 @@ type PropertyClassMap = {
64
66
  | Constructor<LUMOEnergyProperty>
65
67
  | Constructor<FormationEnergyProperty>
66
68
  | Constructor<SurfaceEnergyProperty>
69
+ | Constructor<InterfacialEnergyProperty>
67
70
  | Constructor<ConvergenceElectronicProperty>
68
71
  | Constructor<ConvergenceIonicProperty>
69
72
  | Constructor<FermiEnergyProperty>
@@ -71,6 +74,7 @@ type PropertyClassMap = {
71
74
  | Constructor<ThermalCorrectionToEnthalpyProperty>
72
75
  | Constructor<ZeroPointEnergyProperty>
73
76
  | Constructor<TotalEnergyContributionsProperty>
77
+ | Constructor<FormationEnergyContributionsProperty>
74
78
  | Constructor<AtomicForcesProperty>
75
79
  | Constructor<StressTensorProperty>
76
80
  | Constructor<DensityOfStatesProperty>
@@ -116,6 +120,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = {
116
120
  [LUMOEnergyProperty.propertyName]: LUMOEnergyProperty,
117
121
  [FormationEnergyProperty.propertyName]: FormationEnergyProperty,
118
122
  [SurfaceEnergyProperty.propertyName]: SurfaceEnergyProperty,
123
+ [InterfacialEnergyProperty.propertyName]: InterfacialEnergyProperty,
119
124
  [ConvergenceElectronicProperty.propertyName]: ConvergenceElectronicProperty,
120
125
  [ConvergenceIonicProperty.propertyName]: ConvergenceIonicProperty,
121
126
  [FermiEnergyProperty.propertyName]: FermiEnergyProperty,
@@ -123,6 +128,7 @@ const PROPERTY_CLASS_MAP: PropertyClassMap = {
123
128
  [ThermalCorrectionToEnthalpyProperty.propertyName]: ThermalCorrectionToEnthalpyProperty,
124
129
  [ZeroPointEnergyProperty.propertyName]: ZeroPointEnergyProperty,
125
130
  [TotalEnergyContributionsProperty.propertyName]: TotalEnergyContributionsProperty,
131
+ [FormationEnergyContributionsProperty.propertyName]: FormationEnergyContributionsProperty,
126
132
  [AtomicForcesProperty.propertyName]: AtomicForcesProperty,
127
133
  [StressTensorProperty.propertyName]: StressTensorProperty,
128
134
  [DensityOfStatesProperty.propertyName]: DensityOfStatesProperty,
@@ -192,6 +198,14 @@ export default class PropertyFactory {
192
198
  });
193
199
  }
194
200
 
201
+ static getArrayOfObjectsPropertyNames(): PropertyName[] {
202
+ return this.filterPropertyNames((PropertyClass) => {
203
+ return (
204
+ (PropertyClass as typeof Property).propertyType === PropertyType.array_of_objects
205
+ );
206
+ });
207
+ }
208
+
195
209
  private static filterPropertyNames(
196
210
  filterFn: (PropertyClass: Constructor<Property>) => boolean,
197
211
  ): PropertyName[] {
@@ -0,0 +1,34 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ export type FormationEnergyContributionsPropertySchemaMixin = Omit<
5
+ FormationEnergyContributionsPropertySchema,
6
+ "_id" | "slug" | "systemName" | "schemaVersion"
7
+ >;
8
+
9
+ export type FormationEnergyContributionsPropertyInMemoryEntity = InMemoryEntity &
10
+ FormationEnergyContributionsPropertySchemaMixin;
11
+
12
+ export function formationEnergyContributionsPropertySchemaMixin<T extends InMemoryEntity>(
13
+ item: InMemoryEntity,
14
+ ): asserts item is T & FormationEnergyContributionsPropertySchemaMixin {
15
+ // @ts-expect-error
16
+ const properties: InMemoryEntity & FormationEnergyContributionsPropertySchemaMixin = {
17
+ get name() {
18
+ return this.requiredProp<FormationEnergyContributionsPropertySchema["name"]>("name");
19
+ },
20
+ set name(value: FormationEnergyContributionsPropertySchema["name"]) {
21
+ this.setProp("name", value);
22
+ },
23
+ get values() {
24
+ return this.requiredProp<FormationEnergyContributionsPropertySchema["values"]>(
25
+ "values",
26
+ );
27
+ },
28
+ set values(value: FormationEnergyContributionsPropertySchema["values"]) {
29
+ this.setProp("values", value);
30
+ },
31
+ };
32
+
33
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
34
+ }
@@ -0,0 +1,38 @@
1
+ import type { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import type { InterfacialEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ export type InterfacialEnergyPropertySchemaMixin = Omit<
5
+ InterfacialEnergyPropertySchema,
6
+ "_id" | "slug" | "systemName" | "schemaVersion"
7
+ >;
8
+
9
+ export type InterfacialEnergyPropertyInMemoryEntity = InMemoryEntity &
10
+ InterfacialEnergyPropertySchemaMixin;
11
+
12
+ export function interfacialEnergyPropertySchemaMixin<T extends InMemoryEntity>(
13
+ item: InMemoryEntity,
14
+ ): asserts item is T & InterfacialEnergyPropertySchemaMixin {
15
+ // @ts-expect-error
16
+ const properties: InMemoryEntity & InterfacialEnergyPropertySchemaMixin = {
17
+ get name() {
18
+ return this.requiredProp<InterfacialEnergyPropertySchema["name"]>("name");
19
+ },
20
+ set name(value: InterfacialEnergyPropertySchema["name"]) {
21
+ this.setProp("name", value);
22
+ },
23
+ get units() {
24
+ return this.requiredProp<InterfacialEnergyPropertySchema["units"]>("units");
25
+ },
26
+ set units(value: InterfacialEnergyPropertySchema["units"]) {
27
+ this.setProp("units", value);
28
+ },
29
+ get value() {
30
+ return this.requiredProp<InterfacialEnergyPropertySchema["value"]>("value");
31
+ },
32
+ set value(value: InterfacialEnergyPropertySchema["value"]) {
33
+ this.setProp("value", value);
34
+ },
35
+ };
36
+
37
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
38
+ }
@@ -25,6 +25,12 @@ export function workflowPropertySchemaMixin<T extends InMemoryEntity>(
25
25
  set workflows(value: WorkflowPropertySchema["workflows"]) {
26
26
  this.setProp("workflows", value);
27
27
  },
28
+ get compute() {
29
+ return this.prop<WorkflowPropertySchema["compute"]>("compute");
30
+ },
31
+ set compute(value: WorkflowPropertySchema["compute"]) {
32
+ this.setProp("compute", value);
33
+ },
28
34
  get metadata() {
29
35
  return this.prop<WorkflowPropertySchema["metadata"]>("metadata");
30
36
  },
@@ -73,6 +79,18 @@ export function workflowPropertySchemaMixin<T extends InMemoryEntity>(
73
79
  set tags(value: WorkflowPropertySchema["tags"]) {
74
80
  this.setProp("tags", value);
75
81
  },
82
+ get description() {
83
+ return this.prop<WorkflowPropertySchema["description"]>("description");
84
+ },
85
+ set description(value: WorkflowPropertySchema["description"]) {
86
+ this.setProp("description", value);
87
+ },
88
+ get descriptionObject() {
89
+ return this.prop<WorkflowPropertySchema["descriptionObject"]>("descriptionObject");
90
+ },
91
+ set descriptionObject(value: WorkflowPropertySchema["descriptionObject"]) {
92
+ this.setProp("descriptionObject", value);
93
+ },
76
94
  };
77
95
 
78
96
  Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
package/src/js/index.ts CHANGED
@@ -3,6 +3,7 @@ export { PropertyName, PropertyType } from "./settings";
3
3
  export { default as Property } from "./Property";
4
4
  export { default as MetaProperty } from "./MetaProperty";
5
5
  export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty";
6
+ export { default as FormationEnergyContributionsProperty } from "./properties/array-of-objects/FormationEnergyContributionsProperty";
6
7
  export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty";
7
8
  export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty";
8
9
  export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
@@ -10,6 +11,7 @@ export { default as PressureProperty } from "./properties/scalar/PressurePropert
10
11
  export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
11
12
  export { default as FormationEnergyProperty } from "./properties/scalar/FormationEnergyProperty";
12
13
  export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
14
+ export { default as InterfacialEnergyProperty } from "./properties/scalar/InterfacialEnergyProperty";
13
15
  export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
14
16
  export { default as HOMOEnergyProperty } from "./properties/scalar/HOMOEnergyProperty";
15
17
  export { default as LUMOEnergyProperty } from "./properties/scalar/LUMOEnergyProperty";
@@ -0,0 +1,27 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FormationEnergyContributionsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ FormationEnergyContributionsPropertySchemaMixin,
6
+ formationEnergyContributionsPropertySchemaMixin,
7
+ } from "../../generated/FormationEnergyContributionsPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = FormationEnergyContributionsPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<FormationEnergyContributionsPropertySchemaMixin>;
14
+
15
+ const PropertyBase = Property as Base;
16
+
17
+ export default class FormationEnergyContributionsProperty extends PropertyBase implements Schema {
18
+ static readonly propertyType = PropertyType.array_of_objects;
19
+
20
+ static readonly propertyName = PropertyName.formation_energy_contributions;
21
+
22
+ constructor(config: Omit<Schema, "name">) {
23
+ super({ ...config, name: FormationEnergyContributionsProperty.propertyName });
24
+ }
25
+ }
26
+
27
+ formationEnergyContributionsPropertySchemaMixin(FormationEnergyContributionsProperty.prototype);
@@ -0,0 +1,27 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { InterfacialEnergyPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+
4
+ import {
5
+ InterfacialEnergyPropertySchemaMixin,
6
+ interfacialEnergyPropertySchemaMixin,
7
+ } from "../../generated/InterfacialEnergyPropertySchemaMixin";
8
+ import Property from "../../Property";
9
+ import { PropertyName, PropertyType } from "../../settings";
10
+
11
+ type Schema = InterfacialEnergyPropertySchema;
12
+
13
+ type Base = typeof Property<Schema> & Constructor<InterfacialEnergyPropertySchemaMixin>;
14
+
15
+ export default class InterfacialEnergyProperty extends (Property as Base) implements Schema {
16
+ static readonly isRefined = true;
17
+
18
+ static readonly propertyName = PropertyName.interfacial_energy;
19
+
20
+ static readonly propertyType = PropertyType.scalar;
21
+
22
+ constructor(config: Omit<Schema, "name">) {
23
+ super({ ...config, name: InterfacialEnergyProperty.propertyName });
24
+ }
25
+ }
26
+
27
+ interfacialEnergyPropertySchemaMixin(InterfacialEnergyProperty.prototype);
@@ -10,6 +10,7 @@ export enum PropertyType {
10
10
  // non-scalar subtypes
11
11
  tensor = "tensor",
12
12
  object = "object",
13
+ array_of_objects = "array-of-objects",
13
14
  }
14
15
 
15
16
  export enum PropertyName {
@@ -19,6 +20,7 @@ export enum PropertyName {
19
20
  homo_energy = "homo_energy",
20
21
  lumo_energy = "lumo_energy",
21
22
  surface_energy = "surface_energy",
23
+ interfacial_energy = "interfacial_energy",
22
24
  formation_energy = "formation_energy",
23
25
  convergence_electronic = "convergence_electronic",
24
26
  convergence_ionic = "convergence_ionic",
@@ -27,6 +29,7 @@ export enum PropertyName {
27
29
  thermal_correction_to_energy = "thermal_correction_to_energy",
28
30
  thermal_correction_to_enthalpy = "thermal_correction_to_enthalpy",
29
31
  total_energy_contributions = "total_energy_contributions",
32
+ formation_energy_contributions = "formation_energy_contributions",
30
33
  atomic_forces = "atomic_forces",
31
34
  atomic_constraints = "atomic_constraints",
32
35
  stress_tensor = "stress_tensor",