@plentymarkets/shop-api 0.152.1 → 0.153.0
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/lib/api/__tests__/__fixtures__/ApiChangeUserPasswordFixture.d.ts +1 -1
- package/lib/api/__tests__/__fixtures__/ApiChangeUserPasswordFixture.d.ts.map +1 -1
- package/lib/api/__tests__/__fixtures__/ApiInitFixture.d.ts +0 -3
- package/lib/api/__tests__/__fixtures__/ApiInitFixture.d.ts.map +1 -1
- package/lib/api/__tests__/__fixtures__/ApiRegisterUserFixture.d.ts +1 -1
- package/lib/api/__tests__/__fixtures__/ApiRegisterUserFixture.d.ts.map +1 -1
- package/lib/api/deleteCartItem/index.d.ts.map +1 -1
- package/lib/api/doAddCartItem/index.d.ts.map +1 -1
- package/lib/api/doPlaceOrder/index.d.ts.map +1 -1
- package/lib/api/getActiveShippingCountries/index.d.ts.map +1 -1
- package/lib/api/getCart/index.d.ts.map +1 -1
- package/lib/api/getCategoriesSearch/index.d.ts.map +1 -1
- package/lib/api/getCategoryTree/index.d.ts.map +1 -1
- package/lib/api/getInit/index.d.ts.map +1 -1
- package/lib/api/getOrder/index.d.ts.map +1 -1
- package/lib/api/getProduct/index.d.ts.map +1 -1
- package/lib/api/getReturns/index.d.ts.map +1 -1
- package/lib/api/getSearch/index.d.ts.map +1 -1
- package/lib/api/paypalModule/doCreatePayPalOrder/index.d.ts.map +1 -1
- package/lib/api/setCartItemQuantity/index.d.ts.map +1 -1
- package/lib/helpers/apiTransformations.helper.d.ts +33 -0
- package/lib/helpers/apiTransformations.helper.d.ts.map +1 -0
- package/lib/helpers/header.helper.d.ts.map +1 -1
- package/lib/helpers/index.d.ts +1 -0
- package/lib/helpers/index.d.ts.map +1 -1
- package/lib/hooks/onRequest.d.ts.map +1 -1
- package/lib/index.cjs.js +282 -101
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.es.js +282 -101
- package/lib/index.es.js.map +1 -1
- package/lib/types/api/categoriesSearch.d.ts +1 -0
- package/lib/types/api/categoriesSearch.d.ts.map +1 -1
- package/lib/types/api/paypal.d.ts +1 -0
- package/lib/types/api/paypal.d.ts.map +1 -1
- package/lib/types/api/user.d.ts +0 -3
- package/lib/types/api/user.d.ts.map +1 -1
- package/package.json +2 -2
- package/server/api/__tests__/__fixtures__/ApiChangeUserPasswordFixture.d.ts +1 -1
- package/server/api/__tests__/__fixtures__/ApiChangeUserPasswordFixture.d.ts.map +1 -1
- package/server/api/__tests__/__fixtures__/ApiInitFixture.d.ts +0 -3
- package/server/api/__tests__/__fixtures__/ApiInitFixture.d.ts.map +1 -1
- package/server/api/__tests__/__fixtures__/ApiRegisterUserFixture.d.ts +1 -1
- package/server/api/__tests__/__fixtures__/ApiRegisterUserFixture.d.ts.map +1 -1
- package/server/api/deleteCartItem/index.d.ts.map +1 -1
- package/server/api/doAddCartItem/index.d.ts.map +1 -1
- package/server/api/doPlaceOrder/index.d.ts.map +1 -1
- package/server/api/getActiveShippingCountries/index.d.ts.map +1 -1
- package/server/api/getCart/index.d.ts.map +1 -1
- package/server/api/getCategoriesSearch/index.d.ts.map +1 -1
- package/server/api/getCategoryTree/index.d.ts.map +1 -1
- package/server/api/getInit/index.d.ts.map +1 -1
- package/server/api/getOrder/index.d.ts.map +1 -1
- package/server/api/getProduct/index.d.ts.map +1 -1
- package/server/api/getReturns/index.d.ts.map +1 -1
- package/server/api/getSearch/index.d.ts.map +1 -1
- package/server/api/paypalModule/doCreatePayPalOrder/index.d.ts.map +1 -1
- package/server/api/setCartItemQuantity/index.d.ts.map +1 -1
- package/server/helpers/apiTransformations.helper.d.ts +33 -0
- package/server/helpers/apiTransformations.helper.d.ts.map +1 -0
- package/server/helpers/header.helper.d.ts.map +1 -1
- package/server/helpers/index.d.ts +1 -0
- package/server/helpers/index.d.ts.map +1 -1
- package/server/hooks/onRequest.d.ts.map +1 -1
- package/server/index.js +291 -105
- package/server/index.js.map +1 -1
- package/server/types/api/categoriesSearch.d.ts +1 -0
- package/server/types/api/categoriesSearch.d.ts.map +1 -1
- package/server/types/api/paypal.d.ts +1 -0
- package/server/types/api/paypal.d.ts.map +1 -1
- package/server/types/api/user.d.ts +0 -3
- package/server/types/api/user.d.ts.map +1 -1
package/lib/index.cjs.js
CHANGED
|
@@ -93,6 +93,242 @@ const getBlocks = async (context, params) => {
|
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
95
|
|
|
96
|
+
function getMappedCartItems(basketItems) {
|
|
97
|
+
return basketItems.map((basketItem) => {
|
|
98
|
+
return {
|
|
99
|
+
...basketItem,
|
|
100
|
+
variation: basketItem.variation.data,
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function roundedToOption(numberToRound, roundOption) {
|
|
106
|
+
if (roundOption === 'half')
|
|
107
|
+
return Math.floor(numberToRound * 2) / 2;
|
|
108
|
+
if (roundOption === 'tenth')
|
|
109
|
+
return Math.round(numberToRound * 10) / 10;
|
|
110
|
+
return numberToRound;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
const convertToNumberOrNull = (value) => {
|
|
114
|
+
if (value === null || value === undefined || value === '')
|
|
115
|
+
return null;
|
|
116
|
+
const parsedNumber = Number(value);
|
|
117
|
+
return isNaN(parsedNumber) ? null : parsedNumber;
|
|
118
|
+
};
|
|
119
|
+
const mapAddressForServer = (address) => {
|
|
120
|
+
return {
|
|
121
|
+
...(address.id && { id: address.id }),
|
|
122
|
+
gender: '',
|
|
123
|
+
countryId: Number(address?.country ?? 0),
|
|
124
|
+
email: address.email,
|
|
125
|
+
name1: address.companyName,
|
|
126
|
+
name2: address.firstName,
|
|
127
|
+
name3: address.lastName,
|
|
128
|
+
vatNumber: address.vatNumber,
|
|
129
|
+
contactPerson: '',
|
|
130
|
+
address1: address.streetName,
|
|
131
|
+
address2: address.apartment,
|
|
132
|
+
address3: address.additionalAddressInformation,
|
|
133
|
+
postalCode: address.zipCode,
|
|
134
|
+
postNumber: address.postNumber?.trim() !== '' ? address.postNumber : null,
|
|
135
|
+
town: address.city,
|
|
136
|
+
telephone: address.phoneNumber,
|
|
137
|
+
stateId: convertToNumberOrNull(address.state),
|
|
138
|
+
birthday: address.birthday,
|
|
139
|
+
...(address.primary && { isPrimary: true }),
|
|
140
|
+
...(address.id && { pivot: { isPrimary: true } }),
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
const mapAddressForClient = (addressData) => {
|
|
144
|
+
const address = {
|
|
145
|
+
id: addressData.id,
|
|
146
|
+
firstName: addressData.name2,
|
|
147
|
+
lastName: addressData.name3,
|
|
148
|
+
streetName: addressData.address1,
|
|
149
|
+
apartment: addressData.address2,
|
|
150
|
+
additionalAddressInformation: addressData.address3,
|
|
151
|
+
city: addressData.town,
|
|
152
|
+
state: addressData.stateId?.toString(),
|
|
153
|
+
country: addressData.countryId?.toString(),
|
|
154
|
+
zipCode: addressData.postalCode,
|
|
155
|
+
postNumber: '',
|
|
156
|
+
phoneNumber: '',
|
|
157
|
+
email: '',
|
|
158
|
+
primary: Boolean(addressData?.pivot?.isPrimary || 0),
|
|
159
|
+
companyName: addressData.name1 ?? undefined,
|
|
160
|
+
vatNumber: addressData.taxIdNumber,
|
|
161
|
+
birthday: '',
|
|
162
|
+
typeId: addressData.pivot?.typeId ?? undefined,
|
|
163
|
+
};
|
|
164
|
+
addressData.options.forEach((option) => {
|
|
165
|
+
switch (option.typeId) {
|
|
166
|
+
case exports.AddressOptionType.Telephone:
|
|
167
|
+
address.phoneNumber = option.value;
|
|
168
|
+
break;
|
|
169
|
+
case exports.AddressOptionType.Email:
|
|
170
|
+
address.email = option.value;
|
|
171
|
+
break;
|
|
172
|
+
case exports.AddressOptionType.PostNumber:
|
|
173
|
+
address.postNumber = option.value;
|
|
174
|
+
break;
|
|
175
|
+
case exports.AddressOptionType.Birthday:
|
|
176
|
+
address.birthday = option.value;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
return address;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const toStringId = (value) => {
|
|
184
|
+
if (value === null || value === undefined)
|
|
185
|
+
return '0';
|
|
186
|
+
if (typeof value === 'string')
|
|
187
|
+
return value;
|
|
188
|
+
return String(value);
|
|
189
|
+
};
|
|
190
|
+
const transformCategoryTreeItemCount = (count) => ({
|
|
191
|
+
...count,
|
|
192
|
+
categoryId: toStringId(count.categoryId),
|
|
193
|
+
webstoreId: toStringId(count.webstoreId),
|
|
194
|
+
count: toStringId(count.count),
|
|
195
|
+
variationCount: toStringId(count.variationCount),
|
|
196
|
+
customerClassId: toStringId(count.customerClassId),
|
|
197
|
+
});
|
|
198
|
+
const transformCategoryTreeItem = (item) => {
|
|
199
|
+
if (!item)
|
|
200
|
+
return item;
|
|
201
|
+
const hasItemCount = item.itemCount?.length;
|
|
202
|
+
const hasChildren = item.children?.length;
|
|
203
|
+
if (!hasItemCount && !hasChildren) {
|
|
204
|
+
return item;
|
|
205
|
+
}
|
|
206
|
+
const transformedItemCount = hasItemCount
|
|
207
|
+
? item.itemCount.map(transformCategoryTreeItemCount)
|
|
208
|
+
: item.itemCount;
|
|
209
|
+
const transformedChildren = hasChildren
|
|
210
|
+
? item.children.map(transformCategoryTreeItem)
|
|
211
|
+
: item.children;
|
|
212
|
+
if (transformedItemCount === item.itemCount &&
|
|
213
|
+
transformedChildren === item.children) {
|
|
214
|
+
return item;
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
...item,
|
|
218
|
+
...(transformedItemCount && { itemCount: transformedItemCount }),
|
|
219
|
+
...(transformedChildren && { children: transformedChildren }),
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
const transformCountryState = (state) => ({
|
|
223
|
+
...state,
|
|
224
|
+
countryId: toStringId(state.countryId),
|
|
225
|
+
});
|
|
226
|
+
const transformCountryName = (name) => ({
|
|
227
|
+
...name,
|
|
228
|
+
country_id: toStringId(name.country_id),
|
|
229
|
+
});
|
|
230
|
+
const transformShippingCountry = (country) => ({
|
|
231
|
+
...country,
|
|
232
|
+
states: country.states?.map(transformCountryState) || [],
|
|
233
|
+
names: country.names?.map(transformCountryName) || [],
|
|
234
|
+
});
|
|
235
|
+
const transformOrderItem = (item) => {
|
|
236
|
+
const transformed = {
|
|
237
|
+
...item,
|
|
238
|
+
position: toStringId(item.position),
|
|
239
|
+
};
|
|
240
|
+
if (item.references && Array.isArray(item.references)) {
|
|
241
|
+
transformed.references =
|
|
242
|
+
item.references.map((ref) => {
|
|
243
|
+
const reference = ref;
|
|
244
|
+
return {
|
|
245
|
+
...ref,
|
|
246
|
+
orderItemId: toStringId(reference.orderItemId),
|
|
247
|
+
referenceOrderItemId: toStringId(reference.referenceOrderItemId),
|
|
248
|
+
};
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return transformed;
|
|
252
|
+
};
|
|
253
|
+
const transformOrderReference = (ref) => ({
|
|
254
|
+
...ref,
|
|
255
|
+
orderId: toStringId(ref.orderId),
|
|
256
|
+
originOrderId: toStringId(ref.originOrderId),
|
|
257
|
+
referenceOrderId: toStringId(ref.referenceOrderId),
|
|
258
|
+
});
|
|
259
|
+
const transformOrder = (order) => {
|
|
260
|
+
if (!order?.order)
|
|
261
|
+
return order;
|
|
262
|
+
const transformed = {
|
|
263
|
+
...order,
|
|
264
|
+
order: {
|
|
265
|
+
...order.order,
|
|
266
|
+
locationId: toStringId(order.order.locationId),
|
|
267
|
+
ownerId: toStringId(order.order.ownerId),
|
|
268
|
+
orderItems: order.order.orderItems?.map(transformOrderItem) || [],
|
|
269
|
+
orderReferences: order.order.orderReferences?.map(transformOrderReference) || [],
|
|
270
|
+
},
|
|
271
|
+
};
|
|
272
|
+
if (transformed.variations) {
|
|
273
|
+
const newVariations = {};
|
|
274
|
+
Object.keys(transformed.variations).forEach((key) => {
|
|
275
|
+
const variation = transformed.variations[key];
|
|
276
|
+
if (variation?.item && typeof variation.item === 'object') {
|
|
277
|
+
const item = variation.item;
|
|
278
|
+
if (item.feedbackCount !== undefined && item.feedbackCount !== null) {
|
|
279
|
+
newVariations[key] = {
|
|
280
|
+
...variation,
|
|
281
|
+
item: {
|
|
282
|
+
...item,
|
|
283
|
+
feedbackCount: toStringId(item.feedbackCount),
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
newVariations[key] = variation;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
newVariations[key] = variation;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
transformed.variations = newVariations;
|
|
296
|
+
}
|
|
297
|
+
return transformed;
|
|
298
|
+
};
|
|
299
|
+
const transformFacetInternal = (facet, skipFeedback = false) => {
|
|
300
|
+
const transformed = { ...facet };
|
|
301
|
+
if (!skipFeedback || facet.id !== 'feedback') {
|
|
302
|
+
if (facet.minHitCount !== undefined && facet.minHitCount !== null) {
|
|
303
|
+
transformed.minHitCount = String(facet.minHitCount);
|
|
304
|
+
}
|
|
305
|
+
if (facet.maxResultCount !== undefined && facet.maxResultCount !== null) {
|
|
306
|
+
transformed.maxResultCount = String(facet.maxResultCount);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if ('facets' in transformed) {
|
|
310
|
+
delete transformed.facets;
|
|
311
|
+
}
|
|
312
|
+
return transformed;
|
|
313
|
+
};
|
|
314
|
+
const transformSearchFacet = (facet) => {
|
|
315
|
+
return transformFacetInternal(facet, true);
|
|
316
|
+
};
|
|
317
|
+
const transformProductItem = (product) => {
|
|
318
|
+
if (!product)
|
|
319
|
+
return product;
|
|
320
|
+
if (!product.item)
|
|
321
|
+
return product;
|
|
322
|
+
const item = product.item;
|
|
323
|
+
return {
|
|
324
|
+
...product,
|
|
325
|
+
item: {
|
|
326
|
+
...item,
|
|
327
|
+
feedbackCount: toStringId(item.feedbackCount),
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
|
|
96
332
|
/**
|
|
97
333
|
* Method getProduct - Used to get product instance.
|
|
98
334
|
*
|
|
@@ -124,11 +360,13 @@ const getProduct = async (context, params) => {
|
|
|
124
360
|
getBlocks(context, {
|
|
125
361
|
identifier: '0',
|
|
126
362
|
type: 'product',
|
|
127
|
-
})
|
|
363
|
+
}),
|
|
128
364
|
]);
|
|
129
365
|
const data = response.data;
|
|
366
|
+
const productData = data.item.documents[0].data;
|
|
367
|
+
const transformedProduct = transformProductItem(productData);
|
|
130
368
|
const mappedProduct = {
|
|
131
|
-
...
|
|
369
|
+
...transformedProduct,
|
|
132
370
|
variationAttributeMap: {
|
|
133
371
|
variations: data.variations,
|
|
134
372
|
attributes: data.attributes,
|
|
@@ -228,7 +466,15 @@ const getCategoryTree = async (context) => {
|
|
|
228
466
|
const url = new URL('/rest/storefront/categories', context.config.api.url);
|
|
229
467
|
url.searchParams.set('level', '5');
|
|
230
468
|
const { data: response } = await context.client.get(url.href);
|
|
231
|
-
|
|
469
|
+
if (Array.isArray(response.data)) {
|
|
470
|
+
return { data: response.data.map(transformCategoryTreeItem) };
|
|
471
|
+
}
|
|
472
|
+
else if (response.data?.categories !== undefined) {
|
|
473
|
+
return { data: response.data };
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
return { data: [] };
|
|
477
|
+
}
|
|
232
478
|
};
|
|
233
479
|
|
|
234
480
|
/**
|
|
@@ -283,93 +529,6 @@ const doLogin = async (context, params) => {
|
|
|
283
529
|
return { data: response.data };
|
|
284
530
|
};
|
|
285
531
|
|
|
286
|
-
function getMappedCartItems(basketItems) {
|
|
287
|
-
return basketItems.map((basketItem) => {
|
|
288
|
-
return {
|
|
289
|
-
...basketItem,
|
|
290
|
-
variation: basketItem.variation.data,
|
|
291
|
-
};
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
function roundedToOption(numberToRound, roundOption) {
|
|
296
|
-
if (roundOption === 'half')
|
|
297
|
-
return Math.floor(numberToRound * 2) / 2;
|
|
298
|
-
if (roundOption === 'tenth')
|
|
299
|
-
return Math.round(numberToRound * 10) / 10;
|
|
300
|
-
return numberToRound;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
const convertToNumberOrNull = (value) => {
|
|
304
|
-
if (value === null || value === undefined || value === '')
|
|
305
|
-
return null;
|
|
306
|
-
const parsedNumber = Number(value);
|
|
307
|
-
return isNaN(parsedNumber) ? null : parsedNumber;
|
|
308
|
-
};
|
|
309
|
-
const mapAddressForServer = (address) => {
|
|
310
|
-
return {
|
|
311
|
-
...(address.id && { id: address.id }),
|
|
312
|
-
gender: '',
|
|
313
|
-
countryId: Number(address?.country ?? 0),
|
|
314
|
-
email: address.email,
|
|
315
|
-
name1: address.companyName,
|
|
316
|
-
name2: address.firstName,
|
|
317
|
-
name3: address.lastName,
|
|
318
|
-
vatNumber: address.vatNumber,
|
|
319
|
-
contactPerson: '',
|
|
320
|
-
address1: address.streetName,
|
|
321
|
-
address2: address.apartment,
|
|
322
|
-
address3: address.additionalAddressInformation,
|
|
323
|
-
postalCode: address.zipCode,
|
|
324
|
-
postNumber: address.postNumber?.trim() !== '' ? address.postNumber : null,
|
|
325
|
-
town: address.city,
|
|
326
|
-
telephone: address.phoneNumber,
|
|
327
|
-
stateId: convertToNumberOrNull(address.state),
|
|
328
|
-
birthday: address.birthday,
|
|
329
|
-
...(address.primary && { isPrimary: true }),
|
|
330
|
-
...(address.id && { pivot: { isPrimary: true } }),
|
|
331
|
-
};
|
|
332
|
-
};
|
|
333
|
-
const mapAddressForClient = (addressData) => {
|
|
334
|
-
const address = {
|
|
335
|
-
id: addressData.id,
|
|
336
|
-
firstName: addressData.name2,
|
|
337
|
-
lastName: addressData.name3,
|
|
338
|
-
streetName: addressData.address1,
|
|
339
|
-
apartment: addressData.address2,
|
|
340
|
-
additionalAddressInformation: addressData.address3,
|
|
341
|
-
city: addressData.town,
|
|
342
|
-
state: addressData.stateId?.toString(),
|
|
343
|
-
country: addressData.countryId?.toString(),
|
|
344
|
-
zipCode: addressData.postalCode,
|
|
345
|
-
postNumber: '',
|
|
346
|
-
phoneNumber: '',
|
|
347
|
-
email: '',
|
|
348
|
-
primary: Boolean(addressData?.pivot?.isPrimary || 0),
|
|
349
|
-
companyName: addressData.name1 ?? undefined,
|
|
350
|
-
vatNumber: addressData.taxIdNumber,
|
|
351
|
-
birthday: '',
|
|
352
|
-
typeId: addressData.pivot?.typeId ?? undefined,
|
|
353
|
-
};
|
|
354
|
-
addressData.options.forEach((option) => {
|
|
355
|
-
switch (option.typeId) {
|
|
356
|
-
case exports.AddressOptionType.Telephone:
|
|
357
|
-
address.phoneNumber = option.value;
|
|
358
|
-
break;
|
|
359
|
-
case exports.AddressOptionType.Email:
|
|
360
|
-
address.email = option.value;
|
|
361
|
-
break;
|
|
362
|
-
case exports.AddressOptionType.PostNumber:
|
|
363
|
-
address.postNumber = option.value;
|
|
364
|
-
break;
|
|
365
|
-
case exports.AddressOptionType.Birthday:
|
|
366
|
-
address.birthday = option.value;
|
|
367
|
-
break;
|
|
368
|
-
}
|
|
369
|
-
});
|
|
370
|
-
return address;
|
|
371
|
-
};
|
|
372
|
-
|
|
373
532
|
/**
|
|
374
533
|
* Method getSession - get client session based on cookie
|
|
375
534
|
*
|
|
@@ -590,7 +749,12 @@ const deleteAddress = async (context, params) => {
|
|
|
590
749
|
const getActiveShippingCountries = async (context) => {
|
|
591
750
|
const url = new URL('/rest/storefront/countries', context.config.api.url);
|
|
592
751
|
const { data: response } = await context.client.get(url.href);
|
|
593
|
-
|
|
752
|
+
const countries = Array.isArray(response.data)
|
|
753
|
+
? response.data
|
|
754
|
+
: Array.isArray(response)
|
|
755
|
+
? response
|
|
756
|
+
: [];
|
|
757
|
+
return { data: countries.map(transformShippingCountry) };
|
|
594
758
|
};
|
|
595
759
|
|
|
596
760
|
/**
|
|
@@ -657,7 +821,11 @@ const getReview = async (context, params) => {
|
|
|
657
821
|
const getCart = async (context) => {
|
|
658
822
|
const url = new URL('/rest/storefront/session/', context.config.api.url);
|
|
659
823
|
const { data } = await context.client.get(url.href);
|
|
660
|
-
const cart = {
|
|
824
|
+
const cart = {
|
|
825
|
+
...data.data.cart,
|
|
826
|
+
basketRebateType: toStringId(data.data.cart.basketRebateType),
|
|
827
|
+
items: getMappedCartItems(data.data.cartItems),
|
|
828
|
+
};
|
|
661
829
|
return { data: cart };
|
|
662
830
|
};
|
|
663
831
|
|
|
@@ -699,6 +867,7 @@ const doAddCartItem = async (context, params) => {
|
|
|
699
867
|
return {
|
|
700
868
|
data: {
|
|
701
869
|
...data.events.AfterBasketChanged.basket,
|
|
870
|
+
basketRebateType: toStringId(data.events.AfterBasketChanged.basket.basketRebateType),
|
|
702
871
|
items: data.events.AfterBasketChanged.basketItems,
|
|
703
872
|
},
|
|
704
873
|
};
|
|
@@ -726,6 +895,7 @@ const deleteCartItem = async (context, params) => {
|
|
|
726
895
|
return {
|
|
727
896
|
data: {
|
|
728
897
|
...data.events.AfterBasketChanged.basket,
|
|
898
|
+
basketRebateType: toStringId(data.events.AfterBasketChanged.basket.basketRebateType),
|
|
729
899
|
items: data.events.AfterBasketChanged.basketItems,
|
|
730
900
|
},
|
|
731
901
|
};
|
|
@@ -762,6 +932,7 @@ const setCartItemQuantity = async (context, params) => {
|
|
|
762
932
|
return {
|
|
763
933
|
data: {
|
|
764
934
|
...data.events.AfterBasketChanged.basket,
|
|
935
|
+
basketRebateType: toStringId(data.events.AfterBasketChanged.basket.basketRebateType),
|
|
765
936
|
items: data.events.AfterBasketChanged.basketItems,
|
|
766
937
|
},
|
|
767
938
|
};
|
|
@@ -930,10 +1101,10 @@ const getSearch = async (context, params) => {
|
|
|
930
1101
|
}
|
|
931
1102
|
const { data: response } = await context.client.get(url.href);
|
|
932
1103
|
const data = response.data;
|
|
933
|
-
const products = data.itemList.documents.map((document) => document.data);
|
|
1104
|
+
const products = data.itemList.documents.map((document) => transformProductItem(document.data));
|
|
934
1105
|
const itemSearchResult = {
|
|
935
1106
|
products: products,
|
|
936
|
-
facets: data.facets,
|
|
1107
|
+
facets: data.facets?.map(transformSearchFacet) || [],
|
|
937
1108
|
languageUrls: data.urls,
|
|
938
1109
|
pagination: {
|
|
939
1110
|
perPageOptions: [20, 40, 100],
|
|
@@ -1125,7 +1296,14 @@ const getReturns = async (context, params) => {
|
|
|
1125
1296
|
url.searchParams.set('page', params?.page?.toString() ?? '1');
|
|
1126
1297
|
url.searchParams.set('items', params?.items?.toString() ?? '5');
|
|
1127
1298
|
const { data: response } = await context.client.get(url.href);
|
|
1128
|
-
|
|
1299
|
+
const responseData = response.data || response;
|
|
1300
|
+
return {
|
|
1301
|
+
data: {
|
|
1302
|
+
...responseData,
|
|
1303
|
+
entries: responseData.entries?.map((entry) => transformOrder(entry)) ||
|
|
1304
|
+
[],
|
|
1305
|
+
},
|
|
1306
|
+
};
|
|
1129
1307
|
};
|
|
1130
1308
|
|
|
1131
1309
|
/**
|
|
@@ -1432,6 +1610,9 @@ const getCategoriesSearch = async (context, params) => {
|
|
|
1432
1610
|
if (params.name) {
|
|
1433
1611
|
url.searchParams.set('name', params.name);
|
|
1434
1612
|
}
|
|
1613
|
+
if (params.pinnedId) {
|
|
1614
|
+
url.searchParams.set('pinnedId', params.pinnedId);
|
|
1615
|
+
}
|
|
1435
1616
|
const { data: response } = await context.client.get(url.href);
|
|
1436
1617
|
return { data: response.data };
|
|
1437
1618
|
};
|
|
@@ -1692,7 +1873,7 @@ const getOrder = async (context, params) => {
|
|
|
1692
1873
|
if (data?.order?.orderItems) {
|
|
1693
1874
|
data.order.orderItems = data.order.orderItems.filter((item) => item.typeId !== shippingCostTypeId);
|
|
1694
1875
|
}
|
|
1695
|
-
return { data: data };
|
|
1876
|
+
return { data: data.order ? transformOrder(data) : data };
|
|
1696
1877
|
};
|
|
1697
1878
|
|
|
1698
1879
|
/**
|
|
@@ -1770,7 +1951,7 @@ const doPreparePayment = async (context) => {
|
|
|
1770
1951
|
const doPlaceOrder = async (context) => {
|
|
1771
1952
|
const url = new URL('/rest/storefront/orders', context.config.api.url);
|
|
1772
1953
|
const { data: response } = await context.client.post(url.href);
|
|
1773
|
-
return { data: response.data };
|
|
1954
|
+
return { data: transformOrder(response.data) };
|
|
1774
1955
|
};
|
|
1775
1956
|
|
|
1776
1957
|
/**
|
|
@@ -2084,12 +2265,10 @@ const getInit = async (context) => {
|
|
|
2084
2265
|
data: {
|
|
2085
2266
|
session: {
|
|
2086
2267
|
user: session.customer ||
|
|
2087
|
-
(session.guest
|
|
2088
|
-
? { guestMail: session.guest }
|
|
2089
|
-
: null),
|
|
2268
|
+
(session.guest ? { guestMail: session.guest } : null),
|
|
2090
2269
|
basket: cart,
|
|
2091
2270
|
},
|
|
2092
|
-
categories,
|
|
2271
|
+
categories: categories.map(transformCategoryTreeItem),
|
|
2093
2272
|
robots,
|
|
2094
2273
|
settings,
|
|
2095
2274
|
customAssets,
|
|
@@ -3150,6 +3329,7 @@ const doCreatePayPalOrder = async (context, params) => {
|
|
|
3150
3329
|
else if (params.type === 'order') {
|
|
3151
3330
|
if (params.plentyOrderId) {
|
|
3152
3331
|
path += '/order/' + params.plentyOrderId;
|
|
3332
|
+
params.withShippingCallback = params.withShippingCallback === true;
|
|
3153
3333
|
}
|
|
3154
3334
|
else {
|
|
3155
3335
|
throw new Error('plentyOrderId is required for type "order"');
|
|
@@ -3159,6 +3339,7 @@ const doCreatePayPalOrder = async (context, params) => {
|
|
|
3159
3339
|
const { data: response } = await context.client.post(url.href, {
|
|
3160
3340
|
additionalInformation: params.additionalInformation,
|
|
3161
3341
|
bnCode: 'Plenty_Cart_PWA_PPCP',
|
|
3342
|
+
withShippingCallback: params.withShippingCallback,
|
|
3162
3343
|
});
|
|
3163
3344
|
return { data: response?.result };
|
|
3164
3345
|
};
|
package/lib/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../node_modules/validator/es/lib/util/assertString.js","../../../node_modules/validator/es/lib/util/checkHost.js","../../../node_modules/validator/es/lib/isByteLength.js","../../../node_modules/validator/es/lib/util/merge.js","../../../node_modules/validator/es/lib/isFQDN.js","../../../node_modules/validator/es/lib/isIP.js","../../../node_modules/validator/es/lib/isEmail.js"],"sourcesContent":["export default function assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}","function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport default function checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport assertString from './util/assertString';\n\n/* eslint-disable prefer-rest-params */\nexport default function isByteLength(str, options) {\n assertString(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}","export default function merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}","import assertString from './util/assertString';\nimport merge from './util/merge';\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nexport default function isFQDN(str, options) {\n assertString(str);\n options = merge(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport assertString from './util/assertString';\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nexport default function isIP(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n assertString(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\n }\n return false;\n}","import assertString from './util/assertString';\nimport checkHost from './util/checkHost';\nimport isByteLength from './isByteLength';\nimport isFQDN from './isFQDN';\nimport isIP from './isIP';\nimport merge from './util/merge';\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n // display name with only spaces is not valid\n if (!display_name_without_quotes.trim()) {\n return false;\n }\n\n // check whether display name contains illegal character\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nexport default function isEmail(str, options) {\n assertString(str);\n options = merge(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && checkHost(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !checkHost(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!isByteLength(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!isByteLength(user, {\n max: 64\n }) || !isByteLength(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!isFQDN(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!isIP(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !isIP(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}"],"names":["_typeof"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../node_modules/validator/es/lib/util/assertString.js","../../../node_modules/validator/es/lib/util/checkHost.js","../../../node_modules/validator/es/lib/isByteLength.js","../../../node_modules/validator/es/lib/util/merge.js","../../../node_modules/validator/es/lib/isFQDN.js","../../../node_modules/validator/es/lib/isIP.js","../../../node_modules/validator/es/lib/isEmail.js"],"sourcesContent":["export default function assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}","function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport default function checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n return false;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport assertString from './util/assertString';\n\n/* eslint-disable prefer-rest-params */\nexport default function isByteLength(str, options) {\n assertString(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}","export default function merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n return obj;\n}","import assertString from './util/assertString';\nimport merge from './util/merge';\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\nexport default function isFQDN(str, options) {\n assertString(str);\n options = merge(options, default_fqdn_options);\n\n /* Remove the optional trailing dot before checking validity */\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n /* Remove the optional wildcard before checking validity */\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n }\n\n // disallow spaces\n if (/\\s/.test(tld)) {\n return false;\n }\n }\n\n // reject numeric TLDs\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n }\n\n // disallow full-width chars\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n // disallow parts starting or ending with hyphen\n if (/^-|-$/.test(part)) {\n return false;\n }\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n return true;\n });\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport assertString from './util/assertString';\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n <zone_id> part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as <zone_id>, those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z.]{1,})?$');\nexport default function isIP(ipAddress) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n assertString(ipAddress);\n\n // accessing 'arguments' for backwards compatibility: isIP(ipAddress [, version])\n // eslint-disable-next-line prefer-rest-params\n var version = (_typeof(options) === 'object' ? options.version : arguments[1]) || '';\n if (!version) {\n return isIP(ipAddress, {\n version: 4\n }) || isIP(ipAddress, {\n version: 6\n });\n }\n if (version.toString() === '4') {\n return IPv4AddressRegExp.test(ipAddress);\n }\n if (version.toString() === '6') {\n return IPv6AddressRegExp.test(ipAddress);\n }\n return false;\n}","import assertString from './util/assertString';\nimport checkHost from './util/checkHost';\nimport isByteLength from './isByteLength';\nimport isFQDN from './isFQDN';\nimport isIP from './isIP';\nimport merge from './util/merge';\nvar default_email_options = {\n allow_display_name: false,\n allow_underscores: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n\n/* eslint-disable max-len */\n/* eslint-disable no-control-regex */\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)</i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A1-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\nfunction validateDisplayName(display_name) {\n var display_name_without_quotes = display_name.replace(/^\"(.+)\"$/, '$1');\n // display name with only spaces is not valid\n if (!display_name_without_quotes.trim()) {\n return false;\n }\n\n // check whether display name contains illegal character\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n }\n\n // the quotes in display name must start with character symbol \\\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n return true;\n}\nexport default function isEmail(str, options) {\n assertString(str);\n options = merge(options, default_email_options);\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n if (display_email) {\n var display_name = display_email[1];\n\n // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n str = str.replace(display_name, '').replace(/(^<|>$)/g, '');\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname <address@gmail.com>\n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n if (options.host_blacklist.length > 0 && checkHost(lower_domain, options.host_blacklist)) {\n return false;\n }\n if (options.host_whitelist.length > 0 && !checkHost(lower_domain, options.host_whitelist)) {\n return false;\n }\n var user = parts.join('@');\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase();\n\n // Removing sub-address from username before gmail validation\n var username = user.split('+')[0];\n\n // Dots are not included in gmail length restriction\n if (!isByteLength(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n var _user_parts = username.split('.');\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n if (options.ignore_max_length === false && (!isByteLength(user, {\n max: 64\n }) || !isByteLength(domain, {\n max: 254\n }))) {\n return false;\n }\n if (!isFQDN(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length,\n allow_underscores: options.allow_underscores\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n if (!isIP(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n var noBracketdomain = domain.slice(1, -1);\n if (noBracketdomain.length === 0 || !isIP(noBracketdomain)) {\n return false;\n }\n }\n }\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n if (user[0] === '\"' && user[user.length - 1] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n return true;\n}"],"names":["_typeof"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|