@webitel/ui-sdk 23.12.30 → 23.12.32

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "23.12.30",
3
+ "version": "23.12.32",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "build": "vue-cli-service build --target lib --name ui-sdk ./src/install.js",
@@ -248,6 +248,7 @@ export default {
248
248
  requiredArrayValue: 'Array should not be empty',
249
249
  minLength: 'Quantity of characters should not be less than',
250
250
  url: 'Should look like url',
251
+ websocketValidator: 'Should look like WebSocket url',
251
252
  regExpValidator: 'This regular expression is not valid',
252
253
  domainValidator: 'Incorrect domain',
253
254
  decimalValidator: 'Decimal precision should be no more than { count } places',
@@ -246,6 +246,7 @@ export default {
246
246
  requiredArrayValue: 'Поле не должно быть пустым',
247
247
  minLength: 'Количество символов не должно быть меньше, чем',
248
248
  url: 'Необходимо ввести корректный url-адрес',
249
+ websocketValidator: 'Необходимо ввести корректный WebSocket url-адрес',
249
250
  regExpValidator: 'Не правильное регулярное выражение',
250
251
  domainValidator: 'Неправильный домен',
251
252
  decimalValidator: 'Количество десятичных знаков не должно быть больше { count }',
@@ -246,6 +246,7 @@ export default {
246
246
  requiredArrayValue: 'Поле не повинно бути пустим',
247
247
  minLength: 'Кількість символів повинна бути не меншою, ніж',
248
248
  url: 'Необхідно ввести правильну url-адресу',
249
+ websocketValidator: 'Необхідно ввести правильну WebSocket url-адресу',
249
250
  regExpValidator: 'Не правильний регулярний вираз',
250
251
  domainValidator: 'Невірний домен',
251
252
  decimalValidator: 'Кількість десяткових знаків не повинна бути більше { count }',
@@ -24,6 +24,7 @@ export function useValidation({ v, customValidators }) {
24
24
  else if (v.value.sameAs?.$invalid) validationText = `${t('validation.sameAs')}`;
25
25
  else if (v.value.domainValidator?.$invalid) validationText = `${t('validation.domainValidator')}`;
26
26
  else if (v.value.decimalValidator?.$invalid) validationText = `${t('validation.decimalValidator')} ${v.value.decimalValidator.$params.count}`;
27
+ else if (v.value.websocketValidator?.$invalid) validationText = `${t('validation.websocketValidator')}`;
27
28
  else if (v.value.integer?.$invalid) validationText = `${t('validation.integer')}`;
28
29
  }
29
30
  // eslint-disable-next-line no-restricted-syntax
@@ -34,6 +34,7 @@ export default {
34
34
  else if (this.v.sameAs?.$invalid) validationText = `${this.$t('validation.sameAs')}`;
35
35
  else if (this.v.domainValidator?.$invalid) validationText = `${this.$t('validation.domainValidator')}`;
36
36
  else if (this.v.decimalValidator?.$invalid) validationText = `${this.$t('validation.decimalValidator')} ${this.v.decimalValidator.$params.count}`;
37
+ else if (this.v.websocketValidator?.$invalid) validationText = `${this.$t('validation.websocketValidator')}`;
37
38
  else if (this.v.integer?.$invalid) validationText = `${this.$t('validation.integer')}`;
38
39
  }
39
40
  // eslint-disable-next-line no-restricted-syntax
@@ -0,0 +1,7 @@
1
+ Validator for WebSocket URL string
2
+ ```javascript
3
+ import websocketValidator from '@webitel/ui-sdk/src/validators/websocketValidator/websocketValidator';
4
+
5
+ websocketValidator('wss://example.com') // true
6
+ websocketValidator('krokoziabra') // false
7
+ ```
@@ -0,0 +1,28 @@
1
+ import websocketValidator from '../websocketValidator';
2
+
3
+ describe('websocketValidator', () => {
4
+ it('truthy case 1: localhost ws', () => {
5
+ expect(websocketValidator('ws://localhost:8080')).toBe(true);
6
+ });
7
+ it('truthy case 2: localhost wss', () => {
8
+ expect(websocketValidator('wss://localhost:8080')).toBe(true);
9
+ });
10
+ it('truthy case 3: ip ws', () => {
11
+ expect(websocketValidator('ws://10.10.10.10:8080')).toBe(true);
12
+ });
13
+ it('truthy case 4: dns name', () => {
14
+ expect(websocketValidator('wss://example.com')).toBe(true);
15
+ });
16
+ it('truthy case 5: dns name', () => {
17
+ expect(websocketValidator('wss://example')).toBe(true);
18
+ });
19
+ it('truthy case 6: dns name', () => {
20
+ expect(websocketValidator('wss://example.com/ws')).toBe(true);
21
+ });
22
+ it('truthy case 7: dns name', () => {
23
+ expect(websocketValidator('wss://socket.socket.com/v3/channel_123?api_key=123')).toBe(true);
24
+ });
25
+ it('falsy case 1: empty string', () => {
26
+ expect(websocketValidator('')).toBe(false);
27
+ });
28
+ });
@@ -0,0 +1,9 @@
1
+ // That's strange but i haven't found any npm package with websocket validator
2
+ export default (value) => {
3
+ try {
4
+ const url = new URL(value);
5
+ return (/^(wss?)/i).test(url.protocol);
6
+ } catch (e) {
7
+ return false;
8
+ }
9
+ };