@unchainedshop/api 4.3.4 → 4.3.6

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 (192) hide show
  1. package/lib/chat/generateImageHandler.js +1 -1
  2. package/lib/chat/generateImageHandler.js.map +1 -1
  3. package/lib/chat/utils.js +1 -1
  4. package/lib/chat/utils.js.map +1 -1
  5. package/lib/express/chatHandler.d.ts.map +1 -1
  6. package/lib/express/chatHandler.js +7 -3
  7. package/lib/express/chatHandler.js.map +1 -1
  8. package/lib/express/createMCPMiddleware.d.ts +1 -1
  9. package/lib/express/createMCPMiddleware.d.ts.map +1 -1
  10. package/lib/express/createMCPMiddleware.js +21 -4
  11. package/lib/express/createMCPMiddleware.js.map +1 -1
  12. package/lib/fastify/chatHandler.d.ts.map +1 -1
  13. package/lib/fastify/chatHandler.js +7 -3
  14. package/lib/fastify/chatHandler.js.map +1 -1
  15. package/lib/fastify/index.d.ts.map +1 -1
  16. package/lib/fastify/index.js +1 -4
  17. package/lib/fastify/index.js.map +1 -1
  18. package/lib/fastify/mcpHandler.d.ts +1 -1
  19. package/lib/fastify/mcpHandler.d.ts.map +1 -1
  20. package/lib/fastify/mcpHandler.js +20 -5
  21. package/lib/fastify/mcpHandler.js.map +1 -1
  22. package/lib/mcp/index.d.ts +2 -2
  23. package/lib/mcp/index.d.ts.map +1 -1
  24. package/lib/mcp/index.js +1 -6
  25. package/lib/mcp/index.js.map +1 -1
  26. package/lib/mcp/resources/localization.d.ts +2 -2
  27. package/lib/mcp/resources/localization.d.ts.map +1 -1
  28. package/lib/mcp/tools/assortment/index.d.ts +2 -2
  29. package/lib/mcp/tools/assortment/index.d.ts.map +1 -1
  30. package/lib/mcp/tools/assortment/schemas.d.ts +167 -724
  31. package/lib/mcp/tools/assortment/schemas.d.ts.map +1 -1
  32. package/lib/mcp/tools/assortment/schemas.js +1 -1
  33. package/lib/mcp/tools/assortment/schemas.js.map +1 -1
  34. package/lib/mcp/tools/filter/index.d.ts +2 -2
  35. package/lib/mcp/tools/filter/index.d.ts.map +1 -1
  36. package/lib/mcp/tools/filter/schemas.d.ts +100 -413
  37. package/lib/mcp/tools/filter/schemas.d.ts.map +1 -1
  38. package/lib/mcp/tools/localization/index.d.ts +2 -2
  39. package/lib/mcp/tools/localization/index.d.ts.map +1 -1
  40. package/lib/mcp/tools/localization/schemas.d.ts +85 -224
  41. package/lib/mcp/tools/localization/schemas.d.ts.map +1 -1
  42. package/lib/mcp/tools/localization/schemas.js +3 -3
  43. package/lib/mcp/tools/localization/schemas.js.map +1 -1
  44. package/lib/mcp/tools/order/index.d.ts +1 -1
  45. package/lib/mcp/tools/order/index.d.ts.map +1 -1
  46. package/lib/mcp/tools/order/schemas.d.ts +160 -290
  47. package/lib/mcp/tools/order/schemas.d.ts.map +1 -1
  48. package/lib/mcp/tools/order/schemas.js +16 -10
  49. package/lib/mcp/tools/order/schemas.js.map +1 -1
  50. package/lib/mcp/tools/product/index.d.ts +1 -1
  51. package/lib/mcp/tools/product/index.d.ts.map +1 -1
  52. package/lib/mcp/tools/product/schemas.d.ts +373 -2153
  53. package/lib/mcp/tools/product/schemas.d.ts.map +1 -1
  54. package/lib/mcp/tools/product/schemas.js +5 -2
  55. package/lib/mcp/tools/product/schemas.js.map +1 -1
  56. package/lib/mcp/tools/provider/index.d.ts +1 -1
  57. package/lib/mcp/tools/provider/index.d.ts.map +1 -1
  58. package/lib/mcp/tools/provider/schemas.d.ts +193 -194
  59. package/lib/mcp/tools/provider/schemas.d.ts.map +1 -1
  60. package/lib/mcp/tools/provider/schemas.js +4 -4
  61. package/lib/mcp/tools/provider/schemas.js.map +1 -1
  62. package/lib/mcp/tools/quotation/index.d.ts +1 -1
  63. package/lib/mcp/tools/quotation/index.d.ts.map +1 -1
  64. package/lib/mcp/tools/quotation/schemas.d.ts +78 -172
  65. package/lib/mcp/tools/quotation/schemas.d.ts.map +1 -1
  66. package/lib/mcp/tools/quotation/schemas.js +4 -4
  67. package/lib/mcp/tools/quotation/schemas.js.map +1 -1
  68. package/lib/mcp/tools/system/index.d.ts +1 -1
  69. package/lib/mcp/tools/system/index.d.ts.map +1 -1
  70. package/lib/mcp/tools/system/schemas.d.ts +96 -346
  71. package/lib/mcp/tools/system/schemas.d.ts.map +1 -1
  72. package/lib/mcp/tools/users/index.d.ts +1 -1
  73. package/lib/mcp/tools/users/index.d.ts.map +1 -1
  74. package/lib/mcp/tools/users/schemas.d.ts +125 -789
  75. package/lib/mcp/tools/users/schemas.d.ts.map +1 -1
  76. package/lib/mcp/utils/sharedSchemas.d.ts +21 -29
  77. package/lib/mcp/utils/sharedSchemas.d.ts.map +1 -1
  78. package/lib/resolvers/mutations/accounts/verifyWeb3Address.js.map +1 -1
  79. package/package.json +6 -6
  80. package/src/chat/generateImageHandler.ts +1 -1
  81. package/src/chat/utils.ts +1 -1
  82. package/src/express/chatHandler.ts +12 -3
  83. package/src/express/createMCPMiddleware.ts +36 -8
  84. package/src/fastify/chatHandler.ts +10 -3
  85. package/src/fastify/index.ts +2 -4
  86. package/src/fastify/mcpHandler.ts +33 -9
  87. package/src/mcp/index.ts +3 -9
  88. package/src/mcp/resources/localization.ts +2 -2
  89. package/src/mcp/tools/assortment/index.ts +2 -2
  90. package/src/mcp/tools/assortment/schemas.ts +1 -1
  91. package/src/mcp/tools/filter/index.ts +2 -2
  92. package/src/mcp/tools/localization/index.ts +2 -2
  93. package/src/mcp/tools/localization/schemas.ts +4 -3
  94. package/src/mcp/tools/order/index.ts +1 -1
  95. package/src/mcp/tools/order/schemas.ts +18 -10
  96. package/src/mcp/tools/product/index.ts +1 -1
  97. package/src/mcp/tools/product/schemas.ts +5 -2
  98. package/src/mcp/tools/provider/index.ts +1 -1
  99. package/src/mcp/tools/provider/schemas.ts +5 -4
  100. package/src/mcp/tools/quotation/index.ts +1 -1
  101. package/src/mcp/tools/quotation/schemas.ts +4 -4
  102. package/src/mcp/tools/system/index.ts +1 -1
  103. package/src/mcp/tools/users/index.ts +1 -1
  104. package/src/resolvers/mutations/accounts/verifyWeb3Address.ts +3 -3
  105. package/lib/express/createApolloMiddleware.d.ts +0 -4
  106. package/lib/express/createApolloMiddleware.d.ts.map +0 -1
  107. package/lib/express/createApolloMiddleware.js +0 -36
  108. package/lib/express/createApolloMiddleware.js.map +0 -1
  109. package/lib/express/createSingleSignOnMiddleware.d.ts +0 -5
  110. package/lib/express/createSingleSignOnMiddleware.d.ts.map +0 -1
  111. package/lib/express/createSingleSignOnMiddleware.js +0 -71
  112. package/lib/express/createSingleSignOnMiddleware.js.map +0 -1
  113. package/lib/hashPassword.d.ts +0 -2
  114. package/lib/hashPassword.d.ts.map +0 -1
  115. package/lib/hashPassword.js +0 -5
  116. package/lib/hashPassword.js.map +0 -1
  117. package/lib/loaders/productLoaderBySKU.d.ts +0 -10
  118. package/lib/loaders/productLoaderBySKU.d.ts.map +0 -1
  119. package/lib/loaders/productLoaderBySKU.js +0 -16
  120. package/lib/loaders/productLoaderBySKU.js.map +0 -1
  121. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.d.ts +0 -3
  122. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.d.ts.map +0 -1
  123. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.js +0 -6
  124. package/lib/resolvers/mutations/accounts/buildSecretTOTPAuthURL.js.map +0 -1
  125. package/lib/resolvers/mutations/accounts/disableTOTP.d.ts +0 -6
  126. package/lib/resolvers/mutations/accounts/disableTOTP.d.ts.map +0 -1
  127. package/lib/resolvers/mutations/accounts/disableTOTP.js +0 -27
  128. package/lib/resolvers/mutations/accounts/disableTOTP.js.map +0 -1
  129. package/lib/resolvers/mutations/accounts/enableTOTP.d.ts +0 -6
  130. package/lib/resolvers/mutations/accounts/enableTOTP.d.ts.map +0 -1
  131. package/lib/resolvers/mutations/accounts/enableTOTP.js +0 -20
  132. package/lib/resolvers/mutations/accounts/enableTOTP.js.map +0 -1
  133. package/lib/resolvers/mutations/accounts/linkOAuthAccount.d.ts +0 -7
  134. package/lib/resolvers/mutations/accounts/linkOAuthAccount.d.ts.map +0 -1
  135. package/lib/resolvers/mutations/accounts/linkOAuthAccount.js +0 -30
  136. package/lib/resolvers/mutations/accounts/linkOAuthAccount.js.map +0 -1
  137. package/lib/resolvers/mutations/accounts/loginWithOAuth.d.ts +0 -8
  138. package/lib/resolvers/mutations/accounts/loginWithOAuth.d.ts.map +0 -1
  139. package/lib/resolvers/mutations/accounts/loginWithOAuth.js +0 -25
  140. package/lib/resolvers/mutations/accounts/loginWithOAuth.js.map +0 -1
  141. package/lib/resolvers/mutations/accounts/logoutAllSessions.d.ts +0 -5
  142. package/lib/resolvers/mutations/accounts/logoutAllSessions.d.ts.map +0 -1
  143. package/lib/resolvers/mutations/accounts/logoutAllSessions.js +0 -20
  144. package/lib/resolvers/mutations/accounts/logoutAllSessions.js.map +0 -1
  145. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.d.ts +0 -6
  146. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.d.ts.map +0 -1
  147. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js +0 -13
  148. package/lib/resolvers/mutations/accounts/unlinkOAuthAccount.js.map +0 -1
  149. package/lib/resolvers/mutations/assortments/addAssortmentMedia.d.ts +0 -6
  150. package/lib/resolvers/mutations/assortments/addAssortmentMedia.d.ts.map +0 -1
  151. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js +0 -18
  152. package/lib/resolvers/mutations/assortments/addAssortmentMedia.js.map +0 -1
  153. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.d.ts +0 -6
  154. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.d.ts.map +0 -1
  155. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.js +0 -26
  156. package/lib/resolvers/mutations/orders/updateOrderPaymentCard.js.map +0 -1
  157. package/lib/resolvers/mutations/products/addProductMedia.d.ts +0 -6
  158. package/lib/resolvers/mutations/products/addProductMedia.d.ts.map +0 -1
  159. package/lib/resolvers/mutations/products/addProductMedia.js +0 -18
  160. package/lib/resolvers/mutations/products/addProductMedia.js.map +0 -1
  161. package/lib/resolvers/mutations/users/updateUserAvatar.d.ts +0 -6
  162. package/lib/resolvers/mutations/users/updateUserAvatar.d.ts.map +0 -1
  163. package/lib/resolvers/mutations/users/updateUserAvatar.js +0 -22
  164. package/lib/resolvers/mutations/users/updateUserAvatar.js.map +0 -1
  165. package/lib/resolvers/mutations/utils/getOrderCart.d.ts +0 -7
  166. package/lib/resolvers/mutations/utils/getOrderCart.d.ts.map +0 -1
  167. package/lib/resolvers/mutations/utils/getOrderCart.js +0 -13
  168. package/lib/resolvers/mutations/utils/getOrderCart.js.map +0 -1
  169. package/lib/resolvers/type/color-types.d.ts +0 -18
  170. package/lib/resolvers/type/color-types.d.ts.map +0 -1
  171. package/lib/resolvers/type/color-types.js +0 -31
  172. package/lib/resolvers/type/color-types.js.map +0 -1
  173. package/lib/resolvers/type/dispatch-types.d.ts +0 -15
  174. package/lib/resolvers/type/dispatch-types.d.ts.map +0 -1
  175. package/lib/resolvers/type/dispatch-types.js +0 -16
  176. package/lib/resolvers/type/dispatch-types.js.map +0 -1
  177. package/lib/resolvers/type/oauth-account.d.ts +0 -6
  178. package/lib/resolvers/type/oauth-account.d.ts.map +0 -1
  179. package/lib/resolvers/type/oauth-account.js +0 -7
  180. package/lib/resolvers/type/oauth-account.js.map +0 -1
  181. package/lib/resolvers/type/oauth-provider.d.ts +0 -6
  182. package/lib/resolvers/type/oauth-provider.d.ts.map +0 -1
  183. package/lib/resolvers/type/oauth-provider.js +0 -6
  184. package/lib/resolvers/type/oauth-provider.js.map +0 -1
  185. package/lib/resolvers/type/stock-types.d.ts +0 -14
  186. package/lib/resolvers/type/stock-types.d.ts.map +0 -1
  187. package/lib/resolvers/type/stock-types.js +0 -15
  188. package/lib/resolvers/type/stock-types.js.map +0 -1
  189. package/lib/user-context.d.ts +0 -7
  190. package/lib/user-context.d.ts.map +0 -1
  191. package/lib/user-context.js +0 -76
  192. package/lib/user-context.js.map +0 -1
