@deliverart/sdk-js-user 0.0.1
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/.changeset/config.json +11 -0
- package/.github/workflows/workflow.yml +47 -0
- package/.prettierrc +7 -0
- package/README.md +3 -0
- package/dist/index.cjs +156 -0
- package/dist/index.d.cts +100 -0
- package/dist/index.d.ts +100 -0
- package/dist/index.js +123 -0
- package/eslint.config.js +41 -0
- package/package.json +45 -0
- package/src/index.ts +3 -0
- package/src/models.ts +30 -0
- package/src/plugin.ts +43 -0
- package/src/types.ts +83 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
|
|
3
|
+
"changelog": "@changesets/cli/changelog",
|
|
4
|
+
"commit": false,
|
|
5
|
+
"fixed": [],
|
|
6
|
+
"linked": [],
|
|
7
|
+
"access": "restricted",
|
|
8
|
+
"baseBranch": "main",
|
|
9
|
+
"updateInternalDependencies": "patch",
|
|
10
|
+
"ignore": []
|
|
11
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- uses: pnpm/action-setup@v2
|
|
18
|
+
with:
|
|
19
|
+
version: 8
|
|
20
|
+
|
|
21
|
+
- uses: actions/setup-node@v4
|
|
22
|
+
with:
|
|
23
|
+
node-version: '20'
|
|
24
|
+
registry-url: 'https://registry.npmjs.org'
|
|
25
|
+
always-auth: true
|
|
26
|
+
env:
|
|
27
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
28
|
+
|
|
29
|
+
- name: Install deps
|
|
30
|
+
run: pnpm install
|
|
31
|
+
|
|
32
|
+
- name: Build
|
|
33
|
+
run: pnpm build
|
|
34
|
+
|
|
35
|
+
- name: Create version and changelog
|
|
36
|
+
run: pnpx @changesets/cli version
|
|
37
|
+
|
|
38
|
+
- name: Publish to NPM
|
|
39
|
+
run: pnpx @changesets/cli publish
|
|
40
|
+
env:
|
|
41
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
42
|
+
|
|
43
|
+
- name: Push updated versions and changelogs
|
|
44
|
+
uses: EndBug/add-and-commit@v9
|
|
45
|
+
with:
|
|
46
|
+
message: 'chore(release): version bump'
|
|
47
|
+
add: '.'
|
package/.prettierrc
ADDED
package/README.md
ADDED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
|
+
UserPlugin: () => UserPlugin,
|
|
24
|
+
securityRoleSchema: () => securityRoleSchema,
|
|
25
|
+
securityRoles: () => securityRoles,
|
|
26
|
+
userSchema: () => userSchema,
|
|
27
|
+
userStepSchema: () => userStepSchema,
|
|
28
|
+
userSteps: () => userSteps,
|
|
29
|
+
writableUserSchema: () => writableUserSchema
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(index_exports);
|
|
32
|
+
|
|
33
|
+
// src/models.ts
|
|
34
|
+
var import_sdk_js_global_types = require("@deliverart/sdk-js-global-types");
|
|
35
|
+
var import_zod2 = require("zod");
|
|
36
|
+
|
|
37
|
+
// src/types.ts
|
|
38
|
+
var import_zod = require("zod");
|
|
39
|
+
var securityRoles = [
|
|
40
|
+
// Role used for describe single operations
|
|
41
|
+
"ROLE_CUSTOMER_ACCESS",
|
|
42
|
+
"ROLE_BUNDLE_ACCESS",
|
|
43
|
+
"ROLE_DELIVERY_ACCESS",
|
|
44
|
+
"ROLE_POINT_OF_SALE_ACCESS",
|
|
45
|
+
"ROLE_MENU_ACCESS",
|
|
46
|
+
"ROLE_INTEGRATION_ACCESS",
|
|
47
|
+
"ROLE_ORDER_ACCESS",
|
|
48
|
+
"ROLE_LEAD_ACCESS",
|
|
49
|
+
"ROLE_COMPANY_ACCESS",
|
|
50
|
+
"ROLE_USER_ACCESS",
|
|
51
|
+
"ROLE_SUBSCRIPTION_ACCESS",
|
|
52
|
+
"ROLE_PAYMENT_ACCESS",
|
|
53
|
+
"ROLE_PAYMENT_CONFIG_ACCESS",
|
|
54
|
+
// Role ADMIN for single operations
|
|
55
|
+
"ROLE_CUSTOMER_ADMIN",
|
|
56
|
+
"ROLE_BUNDLE_ADMIN",
|
|
57
|
+
"ROLE_DELIVERY_ADMIN",
|
|
58
|
+
"ROLE_POINT_OF_SALE_ADMIN",
|
|
59
|
+
"ROLE_MENU_ADMIN",
|
|
60
|
+
"ROLE_INTEGRATION_ADMIN",
|
|
61
|
+
"ROLE_ORDER_ADMIN",
|
|
62
|
+
"ROLE_LEAD_ADMIN",
|
|
63
|
+
"ROLE_COMPANY_ADMIN",
|
|
64
|
+
"ROLE_USER_ADMIN",
|
|
65
|
+
"ROLE_SUBSCRIPTION_ADMIN",
|
|
66
|
+
"ROLE_PAYMENT_ADMIN",
|
|
67
|
+
"ROLE_PAYMENT_CONFIG_ADMIN",
|
|
68
|
+
// Role for the users
|
|
69
|
+
"ROLE_COURIER",
|
|
70
|
+
"ROLE_CUSTOMER",
|
|
71
|
+
"ROLE_MANAGER",
|
|
72
|
+
"ROLE_SUPER_ADMIN",
|
|
73
|
+
"ROLE_KITCHEN",
|
|
74
|
+
// Default user role
|
|
75
|
+
"ROLE_USER"
|
|
76
|
+
];
|
|
77
|
+
var securityRoleSchema = import_zod.z.enum(securityRoles);
|
|
78
|
+
var userSteps = [
|
|
79
|
+
"registration",
|
|
80
|
+
"verify_email",
|
|
81
|
+
"create_company",
|
|
82
|
+
"create_point_of_sale"
|
|
83
|
+
];
|
|
84
|
+
var userStepSchema = import_zod.z.enum(userSteps);
|
|
85
|
+
|
|
86
|
+
// src/models.ts
|
|
87
|
+
var userSchema = import_zod2.z.object({
|
|
88
|
+
id: import_zod2.z.string(),
|
|
89
|
+
firstName: import_zod2.z.string(),
|
|
90
|
+
lastName: import_zod2.z.string(),
|
|
91
|
+
email: import_zod2.z.string().email(),
|
|
92
|
+
roles: securityRoleSchema.array(),
|
|
93
|
+
completedSteps: import_zod2.z.string().array(),
|
|
94
|
+
emailVerified: import_zod2.z.boolean(),
|
|
95
|
+
suspended: import_zod2.z.boolean(),
|
|
96
|
+
createdAt: import_sdk_js_global_types.datetimeSchema,
|
|
97
|
+
updatedAt: import_sdk_js_global_types.datetimeSchema
|
|
98
|
+
});
|
|
99
|
+
var writableUserSchema = userSchema.pick({
|
|
100
|
+
firstName: true,
|
|
101
|
+
lastName: true,
|
|
102
|
+
roles: true,
|
|
103
|
+
email: true
|
|
104
|
+
}).extend({
|
|
105
|
+
plainPassword: import_zod2.z.string().optional()
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// src/plugin.ts
|
|
109
|
+
var import_sdk_js_global_types2 = require("@deliverart/sdk-js-global-types");
|
|
110
|
+
var UserPlugin = class {
|
|
111
|
+
setup(client) {
|
|
112
|
+
return {
|
|
113
|
+
me: {
|
|
114
|
+
async get() {
|
|
115
|
+
const response = await client.http.get("/me");
|
|
116
|
+
return response.data;
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
users: {
|
|
120
|
+
async list(params) {
|
|
121
|
+
const response = await client.http.get(`/users`, { params });
|
|
122
|
+
return { data: response.data, pagination: (0, import_sdk_js_global_types2.responseToPagination)(response) };
|
|
123
|
+
},
|
|
124
|
+
async get(id) {
|
|
125
|
+
const response = await client.http.get(`/users/${id}`);
|
|
126
|
+
return response.data;
|
|
127
|
+
},
|
|
128
|
+
async update(id, data) {
|
|
129
|
+
const response = await client.http.patch(`/users/${id}`, data, {
|
|
130
|
+
headers: { "Content-Type": "application/merge-patch+json" }
|
|
131
|
+
});
|
|
132
|
+
return response.data;
|
|
133
|
+
},
|
|
134
|
+
async create(data) {
|
|
135
|
+
const response = await client.http.post(`/users`, data, {
|
|
136
|
+
headers: { "Content-Type": "application/json" }
|
|
137
|
+
});
|
|
138
|
+
return response.data;
|
|
139
|
+
},
|
|
140
|
+
async delete(id) {
|
|
141
|
+
await client.http.delete(`/users/${id}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
148
|
+
0 && (module.exports = {
|
|
149
|
+
UserPlugin,
|
|
150
|
+
securityRoleSchema,
|
|
151
|
+
securityRoles,
|
|
152
|
+
userSchema,
|
|
153
|
+
userStepSchema,
|
|
154
|
+
userSteps,
|
|
155
|
+
writableUserSchema
|
|
156
|
+
});
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiExtension, ApiClientPlugin, ApiClient } from '@deliverart/sdk-js-core';
|
|
3
|
+
import { SortDir, Paginated } from '@deliverart/sdk-js-global-types';
|
|
4
|
+
|
|
5
|
+
declare const userSchema: z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
firstName: z.ZodString;
|
|
8
|
+
lastName: z.ZodString;
|
|
9
|
+
email: z.ZodString;
|
|
10
|
+
roles: z.ZodArray<z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>, "many">;
|
|
11
|
+
completedSteps: z.ZodArray<z.ZodString, "many">;
|
|
12
|
+
emailVerified: z.ZodBoolean;
|
|
13
|
+
suspended: z.ZodBoolean;
|
|
14
|
+
createdAt: z.ZodString;
|
|
15
|
+
updatedAt: z.ZodString;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
id: string;
|
|
18
|
+
firstName: string;
|
|
19
|
+
lastName: string;
|
|
20
|
+
email: string;
|
|
21
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
22
|
+
completedSteps: string[];
|
|
23
|
+
emailVerified: boolean;
|
|
24
|
+
suspended: boolean;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
}, {
|
|
28
|
+
id: string;
|
|
29
|
+
firstName: string;
|
|
30
|
+
lastName: string;
|
|
31
|
+
email: string;
|
|
32
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
33
|
+
completedSteps: string[];
|
|
34
|
+
emailVerified: boolean;
|
|
35
|
+
suspended: boolean;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
updatedAt: string;
|
|
38
|
+
}>;
|
|
39
|
+
type User = z.infer<typeof userSchema>;
|
|
40
|
+
declare const writableUserSchema: z.ZodObject<Pick<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
firstName: z.ZodString;
|
|
43
|
+
lastName: z.ZodString;
|
|
44
|
+
email: z.ZodString;
|
|
45
|
+
roles: z.ZodArray<z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>, "many">;
|
|
46
|
+
completedSteps: z.ZodArray<z.ZodString, "many">;
|
|
47
|
+
emailVerified: z.ZodBoolean;
|
|
48
|
+
suspended: z.ZodBoolean;
|
|
49
|
+
createdAt: z.ZodString;
|
|
50
|
+
updatedAt: z.ZodString;
|
|
51
|
+
}, "firstName" | "lastName" | "email" | "roles"> & {
|
|
52
|
+
plainPassword: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, "strip", z.ZodTypeAny, {
|
|
54
|
+
firstName: string;
|
|
55
|
+
lastName: string;
|
|
56
|
+
email: string;
|
|
57
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
58
|
+
plainPassword?: string | undefined;
|
|
59
|
+
}, {
|
|
60
|
+
firstName: string;
|
|
61
|
+
lastName: string;
|
|
62
|
+
email: string;
|
|
63
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
64
|
+
plainPassword?: string | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
type WritableUser = z.infer<typeof writableUserSchema>;
|
|
67
|
+
|
|
68
|
+
declare const securityRoles: readonly ["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"];
|
|
69
|
+
declare const securityRoleSchema: z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>;
|
|
70
|
+
type SecurityRole = z.infer<typeof securityRoleSchema>;
|
|
71
|
+
declare const userSteps: readonly ["registration", "verify_email", "create_company", "create_point_of_sale"];
|
|
72
|
+
declare const userStepSchema: z.ZodEnum<["registration", "verify_email", "create_company", "create_point_of_sale"]>;
|
|
73
|
+
type UserStep = z.infer<typeof userStepSchema>;
|
|
74
|
+
interface GetUsersQueryParams {
|
|
75
|
+
email?: string;
|
|
76
|
+
firstName?: string;
|
|
77
|
+
lastName?: string;
|
|
78
|
+
suspended?: string;
|
|
79
|
+
'order[createdAt]'?: SortDir;
|
|
80
|
+
page?: number;
|
|
81
|
+
'roles[]'?: SecurityRole[];
|
|
82
|
+
}
|
|
83
|
+
interface UserExtension extends ApiExtension {
|
|
84
|
+
me: {
|
|
85
|
+
get: () => Promise<User>;
|
|
86
|
+
};
|
|
87
|
+
users: {
|
|
88
|
+
list: (params?: GetUsersQueryParams) => Promise<Paginated<User[]>>;
|
|
89
|
+
create: (data: WritableUser) => Promise<User>;
|
|
90
|
+
get: (id: string) => Promise<User>;
|
|
91
|
+
delete: (id: string) => Promise<void>;
|
|
92
|
+
update: (id: string, data: Partial<WritableUser>) => Promise<User>;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
declare class UserPlugin implements ApiClientPlugin<UserExtension> {
|
|
97
|
+
setup(client: ApiClient): UserExtension;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { type GetUsersQueryParams, type SecurityRole, type User, type UserExtension, UserPlugin, type UserStep, type WritableUser, securityRoleSchema, securityRoles, userSchema, userStepSchema, userSteps, writableUserSchema };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ApiExtension, ApiClientPlugin, ApiClient } from '@deliverart/sdk-js-core';
|
|
3
|
+
import { SortDir, Paginated } from '@deliverart/sdk-js-global-types';
|
|
4
|
+
|
|
5
|
+
declare const userSchema: z.ZodObject<{
|
|
6
|
+
id: z.ZodString;
|
|
7
|
+
firstName: z.ZodString;
|
|
8
|
+
lastName: z.ZodString;
|
|
9
|
+
email: z.ZodString;
|
|
10
|
+
roles: z.ZodArray<z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>, "many">;
|
|
11
|
+
completedSteps: z.ZodArray<z.ZodString, "many">;
|
|
12
|
+
emailVerified: z.ZodBoolean;
|
|
13
|
+
suspended: z.ZodBoolean;
|
|
14
|
+
createdAt: z.ZodString;
|
|
15
|
+
updatedAt: z.ZodString;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
id: string;
|
|
18
|
+
firstName: string;
|
|
19
|
+
lastName: string;
|
|
20
|
+
email: string;
|
|
21
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
22
|
+
completedSteps: string[];
|
|
23
|
+
emailVerified: boolean;
|
|
24
|
+
suspended: boolean;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
updatedAt: string;
|
|
27
|
+
}, {
|
|
28
|
+
id: string;
|
|
29
|
+
firstName: string;
|
|
30
|
+
lastName: string;
|
|
31
|
+
email: string;
|
|
32
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
33
|
+
completedSteps: string[];
|
|
34
|
+
emailVerified: boolean;
|
|
35
|
+
suspended: boolean;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
updatedAt: string;
|
|
38
|
+
}>;
|
|
39
|
+
type User = z.infer<typeof userSchema>;
|
|
40
|
+
declare const writableUserSchema: z.ZodObject<Pick<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
firstName: z.ZodString;
|
|
43
|
+
lastName: z.ZodString;
|
|
44
|
+
email: z.ZodString;
|
|
45
|
+
roles: z.ZodArray<z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>, "many">;
|
|
46
|
+
completedSteps: z.ZodArray<z.ZodString, "many">;
|
|
47
|
+
emailVerified: z.ZodBoolean;
|
|
48
|
+
suspended: z.ZodBoolean;
|
|
49
|
+
createdAt: z.ZodString;
|
|
50
|
+
updatedAt: z.ZodString;
|
|
51
|
+
}, "firstName" | "lastName" | "email" | "roles"> & {
|
|
52
|
+
plainPassword: z.ZodOptional<z.ZodString>;
|
|
53
|
+
}, "strip", z.ZodTypeAny, {
|
|
54
|
+
firstName: string;
|
|
55
|
+
lastName: string;
|
|
56
|
+
email: string;
|
|
57
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
58
|
+
plainPassword?: string | undefined;
|
|
59
|
+
}, {
|
|
60
|
+
firstName: string;
|
|
61
|
+
lastName: string;
|
|
62
|
+
email: string;
|
|
63
|
+
roles: ("ROLE_CUSTOMER_ACCESS" | "ROLE_BUNDLE_ACCESS" | "ROLE_DELIVERY_ACCESS" | "ROLE_POINT_OF_SALE_ACCESS" | "ROLE_MENU_ACCESS" | "ROLE_INTEGRATION_ACCESS" | "ROLE_ORDER_ACCESS" | "ROLE_LEAD_ACCESS" | "ROLE_COMPANY_ACCESS" | "ROLE_USER_ACCESS" | "ROLE_SUBSCRIPTION_ACCESS" | "ROLE_PAYMENT_ACCESS" | "ROLE_PAYMENT_CONFIG_ACCESS" | "ROLE_CUSTOMER_ADMIN" | "ROLE_BUNDLE_ADMIN" | "ROLE_DELIVERY_ADMIN" | "ROLE_POINT_OF_SALE_ADMIN" | "ROLE_MENU_ADMIN" | "ROLE_INTEGRATION_ADMIN" | "ROLE_ORDER_ADMIN" | "ROLE_LEAD_ADMIN" | "ROLE_COMPANY_ADMIN" | "ROLE_USER_ADMIN" | "ROLE_SUBSCRIPTION_ADMIN" | "ROLE_PAYMENT_ADMIN" | "ROLE_PAYMENT_CONFIG_ADMIN" | "ROLE_COURIER" | "ROLE_CUSTOMER" | "ROLE_MANAGER" | "ROLE_SUPER_ADMIN" | "ROLE_KITCHEN" | "ROLE_USER")[];
|
|
64
|
+
plainPassword?: string | undefined;
|
|
65
|
+
}>;
|
|
66
|
+
type WritableUser = z.infer<typeof writableUserSchema>;
|
|
67
|
+
|
|
68
|
+
declare const securityRoles: readonly ["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"];
|
|
69
|
+
declare const securityRoleSchema: z.ZodEnum<["ROLE_CUSTOMER_ACCESS", "ROLE_BUNDLE_ACCESS", "ROLE_DELIVERY_ACCESS", "ROLE_POINT_OF_SALE_ACCESS", "ROLE_MENU_ACCESS", "ROLE_INTEGRATION_ACCESS", "ROLE_ORDER_ACCESS", "ROLE_LEAD_ACCESS", "ROLE_COMPANY_ACCESS", "ROLE_USER_ACCESS", "ROLE_SUBSCRIPTION_ACCESS", "ROLE_PAYMENT_ACCESS", "ROLE_PAYMENT_CONFIG_ACCESS", "ROLE_CUSTOMER_ADMIN", "ROLE_BUNDLE_ADMIN", "ROLE_DELIVERY_ADMIN", "ROLE_POINT_OF_SALE_ADMIN", "ROLE_MENU_ADMIN", "ROLE_INTEGRATION_ADMIN", "ROLE_ORDER_ADMIN", "ROLE_LEAD_ADMIN", "ROLE_COMPANY_ADMIN", "ROLE_USER_ADMIN", "ROLE_SUBSCRIPTION_ADMIN", "ROLE_PAYMENT_ADMIN", "ROLE_PAYMENT_CONFIG_ADMIN", "ROLE_COURIER", "ROLE_CUSTOMER", "ROLE_MANAGER", "ROLE_SUPER_ADMIN", "ROLE_KITCHEN", "ROLE_USER"]>;
|
|
70
|
+
type SecurityRole = z.infer<typeof securityRoleSchema>;
|
|
71
|
+
declare const userSteps: readonly ["registration", "verify_email", "create_company", "create_point_of_sale"];
|
|
72
|
+
declare const userStepSchema: z.ZodEnum<["registration", "verify_email", "create_company", "create_point_of_sale"]>;
|
|
73
|
+
type UserStep = z.infer<typeof userStepSchema>;
|
|
74
|
+
interface GetUsersQueryParams {
|
|
75
|
+
email?: string;
|
|
76
|
+
firstName?: string;
|
|
77
|
+
lastName?: string;
|
|
78
|
+
suspended?: string;
|
|
79
|
+
'order[createdAt]'?: SortDir;
|
|
80
|
+
page?: number;
|
|
81
|
+
'roles[]'?: SecurityRole[];
|
|
82
|
+
}
|
|
83
|
+
interface UserExtension extends ApiExtension {
|
|
84
|
+
me: {
|
|
85
|
+
get: () => Promise<User>;
|
|
86
|
+
};
|
|
87
|
+
users: {
|
|
88
|
+
list: (params?: GetUsersQueryParams) => Promise<Paginated<User[]>>;
|
|
89
|
+
create: (data: WritableUser) => Promise<User>;
|
|
90
|
+
get: (id: string) => Promise<User>;
|
|
91
|
+
delete: (id: string) => Promise<void>;
|
|
92
|
+
update: (id: string, data: Partial<WritableUser>) => Promise<User>;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
declare class UserPlugin implements ApiClientPlugin<UserExtension> {
|
|
97
|
+
setup(client: ApiClient): UserExtension;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { type GetUsersQueryParams, type SecurityRole, type User, type UserExtension, UserPlugin, type UserStep, type WritableUser, securityRoleSchema, securityRoles, userSchema, userStepSchema, userSteps, writableUserSchema };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
// src/models.ts
|
|
2
|
+
import { datetimeSchema } from "@deliverart/sdk-js-global-types";
|
|
3
|
+
import { z as z2 } from "zod";
|
|
4
|
+
|
|
5
|
+
// src/types.ts
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
var securityRoles = [
|
|
8
|
+
// Role used for describe single operations
|
|
9
|
+
"ROLE_CUSTOMER_ACCESS",
|
|
10
|
+
"ROLE_BUNDLE_ACCESS",
|
|
11
|
+
"ROLE_DELIVERY_ACCESS",
|
|
12
|
+
"ROLE_POINT_OF_SALE_ACCESS",
|
|
13
|
+
"ROLE_MENU_ACCESS",
|
|
14
|
+
"ROLE_INTEGRATION_ACCESS",
|
|
15
|
+
"ROLE_ORDER_ACCESS",
|
|
16
|
+
"ROLE_LEAD_ACCESS",
|
|
17
|
+
"ROLE_COMPANY_ACCESS",
|
|
18
|
+
"ROLE_USER_ACCESS",
|
|
19
|
+
"ROLE_SUBSCRIPTION_ACCESS",
|
|
20
|
+
"ROLE_PAYMENT_ACCESS",
|
|
21
|
+
"ROLE_PAYMENT_CONFIG_ACCESS",
|
|
22
|
+
// Role ADMIN for single operations
|
|
23
|
+
"ROLE_CUSTOMER_ADMIN",
|
|
24
|
+
"ROLE_BUNDLE_ADMIN",
|
|
25
|
+
"ROLE_DELIVERY_ADMIN",
|
|
26
|
+
"ROLE_POINT_OF_SALE_ADMIN",
|
|
27
|
+
"ROLE_MENU_ADMIN",
|
|
28
|
+
"ROLE_INTEGRATION_ADMIN",
|
|
29
|
+
"ROLE_ORDER_ADMIN",
|
|
30
|
+
"ROLE_LEAD_ADMIN",
|
|
31
|
+
"ROLE_COMPANY_ADMIN",
|
|
32
|
+
"ROLE_USER_ADMIN",
|
|
33
|
+
"ROLE_SUBSCRIPTION_ADMIN",
|
|
34
|
+
"ROLE_PAYMENT_ADMIN",
|
|
35
|
+
"ROLE_PAYMENT_CONFIG_ADMIN",
|
|
36
|
+
// Role for the users
|
|
37
|
+
"ROLE_COURIER",
|
|
38
|
+
"ROLE_CUSTOMER",
|
|
39
|
+
"ROLE_MANAGER",
|
|
40
|
+
"ROLE_SUPER_ADMIN",
|
|
41
|
+
"ROLE_KITCHEN",
|
|
42
|
+
// Default user role
|
|
43
|
+
"ROLE_USER"
|
|
44
|
+
];
|
|
45
|
+
var securityRoleSchema = z.enum(securityRoles);
|
|
46
|
+
var userSteps = [
|
|
47
|
+
"registration",
|
|
48
|
+
"verify_email",
|
|
49
|
+
"create_company",
|
|
50
|
+
"create_point_of_sale"
|
|
51
|
+
];
|
|
52
|
+
var userStepSchema = z.enum(userSteps);
|
|
53
|
+
|
|
54
|
+
// src/models.ts
|
|
55
|
+
var userSchema = z2.object({
|
|
56
|
+
id: z2.string(),
|
|
57
|
+
firstName: z2.string(),
|
|
58
|
+
lastName: z2.string(),
|
|
59
|
+
email: z2.string().email(),
|
|
60
|
+
roles: securityRoleSchema.array(),
|
|
61
|
+
completedSteps: z2.string().array(),
|
|
62
|
+
emailVerified: z2.boolean(),
|
|
63
|
+
suspended: z2.boolean(),
|
|
64
|
+
createdAt: datetimeSchema,
|
|
65
|
+
updatedAt: datetimeSchema
|
|
66
|
+
});
|
|
67
|
+
var writableUserSchema = userSchema.pick({
|
|
68
|
+
firstName: true,
|
|
69
|
+
lastName: true,
|
|
70
|
+
roles: true,
|
|
71
|
+
email: true
|
|
72
|
+
}).extend({
|
|
73
|
+
plainPassword: z2.string().optional()
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// src/plugin.ts
|
|
77
|
+
import { responseToPagination } from "@deliverart/sdk-js-global-types";
|
|
78
|
+
var UserPlugin = class {
|
|
79
|
+
setup(client) {
|
|
80
|
+
return {
|
|
81
|
+
me: {
|
|
82
|
+
async get() {
|
|
83
|
+
const response = await client.http.get("/me");
|
|
84
|
+
return response.data;
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
users: {
|
|
88
|
+
async list(params) {
|
|
89
|
+
const response = await client.http.get(`/users`, { params });
|
|
90
|
+
return { data: response.data, pagination: responseToPagination(response) };
|
|
91
|
+
},
|
|
92
|
+
async get(id) {
|
|
93
|
+
const response = await client.http.get(`/users/${id}`);
|
|
94
|
+
return response.data;
|
|
95
|
+
},
|
|
96
|
+
async update(id, data) {
|
|
97
|
+
const response = await client.http.patch(`/users/${id}`, data, {
|
|
98
|
+
headers: { "Content-Type": "application/merge-patch+json" }
|
|
99
|
+
});
|
|
100
|
+
return response.data;
|
|
101
|
+
},
|
|
102
|
+
async create(data) {
|
|
103
|
+
const response = await client.http.post(`/users`, data, {
|
|
104
|
+
headers: { "Content-Type": "application/json" }
|
|
105
|
+
});
|
|
106
|
+
return response.data;
|
|
107
|
+
},
|
|
108
|
+
async delete(id) {
|
|
109
|
+
await client.http.delete(`/users/${id}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
export {
|
|
116
|
+
UserPlugin,
|
|
117
|
+
securityRoleSchema,
|
|
118
|
+
securityRoles,
|
|
119
|
+
userSchema,
|
|
120
|
+
userStepSchema,
|
|
121
|
+
userSteps,
|
|
122
|
+
writableUserSchema
|
|
123
|
+
};
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// eslint.config.js per @typescript-eslint v8
|
|
3
|
+
import js from '@eslint/js'
|
|
4
|
+
import prettier from 'eslint-config-prettier'
|
|
5
|
+
import simpleImportSortPlugin from 'eslint-plugin-simple-import-sort'
|
|
6
|
+
import tsPlugin from '@typescript-eslint/eslint-plugin'
|
|
7
|
+
import tsParser from '@typescript-eslint/parser'
|
|
8
|
+
|
|
9
|
+
export default [
|
|
10
|
+
js.configs.recommended,
|
|
11
|
+
{
|
|
12
|
+
files: ['**/*.ts'],
|
|
13
|
+
languageOptions: {
|
|
14
|
+
parser: tsParser,
|
|
15
|
+
globals: {
|
|
16
|
+
process: 'readonly',
|
|
17
|
+
fetch: 'readonly',
|
|
18
|
+
Request: 'readonly',
|
|
19
|
+
Response: 'readonly',
|
|
20
|
+
Headers: 'readonly',
|
|
21
|
+
},
|
|
22
|
+
parserOptions: {
|
|
23
|
+
project: ['./tsconfig.json'],
|
|
24
|
+
tsconfigRootDir: process.cwd(),
|
|
25
|
+
sourceType: 'module',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
plugins: {
|
|
29
|
+
'@typescript-eslint': tsPlugin,
|
|
30
|
+
'simple-import-sort': simpleImportSortPlugin,
|
|
31
|
+
},
|
|
32
|
+
rules: {
|
|
33
|
+
'simple-import-sort/imports': 'error',
|
|
34
|
+
'simple-import-sort/exports': 'error',
|
|
35
|
+
'@typescript-eslint/no-unused-vars': 'warn',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
prettier,
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
export const ignores = ['dist', 'node_modules']
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@deliverart/sdk-js-user",
|
|
3
|
+
"description": "Deliverart JavaScript SDK for User Management",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.cjs"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"zod": "^3",
|
|
16
|
+
"@deliverart/sdk-js-core": "0.0.6",
|
|
17
|
+
"@deliverart/sdk-js-global-types": "0.0.4"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@changesets/cli": "^2.29.4",
|
|
21
|
+
"@eslint/js": "9.28.0",
|
|
22
|
+
"@types/node": "22.15.30",
|
|
23
|
+
"@typescript-eslint/eslint-plugin": "8.33.1",
|
|
24
|
+
"@typescript-eslint/parser": "8.33.1",
|
|
25
|
+
"eslint": "9.28.0",
|
|
26
|
+
"eslint-config-prettier": "10.1.5",
|
|
27
|
+
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
28
|
+
"prettier": "3.5.3",
|
|
29
|
+
"tsup": "8.5.0",
|
|
30
|
+
"typescript": "5.8.3"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsup src/index.ts --dts --format esm,cjs",
|
|
37
|
+
"dev": "tsup src/index.ts --dts --watch",
|
|
38
|
+
"lint": "eslint .",
|
|
39
|
+
"lint:fix": "eslint . --fix",
|
|
40
|
+
"prettier": "prettier --check .",
|
|
41
|
+
"prettier:fix": "prettier --write .",
|
|
42
|
+
"version": "@changesets/cli version",
|
|
43
|
+
"release": "@changesets/cli publish"
|
|
44
|
+
}
|
|
45
|
+
}
|
package/src/index.ts
ADDED
package/src/models.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { datetimeSchema } from '@deliverart/sdk-js-global-types'
|
|
2
|
+
import { z } from 'zod'
|
|
3
|
+
|
|
4
|
+
import { securityRoleSchema } from './types'
|
|
5
|
+
|
|
6
|
+
export const userSchema = z.object({
|
|
7
|
+
id: z.string(),
|
|
8
|
+
firstName: z.string(),
|
|
9
|
+
lastName: z.string(),
|
|
10
|
+
email: z.string().email(),
|
|
11
|
+
roles: securityRoleSchema.array(),
|
|
12
|
+
completedSteps: z.string().array(),
|
|
13
|
+
emailVerified: z.boolean(),
|
|
14
|
+
suspended: z.boolean(),
|
|
15
|
+
createdAt: datetimeSchema,
|
|
16
|
+
updatedAt: datetimeSchema,
|
|
17
|
+
})
|
|
18
|
+
export type User = z.infer<typeof userSchema>
|
|
19
|
+
|
|
20
|
+
export const writableUserSchema = userSchema
|
|
21
|
+
.pick({
|
|
22
|
+
firstName: true,
|
|
23
|
+
lastName: true,
|
|
24
|
+
roles: true,
|
|
25
|
+
email: true,
|
|
26
|
+
})
|
|
27
|
+
.extend({
|
|
28
|
+
plainPassword: z.string().optional(),
|
|
29
|
+
})
|
|
30
|
+
export type WritableUser = z.infer<typeof writableUserSchema>
|
package/src/plugin.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ApiClient, ApiClientPlugin } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { responseToPagination } from '@deliverart/sdk-js-global-types'
|
|
3
|
+
|
|
4
|
+
import { User } from './models'
|
|
5
|
+
import { GetUsersQueryParams, UserExtension } from './types'
|
|
6
|
+
|
|
7
|
+
export class UserPlugin implements ApiClientPlugin<UserExtension> {
|
|
8
|
+
setup(client: ApiClient): UserExtension {
|
|
9
|
+
return {
|
|
10
|
+
me: {
|
|
11
|
+
async get() {
|
|
12
|
+
const response = await client.http.get<User>('/me')
|
|
13
|
+
return response.data
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
users: {
|
|
17
|
+
async list(params?: GetUsersQueryParams) {
|
|
18
|
+
const response = await client.http.get<User[]>(`/users`, { params })
|
|
19
|
+
return { data: response.data, pagination: responseToPagination(response) }
|
|
20
|
+
},
|
|
21
|
+
async get(id: string) {
|
|
22
|
+
const response = await client.http.get<User>(`/users/${id}`)
|
|
23
|
+
return response.data
|
|
24
|
+
},
|
|
25
|
+
async update(id: string, data: Partial<User>) {
|
|
26
|
+
const response = await client.http.patch<User>(`/users/${id}`, data, {
|
|
27
|
+
headers: { 'Content-Type': 'application/merge-patch+json' },
|
|
28
|
+
})
|
|
29
|
+
return response.data
|
|
30
|
+
},
|
|
31
|
+
async create(data: Partial<User>) {
|
|
32
|
+
const response = await client.http.post<User>(`/users`, data, {
|
|
33
|
+
headers: { 'Content-Type': 'application/json' },
|
|
34
|
+
})
|
|
35
|
+
return response.data
|
|
36
|
+
},
|
|
37
|
+
async delete(id: string) {
|
|
38
|
+
await client.http.delete(`/users/${id}`)
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ApiExtension } from '@deliverart/sdk-js-core'
|
|
2
|
+
import { Paginated, SortDir } from '@deliverart/sdk-js-global-types'
|
|
3
|
+
import { z } from 'zod'
|
|
4
|
+
|
|
5
|
+
import { User, WritableUser } from './models'
|
|
6
|
+
|
|
7
|
+
export const securityRoles = [
|
|
8
|
+
// Role used for describe single operations
|
|
9
|
+
'ROLE_CUSTOMER_ACCESS',
|
|
10
|
+
'ROLE_BUNDLE_ACCESS',
|
|
11
|
+
'ROLE_DELIVERY_ACCESS',
|
|
12
|
+
'ROLE_POINT_OF_SALE_ACCESS',
|
|
13
|
+
'ROLE_MENU_ACCESS',
|
|
14
|
+
'ROLE_INTEGRATION_ACCESS',
|
|
15
|
+
'ROLE_ORDER_ACCESS',
|
|
16
|
+
'ROLE_LEAD_ACCESS',
|
|
17
|
+
'ROLE_COMPANY_ACCESS',
|
|
18
|
+
'ROLE_USER_ACCESS',
|
|
19
|
+
'ROLE_SUBSCRIPTION_ACCESS',
|
|
20
|
+
'ROLE_PAYMENT_ACCESS',
|
|
21
|
+
'ROLE_PAYMENT_CONFIG_ACCESS',
|
|
22
|
+
// Role ADMIN for single operations
|
|
23
|
+
'ROLE_CUSTOMER_ADMIN',
|
|
24
|
+
'ROLE_BUNDLE_ADMIN',
|
|
25
|
+
'ROLE_DELIVERY_ADMIN',
|
|
26
|
+
'ROLE_POINT_OF_SALE_ADMIN',
|
|
27
|
+
'ROLE_MENU_ADMIN',
|
|
28
|
+
'ROLE_INTEGRATION_ADMIN',
|
|
29
|
+
'ROLE_ORDER_ADMIN',
|
|
30
|
+
'ROLE_LEAD_ADMIN',
|
|
31
|
+
'ROLE_COMPANY_ADMIN',
|
|
32
|
+
'ROLE_USER_ADMIN',
|
|
33
|
+
'ROLE_SUBSCRIPTION_ADMIN',
|
|
34
|
+
'ROLE_PAYMENT_ADMIN',
|
|
35
|
+
'ROLE_PAYMENT_CONFIG_ADMIN',
|
|
36
|
+
// Role for the users
|
|
37
|
+
'ROLE_COURIER',
|
|
38
|
+
'ROLE_CUSTOMER',
|
|
39
|
+
'ROLE_MANAGER',
|
|
40
|
+
'ROLE_SUPER_ADMIN',
|
|
41
|
+
'ROLE_KITCHEN',
|
|
42
|
+
// Default user role
|
|
43
|
+
'ROLE_USER',
|
|
44
|
+
] as const
|
|
45
|
+
export const securityRoleSchema = z.enum(securityRoles)
|
|
46
|
+
export type SecurityRole = z.infer<typeof securityRoleSchema>
|
|
47
|
+
|
|
48
|
+
export const userSteps = [
|
|
49
|
+
'registration',
|
|
50
|
+
'verify_email',
|
|
51
|
+
'create_company',
|
|
52
|
+
'create_point_of_sale',
|
|
53
|
+
] as const
|
|
54
|
+
export const userStepSchema = z.enum(userSteps)
|
|
55
|
+
export type UserStep = z.infer<typeof userStepSchema>
|
|
56
|
+
|
|
57
|
+
export interface GetUsersQueryParams {
|
|
58
|
+
email?: string
|
|
59
|
+
firstName?: string
|
|
60
|
+
lastName?: string
|
|
61
|
+
suspended?: string
|
|
62
|
+
'order[createdAt]'?: SortDir
|
|
63
|
+
page?: number
|
|
64
|
+
'roles[]'?: SecurityRole[]
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface UserExtension extends ApiExtension {
|
|
68
|
+
me: {
|
|
69
|
+
get: () => Promise<User>
|
|
70
|
+
}
|
|
71
|
+
users: {
|
|
72
|
+
// eslint-disable-next-line no-unused-vars
|
|
73
|
+
list: (params?: GetUsersQueryParams) => Promise<Paginated<User[]>>
|
|
74
|
+
// eslint-disable-next-line no-unused-vars
|
|
75
|
+
create: (data: WritableUser) => Promise<User>
|
|
76
|
+
// eslint-disable-next-line no-unused-vars
|
|
77
|
+
get: (id: string) => Promise<User>
|
|
78
|
+
// eslint-disable-next-line no-unused-vars
|
|
79
|
+
delete: (id: string) => Promise<void>
|
|
80
|
+
// eslint-disable-next-line no-unused-vars
|
|
81
|
+
update: (id: string, data: Partial<WritableUser>) => Promise<User>
|
|
82
|
+
}
|
|
83
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Node",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"forceConsistentCasingInFileNames": true,
|
|
8
|
+
"strict": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"outDir": "dist",
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationMap": true
|
|
13
|
+
},
|
|
14
|
+
"include": ["src"]
|
|
15
|
+
}
|