Skip to content

Commit 62b0673

Browse files
chore(all): prepare release 1.1.0
1 parent 62137ef commit 62b0673

File tree

199 files changed

+5579
-1130
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+5579
-1130
lines changed

dist/amd/aurelia-validation.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
export * from './controller-validate-result';
22
export * from './get-target-dom-element';
33
export * from './property-info';
4+
export * from './property-accessor-parser';
45
export * from './validate-binding-behavior';
6+
export * from './validate-event';
57
export * from './validate-instruction';
68
export * from './validate-result';
79
export * from './validate-trigger';
@@ -15,7 +17,7 @@ export * from './implementation/rule';
1517
export * from './implementation/rules';
1618
export * from './implementation/standard-validator';
1719
export * from './implementation/validation-messages';
18-
export * from './implementation/validation-parser';
20+
export * from './implementation/validation-message-parser';
1921
export * from './implementation/validation-rules';
2022
import { Container } from 'aurelia-dependency-injection';
2123
import { Validator } from './validator';

dist/amd/aurelia-validation.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
// Exports
2-
define(["require", "exports", "./get-target-dom-element", "./property-info", "./validate-binding-behavior", "./validate-result", "./validate-trigger", "./validation-controller", "./validation-controller-factory", "./validation-errors-custom-attribute", "./validation-renderer-custom-attribute", "./validator", "./implementation/rules", "./implementation/standard-validator", "./implementation/validation-messages", "./implementation/validation-parser", "./implementation/validation-rules", "aurelia-pal", "./validator", "./implementation/standard-validator", "./implementation/validation-parser", "./implementation/validation-rules"], function (require, exports, get_target_dom_element_1, property_info_1, validate_binding_behavior_1, validate_result_1, validate_trigger_1, validation_controller_1, validation_controller_factory_1, validation_errors_custom_attribute_1, validation_renderer_custom_attribute_1, validator_1, rules_1, standard_validator_1, validation_messages_1, validation_parser_1, validation_rules_1, aurelia_pal_1, validator_2, standard_validator_2, validation_parser_2, validation_rules_2) {
2+
define(["require", "exports", "./get-target-dom-element", "./property-info", "./property-accessor-parser", "./validate-binding-behavior", "./validate-event", "./validate-result", "./validate-trigger", "./validation-controller", "./validation-controller-factory", "./validation-errors-custom-attribute", "./validation-renderer-custom-attribute", "./validator", "./implementation/rules", "./implementation/standard-validator", "./implementation/validation-messages", "./implementation/validation-message-parser", "./implementation/validation-rules", "aurelia-pal", "./validator", "./implementation/standard-validator", "./implementation/validation-message-parser", "./property-accessor-parser", "./implementation/validation-rules"], function (require, exports, get_target_dom_element_1, property_info_1, property_accessor_parser_1, validate_binding_behavior_1, validate_event_1, validate_result_1, validate_trigger_1, validation_controller_1, validation_controller_factory_1, validation_errors_custom_attribute_1, validation_renderer_custom_attribute_1, validator_1, rules_1, standard_validator_1, validation_messages_1, validation_message_parser_1, validation_rules_1, aurelia_pal_1, validator_2, standard_validator_2, validation_message_parser_2, property_accessor_parser_2, validation_rules_2) {
33
"use strict";
44
function __export(m) {
55
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
66
}
77
Object.defineProperty(exports, "__esModule", { value: true });
88
__export(get_target_dom_element_1);
99
__export(property_info_1);
10+
__export(property_accessor_parser_1);
1011
__export(validate_binding_behavior_1);
12+
__export(validate_event_1);
1113
__export(validate_result_1);
1214
__export(validate_trigger_1);
1315
__export(validation_controller_1);
@@ -18,7 +20,7 @@ define(["require", "exports", "./get-target-dom-element", "./property-info", "./
1820
__export(rules_1);
1921
__export(standard_validator_1);
2022
__export(validation_messages_1);
21-
__export(validation_parser_1);
23+
__export(validation_message_parser_1);
2224
__export(validation_rules_1);
2325
/**
2426
* Aurelia Validation Configuration API
@@ -49,8 +51,9 @@ define(["require", "exports", "./get-target-dom-element", "./property-info", "./
4951
function configure(frameworkConfig, callback) {
5052
// the fluent rule definition API needs the parser to translate messages
5153
// to interpolation expressions.
52-
var parser = frameworkConfig.container.get(validation_parser_2.ValidationParser);
53-
validation_rules_2.ValidationRules.initialize(parser);
54+
var messageParser = frameworkConfig.container.get(validation_message_parser_2.ValidationMessageParser);
55+
var propertyParser = frameworkConfig.container.get(property_accessor_parser_2.PropertyAccessorParser);
56+
validation_rules_2.ValidationRules.initialize(messageParser, propertyParser);
5457
// configure...
5558
var config = new AureliaValidationConfiguration();
5659
if (callback instanceof Function) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { ValueConverter, Conditional, AccessMember, AccessKeyed, CallMember, BindingBehavior, Binary } from 'aurelia-binding';
2+
export declare type Chain = any;
3+
export declare type Assign = any;
4+
export declare type AccessThis = any;
5+
export declare type AccessScope = any;
6+
export declare type CallScope = any;
7+
export declare type CallFunction = any;
8+
export declare type PrefixNot = any;
9+
export declare type LiteralPrimitive = any;
10+
export declare type LiteralArray = any;
11+
export declare type LiteralObject = any;
12+
export declare type LiteralString = any;
13+
export declare class ExpressionVisitor {
14+
visitChain(chain: Chain): void;
15+
visitBindingBehavior(behavior: BindingBehavior): void;
16+
visitValueConverter(converter: ValueConverter): void;
17+
visitAssign(assign: Assign): void;
18+
visitConditional(conditional: Conditional): void;
19+
visitAccessThis(access: AccessThis): void;
20+
visitAccessScope(access: AccessScope): void;
21+
visitAccessMember(access: AccessMember): void;
22+
visitAccessKeyed(access: AccessKeyed): void;
23+
visitCallScope(call: CallScope): void;
24+
visitCallFunction(call: CallFunction): void;
25+
visitCallMember(call: CallMember): void;
26+
visitPrefix(prefix: PrefixNot): void;
27+
visitBinary(binary: Binary): void;
28+
visitLiteralPrimitive(literal: LiteralPrimitive): void;
29+
visitLiteralArray(literal: LiteralArray): void;
30+
visitLiteralObject(literal: LiteralObject): void;
31+
visitLiteralString(literal: LiteralString): void;
32+
private visitArgs(args);
33+
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
define(["require", "exports"], function (require, exports) {
2+
"use strict";
3+
Object.defineProperty(exports, "__esModule", { value: true });
4+
// tslint:disable:no-empty
5+
var ExpressionVisitor = (function () {
6+
function ExpressionVisitor() {
7+
}
8+
ExpressionVisitor.prototype.visitChain = function (chain) {
9+
this.visitArgs(chain.expressions);
10+
};
11+
ExpressionVisitor.prototype.visitBindingBehavior = function (behavior) {
12+
behavior.expression.accept(this);
13+
this.visitArgs(behavior.args);
14+
};
15+
ExpressionVisitor.prototype.visitValueConverter = function (converter) {
16+
converter.expression.accept(this);
17+
this.visitArgs(converter.args);
18+
};
19+
ExpressionVisitor.prototype.visitAssign = function (assign) {
20+
assign.target.accept(this);
21+
assign.value.accept(this);
22+
};
23+
ExpressionVisitor.prototype.visitConditional = function (conditional) {
24+
conditional.condition.accept(this);
25+
conditional.yes.accept(this);
26+
conditional.no.accept(this);
27+
};
28+
ExpressionVisitor.prototype.visitAccessThis = function (access) {
29+
access.ancestor = access.ancestor;
30+
};
31+
ExpressionVisitor.prototype.visitAccessScope = function (access) {
32+
access.name = access.name;
33+
};
34+
ExpressionVisitor.prototype.visitAccessMember = function (access) {
35+
access.object.accept(this);
36+
};
37+
ExpressionVisitor.prototype.visitAccessKeyed = function (access) {
38+
access.object.accept(this);
39+
access.key.accept(this);
40+
};
41+
ExpressionVisitor.prototype.visitCallScope = function (call) {
42+
this.visitArgs(call.args);
43+
};
44+
ExpressionVisitor.prototype.visitCallFunction = function (call) {
45+
call.func.accept(this);
46+
this.visitArgs(call.args);
47+
};
48+
ExpressionVisitor.prototype.visitCallMember = function (call) {
49+
call.object.accept(this);
50+
this.visitArgs(call.args);
51+
};
52+
ExpressionVisitor.prototype.visitPrefix = function (prefix) {
53+
prefix.expression.accept(this);
54+
};
55+
ExpressionVisitor.prototype.visitBinary = function (binary) {
56+
binary.left.accept(this);
57+
binary.right.accept(this);
58+
};
59+
ExpressionVisitor.prototype.visitLiteralPrimitive = function (literal) {
60+
literal.value = literal.value;
61+
};
62+
ExpressionVisitor.prototype.visitLiteralArray = function (literal) {
63+
this.visitArgs(literal.elements);
64+
};
65+
ExpressionVisitor.prototype.visitLiteralObject = function (literal) {
66+
this.visitArgs(literal.values);
67+
};
68+
ExpressionVisitor.prototype.visitLiteralString = function (literal) {
69+
literal.value = literal.value;
70+
};
71+
ExpressionVisitor.prototype.visitArgs = function (args) {
72+
for (var i = 0; i < args.length; i++) {
73+
args[i].accept(this);
74+
}
75+
};
76+
return ExpressionVisitor;
77+
}());
78+
exports.ExpressionVisitor = ExpressionVisitor;
79+
});

dist/amd/implementation/rule.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export interface RuleProperty {
1919
export interface Rule<TObject, TValue> {
2020
property: RuleProperty;
2121
condition: (value: TValue, object?: TObject) => boolean | Promise<boolean>;
22-
config: Object;
22+
config: object;
2323
when: ((object: TObject) => boolean) | null;
2424
messageKey: string;
2525
message: Expression | null;

dist/amd/implementation/rules.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ define(["require", "exports"], function (require, exports) {
3131
Rules.get = function (target) {
3232
return target[Rules.key] || null;
3333
};
34+
/**
35+
* The name of the property that stores the rules.
36+
*/
37+
Rules.key = '__rules__';
3438
return Rules;
3539
}());
36-
/**
37-
* The name of the property that stores the rules.
38-
*/
39-
Rules.key = '__rules__';
4040
exports.Rules = Rules;
4141
});

dist/amd/implementation/standard-validator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ define(["require", "exports", "aurelia-templating", "../validator", "../validate
131131
}
132132
return this.validateRuleSequence(object, propertyName, rules, 0, []);
133133
};
134+
StandardValidator.inject = [validation_messages_1.ValidationMessageProvider, aurelia_templating_1.ViewResources];
134135
return StandardValidator;
135136
}(validator_1.Validator));
136-
StandardValidator.inject = [validation_messages_1.ValidationMessageProvider, aurelia_templating_1.ViewResources];
137137
exports.StandardValidator = StandardValidator;
138138
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Expression, AccessScope } from 'aurelia-binding';
2+
import { BindingLanguage } from 'aurelia-templating';
3+
import { ExpressionVisitor } from './expression-visitor';
4+
export declare class ValidationMessageParser {
5+
private bindinqLanguage;
6+
static inject: typeof BindingLanguage[];
7+
private emptyStringExpression;
8+
private nullExpression;
9+
private undefinedExpression;
10+
private cache;
11+
constructor(bindinqLanguage: BindingLanguage);
12+
parse(message: string): Expression;
13+
private coalesce(part);
14+
}
15+
export declare class MessageExpressionValidator extends ExpressionVisitor {
16+
private originalMessage;
17+
static validate(expression: Expression, originalMessage: string): void;
18+
constructor(originalMessage: string);
19+
visitAccessScope(access: AccessScope): void;
20+
}

