@opengis/fcore 0.0.1-beta.4 → 0.0.1-beta.5
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/LICENSE +3 -3
- package/README.md +71 -71
- package/dist/config.d.ts +2 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/context.js +1 -1
- package/dist/errors.js +1 -1
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +1 -1
- package/dist/fcore.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/migrations/cli.js +1 -1
- package/dist/migrations/runner.js +1 -1
- package/dist/modules/auth/adduser-cli.d.ts +3 -0
- package/dist/modules/auth/adduser-cli.d.ts.map +1 -0
- package/dist/modules/auth/adduser-cli.js +2 -0
- package/dist/modules/auth/passwd-cli.d.ts +3 -0
- package/dist/modules/auth/passwd-cli.d.ts.map +1 -0
- package/dist/modules/auth/passwd-cli.js +2 -0
- package/dist/modules/auth/permission-cli.d.ts +3 -0
- package/dist/modules/auth/permission-cli.d.ts.map +1 -0
- package/dist/modules/auth/permission-cli.js +2 -0
- package/dist/modules/auth/route.d.ts.map +1 -1
- package/dist/modules/auth/route.js +1 -1
- package/dist/modules/auth/schema.d.ts +7 -1
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +1 -1
- package/dist/modules/auth/services/change-password.d.ts +9 -0
- package/dist/modules/auth/services/change-password.d.ts.map +1 -0
- package/dist/modules/auth/services/change-password.js +1 -0
- package/dist/modules/auth/services/get-current-user.js +1 -1
- package/dist/modules/auth/services/registration.d.ts +14 -0
- package/dist/modules/auth/services/registration.d.ts.map +1 -0
- package/dist/modules/auth/services/registration.js +1 -0
- package/dist/modules/auth/services/verify-two-factor.js +1 -1
- package/dist/modules/file/route.js +1 -1
- package/dist/modules/file/schema.js +1 -1
- package/dist/modules/file/services/get-file.js +1 -1
- package/dist/modules/file/services/resize-file.js +1 -1
- package/dist/modules/file/services/upload-file.js +1 -1
- package/dist/modules/resource/route.d.ts.map +1 -1
- package/dist/modules/resource/route.js +1 -1
- package/dist/modules/resource/schema.js +1 -1
- package/dist/modules/resource/services/add-note.js +1 -1
- package/dist/modules/resource/services/add-resource-file.js +1 -1
- package/dist/modules/resource/services/create-resource-relation.d.ts +8 -2
- package/dist/modules/resource/services/create-resource-relation.d.ts.map +1 -1
- package/dist/modules/resource/services/create-resource-relation.js +1 -1
- package/dist/modules/resource/services/create-resource.js +1 -1
- package/dist/modules/resource/services/delete-resource-relation.d.ts +8 -1
- package/dist/modules/resource/services/delete-resource-relation.d.ts.map +1 -1
- package/dist/modules/resource/services/delete-resource-relation.js +1 -1
- package/dist/modules/resource/services/delete-resource.js +1 -1
- package/dist/modules/resource/services/export-resource.js +1 -1
- package/dist/modules/resource/services/get-resource.js +1 -1
- package/dist/modules/resource/services/list-resource-relation.d.ts +7 -2
- package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
- package/dist/modules/resource/services/list-resource-relation.js +1 -1
- package/dist/modules/resource/services/list-resources.js +1 -1
- package/dist/modules/resource/services/search-resource.js +1 -1
- package/dist/modules/resource/services/suggest-resource.d.ts +3 -0
- package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/suggest-resource.js +1 -1
- package/dist/modules/resource/services/update-resource.js +1 -1
- package/dist/modules/resource/services/upload-resource-file.js +1 -1
- package/dist/modules/system/route.d.ts +2 -1
- package/dist/modules/system/route.d.ts.map +1 -1
- package/dist/modules/system/route.js +1 -1
- package/dist/modules/system/schema.d.ts +22 -1
- package/dist/modules/system/schema.d.ts.map +1 -1
- package/dist/modules/system/schema.js +1 -1
- package/dist/modules/system/services/check-system.d.ts.map +1 -1
- package/dist/modules/system/services/check-system.js +1 -1
- package/dist/modules/system/services/get-access.d.ts +14 -0
- package/dist/modules/system/services/get-access.d.ts.map +1 -0
- package/dist/modules/system/services/get-access.js +1 -0
- package/dist/modules/system/services/get-api-list.d.ts +4 -1
- package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
- package/dist/modules/system/services/get-api-list.js +1 -1
- package/dist/modules/system/services/get-audit-log.js +1 -1
- package/dist/modules/system/services/get-dictionary.js +1 -1
- package/dist/modules/system/services/get-system-log.d.ts +9 -5
- package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
- package/dist/modules/system/services/get-system-log.js +1 -1
- package/dist/modules/system/services/get-system-settings.js +1 -1
- package/dist/modules/system/services/list-dictionaries.js +1 -1
- package/dist/modules/system/services/set-access.d.ts +16 -0
- package/dist/modules/system/services/set-access.d.ts.map +1 -0
- package/dist/modules/system/services/set-access.js +1 -0
- package/dist/modules/system/services/update-dictionary.d.ts +13 -0
- package/dist/modules/system/services/update-dictionary.d.ts.map +1 -0
- package/dist/modules/system/services/update-dictionary.js +1 -0
- package/dist/modules/system/services/update-system-settings.js +1 -1
- package/dist/modules/utils/require-admin.js +1 -1
- package/dist/modules/utils/safe-user.js +1 -1
- package/dist/modules/utils/unsupported.js +1 -1
- package/dist/plugins/audit/audit.js +1 -1
- package/dist/plugins/audit/index.js +1 -1
- package/dist/plugins/audit/services/write-audit.js +1 -1
- package/dist/plugins/auth/get-user-permissions.d.ts +3 -0
- package/dist/plugins/auth/get-user-permissions.d.ts.map +1 -0
- package/dist/plugins/auth/get-user-permissions.js +1 -0
- package/dist/plugins/auth/index.d.ts +4 -0
- package/dist/plugins/auth/index.d.ts.map +1 -1
- package/dist/plugins/auth/index.js +1 -1
- package/dist/plugins/auth/verifyUser.d.ts +9 -0
- package/dist/plugins/auth/verifyUser.d.ts.map +1 -0
- package/dist/plugins/auth/verifyUser.js +1 -0
- package/dist/plugins/dictionary.js +1 -1
- package/dist/plugins/file.js +1 -1
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/logger/index.js +1 -1
- package/dist/plugins/logger/transport.js +1 -1
- package/dist/plugins/pg.js +1 -1
- package/dist/plugins/redis.js +1 -1
- package/dist/plugins/resource/index.js +1 -1
- package/dist/plugins/resource/resource.d.ts.map +1 -1
- package/dist/plugins/resource/resource.js +1 -1
- package/dist/plugins/resource/resource.registry.js +1 -1
- package/dist/plugins/resource/resource.types.d.ts +23 -0
- package/dist/plugins/resource/resource.types.d.ts.map +1 -1
- package/dist/plugins/resource/services/create-relation.d.ts +13 -0
- package/dist/plugins/resource/services/create-relation.d.ts.map +1 -0
- package/dist/plugins/resource/services/create-relation.js +1 -0
- package/dist/plugins/resource/services/create.js +1 -1
- package/dist/plugins/resource/services/delete-relation.d.ts +15 -0
- package/dist/plugins/resource/services/delete-relation.d.ts.map +1 -0
- package/dist/plugins/resource/services/delete-relation.js +1 -0
- package/dist/plugins/resource/services/delete.js +1 -1
- package/dist/plugins/resource/services/find-one.js +1 -1
- package/dist/plugins/resource/services/find-relation.d.ts +12 -0
- package/dist/plugins/resource/services/find-relation.d.ts.map +1 -0
- package/dist/plugins/resource/services/find-relation.js +1 -0
- package/dist/plugins/resource/services/find.js +1 -1
- package/dist/plugins/resource/services/update.js +1 -1
- package/dist/plugins/resource/utils/fields.js +1 -1
- package/dist/plugins/resource/utils/filters.js +1 -1
- package/dist/plugins/resource/utils/permissions.js +1 -1
- package/dist/plugins/resource/utils/sort.js +1 -1
- package/dist/plugins/resource/utils/sql.js +1 -1
- package/dist/shared/getIP.js +1 -1
- package/dist/type.d.ts +14 -0
- package/dist/type.d.ts.map +1 -1
- package/migrations/20260903120000_core_schema.sql +22 -19
- package/migrations/20260903130000_move_notes_files_to_admin.sql +17 -17
- package/migrations/20260903140000_settings_nulls_not_distinct.sql +18 -18
- package/migrations/20260905120000_add_user_foreign_keys.sql +43 -0
- package/package.json +10 -5
- package/dist/modules/auth/index.d.ts +0 -9
- package/dist/modules/auth/index.d.ts.map +0 -1
- package/dist/modules/auth/index.js +0 -1
- package/dist/modules/auth/services/login.d.ts +0 -10
- package/dist/modules/auth/services/login.d.ts.map +0 -1
- package/dist/modules/auth/services/login.js +0 -1
- package/dist/modules/auth/services/logout.d.ts +0 -9
- package/dist/modules/auth/services/logout.d.ts.map +0 -1
- package/dist/modules/auth/services/logout.js +0 -1
- package/dist/modules/auth/services/verifyPassword.d.ts +0 -11
- package/dist/modules/auth/services/verifyPassword.d.ts.map +0 -1
- package/dist/modules/auth/services/verifyPassword.js +0 -1
- package/dist/modules/file/index.d.ts +0 -8
- package/dist/modules/file/index.d.ts.map +0 -1
- package/dist/modules/file/index.js +0 -1
- package/dist/modules/resource/index.d.ts +0 -20
- package/dist/modules/resource/index.d.ts.map +0 -1
- package/dist/modules/resource/index.js +0 -1
- package/dist/modules/resource/services/list-children.d.ts +0 -6
- package/dist/modules/resource/services/list-children.d.ts.map +0 -1
- package/dist/modules/resource/services/list-children.js +0 -1
- package/dist/modules/system/index.d.ts +0 -13
- package/dist/modules/system/index.d.ts.map +0 -1
- package/dist/modules/system/index.js +0 -1
- package/dist/modules/utils/get-user-permissions.d.ts +0 -3
- package/dist/modules/utils/get-user-permissions.d.ts.map +0 -1
- package/dist/modules/utils/get-user-permissions.js +0 -1
package/LICENSE
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Copyright (c) OpenGIS. All rights reserved.
|
|
2
|
-
|
|
3
|
-
Proprietary and confidential.
|
|
1
|
+
Copyright (c) OpenGIS. All rights reserved.
|
|
2
|
+
|
|
3
|
+
Proprietary and confidential.
|
package/README.md
CHANGED
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
# @opengis/fcore
|
|
2
|
-
|
|
3
|
-
Reusable backend foundation for OpenGIS Node.js applications: config, typed application context, PostgreSQL, Redis, S3 file storage, audit, trusted Resource CRUD, Core modules, Fastify integration and SQL migration runner.
|
|
4
|
-
|
|
5
|
-
## Install
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @opengis/fcore
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Bootstrap
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
import { createFCore } from '@opengis/fcore';
|
|
15
|
-
import resources from './resources/index.js';
|
|
16
|
-
|
|
17
|
-
export const ctx = await createFCore({ resources });
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
```ts
|
|
21
|
-
import Fastify from 'fastify';
|
|
22
|
-
import fcoreFastify from '@opengis/fcore/fastify';
|
|
23
|
-
import { ctx } from './app.js';
|
|
24
|
-
|
|
25
|
-
const app = Fastify();
|
|
26
|
-
await app.register(fcoreFastify, { ctx });
|
|
27
|
-
await app.listen({ port: ctx.config.port });
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Resource
|
|
31
|
-
|
|
32
|
-
All dynamic table/column identifiers come from registered `ResourceContract` metadata. Values are SQL parameters.
|
|
33
|
-
|
|
34
|
-
## Migrations
|
|
35
|
-
|
|
36
|
-
Project SQL files stay in `./migrations`. Build the package/application, then run `fcore-migrate` or import `runMigrations()`.
|
|
37
|
-
|
|
38
|
-
## Module service convention
|
|
39
|
-
|
|
40
|
-
Module services are plain async functions with the canonical `service(params, ctx)` signature. `ctx` is passed explicitly from `fastify.ts` to each module `route.ts`; there is no `service.ts` or `createService()` factory.
|
|
41
|
-
|
|
42
|
-
## Structure
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
@opengis/fcore
|
|
46
|
-
├── src/
|
|
47
|
-
│ ├── plugins/
|
|
48
|
-
│ │ ├── logger/
|
|
49
|
-
│ │ ├── redis/
|
|
50
|
-
│ │ ├── pg/
|
|
51
|
-
│ │ ├── file/
|
|
52
|
-
│ │ ├── audit/
|
|
53
|
-
│ │ └── resource/
|
|
54
|
-
│ ├── modules/
|
|
55
|
-
│ │ ├── auth/
|
|
56
|
-
│ │ ├── access/
|
|
57
|
-
│ │ ├── resource/
|
|
58
|
-
│ │ ├── file/
|
|
59
|
-
│ │ ├── template/
|
|
60
|
-
│ │ └── system/
|
|
61
|
-
│ ├── migrations/
|
|
62
|
-
│ ├── config.ts # loadConfig
|
|
63
|
-
│ ├── context.ts # createContext, set, get
|
|
64
|
-
│ ├── errors.ts # standard Errors
|
|
65
|
-
│ ├── fastify.ts # fastify Plugins
|
|
66
|
-
│ ├── fcore.ts # createFcore
|
|
67
|
-
│ └── index.ts # export type, methods, etc
|
|
68
|
-
├── test/
|
|
69
|
-
├── engineering/
|
|
70
|
-
├── package.json
|
|
71
|
-
└── tsconfig.json
|
|
1
|
+
# @opengis/fcore
|
|
2
|
+
|
|
3
|
+
Reusable backend foundation for OpenGIS Node.js applications: config, typed application context, PostgreSQL, Redis, S3 file storage, audit, trusted Resource CRUD, Core modules, Fastify integration and SQL migration runner.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @opengis/fcore
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Bootstrap
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { createFCore } from '@opengis/fcore';
|
|
15
|
+
import resources from './resources/index.js';
|
|
16
|
+
|
|
17
|
+
export const ctx = await createFCore({ resources });
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import Fastify from 'fastify';
|
|
22
|
+
import fcoreFastify from '@opengis/fcore/fastify';
|
|
23
|
+
import { ctx } from './app.js';
|
|
24
|
+
|
|
25
|
+
const app = Fastify();
|
|
26
|
+
await app.register(fcoreFastify, { ctx });
|
|
27
|
+
await app.listen({ port: ctx.config.port });
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Resource
|
|
31
|
+
|
|
32
|
+
All dynamic table/column identifiers come from registered `ResourceContract` metadata. Values are SQL parameters.
|
|
33
|
+
|
|
34
|
+
## Migrations
|
|
35
|
+
|
|
36
|
+
Project SQL files stay in `./migrations`. Build the package/application, then run `fcore-migrate` or import `runMigrations()`.
|
|
37
|
+
|
|
38
|
+
## Module service convention
|
|
39
|
+
|
|
40
|
+
Module services are plain async functions with the canonical `service(params, ctx)` signature. `ctx` is passed explicitly from `fastify.ts` to each module `route.ts`; there is no `service.ts` or `createService()` factory.
|
|
41
|
+
|
|
42
|
+
## Structure
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
@opengis/fcore
|
|
46
|
+
├── src/
|
|
47
|
+
│ ├── plugins/
|
|
48
|
+
│ │ ├── logger/
|
|
49
|
+
│ │ ├── redis/
|
|
50
|
+
│ │ ├── pg/
|
|
51
|
+
│ │ ├── file/
|
|
52
|
+
│ │ ├── audit/
|
|
53
|
+
│ │ └── resource/
|
|
54
|
+
│ ├── modules/
|
|
55
|
+
│ │ ├── auth/
|
|
56
|
+
│ │ ├── access/
|
|
57
|
+
│ │ ├── resource/
|
|
58
|
+
│ │ ├── file/
|
|
59
|
+
│ │ ├── template/
|
|
60
|
+
│ │ └── system/
|
|
61
|
+
│ ├── migrations/
|
|
62
|
+
│ ├── config.ts # loadConfig
|
|
63
|
+
│ ├── context.ts # createContext, set, get
|
|
64
|
+
│ ├── errors.ts # standard Errors
|
|
65
|
+
│ ├── fastify.ts # fastify Plugins
|
|
66
|
+
│ ├── fcore.ts # createFcore
|
|
67
|
+
│ └── index.ts # export type, methods, etc
|
|
68
|
+
├── test/
|
|
69
|
+
├── engineering/
|
|
70
|
+
├── package.json
|
|
71
|
+
└── tsconfig.json
|
|
72
72
|
```
|
package/dist/config.d.ts
CHANGED
|
@@ -55,16 +55,8 @@ export interface FCoreConfig {
|
|
|
55
55
|
sessionTimeout: number;
|
|
56
56
|
cookieName: string;
|
|
57
57
|
jwtSecret: string;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
login: string;
|
|
61
|
-
afterLogin?: string;
|
|
62
|
-
};
|
|
63
|
-
twoFactor?: {
|
|
64
|
-
login: string;
|
|
65
|
-
afterLogin?: string;
|
|
66
|
-
};
|
|
67
|
-
};
|
|
58
|
+
redirect?: string;
|
|
59
|
+
twoFactorRedirect?: string;
|
|
68
60
|
cookieOptions: {
|
|
69
61
|
domain?: string;
|
|
70
62
|
path?: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,KAAK,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAIvD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,KAAK,qBAAqB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAIvD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,MAAM,CAAC,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;SAC5C,CAAC;KACH,CAAC;CACH;AAED,iBAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAItC;AAED,wBAAgB,UAAU,CAAC,SAAS,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAgG5E;AACD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5d8246,_0x5bf48e){const _0x58bef1=_0x1101,_0x1a3b11=_0x5d8246();while(!![]){try{const _0xbb1ce0=parseInt(_0x58bef1(0x16f))/0x1*(-parseInt(_0x58bef1(0x156))/0x2)+parseInt(_0x58bef1(0x13d))/0x3+-parseInt(_0x58bef1(0x139))/0x4+-parseInt(_0x58bef1(0x166))/0x5+-parseInt(_0x58bef1(0x159))/0x6*(-parseInt(_0x58bef1(0x15b))/0x7)+parseInt(_0x58bef1(0x165))/0x8*(parseInt(_0x58bef1(0x173))/0x9)+parseInt(_0x58bef1(0x169))/0xa*(-parseInt(_0x58bef1(0x168))/0xb);if(_0xbb1ce0===_0x5bf48e)break;else _0x1a3b11['push'](_0x1a3b11['shift']());}catch(_0x597171){_0x1a3b11['push'](_0x1a3b11['shift']());}}}(_0x2310,0x445f2));import'dotenv/config';const DEFAULT_LOG_RESPONSE_STATUS_CODES=[0x193,0x199,0x19d,0x19f,0x1ad];function _0x2310(){const _0x4efd00=['PnDJs','sameSite','x5y30KBsEKCENT04tu6549Vxx3No1ztJ2q2K8r79S59420RaZ5','split','session_user_auth','kTIhH','YAbBp','tEOqn','lax','map','includes','password','qHlFq','kDMSY','bdYOX','true','696018RaqOrf','Missing\x20environment\x20variable:\x20','us-east-1','17022jrmOQe','strict','819Tpokwj','auth','./storage','Ch7QR4e73Jg0wx0xOjm','0ua4b1Tz21m47z13U3EO0uN9e0WE7hqRFbcZ72cbdWqZBzemf9cAU865xan1s81TdNpUKKfF','ArJOy','kMFAT','parse','zVCrp','hrLKp','6808LFtNUd','442560Tcnhdx','none','478951DLSQpP','10wFEsvB','redis','Lxonk','cwd','SvuTJ','development','1bFVGAF','DYzpV','/log','localhost','4932ctulhG','1996008TwklsU','httpOnly','logger','info','1382511EIYhlg','XlRMM','gWfrc','path','false','tqtaW','AMXdD','Sbblp','secure'];_0x2310=function(){return _0x4efd00;};return _0x2310();}function _0x1101(_0x93fa84,_0x2b92b0){_0x93fa84=_0x93fa84-0x139;const _0x2310c6=_0x2310();let _0x1101e8=_0x2310c6[_0x93fa84];return _0x1101e8;}function required(_0x18331f){const _0x33ae94=_0x1101,_0x6da250=process.env[_0x18331f];if(!_0x6da250)throw new Error(_0x33ae94(0x157)+_0x18331f);return _0x6da250;}export function loadConfig(_0x4910a3={}){const _0xda6573=_0x1101,_0x92960={'hrLKp':_0xda6573(0x16e),'YAbBp':function(_0x4c29b4,_0x3b5365){return _0x4c29b4===_0x3b5365;},'Sbblp':_0xda6573(0x155),'tqtaW':function(_0x5e94e7,_0x2dbab4){return _0x5e94e7(_0x2dbab4);},'Lxonk':function(_0x56d4e7,_0x5411f5){return _0x56d4e7===_0x5411f5;},'SvuTJ':_0xda6573(0x141),'kMFAT':_0xda6573(0x15d),'kDMSY':_0xda6573(0x151),'qHlFq':_0xda6573(0x13c),'gWfrc':_0xda6573(0x172),'DYzpV':_0xda6573(0x158),'tEOqn':function(_0x2aa065,_0x10b5da){return _0x2aa065!==_0x10b5da;},'AMXdD':_0xda6573(0x15e),'kTIhH':_0xda6573(0x148),'PnDJs':_0xda6573(0x14a),'bdYOX':function(_0x4d38b1,_0x3ec7a7){return _0x4d38b1(_0x3ec7a7);},'XlRMM':_0xda6573(0x15a),'zVCrp':_0xda6573(0x167),'ArJOy':function(_0x573e61,_0x5443cc){return _0x573e61(_0x5443cc);}},_0x1c7451={};_0x1c7451[_0xda6573(0x140)]='/',_0x1c7451[_0xda6573(0x13a)]=!![],_0x1c7451[_0xda6573(0x145)]=![],_0x1c7451[_0xda6573(0x147)]=!![];const _0xc11fb7={'env':process.env.NODE_ENV??_0x92960[_0xda6573(0x164)],'debug':_0x92960[_0xda6573(0x14c)](process.env.DEBUG,_0x92960[_0xda6573(0x144)]),'port':_0x92960[_0xda6573(0x142)](Number,process.env.PORT??0xbb8),'maxFileSize':+(process.env.MAX_FILE_SIZE||0x200),'rateLimit':{'disabled':_0x92960[_0xda6573(0x16b)](process.env.RATE_LIMIT,_0x92960[_0xda6573(0x16d)]),'max':+(process.env.RATE_LIMIT_MAX||0x64),'timeWindow':+(process.env.RATE_LIMIT_TIME_WINDOW||0xea60)},'storagePath':process.env.STORAGE_PATH??_0x92960[_0xda6573(0x161)],'redactionList':(process.env.REDACTION_LIST||_0x92960[_0xda6573(0x153)])[_0xda6573(0x149)](','),'logger':{'level':process.env.LOG_LEVEL??_0x92960[_0xda6573(0x152)],'responses':_0x92960[_0xda6573(0x14c)](process.env.LOG_RESPONSES,_0x92960[_0xda6573(0x144)])?!![]:![],'responseCodes':process.env.LOG_RESPONSE_STATUS_CODES?process.env.LOG_RESPONSE_STATUS_CODES[_0xda6573(0x149)](',')[_0xda6573(0x14f)](_0x48e1ae=>_0x48e1ae-0x0):DEFAULT_LOG_RESPONSE_STATUS_CODES,'directory':process.env.LOG_DIRECTORY||process[_0xda6573(0x16c)]()+_0xda6573(0x171)},'pg':{'host':process.env.PG_HOST??_0x92960[_0xda6573(0x13f)],'port':Number(process.env.PG_PORT??0x1538),'database':process.env.PG_DATABASE??'','user':process.env.PG_USER??'','password':process.env.PG_PASSWORD??''},'redis':{'host':process.env.REDIS_HOST??'','port':Number(process.env.REDIS_PORT??0x18eb),'password':process.env.REDIS_PASSWORD,'lazyConnect':!![],'db':process.env.REDIS_DB?Number(process.env.REDIS_DB):undefined},'s3':{'endpoint':process.env.S3_ENDPOINT,'region':process.env.S3_REGION??_0x92960[_0xda6573(0x170)],'bucket':process.env.S3_BUCKET??'','accessKey':process.env.S3_ACCESS_KEY,'secretKey':process.env.S3_SECRET_KEY,'folder':process.env.S3_FOLDER,'forcePathStyle':_0x92960[_0xda6573(0x14d)](process.env.S3_FORCE_PATH_STYLE,_0x92960[_0xda6573(0x16d)]),'tokenSecret':process.env.FILE_TOKEN_SECRET,'tokenTtl':_0x92960[_0xda6573(0x142)](Number,process.env.FILE_TOKEN_TTL??0xe10)},'auth':{'accessToken':process.env.AUTH_ACCESS_TOKEN||_0x92960[_0xda6573(0x143)],'user':process.env.AUTH_USER?JSON[_0xda6573(0x162)](process.env.AUTH_USER):undefined,'sessionTimeout':+(process.env.AUTH_SESSION_TIMEOUT||0x258),'secret':process.env.AUTH_SECRET??_0x92960[_0xda6573(0x14b)],'cookieName':process.env.AUTH_COOKIE_NAME??_0x92960[_0xda6573(0x146)],'jwtSecret':process.env.AUTH_JWT_SECRET??_0xda6573(0x15f),'redirect':process.env.AUTH_REDIRECT??'/','twoFactorRedirect':process.env.AUTH_TWOFACTOR_REDIRECT??'/','cookieOptions':process.env.AUTH_COOKIE_OPTIONS_DOMAIN?{'domain':process.env.AUTH_COOKIE_OPTIONS_DOMAIN,'path':process.env.AUTH_COOKIE_OPTIONS_PATH||'/','httpOnly':_0x92960[_0xda6573(0x142)](Boolean,process.env.AUTH_COOKIE_OPTIONS_HTTP_ONLY||_0x92960[_0xda6573(0x144)]),'secure':_0x92960[_0xda6573(0x154)](Boolean,process.env.AUTH_COOKIE_OPTIONS_SECURE||_0xda6573(0x155)),'sameSite':process.env.AUTH_COOKIE_OPTIONS_SAME_SITE&&[_0xda6573(0x14e),_0x92960[_0xda6573(0x13e)],_0x92960[_0xda6573(0x163)]][_0xda6573(0x150)](process.env.AUTH_COOKIE_OPTIONS_SAME_SITE)?process.env.AUTH_COOKIE_OPTIONS_SAME_SITE:_0x92960[_0xda6573(0x160)](Boolean,process.env.AUTH_COOKIE_OPTIONS_SAME_SITE||_0x92960[_0xda6573(0x144)])}:_0x1c7451}},_0x3011fb={..._0xc11fb7,..._0x4910a3};return _0x3011fb[_0xda6573(0x13b)]={..._0xc11fb7[_0xda6573(0x13b)],..._0x4910a3[_0xda6573(0x13b)]},_0x3011fb['pg']={..._0xc11fb7['pg'],..._0x4910a3['pg']},_0x3011fb[_0xda6573(0x16a)]={..._0xc11fb7[_0xda6573(0x16a)],..._0x4910a3[_0xda6573(0x16a)]},_0x3011fb['s3']={..._0xc11fb7['s3'],..._0x4910a3['s3']},_0x3011fb[_0xda6573(0x15c)]={..._0xc11fb7[_0xda6573(0x15c)],..._0x4910a3[_0xda6573(0x15c)]},_0x3011fb;}export{required as requireEnv};
|
package/dist/context.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x41fe05,_0x294803){const _0x278b80=_0x32d5,_0x18db2c=_0x41fe05();while(!![]){try{const _0x620f78=-parseInt(_0x278b80(0x1a9))/0x1*(parseInt(_0x278b80(0x1ae))/0x2)+parseInt(_0x278b80(0x1a6))/0x3*(parseInt(_0x278b80(0x1ac))/0x4)+parseInt(_0x278b80(0x1aa))/0x5+parseInt(_0x278b80(0x1b6))/0x6+parseInt(_0x278b80(0x1b5))/0x7*(parseInt(_0x278b80(0x1b4))/0x8)+parseInt(_0x278b80(0x1b7))/0x9*(-parseInt(_0x278b80(0x1a7))/0xa)+-parseInt(_0x278b80(0x1b0))/0xb*(parseInt(_0x278b80(0x1af))/0xc);if(_0x620f78===_0x294803)break;else _0x18db2c['push'](_0x18db2c['shift']());}catch(_0x3d4c68){_0x18db2c['push'](_0x18db2c['shift']());}}}(_0x2041,0x7fcb3));let defaultContext;function _0x32d5(_0x36fae1,_0x52a9e5){_0x36fae1=_0x36fae1-0x1a6;const _0x204180=_0x2041();let _0x32d5d7=_0x204180[_0x36fae1];return _0x32d5d7;}function _0x2041(){const _0x370c10=['Application\x20context\x20is\x20not\x20initialized','logger','8SIocke','3627386XCMUta','1555818qwgdEd','1782XjUOZv','redis','2165127pxZBLk','14460uzAngF','allSettled','189527LuDOUT','4233945uhiDTM','TJdMb','4GzKFUU','close','4jIPmTb','6943164zMtmna','22mjXuhw','end'];_0x2041=function(){return _0x370c10;};return _0x2041();}export function setContext(_0x3f1703){defaultContext=_0x3f1703;}export function getContext(){const _0x20e0fc=_0x32d5,_0x25b812={};_0x25b812[_0x20e0fc(0x1ab)]=_0x20e0fc(0x1b2);const _0x36d849=_0x25b812;if(!defaultContext)throw new Error(_0x36d849[_0x20e0fc(0x1ab)]);return defaultContext;}export function createContext(_0x3520cd){return{..._0x3520cd,async 'close'(){const _0x15b51d=_0x32d5;await Promise[_0x15b51d(0x1a8)]([_0x3520cd[_0x15b51d(0x1b8)]?.[_0x15b51d(0x1ad)](),_0x3520cd['pg']?.[_0x15b51d(0x1b1)]()]),await _0x3520cd[_0x15b51d(0x1b3)][_0x15b51d(0x1ad)]();}};}
|
package/dist/errors.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x5701cc=_0x17c8;function _0x17c8(_0xdb27fe,_0x24a3cd){_0xdb27fe=_0xdb27fe-0x15c;var _0x203058=_0x2030();var _0x17c8a1=_0x203058[_0xdb27fe];return _0x17c8a1;}(function(_0x47c102,_0x166b20){var _0x3b893f=_0x17c8,_0x407d48=_0x47c102();while(!![]){try{var _0xb4e3c4=parseInt(_0x3b893f(0x170))/0x1+-parseInt(_0x3b893f(0x179))/0x2+-parseInt(_0x3b893f(0x163))/0x3+parseInt(_0x3b893f(0x17b))/0x4*(-parseInt(_0x3b893f(0x172))/0x5)+parseInt(_0x3b893f(0x166))/0x6*(-parseInt(_0x3b893f(0x176))/0x7)+-parseInt(_0x3b893f(0x178))/0x8*(-parseInt(_0x3b893f(0x16f))/0x9)+parseInt(_0x3b893f(0x16d))/0xa*(parseInt(_0x3b893f(0x168))/0xb);if(_0xb4e3c4===_0x166b20)break;else _0x407d48['push'](_0x407d48['shift']());}catch(_0x52d328){_0x407d48['push'](_0x407d48['shift']());}}}(_0x2030,0xd4c4e));export class FCoreError extends Error{[_0x5701cc(0x173)];[_0x5701cc(0x171)];[_0x5701cc(0x175)];constructor(_0x4ba25b,_0x3fd04f,_0x3e5b59=0x1f4,_0x23337a){var _0xb80536=_0x5701cc;super(_0x3fd04f),this[_0xb80536(0x173)]=_0x4ba25b,this[_0xb80536(0x171)]=_0x3e5b59,this[_0xb80536(0x175)]=_0x23337a,this[_0xb80536(0x165)]=new.target.name;}}export class BadRequestError extends FCoreError{constructor(_0x1990d3,_0x512886){var _0x3c1942=_0x5701cc;super(_0x3c1942(0x177),_0x1990d3,0x190,_0x512886);}}export class UnauthorizedError extends FCoreError{constructor(_0x1a6865=_0x5701cc(0x15e)){var _0x444e15=_0x5701cc,_0x104d52={};_0x104d52[_0x444e15(0x16c)]=_0x444e15(0x15c);var _0x3c27dc=_0x104d52;super(_0x3c27dc[_0x444e15(0x16c)],_0x1a6865,0x191);}}export class ForbiddenError extends FCoreError{constructor(_0x489e57=_0x5701cc(0x16a)){var _0x476f79=_0x5701cc,_0xb90bdb={};_0xb90bdb[_0x476f79(0x17c)]=_0x476f79(0x15f);var _0x4ab98b=_0xb90bdb;super(_0x4ab98b[_0x476f79(0x17c)],_0x489e57,0x193);}}export class NotFoundError extends FCoreError{constructor(_0x247e5e=_0x5701cc(0x164)){var _0x1a1257=_0x5701cc,_0x5d40af={};_0x5d40af[_0x1a1257(0x16e)]=_0x1a1257(0x15d);var _0x24e56e=_0x5d40af;super(_0x24e56e[_0x1a1257(0x16e)],_0x247e5e,0x194);}}function _0x2030(){var _0x31ca1b=['wHqwx','gGzeh','19525270OOBkpT','Uraqr','369beRKde','532049toGzFe','statusCode','5EQKWQT','code','aruFK','details','46151gEmFzT','BAD_REQUEST_ERROR','157576bKvHip','3256706FoxiNV','MtpuA','4023860rmBGKy','UguRv','UNAUTHORIZED','NOT_FOUND','Authentication\x20required','FORBIDDEN','Operation\x20is\x20not\x20configured','UNSUPPORTED','CONFLICT','3713376cQKJkO','Not\x20found','name','456rybTCy','Conflict','22YqmHcv','VALIDATION_ERROR','Access\x20denied'];_0x2030=function(){return _0x31ca1b;};return _0x2030();}export class ConflictError extends FCoreError{constructor(_0x13b0ef=_0x5701cc(0x167)){var _0x48ee9b=_0x5701cc,_0x36995a={};_0x36995a[_0x48ee9b(0x174)]=_0x48ee9b(0x162);var _0x4e0689=_0x36995a;super(_0x4e0689[_0x48ee9b(0x174)],_0x13b0ef,0x199);}}export class ValidationError extends FCoreError{constructor(_0x3c92f2,_0x426edd){var _0x28295f=_0x5701cc,_0x659791={};_0x659791[_0x28295f(0x17a)]=_0x28295f(0x169);var _0x30913a=_0x659791;super(_0x30913a[_0x28295f(0x17a)],_0x3c92f2,0x1a6,_0x426edd);}}export class UnsupportedError extends FCoreError{constructor(_0x1967da=_0x5701cc(0x160)){var _0x34dc21=_0x5701cc,_0x5e02c1={};_0x5e02c1[_0x34dc21(0x16b)]=_0x34dc21(0x161);var _0x37e558=_0x5e02c1;super(_0x37e558[_0x34dc21(0x16b)],_0x1967da,0x1f5);}}
|
package/dist/fastify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"fastify.d.ts","sourceRoot":"","sources":["../src/fastify.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB/C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CA6FxE"}
|
package/dist/fastify.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x59c58f,_0x24fd4e){const _0x42378c=_0xc354,_0x38c615=_0x59c58f();while(!![]){try{const _0x463029=-parseInt(_0x42378c(0xdc))/0x1*(parseInt(_0x42378c(0x139))/0x2)+parseInt(_0x42378c(0xf7))/0x3*(-parseInt(_0x42378c(0x110))/0x4)+parseInt(_0x42378c(0xf4))/0x5+-parseInt(_0x42378c(0xe0))/0x6+parseInt(_0x42378c(0x10c))/0x7+-parseInt(_0x42378c(0xd4))/0x8*(parseInt(_0x42378c(0xf9))/0x9)+parseInt(_0x42378c(0x108))/0xa;if(_0x463029===_0x24fd4e)break;else _0x38c615['push'](_0x38c615['shift']());}catch(_0x4b532b){_0x38c615['push'](_0x38c615['shift']());}}}(_0x53f6,0xca2f2));import{FCoreError}from'./errors.js';import{authRoutes}from'./modules/auth/route.js';import{fileRoutes}from'./modules/file/route.js';import{resourceRoutes}from'./modules/resource/route.js';import{systemRoutes}from'./modules/system/route.js';import{createSessionStore}from'./plugins/auth/index.js';function _0xc354(_0x34f6ee,_0x375710){_0x34f6ee=_0x34f6ee-0xd1;const _0x53f649=_0x53f6();let _0xc3540b=_0x53f649[_0x34f6ee];return _0xc3540b;}function urlencodedContentParser(_0x453831,_0x12eac8,_0x561660){const _0x42e40a=_0xc354,_0x235b87={'hFznd':function(_0x52f505,_0x5e5c83){return _0x52f505(_0x5e5c83);},'rgUMZ':function(_0x453c33,_0x4b4388,_0x567d0e){return _0x453c33(_0x4b4388,_0x567d0e);}},_0x5774e3=_0x235b87[_0x42e40a(0xdd)](decodeURIComponent,_0x12eac8[_0x42e40a(0x133)]())[_0x42e40a(0xfd)]('&')[_0x42e40a(0xf2)]((_0x4daf6e,_0x4e81f9)=>{const _0x3e4e15=_0x42e40a,[_0x27ecc3,_0x526785]=_0x4e81f9[_0x3e4e15(0xfd)]('='),_0x532140={..._0x4daf6e};return _0x532140[_0x27ecc3]=_0x526785,_0x532140;},{});_0x235b87[_0x42e40a(0xec)](_0x561660,null,_0x5774e3);}export default function fcoreFastify(_0x49403a){const _0xfebb4b=_0xc354,_0x3f6927={'mRKJK':_0xfebb4b(0x11e),'DxrPN':_0xfebb4b(0xe7),'ndtoI':_0xfebb4b(0x11a),'sOnrj':function(_0x5e43e5,_0x3aafa4){return _0x5e43e5===_0x3aafa4;},'KhNyZ':_0xfebb4b(0xf5),'ZzZjY':_0xfebb4b(0xd8),'YbbQV':_0xfebb4b(0x135),'Kwpol':_0xfebb4b(0xdb),'HgDCB':_0xfebb4b(0x127),'zdWUU':_0xfebb4b(0x105),'ynOmu':_0xfebb4b(0x138),'GIblf':_0xfebb4b(0x104),'LGCYR':function(_0x52c8e9,_0x134377){return _0x52c8e9(_0x134377);},'uvViK':function(_0x450379,_0x13509e,_0x43f560){return _0x450379(_0x13509e,_0x43f560);},'HeIne':_0xfebb4b(0xfa),'ypDxv':_0xfebb4b(0x119),'Foaml':function(_0x694ed0,_0x1b565f){return _0x694ed0!==_0x1b565f;},'rnrtn':_0xfebb4b(0x11b),'nSeLb':_0xfebb4b(0xd2),'MdNHe':_0xfebb4b(0x12d),'blJFQ':_0xfebb4b(0xe6),'HvnxN':function(_0x1b27f9,_0xf6cf7){return _0x1b27f9*_0xf6cf7;}};return async _0x249ad1=>{const _0x712d31=_0xfebb4b,_0x347490={'oSita':_0x3f6927[_0x712d31(0xff)],'VDHnU':_0x712d31(0xd2),'PJWpd':_0x3f6927[_0x712d31(0x116)],'NBUTJ':_0x3f6927[_0x712d31(0xe9)],'MnIAq':function(_0x3f9223,_0x364d6e){const _0x443db2=_0x712d31;return _0x3f6927[_0x443db2(0x10f)](_0x3f9223,_0x364d6e);},'eOkQN':_0x3f6927[_0x712d31(0x11c)],'uWBnS':_0x3f6927[_0x712d31(0xd5)],'sehOw':function(_0x206d9f,_0x23f7d8){return _0x206d9f instanceof _0x23f7d8;},'sKEGz':function(_0x55349c,_0x5690c1){const _0x422f3e=_0x712d31;return _0x3f6927[_0x422f3e(0x10f)](_0x55349c,_0x5690c1);},'AMJxY':_0x712d31(0x132),'BRyoj':_0x3f6927[_0x712d31(0x12f)],'BoHMb':_0x3f6927[_0x712d31(0xfb)],'mVrRD':_0x3f6927[_0x712d31(0xe5)],'JznOq':_0x3f6927[_0x712d31(0x124)],'zhITp':_0x712d31(0x12e),'tHNPF':_0x712d31(0x12d)};_0x249ad1[_0x712d31(0xd6)](_0x3f6927[_0x712d31(0x122)],_0x49403a);const {config:_0x3031e3}=_0x49403a,_0xe2b481=new Map();_0x249ad1[_0x712d31(0xfe)](_0x3f6927[_0x712d31(0xeb)],_0xb2a7e=>{const _0x7a2014=_0x712d31;if(_0xb2a7e[_0x7a2014(0x125)][_0x7a2014(0x128)](_0x347490[_0x7a2014(0xf1)])){const _0x2c6843=_0xb2a7e[_0x7a2014(0xfc)],_0x2683a2=Array[_0x7a2014(0x106)](_0xb2a7e[_0x7a2014(0x107)])?_0xb2a7e[_0x7a2014(0x107)]:[_0xb2a7e[_0x7a2014(0x107)]];for(const _0x33e2f5 of _0x2683a2){if(_0x33e2f5===_0x347490[_0x7a2014(0xee)]){if(_0x347490[_0x7a2014(0x12c)](_0x347490[_0x7a2014(0xe3)],_0x347490[_0x7a2014(0xe3)]))continue;else _0x2e63d8[_0x7a2014(0x131)](import(_0x347490[_0x7a2014(0xde)]),{'max':_0x16ac81[_0x7a2014(0x129)]?.[_0x7a2014(0x136)]||0x64,'timeWindow':_0x2f23f8[_0x7a2014(0x129)]?.[_0x7a2014(0x12a)]||0xea60,'hook':_0x347490[_0x7a2014(0x117)],'global':!![],'keyGenerator':_0x2c3955=>(_0x2c3955[_0x7a2014(0x10d)]?.['id']||_0x2c3955['ip'])+'-'+_0x2c3955[_0x7a2014(0xd9)][_0x7a2014(0x125)][_0x7a2014(0xfd)]('?')[0x0]});}const _0x42a4f1={};_0x42a4f1[_0x7a2014(0x107)]=_0x33e2f5,_0x42a4f1[_0x7a2014(0x120)]=_0xb2a7e[_0x7a2014(0x125)],_0x42a4f1[_0x7a2014(0xd3)]=_0x2c6843?.[_0x7a2014(0xd3)]??_0x7a2014(0x102),_0x42a4f1[_0x7a2014(0x130)]=_0x2c6843?.[_0x7a2014(0x130)]??[],_0x42a4f1[_0x7a2014(0x134)]=_0x2c6843?.[_0x7a2014(0x134)]??'',_0x42a4f1[_0x7a2014(0xd7)]=_0x2c6843?.[_0x7a2014(0xd7)]??'',_0x42a4f1[_0x7a2014(0xe1)]=_0x2c6843?.[_0x7a2014(0xe1)]??_0x347490[_0x7a2014(0x13b)],_0x42a4f1[_0x7a2014(0x11d)]=_0x2c6843?.[_0x7a2014(0x11d)]??[];const _0x43126c=_0x42a4f1;_0xe2b481[_0x7a2014(0x114)](_0x33e2f5+'\x20'+_0xb2a7e[_0x7a2014(0x125)],_0x43126c);}}}),await createSessionStore(_0x249ad1,_0x49403a),_0x249ad1[_0x712d31(0x118)]((_0x2811b6,_0x2a8b19,_0x16e2f9)=>{const _0x5377fa=_0x712d31;if(_0x347490[_0x5377fa(0x115)](_0x347490[_0x5377fa(0xe2)],_0x347490[_0x5377fa(0xe2)])){if(_0x347490[_0x5377fa(0xda)](_0x2811b6,FCoreError)||_0x347490[_0x5377fa(0x12c)](_0x2811b6[_0x5377fa(0xe4)],_0x347490[_0x5377fa(0x137)])){if(_0x347490[_0x5377fa(0x115)](_0x347490[_0x5377fa(0x11f)],_0x347490[_0x5377fa(0x11f)]))return _0x16e2f9[_0x5377fa(0xe4)](_0x2811b6[_0x5377fa(0xd1)])[_0x5377fa(0xef)]({'error':_0x2811b6[_0x5377fa(0xe4)],'message':_0x2811b6[_0x5377fa(0x112)],'details':_0x2811b6[_0x5377fa(0x123)]});else{if(_0x347490[_0x5377fa(0xda)](_0x1f7ecc,_0x4b4f91)||_0x347490[_0x5377fa(0x115)](_0x3b9af3[_0x5377fa(0xe4)],_0x5377fa(0x127))){const _0x1a79c0={};return _0x1a79c0[_0x5377fa(0x109)]=_0x894319[_0x5377fa(0xe4)],_0x1a79c0[_0x5377fa(0x112)]=_0x4c2648[_0x5377fa(0x112)],_0x1a79c0[_0x5377fa(0x123)]=_0x28ef57[_0x5377fa(0x123)],_0x1c0d87[_0x5377fa(0xe4)](_0x412e78[_0x5377fa(0xd1)])[_0x5377fa(0xef)](_0x1a79c0);}_0x4de092[_0x5377fa(0x13a)][_0x5377fa(0x109)](_0x376bda);(_0x25aabd[_0x5377fa(0x100)]||_0x347490[_0x5377fa(0x115)](_0x17d345.env.NODE_ENV,_0x5377fa(0x12e))||_0x2cfd01.env.VITEST)&&_0x58a5ce[_0x5377fa(0x109)](_0x406acb);const _0x48f932={};return _0x48f932[_0x5377fa(0x109)]=_0x347490[_0x5377fa(0xf6)],_0x48f932[_0x5377fa(0x112)]=_0x347490[_0x5377fa(0x111)],_0x55328b[_0x5377fa(0xe4)](0x1f4)[_0x5377fa(0xef)](_0x48f932);}}_0x49403a[_0x5377fa(0x13a)][_0x5377fa(0x109)](_0x2811b6);(_0x3031e3[_0x5377fa(0x100)]||_0x347490[_0x5377fa(0x115)](process.env.NODE_ENV,_0x347490[_0x5377fa(0x12b)])||process.env.VITEST)&&console[_0x5377fa(0x109)](_0x2811b6);const _0x4c7b64={};return _0x4c7b64[_0x5377fa(0x109)]=_0x347490[_0x5377fa(0xf6)],_0x4c7b64[_0x5377fa(0x112)]=_0x347490[_0x5377fa(0x111)],_0x16e2f9[_0x5377fa(0xe4)](0x1f4)[_0x5377fa(0xef)](_0x4c7b64);}else{const [_0x58fc4d,_0x5f20cb]=_0x2ee2d9[_0x5377fa(0xfd)]('='),_0x45966f={..._0x13e428};return _0x45966f[_0x58fc4d]=_0x5f20cb,_0x45966f;}}),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](authRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](resourceRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0x10a)](fileRoutes,_0x49403a)),await _0x249ad1[_0x712d31(0x131)](_0x3f6927[_0x712d31(0xf3)](systemRoutes,_0x49403a,_0xe2b481)),_0x249ad1[_0x712d31(0x10b)](_0x3f6927[_0x712d31(0x126)],{'parseAs':_0x3f6927[_0x712d31(0xdf)]},urlencodedContentParser),!_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x121)]?_0x3f6927[_0x712d31(0xe8)](_0x712d31(0x11b),_0x3f6927[_0x712d31(0xf8)])?_0x3e7a89[_0x712d31(0x113)](_0x347490[_0x712d31(0x10e)]):_0x249ad1[_0x712d31(0x131)](import(_0x3f6927[_0x712d31(0xff)]),{'max':_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x136)]||0x64,'timeWindow':_0x3031e3[_0x712d31(0x129)]?.[_0x712d31(0x12a)]||0xea60,'hook':_0x3f6927[_0x712d31(0xf0)],'global':!![],'keyGenerator':_0x54c1c3=>(_0x54c1c3[_0x712d31(0x10d)]?.['id']||_0x54c1c3['ip'])+'-'+_0x54c1c3[_0x712d31(0xd9)][_0x712d31(0x125)][_0x712d31(0xfd)]('?')[0x0]}):console[_0x712d31(0x113)](_0x3f6927[_0x712d31(0xea)]),_0x249ad1[_0x712d31(0x131)](import(_0x3f6927[_0x712d31(0x101)]),{'limits':{'fileSize':_0x3f6927[_0x712d31(0xed)](_0x3031e3[_0x712d31(0x103)]*0x400,0x400)}});};}function _0x53f6(){const _0x111b89=['sOnrj','548VNcnVv','BRyoj','message','log','set','sKEGz','DxrPN','VDHnU','setErrorHandler','buffer','HEAD','nQgeL','KhNyZ','permissions','@fastify/rate-limit','JznOq','endpoint','disabled','ynOmu','details','zdWUU','url','HeIne','FST_ERR_VALIDATION','startsWith','rateLimit','timeWindow','zhITp','MnIAq','⚠️\x20rate\x20limit\x20is\x20disabled','test','YbbQV','tags','register','INTERNAL_ERROR','toString','summary','Internal\x20server\x20error','max','mVrRD','ctx','18Qzwehe','logger','uWBnS','statusCode','preHandler','package','8MrzUey','ZzZjY','decorate','description','public','raw','sehOw','pQcKG','94069MmuQfq','hFznd','oSita','ypDxv','2804862UoYxFp','access','BoHMb','eOkQN','code','HgDCB','@fastify/multipart','/api/','Foaml','ndtoI','MdNHe','GIblf','rgUMZ','HvnxN','NBUTJ','send','nSeLb','PJWpd','reduce','uvViK','2837615lGkDme','EsSvj','AMJxY','5397XWbric','rnrtn','11658051tzwkhE','application/x-www-form-urlencoded','Kwpol','schema','split','addHook','mRKJK','debug','blJFQ','fcore','maxFileSize','onRoute','SzxqF','isArray','method','18200800NBJLLY','error','LGCYR','addContentTypeParser','9075101jftajs','user','tHNPF'];_0x53f6=function(){return _0x111b89;};return _0x53f6();};
|
package/dist/fcore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2b613d,_0x57375a){const _0xe153b7=_0x3cf5,_0x4baf83=_0x2b613d();while(!![]){try{const _0x103ca2=parseInt(_0xe153b7(0xb9))/0x1+-parseInt(_0xe153b7(0xb1))/0x2+parseInt(_0xe153b7(0xbe))/0x3+-parseInt(_0xe153b7(0xcf))/0x4+parseInt(_0xe153b7(0xb6))/0x5+-parseInt(_0xe153b7(0xb4))/0x6*(-parseInt(_0xe153b7(0xbc))/0x7)+-parseInt(_0xe153b7(0xbf))/0x8;if(_0x103ca2===_0x57375a)break;else _0x4baf83['push'](_0x4baf83['shift']());}catch(_0x1bb36c){_0x4baf83['push'](_0x4baf83['shift']());}}}(_0x2261,0x5227b));import{loadConfig}from'./config.js';import{createContext,setContext}from'./context.js';function _0x3cf5(_0x58c334,_0x356317){_0x58c334=_0x58c334-0xb0;const _0x226121=_0x2261();let _0x3cf572=_0x226121[_0x58c334];return _0x3cf572;}import{createAudit,createDatabase,createDictionary,createFileS3,createLogger,createRedis,createResource}from'./plugins/index.js';export async function createFCore(_0x558626={}){const _0x25fd7a=_0x3cf5,_0xb99b16={'MlLPb':function(_0x10bf62,_0x32644e){return _0x10bf62(_0x32644e);},'jMCJS':function(_0x1d60c1){return _0x1d60c1();},'AGtrX':function(_0x236daf,_0x41f2ff){return _0x236daf(_0x41f2ff);},'lefxe':function(_0x2dc24a,_0x4cbefc){return _0x2dc24a(_0x4cbefc);}},_0x2974a2=loadConfig(_0x558626[_0x25fd7a(0xb2)]),_0x54e7ed=_0xb99b16[_0x25fd7a(0xc9)](createRedis,_0x2974a2[_0x25fd7a(0xb3)]),_0x4a967d=_0xb99b16[_0x25fd7a(0xbb)](createLogger),_0xcc9cb7=_0xb99b16[_0x25fd7a(0xc9)](createDatabase,_0x2974a2['pg']),_0x5863d3={};_0x5863d3[_0x25fd7a(0xb8)]=_0x2974a2['s3'][_0x25fd7a(0xb8)],_0x5863d3[_0x25fd7a(0xcd)]=_0x2974a2['s3'][_0x25fd7a(0xcd)],_0x5863d3[_0x25fd7a(0xc6)]=_0x2974a2['s3'][_0x25fd7a(0xc6)],_0x5863d3[_0x25fd7a(0xca)]=_0x2974a2['s3'][_0x25fd7a(0xca)],_0x5863d3[_0x25fd7a(0xcc)]=_0x2974a2['s3'][_0x25fd7a(0xcc)],_0x5863d3[_0x25fd7a(0xcb)]=_0x2974a2['s3'][_0x25fd7a(0xcb)],_0x5863d3[_0x25fd7a(0xb7)]=_0x2974a2['s3'][_0x25fd7a(0xb7)],_0x5863d3[_0x25fd7a(0xb0)]=_0x2974a2['s3'][_0x25fd7a(0xb0)],_0x5863d3[_0x25fd7a(0xc7)]=_0x2974a2['s3'][_0x25fd7a(0xc7)];const _0x2f4ab7=_0xb99b16[_0x25fd7a(0xc8)](createFileS3,_0x5863d3),_0x2140b9={};_0x2140b9['pg']=_0xcc9cb7,_0x2140b9[_0x25fd7a(0xc2)]=_0x4a967d;const _0x34cdbc=_0xb99b16[_0x25fd7a(0xc1)](createAudit,_0x2140b9),_0x36492f={};_0x36492f['pg']=_0xcc9cb7,_0x36492f[_0x25fd7a(0xc3)]=_0x558626[_0x25fd7a(0xc3)];const _0x471aa2=createDictionary(_0x36492f),_0x22fb1d={};_0x22fb1d['pg']=_0xcc9cb7,_0x22fb1d[_0x25fd7a(0xc2)]=_0x4a967d,_0x22fb1d[_0x25fd7a(0xb5)]=_0x34cdbc;const _0x3248d7=createResource(_0x22fb1d);_0x558626[_0x25fd7a(0xce)]?.[_0x25fd7a(0xc4)]&&_0x3248d7[_0x25fd7a(0xba)](_0x558626[_0x25fd7a(0xce)]);const _0x2bedd8={};_0x2bedd8[_0x25fd7a(0xb2)]=_0x2974a2,_0x2bedd8[_0x25fd7a(0xc2)]=_0x4a967d,_0x2bedd8[_0x25fd7a(0xb3)]=_0x54e7ed,_0x2bedd8['pg']=_0xcc9cb7,_0x2bedd8[_0x25fd7a(0xbd)]=_0x2f4ab7,_0x2bedd8[_0x25fd7a(0xc0)]=_0x3248d7,_0x2bedd8[_0x25fd7a(0xb5)]=_0x34cdbc,_0x2bedd8[_0x25fd7a(0xc5)]=_0x471aa2;const _0x108231=createContext(_0x2bedd8);return _0xb99b16[_0x25fd7a(0xc1)](setContext,_0x108231),_0x108231;}function _0x2261(){const _0x4ca9eb=['secretKey','region','resources','303764RTsmWr','tokenSecret','394578pqRvFZ','config','redis','540ZUFnuM','audit','2568680htJPYU','forcePathStyle','endpoint','303011OqrIBE','register','jMCJS','12418FuKIAe','file','947538hClrGJ','5460128noLbqL','resource','lefxe','logger','dictionaries','length','dictionary','bucket','tokenTtl','AGtrX','MlLPb','accessKey','folder'];_0x2261=function(){return _0x4ca9eb;};return _0x2261();}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x227e6d,_0x3b7765){var _0x1e62b8=_0x37f0,_0x57cad7=_0x227e6d();while(!![]){try{var _0x3f3be1=-parseInt(_0x1e62b8(0xa7))/0x1*(-parseInt(_0x1e62b8(0x9e))/0x2)+-parseInt(_0x1e62b8(0xa1))/0x3+-parseInt(_0x1e62b8(0xa4))/0x4+parseInt(_0x1e62b8(0xa3))/0x5*(parseInt(_0x1e62b8(0x9f))/0x6)+-parseInt(_0x1e62b8(0xa6))/0x7*(-parseInt(_0x1e62b8(0xa5))/0x8)+parseInt(_0x1e62b8(0xa0))/0x9+-parseInt(_0x1e62b8(0xa2))/0xa;if(_0x3f3be1===_0x3b7765)break;else _0x57cad7['push'](_0x57cad7['shift']());}catch(_0x310b2a){_0x57cad7['push'](_0x57cad7['shift']());}}}(_0x20aa,0x54b95));function _0x37f0(_0x5b086a,_0x55afe3){_0x5b086a=_0x5b086a-0x9e;var _0x20aab4=_0x20aa();var _0x37f021=_0x20aab4[_0x5b086a];return _0x37f021;}export*from'./errors.js';export*from'./config.js';export*from'./context.js';export*from'./fcore.js';export*from'./migrations/runner.js';export*from'./type.js';function _0x20aa(){var _0x388309=['19065wQpIVt','58Vdxflz','252JxIHSK','4131486dnkchK','877077YIJRvj','2620880iuaMmQ','44290NnMQsR','2450088szoFTT','115576kFsVDx','63QElMww'];_0x20aa=function(){return _0x388309;};return _0x20aa();}
|
package/dist/migrations/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
const _0x2c9228=_0x2a8f;(function(_0x44e886,_0x456095){const _0x58d0fa=_0x2a8f,_0x122e1d=_0x44e886();while(!![]){try{const _0x5075b9=parseInt(_0x58d0fa(0x146))/0x1*(parseInt(_0x58d0fa(0x13f))/0x2)+parseInt(_0x58d0fa(0x13e))/0x3*(parseInt(_0x58d0fa(0x147))/0x4)+-parseInt(_0x58d0fa(0x14a))/0x5+parseInt(_0x58d0fa(0x13b))/0x6+parseInt(_0x58d0fa(0x13c))/0x7+parseInt(_0x58d0fa(0x143))/0x8+-parseInt(_0x58d0fa(0x13a))/0x9*(parseInt(_0x58d0fa(0x13d))/0xa);if(_0x5075b9===_0x456095)break;else _0x122e1d['push'](_0x122e1d['shift']());}catch(_0xd61092){_0x122e1d['push'](_0x122e1d['shift']());}}}(_0x5594,0x359c5));function _0x2a8f(_0x3944d0,_0x4dbf6b){_0x3944d0=_0x3944d0-0x138;const _0x5594cc=_0x5594();let _0x2a8f61=_0x5594cc[_0x3944d0];return _0x2a8f61;}import{runMigrations}from'./runner.js';import{loadConfig}from'../config.js';function _0x5594(){const _0x3c38f9=['1217968Gznbnt','database','error','55CNUapv','12hAAjSy','status','log','1411005hTTjAg','run','file','OK\x20\x20','7211475LbUwHm','2398794TfXcRW','1499316qcJymi','10fGisuD','215907bHpDJl','11670Dyrfzz','Loaded\x20configuration:','SKIP','exitCode'];_0x5594=function(){return _0x3c38f9;};return _0x5594();}try{const config=loadConfig();console[_0x2c9228(0x149)](_0x2c9228(0x140),config['pg']);const _0x12ddab={};_0x12ddab[_0x2c9228(0x144)]=config['pg'];for(const r of await runMigrations(_0x12ddab))console[_0x2c9228(0x149)]((r[_0x2c9228(0x148)]===_0x2c9228(0x14b)?_0x2c9228(0x139):_0x2c9228(0x141))+'\x20'+r[_0x2c9228(0x138)]);}catch(_0x5688b8){console[_0x2c9228(0x145)](_0x5688b8),process[_0x2c9228(0x142)]=0x1;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x321011,_0x3f603d){const _0x2be90a=_0x1ff3,_0x440efe=_0x321011();while(!![]){try{const _0xd658ac=-parseInt(_0x2be90a(0xee))/0x1*(parseInt(_0x2be90a(0xdf))/0x2)+-parseInt(_0x2be90a(0x10d))/0x3+-parseInt(_0x2be90a(0xd1))/0x4+parseInt(_0x2be90a(0xf9))/0x5*(parseInt(_0x2be90a(0xe6))/0x6)+parseInt(_0x2be90a(0xed))/0x7+parseInt(_0x2be90a(0xf7))/0x8+-parseInt(_0x2be90a(0xf3))/0x9*(-parseInt(_0x2be90a(0xd0))/0xa);if(_0xd658ac===_0x3f603d)break;else _0x440efe['push'](_0x440efe['shift']());}catch(_0x233e43){_0x440efe['push'](_0x440efe['shift']());}}}(_0x1e77,0x48ce2));import _0x4a485e from'node:fs/promises';function _0x1ff3(_0x1574cb,_0x58842e){_0x1574cb=_0x1574cb-0xcc;const _0x1e7787=_0x1e77();let _0x1ff313=_0x1e7787[_0x1574cb];return _0x1ff313;}import _0x36622a from'node:path';import{createDatabase}from'../plugins/pg.js';export async function runMigrations(_0x4987c4={}){const _0x2e4100=_0x1ff3,_0x233231={'VwtHT':function(_0x430c83,_0x18864e){return _0x430c83(_0x18864e);},'thrtF':_0x2e4100(0xdd),'aakss':_0x2e4100(0xe2),'yOogn':function(_0x1b594c,_0x337587){return _0x1b594c(_0x337587);},'WDIlk':_0x2e4100(0xcf),'xXnrE':function(_0x52d7cc,_0x4fa68f){return _0x52d7cc===_0x4fa68f;},'wKUfX':_0x2e4100(0x10a),'aZAOc':_0x2e4100(0xe7),'PImWX':function(_0x3d3bb2,_0x3e740f){return _0x3d3bb2!==_0x3e740f;},'XXtXt':_0x2e4100(0x108),'ZtzLG':_0x2e4100(0x112),'WYtao':_0x2e4100(0xf0),'BEfAD':_0x2e4100(0xff),'MSgSB':_0x2e4100(0xe8),'AxOSM':_0x2e4100(0xf1),'QcsVS':_0x2e4100(0x107)},_0x26410a=_0x36622a[_0x2e4100(0xcc)](_0x4987c4[_0x2e4100(0x109)]??_0x233231[_0x2e4100(0x111)]),_0x5c1ab4=_0x4987c4[_0x2e4100(0xe3)]??databaseFromUrl(_0x4987c4[_0x2e4100(0x10e)]??process.env.DATABASE_URL);if(!_0x5c1ab4)throw new Error(_0x233231[_0x2e4100(0xec)]);const _0x463ac8=_0x233231[_0x2e4100(0xfd)](createDatabase,_0x5c1ab4);if(!_0x463ac8)throw new Error(_0x2e4100(0x113));const _0x53784f=[];try{await _0x463ac8[_0x2e4100(0xea)](_0x2e4100(0x102));const _0x30aea6=await _0x463ac8[_0x2e4100(0xea)](_0x233231[_0x2e4100(0xd6)]),_0x579a6f=new Set(_0x30aea6[_0x2e4100(0x10c)][_0x2e4100(0xf2)](_0x41067a=>_0x41067a[_0x2e4100(0xe4)])),_0x45cb8d=(await _0x4a485e[_0x2e4100(0xdb)](_0x26410a))[_0x2e4100(0x103)](_0x4775d5=>_0x4775d5[_0x2e4100(0x110)](_0x2e4100(0x10f)))[_0x2e4100(0xe5)]();for(const _0x496156 of _0x45cb8d){if(_0x233231[_0x2e4100(0xeb)](_0x233231[_0x2e4100(0xdc)],_0x233231[_0x2e4100(0xd7)])){if(!_0x4cb665)return _0x32913d;const _0x540aac=new _0x451daf(_0x40d5ca);return{'host':_0x540aac[_0x2e4100(0xcd)],'port':_0x400d5f(_0x540aac[_0x2e4100(0xd9)]||0x1538),'database':_0x540aac[_0x2e4100(0xe9)][_0x2e4100(0xd2)](0x1),'user':_0x55e121(_0x540aac[_0x2e4100(0xe1)]),'password':_0x233231[_0x2e4100(0xd8)](_0x5c68e8,_0x540aac[_0x2e4100(0xf5)])};}else{if(_0x579a6f[_0x2e4100(0xf8)](_0x496156)){if(_0x233231[_0x2e4100(0xef)](_0x233231[_0x2e4100(0xd4)],_0x233231[_0x2e4100(0xde)])){const _0xb76a20={};_0xb76a20[_0x2e4100(0x105)]=_0x496156,_0xb76a20[_0x2e4100(0xfc)]=_0x2e4100(0x101),_0x53784f[_0x2e4100(0x100)](_0xb76a20);continue;}else _0x360f2[_0x2e4100(0xf6)]();}const _0x1ba5cd=await _0x4a485e[_0x2e4100(0xfe)](_0x36622a[_0x2e4100(0x106)](_0x26410a,_0x496156),_0x233231[_0x2e4100(0xf4)]),_0x4b7ab0=await _0x463ac8[_0x2e4100(0xfb)]();try{await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0xe0)]),await _0x4b7ab0[_0x2e4100(0xea)](_0x1ba5cd),await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0x104)],[_0x496156]),await _0x4b7ab0[_0x2e4100(0xea)](_0x2e4100(0xce));}catch(_0x3ec8c5){await _0x4b7ab0[_0x2e4100(0xea)](_0x233231[_0x2e4100(0x10b)]);throw _0x3ec8c5;}finally{_0x4b7ab0[_0x2e4100(0xf6)]();}const _0x73f45c={};_0x73f45c[_0x2e4100(0x105)]=_0x496156,_0x73f45c[_0x2e4100(0xfc)]=_0x233231[_0x2e4100(0xfa)],_0x53784f[_0x2e4100(0x100)](_0x73f45c);}}return _0x53784f;}finally{await _0x463ac8[_0x2e4100(0xd3)]();}}function databaseFromUrl(_0x38647e){const _0x2d952c=_0x1ff3,_0x42021c={'naEqq':function(_0xc623fd,_0x4b638e){return _0xc623fd(_0x4b638e);},'dibad':function(_0x3d0374,_0x535028){return _0x3d0374(_0x535028);}};if(!_0x38647e)return undefined;const _0x5c0a50=new URL(_0x38647e);return{'host':_0x5c0a50[_0x2d952c(0xcd)],'port':_0x42021c[_0x2d952c(0xda)](Number,_0x5c0a50[_0x2d952c(0xd9)]||0x1538),'database':_0x5c0a50[_0x2d952c(0xe9)][_0x2d952c(0xd2)](0x1),'user':_0x42021c[_0x2d952c(0xd5)](decodeURIComponent,_0x5c0a50[_0x2d952c(0xe1)]),'password':decodeURIComponent(_0x5c0a50[_0x2d952c(0xf5)])};}function _0x1e77(){const _0x3fbf2e=['readFile','BEGIN','push','skip','\x0a\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20schema_migrations\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20version\x20varchar(255)\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20applied_at\x20timestamptz\x20NOT\x20NULL\x20DEFAULT\x20now()\x0a\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20','filter','MSgSB','file','join','run','YZlXH','dir','xXeYM','AxOSM','rows','803727lyUCBQ','databaseUrl','.sql','endsWith','thrtF','VHsDy','empty\x20pg','resolve','hostname','COMMIT','SELECT\x20version\x20FROM\x20schema_migrations','50DpWDyN','2364972RYSScS','slice','end','XXtXt','dibad','WDIlk','aZAOc','VwtHT','port','naEqq','readdir','wKUfX','migrations','ZtzLG','28NZjfZn','BEfAD','username','DATABASE_URL\x20or\x20database\x20config\x20is\x20required','database','version','sort','30IrZFsE','BbJIm','INSERT\x20INTO\x20schema_migrations(version)\x20VALUES\x20($1)','pathname','query','xXnrE','aakss','3033464hlgQvh','12382XmfYCP','PImWX','utf8','ROLLBACK','map','527328YOfksM','WYtao','password','release','421784LYOZan','has','551675qmuLRD','QcsVS','connect','status','yOogn'];_0x1e77=function(){return _0x3fbf2e;};return _0x1e77();}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adduser-cli.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/adduser-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const _0x422e88=_0x3252;(function(_0x181626,_0x4e6701){const _0x33fb8e=_0x3252,_0xb6216d=_0x181626();while(!![]){try{const _0x50b068=parseInt(_0x33fb8e(0x1d0))/0x1+parseInt(_0x33fb8e(0x1d4))/0x2*(parseInt(_0x33fb8e(0x1d2))/0x3)+-parseInt(_0x33fb8e(0x1da))/0x4+parseInt(_0x33fb8e(0x1df))/0x5*(-parseInt(_0x33fb8e(0x1d8))/0x6)+-parseInt(_0x33fb8e(0x1d9))/0x7+parseInt(_0x33fb8e(0x1dd))/0x8*(-parseInt(_0x33fb8e(0x1db))/0x9)+-parseInt(_0x33fb8e(0x1d6))/0xa*(-parseInt(_0x33fb8e(0x1de))/0xb);if(_0x50b068===_0x4e6701)break;else _0xb6216d['push'](_0xb6216d['shift']());}catch(_0x2f87fb){_0xb6216d['push'](_0xb6216d['shift']());}}}(_0x4e47,0x4f5e4));import{loadConfig}from'../../config.js';function _0x4e47(){const _0x286c87=['slice','2460VydJGH','2087477fObPYj','1398440eJMZKM','9KYnGJb','argv','1443176tKOhYs','7527179WBdmAE','4055QnDFSc','Registered\x20user\x20','exitCode','type','Usage:\x20fcore-registration\x20<login>\x20<password>\x20[type]','154940uZavsW','error','33qIxcxq','end','117562xeAFwH','log','10AcmzSO'];_0x4e47=function(){return _0x286c87;};return _0x4e47();}function _0x3252(_0x4fcbcf,_0x36f375){_0x4fcbcf=_0x4fcbcf-0x1cc;const _0x4e47ab=_0x4e47();let _0x32522e=_0x4e47ab[_0x4fcbcf];return _0x32522e;}import{createDatabase}from'../../plugins/pg.js';import _0x4b8953 from'./services/registration.js';const [user,password,type]=process[_0x422e88(0x1dc)][_0x422e88(0x1d7)](0x2);if(!user||!password)console[_0x422e88(0x1d1)](_0x422e88(0x1cf)),process[_0x422e88(0x1cd)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const _0x14e6be={};_0x14e6be['pg']=pg;const {user:data}=await _0x4b8953({'user':user,'password':password,'type':type},_0x14e6be);console[_0x422e88(0x1d5)](_0x422e88(0x1cc)+data['id']+'\x20('+data[_0x422e88(0x1ce)]+')');}catch(_0x2e5ca9){console[_0x422e88(0x1d1)](_0x2e5ca9),process[_0x422e88(0x1cd)]=0x1;}finally{await pg[_0x422e88(0x1d3)]();}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passwd-cli.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/passwd-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const _0x3e9b31=_0x22f6;(function(_0x22f2a7,_0x2d1d6e){const _0x42922f=_0x22f6,_0x385b0e=_0x22f2a7();while(!![]){try{const _0x1f9664=-parseInt(_0x42922f(0x99))/0x1*(-parseInt(_0x42922f(0xac))/0x2)+parseInt(_0x42922f(0xab))/0x3+-parseInt(_0x42922f(0x9e))/0x4+-parseInt(_0x42922f(0xa2))/0x5+-parseInt(_0x42922f(0xae))/0x6+parseInt(_0x42922f(0xa8))/0x7*(parseInt(_0x42922f(0x9f))/0x8)+-parseInt(_0x42922f(0x98))/0x9*(-parseInt(_0x42922f(0xa6))/0xa);if(_0x1f9664===_0x2d1d6e)break;else _0x385b0e['push'](_0x385b0e['shift']());}catch(_0x65a41f){_0x385b0e['push'](_0x385b0e['shift']());}}}(_0x330a,0x60816));import{loadConfig}from'../../config.js';function _0x330a(){const _0x105c78=['log','argv','error','2346948hgMRvY','728JFRlQP','end','query','1323520uMvVmS','Usage:\x20fcore-password\x20<login>\x20<password>','exitCode','SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201','510aBQWBM','userId','13517ElTRKN','slice','password','1393719uLsOts','183162SZSYBq','User\x20not\x20found','3707184bKZMHN','Password\x20changed\x20for\x20','151407ewwepN','4HZzcGD','rows'];_0x330a=function(){return _0x105c78;};return _0x330a();}import{createDatabase}from'../../plugins/pg.js';import _0xad2634 from'./services/change-password.js';const [login,password]=process[_0x3e9b31(0x9c)][_0x3e9b31(0xa9)](0x2);function _0x22f6(_0x4664c5,_0x16701c){_0x4664c5=_0x4664c5-0x97;const _0x330a26=_0x330a();let _0x22f62b=_0x330a26[_0x4664c5];return _0x22f62b;}if(!login||!password)console[_0x3e9b31(0x9d)](_0x3e9b31(0xa3)),process[_0x3e9b31(0xa4)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[_0x3e9b31(0xa1)](_0x3e9b31(0xa5),[login]),user=result[_0x3e9b31(0x9a)][0x0];if(!user)throw new Error(_0x3e9b31(0xad));const _0x283ea3={};_0x283ea3[_0x3e9b31(0xa7)]=user['id'],_0x283ea3[_0x3e9b31(0xaa)]=password;const _0x4289b3={};_0x4289b3['pg']=pg,await _0xad2634(_0x283ea3,_0x4289b3),console[_0x3e9b31(0x9b)](_0x3e9b31(0x97)+login);}catch(_0x48b25e){console[_0x3e9b31(0x9d)](_0x48b25e),process[_0x3e9b31(0xa4)]=0x1;}finally{await pg[_0x3e9b31(0xa0)]();}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-cli.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/permission-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const _0x419982=_0x6d2f;(function(_0x3926a3,_0x1837a5){const _0x4c9f35=_0x6d2f,_0x91a858=_0x3926a3();while(!![]){try{const _0x5bcc2a=parseInt(_0x4c9f35(0x1db))/0x1+-parseInt(_0x4c9f35(0x1d0))/0x2*(parseInt(_0x4c9f35(0x1dd))/0x3)+-parseInt(_0x4c9f35(0x1ed))/0x4*(-parseInt(_0x4c9f35(0x1cf))/0x5)+-parseInt(_0x4c9f35(0x1f0))/0x6*(-parseInt(_0x4c9f35(0x1cc))/0x7)+parseInt(_0x4c9f35(0x1ce))/0x8+-parseInt(_0x4c9f35(0x1e8))/0x9+-parseInt(_0x4c9f35(0x1e4))/0xa;if(_0x5bcc2a===_0x1837a5)break;else _0x91a858['push'](_0x91a858['shift']());}catch(_0x990745){_0x91a858['push'](_0x91a858['shift']());}}}(_0x405e,0x25b69));import{loadConfig}from'../../config.js';import{createDatabase}from'../../plugins/pg.js';function _0x405e(){const _0x164d92=['audit','INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(\x20resource,\x20actions,\x20user_uid,\x20created_by,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$4)','read','includes','Granted\x20permissions\x20for\x20','map','239988FwZQhS','join','971872amXFEb','756075dsUXVS','2ISJBZO','User\x20not\x20found','release','create','rows','BEGIN','ROLLBACK','SELECT\x20access_id,\x20actions\x20FROM\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL\x20AND\x20resource\x20=\x20$2','UPDATE\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20actions\x20=\x20$1,\x20updated_by\x20=\x20$2,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20access_id\x20=\x20$3','set','Permissions\x20cleared\x20for\x20','280805xACRZO','delete','814953JiyaAG','push','trim','connect','update','log','filter','3140520hLllIe','check','access_id','split','1840779bjUaTJ','COMMIT','error','add','actions','8FypEYm','argv','settings','42XmkZAS','exitCode','query','BUVKP','end','slice','list','logs','access','get','clear','Usage:\x20fcore-permission\x20<login>\x20<system|resource|resource:action[,...]|clear>','DJWmu','DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL','system','NpOXO','SELECT\x20uid\x20AS\x20id\x20FROM\x20admin.users\x20WHERE\x20$1\x20IN\x20(login,\x20email,\x20phone)\x20LIMIT\x201','dictionaries'];_0x405e=function(){return _0x164d92;};return _0x405e();}function _0x6d2f(_0x1ff88b,_0x375ffa){_0x1ff88b=_0x1ff88b-0x1c9;const _0x405e98=_0x405e();let _0x6d2fca=_0x405e98[_0x1ff88b];return _0x6d2fca;}const SYSTEM_ACTIONS=[_0x419982(0x1f7),_0x419982(0x202),_0x419982(0x1f6),_0x419982(0x1e5),_0x419982(0x1f8),_0x419982(0x1ef),_0x419982(0x201)],RESOURCE_ACTIONS=[_0x419982(0x204),_0x419982(0x1e1),_0x419982(0x1d3),_0x419982(0x1dc)],[login,permissionArg]=process[_0x419982(0x1ee)][_0x419982(0x1f5)](0x2);function expandPermissions(_0x5c0177){const _0x2cb02c=_0x419982,_0x34f792={};_0x34f792[_0x2cb02c(0x1f3)]=_0x2cb02c(0x1fe),_0x34f792[_0x2cb02c(0x1fc)]=_0x2cb02c(0x1ff);const _0x2d6abf=_0x34f792,_0x14166d=_0x5c0177[_0x2cb02c(0x1e7)](',')[_0x2cb02c(0x1cb)](_0x387ac0=>_0x387ac0[_0x2cb02c(0x1df)]())[_0x2cb02c(0x1e3)](Boolean),_0x212809=new Set();for(const _0x4ec483 of _0x14166d){if(_0x4ec483[_0x2cb02c(0x1c9)](':')){_0x212809[_0x2cb02c(0x1eb)](_0x4ec483);continue;}const _0x8b9249=_0x4ec483===_0x2d6abf[_0x2cb02c(0x1f3)]?SYSTEM_ACTIONS:RESOURCE_ACTIONS;for(const _0x1a71b1 of _0x8b9249){if(_0x2d6abf[_0x2cb02c(0x1fc)]===_0x2d6abf[_0x2cb02c(0x1fc)])_0x212809[_0x2cb02c(0x1eb)](_0x4ec483+':'+_0x1a71b1);else{const [_0x38d955,_0x1433dd]=_0x22ae26[_0x2cb02c(0x1e7)](':'),_0x21f5e4=_0x3c4bd4[_0x2cb02c(0x1f9)](_0x38d955)??[];_0x21f5e4[_0x2cb02c(0x1de)](_0x1433dd),_0x5b9cea[_0x2cb02c(0x1d9)](_0x38d955,_0x21f5e4);}}}return[..._0x212809];}if(!login||!permissionArg)console[_0x419982(0x1ea)](_0x419982(0x1fb)),process[_0x419982(0x1f1)]=0x1;else{const pg=createDatabase(loadConfig()['pg']);try{const result=await pg[_0x419982(0x1f2)](_0x419982(0x200),[login]),user=result[_0x419982(0x1d4)][0x0];if(!user)throw new Error(_0x419982(0x1d1));if(permissionArg[_0x419982(0x1df)]()===_0x419982(0x1fa))await pg[_0x419982(0x1f2)](_0x419982(0x1fd),[user['id']]),console[_0x419982(0x1e2)](_0x419982(0x1da)+login);else{const permissions=expandPermissions(permissionArg),byResource=new Map();for(const permission of permissions){const [resource,action]=permission[_0x419982(0x1e7)](':'),actions=byResource[_0x419982(0x1f9)](resource)??[];actions[_0x419982(0x1de)](action),byResource[_0x419982(0x1d9)](resource,actions);}const client=await pg[_0x419982(0x1e0)]();try{await client[_0x419982(0x1f2)](_0x419982(0x1d5));for(const [resource,actions]of byResource){const existing=await client[_0x419982(0x1f2)](_0x419982(0x1d7),[user['id'],resource]),row=existing[_0x419982(0x1d4)][0x0];if(row){const merged=[...new Set([...row[_0x419982(0x1ec)]??[],...actions])];await client[_0x419982(0x1f2)](_0x419982(0x1d8),[merged,user['id'],row[_0x419982(0x1e6)]]);}else await client[_0x419982(0x1f2)](_0x419982(0x203),[resource,actions,user['id'],user['id']]);}await client[_0x419982(0x1f2)](_0x419982(0x1e9));}catch(_0x2fcadc){await client[_0x419982(0x1f2)](_0x419982(0x1d6));throw _0x2fcadc;}finally{client[_0x419982(0x1d2)]();}console[_0x419982(0x1e2)](_0x419982(0x1ca)+login+':\x20'+permissions[_0x419982(0x1cd)](',\x20'));}}catch(_0x453680){console[_0x419982(0x1ea)](_0x453680),process[_0x419982(0x1f1)]=0x1;}finally{await pg[_0x419982(0x1f4)]();}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/route.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAkB,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,kBAAkB,CAmK9D"}
|