@unchainedshop/api 2.0.0-beta7 → 2.0.0-beta8
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-index.d.ts +3 -6
- package/lib/api-index.js +4 -12
- package/lib/api-index.js.map +1 -1
- package/lib/context.d.ts +0 -1
- package/lib/context.js +0 -12
- package/lib/context.js.map +1 -1
- package/lib/createGraphQLServer.d.ts +1 -1
- package/lib/createGraphQLServer.js +2 -33
- package/lib/createGraphQLServer.js.map +1 -1
- package/lib/express/createApolloMiddleware.d.ts +4 -0
- package/lib/express/createApolloMiddleware.js +34 -0
- package/lib/express/createApolloMiddleware.js.map +1 -0
- package/lib/express/createBulkImportMiddleware.d.ts +2 -0
- package/lib/express/createBulkImportMiddleware.js +79 -0
- package/lib/express/createBulkImportMiddleware.js.map +1 -0
- package/lib/express/createERCMetadataMiddleware.d.ts +3 -0
- package/lib/express/createERCMetadataMiddleware.js +56 -0
- package/lib/express/createERCMetadataMiddleware.js.map +1 -0
- package/lib/express/createSingleSignOnMiddleware.d.ts +6 -0
- package/lib/express/createSingleSignOnMiddleware.js +71 -0
- package/lib/express/createSingleSignOnMiddleware.js.map +1 -0
- package/lib/express/index.d.ts +6 -0
- package/lib/express/index.js +27 -0
- package/lib/express/index.js.map +1 -0
- package/lib/resolvers/mutations/accounts/changePassword.d.ts +0 -2
- package/lib/resolvers/mutations/accounts/changePassword.js +2 -2
- package/lib/resolvers/mutations/accounts/changePassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/createUser.js +2 -2
- package/lib/resolvers/mutations/accounts/createUser.js.map +1 -1
- package/lib/resolvers/mutations/accounts/enrollUser.js +1 -1
- package/lib/resolvers/mutations/accounts/enrollUser.js.map +1 -1
- package/lib/resolvers/mutations/accounts/loginWithPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/loginWithPassword.js +3 -3
- package/lib/resolvers/mutations/accounts/loginWithPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/resetPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/resetPassword.js +1 -1
- package/lib/resolvers/mutations/accounts/resetPassword.js.map +1 -1
- package/lib/resolvers/mutations/accounts/setPassword.d.ts +0 -1
- package/lib/resolvers/mutations/accounts/setPassword.js +1 -1
- package/lib/resolvers/mutations/accounts/setPassword.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortment.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortment.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentFilter.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentLink.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentLink.js.map +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js +1 -1
- package/lib/resolvers/mutations/assortments/removeAssortmentProduct.js.map +1 -1
- package/lib/resolvers/mutations/enrollments/updateEnrollment.d.ts +1 -1
- package/lib/resolvers/mutations/filters/removeFilter.js +1 -1
- package/lib/resolvers/mutations/filters/removeFilter.js.map +1 -1
- package/lib/resolvers/mutations/index.d.ts +1 -1
- package/lib/resolvers/mutations/pageView.d.ts +1 -1
- package/lib/resolvers/mutations/pageView.js +2 -2
- package/lib/resolvers/mutations/pageView.js.map +1 -1
- package/lib/resolvers/mutations/products/removeProduct.d.ts +1 -1
- package/lib/resolvers/mutations/products/removeProduct.js +5 -8
- package/lib/resolvers/mutations/products/removeProduct.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-filter-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-link-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-media-types.d.ts +1 -1
- package/lib/resolvers/type/assortment/assortment-path-link-types.d.ts +1 -4
- package/lib/resolvers/type/assortment/assortment-path-link-types.js +0 -7
- package/lib/resolvers/type/assortment/assortment-path-link-types.js.map +1 -1
- package/lib/resolvers/type/assortment/assortment-product-types.d.ts +2 -2
- package/lib/resolvers/type/assortment/assortment-types.d.ts +1 -1
- package/lib/resolvers/type/bookmark-types.d.ts +1 -1
- package/lib/resolvers/type/country-types.d.ts +1 -1
- package/lib/resolvers/type/delivery-provider-types.d.ts +1 -1
- package/lib/resolvers/type/enrollment/enrollment-delivery-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-payment-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-period-types.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-plan-tyes.d.ts +2 -2
- package/lib/resolvers/type/enrollment/enrollment-types.d.ts +2 -2
- package/lib/resolvers/type/event-types.d.ts +1 -1
- package/lib/resolvers/type/filter/filter-option-types.d.ts +2 -2
- package/lib/resolvers/type/filter/filter-types.d.ts +2 -2
- package/lib/resolvers/type/order/order-delivery-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-delivery-pickup-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-delivery-shipping-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-global-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-item-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-item-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-card-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-discount-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-generic-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-payment-invoice-types.d.ts +1 -1
- package/lib/resolvers/type/order/order-types.d.ts +1 -1
- package/lib/resolvers/type/price-types.d.ts +1 -1
- package/lib/resolvers/type/product/product-discount.d.ts +1 -1
- package/lib/resolvers/type/product/product-review-types.d.ts +1 -1
- package/lib/resolvers/type/quotation-types.d.ts +2 -2
- package/lib/resolvers/type/shop-types.d.ts +1 -1
- package/lib/resolvers/type/token-types.d.ts +1 -1
- package/lib/resolvers/type/user-types.d.ts +1 -3
- package/lib/resolvers/type/user-types.js +0 -12
- package/lib/resolvers/type/user-types.js.map +1 -1
- package/lib/resolvers/type/webauthn-credentials-types.d.ts +1 -1
- package/lib/resolvers/type/work-types.d.ts +1 -1
- package/lib/schema/{types/log.d.ts → directives.d.ts} +0 -0
- package/lib/schema/directives.js +15 -0
- package/lib/schema/directives.js.map +1 -0
- package/lib/schema/index.js +2 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/inputTypes.js +0 -15
- package/lib/schema/inputTypes.js.map +1 -1
- package/lib/schema/mutation.js +4 -23
- package/lib/schema/mutation.js.map +1 -1
- package/lib/schema/query.js +28 -10
- package/lib/schema/query.js.map +1 -1
- package/lib/schema/types/assortment.js +9 -10
- package/lib/schema/types/assortment.js.map +1 -1
- package/lib/schema/types/color.js +1 -1
- package/lib/schema/types/country.js +1 -1
- package/lib/schema/types/currency.js +1 -1
- package/lib/schema/types/delivery.js +3 -2
- package/lib/schema/types/delivery.js.map +1 -1
- package/lib/schema/types/dimensions.js +1 -1
- package/lib/schema/types/discount.js +1 -1
- package/lib/schema/types/dispatch.js +1 -0
- package/lib/schema/types/dispatch.js.map +1 -1
- package/lib/schema/types/filter.js +5 -8
- package/lib/schema/types/filter.js.map +1 -1
- package/lib/schema/types/geo-position.js +1 -1
- package/lib/schema/types/language.js +1 -1
- package/lib/schema/types/media.js +1 -1
- package/lib/schema/types/payment.js +3 -3
- package/lib/schema/types/price.js +2 -2
- package/lib/schema/types/product/bundle-product.js +2 -3
- package/lib/schema/types/product/bundle-product.js.map +1 -1
- package/lib/schema/types/product/configurable-product.js +7 -7
- package/lib/schema/types/product/plan-product.js +4 -3
- package/lib/schema/types/product/plan-product.js.map +1 -1
- package/lib/schema/types/product/product.js +11 -11
- package/lib/schema/types/product/simple-product.js +5 -4
- package/lib/schema/types/product/simple-product.js.map +1 -1
- package/lib/schema/types/product/tokenized-product.js +4 -3
- package/lib/schema/types/product/tokenized-product.js.map +1 -1
- package/lib/schema/types/search.js +3 -8
- package/lib/schema/types/search.js.map +1 -1
- package/lib/schema/types/shop.js +2 -2
- package/lib/schema/types/stock.js +1 -0
- package/lib/schema/types/stock.js.map +1 -1
- package/lib/schema/types/types.js +1 -1
- package/lib/schema/types/user.js +1 -3
- package/lib/schema/types/user.js.map +1 -1
- package/lib/schema/types/warehousing.js +3 -3
- package/package.json +23 -10
- package/src/api-index.ts +5 -26
- package/src/context.ts +0 -18
- package/src/createGraphQLServer.ts +1 -44
- package/src/express/createApolloMiddleware.ts +40 -0
- package/src/express/createBulkImportMiddleware.ts +90 -0
- package/src/express/createERCMetadataMiddleware.ts +72 -0
- package/src/express/createSingleSignOnMiddleware.ts +83 -0
- package/src/express/index.ts +48 -0
- package/src/resolvers/mutations/accounts/changePassword.ts +2 -4
- package/src/resolvers/mutations/accounts/createUser.ts +2 -2
- package/src/resolvers/mutations/accounts/enrollUser.ts +1 -1
- package/src/resolvers/mutations/accounts/loginWithPassword.ts +3 -4
- package/src/resolvers/mutations/accounts/resetPassword.ts +2 -2
- package/src/resolvers/mutations/accounts/setPassword.ts +2 -2
- package/src/resolvers/mutations/assortments/removeAssortment.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentFilter.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentLink.ts +1 -1
- package/src/resolvers/mutations/assortments/removeAssortmentProduct.ts +1 -1
- package/src/resolvers/mutations/filters/removeFilter.ts +1 -1
- package/src/resolvers/mutations/pageView.ts +2 -2
- package/src/resolvers/mutations/products/removeProduct.ts +6 -8
- package/src/resolvers/type/assortment/assortment-path-link-types.ts +0 -11
- package/src/resolvers/type/user-types.ts +0 -15
- package/src/schema/directives.js +14 -0
- package/src/schema/index.js +2 -1
- package/src/schema/inputTypes.js +0 -15
- package/src/schema/mutation.js +4 -23
- package/src/schema/query.js +28 -10
- package/src/schema/types/assortment.js +9 -10
- package/src/schema/types/color.js +1 -1
- package/src/schema/types/country.js +1 -1
- package/src/schema/types/currency.js +1 -1
- package/src/schema/types/delivery.js +3 -2
- package/src/schema/types/dimensions.js +1 -1
- package/src/schema/types/discount.js +1 -1
- package/src/schema/types/dispatch.js +1 -0
- package/src/schema/types/filter.js +5 -8
- package/src/schema/types/geo-position.js +1 -1
- package/src/schema/types/language.js +1 -1
- package/src/schema/types/media.js +1 -1
- package/src/schema/types/payment.js +3 -3
- package/src/schema/types/price.js +2 -2
- package/src/schema/types/product/bundle-product.js +2 -3
- package/src/schema/types/product/configurable-product.js +7 -7
- package/src/schema/types/product/plan-product.js +4 -3
- package/src/schema/types/product/product.js +11 -11
- package/src/schema/types/product/simple-product.js +5 -4
- package/src/schema/types/product/tokenized-product.js +4 -3
- package/src/schema/types/search.js +3 -8
- package/src/schema/types/shop.js +2 -2
- package/src/schema/types/stock.js +1 -0
- package/src/schema/types/types.js +1 -1
- package/src/schema/types/user.js +1 -3
- package/src/schema/types/warehousing.js +3 -3
- package/lib/createBulkImportServer.d.ts +0 -2
- package/lib/createBulkImportServer.js +0 -81
- package/lib/createBulkImportServer.js.map +0 -1
- package/lib/createERCMetadataServer.d.ts +0 -2
- package/lib/createERCMetadataServer.js +0 -59
- package/lib/createERCMetadataServer.js.map +0 -1
- package/lib/schema/types/log.js +0 -16
- package/lib/schema/types/log.js.map +0 -1
- package/src/createBulkImportServer.ts +0 -95
- package/src/createERCMetadataServer.ts +0 -78
- package/src/schema/types/log.js +0 -15
|
@@ -22,20 +22,20 @@ export default [
|
|
|
22
22
|
RANGE
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
type FilterTexts {
|
|
25
|
+
type FilterTexts @cacheControl(maxAge: 180) {
|
|
26
26
|
_id: ID!
|
|
27
27
|
locale: String
|
|
28
28
|
title: String
|
|
29
29
|
subtitle: String
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
type FilterOption {
|
|
32
|
+
type FilterOption @cacheControl(maxAge: 180) {
|
|
33
33
|
_id: ID!
|
|
34
34
|
texts(forceLocale: String): FilterTexts
|
|
35
35
|
value: String
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
type Filter {
|
|
38
|
+
type Filter @cacheControl(maxAge: 180) {
|
|
39
39
|
_id: ID!
|
|
40
40
|
updated: DateTime
|
|
41
41
|
created: DateTime
|
|
@@ -46,17 +46,14 @@ export default [
|
|
|
46
46
|
options: [FilterOption!]
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
type LoadedFilterOption {
|
|
50
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
49
|
+
type LoadedFilterOption @cacheControl(maxAge: 180) {
|
|
51
50
|
filteredProductsCount: Int!
|
|
52
51
|
definition: FilterOption!
|
|
53
52
|
isSelected: Boolean
|
|
54
53
|
}
|
|
55
54
|
|
|
56
|
-
type LoadedFilter {
|
|
57
|
-
examinedProducts: Int! @deprecated(reason: "Renamed, use the productsCount field")
|
|
55
|
+
type LoadedFilter @cacheControl(maxAge: 180) {
|
|
58
56
|
productsCount: Int!
|
|
59
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
60
57
|
filteredProductsCount: Int!
|
|
61
58
|
definition: Filter!
|
|
62
59
|
isSelected: Boolean
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/schema/types/filter.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/schema/types/filter.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4Db;CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type PaymentInterface {
|
|
3
|
+
type PaymentInterface @cacheControl(maxAge: 180) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
label: String
|
|
6
6
|
version: String
|
|
@@ -30,7 +30,7 @@ export default [
|
|
|
30
30
|
WRONG_CREDENTIALS
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
type PaymentCredentials {
|
|
33
|
+
type PaymentCredentials @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
34
34
|
_id: ID!
|
|
35
35
|
user: User!
|
|
36
36
|
paymentProvider: PaymentProvider!
|
|
@@ -40,7 +40,7 @@ export default [
|
|
|
40
40
|
isPreferred: Boolean!
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
type PaymentProvider {
|
|
43
|
+
type PaymentProvider @cacheControl(maxAge: 60) {
|
|
44
44
|
_id: ID!
|
|
45
45
|
created: DateTime
|
|
46
46
|
updated: DateTime
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type Price {
|
|
3
|
+
type Price @cacheControl(maxAge: 60) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
isTaxable: Boolean!
|
|
6
6
|
isNetPrice: Boolean!
|
|
@@ -8,7 +8,7 @@ export default [
|
|
|
8
8
|
currency: String!
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
type PriceRange {
|
|
11
|
+
type PriceRange @cacheControl(maxAge: 60) {
|
|
12
12
|
_id: ID!
|
|
13
13
|
minPrice: Price!
|
|
14
14
|
maxPrice: Price!
|
|
@@ -3,7 +3,7 @@ export default [
|
|
|
3
3
|
"""
|
|
4
4
|
A Bundle product consists of multiple configured products
|
|
5
5
|
"""
|
|
6
|
-
type BundleProduct implements Product {
|
|
6
|
+
type BundleProduct implements Product @cacheControl(maxAge: 180) {
|
|
7
7
|
_id: ID!
|
|
8
8
|
sequence: Int!
|
|
9
9
|
status: ProductStatus!
|
|
@@ -20,7 +20,6 @@ export default [
|
|
|
20
20
|
sort: [SortOptionInput!]
|
|
21
21
|
queryString: String
|
|
22
22
|
): [ProductReview!]!
|
|
23
|
-
|
|
24
23
|
assortmentPaths: [ProductAssortmentPath!]!
|
|
25
24
|
siblings(
|
|
26
25
|
assortmentId: ID
|
|
@@ -30,7 +29,7 @@ export default [
|
|
|
30
29
|
): [Product!]!
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
type ProductBundleItem {
|
|
32
|
+
type ProductBundleItem @cacheControl(maxAge: 180) {
|
|
34
33
|
product: Product!
|
|
35
34
|
quantity: Int!
|
|
36
35
|
configuration: [ProductConfigurationParameter!]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/bundle-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"bundle-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/bundle-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCb;CACF,CAAC"}
|
|
@@ -12,20 +12,20 @@ export default [
|
|
|
12
12
|
TEXT
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
type ProductVariationTexts {
|
|
15
|
+
type ProductVariationTexts @cacheControl(maxAge: 180) {
|
|
16
16
|
_id: ID!
|
|
17
17
|
locale: String
|
|
18
18
|
title: String
|
|
19
19
|
subtitle: String
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
type ProductVariationOption {
|
|
22
|
+
type ProductVariationOption @cacheControl(maxAge: 180) {
|
|
23
23
|
_id: ID!
|
|
24
24
|
texts(forceLocale: String): ProductVariationTexts
|
|
25
25
|
value: String
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
type ProductVariation {
|
|
28
|
+
type ProductVariation @cacheControl(maxAge: 180) {
|
|
29
29
|
_id: ID!
|
|
30
30
|
texts(forceLocale: String): ProductVariationTexts
|
|
31
31
|
type: ProductVariationType
|
|
@@ -36,7 +36,7 @@ export default [
|
|
|
36
36
|
"""
|
|
37
37
|
Key Value Combination
|
|
38
38
|
"""
|
|
39
|
-
type ProductVariationAssignmentVector {
|
|
39
|
+
type ProductVariationAssignmentVector @cacheControl(maxAge: 180) {
|
|
40
40
|
_id: ID!
|
|
41
41
|
variation: ProductVariation
|
|
42
42
|
option: ProductVariationOption
|
|
@@ -45,7 +45,7 @@ export default [
|
|
|
45
45
|
"""
|
|
46
46
|
Key Value Combination to Product Assignment
|
|
47
47
|
"""
|
|
48
|
-
type ProductVariationAssignment {
|
|
48
|
+
type ProductVariationAssignment @cacheControl(maxAge: 180) {
|
|
49
49
|
_id: ID!
|
|
50
50
|
|
|
51
51
|
"""
|
|
@@ -62,7 +62,7 @@ export default [
|
|
|
62
62
|
"""
|
|
63
63
|
Configurable Product (Proxy)
|
|
64
64
|
"""
|
|
65
|
-
type ConfigurableProduct implements Product {
|
|
65
|
+
type ConfigurableProduct implements Product @cacheControl(maxAge: 180) {
|
|
66
66
|
_id: ID!
|
|
67
67
|
sequence: Int!
|
|
68
68
|
status: ProductStatus!
|
|
@@ -97,7 +97,7 @@ export default [
|
|
|
97
97
|
includeInactive: Boolean = false
|
|
98
98
|
currency: String
|
|
99
99
|
useNetPrice: Boolean = false
|
|
100
|
-
): PriceRange
|
|
100
|
+
): PriceRange @cacheControl(scope: PRIVATE)
|
|
101
101
|
|
|
102
102
|
"""
|
|
103
103
|
Reduced list of possible products by key/value combinations
|
|
@@ -13,7 +13,7 @@ export default [
|
|
|
13
13
|
METERED
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
type ProductPlanConfiguration {
|
|
16
|
+
type ProductPlanConfiguration @cacheControl(maxAge: 180) {
|
|
17
17
|
usageCalculationType: ProductPlanUsageCalculationType!
|
|
18
18
|
billingInterval: ProductPlanConfigurationInterval!
|
|
19
19
|
billingIntervalCount: Int
|
|
@@ -32,7 +32,7 @@ export default [
|
|
|
32
32
|
"""
|
|
33
33
|
Plan (Virtual Product that somebody can enroll to)
|
|
34
34
|
"""
|
|
35
|
-
type PlanProduct implements Product {
|
|
35
|
+
type PlanProduct implements Product @cacheControl(maxAge: 180) {
|
|
36
36
|
_id: ID!
|
|
37
37
|
sequence: Int!
|
|
38
38
|
status: ProductStatus!
|
|
@@ -45,7 +45,8 @@ export default [
|
|
|
45
45
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
46
46
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
47
47
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
48
|
-
|
|
48
|
+
@cacheControl(scope: PRIVATE)
|
|
49
|
+
simulatedDiscounts(quantity: Int = 1): [ProductDiscount!] @cacheControl(scope: PRIVATE)
|
|
49
50
|
assortmentPaths(forceLocale: String): [ProductAssortmentPath!]!
|
|
50
51
|
siblings(
|
|
51
52
|
assortmentId: ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/plan-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"plan-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/plan-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEb;CACF,CAAC"}
|
|
@@ -17,20 +17,20 @@ export default [
|
|
|
17
17
|
DELETED
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
type ProductDiscount {
|
|
20
|
+
type ProductDiscount @cacheControl(maxAge: 0) {
|
|
21
21
|
_id: ID!
|
|
22
22
|
interface: DiscountInterface
|
|
23
23
|
total: Price!
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
type ProductMediaTexts {
|
|
26
|
+
type ProductMediaTexts @cacheControl(maxAge: 180) {
|
|
27
27
|
_id: ID!
|
|
28
28
|
locale: String
|
|
29
29
|
title: String
|
|
30
30
|
subtitle: String
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
type ProductMedia {
|
|
33
|
+
type ProductMedia @cacheControl(maxAge: 180) {
|
|
34
34
|
_id: ID!
|
|
35
35
|
tags: [LowerCaseString!]
|
|
36
36
|
file: Media!
|
|
@@ -38,7 +38,7 @@ export default [
|
|
|
38
38
|
texts(forceLocale: String): ProductMediaTexts
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
type ProductTexts {
|
|
41
|
+
type ProductTexts @cacheControl(maxAge: 180) {
|
|
42
42
|
_id: ID!
|
|
43
43
|
locale: String
|
|
44
44
|
slug: String
|
|
@@ -53,7 +53,7 @@ export default [
|
|
|
53
53
|
"""
|
|
54
54
|
Abstract Product
|
|
55
55
|
"""
|
|
56
|
-
interface Product {
|
|
56
|
+
interface Product @cacheControl(maxAge: 180) {
|
|
57
57
|
_id: ID!
|
|
58
58
|
sequence: Int!
|
|
59
59
|
status: ProductStatus!
|
|
@@ -81,12 +81,12 @@ export default [
|
|
|
81
81
|
"""
|
|
82
82
|
Directed assortment to product paths (breadcrumbs)
|
|
83
83
|
"""
|
|
84
|
-
type ProductAssortmentPath {
|
|
84
|
+
type ProductAssortmentPath @cacheControl(maxAge: 180) {
|
|
85
85
|
assortmentProduct: AssortmentProduct!
|
|
86
86
|
links: [AssortmentPathLink!]!
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
type ProductReview {
|
|
89
|
+
type ProductReview @cacheControl(maxAge: 60) {
|
|
90
90
|
_id: ID!
|
|
91
91
|
created: DateTime
|
|
92
92
|
updated: DateTime
|
|
@@ -97,10 +97,10 @@ export default [
|
|
|
97
97
|
title: String
|
|
98
98
|
review: String
|
|
99
99
|
voteCount(type: ProductReviewVoteType): Int
|
|
100
|
-
ownVotes: [ProductReviewVote!]!
|
|
100
|
+
ownVotes: [ProductReviewVote!]! @cacheControl(scope: PRIVATE, maxAge: 60)
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
type ProductReviewVote {
|
|
103
|
+
type ProductReviewVote @cacheControl(maxAge: 60) {
|
|
104
104
|
_id: ID!
|
|
105
105
|
timestamp: Timestamp!
|
|
106
106
|
type: ProductReviewVoteType!
|
|
@@ -117,13 +117,13 @@ export default [
|
|
|
117
117
|
value: String!
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
type PriceLevel {
|
|
120
|
+
type PriceLevel @cacheControl(maxAge: 60) {
|
|
121
121
|
minQuantity: Int!
|
|
122
122
|
maxQuantity: Int
|
|
123
123
|
price: Price!
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
-
type ProductCatalogPrice {
|
|
126
|
+
type ProductCatalogPrice @cacheControl(maxAge: 60) {
|
|
127
127
|
_id: ID!
|
|
128
128
|
isTaxable: Boolean!
|
|
129
129
|
isNetPrice: Boolean!
|
|
@@ -3,7 +3,7 @@ export default [
|
|
|
3
3
|
"""
|
|
4
4
|
Simple Product
|
|
5
5
|
"""
|
|
6
|
-
type SimpleProduct implements Product {
|
|
6
|
+
type SimpleProduct implements Product @cacheControl(maxAge: 180) {
|
|
7
7
|
_id: ID!
|
|
8
8
|
sequence: Int!
|
|
9
9
|
status: ProductStatus!
|
|
@@ -16,16 +16,17 @@ export default [
|
|
|
16
16
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
17
17
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
18
18
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
19
|
-
|
|
19
|
+
@cacheControl(scope: PRIVATE, maxAge: 10)
|
|
20
|
+
simulatedDiscounts(quantity: Int = 1): [ProductDiscount!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
20
21
|
simulatedDispatches(
|
|
21
22
|
deliveryProviderType: DeliveryProviderType = SHIPPING
|
|
22
23
|
referenceDate: Timestamp
|
|
23
24
|
quantity: Int = 1
|
|
24
|
-
): [Dispatch!]
|
|
25
|
+
): [Dispatch!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
25
26
|
simulatedStocks(
|
|
26
27
|
deliveryProviderType: DeliveryProviderType = SHIPPING
|
|
27
28
|
referenceDate: Timestamp
|
|
28
|
-
): [Stock!]
|
|
29
|
+
): [Stock!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
29
30
|
assortmentPaths: [ProductAssortmentPath!]!
|
|
30
31
|
siblings(
|
|
31
32
|
assortmentId: ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/simple-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"simple-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/simple-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDb;CACF,CAAC"}
|
|
@@ -13,7 +13,7 @@ export default [
|
|
|
13
13
|
ERC721
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
type ContractConfiguration {
|
|
16
|
+
type ContractConfiguration @cacheControl(maxAge: 180) {
|
|
17
17
|
tokenId: String
|
|
18
18
|
supply: Int
|
|
19
19
|
ercMetadataProperties: JSON
|
|
@@ -35,8 +35,9 @@ export default [
|
|
|
35
35
|
catalogPrice(quantity: Int = 1, currency: String): Price
|
|
36
36
|
leveledCatalogPrices(currency: String): [PriceLevel!]!
|
|
37
37
|
simulatedPrice(currency: String, useNetPrice: Boolean = false, quantity: Int = 1): Price
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
@cacheControl(scope: PRIVATE, maxAge: 10)
|
|
39
|
+
simulatedDiscounts(quantity: Int = 1): [ProductDiscount!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
40
|
+
simulatedStocks(referenceDate: Timestamp): [Stock!] @cacheControl(scope: PRIVATE, maxAge: 10)
|
|
40
41
|
assortmentPaths(forceLocale: String): [ProductAssortmentPath!]!
|
|
41
42
|
siblings(
|
|
42
43
|
assortmentId: ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"tokenized-product.js","sourceRoot":"","sources":["../../../../src/schema/types/product/tokenized-product.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDb;CACF,CAAC"}
|
|
@@ -7,10 +7,8 @@ export default [
|
|
|
7
7
|
"""
|
|
8
8
|
Search result
|
|
9
9
|
"""
|
|
10
|
-
type SearchResult {
|
|
11
|
-
totalProducts: Int! @deprecated(reason: "Renamed, use the productsCount field")
|
|
10
|
+
type SearchResult @cacheControl(maxAge: 180) {
|
|
12
11
|
productsCount: Int!
|
|
13
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
14
12
|
filteredProductsCount: Int!
|
|
15
13
|
filters: [LoadedFilter!]!
|
|
16
14
|
products(limit: Int = 10, offset: Int = 0): [Product!]!
|
|
@@ -19,17 +17,14 @@ export default [
|
|
|
19
17
|
"""
|
|
20
18
|
Search result
|
|
21
19
|
"""
|
|
22
|
-
type ProductSearchResult {
|
|
23
|
-
totalProducts: Int! @deprecated(reason: "Renamed, use the productsCount field")
|
|
20
|
+
type ProductSearchResult @cacheControl(maxAge: 180) {
|
|
24
21
|
productsCount: Int!
|
|
25
|
-
filteredProducts: Int! @deprecated(reason: "Renamed, use the filteredProductsCount field")
|
|
26
22
|
filteredProductsCount: Int!
|
|
27
23
|
filters: [LoadedFilter!]!
|
|
28
24
|
products(limit: Int = 10, offset: Int = 0): [Product!]!
|
|
29
25
|
}
|
|
30
26
|
|
|
31
|
-
type AssortmentSearchResult {
|
|
32
|
-
totalAssortments: Int! @deprecated(reason: "Renamed, use the assortmentsCount field")
|
|
27
|
+
type AssortmentSearchResult @cacheControl(maxAge: 180) {
|
|
33
28
|
assortmentsCount: Int!
|
|
34
29
|
assortments(limit: Int = 10, offset: Int = 0): [Assortment!]!
|
|
35
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/schema/types/search.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/schema/types/search.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6Bb;CACF,CAAC"}
|
package/lib/schema/types/shop.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stock.js","sourceRoot":"","sources":["../../../src/schema/types/stock.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;GAOb;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"stock.js","sourceRoot":"","sources":["../../../src/schema/types/stock.js"],"names":[],"mappings":"AAAA,eAAe;AACf,eAAe;IACb,aAAa,CAAC;;;;;;;GAOb;CACF,CAAC"}
|
package/lib/schema/types/user.js
CHANGED
|
@@ -5,7 +5,7 @@ export default [
|
|
|
5
5
|
"""
|
|
6
6
|
Type returned when the user logs in
|
|
7
7
|
"""
|
|
8
|
-
type LoginMethodResponse {
|
|
8
|
+
type LoginMethodResponse @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
9
9
|
"""
|
|
10
10
|
Id of the user logged in user
|
|
11
11
|
"""
|
|
@@ -86,9 +86,7 @@ export default [
|
|
|
86
86
|
|
|
87
87
|
type User {
|
|
88
88
|
_id: ID!
|
|
89
|
-
email: String @deprecated(reason: "Please use primaryEmail.address instead")
|
|
90
89
|
username: String
|
|
91
|
-
isEmailVerified: Boolean! @deprecated(reason: "Please use primaryEmail.verified instead")
|
|
92
90
|
isGuest: Boolean!
|
|
93
91
|
isTwoFactorEnabled: Boolean!
|
|
94
92
|
isInitialPassword: Boolean!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/schema/types/user.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/schema/types/user.js"],"names":[],"mappings":"AAAA,eAAe;IACb,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHb;CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default [
|
|
2
2
|
/* GraphQL */ `
|
|
3
|
-
type WarehousingInterface {
|
|
3
|
+
type WarehousingInterface @cacheControl(maxAge: 180) {
|
|
4
4
|
_id: ID!
|
|
5
5
|
label: String
|
|
6
6
|
version: String
|
|
@@ -24,7 +24,7 @@ export default [
|
|
|
24
24
|
WRONG_CREDENTIALS
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
type WarehousingProvider {
|
|
27
|
+
type WarehousingProvider @cacheControl(maxAge: 60) {
|
|
28
28
|
_id: ID!
|
|
29
29
|
created: DateTime
|
|
30
30
|
updated: DateTime
|
|
@@ -42,7 +42,7 @@ export default [
|
|
|
42
42
|
DECENTRALIZED
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
type Token {
|
|
45
|
+
type Token @cacheControl(maxAge: 0, scope: PRIVATE) {
|
|
46
46
|
_id: ID!
|
|
47
47
|
user: User
|
|
48
48
|
walletAddress: String
|
package/package.json
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unchainedshop/api",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-beta8",
|
|
4
4
|
"main": "lib/api-index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./lib/api-index.js",
|
|
7
7
|
"./*": "./lib/*"
|
|
8
8
|
},
|
|
9
|
-
"
|
|
9
|
+
"typesVersions": {
|
|
10
|
+
"*": {
|
|
11
|
+
"express": [
|
|
12
|
+
"./lib/express/index.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"express/*": [
|
|
15
|
+
"./lib/express/*"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
10
19
|
"type": "module",
|
|
11
20
|
"scripts": {
|
|
12
21
|
"clean": "rm -rf lib",
|
|
@@ -30,17 +39,20 @@
|
|
|
30
39
|
},
|
|
31
40
|
"homepage": "https://github.com/unchainedshop/unchained#readme",
|
|
32
41
|
"peerDependencies": {
|
|
33
|
-
"@apollo/server": "^4.
|
|
42
|
+
"@apollo/server": "^4.2.1",
|
|
34
43
|
"cookie": "^0.5.0",
|
|
35
44
|
"graphql": "^16.6.0"
|
|
36
45
|
},
|
|
46
|
+
"optionalDependencies": {
|
|
47
|
+
"express": "^4.18.2"
|
|
48
|
+
},
|
|
37
49
|
"dependencies": {
|
|
38
50
|
"@metamask/eth-sig-util": "^5.0.2",
|
|
39
|
-
"@unchainedshop/core": "^2.0.0-
|
|
40
|
-
"@unchainedshop/events": "^2.0.0-
|
|
41
|
-
"@unchainedshop/logger": "^2.0.0-
|
|
42
|
-
"@unchainedshop/roles": "^2.0.0-
|
|
43
|
-
"@unchainedshop/utils": "^2.0.0-
|
|
51
|
+
"@unchainedshop/core": "^2.0.0-beta8",
|
|
52
|
+
"@unchainedshop/events": "^2.0.0-beta8",
|
|
53
|
+
"@unchainedshop/logger": "^2.0.0-beta8",
|
|
54
|
+
"@unchainedshop/roles": "^2.0.0-beta8",
|
|
55
|
+
"@unchainedshop/utils": "^2.0.0-beta8",
|
|
44
56
|
"accounting": "0.4.1",
|
|
45
57
|
"dataloader": "^2.1.0",
|
|
46
58
|
"graphql-scalars": "^1.20.1",
|
|
@@ -53,10 +65,11 @@
|
|
|
53
65
|
"@types/graphql-upload": "^8.0.12",
|
|
54
66
|
"@types/locale": "^0.1.1",
|
|
55
67
|
"@types/node": "^18.11.9",
|
|
56
|
-
"@unchainedshop/types": "^2.0.0-
|
|
68
|
+
"@unchainedshop/types": "^2.0.0-beta8",
|
|
69
|
+
"express": "^4.18.2",
|
|
57
70
|
"graphql": "^16.6.0",
|
|
58
71
|
"jest": "^29.3.1",
|
|
59
72
|
"ts-jest": "^29.0.3",
|
|
60
|
-
"typescript": "^4.
|
|
73
|
+
"typescript": "^4.9.3"
|
|
61
74
|
}
|
|
62
75
|
}
|
package/src/api-index.ts
CHANGED
|
@@ -2,14 +2,13 @@ import { UnchainedServerOptions } from '@unchainedshop/types/api';
|
|
|
2
2
|
import type { ApolloServer } from '@apollo/server';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
-
import createBulkImportServer from './createBulkImportServer';
|
|
6
5
|
import createGraphQLServer from './createGraphQLServer';
|
|
7
|
-
import { createContextResolver,
|
|
8
|
-
import createERCMetadataServer from './createERCMetadataServer';
|
|
6
|
+
import { createContextResolver, setCurrentContextResolver, getCurrentContextResolver } from './context';
|
|
9
7
|
|
|
10
8
|
export * from './context';
|
|
11
9
|
export * as acl from './acl';
|
|
12
10
|
export * as errors from './errors';
|
|
11
|
+
export * as express from './express';
|
|
13
12
|
export { hashPassword } from './hashPassword';
|
|
14
13
|
export * as roles from './roles';
|
|
15
14
|
export { createContextResolver, getCurrentContextResolver, setCurrentContextResolver };
|
|
@@ -32,20 +31,8 @@ const packageJson = loadJSON('../package.json');
|
|
|
32
31
|
|
|
33
32
|
const UNCHAINED_API_VERSION = process.env.UNCHAINED_API_VERSION || packageJson?.version || '1.2.x';
|
|
34
33
|
|
|
35
|
-
export const startAPIServer = async (
|
|
36
|
-
|
|
37
|
-
): Promise<{
|
|
38
|
-
apolloGraphQLServer: ApolloServer;
|
|
39
|
-
bulkImportServer: any;
|
|
40
|
-
ercMetadataServer: any;
|
|
41
|
-
}> => {
|
|
42
|
-
const {
|
|
43
|
-
unchainedAPI,
|
|
44
|
-
roles,
|
|
45
|
-
expressApp,
|
|
46
|
-
context: customContext,
|
|
47
|
-
...apolloServerOptions
|
|
48
|
-
} = options || {};
|
|
34
|
+
export const startAPIServer = async (options: UnchainedServerOptions): Promise<ApolloServer> => {
|
|
35
|
+
const { unchainedAPI, roles, context: customContext, ...apolloServerOptions } = options || {};
|
|
49
36
|
|
|
50
37
|
const contextResolver = createContextResolver(unchainedAPI, roles, UNCHAINED_API_VERSION);
|
|
51
38
|
|
|
@@ -57,13 +44,5 @@ export const startAPIServer = async (
|
|
|
57
44
|
: contextResolver,
|
|
58
45
|
);
|
|
59
46
|
|
|
60
|
-
|
|
61
|
-
const bulkImportServer = createBulkImportServer(expressApp);
|
|
62
|
-
const ercMetadataServer = createERCMetadataServer(expressApp);
|
|
63
|
-
|
|
64
|
-
return {
|
|
65
|
-
apolloGraphQLServer,
|
|
66
|
-
bulkImportServer,
|
|
67
|
-
ercMetadataServer,
|
|
68
|
-
};
|
|
47
|
+
return createGraphQLServer(apolloServerOptions);
|
|
69
48
|
};
|
package/src/context.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { UnchainedContextResolver } from '@unchainedshop/types/api';
|
|
2
2
|
import { UnchainedCore } from '@unchainedshop/types/core';
|
|
3
|
-
import { IncomingMessage, OutgoingMessage } from 'http';
|
|
4
3
|
import instantiateLoaders from './loaders';
|
|
5
4
|
import { getLocaleContext } from './locale-context';
|
|
6
5
|
import { getUserContext } from './user-context';
|
|
@@ -32,20 +31,3 @@ export const createContextResolver =
|
|
|
32
31
|
version,
|
|
33
32
|
};
|
|
34
33
|
};
|
|
35
|
-
|
|
36
|
-
export const useMiddlewareWithCurrentContext = (expressApp, path, ...middleware) => {
|
|
37
|
-
const addContext = async function middlewareWithContext(
|
|
38
|
-
req: IncomingMessage & { unchainedContext?: UnchainedCore },
|
|
39
|
-
res: OutgoingMessage,
|
|
40
|
-
next,
|
|
41
|
-
) {
|
|
42
|
-
try {
|
|
43
|
-
req.unchainedContext = await context({ req, res });
|
|
44
|
-
next();
|
|
45
|
-
} catch (error) {
|
|
46
|
-
next(error);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
expressApp.use(path, addContext, ...middleware);
|
|
51
|
-
};
|