@solidxai/core 0.1.9-beta.7 → 0.1.9
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 +89 -0
- package/README.md +3 -1
- package/dist/constants/chatter-message.constants.d.ts +6 -0
- package/dist/constants/chatter-message.constants.d.ts.map +1 -1
- package/dist/constants/chatter-message.constants.js +7 -1
- package/dist/constants/chatter-message.constants.js.map +1 -1
- package/dist/controllers/authentication.controller.d.ts +12 -0
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +13 -0
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +1 -0
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +12 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/facebook-authentication.controller.d.ts +27 -0
- package/dist/controllers/facebook-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/facebook-authentication.controller.js +117 -0
- package/dist/controllers/facebook-authentication.controller.js.map +1 -0
- package/dist/controllers/menu-item-metadata.controller.d.ts +1 -0
- package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.js +15 -0
- package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
- package/dist/controllers/microsoft-authentication.controller.d.ts +27 -0
- package/dist/controllers/microsoft-authentication.controller.d.ts.map +1 -0
- package/dist/controllers/microsoft-authentication.controller.js +118 -0
- package/dist/controllers/microsoft-authentication.controller.js.map +1 -0
- package/dist/controllers/setting.controller.d.ts +2 -2
- package/dist/controllers/setting.controller.js +2 -2
- package/dist/decorators/auth.decorator.d.ts.map +1 -1
- package/dist/decorators/computed-field-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/disallow-in-production.decorator.d.ts.map +1 -1
- package/dist/decorators/error-codes-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/extension-user-creation-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/is-not-in-enum.decorator.d.ts.map +1 -1
- package/dist/decorators/mail-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/roles.decorator.d.ts.map +1 -1
- package/dist/decorators/scheduled-job-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/selection-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/sms-provider.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-database-module.decorator.d.ts.map +1 -1
- package/dist/decorators/whatsapp-provider.decorator.d.ts.map +1 -1
- package/dist/dtos/create-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/create-chatter-message.dto.js +7 -1
- package/dist/dtos/create-chatter-message.dto.js.map +1 -1
- package/dist/dtos/post-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/post-chatter-message.dto.js +6 -1
- package/dist/dtos/post-chatter-message.dto.js.map +1 -1
- package/dist/dtos/update-chatter-message.dto.d.ts +1 -0
- package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -1
- package/dist/dtos/update-chatter-message.dto.js +7 -1
- package/dist/dtos/update-chatter-message.dto.js.map +1 -1
- package/dist/entities/chatter-message.entity.d.ts +1 -0
- package/dist/entities/chatter-message.entity.d.ts.map +1 -1
- package/dist/entities/chatter-message.entity.js +5 -1
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/user.entity.d.ts +8 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +33 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/helpers/cors.helper.js +1 -1
- package/dist/helpers/cors.helper.js.map +1 -1
- package/dist/helpers/facebook-oauth.helper.d.ts +8 -0
- package/dist/helpers/facebook-oauth.helper.d.ts.map +1 -0
- package/dist/helpers/facebook-oauth.helper.js +11 -0
- package/dist/helpers/facebook-oauth.helper.js.map +1 -0
- package/dist/helpers/microsoft-oauth.helper.d.ts +9 -0
- package/dist/helpers/microsoft-oauth.helper.d.ts.map +1 -0
- package/dist/helpers/microsoft-oauth.helper.js +12 -0
- package/dist/helpers/microsoft-oauth.helper.js.map +1 -0
- package/dist/helpers/security.helper.d.ts.map +1 -1
- package/dist/helpers/string.helper.d.ts.map +1 -1
- package/dist/helpers/user-helper.d.ts.map +1 -1
- package/dist/helpers/user-helper.js +4 -0
- package/dist/helpers/user-helper.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +19 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/passport-strategies/facebook-oauth.strategy.d.ts +16 -0
- package/dist/passport-strategies/facebook-oauth.strategy.d.ts.map +1 -0
- package/dist/passport-strategies/facebook-oauth.strategy.js +96 -0
- package/dist/passport-strategies/facebook-oauth.strategy.js.map +1 -0
- package/dist/passport-strategies/microsoft-oauth.strategy.d.ts +14 -0
- package/dist/passport-strategies/microsoft-oauth.strategy.d.ts.map +1 -0
- package/dist/passport-strategies/microsoft-oauth.strategy.js +77 -0
- package/dist/passport-strategies/microsoft-oauth.strategy.js.map +1 -0
- package/dist/seeders/seed-data/solid-core-metadata.json +27 -58
- package/dist/services/api-key.service.d.ts +17 -1
- package/dist/services/api-key.service.d.ts.map +1 -1
- package/dist/services/api-key.service.js +38 -2
- package/dist/services/api-key.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +61 -27
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +356 -164
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +1 -0
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +24 -7
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +1 -1
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +5 -2
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +51 -6
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +846 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +1096 -117
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/user.service.d.ts +12 -8
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +143 -32
- package/dist/services/user.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +11 -3
- package/dist/solid-core.module.js.map +1 -1
- package/dist/transformers/array-transformer.d.ts.map +1 -1
- package/dist/transformers/boolean-transformer.d.ts.map +1 -1
- package/dist/transformers/datetime-transformer.d.ts.map +1 -1
- package/dist/transformers/integer-transformer.d.ts.map +1 -1
- package/dist/validators/is-parsable-int.d.ts.map +1 -1
- package/nest +0 -0
- package/package.json +8 -2
- package/src/constants/chatter-message.constants.ts +7 -0
- package/src/controllers/authentication.controller.ts +8 -1
- package/src/controllers/chatter-message.controller.ts +6 -0
- package/src/controllers/facebook-authentication.controller.ts +113 -0
- package/src/controllers/menu-item-metadata.controller.ts +21 -15
- package/src/controllers/microsoft-authentication.controller.ts +116 -0
- package/src/dtos/create-chatter-message.dto.ts +11 -0
- package/src/dtos/post-chatter-message.dto.ts +4 -0
- package/src/dtos/update-chatter-message.dto.ts +13 -1
- package/src/entities/chatter-message.entity.ts +4 -1
- package/src/entities/user.entity.ts +32 -0
- package/src/helpers/cors.helper.ts +1 -1
- package/src/helpers/facebook-oauth.helper.ts +17 -0
- package/src/helpers/microsoft-oauth.helper.ts +19 -0
- package/src/helpers/user-helper.ts +4 -0
- package/src/index.ts +2 -0
- package/src/interfaces.ts +32 -1
- package/src/passport-strategies/facebook-oauth.strategy.ts +115 -0
- package/src/passport-strategies/microsoft-oauth.strategy.ts +70 -0
- package/src/seeders/seed-data/solid-core-metadata.json +27 -58
- package/src/services/api-key.service.ts +77 -35
- package/src/services/authentication.service.ts +1947 -1432
- package/src/services/chatter-message.service.ts +23 -3
- package/src/services/model-metadata.service.ts +1 -1
- package/src/services/setting.service.ts +64 -8
- package/src/services/settings/default-settings-provider.service.ts +1168 -156
- package/src/services/user.service.ts +220 -61
- package/src/solid-core.module.ts +25 -8
- package/dev-grooming-docs/ozzy-prompts.txt +0 -70
- package/docs/grouping-enhancements.md +0 -89
- package/docs/seed-changes.md +0 -65
- package/docs/test-data-workflow.md +0 -200
- package/docs/type-declaration-import-issue.md +0 -24
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { LocalDateTimeTransformer, serializeDate } from 'src/transformers/typeorm/local-date-time-transformer';
|
|
2
|
-
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
2
|
+
import { BadRequestException, forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
|
|
3
3
|
import { ModuleRef } from "@nestjs/core";
|
|
4
4
|
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
5
5
|
import { Brackets, EntityManager, EntityMetadata } from 'typeorm';
|
|
6
6
|
|
|
7
|
-
import { classify } from '
|
|
8
|
-
import { CHATTER_MESSAGE_SUBTYPE, CHATTER_MESSAGE_TYPE } from 'src/constants/chatter-message.constants';
|
|
7
|
+
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
8
|
+
import { CHATTER_MESSAGE_STATUS, CHATTER_MESSAGE_SUBTYPE, CHATTER_MESSAGE_TYPE } from 'src/constants/chatter-message.constants';
|
|
9
|
+
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
9
10
|
import { PostChatterMessageDto } from 'src/dtos/post-chatter-message.dto';
|
|
10
11
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
11
12
|
import { lowerFirst } from 'src/helpers/string.helper';
|
|
@@ -46,10 +47,26 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
46
47
|
super(entityManager, repo, 'chatterMessage', 'solid-core', moduleRef);
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
async markCompleted(id: number) {
|
|
51
|
+
const activeUser = this.requestContextService.getActiveUser();
|
|
52
|
+
if (!activeUser) {
|
|
53
|
+
throw new BadRequestException(ERROR_MESSAGES.FORBIDDEN);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const message = await this.repo.findOne({ where: { id } });
|
|
57
|
+
if (!message) {
|
|
58
|
+
throw new NotFoundException(`Entity [solid-core.chatterMessage] with id ${id} not found`);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
message.status = CHATTER_MESSAGE_STATUS.COMPLETED;
|
|
62
|
+
return this.repo.save(message);
|
|
63
|
+
}
|
|
64
|
+
|
|
49
65
|
async postMessage(postDto: PostChatterMessageDto, files: Express.Multer.File[] = []) {
|
|
50
66
|
const chatterMessage = new ChatterMessage();
|
|
51
67
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.CUSTOM;
|
|
52
68
|
chatterMessage.messageSubType = postDto.messageSubType || CHATTER_MESSAGE_SUBTYPE.CUSTOM;
|
|
69
|
+
chatterMessage.status = postDto.status ?? CHATTER_MESSAGE_STATUS.PENDING;
|
|
53
70
|
chatterMessage.messageBody = postDto.messageBody;
|
|
54
71
|
chatterMessage.coModelEntityId = postDto.coModelEntityId;
|
|
55
72
|
chatterMessage.coModelName = postDto.coModelName;
|
|
@@ -127,6 +144,7 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
127
144
|
const chatterMessage = new ChatterMessage();
|
|
128
145
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.AUDIT;
|
|
129
146
|
chatterMessage.messageSubType = CHATTER_MESSAGE_SUBTYPE.AUDIT_INSERT;
|
|
147
|
+
chatterMessage.status = CHATTER_MESSAGE_STATUS.PENDING;
|
|
130
148
|
chatterMessage.coModelEntityId = entity.id;
|
|
131
149
|
chatterMessage.coModelName = model?.singularName;
|
|
132
150
|
chatterMessage.modelDisplayName = model?.displayName;
|
|
@@ -246,6 +264,7 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
246
264
|
const chatterMessage = new ChatterMessage();
|
|
247
265
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.AUDIT;
|
|
248
266
|
chatterMessage.messageSubType = CHATTER_MESSAGE_SUBTYPE.AUDIT_UPDATE;
|
|
267
|
+
chatterMessage.status = CHATTER_MESSAGE_STATUS.PENDING;
|
|
249
268
|
chatterMessage.coModelEntityId = entity?.id;
|
|
250
269
|
chatterMessage.coModelName = model?.singularName;
|
|
251
270
|
chatterMessage.modelDisplayName = model.displayName;
|
|
@@ -309,6 +328,7 @@ export class ChatterMessageService extends CRUDService<ChatterMessage> {
|
|
|
309
328
|
const chatterMessage = new ChatterMessage();
|
|
310
329
|
chatterMessage.messageType = CHATTER_MESSAGE_TYPE.AUDIT;
|
|
311
330
|
chatterMessage.messageSubType = CHATTER_MESSAGE_SUBTYPE.AUDIT_DELETE;
|
|
331
|
+
chatterMessage.status = CHATTER_MESSAGE_STATUS.PENDING;
|
|
312
332
|
chatterMessage.coModelEntityId = databaseEntity?.id;
|
|
313
333
|
chatterMessage.coModelName = model?.singularName;
|
|
314
334
|
chatterMessage.modelDisplayName = model?.displayName;
|
|
@@ -837,7 +837,7 @@ export class ModelMetadataService {
|
|
|
837
837
|
}
|
|
838
838
|
}
|
|
839
839
|
const actionName = `${model.singularName}-list-action`;
|
|
840
|
-
const treeViewActionName = `${model.singularName}-tree-
|
|
840
|
+
const treeViewActionName = `${model.singularName}-tree-action`;
|
|
841
841
|
const listViewName = `${model.singularName}-list-view`;
|
|
842
842
|
const treeViewName = `${model.singularName}-tree-view`;
|
|
843
843
|
const formViewName = `${model.singularName}-form-view`;
|
|
@@ -11,7 +11,7 @@ import { FILE_SERVICE, IFileService, FILE_STORAGE_PATH_BUILDER, IStoragePathBuil
|
|
|
11
11
|
import { Setting } from '../entities/setting.entity';
|
|
12
12
|
import { RequestContextService } from './request-context.service';
|
|
13
13
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
14
|
-
import { ISettingsProvider, NoInfer, SettingDefinition, SettingLevel } from '../interfaces';
|
|
14
|
+
import { AdminSettingDefinition, AdminSettingsResponse, ISettingsProvider, NoInfer, SettingControlType, SettingDefinition, SettingLevel } from '../interfaces';
|
|
15
15
|
import { ModuleMetadataRepository } from 'src/repository/module-metadata.repository';
|
|
16
16
|
import type { SolidCoreSetting } from './settings/default-settings-provider.service';
|
|
17
17
|
import { Logger } from '@nestjs/common';
|
|
@@ -68,6 +68,44 @@ export class SettingService {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
private buildSettingLabel(key: string): string {
|
|
72
|
+
return key
|
|
73
|
+
.replace(/([a-z0-9])([A-Z])/g, '$1 $2')
|
|
74
|
+
.replace(/[-_]+/g, ' ')
|
|
75
|
+
.replace(/\s+/g, ' ')
|
|
76
|
+
.trim()
|
|
77
|
+
.replace(/\b\w/g, (match) => match.toUpperCase());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
private inferControlType(setting: SettingDefinition): SettingControlType {
|
|
81
|
+
if (setting.controlType) {
|
|
82
|
+
return setting.controlType;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (setting.options?.length) {
|
|
86
|
+
return 'selectionStatic';
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (typeof setting.value === 'boolean') {
|
|
90
|
+
return 'boolean';
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (typeof setting.value === 'number') {
|
|
94
|
+
return 'numeric';
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return 'shortText';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
private toAdminSettingDefinition(setting: SettingDefinition): AdminSettingDefinition {
|
|
101
|
+
return {
|
|
102
|
+
...setting,
|
|
103
|
+
label: setting.label ?? this.buildSettingLabel(setting.key),
|
|
104
|
+
controlType: this.inferControlType(setting),
|
|
105
|
+
editable: setting.level === SettingLevel.SystemAdminEditable,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
71
109
|
/**
|
|
72
110
|
* Reads all registered providers and gathers settings from across the running platform.
|
|
73
111
|
* This is the superset of all possible settings.
|
|
@@ -216,13 +254,31 @@ export class SettingService {
|
|
|
216
254
|
*
|
|
217
255
|
* @returns
|
|
218
256
|
*/
|
|
219
|
-
async getNonEncryptedSystemAdminReadonlyAndAboveSettings(): Promise<
|
|
220
|
-
const
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
257
|
+
async getNonEncryptedSystemAdminReadonlyAndAboveSettings(): Promise<AdminSettingsResponse> {
|
|
258
|
+
const activeUser = this.requestContextService.getActiveUser();
|
|
259
|
+
const hasViewEncryptedPermission = !!activeUser?.permissions?.includes('settings:view_encrypted');
|
|
260
|
+
|
|
261
|
+
const data = this.settings
|
|
262
|
+
.filter(i => i.level !== "system-env")
|
|
263
|
+
.filter(i => hasViewEncryptedPermission || !i.encrypted)
|
|
264
|
+
.filter((setting) => [SettingLevel.SystemAdminReadonly, SettingLevel.SystemAdminEditable].includes(setting.level))
|
|
265
|
+
.map((setting) => this.toAdminSettingDefinition(setting))
|
|
266
|
+
.sort((left, right) => {
|
|
267
|
+
const groupCompare = (left.group ?? '').localeCompare(right.group ?? '');
|
|
268
|
+
if (groupCompare !== 0) {
|
|
269
|
+
return groupCompare;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
const leftSort = left.sortOrder ?? Number.MAX_SAFE_INTEGER;
|
|
273
|
+
const rightSort = right.sortOrder ?? Number.MAX_SAFE_INTEGER;
|
|
274
|
+
if (leftSort !== rightSort) {
|
|
275
|
+
return leftSort - rightSort;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
return left.label!.localeCompare(right.label!);
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
return { data };
|
|
226
282
|
}
|
|
227
283
|
|
|
228
284
|
/**
|