@dxos/functions-testing 0.10.0 → 0.11.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/functions-testing",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "Functions tests",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -14,14 +14,14 @@
14
14
  "type": "module",
15
15
  "exports": {
16
16
  ".": {
17
+ "source": "./src/index.ts",
17
18
  "types": "./dist/types/src/index.d.ts",
18
- "browser": "./dist/lib/browser/index.mjs",
19
- "node": "./dist/lib/node-esm/index.mjs"
19
+ "import": "./dist/lib/index.mjs"
20
20
  },
21
21
  "./testing": {
22
+ "source": "./src/testing/index.ts",
22
23
  "types": "./dist/types/src/testing/index.d.ts",
23
- "browser": "./dist/lib/browser/testing/index.mjs",
24
- "node": "./dist/lib/node-esm/testing/index.mjs"
24
+ "import": "./dist/lib/testing.mjs"
25
25
  }
26
26
  },
27
27
  "types": "dist/types/src/index.d.ts",
@@ -31,24 +31,25 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@effect/platform": "0.96.2",
34
- "@dxos/async": "0.10.0",
35
- "@dxos/client": "0.10.0",
36
- "@dxos/assistant-toolkit": "0.10.0",
37
- "@dxos/config": "0.10.0",
38
- "@dxos/context": "0.10.0",
39
- "@dxos/functions": "0.10.0",
40
- "@dxos/echo": "0.10.0",
41
- "@dxos/functions-runtime": "0.10.0",
42
- "@dxos/invariant": "0.10.0",
43
- "@dxos/compute": "0.10.0",
44
- "@dxos/functions-runtime-cloudflare": "0.10.0",
45
- "@dxos/keys": "0.10.0",
46
- "@dxos/log": "0.10.0",
47
- "@dxos/operation": "0.10.0",
48
- "@dxos/protocols": "0.10.0",
49
- "@dxos/schema": "0.10.0",
50
- "@dxos/util": "0.10.0"
34
+ "@dxos/assistant-toolkit": "0.11.1",
35
+ "@dxos/client": "0.11.1",
36
+ "@dxos/async": "0.11.1",
37
+ "@dxos/compute-runtime": "0.11.1",
38
+ "@dxos/compute": "0.11.1",
39
+ "@dxos/context": "0.11.1",
40
+ "@dxos/echo": "0.11.1",
41
+ "@dxos/config": "0.11.1",
42
+ "@dxos/functions-runtime-cloudflare": "0.11.1",
43
+ "@dxos/invariant": "0.11.1",
44
+ "@dxos/edge-compute": "0.11.1",
45
+ "@dxos/keys": "0.11.1",
46
+ "@dxos/log": "0.11.1",
47
+ "@dxos/operation": "0.11.1",
48
+ "@dxos/protocols": "0.11.1",
49
+ "@dxos/schema": "0.11.1",
50
+ "@dxos/util": "0.11.1"
51
51
  },
52
+ "devDependencies": {},
52
53
  "publishConfig": {
53
54
  "access": "public"
54
55
  },
@@ -5,7 +5,7 @@
5
5
  import { join } from 'node:path';
6
6
  import { describe, it } from 'vitest';
7
7
 
8
- import { bundleFunction } from '@dxos/functions-runtime/native';
8
+ import { bundleFunction } from '@dxos/edge-compute/native';
9
9
 
10
10
  import { writeBundle } from './testing';
11
11
 
