autosync_backend2 1.0.64 → 1.0.65

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/README.md CHANGED
@@ -1,15 +1,25 @@
1
1
  # Elysia with Bun runtime
2
2
 
3
3
  ## Getting Started
4
+
4
5
  To get started with this template, simply paste this command into your terminal:
6
+
5
7
  ```bash
6
8
  bun create elysia ./elysia-example
7
9
  ```
8
10
 
9
11
  ## Development
12
+
10
13
  To start the development server run:
14
+
11
15
  ```bash
12
16
  bun run dev
13
17
  ```
14
18
 
15
- Open http://localhost:3000/ with your browser to see the result.
19
+ Open <http://localhost:3000/> with your browser to see the result.
20
+
21
+ ## Баазийн бүтэц
22
+
23
+ - [Байгууллага](./src/lib/db/schema/merchant.md)
24
+ - [Агуулах](./src/lib/db/schema/inventory.md)
25
+
package/dist/index.d.ts CHANGED
@@ -44,7 +44,7 @@ declare const app: Elysia<"", {
44
44
  standaloneSchema: {};
45
45
  macro: {
46
46
  readonly auth?: boolean | undefined;
47
- readonly permission?: "INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD" | ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[] | undefined;
47
+ readonly permission?: "INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD" | ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[] | undefined;
48
48
  };
49
49
  macroFn: {
50
50
  readonly auth: {
@@ -602,7 +602,7 @@ declare const app: Elysia<"", {
602
602
  readonly "Network Authentication Required": 511;
603
603
  }[Code] : Code>;
604
604
  }): Promise<import("elysia/dist/error").ElysiaCustomStatusResponse<"Unauthorized", "Unauthorized", 401> | import("elysia/dist/error").ElysiaCustomStatusResponse<"Forbidden", "Хандах эрхгүй байна.", 403> | {
605
- permissions: ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[];
605
+ permissions: ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[];
606
606
  }>;
607
607
  };
608
608
  };
@@ -619,7 +619,7 @@ declare const app: Elysia<"", {
619
619
  standaloneSchema: {};
620
620
  macro: {
621
621
  readonly auth?: boolean | undefined;
622
- readonly permission?: "INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD" | ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[] | undefined;
622
+ readonly permission?: "INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD" | ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[] | undefined;
623
623
  };
624
624
  macroFn: {
625
625
  readonly auth: {
@@ -1177,7 +1177,7 @@ declare const app: Elysia<"", {
1177
1177
  readonly "Network Authentication Required": 511;
1178
1178
  }[Code] : Code>;
1179
1179
  }): Promise<import("elysia/dist/error").ElysiaCustomStatusResponse<"Unauthorized", "Unauthorized", 401> | import("elysia/dist/error").ElysiaCustomStatusResponse<"Forbidden", "Хандах эрхгүй байна.", 403> | {
1180
- permissions: ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[];
1180
+ permissions: ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[];
1181
1181
  }>;
1182
1182
  };
1183
1183
  };
@@ -2232,6 +2232,54 @@ declare const app: Elysia<"", {
2232
2232
  };
2233
2233
  };
2234
2234
  };
