@glideidentity/glide-be-sdk-node 2.0.1
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/LICENSE +4 -0
- package/README.md +90 -0
- package/dist/errors.d.ts +58 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +65 -0
- package/dist/glide.d.ts +31 -0
- package/dist/glide.d.ts.map +1 -0
- package/dist/glide.js +61 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/internal/http.d.ts +20 -0
- package/dist/internal/http.d.ts.map +1 -0
- package/dist/internal/http.js +89 -0
- package/dist/internal/oauth.d.ts +53 -0
- package/dist/internal/oauth.d.ts.map +1 -0
- package/dist/internal/oauth.js +139 -0
- package/dist/logger.d.ts +28 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +118 -0
- package/dist/services/magical-auth.d.ts +32 -0
- package/dist/services/magical-auth.d.ts.map +1 -0
- package/dist/services/magical-auth.js +265 -0
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +24 -0
- package/dist/validation.d.ts +15 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +103 -0
- package/package.json +28 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PLMN, UseCaseType } from '@glideidentity/glide-be-sdk-node-core';
|
|
2
|
+
/** Validation result. */
|
|
3
|
+
export interface ValidationResult {
|
|
4
|
+
valid: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
errorCode?: string;
|
|
7
|
+
details?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
/** Validates phone number format (E.164). */
|
|
10
|
+
export declare function validatePhoneNumber(phoneNumber?: string): ValidationResult;
|
|
11
|
+
/** Validates PLMN (MCC/MNC) format. */
|
|
12
|
+
export declare function validatePlmn(plmn?: PLMN): ValidationResult;
|
|
13
|
+
/** Validates use case requirements (phone number for verify, PLMN for get). */
|
|
14
|
+
export declare function validateUseCaseRequirements(useCase?: UseCaseType, phoneNumber?: string, plmn?: PLMN): ValidationResult;
|
|
15
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAE/E,yBAAyB;AACzB,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,6CAA6C;AAC7C,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAyC1E;AAED,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,gBAAgB,CAoB1D;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACvC,OAAO,CAAC,EAAE,WAAW,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,IAAI,GACZ,gBAAgB,CA0ClB"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validatePhoneNumber = validatePhoneNumber;
|
|
4
|
+
exports.validatePlmn = validatePlmn;
|
|
5
|
+
exports.validateUseCaseRequirements = validateUseCaseRequirements;
|
|
6
|
+
const glide_be_sdk_node_core_1 = require("@glideidentity/glide-be-sdk-node-core");
|
|
7
|
+
/** Validates phone number format (E.164). */
|
|
8
|
+
function validatePhoneNumber(phoneNumber) {
|
|
9
|
+
if (!phoneNumber) {
|
|
10
|
+
return { valid: true };
|
|
11
|
+
}
|
|
12
|
+
if (!phoneNumber.startsWith('+')) {
|
|
13
|
+
return {
|
|
14
|
+
valid: false,
|
|
15
|
+
error: 'Phone number must be in E.164 format (start with +)'
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (phoneNumber.length < 8) {
|
|
19
|
+
return {
|
|
20
|
+
valid: false,
|
|
21
|
+
error: 'Phone number too short for E.164 format (minimum 8 characters including +)'
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
if (phoneNumber.length > 16) {
|
|
25
|
+
return {
|
|
26
|
+
valid: false,
|
|
27
|
+
error: 'Phone number too long for E.164 format (maximum 15 digits after +)'
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
if (!/^\+\d+$/.test(phoneNumber)) {
|
|
31
|
+
return {
|
|
32
|
+
valid: false,
|
|
33
|
+
error: 'Phone number contains invalid characters. E.164 format only allows + followed by digits'
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (!/^\+[1-9]\d{1,14}$/.test(phoneNumber)) {
|
|
37
|
+
return {
|
|
38
|
+
valid: false,
|
|
39
|
+
error: 'Invalid E.164 phone number format'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return { valid: true };
|
|
43
|
+
}
|
|
44
|
+
/** Validates PLMN (MCC/MNC) format. */
|
|
45
|
+
function validatePlmn(plmn) {
|
|
46
|
+
if (!plmn) {
|
|
47
|
+
return { valid: true };
|
|
48
|
+
}
|
|
49
|
+
if (!plmn.mcc || !/^\d{3}$/.test(plmn.mcc)) {
|
|
50
|
+
return {
|
|
51
|
+
valid: false,
|
|
52
|
+
error: 'MCC must be exactly 3 digits'
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (!plmn.mnc || !/^\d{2,3}$/.test(plmn.mnc)) {
|
|
56
|
+
return {
|
|
57
|
+
valid: false,
|
|
58
|
+
error: 'MNC must be 2 or 3 digits'
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
return { valid: true };
|
|
62
|
+
}
|
|
63
|
+
/** Validates use case requirements (phone number for verify, PLMN for get). */
|
|
64
|
+
function validateUseCaseRequirements(useCase, phoneNumber, plmn) {
|
|
65
|
+
if (!useCase) {
|
|
66
|
+
return {
|
|
67
|
+
valid: false,
|
|
68
|
+
error: 'use_case is required when not inheriting from parent session',
|
|
69
|
+
errorCode: glide_be_sdk_node_core_1.ErrorCode.INVALID_USE_CASE
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
switch (useCase) {
|
|
73
|
+
case glide_be_sdk_node_core_1.UseCase.GET_PHONE_NUMBER:
|
|
74
|
+
if (phoneNumber) {
|
|
75
|
+
return {
|
|
76
|
+
valid: false,
|
|
77
|
+
error: 'Phone number should not be provided for GetPhoneNumber use case',
|
|
78
|
+
errorCode: glide_be_sdk_node_core_1.ErrorCode.INVALID_USE_CASE,
|
|
79
|
+
details: { invalid_field: 'phone_number', reason: 'not_allowed_for_use_case' }
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (!plmn) {
|
|
83
|
+
return {
|
|
84
|
+
valid: false,
|
|
85
|
+
error: 'PLMN (MCC/MNC) is required for GetPhoneNumber use case',
|
|
86
|
+
errorCode: glide_be_sdk_node_core_1.ErrorCode.MISSING_REQUIRED_FIELD,
|
|
87
|
+
details: { missing_field: 'plmn' }
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
break;
|
|
91
|
+
case glide_be_sdk_node_core_1.UseCase.VERIFY_PHONE_NUMBER:
|
|
92
|
+
if (!phoneNumber) {
|
|
93
|
+
return {
|
|
94
|
+
valid: false,
|
|
95
|
+
error: 'Phone number is required for VerifyPhoneNumber use case',
|
|
96
|
+
errorCode: glide_be_sdk_node_core_1.ErrorCode.MISSING_REQUIRED_FIELD,
|
|
97
|
+
details: { missing_field: 'phone_number' }
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
return { valid: true };
|
|
103
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@glideidentity/glide-be-sdk-node",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "Glide SDK for Node.js - carrier-based phone verification",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist/**/*",
|
|
16
|
+
"LICENSE",
|
|
17
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"clean": "rm -rf dist"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@glideidentity/glide-be-sdk-node-core": "2.0.1"
|
|
25
|
+
},
|
|
26
|
+
"keywords": ["glide", "sdk", "phone", "verification", "magic-auth"],
|
|
27
|
+
"license": "SEE LICENSE IN LICENSE"
|
|
28
|
+
}
|