@shipengine/connect-carrier-api 4.29.2 → 4.31.0-beta

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 (56) hide show
  1. package/lib/app/metadata/carrier-app-metadata.d.ts +2 -0
  2. package/lib/app/metadata/carrier-app-metadata.js +1 -0
  3. package/lib/app/metadata/carrier-app-metadata.js.map +1 -1
  4. package/lib/app/metadata/enums.d.ts +14 -0
  5. package/lib/app/metadata/enums.js +17 -1
  6. package/lib/app/metadata/enums.js.map +1 -1
  7. package/lib/app/metadata/index.d.ts +2 -0
  8. package/lib/app/metadata/index.js +2 -0
  9. package/lib/app/metadata/index.js.map +1 -1
  10. package/lib/app/metadata/package-constraints.d.ts +13 -0
  11. package/lib/app/metadata/package-constraints.js +12 -0
  12. package/lib/app/metadata/package-constraints.js.map +1 -0
  13. package/lib/app/metadata/shipping-provider-connector.d.ts +2 -0
  14. package/lib/app/metadata/shipping-service.d.ts +13 -0
  15. package/lib/app/metadata/shipping-service.js +12 -0
  16. package/lib/app/metadata/shipping-service.js.map +1 -1
  17. package/lib/app/metadata/transit.d.ts +22 -0
  18. package/lib/app/metadata/transit.js +18 -0
  19. package/lib/app/metadata/transit.js.map +1 -0
  20. package/lib/models/cpsc-disclaim-code.d.ts +4 -0
  21. package/lib/models/cpsc-disclaim-code.js +9 -0
  22. package/lib/models/cpsc-disclaim-code.js.map +1 -0
  23. package/lib/models/cpsc-disclaim-schema.d.ts +2 -0
  24. package/lib/models/cpsc-disclaim-schema.js +14 -0
  25. package/lib/models/cpsc-disclaim-schema.js.map +1 -0
  26. package/lib/models/cpsc-disclaim.d.ts +10 -0
  27. package/lib/models/cpsc-disclaim.js +14 -0
  28. package/lib/models/cpsc-disclaim.js.map +1 -0
  29. package/lib/models/index.d.ts +3 -0
  30. package/lib/models/index.js +3 -0
  31. package/lib/models/index.js.map +1 -1
  32. package/lib/models/pickup/shipped-products-schema.js +2 -0
  33. package/lib/models/pickup/shipped-products-schema.js.map +1 -1
  34. package/lib/models/pickup/shipped-products.d.ts +3 -0
  35. package/lib/models/pickup/shipped-products.js +2 -0
  36. package/lib/models/pickup/shipped-products.js.map +1 -1
  37. package/lib/models/products.d.ts +3 -0
  38. package/lib/models/products.js +2 -0
  39. package/lib/models/products.js.map +1 -1
  40. package/package.json +1 -1
  41. package/spec.json +34 -0
  42. package/src/app/metadata/carrier-app-metadata.ts +3 -0
  43. package/src/app/metadata/enums.ts +16 -0
  44. package/src/app/metadata/index.ts +2 -0
  45. package/src/app/metadata/package-constraints.ts +20 -0
  46. package/src/app/metadata/shipping-provider-connector.ts +2 -0
  47. package/src/app/metadata/shipping-service.ts +23 -0
  48. package/src/app/metadata/transit.ts +36 -0
  49. package/src/models/cpsc-disclaim-code.ts +4 -0
  50. package/src/models/cpsc-disclaim-schema.ts +10 -0
  51. package/src/models/cpsc-disclaim.ts +11 -0
  52. package/src/models/index.ts +3 -0
  53. package/src/models/pickup/shipped-products-schema.ts +2 -0
  54. package/src/models/pickup/shipped-products.ts +3 -0
  55. package/src/models/products.ts +3 -0
  56. package/tsconfig.tsbuildinfo +1 -1
