@drawbridge/drawbridge-utils 0.0.127 → 0.0.128
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/dist/twilio.cjs +62 -0
- package/dist/twilio.d.cts +78 -0
- package/dist/twilio.d.ts +78 -0
- package/dist/twilio.js +62 -0
- package/package.json +1 -1
package/dist/twilio.cjs
CHANGED
|
@@ -103,6 +103,68 @@ var twilio = {
|
|
|
103
103
|
To: to
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
|
+
},
|
|
107
|
+
// NUMBER LIFECYCLE, same transport discipline as sms above. Endpoints and
|
|
108
|
+
// parameter names are Twilio's own, from the AvailablePhoneNumbers and
|
|
109
|
+
// IncomingPhoneNumbers resource docs:
|
|
110
|
+
// GET /2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{CountryCode}/Local.json
|
|
111
|
+
// query: SmsEnabled, AreaCode (US/CA only), PageSize (1-1000)
|
|
112
|
+
// POST /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
|
113
|
+
// body: PhoneNumber (E.164), SmsUrl, SmsMethod
|
|
114
|
+
// DELETE /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{Sid}.json
|
|
115
|
+
// Basic auth throughout, like Messages.
|
|
116
|
+
searchNumbers: async ({ accountSid, areaCode, authToken, country = "US", limit = 10, request: request2 = request }) => {
|
|
117
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
118
|
+
const result = await request2({
|
|
119
|
+
method: "GET",
|
|
120
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/AvailablePhoneNumbers/" + country + "/Local.json",
|
|
121
|
+
headers: {
|
|
122
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
123
|
+
},
|
|
124
|
+
query: {
|
|
125
|
+
SmsEnabled: true,
|
|
126
|
+
PageSize: limit,
|
|
127
|
+
...areaCode && { AreaCode: areaCode }
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return ((result == null ? void 0 : result.available_phone_numbers) || []).map((entry) => ({
|
|
131
|
+
friendly: entry.friendly_name,
|
|
132
|
+
locality: entry.locality || entry.region || null,
|
|
133
|
+
number: entry.phone_number
|
|
134
|
+
}));
|
|
135
|
+
},
|
|
136
|
+
purchaseNumber: async ({ accountSid, authToken, number, request: request2 = request, smsUrl }) => {
|
|
137
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
138
|
+
if (!number) throw new Error("Twilio purchase needs the E.164 number to buy");
|
|
139
|
+
const result = await request2({
|
|
140
|
+
method: "POST",
|
|
141
|
+
type: "form",
|
|
142
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/IncomingPhoneNumbers.json",
|
|
143
|
+
headers: {
|
|
144
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
145
|
+
},
|
|
146
|
+
body: {
|
|
147
|
+
PhoneNumber: number,
|
|
148
|
+
// Inbound STOP/HELP must land on the same generic route every
|
|
149
|
+
// platform number uses — the drawbridge manifest owns inbound.
|
|
150
|
+
...smsUrl && { SmsUrl: smsUrl, SmsMethod: "POST" }
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return {
|
|
154
|
+
number: result == null ? void 0 : result.phone_number,
|
|
155
|
+
sid: result == null ? void 0 : result.sid
|
|
156
|
+
};
|
|
157
|
+
},
|
|
158
|
+
releaseNumber: async ({ accountSid, authToken, request: request2 = request, sid }) => {
|
|
159
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
160
|
+
if (!sid) throw new Error("Twilio release needs the IncomingPhoneNumber sid");
|
|
161
|
+
return await request2({
|
|
162
|
+
method: "DELETE",
|
|
163
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/IncomingPhoneNumbers/" + sid + ".json",
|
|
164
|
+
headers: {
|
|
165
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
166
|
+
}
|
|
167
|
+
});
|
|
106
168
|
}
|
|
107
169
|
};
|
|
108
170
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/twilio.d.cts
CHANGED
|
@@ -65,6 +65,84 @@ const twilio = {
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
// NUMBER LIFECYCLE, same transport discipline as sms above. Endpoints and
|
|
71
|
+
// parameter names are Twilio's own, from the AvailablePhoneNumbers and
|
|
72
|
+
// IncomingPhoneNumbers resource docs:
|
|
73
|
+
// GET /2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{CountryCode}/Local.json
|
|
74
|
+
// query: SmsEnabled, AreaCode (US/CA only), PageSize (1-1000)
|
|
75
|
+
// POST /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
|
76
|
+
// body: PhoneNumber (E.164), SmsUrl, SmsMethod
|
|
77
|
+
// DELETE /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{Sid}.json
|
|
78
|
+
// Basic auth throughout, like Messages.
|
|
79
|
+
|
|
80
|
+
searchNumbers : async ({ accountSid, areaCode, authToken, country = 'US', limit = 10, request: request$1 = request }) => {
|
|
81
|
+
|
|
82
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
83
|
+
|
|
84
|
+
const result = await request$1({
|
|
85
|
+
method : 'GET',
|
|
86
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/AvailablePhoneNumbers/' + country + '/Local.json',
|
|
87
|
+
headers : {
|
|
88
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
89
|
+
},
|
|
90
|
+
query : {
|
|
91
|
+
SmsEnabled : true,
|
|
92
|
+
PageSize : limit,
|
|
93
|
+
...( areaCode && { AreaCode : areaCode } )
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// The caller-facing shape is ours; the vendor's field names stay here.
|
|
98
|
+
return ( result?.available_phone_numbers || [] ).map( ( entry ) => ({
|
|
99
|
+
friendly : entry.friendly_name,
|
|
100
|
+
locality : entry.locality || entry.region || null,
|
|
101
|
+
number : entry.phone_number
|
|
102
|
+
}) );
|
|
103
|
+
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
purchaseNumber : async ({ accountSid, authToken, number, request: request$1 = request, smsUrl }) => {
|
|
107
|
+
|
|
108
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
109
|
+
if( ! number ) throw new Error( 'Twilio purchase needs the E.164 number to buy' );
|
|
110
|
+
|
|
111
|
+
const result = await request$1({
|
|
112
|
+
method : 'POST',
|
|
113
|
+
type : 'form',
|
|
114
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/IncomingPhoneNumbers.json',
|
|
115
|
+
headers : {
|
|
116
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
117
|
+
},
|
|
118
|
+
body : {
|
|
119
|
+
PhoneNumber : number,
|
|
120
|
+
// Inbound STOP/HELP must land on the same generic route every
|
|
121
|
+
// platform number uses — the drawbridge manifest owns inbound.
|
|
122
|
+
...( smsUrl && { SmsUrl : smsUrl, SmsMethod : 'POST' } )
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
number : result?.phone_number,
|
|
128
|
+
sid : result?.sid
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
releaseNumber : async ({ accountSid, authToken, request: request$1 = request, sid }) => {
|
|
134
|
+
|
|
135
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
136
|
+
if( ! sid ) throw new Error( 'Twilio release needs the IncomingPhoneNumber sid' );
|
|
137
|
+
|
|
138
|
+
return await request$1({
|
|
139
|
+
method : 'DELETE',
|
|
140
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/IncomingPhoneNumbers/' + sid + '.json',
|
|
141
|
+
headers : {
|
|
142
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
68
146
|
}
|
|
69
147
|
|
|
70
148
|
};
|
package/dist/twilio.d.ts
CHANGED
|
@@ -65,6 +65,84 @@ const twilio = {
|
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
// NUMBER LIFECYCLE, same transport discipline as sms above. Endpoints and
|
|
71
|
+
// parameter names are Twilio's own, from the AvailablePhoneNumbers and
|
|
72
|
+
// IncomingPhoneNumbers resource docs:
|
|
73
|
+
// GET /2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{CountryCode}/Local.json
|
|
74
|
+
// query: SmsEnabled, AreaCode (US/CA only), PageSize (1-1000)
|
|
75
|
+
// POST /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
|
76
|
+
// body: PhoneNumber (E.164), SmsUrl, SmsMethod
|
|
77
|
+
// DELETE /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{Sid}.json
|
|
78
|
+
// Basic auth throughout, like Messages.
|
|
79
|
+
|
|
80
|
+
searchNumbers : async ({ accountSid, areaCode, authToken, country = 'US', limit = 10, request: request$1 = request }) => {
|
|
81
|
+
|
|
82
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
83
|
+
|
|
84
|
+
const result = await request$1({
|
|
85
|
+
method : 'GET',
|
|
86
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/AvailablePhoneNumbers/' + country + '/Local.json',
|
|
87
|
+
headers : {
|
|
88
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
89
|
+
},
|
|
90
|
+
query : {
|
|
91
|
+
SmsEnabled : true,
|
|
92
|
+
PageSize : limit,
|
|
93
|
+
...( areaCode && { AreaCode : areaCode } )
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// The caller-facing shape is ours; the vendor's field names stay here.
|
|
98
|
+
return ( result?.available_phone_numbers || [] ).map( ( entry ) => ({
|
|
99
|
+
friendly : entry.friendly_name,
|
|
100
|
+
locality : entry.locality || entry.region || null,
|
|
101
|
+
number : entry.phone_number
|
|
102
|
+
}) );
|
|
103
|
+
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
purchaseNumber : async ({ accountSid, authToken, number, request: request$1 = request, smsUrl }) => {
|
|
107
|
+
|
|
108
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
109
|
+
if( ! number ) throw new Error( 'Twilio purchase needs the E.164 number to buy' );
|
|
110
|
+
|
|
111
|
+
const result = await request$1({
|
|
112
|
+
method : 'POST',
|
|
113
|
+
type : 'form',
|
|
114
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/IncomingPhoneNumbers.json',
|
|
115
|
+
headers : {
|
|
116
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
117
|
+
},
|
|
118
|
+
body : {
|
|
119
|
+
PhoneNumber : number,
|
|
120
|
+
// Inbound STOP/HELP must land on the same generic route every
|
|
121
|
+
// platform number uses — the drawbridge manifest owns inbound.
|
|
122
|
+
...( smsUrl && { SmsUrl : smsUrl, SmsMethod : 'POST' } )
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
number : result?.phone_number,
|
|
128
|
+
sid : result?.sid
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
releaseNumber : async ({ accountSid, authToken, request: request$1 = request, sid }) => {
|
|
134
|
+
|
|
135
|
+
if( ! accountSid || ! authToken ) throw new Error( 'Twilio credentials missing — accountSid, authToken' );
|
|
136
|
+
if( ! sid ) throw new Error( 'Twilio release needs the IncomingPhoneNumber sid' );
|
|
137
|
+
|
|
138
|
+
return await request$1({
|
|
139
|
+
method : 'DELETE',
|
|
140
|
+
url : 'https://api.twilio.com/2010-04-01/Accounts/' + accountSid + '/IncomingPhoneNumbers/' + sid + '.json',
|
|
141
|
+
headers : {
|
|
142
|
+
'Authorization' : 'Basic ' + Buffer.from( accountSid + ':' + authToken ).toString( 'base64' )
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
68
146
|
}
|
|
69
147
|
|
|
70
148
|
};
|
package/dist/twilio.js
CHANGED
|
@@ -78,6 +78,68 @@ var twilio = {
|
|
|
78
78
|
To: to
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
|
+
},
|
|
82
|
+
// NUMBER LIFECYCLE, same transport discipline as sms above. Endpoints and
|
|
83
|
+
// parameter names are Twilio's own, from the AvailablePhoneNumbers and
|
|
84
|
+
// IncomingPhoneNumbers resource docs:
|
|
85
|
+
// GET /2010-04-01/Accounts/{AccountSid}/AvailablePhoneNumbers/{CountryCode}/Local.json
|
|
86
|
+
// query: SmsEnabled, AreaCode (US/CA only), PageSize (1-1000)
|
|
87
|
+
// POST /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers.json
|
|
88
|
+
// body: PhoneNumber (E.164), SmsUrl, SmsMethod
|
|
89
|
+
// DELETE /2010-04-01/Accounts/{AccountSid}/IncomingPhoneNumbers/{Sid}.json
|
|
90
|
+
// Basic auth throughout, like Messages.
|
|
91
|
+
searchNumbers: async ({ accountSid, areaCode, authToken, country = "US", limit = 10, request: request2 = request }) => {
|
|
92
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
93
|
+
const result = await request2({
|
|
94
|
+
method: "GET",
|
|
95
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/AvailablePhoneNumbers/" + country + "/Local.json",
|
|
96
|
+
headers: {
|
|
97
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
98
|
+
},
|
|
99
|
+
query: {
|
|
100
|
+
SmsEnabled: true,
|
|
101
|
+
PageSize: limit,
|
|
102
|
+
...areaCode && { AreaCode: areaCode }
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
return ((result == null ? void 0 : result.available_phone_numbers) || []).map((entry) => ({
|
|
106
|
+
friendly: entry.friendly_name,
|
|
107
|
+
locality: entry.locality || entry.region || null,
|
|
108
|
+
number: entry.phone_number
|
|
109
|
+
}));
|
|
110
|
+
},
|
|
111
|
+
purchaseNumber: async ({ accountSid, authToken, number, request: request2 = request, smsUrl }) => {
|
|
112
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
113
|
+
if (!number) throw new Error("Twilio purchase needs the E.164 number to buy");
|
|
114
|
+
const result = await request2({
|
|
115
|
+
method: "POST",
|
|
116
|
+
type: "form",
|
|
117
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/IncomingPhoneNumbers.json",
|
|
118
|
+
headers: {
|
|
119
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
120
|
+
},
|
|
121
|
+
body: {
|
|
122
|
+
PhoneNumber: number,
|
|
123
|
+
// Inbound STOP/HELP must land on the same generic route every
|
|
124
|
+
// platform number uses — the drawbridge manifest owns inbound.
|
|
125
|
+
...smsUrl && { SmsUrl: smsUrl, SmsMethod: "POST" }
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
number: result == null ? void 0 : result.phone_number,
|
|
130
|
+
sid: result == null ? void 0 : result.sid
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
releaseNumber: async ({ accountSid, authToken, request: request2 = request, sid }) => {
|
|
134
|
+
if (!accountSid || !authToken) throw new Error("Twilio credentials missing \u2014 accountSid, authToken");
|
|
135
|
+
if (!sid) throw new Error("Twilio release needs the IncomingPhoneNumber sid");
|
|
136
|
+
return await request2({
|
|
137
|
+
method: "DELETE",
|
|
138
|
+
url: "https://api.twilio.com/2010-04-01/Accounts/" + accountSid + "/IncomingPhoneNumbers/" + sid + ".json",
|
|
139
|
+
headers: {
|
|
140
|
+
"Authorization": "Basic " + Buffer.from(accountSid + ":" + authToken).toString("base64")
|
|
141
|
+
}
|
|
142
|
+
});
|
|
81
143
|
}
|
|
82
144
|
};
|
|
83
145
|
export {
|
package/package.json
CHANGED