2235
+ } & {
2236
+ api: {
2237
+ user: {};
2238
+ } & {
2239
+ user: {
2240
+ post: {
2241
+ body: {
2242
+ merchantId?: string | undefined;
2243
+ branchId?: string | undefined;
2244
+ password?: string | undefined;
2245
+ name: string;
2246
+ email: string;
2247
+ permissions: ("INVENTORY_ITEM_UPDATE_ADMIN" | "INVENTORY_ITEM_DELETE_ADMIN" | "INVENTORY_ITEM_SELECT_OWN" | "INVENTORY_ITEM_SELECT_ADMIN" | "INVENTORY_ITEM_CREATE_OWN" | "INVENTORY_ITEM_CREATE_ADMIN" | "INVENTORY_ITEM_UPDATE_OWN" | "INVENTORY_ITEM_DELETE_OWN" | "INVENTORY_LOG_SELECT_OWN" | "INVENTORY_LOG_SELECT_ADMIN" | "MERCHANT_BRANCH_SELECT_OWN" | "MERCHANT_BRANCH_SELECT_ADMIN" | "MERCHANT_BRANCH_CREATE" | "MERCHANT_MERCHANT_CREATE" | "MERCHANT_MERCHANT_UPDATE_OWN" | "MERCHANT_MERCHANT_UPDATE_ADMIN" | "USER_CREATE_OWN" | "USER_CREATE_ADMIN" | "USER_SELECT_OWN" | "USER_SELECT_ADMIN" | "USER_SELECT_BACKOFFICE" | "BACK_OFFICE_ADMIN" | "PERMISSION_ADD")[];
2248
+ };
2249
+ params: {};
2250
+ query: unknown;
2251
+ headers: unknown;
2252
+ response: {
2253
+ 200: {
2254
+ id: string;
2255
+ email: string;
2256
+ name: string;
2257
+ image: string | null | undefined;
2258
+ emailVerified: boolean;
2259
+ createdAt: Date;
2260
+ updatedAt: Date;
2261
+ } | {
2262
+ id: string;
2263
+ email: string;
2264
+ name: string;
2265
+ image: string | null | undefined;
2266
+ emailVerified: boolean;
2267
+ createdAt: Date;
2268
+ updatedAt: Date;
2269
+ };
2270
+ 422: {
2271
+ type: "validation";
2272
+ on: string;
2273
+ summary?: string;
2274
+ message?: string;
2275
+ found?: unknown;
2276
+ property?: string;
2277
+ expected?: string;
2278
+ };
2279
+ };
2280
+ };
2281
+ };
2282
+ };
2235
2283
  }, {
2236
2284
  derive: {};
2237
2285
  resolve: {};
package/dist/index.js CHANGED
@@ -34098,7 +34098,7 @@ function drizzle(...params) {
34098
34098
  drizzle2.mock = mock;
34099
34099
  })(drizzle || (drizzle = {}));
34100
34100
 
34101
- // src/lib/db/schema.ts
34101
+ // src/lib/db/schema/index.ts
34102
34102
  var exports_schema = {};
