@newskit-render/validation 0.0.0-014af081

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.
Files changed (86) hide show
  1. package/README.md +62 -0
  2. package/dist/cjs/__tests__/mocks.d.ts +132 -0
  3. package/dist/cjs/__tests__/mocks.js +357 -0
  4. package/dist/cjs/__tests__/mocks.js.map +1 -0
  5. package/dist/cjs/index.d.ts +3 -0
  6. package/dist/cjs/index.js +20 -0
  7. package/dist/cjs/index.js.map +1 -0
  8. package/dist/cjs/types.d.ts +61 -0
  9. package/dist/cjs/types.js +48 -0
  10. package/dist/cjs/types.js.map +1 -0
  11. package/dist/cjs/utils.d.ts +208 -0
  12. package/dist/cjs/utils.js +142 -0
  13. package/dist/cjs/utils.js.map +1 -0
  14. package/dist/cjs/validation.d.ts +5 -0
  15. package/dist/cjs/validation.js +25 -0
  16. package/dist/cjs/validation.js.map +1 -0
  17. package/dist/cjs/validations/accountDeletion.d.ts +8 -0
  18. package/dist/cjs/validations/accountDeletion.js +31 -0
  19. package/dist/cjs/validations/accountDeletion.js.map +1 -0
  20. package/dist/cjs/validations/accountInfo.d.ts +87 -0
  21. package/dist/cjs/validations/accountInfo.js +99 -0
  22. package/dist/cjs/validations/accountInfo.js.map +1 -0
  23. package/dist/cjs/validations/address.d.ts +49 -0
  24. package/dist/cjs/validations/address.js +110 -0
  25. package/dist/cjs/validations/address.js.map +1 -0
  26. package/dist/cjs/validations/cancellation.d.ts +15 -0
  27. package/dist/cjs/validations/cancellation.js +51 -0
  28. package/dist/cjs/validations/cancellation.js.map +1 -0
  29. package/dist/cjs/validations/holidayStop.d.ts +17 -0
  30. package/dist/cjs/validations/holidayStop.js +41 -0
  31. package/dist/cjs/validations/holidayStop.js.map +1 -0
  32. package/dist/cjs/validations/index.d.ts +7 -0
  33. package/dist/cjs/validations/index.js +24 -0
  34. package/dist/cjs/validations/index.js.map +1 -0
  35. package/dist/cjs/validations/payment.d.ts +20 -0
  36. package/dist/cjs/validations/payment.js +40 -0
  37. package/dist/cjs/validations/payment.js.map +1 -0
  38. package/dist/cjs/validations/phoneNumber.d.ts +21 -0
  39. package/dist/cjs/validations/phoneNumber.js +56 -0
  40. package/dist/cjs/validations/phoneNumber.js.map +1 -0
  41. package/dist/cjs/yupPhone.d.ts +13 -0
  42. package/dist/cjs/yupPhone.js +78 -0
  43. package/dist/cjs/yupPhone.js.map +1 -0
  44. package/dist/esm/__tests__/mocks.d.ts +132 -0
  45. package/dist/esm/__tests__/mocks.js +354 -0
  46. package/dist/esm/__tests__/mocks.js.map +1 -0
  47. package/dist/esm/index.d.ts +3 -0
  48. package/dist/esm/index.js +4 -0
  49. package/dist/esm/index.js.map +1 -0
  50. package/dist/esm/types.d.ts +61 -0
  51. package/dist/esm/types.js +45 -0
  52. package/dist/esm/types.js.map +1 -0
  53. package/dist/esm/utils.d.ts +208 -0
  54. package/dist/esm/utils.js +114 -0
  55. package/dist/esm/utils.js.map +1 -0
  56. package/dist/esm/validation.d.ts +5 -0
  57. package/dist/esm/validation.js +21 -0
  58. package/dist/esm/validation.js.map +1 -0
  59. package/dist/esm/validations/accountDeletion.d.ts +8 -0
  60. package/dist/esm/validations/accountDeletion.js +5 -0
  61. package/dist/esm/validations/accountDeletion.js.map +1 -0
  62. package/dist/esm/validations/accountInfo.d.ts +87 -0
  63. package/dist/esm/validations/accountInfo.js +69 -0
  64. package/dist/esm/validations/accountInfo.js.map +1 -0
  65. package/dist/esm/validations/address.d.ts +49 -0
  66. package/dist/esm/validations/address.js +82 -0
  67. package/dist/esm/validations/address.js.map +1 -0
  68. package/dist/esm/validations/cancellation.d.ts +15 -0
  69. package/dist/esm/validations/cancellation.js +24 -0
  70. package/dist/esm/validations/cancellation.js.map +1 -0
  71. package/dist/esm/validations/holidayStop.d.ts +17 -0
  72. package/dist/esm/validations/holidayStop.js +15 -0
  73. package/dist/esm/validations/holidayStop.js.map +1 -0
  74. package/dist/esm/validations/index.d.ts +7 -0
  75. package/dist/esm/validations/index.js +8 -0
  76. package/dist/esm/validations/index.js.map +1 -0
  77. package/dist/esm/validations/payment.d.ts +20 -0
  78. package/dist/esm/validations/payment.js +14 -0
  79. package/dist/esm/validations/payment.js.map +1 -0
  80. package/dist/esm/validations/phoneNumber.d.ts +21 -0
  81. package/dist/esm/validations/phoneNumber.js +28 -0
  82. package/dist/esm/validations/phoneNumber.js.map +1 -0
  83. package/dist/esm/yupPhone.d.ts +13 -0
  84. package/dist/esm/yupPhone.js +50 -0
  85. package/dist/esm/yupPhone.js.map +1 -0
  86. package/package.json +76 -0
