@solidxai/core 0.1.13-beta.4 → 0.1.13-beta.6
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/.claude/settings.local.json +16 -0
- package/CHANGELOG.md +1053 -0
- package/CLAUDE.md +26 -0
- package/dist/commands/run-tests.command.d.ts +7 -1
- package/dist/commands/run-tests.command.d.ts.map +1 -1
- package/dist/commands/run-tests.command.js +49 -3
- package/dist/commands/run-tests.command.js.map +1 -1
- package/dist/constants/chatter-message.constants.d.ts +1 -0
- package/dist/constants/chatter-message.constants.d.ts.map +1 -1
- package/dist/constants/chatter-message.constants.js +3 -1
- package/dist/constants/chatter-message.constants.js.map +1 -1
- package/dist/constants/user.constants.d.ts +2 -0
- package/dist/constants/user.constants.d.ts.map +1 -0
- package/dist/constants/user.constants.js +5 -0
- package/dist/constants/user.constants.js.map +1 -0
- package/dist/controllers/chatter-message.controller.d.ts +5 -0
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +14 -0
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +36 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +12 -7
- package/dist/services/chatter-message.service.d.ts +10 -0
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +44 -3
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +2 -0
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +13 -1
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +40 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +22 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.d.ts +5 -0
- package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
- package/dist/testing/adapters/ui/playwright-adapter.js +17 -1
- package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
- package/dist/testing/adapters/ui/ui.types.d.ts +2 -0
- package/dist/testing/adapters/ui/ui.types.d.ts.map +1 -1
- package/dist/testing/adapters/ui/ui.types.js.map +1 -1
- package/dist/testing/steps/ui/actions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/actions.step.js +6 -2
- package/dist/testing/steps/ui/actions.step.js.map +1 -1
- package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/assertions.step.js +11 -3
- package/dist/testing/steps/ui/assertions.step.js.map +1 -1
- package/dist/testing/steps/ui/form.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/form.step.js +9 -3
- package/dist/testing/steps/ui/form.step.js.map +1 -1
- package/dist/testing/steps/ui/manual.step.js +1 -1
- package/dist/testing/steps/ui/manual.step.js.map +1 -1
- package/dist/testing/steps/ui/navigation.step.d.ts.map +1 -1
- package/dist/testing/steps/ui/navigation.step.js +3 -1
- package/dist/testing/steps/ui/navigation.step.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/run-tests.command.ts +47 -1
- package/src/constants/chatter-message.constants.ts +12 -0
- package/src/constants/user.constants.ts +13 -0
- package/src/controllers/chatter-message.controller.ts +8 -0
- package/src/entities/user.entity.ts +53 -36
- package/src/seeders/seed-data/solid-core-metadata.json +12 -7
- package/src/services/1.js +6 -0
- package/src/services/chatter-message.service.ts +86 -4
- package/src/services/crud.service.ts +31 -1
- package/src/services/settings/default-settings-provider.service.ts +22 -0
- package/src/testing/README.md +64 -2
- package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
- package/src/testing/adapters/ui/ui.types.ts +2 -0
- package/src/testing/steps/ui/actions.step.ts +8 -4
- package/src/testing/steps/ui/assertions.step.ts +18 -5
- package/src/testing/steps/ui/form.step.ts +16 -6
- package/src/testing/steps/ui/manual.step.ts +1 -1
- package/src/testing/steps/ui/navigation.step.ts +4 -2
- package/dist-tests/api/authenticate.spec.js +0 -119
- package/dist-tests/api/authenticate.spec.js.map +0 -1
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
- package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
- package/dist-tests/api/ping.spec.js +0 -21
- package/dist-tests/api/ping.spec.js.map +0 -1
- package/dist-tests/helpers/auth.js +0 -41
- package/dist-tests/helpers/auth.js.map +0 -1
- package/dist-tests/helpers/env.js +0 -11
- package/dist-tests/helpers/env.js.map +0 -1
- package/docs/agent-builder/notebook-lm-prompt-for-agent-builder.md +0 -136
- package/docs/agent-builder/team-ready-note-agent-builder.md +0 -305
- package/docs/agent-hub-grooming.md +0 -301
- package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
- package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
- package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
- package/docs/datasource-introspection-ddl-analysis.md +0 -326
- package/docs/datasource-introspection-implementation-plan.md +0 -306
- package/docs/grouping-enhancements.md +0 -89
- package/docs/java-spring/README.md +0 -3
- package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
- package/docs/module-package-import-handoff.md +0 -691
- package/docs/seed-changes.md +0 -65
- package/docs/test-data-workflow.md +0 -200
- package/docs/type-declaration-import-issue.md +0 -24
- package/docs/workflow/business-automation-example-notes.md +0 -309
- package/docs/workflow/control-flow-node-addition-sop.md +0 -324
- package/docs/workflow/data-engineering-pipeline-example-notes.md +0 -330
- package/docs/workflow/foreach-example-notes.md +0 -187
- package/docs/workflow/hello-world-example-notes.md +0 -271
- package/docs/workflow/kestra-concepts-plugins-blueprints.md +0 -315
- package/docs/workflow/loop-until-example-notes.md +0 -198
- package/docs/workflow/microservices-and-apis-example-notes.md +0 -264
- package/docs/workflow/samples.md +0 -25
- package/docs/workflow/what-is-kestra.md +0 -79
- package/docs/workflow/workflow-core-module-handoff-summary.md +0 -191
- package/docs/workflow/workflow-module-brd.md +0 -185
- package/docs/workflow/workflow-module-domain-model.md +0 -252
- package/docs/workflow/workflow-module-metadata-dsl.md +0 -302
- package/docs/workflow/workflow-module-technical-spec.md +0 -293
- package/docs/workflow/workflow-node-type-contracts.md +0 -635
- package/docs/workflow/workflow-node-ui-metadata-contract.md +0 -1262
- package/docs/workflow/workflow-solidx-model-field-spec.md +0 -284
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# This is the SolidX API project.
|
|
2
|
+
This is included as a dependency in consuming projects.
|
|
3
|
+
|
|
4
|
+
# SolidX UI
|
|
5
|
+
# The corresponding UI project is at the below path:
|
|
6
|
+
/Users/oswald/projects/Solid_Starters/solid-core-ui
|
|
7
|
+
|
|
8
|
+
# SolidX Docs
|
|
9
|
+
# The documentation project is at the below path:
|
|
10
|
+
/Users/oswald/projects/solidxai-docs
|
|
11
|
+
|
|
12
|
+
# SolidX Agent
|
|
13
|
+
# The agent project which has the skills for helping users configure, build and use SolidX is at the below path:
|
|
14
|
+
/Users/oswald/projects/Solid_Starters/agent
|
|
15
|
+
|
|
16
|
+
# SolidX Control Plane Commands
|
|
17
|
+
# The control plane commands for managing SolidX instances are in the below path:
|
|
18
|
+
/Users/oswald/projects/Solid_Starters/solidctl
|
|
19
|
+
|
|
20
|
+
# Testing reference project
|
|
21
|
+
# This is the reference library management project that is used for testing and development of SolidX features. It is located at the below path:
|
|
22
|
+
/Users/oswald/projects/Solid_Starters/solid-library-management
|
|
23
|
+
|
|
24
|
+
# Code Builder project
|
|
25
|
+
# This is the project that contains the code builder which generates code based on user input and templates. It is located at the below path:
|
|
26
|
+
/Users/oswald/projects/Solid_Starters/solid-code-builder
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CommandRunner } from 'nest-commander';
|
|
2
2
|
import { ModuleMetadataHelperService } from '../helpers/module-metadata-helper.service';
|
|
3
|
+
import { SettingService } from '../services/setting.service';
|
|
3
4
|
interface TestRunCommandOptions {
|
|
4
5
|
module?: string;
|
|
5
6
|
moduleName?: string;
|
|
@@ -10,6 +11,8 @@ interface TestRunCommandOptions {
|
|
|
10
11
|
apiBaseUrl?: string;
|
|
11
12
|
uiBaseUrl?: string;
|
|
12
13
|
headless?: boolean;
|
|
14
|
+
uiTimeoutMs?: number;
|
|
15
|
+
uiNavigationTimeoutMs?: number;
|
|
13
16
|
timeoutMs?: number;
|
|
14
17
|
retries?: number;
|
|
15
18
|
listSpecs?: boolean;
|
|
@@ -18,8 +21,9 @@ interface TestRunCommandOptions {
|
|
|
18
21
|
}
|
|
19
22
|
export declare class TestRunCommand extends CommandRunner {
|
|
20
23
|
private readonly moduleMetadataHelperService;
|
|
24
|
+
private readonly settingService;
|
|
21
25
|
private readonly logger;
|
|
22
|
-
constructor(moduleMetadataHelperService: ModuleMetadataHelperService);
|
|
26
|
+
constructor(moduleMetadataHelperService: ModuleMetadataHelperService, settingService: SettingService);
|
|
23
27
|
run(passedParam: string[], options?: TestRunCommandOptions): Promise<void>;
|
|
24
28
|
parseModule(val: string): string;
|
|
25
29
|
parseScenarioIds(val: string): string;
|
|
@@ -31,6 +35,8 @@ export declare class TestRunCommand extends CommandRunner {
|
|
|
31
35
|
parseApiBaseUrl(val: string): string;
|
|
32
36
|
parseUiBaseUrl(val: string): string;
|
|
33
37
|
parseHeadless(val: string): boolean;
|
|
38
|
+
parseUiTimeoutMs(val: string): number;
|
|
39
|
+
parseUiNavigationTimeoutMs(val: string): number;
|
|
34
40
|
parseTimeoutMs(val: string): number;
|
|
35
41
|
parseRetries(val: string): number;
|
|
36
42
|
parseRunName(val: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-tests.command.d.ts","sourceRoot":"","sources":["../../src/commands/run-tests.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"run-tests.command.d.ts","sourceRoot":"","sources":["../../src/commands/run-tests.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAMzF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,UAAU,qBAAqB;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAIa,cAAe,SAAQ,aAAa;IAI7C,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAGvC,2BAA2B,EAAE,2BAA2B,EACxD,cAAc,EAAE,cAAc;IAK3C,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiHhF,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAShC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASrC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASrC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASzC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASlC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAUrC,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAUxC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASpC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASnC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUnC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUrC,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAS/C,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASnC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASjC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAGlC"}
|
|
@@ -52,10 +52,12 @@ const console_reporter_1 = require("../testing/reporter/console-reporter");
|
|
|
52
52
|
const webhook_reporter_1 = require("../testing/reporter/webhook-reporter");
|
|
53
53
|
const run_from_metadata_1 = require("../testing/runner/run-from-metadata");
|
|
54
54
|
const spec_registry_1 = require("../testing/core/spec-registry");
|
|
55
|
+
const setting_service_1 = require("../services/setting.service");
|
|
55
56
|
let TestRunCommand = TestRunCommand_1 = class TestRunCommand extends nest_commander_1.CommandRunner {
|
|
56
|
-
constructor(moduleMetadataHelperService) {
|
|
57
|
+
constructor(moduleMetadataHelperService, settingService) {
|
|
57
58
|
super();
|
|
58
59
|
this.moduleMetadataHelperService = moduleMetadataHelperService;
|
|
60
|
+
this.settingService = settingService;
|
|
59
61
|
this.logger = new common_1.Logger(TestRunCommand_1.name);
|
|
60
62
|
}
|
|
61
63
|
async run(passedParam, options) {
|
|
@@ -102,6 +104,12 @@ let TestRunCommand = TestRunCommand_1 = class TestRunCommand extends nest_comman
|
|
|
102
104
|
const apiBaseUrl = options?.apiBaseUrl ?? process.env.BASE_URL;
|
|
103
105
|
const uiBaseUrl = options?.uiBaseUrl ?? process.env.FRONTEND_BASE_URL;
|
|
104
106
|
const headless = options?.headless ?? true;
|
|
107
|
+
const uiTimeoutMs = options?.uiTimeoutMs
|
|
108
|
+
?? toPositiveNumber(process.env.UI_TIMEOUT_MS)
|
|
109
|
+
?? toPositiveNumber(this.settingService.getConfigValue('uiTestDefaultTimeoutMs'));
|
|
110
|
+
const uiNavigationTimeoutMs = options?.uiNavigationTimeoutMs
|
|
111
|
+
?? toPositiveNumber(process.env.UI_NAVIGATION_TIMEOUT_MS)
|
|
112
|
+
?? toPositiveNumber(this.settingService.getConfigValue('uiTestNavigationTimeoutMs'));
|
|
105
113
|
const printApiLogs = options?.printApiLogs ?? false;
|
|
106
114
|
const webhookUrl = process.env.SOLIDCTL_WEBHOOK_URL;
|
|
107
115
|
const runName = options?.runName ?? `run-${Date.now()}`;
|
|
@@ -116,7 +124,12 @@ let TestRunCommand = TestRunCommand_1 = class TestRunCommand extends nest_comman
|
|
|
116
124
|
skipScenarioIds,
|
|
117
125
|
reporter,
|
|
118
126
|
api: apiBaseUrl ? { baseUrl: apiBaseUrl } : undefined,
|
|
119
|
-
ui: {
|
|
127
|
+
ui: {
|
|
128
|
+
baseUrl: uiBaseUrl,
|
|
129
|
+
headless,
|
|
130
|
+
defaultTimeoutMs: uiTimeoutMs,
|
|
131
|
+
navigationTimeoutMs: uiNavigationTimeoutMs,
|
|
132
|
+
},
|
|
120
133
|
defaults: {
|
|
121
134
|
timeoutMs: options?.timeoutMs,
|
|
122
135
|
retries: options?.retries,
|
|
@@ -180,6 +193,12 @@ let TestRunCommand = TestRunCommand_1 = class TestRunCommand extends nest_comman
|
|
|
180
193
|
parseHeadless(val) {
|
|
181
194
|
return val === 'false' ? false : true;
|
|
182
195
|
}
|
|
196
|
+
parseUiTimeoutMs(val) {
|
|
197
|
+
return Number(val);
|
|
198
|
+
}
|
|
199
|
+
parseUiNavigationTimeoutMs(val) {
|
|
200
|
+
return Number(val);
|
|
201
|
+
}
|
|
183
202
|
parseTimeoutMs(val) {
|
|
184
203
|
return Number(val);
|
|
185
204
|
}
|
|
@@ -291,6 +310,26 @@ __decorate([
|
|
|
291
310
|
__metadata("design:paramtypes", [String]),
|
|
292
311
|
__metadata("design:returntype", Boolean)
|
|
293
312
|
], TestRunCommand.prototype, "parseHeadless", null);
|
|
313
|
+
__decorate([
|
|
314
|
+
(0, nest_commander_1.Option)({
|
|
315
|
+
flags: '--ui-timeout-ms [number]',
|
|
316
|
+
description: 'Default timeout in ms for UI steps (waits, clicks, fills). Defaults to process.env.UI_TIMEOUT_MS, then the uiTestDefaultTimeoutMs setting, then 30000.',
|
|
317
|
+
required: false,
|
|
318
|
+
}),
|
|
319
|
+
__metadata("design:type", Function),
|
|
320
|
+
__metadata("design:paramtypes", [String]),
|
|
321
|
+
__metadata("design:returntype", Number)
|
|
322
|
+
], TestRunCommand.prototype, "parseUiTimeoutMs", null);
|
|
323
|
+
__decorate([
|
|
324
|
+
(0, nest_commander_1.Option)({
|
|
325
|
+
flags: '--ui-navigation-timeout-ms [number]',
|
|
326
|
+
description: 'Default timeout in ms for ui.goto navigation. Defaults to process.env.UI_NAVIGATION_TIMEOUT_MS, then the uiTestNavigationTimeoutMs setting, then --ui-timeout-ms.',
|
|
327
|
+
required: false,
|
|
328
|
+
}),
|
|
329
|
+
__metadata("design:type", Function),
|
|
330
|
+
__metadata("design:paramtypes", [String]),
|
|
331
|
+
__metadata("design:returntype", Number)
|
|
332
|
+
], TestRunCommand.prototype, "parseUiNavigationTimeoutMs", null);
|
|
294
333
|
__decorate([
|
|
295
334
|
(0, nest_commander_1.Option)({
|
|
296
335
|
flags: '--timeout-ms [number]',
|
|
@@ -326,7 +365,8 @@ exports.TestRunCommand = TestRunCommand = TestRunCommand_1 = __decorate([
|
|
|
326
365
|
name: 'run',
|
|
327
366
|
description: 'Run testing scenarios from module metadata.',
|
|
328
367
|
}),
|
|
329
|
-
__metadata("design:paramtypes", [module_metadata_helper_service_1.ModuleMetadataHelperService
|
|
368
|
+
__metadata("design:paramtypes", [module_metadata_helper_service_1.ModuleMetadataHelperService,
|
|
369
|
+
setting_service_1.SettingService])
|
|
330
370
|
], TestRunCommand);
|
|
331
371
|
function splitCsv(value) {
|
|
332
372
|
if (!value)
|
|
@@ -337,6 +377,12 @@ function splitCsv(value) {
|
|
|
337
377
|
.filter(Boolean);
|
|
338
378
|
return items.length ? items : undefined;
|
|
339
379
|
}
|
|
380
|
+
function toPositiveNumber(value) {
|
|
381
|
+
if (value === null || value === undefined || value === '')
|
|
382
|
+
return undefined;
|
|
383
|
+
const parsed = Number(value);
|
|
384
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
|
|
385
|
+
}
|
|
340
386
|
function resolveSpecPath(entry, metadataPath) {
|
|
341
387
|
if (path.isAbsolute(entry)) {
|
|
342
388
|
return entry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-tests.command.js","sourceRoot":"","sources":["../../src/commands/run-tests.command.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger } from '@nestjs/common';\nimport { SubCommand, CommandRunner, Option } from 'nest-commander';\nimport * as path from 'path';\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ConsoleReporter } from 'src/testing/reporter/console-reporter';\nimport { WebhookReporter } from 'src/testing/reporter/webhook-reporter';\nimport { runFromMetadata } from 'src/testing/runner/run-from-metadata';\nimport type { TestingMetadata } from 'src/testing/contracts/testing-metadata.types';\nimport { SpecRegistry } from 'src/testing/core/spec-registry';\n\ninterface TestRunCommandOptions {\n module?: string;\n moduleName?: string;\n scenarioIds?: string;\n includeTags?: string;\n skipScenarioIds?: string;\n reporter?: string;\n apiBaseUrl?: string;\n uiBaseUrl?: string;\n headless?: boolean;\n timeoutMs?: number;\n retries?: number;\n listSpecs?: boolean;\n printApiLogs?: boolean;\n runName?: string;\n}\n\n@SubCommand({\n name: 'run',\n description: 'Run testing scenarios from module metadata.',\n})\nexport class TestRunCommand extends CommandRunner {\n private readonly logger = new Logger(TestRunCommand.name);\n\n constructor(\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) {\n super();\n }\n\n async run(passedParam: string[], options?: TestRunCommandOptions): Promise<void> {\n try {\n const moduleName = options?.moduleName ?? options?.module ?? passedParam?.[0];\n if (!moduleName) {\n this.logger.error('Module name is required. Use --module or pass it as the first argument.');\n return;\n }\n\n const metadataPath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n if (!metadataPath) {\n this.logger.error(`Unable to resolve metadata path for module: ${moduleName}`);\n return;\n }\n\n const metadata = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(metadataPath);\n if (!metadata?.testing) {\n this.logger.error(`No testing configuration found in metadata: ${metadataPath}`);\n return;\n }\n\n const listSpecs = options?.listSpecs ?? false;\n const specEntries = Array.isArray(metadata.testing?.specs)\n ? metadata.testing.specs\n : [];\n\n if (listSpecs) {\n const registry = new SpecRegistry();\n if (specEntries.length) {\n loadSpecRegistrations(specEntries, metadataPath, registry);\n }\n printSpecList(registry.list());\n return;\n }\n if (!metadata?.testing?.scenarios || !Array.isArray(metadata.testing.scenarios)) {\n this.logger.error(`No testing.scenarios found in metadata: ${metadataPath}`);\n return;\n }\n\n const scenarioIds = splitCsv(options?.scenarioIds);\n const includeTags = splitCsv(options?.includeTags);\n const skipScenarioIds = splitCsv(options?.skipScenarioIds);\n\n const reporterName = options?.reporter ?? 'console';\n if (reporterName !== 'console') {\n this.logger.error(`Unsupported reporter: ${reporterName}. Use \"console\".`);\n return;\n }\n\n const apiBaseUrl = options?.apiBaseUrl ?? process.env.BASE_URL;\n const uiBaseUrl = options?.uiBaseUrl ?? process.env.FRONTEND_BASE_URL;\n const headless = options?.headless ?? true;\n const printApiLogs = options?.printApiLogs ?? false;\n\n const webhookUrl = process.env.SOLIDCTL_WEBHOOK_URL;\n const runName = options?.runName ?? `run-${Date.now()}`;\n const reporter = webhookUrl\n ? new WebhookReporter(webhookUrl, runName)\n : new ConsoleReporter();\n\n try {\n await runFromMetadata({\n metadata: metadata as TestingMetadata,\n scenarioIds,\n includeTags,\n skipScenarioIds,\n reporter,\n api: apiBaseUrl ? { baseUrl: apiBaseUrl } : undefined,\n ui: { baseUrl: uiBaseUrl, headless },\n defaults: {\n timeoutMs: options?.timeoutMs,\n retries: options?.retries,\n },\n options: { printApiLogs },\n specs: specEntries.length\n ? (registry) => loadSpecRegistrations(specEntries, metadataPath, registry)\n : undefined,\n });\n } catch (err: any) {\n this.logger.error('Run tests command failed');\n console.error('Run tests command failed');\n process.exitCode = 1;\n } finally {\n if (reporter instanceof WebhookReporter) {\n await reporter.flush(Number(process.exitCode ?? 0));\n }\n }\n return;\n } catch (err: any) {\n this.logger.error('Run tests command failed');\n console.error('Run tests command failed');\n process.exitCode = 1;\n return;\n }\n }\n\n @Option({\n flags: '-m, --module [module name]',\n description: 'Module name to load metadata from.',\n required: false,\n })\n parseModule(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--scenario-ids [ids]',\n description: 'Comma-separated list of scenario ids to run.',\n required: false,\n })\n parseScenarioIds(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--include-tags [tags]',\n description: 'Comma-separated list of tags; scenario must include all.',\n required: false,\n })\n parseIncludeTags(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--skip-scenario-ids [ids]',\n description: 'Comma-separated list of scenario ids to skip.',\n required: false,\n })\n parseSkipScenarioIds(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--reporter [name]',\n description: 'Reporter name (currently only \"console\").',\n required: false,\n })\n parseReporter(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--list-specs [true|false]',\n description: 'List registered test specs and exit.',\n required: false,\n })\n parseListSpecs(val?: string): boolean {\n if (val === undefined) return true;\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--print-api-logs [true|false]',\n description: 'Print full API request/response logs for api.request steps.',\n required: false,\n })\n parsePrintApiLogs(val?: string): boolean {\n if (val === undefined) return true;\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--api-base-url [url]',\n description: 'API base URL (defaults to process.env.BASE_URL).',\n required: false,\n })\n parseApiBaseUrl(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--ui-base-url [url]',\n description: 'UI base URL (defaults to process.env.FRONTEND_BASE_URL).',\n required: false,\n })\n parseUiBaseUrl(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--headless [true|false]',\n description: 'Run UI browser in headless mode (default: true).',\n required: false,\n })\n parseHeadless(val: string): boolean {\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--timeout-ms [number]',\n description: 'Default scenario timeout in milliseconds.',\n required: false,\n })\n parseTimeoutMs(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--retries [number]',\n description: 'Default scenario retries.',\n required: false,\n })\n parseRetries(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--run-name [name]',\n description: 'Logical name for this test run (used by webhook reporter).',\n required: false,\n })\n parseRunName(val: string): string {\n return val;\n }\n}\n\nfunction splitCsv(value?: string): string[] | undefined {\n if (!value) return undefined;\n const items = value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n return items.length ? items : undefined;\n}\n\nfunction resolveSpecPath(entry: string, metadataPath: string): string {\n if (path.isAbsolute(entry)) {\n return entry;\n }\n if (entry.startsWith('.')) {\n return path.resolve(path.dirname(metadataPath), entry);\n }\n return path.resolve(process.cwd(), entry);\n}\n\nfunction loadSpecRegistrations(entries: string[], metadataPath: string, registry: SpecRegistry): void {\n for (const entry of entries) {\n const resolved = resolveSpecPath(entry, metadataPath);\n let mod: any;\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n mod = require(resolved);\n } catch (err: any) {\n const message = err?.message ?? String(err);\n throw new Error(\n `Failed to load test spec module \"${entry}\" resolved to \"${resolved}\": ${message}`,\n );\n }\n const register = mod?.registerTestSpecs ?? mod?.default ?? mod;\n if (typeof register !== 'function') {\n throw new Error(\n `Test spec module \"${entry}\" did not export a register function (expected \"registerTestSpecs\" or default export).`,\n );\n }\n register(registry);\n }\n}\nfunction printSpecList(specIds: string[]): void {\n if (!specIds.length) {\n console.log('No test specs registered.');\n return;\n }\n console.log('Registered test specs:');\n for (const id of specIds) {\n console.log(`- ${id}`);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"run-tests.command.js","sourceRoot":"","sources":["../../src/commands/run-tests.command.ts"],"names":[],"mappings":"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","sourcesContent":["import { Logger } from '@nestjs/common';\nimport { SubCommand, CommandRunner, Option } from 'nest-commander';\nimport * as path from 'path';\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ConsoleReporter } from 'src/testing/reporter/console-reporter';\nimport { WebhookReporter } from 'src/testing/reporter/webhook-reporter';\nimport { runFromMetadata } from 'src/testing/runner/run-from-metadata';\nimport type { TestingMetadata } from 'src/testing/contracts/testing-metadata.types';\nimport { SpecRegistry } from 'src/testing/core/spec-registry';\nimport { SettingService } from 'src/services/setting.service';\nimport type { SolidCoreSetting } from 'src/services/settings/default-settings-provider.service';\n\ninterface TestRunCommandOptions {\n module?: string;\n moduleName?: string;\n scenarioIds?: string;\n includeTags?: string;\n skipScenarioIds?: string;\n reporter?: string;\n apiBaseUrl?: string;\n uiBaseUrl?: string;\n headless?: boolean;\n uiTimeoutMs?: number;\n uiNavigationTimeoutMs?: number;\n timeoutMs?: number;\n retries?: number;\n listSpecs?: boolean;\n printApiLogs?: boolean;\n runName?: string;\n}\n\n@SubCommand({\n name: 'run',\n description: 'Run testing scenarios from module metadata.',\n})\nexport class TestRunCommand extends CommandRunner {\n private readonly logger = new Logger(TestRunCommand.name);\n\n constructor(\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n private readonly settingService: SettingService,\n ) {\n super();\n }\n\n async run(passedParam: string[], options?: TestRunCommandOptions): Promise<void> {\n try {\n const moduleName = options?.moduleName ?? options?.module ?? passedParam?.[0];\n if (!moduleName) {\n this.logger.error('Module name is required. Use --module or pass it as the first argument.');\n return;\n }\n\n const metadataPath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n if (!metadataPath) {\n this.logger.error(`Unable to resolve metadata path for module: ${moduleName}`);\n return;\n }\n\n const metadata = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(metadataPath);\n if (!metadata?.testing) {\n this.logger.error(`No testing configuration found in metadata: ${metadataPath}`);\n return;\n }\n\n const listSpecs = options?.listSpecs ?? false;\n const specEntries = Array.isArray(metadata.testing?.specs)\n ? metadata.testing.specs\n : [];\n\n if (listSpecs) {\n const registry = new SpecRegistry();\n if (specEntries.length) {\n loadSpecRegistrations(specEntries, metadataPath, registry);\n }\n printSpecList(registry.list());\n return;\n }\n if (!metadata?.testing?.scenarios || !Array.isArray(metadata.testing.scenarios)) {\n this.logger.error(`No testing.scenarios found in metadata: ${metadataPath}`);\n return;\n }\n\n const scenarioIds = splitCsv(options?.scenarioIds);\n const includeTags = splitCsv(options?.includeTags);\n const skipScenarioIds = splitCsv(options?.skipScenarioIds);\n\n const reporterName = options?.reporter ?? 'console';\n if (reporterName !== 'console') {\n this.logger.error(`Unsupported reporter: ${reporterName}. Use \"console\".`);\n return;\n }\n\n const apiBaseUrl = options?.apiBaseUrl ?? process.env.BASE_URL;\n const uiBaseUrl = options?.uiBaseUrl ?? process.env.FRONTEND_BASE_URL;\n const headless = options?.headless ?? true;\n const uiTimeoutMs =\n options?.uiTimeoutMs\n ?? toPositiveNumber(process.env.UI_TIMEOUT_MS)\n ?? toPositiveNumber(this.settingService.getConfigValue<SolidCoreSetting>('uiTestDefaultTimeoutMs'));\n const uiNavigationTimeoutMs =\n options?.uiNavigationTimeoutMs\n ?? toPositiveNumber(process.env.UI_NAVIGATION_TIMEOUT_MS)\n ?? toPositiveNumber(this.settingService.getConfigValue<SolidCoreSetting>('uiTestNavigationTimeoutMs'));\n const printApiLogs = options?.printApiLogs ?? false;\n\n const webhookUrl = process.env.SOLIDCTL_WEBHOOK_URL;\n const runName = options?.runName ?? `run-${Date.now()}`;\n const reporter = webhookUrl\n ? new WebhookReporter(webhookUrl, runName)\n : new ConsoleReporter();\n\n try {\n await runFromMetadata({\n metadata: metadata as TestingMetadata,\n scenarioIds,\n includeTags,\n skipScenarioIds,\n reporter,\n api: apiBaseUrl ? { baseUrl: apiBaseUrl } : undefined,\n ui: {\n baseUrl: uiBaseUrl,\n headless,\n defaultTimeoutMs: uiTimeoutMs,\n navigationTimeoutMs: uiNavigationTimeoutMs,\n },\n defaults: {\n timeoutMs: options?.timeoutMs,\n retries: options?.retries,\n },\n options: { printApiLogs },\n specs: specEntries.length\n ? (registry) => loadSpecRegistrations(specEntries, metadataPath, registry)\n : undefined,\n });\n } catch (err: any) {\n this.logger.error('Run tests command failed');\n console.error('Run tests command failed');\n process.exitCode = 1;\n } finally {\n if (reporter instanceof WebhookReporter) {\n await reporter.flush(Number(process.exitCode ?? 0));\n }\n }\n return;\n } catch (err: any) {\n this.logger.error('Run tests command failed');\n console.error('Run tests command failed');\n process.exitCode = 1;\n return;\n }\n }\n\n @Option({\n flags: '-m, --module [module name]',\n description: 'Module name to load metadata from.',\n required: false,\n })\n parseModule(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--scenario-ids [ids]',\n description: 'Comma-separated list of scenario ids to run.',\n required: false,\n })\n parseScenarioIds(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--include-tags [tags]',\n description: 'Comma-separated list of tags; scenario must include all.',\n required: false,\n })\n parseIncludeTags(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--skip-scenario-ids [ids]',\n description: 'Comma-separated list of scenario ids to skip.',\n required: false,\n })\n parseSkipScenarioIds(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--reporter [name]',\n description: 'Reporter name (currently only \"console\").',\n required: false,\n })\n parseReporter(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--list-specs [true|false]',\n description: 'List registered test specs and exit.',\n required: false,\n })\n parseListSpecs(val?: string): boolean {\n if (val === undefined) return true;\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--print-api-logs [true|false]',\n description: 'Print full API request/response logs for api.request steps.',\n required: false,\n })\n parsePrintApiLogs(val?: string): boolean {\n if (val === undefined) return true;\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--api-base-url [url]',\n description: 'API base URL (defaults to process.env.BASE_URL).',\n required: false,\n })\n parseApiBaseUrl(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--ui-base-url [url]',\n description: 'UI base URL (defaults to process.env.FRONTEND_BASE_URL).',\n required: false,\n })\n parseUiBaseUrl(val: string): string {\n return val;\n }\n\n @Option({\n flags: '--headless [true|false]',\n description: 'Run UI browser in headless mode (default: true).',\n required: false,\n })\n parseHeadless(val: string): boolean {\n return val === 'false' ? false : true;\n }\n\n @Option({\n flags: '--ui-timeout-ms [number]',\n description:\n 'Default timeout in ms for UI steps (waits, clicks, fills). Defaults to process.env.UI_TIMEOUT_MS, then the uiTestDefaultTimeoutMs setting, then 30000.',\n required: false,\n })\n parseUiTimeoutMs(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--ui-navigation-timeout-ms [number]',\n description:\n 'Default timeout in ms for ui.goto navigation. Defaults to process.env.UI_NAVIGATION_TIMEOUT_MS, then the uiTestNavigationTimeoutMs setting, then --ui-timeout-ms.',\n required: false,\n })\n parseUiNavigationTimeoutMs(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--timeout-ms [number]',\n description: 'Default scenario timeout in milliseconds.',\n required: false,\n })\n parseTimeoutMs(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--retries [number]',\n description: 'Default scenario retries.',\n required: false,\n })\n parseRetries(val: string): number {\n return Number(val);\n }\n\n @Option({\n flags: '--run-name [name]',\n description: 'Logical name for this test run (used by webhook reporter).',\n required: false,\n })\n parseRunName(val: string): string {\n return val;\n }\n}\n\nfunction splitCsv(value?: string): string[] | undefined {\n if (!value) return undefined;\n const items = value\n .split(',')\n .map((item) => item.trim())\n .filter(Boolean);\n return items.length ? items : undefined;\n}\n\n// Accepts unknown because settings come back already parsed as numbers, while env\n// vars arrive as strings.\nfunction toPositiveNumber(value?: unknown): number | undefined {\n if (value === null || value === undefined || value === '') return undefined;\n const parsed = Number(value);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction resolveSpecPath(entry: string, metadataPath: string): string {\n if (path.isAbsolute(entry)) {\n return entry;\n }\n if (entry.startsWith('.')) {\n return path.resolve(path.dirname(metadataPath), entry);\n }\n return path.resolve(process.cwd(), entry);\n}\n\nfunction loadSpecRegistrations(entries: string[], metadataPath: string, registry: SpecRegistry): void {\n for (const entry of entries) {\n const resolved = resolveSpecPath(entry, metadataPath);\n let mod: any;\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n mod = require(resolved);\n } catch (err: any) {\n const message = err?.message ?? String(err);\n throw new Error(\n `Failed to load test spec module \"${entry}\" resolved to \"${resolved}\": ${message}`,\n );\n }\n const register = mod?.registerTestSpecs ?? mod?.default ?? mod;\n if (typeof register !== 'function') {\n throw new Error(\n `Test spec module \"${entry}\" did not export a register function (expected \"registerTestSpecs\" or default export).`,\n );\n }\n register(registry);\n }\n}\nfunction printSpecList(specIds: string[]): void {\n if (!specIds.length) {\n console.log('No test specs registered.');\n return;\n }\n console.log('Registered test specs:');\n for (const id of specIds) {\n console.log(`- ${id}`);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatter-message.constants.d.ts","sourceRoot":"","sources":["../../src/constants/chatter-message.constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chatter-message.constants.d.ts","sourceRoot":"","sources":["../../src/constants/chatter-message.constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;CAO1B,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAUX,eAAO,MAAM,2BAA2B,6BAAsB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CHATTER_MESSAGE_STATUS = exports.CHATTER_MESSAGE_SUBTYPE = exports.CHATTER_MESSAGE_TYPE = void 0;
|
|
3
|
+
exports.CHATTER_MESSAGE_USER_FIELDS = exports.CHATTER_MESSAGE_STATUS = exports.CHATTER_MESSAGE_SUBTYPE = exports.CHATTER_MESSAGE_TYPE = void 0;
|
|
4
|
+
const user_constants_1 = require("./user.constants");
|
|
4
5
|
exports.CHATTER_MESSAGE_TYPE = {
|
|
5
6
|
AUDIT: 'audit',
|
|
6
7
|
CUSTOM: 'custom',
|
|
@@ -17,4 +18,5 @@ exports.CHATTER_MESSAGE_STATUS = {
|
|
|
17
18
|
PENDING: 'pending',
|
|
18
19
|
COMPLETED: 'completed',
|
|
19
20
|
};
|
|
21
|
+
exports.CHATTER_MESSAGE_USER_FIELDS = user_constants_1.USER_SUMMARY_FIELDS;
|
|
20
22
|
//# sourceMappingURL=chatter-message.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatter-message.constants.js","sourceRoot":"","sources":["../../src/constants/chatter-message.constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"chatter-message.constants.js","sourceRoot":"","sources":["../../src/constants/chatter-message.constants.ts"],"names":[],"mappings":";;;AAAA,qDAAmE;AAEtD,QAAA,oBAAoB,GAAG;IAChC,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACV,CAAC;AAEE,QAAA,uBAAuB,GAAG;IACnC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACN,CAAC;AAEE,QAAA,sBAAsB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;CAChB,CAAC;AAUE,QAAA,2BAA2B,GAAG,oCAAmB,CAAC","sourcesContent":["import { USER_SUMMARY_FIELDS } from 'src/constants/user.constants';\n\nexport const CHATTER_MESSAGE_TYPE = {\n AUDIT: 'audit',\n CUSTOM: 'custom',\n} as const;\n\nexport const CHATTER_MESSAGE_SUBTYPE = {\n AUDIT_INSERT: 'audit_insert',\n AUDIT_UPDATE: 'audit_update',\n AUDIT_DELETE: 'audit_delete',\n CUSTOM: 'custom',\n NOTE: 'note',\n TASK: 'task',\n} as const;\n\nexport const CHATTER_MESSAGE_STATUS = {\n PENDING: 'pending',\n COMPLETED: 'completed',\n} as const;\n\n/**\n * Columns of the message author exposed by the chatter APIs.\n *\n * The chatter panel renders `fullName` (name label + initials avatar) and uses `id`\n * for the own-note edit check; the admin list/form/tree views display `fullName` via\n * each view's `coModelFieldToDisplay`. That is exactly the platform-wide summary\n * shape, so this is an alias rather than a second list to keep in step.\n */\nexport const CHATTER_MESSAGE_USER_FIELDS = USER_SUMMARY_FIELDS;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.constants.d.ts","sourceRoot":"","sources":["../../src/constants/user.constants.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,mBAAmB,6BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.constants.js","sourceRoot":"","sources":["../../src/constants/user.constants.ts"],"names":[],"mappings":";;;AAYa,QAAA,mBAAmB,GAAG,CAAC,IAAI,EAAE,UAAU,CAAU,CAAC","sourcesContent":["/**\n * The columns of a `User` that are safe to embed in another entity's API response.\n *\n * Whenever a user is attached to a record the caller asked for - a `createdBy` /\n * `updatedBy` populate, a chatter message author - the caller wants to display who it\n * was, not to read their profile. Everything else on `User` is PII (email, mobile),\n * authz metadata (roles, apiKeys) or secret, and the embedded user is frequently\n * someone the viewer has no other visibility of.\n *\n * `fullName` is nullable; consumers that need a fallback should use the record's own\n * context rather than widening this list.\n */\nexport const USER_SUMMARY_FIELDS = ['id', 'fullName'] as const;\n"]}
|
|
@@ -16,6 +16,11 @@ export declare class ChatterMessageController {
|
|
|
16
16
|
records: import("..").ChatterMessage[];
|
|
17
17
|
}>;
|
|
18
18
|
findMany(query: any): Promise<any>;
|
|
19
|
+
getMentionableUsers(query: any): Promise<{
|
|
20
|
+
id: number;
|
|
21
|
+
username: string;
|
|
22
|
+
fullName: string;
|
|
23
|
+
}[]>;
|
|
19
24
|
findOne(id: string, query: any): Promise<import("..").ChatterMessage>;
|
|
20
25
|
postMessage(postDto: PostChatterMessageDto, files: Array<Express.Multer.File>): Promise<import("..").ChatterMessage>;
|
|
21
26
|
markCompleted(id: string): Promise<import("..").ChatterMessage>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatter-message.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/chatter-message.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAUtF,qBAEa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAsDrD,kBAAkB,CACH,QAAQ,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAC9B,KAAK,EAAE,GAAG;;;;;;;;;;;IAgBf,QAAQ,CAAU,KAAK,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"chatter-message.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/chatter-message.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAUtF,qBAEa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAsDrD,kBAAkB,CACH,QAAQ,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAC9B,KAAK,EAAE,GAAG;;;;;;;;;;;IAgBf,QAAQ,CAAU,KAAK,EAAE,GAAG;IAQ5B,mBAAmB,CAAU,KAAK,EAAE,GAAG;;;;;IAMvC,OAAO,CAAc,EAAE,EAAE,MAAM,EAAW,KAAK,EAAE,GAAG;IAmBpD,WAAW,CACP,OAAO,EAAE,qBAAqB,EACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAO9C,aAAa,CAAc,EAAE,EAAE,MAAM;IAOrC,uBAAuB,CACd,EAAE,EAAE,MAAM,EACf,SAAS,EAAE,2BAA2B,EAC7B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;CAIrD"}
|
|
@@ -35,6 +35,9 @@ let ChatterMessageController = class ChatterMessageController {
|
|
|
35
35
|
async findMany(query) {
|
|
36
36
|
return this.service.find(query);
|
|
37
37
|
}
|
|
38
|
+
async getMentionableUsers(query) {
|
|
39
|
+
return this.service.getMentionableUsers(query?.search, query?.limit ? +query.limit : undefined);
|
|
40
|
+
}
|
|
38
41
|
async findOne(id, query) {
|
|
39
42
|
return this.service.findOne(+id, query);
|
|
40
43
|
}
|
|
@@ -87,6 +90,17 @@ __decorate([
|
|
|
87
90
|
__metadata("design:paramtypes", [Object]),
|
|
88
91
|
__metadata("design:returntype", Promise)
|
|
89
92
|
], ChatterMessageController.prototype, "findMany", null);
|
|
93
|
+
__decorate([
|
|
94
|
+
(0, swagger_1.ApiBearerAuth)("jwt"),
|
|
95
|
+
(0, swagger_1.ApiQuery)({ name: 'search', required: false, type: String }),
|
|
96
|
+
(0, swagger_1.ApiQuery)({ name: 'limit', required: false, type: Number }),
|
|
97
|
+
(0, common_1.Get)('mentionable-users'),
|
|
98
|
+
openapi.ApiResponse({ status: 200 }),
|
|
99
|
+
__param(0, (0, common_1.Query)()),
|
|
100
|
+
__metadata("design:type", Function),
|
|
101
|
+
__metadata("design:paramtypes", [Object]),
|
|
102
|
+
__metadata("design:returntype", Promise)
|
|
103
|
+
], ChatterMessageController.prototype, "getMentionableUsers", null);
|
|
90
104
|
__decorate([
|
|
91
105
|
(0, swagger_1.ApiBearerAuth)("jwt"),
|
|
92
106
|
(0, common_1.Get)(':id'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatter-message.controller.js","sourceRoot":"","sources":["../../src/controllers/chatter-message.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { ChatterMessageService } from '../services/chatter-message.service';\nimport { CreateChatterMessageDto } from '../dtos/create-chatter-message.dto';\nimport { UpdateChatterMessageDto } from '../dtos/update-chatter-message.dto';\nimport { PostChatterMessageDto } from '../dtos/post-chatter-message.dto';\nimport { UpdateChatterNoteMessageDto } from '../dtos/update-chatter-note-message.dto';\nimport { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';\nimport { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';\nimport { Public } from 'src/decorators/public.decorator';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('chatter-message')\nexport class ChatterMessageController {\n constructor(private readonly service: ChatterMessageService) {}\n\n // @ApiBearerAuth(\"jwt\")\n // @Post()\n // @UseInterceptors(AnyFilesInterceptor())\n // create(@Body() createDto: CreateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.create(createDto, files);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Post('/bulk')\n // @UseInterceptors(AnyFilesInterceptor())\n // insertMany(@Body() createDtos: CreateChatterMessageDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {\n // return this.service.insertMany(createDtos, filesArray);\n // }\n\n\n // @ApiBearerAuth(\"jwt\")\n // @Put(':id')\n // @UseInterceptors(AnyFilesInterceptor())\n // update(@Param('id') id: number, @Body() updateDto: UpdateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.update(id, updateDto, files);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Patch(':id')\n // @UseInterceptors(AnyFilesInterceptor())\n // partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.update(id, updateDto, files, true);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Post('/bulk-recover')\n // async recoverMany(@Body() ids: number[]) {\n // return this.service.recoverMany(ids);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Get('/recover/:id')\n // async recover(@Param('id') id: number) {\n // return this.service.recover(id);\n // }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/getChatterMessages/:entityId/:entityName')\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array })\n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n async getChatterMessages(\n @Param('entityId') entityId: number,\n @Param('entityName') entityName: string,\n @Query() query: any\n ) {\n return this.service.getChatterMessages(entityId, entityName, query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array }) \n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any) { \n return this.service.find(query); \n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any) {\n return this.service.findOne(+id, query);\n }\n\n // @ApiBearerAuth(\"jwt\")\n // @Delete('/bulk')\n // async deleteMany(@Body() ids: number[]) {\n // return this.service.deleteMany(ids);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Delete(':id')\n // async delete(@Param('id') id: number) {\n // return this.service.delete(id);\n // }\n\n @ApiBearerAuth(\"jwt\")\n @Post('post')\n @UseInterceptors(AnyFilesInterceptor())\n async postMessage(\n @Body() postDto: PostChatterMessageDto,\n @UploadedFiles() files: Array<Express.Multer.File>,\n ) {\n return this.service.postMessage(postDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id/complete')\n async markCompleted(@Param('id') id: string) {\n return this.service.markCompleted(+id);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id/note')\n @UseInterceptors(AnyFilesInterceptor())\n async updateCustomNoteMessage(\n @Param('id') id: string,\n @Body() updateDto: UpdateChatterNoteMessageDto,\n @UploadedFiles() files: Array<Express.Multer.File>,\n ) {\n return this.service.updateCustomNoteMessage(+id, updateDto, files);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"chatter-message.controller.js","sourceRoot":"","sources":["../../src/controllers/chatter-message.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA+H;AAC/H,+DAA+D;AAC/D,6CAAmE;AACnE,iFAA4E;AAG5E,+EAAyE;AACzE,6FAAsF;AAKtF,IAAK,eAGJ;AAHD,WAAK,eAAe;IAClB,0CAAuB,CAAA;IACvB,0CAAuB,CAAA;AACzB,CAAC,EAHI,eAAe,KAAf,eAAe,QAGnB;AAIM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YAA6B,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAsDzD,AAAN,KAAK,CAAC,kBAAkB,CACH,QAAgB,EACd,UAAkB,EAC9B,KAAU;QAEnB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAaK,AAAN,KAAK,CAAC,QAAQ,CAAU,KAAU;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAMK,AAAN,KAAK,CAAC,mBAAmB,CAAU,KAAU;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;IAIK,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU,EAAW,KAAU;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAiBK,AAAN,KAAK,CAAC,WAAW,CACP,OAA8B,EACrB,KAAiC;QAElD,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAIK,AAAN,KAAK,CAAC,aAAa,CAAc,EAAU;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAKK,AAAN,KAAK,CAAC,uBAAuB,CACd,EAAU,EACf,SAAsC,EAC7B,KAAiC;QAElD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;CACF,CAAA;AAlIY,4DAAwB;AAuD7B;IAXL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,YAAG,EAAC,2CAA2C,CAAC;IAChD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC7E,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjE,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;IAEzD,WAAA,IAAA,cAAK,EAAC,UAAU,CAAC,CAAA;IACjB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,GAAE,CAAA;;;;kEAGT;AAaK;IAXL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC7E,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjE,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3D,IAAA,YAAG,GAAE;;IACU,WAAA,IAAA,cAAK,GAAE,CAAA;;;;wDAEtB;AAMK;IAJL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3D,IAAA,kBAAQ,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1D,IAAA,YAAG,EAAC,mBAAmB,CAAC;;IACE,WAAA,IAAA,cAAK,GAAE,CAAA;;;;mEAEjC;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,YAAG,EAAC,KAAK,CAAC;;IACI,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,cAAK,GAAE,CAAA;;;;uDAE9C;AAiBK;IAHL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IAEpC,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,sBAAa,GAAE,CAAA;;qCADC,gDAAqB;QACd,KAAK;;2DAG9B;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,cAAK,EAAC,cAAc,CAAC;;IACD,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;6DAE/B;AAKK;IAHL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,cAAK,EAAC,UAAU,CAAC;IACjB,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;;IAEpC,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IACX,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,sBAAa,GAAE,CAAA;;6CADG,6DAA2B;QACtB,KAAK;;uEAG9B;mCAjIU,wBAAwB;IAFpC,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,mBAAU,EAAC,iBAAiB,CAAC;qCAEU,+CAAqB;GADhD,wBAAwB,CAkIpC","sourcesContent":["import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';\nimport { AnyFilesInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';\nimport { ChatterMessageService } from '../services/chatter-message.service';\nimport { CreateChatterMessageDto } from '../dtos/create-chatter-message.dto';\nimport { UpdateChatterMessageDto } from '../dtos/update-chatter-message.dto';\nimport { PostChatterMessageDto } from '../dtos/post-chatter-message.dto';\nimport { UpdateChatterNoteMessageDto } from '../dtos/update-chatter-note-message.dto';\nimport { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';\nimport { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';\nimport { Public } from 'src/decorators/public.decorator';\n\nenum ShowSoftDeleted {\n INCLUSIVE = \"inclusive\",\n EXCLUSIVE = \"exclusive\",\n}\n\n@ApiTags('Solid Core')\n@Controller('chatter-message')\nexport class ChatterMessageController {\n constructor(private readonly service: ChatterMessageService) {}\n\n // @ApiBearerAuth(\"jwt\")\n // @Post()\n // @UseInterceptors(AnyFilesInterceptor())\n // create(@Body() createDto: CreateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.create(createDto, files);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Post('/bulk')\n // @UseInterceptors(AnyFilesInterceptor())\n // insertMany(@Body() createDtos: CreateChatterMessageDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {\n // return this.service.insertMany(createDtos, filesArray);\n // }\n\n\n // @ApiBearerAuth(\"jwt\")\n // @Put(':id')\n // @UseInterceptors(AnyFilesInterceptor())\n // update(@Param('id') id: number, @Body() updateDto: UpdateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.update(id, updateDto, files);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Patch(':id')\n // @UseInterceptors(AnyFilesInterceptor())\n // partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateChatterMessageDto, @UploadedFiles() files: Array<Express.Multer.File>) {\n // return this.service.update(id, updateDto, files, true);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Post('/bulk-recover')\n // async recoverMany(@Body() ids: number[]) {\n // return this.service.recoverMany(ids);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Get('/recover/:id')\n // async recover(@Param('id') id: number) {\n // return this.service.recover(id);\n // }\n\n @ApiBearerAuth(\"jwt\")\n @Get('/getChatterMessages/:entityId/:entityName')\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array })\n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n async getChatterMessages(\n @Param('entityId') entityId: number,\n @Param('entityName') entityName: string,\n @Query() query: any\n ) {\n return this.service.getChatterMessages(entityId, entityName, query);\n }\n\n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @ApiQuery({ name: 'offset', required: false, type: Number })\n @ApiQuery({ name: 'fields', required: false, type: Array })\n @ApiQuery({ name: 'sort', required: false, type: Array }) \n @ApiQuery({ name: 'groupBy', required: false, type: Array })\n @ApiQuery({ name: 'populate', required: false, type: Array })\n @ApiQuery({ name: 'populateMedia', required: false, type: Array })\n @ApiQuery({ name: 'filters', required: false, type: Array })\n @Get()\n async findMany(@Query() query: any) { \n return this.service.find(query); \n }\n\n @ApiBearerAuth(\"jwt\")\n @ApiQuery({ name: 'search', required: false, type: String })\n @ApiQuery({ name: 'limit', required: false, type: Number })\n @Get('mentionable-users')\n async getMentionableUsers(@Query() query: any) {\n return this.service.getMentionableUsers(query?.search, query?.limit ? +query.limit : undefined);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Get(':id')\n async findOne(@Param('id') id: string, @Query() query: any) {\n return this.service.findOne(+id, query);\n }\n\n // @ApiBearerAuth(\"jwt\")\n // @Delete('/bulk')\n // async deleteMany(@Body() ids: number[]) {\n // return this.service.deleteMany(ids);\n // }\n\n // @ApiBearerAuth(\"jwt\")\n // @Delete(':id')\n // async delete(@Param('id') id: number) {\n // return this.service.delete(id);\n // }\n\n @ApiBearerAuth(\"jwt\")\n @Post('post')\n @UseInterceptors(AnyFilesInterceptor())\n async postMessage(\n @Body() postDto: PostChatterMessageDto,\n @UploadedFiles() files: Array<Express.Multer.File>,\n ) {\n return this.service.postMessage(postDto, files);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id/complete')\n async markCompleted(@Param('id') id: string) {\n return this.service.markCompleted(+id);\n }\n\n @ApiBearerAuth(\"jwt\")\n @Patch(':id/note')\n @UseInterceptors(AnyFilesInterceptor())\n async updateCustomNoteMessage(\n @Param('id') id: string,\n @Body() updateDto: UpdateChatterNoteMessageDto,\n @UploadedFiles() files: Array<Express.Multer.File>,\n ) {\n return this.service.updateCustomNoteMessage(+id, updateDto, files);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAoB7D,qBAGa,IAAK,SAAQ,YAAY;IAIlC,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,KAAK,EAAE,MAAM,CAAC;IAKd,MAAM,EAAE,MAAM,CAAC;IAIf,QAAQ,EAAE,MAAM,CAAC;IAIjB,mBAAmB,EAAE,OAAO,CAAQ;IAIpC,iBAAiB,EAAE,MAAM,CAAW;IAIpC,UAAU,EAAE,MAAM,CAAC;IAInB,iBAAiB,EAAE,MAAM,CAAC;IAI1B,QAAQ,EAAE,MAAM,CAAC;IAIjB,oBAAoB,EAAE,MAAM,CAAC;IAI7B,UAAU,EAAE,MAAM,CAAC;IAInB,mBAAmB,EAAE,MAAM,CAAC;IAI5B,sBAAsB,EAAE,MAAM,CAAC;IAI/B,OAAO,EAAE,MAAM,CAAC;IAIhB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,WAAW,EAAE,MAAM,CAAC;IAIpB,oBAAoB,EAAE,MAAM,CAAC;IAI7B,uBAAuB,EAAE,MAAM,CAAC;IAIhC,0BAA0B,EAAE,MAAM,CAAC;IAInC,mCAAmC,EAAE,MAAM,CAAC;IAI5C,sCAAsC,EAAE,MAAM,CAAC;IAK/C,MAAM,EAAE,OAAO,CAAQ;IAIvB,yBAAyB,EAAE,IAAI,CAAC;IAIhC,iCAAiC,EAAE,MAAM,CAAC;IAI1C,0CAA0C,EAAE,IAAI,CAAC;IAIjD,6BAA6B,EAAE,IAAI,CAAC;IAIpC,oCAAoC,EAAE,MAAM,CAAC;IAI7C,6CAA6C,EAAE,IAAI,CAAC;IAIpD,8BAA8B,EAAE,IAAI,CAAC;IAIrC,qCAAqC,EAAE,MAAM,CAAC;IAI9C,8CAA8C,EAAE,IAAI,CAAC;IAIrD,sBAAsB,EAAE,IAAI,CAAC;IAI7B,6BAA6B,EAAE,MAAM,CAAC;IAItC,sCAAsC,EAAE,IAAI,CAAC;IAI7C,uBAAuB,EAAE,IAAI,CAAC;IAI9B,8BAA8B,EAAE,MAAM,CAAC;IAIvC,uCAAuC,EAAE,IAAI,CAAC;IAI9C,aAAa,EAAE,MAAM,CAAC;IAKtB,KAAK,EAAE,YAAY,EAAE,CAAC;IAItB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAIrC,cAAc,EAAE,MAAM,CAAC;IAIvB,qBAAqB,EAAE,MAAM,CAAC;IAI9B,UAAU,EAAE,IAAI,CAAC;IAIjB,mBAAmB,EAAE,MAAM,CAAK;IAGhC,MAAM,EAAE,GAAG,CAAC;IAIZ,0BAA0B,EAAE,OAAO,CAAS;IAI5C,OAAO,EAAE,UAAU,EAAE,CAAC;CAEzB"}
|
|
@@ -57,6 +57,7 @@ __decorate([
|
|
|
57
57
|
], User.prototype, "mobile", void 0);
|
|
58
58
|
__decorate([
|
|
59
59
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
60
|
+
(0, class_transformer_1.Exclude)(),
|
|
60
61
|
__metadata("design:type", String)
|
|
61
62
|
], User.prototype, "password", void 0);
|
|
62
63
|
__decorate([
|
|
@@ -66,66 +67,82 @@ __decorate([
|
|
|
66
67
|
], User.prototype, "forcePasswordChange", void 0);
|
|
67
68
|
__decorate([
|
|
68
69
|
(0, typeorm_1.Column)({ type: "varchar", default: "local" }),
|
|
70
|
+
(0, class_transformer_1.Exclude)(),
|
|
69
71
|
__metadata("design:type", String)
|
|
70
72
|
], User.prototype, "lastLoginProvider", void 0);
|
|
71
73
|
__decorate([
|
|
72
74
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
75
|
+
(0, class_transformer_1.Exclude)(),
|
|
73
76
|
__metadata("design:type", String)
|
|
74
77
|
], User.prototype, "accessCode", void 0);
|
|
75
78
|
__decorate([
|
|
76
79
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
80
|
+
(0, class_transformer_1.Exclude)(),
|
|
77
81
|
__metadata("design:type", String)
|
|
78
82
|
], User.prototype, "googleAccessToken", void 0);
|
|
79
83
|
__decorate([
|
|
80
84
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
85
|
+
(0, class_transformer_1.Exclude)(),
|
|
81
86
|
__metadata("design:type", String)
|
|
82
87
|
], User.prototype, "googleId", void 0);
|
|
83
88
|
__decorate([
|
|
84
89
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
90
|
+
(0, class_transformer_1.Exclude)(),
|
|
85
91
|
__metadata("design:type", String)
|
|
86
92
|
], User.prototype, "googleProfilePicture", void 0);
|
|
87
93
|
__decorate([
|
|
88
94
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
95
|
+
(0, class_transformer_1.Exclude)(),
|
|
89
96
|
__metadata("design:type", String)
|
|
90
97
|
], User.prototype, "facebookId", void 0);
|
|
91
98
|
__decorate([
|
|
92
99
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
100
|
+
(0, class_transformer_1.Exclude)(),
|
|
93
101
|
__metadata("design:type", String)
|
|
94
102
|
], User.prototype, "facebookAccessToken", void 0);
|
|
95
103
|
__decorate([
|
|
96
104
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
105
|
+
(0, class_transformer_1.Exclude)(),
|
|
97
106
|
__metadata("design:type", String)
|
|
98
107
|
], User.prototype, "facebookProfilePicture", void 0);
|
|
99
108
|
__decorate([
|
|
100
109
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
110
|
+
(0, class_transformer_1.Exclude)(),
|
|
101
111
|
__metadata("design:type", String)
|
|
102
112
|
], User.prototype, "appleId", void 0);
|
|
103
113
|
__decorate([
|
|
104
114
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
115
|
+
(0, class_transformer_1.Exclude)(),
|
|
105
116
|
__metadata("design:type", String)
|
|
106
117
|
], User.prototype, "appleAccessToken", void 0);
|
|
107
118
|
__decorate([
|
|
108
119
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
120
|
+
(0, class_transformer_1.Exclude)(),
|
|
109
121
|
__metadata("design:type", String)
|
|
110
122
|
], User.prototype, "microsoftId", void 0);
|
|
111
123
|
__decorate([
|
|
112
124
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
125
|
+
(0, class_transformer_1.Exclude)(),
|
|
113
126
|
__metadata("design:type", String)
|
|
114
127
|
], User.prototype, "microsoftAccessToken", void 0);
|
|
115
128
|
__decorate([
|
|
116
129
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
130
|
+
(0, class_transformer_1.Exclude)(),
|
|
117
131
|
__metadata("design:type", String)
|
|
118
132
|
], User.prototype, "microsoftProfilePicture", void 0);
|
|
119
133
|
__decorate([
|
|
120
134
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
135
|
+
(0, class_transformer_1.Exclude)(),
|
|
121
136
|
__metadata("design:type", String)
|
|
122
137
|
], User.prototype, "microsoftActiveDirectoryId", void 0);
|
|
123
138
|
__decorate([
|
|
124
139
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
140
|
+
(0, class_transformer_1.Exclude)(),
|
|
125
141
|
__metadata("design:type", String)
|
|
126
142
|
], User.prototype, "microsoftActiveDirectoryAccessToken", void 0);
|
|
127
143
|
__decorate([
|
|
128
144
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
145
|
+
(0, class_transformer_1.Exclude)(),
|
|
129
146
|
__metadata("design:type", String)
|
|
130
147
|
], User.prototype, "microsoftActiveDirectoryProfilePicture", void 0);
|
|
131
148
|
__decorate([
|
|
@@ -136,62 +153,77 @@ __decorate([
|
|
|
136
153
|
], User.prototype, "active", void 0);
|
|
137
154
|
__decorate([
|
|
138
155
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
156
|
+
(0, class_transformer_1.Exclude)(),
|
|
139
157
|
__metadata("design:type", Date)
|
|
140
158
|
], User.prototype, "forgotPasswordConfirmedAt", void 0);
|
|
141
159
|
__decorate([
|
|
142
160
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
161
|
+
(0, class_transformer_1.Exclude)(),
|
|
143
162
|
__metadata("design:type", String)
|
|
144
163
|
], User.prototype, "verificationTokenOnForgotPassword", void 0);
|
|
145
164
|
__decorate([
|
|
146
165
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
166
|
+
(0, class_transformer_1.Exclude)(),
|
|
147
167
|
__metadata("design:type", Date)
|
|
148
168
|
], User.prototype, "verificationTokenOnForgotPasswordExpiresAt", void 0);
|
|
149
169
|
__decorate([
|
|
150
170
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
171
|
+
(0, class_transformer_1.Exclude)(),
|
|
151
172
|
__metadata("design:type", Date)
|
|
152
173
|
], User.prototype, "emailVerifiedOnRegistrationAt", void 0);
|
|
153
174
|
__decorate([
|
|
154
175
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
176
|
+
(0, class_transformer_1.Exclude)(),
|
|
155
177
|
__metadata("design:type", String)
|
|
156
178
|
], User.prototype, "emailVerificationTokenOnRegistration", void 0);
|
|
157
179
|
__decorate([
|
|
158
180
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
181
|
+
(0, class_transformer_1.Exclude)(),
|
|
159
182
|
__metadata("design:type", Date)
|
|
160
183
|
], User.prototype, "emailVerificationTokenOnRegistrationExpiresAt", void 0);
|
|
161
184
|
__decorate([
|
|
162
185
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
186
|
+
(0, class_transformer_1.Exclude)(),
|
|
163
187
|
__metadata("design:type", Date)
|
|
164
188
|
], User.prototype, "mobileVerifiedOnRegistrationAt", void 0);
|
|
165
189
|
__decorate([
|
|
166
190
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
191
|
+
(0, class_transformer_1.Exclude)(),
|
|
167
192
|
__metadata("design:type", String)
|
|
168
193
|
], User.prototype, "mobileVerificationTokenOnRegistration", void 0);
|
|
169
194
|
__decorate([
|
|
170
195
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
196
|
+
(0, class_transformer_1.Exclude)(),
|
|
171
197
|
__metadata("design:type", Date)
|
|
172
198
|
], User.prototype, "mobileVerificationTokenOnRegistrationExpiresAt", void 0);
|
|
173
199
|
__decorate([
|
|
174
200
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
201
|
+
(0, class_transformer_1.Exclude)(),
|
|
175
202
|
__metadata("design:type", Date)
|
|
176
203
|
], User.prototype, "emailVerifiedOnLoginAt", void 0);
|
|
177
204
|
__decorate([
|
|
178
205
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
206
|
+
(0, class_transformer_1.Exclude)(),
|
|
179
207
|
__metadata("design:type", String)
|
|
180
208
|
], User.prototype, "emailVerificationTokenOnLogin", void 0);
|
|
181
209
|
__decorate([
|
|
182
210
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
211
|
+
(0, class_transformer_1.Exclude)(),
|
|
183
212
|
__metadata("design:type", Date)
|
|
184
213
|
], User.prototype, "emailVerificationTokenOnLoginExpiresAt", void 0);
|
|
185
214
|
__decorate([
|
|
186
215
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
216
|
+
(0, class_transformer_1.Exclude)(),
|
|
187
217
|
__metadata("design:type", Date)
|
|
188
218
|
], User.prototype, "mobileVerifiedOnLoginAt", void 0);
|
|
189
219
|
__decorate([
|
|
190
220
|
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
221
|
+
(0, class_transformer_1.Exclude)(),
|
|
191
222
|
__metadata("design:type", String)
|
|
192
223
|
], User.prototype, "mobileVerificationTokenOnLogin", void 0);
|
|
193
224
|
__decorate([
|
|
194
225
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
226
|
+
(0, class_transformer_1.Exclude)(),
|
|
195
227
|
__metadata("design:type", Date)
|
|
196
228
|
], User.prototype, "mobileVerificationTokenOnLoginExpiresAt", void 0);
|
|
197
229
|
__decorate([
|
|
@@ -207,17 +239,21 @@ __decorate([
|
|
|
207
239
|
], User.prototype, "roles", void 0);
|
|
208
240
|
__decorate([
|
|
209
241
|
(0, typeorm_1.OneToMany)(() => user_view_metadata_entity_1.UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true }),
|
|
242
|
+
(0, class_transformer_1.Exclude)(),
|
|
210
243
|
__metadata("design:type", Array)
|
|
211
244
|
], User.prototype, "userViewMetadata", void 0);
|
|
212
245
|
__decorate([
|
|
246
|
+
(0, class_transformer_1.Exclude)(),
|
|
213
247
|
(0, typeorm_1.Column)({ type: "varchar", default: "bcrypt" }),
|
|
214
248
|
__metadata("design:type", String)
|
|
215
249
|
], User.prototype, "passwordScheme", void 0);
|
|
216
250
|
__decorate([
|
|
251
|
+
(0, class_transformer_1.Exclude)(),
|
|
217
252
|
(0, typeorm_1.Column)({ type: "int", default: 1 }),
|
|
218
253
|
__metadata("design:type", Number)
|
|
219
254
|
], User.prototype, "passwordSchemeVersion", void 0);
|
|
220
255
|
__decorate([
|
|
256
|
+
(0, class_transformer_1.Exclude)(),
|
|
221
257
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
222
258
|
__metadata("design:type", Date)
|
|
223
259
|
], User.prototype, "rehashedAt", void 0);
|