dist/amd/implementation/validation-parser.js renamed to dist/amd/implementation/validation-message-parser.js

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,18 @@ var __extends = (this && this.__extends) || (function () {
88
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
99
};
1010
})();
11-
define(["require", "exports", "aurelia-binding", "aurelia-templating", "./util", "aurelia-logging"], function (require, exports, aurelia_binding_1, aurelia_templating_1, util_1, LogManager) {
11+
define(["require", "exports", "aurelia-binding", "aurelia-templating", "aurelia-logging", "./expression-visitor"], function (require, exports, aurelia_binding_1, aurelia_templating_1, LogManager, expression_visitor_1) {
1212
"use strict";
1313
Object.defineProperty(exports, "__esModule", { value: true });
14-
var ValidationParser = (function () {
15-
function ValidationParser(parser, bindinqLanguage) {
16-
this.parser = parser;
14+
var ValidationMessageParser = (function () {
15+
function ValidationMessageParser(bindinqLanguage) {
1716
this.bindinqLanguage = bindinqLanguage;
1817
this.emptyStringExpression = new aurelia_binding_1.LiteralString('');
1918
this.nullExpression = new aurelia_binding_1.LiteralPrimitive(null);
2019
this.undefinedExpression = new aurelia_binding_1.LiteralPrimitive(undefined);
2120
this.cache = {};
2221
}
23-
ValidationParser.prototype.parseMessage = function (message) {
22+
ValidationMessageParser.prototype.parse = function (message) {
2423
if (this.cache[message] !== undefined) {
2524
return this.cache[message];
2625
}
@@ -36,43 +35,18 @@ define(["require", "exports", "aurelia-binding", "aurelia-templating", "./util",
3635
this.cache[message] = expression;
3736
return expression;
3837
};
39-
ValidationParser.prototype.parseProperty = function (property) {
40-
if (util_1.isString(property)) {
41-
return { name: property, displayName: null };
42-
}
43-
var accessor = this.getAccessorExpression(property.toString());
44-
if (accessor instanceof aurelia_binding_1.AccessScope
45-
|| accessor instanceof aurelia_binding_1.AccessMember && accessor.object instanceof aurelia_binding_1.AccessScope) {
46-
return {
47-
name: accessor.name,
48-
displayName: null
49-
};
50-
}
51-
throw new Error("Invalid subject: \"" + accessor + "\"");
52-
};
53-
ValidationParser.prototype.coalesce = function (part) {
38+
ValidationMessageParser.prototype.coalesce = function (part) {
5439
// part === null || part === undefined ? '' : part
5540
return new aurelia_binding_1.Conditional(new aurelia_binding_1.Binary('||', new aurelia_binding_1.Binary('===', part, this.nullExpression), new aurelia_binding_1.Binary('===', part, this.undefinedExpression)), this.emptyStringExpression, new aurelia_binding_1.CallMember(part, 'toString', []));
5641
};
57-
ValidationParser.prototype.getAccessorExpression = function (fn) {
58-
/* tslint:disable:max-line-length */
59-
var classic = /^function\s*\([$_\w\d]+\)\s*\{(?:\s*"use strict";)?\s*(?:[$_\w\d.['"\]+;]+)?\s*return\s+[$_\w\d]+\.([$_\w\d]+)\s*;?\s*\}$/;
60-
/* tslint:enable:max-line-length */
61-
var arrow = /^\(?[$_\w\d]+\)?\s*=>\s*[$_\w\d]+\.([$_\w\d]+)$/;
62-
var match = classic.exec(fn) || arrow.exec(fn);
63-
if (match === null) {
64-
throw new Error("Unable to parse accessor function:\n" + fn);
65-
}
66-
return this.parser.parse(match[1]);
67-
};
68-
return ValidationParser;
42+
ValidationMessageParser.inject = [aurelia_templating_1.BindingLanguage];
43+
return ValidationMessageParser;
6944
}());
70-
ValidationParser.inject = [aurelia_binding_1.Parser, aurelia_templating_1.BindingLanguage];
71-
exports.ValidationParser = ValidationParser;
45+
exports.ValidationMessageParser = ValidationMessageParser;
7246
var MessageExpressionValidator = (function (_super) {
7347
__extends(MessageExpressionValidator, _super);
7448
function MessageExpressionValidator(originalMessage) {
75-
var _this = _super.call(this, []) || this;
49+
var _this = _super.call(this) || this;
7650
_this.originalMessage = originalMessage;
7751
return _this;
7852
}
@@ -90,6 +64,6 @@ define(["require", "exports", "aurelia-binding", "aurelia-templating", "./util",
9064
}
9165
};
9266
return MessageExpressionValidator;
93-
}(aurelia_binding_1.Unparser));
67+
}(expression_visitor_1.ExpressionVisitor));
9468
exports.MessageExpressionValidator = MessageExpressionValidator;
9569
});

dist/amd/implementation/validation-messages.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Expression } from 'aurelia-binding';
2-
import { ValidationParser } from './validation-parser';
2+
import { ValidationMessageParser } from './validation-message-parser';
33
export interface ValidationMessages {
44
[key: string]: string;
55
}
@@ -12,8 +12,8 @@ export declare const validationMessages: ValidationMessages;
1212
*/
1313
export declare class ValidationMessageProvider {
1414
private parser;
15-
static inject: typeof ValidationParser[];
16-
constructor(parser: ValidationParser);
15+
static inject: typeof ValidationMessageParser[];
16+
constructor(parser: ValidationMessageParser);
1717
/**
1818
* Returns a message binding expression that corresponds to the key.
1919
* @param key The message key.
@@ -25,5 +25,5 @@ export declare class ValidationMessageProvider {
2525
* Override this with your own custom logic.
2626
* @param propertyName The property name.
2727
*/
28-
getDisplayName(propertyName: string, displayName?: string | null | Function): string;
28+
getDisplayName(propertyName: string, displayName?: string | null | (() => string)): string;
2929
}

0 commit comments

Comments
 (0)