@@ -51,10 +51,6 @@ describe('Edge instructions', { tags: ['functions-e2e'] }, () => {
51
51
 
52
52
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
53
53
 
54
- Obj.update(space.properties, (properties) => {
55
- properties.computeEnvironment = 'edge';
56
- });
57
-
58
54
  space.db.add(Obj.make(TestSchema.Organization, { name: 'Acme Corp' }));
59
55
  space.db.add(Obj.make(TestSchema.Organization, { name: 'Globex Industries' }));
60
56
  space.db.add(Obj.make(TestSchema.Organization, { name: 'Initech' }));
@@ -80,6 +76,7 @@ describe('Edge instructions', { tags: ['functions-e2e'] }, () => {
80
76
  const trigger = space.db.add(
81
77
  Obj.make(Trigger.Trigger, {
82
78
  enabled: true,
79
+ remote: true,
83
80
  runnable: Ref.make(fn),
84
81
  spec: Trigger.specTimer('* * * * * *'),
85
82
  input: {
@@ -8,12 +8,12 @@ import { sleep } from '@dxos/async';
8
8
  import { Client, type Config } from '@dxos/client';
9
9
  import { type Space } from '@dxos/client/echo';
10
10
  import { Operation, Trigger } from '@dxos/compute';
11
+ import { InvocationTraceEndEvent, InvocationTraceStartEvent } from '@dxos/compute-runtime';
11
12
  import { Context } from '@dxos/context';
12
13
  import { Feed, Filter, Obj, Query, Scope } from '@dxos/echo';
13
- import { InvocationTraceEndEvent, InvocationTraceStartEvent } from '@dxos/functions-runtime';
14
- import { FunctionsServiceClient } from '@dxos/functions-runtime/edge';
15
- import { bundleFunction } from '@dxos/functions-runtime/native';
16
- import type { BundleResult } from '@dxos/functions-runtime/native';
14
+ import { FunctionsServiceClient } from '@dxos/edge-compute';
15
+ import { bundleFunction } from '@dxos/edge-compute/native';
16
+ import type { BundleResult } from '@dxos/edge-compute/native';
17
17
  import { ErrorCodec, type FunctionRuntimeKind } from '@dxos/protocols';
18
18
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
19
19
 
@@ -85,7 +85,7 @@ export const observeInvocations = async (space: Space, maxCount: number | null)
85
85
  while (true) {
86
86
  try {
87
87
  const traceFeed = space.properties.invocationTraceFeed?.target;
88
- const traceFeedDXN = traceFeed ? Feed.getQueueUri(traceFeed) : undefined;
88
+ const traceFeedDXN = traceFeed ? Feed.getFeedUri(traceFeed) : undefined;
89
89
  const invocations = traceFeedDXN
90
90
  ? await space.db.query(Query.select(Filter.everything()).from(Scope.feed(traceFeedDXN))).run()
91
91
  : [];
@@ -1,2 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"inputs":{"src/index.ts":{"bytes":332,"imports":[],"format":"esm"},"src/testing/util.ts":{"bytes":16206,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime/edge","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime/native","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true}],"format":"esm"},"src/testing/index.ts":{"bytes":368,"imports":[{"path":"src/testing/util.ts","kind":"import-statement","original":"./util"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/index.mjs":{"imports":[],"exports":[],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":127},"dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7623},"dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/compute","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime/edge","kind":"import-statement","external":true},{"path":"@dxos/functions-runtime/native","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/echo/metadata","kind":"import-statement","external":true}],"exports":["deployFunction","observeInvocations","setup","sync","writeBundle"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/util.ts":{"bytesInOutput":3950},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":4184}}}
@@ -1,115 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/testing/util.ts
4
- import fs from "node:fs";
5
- import { sleep } from "@dxos/async";
6
- import { Client } from "@dxos/client";
7
- import { Operation, Trigger } from "@dxos/compute";
8
- import { Context } from "@dxos/context";
9
- import { Feed, Filter, Obj, Query, Scope } from "@dxos/echo";
10
- import { InvocationTraceEndEvent, InvocationTraceStartEvent } from "@dxos/functions-runtime";
11
- import { FunctionsServiceClient } from "@dxos/functions-runtime/edge";
12
- import { bundleFunction } from "@dxos/functions-runtime/native";
13
- import { ErrorCodec } from "@dxos/protocols";
14
- import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
15
- var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/functions-testing/src/testing/util.ts";
16
- var writeBundle = (path, bundle) => {
17
- fs.mkdirSync(path, {
18
- recursive: true
19
- });
20
- Object.entries(bundle.assets).forEach(([name, content]) => {
21
- fs.writeFileSync(path + "/" + name, content);
22
- });
23
- };
24
- var setup = async (config) => {
25
- const client = await new Client({
26
- config,
27
- types: [
28
- Operation.PersistentOperation,
29
- Trigger.Trigger
30
- ]
31
- }).initialize();
32
- await client.halo.createIdentity();
33
- const space = await client.spaces.create();
34
- await space.waitUntilReady();
35
- await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
36
- const functionsServiceClient = FunctionsServiceClient.fromClient(client);
37
- return {
38
- client,
39
- space,
40
- functionsServiceClient
41
- };
42
- };
43
- var sync = async (space) => {
44
- await space.db.flush();
45
- await space.internal.syncToEdge({
46
- onProgress: (state) => console.log(state ? `${state.unsyncedDocumentCount} documents syncing...` : "connecting to edge...")
47
- });
48
- };
49
- var deployFunction = async (space, functionsServiceClient, entryPoint, runtime, ownerUri) => {
50
- const artifact = await bundleFunction({
51
- entryPoint,
52
- verbose: true
53
- });
54
- const func = await functionsServiceClient.deploy(Context.default(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 53 }), {
55
- version: "0.0.1",
56
- ownerUri,
57
- entryPoint: artifact.entryPoint,
58
- assets: artifact.assets,
59
- runtime
60
- });
61
- space.db.add(func);
62
- return func;
63
- };
64
- var observeInvocations = async (space, maxCount) => {
65
- let initialCount = null;
66
- const invocationData = /* @__PURE__ */ new Map();
67
- let count = 0;
68
- while (true) {
69
- try {
70
- const traceFeed = space.properties.invocationTraceFeed?.target;
71
- const traceFeedDXN = traceFeed ? Feed.getQueueUri(traceFeed) : void 0;
72
- const invocations = traceFeedDXN ? await space.db.query(Query.select(Filter.everything()).from(Scope.feed(traceFeedDXN))).run() : [];
73
- for (const invocation of invocations) {
74
- if (Obj.instanceOf(InvocationTraceStartEvent, invocation)) {
75
- if (invocationData.has(invocation.invocationId)) {
76
- continue;
77
- }
78
- invocationData.set(invocation.invocationId, {
79
- count: count++,
80
- begin: invocation
81
- });
82
- console.log(`${count.toString().padStart(3, " ")}: BEGIN ${invocation.runtime ?? "(unknown runtime)"} ${JSON.stringify(invocation.input)}`);
83
- } else if (Obj.instanceOf(InvocationTraceEndEvent, invocation)) {
84
- const data = invocationData.get(invocation.invocationId);
85
- if (!data || !!data.end) {
86
- continue;
87
- }
88
- data.end = invocation;
89
- const outcome = data.end.outcome;
90
- console.log(`${data.count.toString().padStart(3, " ")}: END outcome=${outcome} duration=${data.end.timestamp - data.begin.timestamp}`);
91
- if (outcome === "failure" && data.end.error) {
92
- console.error(ErrorCodec.decode(data.end.error));
93
- }
94
- }
95
- }
96
- if (initialCount === null) {
97
- initialCount = invocations.length;
98
- }
99
- if (maxCount !== null && invocationData.size >= maxCount + initialCount) {
100
- break;
101
- }
102
- } catch (err) {
103
- console.error(err);
104
- }
105
- await sleep(1e3);
106
- }
107
- };
108
- export {
109
- deployFunction,
110
- observeInvocations,
111
- setup,
112
- sync,
113
- writeBundle
114
- };
115
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/testing/util.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport fs from 'node:fs';\n\nimport { sleep } from '@dxos/async';\nimport { Client, type Config } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { Operation, Trigger } from '@dxos/compute';\nimport { Context } from '@dxos/context';\nimport { Feed, Filter, Obj, Query, Scope } from '@dxos/echo';\nimport { InvocationTraceEndEvent, InvocationTraceStartEvent } from '@dxos/functions-runtime';\nimport { FunctionsServiceClient } from '@dxos/functions-runtime/edge';\nimport { bundleFunction } from '@dxos/functions-runtime/native';\nimport type { BundleResult } from '@dxos/functions-runtime/native';\nimport { ErrorCodec, type FunctionRuntimeKind } from '@dxos/protocols';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\n\nexport const writeBundle = (path: string, bundle: BundleResult) => {\n fs.mkdirSync(path, { recursive: true });\n Object.entries(bundle.assets).forEach(([name, content]) => {\n fs.writeFileSync(path + '/' + name, content);\n });\n};\n\nexport const setup = async (config: Config) => {\n const client = await new Client({\n config,\n types: [Operation.PersistentOperation, Trigger.Trigger],\n }).initialize();\n await client.halo.createIdentity();\n\n const space = await client.spaces.create();\n await space.waitUntilReady();\n await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);\n\n const functionsServiceClient = FunctionsServiceClient.fromClient(client);\n\n return { client, space, functionsServiceClient };\n};\n\nexport const sync = async (space: Space) => {\n await space.db.flush();\n await space.internal.syncToEdge({\n onProgress: (state) =>\n console.log(state ? `${state.unsyncedDocumentCount} documents syncing...` : 'connecting to edge...'),\n });\n};\n\nexport const deployFunction = async (\n space: Space,\n functionsServiceClient: FunctionsServiceClient,\n entryPoint: string,\n runtime: FunctionRuntimeKind,\n ownerUri: string,\n): Promise<Operation.PersistentOperation> => {\n const artifact = await bundleFunction({\n entryPoint,\n verbose: true,\n });\n const func = await functionsServiceClient.deploy(Context.default(), {\n version: '0.0.1',\n ownerUri,\n entryPoint: artifact.entryPoint,\n assets: artifact.assets,\n runtime,\n });\n space.db.add(func);\n\n return func;\n};\n\nexport const observeInvocations = async (space: Space, maxCount: number | null) => {\n let initialCount = null;\n const invocationData = new Map<\n string,\n {\n count: number;\n begin: InvocationTraceStartEvent;\n end?: InvocationTraceEndEvent;\n }\n >();\n let count = 0;\n while (true) {\n try {\n const traceFeed = space.properties.invocationTraceFeed?.target;\n const traceFeedDXN = traceFeed ? Feed.getQueueUri(traceFeed) : undefined;\n const invocations = traceFeedDXN\n ? await space.db.query(Query.select(Filter.everything()).from(Scope.feed(traceFeedDXN))).run()\n : [];\n\n for (const invocation of invocations) {\n if (Obj.instanceOf(InvocationTraceStartEvent, invocation)) {\n if (invocationData.has(invocation.invocationId)) {\n continue;\n }\n invocationData.set(invocation.invocationId, {\n count: count++,\n begin: invocation,\n });\n console.log(\n `${count.toString().padStart(3, ' ')}: BEGIN ${invocation.runtime ?? '(unknown runtime)'} ${JSON.stringify(invocation.input)}`,\n );\n } else if (Obj.instanceOf(InvocationTraceEndEvent, invocation)) {\n const data = invocationData.get(invocation.invocationId);\n if (!data || !!data.end) {\n continue;\n }\n data.end = invocation;\n\n const outcome = data.end.outcome;\n console.log(\n `${data.count.toString().padStart(3, ' ')}: END outcome=${outcome} duration=${data.end.timestamp - data.begin.timestamp}`,\n );\n if (outcome === 'failure' && data.end.error) {\n console.error(ErrorCodec.decode(data.end.error));\n }\n }\n }\n if (initialCount === null) {\n initialCount = invocations.length;\n }\n\n if (maxCount !== null && invocationData.size >= maxCount + initialCount) {\n break;\n }\n } catch (err) {\n console.error(err);\n }\n await sleep(1_000);\n }\n};\n"],
5
- "mappings": "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",
6
- "names": ["fs", "sleep", "Client", "Operation", "Trigger", "Context", "Feed", "Filter", "Obj", "Query", "Scope", "InvocationTraceEndEvent", "InvocationTraceStartEvent", "FunctionsServiceClient", "bundleFunction", "ErrorCodec", "EdgeReplicationSetting", "writeBundle", "recursive", "Object", "bundle", "config", "types", "initialize", "space", "waitUntilReady", "internal", "setEdgeReplicationPreference", "functionsServiceClient", "client", "syncToEdge", "onProgress", "state", "entryPoint", "verbose", "ownerUri", "assets", "runtime", "invocationData", "Map", "count", "invocations", "traceFeedDXN", "invocation", "instanceOf", "console", "data", "get", "invocationId", "end", "outcome", "error", "initialCount", "maxCount"]
7
- }