@forge/util 1.2.3-next.0 → 1.2.4-next.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.
- package/CHANGELOG.md +14 -0
- package/package.json +8 -3
- package/packages/analytics-node-client/CHANGELOG.md +8 -0
- package/packages/analytics-node-client/README.md +1 -0
- package/packages/analytics-node-client/package.json +1 -1
- package/packages/analytics-node-client/src/index.js +1 -1
- package/packages/cs-ari/CHANGELOG.md +8 -0
- package/packages/cs-ari/dist/AppAriImpls.d.ts +1 -0
- package/packages/cs-ari/dist/AppAriImpls.js +97 -114
- package/packages/cs-ari/dist/AppAriImpls.js.map +1 -1
- package/packages/cs-ari/dist/AppAris.js +16 -38
- package/packages/cs-ari/dist/AppAris.js.map +1 -1
- package/packages/cs-ari/dist/Constraints.js +32 -43
- package/packages/cs-ari/dist/Constraints.js.map +1 -1
- package/packages/cs-ari/dist/Index.js +69 -86
- package/packages/cs-ari/dist/Index.js.map +1 -1
- package/packages/cs-ari/package.json +9 -4
- package/packages/cs-ari/xunit.xml +42 -32
- package/packages/cs-ari/yarn.lock +27 -67
- package/scripts/replace-packages.js +4 -5
|
@@ -21,6 +21,7 @@ export declare class AppFamilyAriImpl<J extends AppFamilyAriJson> implements App
|
|
|
21
21
|
private returnIf;
|
|
22
22
|
private readonly isAtLeastAppEnvironmentAri;
|
|
23
23
|
private readonly isAtLeastExtensionGroupAri;
|
|
24
|
+
private validate;
|
|
24
25
|
toAri(): Ari;
|
|
25
26
|
toString(): string;
|
|
26
27
|
}
|
|
@@ -1,186 +1,169 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const AppAris_1 = require("./AppAris");
|
|
4
|
+
const Index_1 = require("./Index");
|
|
5
|
+
const Constraints_1 = require("./Constraints");
|
|
6
|
+
const versionPrefix = ';v=';
|
|
7
|
+
const uuidRegExpString = '[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}';
|
|
8
|
+
const uuidConstraints = [Constraints_1.pattern(new RegExp(`^${uuidRegExpString}$`, 'i'))];
|
|
9
|
+
const extensionGroupIdConstraints = [Constraints_1.pattern(new RegExp(`^(${uuidRegExpString}|static)$`, 'i'))];
|
|
10
|
+
class AppFamilyAriImpl {
|
|
11
|
+
constructor(json) {
|
|
8
12
|
this.json = json;
|
|
13
|
+
this.validate();
|
|
9
14
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return this.json.version;
|
|
27
|
-
},
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(AppFamilyAriImpl.prototype, "extensionGroupId", {
|
|
32
|
-
get: function () {
|
|
33
|
-
return this.json.extensionGroupId;
|
|
34
|
-
},
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true
|
|
37
|
-
});
|
|
38
|
-
Object.defineProperty(AppFamilyAriImpl.prototype, "extensionKey", {
|
|
39
|
-
get: function () {
|
|
40
|
-
return this.json.extensionKey;
|
|
41
|
-
},
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true
|
|
44
|
-
});
|
|
45
|
-
AppFamilyAriImpl.prototype.toJSON = function () {
|
|
15
|
+
get appId() {
|
|
16
|
+
return this.json.appId;
|
|
17
|
+
}
|
|
18
|
+
get environmentId() {
|
|
19
|
+
return this.json.environmentId;
|
|
20
|
+
}
|
|
21
|
+
get version() {
|
|
22
|
+
return this.json.version;
|
|
23
|
+
}
|
|
24
|
+
get extensionGroupId() {
|
|
25
|
+
return this.json.extensionGroupId;
|
|
26
|
+
}
|
|
27
|
+
get extensionKey() {
|
|
28
|
+
return this.json.extensionKey;
|
|
29
|
+
}
|
|
30
|
+
toJSON() {
|
|
46
31
|
return this.json;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
}
|
|
33
|
+
static parse(ari) {
|
|
34
|
+
const { resourceOwner, resourceType, resourceId } = ari;
|
|
50
35
|
if (resourceOwner !== AppAris_1.AppFamilyAri.resourceOwner) {
|
|
51
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
36
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `resourceOwner (${resourceOwner}) must be ${AppAris_1.AppFamilyAri.resourceOwner}`);
|
|
52
37
|
}
|
|
53
38
|
if (!resourceType || AppAris_1.AppFamilyAri.appFamilyResourceTypes.indexOf(resourceType) < 0) {
|
|
54
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
39
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `resourceType must be one of ${AppAris_1.AppFamilyAri.appFamilyResourceTypes}`);
|
|
55
40
|
}
|
|
56
41
|
if (!resourceId) {
|
|
57
42
|
throw new AppAris_1.NotAppFamilyAriError(ari, 'resourceId is must be provided');
|
|
58
43
|
}
|
|
59
|
-
|
|
44
|
+
const versionIndex = resourceId.indexOf(versionPrefix);
|
|
60
45
|
if (versionIndex > 0 && resourceId.lastIndexOf(versionPrefix) > versionIndex) {
|
|
61
46
|
throw new AppAris_1.NotAppFamilyAriError(ari, 'can only include one version suffix');
|
|
62
47
|
}
|
|
63
|
-
|
|
64
|
-
|
|
48
|
+
const [mainResourceId, version] = resourceId.split(versionPrefix);
|
|
49
|
+
const segments = mainResourceId.split('/').map(stripToUndefined);
|
|
65
50
|
if (segments.length > 4) {
|
|
66
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
51
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `no path segments can be added after extensionKey ${segments.slice(4)}`);
|
|
67
52
|
}
|
|
68
|
-
|
|
53
|
+
const [appId = undefined, environmentId = undefined, providedExtensionGroupId = undefined, extensionKey = undefined] = segments;
|
|
69
54
|
if (!appId) {
|
|
70
55
|
throw new AppAris_1.NotAppFamilyAriError(ari, 'appId must be included');
|
|
71
56
|
}
|
|
72
|
-
|
|
57
|
+
const extensionGroupId = providedExtensionGroupId ||
|
|
73
58
|
((resourceType === AppAris_1.AppFamilyAri.extensionGroupResourceType || resourceType === AppAris_1.AppFamilyAri.extensionResourceType) ? 'static' : undefined);
|
|
74
59
|
if (resourceType === AppAris_1.AppFamilyAri.extensionResourceType && !(environmentId && providedExtensionGroupId && extensionKey)) {
|
|
75
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
60
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `environmentId, extensionGroupId, extensionKey must all be provided for resourceType ${AppAris_1.AppFamilyAri.extensionResourceType}`);
|
|
76
61
|
}
|
|
77
62
|
else if (resourceType === AppAris_1.AppFamilyAri.extensionGroupResourceType && (!(environmentId && extensionGroupId) || extensionKey)) {
|
|
78
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
63
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `environmentId, extensionGroupId must all be provided for resourceType ${AppAris_1.AppFamilyAri.extensionGroupResourceType}`);
|
|
79
64
|
}
|
|
80
65
|
else if (resourceType === AppAris_1.AppFamilyAri.environmentResourceType && (!environmentId || providedExtensionGroupId || extensionKey)) {
|
|
81
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
66
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `environmentId must be provided for resourceType ${AppAris_1.AppFamilyAri.environmentResourceType}`);
|
|
82
67
|
}
|
|
83
68
|
else if (resourceType === AppAris_1.AppFamilyAri.appResourceType && (environmentId || providedExtensionGroupId || extensionKey)) {
|
|
84
|
-
throw new AppAris_1.NotAppFamilyAriError(ari,
|
|
85
|
-
}
|
|
86
|
-
return new AppFamilyAriImpl({ appId
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return this.returnIf(
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
var _this = this;
|
|
102
|
-
return this.returnIf(function () { return _this.isExtensionAri(); }, 'extension');
|
|
103
|
-
};
|
|
104
|
-
AppFamilyAriImpl.prototype.isAppAri = function () {
|
|
69
|
+
throw new AppAris_1.NotAppFamilyAriError(ari, `environmentId must be provided for resourceType ${AppAris_1.AppFamilyAri.environmentResourceType}`);
|
|
70
|
+
}
|
|
71
|
+
return new AppFamilyAriImpl({ appId, environmentId, extensionGroupId, extensionKey, version });
|
|
72
|
+
}
|
|
73
|
+
asAppAri() {
|
|
74
|
+
return this.returnIf(() => this.isAppAri(), 'app');
|
|
75
|
+
}
|
|
76
|
+
asAppEnvironmentAri() {
|
|
77
|
+
return this.returnIf(() => this.isAppEnvironmentAri(), 'environment');
|
|
78
|
+
}
|
|
79
|
+
asExtensionGroupAri() {
|
|
80
|
+
return this.returnIf(() => this.isExtensionGroupAri(), 'extension-group');
|
|
81
|
+
}
|
|
82
|
+
asExtensionAri() {
|
|
83
|
+
return this.returnIf(() => this.isExtensionAri(), 'extension');
|
|
84
|
+
}
|
|
85
|
+
isAppAri() {
|
|
105
86
|
return !this.isAtLeastAppEnvironmentAri;
|
|
106
|
-
}
|
|
107
|
-
|
|
87
|
+
}
|
|
88
|
+
isAppEnvironmentAri() {
|
|
108
89
|
return this.isAtLeastAppEnvironmentAri && !this.isAtLeastExtensionGroupAri;
|
|
109
|
-
}
|
|
110
|
-
|
|
90
|
+
}
|
|
91
|
+
isExtensionGroupAri() {
|
|
111
92
|
return this.isAtLeastExtensionGroupAri && !this.isExtensionAri();
|
|
112
|
-
}
|
|
113
|
-
|
|
93
|
+
}
|
|
94
|
+
isExtensionAri() {
|
|
114
95
|
return this.isAtLeastExtensionGroupAri && this.extensionKey !== undefined;
|
|
115
|
-
}
|
|
116
|
-
|
|
96
|
+
}
|
|
97
|
+
returnIf(check, type) {
|
|
117
98
|
if (!check()) {
|
|
118
99
|
throw new AppAris_1.NotExpectedAppFamilyAriTypeError(type, this);
|
|
119
100
|
}
|
|
120
101
|
return this; // :sadpanda:
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
102
|
+
}
|
|
103
|
+
get isAtLeastAppEnvironmentAri() {
|
|
104
|
+
return this.environmentId !== undefined;
|
|
105
|
+
}
|
|
106
|
+
get isAtLeastExtensionGroupAri() {
|
|
107
|
+
return this.isAtLeastAppEnvironmentAri && this.extensionGroupId !== undefined;
|
|
108
|
+
}
|
|
109
|
+
validate() {
|
|
110
|
+
const constraintViolations = [
|
|
111
|
+
Constraints_1.validateField(this, 'environmentId', uuidConstraints),
|
|
112
|
+
Constraints_1.validateField(this, 'appId', uuidConstraints),
|
|
113
|
+
Constraints_1.validateField(this, 'extensionGroupId', extensionGroupIdConstraints),
|
|
114
|
+
]
|
|
115
|
+
.filter((v) => v);
|
|
116
|
+
if (constraintViolations.length > 0) {
|
|
117
|
+
throw Index_1.InvalidAriError.withConstraintViolations(this.toString(), constraintViolations);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
toAri() {
|
|
121
|
+
const resourceOwner = AppAris_1.AppFamilyAri.resourceOwner;
|
|
122
|
+
const { appId, environmentId, extensionGroupId, extensionKey, version } = this.toJSON();
|
|
139
123
|
function withVersion(segments) {
|
|
140
|
-
|
|
124
|
+
const path = segments.join('/');
|
|
141
125
|
if (!version) {
|
|
142
126
|
return path;
|
|
143
127
|
}
|
|
144
128
|
else {
|
|
145
|
-
return
|
|
129
|
+
return `${path}${versionPrefix}${version}`;
|
|
146
130
|
}
|
|
147
131
|
}
|
|
148
132
|
if (this.isExtensionAri()) {
|
|
149
133
|
return new Index_1.ResourceIdentifier({
|
|
150
|
-
resourceOwner
|
|
134
|
+
resourceOwner, resourceType: AppAris_1.AppFamilyAri.extensionResourceType,
|
|
151
135
|
resourceId: withVersion([appId, environmentId, extensionGroupId, extensionKey])
|
|
152
136
|
});
|
|
153
137
|
}
|
|
154
138
|
else if (this.isExtensionGroupAri()) {
|
|
155
139
|
return new Index_1.ResourceIdentifier({
|
|
156
|
-
resourceOwner
|
|
140
|
+
resourceOwner, resourceType: AppAris_1.AppFamilyAri.extensionGroupResourceType,
|
|
157
141
|
resourceId: withVersion([appId, environmentId, extensionGroupId])
|
|
158
142
|
});
|
|
159
143
|
}
|
|
160
144
|
else if (this.isAppEnvironmentAri()) {
|
|
161
145
|
return new Index_1.ResourceIdentifier({
|
|
162
|
-
resourceOwner
|
|
146
|
+
resourceOwner, resourceType: AppAris_1.AppFamilyAri.environmentResourceType,
|
|
163
147
|
resourceId: withVersion([appId, environmentId])
|
|
164
148
|
});
|
|
165
149
|
}
|
|
166
150
|
else {
|
|
167
151
|
return new Index_1.ResourceIdentifier({
|
|
168
|
-
resourceOwner
|
|
152
|
+
resourceOwner, resourceType: AppAris_1.AppFamilyAri.appResourceType,
|
|
169
153
|
resourceId: appId
|
|
170
154
|
});
|
|
171
155
|
}
|
|
172
|
-
}
|
|
173
|
-
|
|
156
|
+
}
|
|
157
|
+
toString() {
|
|
174
158
|
return this.toAri().toString();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
}());
|
|
159
|
+
}
|
|
160
|
+
}
|
|
178
161
|
exports.AppFamilyAriImpl = AppFamilyAriImpl;
|
|
179
162
|
function stripToUndefined(str) {
|
|
180
163
|
if (!str) {
|
|
181
164
|
return undefined;
|
|
182
165
|
}
|
|
183
|
-
|
|
166
|
+
const trimmed = str.trim();
|
|
184
167
|
if (trimmed.length === 0) {
|
|
185
168
|
return undefined;
|
|
186
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppAriImpls.js","sourceRoot":"","sources":["../lib/AppAriImpls.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"AppAriImpls.js","sourceRoot":"","sources":["../lib/AppAriImpls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
extendStatics(d, b);
|
|
11
|
-
function __() { this.constructor = d; }
|
|
12
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
-
};
|
|
14
|
-
})();
|
|
15
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
|
|
3
|
+
const AppAriImpls_1 = require("./AppAriImpls");
|
|
17
4
|
var AppFamilyAri;
|
|
18
5
|
(function (AppFamilyAri) {
|
|
19
6
|
AppFamilyAri.resourceOwner = 'ecosystem';
|
|
@@ -23,35 +10,26 @@ var AppFamilyAri;
|
|
|
23
10
|
AppFamilyAri.extensionResourceType = 'extension';
|
|
24
11
|
AppFamilyAri.appFamilyResourceTypes = [AppFamilyAri.appResourceType, AppFamilyAri.environmentResourceType, AppFamilyAri.extensionGroupResourceType, AppFamilyAri.extensionResourceType];
|
|
25
12
|
})(AppFamilyAri = exports.AppFamilyAri || (exports.AppFamilyAri = {}));
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
_this.cause = cause;
|
|
31
|
-
return _this;
|
|
13
|
+
class AppFamilyAriError extends Error {
|
|
14
|
+
constructor(message, cause) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.cause = cause;
|
|
32
17
|
}
|
|
33
|
-
|
|
34
|
-
}(Error));
|
|
18
|
+
}
|
|
35
19
|
exports.AppFamilyAriError = AppFamilyAriError;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_this.reason = reason;
|
|
41
|
-
return _this;
|
|
20
|
+
class NotAppFamilyAriError extends AppFamilyAriError {
|
|
21
|
+
constructor(ari, reason) {
|
|
22
|
+
super(`ari is not a valid App family ari: ${ari.toString()} as ${reason}`);
|
|
23
|
+
this.reason = reason;
|
|
42
24
|
}
|
|
43
|
-
|
|
44
|
-
}(AppFamilyAriError));
|
|
25
|
+
}
|
|
45
26
|
exports.NotAppFamilyAriError = NotAppFamilyAriError;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
_this.cause = cause;
|
|
51
|
-
return _this;
|
|
27
|
+
class NotExpectedAppFamilyAriTypeError extends AppFamilyAriError {
|
|
28
|
+
constructor(type, ari, cause) {
|
|
29
|
+
super(`App family ari (${ari.toString()}) is not of expected type: ${type}`, cause);
|
|
30
|
+
this.cause = cause;
|
|
52
31
|
}
|
|
53
|
-
|
|
54
|
-
}(AppFamilyAriError));
|
|
32
|
+
}
|
|
55
33
|
exports.NotExpectedAppFamilyAriTypeError = NotExpectedAppFamilyAriTypeError;
|
|
56
34
|
/**
|
|
57
35
|
* throws NotAppFamilyAriError if not a valid app family ari
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppAris.js","sourceRoot":"","sources":["../lib/AppAris.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppAris.js","sourceRoot":"","sources":["../lib/AppAris.ts"],"names":[],"mappings":";;AAAA,+CAAiD;AA2DjD,IAAiB,YAAY,CAS5B;AATD,WAAiB,YAAY;IACd,0BAAa,GAAW,WAAW,CAAC;IACpC,4BAAe,GAAW,KAAK,CAAC;IAChC,oCAAuB,GAAW,aAAa,CAAC;IAChD,uCAA0B,GAAW,iBAAiB,CAAC;IACvD,kCAAqB,GAAW,WAAW,CAAC;IAG5C,mCAAsB,GAA4B,CAAC,aAAA,eAAe,EAAE,aAAA,uBAAuB,EAAE,aAAA,0BAA0B,EAAE,aAAA,qBAAqB,CAAC,CAAC;AAC/J,CAAC,EATgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAS5B;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAW,KAAa;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,UAAK,GAAL,KAAK,CAAQ;IAEnD,CAAC;CACF;AAJD,8CAIC;AAED,MAAa,oBAAqB,SAAQ,iBAAiB;IACzD,YAAY,GAAQ,EAAW,MAAc;QAC3C,KAAK,CAAC,sCAAsC,GAAG,CAAC,QAAQ,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAD9C,WAAM,GAAN,MAAM,CAAQ;IAE7C,CAAC;CACF;AAJD,oDAIC;AAED,MAAa,gCAAiC,SAAQ,iBAAiB;IACrE,YAAY,IAAwC,EAAE,GAAiB,EAAW,KAAa;QAC7F,KAAK,CAAC,mBAAmB,GAAG,CAAC,QAAQ,EAAE,8BAA8B,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QADJ,UAAK,GAAL,KAAK,CAAQ;IAE/F,CAAC;CACF;AAJD,4EAIC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAQ;IAClC,OAAO,8BAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAA6B,IAAO;IAC9D,OAAO,IAAI,8BAAgB,CAAC,IAAI,CAAQ,CAAC;AAC3C,CAAC;AAFD,oCAEC"}
|
|
@@ -1,62 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const ts_is_present_1 = require("ts-is-present");
|
|
4
|
+
class LengthConstraint {
|
|
5
|
+
constructor(min, max) {
|
|
5
6
|
this.min = min;
|
|
6
7
|
this.max = max;
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
enumerable: true,
|
|
13
|
-
configurable: true
|
|
14
|
-
});
|
|
15
|
-
LengthConstraint.prototype.isValid = function (value) {
|
|
9
|
+
get description() {
|
|
10
|
+
return `length must be between ${this.min} and ${this.max}`;
|
|
11
|
+
}
|
|
12
|
+
isValid(value) {
|
|
16
13
|
return !value || (value.length >= this.min && value.length <= this.max);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
}());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
20
16
|
exports.LengthConstraint = LengthConstraint;
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
class RegexConstraint {
|
|
18
|
+
constructor(regex) {
|
|
23
19
|
this.regex = regex;
|
|
24
20
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true
|
|
31
|
-
});
|
|
32
|
-
RegexConstraint.prototype.isValid = function (value) {
|
|
21
|
+
get description() {
|
|
22
|
+
return `value must match regex ${this.regex.source}`;
|
|
23
|
+
}
|
|
24
|
+
isValid(value) {
|
|
33
25
|
return !value || (this.regex.test(value));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
}());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
37
28
|
exports.RegexConstraint = RegexConstraint;
|
|
38
|
-
|
|
39
|
-
|
|
29
|
+
class GeneralValidationError {
|
|
30
|
+
constructor(error) {
|
|
40
31
|
this.error = error;
|
|
41
32
|
}
|
|
42
|
-
|
|
33
|
+
toString() {
|
|
43
34
|
return this.error;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}());
|
|
35
|
+
}
|
|
36
|
+
}
|
|
47
37
|
exports.GeneralValidationError = GeneralValidationError;
|
|
48
|
-
|
|
49
|
-
|
|
38
|
+
class ConstraintViolation {
|
|
39
|
+
constructor(fieldName, value, constraints) {
|
|
50
40
|
this.fieldName = fieldName;
|
|
51
41
|
this.value = value;
|
|
52
42
|
this.constraints = constraints;
|
|
53
43
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
}());
|
|
44
|
+
toString() {
|
|
45
|
+
const constraintSummary = this.constraints.map((c) => ` - ${c.description}`).join('\n');
|
|
46
|
+
return `'${this.value}' is not a valid value for ${this.fieldName} as it violates the following constraints:\n${constraintSummary}`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
60
49
|
exports.ConstraintViolation = ConstraintViolation;
|
|
61
50
|
function lengthBetween(min, max) {
|
|
62
51
|
return new LengthConstraint(min, max);
|
|
@@ -67,10 +56,10 @@ function pattern(regex) {
|
|
|
67
56
|
}
|
|
68
57
|
exports.pattern = pattern;
|
|
69
58
|
function validateField(object, fieldName, constraints) {
|
|
70
|
-
|
|
71
|
-
|
|
59
|
+
const value = object[fieldName];
|
|
60
|
+
const violatedConstraints = constraints.map((c) => {
|
|
72
61
|
return c.isValid(value) ? undefined : c;
|
|
73
|
-
}).filter(
|
|
62
|
+
}).filter(ts_is_present_1.isDefined);
|
|
74
63
|
return violatedConstraints.length > 0 ? new ConstraintViolation(fieldName, value, violatedConstraints) : undefined;
|
|
75
64
|
}
|
|
76
65
|
exports.validateField = validateField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../lib/Constraints.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Constraints.js","sourceRoot":"","sources":["../lib/Constraints.ts"],"names":[],"mappings":";;AAAA,iDAA0C;AAQ1C,MAAa,gBAAgB;IAI3B,YAAY,GAAW,EAAE,GAAW;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,0BAA0B,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;CACF;AAhBD,4CAgBC;AAED,MAAa,eAAe;IAC1B,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAI,CAAC;IAEvC,IAAI,WAAW;QACb,OAAO,0BAA0B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAVD,0CAUC;AAMD,MAAa,sBAAsB;IACjC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAI,CAAC;IAC/C,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AALD,wDAKC;AAED,MAAa,mBAAmB;IAK9B,YAAY,SAAiB,EAAE,KAAQ,EAAE,WAA4B;QACnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,OAAO,IAAI,IAAI,CAAC,KAAK,8BAA8B,IAAI,CAAC,SAAS,+CAA+C,iBAAiB,EAAE,CAAC;IACtI,CAAC;CACF;AAfD,kDAeC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAFD,sCAEC;AAED,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAFD,0BAEC;AAED,SAAgB,aAAa,CAAuB,MAAS,EAAE,SAAY,EAAE,WAA+B;IAC1G,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAS,CAAC,CAAC;IAErB,OAAO,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAO,SAAmB,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrI,CAAC;AAPD,sCAOC"}
|