@peers-app/peers-sdk 0.1.4
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/README.md +1 -0
- package/dist/context/data-context.d.ts +31 -0
- package/dist/context/data-context.js +56 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.js +19 -0
- package/dist/context/user-context-singleton.d.ts +11 -0
- package/dist/context/user-context-singleton.js +121 -0
- package/dist/context/user-context.d.ts +55 -0
- package/dist/context/user-context.js +205 -0
- package/dist/data/assistants.d.ts +68 -0
- package/dist/data/assistants.js +64 -0
- package/dist/data/change-tracking.d.ts +219 -0
- package/dist/data/change-tracking.js +119 -0
- package/dist/data/channels.d.ts +29 -0
- package/dist/data/channels.js +25 -0
- package/dist/data/data-locks.d.ts +37 -0
- package/dist/data/data-locks.js +180 -0
- package/dist/data/data-locks.test.d.ts +1 -0
- package/dist/data/data-locks.test.js +456 -0
- package/dist/data/device-sync-info.d.ts +19 -0
- package/dist/data/device-sync-info.js +24 -0
- package/dist/data/devices.d.ts +51 -0
- package/dist/data/devices.js +36 -0
- package/dist/data/embeddings.d.ts +47 -0
- package/dist/data/embeddings.js +36 -0
- package/dist/data/files/file-read-stream.d.ts +27 -0
- package/dist/data/files/file-read-stream.js +195 -0
- package/dist/data/files/file-write-stream.d.ts +20 -0
- package/dist/data/files/file-write-stream.js +113 -0
- package/dist/data/files/file.types.d.ts +47 -0
- package/dist/data/files/file.types.js +55 -0
- package/dist/data/files/files.d.ts +28 -0
- package/dist/data/files/files.js +127 -0
- package/dist/data/files/files.test.d.ts +1 -0
- package/dist/data/files/files.test.js +728 -0
- package/dist/data/files/index.d.ts +4 -0
- package/dist/data/files/index.js +23 -0
- package/dist/data/group-member-roles.d.ts +9 -0
- package/dist/data/group-member-roles.js +25 -0
- package/dist/data/group-members.d.ts +39 -0
- package/dist/data/group-members.js +68 -0
- package/dist/data/group-members.test.d.ts +1 -0
- package/dist/data/group-members.test.js +287 -0
- package/dist/data/group-permissions.d.ts +8 -0
- package/dist/data/group-permissions.js +73 -0
- package/dist/data/group-share.d.ts +50 -0
- package/dist/data/group-share.js +196 -0
- package/dist/data/groups.d.ts +50 -0
- package/dist/data/groups.js +73 -0
- package/dist/data/groups.test.d.ts +1 -0
- package/dist/data/groups.test.js +153 -0
- package/dist/data/index.d.ts +31 -0
- package/dist/data/index.js +47 -0
- package/dist/data/knowledge/knowledge-frames.d.ts +34 -0
- package/dist/data/knowledge/knowledge-frames.js +34 -0
- package/dist/data/knowledge/knowledge-links.d.ts +30 -0
- package/dist/data/knowledge/knowledge-links.js +25 -0
- package/dist/data/knowledge/knowledge-values.d.ts +35 -0
- package/dist/data/knowledge/knowledge-values.js +35 -0
- package/dist/data/knowledge/peer-types.d.ts +112 -0
- package/dist/data/knowledge/peer-types.js +27 -0
- package/dist/data/knowledge/predicates.d.ts +34 -0
- package/dist/data/knowledge/predicates.js +27 -0
- package/dist/data/messages.d.ts +57 -0
- package/dist/data/messages.js +97 -0
- package/dist/data/orm/client-proxy.data-source.d.ts +27 -0
- package/dist/data/orm/client-proxy.data-source.js +65 -0
- package/dist/data/orm/cursor.d.ts +25 -0
- package/dist/data/orm/cursor.js +47 -0
- package/dist/data/orm/cursor.test.d.ts +1 -0
- package/dist/data/orm/cursor.test.js +315 -0
- package/dist/data/orm/data-query.d.ts +96 -0
- package/dist/data/orm/data-query.js +208 -0
- package/dist/data/orm/data-query.mongo.d.ts +17 -0
- package/dist/data/orm/data-query.mongo.js +267 -0
- package/dist/data/orm/data-query.mongo.test.d.ts +1 -0
- package/dist/data/orm/data-query.mongo.test.js +398 -0
- package/dist/data/orm/data-query.sqlite.d.ts +14 -0
- package/dist/data/orm/data-query.sqlite.js +297 -0
- package/dist/data/orm/data-query.sqlite.test.d.ts +1 -0
- package/dist/data/orm/data-query.sqlite.test.js +377 -0
- package/dist/data/orm/data-query.test.d.ts +1 -0
- package/dist/data/orm/data-query.test.js +553 -0
- package/dist/data/orm/decorators.d.ts +6 -0
- package/dist/data/orm/decorators.js +21 -0
- package/dist/data/orm/dependency-injection.test.d.ts +1 -0
- package/dist/data/orm/dependency-injection.test.js +171 -0
- package/dist/data/orm/doc.d.ts +26 -0
- package/dist/data/orm/doc.js +124 -0
- package/dist/data/orm/event-registry.d.ts +24 -0
- package/dist/data/orm/event-registry.js +40 -0
- package/dist/data/orm/event-registry.test.d.ts +1 -0
- package/dist/data/orm/event-registry.test.js +44 -0
- package/dist/data/orm/factory.d.ts +8 -0
- package/dist/data/orm/factory.js +147 -0
- package/dist/data/orm/index.d.ts +16 -0
- package/dist/data/orm/index.js +32 -0
- package/dist/data/orm/multi-cursors.d.ts +11 -0
- package/dist/data/orm/multi-cursors.js +146 -0
- package/dist/data/orm/multi-cursors.test.d.ts +1 -0
- package/dist/data/orm/multi-cursors.test.js +455 -0
- package/dist/data/orm/sql-db.d.ts +6 -0
- package/dist/data/orm/sql-db.js +2 -0
- package/dist/data/orm/sql.data-source.d.ts +38 -0
- package/dist/data/orm/sql.data-source.js +379 -0
- package/dist/data/orm/sql.data-source.test.d.ts +1 -0
- package/dist/data/orm/sql.data-source.test.js +406 -0
- package/dist/data/orm/subscribable.data-source.d.ts +25 -0
- package/dist/data/orm/subscribable.data-source.js +72 -0
- package/dist/data/orm/table-container-events.test.d.ts +1 -0
- package/dist/data/orm/table-container-events.test.js +93 -0
- package/dist/data/orm/table-container.d.ts +39 -0
- package/dist/data/orm/table-container.js +96 -0
- package/dist/data/orm/table-definitions.system.d.ts +9 -0
- package/dist/data/orm/table-definitions.system.js +29 -0
- package/dist/data/orm/table-definitions.type.d.ts +19 -0
- package/dist/data/orm/table-definitions.type.js +2 -0
- package/dist/data/orm/table-dependencies.d.ts +32 -0
- package/dist/data/orm/table-dependencies.js +2 -0
- package/dist/data/orm/table.d.ts +42 -0
- package/dist/data/orm/table.event-source.test.d.ts +1 -0
- package/dist/data/orm/table.event-source.test.js +341 -0
- package/dist/data/orm/table.js +244 -0
- package/dist/data/orm/types.d.ts +20 -0
- package/dist/data/orm/types.js +115 -0
- package/dist/data/orm/types.test.d.ts +1 -0
- package/dist/data/orm/types.test.js +71 -0
- package/dist/data/package-permissions.d.ts +7 -0
- package/dist/data/package-permissions.js +18 -0
- package/dist/data/packages.d.ts +92 -0
- package/dist/data/packages.js +90 -0
- package/dist/data/peer-events/peer-event-handlers.d.ts +21 -0
- package/dist/data/peer-events/peer-event-handlers.js +28 -0
- package/dist/data/peer-events/peer-event-types.d.ts +119 -0
- package/dist/data/peer-events/peer-event-types.js +29 -0
- package/dist/data/peer-events/peer-events.d.ts +41 -0
- package/dist/data/peer-events/peer-events.js +102 -0
- package/dist/data/persistent-vars.d.ts +87 -0
- package/dist/data/persistent-vars.js +230 -0
- package/dist/data/tool-tests.d.ts +37 -0
- package/dist/data/tool-tests.js +27 -0
- package/dist/data/tools.d.ts +358 -0
- package/dist/data/tools.js +48 -0
- package/dist/data/user-permissions.d.ts +15 -0
- package/dist/data/user-permissions.js +39 -0
- package/dist/data/user-permissions.test.d.ts +1 -0
- package/dist/data/user-permissions.test.js +252 -0
- package/dist/data/users.d.ts +38 -0
- package/dist/data/users.js +73 -0
- package/dist/data/workflow-logs.d.ts +106 -0
- package/dist/data/workflow-logs.js +67 -0
- package/dist/data/workflow-runs.d.ts +103 -0
- package/dist/data/workflow-runs.js +313 -0
- package/dist/data/workflows.d.ts +16 -0
- package/dist/data/workflows.js +21 -0
- package/dist/device/connection.d.ts +41 -0
- package/dist/device/connection.js +249 -0
- package/dist/device/connection.test.d.ts +1 -0
- package/dist/device/connection.test.js +292 -0
- package/dist/device/device-election.d.ts +36 -0
- package/dist/device/device-election.js +137 -0
- package/dist/device/device.d.ts +22 -0
- package/dist/device/device.js +110 -0
- package/dist/device/device.test.d.ts +1 -0
- package/dist/device/device.test.js +203 -0
- package/dist/device/get-trust-level.d.ts +3 -0
- package/dist/device/get-trust-level.js +87 -0
- package/dist/device/socket.type.d.ts +20 -0
- package/dist/device/socket.type.js +15 -0
- package/dist/device/streamed-socket.d.ts +27 -0
- package/dist/device/streamed-socket.js +154 -0
- package/dist/device/streamed-socket.test.d.ts +1 -0
- package/dist/device/streamed-socket.test.js +44 -0
- package/dist/events.d.ts +35 -0
- package/dist/events.js +128 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +50 -0
- package/dist/keys.d.ts +51 -0
- package/dist/keys.js +234 -0
- package/dist/keys.test.d.ts +1 -0
- package/dist/keys.test.js +215 -0
- package/dist/mentions.d.ts +9 -0
- package/dist/mentions.js +46 -0
- package/dist/observable.d.ts +19 -0
- package/dist/observable.js +112 -0
- package/dist/observable.test.d.ts +1 -0
- package/dist/observable.test.js +183 -0
- package/dist/package-loader/get-require.d.ts +10 -0
- package/dist/package-loader/get-require.js +31 -0
- package/dist/package-loader/index.d.ts +1 -0
- package/dist/package-loader/index.js +17 -0
- package/dist/package-loader/package-loader.d.ts +16 -0
- package/dist/package-loader/package-loader.js +102 -0
- package/dist/peers-ui/peers-ui.d.ts +15 -0
- package/dist/peers-ui/peers-ui.js +23 -0
- package/dist/peers-ui/peers-ui.types.d.ts +35 -0
- package/dist/peers-ui/peers-ui.types.js +3 -0
- package/dist/rpc-types.d.ts +45 -0
- package/dist/rpc-types.js +47 -0
- package/dist/serial-json.d.ts +5 -0
- package/dist/serial-json.js +186 -0
- package/dist/serial-json.test.d.ts +1 -0
- package/dist/serial-json.test.js +86 -0
- package/dist/system-ids.d.ts +6 -0
- package/dist/system-ids.js +10 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/tools-factory.d.ts +5 -0
- package/dist/tools/tools-factory.js +34 -0
- package/dist/types/app-nav.d.ts +18 -0
- package/dist/types/app-nav.js +10 -0
- package/dist/types/assistant-runner-args.d.ts +9 -0
- package/dist/types/assistant-runner-args.js +2 -0
- package/dist/types/field-type.d.ts +37 -0
- package/dist/types/field-type.js +26 -0
- package/dist/types/peer-device.d.ts +40 -0
- package/dist/types/peer-device.js +14 -0
- package/dist/types/peers-package.d.ts +23 -0
- package/dist/types/peers-package.js +2 -0
- package/dist/types/workflow-logger.d.ts +2 -0
- package/dist/types/workflow-logger.js +2 -0
- package/dist/types/workflow-run-context.d.ts +12 -0
- package/dist/types/workflow-run-context.js +2 -0
- package/dist/types/workflow.d.ts +72 -0
- package/dist/types/workflow.js +24 -0
- package/dist/types/zod-types.d.ts +7 -0
- package/dist/types/zod-types.js +12 -0
- package/dist/users.query.d.ts +13 -0
- package/dist/users.query.js +134 -0
- package/dist/utils.d.ts +39 -0
- package/dist/utils.js +240 -0
- package/dist/utils.test.d.ts +1 -0
- package/dist/utils.test.js +140 -0
- package/package.json +50 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnowledgeLinks = KnowledgeLinks;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const types_1 = require("../orm/types");
|
|
6
|
+
const user_context_singleton_1 = require("../../context/user-context-singleton");
|
|
7
|
+
const table_definitions_system_1 = require("../orm/table-definitions.system");
|
|
8
|
+
const zod_types_1 = require("../../types/zod-types");
|
|
9
|
+
const knowledgeLinkSchema = zod_1.z.object({
|
|
10
|
+
knowledgeLinkId: zod_types_1.zodPeerId,
|
|
11
|
+
subjectValueId: zod_types_1.zodPeerId.describe('The knowledge entry that is the subject of the link'),
|
|
12
|
+
predicateId: zod_types_1.zodPeerId.describe('The predicate of the knowledge link'),
|
|
13
|
+
predicateValue: zod_1.z.any().describe('The value of the predicate'),
|
|
14
|
+
objectValueId: zod_types_1.zodPeerId.optional().describe('The knowledge entry that is the object of the link'),
|
|
15
|
+
});
|
|
16
|
+
const metaData = {
|
|
17
|
+
name: 'KnowledgeLinks',
|
|
18
|
+
description: "The knowledge links in the system",
|
|
19
|
+
primaryKeyName: 'knowledgeLinkId',
|
|
20
|
+
fields: (0, types_1.schemaToFields)(knowledgeLinkSchema),
|
|
21
|
+
};
|
|
22
|
+
(0, table_definitions_system_1.registerSystemTableDefinition)(metaData, knowledgeLinkSchema);
|
|
23
|
+
function KnowledgeLinks(dataContext) {
|
|
24
|
+
return (0, user_context_singleton_1.getTableContainer)(dataContext).getTable(metaData, knowledgeLinkSchema);
|
|
25
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { DataContext } from "../../context/data-context";
|
|
3
|
+
export declare const knowledgeValueSchema: z.ZodObject<{
|
|
4
|
+
knowledgeValueId: z.ZodEffects<z.ZodString, string, string>;
|
|
5
|
+
peerTypeId: z.ZodEffects<z.ZodString, string, string>;
|
|
6
|
+
value: z.ZodObject<{}, "strip", z.ZodAny, z.objectOutputType<{}, z.ZodAny, "strip">, z.objectInputType<{}, z.ZodAny, "strip">>;
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
lastModified: z.ZodOptional<z.ZodDate>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
name: string;
|
|
11
|
+
value: {} & {
|
|
12
|
+
[k: string]: any;
|
|
13
|
+
};
|
|
14
|
+
knowledgeValueId: string;
|
|
15
|
+
peerTypeId: string;
|
|
16
|
+
lastModified?: Date | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
name: string;
|
|
19
|
+
value: {} & {
|
|
20
|
+
[k: string]: any;
|
|
21
|
+
};
|
|
22
|
+
knowledgeValueId: string;
|
|
23
|
+
peerTypeId: string;
|
|
24
|
+
lastModified?: Date | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
export type IKnowledgeValue = z.infer<typeof knowledgeValueSchema>;
|
|
27
|
+
export declare function KnowledgeValues(dataContext?: DataContext): import("../orm").Table<{
|
|
28
|
+
name: string;
|
|
29
|
+
value: {} & {
|
|
30
|
+
[k: string]: any;
|
|
31
|
+
};
|
|
32
|
+
knowledgeValueId: string;
|
|
33
|
+
peerTypeId: string;
|
|
34
|
+
lastModified?: Date | undefined;
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.knowledgeValueSchema = void 0;
|
|
4
|
+
exports.KnowledgeValues = KnowledgeValues;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const types_1 = require("../orm/types");
|
|
7
|
+
const user_context_singleton_1 = require("../../context/user-context-singleton");
|
|
8
|
+
const table_definitions_system_1 = require("../orm/table-definitions.system");
|
|
9
|
+
const zod_types_1 = require("../../types/zod-types");
|
|
10
|
+
exports.knowledgeValueSchema = zod_1.z.object({
|
|
11
|
+
knowledgeValueId: zod_types_1.zodPeerId,
|
|
12
|
+
peerTypeId: zod_types_1.zodPeerId.describe('The id of the peer type definition of the knowledge value.'),
|
|
13
|
+
value: zod_types_1.zodAnyObject.describe('The knowledge value. It must conform to the value type schema'),
|
|
14
|
+
// For several reasons (mostly UI and query related) it's useful to have an explicit, top-level name field for everything.
|
|
15
|
+
// A disadvantage is that this can be redundant with the name field of the value type (if it exists).
|
|
16
|
+
// An advantage is this gives us names for simple values
|
|
17
|
+
// Something weird is names for knowledge values of type `none`. But a knowledge value of type `none` is weird by itself. (what is it?)
|
|
18
|
+
name: zod_1.z.string().describe('The name of the knowledge value.'),
|
|
19
|
+
lastModified: zod_1.z.date().optional().describe('The last time the knowledge value was modified.'),
|
|
20
|
+
});
|
|
21
|
+
const metaData = {
|
|
22
|
+
name: 'KnowledgeValues',
|
|
23
|
+
description: "The knowledge values in the system",
|
|
24
|
+
primaryKeyName: 'knowledgeValueId',
|
|
25
|
+
fields: (0, types_1.schemaToFields)(exports.knowledgeValueSchema),
|
|
26
|
+
indexes: [
|
|
27
|
+
{ fields: ['peerTypeId'] },
|
|
28
|
+
{ fields: ['name'] },
|
|
29
|
+
{ fields: ['lastModified'] },
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
(0, table_definitions_system_1.registerSystemTableDefinition)(metaData, exports.knowledgeValueSchema);
|
|
33
|
+
function KnowledgeValues(dataContext) {
|
|
34
|
+
return (0, user_context_singleton_1.getTableContainer)(dataContext).getTable(metaData, exports.knowledgeValueSchema);
|
|
35
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { DataContext } from "../../context/data-context";
|
|
3
|
+
declare const valueTypeSchema: z.ZodObject<{
|
|
4
|
+
peerTypeId: z.ZodEffects<z.ZodString, string, string>;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
schema: z.ZodObject<{
|
|
8
|
+
type: z.ZodNativeEnum<typeof import("../tools").IOSchemaType>;
|
|
9
|
+
fields: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
10
|
+
name: z.ZodString;
|
|
11
|
+
description: z.ZodOptional<z.ZodString>;
|
|
12
|
+
type: z.ZodNativeEnum<typeof import("../..").FieldType>;
|
|
13
|
+
defaultValue: z.ZodOptional<z.ZodAny>;
|
|
14
|
+
optional: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
+
isArray: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
subType: z.ZodOptional<z.ZodString>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
name: string;
|
|
19
|
+
type: import("../..").FieldType;
|
|
20
|
+
optional?: boolean | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
defaultValue?: any;
|
|
23
|
+
isArray?: boolean | undefined;
|
|
24
|
+
subType?: string | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
name: string;
|
|
27
|
+
type: import("../..").FieldType;
|
|
28
|
+
optional?: boolean | undefined;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
defaultValue?: any;
|
|
31
|
+
isArray?: boolean | undefined;
|
|
32
|
+
subType?: string | undefined;
|
|
33
|
+
}>, "many">>;
|
|
34
|
+
}, "strip", z.ZodTypeAny, {
|
|
35
|
+
type: import("../tools").IOSchemaType;
|
|
36
|
+
fields: {
|
|
37
|
+
name: string;
|
|
38
|
+
type: import("../..").FieldType;
|
|
39
|
+
optional?: boolean | undefined;
|
|
40
|
+
description?: string | undefined;
|
|
41
|
+
defaultValue?: any;
|
|
42
|
+
isArray?: boolean | undefined;
|
|
43
|
+
subType?: string | undefined;
|
|
44
|
+
}[];
|
|
45
|
+
}, {
|
|
46
|
+
type: import("../tools").IOSchemaType;
|
|
47
|
+
fields?: {
|
|
48
|
+
name: string;
|
|
49
|
+
type: import("../..").FieldType;
|
|
50
|
+
optional?: boolean | undefined;
|
|
51
|
+
description?: string | undefined;
|
|
52
|
+
defaultValue?: any;
|
|
53
|
+
isArray?: boolean | undefined;
|
|
54
|
+
subType?: string | undefined;
|
|
55
|
+
}[] | undefined;
|
|
56
|
+
}>;
|
|
57
|
+
iconClass: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, "strip", z.ZodTypeAny, {
|
|
59
|
+
name: string;
|
|
60
|
+
schema: {
|
|
61
|
+
type: import("../tools").IOSchemaType;
|
|
62
|
+
fields: {
|
|
63
|
+
name: string;
|
|
64
|
+
type: import("../..").FieldType;
|
|
65
|
+
optional?: boolean | undefined;
|
|
66
|
+
description?: string | undefined;
|
|
67
|
+
defaultValue?: any;
|
|
68
|
+
isArray?: boolean | undefined;
|
|
69
|
+
subType?: string | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
};
|
|
72
|
+
peerTypeId: string;
|
|
73
|
+
description?: string | undefined;
|
|
74
|
+
iconClass?: string | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
name: string;
|
|
77
|
+
schema: {
|
|
78
|
+
type: import("../tools").IOSchemaType;
|
|
79
|
+
fields?: {
|
|
80
|
+
name: string;
|
|
81
|
+
type: import("../..").FieldType;
|
|
82
|
+
optional?: boolean | undefined;
|
|
83
|
+
description?: string | undefined;
|
|
84
|
+
defaultValue?: any;
|
|
85
|
+
isArray?: boolean | undefined;
|
|
86
|
+
subType?: string | undefined;
|
|
87
|
+
}[] | undefined;
|
|
88
|
+
};
|
|
89
|
+
peerTypeId: string;
|
|
90
|
+
description?: string | undefined;
|
|
91
|
+
iconClass?: string | undefined;
|
|
92
|
+
}>;
|
|
93
|
+
export type IPeerType = z.infer<typeof valueTypeSchema>;
|
|
94
|
+
export declare function PeerTypes(dataContext?: DataContext): import("../orm").Table<{
|
|
95
|
+
name: string;
|
|
96
|
+
schema: {
|
|
97
|
+
type: import("../tools").IOSchemaType;
|
|
98
|
+
fields: {
|
|
99
|
+
name: string;
|
|
100
|
+
type: import("../..").FieldType;
|
|
101
|
+
optional?: boolean | undefined;
|
|
102
|
+
description?: string | undefined;
|
|
103
|
+
defaultValue?: any;
|
|
104
|
+
isArray?: boolean | undefined;
|
|
105
|
+
subType?: string | undefined;
|
|
106
|
+
}[];
|
|
107
|
+
};
|
|
108
|
+
peerTypeId: string;
|
|
109
|
+
description?: string | undefined;
|
|
110
|
+
iconClass?: string | undefined;
|
|
111
|
+
}>;
|
|
112
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PeerTypes = PeerTypes;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const types_1 = require("../orm/types");
|
|
6
|
+
const user_context_singleton_1 = require("../../context/user-context-singleton");
|
|
7
|
+
const table_definitions_system_1 = require("../orm/table-definitions.system");
|
|
8
|
+
const zod_types_1 = require("../../types/zod-types");
|
|
9
|
+
const tools_1 = require("../tools");
|
|
10
|
+
const valueTypeSchema = zod_1.z.object({
|
|
11
|
+
peerTypeId: zod_types_1.zodPeerId,
|
|
12
|
+
name: zod_1.z.string().describe('The name of the peer type'),
|
|
13
|
+
description: zod_1.z.string().optional().describe('The description of the peer type'),
|
|
14
|
+
schema: tools_1.ioSchema.describe('The schema of the peer type'),
|
|
15
|
+
iconClass: zod_1.z.string().optional().describe('The icon class for the peer type'),
|
|
16
|
+
});
|
|
17
|
+
const metaData = {
|
|
18
|
+
name: 'PeerTypes',
|
|
19
|
+
description: "The peer types in the system",
|
|
20
|
+
primaryKeyName: 'peerTypeId',
|
|
21
|
+
iconClassName: 'bi bi-code-square',
|
|
22
|
+
fields: (0, types_1.schemaToFields)(valueTypeSchema),
|
|
23
|
+
};
|
|
24
|
+
(0, table_definitions_system_1.registerSystemTableDefinition)(metaData, valueTypeSchema);
|
|
25
|
+
function PeerTypes(dataContext) {
|
|
26
|
+
return (0, user_context_singleton_1.getTableContainer)(dataContext).getTable(metaData, valueTypeSchema);
|
|
27
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { DataContext } from "../../context/data-context";
|
|
3
|
+
declare const predicateSchema: z.ZodObject<{
|
|
4
|
+
predicateId: z.ZodEffects<z.ZodString, string, string>;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
peerTypeId: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
8
|
+
allowedSubjectValueTypes: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
|
|
9
|
+
allowedObjectValueTypes: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
name: string;
|
|
12
|
+
predicateId: string;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
peerTypeId?: string | undefined;
|
|
15
|
+
allowedSubjectValueTypes?: string[] | undefined;
|
|
16
|
+
allowedObjectValueTypes?: string[] | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
name: string;
|
|
19
|
+
predicateId: string;
|
|
20
|
+
description?: string | undefined;
|
|
21
|
+
peerTypeId?: string | undefined;
|
|
22
|
+
allowedSubjectValueTypes?: string[] | undefined;
|
|
23
|
+
allowedObjectValueTypes?: string[] | undefined;
|
|
24
|
+
}>;
|
|
25
|
+
export type IPredicate = z.infer<typeof predicateSchema>;
|
|
26
|
+
export declare function Predicates(dataContext?: DataContext): import("../orm").Table<{
|
|
27
|
+
name: string;
|
|
28
|
+
predicateId: string;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
peerTypeId?: string | undefined;
|
|
31
|
+
allowedSubjectValueTypes?: string[] | undefined;
|
|
32
|
+
allowedObjectValueTypes?: string[] | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Predicates = Predicates;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const types_1 = require("../orm/types");
|
|
6
|
+
const user_context_singleton_1 = require("../../context/user-context-singleton");
|
|
7
|
+
const table_definitions_system_1 = require("../orm/table-definitions.system");
|
|
8
|
+
const zod_types_1 = require("../../types/zod-types");
|
|
9
|
+
const predicateSchema = zod_1.z.object({
|
|
10
|
+
predicateId: zod_types_1.zodPeerId,
|
|
11
|
+
name: zod_1.z.string().describe('The name of the predicate'),
|
|
12
|
+
description: zod_1.z.string().optional().describe('The description of the predicate'),
|
|
13
|
+
peerTypeId: zod_types_1.zodPeerId.optional().describe('The id of the value type to be included with the predicate'),
|
|
14
|
+
allowedSubjectValueTypes: zod_types_1.zodPeerId.array().optional().describe('The ids of the types that are allowed types of the subject of the predicate value.'),
|
|
15
|
+
allowedObjectValueTypes: zod_types_1.zodPeerId.array().optional().describe('The ids of the types that are allowed types of the object of the predicate value.'),
|
|
16
|
+
});
|
|
17
|
+
const metaData = {
|
|
18
|
+
name: 'Predicates',
|
|
19
|
+
description: "The the predicates in the system",
|
|
20
|
+
primaryKeyName: 'predicateId',
|
|
21
|
+
fields: (0, types_1.schemaToFields)(predicateSchema),
|
|
22
|
+
iconClassName: 'bi bi-node-plus-fill',
|
|
23
|
+
};
|
|
24
|
+
(0, table_definitions_system_1.registerSystemTableDefinition)(metaData, predicateSchema);
|
|
25
|
+
function Predicates(dataContext) {
|
|
26
|
+
return (0, user_context_singleton_1.getTableContainer)(dataContext).getTable(metaData, predicateSchema);
|
|
27
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { DataContext } from "../context/data-context";
|
|
3
|
+
export declare const messageSchema: z.ZodObject<{
|
|
4
|
+
messageId: z.ZodEffects<z.ZodString, string, string>;
|
|
5
|
+
channelId: z.ZodString;
|
|
6
|
+
userId: z.ZodString;
|
|
7
|
+
messageParentId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
assistantId: z.ZodOptional<z.ZodString>;
|
|
9
|
+
message: z.ZodString;
|
|
10
|
+
createdAt: z.ZodDate;
|
|
11
|
+
editedAt: z.ZodOptional<z.ZodDate>;
|
|
12
|
+
fileIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
|
+
vars: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodAny, z.objectOutputType<{}, z.ZodAny, "strip">, z.objectInputType<{}, z.ZodAny, "strip">>>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
message: string;
|
|
16
|
+
createdAt: Date;
|
|
17
|
+
userId: string;
|
|
18
|
+
channelId: string;
|
|
19
|
+
messageId: string;
|
|
20
|
+
assistantId?: string | undefined;
|
|
21
|
+
vars?: z.objectOutputType<{}, z.ZodAny, "strip"> | undefined;
|
|
22
|
+
messageParentId?: string | undefined;
|
|
23
|
+
editedAt?: Date | undefined;
|
|
24
|
+
fileIds?: string[] | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
message: string;
|
|
27
|
+
createdAt: Date;
|
|
28
|
+
userId: string;
|
|
29
|
+
channelId: string;
|
|
30
|
+
messageId: string;
|
|
31
|
+
assistantId?: string | undefined;
|
|
32
|
+
vars?: z.objectInputType<{}, z.ZodAny, "strip"> | undefined;
|
|
33
|
+
messageParentId?: string | undefined;
|
|
34
|
+
editedAt?: Date | undefined;
|
|
35
|
+
fileIds?: string[] | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
export type IMessage = z.infer<typeof messageSchema>;
|
|
38
|
+
export declare function Messages(dataContext?: DataContext): import("./orm").Table<{
|
|
39
|
+
message: string;
|
|
40
|
+
createdAt: Date;
|
|
41
|
+
userId: string;
|
|
42
|
+
channelId: string;
|
|
43
|
+
messageId: string;
|
|
44
|
+
assistantId?: string | undefined;
|
|
45
|
+
vars?: z.objectOutputType<{}, z.ZodAny, "strip"> | undefined;
|
|
46
|
+
messageParentId?: string | undefined;
|
|
47
|
+
editedAt?: Date | undefined;
|
|
48
|
+
fileIds?: string[] | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
interface ISendMessageArgs {
|
|
51
|
+
channelOrThreadIdOrWorkflowRunId: string;
|
|
52
|
+
assistantId?: string;
|
|
53
|
+
messageContent: string;
|
|
54
|
+
}
|
|
55
|
+
export declare function sendMessage(args: ISendMessageArgs): Promise<IMessage>;
|
|
56
|
+
export declare function getThreadVars(message: IMessage): Promise<Record<string, any>>;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.messageSchema = void 0;
|
|
4
|
+
exports.Messages = Messages;
|
|
5
|
+
exports.sendMessage = sendMessage;
|
|
6
|
+
exports.getThreadVars = getThreadVars;
|
|
7
|
+
const types_1 = require("./orm/types");
|
|
8
|
+
const users_1 = require("./users");
|
|
9
|
+
const channels_1 = require("./channels");
|
|
10
|
+
const workflow_runs_1 = require("./workflow-runs");
|
|
11
|
+
const utils_1 = require("../utils");
|
|
12
|
+
const zod_1 = require("zod");
|
|
13
|
+
const zod_types_1 = require("../types/zod-types");
|
|
14
|
+
const user_context_singleton_1 = require("../context/user-context-singleton");
|
|
15
|
+
const table_definitions_system_1 = require("./orm/table-definitions.system");
|
|
16
|
+
exports.messageSchema = zod_1.z.object({
|
|
17
|
+
messageId: zod_types_1.zodPeerId,
|
|
18
|
+
channelId: zod_1.z.string().describe('The id of the channel this message entry belongs to'),
|
|
19
|
+
userId: zod_1.z.string().describe('The id of the user who created this message entry'),
|
|
20
|
+
messageParentId: zod_1.z.string().optional().describe('The id of the parent message entry if this is part of a thread'),
|
|
21
|
+
assistantId: zod_1.z.string().optional().describe(`The id of the user's assistant that created this message entry operating on behalf of the user`),
|
|
22
|
+
message: zod_1.z.string().describe('The markdown content of this message entry'),
|
|
23
|
+
createdAt: zod_1.z.date(),
|
|
24
|
+
editedAt: zod_1.z.date().optional().describe('The time this message entry was last edited, if it was edited'),
|
|
25
|
+
fileIds: zod_1.z.string().array().optional().describe('The ids of files attached to this message entry'),
|
|
26
|
+
vars: zod_types_1.zodAnyObject.optional().describe('The variables that are associated with this message entry'),
|
|
27
|
+
});
|
|
28
|
+
const metaData = {
|
|
29
|
+
name: 'Messages',
|
|
30
|
+
description: 'Messages (chat entries) in a channel',
|
|
31
|
+
primaryKeyName: 'messageId',
|
|
32
|
+
fields: (0, types_1.schemaToFields)(exports.messageSchema),
|
|
33
|
+
indexes: [
|
|
34
|
+
{ fields: ['channelId'] },
|
|
35
|
+
{ fields: ['messageParentId'] },
|
|
36
|
+
{ fields: ['userId'] },
|
|
37
|
+
{ fields: ['assistantId'] },
|
|
38
|
+
{ fields: ['channelId', { name: 'createdAt', order: 'DESC' }, { name: 'messageId', order: 'DESC' }] },
|
|
39
|
+
{ fields: ['messageParentId', 'createdAt', 'messageId'] },
|
|
40
|
+
]
|
|
41
|
+
};
|
|
42
|
+
(0, table_definitions_system_1.registerSystemTableDefinition)(metaData, exports.messageSchema);
|
|
43
|
+
function Messages(dataContext) {
|
|
44
|
+
return (0, user_context_singleton_1.getTableContainer)(dataContext).getTable(metaData, exports.messageSchema);
|
|
45
|
+
}
|
|
46
|
+
async function sendMessage(args) {
|
|
47
|
+
const { channelOrThreadIdOrWorkflowRunId, assistantId, messageContent } = args;
|
|
48
|
+
let channelId = channelOrThreadIdOrWorkflowRunId;
|
|
49
|
+
let parentMessage = await Messages().get(channelOrThreadIdOrWorkflowRunId);
|
|
50
|
+
if (!parentMessage) {
|
|
51
|
+
const workflowRun = await (0, workflow_runs_1.WorkflowRuns)().get(channelOrThreadIdOrWorkflowRunId);
|
|
52
|
+
if (workflowRun) {
|
|
53
|
+
parentMessage = await Messages().get(workflowRun.parentMessageId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (parentMessage) {
|
|
57
|
+
channelId = parentMessage.channelId;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const channel = await (0, channels_1.Channels)().get(channelOrThreadIdOrWorkflowRunId);
|
|
61
|
+
if (!channel) {
|
|
62
|
+
// check if channel is a user id
|
|
63
|
+
const user = await (0, users_1.Users)().get(channelOrThreadIdOrWorkflowRunId);
|
|
64
|
+
if (!user) {
|
|
65
|
+
throw new Error(`Channel ${channelOrThreadIdOrWorkflowRunId} not found. A channel must be a valid channelId or userId or groupId.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const me = await (0, users_1.getMe)();
|
|
70
|
+
const message = await Messages().insert({
|
|
71
|
+
messageId: (0, utils_1.newid)(),
|
|
72
|
+
channelId,
|
|
73
|
+
userId: me.userId,
|
|
74
|
+
messageParentId: parentMessage?.messageParentId ?? parentMessage?.messageId,
|
|
75
|
+
assistantId,
|
|
76
|
+
message: messageContent,
|
|
77
|
+
createdAt: new Date(),
|
|
78
|
+
});
|
|
79
|
+
return message;
|
|
80
|
+
}
|
|
81
|
+
async function getThreadVars(message) {
|
|
82
|
+
const $or = [
|
|
83
|
+
{ messageId: message.messageId },
|
|
84
|
+
];
|
|
85
|
+
if (message.messageParentId) {
|
|
86
|
+
$or.push({ messageId: message.messageParentId });
|
|
87
|
+
}
|
|
88
|
+
const threadMessages = await Messages().list({
|
|
89
|
+
$or
|
|
90
|
+
}, { sortBy: ['createdAt'] });
|
|
91
|
+
// Note that sort order is very important so that newer var values overwrite older ones
|
|
92
|
+
const vars = threadMessages.reduce((acc, message) => {
|
|
93
|
+
Object.assign(acc, message.vars ?? {});
|
|
94
|
+
return acc;
|
|
95
|
+
}, {});
|
|
96
|
+
return vars;
|
|
97
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { DataFilter, ICursorIterable, IDataQueryParams, IDataSource, ISaveOptions } from "./data-query";
|
|
3
|
+
import { ITableMetaData } from "./types";
|
|
4
|
+
export declare class ClientProxyDataSource<T extends {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}> implements IDataSource<T> {
|
|
7
|
+
readonly metaData: ITableMetaData;
|
|
8
|
+
readonly schema: z.AnyZodObject;
|
|
9
|
+
readonly dataContextId: string;
|
|
10
|
+
readonly tableName: string;
|
|
11
|
+
readonly primaryKeyName: string;
|
|
12
|
+
constructor(metaData: ITableMetaData, schema: z.AnyZodObject, dataContextId: string);
|
|
13
|
+
get(id: string, opts?: {
|
|
14
|
+
useCache?: boolean;
|
|
15
|
+
cacheTtlMs?: number;
|
|
16
|
+
}): Promise<T | undefined>;
|
|
17
|
+
list(filter?: DataFilter<T>, opts?: IDataQueryParams<T>): Promise<T[]>;
|
|
18
|
+
count(filter?: DataFilter<T>): Promise<number>;
|
|
19
|
+
cursor(filter?: DataFilter<T>, opts?: IDataQueryParams<T>): ICursorIterable<T>;
|
|
20
|
+
findOne(filter: DataFilter<T> | undefined, opts: {
|
|
21
|
+
enforceUnique?: boolean;
|
|
22
|
+
}): Promise<T | undefined>;
|
|
23
|
+
save(record: T, opts?: ISaveOptions): Promise<T>;
|
|
24
|
+
insert(record: T): Promise<T>;
|
|
25
|
+
update(record: T): Promise<T>;
|
|
26
|
+
delete(idOrRecord: string | T): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientProxyDataSource = void 0;
|
|
4
|
+
const rpc_types_1 = require("../../rpc-types");
|
|
5
|
+
const data_query_1 = require("./data-query");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
class ClientProxyDataSource {
|
|
9
|
+
metaData;
|
|
10
|
+
schema;
|
|
11
|
+
dataContextId;
|
|
12
|
+
tableName;
|
|
13
|
+
primaryKeyName;
|
|
14
|
+
constructor(metaData, schema = (0, types_1.fieldsToSchema)(metaData.fields), dataContextId) {
|
|
15
|
+
this.metaData = metaData;
|
|
16
|
+
this.schema = schema;
|
|
17
|
+
this.dataContextId = dataContextId;
|
|
18
|
+
this.tableName = (0, utils_1.getFullTableName)(metaData);
|
|
19
|
+
this.primaryKeyName = metaData.primaryKeyName;
|
|
20
|
+
const primaryKeyIsValid = metaData.fields.find(f => f.name === metaData.primaryKeyName);
|
|
21
|
+
if (!primaryKeyIsValid) {
|
|
22
|
+
throw new Error(`Table "${this.tableName}", primary key "${metaData.primaryKeyName}" is not a valid field name`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async get(id, opts = {}) {
|
|
26
|
+
return rpc_types_1.rpcServerCalls.tableGet(this.dataContextId, this.tableName, id, opts);
|
|
27
|
+
}
|
|
28
|
+
async list(filter = {}, opts = {}) {
|
|
29
|
+
return rpc_types_1.rpcServerCalls.tableList(this.dataContextId, this.tableName, filter, opts);
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
async count(filter = {}) {
|
|
33
|
+
return rpc_types_1.rpcServerCalls.tableCount(this.dataContextId, this.tableName, filter);
|
|
34
|
+
}
|
|
35
|
+
;
|
|
36
|
+
cursor(filter = {}, opts = {}) {
|
|
37
|
+
return (0, data_query_1.dataSourceCursor)(this, filter, opts);
|
|
38
|
+
}
|
|
39
|
+
async findOne(filter = {}, opts) {
|
|
40
|
+
if (!opts?.enforceUnique) {
|
|
41
|
+
const records = await this.list(filter, { pageSize: 1 });
|
|
42
|
+
return records[0];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const records = await this.list(filter, { pageSize: 2 });
|
|
46
|
+
if (records.length > 1) {
|
|
47
|
+
throw new Error(`Matched more than one record for ${this.tableName} with query ${JSON.stringify(filter)}`);
|
|
48
|
+
}
|
|
49
|
+
return records[0];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async save(record, opts) {
|
|
53
|
+
return rpc_types_1.rpcServerCalls.tableSave(this.dataContextId, this.tableName, record, opts);
|
|
54
|
+
}
|
|
55
|
+
async insert(record) {
|
|
56
|
+
return rpc_types_1.rpcServerCalls.tableInsert(this.dataContextId, this.tableName, record);
|
|
57
|
+
}
|
|
58
|
+
async update(record) {
|
|
59
|
+
return rpc_types_1.rpcServerCalls.tableUpdate(this.dataContextId, this.tableName, record);
|
|
60
|
+
}
|
|
61
|
+
async delete(idOrRecord) {
|
|
62
|
+
return rpc_types_1.rpcServerCalls.tableDelete(this.dataContextId, this.tableName, idOrRecord);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.ClientProxyDataSource = ClientProxyDataSource;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ICursorIterable, DataFilter, IDataQueryParams } from './data-query';
|
|
2
|
+
export declare class Cursor<T> implements ICursorIterable<T> {
|
|
3
|
+
private _cursor;
|
|
4
|
+
constructor(_cursor: ICursorIterable<T>);
|
|
5
|
+
get value(): T | null;
|
|
6
|
+
next(skipPast?: T): Promise<T | null>;
|
|
7
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
8
|
+
static from<T>(cursor: ICursorIterable<T>): Cursor<T>;
|
|
9
|
+
static fromDataSource<T extends {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
}>(dataSource: {
|
|
12
|
+
list: (filter?: DataFilter<T>, opts?: IDataQueryParams<T>) => Promise<T[]>;
|
|
13
|
+
primaryKeyName: string;
|
|
14
|
+
}, filter?: DataFilter<T>, opts?: IDataQueryParams<T>): Cursor<T>;
|
|
15
|
+
static fromDataSources<T extends {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}>(dataSources: {
|
|
18
|
+
list: (filter?: DataFilter<T>, opts?: IDataQueryParams<T>) => Promise<T[]>;
|
|
19
|
+
primaryKeyName: string;
|
|
20
|
+
}[], filter?: DataFilter<T>, opts?: IDataQueryParams<T>): Cursor<T>;
|
|
21
|
+
static union<T>(...cursors: (ICursorIterable<T> | Cursor<T>)[]): Cursor<T>;
|
|
22
|
+
union(...others: (ICursorIterable<T> | Cursor<T>)[]): Cursor<T>;
|
|
23
|
+
map<U>(mapFn: (item: T) => U | Promise<U>): Cursor<U>;
|
|
24
|
+
filter(filterFn: (item: T) => boolean | Promise<boolean>): Cursor<T>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Cursor = void 0;
|
|
4
|
+
const data_query_1 = require("./data-query");
|
|
5
|
+
const multi_cursors_1 = require("./multi-cursors");
|
|
6
|
+
class Cursor {
|
|
7
|
+
_cursor;
|
|
8
|
+
constructor(_cursor) {
|
|
9
|
+
this._cursor = _cursor;
|
|
10
|
+
}
|
|
11
|
+
get value() {
|
|
12
|
+
return this._cursor.value;
|
|
13
|
+
}
|
|
14
|
+
async next(skipPast) {
|
|
15
|
+
return this._cursor.next(skipPast);
|
|
16
|
+
}
|
|
17
|
+
[Symbol.asyncIterator]() {
|
|
18
|
+
return this._cursor[Symbol.asyncIterator]();
|
|
19
|
+
}
|
|
20
|
+
// Static factory methods
|
|
21
|
+
static from(cursor) {
|
|
22
|
+
return new Cursor(cursor);
|
|
23
|
+
}
|
|
24
|
+
static fromDataSource(dataSource, filter = {}, opts = {}) {
|
|
25
|
+
return new Cursor((0, data_query_1.dataSourceCursor)(dataSource, filter, opts));
|
|
26
|
+
}
|
|
27
|
+
static fromDataSources(dataSources, filter = {}, opts = {}) {
|
|
28
|
+
return new Cursor((0, multi_cursors_1.queryMerge)(dataSources, filter, opts));
|
|
29
|
+
}
|
|
30
|
+
static union(...cursors) {
|
|
31
|
+
const unwrappedCursors = cursors.map(c => c instanceof Cursor ? c._cursor : c);
|
|
32
|
+
return new Cursor((0, multi_cursors_1.cursorUnion)(unwrappedCursors));
|
|
33
|
+
}
|
|
34
|
+
// Instance methods
|
|
35
|
+
union(...others) {
|
|
36
|
+
const allCursors = [this, ...others];
|
|
37
|
+
const unwrappedCursors = allCursors.map(c => c instanceof Cursor ? c._cursor : c);
|
|
38
|
+
return new Cursor((0, multi_cursors_1.cursorUnion)(unwrappedCursors));
|
|
39
|
+
}
|
|
40
|
+
map(mapFn) {
|
|
41
|
+
return new Cursor((0, multi_cursors_1.cursorMap)(this._cursor, mapFn));
|
|
42
|
+
}
|
|
43
|
+
filter(filterFn) {
|
|
44
|
+
return new Cursor((0, multi_cursors_1.cursorFilter)(this._cursor, filterFn));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Cursor = Cursor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|