@@ -0,0 +1,49 @@
1
+ import * as yup from 'yup';
2
+ export declare const postcodeValidation: ({ getFieldValidation, requiredMessage, wrongFormatMessage, }: {
3
+ getFieldValidation: any;
4
+ requiredMessage: any;
5
+ wrongFormatMessage: any;
6
+ }) => import("yup/lib/object").OptionalObjectSchema<{
7
+ postcode: any;
8
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
9
+ postcode: any;
10
+ }>>;
11
+ export declare const addressValidation: ({ getFieldValidation, requiredMessage, wrongFormatMessage, }: {
12
+ getFieldValidation: any;
13
+ requiredMessage: any;
14
+ wrongFormatMessage: any;
15
+ }) => yup.ObjectSchema<import("yup/lib/object").Assign<{
16
+ postcode: any;
17
+ }, {
18
+ country: any;
19
+ line1: any;
20
+ line2: any;
21
+ line3: any;
22
+ city: any;
23
+ county: any;
24
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<{
25
+ postcode: any;
26
+ }, {
27
+ country: any;
28
+ line1: any;
29
+ line2: any;
30
+ line3: any;
31
+ city: any;
32
+ county: any;
33
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<{
34
+ postcode: any;
35
+ }, {
36
+ country: any;
37
+ line1: any;
38
+ line2: any;
39
+ line3: any;
40
+ city: any;
41
+ county: any;
42
+ }>>>;
43
+ export declare const deliveryInstructions: import("yup/lib/object").OptionalObjectSchema<{
44
+ deliveryInformation: import("yup/lib/string").RequiredStringSchema<string | null | undefined, import("yup/lib/types").AnyObject>;
45
+ other: yup.default<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
46
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
47
+ deliveryInformation: import("yup/lib/string").RequiredStringSchema<string | null | undefined, import("yup/lib/types").AnyObject>;
48
+ other: yup.default<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
49
+ }>>;
@@ -0,0 +1,82 @@
1
+ import { ValidationFieldNames } from '../types';
2
+ import * as yup from 'yup';
3
+ // Reference: https://stackoverflow.com/a/70273329
4
+ var addressRegex = /^['/&#.\d\p{Letter}\p{Mark}\s,-]+$/u;
5
+ export var postcodeValidation = function (_a) {
6
+ var getFieldValidation = _a.getFieldValidation, requiredMessage = _a.requiredMessage, wrongFormatMessage = _a.wrongFormatMessage;
7
+ return yup.object({
8
+ postcode: getFieldValidation({
9
+ validationFieldName: ValidationFieldNames.postcode,
10
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'Postcode'),
11
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'postcode'),
12
+ addressRegex: addressRegex,
13
+ }),
14
+ });
15
+ };
16
+ export var addressValidation = function (_a) {
17
+ var getFieldValidation = _a.getFieldValidation, requiredMessage = _a.requiredMessage, wrongFormatMessage = _a.wrongFormatMessage;
18
+ return postcodeValidation({
19
+ getFieldValidation: getFieldValidation,
20
+ requiredMessage: requiredMessage,
21
+ wrongFormatMessage: wrongFormatMessage,
22
+ }).shape({
23
+ country: getFieldValidation({
24
+ validationFieldName: ValidationFieldNames.country,
25
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'Country'),
26
+ formatMessage: 'This is not a valid Country code',
27
+ regex: /^[A-Z]{2,3}$/,
28
+ }),
29
+ line1: getFieldValidation({
30
+ validationFieldName: ValidationFieldNames.line1,
31
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'first line of your address'),
32
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'address'),
33
+ regex: addressRegex,
34
+ }),
35
+ line2: getFieldValidation({
36
+ validationFieldName: ValidationFieldNames.line2,
37
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'second line of your address'),
38
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'address'),
39
+ regex: addressRegex,
40
+ isPhone: false,
41
+ excludeEmptyString: true,
42
+ }),
43
+ line3: getFieldValidation({
44
+ validationFieldName: ValidationFieldNames.line2,
45
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'third line of your address'),
46
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'address'),
47
+ regex: addressRegex,
48
+ isPhone: false,
49
+ excludeEmptyString: true,
50
+ }),
51
+ city: getFieldValidation({
52
+ validationFieldName: ValidationFieldNames.city,
53
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'Town/City'),
54
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'town/city'),
55
+ regex: addressRegex,
56
+ }),
57
+ county: getFieldValidation({
58
+ validationFieldName: ValidationFieldNames.county,
59
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'County'),
60
+ formatMessage: wrongFormatMessage === null || wrongFormatMessage === void 0 ? void 0 : wrongFormatMessage.replace('${field}', 'county'),
61
+ regex: addressRegex,
62
+ isPhone: false,
63
+ excludeEmptyString: true,
64
+ }),
65
+ });
66
+ };
67
+ export var deliveryInstructions = yup.object({
68
+ deliveryInformation: yup
69
+ .string()
70
+ .required('Please, select one option')
71
+ .nullable()
72
+ .max(91, 'You cannot exceed 70 characters'),
73
+ other: yup
74
+ .string()
75
+ .when('deliveryInformation', {
76
+ is: function (val) { return val === 'Other (Please state)'; },
77
+ then: yup.string().required('Please enter your delivery instructions.'),
78
+ otherwise: yup.string().notRequired(),
79
+ })
80
+ .max(70, 'You cannot exceed 70 characters'),
81
+ });
82
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/validations/address.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import * as yup from 'yup';
2
+ export declare const cancellationReason: import("yup/lib/object").OptionalObjectSchema<{
3
+ radioInput: import("yup/lib/string").RequiredStringSchema<string | null | undefined, import("yup/lib/types").AnyObject>;
4
+ other: yup.default<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
5
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
6
+ radioInput: import("yup/lib/string").RequiredStringSchema<string | null | undefined, import("yup/lib/types").AnyObject>;
7
+ other: yup.default<string | undefined, import("yup/lib/types").AnyObject, string | undefined>;
8
+ }>>;
9
+ export declare const confirmCancellation: ({ getFieldValidation }: {
10
+ getFieldValidation: any;
11
+ }) => import("yup/lib/object").OptionalObjectSchema<{
12
+ cancellationReason: any;
13
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
14
+ cancellationReason: any;
15
+ }>>;
@@ -0,0 +1,24 @@
1
+ import { ValidationFieldNames } from '../types';
2
+ import * as yup from 'yup';
3
+ var extraInfoRegex = /^[&!?#'.:0-9a-zA-Z\s]+$/;
4
+ var extraInfoMessage = "Sorry there are some charaters we don't allow in this field";
5
+ export var cancellationReason = yup.object({
6
+ radioInput: yup.string().required('Please, select one option').nullable(),
7
+ other: yup.string().when('radioInput', {
8
+ is: function (val) { return val === 'Other'; },
9
+ then: yup.string().required('This field cannot be empty.'),
10
+ otherwise: yup.string().notRequired(),
11
+ }),
12
+ });
13
+ export var confirmCancellation = function (_a) {
14
+ var getFieldValidation = _a.getFieldValidation;
15
+ return yup.object({
16
+ cancellationReason: getFieldValidation({
17
+ validationFieldName: ValidationFieldNames.cancellationReason,
18
+ requiredMessage: 'This field cannot be empty.',
19
+ formatMesage: extraInfoMessage,
20
+ extraInfoRegex: extraInfoRegex,
21
+ }),
22
+ });
23
+ };
24
+ //# sourceMappingURL=cancellation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../../src/validations/cancellation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,IAAM,cAAc,GAAG,yBAAyB,CAAA;AAChD,IAAM,gBAAgB,GACpB,6DAA6D,CAAA;AAE/D,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IACzE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;QACrC,EAAE,EAAE,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,OAAO,EAAf,CAAe;QAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC1D,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,EAAsB;QAApB,kBAAkB,wBAAA;IACtD,OAAA,GAAG,CAAC,MAAM,CAAC;QACT,kBAAkB,EAAE,kBAAkB,CAAC;YACrC,mBAAmB,EAAE,oBAAoB,CAAC,kBAAkB;YAC5D,eAAe,EAAE,6BAA6B;YAC9C,YAAY,EAAE,gBAAgB;YAC9B,cAAc,EAAE,cAAc;SAC/B,CAAC;KACH,CAAC;AAPF,CAOE,CAAA"}
@@ -0,0 +1,17 @@
1
+ export declare const holidayStopValidation: import("yup/lib/object").OptionalObjectSchema<{
2
+ startDate: import("yup/lib/date").RequiredDateSchema<Date | undefined, import("yup/lib/types").AnyObject>;
3
+ endDate: import("yup/lib/date").RequiredDateSchema<Date | undefined, import("yup/lib/types").AnyObject>;
4
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
5
+ startDate: import("yup/lib/date").RequiredDateSchema<Date | undefined, import("yup/lib/types").AnyObject>;
6
+ endDate: import("yup/lib/date").RequiredDateSchema<Date | undefined, import("yup/lib/types").AnyObject>;
7
+ }>>;
8
+ export declare const vouchersValidation: import("yup/lib/object").OptionalObjectSchema<{
9
+ code: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
10
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
11
+ code: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
12
+ }>>;
13
+ export declare const deleteUserHolidayStopValidation: import("yup/lib/object").OptionalObjectSchema<{
14
+ id: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
15
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
16
+ id: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
17
+ }>>;
@@ -0,0 +1,15 @@
1
+ import * as yup from 'yup';
2
+ export var holidayStopValidation = yup.object({
3
+ startDate: yup.date().required('StartDate is required'),
4
+ endDate: yup
5
+ .date()
6
+ .required('EndDate is required')
7
+ .min(yup.ref('startDate'), "End date can't be before start date"),
8
+ });
9
+ export var vouchersValidation = yup.object({
10
+ code: yup.string().required('need a subscription id'),
11
+ });
12
+ export var deleteUserHolidayStopValidation = yup.object({
13
+ id: yup.string().required('Holiday stop Id is required'),
14
+ });
15
+ //# sourceMappingURL=holidayStop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holidayStop.js","sourceRoot":"","sources":["../../../src/validations/holidayStop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,MAAM,CAAC,IAAM,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvD,OAAO,EAAE,GAAG;SACT,IAAI,EAAE;SACN,QAAQ,CAAC,qBAAqB,CAAC;SAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,qCAAqC,CAAC;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACtD,CAAC,CAAA;AAEF,MAAM,CAAC,IAAM,+BAA+B,GAAG,GAAG,CAAC,MAAM,CAAC;IACxD,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACzD,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ export * from './holidayStop';
2
+ export * from './accountInfo';
3
+ export * from './address';
4
+ export * from './cancellation';
5
+ export * from './payment';
6
+ export * from './phoneNumber';
7
+ export * from './accountDeletion';
@@ -0,0 +1,8 @@
1
+ export * from './holidayStop';
2
+ export * from './accountInfo';
3
+ export * from './address';
4
+ export * from './cancellation';
5
+ export * from './payment';
6
+ export * from './phoneNumber';
7
+ export * from './accountDeletion';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validations/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,20 @@
1
+ export declare const paymentMethodIdValidation: import("yup/lib/object").OptionalObjectSchema<{
2
+ paymentMethodId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
3
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
4
+ paymentMethodId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
5
+ }>>;
6
+ export declare const zuoraPaymentMethodValidation: import("yup/lib/object").OptionalObjectSchema<{
7
+ refId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
8
+ responseSignature: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
9
+ token: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
10
+ id: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
11
+ timestamp: import("yup/lib/number").RequiredNumberSchema<number | undefined, import("yup/lib/types").AnyObject>;
12
+ tenantId: import("yup/lib/number").RequiredNumberSchema<number | undefined, import("yup/lib/types").AnyObject>;
13
+ }, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<{
14
+ refId: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
15
+ responseSignature: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
16
+ token: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
17
+ id: import("yup/lib/string").RequiredStringSchema<string | undefined, import("yup/lib/types").AnyObject>;
18
+ timestamp: import("yup/lib/number").RequiredNumberSchema<number | undefined, import("yup/lib/types").AnyObject>;
19
+ tenantId: import("yup/lib/number").RequiredNumberSchema<number | undefined, import("yup/lib/types").AnyObject>;
20
+ }>>;
@@ -0,0 +1,14 @@
1
+ import * as yup from 'yup';
2
+ //Payment cannot be not required
3
+ export var paymentMethodIdValidation = yup.object({
4
+ paymentMethodId: yup.string().required(),
5
+ });
6
+ export var zuoraPaymentMethodValidation = yup.object({
7
+ refId: yup.string().required(),
8
+ responseSignature: yup.string().required(),
9
+ token: yup.string().required(),
10
+ id: yup.string().required(),
11
+ timestamp: yup.number().required(),
12
+ tenantId: yup.number().required(),
13
+ });
14
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../src/validations/payment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,gCAAgC;AAChC,MAAM,CAAC,IAAM,yBAAyB,GAAG,GAAG,CAAC,MAAM,CAAC;IAClD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAA;AAEF,MAAM,CAAC,IAAM,4BAA4B,GAAG,GAAG,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import * as yup from 'yup';
2
+ export declare const phoneNumberValidation: ({ getFieldValidation, requiredMessage, }: {
3
+ getFieldValidation: any;
4
+ requiredMessage: any;
5
+ }) => yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
6
+ phoneNumber: any;
7
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
8
+ phoneNumber: any;
9
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
10
+ phoneNumber: any;
11
+ }>>>;
12
+ export declare const mobileValidation: ({ getFieldValidation, requiredMessage }: {
13
+ getFieldValidation: any;
14
+ requiredMessage: any;
15
+ }) => yup.ObjectSchema<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
16
+ mobile: any;
17
+ }>, import("yup/lib/object").AnyObject, import("yup/lib/object").TypeOfShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
18
+ mobile: any;
19
+ }>>, import("yup/lib/object").AssertsShape<import("yup/lib/object").Assign<import("yup/lib/object").ObjectShape, {
20
+ mobile: any;
21
+ }>>>;
@@ -0,0 +1,28 @@
1
+ import { ValidationFieldNames } from '../types';
2
+ import * as yup from 'yup';
3
+ var phoneMessage = 'That doesn’t look like a valid phone number. Please try again.';
4
+ export var phoneNumberValidation = function (_a) {
5
+ var getFieldValidation = _a.getFieldValidation, requiredMessage = _a.requiredMessage;
6
+ return yup.object().shape({
7
+ phoneNumber: getFieldValidation({
8
+ validationFieldName: ValidationFieldNames.phoneNumber,
9
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'landline number'),
10
+ isPhone: true,
11
+ formatMessage: phoneMessage,
12
+ excludeEmptyString: true,
13
+ }),
14
+ });
15
+ };
16
+ export var mobileValidation = function (_a) {
17
+ var getFieldValidation = _a.getFieldValidation, requiredMessage = _a.requiredMessage;
18
+ return yup.object().shape({
19
+ mobile: getFieldValidation({
20
+ validationFieldName: ValidationFieldNames.mobile,
21
+ requiredMessage: requiredMessage === null || requiredMessage === void 0 ? void 0 : requiredMessage.replace('${field}', 'mobile number'),
22
+ isPhone: true,
23
+ formatMessage: phoneMessage,
24
+ excludeEmptyString: true,
25
+ }),
26
+ });
27
+ };
28
+ //# sourceMappingURL=phoneNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phoneNumber.js","sourceRoot":"","sources":["../../../src/validations/phoneNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAE1B,IAAM,YAAY,GAChB,gEAAgE,CAAA;AAElE,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,EAGrC;QAFC,kBAAkB,wBAAA,EAClB,eAAe,qBAAA;IAEf,OAAA,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QACjB,WAAW,EAAE,kBAAkB,CAAC;YAC9B,mBAAmB,EAAE,oBAAoB,CAAC,WAAW;YACrD,eAAe,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC;YACxE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,YAAY;YAC3B,kBAAkB,EAAE,IAAI;SACzB,CAAC;KACH,CAAC;AARF,CAQE,CAAA;AAEJ,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,EAAuC;QAArC,kBAAkB,wBAAA,EAAE,eAAe,qBAAA;IACpE,OAAA,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QACjB,MAAM,EAAE,kBAAkB,CAAC;YACzB,mBAAmB,EAAE,oBAAoB,CAAC,MAAM;YAChD,eAAe,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC;YACtE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,YAAY;YAC3B,kBAAkB,EAAE,IAAI;SACzB,CAAC;KACH,CAAC;AARF,CAQE,CAAA"}
@@ -0,0 +1,13 @@
1
+ declare module 'yup' {
2
+ interface StringSchema {
3
+ /**
4
+ * Check for phone number validity.
5
+ *
6
+ * @param {String} [countryCode=IN] The country code to check against.
7
+ * @param {Boolean} [strict=false] How strictly should it check.
8
+ * @param {String} [errorMessage=DEFAULT_MESSAGE] The error message to return if the validation fails.
9
+ */
10
+ phone(countryCode?: string, strict?: boolean, errorMessage?: string): StringSchema;
11
+ }
12
+ }
13
+ export {};
@@ -0,0 +1,50 @@
1
+ import * as Yup from 'yup';
2
+ import gPhoneNumber from 'google-libphonenumber';
3
+ var phoneUtil = gPhoneNumber.PhoneNumberUtil.getInstance();
4
+ var YUP_PHONE_METHOD = 'phone';
5
+ var CLDR_REGION_CODE_SIZE = 2;
6
+ var isValidCountryCode = function (countryCode) {
7
+ return typeof countryCode === 'string' &&
8
+ countryCode.length === CLDR_REGION_CODE_SIZE;
9
+ };
10
+ var isValid10DigitUKPhoneNumber = function (number) {
11
+ var _a;
12
+ var countryCode = "+".concat(number.getCountryCode());
13
+ return (countryCode === '+44' &&
14
+ "0".concat((_a = number.getRawInput()) === null || _a === void 0 ? void 0 : _a.replace(countryCode, '')).length === 10);
15
+ };
16
+ Yup.addMethod(Yup.string, YUP_PHONE_METHOD, function yupPhone(countryCode, strict, errorMessage) {
17
+ if (strict === void 0) { strict = false; }
18
+ if (errorMessage === void 0) { errorMessage = ''; }
19
+ var errMsg = typeof errorMessage === 'string' && errorMessage
20
+ ? errorMessage
21
+ : isValidCountryCode(countryCode)
22
+ ? "${path} must be a valid phone number for region ".concat(countryCode)
23
+ : '${path} must be a valid phone number.';
24
+ // @ts-ignore
25
+ return this.test(YUP_PHONE_METHOD, errMsg, function (value) {
26
+ if (!isValidCountryCode(countryCode)) {
27
+ // if not valid countryCode, then set default country to Great Britain (GB)
28
+ countryCode = 'GB';
29
+ strict = false;
30
+ }
31
+ try {
32
+ var phoneNumber = phoneUtil.parseAndKeepRawInput(value, countryCode);
33
+ if (!phoneUtil.isPossibleNumber(phoneNumber)) {
34
+ return false;
35
+ }
36
+ var regionCodeFromPhoneNumber = phoneUtil.getRegionCodeForNumber(phoneNumber);
37
+ /** check if the countryCode provided should be used as
38
+ * default country code or strictly followed, if both checks fail
39
+ * it checks if it's valid 10 digit UK number
40
+ */
41
+ return ((strict
42
+ ? phoneUtil.isValidNumberForRegion(phoneNumber, countryCode)
43
+ : phoneUtil.isValidNumberForRegion(phoneNumber, regionCodeFromPhoneNumber)) || isValid10DigitUKPhoneNumber(phoneNumber));
44
+ }
45
+ catch (_a) {
46
+ return false;
47
+ }
48
+ });
49
+ });
50
+ //# sourceMappingURL=yupPhone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yupPhone.js","sourceRoot":"","sources":["../../src/yupPhone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,YAAY,MAAM,uBAAuB,CAAA;AAEhD,IAAM,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,WAAW,EAAE,CAAA;AAmB5D,IAAM,gBAAgB,GAAG,OAAO,CAAA;AAChC,IAAM,qBAAqB,GAAG,CAAC,CAAA;AAE/B,IAAM,kBAAkB,GAAG,UAAC,WAA+B;IACzD,OAAA,OAAO,WAAW,KAAK,QAAQ;QAC/B,WAAW,CAAC,MAAM,KAAK,qBAAqB;AAD5C,CAC4C,CAAA;AAE9C,IAAM,2BAA2B,GAAG,UAAC,MAAgC;;IACnE,IAAM,WAAW,GAAG,WAAI,MAAM,CAAC,cAAc,EAAE,CAAE,CAAA;IAEjD,OAAO,CACL,WAAW,KAAK,KAAK;QACrB,WAAI,MAAA,MAAM,CAAC,WAAW,EAAE,0CAAE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAE,CAAC,MAAM,KAAK,EAAE,CACnE,CAAA;AACH,CAAC,CAAA;AAED,GAAG,CAAC,SAAS,CACX,GAAG,CAAC,MAAM,EACV,gBAAgB,EAChB,SAAS,QAAQ,CAAC,WAAoB,EAAE,MAAc,EAAE,YAAiB;IAAjC,uBAAA,EAAA,cAAc;IAAE,6BAAA,EAAA,iBAAiB;IACvE,IAAM,MAAM,GACV,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY;QAC9C,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,0DAAoD,WAAW,CAAE;YACnE,CAAC,CAAC,uCAAuC,CAAA;IAC7C,aAAa;IACb,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAC,KAAa;QACvD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE;YACpC,2EAA2E;YAC3E,WAAW,GAAG,IAAI,CAAA;YAClB,MAAM,GAAG,KAAK,CAAA;SACf;QAED,IAAI;YACF,IAAM,WAAW,GAAG,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;YAEtE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;gBAC5C,OAAO,KAAK,CAAA;aACb;YAED,IAAM,yBAAyB,GAC7B,SAAS,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAA;YAE/C;;;eAGG;YACH,OAAO,CACL,CAAC,MAAM;gBACL,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,WAAW,EAAE,WAAW,CAAC;gBAC5D,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAC9B,WAAW,EACX,yBAAyB,CAC1B,CAAC,IAAI,2BAA2B,CAAC,WAAW,CAAC,CACnD,CAAA;SACF;QAAC,WAAM;YACN,OAAO,KAAK,CAAA;SACb;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CACF,CAAA"}
package/package.json ADDED
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "@newskit-render/validation",
3
+ "version": "0.0.0-014af081",
4
+ "description": "Newskit Render",
5
+ "author": "",
6
+ "license": "UNLICENSED",
7
+ "keywords": [],
8
+ "module": "dist/esm/index.js",
9
+ "main": "dist/cjs/index.js",
10
+ "types": "dist/esm/index.d.ts",
11
+ "engines": {
12
+ "node": ">=16.13"
13
+ },
14
+ "exports": {
15
+ ".": {
16
+ "require": "./dist/cjs/index.js",
17
+ "import": "./dist/esm/index.js"
18
+ },
19
+ "./yup-phone": {
20
+ "require": "./dist/cjs/yupPhone.js",
21
+ "import": "./dist/esm/yupPhone.js"
22
+ }
23
+ },
24
+ "scripts": {
25
+ "build": "rm -rf dist && tsc -p tsconfig.build.json && tsc -p tsconfig.build.json --module CommonJS --outDir './dist/cjs'",
26
+ "build:watch": "tsc -b tsconfig.build.json -w",
27
+ "test:unit:watch": "jest --watch",
28
+ "test:unit": "jest --coverage",
29
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx . --color",
30
+ "lint:fix": "eslint --ext .js,.jsx,.ts,.tsx . --color --fix && prettier --write './**/*.{js,jsx,ts,tsx,json}'",
31
+ "clean": "rm -rf node_modules & rm -f package-lock.json & rm -f yarn.lock",
32
+ "test:unit:ci": "JEST_JUNIT_OUTPUT_NAME=validation.xml jest --ci --coverage --reporters=default --reporters=jest-junit"
33
+ },
34
+ "dependencies": {
35
+ "google-libphonenumber": "3.2.32",
36
+ "yup": "0.32.11"
37
+ },
38
+ "devDependencies": {
39
+ "@babel/polyfill": "7.12.1",
40
+ "@babel/register": "7.18.9",
41
+ "@types/jest": "29.5.5",
42
+ "@types/next-auth": "3.15.0",
43
+ "@types/react": "18.0.26",
44
+ "@types/react-dom": "18.0.10",
45
+ "@typescript-eslint/eslint-plugin": "5.51.0",
46
+ "@typescript-eslint/parser": "5.51.0",
47
+ "eslint": "8.34.0",
48
+ "eslint-config-prettier": "8.6.0",
49
+ "eslint-plugin-prettier": "4.2.1",
50
+ "eslint-plugin-react": "7.31.11",
51
+ "jest": "29.7.0",
52
+ "jest-environment-jsdom": "29.7.0",
53
+ "jest-junit": "15.0.0",
54
+ "next": "13.4.9",
55
+ "preact": "10.11.3",
56
+ "prettier": "2.8.1",
57
+ "react": "18.2.0",
58
+ "react-dom": "18.2.0",
59
+ "ts-jest": "29.1.1",
60
+ "typescript": "4.9.4"
61
+ },
62
+ "peerDependencies": {
63
+ "react": ">= 17.0.2 <= 18.2.0",
64
+ "react-dom": ">= 17.0.2 <= 18.2.0"
65
+ },
66
+ "resolutions": {
67
+ "@types/react": "18.0.26",
68
+ "@types/react-dom": "18.0.10"
69
+ },
70
+ "files": [
71
+ "dist"
72
+ ],
73
+ "publishConfig": {
74
+ "access": "public"
75
+ }
76
+ }