@@ -11,6 +11,11 @@ import {
11
11
  import Joi from 'joi';
12
12
 
13
13
  import { ApiCodeRegex, ApiCodeValidationMessage } from '@shipengine/connect-runtime';
14
+ import { Transit, TransitSchema } from './transit';
15
+ import { PackageConstraints, PackageConstraintsSchema } from './package-constraints';
16
+ import { ServiceDirection } from './enums';
17
+
18
+ const ServiceDirectionSchema = Joi.string().valid(...Object.values(ServiceDirection));
14
19
 
15
20
  /** @description Basic structure for each shipping service */
16
21
  export interface ShippingService {
@@ -42,6 +47,16 @@ export interface ShippingService {
42
47
  ApiCode?: string;
43
48
  /** @description The unique identifier for this shipping service. It should not change after being published */
44
49
  Id: string;
50
+ /** @description Customer-facing description of service capabilities and features */
51
+ ServiceDescription?: string;
52
+ /** @description Direction of this service */
53
+ ServiceDirection?: ServiceDirection;
54
+ /** @description List of ISO 3166-1 alpha-2 destination country codes supported by this service */
55
+ DestinationCountries?: string[];
56
+ /** @description Transit time and delivery schedule information */
57
+ Transit?: Transit;
58
+ /** @description Package size and weight constraints for this service */
59
+ PackageConstraints?: PackageConstraints;
45
60
  }
46
61
 
47
62
  export const ShippingServiceSchema = Joi.object({
@@ -59,4 +74,12 @@ export const ShippingServiceSchema = Joi.object({
59
74
  Name: Joi.string().required().max(80),
60
75
  ApiCode: Joi.string().optional().pattern(ApiCodeRegex, ApiCodeValidationMessage),
61
76
  Id: Joi.string().uuid().required(),
77
+ ServiceDescription: Joi.string().optional(),
78
+ ServiceDirection: ServiceDirectionSchema.optional(),
79
+ DestinationCountries: Joi.array()
80
+ .optional()
81
+ .items(Joi.string().pattern(/^[A-Z]{2}$/))
82
+ .unique(),
83
+ Transit: TransitSchema.optional(),
84
+ PackageConstraints: PackageConstraintsSchema.optional(),
62
85
  });
@@ -0,0 +1,36 @@
1
+ import Joi from 'joi';
2
+ import { DayOfWeek } from './enums';
3
+
4
+ /** @description Operational schedule defining collection, trunking and delivery days */
5
+ export interface OperationalSchedule {
6
+ /** @description Days on which the carrier collects parcels */
7
+ CollectionDays?: DayOfWeek[];
8
+ /** @description Days on which the carrier trunks parcels between hubs */
9
+ TrunkingDays?: DayOfWeek[];
10
+ /** @description Days on which the carrier delivers parcels */
11
+ DeliveryDays?: DayOfWeek[];
12
+ }
13
+
14
+ const DayOfWeekSchema = Joi.string().valid(...Object.values(DayOfWeek));
15
+
16
+ export const OperationalScheduleSchema = Joi.object({
17
+ CollectionDays: Joi.array().optional().items(DayOfWeekSchema).unique(),
18
+ TrunkingDays: Joi.array().optional().items(DayOfWeekSchema).unique(),
19
+ DeliveryDays: Joi.array().optional().items(DayOfWeekSchema).unique(),
20
+ });
21
+
22
+ /** @description Transit information for a shipping service */
23
+ export interface Transit {
24
+ /** @description Transit time in days, as a number or range (e.g. "3" or "3-5") */
25
+ TransitTimeInDays?: string | null;
26
+ /** @description Latest time of day by which delivery is made (e.g. "17:00") */
27
+ DeliveryByTime?: string | null;
28
+ /** @description Operational schedule for collection, trunking and delivery days */
29
+ OperationalSchedule?: OperationalSchedule;
30
+ }
31
+
32
+ export const TransitSchema = Joi.object({
33
+ TransitTimeInDays: Joi.string().optional().allow(null),
34
+ DeliveryByTime: Joi.string().optional().allow(null),
35
+ OperationalSchedule: OperationalScheduleSchema.optional(),
36
+ });
@@ -0,0 +1,4 @@
1
+ export enum CpscDisclaimCode {
2
+ A = 'A',
3
+ B = 'B',
4
+ }
@@ -0,0 +1,10 @@
1
+ import Joi from 'joi';
2
+ import { CpscDisclaimCode } from './cpsc-disclaim-code';
3
+
4
+ export const CpscDisclaimSchema = Joi.object({
5
+ disclaim_code: Joi.string()
6
+ .valid(...Object.values(CpscDisclaimCode))
7
+ .optional(),
8
+ intended_use_code: Joi.string().max(16).optional(),
9
+ intended_use_description: Joi.string().max(100).optional(),
10
+ });
@@ -0,0 +1,11 @@
1
+ import { CpscDisclaimCode } from './cpsc-disclaim-code';
2
+
3
+ /** @description CPSC (U.S. Consumer Product Safety Commission) eFiling Disclaim data for products that are not subject to CPSC regulation. */
4
+ export class CpscDisclaim {
5
+ /** @description The disclaim code indicating the reason a product is exempt from CPSC regulation. */
6
+ disclaim_code?: CpscDisclaimCode;
7
+ /** @description A code identifying the intended use of the product. Maximum length of 16 characters. */
8
+ intended_use_code?: string;
9
+ /** @description A description of the intended use of the product. Maximum length of 100 characters. */
10
+ intended_use_description?: string;
11
+ }
@@ -7,6 +7,9 @@ export * from './billing';
7
7
  export * from './confirmation-types';
8
8
  export * from './cpsc-certificate';
9
9
  export * from './cpsc-certificate-schema';
10
+ export * from './cpsc-disclaim';
11
+ export * from './cpsc-disclaim-code';
12
+ export * from './cpsc-disclaim-schema';
10
13
  export * from './currency-schema';
11
14
  export * from './currency';
12
15
  export * from './customs';
@@ -3,6 +3,7 @@ import { CurrencySchema } from '@shipengine/connect-carrier-api';
3
3
  import { WeightDetailsSchema } from '../units/weight-details-schema';
4
4
  import { ManufacturerProductIdentifierType } from '../manufacturer-product-identifier-type';
5
5
  import { CpscCertificateSchema } from '../cpsc-certificate-schema';
6
+ import { CpscDisclaimSchema } from '../cpsc-disclaim-schema';
6
7
 
7
8
  export const ShippedProductsSchema = Joi.object({
8
9
  description: Joi.string().optional(),
@@ -23,4 +24,5 @@ export const ShippedProductsSchema = Joi.object({
23
24
  manufacturer_ns_product_id: Joi.string().optional(),
24
25
  dangerous_goods: Joi.object().optional(),
25
26
  cpsc_certificates: Joi.array().items(CpscCertificateSchema).optional(),
27
+ cpsc_disclaim: CpscDisclaimSchema.optional(),
26
28
  });
@@ -2,6 +2,7 @@ import { Currency, WeightDetails } from '@shipengine/connect-carrier-api';
2
2
  import { DangerousGoods } from '../dangerous-good/dangerous-goods';
3
3
  import { ManufacturerProductIdentifierType } from '../manufacturer-product-identifier-type';
4
4
  import { CpscCertificate } from '../cpsc-certificate';
5
+ import { CpscDisclaim } from '../cpsc-disclaim';
5
6
 
6
7
  /** @description Basic structure for a product from a shipped shipment*/
7
8
  export class ShippedProducts {
@@ -37,6 +38,8 @@ export class ShippedProducts {
37
38
  dangerous_goods?: DangerousGoods[];
38
39
  /** @description CPSC (U.S. Consumer Product Safety Commission) Certificate of Compliance reference data for U.S. CPSC eFiling. Supports the Reference (Abbreviated) PGA Message Set. */
39
40
  cpsc_certificates?: CpscCertificate[];
41
+ /** @description CPSC (U.S. Consumer Product Safety Commission) eFiling Disclaim data for products that are not subject to CPSC regulation. */
42
+ cpsc_disclaim?: CpscDisclaim;
40
43
  /** @description Additional details for product. */
41
44
  [key: string]: any;
42
45
  }
@@ -4,6 +4,7 @@ import { DangerousGoods } from './dangerous-good/dangerous-goods';
4
4
  import { UnitOfMeasureTypes } from './customs/unit-of-measure-types';
5
5
  import { ManufacturerProductIdentifierType } from './manufacturer-product-identifier-type';
6
6
  import { CpscCertificate } from './cpsc-certificate';
7
+ import { CpscDisclaim } from './cpsc-disclaim';
7
8
 
8
9
  /** @description Basic structure for a product */
9
10
  export class Products {
@@ -41,6 +42,8 @@ export class Products {
41
42
  manufacturer_ns_product_id?: string;
42
43
  /** @description CPSC (U.S. Consumer Product Safety Commission) Certificate of Compliance reference data for U.S. CPSC eFiling. Supports the Reference (Abbreviated) PGA Message Set. */
43
44
  cpsc_certificates?: CpscCertificate[];
45
+ /** @description CPSC (U.S. Consumer Product Safety Commission) eFiling Disclaim data for products that are not subject to CPSC regulation. */
46
+ cpsc_disclaim?: CpscDisclaim;
44
47
  /** @description Additional details for product. */
45
48
  [key: string]: any;
46
49
  }