@paakd/api 0.0.1 → 0.0.2

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 (201) hide show
  1. package/buf/validate/validate_pb.ts +5001 -0
  2. package/dist/gen/buf/validate/validate_pb.d.ts +4634 -0
  3. package/dist/gen/buf/validate/validate_pb.d.ts.map +1 -0
  4. package/dist/gen/buf/validate/validate_pb.js +414 -0
  5. package/dist/gen/src/proto/auth/v1/entities/auth_pb.d.ts +268 -0
  6. package/dist/gen/src/proto/auth/v1/entities/auth_pb.d.ts.map +1 -0
  7. package/dist/gen/src/proto/auth/v1/entities/auth_pb.js +120 -0
  8. package/dist/gen/src/proto/auth/v1/entities/policy_pb.d.ts +235 -0
  9. package/dist/gen/src/proto/auth/v1/entities/policy_pb.d.ts.map +1 -0
  10. package/dist/gen/src/proto/auth/v1/entities/policy_pb.js +98 -0
  11. package/dist/gen/src/proto/auth/v1/service_pb.d.ts +117 -0
  12. package/dist/gen/src/proto/auth/v1/service_pb.d.ts.map +1 -0
  13. package/dist/gen/src/proto/auth/v1/service_pb.js +22 -0
  14. package/dist/gen/src/proto/customers/v1/entities/address_pb.d.ts +371 -0
  15. package/dist/gen/src/proto/customers/v1/entities/address_pb.d.ts.map +1 -0
  16. package/dist/gen/src/proto/customers/v1/entities/address_pb.js +84 -0
  17. package/dist/gen/src/proto/customers/v1/entities/profile_pb.d.ts +189 -0
  18. package/dist/gen/src/proto/customers/v1/entities/profile_pb.d.ts.map +1 -0
  19. package/dist/gen/src/proto/customers/v1/entities/profile_pb.js +70 -0
  20. package/dist/gen/src/proto/customers/v1/service_pb.d.ts +85 -0
  21. package/dist/gen/src/proto/customers/v1/service_pb.d.ts.map +1 -0
  22. package/dist/gen/src/proto/customers/v1/service_pb.js +22 -0
  23. package/dist/gen/src/proto/products/v1/entities/category_pb.d.ts +234 -0
  24. package/dist/gen/src/proto/products/v1/entities/category_pb.d.ts.map +1 -0
  25. package/dist/gen/src/proto/products/v1/entities/category_pb.js +84 -0
  26. package/dist/gen/src/proto/products/v1/entities/collection_pb.d.ts +159 -0
  27. package/dist/gen/src/proto/products/v1/entities/collection_pb.d.ts.map +1 -0
  28. package/dist/gen/src/proto/products/v1/entities/collection_pb.js +70 -0
  29. package/dist/gen/src/proto/products/v1/entities/product/create_pb.d.ts +146 -0
  30. package/dist/gen/src/proto/products/v1/entities/product/create_pb.d.ts.map +1 -0
  31. package/dist/gen/src/proto/products/v1/entities/product/create_pb.js +32 -0
  32. package/dist/gen/src/proto/products/v1/entities/product/option_pb.d.ts +50 -0
  33. package/dist/gen/src/proto/products/v1/entities/product/option_pb.d.ts.map +1 -0
  34. package/dist/gen/src/proto/products/v1/entities/product/option_pb.js +32 -0
  35. package/dist/gen/src/proto/products/v1/entities/product/shared_pb.d.ts +1042 -0
  36. package/dist/gen/src/proto/products/v1/entities/product/shared_pb.d.ts.map +1 -0
  37. package/dist/gen/src/proto/products/v1/entities/product/shared_pb.js +258 -0
  38. package/dist/gen/src/proto/products/v1/entities/product/update_pb.d.ts +236 -0
  39. package/dist/gen/src/proto/products/v1/entities/product/update_pb.d.ts.map +1 -0
  40. package/dist/gen/src/proto/products/v1/entities/product/update_pb.js +88 -0
  41. package/dist/gen/src/proto/products/v1/entities/tag_pb.d.ts +175 -0
  42. package/dist/gen/src/proto/products/v1/entities/tag_pb.d.ts.map +1 -0
  43. package/dist/gen/src/proto/products/v1/entities/tag_pb.js +84 -0
  44. package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.d.ts +477 -0
  45. package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.d.ts.map +1 -0
  46. package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.js +235 -0
  47. package/dist/gen/src/proto/products/v1/entities/type_pb.d.ts +158 -0
  48. package/dist/gen/src/proto/products/v1/entities/type_pb.d.ts.map +1 -0
  49. package/dist/gen/src/proto/products/v1/entities/type_pb.js +70 -0
  50. package/dist/gen/src/proto/products/v1/entities/variant_pb.d.ts +489 -0
  51. package/dist/gen/src/proto/products/v1/entities/variant_pb.d.ts.map +1 -0
  52. package/dist/gen/src/proto/products/v1/entities/variant_pb.js +147 -0
  53. package/dist/gen/src/proto/products/v1/service_pb.d.ts +316 -0
  54. package/dist/gen/src/proto/products/v1/service_pb.d.ts.map +1 -0
  55. package/dist/gen/src/proto/products/v1/service_pb.js +36 -0
  56. package/dist/src/address.d.ts +53 -0
  57. package/dist/src/address.d.ts.map +1 -0
  58. package/dist/src/address.js +233 -0
  59. package/dist/src/address.spec.d.ts +2 -0
  60. package/dist/src/address.spec.d.ts.map +1 -0
  61. package/dist/src/address.spec.js +488 -0
  62. package/dist/src/auth.d.ts +27 -0
  63. package/dist/src/auth.d.ts.map +1 -0
  64. package/dist/src/auth.js +155 -0
  65. package/dist/src/auth.spec.d.ts +2 -0
  66. package/dist/src/auth.spec.d.ts.map +1 -0
  67. package/dist/src/auth.spec.js +582 -0
  68. package/dist/src/compressor/brotli.d.ts +3 -0
  69. package/dist/src/compressor/brotli.d.ts.map +1 -0
  70. package/dist/src/compressor/brotli.js +30 -0
  71. package/dist/src/index.d.ts +6 -0
  72. package/dist/src/index.d.ts.map +1 -0
  73. package/dist/src/interceptors.d.ts +16 -0
  74. package/dist/src/interceptors.d.ts.map +1 -0
  75. package/dist/src/interceptors.js +156 -0
  76. package/dist/src/interceptors.spec.d.ts +2 -0
  77. package/dist/src/interceptors.spec.d.ts.map +1 -0
  78. package/dist/src/interceptors.spec.js +1063 -0
  79. package/dist/src/policies.d.ts +217 -0
  80. package/dist/src/policies.d.ts.map +1 -0
  81. package/dist/src/policies.js +322 -0
  82. package/dist/src/policies.spec.d.ts +2 -0
  83. package/dist/src/policies.spec.d.ts.map +1 -0
  84. package/dist/src/policies.spec.js +463 -0
  85. package/dist/src/products.d.ts +39 -0
  86. package/dist/src/products.d.ts.map +1 -0
  87. package/dist/src/products.js +95 -0
  88. package/dist/src/products.spec.d.ts +2 -0
  89. package/dist/src/products.spec.d.ts.map +1 -0
  90. package/dist/src/products.spec.js +519 -0
  91. package/dist/src/profile.d.ts +62 -0
  92. package/dist/src/profile.d.ts.map +1 -0
  93. package/dist/src/profile.js +151 -0
  94. package/dist/src/profile.spec.d.ts +2 -0
  95. package/dist/src/profile.spec.d.ts.map +1 -0
  96. package/dist/src/profile.spec.js +475 -0
  97. package/dist/src/registration.d.ts +60 -0
  98. package/dist/src/registration.d.ts.map +1 -0
  99. package/dist/src/registration.js +147 -0
  100. package/dist/src/test-utils.d.ts +87 -0
  101. package/dist/src/test-utils.d.ts.map +1 -0
  102. package/dist/src/test-utils.js +132 -0
  103. package/gen/buf/validate/validate_pb.ts +4799 -0
  104. package/gen/src/proto/auth/v1/authv1connect/service.connect.go +454 -0
  105. package/gen/src/proto/auth/v1/entities/auth.pb.go +818 -0
  106. package/gen/src/proto/auth/v1/entities/auth_pb.ts +348 -0
  107. package/gen/src/proto/auth/v1/entities/policy.pb.go +727 -0
  108. package/gen/src/proto/auth/v1/entities/policy_pb.ts +306 -0
  109. package/gen/src/proto/auth/v1/service-AuthService_connectquery.ts +70 -0
  110. package/gen/src/proto/auth/v1/service.pb.go +119 -0
  111. package/gen/src/proto/auth/v1/service_pb.ts +152 -0
  112. package/gen/src/proto/customers/v1/customersv1connect/service.connect.go +358 -0
  113. package/gen/src/proto/customers/v1/entities/address.pb.go +1073 -0
  114. package/gen/src/proto/customers/v1/entities/address_pb.ts +478 -0
  115. package/gen/src/proto/customers/v1/entities/profile.pb.go +633 -0
  116. package/gen/src/proto/customers/v1/entities/profile_pb.ts +252 -0
  117. package/gen/src/proto/customers/v1/service-CustomerService_connectquery.ts +50 -0
  118. package/gen/src/proto/customers/v1/service.pb.go +110 -0
  119. package/gen/src/proto/customers/v1/service_pb.ts +121 -0
  120. package/gen/src/proto/files/v1/entities/file.pb.go +669 -0
  121. package/gen/src/proto/files/v1/entities/file_pb.ts +265 -0
  122. package/gen/src/proto/files/v1/filesv1connect/service.connect.go +200 -0
  123. package/gen/src/proto/files/v1/service-FileService_connectquery.ts +25 -0
  124. package/gen/src/proto/files/v1/service.pb.go +85 -0
  125. package/gen/src/proto/files/v1/service_pb.ts +65 -0
  126. package/gen/src/proto/products/v1/entities/category.pb.go +744 -0
  127. package/gen/src/proto/products/v1/entities/category_pb.ts +318 -0
  128. package/gen/src/proto/products/v1/entities/collection.pb.go +528 -0
  129. package/gen/src/proto/products/v1/entities/collection_pb.ts +214 -0
  130. package/gen/src/proto/products/v1/entities/product/create.pb.go +453 -0
  131. package/gen/src/proto/products/v1/entities/product/create_pb.ts +199 -0
  132. package/gen/src/proto/products/v1/entities/product/option.pb.go +206 -0
  133. package/gen/src/proto/products/v1/entities/product/option_pb.ts +74 -0
  134. package/gen/src/proto/products/v1/entities/product/shared.pb.go +2890 -0
  135. package/gen/src/proto/products/v1/entities/product/shared_pb.ts +1317 -0
  136. package/gen/src/proto/products/v1/entities/product/update.pb.go +794 -0
  137. package/gen/src/proto/products/v1/entities/product/update_pb.ts +325 -0
  138. package/gen/src/proto/products/v1/entities/tag.pb.go +610 -0
  139. package/gen/src/proto/products/v1/entities/tag_pb.ts +233 -0
  140. package/gen/src/proto/products/v1/entities/taxonomy.pb.go +1352 -0
  141. package/gen/src/proto/products/v1/entities/taxonomy_pb.ts +606 -0
  142. package/gen/src/proto/products/v1/entities/type.pb.go +553 -0
  143. package/gen/src/proto/products/v1/entities/type_pb.ts +215 -0
  144. package/gen/src/proto/products/v1/entities/variant.pb.go +1474 -0
  145. package/gen/src/proto/products/v1/entities/variant_pb.ts +629 -0
  146. package/gen/src/proto/products/v1/productsv1connect/service.connect.go +1195 -0
  147. package/gen/src/proto/products/v1/service-ProductsService_connectquery.ts +199 -0
  148. package/gen/src/proto/products/v1/service.pb.go +250 -0
  149. package/gen/src/proto/products/v1/service_pb.ts +429 -0
  150. package/gen/src/proto/promotions/v1/entities/campaign.pb.go +1229 -0
  151. package/gen/src/proto/promotions/v1/entities/campaign_pb.ts +511 -0
  152. package/gen/src/proto/promotions/v1/promotionsv1connect/service.connect.go +289 -0
  153. package/gen/src/proto/promotions/v1/service-CampaignService_connectquery.ts +42 -0
  154. package/gen/src/proto/promotions/v1/service.pb.go +98 -0
  155. package/gen/src/proto/promotions/v1/service_pb.ts +95 -0
  156. package/gen/src/proto/stocknodes/v1/entities/stocknode.pb.go +1499 -0
  157. package/gen/src/proto/stocknodes/v1/entities/stocknode_pb.ts +655 -0
  158. package/gen/src/proto/stocknodes/v1/service-StockNodesService_connectquery.ts +41 -0
  159. package/gen/src/proto/stocknodes/v1/service.pb.go +98 -0
  160. package/gen/src/proto/stocknodes/v1/service_pb.ts +95 -0
  161. package/gen/src/proto/stocknodes/v1/stocknodesv1connect/service.connect.go +297 -0
  162. package/package.json +5 -2
  163. package/src/address.spec.ts +0 -662
  164. package/src/address.ts +0 -300
  165. package/src/auth.spec.ts +0 -771
  166. package/src/auth.ts +0 -168
  167. package/src/compressor/brotli.ts +0 -26
  168. package/src/index.ts +0 -5
  169. package/src/interceptors.spec.ts +0 -1343
  170. package/src/interceptors.ts +0 -224
  171. package/src/policies.spec.ts +0 -595
  172. package/src/policies.ts +0 -431
  173. package/src/products.spec.ts +0 -710
  174. package/src/products.ts +0 -112
  175. package/src/profile.spec.ts +0 -626
  176. package/src/profile.ts +0 -169
  177. package/src/proto/auth/v1/entities/auth.proto +0 -140
  178. package/src/proto/auth/v1/entities/policy.proto +0 -57
  179. package/src/proto/auth/v1/service.proto +0 -26
  180. package/src/proto/customers/v1/entities/address.proto +0 -101
  181. package/src/proto/customers/v1/entities/profile.proto +0 -118
  182. package/src/proto/customers/v1/service.proto +0 -36
  183. package/src/proto/files/v1/entities/file.proto +0 -62
  184. package/src/proto/files/v1/service.proto +0 -19
  185. package/src/proto/products/v1/entities/category.proto +0 -98
  186. package/src/proto/products/v1/entities/collection.proto +0 -72
  187. package/src/proto/products/v1/entities/product/create.proto +0 -41
  188. package/src/proto/products/v1/entities/product/option.proto +0 -17
  189. package/src/proto/products/v1/entities/product/shared.proto +0 -255
  190. package/src/proto/products/v1/entities/product/update.proto +0 -66
  191. package/src/proto/products/v1/entities/tag.proto +0 -73
  192. package/src/proto/products/v1/entities/taxonomy.proto +0 -146
  193. package/src/proto/products/v1/entities/type.proto +0 -98
  194. package/src/proto/products/v1/entities/variant.proto +0 -127
  195. package/src/proto/products/v1/service.proto +0 -78
  196. package/src/proto/promotions/v1/entities/campaign.proto +0 -145
  197. package/src/proto/promotions/v1/service.proto +0 -17
  198. package/src/proto/stocknodes/v1/entities/stocknode.proto +0 -167
  199. package/src/proto/stocknodes/v1/service.proto +0 -21
  200. package/src/registration.ts +0 -170
  201. package/src/test-utils.ts +0 -176
