@furo/open-models 1.3.0 → 1.5.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.
@@ -175402,6 +175402,19 @@
175402
175402
  ],
175403
175403
  "description": "The push() method of Array instances adds the specified elements to the end of an array and returns the new length of the array.\nParams:\nelement1 … elementN – The element(s) to add to the end of the array.\nReturns:\nThe new length property of the object upon which the method was called"
175404
175404
  },
175405
+ {
175406
+ "kind": "method",
175407
+ "name": "moveItem",
175408
+ "parameters": [
175409
+ {
175410
+ "name": "fromIndex"
175411
+ },
175412
+ {
175413
+ "name": "toIndex"
175414
+ }
175415
+ ],
175416
+ "description": "Moves an item in the array"
175417
+ },
175405
175418
  {
175406
175419
  "kind": "method",
175407
175420
  "name": "__pushWithoutNotifications",
@@ -187790,7 +187803,7 @@
187790
187803
  "declarations": [
187791
187804
  {
187792
187805
  "kind": "class",
187793
- "description": "",
187806
+ "description": "Struct represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, Struct might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language.\n\nThe JSON representation for Struct is JSON object.\n\nhttps://protobuf.dev/reference/protobuf/google.protobuf/#struct",
187794
187807
  "name": "Struct",
187795
187808
  "members": [
187796
187809
  {
@@ -187884,9 +187897,9 @@
187884
187897
  "kind": "field",
187885
187898
  "name": "_value",
187886
187899
  "type": {
187887
- "text": "string"
187900
+ "text": "object"
187888
187901
  },
187889
- "default": "''"
187902
+ "default": "{}"
187890
187903
  },
187891
187904
  {
187892
187905
  "kind": "field",
@@ -38,7 +38,7 @@ export declare class ARRAY<T extends FieldNode, I> extends FieldNode {
38
38
  toString(): string;
39
39
  __stringify(): string;
40
40
  __toJson(): T[];
41
- __toLiteral(): T[];
41
+ __toLiteral(): I[];
42
42
  __clear(): void;
43
43
  delete(index: number): I;
44
44
  deleteT(index: number): T;
@@ -131,6 +131,12 @@ export declare class ARRAY<T extends FieldNode, I> extends FieldNode {
131
131
  * @param items
132
132
  */
133
133
  push(...items: I[]): number;
134
+ /**
135
+ * Moves an item in the array
136
+ * @param fromIndex
137
+ * @param toIndex
138
+ */
139
+ moveItem(fromIndex: number, toIndex: number): void;
134
140
  private __pushWithoutNotifications;
135
141
  reverse(): T[];
136
142
  /**
@@ -307,6 +307,18 @@ export class ARRAY extends FieldNode {
307
307
  this.__notifyArrayChanges(true);
308
308
  return n;
309
309
  }
310
+ /**
311
+ * Moves an item in the array
312
+ * @param fromIndex
313
+ * @param toIndex
314
+ */
315
+ moveItem(fromIndex, toIndex) {
316
+ const e = this._value[fromIndex];
317
+ this._value.splice(fromIndex, 1);
318
+ this._value.splice(toIndex, 0, e);
319
+ this._rebuildIndexAndFieldName();
320
+ this.__notifyArrayChanges(true);
321
+ }
310
322
  __pushWithoutNotifications(items) {
311
323
  let n = 0;
312
324
  const Constructor = this.__getConstructor();
@@ -319,6 +331,7 @@ export class ARRAY extends FieldNode {
319
331
  fn.__meta.fieldName = `[${n - 1}]`;
320
332
  fn.__meta.index = n - 1;
321
333
  fn.__meta.isArrayNode = true;
334
+ fn.__meta.isPristine = true;
322
335
  });
323
336
  this.__isEmpty = false;
324
337
  return n;
@@ -1 +1 @@
1
- {"version":3,"file":"ARRAY.js","sourceRoot":"","sources":["../../src/proxies/ARRAY.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from '../FieldNode'\n\nexport class ARRAY<T extends FieldNode, I> extends FieldNode {\n private _value: T[] = []\n\n private ___Constructor: (new () => T) | undefined = undefined\n\n constructor(initData?: I[], parent?: FieldNode, parentATributeName?: string) {\n super(undefined, parent, parentATributeName)\n this.__isPrimitive = true\n if (initData !== undefined) {\n // eslint-disable-next-line no-console\n console.error('Use the ARRAY.Builder()')\n }\n this.__meta.typeName = `primitives.ARRAY<>`\n }\n\n /**\n * Creates an element of type T and adds it to the beginning or end (default) of the ARRAY\n * @param initData\n * @param before\n */\n public add(initData?: I, before?: boolean): T {\n const Constructor: new () => T = this.__getConstructor()\n\n const fn = new Constructor()\n if (initData) {\n fn.__updateWithLiteral(initData)\n }\n const n = before ? 0 : this.length\n fn.__parentNode = this\n fn.__meta.fieldName = `[${n}]`\n fn.__meta.index = n\n fn.__meta.isArrayNode = true\n fn.__rootNode = this.__rootNode\n if (before) {\n this._value.unshift(fn)\n } else {\n this._value.push(fn)\n }\n\n this.__isEmpty = false\n this.__notifyArrayChanges(true)\n return fn\n }\n\n /**\n *\n * @param initData\n */\n initFromLiteral(Constructor: { new(): T }, initData: I[]) {\n this.__clear()\n this.__meta.initialValue = initData\n this.__pushWithoutNotifications(initData)\n this.__notifyArrayChanges(false)\n }\n\n /**\n * creates a literal type from a json type\n *\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __mapProtoNameJsonToJson(data: any): any {\n const literal: I[] = []\n // create a dummy object\n const Constructor = this.__getConstructor()\n const fn = new Constructor()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data.forEach((row: any) => {\n literal.push(fn.__mapProtoNameJsonToJson(row))\n })\n return literal\n }\n\n __updateWithLiteral(initData: I[]) {\n if (this.__parentNode !== undefined) {\n this.initFromLiteral(this.__getConstructor(), initData)\n }\n }\n\n __getFieldNodeByPath(deepPath: string = ''): FieldNode | undefined {\n const path = deepPath\n .replaceAll(/[[\\]]/g, '.')\n .split('.')\n .filter(p => p !== '')\n\n if (path.length > 0 && path[0] !== '') {\n // eslint-disable-next-line no-param-reassign\n deepPath = path.slice(1).join('.')\n if (deepPath === '') {\n if (this.value[parseInt(path[0], 10)]) {\n return this.value[parseInt(path[0], 10)] as FieldNode\n }\n } else if (this.value[parseInt(path[0], 10)]) {\n return (\n this.value[parseInt(path[0], 10)] as FieldNode\n ).__getFieldNodeByPath(deepPath)\n }\n return undefined\n }\n return undefined\n }\n\n private __notifyArrayChanges(bubbles?: boolean) {\n this.__dispatchEvent(\n new CustomEvent('this-array-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('this-field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n if (bubbles) {\n this.__dispatchEvent(\n new CustomEvent('array-changed', {\n detail: this,\n bubbles: true,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: true,\n }),\n )\n } else {\n this.__dispatchEvent(\n new CustomEvent('array-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n }\n }\n\n // used by broadcast\n public get __childNodes(): T[] {\n return this._value\n }\n\n private __getConstructor(): new () => T {\n if (this.___Constructor !== undefined) {\n return this.___Constructor\n }\n // the __parentNode defines the type of the ARRAY<T,I>\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n )\n return fieldDescriptor?.FieldConstructor as new () => T\n }\n\n /**\n * @function\n * @template T FieldNode\n * @template I Json like interface type\n * @param {T} Constructor - Const\n * @param {I[]} initData - Initial open-models\n * @returns {ARRAY<T, I>}\n */\n static Builder<T extends FieldNode, I>(\n Constructor: new () => T,\n initData: I[],\n ): ARRAY<T, I> {\n const a: ARRAY<T, I> = new ARRAY<T, I>()\n a.___Constructor = Constructor\n a.initFromLiteral(Constructor, initData)\n return a\n }\n\n toString(): string {\n // resolve parent\n const innerType = this.__parentNode?.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n )\n return `[object ARRAY<${innerType?.FieldConstructor.name}>]`\n }\n\n // only used by direct invocation of the type\n __stringify(): string {\n return JSON.stringify(this.__toJson())\n }\n\n // only used by direct invocation of the type\n __toJson(): T[] {\n return this.value.map((v: FieldNode) => v.__toJson())\n }\n\n // only used by direct invocation of the type\n __toLiteral(): T[] {\n return this.value.map((v: FieldNode) => v.__toLiteral())\n }\n\n __clear() {\n this._value.length = 0\n this.__isEmpty = true\n this.__notifyArrayChanges(false)\n }\n\n delete(index: number): I {\n const removed = this._value.splice(index, 1)\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return removed[0].__toLiteral()\n }\n\n deleteT(index: number): T {\n const removed = this._value.splice(index, 1)\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return removed[0]\n }\n\n get value(): T[] {\n return this._value\n }\n\n /**\n * NOT needed any more, because we use the __TypeSetter instead of the __PrimitivesSetter\n set value(arr: T[]) {\n // assigning the new array will destroy any reference to it\n // __clear the array\n this.__clear();\n // (this as any)[`_${fieldName}`].length = 0;\n // refill the array\n arr.forEach((e, i) => {\n e.__parentNode = this;\n e.__meta.fieldName = `${i}`;\n e.__meta.index = i;\n e.__meta.isArrayNode = true;\n this._value.push(e);\n });\n this.__notifyArrayChanges(true);\n }\n */\n\n get length(): number {\n return this._value.length\n }\n\n /**\n * The at() method of Array instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.\n *\n * This method returns the Interface type.\n *\n * @param {I} index - Zero-based index of the array element to be returned, converted to an integer . Negative index counts back from the end of the array — if index < 0, index + array. length is accessed.\n */\n at(index: number): T | undefined {\n return this._value.at(index)\n }\n\n /**\n * The at() method of Array instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.\n *\n * This method returns the FieldNode type.\n *\n * @param {T} index - Zero-based index of the array element to be returned, converted to an integer . Negative index counts back from the end of the array — if index < 0, index + array. length is accessed.\n */\n atT(index: number): T | undefined {\n return this._value.at(index)\n }\n\n /**\n * The entries() method of Array instances returns a new array iterator object that contains the key/ value pairs for each index in the array.\n */\n entries(): IterableIterator<[number, I]> {\n return this._value.map(t => t.__toLiteral()).entries()\n }\n\n /**\n * The entries() method of Array instances returns a new array iterator object that contains the key/ value pairs for each index in the array.\n */\n entriesT(): IterableIterator<[number, T]> {\n return this._value.entries()\n }\n\n /**\n * Map with interface type as value.\n *\n * The map() method of Array instances creates a new array populated with the results of calling a provided function on every element in the calling array.\n */\n mapI<U>(\n callbackfn: (value: I, index: number, array: I[]) => U,\n thisArg?: unknown,\n ): U[] {\n return this._value.map(t => t.__toLiteral()).map(callbackfn, thisArg)\n }\n\n /**\n * The map() method of Array instances creates a new array populated with the results of calling a provided function on every element in the calling array.\n */\n map<U>(\n callbackfn: (value: T, index: number, array: T[]) => U,\n thisArg?: unknown,\n ): U[] {\n return this._value.map(callbackfn, thisArg)\n }\n\n /**\n * The filter() method of Array instances creates a shallow copy of a portion of a given array, filtered down to just the elements from the given array that pass the test implemented by the provided function.\n * @param callbackfn\n * @param thisArg\n */\n filter(\n callbackfn: (value: T, index: number, array: T[]) => boolean,\n thisArg?: unknown,\n ): T[] {\n return this._value.filter(callbackfn, thisArg)\n }\n\n find(\n callbackfn: (value: T, index: number, array: T[]) => boolean,\n thisArg?: unknown,\n ): T | undefined {\n return this._value.find(callbackfn, thisArg)\n }\n\n forEach(\n callbackfn: (value: T, index: number, array: T[]) => void,\n thisArg?: unknown,\n ): void {\n return this._value.forEach(callbackfn, thisArg)\n }\n\n /**\n * ...\n * This method requires a FieldNode, not the interface type\n * @param searchElement\n * @param fromIndex\n */\n includes(searchElement: T, fromIndex?: number): boolean {\n return this._value.includes(searchElement, fromIndex)\n }\n\n /**\n * ...\n * Alternatively you can use the T.__meta.index to get the index of an element.\n * This method requires a FieldNode, not the interface type.\n * @param searchElement\n * @param fromIndex\n */\n indexOf(searchElement: T, fromIndex?: number): number {\n // if searchElement is a FieldNode return __meta.index\n return this._value.indexOf(searchElement, fromIndex)\n }\n\n keys(): IterableIterator<number> {\n return this._value.keys()\n }\n\n lastIndexOf(searchElement: T, fromIndex?: number): number {\n return this._value.lastIndexOf(searchElement, fromIndex)\n }\n\n pop(): T | undefined {\n const ret = this._value.pop()\n this.__notifyArrayChanges(true)\n return ret\n }\n\n /**\n * The push() method of Array instances adds the specified elements to the end of an array and returns the new length of the array.\n * Params:\n * element1 … elementN – The element(s) to add to the end of the array.\n * Returns:\n * The new length property of the object upon which the method was called\n * @param items\n */\n push(...items: I[]): number {\n const n = this.__pushWithoutNotifications(items)\n this.__notifyArrayChanges(true)\n return n\n }\n\n private __pushWithoutNotifications(items: I[]) {\n let n: number = 0\n const Constructor: new () => T = this.__getConstructor()\n items.forEach((literal: I) => {\n const fn = new Constructor()\n fn.__updateWithLiteral(literal)\n n = this._value.push(fn)\n fn.__rootNode = this.__rootNode\n fn.__parentNode = this\n fn.__meta.fieldName = `[${n - 1}]`\n fn.__meta.index = n - 1\n fn.__meta.isArrayNode = true\n })\n\n this.__isEmpty = false\n return n\n }\n\n reverse(): T[] {\n const ret = this._value.reverse()\n this.__notifyArrayChanges(true)\n return ret\n }\n\n /**\n * The shift() method of Array instances removes the first element from an array and returns that removed element.\n *\n * This method changes the length of the array.\n */\n shift(): I | undefined {\n const t = this._value.shift()\n this.__notifyArrayChanges(true)\n return t?.__toLiteral()\n }\n\n /**\n * The slice() method of Array instances returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified.\n * #### Params:\n * start – Zero-based index at which to start extraction, converted to an integer .\n * Negative index counts back from the end of the array — if start < 0, start + array. length is used.\n * If start < -array. length or start is omitted, 0 is used.\n * If start >= array. length, nothing is extracted.\n *\n * end – Zero-based index at which to end extraction, converted to an integer . slice() extracts up to but not including end.\n * Negative index counts back from the end of the array — if end < 0, end + array. length is used.\n * If end < -array. length, 0 is used.\n * If end >= array. length or end is omitted, array. length is used, causing all elements until the end to be extracted.\n * If end is positioned before or at start after normalization, nothing is extracted.\n *\n */\n slice(start?: number, end?: number): I[] {\n const tar = this._value.slice(start, end)\n const ret = tar.map(t => t.__toLiteral())\n this.__notifyArrayChanges(true)\n return ret\n }\n\n splice(start: number, deleteCount?: number): I[];\n\n splice(start: number, deleteCount: number, ...items: I[]): I[];\n\n splice(start: number, deleteCount?: number, ...items: I[]): I[] {\n if (deleteCount !== undefined) {\n const Constructor: new () => T = this.__getConstructor()\n const i: I[] = this._value\n .splice(\n start,\n deleteCount,\n ...items.map((literal: I) => {\n const fn = new Constructor()\n fn.__updateWithLiteral(literal)\n fn.__rootNode = this.__rootNode\n fn.__parentNode = this\n fn.__meta.isArrayNode = true\n return fn\n }),\n )\n .map(item => item.__toLiteral())\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return i\n }\n const ret = this._value.splice(start).map(item => item.__toLiteral())\n this.__notifyArrayChanges(true)\n return ret\n }\n\n spliceT(start: number, deleteCount?: number): T[];\n\n spliceT(start: number, deleteCount: number, ...items: T[]): T[];\n\n spliceT(start: number, deleteCount?: number, ...items: T[]): T[] {\n\n let ret: T[] = [];\n if (deleteCount !== undefined) {\n ret = this.value.splice(start, deleteCount, ...items)\n } else {\n ret = this.value.splice(start)\n }\n\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n\n return ret\n }\n\n /**\n * The unshift() method of Array instances adds the specified elements to the beginning of an array and returns the new length of the array.\n * #### Params:\n * - **element1 … elementN** The elements to add to the front of the arr.\n *\n * #### Returns:\n * The new length property of the object upon which the method was called.\n *\n */\n unshift(...items: T[]): number {\n const ret = this._value.unshift(...items)\n this.__notifyArrayChanges(true)\n return ret\n }\n\n values(): IterableIterator<T> {\n return this._value.values()\n }\n\n private _rebuildIndexAndFieldName() {\n this._value.forEach((fn: T, i) => {\n // eslint-disable-next-line no-param-reassign\n fn.__meta.fieldName = `[${i}]`\n // eslint-disable-next-line no-param-reassign\n fn.__meta.index = i\n })\n }\n}\n"]}
1
+ {"version":3,"file":"ARRAY.js","sourceRoot":"","sources":["../../src/proxies/ARRAY.ts"],"names":[],"mappings":"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","sourcesContent":["import { FieldNode } from '../FieldNode'\n\nexport class ARRAY<T extends FieldNode, I> extends FieldNode {\n private _value: T[] = []\n\n private ___Constructor: (new () => T) | undefined = undefined\n\n constructor(initData?: I[], parent?: FieldNode, parentATributeName?: string) {\n super(undefined, parent, parentATributeName)\n this.__isPrimitive = true\n if (initData !== undefined) {\n // eslint-disable-next-line no-console\n console.error('Use the ARRAY.Builder()')\n }\n this.__meta.typeName = `primitives.ARRAY<>`\n }\n\n /**\n * Creates an element of type T and adds it to the beginning or end (default) of the ARRAY\n * @param initData\n * @param before\n */\n public add(initData?: I, before?: boolean): T {\n const Constructor: new () => T = this.__getConstructor()\n\n const fn = new Constructor()\n if (initData) {\n fn.__updateWithLiteral(initData)\n }\n const n = before ? 0 : this.length\n fn.__parentNode = this\n fn.__meta.fieldName = `[${n}]`\n fn.__meta.index = n\n fn.__meta.isArrayNode = true\n fn.__rootNode = this.__rootNode\n if (before) {\n this._value.unshift(fn)\n } else {\n this._value.push(fn)\n }\n\n this.__isEmpty = false\n this.__notifyArrayChanges(true)\n return fn\n }\n\n /**\n *\n * @param initData\n */\n initFromLiteral(Constructor: { new(): T }, initData: I[]) {\n this.__clear()\n this.__meta.initialValue = initData\n this.__pushWithoutNotifications(initData)\n this.__notifyArrayChanges(false)\n }\n\n /**\n * creates a literal type from a json type\n *\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n __mapProtoNameJsonToJson(data: any): any {\n const literal: I[] = []\n // create a dummy object\n const Constructor = this.__getConstructor()\n const fn = new Constructor()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data.forEach((row: any) => {\n literal.push(fn.__mapProtoNameJsonToJson(row))\n })\n return literal\n }\n\n __updateWithLiteral(initData: I[]) {\n if (this.__parentNode !== undefined) {\n this.initFromLiteral(this.__getConstructor(), initData)\n }\n }\n\n __getFieldNodeByPath(deepPath: string = ''): FieldNode | undefined {\n const path = deepPath\n .replaceAll(/[[\\]]/g, '.')\n .split('.')\n .filter(p => p !== '')\n\n if (path.length > 0 && path[0] !== '') {\n // eslint-disable-next-line no-param-reassign\n deepPath = path.slice(1).join('.')\n if (deepPath === '') {\n if (this.value[parseInt(path[0], 10)]) {\n return this.value[parseInt(path[0], 10)] as FieldNode\n }\n } else if (this.value[parseInt(path[0], 10)]) {\n return (\n this.value[parseInt(path[0], 10)] as FieldNode\n ).__getFieldNodeByPath(deepPath)\n }\n return undefined\n }\n return undefined\n }\n\n private __notifyArrayChanges(bubbles?: boolean) {\n this.__dispatchEvent(\n new CustomEvent('this-array-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('this-field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n if (bubbles) {\n this.__dispatchEvent(\n new CustomEvent('array-changed', {\n detail: this,\n bubbles: true,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: true,\n }),\n )\n } else {\n this.__dispatchEvent(\n new CustomEvent('array-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n this.__dispatchEvent(\n new CustomEvent('field-value-changed', {\n detail: this,\n bubbles: false,\n }),\n )\n }\n }\n\n // used by broadcast\n public get __childNodes(): T[] {\n return this._value\n }\n\n private __getConstructor(): new () => T {\n if (this.___Constructor !== undefined) {\n return this.___Constructor\n }\n // the __parentNode defines the type of the ARRAY<T,I>\n const fieldDescriptor = this.__parentNode!.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n )\n return fieldDescriptor?.FieldConstructor as new () => T\n }\n\n /**\n * @function\n * @template T FieldNode\n * @template I Json like interface type\n * @param {T} Constructor - Const\n * @param {I[]} initData - Initial open-models\n * @returns {ARRAY<T, I>}\n */\n static Builder<T extends FieldNode, I>(\n Constructor: new () => T,\n initData: I[],\n ): ARRAY<T, I> {\n const a: ARRAY<T, I> = new ARRAY<T, I>()\n a.___Constructor = Constructor\n a.initFromLiteral(Constructor, initData)\n return a\n }\n\n toString(): string {\n // resolve parent\n const innerType = this.__parentNode?.__meta.nodeFields.find(\n f => f.fieldName === this.__meta.fieldName,\n )\n return `[object ARRAY<${innerType?.FieldConstructor.name}>]`\n }\n\n // only used by direct invocation of the type\n __stringify(): string {\n return JSON.stringify(this.__toJson())\n }\n\n // only used by direct invocation of the type\n __toJson(): T[] {\n return this.value.map((v: FieldNode) => v.__toJson())\n }\n\n // only used by direct invocation of the type\n __toLiteral(): I[] {\n return this.value.map((v: FieldNode) => v.__toLiteral())\n }\n\n __clear() {\n this._value.length = 0\n this.__isEmpty = true\n this.__notifyArrayChanges(false)\n }\n\n delete(index: number): I {\n const removed = this._value.splice(index, 1)\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return removed[0].__toLiteral()\n }\n\n deleteT(index: number): T {\n const removed = this._value.splice(index, 1)\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return removed[0]\n }\n\n get value(): T[] {\n return this._value\n }\n\n /**\n * NOT needed any more, because we use the __TypeSetter instead of the __PrimitivesSetter\n set value(arr: T[]) {\n // assigning the new array will destroy any reference to it\n // __clear the array\n this.__clear();\n // (this as any)[`_${fieldName}`].length = 0;\n // refill the array\n arr.forEach((e, i) => {\n e.__parentNode = this;\n e.__meta.fieldName = `${i}`;\n e.__meta.index = i;\n e.__meta.isArrayNode = true;\n this._value.push(e);\n });\n this.__notifyArrayChanges(true);\n }\n */\n\n get length(): number {\n return this._value.length\n }\n\n /**\n * The at() method of Array instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.\n *\n * This method returns the Interface type.\n *\n * @param {I} index - Zero-based index of the array element to be returned, converted to an integer . Negative index counts back from the end of the array — if index < 0, index + array. length is accessed.\n */\n at(index: number): T | undefined {\n return this._value.at(index)\n }\n\n /**\n * The at() method of Array instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the array.\n *\n * This method returns the FieldNode type.\n *\n * @param {T} index - Zero-based index of the array element to be returned, converted to an integer . Negative index counts back from the end of the array — if index < 0, index + array. length is accessed.\n */\n atT(index: number): T | undefined {\n return this._value.at(index)\n }\n\n /**\n * The entries() method of Array instances returns a new array iterator object that contains the key/ value pairs for each index in the array.\n */\n entries(): IterableIterator<[number, I]> {\n return this._value.map(t => t.__toLiteral()).entries()\n }\n\n /**\n * The entries() method of Array instances returns a new array iterator object that contains the key/ value pairs for each index in the array.\n */\n entriesT(): IterableIterator<[number, T]> {\n return this._value.entries()\n }\n\n /**\n * Map with interface type as value.\n *\n * The map() method of Array instances creates a new array populated with the results of calling a provided function on every element in the calling array.\n */\n mapI<U>(\n callbackfn: (value: I, index: number, array: I[]) => U,\n thisArg?: unknown,\n ): U[] {\n return this._value.map(t => t.__toLiteral()).map(callbackfn, thisArg)\n }\n\n /**\n * The map() method of Array instances creates a new array populated with the results of calling a provided function on every element in the calling array.\n */\n map<U>(\n callbackfn: (value: T, index: number, array: T[]) => U,\n thisArg?: unknown,\n ): U[] {\n return this._value.map(callbackfn, thisArg)\n }\n\n /**\n * The filter() method of Array instances creates a shallow copy of a portion of a given array, filtered down to just the elements from the given array that pass the test implemented by the provided function.\n * @param callbackfn\n * @param thisArg\n */\n filter(\n callbackfn: (value: T, index: number, array: T[]) => boolean,\n thisArg?: unknown,\n ): T[] {\n return this._value.filter(callbackfn, thisArg)\n }\n\n find(\n callbackfn: (value: T, index: number, array: T[]) => boolean,\n thisArg?: unknown,\n ): T | undefined {\n return this._value.find(callbackfn, thisArg)\n }\n\n forEach(\n callbackfn: (value: T, index: number, array: T[]) => void,\n thisArg?: unknown,\n ): void {\n return this._value.forEach(callbackfn, thisArg)\n }\n\n /**\n * ...\n * This method requires a FieldNode, not the interface type\n * @param searchElement\n * @param fromIndex\n */\n includes(searchElement: T, fromIndex?: number): boolean {\n return this._value.includes(searchElement, fromIndex)\n }\n\n /**\n * ...\n * Alternatively you can use the T.__meta.index to get the index of an element.\n * This method requires a FieldNode, not the interface type.\n * @param searchElement\n * @param fromIndex\n */\n indexOf(searchElement: T, fromIndex?: number): number {\n // if searchElement is a FieldNode return __meta.index\n return this._value.indexOf(searchElement, fromIndex)\n }\n\n keys(): IterableIterator<number> {\n return this._value.keys()\n }\n\n lastIndexOf(searchElement: T, fromIndex?: number): number {\n return this._value.lastIndexOf(searchElement, fromIndex)\n }\n\n pop(): T | undefined {\n const ret = this._value.pop()\n this.__notifyArrayChanges(true)\n return ret\n }\n\n /**\n * The push() method of Array instances adds the specified elements to the end of an array and returns the new length of the array.\n * Params:\n * element1 … elementN – The element(s) to add to the end of the array.\n * Returns:\n * The new length property of the object upon which the method was called\n * @param items\n */\n push(...items: I[]): number {\n const n = this.__pushWithoutNotifications(items)\n this.__notifyArrayChanges(true)\n return n\n }\n\n /**\n * Moves an item in the array\n * @param fromIndex\n * @param toIndex\n */\n moveItem(fromIndex:number, toIndex:number) {\n const e = this._value[fromIndex];\n this._value.splice(fromIndex, 1);\n this._value.splice(toIndex, 0, e);\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n }\n\n private __pushWithoutNotifications(items: I[]) {\n let n: number = 0\n const Constructor: new () => T = this.__getConstructor()\n items.forEach((literal: I) => {\n const fn = new Constructor()\n fn.__updateWithLiteral(literal)\n n = this._value.push(fn)\n fn.__rootNode = this.__rootNode\n fn.__parentNode = this\n fn.__meta.fieldName = `[${n - 1}]`\n fn.__meta.index = n - 1\n fn.__meta.isArrayNode = true\n fn.__meta.isPristine = true\n })\n\n this.__isEmpty = false\n return n\n }\n\n reverse(): T[] {\n const ret = this._value.reverse()\n this.__notifyArrayChanges(true)\n return ret\n }\n\n /**\n * The shift() method of Array instances removes the first element from an array and returns that removed element.\n *\n * This method changes the length of the array.\n */\n shift(): I | undefined {\n const t = this._value.shift()\n this.__notifyArrayChanges(true)\n return t?.__toLiteral()\n }\n\n /**\n * The slice() method of Array instances returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified.\n * #### Params:\n * start – Zero-based index at which to start extraction, converted to an integer .\n * Negative index counts back from the end of the array — if start < 0, start + array. length is used.\n * If start < -array. length or start is omitted, 0 is used.\n * If start >= array. length, nothing is extracted.\n *\n * end – Zero-based index at which to end extraction, converted to an integer . slice() extracts up to but not including end.\n * Negative index counts back from the end of the array — if end < 0, end + array. length is used.\n * If end < -array. length, 0 is used.\n * If end >= array. length or end is omitted, array. length is used, causing all elements until the end to be extracted.\n * If end is positioned before or at start after normalization, nothing is extracted.\n *\n */\n slice(start?: number, end?: number): I[] {\n const tar = this._value.slice(start, end)\n const ret = tar.map(t => t.__toLiteral())\n this.__notifyArrayChanges(true)\n return ret\n }\n\n splice(start: number, deleteCount?: number): I[];\n\n splice(start: number, deleteCount: number, ...items: I[]): I[];\n\n splice(start: number, deleteCount?: number, ...items: I[]): I[] {\n if (deleteCount !== undefined) {\n const Constructor: new () => T = this.__getConstructor()\n const i: I[] = this._value\n .splice(\n start,\n deleteCount,\n ...items.map((literal: I) => {\n const fn = new Constructor()\n fn.__updateWithLiteral(literal)\n fn.__rootNode = this.__rootNode\n fn.__parentNode = this\n fn.__meta.isArrayNode = true\n return fn\n }),\n )\n .map(item => item.__toLiteral())\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n return i\n }\n const ret = this._value.splice(start).map(item => item.__toLiteral())\n this.__notifyArrayChanges(true)\n return ret\n }\n\n spliceT(start: number, deleteCount?: number): T[];\n\n spliceT(start: number, deleteCount: number, ...items: T[]): T[];\n\n spliceT(start: number, deleteCount?: number, ...items: T[]): T[] {\n\n let ret: T[] = [];\n if (deleteCount !== undefined) {\n ret = this.value.splice(start, deleteCount, ...items)\n } else {\n ret = this.value.splice(start)\n }\n\n this._rebuildIndexAndFieldName()\n this.__notifyArrayChanges(true)\n\n return ret\n }\n\n /**\n * The unshift() method of Array instances adds the specified elements to the beginning of an array and returns the new length of the array.\n * #### Params:\n * - **element1 … elementN** The elements to add to the front of the arr.\n *\n * #### Returns:\n * The new length property of the object upon which the method was called.\n *\n */\n unshift(...items: T[]): number {\n const ret = this._value.unshift(...items)\n this.__notifyArrayChanges(true)\n return ret\n }\n\n values(): IterableIterator<T> {\n return this._value.values()\n }\n\n private _rebuildIndexAndFieldName() {\n this._value.forEach((fn: T, i) => {\n // eslint-disable-next-line no-param-reassign\n fn.__meta.fieldName = `[${i}]`\n // eslint-disable-next-line no-param-reassign\n fn.__meta.index = i\n })\n }\n}\n"]}
@@ -1,14 +1,27 @@
1
1
  import { FieldNode } from '../FieldNode.js';
2
2
  import { FieldConstraints } from '../FieldConstraints.js';
3
+ export type JSONValue = string | number | boolean | null | {
4
+ [x: string]: JSONValue;
5
+ } | Array<JSONValue>;
6
+ export type JSONObject = {
7
+ [x: string]: JSONValue;
8
+ };
9
+ /**
10
+ * Struct represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, Struct might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language.
11
+ *
12
+ * The JSON representation for Struct is JSON object.
13
+ *
14
+ * https://protobuf.dev/reference/protobuf/google.protobuf/#struct
15
+ */
3
16
  export declare class Struct extends FieldNode {
4
- get value(): string;
5
- set value(value: string);
6
- _value: string;
7
- constructor(initData?: string, parent?: FieldNode, parentAttributeName?: string);
8
- __updateWithLiteral(v: string): void;
17
+ get value(): JSONObject;
18
+ set value(value: JSONObject);
19
+ _value: JSONObject;
20
+ constructor(initData?: JSONObject, parent?: FieldNode, parentAttributeName?: string);
21
+ __updateWithLiteral(v: JSONObject): void;
9
22
  __mapProtoNameJsonToJson(data: string): string;
10
- __toJson(): string | null;
11
- __toLiteral(): string;
23
+ __toJson(): JSONObject | null;
24
+ __toLiteral(): JSONObject;
12
25
  protected __checkConstraints(fieldConstraints: FieldConstraints): string[] | undefined;
13
26
  toString(): string;
14
27
  __clear(): void;
@@ -1,6 +1,13 @@
1
1
  import { FieldNode } from '../FieldNode.js';
2
2
  import { Registry } from '../Registry.js';
3
3
  import { OPEN_MODELS_OPTIONS } from '../OPEN_MODELS_OPTIONS.js';
4
+ /**
5
+ * Struct represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, Struct might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language.
6
+ *
7
+ * The JSON representation for Struct is JSON object.
8
+ *
9
+ * https://protobuf.dev/reference/protobuf/google.protobuf/#struct
10
+ */
4
11
  export class Struct extends FieldNode {
5
12
  get value() {
6
13
  return this._value;
@@ -19,10 +26,10 @@ export class Struct extends FieldNode {
19
26
  }
20
27
  constructor(initData, parent, parentAttributeName) {
21
28
  super(undefined, parent, parentAttributeName);
22
- this._value = '';
29
+ this._value = {};
23
30
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues ||
24
31
  OPEN_MODELS_OPTIONS.EmitUnpopulated);
25
- this._value = initData || '';
32
+ this._value = initData || {};
26
33
  this.__meta.typeName = 'google.protobuf.Struct';
27
34
  }
28
35
  __updateWithLiteral(v) {
@@ -59,12 +66,12 @@ export class Struct extends FieldNode {
59
66
  }
60
67
  toString() {
61
68
  if (this._value !== null) {
62
- return this._value;
69
+ return JSON.stringify(this._value);
63
70
  }
64
71
  return '';
65
72
  }
66
73
  __clear() {
67
- this._value = '';
74
+ this._value = {};
68
75
  this.__isEmpty = !(OPEN_MODELS_OPTIONS.EmitDefaultValues ||
69
76
  OPEN_MODELS_OPTIONS.EmitUnpopulated);
70
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Struct.js","sourceRoot":"","sources":["../../src/well_known/Struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IACE,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,EACnC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAID,YACE,QAAiB,EACjB,MAAkB,EAClB,mBAA4B;QAE5B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAPzC,WAAM,GAAW,EAAE,CAAC;QASzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAChB,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,CACpC,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,wBAAwB,CAAC;IAClD,CAAC;IAED,mBAAmB,CAAC,CAAS;QAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IACE,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,EACnC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,kDAAkD;IAClD,wBAAwB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,kBAAkB,CAC1B,gBAAkC;QAElC,wCAAwC;QACxC,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5D,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,OAAO,CAAC,+BAA+B,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAChB,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,CACpC,CAAC;IACJ,CAAC;CACF;AAED,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC","sourcesContent":["import { FieldNode } from '../FieldNode';\nimport { Registry } from '../Registry';\nimport { FieldConstraints } from '../FieldConstraints';\nimport { OPEN_MODELS_OPTIONS } from '../OPEN_MODELS_OPTIONS';\n\nexport class Struct extends FieldNode {\n get value(): string {\n return this._value;\n }\n\n set value(value: string) {\n this._value = value;\n if (\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n ) {\n this.__isEmpty = false;\n } else {\n this.__isEmpty = value === null;\n }\n\n this.__climbUpValidation();\n this.__notifyFieldValueChange(true);\n }\n\n public _value: string = '';\n\n constructor(\n initData?: string,\n parent?: FieldNode,\n parentAttributeName?: string,\n ) {\n super(undefined, parent, parentAttributeName);\n\n this.__isEmpty = !(\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n );\n\n this._value = initData || '';\n this.__meta.typeName = 'google.protobuf.Struct';\n }\n\n __updateWithLiteral(v: string) {\n this._value = v;\n if (\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n ) {\n this.__isEmpty = false;\n } else {\n this.__isEmpty = v === null;\n }\n this.__notifyFieldValueChange(false);\n }\n\n // eslint-disable-next-line class-methods-use-this\n __mapProtoNameJsonToJson(data: string): string {\n return data;\n }\n\n __toJson(): string | null {\n return this.__toLiteral();\n }\n\n __toLiteral() {\n return this._value;\n }\n\n protected __checkConstraints(\n fieldConstraints: FieldConstraints,\n ): string[] | undefined {\n // eslint-disable-next-line guard-for-in\n for (const [constraint] of Object.entries(fieldConstraints)) {\n if (constraint === 'required') {\n if (this._value === null) {\n return ['constraint.violation.required'];\n }\n }\n }\n\n return undefined;\n }\n\n toString(): string {\n if (this._value !== null) {\n return this._value;\n }\n return '';\n }\n\n __clear() {\n this._value = '';\n this.__isEmpty = !(\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n );\n }\n}\n\nRegistry.register('Struct', Struct);\n"]}
1
+ {"version":3,"file":"Struct.js","sourceRoot":"","sources":["../../src/well_known/Struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAY5D;;;;;;GAMG;AACH,MAAM,OAAO,MAAO,SAAQ,SAAS;IACnC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,KAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IACE,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,EACnC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,IAAI,CAAA;QACjC,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAID,YACE,QAAqB,EACrB,MAAkB,EAClB,mBAA4B;QAE5B,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAPxC,WAAM,GAAe,EAAE,CAAA;QAS5B,IAAI,CAAC,SAAS,GAAG,CAAC,CAChB,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,CACpC,CAAA;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,wBAAwB,CAAA;IACjD,CAAC;IAED,mBAAmB,CAAC,CAAa;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;QACf,IACE,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,EACnC,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,kDAAkD;IAClD,wBAAwB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAES,kBAAkB,CAC1B,gBAAkC;QAElC,wCAAwC;QACxC,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5D,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,OAAO,CAAC,+BAA+B,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,CAAC,CAChB,mBAAmB,CAAC,iBAAiB;YACrC,mBAAmB,CAAC,eAAe,CACpC,CAAA;IACH,CAAC;CACF;AAED,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { FieldNode } from '../FieldNode'\nimport { Registry } from '../Registry'\nimport { FieldConstraints } from '../FieldConstraints'\nimport { OPEN_MODELS_OPTIONS } from '../OPEN_MODELS_OPTIONS'\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | null\n | { [x: string]: JSONValue }\n | Array<JSONValue>;\n\nexport type JSONObject = { [x: string]: JSONValue };\n\n/**\n * Struct represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, Struct might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language.\n *\n * The JSON representation for Struct is JSON object.\n *\n * https://protobuf.dev/reference/protobuf/google.protobuf/#struct\n */\nexport class Struct extends FieldNode {\n get value(): JSONObject {\n return this._value\n }\n\n set value(value: JSONObject) {\n this._value = value\n if (\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n ) {\n this.__isEmpty = false\n } else {\n this.__isEmpty = value === null\n }\n\n this.__climbUpValidation()\n this.__notifyFieldValueChange(true)\n }\n\n public _value: JSONObject = {}\n\n constructor(\n initData?: JSONObject,\n parent?: FieldNode,\n parentAttributeName?: string,\n ) {\n super(undefined, parent, parentAttributeName)\n\n this.__isEmpty = !(\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n )\n\n this._value = initData || {}\n this.__meta.typeName = 'google.protobuf.Struct'\n }\n\n __updateWithLiteral(v: JSONObject) {\n this._value = v\n if (\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n ) {\n this.__isEmpty = false\n } else {\n this.__isEmpty = v === null\n }\n this.__notifyFieldValueChange(false)\n }\n\n // eslint-disable-next-line class-methods-use-this\n __mapProtoNameJsonToJson(data: string): string {\n return data\n }\n\n __toJson(): JSONObject | null {\n return this.__toLiteral()\n }\n\n __toLiteral() {\n return this._value\n }\n\n protected __checkConstraints(\n fieldConstraints: FieldConstraints,\n ): string[] | undefined {\n // eslint-disable-next-line guard-for-in\n for (const [constraint] of Object.entries(fieldConstraints)) {\n if (constraint === 'required') {\n if (this._value === null) {\n return ['constraint.violation.required']\n }\n }\n }\n\n return undefined\n }\n\n toString(): string {\n if (this._value !== null) {\n return JSON.stringify(this._value)\n }\n return ''\n }\n\n __clear() {\n this._value = {}\n this.__isEmpty = !(\n OPEN_MODELS_OPTIONS.EmitDefaultValues ||\n OPEN_MODELS_OPTIONS.EmitUnpopulated\n )\n }\n}\n\nRegistry.register('Struct', Struct)\n"]}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "homepage": "https://github.com/eclipse/eclipsefuro-web/tree/main/packages",
6
6
  "repository": "git@github.com:eclipse/eclipsefuro-web.git",
7
7
  "author": "eclipse furo",
8
- "version": "1.3.0",
8
+ "version": "1.5.0",
9
9
  "type": "module",
10
10
  "main": "dist/index.js",
11
11
  "module": "dist/index.js",
@@ -81,5 +81,5 @@
81
81
  "prettier --write"
82
82
  ]
83
83
  },
84
- "gitHead": "5bdff52a9ad8dc75bf91db998b0d7520cc984a67"
84
+ "gitHead": "a1f7e99082b272cbccbc0f3c3368c103c89b3cc3"
85
85
  }