@trailmix-cms/cms 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/dist/auth.guard.d.ts +22 -0
- package/dist/auth.guard.d.ts.map +1 -0
- package/dist/auth.guard.js +109 -0
- package/dist/auth.guard.js.map +1 -0
- package/dist/cms.module.d.ts +7 -0
- package/dist/cms.module.d.ts.map +1 -0
- package/dist/cms.module.js +47 -0
- package/dist/cms.module.js.map +1 -0
- package/dist/cms.providers.d.ts +119 -0
- package/dist/cms.providers.d.ts.map +1 -0
- package/dist/cms.providers.js +122 -0
- package/dist/cms.providers.js.map +1 -0
- package/dist/collections/account.collection.d.ts +18 -0
- package/dist/collections/account.collection.d.ts.map +1 -0
- package/dist/collections/account.collection.js +52 -0
- package/dist/collections/account.collection.js.map +1 -0
- package/dist/collections/file.collection.d.ts +21 -0
- package/dist/collections/file.collection.d.ts.map +1 -0
- package/dist/collections/file.collection.js +59 -0
- package/dist/collections/file.collection.js.map +1 -0
- package/dist/collections/index.d.ts +4 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/index.js +10 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/text.collection.d.ts +20 -0
- package/dist/collections/text.collection.d.ts.map +1 -0
- package/dist/collections/text.collection.js +56 -0
- package/dist/collections/text.collection.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +31 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/cms-collection-names.d.ts +7 -0
- package/dist/constants/cms-collection-names.d.ts.map +1 -0
- package/dist/constants/cms-collection-names.js +9 -0
- package/dist/constants/cms-collection-names.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +19 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/provider-symbols.d.ts +14 -0
- package/dist/constants/provider-symbols.d.ts.map +1 -0
- package/dist/constants/provider-symbols.js +17 -0
- package/dist/constants/provider-symbols.js.map +1 -0
- package/dist/controllers/account.controller.d.ts +10 -0
- package/dist/controllers/account.controller.d.ts.map +1 -0
- package/dist/controllers/account.controller.js +53 -0
- package/dist/controllers/account.controller.js.map +1 -0
- package/dist/controllers/file.controller.d.ts +2 -0
- package/dist/controllers/file.controller.d.ts.map +1 -0
- package/dist/controllers/file.controller.js +80 -0
- package/dist/controllers/file.controller.js.map +1 -0
- package/dist/controllers/text.controller.d.ts +2 -0
- package/dist/controllers/text.controller.d.ts.map +1 -0
- package/dist/controllers/text.controller.js +48 -0
- package/dist/controllers/text.controller.js.map +1 -0
- package/dist/decorators/account.decorator.d.ts +4 -0
- package/dist/decorators/account.decorator.d.ts.map +1 -0
- package/dist/decorators/account.decorator.js +16 -0
- package/dist/decorators/account.decorator.js.map +1 -0
- package/dist/decorators/audit-context.decorator.d.ts +2 -0
- package/dist/decorators/audit-context.decorator.d.ts.map +1 -0
- package/dist/decorators/audit-context.decorator.js +17 -0
- package/dist/decorators/audit-context.decorator.js.map +1 -0
- package/dist/decorators/auth.decorator.d.ts +9 -0
- package/dist/decorators/auth.decorator.d.ts.map +1 -0
- package/dist/decorators/auth.decorator.js +13 -0
- package/dist/decorators/auth.decorator.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/pipes/file.pipe.d.ts +8 -0
- package/dist/pipes/file.pipe.d.ts.map +1 -0
- package/dist/pipes/file.pipe.js +28 -0
- package/dist/pipes/file.pipe.js.map +1 -0
- package/dist/services/authorization.service.d.ts +14 -0
- package/dist/services/authorization.service.d.ts.map +1 -0
- package/dist/services/authorization.service.js +101 -0
- package/dist/services/authorization.service.js.map +1 -0
- package/dist/types/collection-config.d.ts +4 -0
- package/dist/types/collection-config.d.ts.map +1 -0
- package/dist/types/collection-config.js +3 -0
- package/dist/types/collection-config.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Reflector } from '@nestjs/core';
|
|
2
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
3
|
+
import { Account } from '@trailmixcms/models';
|
|
4
|
+
import { AccountCollection } from './collections';
|
|
5
|
+
import { ConfigService } from '@nestjs/config';
|
|
6
|
+
import { AppConfig } from './config';
|
|
7
|
+
declare module 'fastify' {
|
|
8
|
+
interface FastifyRequest {
|
|
9
|
+
account?: Account.Entity;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export declare class AuthGuard implements CanActivate {
|
|
13
|
+
private reflector;
|
|
14
|
+
private accountCollection;
|
|
15
|
+
private configService;
|
|
16
|
+
private readonly logger;
|
|
17
|
+
private readonly clerkClient;
|
|
18
|
+
constructor(reflector: Reflector, accountCollection: AccountCollection, configService: ConfigService<AppConfig>);
|
|
19
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
20
|
+
private getAccount;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=auth.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAc,WAAW,EAAE,gBAAgB,EAAmF,MAAM,gBAAgB,CAAC;AAG5J,OAAO,EAAE,OAAO,EAAQ,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,QAAQ,SAAS,CAAC;IACrB,UAAU,cAAc;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAA;KAC3B;CACJ;AAED,qBACa,SAAU,YAAW,WAAW;IAKrC,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,aAAa;IANzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAG9B,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC;IAO7C,WAAW,CACb,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC,OAAO,CAAC;YA2CL,UAAU;CAuC3B"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var AuthGuard_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.AuthGuard = void 0;
|
|
14
|
+
const core_1 = require("@nestjs/core");
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const fastify_1 = require("@clerk/fastify");
|
|
17
|
+
const models_1 = require("@trailmixcms/models");
|
|
18
|
+
const collections_1 = require("./collections");
|
|
19
|
+
const config_1 = require("@nestjs/config");
|
|
20
|
+
const auth_decorator_1 = require("./decorators/auth.decorator");
|
|
21
|
+
let AuthGuard = AuthGuard_1 = class AuthGuard {
|
|
22
|
+
reflector;
|
|
23
|
+
accountCollection;
|
|
24
|
+
configService;
|
|
25
|
+
logger = new common_1.Logger(AuthGuard_1.name);
|
|
26
|
+
clerkClient;
|
|
27
|
+
constructor(reflector, accountCollection, configService) {
|
|
28
|
+
this.reflector = reflector;
|
|
29
|
+
this.accountCollection = accountCollection;
|
|
30
|
+
this.configService = configService;
|
|
31
|
+
this.clerkClient = (0, fastify_1.createClerkClient)({
|
|
32
|
+
secretKey: this.configService.get('CLERK_SECRET_KEY'),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
async canActivate(context) {
|
|
36
|
+
const requiredRoles = this.reflector.getAllAndOverride(auth_decorator_1.ROLES_KEY, [
|
|
37
|
+
context.getHandler(),
|
|
38
|
+
context.getClass(),
|
|
39
|
+
]);
|
|
40
|
+
const allowAnonymous = this.reflector.getAllAndOverride(auth_decorator_1.ALLOW_ANONYMOUS_KEY, [
|
|
41
|
+
context.getHandler(),
|
|
42
|
+
context.getClass(),
|
|
43
|
+
]);
|
|
44
|
+
const request = context.switchToHttp().getRequest();
|
|
45
|
+
const { account } = await this.getAccount(context);
|
|
46
|
+
if (!account) {
|
|
47
|
+
if (allowAnonymous) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
throw new common_1.UnauthorizedException('Unauthorized request');
|
|
51
|
+
}
|
|
52
|
+
request.account = account;
|
|
53
|
+
if (allowAnonymous) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
// If no roles are required, allow any authenticated user
|
|
57
|
+
if (requiredRoles.length == 0) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
// Check if user has required role
|
|
61
|
+
const hasRole = requiredRoles.some((role) => account?.roles?.includes(role))
|
|
62
|
+
|| account?.roles?.includes(models_1.Role.Admin);
|
|
63
|
+
if (!hasRole) {
|
|
64
|
+
throw new common_1.ForbiddenException('You are not authorized to access this resource');
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
async getAccount(context) {
|
|
69
|
+
const request = context.switchToHttp().getRequest();
|
|
70
|
+
const auth = (0, fastify_1.getAuth)(request);
|
|
71
|
+
if (!auth.userId) {
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
74
|
+
// const cachedUser = await this.userCache.getUser(auth.userId);
|
|
75
|
+
// if (cachedUser) {
|
|
76
|
+
// return {
|
|
77
|
+
// account: cachedUser.account,
|
|
78
|
+
// userPublicMetadata: cachedUser.metadata,
|
|
79
|
+
// };
|
|
80
|
+
// }
|
|
81
|
+
const user = await this.clerkClient.users.getUser(auth.userId);
|
|
82
|
+
const account = await this.accountCollection.upsertOne({ user_id: auth.userId }, {
|
|
83
|
+
$set: {
|
|
84
|
+
user_id: auth.userId,
|
|
85
|
+
}
|
|
86
|
+
}, {
|
|
87
|
+
system: true,
|
|
88
|
+
message: 'Account upserted',
|
|
89
|
+
source: AuthGuard_1.name,
|
|
90
|
+
});
|
|
91
|
+
// TODO: Cache user
|
|
92
|
+
// await this.userCache.cacheUser(auth.userId, {
|
|
93
|
+
// account: account!,
|
|
94
|
+
// metadata: user.publicMetadata,
|
|
95
|
+
// });
|
|
96
|
+
return {
|
|
97
|
+
account,
|
|
98
|
+
userPublicMetadata: user.publicMetadata,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
exports.AuthGuard = AuthGuard;
|
|
103
|
+
exports.AuthGuard = AuthGuard = AuthGuard_1 = __decorate([
|
|
104
|
+
(0, common_1.Injectable)(),
|
|
105
|
+
__metadata("design:paramtypes", [core_1.Reflector,
|
|
106
|
+
collections_1.AccountCollection,
|
|
107
|
+
config_1.ConfigService])
|
|
108
|
+
], AuthGuard);
|
|
109
|
+
//# sourceMappingURL=auth.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import * as models from '@trailmixcms/models';
|
|
3
|
+
import { createCmsProviders } from './cms.providers';
|
|
4
|
+
export declare class CmsModule {
|
|
5
|
+
static forRoot<AccountEntity extends models.Account.Entity = models.Account.Entity, AccountDtoEntity = AccountEntity, FileEntity extends models.File.Entity = models.File.Entity, TextEntity extends models.Text.Entity = models.Text.Entity>(options?: Parameters<typeof createCmsProviders<AccountEntity, AccountDtoEntity, FileEntity, TextEntity>>[0]): Promise<DynamicModule>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=cms.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.module.d.ts","sourceRoot":"","sources":["../src/cms.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAI9C,OAAO,EAAwB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG3E,qBASa,SAAS;WACL,OAAO,CAChB,aAAa,SAAS,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EACnE,gBAAgB,GAAG,aAAa,EAChC,UAAU,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1D,UAAU,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAC5D,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAgBzI"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var CmsModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CmsModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const config_1 = require("@nestjs/config");
|
|
13
|
+
const db_1 = require("@trailmixcms/db");
|
|
14
|
+
const config_2 = require("./config");
|
|
15
|
+
const cms_providers_1 = require("./cms.providers");
|
|
16
|
+
const account_controller_1 = require("./controllers/account.controller");
|
|
17
|
+
let CmsModule = CmsModule_1 = class CmsModule {
|
|
18
|
+
static async forRoot(options) {
|
|
19
|
+
const providers = (0, cms_providers_1.createCmsProviders)(options);
|
|
20
|
+
const { collectionNames, collections } = (0, cms_providers_1.configureCollections)(options);
|
|
21
|
+
return {
|
|
22
|
+
module: CmsModule_1,
|
|
23
|
+
providers,
|
|
24
|
+
controllers: [
|
|
25
|
+
(0, account_controller_1.buildAccountController)(options?.entities?.accountDto),
|
|
26
|
+
],
|
|
27
|
+
exports: [
|
|
28
|
+
...providers,
|
|
29
|
+
...db_1.Utils.buildCollectionTokens(collectionNames),
|
|
30
|
+
...collections,
|
|
31
|
+
]
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.CmsModule = CmsModule;
|
|
36
|
+
exports.CmsModule = CmsModule = CmsModule_1 = __decorate([
|
|
37
|
+
(0, common_1.Module)({
|
|
38
|
+
imports: [
|
|
39
|
+
config_1.ConfigModule.forRoot({
|
|
40
|
+
load: [config_2.configuration],
|
|
41
|
+
}),
|
|
42
|
+
db_1.DatabaseModule
|
|
43
|
+
],
|
|
44
|
+
exports: []
|
|
45
|
+
})
|
|
46
|
+
], CmsModule);
|
|
47
|
+
//# sourceMappingURL=cms.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.module.js","sourceRoot":"","sources":["../src/cms.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,2CAA8C;AAG9C,wCAAwD;AAExD,qCAAyC;AACzC,mDAA2E;AAC3E,yEAA0E;AAWnE,IAAM,SAAS,iBAAf,MAAM,SAAS;IAClB,MAAM,CAAC,KAAK,CAAC,OAAO,CAKlB,OAA2G;QACzG,MAAM,SAAS,GAAG,IAAA,kCAAkB,EAA0D,OAAO,CAAC,CAAC;QACvG,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,IAAA,oCAAoB,EAAC,OAAO,CAAC,CAAC;QACvE,OAAO;YACH,MAAM,EAAE,WAAS;YACjB,SAAS;YACT,WAAW,EAAE;gBACT,IAAA,2CAAsB,EAAkC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;aACzF;YACD,OAAO,EAAE;gBACL,GAAG,SAAS;gBACZ,GAAG,UAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC;gBAC/C,GAAG,WAAW;aACjB;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAtBY,8BAAS;oBAAT,SAAS;IATrB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,qBAAY,CAAC,OAAO,CAAC;gBACjB,IAAI,EAAE,CAAC,sBAAa,CAAC;aACxB,CAAC;YACF,mBAAc;SACjB;QACD,OAAO,EAAE,EAAE;KACd,CAAC;GACW,SAAS,CAsBrB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { OptionalUnlessRequiredId } from 'mongodb';
|
|
2
|
+
import { ZodType } from 'zod';
|
|
3
|
+
import * as models from '@trailmixcms/models';
|
|
4
|
+
import { CollectionConfig } from './types/collection-config';
|
|
5
|
+
import { Collection } from 'mongodb';
|
|
6
|
+
import { AccountCollection, FileCollection, TextCollection } from './collections';
|
|
7
|
+
export declare function configureCollections(options?: {
|
|
8
|
+
features?: {
|
|
9
|
+
file?: boolean;
|
|
10
|
+
text?: boolean;
|
|
11
|
+
};
|
|
12
|
+
}): {
|
|
13
|
+
collectionNames: ("account" | "file" | "text")[];
|
|
14
|
+
collections: (typeof AccountCollection | typeof FileCollection | typeof TextCollection)[];
|
|
15
|
+
};
|
|
16
|
+
export declare function createCmsProviders<AccountEntity extends models.Account.Entity = models.Account.Entity, AccountDtoEntity = AccountEntity, FileEntity extends models.File.Entity = models.File.Entity, TextEntity extends models.Text.Entity = models.Text.Entity>(options?: {
|
|
17
|
+
entities?: {
|
|
18
|
+
accountSchema?: ZodType<OptionalUnlessRequiredId<AccountEntity>>;
|
|
19
|
+
accountSetup?: (collection: Collection<AccountEntity>) => Promise<void>;
|
|
20
|
+
accountDtoSchema?: ZodType<OptionalUnlessRequiredId<AccountDtoEntity>>;
|
|
21
|
+
accountDto?: any;
|
|
22
|
+
accountMapEntity?: (entity: AccountEntity) => AccountDtoEntity;
|
|
23
|
+
accountConfig?: CollectionConfig;
|
|
24
|
+
fileSchema?: ZodType<OptionalUnlessRequiredId<FileEntity>>;
|
|
25
|
+
fileSetup?: (collection: Collection<FileEntity>) => Promise<void>;
|
|
26
|
+
fileConfig?: CollectionConfig;
|
|
27
|
+
textSchema?: ZodType<OptionalUnlessRequiredId<TextEntity>>;
|
|
28
|
+
textSetup?: (collection: Collection<TextEntity>) => Promise<void>;
|
|
29
|
+
textConfig?: CollectionConfig;
|
|
30
|
+
};
|
|
31
|
+
features?: {
|
|
32
|
+
file?: boolean;
|
|
33
|
+
text?: boolean;
|
|
34
|
+
};
|
|
35
|
+
}): (typeof AccountCollection | typeof FileCollection | typeof TextCollection | {
|
|
36
|
+
provide: string;
|
|
37
|
+
useFactory: (databaseService: import("@trailmixcms/db").DatabaseService) => Promise<Collection<import("bson").Document>>;
|
|
38
|
+
inject: (typeof import("@trailmixcms/db").DatabaseService)[];
|
|
39
|
+
} | {
|
|
40
|
+
provide: "TRAILMIXCMS_CMS_ACCOUNT_SCHEMA";
|
|
41
|
+
useValue: import("zod").ZodObject<{
|
|
42
|
+
_id: import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>;
|
|
43
|
+
created_at: import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>;
|
|
44
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>>;
|
|
45
|
+
user_id: import("zod").ZodString;
|
|
46
|
+
roles: import("zod").ZodArray<import("zod").ZodString>;
|
|
47
|
+
}, import("zod/v4/core").$strip> | ZodType<OptionalUnlessRequiredId<AccountEntity>, unknown, import("zod/v4/core").$ZodTypeInternals<OptionalUnlessRequiredId<AccountEntity>, unknown>>;
|
|
48
|
+
} | {
|
|
49
|
+
provide: "TRAILMIXCMS_CMS_ACCOUNT_SETUP";
|
|
50
|
+
useValue: (collection: Collection<AccountEntity>) => Promise<void>;
|
|
51
|
+
} | {
|
|
52
|
+
provide: "TRAILMIXCMS_CMS_ACCOUNT_CONFIG";
|
|
53
|
+
useValue: CollectionConfig;
|
|
54
|
+
} | {
|
|
55
|
+
provide: "TRAILMIXCMS_CMS_ACCOUNT_DTO_SCHEMA";
|
|
56
|
+
useValue: import("zod").ZodObject<{
|
|
57
|
+
_id: import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>;
|
|
58
|
+
created_at: import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>;
|
|
59
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>>;
|
|
60
|
+
user_id: import("zod").ZodString;
|
|
61
|
+
roles: import("zod").ZodArray<import("zod").ZodString>;
|
|
62
|
+
}, import("zod/v4/core").$strip> | ZodType<OptionalUnlessRequiredId<AccountDtoEntity>, unknown, import("zod/v4/core").$ZodTypeInternals<OptionalUnlessRequiredId<AccountDtoEntity>, unknown>>;
|
|
63
|
+
} | {
|
|
64
|
+
provide: "TRAILMIXCMS_CMS_ACCOUNT_MAP_ENTITY";
|
|
65
|
+
useValue: ((entity: AccountEntity) => AccountDtoEntity) | ((entity: AccountEntity) => AccountEntity);
|
|
66
|
+
} | {
|
|
67
|
+
provide: "TRAILMIXCMS_CMS_FILE_SCHEMA";
|
|
68
|
+
useValue: import("zod").ZodObject<{
|
|
69
|
+
_id: import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>;
|
|
70
|
+
created_at: import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>;
|
|
71
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>>;
|
|
72
|
+
published: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
73
|
+
authorization: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
74
|
+
public: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
75
|
+
roles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
76
|
+
accountIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>>>;
|
|
77
|
+
}, import("zod/v4/core").$strip>>;
|
|
78
|
+
external_id: import("zod").ZodString;
|
|
79
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
80
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
81
|
+
guid: import("zod").ZodOptional<import("zod").ZodString>;
|
|
82
|
+
file_name: import("zod").ZodString;
|
|
83
|
+
file_extension: import("zod").ZodString;
|
|
84
|
+
path: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
85
|
+
size: import("zod").ZodNumber;
|
|
86
|
+
encryption: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
87
|
+
key: import("zod").ZodString;
|
|
88
|
+
iv: import("zod").ZodString;
|
|
89
|
+
}, import("zod/v4/core").$strip>>;
|
|
90
|
+
}, import("zod/v4/core").$strip> | ZodType<OptionalUnlessRequiredId<FileEntity>, unknown, import("zod/v4/core").$ZodTypeInternals<OptionalUnlessRequiredId<FileEntity>, unknown>>;
|
|
91
|
+
} | {
|
|
92
|
+
provide: "TRAILMIXCMS_CMS_FILE_SETUP";
|
|
93
|
+
useValue: (collection: Collection<FileEntity>) => Promise<void>;
|
|
94
|
+
} | {
|
|
95
|
+
provide: "TRAILMIXCMS_CMS_FILE_CONFIG";
|
|
96
|
+
useValue: CollectionConfig;
|
|
97
|
+
} | {
|
|
98
|
+
provide: "TRAILMIXCMS_CMS_TEXT_SCHEMA";
|
|
99
|
+
useValue: import("zod").ZodObject<{
|
|
100
|
+
_id: import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>;
|
|
101
|
+
created_at: import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>;
|
|
102
|
+
updated_at: import("zod").ZodOptional<import("zod").ZodCodec<import("zod").ZodISODateTime, import("zod").ZodDate>>;
|
|
103
|
+
authorization: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
104
|
+
public: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
105
|
+
roles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
|
|
106
|
+
accountIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<import("bson").ObjectId, import("bson").ObjectId>>>>;
|
|
107
|
+
}, import("zod/v4/core").$strip>>;
|
|
108
|
+
published: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
109
|
+
guid: import("zod").ZodString;
|
|
110
|
+
content: import("zod").ZodString;
|
|
111
|
+
}, import("zod/v4/core").$strip> | ZodType<OptionalUnlessRequiredId<TextEntity>, unknown, import("zod/v4/core").$ZodTypeInternals<OptionalUnlessRequiredId<TextEntity>, unknown>>;
|
|
112
|
+
} | {
|
|
113
|
+
provide: "TRAILMIXCMS_CMS_TEXT_SETUP";
|
|
114
|
+
useValue: (collection: Collection<TextEntity>) => Promise<void>;
|
|
115
|
+
} | {
|
|
116
|
+
provide: "TRAILMIXCMS_CMS_TEXT_CONFIG";
|
|
117
|
+
useValue: CollectionConfig;
|
|
118
|
+
})[];
|
|
119
|
+
//# sourceMappingURL=cms.providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.providers.d.ts","sourceRoot":"","sources":["../src/cms.providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC3C,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB,CAAA;CACJ;;;EAaA;AAED,wBAAgB,kBAAkB,CAC9B,aAAa,SAAS,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EACnE,gBAAgB,GAAG,aAAa,EAChC,UAAU,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1D,UAAU,SAAS,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAC5D,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE;QACP,aAAa,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;QACjE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvE,UAAU,CAAC,EAAE,GAAG,CAAC;QACjB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,gBAAgB,CAAC;QAC/D,aAAa,CAAC,EAAE,gBAAgB,CAAC;QACjC,UAAU,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,UAAU,CAAC,EAAE,gBAAgB,CAAC;QAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,UAAU,CAAC,EAAE,gBAAgB,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB,CAAA;CACJ;;;;;;;;;;;;;;;2BAhBmC,UAAU,CAAC,aAAa,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;wBAG3C,aAAa,KAAK,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAGrC,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;2BAGxC,UAAU,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;;;;KAwExE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.configureCollections = configureCollections;
|
|
37
|
+
exports.createCmsProviders = createCmsProviders;
|
|
38
|
+
const models = __importStar(require("@trailmixcms/models"));
|
|
39
|
+
const constants_1 = require("./constants");
|
|
40
|
+
const constants_2 = require("./constants");
|
|
41
|
+
const db_1 = require("@trailmixcms/db");
|
|
42
|
+
const collections_1 = require("./collections");
|
|
43
|
+
function configureCollections(options) {
|
|
44
|
+
return {
|
|
45
|
+
collectionNames: [
|
|
46
|
+
constants_2.CMSCollectionName.Account,
|
|
47
|
+
...(options?.features?.file ? [constants_2.CMSCollectionName.File] : []),
|
|
48
|
+
...(options?.features?.text ? [constants_2.CMSCollectionName.Text] : []),
|
|
49
|
+
],
|
|
50
|
+
collections: [
|
|
51
|
+
collections_1.AccountCollection,
|
|
52
|
+
...(options?.features?.file ? [collections_1.FileCollection] : []),
|
|
53
|
+
...(options?.features?.text ? [collections_1.TextCollection] : []),
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function createCmsProviders(options) {
|
|
58
|
+
const mongodbCollectionProviders = Object.values([
|
|
59
|
+
constants_2.CMSCollectionName.Account,
|
|
60
|
+
...(options?.features?.file ? [constants_2.CMSCollectionName.File] : []),
|
|
61
|
+
...(options?.features?.text ? [constants_2.CMSCollectionName.Text] : []),
|
|
62
|
+
]).map(collectionName => (0, db_1.collectionFactory)(collectionName));
|
|
63
|
+
const defaultCollectionConfig = {
|
|
64
|
+
disableDefaultIndexes: false
|
|
65
|
+
};
|
|
66
|
+
return [
|
|
67
|
+
...mongodbCollectionProviders,
|
|
68
|
+
// Account
|
|
69
|
+
{
|
|
70
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_SCHEMA,
|
|
71
|
+
useValue: options?.entities?.accountSchema ?? models.Account.entitySchema
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_SETUP,
|
|
75
|
+
useValue: options?.entities?.accountSetup ?? (async (collection) => { })
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_CONFIG,
|
|
79
|
+
useValue: options?.entities?.accountConfig ?? defaultCollectionConfig
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_DTO_SCHEMA,
|
|
83
|
+
useValue: options?.entities?.accountDtoSchema ?? models.Account.entitySchema
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_MAP_ENTITY,
|
|
87
|
+
useValue: options?.entities?.accountMapEntity ?? (entity => entity)
|
|
88
|
+
},
|
|
89
|
+
// File
|
|
90
|
+
...(options?.features?.file ? [
|
|
91
|
+
{
|
|
92
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_SCHEMA,
|
|
93
|
+
useValue: options?.entities?.fileSchema ?? models.File.entitySchema
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_SETUP,
|
|
97
|
+
useValue: options?.entities?.fileSetup ?? (async (collection) => { })
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_CONFIG,
|
|
101
|
+
useValue: options?.entities?.fileConfig ?? defaultCollectionConfig
|
|
102
|
+
},
|
|
103
|
+
] : []),
|
|
104
|
+
// Text
|
|
105
|
+
...(options?.features?.text ? [
|
|
106
|
+
{
|
|
107
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_TEXT_SCHEMA,
|
|
108
|
+
useValue: options?.entities?.textSchema ?? models.Text.entitySchema
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_TEXT_SETUP,
|
|
112
|
+
useValue: options?.entities?.textSetup ?? (async (collection) => { })
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
provide: constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_TEXT_CONFIG,
|
|
116
|
+
useValue: options?.entities?.textConfig ?? defaultCollectionConfig
|
|
117
|
+
},
|
|
118
|
+
] : []),
|
|
119
|
+
...configureCollections(options).collections,
|
|
120
|
+
];
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=cms.providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cms.providers.js","sourceRoot":"","sources":["../src/cms.providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Collection, OptionalUnlessRequiredId } from 'mongodb';
|
|
2
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
3
|
+
import { ZodType } from 'zod';
|
|
4
|
+
import { Account } from '@trailmixcms/models';
|
|
5
|
+
import { Collections, DatabaseService, AuditedCollection } from '@trailmixcms/db';
|
|
6
|
+
import { CollectionConfig } from '../types/collection-config';
|
|
7
|
+
type Record = Account.Entity;
|
|
8
|
+
export declare class AccountCollection<T extends Record = Record> extends AuditedCollection<T> implements OnModuleInit {
|
|
9
|
+
protected readonly entitySchema: ZodType<OptionalUnlessRequiredId<T>>;
|
|
10
|
+
protected readonly setup: (collection: Collection<T>) => Promise<void>;
|
|
11
|
+
protected readonly config: CollectionConfig;
|
|
12
|
+
private readonly logger;
|
|
13
|
+
protected readonly collectionName: "account";
|
|
14
|
+
constructor(entitySchema: ZodType<OptionalUnlessRequiredId<T>>, setup: (collection: Collection<T>) => Promise<void>, config: CollectionConfig, collection: Collection<T>, databaseService: DatabaseService, auditCollection: Collections.AuditCollection);
|
|
15
|
+
onModuleInit(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=account.collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.collection.d.ts","sourceRoot":"","sources":["../../src/collections/account.collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA8B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAsB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;AAG5B,qBACa,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAE,YAAW,YAAY;IAK7C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;IANxG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,SAAS,CAAC,QAAQ,CAAC,cAAc,YAAkB;gBAG6B,YAAY,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACnD,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAClD,MAAM,EAAE,gBAAgB,EAChE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAC7D,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,WAAW,CAAC,eAAe;IAK1C,YAAY;CAOrB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AccountCollection = void 0;
|
|
16
|
+
const mongodb_1 = require("mongodb");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const zod_1 = require("zod");
|
|
19
|
+
const db_1 = require("@trailmixcms/db");
|
|
20
|
+
const constants_1 = require("../constants");
|
|
21
|
+
const collectionName = constants_1.CMSCollectionName.Account;
|
|
22
|
+
let AccountCollection = class AccountCollection extends db_1.AuditedCollection {
|
|
23
|
+
entitySchema;
|
|
24
|
+
setup;
|
|
25
|
+
config;
|
|
26
|
+
logger = new common_1.Logger(this.constructor.name);
|
|
27
|
+
collectionName = collectionName;
|
|
28
|
+
constructor(entitySchema, setup, config, collection, databaseService, auditCollection) {
|
|
29
|
+
super(collection, databaseService, auditCollection);
|
|
30
|
+
this.entitySchema = entitySchema;
|
|
31
|
+
this.setup = setup;
|
|
32
|
+
this.config = config;
|
|
33
|
+
}
|
|
34
|
+
async onModuleInit() {
|
|
35
|
+
this.logger.verbose(`creating custom indexes for collection_${collectionName}`);
|
|
36
|
+
if (!this.config.disableDefaultIndexes) {
|
|
37
|
+
await this.collection.createIndex({ user_id: 1 }, { unique: true, sparse: true });
|
|
38
|
+
}
|
|
39
|
+
await this.setup(this.collection);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.AccountCollection = AccountCollection;
|
|
43
|
+
exports.AccountCollection = AccountCollection = __decorate([
|
|
44
|
+
(0, common_1.Injectable)(),
|
|
45
|
+
__param(0, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_SCHEMA)),
|
|
46
|
+
__param(1, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_SETUP)),
|
|
47
|
+
__param(2, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_ACCOUNT_CONFIG)),
|
|
48
|
+
__param(3, (0, db_1.DocumentCollection)(collectionName)),
|
|
49
|
+
__metadata("design:paramtypes", [zod_1.ZodType, Function, Object, mongodb_1.Collection,
|
|
50
|
+
db_1.DatabaseService, db_1.Collections.AuditCollection])
|
|
51
|
+
], AccountCollection);
|
|
52
|
+
//# sourceMappingURL=account.collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.collection.js","sourceRoot":"","sources":["../../src/collections/account.collection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAA+D;AAC/D,2CAA0E;AAC1E,6BAA8B;AAE9B,wCAAsG;AAEtG,4CAAmE;AAInE,MAAM,cAAc,GAAG,6BAAiB,CAAC,OAAO,CAAC;AAG1C,IAAM,iBAAiB,GAAvB,MAAM,iBAA6C,SAAQ,sBAAoB;IAKF;IACD;IACC;IAN/D,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,cAAc,GAAG,cAAc,CAAC;IAEnD,YACgF,YAAkD,EACnD,KAAmD,EAClD,MAAwB,EAChE,UAAyB,EAC7D,eAAgC,EAChC,eAA4C;QAE5C,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAPwB,iBAAY,GAAZ,YAAY,CAAsC;QACnD,UAAK,GAAL,KAAK,CAA8C;QAClD,WAAM,GAAN,MAAM,CAAkB;IAMxG,CAAC;IAED,KAAK,CAAC,YAAY;QACd,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,cAAc,EAAE,CAAC,CAAA;QAC/E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACJ,CAAA;AAtBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAMJ,WAAA,IAAA,eAAM,EAAC,4BAAgB,CAAC,8BAA8B,CAAC,CAAA;IACvD,WAAA,IAAA,eAAM,EAAC,4BAAgB,CAAC,6BAA6B,CAAC,CAAA;IACtD,WAAA,IAAA,eAAM,EAAC,4BAAgB,CAAC,8BAA8B,CAAC,CAAA;IACvD,WAAA,IAAA,uBAAkB,EAAC,cAAc,CAAC,CAAA;qCAHuD,aAAO,oBAGjD,oBAAU;QACzC,oBAAe,EACf,gBAAW,CAAC,eAAe;GAVvC,iBAAiB,CAsB7B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Collection, OptionalUnlessRequiredId } from 'mongodb';
|
|
2
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
3
|
+
import { File } from '@trailmixcms/models';
|
|
4
|
+
import { ZodType } from 'zod';
|
|
5
|
+
import { Collections, DatabaseService, AuditedCollection } from '@trailmixcms/db';
|
|
6
|
+
import { CollectionConfig } from '../types/collection-config';
|
|
7
|
+
type Record = File.Entity;
|
|
8
|
+
export declare class FileCollection<T extends Record = Record> extends AuditedCollection<T> implements OnModuleInit {
|
|
9
|
+
protected readonly entitySchema: ZodType<OptionalUnlessRequiredId<T>>;
|
|
10
|
+
protected readonly setup: (colection: Collection<T>) => Promise<void>;
|
|
11
|
+
protected readonly config: CollectionConfig;
|
|
12
|
+
protected readonly collection: Collection<T>;
|
|
13
|
+
protected readonly databaseService: DatabaseService;
|
|
14
|
+
protected readonly auditCollection: Collections.AuditCollection;
|
|
15
|
+
private readonly logger;
|
|
16
|
+
readonly collectionName: "file";
|
|
17
|
+
constructor(entitySchema: ZodType<OptionalUnlessRequiredId<T>>, setup: (colection: Collection<T>) => Promise<void>, config: CollectionConfig, collection: Collection<T>, databaseService: DatabaseService, auditCollection: Collections.AuditCollection);
|
|
18
|
+
onModuleInit(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=file.collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.collection.d.ts","sourceRoot":"","sources":["../../src/collections/file.collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAA8B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAsB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AAGzB,qBACa,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAE,YAAW,YAAY;IAK7C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;IAC7D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAChF,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IACnD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,eAAe;IATnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,SAAgB,cAAc,SAAkB;gBAG6B,YAAY,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EACnD,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACjD,MAAM,EAAE,gBAAgB,EAC1C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAC7D,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,WAAW,CAAC,eAAe;IAK7D,YAAY;CAQrB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.FileCollection = void 0;
|
|
16
|
+
const mongodb_1 = require("mongodb");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const zod_1 = require("zod");
|
|
19
|
+
const db_1 = require("@trailmixcms/db");
|
|
20
|
+
const constants_1 = require("../constants");
|
|
21
|
+
const collectionName = constants_1.CMSCollectionName.File;
|
|
22
|
+
let FileCollection = class FileCollection extends db_1.AuditedCollection {
|
|
23
|
+
entitySchema;
|
|
24
|
+
setup;
|
|
25
|
+
config;
|
|
26
|
+
collection;
|
|
27
|
+
databaseService;
|
|
28
|
+
auditCollection;
|
|
29
|
+
logger = new common_1.Logger(this.constructor.name);
|
|
30
|
+
collectionName = collectionName;
|
|
31
|
+
constructor(entitySchema, setup, config, collection, databaseService, auditCollection) {
|
|
32
|
+
super(collection, databaseService, auditCollection);
|
|
33
|
+
this.entitySchema = entitySchema;
|
|
34
|
+
this.setup = setup;
|
|
35
|
+
this.config = config;
|
|
36
|
+
this.collection = collection;
|
|
37
|
+
this.databaseService = databaseService;
|
|
38
|
+
this.auditCollection = auditCollection;
|
|
39
|
+
}
|
|
40
|
+
async onModuleInit() {
|
|
41
|
+
this.logger.verbose(`creating custom indexes for collection_${collectionName}`);
|
|
42
|
+
if (!this.config.disableDefaultIndexes) {
|
|
43
|
+
await this.collection.createIndex({ external_id: 1 });
|
|
44
|
+
await this.collection.createIndex({ guid: 1 }, { unique: true, sparse: true });
|
|
45
|
+
}
|
|
46
|
+
await this.setup(this.collection);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.FileCollection = FileCollection;
|
|
50
|
+
exports.FileCollection = FileCollection = __decorate([
|
|
51
|
+
(0, common_1.Injectable)(),
|
|
52
|
+
__param(0, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_SCHEMA)),
|
|
53
|
+
__param(1, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_SETUP)),
|
|
54
|
+
__param(2, (0, common_1.Inject)(constants_1.PROVIDER_SYMBOLS.TRAILMIXCMS_CMS_FILE_CONFIG)),
|
|
55
|
+
__param(3, (0, db_1.DocumentCollection)(collectionName)),
|
|
56
|
+
__metadata("design:paramtypes", [zod_1.ZodType, Function, Object, mongodb_1.Collection,
|
|
57
|
+
db_1.DatabaseService, db_1.Collections.AuditCollection])
|
|
58
|
+
], FileCollection);
|
|
59
|
+
//# sourceMappingURL=file.collection.js.map
|