@opra/common 1.17.2 → 1.17.4

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.
@@ -272,9 +272,7 @@ class ComplexTypeBaseClass extends data_type_js_1.DataType {
272
272
  currentPath: currentPath + (currentPath ? '.' : '') + fieldName,
273
273
  });
274
274
  schema[fieldName] =
275
- context.partial || !field.required
276
- ? valgen_1.vg.optional(fn)
277
- : valgen_1.vg.pipe([valgen_1.vg.required(fn), valgen_1.vg.isNotEmpty()]);
275
+ context.partial || !field.required ? valgen_1.vg.optional(fn) : valgen_1.vg.required(fn);
278
276
  }
279
277
  if (context.allowPatchOperators) {
280
278
  schema._$pull = valgen_1.vg.optional(valgen_1.vg.isAny());
@@ -152,7 +152,7 @@ class DataTypeFactory {
152
152
  * @param thunk
153
153
  * @protected
154
154
  */
155
- static async _importDataTypeArgs(context, owner, thunk) {
155
+ static async _importDataTypeArgs(context, owner, thunk, checkCircularDeps) {
156
156
  thunk = await (0, index_js_1.resolveThunk)(thunk);
157
157
  const { importQueue, initArgsMap } = context;
158
158
  // Check if data type already exist (maybe a builtin type or already imported)
@@ -226,7 +226,7 @@ class DataTypeFactory {
226
226
  if (metadata.name) {
227
227
  const curr = initArgsMap?.get(metadata.name);
228
228
  if (curr) {
229
- if (curr[initializingSymbol])
229
+ if (checkCircularDeps && curr[initializingSymbol])
230
230
  return context.addError('Circular reference detected');
231
231
  return metadata.name;
232
232
  }
@@ -297,7 +297,7 @@ class DataTypeFactory {
297
297
  await context.enterAsync('.base', async () => {
298
298
  let baseArgs;
299
299
  if (metadata.base) {
300
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
300
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
301
301
  }
302
302
  else if (initArgs.ctor) {
303
303
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
@@ -362,7 +362,7 @@ class DataTypeFactory {
362
362
  await context.enterAsync('.base', async () => {
363
363
  let baseArgs;
364
364
  if (metadata.base) {
365
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
365
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
366
366
  }
367
367
  else if (initArgs.ctor) {
368
368
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
@@ -395,7 +395,7 @@ class DataTypeFactory {
395
395
  await context.enterAsync('.base', async () => {
396
396
  let baseArgs;
397
397
  if (metadata.base) {
398
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
398
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
399
399
  }
400
400
  else if (initArgs.ctor) {
401
401
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
@@ -269,9 +269,7 @@ class ComplexTypeBaseClass extends DataType {
269
269
  currentPath: currentPath + (currentPath ? '.' : '') + fieldName,
270
270
  });
271
271
  schema[fieldName] =
272
- context.partial || !field.required
273
- ? vg.optional(fn)
274
- : vg.pipe([vg.required(fn), vg.isNotEmpty()]);
272
+ context.partial || !field.required ? vg.optional(fn) : vg.required(fn);
275
273
  }
276
274
  if (context.allowPatchOperators) {
277
275
  schema._$pull = vg.optional(vg.isAny());
@@ -149,7 +149,7 @@ export class DataTypeFactory {
149
149
  * @param thunk
150
150
  * @protected
151
151
  */
152
- static async _importDataTypeArgs(context, owner, thunk) {
152
+ static async _importDataTypeArgs(context, owner, thunk, checkCircularDeps) {
153
153
  thunk = await resolveThunk(thunk);
154
154
  const { importQueue, initArgsMap } = context;
155
155
  // Check if data type already exist (maybe a builtin type or already imported)
@@ -223,7 +223,7 @@ export class DataTypeFactory {
223
223
  if (metadata.name) {
224
224
  const curr = initArgsMap?.get(metadata.name);
225
225
  if (curr) {
226
- if (curr[initializingSymbol])
226
+ if (checkCircularDeps && curr[initializingSymbol])
227
227
  return context.addError('Circular reference detected');
228
228
  return metadata.name;
229
229
  }
@@ -294,7 +294,7 @@ export class DataTypeFactory {
294
294
  await context.enterAsync('.base', async () => {
295
295
  let baseArgs;
296
296
  if (metadata.base) {
297
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
297
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
298
298
  }
299
299
  else if (initArgs.ctor) {
300
300
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
@@ -359,7 +359,7 @@ export class DataTypeFactory {
359
359
  await context.enterAsync('.base', async () => {
360
360
  let baseArgs;
361
361
  if (metadata.base) {
362
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
362
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
363
363
  }
364
364
  else if (initArgs.ctor) {
365
365
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
@@ -392,7 +392,7 @@ export class DataTypeFactory {
392
392
  await context.enterAsync('.base', async () => {
393
393
  let baseArgs;
394
394
  if (metadata.base) {
395
- baseArgs = await this._importDataTypeArgs(context, owner, metadata.base);
395
+ baseArgs = await this._importDataTypeArgs(context, owner, metadata.base, true);
396
396
  }
397
397
  else if (initArgs.ctor) {
398
398
  const baseClass = Object.getPrototypeOf(initArgs.ctor.prototype).constructor;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opra/common",
3
- "version": "1.17.2",
3
+ "version": "1.17.4",
4
4
  "description": "Opra common package",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "@browsery/http-parser": "^0.5.9-r4",
11
11
  "@browsery/i18next": "^24.2.2",
12
12
  "@browsery/type-is": "^1.6.18-r8",
13
- "@jsopen/objects": "^1.6.0",
13
+ "@jsopen/objects": "^1.6.2",
14
14
  "fast-tokenizer": "^1.7.0",
15
15
  "putil-promisify": "^1.10.1",
16
16
  "putil-varhelpers": "^1.6.5",
@@ -18,7 +18,7 @@
18
18
  "super-fast-md5": "^1.0.3",
19
19
  "tslib": "^2.8.1",
20
20
  "uid": "^2.0.2",
21
- "valgen": "^5.15.0"
21
+ "valgen": "^5.15.2"
22
22
  },
23
23
  "type": "module",
24
24
  "exports": {
@@ -10,7 +10,7 @@ export declare class DataTypeMap {
10
10
  protected [kMap]: ResponsiveMap<DataType>;
11
11
  protected [kCtorMap]: WeakMap<object | Function | Type<any>, string>;
12
12
  get size(): number;
13
- forEach(callbackFn: (value: DataType, key: string, map: ReadonlyMap<string, DataType>) => void, thisArg?: any): void;
13
+ forEach(callbackFn: (value: DataType, key: string, map: ResponsiveMap<DataType>) => void, thisArg?: any): void;
14
14
  get(nameOrCtor: string | Type | Function | object): DataType | undefined;
15
15
  set(name: string, dataType: DataType): void;
16
16
  has(nameOrCtor: string | Type | Function | object | DataType): boolean;
@@ -95,7 +95,7 @@ export declare class DataTypeFactory {
95
95
  * @param thunk
96
96
  * @protected
97
97
  */
98
- protected static _importDataTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, thunk: string | Type | OpraSchema.DataType | object): Promise<DataTypeFactory.DataTypeInitArguments | string | void>;
98
+ protected static _importDataTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, thunk: string | Type | OpraSchema.DataType | object, checkCircularDeps?: boolean): Promise<DataTypeFactory.DataTypeInitArguments | string | void>;
99
99
  protected static _prepareDataTypeArgs(context: DataTypeFactory.Context, initArgs: DataTypeFactory.DataTypeInitArguments, metadata: OpraSchema.DataTypeBase | DataType.Metadata): Promise<void>;
100
100
  protected static _prepareComplexTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.ComplexTypeInit, metadata: ComplexType.Metadata | OpraSchema.ComplexType): Promise<void>;
101
101
  protected static _prepareEnumTypeArgs(context: DataTypeFactory.Context, owner: DocumentElement, initArgs: DataTypeFactory.EnumTypeInit, metadata: EnumType.Metadata | OpraSchema.EnumType): Promise<void>;
@@ -11,7 +11,7 @@ declare const kSize: unique symbol;
11
11
  /**
12
12
  * A Map implementation that supports case-insensitivity and ordered keys
13
13
  */
14
- export declare class ResponsiveMap<V> implements Map<string, V> {
14
+ export declare class ResponsiveMap<V> {
15
15
  private [kSize];
16
16
  private [kEntries];
17
17
  private [kKeyMap];
@@ -20,7 +20,7 @@ export declare class ResponsiveMap<V> implements Map<string, V> {
20
20
  constructor(init?: ResponsiveMapInit<V> | null, options?: ResponsiveMapOptions);
21
21
  get size(): number;
22
22
  clear(): void;
23
- forEach(callbackfn: (value: V, key: string, map: Map<string, V>) => void, thisArg?: any): void;
23
+ forEach(callbackfn: (value: V, key: string, map: ResponsiveMap<V>) => void, thisArg?: any): void;
24
24
  get(key: string): V | undefined;
25
25
  has(key: string): boolean;
26
26
  set(key: string, value: V): this;