@opendaw/lib-box 0.0.49 → 0.0.51

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.
package/dist/box.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../src/box.ts"],"names":[],"mappings":"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"}
package/dist/box.js CHANGED
@@ -33,7 +33,7 @@ export class Box {
33
33
  fields() { return Object.values(this.#fields); }
34
34
  record() { return this.#fields; }
35
35
  getField(key) {
36
- return asDefined(this.#fields[key], `Field ${String(key)} not found in ${this.toString()}`);
36
+ return asDefined(this.#fields[key], () => `Field ${String(key)} not found in ${this.toString()}`);
37
37
  }
38
38
  optField(key) { return Option.wrap(this.#fields[key]); }
39
39
  subscribe(propagation, procedure) {
@@ -0,0 +1,24 @@
1
+ import { float, int } from "@opendaw/lib-std";
2
+ export declare namespace Constraints {
3
+ type Int32 = {
4
+ min: int;
5
+ max: int;
6
+ } | {
7
+ length: int;
8
+ } | {
9
+ values: Array<int>;
10
+ } | "non-negative" | "positive" | "index" | "any";
11
+ type Float32 = {
12
+ min: float;
13
+ max: float;
14
+ scaling: "linear" | "exponential";
15
+ } | {
16
+ min: float;
17
+ mid: float;
18
+ max: float;
19
+ scaling: "decibel";
20
+ } | "unipolar" | "bipolar" | "decibel" | "non-negative" | "positive" | "any";
21
+ const clampInt32: (constraint: Constraints.Int32, value: int) => int;
22
+ const clampFloat32: (constraint: Constraints.Float32, value: float) => float;
23
+ }
24
+ //# sourceMappingURL=constraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAE3C,yBAAiB,WAAW,CAAC;IACzB,KAAY,KAAK,GACX;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,GAAG,EAAE,GAAG,CAAA;KAAE,GACtB;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,GACf;QAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;KAAE,GACtB,cAAc,GACd,UAAU,GACV,OAAO,GACP,KAAK,CAAA;IAEX,KAAY,OAAO,GACb;QAAE,GAAG,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAA;KAAE,GAC7D;QAAE,GAAG,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,SAAS,CAAA;KAAE,GAC1D,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,KAAK,CAAA;IAKvE,MAAM,UAAU,GAAI,YAAY,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAG,GAqBtE,CAAA;IACM,MAAM,YAAY,GAAI,YAAY,WAAW,CAAC,OAAO,EAAE,OAAO,KAAK,KAAG,KAqB5E,CAAA;CACJ"}
@@ -0,0 +1,49 @@
1
+ export var Constraints;
2
+ (function (Constraints) {
3
+ // TODO There are many challenges to be solved. One is project-migration:
4
+ // Old values might be out of range now!
5
+ Constraints.clampInt32 = (constraint, value) => {
6
+ // TODO
7
+ /*if (constraint === "any") {
8
+ return value
9
+ } else if (constraint === "index" || constraint === "non-negative") {
10
+ assert(value >= 0, () => `value(${value}) must be non-negative`)
11
+ } else if (constraint === "positive") {
12
+ assert(value > 0, () => `value(${value}) must be positive`)
13
+ } else if (typeof constraint === "object") {
14
+ if ("min" in constraint && "max" in constraint) {
15
+ assert(constraint.min <= value && value <= constraint.max,
16
+ () => `value(${value}) must be in minmax(${constraint.min}, ${constraint.max})`)
17
+ } else if ("values" in constraint) {
18
+ assert(constraint.values.includes(value),
19
+ () => `value(${value}) must be in values(${constraint.values.join(", ")})`)
20
+ } else if ("length" in constraint) {
21
+ assert(value >= 0 && value < constraint.length,
22
+ () => `value(${value}) must be non-negative and lower then length(${constraint.length})`)
23
+ }
24
+ }*/
25
+ return value;
26
+ };
27
+ Constraints.clampFloat32 = (constraint, value) => {
28
+ // TODO
29
+ /*if (constraint === "any") {
30
+ return value
31
+ } else if (constraint === "unipolar") {
32
+ assert(value >= 0 && value <= 1, () => `value(${value}) must be in [0, 1]`)
33
+ } else if (constraint === "bipolar") {
34
+ assert(value >= -1 && value <= 1, () => `value(${value}) must be in [-1, 1]`)
35
+ } else if (constraint === "decibel") {
36
+ assert(value <= 0.0, () => `value(${value}) must be in [-INFINITY, 0]`)
37
+ } else if (constraint === "non-negative") {
38
+ assert(value >= 0, () => `value(${value}) must be non-negative`)
39
+ } else if (constraint === "positive") {
40
+ assert(value > 0, () => `value(${value}) must be positive`)
41
+ } else if (typeof constraint === "object") {
42
+ if ("min" in constraint && "max" in constraint) {
43
+ assert(constraint.min <= value && value <= constraint.max,
44
+ () => `value(${value}) must be in minmax(${constraint.min}, ${constraint.max})`)
45
+ }
46
+ }*/
47
+ return value;
48
+ };
49
+ })(Constraints || (Constraints = {}));
package/dist/editing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BoxGraph } from "./graph";
2
- import { Editing, Maybe, Option, Provider } from "@opendaw/lib-std";
2
+ import { Editing, Maybe, Option, SyncProvider } from "@opendaw/lib-std";
3
3
  export interface ModificationProcess {
4
4
  approve(): void;
5
5
  revert(): void;
@@ -13,7 +13,7 @@ export declare class BoxEditing implements Editing {
13
13
  undo(): boolean;
14
14
  redo(): boolean;
15
15
  mustModify(): boolean;
16
- modify<R>(modifier: Provider<Maybe<R>>, mark?: boolean): Option<R>;
16
+ modify<R>(modifier: SyncProvider<Maybe<R>>, mark?: boolean): Option<R>;
17
17
  beginModification(): ModificationProcess;
18
18
  mark(): void;
19
19
  clearPending(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../src/editing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAA;AAChC,OAAO,EAAiB,OAAO,EAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAqBtF,MAAM,WAAW,mBAAmB;IAChC,OAAO,IAAI,IAAI,CAAA;IACf,MAAM,IAAI,IAAI,CAAA;CACjB;AAED,qBAAa,UAAW,YAAW,OAAO;;gBAU1B,KAAK,EAAE,QAAQ;IAI3B,IAAI,KAAK,IAAI,QAAQ,CAAqB;IAE1C,OAAO,IAAI,OAAO;IAElB,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,OAAO;IAUf,IAAI,IAAI,OAAO;IAcf,UAAU,IAAI,OAAO;IAErB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAc,GAAG,MAAM,CAAC,CAAC,CAAC;IAWxE,iBAAiB,IAAI,mBAAmB;IAuCxC,IAAI,IAAI,IAAI;IAOZ,YAAY,IAAI,IAAI;IAMpB,OAAO,IAAI,IAAI;CAGlB"}
1
+ {"version":3,"file":"editing.d.ts","sourceRoot":"","sources":["../src/editing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAA;AAChC,OAAO,EAAiB,OAAO,EAAO,KAAK,EAAE,MAAM,EAAY,YAAY,EAAC,MAAM,kBAAkB,CAAA;AAqBpG,MAAM,WAAW,mBAAmB;IAChC,OAAO,IAAI,IAAI,CAAA;IACf,MAAM,IAAI,IAAI,CAAA;CACjB;AAED,qBAAa,UAAW,YAAW,OAAO;;gBAU1B,KAAK,EAAE,QAAQ;IAI3B,IAAI,KAAK,IAAI,QAAQ,CAAqB;IAE1C,OAAO,IAAI,OAAO;IAElB,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,OAAO;IAUf,IAAI,IAAI,OAAO;IAcf,UAAU,IAAI,OAAO;IAErB,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAE,OAAc,GAAG,MAAM,CAAC,CAAC,CAAC;IAW5E,iBAAiB,IAAI,mBAAmB;IAuCxC,IAAI,IAAI,IAAI;IAOZ,YAAY,IAAI,IAAI;IAMpB,OAAO,IAAI,IAAI;CAGlB"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from "./address";
2
2
  export * from "./array";
3
3
  export * from "./box";
4
+ export * from "./constraints";
4
5
  export * from "./dispatchers";
5
6
  export * from "./editing";
6
7
  export * from "./field";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ else {
9
9
  export * from "./address";
10
10
  export * from "./array";
11
11
  export * from "./box";
12
+ export * from "./constraints";
12
13
  export * from "./dispatchers";
13
14
  export * from "./editing";
14
15
  export * from "./field";
package/dist/pointer.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DataInput, DataOutput, JSONValue, Maybe, Observer, Option, Optional, Provider, Subscription } from "@opendaw/lib-std";
1
+ import { DataInput, DataOutput, JSONValue, Maybe, Observer, Option, Optional, Procedure, Provider, Subscription } from "@opendaw/lib-std";
2
2
  import { Vertex, VertexVisitor } from "./vertex";
3
3
  import { Address } from "./address";
4
4
  import { PointerHub } from "./pointer-hub";
@@ -32,6 +32,7 @@ export declare class PointerField<P extends PointerTypes = PointerTypes> extends
32
32
  set targetAddress(newValue: Option<Address>);
33
33
  isEmpty(): boolean;
34
34
  nonEmpty(): boolean;
35
+ ifVertex(procedure: Procedure<Vertex>): void;
35
36
  resolvedTo(newTarget: Option<Vertex>): void;
36
37
  read(input: DataInput): void;
37
38
  write(output: DataOutput): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../src/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,UAAU,EAEV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EAER,QAAQ,EAER,YAAY,EAEf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,SAAS,CAAA;AAG7C,QAAA,MAAM,gBAAgB,eAA4B,CAAA;AAElD,MAAM,MAAM,mBAAmB,GAAG,OAAO,gBAAgB,CAAA;AAEzD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,mBAAmB,CAAA;AAEhE,MAAM,WAAW,cAAc;IAAE,GAAG,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;CAAC;AAE7E,MAAM,WAAW,cAAc;IAAE,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;CAAC;AAE1G,qBAAa,YAAY,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,CAAE,SAAQ,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC;;IACtG,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAC9C,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC;IAI1E,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;IAWnE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;IAoBnE,OAAO;IASP,IAAI,UAAU,IAAI,UAAU,CAA+C;IAE3E,IAAI,WAAW,IAAI,CAAC,CAA2B;IAC/C,IAAI,SAAS,IAAI,OAAO,CAAyB;IAEjD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAI7D,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAKjD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY;IAK3D,KAAK,CAAC,MAAM,SAAS,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,SAAS,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI;IAInG,KAAK,IAAI,IAAI;IAEb,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,CAIjC;IACD,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAQtC;IAED,IAAI,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,CAA6B;IACjE,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAM1C;IAED,OAAO,IAAI,OAAO;IAClB,QAAQ,IAAI,OAAO;IAEnB,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;IAE3C,IAAI,CAAC,KAAK,EAAE,SAAS;IAUrB,KAAK,CAAC,MAAM,EAAE,UAAU;IAcxB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC;IAY7B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAYnC"}
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../src/pointer.ts"],"names":[],"mappings":"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"}
package/dist/pointer.js CHANGED
@@ -85,6 +85,11 @@ export class PointerField extends Field {
85
85
  }
86
86
  isEmpty() { return this.targetAddress.isEmpty(); }
87
87
  nonEmpty() { return this.targetAddress.nonEmpty(); }
88
+ ifVertex(procedure) {
89
+ if (this.targetVertex.nonEmpty()) {
90
+ procedure(this.targetVertex.unwrap());
91
+ }
92
+ }
88
93
  resolvedTo(newTarget) { this.#targetVertex = newTarget; }
89
94
  read(input) {
90
95
  const address = input.readBoolean()
@@ -2,6 +2,7 @@ import { Field, FieldConstruct } from "./field";
2
2
  import { PointerTypes, UnreferenceableType } from "./pointer";
3
3
  import { ByteArrayInput, ByteArrayOutput, DataInput, DataOutput, float, int, JSONValue, Maybe, MutableObservableValue, ObservableValue, Observer, Optional, Subscription } from "@opendaw/lib-std";
4
4
  import { VertexVisitor } from "./vertex";
5
+ import { Constraints } from "./constraints";
5
6
  export type PrimitiveValues = float | int | string | boolean | Readonly<Int8Array>;
6
7
  export declare enum PrimitiveType {
7
8
  Boolean = "boolean",
@@ -74,23 +75,29 @@ export declare class BooleanField<E extends PointerTypes = UnreferenceableType>
74
75
  fromJSON(value: JSONValue): void;
75
76
  }
76
77
  export declare class Float32Field<E extends PointerTypes = UnreferenceableType> extends PrimitiveField<float, E> {
77
- static create<E extends PointerTypes = UnreferenceableType>(construct: FieldConstruct<E>, value?: float): Float32Field<E>;
78
+ #private;
79
+ static create<E extends PointerTypes = UnreferenceableType>(construct: FieldConstruct<E>, constraints: Constraints.Float32, unit: string, value?: float): Float32Field<E>;
78
80
  private constructor();
79
81
  serialization(): ValueSerialization<float>;
80
82
  equals(value: float): boolean;
81
83
  clamp(value: float): float;
82
84
  read(input: DataInput): void;
83
85
  write(output: DataOutput): void;
86
+ get unit(): string;
87
+ get constraints(): Constraints.Float32;
84
88
  fromJSON(value: JSONValue): void;
85
89
  }
86
90
  export declare class Int32Field<E extends PointerTypes = UnreferenceableType> extends PrimitiveField<int, E> {
87
- static create<E extends PointerTypes = UnreferenceableType>(construct: FieldConstruct<E>, value?: int): Int32Field<E>;
91
+ #private;
92
+ static create<E extends PointerTypes = UnreferenceableType>(construct: FieldConstruct<E>, constraints: Constraints.Int32, unit: string, value?: int): Int32Field<E>;
88
93
  private constructor();
89
94
  serialization(): ValueSerialization<int>;
90
95
  equals(value: int): boolean;
91
96
  clamp(value: int): int;
92
97
  read(input: DataInput): void;
93
98
  write(output: DataOutput): void;
99
+ get unit(): string;
100
+ get constraints(): Constraints.Int32;
94
101
  fromJSON(value: JSONValue): void;
95
102
  }
96
103
  export declare class StringField<E extends PointerTypes = UnreferenceableType> extends PrimitiveField<string, E> {
@@ -1 +1 @@
1
- {"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../src/primitive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitive.d.ts","sourceRoot":"","sources":["../src/primitive.ts"],"names":[],"mappings":"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"}
package/dist/primitive.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Field } from "./field";
2
2
  import { assert, Float, Integer, panic, safeExecute } from "@opendaw/lib-std";
3
3
  import { Propagation } from "./dispatchers";
4
+ import { Constraints } from "./constraints";
4
5
  export var PrimitiveType;
5
6
  (function (PrimitiveType) {
6
7
  PrimitiveType["Boolean"] = "boolean";
@@ -50,7 +51,7 @@ export class PrimitiveField extends Field {
50
51
  constructor(field, type, value) {
51
52
  super(field);
52
53
  this.#type = type;
53
- this.#initValue = this.clamp(value);
54
+ this.#initValue = value;
54
55
  this.#value = this.#initValue;
55
56
  }
56
57
  accept(visitor) {
@@ -121,18 +122,26 @@ export class BooleanField extends PrimitiveField {
121
122
  }
122
123
  }
123
124
  export class Float32Field extends PrimitiveField {
124
- static create(construct, value = 0.0) {
125
- return new Float32Field(construct, value);
125
+ static create(construct, constraints, unit, value = 0.0) {
126
+ return new Float32Field(construct, constraints, unit, value);
127
+ }
128
+ #constraints;
129
+ #unit;
130
+ constructor(construct, constraints, unit, value) {
131
+ super(construct, PrimitiveType.Float32, value);
132
+ this.#constraints = constraints;
133
+ this.#unit = unit;
126
134
  }
127
- constructor(construct, value) { super(construct, PrimitiveType.Float32, value); }
128
135
  serialization() { return ValueSerialization[PrimitiveType.Float32]; }
129
136
  equals(value) { return this.getValue() === value; }
130
- clamp(value) { return Float.toFloat32(value); }
137
+ clamp(value) { return Constraints.clampFloat32(this.#constraints, Float.toFloat32(value)); }
131
138
  read(input) { this.setValue(input.readFloat()); }
132
139
  write(output) {
133
140
  assert(!this.deprecated, "FLoat32Field.write: deprecated field");
134
141
  output.writeFloat(this.getValue());
135
142
  }
143
+ get unit() { return this.#unit; }
144
+ get constraints() { return this.#constraints; }
136
145
  fromJSON(value) {
137
146
  if (this.deprecated) {
138
147
  return;
@@ -146,18 +155,26 @@ export class Float32Field extends PrimitiveField {
146
155
  }
147
156
  }
148
157
  export class Int32Field extends PrimitiveField {
149
- static create(construct, value = 0) {
150
- return new Int32Field(construct, value);
158
+ static create(construct, constraints, unit, value = 0) {
159
+ return new Int32Field(construct, constraints, unit, value);
160
+ }
161
+ #constraints;
162
+ #unit;
163
+ constructor(construct, constraints, unit, value) {
164
+ super(construct, PrimitiveType.Int32, value);
165
+ this.#constraints = constraints;
166
+ this.#unit = unit;
151
167
  }
152
- constructor(construct, value) { super(construct, PrimitiveType.Int32, value); }
153
168
  serialization() { return ValueSerialization[PrimitiveType.Int32]; }
154
169
  equals(value) { return this.getValue() === value; }
155
- clamp(value) { return Integer.toInt(value); }
170
+ clamp(value) { return Constraints.clampInt32(this.#constraints, Integer.toInt(value)); }
156
171
  read(input) { this.setValue(input.readInt()); }
157
172
  write(output) {
158
173
  assert(!this.deprecated, "Int32Field.write: deprecated field");
159
174
  output.writeInt(this.getValue());
160
175
  }
176
+ get unit() { return this.#unit; }
177
+ get constraints() { return this.#constraints; }
161
178
  fromJSON(value) {
162
179
  if (this.deprecated) {
163
180
  return;
@@ -204,7 +221,8 @@ export class ByteArrayField extends PrimitiveField {
204
221
  constructor(construct, value) { super(construct, PrimitiveType.Bytes, value); }
205
222
  serialization() { return ValueSerialization[PrimitiveType.Bytes]; }
206
223
  equals(value) {
207
- return this.getValue().length === value.length && this.getValue().every((x, index) => value[index] === x);
224
+ // we only test for reference equality because the bytes are immutable
225
+ return this.getValue() === value;
208
226
  }
209
227
  clamp(value) { return value; }
210
228
  read(input) {
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@opendaw/lib-box",
3
- "version": "0.0.49",
3
+ "version": "0.0.51",
4
+ "sideEffects": false,
4
5
  "main": "./dist/index.js",
5
6
  "types": "./dist/index.d.ts",
6
7
  "license": "LGPL-3.0-or-later",
@@ -22,12 +23,12 @@
22
23
  "test": "vitest run"
23
24
  },
24
25
  "dependencies": {
25
- "@opendaw/lib-runtime": "^0.0.49",
26
- "@opendaw/lib-std": "^0.0.49"
26
+ "@opendaw/lib-runtime": "^0.0.51",
27
+ "@opendaw/lib-std": "^0.0.51"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@opendaw/eslint-config": "^0.0.20",
30
31
  "@opendaw/typescript-config": "^0.0.20"
31
32
  },
32
- "gitHead": "0c1cc9f642014877523c2dd619c7c847971f5d62"
33
+ "gitHead": "1b6de986a1edbf3e26b8044f9c9e6a887f4b3b87"
33
34
  }