@dxos/functions 0.8.3 → 0.8.4-main.1da679c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/bundler/index.mjs +73 -44
- package/dist/lib/browser/bundler/index.mjs.map +3 -3
- package/dist/lib/browser/chunk-D2XO7XXY.mjs +611 -0
- package/dist/lib/browser/chunk-D2XO7XXY.mjs.map +7 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
- package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
- package/dist/lib/browser/edge/index.mjs +24 -10
- package/dist/lib/browser/edge/index.mjs.map +3 -3
- package/dist/lib/browser/index.mjs +981 -137
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +110 -9
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/bundler/index.mjs +72 -44
- package/dist/lib/node-esm/bundler/index.mjs.map +3 -3
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Z4CJ62WS.mjs +613 -0
- package/dist/lib/node-esm/chunk-Z4CJ62WS.mjs.map +7 -0
- package/dist/lib/node-esm/edge/index.mjs +23 -10
- package/dist/lib/node-esm/edge/index.mjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +981 -137
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +110 -9
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/bundler/bundler.d.ts +12 -14
- package/dist/types/src/bundler/bundler.d.ts.map +1 -1
- package/dist/types/src/edge/functions.d.ts +4 -3
- package/dist/types/src/edge/functions.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +137 -0
- package/dist/types/src/errors.d.ts.map +1 -0
- package/dist/types/src/examples/fib.d.ts +7 -0
- package/dist/types/src/examples/fib.d.ts.map +1 -0
- package/dist/types/src/examples/index.d.ts +4 -0
- package/dist/types/src/examples/index.d.ts.map +1 -0
- package/dist/types/src/examples/reply.d.ts +3 -0
- package/dist/types/src/examples/reply.d.ts.map +1 -0
- package/dist/types/src/examples/sleep.d.ts +5 -0
- package/dist/types/src/examples/sleep.d.ts.map +1 -0
- package/dist/types/src/executor/executor.d.ts +4 -1
- package/dist/types/src/executor/executor.d.ts.map +1 -1
- package/dist/types/src/handler.d.ts +46 -16
- package/dist/types/src/handler.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/schema.d.ts +8 -3
- package/dist/types/src/schema.d.ts.map +1 -1
- package/dist/types/src/services/credentials.d.ts +18 -4
- package/dist/types/src/services/credentials.d.ts.map +1 -1
- package/dist/types/src/services/database.d.ts +55 -3
- package/dist/types/src/services/database.d.ts.map +1 -1
- package/dist/types/src/services/event-logger.d.ts +65 -30
- package/dist/types/src/services/event-logger.d.ts.map +1 -1
- package/dist/types/src/services/index.d.ts +2 -2
- package/dist/types/src/services/index.d.ts.map +1 -1
- package/dist/types/src/services/local-function-execution.d.ts +25 -0
- package/dist/types/src/services/local-function-execution.d.ts.map +1 -0
- package/dist/types/src/services/queues.d.ts +33 -6
- package/dist/types/src/services/queues.d.ts.map +1 -1
- package/dist/types/src/services/remote-function-execution-service.d.ts +15 -0
- package/dist/types/src/services/remote-function-execution-service.d.ts.map +1 -0
- package/dist/types/src/services/service-container.d.ts +29 -17
- package/dist/types/src/services/service-container.d.ts.map +1 -1
- package/dist/types/src/services/service-registry.d.ts +29 -0
- package/dist/types/src/services/service-registry.d.ts.map +1 -0
- package/dist/types/src/services/service-registry.test.d.ts +2 -0
- package/dist/types/src/services/service-registry.test.d.ts.map +1 -0
- package/dist/types/src/services/tracing.d.ts +46 -4
- package/dist/types/src/services/tracing.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/layer.d.ts +15 -0
- package/dist/types/src/testing/layer.d.ts.map +1 -0
- package/dist/types/src/testing/logger.d.ts +3 -3
- package/dist/types/src/testing/logger.d.ts.map +1 -1
- package/dist/types/src/testing/persist-database.test.d.ts +2 -0
- package/dist/types/src/testing/persist-database.test.d.ts.map +1 -0
- package/dist/types/src/testing/services.d.ts +55 -9
- package/dist/types/src/testing/services.d.ts.map +1 -1
- package/dist/types/src/trace.d.ts +20 -22
- package/dist/types/src/trace.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +9 -9
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/triggers/index.d.ts +4 -0
- package/dist/types/src/triggers/index.d.ts.map +1 -0
- package/dist/types/src/triggers/input-builder.d.ts +3 -0
- package/dist/types/src/triggers/input-builder.d.ts.map +1 -0
- package/dist/types/src/triggers/invocation-tracer.d.ts +35 -0
- package/dist/types/src/triggers/invocation-tracer.d.ts.map +1 -0
- package/dist/types/src/triggers/trigger-dispatcher.d.ts +75 -0
- package/dist/types/src/triggers/trigger-dispatcher.d.ts.map +1 -0
- package/dist/types/src/triggers/trigger-dispatcher.test.d.ts +2 -0
- package/dist/types/src/triggers/trigger-dispatcher.test.d.ts.map +1 -0
- package/dist/types/src/triggers/trigger-state-store.d.ts +27 -0
- package/dist/types/src/triggers/trigger-state-store.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +55 -245
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/url.d.ts +10 -6
- package/dist/types/src/url.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +35 -25
- package/src/bundler/bundler.test.ts +9 -10
- package/src/bundler/bundler.ts +56 -35
- package/src/edge/functions.ts +9 -6
- package/src/errors.ts +21 -0
- package/src/examples/fib.ts +30 -0
- package/src/examples/index.ts +7 -0
- package/src/examples/reply.ts +18 -0
- package/src/examples/sleep.ts +22 -0
- package/src/executor/executor.ts +22 -15
- package/src/handler.ts +117 -27
- package/src/index.ts +3 -2
- package/src/schema.ts +11 -0
- package/src/services/credentials.ts +87 -5
- package/src/services/database.ts +146 -3
- package/src/services/event-logger.ts +68 -37
- package/src/services/index.ts +2 -2
- package/src/services/local-function-execution.ts +127 -0
- package/src/services/queues.ts +56 -11
- package/src/services/remote-function-execution-service.ts +46 -0
- package/src/services/service-container.ts +47 -42
- package/src/services/service-registry.test.ts +42 -0
- package/src/services/service-registry.ts +59 -0
- package/src/services/tracing.ts +118 -5
- package/src/testing/index.ts +1 -0
- package/src/testing/layer.ts +111 -0
- package/src/testing/logger.ts +4 -4
- package/src/testing/persist-database.test.ts +87 -0
- package/src/testing/services.ts +97 -14
- package/src/trace.ts +17 -19
- package/src/translations.ts +4 -4
- package/src/triggers/index.ts +7 -0
- package/src/triggers/input-builder.ts +35 -0
- package/src/triggers/invocation-tracer.ts +99 -0
- package/src/triggers/trigger-dispatcher.test.ts +652 -0
- package/src/triggers/trigger-dispatcher.ts +516 -0
- package/src/triggers/trigger-state-store.ts +60 -0
- package/src/types.ts +39 -36
- package/src/url.ts +13 -10
- package/dist/lib/browser/chunk-WEFZUEL2.mjs +0 -300
- package/dist/lib/browser/chunk-WEFZUEL2.mjs.map +0 -7
- package/dist/lib/node/bundler/index.cjs +0 -260
- package/dist/lib/node/bundler/index.cjs.map +0 -7
- package/dist/lib/node/chunk-IJAE7FZK.cjs +0 -320
- package/dist/lib/node/chunk-IJAE7FZK.cjs.map +0 -7
- package/dist/lib/node/edge/index.cjs +0 -94
- package/dist/lib/node/edge/index.cjs.map +0 -7
- package/dist/lib/node/index.cjs +0 -522
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
- package/dist/lib/node/testing/index.cjs +0 -43
- package/dist/lib/node/testing/index.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-LIYPMWNQ.mjs +0 -302
- package/dist/lib/node-esm/chunk-LIYPMWNQ.mjs.map +0 -7
- package/dist/types/src/services/ai.d.ts +0 -12
- package/dist/types/src/services/ai.d.ts.map +0 -1
- package/dist/types/src/services/function-call-service.d.ts +0 -16
- package/dist/types/src/services/function-call-service.d.ts.map +0 -1
- package/src/services/ai.ts +0 -32
- package/src/services/function-call-service.ts +0 -64
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
|
|
3
|
+
ConfiguredCredentialsService,
|
|
4
|
+
DatabaseService,
|
|
4
5
|
QueueService,
|
|
5
6
|
ServiceContainer,
|
|
6
7
|
createEventLogger
|
|
7
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-Z4CJ62WS.mjs";
|
|
9
|
+
import "../chunk-HSLMI22Q.mjs";
|
|
8
10
|
|
|
9
|
-
//
|
|
11
|
+
// src/testing/services.ts
|
|
12
|
+
import { assertArgument } from "@dxos/invariant";
|
|
13
|
+
|
|
14
|
+
// src/testing/logger.ts
|
|
10
15
|
import { Effect } from "effect";
|
|
11
16
|
import { LogLevel } from "@dxos/log";
|
|
12
17
|
var noopLogger = {
|
|
@@ -15,15 +20,111 @@ var noopLogger = {
|
|
|
15
20
|
};
|
|
16
21
|
var consoleLogger = createEventLogger(LogLevel.INFO);
|
|
17
22
|
|
|
18
|
-
//
|
|
19
|
-
var createTestServices = ({ ai,
|
|
23
|
+
// src/testing/services.ts
|
|
24
|
+
var createTestServices = ({ ai, credentials, db, logging, queues, space, tracing } = {}) => {
|
|
25
|
+
assertArgument(!(!!space && (!!db || !!queues)), "space", "space can be provided only if db and queues are not");
|
|
20
26
|
return new ServiceContainer().setServices({
|
|
21
|
-
ai:
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
// ai: createAiService(ai),
|
|
28
|
+
credentials: createCredentialsService(credentials),
|
|
29
|
+
database: space || db ? DatabaseService.make(space?.db || db) : void 0,
|
|
30
|
+
eventLogger: logging?.logger ?? logging?.enabled ? consoleLogger : noopLogger,
|
|
31
|
+
queues: space || queues ? QueueService.make(space?.queues || queues, void 0) : void 0,
|
|
32
|
+
tracing: tracing?.service
|
|
24
33
|
});
|
|
25
34
|
};
|
|
35
|
+
var createCredentialsService = (credentials) => {
|
|
36
|
+
if (credentials?.services) {
|
|
37
|
+
return new ConfiguredCredentialsService(credentials.services);
|
|
38
|
+
}
|
|
39
|
+
if (credentials?.service) {
|
|
40
|
+
return credentials.service;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// src/testing/layer.ts
|
|
45
|
+
import { Context, Effect as Effect2, Layer } from "effect";
|
|
46
|
+
import { EchoTestBuilder } from "@dxos/echo-db/testing";
|
|
47
|
+
import { accuireReleaseResource } from "@dxos/effect";
|
|
48
|
+
import { PublicKey } from "@dxos/keys";
|
|
49
|
+
import { createTestLevel } from "@dxos/kv-store/testing";
|
|
50
|
+
import { log } from "@dxos/log";
|
|
51
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/functions/src/testing/layer.ts";
|
|
52
|
+
var testBuilder = accuireReleaseResource(() => new EchoTestBuilder());
|
|
53
|
+
var testStoragePath = ({ name = PublicKey.random().toHex() }) => {
|
|
54
|
+
return `/tmp/dxos-${name}`;
|
|
55
|
+
};
|
|
56
|
+
var TestDatabaseLayer = ({ indexing, types, storagePath, onInit } = {}) => Layer.scopedContext(Effect2.gen(function* () {
|
|
57
|
+
const builder = yield* testBuilder;
|
|
58
|
+
let kv;
|
|
59
|
+
if (storagePath) {
|
|
60
|
+
kv = createTestLevel(storagePath);
|
|
61
|
+
yield* Effect2.promise(() => kv.open());
|
|
62
|
+
}
|
|
63
|
+
const peer = yield* Effect2.promise(() => builder.createPeer({
|
|
64
|
+
indexing,
|
|
65
|
+
types,
|
|
66
|
+
kv
|
|
67
|
+
}));
|
|
68
|
+
let db;
|
|
69
|
+
let queues;
|
|
70
|
+
if (storagePath) {
|
|
71
|
+
const testMetadata = yield* Effect2.promise(async () => {
|
|
72
|
+
try {
|
|
73
|
+
return await kv.get("test-metadata", {
|
|
74
|
+
valueEncoding: "json"
|
|
75
|
+
});
|
|
76
|
+
} catch (e) {
|
|
77
|
+
if (e.code === "LEVEL_NOT_FOUND") {
|
|
78
|
+
return void 0;
|
|
79
|
+
}
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
log("starting persistant test db", {
|
|
84
|
+
storagePath,
|
|
85
|
+
testMetadata
|
|
86
|
+
}, {
|
|
87
|
+
F: __dxlog_file,
|
|
88
|
+
L: 60,
|
|
89
|
+
S: this,
|
|
90
|
+
C: (f, a) => f(...a)
|
|
91
|
+
});
|
|
92
|
+
if (!testMetadata) {
|
|
93
|
+
const key = PublicKey.random();
|
|
94
|
+
db = yield* Effect2.promise(() => peer.createDatabase(key));
|
|
95
|
+
queues = peer.client.constructQueueFactory(db.spaceId);
|
|
96
|
+
yield* Effect2.promise(() => kv.put("test-metadata", {
|
|
97
|
+
key: key.toHex(),
|
|
98
|
+
rootUrl: db.rootUrl
|
|
99
|
+
}, {
|
|
100
|
+
valueEncoding: "json"
|
|
101
|
+
}));
|
|
102
|
+
if (onInit) {
|
|
103
|
+
yield* onInit().pipe(Effect2.provideService(DatabaseService, DatabaseService.make(db)), Effect2.provideService(QueueService, QueueService.make(queues, void 0)));
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
const key = PublicKey.from(testMetadata.key);
|
|
107
|
+
const rootUrl = testMetadata.rootUrl;
|
|
108
|
+
db = yield* Effect2.promise(() => peer.openDatabase(key, rootUrl));
|
|
109
|
+
queues = peer.client.constructQueueFactory(db.spaceId);
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
db = yield* Effect2.promise(() => peer.createDatabase());
|
|
113
|
+
queues = peer.client.constructQueueFactory(db.spaceId);
|
|
114
|
+
if (onInit) {
|
|
115
|
+
yield* onInit().pipe(Effect2.provideService(DatabaseService, DatabaseService.make(db)), Effect2.provideService(QueueService, QueueService.make(queues, void 0)));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
yield* Effect2.addFinalizer(() => Effect2.promise(async () => {
|
|
119
|
+
if (kv) {
|
|
120
|
+
await kv.close();
|
|
121
|
+
}
|
|
122
|
+
}));
|
|
123
|
+
return Context.mergeAll(Context.make(DatabaseService, DatabaseService.make(db)), Context.make(QueueService, QueueService.make(queues, void 0)));
|
|
124
|
+
}));
|
|
26
125
|
export {
|
|
27
|
-
|
|
126
|
+
TestDatabaseLayer,
|
|
127
|
+
createTestServices,
|
|
128
|
+
testStoragePath
|
|
28
129
|
};
|
|
29
130
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/testing/logger.ts", "../../../../src/testing/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["Effect", "LogLevel", "noopLogger", "log", "Effect", "succeed", "undefined", "nodeId", "consoleLogger", "createEventLogger", "LogLevel", "INFO", "createTestServices", "ai", "
|
|
3
|
+
"sources": ["../../../../src/testing/services.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/layer.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context } from 'effect';\n\nimport type { Space } from '@dxos/client/echo';\nimport type { EchoDatabase, QueueFactory } from '@dxos/echo-db';\nimport { assertArgument } from '@dxos/invariant';\n\nimport {\n type ComputeEventLogger,\n ConfiguredCredentialsService,\n type CredentialsService,\n DatabaseService,\n QueueService,\n ServiceContainer,\n type ServiceCredential,\n type TracingService,\n} from '../services';\n\nimport { consoleLogger, noopLogger } from './logger';\n\n// TODO(burdon): Factor out.\nexport type OneOf<T> = {\n [K in keyof T]: { [P in K]: T[P] } & { [P in Exclude<keyof T, K>]?: never };\n}[keyof T];\n\nexport type AiServiceProvider = 'dev' | 'edge' | 'ollama' | 'lmstudio';\n\nexport type TestServiceOptions = {\n /**\n * AI service configuration.\n */\n ai?: any;\n\n /**\n * Credentials service configuration.\n */\n credentials?: OneOf<{\n /**\n * Predefined credentials list.\n */\n services?: ServiceCredential[];\n\n /**\n * Custom credentials service.\n */\n service?: Context.Tag.Service<CredentialsService>;\n }>;\n\n /**\n * Database configuration.\n */\n db?: EchoDatabase;\n\n /**\n * Gets database and queue services from the space.\n * Exclusive with: `db`, `queues`\n */\n space?: Space;\n\n /**\n * Logging configuration.\n */\n logging?: {\n enabled?: boolean;\n logger?: Context.Tag.Service<ComputeEventLogger>;\n };\n\n /**\n * Queue service configuration.\n */\n queues?: QueueFactory;\n\n tracing?: {\n service?: Context.Tag.Service<TracingService>;\n };\n};\n\n/**\n * @deprecated\n */\nexport const createTestServices = ({\n ai,\n credentials,\n db,\n logging,\n queues,\n space,\n tracing,\n}: TestServiceOptions = {}): ServiceContainer => {\n assertArgument(!(!!space && (!!db || !!queues)), 'space', 'space can be provided only if db and queues are not');\n\n return new ServiceContainer().setServices({\n // ai: createAiService(ai),\n credentials: createCredentialsService(credentials),\n database: space || db ? DatabaseService.make(space?.db || db!) : undefined,\n eventLogger: (logging?.logger ?? logging?.enabled) ? consoleLogger : noopLogger,\n queues: space || queues ? QueueService.make(space?.queues || queues!, undefined) : undefined,\n tracing: tracing?.service,\n });\n};\n\nconst createCredentialsService = (\n credentials: TestServiceOptions['credentials'] | undefined,\n): Context.Tag.Service<CredentialsService> | undefined => {\n if (credentials?.services) {\n return new ConfiguredCredentialsService(credentials.services);\n }\n\n if (credentials?.service) {\n return credentials.service;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context, Effect } from 'effect';\n\nimport { LogLevel } from '@dxos/log';\n\nimport { type ComputeEventLogger, createEventLogger } from '../services';\n\nexport const noopLogger: Context.Tag.Service<ComputeEventLogger> = {\n log: () => Effect.succeed(undefined),\n nodeId: undefined,\n};\n\nexport const consoleLogger: Context.Tag.Service<ComputeEventLogger> = createEventLogger(LogLevel.INFO);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type { Schema } from 'effect';\nimport { Context, Effect, Layer } from 'effect';\n\nimport type { EchoDatabaseImpl, QueueFactory } from '@dxos/echo-db';\nimport { EchoTestBuilder } from '@dxos/echo-db/testing';\nimport type { EchoHostIndexingConfig } from '@dxos/echo-pipeline';\nimport { accuireReleaseResource } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport type { LevelDB } from '@dxos/kv-store';\nimport { createTestLevel } from '@dxos/kv-store/testing';\nimport { log } from '@dxos/log';\n\nimport { DatabaseService, QueueService } from '../services';\n\nconst testBuilder = accuireReleaseResource(() => new EchoTestBuilder());\n\nexport const testStoragePath = ({ name = PublicKey.random().toHex() }: { name?: string }) => {\n return `/tmp/dxos-${name}`;\n};\n\nexport type TestDatabaseOptions = {\n indexing?: Partial<EchoHostIndexingConfig>;\n types?: Schema.Schema.AnyNoContext[];\n storagePath?: string;\n onInit?: () => Effect.Effect<void, never, DatabaseService | QueueService>;\n};\n\nexport const TestDatabaseLayer = ({ indexing, types, storagePath, onInit }: TestDatabaseOptions = {}) =>\n Layer.scopedContext(\n Effect.gen(function* () {\n const builder = yield* testBuilder;\n\n let kv: LevelDB | undefined;\n if (storagePath) {\n kv = createTestLevel(storagePath);\n yield* Effect.promise(() => kv!.open());\n // const keyCount = yield* Effect.promise(async () => (await kv!.iterator({ values: false }).all()).length);\n // log.info('opened test db', { storagePath, keyCount });\n }\n const peer = yield* Effect.promise(() => builder.createPeer({ indexing, types, kv }));\n\n let db: EchoDatabaseImpl | undefined;\n let queues: QueueFactory | undefined;\n\n if (storagePath) {\n const testMetadata = yield* Effect.promise(async () => {\n try {\n return await kv!.get('test-metadata', { valueEncoding: 'json' });\n } catch (e) {\n if ((e as any).code === 'LEVEL_NOT_FOUND') {\n return undefined;\n }\n throw e;\n }\n });\n log('starting persistant test db', { storagePath, testMetadata });\n if (!testMetadata) {\n const key = PublicKey.random();\n db = yield* Effect.promise(() => peer.createDatabase(key));\n queues = peer.client.constructQueueFactory(db.spaceId);\n\n yield* Effect.promise(() =>\n kv!.put('test-metadata', { key: key.toHex(), rootUrl: db!.rootUrl }, { valueEncoding: 'json' }),\n );\n\n if (onInit) {\n yield* onInit().pipe(\n Effect.provideService(DatabaseService, DatabaseService.make(db)),\n Effect.provideService(QueueService, QueueService.make(queues, undefined)),\n );\n }\n } else {\n const key = PublicKey.from((testMetadata as any).key);\n const rootUrl = (testMetadata as any).rootUrl;\n db = yield* Effect.promise(() => peer.openDatabase(key, rootUrl));\n queues = peer.client.constructQueueFactory(db.spaceId);\n }\n } else {\n db = yield* Effect.promise(() => peer.createDatabase());\n queues = peer.client.constructQueueFactory(db.spaceId);\n if (onInit) {\n yield* onInit().pipe(\n Effect.provideService(DatabaseService, DatabaseService.make(db)),\n Effect.provideService(QueueService, QueueService.make(queues, undefined)),\n );\n }\n }\n\n yield* Effect.addFinalizer(() =>\n Effect.promise(async () => {\n if (kv) {\n // {\n // const keyCount = (await kv.iterator({ values: false }).all()).length;\n // log.info('closing persistant test db', { storagePath, keyCount });\n // }\n\n await kv.close();\n }\n }),\n );\n\n return Context.mergeAll(\n Context.make(DatabaseService, DatabaseService.make(db)),\n Context.make(QueueService, QueueService.make(queues, undefined)),\n );\n }),\n );\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["assertArgument", "Effect", "LogLevel", "noopLogger", "log", "Effect", "succeed", "undefined", "nodeId", "consoleLogger", "createEventLogger", "LogLevel", "INFO", "createTestServices", "ai", "credentials", "db", "logging", "queues", "space", "tracing", "assertArgument", "ServiceContainer", "setServices", "createCredentialsService", "database", "DatabaseService", "make", "undefined", "eventLogger", "logger", "enabled", "consoleLogger", "noopLogger", "QueueService", "service", "services", "ConfiguredCredentialsService", "Context", "Effect", "Layer", "EchoTestBuilder", "accuireReleaseResource", "PublicKey", "createTestLevel", "log", "testBuilder", "accuireReleaseResource", "EchoTestBuilder", "testStoragePath", "name", "PublicKey", "random", "toHex", "TestDatabaseLayer", "indexing", "types", "storagePath", "onInit", "Layer", "scopedContext", "Effect", "gen", "builder", "kv", "createTestLevel", "promise", "open", "peer", "createPeer", "db", "queues", "testMetadata", "get", "valueEncoding", "e", "code", "undefined", "log", "key", "createDatabase", "client", "constructQueueFactory", "spaceId", "put", "rootUrl", "pipe", "provideService", "DatabaseService", "make", "QueueService", "from", "openDatabase", "addFinalizer", "close", "Context", "mergeAll"]
|
|
7
7
|
}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import { type BuildOptions } from 'esbuild';
|
|
2
|
-
import { type BuildResult } from 'esbuild-wasm';
|
|
1
|
+
import { type BuildOptions, type BuildResult } from 'esbuild-wasm';
|
|
3
2
|
export type Import = {
|
|
4
3
|
moduleUrl: string;
|
|
5
4
|
defaultImport: boolean;
|
|
6
5
|
namedImports: string[];
|
|
7
6
|
};
|
|
8
7
|
export type BundleOptions = {
|
|
9
|
-
/**
|
|
10
|
-
* Path to the source file on the local file system.
|
|
11
|
-
* If provided, the path will be used instead of the `source` code.
|
|
12
|
-
*/
|
|
13
|
-
path?: string;
|
|
14
8
|
/**
|
|
15
9
|
* Source code to bundle.
|
|
16
|
-
* Required if `path` is not provided.
|
|
17
10
|
*/
|
|
18
|
-
source
|
|
11
|
+
source: string;
|
|
19
12
|
};
|
|
20
13
|
export type BundleResult = {
|
|
21
14
|
timestamp: number;
|
|
22
|
-
sourceHash
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
15
|
+
sourceHash: Buffer;
|
|
16
|
+
error: unknown;
|
|
17
|
+
} | {
|
|
18
|
+
timestamp: number;
|
|
19
|
+
sourceHash: Buffer;
|
|
20
|
+
imports: Import[];
|
|
21
|
+
entryPoint: string;
|
|
22
|
+
asset: Uint8Array;
|
|
23
|
+
bundle: string;
|
|
26
24
|
};
|
|
27
25
|
export type BundlerOptions = {
|
|
28
26
|
platform: BuildOptions['platform'];
|
|
@@ -38,7 +36,7 @@ export declare const initializeBundler: (options: {
|
|
|
38
36
|
export declare class Bundler {
|
|
39
37
|
private readonly _options;
|
|
40
38
|
constructor(_options: BundlerOptions);
|
|
41
|
-
bundle({
|
|
39
|
+
bundle({ source }: BundleOptions): Promise<BundleResult>;
|
|
42
40
|
analyzeImports(result: BuildResult): Import[];
|
|
43
41
|
analyzeSourceFileImports(code: string): {
|
|
44
42
|
defaultImportName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../src/bundler/bundler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../src/bundler/bundler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAA+C,MAAM,cAAc,CAAC;AAOhH,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAU,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,kBAInE,CAAC;AAEF;;GAEG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyF9D,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;IA0B7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;CAaJ"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { type DID } from 'iso-did/types';
|
|
2
2
|
import { type Client } from '@dxos/client';
|
|
3
|
-
import type
|
|
3
|
+
import { type PublicKey } from '@dxos/keys';
|
|
4
4
|
import { type UploadFunctionResponseBody } from '@dxos/protocols';
|
|
5
5
|
export type UploadWorkerArgs = {
|
|
6
6
|
client: Client;
|
|
7
|
-
source: string;
|
|
8
7
|
version: string;
|
|
9
8
|
name?: string;
|
|
10
9
|
functionId?: string;
|
|
11
10
|
ownerPublicKey: PublicKey;
|
|
11
|
+
entryPoint: string;
|
|
12
|
+
assets: Record<string, Uint8Array>;
|
|
12
13
|
};
|
|
13
|
-
export declare const uploadWorkerFunction: ({ client, version,
|
|
14
|
+
export declare const uploadWorkerFunction: ({ client, version, name, functionId, ownerPublicKey, entryPoint, assets, }: UploadWorkerArgs) => Promise<UploadFunctionResponseBody>;
|
|
14
15
|
export declare const incrementSemverPatch: (version: string) => string;
|
|
15
16
|
export declare const publicKeyToDid: (key: PublicKey) => DID;
|
|
16
17
|
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/edge/functions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/edge/functions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,4EAQxC,gBAAgB,KAAG,OAAO,CAAC,0BAA0B,CAsBvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MAKtD,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,KAAG,GAE/C,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { BaseError, type BaseErrorOptions } from '@dxos/errors';
|
|
2
|
+
declare const ServiceNotAvailableError_base: {
|
|
3
|
+
new (options?: BaseErrorOptions): {
|
|
4
|
+
#code: "SERVICE_NOT_AVAILABLE";
|
|
5
|
+
#context: Record<string, unknown>;
|
|
6
|
+
readonly name: "SERVICE_NOT_AVAILABLE";
|
|
7
|
+
readonly message: string;
|
|
8
|
+
readonly code: "SERVICE_NOT_AVAILABLE";
|
|
9
|
+
readonly _tag: "SERVICE_NOT_AVAILABLE";
|
|
10
|
+
readonly context: Record<string, unknown>;
|
|
11
|
+
stack?: string;
|
|
12
|
+
cause?: unknown;
|
|
13
|
+
};
|
|
14
|
+
code: "SERVICE_NOT_AVAILABLE";
|
|
15
|
+
is(error: unknown): error is BaseError;
|
|
16
|
+
wrap(options?: Omit<BaseErrorOptions, "cause">): (error: unknown) => {
|
|
17
|
+
#code: "SERVICE_NOT_AVAILABLE";
|
|
18
|
+
#context: Record<string, unknown>;
|
|
19
|
+
readonly name: "SERVICE_NOT_AVAILABLE";
|
|
20
|
+
readonly message: string;
|
|
21
|
+
readonly code: "SERVICE_NOT_AVAILABLE";
|
|
22
|
+
readonly _tag: "SERVICE_NOT_AVAILABLE";
|
|
23
|
+
readonly context: Record<string, unknown>;
|
|
24
|
+
stack?: string;
|
|
25
|
+
cause?: unknown;
|
|
26
|
+
};
|
|
27
|
+
extend<Code extends string = string>(code: Code, message?: string): any;
|
|
28
|
+
isError(error: unknown): error is Error;
|
|
29
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
30
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
31
|
+
stackTraceLimit: number;
|
|
32
|
+
};
|
|
33
|
+
export declare class ServiceNotAvailableError extends ServiceNotAvailableError_base {
|
|
34
|
+
constructor(service: string, options?: Omit<BaseErrorOptions, 'context'>);
|
|
35
|
+
}
|
|
36
|
+
declare const FunctionNotFoundError_base: {
|
|
37
|
+
new (options?: BaseErrorOptions): {
|
|
38
|
+
#code: "FUNCTION_NOT_FOUND";
|
|
39
|
+
#context: Record<string, unknown>;
|
|
40
|
+
readonly name: "FUNCTION_NOT_FOUND";
|
|
41
|
+
readonly message: string;
|
|
42
|
+
readonly code: "FUNCTION_NOT_FOUND";
|
|
43
|
+
readonly _tag: "FUNCTION_NOT_FOUND";
|
|
44
|
+
readonly context: Record<string, unknown>;
|
|
45
|
+
stack?: string;
|
|
46
|
+
cause?: unknown;
|
|
47
|
+
};
|
|
48
|
+
code: "FUNCTION_NOT_FOUND";
|
|
49
|
+
is(error: unknown): error is BaseError;
|
|
50
|
+
wrap(options?: Omit<BaseErrorOptions, "cause">): (error: unknown) => {
|
|
51
|
+
#code: "FUNCTION_NOT_FOUND";
|
|
52
|
+
#context: Record<string, unknown>;
|
|
53
|
+
readonly name: "FUNCTION_NOT_FOUND";
|
|
54
|
+
readonly message: string;
|
|
55
|
+
readonly code: "FUNCTION_NOT_FOUND";
|
|
56
|
+
readonly _tag: "FUNCTION_NOT_FOUND";
|
|
57
|
+
readonly context: Record<string, unknown>;
|
|
58
|
+
stack?: string;
|
|
59
|
+
cause?: unknown;
|
|
60
|
+
};
|
|
61
|
+
extend<Code extends string = string>(code: Code, message?: string): any;
|
|
62
|
+
isError(error: unknown): error is Error;
|
|
63
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
64
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
65
|
+
stackTraceLimit: number;
|
|
66
|
+
};
|
|
67
|
+
export declare class FunctionNotFoundError extends FunctionNotFoundError_base {
|
|
68
|
+
constructor(functionKey: string, options?: Omit<BaseErrorOptions, 'context'>);
|
|
69
|
+
}
|
|
70
|
+
declare const FunctionError_base: {
|
|
71
|
+
new (options?: BaseErrorOptions): {
|
|
72
|
+
#code: "FUNCTION_ERROR";
|
|
73
|
+
#context: Record<string, unknown>;
|
|
74
|
+
readonly name: "FUNCTION_ERROR";
|
|
75
|
+
readonly message: string;
|
|
76
|
+
readonly code: "FUNCTION_ERROR";
|
|
77
|
+
readonly _tag: "FUNCTION_ERROR";
|
|
78
|
+
readonly context: Record<string, unknown>;
|
|
79
|
+
stack?: string;
|
|
80
|
+
cause?: unknown;
|
|
81
|
+
};
|
|
82
|
+
code: "FUNCTION_ERROR";
|
|
83
|
+
is(error: unknown): error is BaseError;
|
|
84
|
+
wrap(options?: Omit<BaseErrorOptions, "cause">): (error: unknown) => {
|
|
85
|
+
#code: "FUNCTION_ERROR";
|
|
86
|
+
#context: Record<string, unknown>;
|
|
87
|
+
readonly name: "FUNCTION_ERROR";
|
|
88
|
+
readonly message: string;
|
|
89
|
+
readonly code: "FUNCTION_ERROR";
|
|
90
|
+
readonly _tag: "FUNCTION_ERROR";
|
|
91
|
+
readonly context: Record<string, unknown>;
|
|
92
|
+
stack?: string;
|
|
93
|
+
cause?: unknown;
|
|
94
|
+
};
|
|
95
|
+
extend<Code extends string = string>(code: Code, message?: string): any;
|
|
96
|
+
isError(error: unknown): error is Error;
|
|
97
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
98
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
99
|
+
stackTraceLimit: number;
|
|
100
|
+
};
|
|
101
|
+
export declare class FunctionError extends FunctionError_base {
|
|
102
|
+
}
|
|
103
|
+
declare const TriggerStateNotFoundError_base: {
|
|
104
|
+
new (options?: BaseErrorOptions): {
|
|
105
|
+
#code: "TRIGGER_STATE_NOT_FOUND";
|
|
106
|
+
#context: Record<string, unknown>;
|
|
107
|
+
readonly name: "TRIGGER_STATE_NOT_FOUND";
|
|
108
|
+
readonly message: string;
|
|
109
|
+
readonly code: "TRIGGER_STATE_NOT_FOUND";
|
|
110
|
+
readonly _tag: "TRIGGER_STATE_NOT_FOUND";
|
|
111
|
+
readonly context: Record<string, unknown>;
|
|
112
|
+
stack?: string;
|
|
113
|
+
cause?: unknown;
|
|
114
|
+
};
|
|
115
|
+
code: "TRIGGER_STATE_NOT_FOUND";
|
|
116
|
+
is(error: unknown): error is BaseError;
|
|
117
|
+
wrap(options?: Omit<BaseErrorOptions, "cause">): (error: unknown) => {
|
|
118
|
+
#code: "TRIGGER_STATE_NOT_FOUND";
|
|
119
|
+
#context: Record<string, unknown>;
|
|
120
|
+
readonly name: "TRIGGER_STATE_NOT_FOUND";
|
|
121
|
+
readonly message: string;
|
|
122
|
+
readonly code: "TRIGGER_STATE_NOT_FOUND";
|
|
123
|
+
readonly _tag: "TRIGGER_STATE_NOT_FOUND";
|
|
124
|
+
readonly context: Record<string, unknown>;
|
|
125
|
+
stack?: string;
|
|
126
|
+
cause?: unknown;
|
|
127
|
+
};
|
|
128
|
+
extend<Code extends string = string>(code: Code, message?: string): any;
|
|
129
|
+
isError(error: unknown): error is Error;
|
|
130
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function): void;
|
|
131
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
132
|
+
stackTraceLimit: number;
|
|
133
|
+
};
|
|
134
|
+
export declare class TriggerStateNotFoundError extends TriggerStateNotFoundError_base {
|
|
135
|
+
}
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhE,qBAAa,wBAAyB,SAAQ,6BAAkE;gBAClG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;CAGzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,qBAAsB,SAAQ,0BAA4D;gBACzF,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC;CAG7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,aAAc,SAAQ,kBAA+D;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAErG,qBAAa,yBAA0B,SAAQ,8BAAsE;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fib.d.ts","sourceRoot":"","sources":["../../../../src/examples/fib.ts"],"names":[],"mappings":";;;;;AAQA,wBAqBG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/examples/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../../src/examples/reply.ts"],"names":[],"mappings":";AAQA,wBASG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../src/examples/sleep.ts"],"names":[],"mappings":";;;AAQA,wBAaG"}
|
|
@@ -3,6 +3,9 @@ import type { ServiceContainer } from '../services';
|
|
|
3
3
|
export declare class FunctionExecutor {
|
|
4
4
|
private readonly _services;
|
|
5
5
|
constructor(_services: ServiceContainer);
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Invoke function.
|
|
8
|
+
*/
|
|
9
|
+
invoke<F extends FunctionDefinition<any, any>>(functionDef: F, input: F extends FunctionDefinition<infer I, infer _O> ? I : never): Promise<F extends FunctionDefinition<infer _I, infer O> ? O : never>;
|
|
7
10
|
}
|
|
8
11
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/executor/executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/executor/executor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,aAAa,CAAC;AAE9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAExD;;OAEG;IAEG,MAAM,CAAC,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,WAAW,EAAE,CAAC,EACd,KAAK,EAAE,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GACjE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CA+BxE"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type
|
|
3
|
-
import type { CoreDatabase, EchoDatabase } from '@dxos/echo-db';
|
|
1
|
+
import { type Context, Effect, Schema, type Types } from 'effect';
|
|
2
|
+
import { type EchoDatabase } from '@dxos/echo-db';
|
|
4
3
|
import { type HasId } from '@dxos/echo-schema';
|
|
5
|
-
import { type
|
|
4
|
+
import { type DXN, type SpaceId } from '@dxos/keys';
|
|
6
5
|
import { type QueryResult } from '@dxos/protocols';
|
|
6
|
+
import { FunctionType } from './schema';
|
|
7
|
+
import { type Services } from './services';
|
|
7
8
|
/**
|
|
8
9
|
* Function handler.
|
|
9
10
|
*/
|
|
@@ -18,22 +19,21 @@ export type FunctionHandler<TData = {}, TOutput = any> = (params: {
|
|
|
18
19
|
* This will be the payload from the trigger or other data passed into the function in a workflow.
|
|
19
20
|
*/
|
|
20
21
|
data: TData;
|
|
21
|
-
}) => TOutput | Promise<TOutput> | Effect.Effect<TOutput, any>;
|
|
22
|
+
}) => TOutput | Promise<TOutput> | Effect.Effect<TOutput, any, Services>;
|
|
22
23
|
/**
|
|
23
24
|
* Function context.
|
|
24
25
|
*/
|
|
25
26
|
export interface FunctionContext {
|
|
27
|
+
/**
|
|
28
|
+
* Space from which the function was invoked.
|
|
29
|
+
*/
|
|
30
|
+
space: SpaceAPI | undefined;
|
|
26
31
|
/**
|
|
27
32
|
* Resolves a service available to the function.
|
|
28
33
|
* @throws if the service is not available.
|
|
29
34
|
*/
|
|
30
35
|
getService: <T extends Context.Tag<any, any>>(tag: T) => Context.Tag.Service<T>;
|
|
31
36
|
getSpace: (spaceId: SpaceId) => Promise<SpaceAPI>;
|
|
32
|
-
/**
|
|
33
|
-
* Space from which the function was invoked.
|
|
34
|
-
*/
|
|
35
|
-
space: SpaceAPI | undefined;
|
|
36
|
-
ai: AiServiceClient;
|
|
37
37
|
}
|
|
38
38
|
export interface FunctionContextAi {
|
|
39
39
|
run(model: string, inputs: any, options?: any): Promise<any>;
|
|
@@ -47,18 +47,48 @@ export interface QueuesAPI {
|
|
|
47
47
|
*/
|
|
48
48
|
export interface SpaceAPI {
|
|
49
49
|
get id(): SpaceId;
|
|
50
|
-
/**
|
|
51
|
-
* @deprecated
|
|
52
|
-
*/
|
|
53
|
-
get crud(): CoreDatabase;
|
|
54
50
|
get db(): EchoDatabase;
|
|
55
51
|
get queues(): QueuesAPI;
|
|
56
52
|
}
|
|
57
|
-
|
|
53
|
+
declare const typeId: unique symbol;
|
|
54
|
+
export type FunctionDefinition<T = any, O = any> = {
|
|
55
|
+
[typeId]: true;
|
|
56
|
+
key: string;
|
|
57
|
+
name: string;
|
|
58
58
|
description?: string;
|
|
59
59
|
inputSchema: Schema.Schema<T, any>;
|
|
60
60
|
outputSchema?: Schema.Schema<O, any>;
|
|
61
61
|
handler: FunctionHandler<T, O>;
|
|
62
62
|
};
|
|
63
|
-
export declare const defineFunction:
|
|
63
|
+
export declare const defineFunction: {
|
|
64
|
+
<I, O>(params: {
|
|
65
|
+
key?: string;
|
|
66
|
+
name: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
inputSchema: Schema.Schema<I, any>;
|
|
69
|
+
outputSchema?: Schema.Schema<O, any>;
|
|
70
|
+
handler: Types.NoInfer<FunctionHandler<I, O>>;
|
|
71
|
+
}): FunctionDefinition<I, O>;
|
|
72
|
+
};
|
|
73
|
+
export declare const FunctionDefinition: {
|
|
74
|
+
make: <I, O>(params: {
|
|
75
|
+
key?: string;
|
|
76
|
+
name: string;
|
|
77
|
+
description?: string;
|
|
78
|
+
inputSchema: Schema.Schema<I, any>;
|
|
79
|
+
outputSchema?: Schema.Schema<O, any>;
|
|
80
|
+
handler: Types.NoInfer<FunctionHandler<I, O>>;
|
|
81
|
+
}) => FunctionDefinition<I, O>;
|
|
82
|
+
isFunction: (value: unknown) => value is FunctionDefinition.Any;
|
|
83
|
+
serialize: (functionDef: FunctionDefinition.Any) => FunctionType;
|
|
84
|
+
deserialize: (functionObj: FunctionType) => FunctionDefinition.Any;
|
|
85
|
+
};
|
|
86
|
+
export declare namespace FunctionDefinition {
|
|
87
|
+
type Any = FunctionDefinition<any, any>;
|
|
88
|
+
type Input<T extends FunctionDefinition> = T extends FunctionDefinition<infer I, any> ? I : never;
|
|
89
|
+
type Output<T extends FunctionDefinition> = T extends FunctionDefinition<any, infer O> ? O : never;
|
|
90
|
+
}
|
|
91
|
+
export declare const serializeFunction: (functionDef: FunctionDefinition<any, any>) => FunctionType;
|
|
92
|
+
export declare const deserializeFunction: (functionObj: FunctionType) => FunctionDefinition<unknown, unknown>;
|
|
93
|
+
export {};
|
|
64
94
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
export * from './errors';
|
|
1
2
|
export * from './handler';
|
|
2
3
|
export * from './schema';
|
|
3
4
|
export * from './trace';
|
|
4
5
|
export * from './types';
|
|
5
6
|
export * from './url';
|
|
7
|
+
export * from './triggers';
|
|
6
8
|
export * from './services';
|
|
7
9
|
export * from './executor';
|
|
10
|
+
export * as exampleFunctions from './examples';
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC"}
|