@@ -58,7 +58,7 @@ export const actionValidators = {
58
58
  .min(1, 'quotationId is required')
59
59
  .describe('Quotation ID to verify. Must be in REQUESTED status.'),
60
60
  quotationContext: z
61
- .record(z.any())
61
+ .record(z.any(), z.any())
62
62
  .optional()
63
63
  .describe('Optional context for verification (e.g., verification notes, approval details)'),
64
64
  })
@@ -73,7 +73,7 @@ export const actionValidators = {
73
73
  .min(1, 'quotationId is required')
74
74
  .describe('Quotation ID to create proposal for. Must be in PROCESSING status.'),
75
75
  quotationContext: z
76
- .record(z.any())
76
+ .record(z.any(), z.any())
77
77
  .optional()
78
78
  .describe(
79
79
  'Optional context for the proposal (e.g., pricing details, terms, delivery estimates)',
@@ -90,7 +90,7 @@ export const actionValidators = {
90
90
  .min(1, 'quotationId is required')
91
91
  .describe('Quotation ID to reject. Cannot be FULLFILLED.'),
92
92
  quotationContext: z
93
- .record(z.any())
93
+ .record(z.any(), z.any())
94
94
  .optional()
95
95
  .describe(
96
96
  'Optional context for rejection (e.g., reason for rejection, alternative suggestions)',
@@ -123,7 +123,7 @@ export const QuotationManagementSchema = {
123
123
  'Use this to add any additional information for the quotation, it can be how many for when or price or anything a user might want to add',
124
124
  ),
125
125
  quotationContext: z
126
- .record(z.any())
126
+ .record(z.any(), z.any())
127
127
  .optional()
128
128
  .describe('Context object (VERIFY, MAKE_PROPOSAL, REJECT only)'),
129
129
  };
@@ -1,4 +1,4 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { Context } from '../../../context.js';
3
3
  import { systemManagement } from './systemManagement.js';
4
4
  import { SystemManagementSchema } from './schemas.js';
@@ -1,4 +1,4 @@
1
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { Context } from '../../../context.js';
3
3
  import { usersManagement, UsersManagementSchema } from './usersManagement.js';
4
4
 
@@ -15,15 +15,15 @@ let hexToBytes: typeof HexToBytes;
15
15
  async function loadNoblePackages() {
16
16
  try {
17
17
  // eslint-disable-next-line
18
- // @ts-ignore
18
+ // @ts-ignore
19
19
  const curves = await import('@noble/curves/secp256k1.js');
20
20
 
21
21
  // eslint-disable-next-line
22
- // @ts-ignore
22
+ // @ts-ignore
23
23
  const hashes = await import('@noble/hashes/sha3.js');
24
24
 
25
25
  // eslint-disable-next-line
26
- // @ts-ignore
26
+ // @ts-ignore
27
27
  const utils = await import('@noble/hashes/utils.js');
28
28
 
29
29
  if (!curves || !hashes || !utils) {
@@ -1,4 +0,0 @@
1
- export default function createApolloMiddleware(apolloGraphQLServer: any, { corsOrigins }?: {
2
- corsOrigins?: any;
3
- }): any[];
4
- //# sourceMappingURL=createApolloMiddleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createApolloMiddleware.d.ts","sourceRoot":"","sources":["../../src/express/createApolloMiddleware.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,mBAAmB,KAAA,EAAE,EAAE,WAAuB,EAAE;;CAAK,SAiCnG"}
@@ -1,36 +0,0 @@
1
- import cors from 'cors';
2
- import { expressMiddleware } from '@apollo/server/express4';
3
- import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';
4
- import e from 'express';
5
- import { getCurrentContextResolver } from '../context.js';
6
- export default function createApolloMiddleware(apolloGraphQLServer, { corsOrigins = undefined } = {}) {
7
- const contextResolver = getCurrentContextResolver();
8
- const originFn = corsOrigins && Array.isArray(corsOrigins)
9
- ? (origin, callback) => {
10
- if (corsOrigins.length === 0 || !origin) {
11
- callback(null, true);
12
- return;
13
- }
14
- if (corsOrigins.indexOf(origin) !== -1) {
15
- callback(null, true);
16
- }
17
- else {
18
- callback(new Error('Not allowed by CORS'));
19
- }
20
- }
21
- : corsOrigins;
22
- return [
23
- cors(!originFn
24
- ? undefined
25
- : {
26
- origin: originFn,
27
- credentials: true,
28
- }),
29
- e.json(),
30
- graphqlUploadExpress({ maxFileSize: 10000000, maxFiles: 10 }),
31
- expressMiddleware(apolloGraphQLServer, {
32
- context: contextResolver,
33
- }),
34
- ];
35
- }
36
- //# sourceMappingURL=createApolloMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createApolloMiddleware.js","sourceRoot":"","sources":["../../src/express/createApolloMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,mBAAmB,EAAE,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE;IAClG,MAAM,eAAe,GAAG,yBAAyB,EAAE,CAAC;IAEpD,MAAM,QAAQ,GACZ,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QACvC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YACnB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACH,CAAC,CAAC,WAAW,CAAC;IAElB,OAAO;QACL,IAAI,CACF,CAAC,QAAQ;YACP,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,IAAI;aAClB,CACN;QACD,CAAC,CAAC,IAAI,EAAE;QACR,oBAAoB,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC7D,iBAAiB,CAAC,mBAAmB,EAAE;YACrC,OAAO,EAAE,eAAe;SACzB,CAAC;KACH,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { IncomingMessage } from 'http';
2
- export default function singleSignOnMiddleware(req: IncomingMessage & {
3
- query?: any;
4
- }, res: any, next: any): Promise<void>;
5
- //# sourceMappingURL=createSingleSignOnMiddleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSingleSignOnMiddleware.d.ts","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAmEvC,wBAA8B,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,GAAG,CAAA;CAAE,EAAE,GAAG,KAAA,EAAE,IAAI,KAAA,iBAoBrG"}
@@ -1,71 +0,0 @@
1
- import { createLogger } from '@unchainedshop/logger';
2
- import cookie from 'cookie';
3
- import { getCurrentContextResolver } from '../context.js';
4
- const { NODE_ENV, UNCHAINED_CLOUD_ENDPOINT, UNCHAINED_COOKIE_NAME = 'unchained_token', UNCHAINED_COOKIE_DOMAIN, } = process.env;
5
- const logger = createLogger('unchained:unchained-cloud-sso');
6
- const loginWithSingleSignOn = async (remoteToken, context) => {
7
- const domain = UNCHAINED_COOKIE_DOMAIN;
8
- const result = await fetch(UNCHAINED_CLOUD_ENDPOINT, {
9
- method: 'POST',
10
- headers: {
11
- 'content-type': 'application/json',
12
- },
13
- duplex: 'half',
14
- body: JSON.stringify({
15
- operationName: 'consume',
16
- variables: {
17
- token: remoteToken,
18
- },
19
- query: 'mutation consume($token: ID!) { controlConsumeSingleSignOnToken(token: $token) { domain } }',
20
- }),
21
- });
22
- const json = await result.json();
23
- if (json?.errors?.length > 0) {
24
- throw new Error(json.errors[0].message);
25
- }
26
- if (domain === 'localhost' || domain === json?.data?.controlConsumeSingleSignOnToken?.domain) {
27
- // create sso user if not exist and login
28
- const ssoUserId = (await context.modules.users.findUser({ username: 'sso' }))?._id ||
29
- (await context.modules.accounts.createUser({
30
- username: 'sso',
31
- roles: ['admin'],
32
- email: 'sso@unchained.local',
33
- password: null,
34
- guest: false,
35
- }, { skipMessaging: true }));
36
- const { tokenExpires, token } = await context.modules.accounts.createLoginToken(ssoUserId, context);
37
- const expires = new Date(tokenExpires || new Date().getTime() + 100000);
38
- const authCookie = cookie.serialize(UNCHAINED_COOKIE_NAME, token, {
39
- domain,
40
- httpOnly: true,
41
- expires,
42
- path: '/',
43
- sameSite: 'strict',
44
- secure: NODE_ENV === 'production',
45
- });
46
- return authCookie;
47
- }
48
- throw new Error('Invalid token/domain pair');
49
- };
50
- export default async function singleSignOnMiddleware(req, res, next) {
51
- try {
52
- if (req.query?.token && UNCHAINED_CLOUD_ENDPOINT) {
53
- const contextResolver = getCurrentContextResolver();
54
- const context = await contextResolver({ req, res });
55
- const authCookie = await loginWithSingleSignOn(req.query.token, context);
56
- if (authCookie) {
57
- res.writeHead(303, {
58
- 'Set-Cookie': authCookie,
59
- Location: '/',
60
- });
61
- res.end();
62
- return;
63
- }
64
- }
65
- }
66
- catch (e) {
67
- logger.error(e.message);
68
- }
69
- next();
70
- }
71
- //# sourceMappingURL=createSingleSignOnMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSingleSignOnMiddleware.js","sourceRoot":"","sources":["../../src/express/createSingleSignOnMiddleware.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const hashPassword: (password: string) => string;
2
- //# sourceMappingURL=hashPassword.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashPassword.d.ts","sourceRoot":"","sources":["../src/hashPassword.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,aAAc,MAAM,KAAG,MAE/C,CAAC"}
@@ -1,5 +0,0 @@
1
- import crypto from 'crypto';
2
- export const hashPassword = (password) => {
3
- return crypto.createHash('sha256').update(password).digest('hex');
4
- };
5
- //# sourceMappingURL=hashPassword.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hashPassword.js","sourceRoot":"","sources":["../src/hashPassword.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE;IACvD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { UnchainedCore } from '@unchainedshop/core';
2
- import { Product } from '@unchainedshop/core-products';
3
- import DataLoader from 'dataloader';
4
- declare const _default: (unchainedAPI: UnchainedCore) => DataLoader<{
5
- sku: string;
6
- }, Product, {
7
- sku: string;
8
- }>;
9
- export default _default;
10
- //# sourceMappingURL=productLoaderBySKU.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"productLoaderBySKU.d.ts","sourceRoot":"","sources":["../../src/loaders/productLoaderBySKU.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,UAAU,MAAM,YAAY,CAAC;yBAEpB,cAAc,aAAa;SACnB,MAAM;;SAAN,MAAM;;AAD9B,wBAiBK"}
@@ -1,16 +0,0 @@
1
- import DataLoader from 'dataloader';
2
- export default (unchainedAPI) => new DataLoader(async (queries) => {
3
- const skus = [...new Set(queries.map((q) => q.sku).filter(Boolean))];
4
- const products = await unchainedAPI.modules.products.findProducts({
5
- productSelector: {
6
- 'warehousing.sku': { $in: skus },
7
- status: { $exists: true },
8
- },
9
- });
10
- const productMap = {};
11
- for (const product of products) {
12
- productMap[product.warehousing.sku] = product;
13
- }
14
- return queries.map((q) => productMap[q.sku]);
15
- });
16
- //# sourceMappingURL=productLoaderBySKU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"productLoaderBySKU.js","sourceRoot":"","sources":["../../src/loaders/productLoaderBySKU.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,eAAe,CAAC,YAA2B,EAAE,EAAE,CAC7C,IAAI,UAAU,CAA2B,KAAK,EAAE,OAAO,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChE,eAAe,EAAE;YACf,iBAAiB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YAChC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SAC1B;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,UAAU,CAAC,OAAO,CAAC,WAAY,CAAC,GAAI,CAAC,GAAG,OAAO,CAAC;IAClD,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function buildTOTPSecret(root: Root, _: any, { modules, userId }: Context): Promise<string>;
3
- //# sourceMappingURL=buildSecretTOTPAuthURL.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildSecretTOTPAuthURL.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/buildSecretTOTPAuthURL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAE5D,wBAA8B,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,mBAI7F"}
@@ -1,6 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- export default async function buildTOTPSecret(root, _, { modules, userId }) {
3
- log('mutation buildTOTPSecret', { userId });
4
- return modules.accounts.buildTOTPSecret();
5
- }
6
- //# sourceMappingURL=buildSecretTOTPAuthURL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildSecretTOTPAuthURL.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/buildSecretTOTPAuthURL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAAC,IAAU,EAAE,CAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAW;IAC5F,GAAG,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC5C,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function disableTOTP(root: Root, params: {
3
- code: string;
4
- userId: string;
5
- }, { modules, userId }: Context): Promise<import("@unchainedshop/types/user.js").User>;
6
- //# sourceMappingURL=disableTOTP.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"disableTOTP.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/disableTOTP.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAO5D,wBAA8B,WAAW,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACxC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,wDAwB7B"}
@@ -1,27 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { TwoFactorCodeDidNotMatchError, TwoFactorNotSetError, UserNotFoundError, } from '../../../errors.js';
3
- export default async function disableTOTP(root, params, { modules, userId }) {
4
- const normalizedUserId = params.userId || userId;
5
- log(`mutation disableTOTP ${params.code} ${normalizedUserId}`, {
6
- userId,
7
- });
8
- const user = await modules.users.findUserById(normalizedUserId);
9
- if (!user)
10
- throw new UserNotFoundError({ userId: normalizedUserId });
11
- try {
12
- await modules.accounts.disableTOTP(normalizedUserId, params.code);
13
- }
14
- catch (e) {
15
- if (e?.message?.includes("2FA code didn't match"))
16
- throw new TwoFactorCodeDidNotMatchError({
17
- submittedCode: params.code,
18
- userId: params?.userId || userId,
19
- });
20
- else if (e?.message?.includes('2FA not set'))
21
- throw new TwoFactorNotSetError({ userId: params?.userId || userId });
22
- else
23
- throw e;
24
- }
25
- return user;
26
- }
27
- //# sourceMappingURL=disableTOTP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"disableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/disableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACvC,IAAU,EACV,MAAwC,EACxC,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAEjD,GAAG,CAAC,wBAAwB,MAAM,CAAC,IAAI,IAAI,gBAAgB,EAAE,EAAE;QAC7D,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,MAAM,IAAI,6BAA6B,CAAC;gBACtC,aAAa,EAAE,MAAM,CAAC,IAAI;gBAC1B,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM;aACjC,CAAC,CAAC;aACA,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;YAC1C,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;;YAClE,MAAM,CAAC,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function enableTOTP(root: Root, params: {
3
- code: string;
4
- secretBase32: string;
5
- }, { modules, userId }: Context): Promise<import("@unchainedshop/types/user.js").User>;
6
- //# sourceMappingURL=enableTOTP.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enableTOTP.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enableTOTP.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,UAAU,CACtC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC9C,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,wDAe7B"}
@@ -1,20 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { TwoFactorAlreadySetError, TwoFactorCodeDidNotMatchError } from '../../../errors.js';
3
- export default async function enableTOTP(root, params, { modules, userId }) {
4
- log(`mutation enableTOTP ${params.code}`, {
5
- userId,
6
- });
7
- try {
8
- await modules.accounts.enableTOTP(userId, params.secretBase32, params.code);
9
- }
10
- catch (e) {
11
- if (e?.message?.includes("2FA code didn't match"))
12
- throw new TwoFactorCodeDidNotMatchError({ submittedCode: params.code, userId });
13
- else if (e?.message?.includes('2FA already set'))
14
- throw new TwoFactorAlreadySetError({ userId });
15
- else
16
- throw e;
17
- }
18
- return modules.users.findUserById(userId);
19
- }
20
- //# sourceMappingURL=enableTOTP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enableTOTP.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/enableTOTP.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAE7F,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CACtC,IAAU,EACV,MAA8C,EAC9C,EAAE,OAAO,EAAE,MAAM,EAAW;IAE5B,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC;YAC/C,MAAM,IAAI,6BAA6B,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;aAC7E,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC;YAAE,MAAM,IAAI,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;;YAC5F,MAAM,CAAC,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,7 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function linkOAuthAccount(root: Root, { provider, redirectUrl, authorizationCode, }: {
3
- provider: string;
4
- redirectUrl: string;
5
- authorizationCode: string;
6
- }, context: Context): Promise<boolean>;
7
- //# sourceMappingURL=linkOAuthAccount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkOAuthAccount.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/linkOAuthAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,gBAAgB,CAC5C,IAAI,EAAE,IAAI,EACV,EACE,QAAQ,EACR,WAAW,EACX,iBAAiB,GAClB,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EACvE,OAAO,EAAE,OAAO,oBAuCjB"}
@@ -1,30 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { AuthOperationFailedError } from '../../../errors.js';
3
- export default async function linkOAuthAccount(root, { provider, redirectUrl, authorizationCode, }, context) {
4
- const { userId, user } = context;
5
- log(`mutation linkOAuthAccount ${user.username}`, {
6
- userId,
7
- });
8
- try {
9
- const { modules } = context;
10
- const authorizationToken = await modules.accounts.oAuth2.getAuthorizationToken(provider, authorizationCode, redirectUrl);
11
- if (!authorizationToken)
12
- throw new Error('Unable to authorize user');
13
- const { id, ...data } = await modules.accounts.oAuth2.getAccountData(provider, authorizationToken);
14
- await modules.users.updateUser({ _id: userId }, {
15
- $push: {
16
- [`services.oauth.${provider}`]: {
17
- id,
18
- authorizationToken,
19
- authorizationCode,
20
- data,
21
- },
22
- },
23
- }, { upsert: true });
24
- return true;
25
- }
26
- catch {
27
- throw new AuthOperationFailedError({});
28
- }
29
- }
30
- //# sourceMappingURL=linkOAuthAccount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkOAuthAccount.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/linkOAuthAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,gBAAgB,CAC5C,IAAU,EACV,EACE,QAAQ,EACR,WAAW,EACX,iBAAiB,GACoD,EACvE,OAAgB;IAEhB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEjC,GAAG,CAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,EAAE;QAChD,MAAM;KACP,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE5B,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAC5E,QAAQ,EACR,iBAAiB,EACjB,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAErE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAEnG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAC5B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;YACE,KAAK,EAAE;gBACL,CAAC,kBAAkB,QAAQ,EAAE,CAAC,EAAE;oBAC9B,EAAE;oBACF,kBAAkB;oBAClB,iBAAiB;oBACjB,IAAI;iBACL;aACF;SACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -1,8 +0,0 @@
1
- import { Context } from '@unchainedshop/types/api.js';
2
- declare const loginWithOAuth: (_: any, { provider, authorizationCode, redirectUrl, }: {
3
- provider: string;
4
- authorizationCode: string;
5
- redirectUrl: string;
6
- }, context: Context) => Promise<any | null>;
7
- export default loginWithOAuth;
8
- //# sourceMappingURL=loginWithOAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loginWithOAuth.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithOAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAStD,QAAA,MAAM,cAAc,0DAMf;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,WAC9D,OAAO,KACf,OAAO,CAAC,GAAG,GAAG,IAAI,CAkBpB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,25 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { AuthOperationFailedError, EmailAlreadyExistsError, UsernameAlreadyExistsError, UsernameOrEmailRequiredError, } from '../../../errors.js';
3
- const loginWithOAuth = async (_, { provider, authorizationCode, redirectUrl, }, context) => {
4
- log(`mutation loginWithOAuth ${provider} ${authorizationCode}`);
5
- try {
6
- return context.modules.accounts.loginWithService({
7
- service: 'oauth2',
8
- authorizationCode,
9
- provider,
10
- redirectUrl,
11
- }, context);
12
- }
13
- catch (e) {
14
- if (e.code === 'EmailAlreadyExists')
15
- throw new EmailAlreadyExistsError({});
16
- else if (e.code === 'UsernameAlreadyExists')
17
- throw new UsernameAlreadyExistsError({});
18
- else if (e.code === 'UsernameOrEmailRequired')
19
- throw new UsernameOrEmailRequiredError({});
20
- else
21
- throw new AuthOperationFailedError({});
22
- }
23
- };
24
- export default loginWithOAuth;
25
- //# sourceMappingURL=loginWithOAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loginWithOAuth.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/loginWithOAuth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAE5B,MAAM,cAAc,GAAG,KAAK,EAC1B,CAAC,EACD,EACE,QAAQ,EACR,iBAAiB,EACjB,WAAW,GAC0D,EACvE,OAAgB,EACK,EAAE;IACvB,GAAG,CAAC,2BAA2B,QAAQ,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAC9C;YACE,OAAO,EAAE,QAAQ;YACjB,iBAAiB;YACjB,QAAQ;YACR,WAAW;SACZ,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB;YAAE,MAAM,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC;aACtE,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB;YAAE,MAAM,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC;aACjF,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAAE,MAAM,IAAI,4BAA4B,CAAC,EAAE,CAAC,CAAC;;YACrF,MAAM,IAAI,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function logoutAllSessions(root: Root, _: any, context: Context): Promise<{
3
- success: boolean;
4
- }>;
5
- //# sourceMappingURL=logoutAllSessions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logoutAllSessions.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logoutAllSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO;;GAuBnF"}
@@ -1,20 +0,0 @@
1
- import { log, LogLevel } from '@unchainedshop/logger';
2
- export default async function logoutAllSessions(root, _, context) {
3
- const { modules, userId, setLoginToken } = context;
4
- log('mutation logoutAllSessions', { userId });
5
- const loggedOut = await modules.accounts.logout({
6
- loginToken: context.loginToken,
7
- userId: context.userId,
8
- }, context);
9
- if (loggedOut.error) {
10
- log('Error while logging out', {
11
- logLevel: LogLevel.Error,
12
- ...loggedOut.error,
13
- });
14
- }
15
- else {
16
- setLoginToken(context.res, null);
17
- }
18
- return { success: loggedOut.success };
19
- }
20
- //# sourceMappingURL=logoutAllSessions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logoutAllSessions.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/logoutAllSessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAU,EAAE,CAAM,EAAE,OAAgB;IAClF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEnD,GAAG,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC7C;QACE,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,EACD,OAAO,CACR,CAAC;IAEF,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,GAAG,CAAC,yBAAyB,EAAE;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;YACxB,GAAG,SAAS,CAAC,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC;AACxC,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function unlinkOAuthAccount(root: Root, { provider, oAuthAccountId }: {
3
- provider: string;
4
- oAuthAccountId: string;
5
- }, context: Context): Promise<import("@unchainedshop/types/user.js").User>;
6
- //# sourceMappingURL=unlinkOAuthAccount.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unlinkOAuthAccount.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/unlinkOAuthAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAE5D,wBAA8B,kBAAkB,CAC9C,IAAI,EAAE,IAAI,EACV,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAC1E,OAAO,EAAE,OAAO,wDAiBjB"}
@@ -1,13 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- export default async function unlinkOAuthAccount(root, { provider, oAuthAccountId }, context) {
3
- const { modules, userId } = context;
4
- log(`mutation unlinkOAuthAccount ${provider} ${oAuthAccountId}`, {
5
- userId,
6
- });
7
- return modules.users.updateUser({ _id: userId }, {
8
- $pull: {
9
- [`services.oauth.${provider}`]: { id: oAuthAccountId },
10
- },
11
- }, { upsert: true });
12
- }
13
- //# sourceMappingURL=unlinkOAuthAccount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unlinkOAuthAccount.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/accounts/unlinkOAuthAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAC9C,IAAU,EACV,EAAE,QAAQ,EAAE,cAAc,EAAgD,EAC1E,OAAgB;IAEhB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEpC,GAAG,CAAC,+BAA+B,QAAQ,IAAI,cAAc,EAAE,EAAE;QAC/D,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,EACf;QACE,KAAK,EAAE;YACL,CAAC,kBAAkB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;SACvD;KACF,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAC;AACJ,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function addAssortmentMedia(root: Root, { media, assortmentId }: {
3
- media: any;
4
- assortmentId: any;
5
- }, context: Context): Promise<import("@unchainedshop/types/assortments.media.js").AssortmentMedia>;
6
- //# sourceMappingURL=addAssortmentMedia.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAssortmentMedia.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/assortments/addAssortmentMedia.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAG5D,wBAA8B,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;;;CAAA,EAAE,OAAO,EAAE,OAAO,gFAqBrG"}
@@ -1,18 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { AssortmentNotFoundError, InvalidIdError } from '../../../errors.js';
3
- export default async function addAssortmentMedia(root, { media, assortmentId }, context) {
4
- const { modules, services, userId } = context;
5
- log(`mutation addAssortmentMedia ${assortmentId}`, { userId });
6
- if (!assortmentId)
7
- throw new InvalidIdError({ assortmentId });
8
- if (!(await modules.assortments.assortmentExists({ assortmentId })))
9
- throw new AssortmentNotFoundError({ assortmentId });
10
- const file = await services.files.uploadFileFromStream({
11
- directoryName: 'assortment-media',
12
- rawFile: media,
13
- meta: {},
14
- }, context);
15
- const assortmentMedia = await modules.assortments.media.create({ assortmentId, mediaId: file._id });
16
- return assortmentMedia;
17
- }
18
- //# sourceMappingURL=addAssortmentMedia.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"addAssortmentMedia.js","sourceRoot":"","sources":["../../../../src/resolvers/mutations/assortments/addAssortmentMedia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7E,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAgB;IACpG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC9C,GAAG,CAAC,+BAA+B,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,uBAAuB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CACpD;QACE,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;KACT,EACD,OAAO,CACR,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpG,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context, Root } from '@unchainedshop/types/api.js';
2
- export default function updateOrderPaymentCard(root: Root, { orderPaymentId, meta }: {
3
- orderPaymentId: string;
4
- meta?: any;
5
- }, context: Context): Promise<import("@unchainedshop/types/orders.payments.js").OrderPayment>;
6
- //# sourceMappingURL=updateOrderPaymentCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updateOrderPaymentCard.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/mutations/orders/updateOrderPaymentCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAI5D,wBAA8B,sBAAsB,CAClD,IAAI,EAAE,IAAI,EACV,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,EAChE,OAAO,EAAE,OAAO,2EA0BjB"}
@@ -1,26 +0,0 @@
1
- import { log } from '@unchainedshop/logger';
2
- import { PaymentProviderType } from '@unchainedshop/core-payment';
3
- import { OrderPaymentNotFoundError, InvalidIdError, OrderPaymentTypeError } from '../../../errors.js';
4
- export default async function updateOrderPaymentCard(root, { orderPaymentId, meta }, context) {
5
- const { modules, userId } = context;
6
- log(`mutation updateOrderPaymentCard ${orderPaymentId} ${JSON.stringify(meta)}`, { userId });
7
- if (!orderPaymentId)
8
- throw new InvalidIdError({ orderPaymentId });
9
- const orderPayment = await modules.orders.payments.findOrderPayment({
10
- orderPaymentId,
11
- });
12
- if (!orderPayment)
13
- throw new OrderPaymentNotFoundError({ data: { orderPaymentId } });
14
- const provider = await modules.payment.paymentProviders.findProvider({
15
- paymentProviderId: orderPayment.paymentProviderId,
16
- });
17
- const providerType = provider?.type;
18
- if (providerType !== PaymentProviderType.CARD)
19
- throw new OrderPaymentTypeError({
20
- orderPaymentId,
21
- received: providerType,
22
- required: PaymentProviderType.CARD,
23
- });
24
- return modules.orders.payments.updateContext(orderPayment._id, { meta }, context);
25
- }
26
- //# sourceMappingURL=updateOrderPaymentCard.js.map