@@ -0,0 +1,60 @@
1
+ import { Code, ConnectError } from '@connectrpc/connect';
2
+ import type { RegisterRequest } from '../gen/src/proto/auth/v1/entities/auth_pb';
3
+ export interface RegisterCustomerRequest {
4
+ body: Omit<RegisterRequest, '$typeName'>;
5
+ headers: Record<string, string | null>;
6
+ }
7
+ interface VerifyEmailRequest {
8
+ body: {
9
+ email: string;
10
+ locale: string;
11
+ idempotencyKey?: string;
12
+ };
13
+ headers: Record<string, string | null>;
14
+ }
15
+ interface ValidateOTPRequest {
16
+ body: {
17
+ email: string;
18
+ otp: string;
19
+ };
20
+ headers: Record<string, string | null>;
21
+ }
22
+ export declare function verifyEmail({ body: { email, idempotencyKey, locale }, headers, }: VerifyEmailRequest): Promise<ConnectError | {
23
+ value: import("../gen/src/proto/auth/v1/entities/auth_pb").VerifyEmailResponse;
24
+ status: string;
25
+ code?: undefined;
26
+ rawMessage?: undefined;
27
+ message?: undefined;
28
+ } | {
29
+ code: Code;
30
+ rawMessage: string;
31
+ message: string;
32
+ status: string;
33
+ value?: undefined;
34
+ }>;
35
+ export declare function validateOTP({ body: { email, otp }, headers, }: ValidateOTPRequest): Promise<ConnectError | {
36
+ value: import("../gen/src/proto/auth/v1/entities/auth_pb").ValidateOTPResponse;
37
+ status: string;
38
+ code?: undefined;
39
+ rawMessage?: undefined;
40
+ message?: undefined;
41
+ } | {
42
+ code: Code;
43
+ rawMessage: string;
44
+ message: string;
45
+ status: string;
46
+ value?: undefined;
47
+ }>;
48
+ export declare function registerCustomer({ body: val, headers, }: RegisterCustomerRequest): Promise<ConnectError | {
49
+ status: string;
50
+ code?: undefined;
51
+ rawMessage?: undefined;
52
+ message?: undefined;
53
+ } | {
54
+ code: Code;
55
+ rawMessage: string;
56
+ message: string;
57
+ status: string;
58
+ }>;
59
+ export {};
60
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAgB,MAAM,qBAAqB,CAAA;AAItE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAehF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,cAAc,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACvC;AAED,wBAAsB,WAAW,CAAC,EAChC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,EACvC,OAAO,GACR,EAAE,kBAAkB;;;;;;;;;;;;GAyCpB;AAED,wBAAsB,WAAW,CAAC,EAChC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EACpB,OAAO,GACR,EAAE,kBAAkB;;;;;;;;;;;;GAwCpB;AAED,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EAAE,GAAG,EACT,OAAO,GACR,EAAE,uBAAuB;;;;;;;;;;GAkCzB"}
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.verifyEmail = verifyEmail;
13
+ exports.validateOTP = validateOTP;
14
+ exports.registerCustomer = registerCustomer;
15
+ const connect_1 = require("@connectrpc/connect");
16
+ const connect_node_1 = require("@connectrpc/connect-node");
17
+ const config_1 = require("@paakd/config");
18
+ const service_pb_1 = require("../gen/src/proto/auth/v1/service_pb");
19
+ const brotli_1 = require("./compressor/brotli");
20
+ const interceptors_1 = require("./interceptors");
21
+ const localeMap = {
22
+ 'en-GB': 0,
23
+ 'en-US': 1,
24
+ 'nl-NL': 2,
25
+ 'de-DE': 3,
26
+ en: 0,
27
+ };
28
+ function verifyEmail(_a) {
29
+ return __awaiter(this, arguments, void 0, function* ({ body: { email, idempotencyKey, locale }, headers, }) {
30
+ var _b;
31
+ const checkoutConfig = yield (0, config_1.getCheckoutConfig)();
32
+ const transport = (0, connect_node_1.createGrpcTransport)({
33
+ baseUrl: checkoutConfig.enterpriseURL,
34
+ interceptors: [
35
+ (0, interceptors_1.createHeadersInterceptor)(headers),
36
+ (0, interceptors_1.createAuthenticationInterceptor)(checkoutConfig),
37
+ ],
38
+ acceptCompression: [brotli_1.brotliCompression],
39
+ sendCompression: brotli_1.brotliCompression,
40
+ });
41
+ const auth = (0, connect_1.createClient)(service_pb_1.AuthService, transport);
42
+ try {
43
+ const value = yield auth.verifyEmail({
44
+ email,
45
+ locale: (_b = localeMap[locale]) !== null && _b !== void 0 ? _b : 0,
46
+ idempotencyKey,
47
+ });
48
+ return {
49
+ value,
50
+ status: 'success',
51
+ };
52
+ }
53
+ catch (err) {
54
+ if (err instanceof connect_1.ConnectError) {
55
+ return {
56
+ code: err.code,
57
+ rawMessage: err.rawMessage,
58
+ message: err.rawMessage,
59
+ status: 'failed',
60
+ };
61
+ }
62
+ return {
63
+ code: connect_1.Code.Internal,
64
+ rawMessage: 'An unexpected error occurred while verifying the email.',
65
+ message: 'An unexpected error occurred while verifying the email.',
66
+ status: 'failed',
67
+ };
68
+ }
69
+ });
70
+ }
71
+ function validateOTP(_a) {
72
+ return __awaiter(this, arguments, void 0, function* ({ body: { email, otp }, headers, }) {
73
+ const checkoutConfig = yield (0, config_1.getCheckoutConfig)();
74
+ const transport = (0, connect_node_1.createGrpcTransport)({
75
+ baseUrl: checkoutConfig.enterpriseURL,
76
+ interceptors: [
77
+ (0, interceptors_1.createHeadersInterceptor)(headers),
78
+ (0, interceptors_1.createAuthenticationInterceptor)(checkoutConfig),
79
+ ],
80
+ acceptCompression: [brotli_1.brotliCompression],
81
+ sendCompression: brotli_1.brotliCompression,
82
+ });
83
+ const auth = (0, connect_1.createClient)(service_pb_1.AuthService, transport);
84
+ try {
85
+ const value = yield auth.validateOTP({
86
+ email,
87
+ otp,
88
+ });
89
+ return {
90
+ value,
91
+ status: 'success',
92
+ };
93
+ }
94
+ catch (err) {
95
+ if (err instanceof connect_1.ConnectError) {
96
+ return {
97
+ code: err.code,
98
+ rawMessage: err.rawMessage,
99
+ message: err.rawMessage,
100
+ status: 'failed',
101
+ };
102
+ }
103
+ return {
104
+ code: connect_1.Code.Internal,
105
+ rawMessage: 'An unexpected error occurred while validating the OTP.',
106
+ message: 'An unexpected error occurred while validating the OTP.',
107
+ status: 'failed',
108
+ };
109
+ }
110
+ });
111
+ }
112
+ function registerCustomer(_a) {
113
+ return __awaiter(this, arguments, void 0, function* ({ body: val, headers, }) {
114
+ const checkoutConfig = yield (0, config_1.getCheckoutConfig)();
115
+ const transport = (0, connect_node_1.createGrpcTransport)({
116
+ baseUrl: checkoutConfig.enterpriseURL,
117
+ interceptors: [
118
+ (0, interceptors_1.createHeadersInterceptor)(headers),
119
+ (0, interceptors_1.createAuthenticationInterceptor)(checkoutConfig),
120
+ ],
121
+ acceptCompression: [brotli_1.brotliCompression],
122
+ sendCompression: brotli_1.brotliCompression,
123
+ });
124
+ const auth = (0, connect_1.createClient)(service_pb_1.AuthService, transport);
125
+ try {
126
+ yield auth.register(val);
127
+ return {
128
+ status: 'success',
129
+ };
130
+ }
131
+ catch (err) {
132
+ if (err instanceof connect_1.ConnectError) {
133
+ return {
134
+ code: err.code,
135
+ rawMessage: err.rawMessage,
136
+ message: err.rawMessage,
137
+ status: 'failed',
138
+ };
139
+ }
140
+ return {
141
+ code: connect_1.Code.Internal,
142
+ message: 'An unexpected error occurred during registration.',
143
+ status: 'failed',
144
+ };
145
+ }
146
+ });
147
+ }
@@ -0,0 +1,87 @@
1
+ import { ConnectError } from '@connectrpc/connect';
2
+ import type { Checkout } from '@paakd/config';
3
+ import { type MockedFunction } from 'vitest';
4
+ export type { Checkout, MockedFunction };
5
+ /**
6
+ * Common mock client interface for service tests
7
+ */
8
+ export type MockServiceClient = Record<string, MockedFunction<(...args: unknown[]) => unknown>>;
9
+ /**
10
+ * Mock Transport type
11
+ */
12
+ export type Transport = any;
13
+ /**
14
+ * Base test context for API service tests
15
+ */
16
+ export interface BaseTestContext {
17
+ client: MockServiceClient;
18
+ config: Checkout;
19
+ interceptors: Record<string, MockedFunction<(...args: unknown[]) => unknown>>;
20
+ transport: Transport;
21
+ }
22
+ /**
23
+ * Creates a mock ConnectError with proper prototype chain
24
+ * This ensures that instanceof ConnectError checks work correctly
25
+ */
26
+ export declare function createMockConnectError(code: number, rawMessage: string, message: string): ConnectError;
27
+ /**
28
+ * Creates a default mock configuration used across API services
29
+ */
30
+ export declare function createMockConfig(): Checkout;
31
+ /**
32
+ * Creates a default mock interceptors object
33
+ */
34
+ export declare function createMockInterceptors(): Record<string, MockedFunction<(...args: unknown[]) => unknown>>;
35
+ /**
36
+ * Creates a mock gRPC transport
37
+ */
38
+ export declare function createMockTransport(): Transport;
39
+ /**
40
+ * Helper to setup common mocks for API service tests
41
+ * Returns objects ready to be used with setupService functions
42
+ */
43
+ export declare function setupCommonMocks(): {
44
+ config: Checkout;
45
+ interceptors: Record<string, MockedFunction<(...args: unknown[]) => unknown>>;
46
+ transport: Transport;
47
+ };
48
+ /**
49
+ * Clears all Vitest mocks - useful for test isolation
50
+ */
51
+ export declare function clearAllMocks(): void;
52
+ /**
53
+ * Common error scenarios for testing
54
+ */
55
+ export declare const COMMON_ERROR_SCENARIOS: {
56
+ readonly INVALID_CREDENTIALS: {
57
+ readonly code: 16;
58
+ readonly message: "UNAUTHENTICATED";
59
+ readonly rawMessage: "Invalid credentials provided";
60
+ };
61
+ readonly NOT_FOUND: {
62
+ readonly code: 5;
63
+ readonly message: "NOT_FOUND";
64
+ readonly rawMessage: "Resource not found";
65
+ };
66
+ readonly PERMISSION_DENIED: {
67
+ readonly code: 7;
68
+ readonly message: "PERMISSION_DENIED";
69
+ readonly rawMessage: "Permission denied";
70
+ };
71
+ readonly INTERNAL_ERROR: {
72
+ readonly code: 13;
73
+ readonly message: "INTERNAL";
74
+ readonly rawMessage: "Internal server error";
75
+ };
76
+ readonly SERVICE_UNAVAILABLE: {
77
+ readonly code: 14;
78
+ readonly message: "UNAVAILABLE";
79
+ readonly rawMessage: "Service temporarily unavailable";
80
+ };
81
+ readonly INVALID_ARGUMENT: {
82
+ readonly code: 3;
83
+ readonly message: "INVALID_ARGUMENT";
84
+ readonly rawMessage: "Invalid argument provided";
85
+ };
86
+ };
87
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAA;AAGhD,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;AAExC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,MAAM,EACN,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAChD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,GAAG,CAAA;AAE3B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,iBAAiB,CAAA;IACzB,MAAM,EAAE,QAAQ,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAA;IAC7E,SAAS,EAAE,SAAS,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,YAAY,CAUd;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,QAAQ,CA4B3C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAC9C,MAAM,EACN,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAChD,CAgBA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,MAAM,EAAE,QAAQ,CAAA;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,CAAA;IAC7E,SAAS,EAAE,SAAS,CAAA;CACrB,CAUA;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BzB,CAAA"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMON_ERROR_SCENARIOS = void 0;
4
+ exports.createMockConnectError = createMockConnectError;
5
+ exports.createMockConfig = createMockConfig;
6
+ exports.createMockInterceptors = createMockInterceptors;
7
+ exports.createMockTransport = createMockTransport;
8
+ exports.setupCommonMocks = setupCommonMocks;
9
+ exports.clearAllMocks = clearAllMocks;
10
+ const connect_1 = require("@connectrpc/connect");
11
+ const vitest_1 = require("vitest");
12
+ /**
13
+ * Creates a mock ConnectError with proper prototype chain
14
+ * This ensures that instanceof ConnectError checks work correctly
15
+ */
16
+ function createMockConnectError(code, rawMessage, message) {
17
+ const error = {
18
+ code,
19
+ rawMessage,
20
+ message,
21
+ name: 'ConnectError',
22
+ };
23
+ Object.setPrototypeOf(error, connect_1.ConnectError.prototype);
24
+ return error;
25
+ }
26
+ /**
27
+ * Creates a default mock configuration used across API services
28
+ */
29
+ function createMockConfig() {
30
+ return {
31
+ hostname: 'example.com',
32
+ cmsRemoteURL: 'https://cms.example.com',
33
+ enterpriseRemoteURL: 'https://enterprise.example.com',
34
+ cmsURL: 'https://cms-local.example.com',
35
+ enterpriseURL: 'https://enterprise.example.com',
36
+ secureCookiePassword: 'secure-cookie-password',
37
+ forestAPIKey: 'forest-api-key',
38
+ saleChannelAccessKey: 'channel-access',
39
+ salesChannelAPISecret: 'channel-secret',
40
+ storeAccessKey: 'store-access',
41
+ storeAPISecret: 'store-secret',
42
+ isProduction: false,
43
+ posthogKey: 'posthog-key',
44
+ posthogDomain: 'posthog.example.com',
45
+ posthogHost: 'posthog.example.com',
46
+ assetsPath: '/assets',
47
+ assetsDomain: 'assets.example.com',
48
+ turnstileKey: 'turnstile-key',
49
+ turnstileSecret: 'turnstile-secret',
50
+ redis: {
51
+ user: 'redis-user',
52
+ host: 'localhost',
53
+ password: 'redis-password',
54
+ port: 6379,
55
+ },
56
+ };
57
+ }
58
+ /**
59
+ * Creates a default mock interceptors object
60
+ */
61
+ function createMockInterceptors() {
62
+ return {
63
+ headers: vitest_1.vi
64
+ .fn()
65
+ .mockReturnValue(Symbol('headers-interceptor')),
66
+ auth: vitest_1.vi.fn().mockReturnValue(Symbol('auth-interceptor')),
67
+ customer: vitest_1.vi
68
+ .fn()
69
+ .mockReturnValue(Symbol('customer-interceptor')),
70
+ };
71
+ }
72
+ /**
73
+ * Creates a mock gRPC transport
74
+ */
75
+ function createMockTransport() {
76
+ return {};
77
+ }
78
+ /**
79
+ * Helper to setup common mocks for API service tests
80
+ * Returns objects ready to be used with setupService functions
81
+ */
82
+ function setupCommonMocks() {
83
+ const config = createMockConfig();
84
+ const interceptors = createMockInterceptors();
85
+ const transport = createMockTransport();
86
+ return {
87
+ config,
88
+ interceptors,
89
+ transport,
90
+ };
91
+ }
92
+ /**
93
+ * Clears all Vitest mocks - useful for test isolation
94
+ */
95
+ function clearAllMocks() {
96
+ vitest_1.vi.clearAllMocks();
97
+ }
98
+ /**
99
+ * Common error scenarios for testing
100
+ */
101
+ exports.COMMON_ERROR_SCENARIOS = {
102
+ INVALID_CREDENTIALS: {
103
+ code: 16,
104
+ message: 'UNAUTHENTICATED',
105
+ rawMessage: 'Invalid credentials provided',
106
+ },
107
+ NOT_FOUND: {
108
+ code: 5,
109
+ message: 'NOT_FOUND',
110
+ rawMessage: 'Resource not found',
111
+ },
112
+ PERMISSION_DENIED: {
113
+ code: 7,
114
+ message: 'PERMISSION_DENIED',
115
+ rawMessage: 'Permission denied',
116
+ },
117
+ INTERNAL_ERROR: {
118
+ code: 13,
119
+ message: 'INTERNAL',
120
+ rawMessage: 'Internal server error',
121
+ },
122
+ SERVICE_UNAVAILABLE: {
123
+ code: 14,
124
+ message: 'UNAVAILABLE',
125
+ rawMessage: 'Service temporarily unavailable',
126
+ },
127
+ INVALID_ARGUMENT: {
128
+ code: 3,
129
+ message: 'INVALID_ARGUMENT',
130
+ rawMessage: 'Invalid argument provided',
131
+ },
132
+ };