@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.
- package/buf/validate/validate_pb.ts +5001 -0
- package/dist/gen/buf/validate/validate_pb.d.ts +4634 -0
- package/dist/gen/buf/validate/validate_pb.d.ts.map +1 -0
- package/dist/gen/buf/validate/validate_pb.js +414 -0
- package/dist/gen/src/proto/auth/v1/entities/auth_pb.d.ts +268 -0
- package/dist/gen/src/proto/auth/v1/entities/auth_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/auth/v1/entities/auth_pb.js +120 -0
- package/dist/gen/src/proto/auth/v1/entities/policy_pb.d.ts +235 -0
- package/dist/gen/src/proto/auth/v1/entities/policy_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/auth/v1/entities/policy_pb.js +98 -0
- package/dist/gen/src/proto/auth/v1/service_pb.d.ts +117 -0
- package/dist/gen/src/proto/auth/v1/service_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/auth/v1/service_pb.js +22 -0
- package/dist/gen/src/proto/customers/v1/entities/address_pb.d.ts +371 -0
- package/dist/gen/src/proto/customers/v1/entities/address_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/customers/v1/entities/address_pb.js +84 -0
- package/dist/gen/src/proto/customers/v1/entities/profile_pb.d.ts +189 -0
- package/dist/gen/src/proto/customers/v1/entities/profile_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/customers/v1/entities/profile_pb.js +70 -0
- package/dist/gen/src/proto/customers/v1/service_pb.d.ts +85 -0
- package/dist/gen/src/proto/customers/v1/service_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/customers/v1/service_pb.js +22 -0
- package/dist/gen/src/proto/products/v1/entities/category_pb.d.ts +234 -0
- package/dist/gen/src/proto/products/v1/entities/category_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/category_pb.js +84 -0
- package/dist/gen/src/proto/products/v1/entities/collection_pb.d.ts +159 -0
- package/dist/gen/src/proto/products/v1/entities/collection_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/collection_pb.js +70 -0
- package/dist/gen/src/proto/products/v1/entities/product/create_pb.d.ts +146 -0
- package/dist/gen/src/proto/products/v1/entities/product/create_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/product/create_pb.js +32 -0
- package/dist/gen/src/proto/products/v1/entities/product/option_pb.d.ts +50 -0
- package/dist/gen/src/proto/products/v1/entities/product/option_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/product/option_pb.js +32 -0
- package/dist/gen/src/proto/products/v1/entities/product/shared_pb.d.ts +1042 -0
- package/dist/gen/src/proto/products/v1/entities/product/shared_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/product/shared_pb.js +258 -0
- package/dist/gen/src/proto/products/v1/entities/product/update_pb.d.ts +236 -0
- package/dist/gen/src/proto/products/v1/entities/product/update_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/product/update_pb.js +88 -0
- package/dist/gen/src/proto/products/v1/entities/tag_pb.d.ts +175 -0
- package/dist/gen/src/proto/products/v1/entities/tag_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/tag_pb.js +84 -0
- package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.d.ts +477 -0
- package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/taxonomy_pb.js +235 -0
- package/dist/gen/src/proto/products/v1/entities/type_pb.d.ts +158 -0
- package/dist/gen/src/proto/products/v1/entities/type_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/type_pb.js +70 -0
- package/dist/gen/src/proto/products/v1/entities/variant_pb.d.ts +489 -0
- package/dist/gen/src/proto/products/v1/entities/variant_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/entities/variant_pb.js +147 -0
- package/dist/gen/src/proto/products/v1/service_pb.d.ts +316 -0
- package/dist/gen/src/proto/products/v1/service_pb.d.ts.map +1 -0
- package/dist/gen/src/proto/products/v1/service_pb.js +36 -0
- package/dist/src/address.d.ts +53 -0
- package/dist/src/address.d.ts.map +1 -0
- package/dist/src/address.js +233 -0
- package/dist/src/address.spec.d.ts +2 -0
- package/dist/src/address.spec.d.ts.map +1 -0
- package/dist/src/address.spec.js +488 -0
- package/dist/src/auth.d.ts +27 -0
- package/dist/src/auth.d.ts.map +1 -0
- package/dist/src/auth.js +155 -0
- package/dist/src/auth.spec.d.ts +2 -0
- package/dist/src/auth.spec.d.ts.map +1 -0
- package/dist/src/auth.spec.js +582 -0
- package/dist/src/compressor/brotli.d.ts +3 -0
- package/dist/src/compressor/brotli.d.ts.map +1 -0
- package/dist/src/compressor/brotli.js +30 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/interceptors.d.ts +16 -0
- package/dist/src/interceptors.d.ts.map +1 -0
- package/dist/src/interceptors.js +156 -0
- package/dist/src/interceptors.spec.d.ts +2 -0
- package/dist/src/interceptors.spec.d.ts.map +1 -0
- package/dist/src/interceptors.spec.js +1063 -0
- package/dist/src/policies.d.ts +217 -0
- package/dist/src/policies.d.ts.map +1 -0
- package/dist/src/policies.js +322 -0
- package/dist/src/policies.spec.d.ts +2 -0
- package/dist/src/policies.spec.d.ts.map +1 -0
- package/dist/src/policies.spec.js +463 -0
- package/dist/src/products.d.ts +39 -0
- package/dist/src/products.d.ts.map +1 -0
- package/dist/src/products.js +95 -0
- package/dist/src/products.spec.d.ts +2 -0
- package/dist/src/products.spec.d.ts.map +1 -0
- package/dist/src/products.spec.js +519 -0
- package/dist/src/profile.d.ts +62 -0
- package/dist/src/profile.d.ts.map +1 -0
- package/dist/src/profile.js +151 -0
- package/dist/src/profile.spec.d.ts +2 -0
- package/dist/src/profile.spec.d.ts.map +1 -0
- package/dist/src/profile.spec.js +475 -0
- package/dist/src/registration.d.ts +60 -0
- package/dist/src/registration.d.ts.map +1 -0
- package/dist/src/registration.js +147 -0
- package/dist/src/test-utils.d.ts +87 -0
- package/dist/src/test-utils.d.ts.map +1 -0
- package/dist/src/test-utils.js +132 -0
- package/gen/buf/validate/validate_pb.ts +4799 -0
- package/gen/src/proto/auth/v1/authv1connect/service.connect.go +454 -0
- package/gen/src/proto/auth/v1/entities/auth.pb.go +818 -0
- package/gen/src/proto/auth/v1/entities/auth_pb.ts +348 -0
- package/gen/src/proto/auth/v1/entities/policy.pb.go +727 -0
- package/gen/src/proto/auth/v1/entities/policy_pb.ts +306 -0
- package/gen/src/proto/auth/v1/service-AuthService_connectquery.ts +70 -0
- package/gen/src/proto/auth/v1/service.pb.go +119 -0
- package/gen/src/proto/auth/v1/service_pb.ts +152 -0
- package/gen/src/proto/customers/v1/customersv1connect/service.connect.go +358 -0
- package/gen/src/proto/customers/v1/entities/address.pb.go +1073 -0
- package/gen/src/proto/customers/v1/entities/address_pb.ts +478 -0
- package/gen/src/proto/customers/v1/entities/profile.pb.go +633 -0
- package/gen/src/proto/customers/v1/entities/profile_pb.ts +252 -0
- package/gen/src/proto/customers/v1/service-CustomerService_connectquery.ts +50 -0
- package/gen/src/proto/customers/v1/service.pb.go +110 -0
- package/gen/src/proto/customers/v1/service_pb.ts +121 -0
- package/gen/src/proto/files/v1/entities/file.pb.go +669 -0
- package/gen/src/proto/files/v1/entities/file_pb.ts +265 -0
- package/gen/src/proto/files/v1/filesv1connect/service.connect.go +200 -0
- package/gen/src/proto/files/v1/service-FileService_connectquery.ts +25 -0
- package/gen/src/proto/files/v1/service.pb.go +85 -0
- package/gen/src/proto/files/v1/service_pb.ts +65 -0
- package/gen/src/proto/products/v1/entities/category.pb.go +744 -0
- package/gen/src/proto/products/v1/entities/category_pb.ts +318 -0
- package/gen/src/proto/products/v1/entities/collection.pb.go +528 -0
- package/gen/src/proto/products/v1/entities/collection_pb.ts +214 -0
- package/gen/src/proto/products/v1/entities/product/create.pb.go +453 -0
- package/gen/src/proto/products/v1/entities/product/create_pb.ts +199 -0
- package/gen/src/proto/products/v1/entities/product/option.pb.go +206 -0
- package/gen/src/proto/products/v1/entities/product/option_pb.ts +74 -0
- package/gen/src/proto/products/v1/entities/product/shared.pb.go +2890 -0
- package/gen/src/proto/products/v1/entities/product/shared_pb.ts +1317 -0
- package/gen/src/proto/products/v1/entities/product/update.pb.go +794 -0
- package/gen/src/proto/products/v1/entities/product/update_pb.ts +325 -0
- package/gen/src/proto/products/v1/entities/tag.pb.go +610 -0
- package/gen/src/proto/products/v1/entities/tag_pb.ts +233 -0
- package/gen/src/proto/products/v1/entities/taxonomy.pb.go +1352 -0
- package/gen/src/proto/products/v1/entities/taxonomy_pb.ts +606 -0
- package/gen/src/proto/products/v1/entities/type.pb.go +553 -0
- package/gen/src/proto/products/v1/entities/type_pb.ts +215 -0
- package/gen/src/proto/products/v1/entities/variant.pb.go +1474 -0
- package/gen/src/proto/products/v1/entities/variant_pb.ts +629 -0
- package/gen/src/proto/products/v1/productsv1connect/service.connect.go +1195 -0
- package/gen/src/proto/products/v1/service-ProductsService_connectquery.ts +199 -0
- package/gen/src/proto/products/v1/service.pb.go +250 -0
- package/gen/src/proto/products/v1/service_pb.ts +429 -0
- package/gen/src/proto/promotions/v1/entities/campaign.pb.go +1229 -0
- package/gen/src/proto/promotions/v1/entities/campaign_pb.ts +511 -0
- package/gen/src/proto/promotions/v1/promotionsv1connect/service.connect.go +289 -0
- package/gen/src/proto/promotions/v1/service-CampaignService_connectquery.ts +42 -0
- package/gen/src/proto/promotions/v1/service.pb.go +98 -0
- package/gen/src/proto/promotions/v1/service_pb.ts +95 -0
- package/gen/src/proto/stocknodes/v1/entities/stocknode.pb.go +1499 -0
- package/gen/src/proto/stocknodes/v1/entities/stocknode_pb.ts +655 -0
- package/gen/src/proto/stocknodes/v1/service-StockNodesService_connectquery.ts +41 -0
- package/gen/src/proto/stocknodes/v1/service.pb.go +98 -0
- package/gen/src/proto/stocknodes/v1/service_pb.ts +95 -0
- package/gen/src/proto/stocknodes/v1/stocknodesv1connect/service.connect.go +297 -0
- package/package.json +5 -2
- package/src/address.spec.ts +0 -662
- package/src/address.ts +0 -300
- package/src/auth.spec.ts +0 -771
- package/src/auth.ts +0 -168
- package/src/compressor/brotli.ts +0 -26
- package/src/index.ts +0 -5
- package/src/interceptors.spec.ts +0 -1343
- package/src/interceptors.ts +0 -224
- package/src/policies.spec.ts +0 -595
- package/src/policies.ts +0 -431
- package/src/products.spec.ts +0 -710
- package/src/products.ts +0 -112
- package/src/profile.spec.ts +0 -626
- package/src/profile.ts +0 -169
- package/src/proto/auth/v1/entities/auth.proto +0 -140
- package/src/proto/auth/v1/entities/policy.proto +0 -57
- package/src/proto/auth/v1/service.proto +0 -26
- package/src/proto/customers/v1/entities/address.proto +0 -101
- package/src/proto/customers/v1/entities/profile.proto +0 -118
- package/src/proto/customers/v1/service.proto +0 -36
- package/src/proto/files/v1/entities/file.proto +0 -62
- package/src/proto/files/v1/service.proto +0 -19
- package/src/proto/products/v1/entities/category.proto +0 -98
- package/src/proto/products/v1/entities/collection.proto +0 -72
- package/src/proto/products/v1/entities/product/create.proto +0 -41
- package/src/proto/products/v1/entities/product/option.proto +0 -17
- package/src/proto/products/v1/entities/product/shared.proto +0 -255
- package/src/proto/products/v1/entities/product/update.proto +0 -66
- package/src/proto/products/v1/entities/tag.proto +0 -73
- package/src/proto/products/v1/entities/taxonomy.proto +0 -146
- package/src/proto/products/v1/entities/type.proto +0 -98
- package/src/proto/products/v1/entities/variant.proto +0 -127
- package/src/proto/products/v1/service.proto +0 -78
- package/src/proto/promotions/v1/entities/campaign.proto +0 -145
- package/src/proto/promotions/v1/service.proto +0 -17
- package/src/proto/stocknodes/v1/entities/stocknode.proto +0 -167
- package/src/proto/stocknodes/v1/service.proto +0 -21
- package/src/registration.ts +0 -170
- 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
|
+
};
|