@hahnpro/hpc-api 2026.9.10 → 2026.9.12
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/CHANGELOG.md +10 -0
- package/package.json +1 -1
- package/src/lib/api.d.ts +2 -1
- package/src/lib/api.js +1 -0
- package/src/lib/interfaces/index.d.ts +2 -1
- package/src/lib/interfaces/index.js +3 -1
- package/src/lib/interfaces/knowledge.interface.d.ts +142 -0
- package/src/lib/interfaces/knowledge.interface.js +12 -0
- package/src/lib/interfaces/reference.interface.d.ts +11 -16
- package/src/lib/interfaces/reference.interface.js +7 -1
- package/src/lib/interfaces/resource.interface.d.ts +6 -1
- package/src/lib/interfaces/resource.interface.js +9 -0
- package/src/lib/mock/ai.mock.service.d.ts +3 -1
- package/src/lib/mock/ai.mock.service.js +7 -0
- package/src/lib/mock/api.mock.d.ts +4 -1
- package/src/lib/mock/api.mock.js +2 -0
- package/src/lib/mock/asset.mock.service.d.ts +2 -1
- package/src/lib/mock/asset.mock.service.js +3 -0
- package/src/lib/mock/content.mock.service.d.ts +2 -1
- package/src/lib/mock/content.mock.service.js +3 -0
- package/src/lib/mock/event.mock.service.d.ts +2 -1
- package/src/lib/mock/event.mock.service.js +3 -0
- package/src/lib/mock/index.d.ts +1 -0
- package/src/lib/mock/index.js +1 -0
- package/src/lib/mock/knowledge.mock.service.d.ts +28 -0
- package/src/lib/mock/knowledge.mock.service.js +171 -0
- package/src/lib/mock/logbook.mock.service.d.ts +2 -1
- package/src/lib/mock/logbook.mock.service.js +3 -0
- package/src/lib/mock/object-reference.mock.service.d.ts +7 -8
- package/src/lib/mock/object-reference.mock.service.js +10 -16
- package/src/lib/mock/task.mock.service.d.ts +2 -1
- package/src/lib/mock/task.mock.service.js +3 -0
- package/src/lib/services/ai.service.d.ts +3 -1
- package/src/lib/services/ai.service.js +13 -0
- package/src/lib/services/asset.service.d.ts +2 -1
- package/src/lib/services/asset.service.js +6 -0
- package/src/lib/services/content.service.d.ts +2 -1
- package/src/lib/services/content.service.js +6 -0
- package/src/lib/services/event.service.d.ts +2 -1
- package/src/lib/services/event.service.js +6 -0
- package/src/lib/services/index.d.ts +1 -0
- package/src/lib/services/index.js +1 -0
- package/src/lib/services/knowledge.service.d.ts +22 -0
- package/src/lib/services/knowledge.service.js +50 -0
- package/src/lib/services/logbook.service.d.ts +2 -1
- package/src/lib/services/logbook.service.js +6 -0
- package/src/lib/services/object-reference.service.d.ts +7 -8
- package/src/lib/services/object-reference.service.js +9 -3
- package/src/lib/services/task.service.d.ts +2 -1
- package/src/lib/services/task.service.js +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @hahnpro/hpc-api
|
|
2
2
|
|
|
3
|
+
# 2026.9.12
|
|
4
|
+
|
|
5
|
+
- Added permission verification support for object references, including reference-check endpoints for resources, AI threads, and user messages
|
|
6
|
+
- Added the `PermissionLevel` enum
|
|
7
|
+
- Added pagination and sorting parameters to object-reference queries
|
|
8
|
+
|
|
9
|
+
# 2026.9.11
|
|
10
|
+
|
|
11
|
+
- Added `api.knowledge` client, shared types and mock support for pages, revisions, discovery and lifecycle operations #5262
|
|
12
|
+
|
|
3
13
|
# 2026.9.10
|
|
4
14
|
|
|
5
15
|
- Updated AI interface and added limit to `getValuesOfPeriod` of timeseries service
|
package/package.json
CHANGED
package/src/lib/api.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TimeSeriesValueFeedManagementApi } from './interfaces';
|
|
2
2
|
import { QueueOptions } from './queue';
|
|
3
|
-
import { AiService, AlertService, AssetService, AssetTypesService, AuthzService, ContentService, CrmService, DataspaceService, EndpointService, EventService, FlangeSkillControlService, FlowDeploymentService, FlowFunctionService, FlowModuleService, FlowService, HttpClientService, LabelService, LogbookService, NotificationRuleService, NotificationService, ObjectReferenceService, OrganizationsAdministrationService, OrganizationsResourcesService, OrganizationsService, ProxyService, SearchService, TaskService, TimeSeriesService, UserService, VaultService } from './services';
|
|
3
|
+
import { AiService, AlertService, AssetService, AssetTypesService, AuthzService, ContentService, CrmService, DataspaceService, EndpointService, EventService, FlangeSkillControlService, FlowDeploymentService, FlowFunctionService, FlowModuleService, FlowService, HttpClientService, KnowledgeService, LabelService, LogbookService, NotificationRuleService, NotificationService, ObjectReferenceService, OrganizationsAdministrationService, OrganizationsResourcesService, OrganizationsService, ProxyService, SearchService, TaskService, TimeSeriesService, UserService, VaultService } from './services';
|
|
4
4
|
export declare class API {
|
|
5
5
|
readonly httpClient?: HttpClientService;
|
|
6
6
|
ai: AiService;
|
|
@@ -18,6 +18,7 @@ export declare class API {
|
|
|
18
18
|
flowDeployments: FlowDeploymentService;
|
|
19
19
|
flowFunctions: FlowFunctionService;
|
|
20
20
|
flowModules: FlowModuleService;
|
|
21
|
+
knowledge: KnowledgeService;
|
|
21
22
|
labels: LabelService;
|
|
22
23
|
logbook: LogbookService;
|
|
23
24
|
objectReferences: ObjectReferenceService;
|
package/src/lib/api.js
CHANGED
|
@@ -49,6 +49,7 @@ class API {
|
|
|
49
49
|
this.flowDeployments = new services_1.FlowDeploymentService(this.httpClient);
|
|
50
50
|
this.flowFunctions = new services_1.FlowFunctionService(this.httpClient);
|
|
51
51
|
this.flowModules = new services_1.FlowModuleService(this.httpClient);
|
|
52
|
+
this.knowledge = new services_1.KnowledgeService(this.httpClient);
|
|
52
53
|
this.labels = new services_1.LabelService(this.httpClient);
|
|
53
54
|
this.logbook = new services_1.LogbookService(this.httpClient);
|
|
54
55
|
this.objectReferences = new services_1.ObjectReferenceService(this.httpClient);
|
|
@@ -66,7 +66,7 @@ export { NatsConsumers, natsFlowsPrefix, natsHpcPrefix, NatsStreams } from './na
|
|
|
66
66
|
export { NotificationRuleStatus } from './notification-rule.interface';
|
|
67
67
|
export { OrganizationMembersInviteOrAdd } from './organization.interface';
|
|
68
68
|
export { OwnerType } from './owner.interface';
|
|
69
|
-
export { ObjectReferenceType } from './reference.interface';
|
|
69
|
+
export { ObjectReferenceType, PermissionLevel } from './reference.interface';
|
|
70
70
|
export { arePopulated, CommandType, EventType, isPopulated, PermissionType, ResourceApiPath, resourceApiPathToTypeMap, ResourceType, } from './resource.interface';
|
|
71
71
|
export { ACTIVE_TASK_STATUSES, AssigneeType, buildTaskStatusFilter, INACTIVE_TASK_STATUSES, Priority, TaskStatus } from './task.interface';
|
|
72
72
|
export { RETENTION_VALUES } from './timeseries.interface';
|
|
@@ -77,3 +77,4 @@ export { WebSocketMessageType } from './websockets.interface';
|
|
|
77
77
|
export type { AiThreadListChangedEvent, WebSocketError } from './websockets.interface';
|
|
78
78
|
export * from './authz';
|
|
79
79
|
export * from './crm-autonomy.interface';
|
|
80
|
+
export * from './knowledge.interface';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowDiagram = exports.Flow = exports.NATS_FLOW_TRIGGER_STATUSES = exports.FlowDeployment = exports.UNKOWN_STATES = exports.STOPPED_STATES = exports.RUNNING_STATES = exports.PROCESSING_STATES = exports.FlowDeploymentStatus = exports.ERROR_STATES = exports.TimeSlotStatus = exports.APPLICATION_AREA = exports.eventLevels = exports.EventLevelOverrideWrapper = exports.EventLevel = exports.NotificationEndpointType = exports.NotificationEndpointStatus = exports.NotificationEndpointSpamProtection = exports.DataspaceWorkflowType = exports.DataspaceAllowedResourceTypes = exports.instanceOfTimePeriod = exports.ReturnType = exports.IndexingStatus = exports.ContentAnalysisStatus = exports.BillingResourceType = exports.ChangeAction = exports.DEFAULT_THRESHOLD_CONDITION = exports.DEFAULT_RELATIVE_CONDITION = exports.DEFAULT_DEADMAN_CONDITION = exports.AlertType = exports.AlertStatus = exports.AlertLevel = exports.ToolType = exports.ToolName = exports.ToolMessageStatus = exports.Role = exports.ReturnToReferrerTool = exports.ReferenceType = exports.OneShotTaskId = exports.HandOffTool = exports.FinishReason = exports.ErrorMessageType = exports.AvailableLanguages = exports.AttachmentHandlingMode = exports.ATTACHMENT_CAPABLE_AGENT_IDS = exports.AssistantMessageStatus = exports.AiAssistantId = exports.AgentId = exports.MAX_TIME_SERIES_PER_VALUE_FEED = exports.LogbookEntrySource = void 0;
|
|
4
|
-
exports.WebSocketMessageType = exports.SecretType = exports.isUserMessage = exports.isTask = exports.isStorage = exports.isOwner = exports.isLogbookEntry = exports.isEvent = exports.isContentAnalysis = exports.isContent = exports.isAuthor = exports.isAssignee = exports.isAsset = exports.TranslationEditData = exports.RETENTION_VALUES = exports.TaskStatus = exports.Priority = exports.INACTIVE_TASK_STATUSES = exports.buildTaskStatusFilter = exports.AssigneeType = exports.ACTIVE_TASK_STATUSES = exports.ResourceType = exports.resourceApiPathToTypeMap = exports.ResourceApiPath = exports.PermissionType = exports.isPopulated = exports.EventType = exports.CommandType = exports.arePopulated = exports.ObjectReferenceType = exports.OwnerType = exports.OrganizationMembersInviteOrAdd = exports.NotificationRuleStatus = exports.NatsStreams = exports.natsHpcPrefix = exports.natsFlowsPrefix = exports.NatsConsumers = exports.SubscriptionType = exports.LABEL_COLORS = void 0;
|
|
4
|
+
exports.WebSocketMessageType = exports.SecretType = exports.isUserMessage = exports.isTask = exports.isStorage = exports.isOwner = exports.isLogbookEntry = exports.isEvent = exports.isContentAnalysis = exports.isContent = exports.isAuthor = exports.isAssignee = exports.isAsset = exports.TranslationEditData = exports.RETENTION_VALUES = exports.TaskStatus = exports.Priority = exports.INACTIVE_TASK_STATUSES = exports.buildTaskStatusFilter = exports.AssigneeType = exports.ACTIVE_TASK_STATUSES = exports.ResourceType = exports.resourceApiPathToTypeMap = exports.ResourceApiPath = exports.PermissionType = exports.isPopulated = exports.EventType = exports.CommandType = exports.arePopulated = exports.PermissionLevel = exports.ObjectReferenceType = exports.OwnerType = exports.OrganizationMembersInviteOrAdd = exports.NotificationRuleStatus = exports.NatsStreams = exports.natsHpcPrefix = exports.natsFlowsPrefix = exports.NatsConsumers = exports.SubscriptionType = exports.LABEL_COLORS = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
var logbook_interface_1 = require("./logbook.interface");
|
|
7
7
|
Object.defineProperty(exports, "LogbookEntrySource", { enumerable: true, get: function () { return logbook_interface_1.LogbookEntrySource; } });
|
|
@@ -85,6 +85,7 @@ var owner_interface_1 = require("./owner.interface");
|
|
|
85
85
|
Object.defineProperty(exports, "OwnerType", { enumerable: true, get: function () { return owner_interface_1.OwnerType; } });
|
|
86
86
|
var reference_interface_1 = require("./reference.interface");
|
|
87
87
|
Object.defineProperty(exports, "ObjectReferenceType", { enumerable: true, get: function () { return reference_interface_1.ObjectReferenceType; } });
|
|
88
|
+
Object.defineProperty(exports, "PermissionLevel", { enumerable: true, get: function () { return reference_interface_1.PermissionLevel; } });
|
|
88
89
|
var resource_interface_1 = require("./resource.interface");
|
|
89
90
|
Object.defineProperty(exports, "arePopulated", { enumerable: true, get: function () { return resource_interface_1.arePopulated; } });
|
|
90
91
|
Object.defineProperty(exports, "CommandType", { enumerable: true, get: function () { return resource_interface_1.CommandType; } });
|
|
@@ -123,3 +124,4 @@ var websockets_interface_1 = require("./websockets.interface");
|
|
|
123
124
|
Object.defineProperty(exports, "WebSocketMessageType", { enumerable: true, get: function () { return websockets_interface_1.WebSocketMessageType; } });
|
|
124
125
|
tslib_1.__exportStar(require("./authz"), exports);
|
|
125
126
|
tslib_1.__exportStar(require("./crm-autonomy.interface"), exports);
|
|
127
|
+
tslib_1.__exportStar(require("./knowledge.interface"), exports);
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { Author } from './author.interface';
|
|
2
|
+
import type { Owner } from './owner.interface';
|
|
3
|
+
import { ResourceType } from './resource.interface';
|
|
4
|
+
export declare const KNOWLEDGE_TARGET_TYPES: readonly [ResourceType.KNOWLEDGE, ResourceType.ASSET, ResourceType.ASSETTYPE, ResourceType.CONTENT, ResourceType.EVENT, ResourceType.TASK];
|
|
5
|
+
export interface KnowledgeTarget {
|
|
6
|
+
resourceType: (typeof KNOWLEDGE_TARGET_TYPES)[number];
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export interface KnowledgeSource {
|
|
10
|
+
id: string;
|
|
11
|
+
kind: 'observation' | 'resource' | 'external';
|
|
12
|
+
target?: KnowledgeTarget;
|
|
13
|
+
text?: string;
|
|
14
|
+
url?: string;
|
|
15
|
+
version?: string;
|
|
16
|
+
locator?: string;
|
|
17
|
+
/** False means the target was not readable at response time. */
|
|
18
|
+
available?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface KnowledgeLink {
|
|
21
|
+
target: KnowledgeTarget;
|
|
22
|
+
explicit: boolean;
|
|
23
|
+
parsed: boolean;
|
|
24
|
+
}
|
|
25
|
+
export type KnowledgeApplicability = {
|
|
26
|
+
mode: 'unknown' | 'organization';
|
|
27
|
+
} | {
|
|
28
|
+
mode: 'assets';
|
|
29
|
+
assetIds: string[];
|
|
30
|
+
} | {
|
|
31
|
+
mode: 'subtree';
|
|
32
|
+
rootId: string;
|
|
33
|
+
assetTypeId?: string;
|
|
34
|
+
} | {
|
|
35
|
+
mode: 'assetType';
|
|
36
|
+
assetTypeId: string;
|
|
37
|
+
};
|
|
38
|
+
export interface KnowledgeConfirmation {
|
|
39
|
+
actor: Author;
|
|
40
|
+
at: string;
|
|
41
|
+
revision: number;
|
|
42
|
+
}
|
|
43
|
+
export interface KnowledgePage {
|
|
44
|
+
id: string;
|
|
45
|
+
owner: Owner;
|
|
46
|
+
title: string;
|
|
47
|
+
body: string;
|
|
48
|
+
type: string;
|
|
49
|
+
description?: string;
|
|
50
|
+
tags: string[];
|
|
51
|
+
resource?: KnowledgeTarget;
|
|
52
|
+
origin: {
|
|
53
|
+
actor: Author;
|
|
54
|
+
at: string;
|
|
55
|
+
context?: KnowledgeTarget;
|
|
56
|
+
};
|
|
57
|
+
sources: KnowledgeSource[];
|
|
58
|
+
links: KnowledgeLink[];
|
|
59
|
+
applicability: KnowledgeApplicability;
|
|
60
|
+
readPermissions: string[];
|
|
61
|
+
readWritePermissions: string[];
|
|
62
|
+
state: 'active' | 'withdrawn';
|
|
63
|
+
staleAfter?: string;
|
|
64
|
+
confirmations: KnowledgeConfirmation[];
|
|
65
|
+
revision: number;
|
|
66
|
+
recordVersion: number;
|
|
67
|
+
createdBy: Author;
|
|
68
|
+
updatedBy: Author;
|
|
69
|
+
createdAt: string;
|
|
70
|
+
updatedAt: string;
|
|
71
|
+
deletedAt?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CreateKnowledge {
|
|
74
|
+
title: string;
|
|
75
|
+
body: string;
|
|
76
|
+
type?: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
tags?: string[];
|
|
79
|
+
/** `null` clears the value on update. */
|
|
80
|
+
resource?: KnowledgeTarget | null;
|
|
81
|
+
/** `null` clears the value on update. */
|
|
82
|
+
originContext?: KnowledgeTarget | null;
|
|
83
|
+
sources?: Omit<KnowledgeSource, 'available'>[];
|
|
84
|
+
explicitLinks?: KnowledgeTarget[];
|
|
85
|
+
applicability?: KnowledgeApplicability;
|
|
86
|
+
readPermissions?: string[];
|
|
87
|
+
readWritePermissions?: string[];
|
|
88
|
+
staleAfter?: string | null;
|
|
89
|
+
}
|
|
90
|
+
export type UpdateKnowledge = Partial<CreateKnowledge> & {
|
|
91
|
+
recordVersion: number;
|
|
92
|
+
};
|
|
93
|
+
export interface KnowledgeVersion {
|
|
94
|
+
recordVersion: number;
|
|
95
|
+
}
|
|
96
|
+
export interface ConfirmKnowledge extends KnowledgeVersion {
|
|
97
|
+
revision: number;
|
|
98
|
+
}
|
|
99
|
+
export type KnowledgeRelation = 'OBSERVED_IN' | 'EVIDENCED_BY' | 'RELATED_TO' | 'APPLIES_TO';
|
|
100
|
+
export type KnowledgeScopeResult = 'matches' | 'not-established' | 'not-evaluated';
|
|
101
|
+
export interface KnowledgeQuery {
|
|
102
|
+
group?: 'direct' | 'broader' | 'related';
|
|
103
|
+
query?: string;
|
|
104
|
+
contextType?: 'asset' | 'location' | 'organization';
|
|
105
|
+
contextId?: string;
|
|
106
|
+
cursor?: string;
|
|
107
|
+
limit?: number;
|
|
108
|
+
}
|
|
109
|
+
export interface KnowledgeBacklinkQuery {
|
|
110
|
+
targetType: KnowledgeTarget['resourceType'];
|
|
111
|
+
targetId: string;
|
|
112
|
+
cursor?: string;
|
|
113
|
+
limit?: number;
|
|
114
|
+
}
|
|
115
|
+
export interface KnowledgePreview extends Omit<KnowledgePage, 'body'> {
|
|
116
|
+
excerpt: string;
|
|
117
|
+
scope: KnowledgeScopeResult;
|
|
118
|
+
relations: KnowledgeRelation[];
|
|
119
|
+
stale: boolean;
|
|
120
|
+
}
|
|
121
|
+
export interface KnowledgeList {
|
|
122
|
+
docs: KnowledgePreview[];
|
|
123
|
+
nextCursor?: string;
|
|
124
|
+
status: 'complete' | 'more' | 'incomplete' | 'unavailable';
|
|
125
|
+
}
|
|
126
|
+
export interface KnowledgeHome {
|
|
127
|
+
direct: KnowledgeList;
|
|
128
|
+
broader: KnowledgeList;
|
|
129
|
+
related: KnowledgeList;
|
|
130
|
+
}
|
|
131
|
+
export interface KnowledgeBatch {
|
|
132
|
+
docs: KnowledgePage[];
|
|
133
|
+
unavailableIds: string[];
|
|
134
|
+
}
|
|
135
|
+
export interface KnowledgeRevision {
|
|
136
|
+
page: KnowledgePage;
|
|
137
|
+
current: {
|
|
138
|
+
revision: number;
|
|
139
|
+
recordVersion: number;
|
|
140
|
+
state: KnowledgePage['state'];
|
|
141
|
+
};
|
|
142
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KNOWLEDGE_TARGET_TYPES = void 0;
|
|
4
|
+
const resource_interface_1 = require("./resource.interface");
|
|
5
|
+
exports.KNOWLEDGE_TARGET_TYPES = [
|
|
6
|
+
resource_interface_1.ResourceType.KNOWLEDGE,
|
|
7
|
+
resource_interface_1.ResourceType.ASSET,
|
|
8
|
+
resource_interface_1.ResourceType.ASSETTYPE,
|
|
9
|
+
resource_interface_1.ResourceType.CONTENT,
|
|
10
|
+
resource_interface_1.ResourceType.EVENT,
|
|
11
|
+
resource_interface_1.ResourceType.TASK,
|
|
12
|
+
];
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { ResourceType } from './resource.interface';
|
|
2
|
+
export declare enum PermissionLevel {
|
|
3
|
+
READ = "read",
|
|
4
|
+
WRITE = "write",
|
|
5
|
+
NONE = "none"
|
|
6
|
+
}
|
|
1
7
|
export declare enum ObjectReferenceType {
|
|
2
8
|
/**
|
|
3
9
|
* Used for testing purposes to simulate references between objects.
|
|
@@ -30,9 +36,9 @@ export interface ObjectReference {
|
|
|
30
36
|
id: number;
|
|
31
37
|
src: string;
|
|
32
38
|
tgt: string;
|
|
33
|
-
srcType:
|
|
34
|
-
tgtType:
|
|
35
|
-
relType:
|
|
39
|
+
srcType: ResourceType;
|
|
40
|
+
tgtType: ResourceType;
|
|
41
|
+
relType: ObjectReferenceType;
|
|
36
42
|
createdAt: number;
|
|
37
43
|
updatedAt: number;
|
|
38
44
|
createdBy: string;
|
|
@@ -48,21 +54,10 @@ export interface ObjectReference {
|
|
|
48
54
|
export interface CreateReferenceDto {
|
|
49
55
|
srcId: string;
|
|
50
56
|
tgtId: string;
|
|
51
|
-
srcType:
|
|
52
|
-
tgtType:
|
|
57
|
+
srcType: ResourceType;
|
|
58
|
+
tgtType: ResourceType;
|
|
53
59
|
relSrc: string;
|
|
54
60
|
relType: ObjectReferenceType;
|
|
55
|
-
displayData: {
|
|
56
|
-
src?: Record<string, unknown>;
|
|
57
|
-
tgt?: Record<string, unknown>;
|
|
58
|
-
[key: string]: unknown;
|
|
59
|
-
};
|
|
60
|
-
tgtDeleted?: boolean;
|
|
61
|
-
orgId?: string;
|
|
62
|
-
srcReadPermissions?: string[];
|
|
63
|
-
srcReadWritePermissions?: string[];
|
|
64
|
-
tgtReadPermissions?: string[];
|
|
65
|
-
tgtReadWritePermissions?: string[];
|
|
66
61
|
}
|
|
67
62
|
export interface ReferencesQuery {
|
|
68
63
|
objId: string;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectReferenceType = void 0;
|
|
3
|
+
exports.ObjectReferenceType = exports.PermissionLevel = void 0;
|
|
4
|
+
var PermissionLevel;
|
|
5
|
+
(function (PermissionLevel) {
|
|
6
|
+
PermissionLevel["READ"] = "read";
|
|
7
|
+
PermissionLevel["WRITE"] = "write";
|
|
8
|
+
PermissionLevel["NONE"] = "none";
|
|
9
|
+
})(PermissionLevel || (exports.PermissionLevel = PermissionLevel = {}));
|
|
4
10
|
var ObjectReferenceType;
|
|
5
11
|
(function (ObjectReferenceType) {
|
|
6
12
|
/**
|
|
@@ -11,6 +11,7 @@ export declare enum ResourceType {
|
|
|
11
11
|
FLOWDEPLOYMENT = "flowdeployment",
|
|
12
12
|
FLOWFUNCTION = "flowfunction",
|
|
13
13
|
FLOWMODULE = "flowmodule",
|
|
14
|
+
KNOWLEDGE = "knowledge",
|
|
14
15
|
LABEL = "label",
|
|
15
16
|
LOGBOOKENTRY = "logbookentry",
|
|
16
17
|
NOTIFICATIONENDPOINT = "notificationendpoint",
|
|
@@ -33,12 +34,16 @@ export declare enum ResourceApiPath {
|
|
|
33
34
|
FLOWDEPLOYMENT = "flow/deployments",
|
|
34
35
|
FLOWFUNCTION = "flow/functions",
|
|
35
36
|
FLOWMODULE = "flow/modules",
|
|
37
|
+
KNOWLEDGE = "knowledge",
|
|
36
38
|
LABEL = "labels",
|
|
39
|
+
LOGBOOKENTRY = "tasks/logbook",
|
|
37
40
|
NOTIFICATIONENDPOINT = "notification/endpoints",
|
|
38
41
|
NOTIFICATIONRULE = "notification/rules",
|
|
39
42
|
SECRET = "vault/secrets",
|
|
40
43
|
TIMESERIES = "tsm",
|
|
41
|
-
TASK = "tasks"
|
|
44
|
+
TASK = "tasks",
|
|
45
|
+
THREAD = "ai/threads",
|
|
46
|
+
USERMESSAGE = "ai/messages"
|
|
42
47
|
}
|
|
43
48
|
export declare const resourceApiPathToTypeMap: Record<ResourceApiPath, ResourceType>;
|
|
44
49
|
export declare enum EventType {
|
|
@@ -14,6 +14,7 @@ var ResourceType;
|
|
|
14
14
|
ResourceType["FLOWDEPLOYMENT"] = "flowdeployment";
|
|
15
15
|
ResourceType["FLOWFUNCTION"] = "flowfunction";
|
|
16
16
|
ResourceType["FLOWMODULE"] = "flowmodule";
|
|
17
|
+
ResourceType["KNOWLEDGE"] = "knowledge";
|
|
17
18
|
ResourceType["LABEL"] = "label";
|
|
18
19
|
ResourceType["LOGBOOKENTRY"] = "logbookentry";
|
|
19
20
|
ResourceType["NOTIFICATIONENDPOINT"] = "notificationendpoint";
|
|
@@ -37,12 +38,16 @@ var ResourceApiPath;
|
|
|
37
38
|
ResourceApiPath["FLOWDEPLOYMENT"] = "flow/deployments";
|
|
38
39
|
ResourceApiPath["FLOWFUNCTION"] = "flow/functions";
|
|
39
40
|
ResourceApiPath["FLOWMODULE"] = "flow/modules";
|
|
41
|
+
ResourceApiPath["KNOWLEDGE"] = "knowledge";
|
|
40
42
|
ResourceApiPath["LABEL"] = "labels";
|
|
43
|
+
ResourceApiPath["LOGBOOKENTRY"] = "tasks/logbook";
|
|
41
44
|
ResourceApiPath["NOTIFICATIONENDPOINT"] = "notification/endpoints";
|
|
42
45
|
ResourceApiPath["NOTIFICATIONRULE"] = "notification/rules";
|
|
43
46
|
ResourceApiPath["SECRET"] = "vault/secrets";
|
|
44
47
|
ResourceApiPath["TIMESERIES"] = "tsm";
|
|
45
48
|
ResourceApiPath["TASK"] = "tasks";
|
|
49
|
+
ResourceApiPath["THREAD"] = "ai/threads";
|
|
50
|
+
ResourceApiPath["USERMESSAGE"] = "ai/messages";
|
|
46
51
|
})(ResourceApiPath || (exports.ResourceApiPath = ResourceApiPath = {}));
|
|
47
52
|
exports.resourceApiPathToTypeMap = {
|
|
48
53
|
[ResourceApiPath.ALERT]: ResourceType.ALERT,
|
|
@@ -54,12 +59,16 @@ exports.resourceApiPathToTypeMap = {
|
|
|
54
59
|
[ResourceApiPath.FLOWDEPLOYMENT]: ResourceType.FLOWDEPLOYMENT,
|
|
55
60
|
[ResourceApiPath.FLOWFUNCTION]: ResourceType.FLOWFUNCTION,
|
|
56
61
|
[ResourceApiPath.FLOWMODULE]: ResourceType.FLOWMODULE,
|
|
62
|
+
[ResourceApiPath.KNOWLEDGE]: ResourceType.KNOWLEDGE,
|
|
57
63
|
[ResourceApiPath.LABEL]: ResourceType.LABEL,
|
|
64
|
+
[ResourceApiPath.LOGBOOKENTRY]: ResourceType.LOGBOOKENTRY,
|
|
58
65
|
[ResourceApiPath.NOTIFICATIONENDPOINT]: ResourceType.NOTIFICATIONENDPOINT,
|
|
59
66
|
[ResourceApiPath.NOTIFICATIONRULE]: ResourceType.NOTIFICATIONRULE,
|
|
60
67
|
[ResourceApiPath.SECRET]: ResourceType.SECRET,
|
|
61
68
|
[ResourceApiPath.TIMESERIES]: ResourceType.TIMESERIES,
|
|
62
69
|
[ResourceApiPath.TASK]: ResourceType.TASK,
|
|
70
|
+
[ResourceApiPath.THREAD]: ResourceType.THREAD,
|
|
71
|
+
[ResourceApiPath.USERMESSAGE]: ResourceType.USERMESSAGE,
|
|
63
72
|
};
|
|
64
73
|
var EventType;
|
|
65
74
|
(function (EventType) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AiAssistant, AiSkill, AiSkillSummary, AudioTranscription, Config, Message, OneShotTaskId, OneShotTaskResult, Paginated, Thread, ThreadPopulated, TokenOption } from '../interfaces';
|
|
1
|
+
import { AiAssistant, AiSkill, AiSkillSummary, AudioTranscription, Config, Message, OneShotTaskId, OneShotTaskResult, Paginated, PermissionLevel, Thread, ThreadPopulated, TokenOption } from '../interfaces';
|
|
2
2
|
import { AiService } from '../services';
|
|
3
3
|
import type { CrossPlatformFormData } from '../utils';
|
|
4
4
|
import { APIBaseMock } from './api-base.mock';
|
|
@@ -18,6 +18,8 @@ export declare class AiMockService extends APIBaseMock<never> implements AiServi
|
|
|
18
18
|
replaceSkill(_id: string, _form: CrossPlatformFormData, _options?: Config): Promise<AiSkill>;
|
|
19
19
|
getThreadMessages(threadId: string): Promise<Paginated<Message>>;
|
|
20
20
|
getThread(threadId: string): Promise<ThreadPopulated>;
|
|
21
|
+
getThreadReferenceCheck(threadId: string, _permissionLevel?: PermissionLevel, _options?: Config): Promise<ThreadPopulated>;
|
|
22
|
+
getUserMessageReferenceCheck(messageId: string, _permissionLevel?: PermissionLevel, _options?: Config): Promise<Message>;
|
|
21
23
|
getLatestThread(): Promise<ThreadPopulated>;
|
|
22
24
|
listThreads(): Promise<ThreadPopulated[]>;
|
|
23
25
|
listAssistantThreads(assistantId: string): Promise<ThreadPopulated[]>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AiMockService = void 0;
|
|
4
|
+
const interfaces_1 = require("../interfaces");
|
|
4
5
|
const api_base_mock_1 = require("./api-base.mock");
|
|
5
6
|
class AiMockService extends api_base_mock_1.APIBaseMock {
|
|
6
7
|
constructor() {
|
|
@@ -48,6 +49,12 @@ class AiMockService extends api_base_mock_1.APIBaseMock {
|
|
|
48
49
|
getThread(threadId) {
|
|
49
50
|
throw new Error('Method not implemented.');
|
|
50
51
|
}
|
|
52
|
+
getThreadReferenceCheck(threadId, _permissionLevel = interfaces_1.PermissionLevel.READ, _options = {}) {
|
|
53
|
+
throw new Error('Method not implemented.');
|
|
54
|
+
}
|
|
55
|
+
getUserMessageReferenceCheck(messageId, _permissionLevel = interfaces_1.PermissionLevel.READ, _options = {}) {
|
|
56
|
+
throw new Error('Method not implemented.');
|
|
57
|
+
}
|
|
51
58
|
getLatestThread() {
|
|
52
59
|
throw new Error('Method not implemented.');
|
|
53
60
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { API } from '../api';
|
|
2
|
-
import { Artifact, Asset, AssetRevision, AssetType, Content, Endpoint, Event, FlowDeployment, FlowDiagram, FlowDto, FlowFunctionDto, FlowFunctionRevision, FlowModule, FlowRevision, Label, LogbookEntry, Notification, ObjectReference, Organization, Secret, Task, TimeSeries, TimeSeriesValue, TimeSeriesValueFeed, Translation, UserSettings, VaultSecret } from '../interfaces';
|
|
2
|
+
import { Artifact, Asset, AssetRevision, AssetType, Content, Endpoint, Event, FlowDeployment, FlowDiagram, FlowDto, FlowFunctionDto, FlowFunctionRevision, FlowModule, FlowRevision, Label, LogbookEntry, Notification, ObjectReference, Organization, Secret, Task, TimeSeries, TimeSeriesValue, TimeSeriesValueFeed, Translation, UserSettings, VaultSecret, type KnowledgePage } from '../interfaces';
|
|
3
3
|
import { AiMockService } from './ai.mock.service';
|
|
4
4
|
import { AlertMockService } from './alert.mock.service';
|
|
5
5
|
import { AssetMockService } from './asset.mock.service';
|
|
@@ -16,6 +16,7 @@ import { FlowFunctionsMockService } from './flow-functions.mock.service';
|
|
|
16
16
|
import { FlowModulesMockService } from './flow-modules.mock.service';
|
|
17
17
|
import { FlowMockService } from './flow.mock.service';
|
|
18
18
|
import { HttpClientMockService } from './http-client.mock.service';
|
|
19
|
+
import { KnowledgeMockService } from './knowledge.mock.service';
|
|
19
20
|
import { LabelMockService } from './label.mock.service';
|
|
20
21
|
import { LogbookMockService } from './logbook.mock.service';
|
|
21
22
|
import { NotificationRulesMockService } from './notification-rules.mock.service';
|
|
@@ -31,6 +32,7 @@ import { TimeseriesMockService } from './timeseries.mock.service';
|
|
|
31
32
|
import { UserMockService } from './user.mock.service';
|
|
32
33
|
import { VaultMockService } from './vault.mock.service';
|
|
33
34
|
export interface MockAPIInitData {
|
|
35
|
+
knowledge?: KnowledgePage[];
|
|
34
36
|
assets?: AssetInit[];
|
|
35
37
|
assetRevisions?: AssetRevisionInit[];
|
|
36
38
|
contents?: ContentInit[];
|
|
@@ -58,6 +60,7 @@ export interface MockAPIInitData {
|
|
|
58
60
|
translations?: TranslationInit[];
|
|
59
61
|
}
|
|
60
62
|
export declare class MockAPI implements API {
|
|
63
|
+
knowledge: KnowledgeMockService;
|
|
61
64
|
ai: AiMockService;
|
|
62
65
|
alerts: AlertMockService;
|
|
63
66
|
assets: AssetMockService;
|
package/src/lib/mock/api.mock.js
CHANGED
|
@@ -18,6 +18,7 @@ const flow_functions_mock_service_1 = require("./flow-functions.mock.service");
|
|
|
18
18
|
const flow_modules_mock_service_1 = require("./flow-modules.mock.service");
|
|
19
19
|
const flow_mock_service_1 = require("./flow.mock.service");
|
|
20
20
|
const http_client_mock_service_1 = require("./http-client.mock.service");
|
|
21
|
+
const knowledge_mock_service_1 = require("./knowledge.mock.service");
|
|
21
22
|
const label_mock_service_1 = require("./label.mock.service");
|
|
22
23
|
const logbook_mock_service_1 = require("./logbook.mock.service");
|
|
23
24
|
const notification_rules_mock_service_1 = require("./notification-rules.mock.service");
|
|
@@ -35,6 +36,7 @@ const vault_mock_service_1 = require("./vault.mock.service");
|
|
|
35
36
|
class MockAPI {
|
|
36
37
|
constructor(initData) {
|
|
37
38
|
this.proxy = null;
|
|
39
|
+
this.knowledge = new knowledge_mock_service_1.KnowledgeMockService(initData.knowledge);
|
|
38
40
|
const { assets = [], assetRevisions = [], contents = [], endpoints = [], secrets = [], timeSeries = [], tasks = [], events = [], users, flows = [], flowRevisions = [], deployments = [], functions = [], functionRevisions = [], modules = [], diagrams = [], labels = [], logbookEntries = [], vault = [], notifications = [], organizations = [], objectReferences = [], timeSeriesValueFeeds = [], resourceSetNames = [], translations = [], } = initData;
|
|
39
41
|
// convert init data to normal data that the services usually use
|
|
40
42
|
const assetTypes = assets
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AddToProperty, Asset, AssetRevision, Attachment, DeleteQuery, EventCause, EventLevelOverride, Filter, Paginated, RemoveFromProperty, RequestParameter, SearchResultItem, TokenOption, Translation } from '../interfaces';
|
|
1
|
+
import { AddToProperty, Asset, AssetRevision, Attachment, Config, DeleteQuery, EventCause, EventLevelOverride, Filter, Paginated, PermissionLevel, RemoveFromProperty, RequestParameter, SearchResultItem, TokenOption, Translation } from '../interfaces';
|
|
2
2
|
import { AssetService } from '../services';
|
|
3
3
|
import { CrossPlatformFormData } from '../utils';
|
|
4
4
|
import type { MockAPI } from './api.mock';
|
|
@@ -19,6 +19,7 @@ export declare class AssetMockService extends BaseService implements AssetServic
|
|
|
19
19
|
constructor(api: MockAPI, assets: Asset[], revisions: AssetRevision[], translations?: Array<Translation & {
|
|
20
20
|
id: string;
|
|
21
21
|
}>);
|
|
22
|
+
getReferenceCheck(id: string, _permissionLevel: PermissionLevel, _options?: Config): Promise<Asset>;
|
|
22
23
|
addElementToProperty(id: string, dto: AddToProperty): Promise<Asset>;
|
|
23
24
|
removeElementFromProperty(id: string, dto: RemoveFromProperty): Promise<Asset>;
|
|
24
25
|
private getAssets;
|
|
@@ -14,6 +14,9 @@ class AssetMockService extends BaseService {
|
|
|
14
14
|
this.revisions = revisions;
|
|
15
15
|
this.translations = translations;
|
|
16
16
|
}
|
|
17
|
+
getReferenceCheck(id, _permissionLevel, _options = {}) {
|
|
18
|
+
return this.getOne(id);
|
|
19
|
+
}
|
|
17
20
|
addElementToProperty(id, dto) {
|
|
18
21
|
throw new Error('Method not implemented.');
|
|
19
22
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Content, DeleteQuery, Paginated, RequestParameter, ReturnType } from '../interfaces';
|
|
1
|
+
import { Config, Content, DeleteQuery, Paginated, PermissionLevel, RequestParameter, ReturnType } from '../interfaces';
|
|
2
2
|
import { ContentService } from '../services';
|
|
3
3
|
import { CrossPlatformFormData } from '../utils';
|
|
4
4
|
import { DataMockService } from './data.mock.service';
|
|
@@ -14,6 +14,7 @@ declare class BaseService extends BaseService_base {
|
|
|
14
14
|
export declare class ContentMockService extends BaseService implements ContentService {
|
|
15
15
|
private contentData;
|
|
16
16
|
constructor(contents: Content[], contentData: any[]);
|
|
17
|
+
getReferenceCheck(id: string, _permissionLevel: PermissionLevel, _options?: Config): Promise<Content>;
|
|
17
18
|
download(id: string, raw?: boolean, options?: any): Promise<Blob | ArrayBuffer>;
|
|
18
19
|
download(id: string, returnType: ReturnType.TEXT, options?: any): Promise<string>;
|
|
19
20
|
download(id: string, returnType: ReturnType.JSON, options?: any): Promise<Record<string, unknown>>;
|
|
@@ -16,6 +16,9 @@ class ContentMockService extends BaseService {
|
|
|
16
16
|
this.contentData.set(contents[i].id, contentData[i]);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
getReferenceCheck(id, _permissionLevel, _options = {}) {
|
|
20
|
+
return this.getOne(id);
|
|
21
|
+
}
|
|
19
22
|
download(id, second, options = {}) {
|
|
20
23
|
let returnType;
|
|
21
24
|
if (typeof second === 'boolean' || second == null) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event, EventCountByAsset } from '../interfaces';
|
|
1
|
+
import { Config, Event, EventCountByAsset, PermissionLevel } from '../interfaces';
|
|
2
2
|
import { EventService } from '../services';
|
|
3
3
|
import { DataMockService } from './data.mock.service';
|
|
4
4
|
import { ShareMockService } from './share.mock.service';
|
|
@@ -9,6 +9,7 @@ declare class BaseService extends BaseService_base {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class EventMockService extends BaseService implements EventService {
|
|
11
11
|
constructor(events: Event[]);
|
|
12
|
+
getReferenceCheck(id: string, _permissionLevel: PermissionLevel, _options?: Config): Promise<Event>;
|
|
12
13
|
getEventCountByAsset(assetId: string): Promise<EventCountByAsset>;
|
|
13
14
|
getLastEventByAssetAndGroup(assetId: string, group: string): Promise<Event>;
|
|
14
15
|
getLastEventByAssetAndGroups(assetId: string, groups: string[]): Promise<Record<string, string>>;
|
|
@@ -12,6 +12,9 @@ class EventMockService extends BaseService {
|
|
|
12
12
|
super();
|
|
13
13
|
this.data = events;
|
|
14
14
|
}
|
|
15
|
+
getReferenceCheck(id, _permissionLevel, _options = {}) {
|
|
16
|
+
return this.getOne(id);
|
|
17
|
+
}
|
|
15
18
|
getEventCountByAsset(assetId) {
|
|
16
19
|
const events = this.data.filter((event) => event.assetRef === assetId);
|
|
17
20
|
const critical = events.filter((event) => event.level === interfaces_1.EventLevel.Critical).length;
|
package/src/lib/mock/index.d.ts
CHANGED
|
@@ -34,3 +34,4 @@ export { UserMockService } from './user.mock.service';
|
|
|
34
34
|
export { VaultMockService } from './vault.mock.service';
|
|
35
35
|
export { TimeseriesValueFeedManagementMockService } from './timeseries-value-feed-management.mock.service';
|
|
36
36
|
export * from './authz';
|
|
37
|
+
export * from './knowledge.mock.service';
|
package/src/lib/mock/index.js
CHANGED
|
@@ -72,3 +72,4 @@ Object.defineProperty(exports, "VaultMockService", { enumerable: true, get: func
|
|
|
72
72
|
var timeseries_value_feed_management_mock_service_1 = require("./timeseries-value-feed-management.mock.service");
|
|
73
73
|
Object.defineProperty(exports, "TimeseriesValueFeedManagementMockService", { enumerable: true, get: function () { return timeseries_value_feed_management_mock_service_1.TimeseriesValueFeedManagementMockService; } });
|
|
74
74
|
tslib_1.__exportStar(require("./authz"), exports);
|
|
75
|
+
tslib_1.__exportStar(require("./knowledge.mock.service"), exports);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ConfirmKnowledge, type CreateKnowledge, type KnowledgeBacklinkQuery, type KnowledgeBatch, type KnowledgeHome, type KnowledgeList, type KnowledgePage, type KnowledgeQuery, type KnowledgeRevision, type KnowledgeVersion, type UpdateKnowledge } from '../interfaces';
|
|
2
|
+
import { KnowledgeService } from '../services/knowledge.service';
|
|
3
|
+
export declare class KnowledgeMockService extends KnowledgeService {
|
|
4
|
+
data: KnowledgePage[];
|
|
5
|
+
private readonly revisions;
|
|
6
|
+
constructor(data?: KnowledgePage[]);
|
|
7
|
+
private remember;
|
|
8
|
+
/** As in the backend, only changes to these fields create a revision. */
|
|
9
|
+
private content;
|
|
10
|
+
private page;
|
|
11
|
+
private list;
|
|
12
|
+
addOne(dto: CreateKnowledge): Promise<KnowledgePage>;
|
|
13
|
+
getOne(id: string): Promise<KnowledgePage>;
|
|
14
|
+
getMany(query?: KnowledgeQuery): Promise<KnowledgeList>;
|
|
15
|
+
getHome(query?: KnowledgeQuery): Promise<KnowledgeHome>;
|
|
16
|
+
getBacklinks(query: KnowledgeBacklinkQuery): Promise<KnowledgeList>;
|
|
17
|
+
getRelated(id: string, query?: Pick<KnowledgeQuery, 'cursor' | 'limit'>): Promise<KnowledgeList>;
|
|
18
|
+
getRevision(id: string, revision: number): Promise<KnowledgeRevision>;
|
|
19
|
+
readBatch(ids: string[]): Promise<KnowledgeBatch>;
|
|
20
|
+
private check;
|
|
21
|
+
updateOne(id: string, dto: UpdateKnowledge): Promise<KnowledgePage>;
|
|
22
|
+
confirm(id: string, dto: ConfirmKnowledge): Promise<KnowledgePage>;
|
|
23
|
+
withdraw(id: string, dto: KnowledgeVersion): Promise<KnowledgePage>;
|
|
24
|
+
restore(id: string, dto: KnowledgeVersion): Promise<KnowledgePage>;
|
|
25
|
+
purgeOrganization(organizationId: string): Promise<{
|
|
26
|
+
deleted: number;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnowledgeMockService = void 0;
|
|
4
|
+
const interfaces_1 = require("../interfaces");
|
|
5
|
+
const knowledge_service_1 = require("../services/knowledge.service");
|
|
6
|
+
class KnowledgeMockService extends knowledge_service_1.KnowledgeService {
|
|
7
|
+
constructor(data = []) {
|
|
8
|
+
super(null);
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.revisions = new Map();
|
|
11
|
+
this.data = structuredClone(data);
|
|
12
|
+
this.data.forEach((page) => this.remember(page));
|
|
13
|
+
}
|
|
14
|
+
remember(page) {
|
|
15
|
+
this.revisions.set(`${page.id}:${page.revision}`, structuredClone(page));
|
|
16
|
+
}
|
|
17
|
+
/** As in the backend, only changes to these fields create a revision. */
|
|
18
|
+
content(page) {
|
|
19
|
+
const { title, body, type, description, tags, resource, sources, applicability, links, origin } = page;
|
|
20
|
+
return JSON.stringify({ title, body, type, description, tags, resource, sources, applicability, links, context: origin.context });
|
|
21
|
+
}
|
|
22
|
+
page(id) {
|
|
23
|
+
const page = this.data.find((item) => item.id === id);
|
|
24
|
+
if (!page) {
|
|
25
|
+
throw new Error('Knowledge page not found');
|
|
26
|
+
}
|
|
27
|
+
return page;
|
|
28
|
+
}
|
|
29
|
+
list(pages, query = {}) {
|
|
30
|
+
const offset = Number(query.cursor || 0);
|
|
31
|
+
const active = pages.filter((page) => page.state === 'active');
|
|
32
|
+
const docs = active.slice(offset, offset + (query.limit || 20)).map(({ body, ...page }) => ({
|
|
33
|
+
...structuredClone(page),
|
|
34
|
+
excerpt: body.slice(0, 300),
|
|
35
|
+
scope: 'not-evaluated',
|
|
36
|
+
relations: [],
|
|
37
|
+
stale: !!page.staleAfter && Date.parse(page.staleAfter) <= Date.now(),
|
|
38
|
+
}));
|
|
39
|
+
const more = offset + docs.length < active.length;
|
|
40
|
+
return { docs, status: more ? 'more' : 'complete', ...(more ? { nextCursor: String(offset + docs.length) } : {}) };
|
|
41
|
+
}
|
|
42
|
+
async addOne(dto) {
|
|
43
|
+
const now = new Date().toISOString();
|
|
44
|
+
const page = {
|
|
45
|
+
id: Array.from(globalThis.crypto.getRandomValues(new Uint8Array(12)), (byte) => byte.toString(16).padStart(2, '0')).join(''),
|
|
46
|
+
title: dto.title,
|
|
47
|
+
body: dto.body,
|
|
48
|
+
type: dto.type || 'Maintenance Note',
|
|
49
|
+
description: dto.description,
|
|
50
|
+
tags: dto.tags || [],
|
|
51
|
+
owner: { id: 'mock-org', type: interfaces_1.OwnerType.ORG },
|
|
52
|
+
createdBy: { id: 'mock-user' },
|
|
53
|
+
updatedBy: { id: 'mock-user' },
|
|
54
|
+
createdAt: now,
|
|
55
|
+
updatedAt: now,
|
|
56
|
+
origin: { actor: { id: 'mock-user' }, at: now, context: dto.originContext ?? undefined },
|
|
57
|
+
resource: dto.resource ?? undefined,
|
|
58
|
+
sources: dto.sources || [],
|
|
59
|
+
links: (dto.explicitLinks || []).map((target) => ({ target, explicit: true, parsed: false })),
|
|
60
|
+
applicability: dto.applicability || { mode: 'unknown' },
|
|
61
|
+
readPermissions: dto.readPermissions || [],
|
|
62
|
+
readWritePermissions: dto.readWritePermissions || ['mock-org'],
|
|
63
|
+
state: 'active',
|
|
64
|
+
revision: 1,
|
|
65
|
+
recordVersion: 1,
|
|
66
|
+
confirmations: [],
|
|
67
|
+
staleAfter: dto.staleAfter || undefined,
|
|
68
|
+
};
|
|
69
|
+
this.data.push(page);
|
|
70
|
+
this.remember(page);
|
|
71
|
+
return structuredClone(page);
|
|
72
|
+
}
|
|
73
|
+
async getOne(id) {
|
|
74
|
+
return structuredClone(this.page(id));
|
|
75
|
+
}
|
|
76
|
+
async getMany(query = {}) {
|
|
77
|
+
const term = query.query?.toLowerCase();
|
|
78
|
+
return this.list(this.data.filter((page) => !term || `${page.title} ${page.body}`.toLowerCase().includes(term)), query);
|
|
79
|
+
}
|
|
80
|
+
async getHome(query = {}) {
|
|
81
|
+
return { direct: await this.getMany(query), broader: { docs: [], status: 'complete' }, related: { docs: [], status: 'complete' } };
|
|
82
|
+
}
|
|
83
|
+
async getBacklinks(query) {
|
|
84
|
+
return this.list(this.data.filter((page) => [...page.links, ...page.sources].some((item) => item.target?.resourceType === query.targetType && item.target.id === query.targetId)), query);
|
|
85
|
+
}
|
|
86
|
+
async getRelated(id, query = {}) {
|
|
87
|
+
const page = this.page(id);
|
|
88
|
+
const outgoing = page.links.filter((link) => link.target.resourceType === interfaces_1.ResourceType.KNOWLEDGE).map((link) => link.target.id);
|
|
89
|
+
return this.list(this.data.filter((item) => item.id !== id &&
|
|
90
|
+
(outgoing.includes(item.id) ||
|
|
91
|
+
item.links.some((link) => link.target.resourceType === interfaces_1.ResourceType.KNOWLEDGE && link.target.id === id))), query);
|
|
92
|
+
}
|
|
93
|
+
async getRevision(id, revision) {
|
|
94
|
+
const current = this.page(id);
|
|
95
|
+
const page = this.revisions.get(`${id}:${revision}`);
|
|
96
|
+
if (!page) {
|
|
97
|
+
throw new Error('Revision not found');
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
page: structuredClone(page),
|
|
101
|
+
current: { revision: current.revision, recordVersion: current.recordVersion, state: current.state },
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async readBatch(ids) {
|
|
105
|
+
return {
|
|
106
|
+
docs: structuredClone(this.data.filter((page) => ids.includes(page.id) && page.state === 'active')),
|
|
107
|
+
unavailableIds: ids.filter((id) => !this.data.some((page) => page.id === id && page.state === 'active')),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
check(id, version) {
|
|
111
|
+
const page = this.page(id);
|
|
112
|
+
if (page.recordVersion !== version) {
|
|
113
|
+
throw new Error('Version conflict');
|
|
114
|
+
}
|
|
115
|
+
return page;
|
|
116
|
+
}
|
|
117
|
+
async updateOne(id, dto) {
|
|
118
|
+
const page = this.check(id, dto.recordVersion);
|
|
119
|
+
const before = this.content(page);
|
|
120
|
+
const { explicitLinks, originContext, staleAfter, resource, recordVersion: _version, ...fields } = dto;
|
|
121
|
+
Object.assign(page, fields);
|
|
122
|
+
if (resource !== undefined) {
|
|
123
|
+
page.resource = resource ?? undefined;
|
|
124
|
+
}
|
|
125
|
+
if (explicitLinks) {
|
|
126
|
+
page.links = explicitLinks.map((target) => ({ target, explicit: true, parsed: false }));
|
|
127
|
+
}
|
|
128
|
+
if (originContext !== undefined) {
|
|
129
|
+
page.origin.context = originContext ?? undefined;
|
|
130
|
+
}
|
|
131
|
+
if (staleAfter !== undefined) {
|
|
132
|
+
page.staleAfter = staleAfter || undefined;
|
|
133
|
+
}
|
|
134
|
+
if (this.content(page) !== before) {
|
|
135
|
+
page.revision++;
|
|
136
|
+
this.remember(page);
|
|
137
|
+
}
|
|
138
|
+
page.recordVersion++;
|
|
139
|
+
return structuredClone(page);
|
|
140
|
+
}
|
|
141
|
+
async confirm(id, dto) {
|
|
142
|
+
const page = this.check(id, dto.recordVersion);
|
|
143
|
+
if (page.revision !== dto.revision) {
|
|
144
|
+
throw new Error('Revision conflict');
|
|
145
|
+
}
|
|
146
|
+
page.confirmations.push({ actor: { id: 'mock-user' }, at: new Date().toISOString(), revision: page.revision });
|
|
147
|
+
page.recordVersion++;
|
|
148
|
+
return structuredClone(page);
|
|
149
|
+
}
|
|
150
|
+
async withdraw(id, dto) {
|
|
151
|
+
const page = this.check(id, dto.recordVersion);
|
|
152
|
+
page.state = 'withdrawn';
|
|
153
|
+
page.deletedAt = new Date().toISOString();
|
|
154
|
+
page.recordVersion++;
|
|
155
|
+
return structuredClone(page);
|
|
156
|
+
}
|
|
157
|
+
async restore(id, dto) {
|
|
158
|
+
const page = this.check(id, dto.recordVersion);
|
|
159
|
+
page.state = 'active';
|
|
160
|
+
delete page.deletedAt;
|
|
161
|
+
page.recordVersion++;
|
|
162
|
+
return structuredClone(page);
|
|
163
|
+
}
|
|
164
|
+
async purgeOrganization(organizationId) {
|
|
165
|
+
const kept = this.data.filter((page) => page.owner.id !== organizationId);
|
|
166
|
+
const deleted = this.data.length - kept.length;
|
|
167
|
+
this.data = kept;
|
|
168
|
+
return { deleted };
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
exports.KnowledgeMockService = KnowledgeMockService;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { LogbookEntry, LogbookEntryDto, Paginated, TokenOption } from '../interfaces';
|
|
1
|
+
import { Config, LogbookEntry, LogbookEntryDto, Paginated, PermissionLevel, TokenOption } from '../interfaces';
|
|
2
2
|
import { LogbookService } from '../services';
|
|
3
3
|
import { APIBaseMock } from './api-base.mock';
|
|
4
4
|
export declare class LogbookMockService extends APIBaseMock<LogbookEntry> implements LogbookService {
|
|
5
5
|
constructor(logbookEntries?: LogbookEntry[]);
|
|
6
|
+
getReferenceCheck(id: string, _permissionLevel: PermissionLevel, _options?: Config): Promise<LogbookEntry>;
|
|
6
7
|
getEntries(taskId: string, limit?: number, offset?: number, _options?: TokenOption): Promise<Paginated<LogbookEntry>>;
|
|
7
8
|
getEntriesByIds(ids: string[], _options?: TokenOption): Promise<LogbookEntry[]>;
|
|
8
9
|
addEntry(taskId: string, dto: LogbookEntryDto, _options?: TokenOption): Promise<LogbookEntry>;
|
|
@@ -7,6 +7,9 @@ class LogbookMockService extends api_base_mock_1.APIBaseMock {
|
|
|
7
7
|
constructor(logbookEntries = []) {
|
|
8
8
|
super(logbookEntries);
|
|
9
9
|
}
|
|
10
|
+
getReferenceCheck(id, _permissionLevel, _options = {}) {
|
|
11
|
+
return Promise.resolve(this.data.find((entry) => entry.id === id));
|
|
12
|
+
}
|
|
10
13
|
async getEntries(taskId, limit = 50, offset = 0, _options = {}) {
|
|
11
14
|
const taskEntries = this.data.filter((e) => e.taskId === taskId);
|
|
12
15
|
const docs = taskEntries.slice(offset, offset + limit);
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { CreateReferenceDto, ObjectReference, ObjectReferenceType, Paginated, ReferencesQuery
|
|
1
|
+
import { Config, CreateReferenceDto, ObjectReference, ObjectReferenceType, Paginated, ReferencesQuery } from '../interfaces';
|
|
2
2
|
import { ObjectReferenceService } from '../services/object-reference.service';
|
|
3
3
|
import { APIBaseMock } from './api-base.mock';
|
|
4
4
|
export declare class ObjectReferenceMockService extends APIBaseMock<ObjectReference> implements ObjectReferenceService {
|
|
5
5
|
constructor(initialData: ObjectReference[]);
|
|
6
|
-
find(query: ReferencesQuery, _options?:
|
|
7
|
-
findAll(objId: string, _options?:
|
|
8
|
-
create(dto: CreateReferenceDto, _options?:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
checkConnection(srcId: string, tgtId: string, type?: ObjectReferenceType, _options?: TokenOption): Promise<boolean>;
|
|
6
|
+
find(query: ReferencesQuery, _options?: Config): Promise<Paginated<ObjectReference>>;
|
|
7
|
+
findAll(objId: string, _options?: Config): Promise<ObjectReference[]>;
|
|
8
|
+
create(dto: CreateReferenceDto, _options?: Config): Promise<ObjectReference>;
|
|
9
|
+
deleteById(refId: string, _options?: Config): Promise<void>;
|
|
10
|
+
deleteByReference(src: string, tgt: string, relType: ObjectReferenceType, _options?: Config): Promise<void>;
|
|
11
|
+
checkConnection(srcId: string, tgtId: string, type?: ObjectReferenceType, _options?: Config): Promise<boolean>;
|
|
13
12
|
}
|
|
@@ -25,10 +25,16 @@ class ObjectReferenceMockService extends api_base_mock_1.APIBaseMock {
|
|
|
25
25
|
// Note: connectedObjType filter logic could be added here if needed
|
|
26
26
|
return true;
|
|
27
27
|
});
|
|
28
|
+
const limit = query.limit ?? docs.length;
|
|
29
|
+
const page = query.page ?? 1;
|
|
30
|
+
const start = (page - 1) * limit;
|
|
31
|
+
const paginatedDocs = docs.slice(start, start + limit);
|
|
28
32
|
return {
|
|
29
|
-
docs,
|
|
33
|
+
docs: paginatedDocs,
|
|
30
34
|
total: docs.length,
|
|
31
|
-
limit
|
|
35
|
+
limit,
|
|
36
|
+
page,
|
|
37
|
+
pages: limit > 0 ? Math.ceil(docs.length / limit) : 0,
|
|
32
38
|
};
|
|
33
39
|
}
|
|
34
40
|
async findAll(objId, _options = {}) {
|
|
@@ -43,8 +49,8 @@ class ObjectReferenceMockService extends api_base_mock_1.APIBaseMock {
|
|
|
43
49
|
tgtType: dto.tgtType,
|
|
44
50
|
relType: dto.relType,
|
|
45
51
|
relSrc: dto.relSrc,
|
|
46
|
-
displayData:
|
|
47
|
-
tgtDeleted:
|
|
52
|
+
displayData: {},
|
|
53
|
+
tgtDeleted: false,
|
|
48
54
|
createdAt: Date.now(),
|
|
49
55
|
updatedAt: Date.now(),
|
|
50
56
|
createdBy: 'mock-user',
|
|
@@ -52,18 +58,6 @@ class ObjectReferenceMockService extends api_base_mock_1.APIBaseMock {
|
|
|
52
58
|
this.data.push(newRef);
|
|
53
59
|
return newRef;
|
|
54
60
|
}
|
|
55
|
-
async update(referenceId, updateData, _options = {}) {
|
|
56
|
-
const index = this.data.findIndex((ref) => ref.id === referenceId);
|
|
57
|
-
if (index === -1) {
|
|
58
|
-
throw new Error(`Reference with id ${referenceId} not found`);
|
|
59
|
-
}
|
|
60
|
-
this.data[index] = {
|
|
61
|
-
...this.data[index],
|
|
62
|
-
...updateData,
|
|
63
|
-
updatedAt: Date.now(),
|
|
64
|
-
};
|
|
65
|
-
return this.data[index];
|
|
66
|
-
}
|
|
67
61
|
async deleteById(refId, _options = {}) {
|
|
68
62
|
const id = parseInt(refId, 10);
|
|
69
63
|
this.data = this.data.filter((ref) => ref.id !== id);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeleteQuery, Paginated, RequestParameter, Task } from '../interfaces';
|
|
1
|
+
import { Config, DeleteQuery, Paginated, PermissionLevel, RequestParameter, Task } from '../interfaces';
|
|
2
2
|
import { TaskService } from '../services';
|
|
3
3
|
import type { CreateAbsenceRequest } from '../services/task.service';
|
|
4
4
|
import { DataMockService } from './data.mock.service';
|
|
@@ -13,6 +13,7 @@ declare class BaseService extends BaseService_base {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class TaskMockService extends BaseService implements TaskService {
|
|
15
15
|
constructor(tasks: Task[]);
|
|
16
|
+
getReferenceCheck(id: string, _permissionLevel: PermissionLevel, _options?: Config): Promise<Task>;
|
|
16
17
|
createTaskAttachedToAsset(dto: any): Promise<Task>;
|
|
17
18
|
createAbsence(dto: CreateAbsenceRequest): Promise<Task>;
|
|
18
19
|
deleteOne(taskId: string, deleteQuery?: DeleteQuery): Promise<Task>;
|
|
@@ -11,6 +11,9 @@ class TaskMockService extends BaseService {
|
|
|
11
11
|
constructor(tasks) {
|
|
12
12
|
super(tasks);
|
|
13
13
|
}
|
|
14
|
+
getReferenceCheck(id, _permissionLevel, _options = {}) {
|
|
15
|
+
return this.getOne(id);
|
|
16
|
+
}
|
|
14
17
|
async createTaskAttachedToAsset(dto) {
|
|
15
18
|
this.data.push(dto);
|
|
16
19
|
return Promise.resolve(dto);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { APIBase } from '../api-base';
|
|
2
|
-
import { AiAssistant, AiAssistantId, AiSkill, AiSkillSummary, AudioTranscription, Config, Message, OneShotTaskId, OneShotTaskResult, Paginated, Thread, ThreadPopulated, TokenOption } from '../interfaces';
|
|
2
|
+
import { AiAssistant, AiAssistantId, AiSkill, AiSkillSummary, AudioTranscription, Config, Message, OneShotTaskId, OneShotTaskResult, Paginated, PermissionLevel, Thread, ThreadPopulated, TokenOption } from '../interfaces';
|
|
3
3
|
import { CrossPlatformFormData } from '../utils';
|
|
4
4
|
import { HttpClientService } from './http-client.service';
|
|
5
5
|
export declare class AiService extends APIBase {
|
|
@@ -19,6 +19,8 @@ export declare class AiService extends APIBase {
|
|
|
19
19
|
replaceSkill(id: string, form: CrossPlatformFormData, options?: Config): Promise<AiSkill>;
|
|
20
20
|
getThreadMessages(threadId: string): Promise<Paginated<Message>>;
|
|
21
21
|
getThread(threadId: string): Promise<ThreadPopulated>;
|
|
22
|
+
getThreadReferenceCheck(threadId: string, permissionLevel?: PermissionLevel, options?: Config): Promise<ThreadPopulated>;
|
|
23
|
+
getUserMessageReferenceCheck(messageId: string, permissionLevel?: PermissionLevel, options?: Config): Promise<Message>;
|
|
22
24
|
getLatestThread(): Promise<ThreadPopulated>;
|
|
23
25
|
listThreads(assistantIds?: AiAssistantId[], params?: {}, options?: TokenOption): Promise<ThreadPopulated[]>;
|
|
24
26
|
provideFeedback(traceId: string, value: number, comment?: string): Promise<void>;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AiService = void 0;
|
|
4
4
|
const api_base_1 = require("../api-base");
|
|
5
|
+
const interfaces_1 = require("../interfaces");
|
|
5
6
|
const utils_1 = require("../utils");
|
|
6
7
|
const AUDIO_TRANSCRIPTION_TIMEOUT_MS = 5 * 60000;
|
|
7
8
|
class AiService extends api_base_1.APIBase {
|
|
@@ -62,6 +63,18 @@ class AiService extends api_base_1.APIBase {
|
|
|
62
63
|
getThread(threadId) {
|
|
63
64
|
return this.httpClient.get(`${this.basePath}/threads/${threadId}`);
|
|
64
65
|
}
|
|
66
|
+
getThreadReferenceCheck(threadId, permissionLevel = interfaces_1.PermissionLevel.NONE, options = {}) {
|
|
67
|
+
return this.httpClient.get(`${this.basePath}/threads/${threadId}/reference-check`, {
|
|
68
|
+
...options,
|
|
69
|
+
params: { permissionLevel, ...options.params },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
getUserMessageReferenceCheck(messageId, permissionLevel = interfaces_1.PermissionLevel.NONE, options = {}) {
|
|
73
|
+
return this.httpClient.get(`${this.basePath}/messages/${messageId}/reference-check`, {
|
|
74
|
+
...options,
|
|
75
|
+
params: { permissionLevel, ...options.params },
|
|
76
|
+
});
|
|
77
|
+
}
|
|
65
78
|
getLatestThread() {
|
|
66
79
|
return this.httpClient.get(`${this.basePath}/threads/latest`);
|
|
67
80
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AddToProperty, Asset, AssetRevision, Attachment, DeleteAssetQuery, EventCause, EventLevelOverride, Filter, Paginated, RemoveFromProperty, RequestParameter, SearchResultItem, TokenOption, Translation } from '../interfaces';
|
|
1
|
+
import { AddToProperty, Asset, AssetRevision, Attachment, Config, DeleteAssetQuery, EventCause, EventLevelOverride, Filter, Paginated, PermissionLevel, RemoveFromProperty, RequestParameter, SearchResultItem, TokenOption, Translation } from '../interfaces';
|
|
2
2
|
import { CrossPlatformFormData } from '../utils';
|
|
3
3
|
import { DataService } from './data.service';
|
|
4
4
|
import { HttpClientService } from './http-client.service';
|
|
@@ -13,6 +13,7 @@ declare class BaseService extends BaseService_base {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class AssetService extends BaseService {
|
|
15
15
|
constructor(httpClient: HttpClientService);
|
|
16
|
+
getReferenceCheck(id: string, permissionLevel: PermissionLevel, options?: Config): Promise<Asset>;
|
|
16
17
|
count(filter: Filter, options?: TokenOption): Promise<number>;
|
|
17
18
|
deleteOne(id: string, deleteQuery?: DeleteAssetQuery, options?: TokenOption): Promise<any>;
|
|
18
19
|
addAttachment: (id: string, form: CrossPlatformFormData, options?: TokenOption) => Promise<Asset>;
|
|
@@ -20,6 +20,12 @@ class AssetService extends BaseService {
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
+
getReferenceCheck(id, permissionLevel, options = {}) {
|
|
24
|
+
return this.httpClient.get(`${this.basePath}/${id}/reference-check`, {
|
|
25
|
+
...options,
|
|
26
|
+
params: { ...options.params, permissionLevel },
|
|
27
|
+
});
|
|
28
|
+
}
|
|
23
29
|
count(filter, options = {}) {
|
|
24
30
|
const params = { filter: (0, utils_1.getFilterString)(filter) };
|
|
25
31
|
return this.httpClient.get(`${this.basePath}/count`, { params, ...options });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Config, Content, ReturnType, TokenOption } from '../interfaces';
|
|
1
|
+
import { Config, Content, PermissionLevel, ReturnType, TokenOption } from '../interfaces';
|
|
2
2
|
import { CrossPlatformFormData } from '../utils';
|
|
3
3
|
import { DataService } from './data.service';
|
|
4
4
|
import { HttpClientService } from './http-client.service';
|
|
@@ -13,6 +13,7 @@ declare class BaseService extends BaseService_base {
|
|
|
13
13
|
}
|
|
14
14
|
export declare class ContentService extends BaseService {
|
|
15
15
|
constructor(httpClient: HttpClientService);
|
|
16
|
+
getReferenceCheck(id: string, permissionLevel: PermissionLevel, options?: Config): Promise<Content>;
|
|
16
17
|
upload: (form: CrossPlatformFormData, options?: Config) => Promise<Content>;
|
|
17
18
|
download(id: string, raw?: boolean, options?: TokenOption): Promise<Blob | ArrayBuffer>;
|
|
18
19
|
download(id: string, returnType: ReturnType.TEXT, options?: TokenOption): Promise<string>;
|
|
@@ -22,6 +22,12 @@ class ContentService extends BaseService {
|
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
+
getReferenceCheck(id, permissionLevel, options = {}) {
|
|
26
|
+
return this.httpClient.get(`${this.basePath}/${id}/reference-check`, {
|
|
27
|
+
...options,
|
|
28
|
+
params: { ...options.params, permissionLevel },
|
|
29
|
+
});
|
|
30
|
+
}
|
|
25
31
|
async download(id, second, options = {}) {
|
|
26
32
|
let returnType;
|
|
27
33
|
if (typeof second === 'boolean' || second == null) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event, EventCountByAsset, TokenOption } from '../interfaces';
|
|
1
|
+
import { Config, Event, EventCountByAsset, PermissionLevel, TokenOption } from '../interfaces';
|
|
2
2
|
import { DataService } from './data.service';
|
|
3
3
|
import { HttpClientService } from './http-client.service';
|
|
4
4
|
import { ShareService } from './share.service';
|
|
@@ -9,6 +9,7 @@ declare class BaseService extends BaseService_base {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class EventService extends BaseService {
|
|
11
11
|
constructor(httpClient: HttpClientService);
|
|
12
|
+
getReferenceCheck(id: string, permissionLevel: PermissionLevel, options?: Config): Promise<Event>;
|
|
12
13
|
getEventCountByAsset(assetId: string, options?: TokenOption): Promise<EventCountByAsset>;
|
|
13
14
|
getLastEventByAssetAndGroup(assetId: string, group: string, options?: TokenOption): Promise<Event>;
|
|
14
15
|
getLastEventByAssetAndGroups(assetId: string, groups: string[], options?: TokenOption): Promise<Record<string, string>>;
|
|
@@ -10,6 +10,12 @@ class EventService extends BaseService {
|
|
|
10
10
|
constructor(httpClient) {
|
|
11
11
|
super(httpClient, '/events');
|
|
12
12
|
}
|
|
13
|
+
getReferenceCheck(id, permissionLevel, options = {}) {
|
|
14
|
+
return this.httpClient.get(`${this.basePath}/${id}/reference-check`, {
|
|
15
|
+
...options,
|
|
16
|
+
params: { ...options.params, permissionLevel },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
13
19
|
getEventCountByAsset(assetId, options = {}) {
|
|
14
20
|
return this.httpClient.get(`${this.basePath}/countByAsset/${assetId}`, options);
|
|
15
21
|
}
|
|
@@ -71,3 +71,4 @@ Object.defineProperty(exports, "UserService", { enumerable: true, get: function
|
|
|
71
71
|
var vault_service_1 = require("./vault.service");
|
|
72
72
|
Object.defineProperty(exports, "VaultService", { enumerable: true, get: function () { return vault_service_1.VaultService; } });
|
|
73
73
|
tslib_1.__exportStar(require("./authz"), exports);
|
|
74
|
+
tslib_1.__exportStar(require("./knowledge.service"), exports);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { APIBase } from '../api-base';
|
|
2
|
+
import type { Config, ConfirmKnowledge, CreateKnowledge, KnowledgeBacklinkQuery, KnowledgeBatch, KnowledgeHome, KnowledgeList, KnowledgePage, KnowledgeQuery, KnowledgeRevision, KnowledgeVersion, UpdateKnowledge } from '../interfaces';
|
|
3
|
+
import { HttpClientService } from './http-client.service';
|
|
4
|
+
export declare class KnowledgeService extends APIBase {
|
|
5
|
+
constructor(httpClient: HttpClientService);
|
|
6
|
+
addOne(dto: CreateKnowledge, options?: Config): Promise<KnowledgePage>;
|
|
7
|
+
getOne(id: string, options?: Config): Promise<KnowledgePage>;
|
|
8
|
+
getMany(query?: KnowledgeQuery, options?: Config): Promise<KnowledgeList>;
|
|
9
|
+
getHome(query?: KnowledgeQuery, options?: Config): Promise<KnowledgeHome>;
|
|
10
|
+
getBacklinks(query: KnowledgeBacklinkQuery, options?: Config): Promise<KnowledgeList>;
|
|
11
|
+
getRelated(id: string, query?: Pick<KnowledgeQuery, 'cursor' | 'limit'>, options?: Config): Promise<KnowledgeList>;
|
|
12
|
+
getRevision(id: string, revision: number, options?: Config): Promise<KnowledgeRevision>;
|
|
13
|
+
readBatch(ids: string[], options?: Config): Promise<KnowledgeBatch>;
|
|
14
|
+
updateOne(id: string, dto: UpdateKnowledge, options?: Config): Promise<KnowledgePage>;
|
|
15
|
+
confirm(id: string, dto: ConfirmKnowledge, options?: Config): Promise<KnowledgePage>;
|
|
16
|
+
withdraw(id: string, dto: KnowledgeVersion, options?: Config): Promise<KnowledgePage>;
|
|
17
|
+
restore(id: string, dto: KnowledgeVersion, options?: Config): Promise<KnowledgePage>;
|
|
18
|
+
/** Permanently deletes all pages and revisions of an organization; for organization deletion only. */
|
|
19
|
+
purgeOrganization(organizationId: string, options?: Config): Promise<{
|
|
20
|
+
deleted: number;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnowledgeService = void 0;
|
|
4
|
+
const api_base_1 = require("../api-base");
|
|
5
|
+
class KnowledgeService extends api_base_1.APIBase {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
super(httpClient, '/knowledge');
|
|
8
|
+
}
|
|
9
|
+
addOne(dto, options = {}) {
|
|
10
|
+
return this.httpClient.post(this.basePath, dto, options);
|
|
11
|
+
}
|
|
12
|
+
getOne(id, options = {}) {
|
|
13
|
+
return this.httpClient.get(`${this.basePath}/${encodeURIComponent(id)}`, options);
|
|
14
|
+
}
|
|
15
|
+
getMany(query = {}, options = {}) {
|
|
16
|
+
return this.httpClient.get(this.basePath, { ...options, params: query });
|
|
17
|
+
}
|
|
18
|
+
getHome(query = {}, options = {}) {
|
|
19
|
+
return this.httpClient.get(`${this.basePath}/home`, { ...options, params: query });
|
|
20
|
+
}
|
|
21
|
+
getBacklinks(query, options = {}) {
|
|
22
|
+
return this.httpClient.get(`${this.basePath}/backlinks`, { ...options, params: query });
|
|
23
|
+
}
|
|
24
|
+
getRelated(id, query = {}, options = {}) {
|
|
25
|
+
return this.httpClient.get(`${this.basePath}/${encodeURIComponent(id)}/related`, { ...options, params: query });
|
|
26
|
+
}
|
|
27
|
+
getRevision(id, revision, options = {}) {
|
|
28
|
+
return this.httpClient.get(`${this.basePath}/${encodeURIComponent(id)}/revisions/${revision}`, options);
|
|
29
|
+
}
|
|
30
|
+
readBatch(ids, options = {}) {
|
|
31
|
+
return this.httpClient.post(`${this.basePath}/read-batch`, { ids }, options);
|
|
32
|
+
}
|
|
33
|
+
updateOne(id, dto, options = {}) {
|
|
34
|
+
return this.httpClient.patch(`${this.basePath}/${encodeURIComponent(id)}`, dto, options);
|
|
35
|
+
}
|
|
36
|
+
confirm(id, dto, options = {}) {
|
|
37
|
+
return this.httpClient.post(`${this.basePath}/${encodeURIComponent(id)}/confirm`, dto, options);
|
|
38
|
+
}
|
|
39
|
+
withdraw(id, dto, options = {}) {
|
|
40
|
+
return this.httpClient.post(`${this.basePath}/${encodeURIComponent(id)}/withdraw`, dto, options);
|
|
41
|
+
}
|
|
42
|
+
restore(id, dto, options = {}) {
|
|
43
|
+
return this.httpClient.post(`${this.basePath}/${encodeURIComponent(id)}/restore`, dto, options);
|
|
44
|
+
}
|
|
45
|
+
/** Permanently deletes all pages and revisions of an organization; for organization deletion only. */
|
|
46
|
+
purgeOrganization(organizationId, options = {}) {
|
|
47
|
+
return this.httpClient.delete(`${this.basePath}/organizations/${encodeURIComponent(organizationId)}`, options);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.KnowledgeService = KnowledgeService;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { APIBase } from '../api-base';
|
|
2
|
-
import { LogbookEntry, LogbookEntryDto, Paginated, TokenOption } from '../interfaces';
|
|
2
|
+
import { Config, LogbookEntry, LogbookEntryDto, Paginated, PermissionLevel, TokenOption } from '../interfaces';
|
|
3
3
|
import { HttpClientService } from './http-client.service';
|
|
4
4
|
export declare class LogbookService extends APIBase {
|
|
5
5
|
constructor(httpClient: HttpClientService);
|
|
6
|
+
getReferenceCheck(entryId: string, permissionLevel: PermissionLevel, options?: Config): Promise<LogbookEntry>;
|
|
6
7
|
getEntries(taskId: string, limit?: number, offset?: number, options?: TokenOption): Promise<Paginated<LogbookEntry>>;
|
|
7
8
|
getEntriesByIds(ids: string[], options?: TokenOption): Promise<LogbookEntry[]>;
|
|
8
9
|
addEntry(taskId: string, entry: LogbookEntryDto, options?: TokenOption): Promise<LogbookEntry>;
|
|
@@ -6,6 +6,12 @@ class LogbookService extends api_base_1.APIBase {
|
|
|
6
6
|
constructor(httpClient) {
|
|
7
7
|
super(httpClient, '/tasks/logbook');
|
|
8
8
|
}
|
|
9
|
+
getReferenceCheck(entryId, permissionLevel, options = {}) {
|
|
10
|
+
return this.httpClient.get(`${this.basePath}/${entryId}/reference-check`, {
|
|
11
|
+
...options,
|
|
12
|
+
params: { ...options.params, permissionLevel },
|
|
13
|
+
});
|
|
14
|
+
}
|
|
9
15
|
getEntries(taskId, limit = 50, offset = 0, options = {}) {
|
|
10
16
|
return this.httpClient.get(this.basePath, {
|
|
11
17
|
...options,
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { APIBase } from '../api-base';
|
|
2
|
-
import { CreateReferenceDto, ObjectReference, ObjectReferenceType, Paginated, ReferencesQuery
|
|
2
|
+
import { Config, CreateReferenceDto, ObjectReference, ObjectReferenceType, Paginated, ReferencesQuery } from '../interfaces';
|
|
3
3
|
import { HttpClientService } from './http-client.service';
|
|
4
4
|
export declare class ObjectReferenceService extends APIBase {
|
|
5
5
|
constructor(httpClient: HttpClientService);
|
|
6
|
-
find(query: ReferencesQuery, options?:
|
|
7
|
-
findAll(objId: string, options?:
|
|
8
|
-
create(dto: CreateReferenceDto, options?:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
checkConnection(srcId: string, tgtId: string, type?: ObjectReferenceType, options?: TokenOption): Promise<boolean>;
|
|
6
|
+
find(query: ReferencesQuery, options?: Config): Promise<Paginated<ObjectReference>>;
|
|
7
|
+
findAll(objId: string, options?: Config): Promise<ObjectReference[]>;
|
|
8
|
+
create(dto: CreateReferenceDto, options?: Config): Promise<ObjectReference>;
|
|
9
|
+
deleteById(refId: string, options?: Config): Promise<void>;
|
|
10
|
+
deleteByReference(src: string, tgt: string, relType: ObjectReferenceType, options?: Config): Promise<void>;
|
|
11
|
+
checkConnection(srcId: string, tgtId: string, type?: ObjectReferenceType, options?: Config): Promise<boolean>;
|
|
13
12
|
}
|
|
@@ -21,6 +21,15 @@ class ObjectReferenceService extends api_base_1.APIBase {
|
|
|
21
21
|
if (query.objIsSrc === true) {
|
|
22
22
|
params.append('objIsSrc', query.objIsSrc.toString());
|
|
23
23
|
}
|
|
24
|
+
if (query.limit !== undefined) {
|
|
25
|
+
params.append('limit', query.limit.toString());
|
|
26
|
+
}
|
|
27
|
+
if (query.page !== undefined) {
|
|
28
|
+
params.append('page', query.page.toString());
|
|
29
|
+
}
|
|
30
|
+
if (query.sort) {
|
|
31
|
+
params.append('sort', query.sort);
|
|
32
|
+
}
|
|
24
33
|
return await this.httpClient.get(`${this.basePath}?${params.toString()}`, options);
|
|
25
34
|
}
|
|
26
35
|
async findAll(objId, options = {}) {
|
|
@@ -29,9 +38,6 @@ class ObjectReferenceService extends api_base_1.APIBase {
|
|
|
29
38
|
async create(dto, options = {}) {
|
|
30
39
|
return await this.httpClient.post(this.basePath, dto, options);
|
|
31
40
|
}
|
|
32
|
-
async update(referenceId, updateData, options = {}) {
|
|
33
|
-
return await this.httpClient.put(`${this.basePath}/${referenceId}`, updateData, options);
|
|
34
|
-
}
|
|
35
41
|
async deleteById(refId, options = {}) {
|
|
36
42
|
await this.httpClient.delete(`${this.basePath}/${refId}`, options);
|
|
37
43
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Paginated, Task, TokenOption } from '../interfaces';
|
|
1
|
+
import { Config, Paginated, PermissionLevel, Task, TokenOption } from '../interfaces';
|
|
2
2
|
import { DataService } from './data.service';
|
|
3
3
|
import { HttpClientService } from './http-client.service';
|
|
4
4
|
import { ShareService } from './share.service';
|
|
@@ -20,6 +20,7 @@ export interface CreateAbsenceRequest {
|
|
|
20
20
|
}
|
|
21
21
|
export declare class TaskService extends BaseService {
|
|
22
22
|
constructor(httpClient: HttpClientService);
|
|
23
|
+
getReferenceCheck(id: string, permissionLevel: PermissionLevel, options?: Config): Promise<Task>;
|
|
23
24
|
createTaskAttachedToAsset(dto: any, options?: TokenOption): Promise<Task>;
|
|
24
25
|
findByName(name: string, options?: TokenOption): Promise<Paginated<Task>>;
|
|
25
26
|
findByAsset(assetId: string, options?: TokenOption): Promise<Paginated<Task>>;
|
|
@@ -11,6 +11,12 @@ class TaskService extends BaseService {
|
|
|
11
11
|
constructor(httpClient) {
|
|
12
12
|
super(httpClient, '/tasks');
|
|
13
13
|
}
|
|
14
|
+
getReferenceCheck(id, permissionLevel, options = {}) {
|
|
15
|
+
return this.httpClient.get(`${this.basePath}/${id}/reference-check`, {
|
|
16
|
+
...options,
|
|
17
|
+
params: { ...options.params, permissionLevel },
|
|
18
|
+
});
|
|
19
|
+
}
|
|
14
20
|
// we may not need this method (already have the addOne method from ShareService)
|
|
15
21
|
createTaskAttachedToAsset(dto, options = {}) {
|
|
16
22
|
return this.httpClient.post(this.basePath, dto, options);
|