@zajno/common 1.5.3 → 1.5.6
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/coverage/clover.xml +93 -86
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/index.html +26 -26
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
- package/coverage/lcov-report/src/cache.ts.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/disposer.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +14 -14
- package/coverage/lcov-report/src/fields/update.ts.html +40 -19
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +19 -19
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +27 -12
- package/coverage/lcov-report/src/tempoCache.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +3 -3
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +1 -1
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +227 -206
- package/lib/fields/update.d.ts +5 -4
- package/lib/fields/update.d.ts.map +1 -1
- package/lib/fields/update.js +13 -7
- package/lib/fields/update.js.map +1 -1
- package/lib/observingCache.d.ts +1 -1
- package/lib/observingCache.d.ts.map +1 -1
- package/lib/observingCache.js +8 -2
- package/lib/observingCache.js.map +1 -1
- package/lib/validation/validators.js +1 -1
- package/lib/validation/validators.js.map +1 -1
- package/package.json +1 -1
- package/src/fields/update.ts +18 -11
- package/src/observingCache.ts +7 -2
- package/src/validation/__tests__/validator.test.ts +12 -0
- package/src/validation/validators.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observingCache.js","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"observingCache.js","sourceRoot":"","sources":["../src/observingCache.ts"],"names":[],"mappings":";;;;AAAA,+BAA8B;AAC9B,yCAAwC;AACxC,mCAAuD;AACvD,iDAA8C;AAE9C,8DAA8B;AAW9B,MAAa,cAAkB,SAAQ,qBAAU;IAU7C,YAAqB,OAAmB;QACpC,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAY;QALhC,qBAAgB,GAAoB,IAAI,CAAC;QAChC,8BAAyB,GAAoC,EAAG,CAAC;QAE1E,aAAQ,GAAsB,IAAI,CAAC;QAgE3C,aAAQ,GAAG,CAAC,GAAW,EAAE,IAAO,EAAE,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC;QAEM,WAAM,GAAG,KAAK,EAAE,GAAW,EAAc,EAAE;YAC/C,IAAI,SAAS,GAAG,IAAI,CAAC;YAErB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,EAAE;gBAC9B,OAAO,CAAC,OAAO,CACX,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBACrB,IAAI,SAAS,EAAE;wBACX,OAAO,CAAC,IAAI,CAAC,CAAC;wBACd,SAAS,GAAG,KAAK,CAAC;qBACrB;yBAAM;wBACH,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;qBAC/B;gBACL,CAAC,CAAC,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACX,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC1F,IAAI,CAAC,QAAQ,EAAE;wBACX,6DAA6D;wBAC7D,KAAK,EAAE,CAAC;qBACX;yBAAM;wBACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;wBAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;qBACvD;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE;YACjC,OAAO,OAAO,CAAC,GAAG,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACzD,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,gBAAW,GAAG,aAAM,CAAC,CAAC,GAAW,EAAE,IAAO,EAAE,EAAE;YAClD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnD,IAAI,OAAO,IAAI,IAAI,EAAE;oBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC5C,iDAAiD;oBACjD,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC7C,OAAO;iBACV;aACJ;YAED,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAhHC,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,IAAW,YAAY,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,IAAW,cAAc,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,oBAAoB,CAAC,OAAwB;QACzC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC3B;aAAM;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACzD,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SAC1E;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,OAA0B;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,gBAAkC,EAAE,uBAAoD;QACrG,IAAI,gBAAgB,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;SAC1D;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1F,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAClD,iBAAiB;YACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBACzB,yCAAyC;gBACzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC3D,IAAI,uBAAuB,EAAE;oBACzB,uBAAuB,CAAC,OAAO,CAAC,CAAC;iBACpC;gBACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;aACxG;SACJ;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;CAwDJ;AA9HD,wCA8HC;AAED,SAAS,iBAAiB,CAAC,CAAkB;IACzC,IAAI,CAAC,CAAC,EAAE;QACJ,OAAO,SAAS,CAAC;KACpB;IAED,OAAO,OAAO,CAAC,KAAK,QAAQ;QACxB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO;YACZ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI;YACf,CAAC,CAAC,IAAI,CACT,CAAC;AACV,CAAC;AAED,SAAS,YAAY,CAAI,GAAG,MAAyB;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -22,7 +22,7 @@ exports.ValidatorsRegExps = {
|
|
|
22
22
|
expiryDateCard: /^\d+$/,
|
|
23
23
|
cvv: /^\d+$/,
|
|
24
24
|
// eslint-disable-next-line no-useless-escape
|
|
25
|
-
website: /^(https?:\/\/)?([a-z0-9]+([a-z0-9
|
|
25
|
+
website: /^(https?:\/\/)?([a-z0-9]+((((-?[a-z0-9]{2,})+)?)\.))+[a-z]{2,}(:[0-9]{1,})?(\/.*)?$/i,
|
|
26
26
|
linkedin: /^(https?:\/\/)?([a-z]+\d*[a-z]*\.)?linkedin\.com\/.*$/i,
|
|
27
27
|
};
|
|
28
28
|
exports.Validators = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":";;;;AAAA,sEAAsC;AACtC,yDAAsD;AAEzC,QAAA,iBAAiB,GAAG;IAC7B,wCAAwC;IACxC,6CAA6C;IAC7C,IAAI,EAAE,gCAAgC;IACtC,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,kEAAkE;IAEzE,+CAA+C;IAC/C,mCAAmC;IACnC,sDAAsD;IACtD,mDAAmD;IACnD,QAAQ,EAAE,kDAAkD;IAE5D,WAAW,EAAE,aAAa;IAE1B,qCAAqC;IACrC,SAAS,EAAE,OAAO;IAClB,gBAAgB,EAAE,OAAO;IACzB,cAAc,EAAE,OAAO;IACvB,GAAG,EAAE,OAAO;IACZ,6CAA6C;IAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/fields/update.ts
CHANGED
|
@@ -41,6 +41,7 @@ const DefaultUpdater: Fields.Updater<any> = (v1, v2) => Object.assign(v1, v2);
|
|
|
41
41
|
|
|
42
42
|
export type UpdateArrayOptions<T> = {
|
|
43
43
|
additive?: boolean,
|
|
44
|
+
unshift?: boolean,
|
|
44
45
|
clone?: boolean,
|
|
45
46
|
comparator?: Comparator<T>,
|
|
46
47
|
updater?: Fields.Updater<T>,
|
|
@@ -49,14 +50,14 @@ export type UpdateArrayOptions<T> = {
|
|
|
49
50
|
};
|
|
50
51
|
|
|
51
52
|
export type UpdateArrayHooks<T> = {
|
|
52
|
-
onAdded?: (item: T) => void,
|
|
53
|
-
onDeleted?: (item: T) => void,
|
|
54
|
-
onUpdated?: (previous: T, next: T) => void,
|
|
53
|
+
onAdded?: (item: T, index?: number) => void,
|
|
54
|
+
onDeleted?: (item: T, index?: number) => void,
|
|
55
|
+
onUpdated?: (previous: T, next: T, index?: number) => void,
|
|
55
56
|
};
|
|
56
57
|
|
|
57
58
|
export function updateArray<T>(
|
|
58
59
|
target: T[] | null,
|
|
59
|
-
source: T[],
|
|
60
|
+
source: T[] | null,
|
|
60
61
|
options?: UpdateArrayOptions<T>,
|
|
61
62
|
): { changed: number, result: T[] } {
|
|
62
63
|
if (!source) {
|
|
@@ -80,7 +81,7 @@ export function updateArray<T>(
|
|
|
80
81
|
if (source.find(item => comparator(item, result[i])) == null) {
|
|
81
82
|
// DELETE
|
|
82
83
|
const removed = result.splice(i, 1);
|
|
83
|
-
safeCall(onDeleted, removed[0]);
|
|
84
|
+
safeCall(onDeleted, removed[0], i);
|
|
84
85
|
|
|
85
86
|
++changed;
|
|
86
87
|
--i;
|
|
@@ -88,19 +89,25 @@ export function updateArray<T>(
|
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
const unshift = options?.unshift || false;
|
|
93
|
+
|
|
91
94
|
// add all new elements and update existing
|
|
92
|
-
source.forEach(
|
|
93
|
-
const existingIndex = result.findIndex(
|
|
95
|
+
source.forEach(item => {
|
|
96
|
+
const existingIndex = result.findIndex(i => comparator(item, i));
|
|
94
97
|
const existingItem = result[existingIndex];
|
|
95
98
|
if (existingIndex < 0) {
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
if (unshift) {
|
|
100
|
+
result.unshift(item);
|
|
101
|
+
} else {
|
|
102
|
+
result.push(item);
|
|
103
|
+
}
|
|
104
|
+
safeCall(onAdded, item, unshift ? 0 : result.length - 1);
|
|
98
105
|
++changed;
|
|
99
106
|
} else if (typeof existingItem === 'object') {
|
|
100
107
|
const before = onUpdate != null ? { ...existingItem } : undefined;
|
|
101
|
-
result[existingIndex] = updater(existingItem,
|
|
108
|
+
result[existingIndex] = updater(existingItem, item);
|
|
102
109
|
if (onUpdate != null) {
|
|
103
|
-
onUpdate(before!, result[existingIndex]);
|
|
110
|
+
onUpdate(before!, result[existingIndex], existingIndex);
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
113
|
});
|
package/src/observingCache.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Disposable } from './disposer';
|
|
|
3
3
|
import { PromiseCache, DeferredGetter } from './cache';
|
|
4
4
|
import { ObserversMap } from './observersMap';
|
|
5
5
|
import { Fields } from './fields';
|
|
6
|
+
import logger from './logger';
|
|
6
7
|
|
|
7
8
|
export type Unsub = () => void;
|
|
8
9
|
export type Fetcher<T> = (key: string, cb: (val: T) => Promise<void> | void) => Unsub | Promise<Unsub>;
|
|
@@ -62,7 +63,7 @@ export class ObservingCache<T> extends Disposable implements IObservingCache<T>
|
|
|
62
63
|
return this._cache.getCurrent(key, false);
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
get(key: string, overrideStrategy?: ObserveStrategy): DeferredGetter<T> {
|
|
66
|
+
get(key: string, overrideStrategy?: ObserveStrategy, observingStartedPromise?: (p: Promise<void>) => void): DeferredGetter<T> {
|
|
66
67
|
if (overrideStrategy !== undefined) {
|
|
67
68
|
this._observeStrategyOverrides[key] = overrideStrategy;
|
|
68
69
|
}
|
|
@@ -74,7 +75,11 @@ export class ObservingCache<T> extends Disposable implements IObservingCache<T>
|
|
|
74
75
|
if (this._cache.hasKey(key)) {
|
|
75
76
|
// the request has been initiated already
|
|
76
77
|
const timeout = getObserveTimeout(strategy);
|
|
77
|
-
this._observers.enable(key, true, timeout);
|
|
78
|
+
const promise = this._observers.enable(key, true, timeout);
|
|
79
|
+
if (observingStartedPromise) {
|
|
80
|
+
observingStartedPromise(promise);
|
|
81
|
+
}
|
|
82
|
+
promise.catch(err => logger.error('[ObservingCache] Error on starting observe', key, strategy, err));
|
|
78
83
|
}
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -92,4 +92,16 @@ describe('validation websites', () => {
|
|
|
92
92
|
it('valid website with directory path', () => {
|
|
93
93
|
expect(validation.Validators.website('http://www.regexbuddy.com/index.html?source=library')).toEqual(ValidationErrors.None);
|
|
94
94
|
});
|
|
95
|
+
|
|
96
|
+
it('valid website with many dashes', () => {
|
|
97
|
+
expect(validation.Validators.website('https://www.test-test-test-test.com')).toEqual(ValidationErrors.None);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('valid website with short domain', () => {
|
|
101
|
+
expect(validation.Validators.website('https://t.me')).toEqual(ValidationErrors.None);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('test url with few dashes in a row', () => {
|
|
105
|
+
expect(validation.Validators.website('https://dashedurl-------.com')).toEqual(ValidationErrors.Website);
|
|
106
|
+
});
|
|
95
107
|
});
|
|
@@ -22,7 +22,7 @@ export const ValidatorsRegExps = {
|
|
|
22
22
|
expiryDateCard: /^\d+$/,
|
|
23
23
|
cvv: /^\d+$/,
|
|
24
24
|
// eslint-disable-next-line no-useless-escape
|
|
25
|
-
website: /^(https?:\/\/)?([a-z0-9]+([a-z0-9
|
|
25
|
+
website: /^(https?:\/\/)?([a-z0-9]+((((-?[a-z0-9]{2,})+)?)\.))+[a-z]{2,}(:[0-9]{1,})?(\/.*)?$/i,
|
|
26
26
|
linkedin: /^(https?:\/\/)?([a-z]+\d*[a-z]*\.)?linkedin\.com\/.*$/i,
|
|
27
27
|
};
|
|
28
28
|
|