34103
34103
  __export(exports_schema, {
34104
34104
  verification: () => verification,
@@ -34137,7 +34137,7 @@ var baseSchema = {
34137
34137
  };
34138
34138
  var base_schema_helper_default = baseSchema;
34139
34139
 
34140
- // src/lib/db/auth-schema.ts
34140
+ // src/lib/db/schema/auth.schema.ts
34141
34141
  var userRoleEnum = pgEnum("role", [
34142
34142
  "backoffice_admin",
34143
34143
  "erp_admin",
@@ -34197,7 +34197,7 @@ var permissionGroupTable = pgTable("permission_group", {
34197
34197
  name: text().notNull(),
34198
34198
  permissions: text().array().notNull().default([])
34199
34199
  });
34200
- // src/lib/db/inventory.schema.ts
34200
+ // src/lib/db/schema/inventory.schema.ts
34201
34201
  var inventorySchema = pgSchema("inventory");
34202
34202
  var inventoryItemType = inventorySchema.enum("item_type", [
34203
34203
  "\u0421\u044D\u043B\u0431\u044D\u0433",
@@ -34238,7 +34238,7 @@ var inventoryLogTable = inventorySchema.table("log", {
34238
34238
  description: text(),
34239
34239
  afterQuantity: numeric({ mode: "number" }).notNull()
34240
34240
  }, (table) => [index().on(table.itemId), index().on(table.createdUserId)]);
34241
- // src/lib/db/common.schema.ts
34241
+ // src/lib/db/schema/common.schema.ts
34242
34242
  var logTable = pgTable("log", {
34243
34243
  ...base_schema_helper_default,
34244
34244
  method: varchar().notNull(),
@@ -34251,7 +34251,7 @@ var logTable = pgTable("log", {
34251
34251
  error: jsonb(),
34252
34252
  ipAddress: varchar()
34253
34253
  });
34254
- // src/lib/db/merchant.schema.ts
34254
+ // src/lib/db/schema/merchant.schema.ts
34255
34255
  var merchantSchema = pgSchema("merchant");
34256
34256
  var merchantTable = merchantSchema.table("merchant", {
34257
34257
  ...base_schema_helper_default,
@@ -34454,6 +34454,10 @@ var PaginationSchema = t.Object({
34454
34454
  })
34455
34455
  })
34456
34456
  });
34457
+ var StringEnum = (values) => t.Unsafe({
34458
+ type: "string",
34459
+ enum: values
34460
+ });
34457
34461
 
34458
34462
  // node_modules/drizzle-typebox/index.mjs
34459
34463
  var CONSTANTS = {
@@ -71407,7 +71411,7 @@ var secondaryStorage = {
71407
71411
  await redis_client_default.del(key);
71408
71412
  }
71409
71413
  };
71410
- var auth = betterAuth({
71414
+ var auth2 = betterAuth({
71411
71415
  database: drizzleAdapter(db_default, {
71412
71416
  provider: "pg"
71413
71417
  }),
@@ -71430,7 +71434,7 @@ var auth = betterAuth({
71430
71434
  trustedOrigins: ["http://192.168.0.117:3000"]
71431
71435
  });
71432
71436
  var _schema;
71433
- var getSchema2 = async () => _schema ??= auth.api.generateOpenAPISchema();
71437
+ var getSchema2 = async () => _schema ??= auth2.api.generateOpenAPISchema();
71434
71438
  var OpenAPI = {
71435
71439
  getPaths: (prefix = "/auth/api") => getSchema2().then(({ paths: paths3 }) => {
71436
71440
  const reference = Object.create(null);
@@ -71451,7 +71455,7 @@ var OpenAPI = {
71451
71455
  var betterAuthMacro = new Elysia({ name: "betterAuth" }).macro({
71452
71456
  auth: {
71453
71457
  async resolve({ status: status2, request: { headers } }) {
71454
- const session2 = await auth.api.getSession({ headers });
71458
+ const session2 = await auth2.api.getSession({ headers });
71455
71459
  if (!session2)
71456
71460
  return status2(401, "\u041D\u044D\u0432\u0442\u044D\u0440\u0436 \u043E\u0440\u043D\u043E \u0443\u0443.");
71457
71461
  return {
@@ -71470,7 +71474,7 @@ var permissionMacro = new Elysia({
71470
71474
  permission(input) {
71471
71475
  return {
71472
71476
  async resolve({ status: status2, request: { headers } }) {
71473
- const session2 = await auth.api.getSession({ headers });
71477
+ const session2 = await auth2.api.getSession({ headers });
71474
71478
  if (!session2)
71475
71479
  return status2("Unauthorized", "Unauthorized");
71476
71480
  const cacheKey = `permissions:${session2.user.id}`;
@@ -71864,6 +71868,32 @@ var merchantPermissionList = [
71864
71868
  ];
71865
71869
  var merchant_default4 = merchantPermissionList;
71866
71870
 
71871
+ // src/lib/permissions/user.ts
71872
+ var userPermissions = [
71873
+ {
71874
+ code: "USER_CREATE_OWN",
71875
+ description: "\u04E8\u04E9\u0440\u0438\u0439\u043D \u0445\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u0431\u04AF\u0440\u0442\u0433\u044D\u0445"
71876
+ },
71877
+ {
71878
+ code: "USER_CREATE_ADMIN",
71879
+ description: "\u0410\u0434\u043C\u0438\u043D \u0445\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u0431\u04AF\u0440\u0442\u0433\u044D\u0445"
71880
+ },
71881
+ {
71882
+ code: "USER_SELECT_OWN",
71883
+ description: "\u04E8\u04E9\u0440\u0438\u0439\u043D \u0445\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u0445\u0430\u0440\u0430\u0445"
71884
+ },
71885
+ {
71886
+ code: "USER_SELECT_ADMIN",
71887
+ description: "\u0421\u0430\u043B\u0431\u0430\u0440 \u0441\u043E\u043D\u0433\u043E\u0436 \u0445\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u0445\u0430\u0440\u0430\u0445"
71888
+ },
71889
+ {
71890
+ code: "USER_SELECT_BACKOFFICE",
71891
+ description: "\u041C\u0435\u0440\u0447\u0430\u043D\u0442 \u0441\u043E\u043D\u0433\u043E\u0436 \u0445\u044D\u0440\u044D\u0433\u043B\u044D\u0433\u0447 \u0445\u0430\u0440\u0430\u0445",
71892
+ requiresAdmin: true
71893
+ }
71894
+ ];
71895
+ var user_default = userPermissions;
71896
+
71867
71897
  // src/lib/permissions/index.ts
71868
71898
  var localPermissionList = [
71869
71899
  ...[
@@ -71878,6 +71908,7 @@ var localPermissionList = [
71878
71908
  requiresAdmin: true
71879
71909
  }
71880
71910
  ],
71911
+ ...user_default,
71881
71912
  ...inventory_default2,
71882
71913
  ...merchant_default4
71883
71914
  ];
@@ -71931,10 +71962,100 @@ var permissionRoutes = new Elysia({
71931
71962
  }).delete("/:id", async ({ params: { id } }) => groupService.delete(id)));
71932
71963
  var permission_default2 = permissionRoutes;
71933
71964
 
71965
+ // src/routes/user/schema.ts
71966
+ var select4 = createSelectSchema(user);
71967
+ var create6 = createInsertSchema(user);
71968
+ var selectUserSchema = t.Composite([
71969
+ PaginationSchema,
71970
+ t.Partial(t.Pick(select4, ["branchId"]))
71971
+ ]);
71972
+ var createUserSchema = t.Composite([
71973
+ t.Pick(create6, ["name", "email"]),
71974
+ t.Object({
71975
+ password: t.Optional(t.String()),
71976
+ merchantId: t.Optional(t.String({ format: "uuid" })),
71977
+ branchId: t.Optional(t.String({ format: "uuid" })),
71978
+ permissions: t.Array(StringEnum(permissionList.map((permission) => permission.code)))
71979
+ })
71980
+ ]);
71981
+
71982
+ // src/routes/user/logic.ts
71983
+ var UserLogic = {
71984
+ select: async (query, user2, permissions) => {
71985
+ const adminPermissions = [
71986
+ "BACK_OFFICE_ADMIN",
71987
+ "USER_SELECT_ADMIN",
71988
+ "USER_SELECT_BACKOFFICE"
71989
+ ];
71990
+ const filter = and(eq(user.branchId, query.branchId ?? "").if(query.branchId && permissions.some((p) => adminPermissions.includes(p))), eq(user.branchId, user2.branchId).if(!permissions.some((p) => adminPermissions.includes(p))), eq(user.merchantId, user2.merchantId).if(!permissions.some((p) => ["BACK_OFFICE_ADMIN", "USER_SELECT_BACKOFFICE"].includes(p))));
71991
+ const columns = getTableColumns(user);
71992
+ const baseQuery = db_default.select({
71993
+ ...columns,
71994
+ totalCount: sql`count(*) over()`.mapWith(Number)
71995
+ }).from(user).where(filter).$dynamic();
71996
+ const users = await pagination_helper_default(baseQuery, query.pagination);
71997
+ const content = {
71998
+ totalCount: users[0]?.totalCount ?? 0,
71999
+ totalPage: users.length === 0 ? 0 : Math.ceil(users[0].totalCount / query.pagination.size)
72000
+ };
72001
+ return {
72002
+ result: users.map(({ totalCount, ...item }) => item),
72003
+ ...content
72004
+ };
72005
+ },
72006
+ registerUser: async (body, user2, permissions) => {
72007
+ let branchId = user2.branchId;
72008
+ let merchantId = user2.merchantId;
72009
+ const adminPermissions = [
72010
+ "BACK_OFFICE_ADMIN",
72011
+ "USER_CREATE_ADMIN"
72012
+ ];
72013
+ const isAdmin = permissions.some((p) => adminPermissions.includes(p));
72014
+ if (isAdmin) {
72015
+ if (body.merchantId) {
72016
+ merchantId = body.merchantId;
72017
+ }
72018
+ if (body.branchId) {
72019
+ branchId = body.branchId;
72020
+ }
72021
+ }
72022
+ const result = await auth2.api.signUpEmail({
72023
+ body: {
72024
+ name: body.name,
72025
+ email: body.email,
72026
+ password: body.password ?? "",
72027
+ merchantId,
72028
+ branchId
72029
+ }
72030
+ });
72031
+ const insertPermissions = body.permissions.map((p) => ({
72032
+ userId: result.user.id,
72033
+ code: p
72034
+ }));
72035
+ if (insertPermissions.length > 0) {
72036
+ await db_default.insert(permissionTable).values(insertPermissions);
72037
+ }
72038
+ return result.user;
72039
+ }
72040
+ };
72041
+ var logic_default5 = UserLogic;
72042
+
72043
+ // src/routes/user/index.ts
72044
+ var userRoutes = new Elysia({
72045
+ prefix: "/user"
72046
+ }).use(better_auth_default).use(permission_default).guard({
72047
+ auth: true,
72048
+ tags: ["User"]
72049
+ }).post("/", async ({ body, user: user2, permissions }) => logic_default5.registerUser(body, user2, permissions), {
72050
+ body: createUserSchema,
72051
+ permission: ["USER_CREATE_ADMIN", "USER_CREATE_OWN"]
72052
+ });
72053
+ var user_default2 = userRoutes;
72054
+
71934
72055
  // src/routes/index.ts
71935
72056
  var router2 = new Elysia({
71936
72057
  prefix: "/api"
71937
- }).use(inventory_default).use(merchant_default2).use(permission_default2);
72058
+ }).use(inventory_default).use(merchant_default2).use(permission_default2).use(user_default2);
71938
72059
  var routes_default = router2;
71939
72060
 
71940
72061
  // node_modules/@scalar/themes/dist/presets/alternate.css2.js
@@ -74262,7 +74383,18 @@ var permissionTags = [
74262
74383
  description: "\u042D\u0440\u0445\u0438\u0439\u043D \u0431\u0430\u0433\u0446"
74263
74384
  }
74264
74385
  ];
74265
- var swaggerTags = [...inventoryTags, ...merchantTags, ...permissionTags];
74386
+ var userTags = [
74387
+ {
74388
+ name: "User",
74389
+ description: "\u041D\u044D\u0432\u0442\u0440\u044D\u0445 \u044D\u0440\u0445"
74390
+ }
74391
+ ];
74392
+ var swaggerTags = [
74393
+ ...inventoryTags,
74394
+ ...merchantTags,
74395
+ ...permissionTags,
74396
+ ...userTags
74397
+ ];
74266
74398
  var swagger_tags_default = swaggerTags;
74267
74399
 
74268
74400
  // src/index.ts
@@ -74279,7 +74411,7 @@ var app = new Elysia().use(index_default2({
74279
74411
  }
74280
74412
  })).use(pino_logger_default).onAfterResponse(async ({ request, response, server, status: status2, set: set2, body }) => {
74281
74413
  const log = {
74282
- userId: (await auth.api.getSession({ headers: request.headers }))?.user.id,
74414
+ userId: (await auth2.api.getSession({ headers: request.headers }))?.user.id,
74283
74415
  request: {
74284
74416
  headers: request.headers,
74285
74417
  body
@@ -74294,5 +74426,5 @@ var app = new Elysia().use(index_default2({
74294
74426
  await db_default.insert(logTable).values(log);
74295
74427
  }).onError(({ error: error2 }) => {
74296
74428
  console.log(error2);
74297
- }).mount(auth.handler).use(routes_default).listen(env_default.PORT);
74429
+ }).mount(auth2.handler).use(routes_default).listen(env_default.PORT);
74298
74430
  console.log(`\uD83E\uDD8A Elysia is running at ${app.server?.hostname}:${app.server?.port}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autosync_backend2",
3
- "version": "1.0.64",
3
+ "version": "1.0.65",
4
4
  "module": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",