New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

dryvjs

Package Overview
Dependencies
Maintainers
0
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dryvjs - npm Package Compare versions

Comparing version 1.0.0-pre-50 to 1.0.0-pre-51

dist/internal/dryvEditingArray.d.ts

41

dist/core/DryvFieldValidator.d.ts

@@ -1,14 +0,29 @@

import type { DryvValidationResult, DryvValidationSession } from '../core';
import { DryvObjectValidator, DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidator } from '../core';
export declare class DryvFieldValidator<TModel extends object, TParameters = any> extends DryvValidator<TModel, TParameters, DryvObjectValidator> {
private _initialValue;
constructor(model: TModel, session: DryvValidationSession<TModel, TParameters>, parent: DryvObjectValidator, options: DryvOptions, field: keyof TModel);
get value(): any;
set value(value: any);
refreshDirty(): void;
revert(): void;
commit(): void;
childValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean;
import type { DryvValidationResult, DryvValidationSession } from '../core'
import {
DryvObjectValidator,
DryvOptions,
DryvServerErrors,
DryvServerValidationResponse,
DryvValidator
} from '../core'
export declare class DryvFieldValidator<
TModel extends object,
TParameters = any
> extends DryvValidator<TModel, TParameters, DryvObjectValidator> {
private _initialValue
constructor(
model: TModel,
session: DryvValidationSession<TModel, TParameters>,
parent: DryvObjectValidator,
options: DryvOptions,
field: keyof TModel
)
get value(): any
set value(value: any)
refreshDirty(): void
revert(): void
commit(): void
listChildValidators(): DryvValidator[]
validate(): Promise<DryvValidationResult>
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean
}

@@ -1,23 +0,33 @@

import type { DryvValidationResult, DryvValidationSession } from '../core';
import { DryvOptions, DryvValidatableObject } from '../core';
import { DryvValidator } from '../core/DryvValidator';
export declare class DryvObjectValidator<TModel extends object = any> extends DryvValidator<TModel, TModel, DryvObjectValidator> {
private _ignoreChildChanges;
private _unregister?;
readonly fields: {
[field: string | symbol | number]: DryvValidator | null;
};
proxy: TModel;
readonly transparentProxy: DryvValidatableObject<TModel>;
private _isReverting;
constructor(model: TModel, session: DryvValidationSession<TModel, any>, parent: DryvObjectValidator | undefined, options: DryvOptions, field?: keyof TModel);
private updateModel;
get value(): TModel;
set value(value: TModel);
childValidators(): DryvValidator[];
revert(): void;
validate(): Promise<DryvValidationResult>;
destroy(): void;
refreshDirty(): void;
private createValidator;
import type { DryvValidationResult, DryvValidationSession } from '../core'
import { DryvOptions, DryvEditingObject } from '../core'
import { DryvValidator } from '../core/DryvValidator'
export declare class DryvObjectValidator<TModel extends object = any> extends DryvValidator<
TModel,
TModel,
DryvObjectValidator
> {
private _ignoreChildChanges
private _unregister?
readonly fields: {
[field: string | symbol | number]: DryvValidator | null
}
proxy: TModel
readonly editingProxy: DryvEditingObject<TModel>
private _isReverting
constructor(
model: TModel,
session: DryvValidationSession<TModel, any>,
parent: DryvObjectValidator | undefined,
options: DryvOptions,
field?: keyof TModel
)
private updateModel
get value(): TModel
set value(value: TModel)
listChildValidators(): DryvValidator[]
revert(): void
validate(): Promise<DryvValidationResult>
destroy(): void
refreshDirty(): void
private createValidator
}

@@ -1,4 +0,4 @@

import { DryvObjectValidator, DryvValidatableObject } from '../core'
export declare function dryvValidatableObject<TModel extends object>(
import { DryvObjectValidator, DryvEditingObject } from '../core'
export declare function dryvEditingObject<TModel extends object>(
target: DryvObjectValidator<TModel>
): DryvValidatableObject<TModel>
): DryvEditingObject<TModel>

@@ -1,2 +0,4 @@

import { DryvObjectValidator, DryvValidatableObject } from '../core';
export declare function dryvValidatableObject<TModel extends object>(validator: DryvObjectValidator<TModel>): DryvValidatableObject<TModel>;
import { DryvObjectValidator, DryvEditingObject } from '../core'
export declare function dryvEditingObject<TModel extends object>(
validator: DryvObjectValidator<TModel>
): DryvEditingObject<TModel>

@@ -1,2 +0,4 @@

import { DryvObjectValidator, DryvValidatableObject } from '../core';
export declare function dryvObjectValidatorTransparentProxy<TModel extends object>(target: DryvObjectValidator<TModel>): DryvValidatableObject<TModel>;
import { DryvObjectValidator, DryvEditingObject } from '../core'
export declare function dryvObjectValidatorEditingProxy<TModel extends object>(
target: DryvObjectValidator<TModel>
): DryvEditingObject<TModel>

@@ -1,2 +0,4 @@

import { DryvObjectValidator, DryvValidatableObject } from '../core';
export declare function dryvValidatableObject<TModel extends object>(validator: DryvObjectValidator<TModel>): DryvValidatableObject<TModel>;
import { DryvObjectValidator, DryvEditingObject } from '../core'
export declare function dryvEditingObject<TModel extends object>(
validator: DryvObjectValidator<TModel>
): DryvEditingObject<TModel>

@@ -1,2 +0,9 @@

import type { DryvValidationSession, DryvOptions, DryvValidatableInternal } from './typings';
export declare function dryvValidatableValue<TModel extends object = any, TValue = any>(field: keyof TModel | undefined, parent: DryvValidatableInternal | undefined, session: DryvValidationSession<TModel> | undefined, options: DryvOptions, getter: () => TValue, setter: (value: TValue) => void): DryvValidatableInternal<TModel, TValue>;
import type { DryvValidationSession, DryvOptions, DryvValidationInternal } from './typings'
export declare function dryvValidationValue<TModel extends object = any, TValue = any>(
field: keyof TModel | undefined,
parent: DryvValidationInternal | undefined,
session: DryvValidationSession<TModel> | undefined,
options: DryvOptions,
getter: () => TValue,
setter: (value: TValue) => void
): DryvValidationInternal<TModel, TValue>

@@ -1,43 +0,60 @@

import { DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidationResult, DryvValidationResultType, DryvValidationSession } from '../core';
export declare abstract class DryvValidator<TModel extends object = any, TValue = any, TParent extends DryvValidator = any> {
model: TModel;
protected session: DryvValidationSession<TModel>;
protected options: DryvOptions;
readonly field: keyof TModel | undefined;
private _parent?;
private _path?;
get isDirty(): boolean;
protected set isDirty(value: boolean);
get text(): string | null;
set text(value: string | null);
get group(): string | null;
set group(value: string | null);
get required(): boolean | null;
set required(value: boolean | null);
get groupShown(): boolean;
set groupShown(value: boolean);
get type(): DryvValidationResultType | null;
set type(value: DryvValidationResultType | null);
private _rootModel;
private _rootValidator;
private _reactive;
get rootModel(): any;
get rootValidator(): DryvValidator<TModel, any, any>;
protected constructor(model: TModel, session: DryvValidationSession<TModel>, parent: TParent | undefined, options: DryvOptions, field?: keyof TModel | undefined);
abstract get value(): TValue;
abstract set value(value: TValue);
abstract validate(): Promise<DryvValidationResult>;
abstract refreshDirty(): void;
revert(): void;
commit(): void;
protected abstract childValidators(): DryvValidator[];
get hasError(): boolean;
get hasWarning(): boolean;
get isSuccess(): boolean;
get path(): string;
get parent(): TParent | undefined | null;
set parent(parent: TParent | undefined | null);
clear(): void;
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean;
toJSON(): any;
import {
DryvOptions,
DryvServerErrors,
DryvServerValidationResponse,
DryvValidationResult,
DryvValidationResultType,
DryvValidationSession
} from '../core'
export declare abstract class DryvValidator<
TModel extends object = any,
TValue = any,
TParent extends DryvValidator = any
> {
model: TModel
protected session: DryvValidationSession<TModel>
protected options: DryvOptions
readonly field: keyof TModel | undefined
private _parent?
private _path?
get isDirty(): boolean
protected set isDirty(value: boolean)
get text(): string | null
set text(value: string | null)
get group(): string | null
set group(value: string | null)
get required(): boolean | null
set required(value: boolean | null)
get groupShown(): boolean
set groupShown(value: boolean)
get type(): DryvValidationResultType | null
set type(value: DryvValidationResultType | null)
private _validationModel
private _rootValidator
private _reactive
get validationModel(): any
get rootValidator(): DryvValidator<TModel, any, any>
protected constructor(
model: TModel,
session: DryvValidationSession<TModel>,
parent: TParent | undefined,
options: DryvOptions,
field?: keyof TModel | undefined
)
abstract get value(): TValue
abstract set value(value: TValue)
abstract validate(): Promise<DryvValidationResult>
abstract refreshDirty(): void
revert(): void
commit(): void
protected abstract listChildValidators(): DryvValidator[]
get hasError(): boolean
get hasWarning(): boolean
get isSuccess(): boolean
get path(): string
get parent(): TParent | undefined | null
set parent(parent: TParent | undefined | null)
clear(): void
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean
toJSON(): any
}

@@ -1,2 +0,4 @@

import type { DryvValidatable } from './typings';
export declare function isDryvValidatable<TModel extends object, TValue>(model: TValue | DryvValidatable<TModel, TValue>): model is DryvValidatable<TModel, TValue>;
import type { DryvEditingField } from './typings'
export declare function isDryvValidation<TModel extends object, TValue>(
model: TValue | DryvEditingField<TModel, TValue>
): model is DryvEditingField<TModel, TValue>

@@ -1,2 +0,2 @@

import type { DryvValidatable } from '../core/typings';
export declare function isDryvValidatableValue(model: any): model is DryvValidatable;
import type { DryvEditingField } from '../core/typings'
export declare function isDryvValidationValue(model: any): model is DryvEditingField

@@ -109,3 +109,3 @@ import { DryvValidator } from '../core/DryvValidator'

}
export type DryvValidatableField<TValue = object> = {
export type DryvValidationField<TValue = object> = {
path: string

@@ -123,6 +123,6 @@ type: DryvValidationResultType | null

}
export type DryvValidatableObject<TModel extends object> = {
export type DryvEditingObject<TModel extends object> = {
[Property in keyof TModel]: TModel[Property] extends object
? DryvValidatableObject<TModel[Property]>
: DryvValidatableField<TModel[Property]>
? DryvEditingObject<TModel[Property]>
: DryvValidationField<TModel[Property]>
}

@@ -1,11 +0,20 @@

import { DryvValidator } from '../../core/v2/DryvValidator';
import type { DryvValidationResult, DryvValidationSession } from '../../core';
import { DryvOptions, DryvServerErrors, DryvServerValidationResponse } from '../../core';
export declare class DryvFieldValidator<TModel extends object, TParameters = object> extends DryvValidator<TModel, TParameters> {
constructor(model: TModel, session: DryvValidationSession<TModel, TParameters>, parent: DryvValidator, options: DryvOptions, field: keyof TModel);
get value(): any;
set value(value: any);
childValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean;
import { DryvValidator } from '../../core/v2/DryvValidator'
import type { DryvValidationResult, DryvValidationSession } from '../../core'
import { DryvOptions, DryvServerErrors, DryvServerValidationResponse } from '../../core'
export declare class DryvFieldValidator<
TModel extends object,
TParameters = object
> extends DryvValidator<TModel, TParameters> {
constructor(
model: TModel,
session: DryvValidationSession<TModel, TParameters>,
parent: DryvValidator,
options: DryvOptions,
field: keyof TModel
)
get value(): any
set value(value: any)
listChildValidators(): DryvValidator[]
validate(): Promise<DryvValidationResult>
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean
}

@@ -1,19 +0,28 @@

import type { DryvValidationResult, DryvValidationSession } from '../../core';
import { DryvOptions } from '../../core';
import { DryvValidator } from '../../core/v2/DryvValidator';
export declare class DryvObjectValidator<TModel extends object, TParameters = object> extends DryvValidator<TModel, TParameters> {
readonly fields: {
[field: string | symbol | number]: DryvValidator | null;
};
private unregister?;
proxy: TModel;
readonly transparentProxy: DryvObjectValidator<TModel, TParameters>;
constructor(model: TModel, session: DryvValidationSession<TModel, TParameters>, parent: DryvValidator | undefined, options: DryvOptions, field?: keyof TModel);
private updateModel;
get value(): any;
set value(value: any);
childValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;
destroy(): void;
private createValidator;
import type { DryvValidationResult, DryvValidationSession } from '../../core'
import { DryvOptions } from '../../core'
import { DryvValidator } from '../../core/v2/DryvValidator'
export declare class DryvObjectValidator<
TModel extends object,
TParameters = object
> extends DryvValidator<TModel, TParameters> {
readonly fields: {
[field: string | symbol | number]: DryvValidator | null
}
private unregister?
proxy: TModel
readonly editingProxy: DryvObjectValidator<TModel, TParameters>
constructor(
model: TModel,
session: DryvValidationSession<TModel, TParameters>,
parent: DryvValidator | undefined,
options: DryvOptions,
field?: keyof TModel
)
private updateModel
get value(): any
set value(value: any)
listChildValidators(): DryvValidator[]
validate(): Promise<DryvValidationResult>
destroy(): void
private createValidator
}
import { DryvObjectValidator } from '../../core'
export declare function dryvValidatableObject<TModel extends object, TParameters = object>(
export declare function dryvEditingObject<TModel extends object, TParameters = object>(
target: DryvObjectValidator<TModel, TParameters>
): DryvObjectValidator<TModel, TParameters>

@@ -1,38 +0,51 @@

import { DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidationResult, DryvValidationResultType, DryvValidationSession } from '../../core';
import {
DryvOptions,
DryvServerErrors,
DryvServerValidationResponse,
DryvValidationResult,
DryvValidationResultType,
DryvValidationSession
} from '../../core'
export declare abstract class DryvValidator<TModel extends object = any, TParameters = object> {
model: TModel;
protected session: DryvValidationSession<TModel, TParameters>;
protected options: DryvOptions;
readonly field: keyof TModel | undefined;
private _parent?;
private _path;
get text(): string | null;
set text(value: string | null);
get group(): string | null;
set group(value: string | null);
get required(): boolean | null;
set required(value: boolean | null);
get groupShown(): boolean;
set groupShown(value: boolean);
get type(): DryvValidationResultType | null;
set type(value: DryvValidationResultType | null);
private _rootModel;
private _rootValidator;
private _reactive;
get rootModel(): TModel;
get rootValidator(): DryvValidator<any, object>;
protected constructor(model: TModel, session: DryvValidationSession<TModel, TParameters>, parent: DryvValidator | undefined, options: DryvOptions, field?: keyof TModel | undefined);
abstract get value(): any;
abstract set value(value: any);
abstract validate(): Promise<DryvValidationResult>;
abstract childValidators(): DryvValidator[];
get hasError(): boolean;
get hasWarning(): boolean;
get isSuccess(): boolean;
get path(): string | null;
get parent(): DryvValidator | undefined | null;
set parent(parent: DryvValidator | undefined | null);
clear(): void;
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean;
toJSON(): any;
model: TModel
protected session: DryvValidationSession<TModel, TParameters>
protected options: DryvOptions
readonly field: keyof TModel | undefined
private _parent?
private _path
get text(): string | null
set text(value: string | null)
get group(): string | null
set group(value: string | null)
get required(): boolean | null
set required(value: boolean | null)
get groupShown(): boolean
set groupShown(value: boolean)
get type(): DryvValidationResultType | null
set type(value: DryvValidationResultType | null)
private _validationModel
private _rootValidator
private _reactive
get validationModel(): TModel
get rootValidator(): DryvValidator<any, object>
protected constructor(
model: TModel,
session: DryvValidationSession<TModel, TParameters>,
parent: DryvValidator | undefined,
options: DryvOptions,
field?: keyof TModel | undefined
)
abstract get value(): any
abstract set value(value: any)
abstract validate(): Promise<DryvValidationResult>
abstract listChildValidators(): DryvValidator[]
get hasError(): boolean
get hasWarning(): boolean
get isSuccess(): boolean
get path(): string | null
get parent(): DryvValidator | undefined | null
set parent(parent: DryvValidator | undefined | null)
clear(): void
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean
toJSON(): any
}

@@ -5,2 +5,2 @@ import type { DryvValidationSession } from './DryvValidationSession';

import { DryvComplexValidator } from './DryvComplexValidator';
export declare function createValidator<TModel extends object>(parent: DryvComplexValidator, value: any, model: TModel | undefined, field: keyof TModel | undefined, session: DryvValidationSession, options: DryvOptions): DryvValidator | null;
export declare function createValidator(parent: DryvComplexValidator, value: any, model: object | undefined, field: string | symbol | number | undefined, session: DryvValidationSession, options: DryvOptions): DryvValidator | null;

@@ -5,5 +5,2 @@ import { DryvArrayValidator } from './DryvArrayValidator';

export function createValidator(parent, value, model, field, session, options) {
if (Array.isArray(value)) {
return new DryvArrayValidator(value, session, parent, options, field);
}
const type = typeof value;

@@ -13,7 +10,19 @@ if (type === 'function') {

}
const path = field
? parent.path
? `${parent.path}.${String(field)}`
: String(field)
: parent.path;
const validators = session.ruleSet.validators[path];
const hasReferenceField = validators === null || validators === void 0 ? void 0 : validators.find((v) => !!v.referenceField);
if (Array.isArray(value)) {
return new DryvArrayValidator(value, session, parent, options, field);
}
if (value instanceof Object) {
return new DryvObjectValidator(value, session, parent, options, field);
return hasReferenceField
? new DryvFieldValidator(model, session, parent, options, field, value)
: new DryvObjectValidator(value, session, parent, options, field);
}
return new DryvFieldValidator(model, session, parent, options, field);
return new DryvFieldValidator(model, session, parent, options, field, value);
}
//# sourceMappingURL=CreateValidator.js.map
//# sourceMappingURL=createValidator.js.map

@@ -1,2 +0,2 @@

import { DryvValidatableArray, DryvValidationResult } from './';
import { ChildValidators, DryvEditingArray, DryvValidationResult, Refs, DryvValidationArray } from './';
import { DryvOptions } from './';

@@ -6,7 +6,7 @@ import { type DryvValidator } from './DryvValidator';

import { DryvComplexValidator } from './DryvComplexValidator';
export declare class DryvArrayValidator<TModel extends object = any> extends DryvComplexValidator<any, DryvValidatableArray<TModel>> {
export declare class DryvArrayValidator<TModel = any> extends DryvComplexValidator<TModel[], DryvEditingArray<TModel>, DryvValidationArray<TModel>> {
private readonly _refs;
private _unregisterArray?;
private readonly _items;
constructor(model: TModel[], session: DryvValidationSession, parent: DryvComplexValidator | undefined, options: DryvOptions, field?: keyof any);
constructor(model: TModel[], session: DryvValidationSession, parent: DryvComplexValidator | undefined, options: DryvOptions, field?: any);
protected onParentChanged(): void;

@@ -17,3 +17,4 @@ private updateArray;

set value(value: TModel[]);
childValidators(): DryvValidator[];
get childValidators(): ChildValidators;
listChildValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;

@@ -23,6 +24,8 @@ onDestroy(): void;

private updateItemIndexes;
get refs(): object | any[];
get refs(): Refs;
setRef(validator: DryvValidator, value: object | any[]): void;
removeRef(validator: DryvValidator): void;
getChildValue(child: DryvValidator): any;
setChildValue(child: DryvValidator, value: any): any;
toJSON(): any;
}

@@ -10,4 +10,4 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

};
import { createValidator } from './';
import { dryvValidatableArray, observableArrayProxy } from './internal';
import { createValidator, DryvFieldValidator } from './';
import { dryvEditingArray, dryvValidationArray, observableArrayProxy } from './internal';
import { DryvComplexValidator } from './DryvComplexValidator';

@@ -19,7 +19,8 @@ export class DryvArrayValidator extends DryvComplexValidator {

this._items = options.reactiveWrapper([]);
this.transparentProxy = dryvValidatableArray(this);
this.editingProxy = dryvEditingArray(this);
this.validationProxy = dryvValidationArray(this);
this.updateArray(model);
}
onParentChanged() {
this.rootModel = null;
this.validationModel = null;
}

@@ -101,5 +102,8 @@ updateArray(model) {

}
childValidators() {
get childValidators() {
return this._items;
}
listChildValidators() {
return this._items;
}
validate() {

@@ -116,7 +120,12 @@ return __awaiter(this, void 0, void 0, function* () {

createValidator(item) {
return createValidator(this, item, undefined, undefined, this.session, this.options);
return createValidator(this, item, this.model, undefined, this.session, this.options);
}
updateItemIndexes() {
for (let i = 0; i < this._items.length; i++) {
this._items[i].index = i;
const item = this._items[i];
item.index = i;
if (item instanceof DryvFieldValidator) {
this.setChildValue(item, item.innerValue);
this.setRef(item, item.reference);
}
}

@@ -137,2 +146,10 @@ }

}
getChildValue(child) {
return child.index === undefined ? undefined : this.model[child.index];
}
setChildValue(child, value) {
if (child.index !== undefined) {
this.model[child.index] = value;
}
}
toJSON() {

@@ -139,0 +156,0 @@ return Object.assign(Object.assign({}, super.toJSON()), { _items: undefined });

import type { DryvValidationSession } from './';
import { DryvOptions } from './';
import { DryvValidator } from './DryvValidator';
export declare abstract class DryvComplexValidator<TModel extends object = any, TTransparentProxy = any> extends DryvValidator<TModel, TModel, DryvComplexValidator> {
export type Refs = {
[field in string | number | symbol]: object | undefined;
};
export declare abstract class DryvComplexValidator<TModel extends object = any, TEditingProxy = any, TValidationProxy = any> extends DryvValidator<TModel, TModel, DryvComplexValidator, TEditingProxy, TValidationProxy> {
private _ignoreChildChanges;
private _isReverting;
private _transparentProxy?;
protected constructor(model: TModel, session: DryvValidationSession<TModel>, parent: DryvComplexValidator | undefined, options: DryvOptions, field?: keyof TModel);
abstract get refs(): object | any[];
get transparentProxy(): TTransparentProxy;
protected set transparentProxy(value: TTransparentProxy);
abstract get refs(): Refs;
abstract setRef(validator: DryvValidator, value: object): void;
abstract removeRef(validator: DryvValidator): void;
abstract getChildValue(child: DryvValidator): any;
abstract setChildValue(child: DryvValidator, value: any): any;
protected get isReverting(): boolean;
abstract setRef(validator: DryvValidator, value: object | any[]): void;
abstract removeRef(validator: DryvValidator): void;
revert(): void;

@@ -16,0 +18,0 @@ refreshDirty(): void;

@@ -8,8 +8,2 @@ import { DryvValidator } from './DryvValidator';

}
get transparentProxy() {
return this._transparentProxy;
}
set transparentProxy(value) {
this._transparentProxy = value;
}
get isReverting() {

@@ -33,3 +27,3 @@ return this._isReverting;

const wasDirty = this.isDirty;
this.isDirty = this.childValidators().some((f) => f === null || f === void 0 ? void 0 : f.isDirty);
this.isDirty = this.listChildValidators().some((f) => f === null || f === void 0 ? void 0 : f.isDirty);
if (this.isDirty !== wasDirty) {

@@ -40,5 +34,5 @@ (_a = this.parent) === null || _a === void 0 ? void 0 : _a.refreshDirty();

toJSON() {
return Object.assign(Object.assign({}, super.toJSON()), { _reference: undefined, _ignoreChildChanges: undefined, _isReverting: undefined, _transparentProxy: undefined });
return Object.assign(Object.assign({}, super.toJSON()), { _reference: undefined, _ignoreChildChanges: undefined, _isReverting: undefined, _editingProxy: undefined });
}
}
//# sourceMappingURL=DryvComplexValidator.js.map

@@ -6,7 +6,7 @@ import type { DryvValidationSession } from './'

TModel extends object = any,
TTransparentProxy = any
TEditingProxy = any
> extends DryvValidator<TModel, TModel, DryvComplexValidator> {
private _ignoreChildChanges
private _isReverting
private _transparentProxy?
private _editingProxy?
protected constructor(

@@ -19,4 +19,4 @@ model: TModel,

)
get transparentProxy(): TTransparentProxy
protected set transparentProxy(value: TTransparentProxy)
get editingProxy(): TEditingProxy
protected set editingProxy(value: TEditingProxy)
protected get isReverting(): boolean

@@ -23,0 +23,0 @@ revert(): void

@@ -1,22 +0,23 @@

import type { DryvValidationResult, DryvValidationSession } from './';
import { DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidator } from './';
import { DryvComplexValidator } from './DryvComplexValidator';
export declare class DryvFieldValidator<TModel extends object, TParameters = any> extends DryvValidator<TModel, TParameters, DryvComplexValidator> {
import { ChildValidators, DryvValidationResult, DryvValidationSession, DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidator, DryvComplexValidator, DryvEditingField, DryvValidationField } from './';
export declare class DryvFieldValidator<TModel extends object = any, TValue = any> extends DryvValidator<TModel, TValue, DryvComplexValidator, DryvEditingField<TModel>, DryvValidationField<TModel>> {
private _initialValue;
private _referenceField?;
private _reference;
constructor(model: TModel, session: DryvValidationSession, parent: DryvComplexValidator, options: DryvOptions, field: keyof TModel);
private _innerValue;
referenceField?: string;
constructor(model: TModel, session: DryvValidationSession, parent: DryvComplexValidator, options: DryvOptions, field: keyof TModel, value: TValue);
get innerValue(): any;
get reference(): any;
private set reference(value);
get value(): any;
set value(value: any);
get value(): TValue;
set value(value: TValue);
refreshDirty(): void;
revert(): void;
commit(): void;
childValidators(): DryvValidator[];
get childValidators(): ChildValidators;
listChildValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;
protected onParentChanged(): void;
setValidationResult(response: DryvServerValidationResponse | DryvServerErrors): boolean;
toString(): any;
toString(): TValue;
toJSON(): any;
}

@@ -11,7 +11,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { DryvValidator } from './';
import { dryvEditingField } from './internal';
import { dryvValidationField } from './internal/dryvValidationField';
export class DryvFieldValidator extends DryvValidator {
constructor(model, session, parent, options, field) {
constructor(model, session, parent, options, field, value) {
super(model, session, parent, options, field);
this._initialValue = model[field];
this.value = value;
this._initialValue = this.value;
this.editingProxy = dryvEditingField(this);
this.validationProxy = dryvValidationField(this);
}
get innerValue() {
return this._innerValue;
}
get reference() {

@@ -24,3 +32,4 @@ return this._reference;

get value() {
return this.model[this.field];
var _a;
return (_a = this.parent) === null || _a === void 0 ? void 0 : _a.getChildValue(this);
}

@@ -30,23 +39,28 @@ set value(value) {

const oldValue = this.value;
if (oldValue === value) {
if (oldValue === value ||
(this.referenceField &&
value !== undefined &&
value === this.reference &&
oldValue === value[this.referenceField])) {
return;
}
if (parent && this.field && this._referenceField) {
if (typeof value === 'object') {
const reference = value;
const id = reference[this._referenceField];
if (id !== undefined) {
value = id;
if (parent) {
this.reference = reference;
parent.setRef(this, reference);
}
}
if (!this.referenceField) {
parent === null || parent === void 0 ? void 0 : parent.setChildValue(this, value);
return;
}
if (value && typeof value === 'object') {
const reference = value;
const id = reference[this.referenceField];
if (id !== undefined) {
value = id;
this.reference = reference;
parent === null || parent === void 0 ? void 0 : parent.setRef(this, reference);
}
else {
this.reference = undefined;
parent.removeRef(this);
}
}
this.model[this.field] = value;
else {
this.reference = undefined;
parent === null || parent === void 0 ? void 0 : parent.removeRef(this);
}
this._innerValue = value;
parent === null || parent === void 0 ? void 0 : parent.setChildValue(this, value);
}

@@ -71,3 +85,6 @@ refreshDirty() {

}
childValidators() {
get childValidators() {
return {};
}
listChildValidators() {
return [];

@@ -77,3 +94,3 @@ }

return __awaiter(this, void 0, void 0, function* () {
return this.session.validateField(this, this.rootModel);
return this.session.validateField(this, this.validationModel);
});

@@ -83,3 +100,3 @@ }

var _a;
this._referenceField = (_a = this.rules.validators.find((v) => !!v.referenceField)) === null || _a === void 0 ? void 0 : _a.referenceField;
this.referenceField = (_a = this.rules.validators.find((v) => !!v.referenceField)) === null || _a === void 0 ? void 0 : _a.referenceField;
}

@@ -106,5 +123,5 @@ setValidationResult(response) {

toJSON() {
return Object.assign(Object.assign({}, super.toJSON()), { _referenceField: undefined, _reference: undefined, reference: this.reference });
return Object.assign(Object.assign({}, super.toJSON()), { _referenceField: undefined, _reference: undefined, _innerValue: undefined, reference: this.reference });
}
}
//# sourceMappingURL=DryvFieldValidator.js.map

@@ -1,6 +0,6 @@

import { DryvValidationResult, DryvValidationSession } from './';
import { DryvOptions, DryvValidatableObject } from './typings';
import { ChildValidators, DryvValidationObject, DryvValidationResult, DryvValidationSession, Refs } from './';
import { DryvOptions, DryvEditingObject } from './typings';
import { DryvValidator } from './DryvValidator';
import { DryvComplexValidator } from './DryvComplexValidator';
export declare class DryvObjectValidator<TModel extends object = any> extends DryvComplexValidator<TModel, DryvValidatableObject<TModel>> {
export declare class DryvObjectValidator<TModel extends object = any> extends DryvComplexValidator<TModel, DryvEditingObject<TModel>, DryvValidationObject<TModel>> {
private _unregister?;

@@ -15,8 +15,11 @@ private readonly _refs;

set value(value: TModel);
childValidators(): DryvValidator[];
get childValidators(): ChildValidators;
listChildValidators(): DryvValidator[];
validate(): Promise<DryvValidationResult>;
get refs(): object | any[];
get refs(): Refs;
setRef(validator: DryvValidator, value: object | any[]): void;
removeRef(validator: DryvValidator): void;
getChildValue(child: DryvValidator): any;
setChildValue(child: DryvValidator, value: any): any;
onDestroy(): void;
}

@@ -11,3 +11,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import { createValidator } from './';
import { dryvValidatableObject, observableProxy } from './internal';
import { dryvEditingObject, dryvValidationObject, observableObjectProxy } from './internal';
import { DryvComplexValidator } from './DryvComplexValidator';

@@ -19,3 +19,4 @@ export class DryvObjectValidator extends DryvComplexValidator {

this.fields = {};
this.transparentProxy = dryvValidatableObject(this);
this.editingProxy = dryvEditingObject(this);
this.validationProxy = dryvValidationObject(this);
this.updateModel(model);

@@ -28,3 +29,3 @@ }

Object.values(this.fields).forEach((field) => field === null || field === void 0 ? void 0 : field.destroy());
const { proxy, register, unregister } = observableProxy(model, this);
const { proxy, register, unregister } = observableObjectProxy(model);
this.model = proxy;

@@ -59,3 +60,6 @@ for (const field in model) {

}
childValidators() {
get childValidators() {
return this.fields;
}
listChildValidators() {
return Object.values(this.fields).filter((f) => !!f);

@@ -81,2 +85,10 @@ }

}
getChildValue(child) {
return !child.field ? undefined : this.model[child.field];
}
setChildValue(child, value) {
if (child.field) {
this.model[child.field] = value;
}
}
onDestroy() {

@@ -83,0 +95,0 @@ if (this._unregister) {

@@ -1,12 +0,17 @@

import { DryvOptions, DryvValidationRuleSet, DryvValidationSession } from './types';
import { DryvOptions, DryvValidationRuleSet, DryvValidationSession } from './types'
export declare class DryvProxyHandler<TModel extends object = any> implements ProxyHandler<TModel> {
private model;
private session;
private ruleSet;
private options;
private readonly _validatables;
constructor(model: TModel, session: DryvValidationSession, ruleSet: DryvValidationRuleSet, options: DryvOptions);
get(target: TModel, p: string | symbol, receiver: any): any;
set(target: TModel, p: string | symbol, newValue: any, receiver: any): boolean;
private setValidatables;
private model
private session
private ruleSet
private options
private readonly _validatables
constructor(
model: TModel,
session: DryvValidationSession,
ruleSet: DryvValidationRuleSet,
options: DryvOptions
)
get(target: TModel, p: string | symbol, receiver: any): any
set(target: TModel, p: string | symbol, newValue: any, receiver: any): boolean
private setValidations
}

@@ -1,2 +0,4 @@

import { DryvObjectValidator, DryvValidatableObject } from './';
export declare function dryvValidatableObject<TModel extends object>(validator: DryvObjectValidator<TModel>): DryvValidatableObject<TModel>;
import { DryvObjectValidator, DryvEditingObject } from './'
export declare function dryvEditingObject<TModel extends object>(
validator: DryvObjectValidator<TModel>
): DryvEditingObject<TModel>

@@ -33,3 +33,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

return __awaiter(this, void 0, void 0, function* () {
if (yield this.runDisablers(objectValidator.rootModel, objectValidator)) {
if (yield this.runDisablers(objectValidator.validationModel, objectValidator)) {
objectValidator.clear();

@@ -48,5 +48,4 @@ return {

try {
const childValidators = objectValidator.childValidators();
const newValidationChain = this.startValidationChain();
const fieldResults = yield Promise.all(childValidators.map((v) => __awaiter(this, void 0, void 0, function* () {
const fieldResults = yield Promise.all(objectValidator.listChildValidators().map((v) => __awaiter(this, void 0, void 0, function* () {
const result = yield v.validate();

@@ -53,0 +52,0 @@ return Object.assign(Object.assign({}, result), { path: v.path });

import { DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidationResult, DryvValidationResultType, DryvValidationRule, DryvValidationSession } from './';
export declare abstract class DryvValidator<TModel extends object = any, TValue = any, TParent extends DryvValidator = any> {
model: TModel;
export type ChildValidators = {
[field: string | symbol]: DryvValidator | undefined | null;
} & (DryvValidator | undefined | null)[];
export declare abstract class DryvValidator<TModel extends object = any, TValue = any, TParent extends DryvValidator = any, TEditingProxy = any, TValidationProxy = any> {
protected session: DryvValidationSession<TModel>;

@@ -9,3 +11,9 @@ protected options: DryvOptions;

private _index?;
private _editingProxy?;
private _validationProxy?;
private _rules;
get editingProxy(): TEditingProxy;
protected set editingProxy(value: TEditingProxy);
get validationProxy(): TValidationProxy;
protected set validationProxy(value: TValidationProxy);
get rules(): {

@@ -29,5 +37,6 @@ validators: DryvValidationRule<TModel>[];

set type(value: DryvValidationResultType | null);
private _rootModel;
private _validationModel;
private _rootValidator;
private _reactive;
private readonly _reactive;
private _model;
protected constructor(model: TModel, session: DryvValidationSession<TModel>, parent: TParent | undefined, options: DryvOptions, field?: keyof TModel | undefined);

@@ -38,5 +47,8 @@ abstract get value(): TValue;

abstract refreshDirty(): void;
get model(): TModel;
set model(value: TModel);
revert(): void;
commit(): void;
abstract childValidators(): DryvValidator[];
abstract get childValidators(): ChildValidators;
abstract listChildValidators(): DryvValidator[];
get hasError(): boolean;

@@ -49,5 +61,6 @@ get hasWarning(): boolean;

private set uniquePath(value);
get rootModel(): any;
protected set rootModel(value: any);
get rootValidator(): DryvValidator<TModel, any, any>;
get validationModel(): any;
protected set validationModel(value: any);
private set rootValidator(value);
get rootValidator(): DryvValidator;
get parent(): TParent | undefined | null;

@@ -54,0 +67,0 @@ set parent(parent: TParent | undefined | null);

export class DryvValidator {
get editingProxy() {
return this._editingProxy;
}
set editingProxy(value) {
this._editingProxy = value;
}
get validationProxy() {
return this._validationProxy;
}
set validationProxy(value) {
this._validationProxy = value;
}
get rules() {

@@ -43,3 +55,5 @@ return this._rules;

set groupShown(value) {
this._reactive.groupShown = value;
if (this._reactive) {
this._reactive.groupShown = value;
}
}

@@ -53,3 +67,2 @@ get type() {

constructor(model, session, parent, options, field = undefined) {
this.model = model;
this.session = session;

@@ -62,2 +75,3 @@ this.options = options;

};
this._validationModel = null;
this._rootValidator = this;

@@ -74,4 +88,14 @@ this._reactive = options.reactiveWrapper({

});
this.parent = parent;
this._model = model;
this._parent = parent;
this.updateHierarchy();
this.onParentChanged();
}
get model() {
return this._model;
}
set model(value) {
this._model = value;
this.updateHierarchy(true);
}
revert() {

@@ -83,3 +107,3 @@ this.type = null;

this.isDirty = false;
for (const validator of this.childValidators()) {
for (const validator of this.listChildValidators()) {
validator === null || validator === void 0 ? void 0 : validator.revert();

@@ -94,3 +118,3 @@ }

this.isDirty = false;
for (const validator of this.childValidators()) {
for (const validator of this.listChildValidators()) {
validator === null || validator === void 0 ? void 0 : validator.commit();

@@ -122,8 +146,11 @@ }

}
get rootModel() {
return this._rootModel;
get validationModel() {
return this._validationModel;
}
set rootModel(value) {
this._rootModel = value;
set validationModel(value) {
this._validationModel = value;
}
set rootValidator(value) {
this._rootValidator = value;
}
get rootValidator() {

@@ -146,8 +173,8 @@ return this._rootValidator;

if (parent) {
this._rootModel = (_a = parent.rootModel) !== null && _a !== void 0 ? _a : this.model;
this._rootValidator = parent.rootValidator;
this.validationModel = (_a = parent.validationModel) !== null && _a !== void 0 ? _a : this.validationProxy;
this.rootValidator = parent.rootValidator;
}
else {
this._rootModel = this.model;
this._rootValidator = this;
this.validationModel = this.validationProxy;
this.rootValidator = this;
}

@@ -163,3 +190,3 @@ const path = [parent === null || parent === void 0 ? void 0 : parent.path, this.field].filter((x) => !!x).join('.');

if (cascade) {
this.childValidators().forEach((v) => v.updateHierarchy(true));
this.listChildValidators().forEach((v) => v.updateHierarchy(true));
}

@@ -171,10 +198,10 @@ }

this.group = null;
this.childValidators().forEach((v) => v.clear());
this.listChildValidators().forEach((v) => v.clear());
}
setValidationResult(response) {
return this.childValidators().reduce((acc, v) => v.setValidationResult(response) && acc, true);
return this.listChildValidators().reduce((acc, v) => v.setValidationResult(response) && acc, true);
}
destroy() {
this.onDestroy();
this.childValidators().forEach((v) => v.destroy());
this.listChildValidators().forEach((v) => v.destroy());
}

@@ -184,5 +211,5 @@ onDestroy() {

toJSON() {
return Object.assign(Object.assign({}, this), { value: this.value, path: this.path, text: this.text, hasError: this.hasError, hasWarning: this.hasWarning, isSuccess: this.isSuccess, uniquePath: this.uniquePath, _parent: undefined, _path: undefined, _rootModel: undefined, _rootValidator: undefined, _reactive: undefined, _initialValue: undefined, _ignoreChildChanges: undefined, _isReverting: undefined, _uniquePath: undefined, _rules: undefined, rootValidator: undefined, rootModel: undefined, parent: undefined, model: undefined, session: undefined, options: undefined });
return Object.assign(Object.assign({}, this), { value: this.value, path: this.path, text: this.text, hasError: this.hasError, hasWarning: this.hasWarning, isSuccess: this.isSuccess, uniquePath: this.uniquePath, _index: undefined, _parent: undefined, _path: undefined, _validationModel: undefined, _rootValidator: undefined, _reactive: undefined, _initialValue: undefined, _ignoreChildChanges: undefined, _isReverting: undefined, _uniquePath: undefined, _rules: undefined, _model: undefined, rootValidator: undefined, validationModel: undefined, parent: undefined, model: undefined, session: undefined, options: undefined });
}
}
//# sourceMappingURL=DryvValidator.js.map

@@ -6,2 +6,4 @@ export * from './DryvValidationSession';

export * from './DryvObjectValidator';
export * from './DryvArrayValidator';
export * from './DryvComplexValidator';
export * from './DryvValidator';

@@ -11,2 +13,2 @@ export * from './defaultDryvOptions';

export * from './DryvValidationSession';
export * from './CreateValidator';
export * from './createValidator';

@@ -6,2 +6,4 @@ export * from './DryvValidationSession';

export * from './DryvObjectValidator';
export * from './DryvArrayValidator';
export * from './DryvComplexValidator';
export * from './DryvValidator';

@@ -11,3 +13,3 @@ export * from './defaultDryvOptions';

export * from './DryvValidationSession';
export * from './CreateValidator';
export * from './createValidator';
//# sourceMappingURL=index.js.map

@@ -1,3 +0,2 @@

import { DryvValidatableArray } from '../typings';
import { DryvArrayValidator } from '../DryvArrayValidator';
export declare function dryvValidatableArray<TModel extends object>(validator: DryvArrayValidator<TModel>): DryvValidatableArray<TModel>;
export declare function dryvValidationArray<TModel extends object>(validator: DryvArrayValidator<TModel>): DryvArrayValidator<TModel>;

@@ -1,23 +0,5 @@

import { DryvComplexValidator } from '../DryvComplexValidator';
export function dryvValidatableArray(validator) {
return new Proxy(validator.childValidators(), new DryvTransparentArrayProxyHandler(validator));
import { DryvValidationArrayProxyHandler } from './DryvValidationArrayProxyHandler';
export function dryvValidationArray(validator) {
return new Proxy(validator, new DryvValidationArrayProxyHandler());
}
class DryvTransparentArrayProxyHandler {
constructor(validator) {
this.validator = validator;
}
get(target, prop) {
if (!/^\d+$/.test(String(prop))) {
const maybeFunction = this.validator.model[String(prop)];
if (typeof maybeFunction === 'function') {
return maybeFunction.bind(this.validator.model);
}
}
const value = target[prop];
return value instanceof DryvComplexValidator ? value.transparentProxy : value;
}
apply(target, thisArg, argArray) {
return target[thisArg].apply(target, argArray);
}
}
//# sourceMappingURL=dryvValidatableArray.js.map

@@ -1,2 +0,2 @@

import { DryvObjectValidator, DryvValidatableObject } from '../.';
export declare function dryvValidatableObject<TModel extends object>(validator: DryvObjectValidator<TModel>): DryvValidatableObject<TModel>;
import { DryvObjectValidator } from '../DryvObjectValidator';
export declare function dryvValidationObject<TModel extends object>(validator: DryvObjectValidator<TModel>): DryvObjectValidator<TModel>;

@@ -1,40 +0,5 @@

import { DryvObjectValidator, DryvValidator } from '../.';
import { DryvComplexValidator } from '../DryvComplexValidator';
export function dryvValidatableObject(validator) {
return new Proxy(validator, new DryvTransparentProxyHandler());
import { DryvValidationObjectProxyHandler } from '../internal/DryvValidationObjectProxyHandler';
export function dryvValidationObject(validator) {
return new Proxy(validator, new DryvValidationObjectProxyHandler());
}
class DryvTransparentProxyHandler {
ownKeys(target) {
return target.model ? Reflect.ownKeys(target.model) : [];
}
get(target, prop) {
const innerValue = target.fields[prop];
return innerValue instanceof DryvComplexValidator ? innerValue.transparentProxy : innerValue;
}
set(target, prop, value, receiver) {
const validator = target.fields[prop];
if (!(validator instanceof DryvValidator)) {
return Reflect.set(target.fields, prop, value, receiver);
}
validator.value = value;
return true;
}
has(target, key) {
return !!target.fields[key];
}
getOwnPropertyDescriptor(target, key) {
if (!target.fields)
return undefined;
const value = target.fields[key];
const decriptor = Reflect.getOwnPropertyDescriptor(target.fields, key);
return value
? {
value: value instanceof DryvObjectValidator ? value.transparentProxy : value,
writable: value instanceof DryvObjectValidator ? false : decriptor === null || decriptor === void 0 ? void 0 : decriptor.writable,
enumerable: decriptor === null || decriptor === void 0 ? void 0 : decriptor.enumerable,
configurable: decriptor === null || decriptor === void 0 ? void 0 : decriptor.configurable
}
: undefined;
}
}
//# sourceMappingURL=dryvValidatableObject.js.map
export * from './getMemberByPath';
export * from './annotateValidator';
export * from './observableProxy';
export * from './observableObjectProxy';
export * from './observableArrayProxy';
export * from './getValidatorByPath';
export * from './dryvValidatableObject';
export { dryvValidatableArray } from '../internal/dryvValidatableArray';
export * from './dryvEditingObject';
export * from './dryvEditingArray';
export * from './ObservableArrayProxyHandler';
export * from './ObservableObjectProxyHandler';
export { dryvEditingField } from '../internal/dryvEditingField';
export { dryvValidationArray } from '../internal/dryvValidationArray';
export { dryvValidationObject } from '../internal/dryvValidationObject';
export * from './getMemberByPath';
export * from './annotateValidator';
export * from './observableProxy';
export * from './observableObjectProxy';
export * from './observableArrayProxy';
export * from './getValidatorByPath';
export * from './dryvValidatableObject';
export { dryvValidatableArray } from '../internal/dryvValidatableArray';
export * from './dryvEditingObject';
export * from './dryvEditingArray';
export * from './ObservableArrayProxyHandler';
export * from './ObservableObjectProxyHandler';
export { dryvEditingField } from '../internal/dryvEditingField';
export { dryvValidationArray } from '../internal/dryvValidationArray';
export { dryvValidationObject } from '../internal/dryvValidationObject';
//# sourceMappingURL=index.js.map

@@ -0,1 +1,2 @@

import { ObservableArrayProxyHandler } from '../internal/ObservableArrayProxyHandler';
export function observableArrayProxy(model) {

@@ -10,71 +11,2 @@ const proxyHandler = new ObservableArrayProxyHandler(model);

}
class ObservableArrayProxyHandler {
constructor(array) {
this.array = array;
this._eventHandlers = new Map();
this._nextId = 0;
}
set(target, prop, value, receiver) {
const result = Reflect.set(target, prop, value, receiver);
if (prop === 'length' && value === 0) {
this.clear();
}
return result;
}
get(target, prop, receiver) {
var _a, _b;
return prop === 'push' ||
prop === 'pop' ||
prop === 'shift' ||
prop === 'unshift' ||
prop === 'splice'
? (_b = (_a = this[prop]) === null || _a === void 0 ? void 0 : _a.bind(this)) !== null && _b !== void 0 ? _b : Reflect.get(target, prop, receiver)
: Reflect.get(target, prop, receiver);
}
register(eventHandler) {
this._eventHandlers.set(++this._nextId, eventHandler);
return this._nextId;
}
unregister(id) {
this._eventHandlers.delete(id);
}
clear() {
const array = this.array;
const items = [...array];
array.splice(0, array.length);
this.fire({ action: 'remove', oldValue: items });
}
push(...items) {
const result = this.array.push(...items);
this.fire({ action: 'append', newValue: items });
return result;
}
pop() {
const item = this.array.pop();
if (item !== undefined) {
this.fire({ action: 'remove', oldValue: [item] });
}
}
shift() {
const item = this.array.shift();
if (item !== undefined) {
this.fire({ action: 'remove', oldValue: [item] });
}
}
unshift(...items) {
const result = this.array.unshift(...items);
this.fire({ action: 'insert', newValue: items });
return result;
}
splice(start, deleteCount, ...items) {
const deletedItems = this.array.splice(start, deleteCount, ...items);
this.fire({ action: 'replace', oldValue: deletedItems, newValue: items });
return deletedItems;
}
fire(event) {
for (const eventHandler of this._eventHandlers.values()) {
eventHandler(event);
}
}
}
//# sourceMappingURL=observableArrayProxy.js.map

@@ -1,1 +0,1 @@

export declare function isDryvValidatableProxy(item: any): any;
export declare function isDryvValidationProxy(item: any): any

@@ -1,1 +0,1 @@

export declare function isDryvValidatableProxyHandler(item: any): any;
export declare function isDryvValidationProxyHandler(item: any): any

@@ -16,3 +16,3 @@ export type DryvValidationState = 'error' | 'warning' | 'success' | string | undefined

}
export interface DryvValidatable<TModel = any, TValue = any> {
export interface DryvEditingField<TModel = any, TValue = any> {
get required(): boolean

@@ -27,4 +27,4 @@ get message(): string | undefined

set value(value: TValue | undefined)
get parent(): DryvValidatable | undefined
set parent(value: DryvValidatable | undefined)
get parent(): DryvEditingField | undefined
set parent(value: DryvEditingField | undefined)
get error(): boolean

@@ -46,3 +46,3 @@ get warning(): boolean

validateField<TModel, TValue>(
field: DryvValidatable<TModel, TValue>
field: DryvEditingField<TModel, TValue>
): Promise<DryvFieldValidationResult>

@@ -49,0 +49,0 @@ }

@@ -1,2 +0,2 @@

import { DryvValidationSession, DryvValidator } from './.';
import { DryvFieldValidator, DryvValidationSession, DryvValidator } from './.';
export type DryvValidateFunctionResult = DryvFieldValidationResult | string | boolean | null | undefined | Promise<DryvFieldValidationResult | string | null | undefined>;

@@ -76,24 +76,18 @@ export interface DryvValidationRule<TModel extends object> {

}
export type DryvValidatableField<TValue = object> = {
path: string;
type: DryvValidationResultType | null;
text: string | null;
group: string | null;
groupShown: boolean;
success: boolean;
hasErrors: boolean;
hasWarnings: boolean;
warningHash: string | undefined | null;
value: TValue;
validate(): Promise<DryvValidationResult>;
export type DryvEditingField<TModel = any> = NonNullable<TModel> extends Array<infer TItem> ? DryvEditingArray<TItem> : NonNullable<TModel> extends object ? DryvEditingObject<NonNullable<TModel>> : DryvFieldValidator<NonNullable<TModel>>;
export type DryvEditingArray<TModel = any> = Array<NonNullable<TModel>> & {
[index: number]: DryvEditingField<TModel>;
};
export type DryvValidatable<TModel> = NonNullable<TModel> extends Array<infer TItem> ? DryvValidatableArray<TItem> : NonNullable<TModel> extends object ? DryvValidatableObject<NonNullable<TModel>> : DryvValidatableField<NonNullable<TModel>>;
export type DryvValidatableArray<TModel = any> = Array<NonNullable<TModel>> & {
[index: number]: DryvValidatable<TModel>;
export type DryvEditingObject<TModel extends object> = {
[Property in keyof TModel]: DryvEditingField<TModel[Property]>;
};
export type DryvValidatableObject<TModel extends object> = {
[Property in keyof TModel]: DryvValidatable<TModel[Property]>;
export type DryvValidationField<TModel = any> = NonNullable<TModel> extends Array<infer TItem> ? DryvValidationArray<TItem> : NonNullable<TModel> extends object ? DryvValidationObject<NonNullable<TModel>> : TModel;
export type DryvValidationArray<TModel = any> = Array<NonNullable<TModel>> & {
[index: number]: DryvValidationField<TModel>;
};
export type DryvValidationObject<TModel extends object> = {
[Property in keyof TModel]: DryvValidationField<TModel[Property]>;
};
export type DryvRefsModel<TModel extends object = any> = TModel & {
$dryv: DryvValidator<TModel>;
};

@@ -1,40 +0,58 @@

import { DryvFieldValidationResult, DryvOptions, DryvServerErrors, DryvServerValidationResponse, DryvValidatable, DryvValidationResult, DryvValidationRuleSet, DryvValidationSession, DryvValidationState } from './types';
export declare class Validatable<TModel = any, TValue = any> implements DryvValidatable<TModel, TValue> {
protected model: TModel;
protected session: DryvValidationSession;
private ruleSet;
private options;
private _parent;
private _group;
private _message;
private _required;
private _groupShown;
private _state;
private readonly _fieldKey;
private reactive;
constructor(fieldKey: keyof TModel, model: TModel, session: DryvValidationSession, ruleSet: DryvValidationRuleSet, options: DryvOptions);
get required(): boolean;
set required(value: boolean);
get message(): string | undefined;
private set message(value);
get path(): string;
get group(): string | undefined;
set group(value: string | undefined);
get groupShown(): boolean;
set groupShown(value: boolean);
get state(): DryvValidationState;
private set state(value);
get fieldKey(): keyof TModel;
get value(): TValue;
set value(value: TValue);
get parent(): DryvValidatable | undefined;
set parent(value: DryvValidatable | undefined);
get error(): boolean;
get warning(): boolean;
get success(): boolean;
validate(): Promise<DryvValidationResult>;
reset(): void;
setValidationResults(response: DryvServerValidationResponse | DryvServerErrors): boolean;
protected setFieldResults(fieldResult: DryvFieldValidationResult): void;
private parentUpdated;
import {
DryvFieldValidationResult,
DryvOptions,
DryvServerErrors,
DryvServerValidationResponse,
DryvEditingField,
DryvValidationResult,
DryvValidationRuleSet,
DryvValidationSession,
DryvValidationState
} from './types'
export declare class Validation<TModel = any, TValue = any>
implements DryvEditingField<TModel, TValue>
{
protected model: TModel
protected session: DryvValidationSession
private ruleSet
private options
private _parent
private _group
private _message
private _required
private _groupShown
private _state
private readonly _fieldKey
private reactive
constructor(
fieldKey: keyof TModel,
model: TModel,
session: DryvValidationSession,
ruleSet: DryvValidationRuleSet,
options: DryvOptions
)
get required(): boolean
set required(value: boolean)
get message(): string | undefined
private set message(value)
get path(): string
get group(): string | undefined
set group(value: string | undefined)
get groupShown(): boolean
set groupShown(value: boolean)
get state(): DryvValidationState
private set state(value)
get fieldKey(): keyof TModel
get value(): TValue
set value(value: TValue)
get parent(): DryvEditingField | undefined
set parent(value: DryvEditingField | undefined)
get error(): boolean
get warning(): boolean
get success(): boolean
validate(): Promise<DryvValidationResult>
reset(): void
setValidationResults(response: DryvServerValidationResponse | DryvServerErrors): boolean
protected setFieldResults(fieldResult: DryvFieldValidationResult): void
private parentUpdated
}

@@ -1,6 +0,20 @@

import { DryvOptions, DryvValidationResult, DryvValidationRuleSet, DryvValidationSession } from './types';
import { Validatable } from './Validatable';
export declare class ValidatableObject<TModel extends object = any, TValue extends object = any> extends Validatable<TModel, TValue> {
constructor(field: keyof TModel, model: TModel, session: DryvValidationSession, ruleSet: DryvValidationRuleSet, options: DryvOptions);
validate(): Promise<DryvValidationResult>;
import {
DryvOptions,
DryvValidationResult,
DryvValidationRuleSet,
DryvValidationSession
} from './types'
import { Validation } from './Validation'
export declare class ValidationObject<
TModel extends object = any,
TValue extends object = any
> extends Validation<TModel, TValue> {
constructor(
field: keyof TModel,
model: TModel,
session: DryvValidationSession,
ruleSet: DryvValidationRuleSet,
options: DryvOptions
)
validate(): Promise<DryvValidationResult>
}

@@ -1,17 +0,25 @@

import { DryvOptions, DryvValidationRuleSet, DryvValidationSession } from './types';
export declare class ValidatableProxyHandler<TModel extends object = any> implements ProxyHandler<TModel> {
private model;
private session;
private ruleSet;
private options;
private parent?;
private readonly _validatables;
private readonly _objectProxies;
private readonly _arrayProxies;
constructor(model: TModel, session: DryvValidationSession, ruleSet: DryvValidationRuleSet, options: DryvOptions, parent?: any);
get(target: TModel, p: string | symbol, receiver: any): any;
set(target: TModel, p: string | symbol, newValue: any, receiver: any): boolean;
private transformValue;
private createValidatable;
private isFieldExcluded;
import { DryvOptions, DryvValidationRuleSet, DryvValidationSession } from './types'
export declare class ValidationProxyHandler<TModel extends object = any>
implements ProxyHandler<TModel>
{
private model
private session
private ruleSet
private options
private parent?
private readonly _validatables
private readonly _objectProxies
private readonly _arrayProxies
constructor(
model: TModel,
session: DryvValidationSession,
ruleSet: DryvValidationRuleSet,
options: DryvOptions,
parent?: any
)
get(target: TModel, p: string | symbol, receiver: any): any
set(target: TModel, p: string | symbol, newValue: any, receiver: any): boolean
private transformValue
private createValidation
private isFieldExcluded
}

@@ -1,6 +0,20 @@

import { DryvOptions, DryvValidationResult, DryvValidationRuleSet, DryvValidationSession } from './types';
import { Validatable } from './Validatable';
export declare class ValidatableValue<TModel extends object = any, TValue = any> extends Validatable<TModel, TValue> {
constructor(field: keyof TModel, model: TModel, session: DryvValidationSession, ruleSet: DryvValidationRuleSet, options: DryvOptions);
validate(): Promise<DryvValidationResult>;
import {
DryvOptions,
DryvValidationResult,
DryvValidationRuleSet,
DryvValidationSession
} from './types'
import { Validation } from './Validation'
export declare class ValidationValue<TModel extends object = any, TValue = any> extends Validation<
TModel,
TValue
> {
constructor(
field: keyof TModel,
model: TModel,
session: DryvValidationSession,
ruleSet: DryvValidationRuleSet,
options: DryvOptions
)
validate(): Promise<DryvValidationResult>
}
{
"name": "dryvjs",
"version": "1.0.0-pre-50",
"version": "1.0.0-pre-51",
"main": "dist/index.js",

@@ -5,0 +5,0 @@ "types": "dist/index.d.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc