@dxos/functions-runtime-cloudflare 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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/index.mjs +25 -135
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +25 -135
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/functions-client.d.ts +0 -5
- package/dist/types/src/functions-client.d.ts.map +1 -1
- package/dist/types/src/internal/data-service-impl.d.ts.map +1 -1
- package/dist/types/src/internal/query-service-impl.d.ts.map +1 -1
- package/dist/types/src/internal/queue-service-impl.d.ts.map +1 -1
- package/dist/types/src/internal/service-container.d.ts.map +1 -1
- package/dist/types/src/internal/utils.d.ts.map +1 -1
- package/dist/types/src/queues-api.d.ts.map +1 -1
- package/dist/types/src/space-proxy.d.ts.map +1 -1
- package/dist/types/src/wrap-handler-for-cloudflare.d.ts +6 -0
- package/dist/types/src/wrap-handler-for-cloudflare.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/src/functions-client.ts +0 -6
- package/src/wrap-handler-for-cloudflare.ts +1 -1
|
@@ -17,6 +17,7 @@ import { log } from "@dxos/log";
|
|
|
17
17
|
var copyUint8Array = (value) => new Uint8Array(value);
|
|
18
18
|
|
|
19
19
|
// src/internal/data-service-impl.ts
|
|
20
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/internal/data-service-impl.ts";
|
|
20
21
|
function _ts_add_disposable_resource(env, value, async) {
|
|
21
22
|
if (value !== null && value !== void 0) {
|
|
22
23
|
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
@@ -82,7 +83,6 @@ function _ts_dispose_resources(env) {
|
|
|
82
83
|
return next();
|
|
83
84
|
})(env);
|
|
84
85
|
}
|
|
85
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/internal/data-service-impl.ts";
|
|
86
86
|
var DataServiceImpl = class {
|
|
87
87
|
_executionContext;
|
|
88
88
|
_dataService;
|
|
@@ -93,15 +93,7 @@ var DataServiceImpl = class {
|
|
|
93
93
|
}
|
|
94
94
|
subscribe({ subscriptionId, spaceId }) {
|
|
95
95
|
return new Stream(({ next }) => {
|
|
96
|
-
invariant(SpaceId.isValid(spaceId), void 0, {
|
|
97
|
-
F: __dxlog_file,
|
|
98
|
-
L: 39,
|
|
99
|
-
S: this,
|
|
100
|
-
A: [
|
|
101
|
-
"SpaceId.isValid(spaceId)",
|
|
102
|
-
""
|
|
103
|
-
]
|
|
104
|
-
});
|
|
96
|
+
invariant(SpaceId.isValid(spaceId), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 86, S: this, A: ["SpaceId.isValid(spaceId)", ""] });
|
|
105
97
|
this.dataSubscriptions.set(subscriptionId, {
|
|
106
98
|
spaceId,
|
|
107
99
|
next
|
|
@@ -121,12 +113,7 @@ var DataServiceImpl = class {
|
|
|
121
113
|
if (addIds) {
|
|
122
114
|
log.info("request documents", {
|
|
123
115
|
count: addIds.length
|
|
124
|
-
}, {
|
|
125
|
-
F: __dxlog_file,
|
|
126
|
-
L: 59,
|
|
127
|
-
S: this,
|
|
128
|
-
C: (f, a) => f(...a)
|
|
129
|
-
});
|
|
116
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 104, S: this });
|
|
130
117
|
for (const documentId of addIds) {
|
|
131
118
|
const env = {
|
|
132
119
|
stack: [],
|
|
@@ -139,21 +126,11 @@ var DataServiceImpl = class {
|
|
|
139
126
|
documentId,
|
|
140
127
|
spaceId: sub.spaceId,
|
|
141
128
|
found: !!document
|
|
142
|
-
}, {
|
|
143
|
-
F: __dxlog_file,
|
|
144
|
-
L: 63,
|
|
145
|
-
S: this,
|
|
146
|
-
C: (f, a) => f(...a)
|
|
147
|
-
});
|
|
129
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 116, S: this });
|
|
148
130
|
if (!document) {
|
|
149
131
|
log.warn("not found", {
|
|
150
132
|
documentId
|
|
151
|
-
}, {
|
|
152
|
-
F: __dxlog_file,
|
|
153
|
-
L: 65,
|
|
154
|
-
S: this,
|
|
155
|
-
C: (f, a) => f(...a)
|
|
156
|
-
});
|
|
133
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 122, S: this });
|
|
157
134
|
continue;
|
|
158
135
|
}
|
|
159
136
|
sub.next({
|
|
@@ -182,15 +159,7 @@ var DataServiceImpl = class {
|
|
|
182
159
|
hasError: false
|
|
183
160
|
};
|
|
184
161
|
try {
|
|
185
|
-
invariant(SpaceId.isValid(spaceId), void 0, {
|
|
186
|
-
F: __dxlog_file,
|
|
187
|
-
L: 83,
|
|
188
|
-
S: this,
|
|
189
|
-
A: [
|
|
190
|
-
"SpaceId.isValid(spaceId)",
|
|
191
|
-
""
|
|
192
|
-
]
|
|
193
|
-
});
|
|
162
|
+
invariant(SpaceId.isValid(spaceId), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 153, S: this, A: ["SpaceId.isValid(spaceId)", ""] });
|
|
194
163
|
const response = _ts_add_disposable_resource(env, await this._dataService.createDocument(this._executionContext, spaceId, initialValue), false);
|
|
195
164
|
return {
|
|
196
165
|
documentId: response.documentId
|
|
@@ -241,12 +210,7 @@ var DataServiceImpl = class {
|
|
|
241
210
|
});
|
|
242
211
|
}
|
|
243
212
|
async updateIndexes() {
|
|
244
|
-
log.error("updateIndexes is not available in EDGE env.", void 0, {
|
|
245
|
-
F: __dxlog_file,
|
|
246
|
-
L: 134,
|
|
247
|
-
S: this,
|
|
248
|
-
C: (f, a) => f(...a)
|
|
249
|
-
});
|
|
213
|
+
log.error("updateIndexes is not available in EDGE env.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 206, S: this });
|
|
250
214
|
}
|
|
251
215
|
async waitUntilHeadsReplicated({ heads: _heads }) {
|
|
252
216
|
throw new NotImplementedError({
|
|
@@ -259,6 +223,7 @@ var DataServiceImpl = class {
|
|
|
259
223
|
import { Stream as Stream2 } from "@dxos/codec-protobuf/stream";
|
|
260
224
|
import { NotImplementedError as NotImplementedError2, RuntimeServiceError as RuntimeServiceError2 } from "@dxos/errors";
|
|
261
225
|
import { log as log2 } from "@dxos/log";
|
|
226
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/internal/query-service-impl.ts";
|
|
262
227
|
function _ts_add_disposable_resource2(env, value, async) {
|
|
263
228
|
if (value !== null && value !== void 0) {
|
|
264
229
|
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
@@ -324,7 +289,6 @@ function _ts_dispose_resources2(env) {
|
|
|
324
289
|
return next();
|
|
325
290
|
})(env);
|
|
326
291
|
}
|
|
327
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/internal/query-service-impl.ts";
|
|
328
292
|
var QueryServiceImpl = class {
|
|
329
293
|
_executionContext;
|
|
330
294
|
_dataService;
|
|
@@ -336,12 +300,7 @@ var QueryServiceImpl = class {
|
|
|
336
300
|
execQuery(request) {
|
|
337
301
|
log2.info("execQuery", {
|
|
338
302
|
request
|
|
339
|
-
}, {
|
|
340
|
-
F: __dxlog_file2,
|
|
341
|
-
L: 20,
|
|
342
|
-
S: this,
|
|
343
|
-
C: (f, a) => f(...a)
|
|
344
|
-
});
|
|
303
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 81, S: this });
|
|
345
304
|
return Stream2.fromPromise((async () => {
|
|
346
305
|
try {
|
|
347
306
|
const env = {
|
|
@@ -353,21 +312,11 @@ var QueryServiceImpl = class {
|
|
|
353
312
|
this._queryCount++;
|
|
354
313
|
log2.info("begin query", {
|
|
355
314
|
request
|
|
356
|
-
}, {
|
|
357
|
-
F: __dxlog_file2,
|
|
358
|
-
L: 26,
|
|
359
|
-
S: this,
|
|
360
|
-
C: (f, a) => f(...a)
|
|
361
|
-
});
|
|
315
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 93, S: this });
|
|
362
316
|
const queryResponse = _ts_add_disposable_resource2(env, await this._dataService.execQuery(this._executionContext, request), false);
|
|
363
317
|
log2.info("query response", {
|
|
364
318
|
resultCount: queryResponse.results?.length
|
|
365
|
-
}, {
|
|
366
|
-
F: __dxlog_file2,
|
|
367
|
-
L: 28,
|
|
368
|
-
S: this,
|
|
369
|
-
C: (f, a) => f(...a)
|
|
370
|
-
});
|
|
319
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 97, S: this });
|
|
371
320
|
return structuredClone(queryResponse);
|
|
372
321
|
} catch (e) {
|
|
373
322
|
env.error = e;
|
|
@@ -378,12 +327,7 @@ var QueryServiceImpl = class {
|
|
|
378
327
|
} catch (error) {
|
|
379
328
|
log2.error("query failed", {
|
|
380
329
|
err: error
|
|
381
|
-
}, {
|
|
382
|
-
F: __dxlog_file2,
|
|
383
|
-
L: 31,
|
|
384
|
-
S: this,
|
|
385
|
-
C: (f, a) => f(...a)
|
|
386
|
-
});
|
|
330
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 108, S: this });
|
|
387
331
|
throw new RuntimeServiceError2({
|
|
388
332
|
message: `Query execution failed (queryCount=${this._queryCount})`,
|
|
389
333
|
context: {
|
|
@@ -723,7 +667,7 @@ import { PublicKey } from "@dxos/keys";
|
|
|
723
667
|
|
|
724
668
|
// src/queues-api.ts
|
|
725
669
|
import { log as log3 } from "@dxos/log";
|
|
726
|
-
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/queues-api.ts";
|
|
670
|
+
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/queues-api.ts";
|
|
727
671
|
var QueuesAPIImpl = class {
|
|
728
672
|
_serviceContainer;
|
|
729
673
|
_spaceId;
|
|
@@ -742,12 +686,7 @@ var QueuesAPIImpl = class {
|
|
|
742
686
|
log3.verbose("queue object JSON parse failed; object ignored", {
|
|
743
687
|
encoded,
|
|
744
688
|
error: err
|
|
745
|
-
}, {
|
|
746
|
-
F: __dxlog_file3,
|
|
747
|
-
L: 42,
|
|
748
|
-
S: this,
|
|
749
|
-
C: (f, a) => f(...a)
|
|
750
|
-
});
|
|
689
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 22, S: this });
|
|
751
690
|
return [];
|
|
752
691
|
}
|
|
753
692
|
});
|
|
@@ -763,7 +702,7 @@ var QueuesAPIImpl = class {
|
|
|
763
702
|
};
|
|
764
703
|
|
|
765
704
|
// src/space-proxy.ts
|
|
766
|
-
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/space-proxy.ts";
|
|
705
|
+
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/space-proxy.ts";
|
|
767
706
|
var SpaceProxy = class extends Resource {
|
|
768
707
|
_serviceContainer;
|
|
769
708
|
_echoClient;
|
|
@@ -778,30 +717,14 @@ var SpaceProxy = class extends Resource {
|
|
|
778
717
|
return this._id;
|
|
779
718
|
}
|
|
780
719
|
get db() {
|
|
781
|
-
invariant2(this._db, void 0, {
|
|
782
|
-
F: __dxlog_file4,
|
|
783
|
-
L: 35,
|
|
784
|
-
S: this,
|
|
785
|
-
A: [
|
|
786
|
-
"this._db",
|
|
787
|
-
""
|
|
788
|
-
]
|
|
789
|
-
});
|
|
720
|
+
invariant2(this._db, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 24, S: this, A: ["this._db", ""] });
|
|
790
721
|
return this._db;
|
|
791
722
|
}
|
|
792
723
|
/**
|
|
793
724
|
* @deprecated Use db API.
|
|
794
725
|
*/
|
|
795
726
|
get crud() {
|
|
796
|
-
invariant2(this._db, void 0, {
|
|
797
|
-
F: __dxlog_file4,
|
|
798
|
-
L: 43,
|
|
799
|
-
S: this,
|
|
800
|
-
A: [
|
|
801
|
-
"this._db",
|
|
802
|
-
""
|
|
803
|
-
]
|
|
804
|
-
});
|
|
727
|
+
invariant2(this._db, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 30, S: this, A: ["this._db", ""] });
|
|
805
728
|
return this._db.coreDatabase;
|
|
806
729
|
}
|
|
807
730
|
get queues() {
|
|
@@ -825,7 +748,7 @@ var SpaceProxy = class extends Resource {
|
|
|
825
748
|
};
|
|
826
749
|
|
|
827
750
|
// src/functions-client.ts
|
|
828
|
-
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/functions-client.ts";
|
|
751
|
+
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/functions-client.ts";
|
|
829
752
|
var FunctionsClient = class extends Resource2 {
|
|
830
753
|
_serviceContainer;
|
|
831
754
|
_echoClient;
|
|
@@ -833,24 +756,8 @@ var FunctionsClient = class extends Resource2 {
|
|
|
833
756
|
_spaces = /* @__PURE__ */ new Map();
|
|
834
757
|
constructor(services) {
|
|
835
758
|
super();
|
|
836
|
-
invariant3(typeof services.dataService !== "undefined", "DataService is required", {
|
|
837
|
-
|
|
838
|
-
L: 33,
|
|
839
|
-
S: this,
|
|
840
|
-
A: [
|
|
841
|
-
"typeof services.dataService !== 'undefined'",
|
|
842
|
-
"'DataService is required'"
|
|
843
|
-
]
|
|
844
|
-
});
|
|
845
|
-
invariant3(typeof services.queueService !== "undefined", "QueueService is required", {
|
|
846
|
-
F: __dxlog_file5,
|
|
847
|
-
L: 34,
|
|
848
|
-
S: this,
|
|
849
|
-
A: [
|
|
850
|
-
"typeof services.queueService !== 'undefined'",
|
|
851
|
-
"'QueueService is required'"
|
|
852
|
-
]
|
|
853
|
-
});
|
|
759
|
+
invariant3(typeof services.dataService !== "undefined", "DataService is required", { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 19, S: this, A: ["typeof services.dataService !== 'undefined'", "'DataService is required'"] });
|
|
760
|
+
invariant3(typeof services.queueService !== "undefined", "QueueService is required", { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 20, S: this, A: ["typeof services.queueService !== 'undefined'", "'QueueService is required'"] });
|
|
854
761
|
this._serviceContainer = new ServiceContainer(this._executionContext, services.dataService, services.queueService, services.functionsAiService);
|
|
855
762
|
this._echoClient = new EchoClient({});
|
|
856
763
|
}
|
|
@@ -904,7 +811,7 @@ import { invariant as invariant4 } from "@dxos/invariant";
|
|
|
904
811
|
import { SpaceId as SpaceId2 } from "@dxos/keys";
|
|
905
812
|
import { log as log4 } from "@dxos/log";
|
|
906
813
|
import { EdgeResponse } from "@dxos/protocols";
|
|
907
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/functions-runtime-cloudflare/src/wrap-handler-for-cloudflare.ts";
|
|
814
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/compute/functions-runtime-cloudflare/src/wrap-handler-for-cloudflare.ts";
|
|
908
815
|
var wrapHandlerForCloudflare = (func) => {
|
|
909
816
|
return async (request, env) => {
|
|
910
817
|
if (request.headers.get(FUNCTION_ROUTE_HEADER) === FunctionRouteValue.Meta) {
|
|
@@ -929,12 +836,7 @@ var wrapHandlerForCloudflare = (func) => {
|
|
|
929
836
|
log4.error("error invoking function", {
|
|
930
837
|
error,
|
|
931
838
|
stack: error.stack
|
|
932
|
-
}, {
|
|
933
|
-
F: __dxlog_file6,
|
|
934
|
-
L: 44,
|
|
935
|
-
S: void 0,
|
|
936
|
-
C: (f, a) => f(...a)
|
|
937
|
-
});
|
|
839
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 37, S: void 0 });
|
|
938
840
|
return EdgeResponse.failure({
|
|
939
841
|
message: error?.message ?? "Internal error",
|
|
940
842
|
error
|
|
@@ -967,12 +869,7 @@ var decodeRequest = async (request) => {
|
|
|
967
869
|
}
|
|
968
870
|
};
|
|
969
871
|
} catch (err) {
|
|
970
|
-
log4.catch(err, void 0, {
|
|
971
|
-
F: __dxlog_file6,
|
|
972
|
-
L: 79,
|
|
973
|
-
S: void 0,
|
|
974
|
-
C: (f, a) => f(...a)
|
|
975
|
-
});
|
|
872
|
+
log4.catch(err, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 76, S: void 0 });
|
|
976
873
|
return {
|
|
977
874
|
data: {
|
|
978
875
|
bodyText,
|
|
@@ -1005,15 +902,7 @@ var createFunctionContext = async ({ serviceContainer, contextSpaceId }) => {
|
|
|
1005
902
|
throw new Error(`Space not found: ${contextSpaceId}`);
|
|
1006
903
|
}
|
|
1007
904
|
spaceKey = meta.spaceKey;
|
|
1008
|
-
invariant4(!meta.rootDocumentId.startsWith("automerge:"), void 0, {
|
|
1009
|
-
F: __dxlog_file6,
|
|
1010
|
-
L: 117,
|
|
1011
|
-
S: void 0,
|
|
1012
|
-
A: [
|
|
1013
|
-
"!meta.rootDocumentId.startsWith('automerge:')",
|
|
1014
|
-
""
|
|
1015
|
-
]
|
|
1016
|
-
});
|
|
905
|
+
invariant4(!meta.rootDocumentId.startsWith("automerge:"), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 109, S: void 0, A: ["!meta.rootDocumentId.startsWith('automerge:')", ""] });
|
|
1017
906
|
rootUrl = `automerge:${meta.rootDocumentId}`;
|
|
1018
907
|
}
|
|
1019
908
|
return {
|
|
@@ -1073,6 +962,7 @@ export {
|
|
|
1073
962
|
FunctionsClient,
|
|
1074
963
|
ServiceContainer,
|
|
1075
964
|
createClientFromEnv,
|
|
965
|
+
createFunctionContext,
|
|
1076
966
|
setupFunctionsLogger,
|
|
1077
967
|
wrapHandlerForCloudflare
|
|
1078
968
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/functions-client.ts", "../../../src/internal/data-service-impl.ts", "../../../src/internal/utils.ts", "../../../src/internal/query-service-impl.ts", "../../../src/internal/queue-service-impl.ts", "../../../src/internal/service-container.ts", "../../../src/space-proxy.ts", "../../../src/queues-api.ts", "../../../src/types.ts", "../../../src/wrap-handler-for-cloudflare.ts", "../../../src/logger.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Resource } from '@dxos/context';\nimport { EchoClient } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\n\nimport { ServiceContainer } from './internal';\nimport { SpaceProxy } from './space-proxy';\n\ntype Services = {\n dataService: EdgeFunctionEnv.DataService;\n queueService: EdgeFunctionEnv.QueueService;\n functionsAiService: EdgeFunctionEnv.FunctionsAiService;\n};\n\n/**\n * API for functions to integrate with ECHO and HALO.\n * @deprecated\n */\nexport class FunctionsClient extends Resource {\n private readonly _serviceContainer;\n private readonly _echoClient;\n private readonly _executionContext: EdgeFunctionEnv.TraceContext = {};\n\n private readonly _spaces = new Map<SpaceId, SpaceProxy>();\n\n constructor(services: Services) {\n super();\n invariant(typeof services.dataService !== 'undefined', 'DataService is required');\n invariant(typeof services.queueService !== 'undefined', 'QueueService is required');\n this._serviceContainer = new ServiceContainer(\n this._executionContext,\n services.dataService,\n services.queueService,\n services.functionsAiService,\n );\n this._echoClient = new EchoClient({});\n }\n\n get echo(): EchoClient {\n return this._echoClient;\n }\n\n protected override async _open() {\n const { dataService, queryService } = await this._serviceContainer.createServices();\n this._echoClient.connectToService({ dataService, queryService });\n await this._echoClient.open();\n }\n\n protected override async _close() {\n for (const space of this._spaces.values()) {\n await space.close();\n }\n this._spaces.clear();\n\n await this._echoClient.close();\n }\n\n async getSpace(spaceId: SpaceId): Promise<SpaceProxy> {\n if (!this._spaces.has(spaceId)) {\n const space = new SpaceProxy(this._serviceContainer, this._echoClient, spaceId);\n this._spaces.set(spaceId, space);\n }\n const space = this._spaces.get(spaceId)!;\n await space.open(); // No-op if already open.\n return space;\n }\n}\n\nexport const createClientFromEnv = async (env: any): Promise<FunctionsClient> => {\n const client = new FunctionsClient({\n dataService: env.DATA_SERVICE,\n queueService: env.QUEUE_SERVICE,\n functionsAiService: env.FUNCTIONS_AI_SERVICE,\n });\n await client.open();\n return client;\n};\n\n/**\n - Provides data access capabilities for user functions.\n - No real-time replication or reactive queries -- function receives a snapshot.\n - Function event contains the metadata but doesn't need to include the data.\n */\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { RequestOptions } from '@dxos/codec-protobuf';\nimport { Stream } from '@dxos/codec-protobuf/stream';\nimport { raise } from '@dxos/debug';\nimport { NotImplementedError, RuntimeServiceError } from '@dxos/errors';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\nimport type {\n BatchedDocumentUpdates,\n CreateDocumentRequest,\n CreateDocumentResponse,\n DataService as DataServiceProto,\n GetDocumentHeadsRequest,\n GetDocumentHeadsResponse,\n GetSpaceSyncStateRequest,\n ReIndexHeadsRequest,\n SpaceSyncState,\n UpdateRequest,\n UpdateSubscriptionRequest,\n} from '@dxos/protocols/proto/dxos/echo/service';\n\nimport { copyUint8Array } from './utils';\n\nexport class DataServiceImpl implements DataServiceProto {\n private dataSubscriptions = new Map<string, { spaceId: SpaceId; next: (msg: BatchedDocumentUpdates) => void }>();\n\n constructor(\n private _executionContext: EdgeFunctionEnv.TraceContext,\n private _dataService: EdgeFunctionEnv.DataService,\n ) {}\n\n subscribe({ subscriptionId, spaceId }: { subscriptionId: string; spaceId: string }): Stream<BatchedDocumentUpdates> {\n return new Stream(({ next }) => {\n invariant(SpaceId.isValid(spaceId));\n this.dataSubscriptions.set(subscriptionId, { spaceId, next });\n\n return () => {\n this.dataSubscriptions.delete(subscriptionId);\n };\n });\n }\n\n async updateSubscription({ subscriptionId, addIds }: UpdateSubscriptionRequest): Promise<void> {\n const sub =\n this.dataSubscriptions.get(subscriptionId) ??\n raise(\n new RuntimeServiceError({\n message: 'Subscription not found.',\n context: { subscriptionId },\n }),\n );\n\n if (addIds) {\n log.info('request documents', { count: addIds.length });\n // TODO(dmaretskyi): Batch.\n for (const documentId of addIds) {\n using document = await this._dataService.getDocument(this._executionContext, sub.spaceId, documentId);\n log.info('document loaded', { documentId, spaceId: sub.spaceId, found: !!document });\n if (!document) {\n log.warn('not found', { documentId });\n continue;\n }\n sub.next({\n updates: [\n {\n documentId,\n // Copy returned object to avoid hanging RPC stub\n // See https://developers.cloudflare.com/workers/runtime-apis/rpc/lifecycle/\n mutation: copyUint8Array(document.data),\n },\n ],\n });\n }\n }\n }\n\n async createDocument({ spaceId, initialValue }: CreateDocumentRequest): Promise<CreateDocumentResponse> {\n invariant(SpaceId.isValid(spaceId));\n using response = await this._dataService.createDocument(this._executionContext, spaceId, initialValue);\n return { documentId: response.documentId };\n }\n\n async update({ updates, subscriptionId }: UpdateRequest): Promise<void> {\n const sub =\n this.dataSubscriptions.get(subscriptionId) ??\n raise(\n new RuntimeServiceError({\n message: 'Subscription not found.',\n context: { subscriptionId },\n }),\n );\n // TODO(dmaretskyi): Batch.\n try {\n for (const update of updates ?? []) {\n await this._dataService.changeDocument(this._executionContext, sub.spaceId, update.documentId, update.mutation);\n }\n } catch (error) {\n throw RuntimeServiceError.wrap({\n message: 'Failed to apply document updates.',\n context: { subscriptionId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async flush(): Promise<void> {\n // No-op.\n }\n\n subscribeSpaceSyncState(_request: GetSpaceSyncStateRequest, _options?: RequestOptions): Stream<SpaceSyncState> {\n throw new NotImplementedError({\n message: 'subscribeSpaceSyncState is not implemented.',\n });\n }\n\n async getDocumentHeads({ documentIds: _documentIds }: GetDocumentHeadsRequest): Promise<GetDocumentHeadsResponse> {\n throw new NotImplementedError({\n message: 'getDocumentHeads is not implemented.',\n });\n }\n\n async reIndexHeads({ documentIds: _documentIds }: ReIndexHeadsRequest): Promise<void> {\n throw new NotImplementedError({\n message: 'reIndexHeads is not implemented.',\n });\n }\n\n async updateIndexes(): Promise<void> {\n log.error('updateIndexes is not available in EDGE env.');\n // No-op.\n }\n\n async waitUntilHeadsReplicated({ heads: _heads }: { heads: any }): Promise<void> {\n throw new NotImplementedError({\n message: 'waitUntilHeadsReplicated is not implemented.',\n });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nexport const copyUint8Array = (value: Uint8Array): Uint8Array => new Uint8Array(value);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Stream } from '@dxos/codec-protobuf/stream';\nimport { NotImplementedError, RuntimeServiceError } from '@dxos/errors';\nimport { log } from '@dxos/log';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\nimport { type QueryRequest, type QueryResponse, type QueryService } from '@dxos/protocols/proto/dxos/echo/query';\n\nexport class QueryServiceImpl implements QueryService {\n private _queryCount = 0;\n\n constructor(\n private readonly _executionContext: EdgeFunctionEnv.TraceContext,\n private readonly _dataService: EdgeFunctionEnv.DataService,\n ) {}\n\n execQuery(request: QueryRequest): Stream<QueryResponse> {\n log.info('execQuery', { request });\n\n return Stream.fromPromise<QueryResponse>(\n (async () => {\n try {\n this._queryCount++;\n log.info('begin query', { request });\n using queryResponse = await this._dataService.execQuery(this._executionContext, request);\n log.info('query response', { resultCount: queryResponse.results?.length });\n return structuredClone(queryResponse);\n } catch (error) {\n log.error('query failed', { err: error });\n throw new RuntimeServiceError({\n message: `Query execution failed (queryCount=${this._queryCount})`,\n context: { queryCount: this._queryCount },\n cause: error,\n });\n }\n })(),\n );\n }\n\n async reindex() {\n throw new NotImplementedError({\n message: 'Reindex is not implemented.',\n });\n }\n\n async setConfig() {\n throw new NotImplementedError({\n message: 'SetConfig is not implemented.',\n });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RuntimeServiceError } from '@dxos/errors';\nimport { type EdgeFunctionEnv, type FeedProtocol } from '@dxos/protocols';\n\nexport class QueueServiceImpl implements FeedProtocol.QueueService {\n constructor(\n protected _ctx: EdgeFunctionEnv.TraceContext,\n private readonly _queueService: EdgeFunctionEnv.QueueService,\n ) {}\n\n async queryQueue(request: FeedProtocol.QueryQueueRequest): Promise<FeedProtocol.QueryResult> {\n try {\n using result = await this._queueService.queryQueue(this._ctx, request);\n // Copy to avoid hanging RPC stub (Workers RPC lifecycle).\n return {\n objects: structuredClone(result.objects),\n nextCursor: result.nextCursor,\n prevCursor: result.prevCursor,\n };\n } catch (error) {\n const { query } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue query failed.',\n context: {\n subspaceTag: query?.queuesNamespace,\n spaceId: query?.spaceId,\n queueId: query?.queueIds?.[0],\n },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async insertIntoQueue(request: FeedProtocol.InsertIntoQueueRequest): Promise<void> {\n try {\n using _ = await this._queueService.insertIntoQueue(this._ctx, request);\n } catch (error) {\n const { subspaceTag, spaceId, queueId } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue append failed.',\n context: { subspaceTag, spaceId, queueId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async deleteFromQueue(request: FeedProtocol.DeleteFromQueueRequest): Promise<void> {\n try {\n using _ = await this._queueService.deleteFromQueue(this._ctx, request);\n } catch (error) {\n const { subspaceTag, spaceId, queueId } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue delete failed.',\n context: { subspaceTag, spaceId, queueId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async syncQueue(_: FeedProtocol.SyncQueueRequest): Promise<void> {\n // No-op in Cloudflare runtime.\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type AnyEntity } from '@dxos/echo/internal';\nimport { type DXN, type SpaceId } from '@dxos/keys';\nimport { type EdgeFunctionEnv, type FeedProtocol } from '@dxos/protocols';\nimport { type QueryService as QueryServiceProto } from '@dxos/protocols/proto/dxos/echo/query';\nimport type { DataService as DataServiceProto } from '@dxos/protocols/proto/dxos/echo/service';\n\nimport { DataServiceImpl } from './data-service-impl';\nimport { QueryServiceImpl } from './query-service-impl';\nimport { QueueServiceImpl } from './queue-service-impl';\n\n/**\n * TODO: make this implement DataService and QueryService to unify API over edge and web backend\n */\nexport class ServiceContainer {\n constructor(\n private readonly _executionContext: EdgeFunctionEnv.TraceContext,\n private readonly _dataService: EdgeFunctionEnv.DataService,\n private readonly _queueService: EdgeFunctionEnv.QueueService,\n private readonly _functionsService: EdgeFunctionEnv.FunctionsAiService,\n ) {}\n\n async getSpaceMeta(spaceId: SpaceId): Promise<EdgeFunctionEnv.SpaceMeta | undefined> {\n using result = await this._dataService.getSpaceMeta(this._executionContext, spaceId);\n // Copy returned object to avoid hanging RPC stub\n // See https://developers.cloudflare.com/workers/runtime-apis/rpc/lifecycle/\n return result\n ? {\n spaceKey: result.spaceKey,\n rootDocumentId: result.rootDocumentId,\n }\n : undefined;\n }\n\n async createServices(): Promise<{\n dataService: DataServiceProto;\n queryService: QueryServiceProto;\n queueService: FeedProtocol.QueueService;\n functionsAiService: EdgeFunctionEnv.FunctionsAiService;\n }> {\n const dataService = new DataServiceImpl(this._executionContext, this._dataService);\n const queryService = new QueryServiceImpl(this._executionContext, this._dataService);\n const queueService = new QueueServiceImpl(this._executionContext, this._queueService);\n\n return {\n dataService,\n queryService,\n queueService,\n functionsAiService: this._functionsService,\n };\n }\n\n async queryQueue(queue: DXN): Promise<FeedProtocol.QueryResult> {\n const parts = queue.asQueueDXN();\n if (!parts) {\n throw new Error('Invalid queue DXN');\n }\n const { subspaceTag, spaceId, queueId } = parts;\n const result = await this._queueService.queryQueue(this._executionContext, {\n query: {\n spaceId,\n queuesNamespace: subspaceTag,\n queueIds: [queueId],\n },\n });\n return {\n objects: structuredClone(result.objects),\n nextCursor: result.nextCursor ?? null,\n prevCursor: result.prevCursor ?? null,\n };\n }\n\n async insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void> {\n const parts = queue.asQueueDXN();\n if (!parts) {\n throw new Error('Invalid queue DXN');\n }\n const { subspaceTag, spaceId, queueId } = parts;\n await this._queueService.insertIntoQueue(this._executionContext, {\n subspaceTag,\n spaceId,\n queueId,\n objects: objects.map((obj) => JSON.stringify(obj)),\n });\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Resource } from '@dxos/context';\nimport { type Database } from '@dxos/echo';\nimport { type CoreDatabase, type EchoClient, type EchoDatabaseImpl } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey, type SpaceId } from '@dxos/keys';\n\nimport type { ServiceContainer } from './internal';\nimport { type QueuesAPI, QueuesAPIImpl } from './queues-api';\n\n/**\n * @deprecated\n */\nexport class SpaceProxy extends Resource {\n private _db?: EchoDatabaseImpl = undefined;\n private _queuesApi: QueuesAPIImpl;\n\n constructor(\n private readonly _serviceContainer: ServiceContainer,\n private readonly _echoClient: EchoClient,\n private readonly _id: SpaceId,\n ) {\n super();\n this._queuesApi = new QueuesAPIImpl(this._serviceContainer, this._id);\n }\n\n get id(): SpaceId {\n return this._id;\n }\n\n get db(): Database.Database {\n invariant(this._db);\n return this._db;\n }\n\n /**\n * @deprecated Use db API.\n */\n get crud(): CoreDatabase {\n invariant(this._db);\n return this._db.coreDatabase;\n }\n\n get queues(): QueuesAPI {\n return this._queuesApi;\n }\n\n protected override async _open() {\n const meta = await this._serviceContainer.getSpaceMeta(this._id);\n if (!meta) {\n throw new Error(`Space not found: ${this._id}`);\n }\n\n this._db = this._echoClient.constructDatabase({\n spaceId: this._id,\n spaceKey: PublicKey.from(meta.spaceKey),\n reactiveSchemaQuery: false,\n owningObject: this,\n });\n\n await this._db.coreDatabase.open(this._ctx, { rootUrl: meta.rootDocumentId });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AnyEntity } from '@dxos/echo/internal';\nimport type { DXN, SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport type { ServiceContainer } from './internal';\n\nexport interface QueuesQueryResult {\n objects: AnyEntity[];\n nextCursor: string | null;\n prevCursor: string | null;\n}\n\n// TODO(dmaretskyi): Temporary API to get the queues working.\n// TODO(dmaretskyi): To be replaced with integrating queues into echo.\n/**\n * @deprecated\n */\nexport interface QueuesAPI {\n queryQueue(queue: DXN, options?: {}): Promise<QueuesQueryResult>;\n insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void>;\n}\n\n/**\n * @deprecated\n */\nexport class QueuesAPIImpl implements QueuesAPI {\n constructor(\n private readonly _serviceContainer: ServiceContainer,\n private readonly _spaceId: SpaceId,\n ) {}\n\n async queryQueue(queue: DXN, options?: {}): Promise<QueuesQueryResult> {\n const result = await this._serviceContainer.queryQueue(queue);\n const objects = (result.objects ?? []).flatMap((encoded): AnyEntity[] => {\n try {\n return [JSON.parse(encoded) as AnyEntity];\n } catch (err) {\n log.verbose('queue object JSON parse failed; object ignored', { encoded, error: err });\n return [];\n }\n });\n return {\n objects,\n nextCursor: result.nextCursor ?? null,\n prevCursor: result.prevCursor ?? null,\n };\n }\n\n insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void> {\n // TODO(dmaretskyi): Ugly.\n return this._serviceContainer.insertIntoQueue(queue, JSON.parse(JSON.stringify(objects)));\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { JsonSchemaType } from '@dxos/echo/internal';\n\n/**\n * Is used for to route the request to the metadata handler instead of the main handler.\n */\nexport const FUNCTION_ROUTE_HEADER = 'X-DXOS-Function-Route';\n\nexport enum FunctionRouteValue {\n Meta = 'meta',\n}\n\nexport type FunctionMetadata = {\n /**\n * FQN.\n */\n key: string;\n /**\n * Human-readable name.\n */\n name?: string;\n\n /**\n * Description.\n */\n description?: string;\n\n /**\n * Input schema.\n */\n inputSchema?: JsonSchemaType;\n\n /**\n * Output schema.\n */\n outputSchema?: JsonSchemaType;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { JsonSchemaType } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { EdgeResponse } from '@dxos/protocols';\nimport type { EdgeFunctionEnv, FunctionProtocol } from '@dxos/protocols';\n\nimport { ServiceContainer } from './internal';\nimport { FUNCTION_ROUTE_HEADER, type FunctionMetadata, FunctionRouteValue } from './types';\n\n/**\n * Wraps a user function in a Cloudflare-compatible handler.\n */\nexport const wrapHandlerForCloudflare = (func: FunctionProtocol.Func): ExportedHandlerFetchHandler<any> => {\n return async (request: Request, env: EdgeFunctionEnv.Env): Promise<Response> => {\n // TODO(dmaretskyi): Should theÓ scope name reflect the function name?\n // TODO(mykola): Wrap in withCleanAutomergeWasmState;\n // TODO(mykola): Wrap in withNewExecutionContext;\n // Meta route is used to get the input schema of the function by the functions service.\n if (request.headers.get(FUNCTION_ROUTE_HEADER) === FunctionRouteValue.Meta) {\n return handleFunctionMetaCall(func, request);\n }\n\n try {\n const spaceId = new URL(request.url).searchParams.get('spaceId');\n if (spaceId) {\n if (!SpaceId.isValid(spaceId)) {\n return new Response('Invalid spaceId', { status: 400 });\n }\n }\n\n const serviceContainer = new ServiceContainer({}, env.DATA_SERVICE, env.QUEUE_SERVICE, env.FUNCTIONS_AI_SERVICE);\n const context = await createFunctionContext({\n serviceContainer,\n contextSpaceId: spaceId as SpaceId | undefined,\n });\n\n return EdgeResponse.success(await invokeFunction(func, context, request));\n } catch (error: any) {\n log.error('error invoking function', { error, stack: error.stack });\n return EdgeResponse.failure({\n message: error?.message ?? 'Internal error',\n error,\n });\n }\n };\n};\n\nconst invokeFunction = async (func: FunctionProtocol.Func, context: FunctionProtocol.Context, request: Request) => {\n // TODO(dmaretskyi): For some reason requests get wrapped like this.\n const { data } = await decodeRequest(request);\n\n return func.handler({\n context,\n data,\n });\n};\n\nconst decodeRequest = async (request: Request) => {\n const {\n data: { bodyText, ...rest },\n trigger,\n } = (await request.json()) as any;\n\n if (!bodyText) {\n return { data: rest, trigger };\n }\n\n // Webhook passed body as bodyText. Use it as function input if a well-formatted JSON\n // TODO: better trigger input mapping\n try {\n const data = JSON.parse(bodyText);\n return { data, trigger: { ...trigger, ...rest } };\n } catch (err) {\n log.catch(err);\n return { data: { bodyText, ...rest } };\n }\n};\n\nconst handleFunctionMetaCall = (functionDefinition: FunctionProtocol.Func, request: Request): Response => {\n const response: FunctionMetadata = {\n key: functionDefinition.meta.key,\n name: functionDefinition.meta.name,\n description: functionDefinition.meta.description,\n inputSchema: functionDefinition.meta.inputSchema as JsonSchemaType | undefined,\n outputSchema: functionDefinition.meta.outputSchema as JsonSchemaType | undefined,\n };\n\n return new Response(JSON.stringify(response), {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n};\n\nconst createFunctionContext = async ({\n serviceContainer,\n contextSpaceId,\n}: {\n serviceContainer: ServiceContainer;\n contextSpaceId: SpaceId | undefined;\n}): Promise<FunctionProtocol.Context> => {\n const { dataService, queryService, queueService, functionsAiService } = await serviceContainer.createServices();\n\n let spaceKey: string | undefined;\n let rootUrl: string | undefined;\n if (contextSpaceId) {\n const meta = await serviceContainer.getSpaceMeta(contextSpaceId);\n if (!meta) {\n throw new Error(`Space not found: ${contextSpaceId}`);\n }\n spaceKey = meta.spaceKey;\n invariant(!meta.rootDocumentId.startsWith('automerge:'));\n rootUrl = `automerge:${meta.rootDocumentId}`;\n }\n\n return {\n services: {\n dataService,\n queryService,\n queueService,\n functionsAiService,\n },\n spaceId: contextSpaceId,\n spaceKey,\n spaceRootUrl: rootUrl,\n } as any; // TODO(dmaretskyi): Link and fix before merging\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n/* eslint-disable no-console */\n\nimport { LogLevel, type LogProcessor, log, shouldLog } from '@dxos/log';\n\nexport const setupFunctionsLogger = () => {\n log.runtimeConfig.processors.length = 0;\n log.runtimeConfig.processors.push(functionLogProcessor);\n};\n\nconst functionLogProcessor: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n const context = entry.computedContext;\n const error = entry.computedError;\n const extras = [Object.keys(context).length > 0 ? context : undefined, error].filter((value) => value !== undefined);\n\n switch (entry.level) {\n case LogLevel.DEBUG:\n case LogLevel.TRACE:\n console.debug(entry.message, ...extras);\n break;\n case LogLevel.VERBOSE:\n console.log(entry.message, ...extras);\n break;\n case LogLevel.INFO:\n console.info(entry.message, ...extras);\n break;\n case LogLevel.WARN:\n console.warn(entry.message, ...extras);\n break;\n case LogLevel.ERROR:\n console.error(entry.message, ...extras);\n break;\n default:\n console.log(entry.message, ...extras);\n break;\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Resource", "EchoClient", "invariant", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Resource } from '@dxos/context';\nimport { EchoClient } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\n\nimport { ServiceContainer } from './internal';\nimport { SpaceProxy } from './space-proxy';\n\ntype Services = {\n dataService: EdgeFunctionEnv.DataService;\n queueService: EdgeFunctionEnv.QueueService;\n functionsAiService: EdgeFunctionEnv.FunctionsAiService;\n};\n\n/**\n * API for functions to integrate with ECHO and HALO.\n * @deprecated\n */\nexport class FunctionsClient extends Resource {\n private readonly _serviceContainer;\n private readonly _echoClient;\n private readonly _executionContext: EdgeFunctionEnv.TraceContext = {};\n\n private readonly _spaces = new Map<SpaceId, SpaceProxy>();\n\n constructor(services: Services) {\n super();\n invariant(typeof services.dataService !== 'undefined', 'DataService is required');\n invariant(typeof services.queueService !== 'undefined', 'QueueService is required');\n this._serviceContainer = new ServiceContainer(\n this._executionContext,\n services.dataService,\n services.queueService,\n services.functionsAiService,\n );\n this._echoClient = new EchoClient({});\n }\n\n get echo(): EchoClient {\n return this._echoClient;\n }\n\n protected override async _open() {\n const { dataService, queryService } = await this._serviceContainer.createServices();\n this._echoClient.connectToService({ dataService, queryService });\n await this._echoClient.open();\n }\n\n protected override async _close() {\n for (const space of this._spaces.values()) {\n await space.close();\n }\n this._spaces.clear();\n\n await this._echoClient.close();\n }\n\n async getSpace(spaceId: SpaceId): Promise<SpaceProxy> {\n if (!this._spaces.has(spaceId)) {\n const space = new SpaceProxy(this._serviceContainer, this._echoClient, spaceId);\n this._spaces.set(spaceId, space);\n }\n const space = this._spaces.get(spaceId)!;\n await space.open(); // No-op if already open.\n return space;\n }\n}\n\nexport const createClientFromEnv = async (env: any): Promise<FunctionsClient> => {\n const client = new FunctionsClient({\n dataService: env.DATA_SERVICE,\n queueService: env.QUEUE_SERVICE,\n functionsAiService: env.FUNCTIONS_AI_SERVICE,\n });\n await client.open();\n return client;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { RequestOptions } from '@dxos/codec-protobuf';\nimport { Stream } from '@dxos/codec-protobuf/stream';\nimport { raise } from '@dxos/debug';\nimport { NotImplementedError, RuntimeServiceError } from '@dxos/errors';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\nimport type {\n BatchedDocumentUpdates,\n CreateDocumentRequest,\n CreateDocumentResponse,\n DataService as DataServiceProto,\n GetDocumentHeadsRequest,\n GetDocumentHeadsResponse,\n GetSpaceSyncStateRequest,\n ReIndexHeadsRequest,\n SpaceSyncState,\n UpdateRequest,\n UpdateSubscriptionRequest,\n} from '@dxos/protocols/proto/dxos/echo/service';\n\nimport { copyUint8Array } from './utils';\n\nexport class DataServiceImpl implements DataServiceProto {\n private dataSubscriptions = new Map<string, { spaceId: SpaceId; next: (msg: BatchedDocumentUpdates) => void }>();\n\n constructor(\n private _executionContext: EdgeFunctionEnv.TraceContext,\n private _dataService: EdgeFunctionEnv.DataService,\n ) {}\n\n subscribe({ subscriptionId, spaceId }: { subscriptionId: string; spaceId: string }): Stream<BatchedDocumentUpdates> {\n return new Stream(({ next }) => {\n invariant(SpaceId.isValid(spaceId));\n this.dataSubscriptions.set(subscriptionId, { spaceId, next });\n\n return () => {\n this.dataSubscriptions.delete(subscriptionId);\n };\n });\n }\n\n async updateSubscription({ subscriptionId, addIds }: UpdateSubscriptionRequest): Promise<void> {\n const sub =\n this.dataSubscriptions.get(subscriptionId) ??\n raise(\n new RuntimeServiceError({\n message: 'Subscription not found.',\n context: { subscriptionId },\n }),\n );\n\n if (addIds) {\n log.info('request documents', { count: addIds.length });\n // TODO(dmaretskyi): Batch.\n for (const documentId of addIds) {\n using document = await this._dataService.getDocument(this._executionContext, sub.spaceId, documentId);\n log.info('document loaded', { documentId, spaceId: sub.spaceId, found: !!document });\n if (!document) {\n log.warn('not found', { documentId });\n continue;\n }\n sub.next({\n updates: [\n {\n documentId,\n // Copy returned object to avoid hanging RPC stub\n // See https://developers.cloudflare.com/workers/runtime-apis/rpc/lifecycle/\n mutation: copyUint8Array(document.data),\n },\n ],\n });\n }\n }\n }\n\n async createDocument({ spaceId, initialValue }: CreateDocumentRequest): Promise<CreateDocumentResponse> {\n invariant(SpaceId.isValid(spaceId));\n using response = await this._dataService.createDocument(this._executionContext, spaceId, initialValue);\n return { documentId: response.documentId };\n }\n\n async update({ updates, subscriptionId }: UpdateRequest): Promise<void> {\n const sub =\n this.dataSubscriptions.get(subscriptionId) ??\n raise(\n new RuntimeServiceError({\n message: 'Subscription not found.',\n context: { subscriptionId },\n }),\n );\n // TODO(dmaretskyi): Batch.\n try {\n for (const update of updates ?? []) {\n await this._dataService.changeDocument(this._executionContext, sub.spaceId, update.documentId, update.mutation);\n }\n } catch (error) {\n throw RuntimeServiceError.wrap({\n message: 'Failed to apply document updates.',\n context: { subscriptionId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async flush(): Promise<void> {\n // No-op.\n }\n\n subscribeSpaceSyncState(_request: GetSpaceSyncStateRequest, _options?: RequestOptions): Stream<SpaceSyncState> {\n throw new NotImplementedError({\n message: 'subscribeSpaceSyncState is not implemented.',\n });\n }\n\n async getDocumentHeads({ documentIds: _documentIds }: GetDocumentHeadsRequest): Promise<GetDocumentHeadsResponse> {\n throw new NotImplementedError({\n message: 'getDocumentHeads is not implemented.',\n });\n }\n\n async reIndexHeads({ documentIds: _documentIds }: ReIndexHeadsRequest): Promise<void> {\n throw new NotImplementedError({\n message: 'reIndexHeads is not implemented.',\n });\n }\n\n async updateIndexes(): Promise<void> {\n log.error('updateIndexes is not available in EDGE env.');\n // No-op.\n }\n\n async waitUntilHeadsReplicated({ heads: _heads }: { heads: any }): Promise<void> {\n throw new NotImplementedError({\n message: 'waitUntilHeadsReplicated is not implemented.',\n });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nexport const copyUint8Array = (value: Uint8Array): Uint8Array => new Uint8Array(value);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Stream } from '@dxos/codec-protobuf/stream';\nimport { NotImplementedError, RuntimeServiceError } from '@dxos/errors';\nimport { log } from '@dxos/log';\nimport { type EdgeFunctionEnv } from '@dxos/protocols';\nimport { type QueryRequest, type QueryResponse, type QueryService } from '@dxos/protocols/proto/dxos/echo/query';\n\nexport class QueryServiceImpl implements QueryService {\n private _queryCount = 0;\n\n constructor(\n private readonly _executionContext: EdgeFunctionEnv.TraceContext,\n private readonly _dataService: EdgeFunctionEnv.DataService,\n ) {}\n\n execQuery(request: QueryRequest): Stream<QueryResponse> {\n log.info('execQuery', { request });\n\n return Stream.fromPromise<QueryResponse>(\n (async () => {\n try {\n this._queryCount++;\n log.info('begin query', { request });\n using queryResponse = await this._dataService.execQuery(this._executionContext, request);\n log.info('query response', { resultCount: queryResponse.results?.length });\n return structuredClone(queryResponse);\n } catch (error) {\n log.error('query failed', { err: error });\n throw new RuntimeServiceError({\n message: `Query execution failed (queryCount=${this._queryCount})`,\n context: { queryCount: this._queryCount },\n cause: error,\n });\n }\n })(),\n );\n }\n\n async reindex() {\n throw new NotImplementedError({\n message: 'Reindex is not implemented.',\n });\n }\n\n async setConfig() {\n throw new NotImplementedError({\n message: 'SetConfig is not implemented.',\n });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RuntimeServiceError } from '@dxos/errors';\nimport { type EdgeFunctionEnv, type FeedProtocol } from '@dxos/protocols';\n\nexport class QueueServiceImpl implements FeedProtocol.QueueService {\n constructor(\n protected _ctx: EdgeFunctionEnv.TraceContext,\n private readonly _queueService: EdgeFunctionEnv.QueueService,\n ) {}\n\n async queryQueue(request: FeedProtocol.QueryQueueRequest): Promise<FeedProtocol.QueryResult> {\n try {\n using result = await this._queueService.queryQueue(this._ctx, request);\n // Copy to avoid hanging RPC stub (Workers RPC lifecycle).\n return {\n objects: structuredClone(result.objects),\n nextCursor: result.nextCursor,\n prevCursor: result.prevCursor,\n };\n } catch (error) {\n const { query } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue query failed.',\n context: {\n subspaceTag: query?.queuesNamespace,\n spaceId: query?.spaceId,\n queueId: query?.queueIds?.[0],\n },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async insertIntoQueue(request: FeedProtocol.InsertIntoQueueRequest): Promise<void> {\n try {\n using _ = await this._queueService.insertIntoQueue(this._ctx, request);\n } catch (error) {\n const { subspaceTag, spaceId, queueId } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue append failed.',\n context: { subspaceTag, spaceId, queueId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async deleteFromQueue(request: FeedProtocol.DeleteFromQueueRequest): Promise<void> {\n try {\n using _ = await this._queueService.deleteFromQueue(this._ctx, request);\n } catch (error) {\n const { subspaceTag, spaceId, queueId } = request;\n throw RuntimeServiceError.wrap({\n message: 'Queue delete failed.',\n context: { subspaceTag, spaceId, queueId },\n ifTypeDiffers: true,\n })(error);\n }\n }\n\n async syncQueue(_: FeedProtocol.SyncQueueRequest): Promise<void> {\n // No-op in Cloudflare runtime.\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type AnyEntity } from '@dxos/echo/internal';\nimport { type DXN, type SpaceId } from '@dxos/keys';\nimport { type EdgeFunctionEnv, type FeedProtocol } from '@dxos/protocols';\nimport { type QueryService as QueryServiceProto } from '@dxos/protocols/proto/dxos/echo/query';\nimport type { DataService as DataServiceProto } from '@dxos/protocols/proto/dxos/echo/service';\n\nimport { DataServiceImpl } from './data-service-impl';\nimport { QueryServiceImpl } from './query-service-impl';\nimport { QueueServiceImpl } from './queue-service-impl';\n\n/**\n * TODO: make this implement DataService and QueryService to unify API over edge and web backend\n */\nexport class ServiceContainer {\n constructor(\n private readonly _executionContext: EdgeFunctionEnv.TraceContext,\n private readonly _dataService: EdgeFunctionEnv.DataService,\n private readonly _queueService: EdgeFunctionEnv.QueueService,\n private readonly _functionsService: EdgeFunctionEnv.FunctionsAiService,\n ) {}\n\n async getSpaceMeta(spaceId: SpaceId): Promise<EdgeFunctionEnv.SpaceMeta | undefined> {\n using result = await this._dataService.getSpaceMeta(this._executionContext, spaceId);\n // Copy returned object to avoid hanging RPC stub\n // See https://developers.cloudflare.com/workers/runtime-apis/rpc/lifecycle/\n return result\n ? {\n spaceKey: result.spaceKey,\n rootDocumentId: result.rootDocumentId,\n }\n : undefined;\n }\n\n async createServices(): Promise<{\n dataService: DataServiceProto;\n queryService: QueryServiceProto;\n queueService: FeedProtocol.QueueService;\n functionsAiService: EdgeFunctionEnv.FunctionsAiService;\n }> {\n const dataService = new DataServiceImpl(this._executionContext, this._dataService);\n const queryService = new QueryServiceImpl(this._executionContext, this._dataService);\n const queueService = new QueueServiceImpl(this._executionContext, this._queueService);\n\n return {\n dataService,\n queryService,\n queueService,\n functionsAiService: this._functionsService,\n };\n }\n\n async queryQueue(queue: DXN): Promise<FeedProtocol.QueryResult> {\n const parts = queue.asQueueDXN();\n if (!parts) {\n throw new Error('Invalid queue DXN');\n }\n const { subspaceTag, spaceId, queueId } = parts;\n const result = await this._queueService.queryQueue(this._executionContext, {\n query: {\n spaceId,\n queuesNamespace: subspaceTag,\n queueIds: [queueId],\n },\n });\n return {\n objects: structuredClone(result.objects),\n nextCursor: result.nextCursor ?? null,\n prevCursor: result.prevCursor ?? null,\n };\n }\n\n async insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void> {\n const parts = queue.asQueueDXN();\n if (!parts) {\n throw new Error('Invalid queue DXN');\n }\n const { subspaceTag, spaceId, queueId } = parts;\n await this._queueService.insertIntoQueue(this._executionContext, {\n subspaceTag,\n spaceId,\n queueId,\n objects: objects.map((obj) => JSON.stringify(obj)),\n });\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Resource } from '@dxos/context';\nimport { type Database } from '@dxos/echo';\nimport { type CoreDatabase, type EchoClient, type EchoDatabaseImpl } from '@dxos/echo-db';\nimport { invariant } from '@dxos/invariant';\nimport { PublicKey, type SpaceId } from '@dxos/keys';\n\nimport type { ServiceContainer } from './internal';\nimport { type QueuesAPI, QueuesAPIImpl } from './queues-api';\n\n/**\n * @deprecated\n */\nexport class SpaceProxy extends Resource {\n private _db?: EchoDatabaseImpl = undefined;\n private _queuesApi: QueuesAPIImpl;\n\n constructor(\n private readonly _serviceContainer: ServiceContainer,\n private readonly _echoClient: EchoClient,\n private readonly _id: SpaceId,\n ) {\n super();\n this._queuesApi = new QueuesAPIImpl(this._serviceContainer, this._id);\n }\n\n get id(): SpaceId {\n return this._id;\n }\n\n get db(): Database.Database {\n invariant(this._db);\n return this._db;\n }\n\n /**\n * @deprecated Use db API.\n */\n get crud(): CoreDatabase {\n invariant(this._db);\n return this._db.coreDatabase;\n }\n\n get queues(): QueuesAPI {\n return this._queuesApi;\n }\n\n protected override async _open() {\n const meta = await this._serviceContainer.getSpaceMeta(this._id);\n if (!meta) {\n throw new Error(`Space not found: ${this._id}`);\n }\n\n this._db = this._echoClient.constructDatabase({\n spaceId: this._id,\n spaceKey: PublicKey.from(meta.spaceKey),\n reactiveSchemaQuery: false,\n owningObject: this,\n });\n\n await this._db.coreDatabase.open(this._ctx, { rootUrl: meta.rootDocumentId });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AnyEntity } from '@dxos/echo/internal';\nimport type { DXN, SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport type { ServiceContainer } from './internal';\n\nexport interface QueuesQueryResult {\n objects: AnyEntity[];\n nextCursor: string | null;\n prevCursor: string | null;\n}\n\n// TODO(dmaretskyi): Temporary API to get the queues working.\n// TODO(dmaretskyi): To be replaced with integrating queues into echo.\n/**\n * @deprecated\n */\nexport interface QueuesAPI {\n queryQueue(queue: DXN, options?: {}): Promise<QueuesQueryResult>;\n insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void>;\n}\n\n/**\n * @deprecated\n */\nexport class QueuesAPIImpl implements QueuesAPI {\n constructor(\n private readonly _serviceContainer: ServiceContainer,\n private readonly _spaceId: SpaceId,\n ) {}\n\n async queryQueue(queue: DXN, options?: {}): Promise<QueuesQueryResult> {\n const result = await this._serviceContainer.queryQueue(queue);\n const objects = (result.objects ?? []).flatMap((encoded): AnyEntity[] => {\n try {\n return [JSON.parse(encoded) as AnyEntity];\n } catch (err) {\n log.verbose('queue object JSON parse failed; object ignored', { encoded, error: err });\n return [];\n }\n });\n return {\n objects,\n nextCursor: result.nextCursor ?? null,\n prevCursor: result.prevCursor ?? null,\n };\n }\n\n insertIntoQueue(queue: DXN, objects: AnyEntity[]): Promise<void> {\n // TODO(dmaretskyi): Ugly.\n return this._serviceContainer.insertIntoQueue(queue, JSON.parse(JSON.stringify(objects)));\n }\n}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { JsonSchemaType } from '@dxos/echo/internal';\n\n/**\n * Is used for to route the request to the metadata handler instead of the main handler.\n */\nexport const FUNCTION_ROUTE_HEADER = 'X-DXOS-Function-Route';\n\nexport enum FunctionRouteValue {\n Meta = 'meta',\n}\n\nexport type FunctionMetadata = {\n /**\n * FQN.\n */\n key: string;\n /**\n * Human-readable name.\n */\n name?: string;\n\n /**\n * Description.\n */\n description?: string;\n\n /**\n * Input schema.\n */\n inputSchema?: JsonSchemaType;\n\n /**\n * Output schema.\n */\n outputSchema?: JsonSchemaType;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { JsonSchemaType } from '@dxos/echo/internal';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { EdgeResponse } from '@dxos/protocols';\nimport type { EdgeFunctionEnv, FunctionProtocol } from '@dxos/protocols';\n\nimport { ServiceContainer } from './internal';\nimport { FUNCTION_ROUTE_HEADER, type FunctionMetadata, FunctionRouteValue } from './types';\n\n/**\n * Wraps a user function in a Cloudflare-compatible handler.\n */\nexport const wrapHandlerForCloudflare = (func: FunctionProtocol.Func): ExportedHandlerFetchHandler<any> => {\n return async (request: Request, env: EdgeFunctionEnv.Env): Promise<Response> => {\n // TODO(dmaretskyi): Should theÓ scope name reflect the function name?\n // TODO(mykola): Wrap in withCleanAutomergeWasmState;\n // TODO(mykola): Wrap in withNewExecutionContext;\n // Meta route is used to get the input schema of the function by the functions service.\n if (request.headers.get(FUNCTION_ROUTE_HEADER) === FunctionRouteValue.Meta) {\n return handleFunctionMetaCall(func, request);\n }\n\n try {\n const spaceId = new URL(request.url).searchParams.get('spaceId');\n if (spaceId) {\n if (!SpaceId.isValid(spaceId)) {\n return new Response('Invalid spaceId', { status: 400 });\n }\n }\n\n const serviceContainer = new ServiceContainer({}, env.DATA_SERVICE, env.QUEUE_SERVICE, env.FUNCTIONS_AI_SERVICE);\n const context = await createFunctionContext({\n serviceContainer,\n contextSpaceId: spaceId as SpaceId | undefined,\n });\n\n return EdgeResponse.success(await invokeFunction(func, context, request));\n } catch (error: any) {\n log.error('error invoking function', { error, stack: error.stack });\n return EdgeResponse.failure({\n message: error?.message ?? 'Internal error',\n error,\n });\n }\n };\n};\n\nconst invokeFunction = async (func: FunctionProtocol.Func, context: FunctionProtocol.Context, request: Request) => {\n // TODO(dmaretskyi): For some reason requests get wrapped like this.\n const { data } = await decodeRequest(request);\n\n return func.handler({\n context,\n data,\n });\n};\n\nconst decodeRequest = async (request: Request) => {\n const {\n data: { bodyText, ...rest },\n trigger,\n } = (await request.json()) as any;\n\n if (!bodyText) {\n return { data: rest, trigger };\n }\n\n // Webhook passed body as bodyText. Use it as function input if a well-formatted JSON\n // TODO: better trigger input mapping\n try {\n const data = JSON.parse(bodyText);\n return { data, trigger: { ...trigger, ...rest } };\n } catch (err) {\n log.catch(err);\n return { data: { bodyText, ...rest } };\n }\n};\n\nconst handleFunctionMetaCall = (functionDefinition: FunctionProtocol.Func, request: Request): Response => {\n const response: FunctionMetadata = {\n key: functionDefinition.meta.key,\n name: functionDefinition.meta.name,\n description: functionDefinition.meta.description,\n inputSchema: functionDefinition.meta.inputSchema as JsonSchemaType | undefined,\n outputSchema: functionDefinition.meta.outputSchema as JsonSchemaType | undefined,\n };\n\n return new Response(JSON.stringify(response), {\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n};\n\nexport const createFunctionContext = async ({\n serviceContainer,\n contextSpaceId,\n}: {\n serviceContainer: ServiceContainer;\n contextSpaceId: SpaceId | undefined;\n}): Promise<FunctionProtocol.Context> => {\n const { dataService, queryService, queueService, functionsAiService } = await serviceContainer.createServices();\n\n let spaceKey: string | undefined;\n let rootUrl: string | undefined;\n if (contextSpaceId) {\n const meta = await serviceContainer.getSpaceMeta(contextSpaceId);\n if (!meta) {\n throw new Error(`Space not found: ${contextSpaceId}`);\n }\n spaceKey = meta.spaceKey;\n invariant(!meta.rootDocumentId.startsWith('automerge:'));\n rootUrl = `automerge:${meta.rootDocumentId}`;\n }\n\n return {\n services: {\n dataService,\n queryService,\n queueService,\n functionsAiService,\n },\n spaceId: contextSpaceId,\n spaceKey,\n spaceRootUrl: rootUrl,\n } as any; // TODO(dmaretskyi): Link and fix before merging\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\n/* eslint-disable no-console */\n\nimport { LogLevel, type LogProcessor, log, shouldLog } from '@dxos/log';\n\nexport const setupFunctionsLogger = () => {\n log.runtimeConfig.processors.length = 0;\n log.runtimeConfig.processors.push(functionLogProcessor);\n};\n\nconst functionLogProcessor: LogProcessor = (config, entry) => {\n if (!shouldLog(entry, config.filters)) {\n return;\n }\n\n const context = entry.computedContext;\n const error = entry.computedError;\n const extras = [Object.keys(context).length > 0 ? context : undefined, error].filter((value) => value !== undefined);\n\n switch (entry.level) {\n case LogLevel.DEBUG:\n case LogLevel.TRACE:\n console.debug(entry.message, ...extras);\n break;\n case LogLevel.VERBOSE:\n console.log(entry.message, ...extras);\n break;\n case LogLevel.INFO:\n console.info(entry.message, ...extras);\n break;\n case LogLevel.WARN:\n console.warn(entry.message, ...extras);\n break;\n case LogLevel.ERROR:\n console.error(entry.message, ...extras);\n break;\n default:\n console.log(entry.message, ...extras);\n break;\n }\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Resource", "EchoClient", "invariant", "raise", "NotImplementedError", "invariant", "SpaceId", "log", "copyUint8Array", "copyUint8Array", "value", "Uint8Array", "dataSubscriptions", "_executionContext", "_dataService", "subscribe", "next", "invariant", "SpaceId", "isValid", "spaceId", "subscriptionId", "message", "context", "log", "count", "info", "documentId", "found", "document", "sub", "updates", "response", "createDocument", "initialValue", "get", "changeDocument", "RuntimeServiceError", "ifTypeDiffers", "error", "subscribeSpaceSyncState", "NotImplementedError", "NotImplementedError", "log", "RuntimeServiceError", "QueryServiceImpl", "__dxlog_file", "_queryCount", "_executionContext", "_dataService", "execQuery", "info", "request", "fromPromise", "Stream", "queryResponse", "_ts_add_disposable_resource", "resultCount", "structuredClone", "error", "err", "message", "context", "queryCount", "cause", "RuntimeServiceError", "QueueServiceImpl", "_ctx", "_queueService", "queryQueue", "request", "result", "objects", "structuredClone", "nextCursor", "prevCursor", "error", "query", "wrap", "message", "context", "subspaceTag", "queuesNamespace", "spaceId", "queueId", "queueIds", "ifTypeDiffers", "insertIntoQueue", "_", "deleteFromQueue", "syncQueue", "ServiceContainer", "_executionContext", "_dataService", "_queueService", "_functionsService", "getSpaceMeta", "spaceId", "result", "spaceKey", "rootDocumentId", "undefined", "createServices", "dataService", "DataServiceImpl", "queryService", "QueryServiceImpl", "queueService", "QueueServiceImpl", "functionsAiService", "queryQueue", "queue", "parts", "asQueueDXN", "Error", "subspaceTag", "queueId", "query", "queuesNamespace", "queueIds", "objects", "structuredClone", "nextCursor", "prevCursor", "insertIntoQueue", "map", "obj", "JSON", "stringify", "Resource", "invariant", "PublicKey", "log", "__dxlog_file", "_spaceId", "queryQueue", "queue", "objects", "result", "err", "encoded", "error", "nextCursor", "prevCursor", "insertIntoQueue", "_serviceContainer", "__dxlog_file", "_db", "_queuesApi", "QueuesAPIImpl", "_serviceContainer", "id", "db", "invariant", "queues", "_open", "meta", "Error", "_echoClient", "constructDatabase", "spaceKey", "PublicKey", "reactiveSchemaQuery", "owningObject", "coreDatabase", "__dxlog_file", "_echoClient", "Resource", "_executionContext", "_spaces", "invariant", "services", "_serviceContainer", "ServiceContainer", "dataService", "queueService", "functionsAiService", "EchoClient", "echo", "_open", "queryService", "_close", "space", "clear", "getSpace", "spaceId", "set", "DATA_SERVICE", "env", "FUNCTION_ROUTE_HEADER", "FunctionRouteValue", "invariant", "SpaceId", "log", "EdgeResponse", "__dxlog_file", "SpaceId", "isValid", "spaceId", "status", "serviceContainer", "contextSpaceId", "success", "log", "error", "stack", "EdgeResponse", "message", "decodeRequest", "request", "context", "data", "rest", "trigger", "functionDefinition", "meta", "name", "description", "inputSchema", "outputSchema", "Response", "response", "spaceKey", "rootUrl", "Error", "invariant", "queryService", "queueService", "functionsAiService", "spaceRootUrl", "LogLevel", "log", "shouldLog", "log", "runtimeConfig", "push", "functionLogProcessor", "config", "entry", "extras", "Object", "keys", "context", "error", "filter", "value", "undefined", "LogLevel", "DEBUG", "TRACE", "console", "debug", "VERBOSE", "INFO", "WARN", "ERROR"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/internal/utils.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/internal/utils.ts":{"bytes":590,"imports":[],"format":"esm"},"src/internal/data-service-impl.ts":{"bytes":19264,"imports":[{"path":"@dxos/codec-protobuf/stream","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/internal/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/internal/query-service-impl.ts":{"bytes":9332,"imports":[{"path":"@dxos/codec-protobuf/stream","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/internal/queue-service-impl.ts":{"bytes":11248,"imports":[{"path":"@dxos/errors","kind":"import-statement","external":true}],"format":"esm"},"src/internal/service-container.ts":{"bytes":12950,"imports":[{"path":"src/internal/data-service-impl.ts","kind":"import-statement","original":"./data-service-impl"},{"path":"src/internal/query-service-impl.ts","kind":"import-statement","original":"./query-service-impl"},{"path":"src/internal/queue-service-impl.ts","kind":"import-statement","original":"./queue-service-impl"}],"format":"esm"},"src/internal/index.ts":{"bytes":401,"imports":[{"path":"src/internal/service-container.ts","kind":"import-statement","original":"./service-container"}],"format":"esm"},"src/queues-api.ts":{"bytes":4993,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/space-proxy.ts":{"bytes":6106,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"src/queues-api.ts","kind":"import-statement","original":"./queues-api"}],"format":"esm"},"src/functions-client.ts":{"bytes":8574,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/internal/index.ts","kind":"import-statement","original":"./internal"},{"path":"src/space-proxy.ts","kind":"import-statement","original":"./space-proxy"}],"format":"esm"},"src/types.ts":{"bytes":1603,"imports":[],"format":"esm"},"src/wrap-handler-for-cloudflare.ts":{"bytes":15148,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"src/internal/index.ts","kind":"import-statement","original":"./internal"},{"path":"src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/logger.ts":{"bytes":4872,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":786,"imports":[{"path":"src/functions-client.ts","kind":"import-statement","original":"./functions-client"},{"path":"src/internal/index.ts","kind":"import-statement","original":"./internal"},{"path":"src/types.ts","kind":"import-statement","original":"./types"},{"path":"src/wrap-handler-for-cloudflare.ts","kind":"import-statement","original":"./wrap-handler-for-cloudflare"},{"path":"src/logger.ts","kind":"import-statement","original":"./logger"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":39370},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/codec-protobuf/stream","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/errors","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/protocols","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["FUNCTION_ROUTE_HEADER","FunctionRouteValue","FunctionsClient","ServiceContainer","createClientFromEnv","createFunctionContext","setupFunctionsLogger","wrapHandlerForCloudflare"],"entryPoint":"src/index.ts","inputs":{"src/functions-client.ts":{"bytesInOutput":2115},"src/internal/data-service-impl.ts":{"bytesInOutput":7003},"src/internal/utils.ts":{"bytesInOutput":55},"src/internal/query-service-impl.ts":{"bytesInOutput":4396},"src/internal/queue-service-impl.ts":{"bytesInOutput":4790},"src/internal/service-container.ts":{"bytesInOutput":4452},"src/space-proxy.ts":{"bytesInOutput":1509},"src/queues-api.ts":{"bytesInOutput":1086},"src/index.ts":{"bytesInOutput":0},"src/types.ts":{"bytesInOutput":205},"src/wrap-handler-for-cloudflare.ts":{"bytesInOutput":3435},"src/logger.ts":{"bytesInOutput":1064}},"bytes":30850}}}
|
|
@@ -25,9 +25,4 @@ export declare class FunctionsClient extends Resource {
|
|
|
25
25
|
}
|
|
26
26
|
export declare const createClientFromEnv: (env: any) => Promise<FunctionsClient>;
|
|
27
27
|
export {};
|
|
28
|
-
/**
|
|
29
|
-
- Provides data access capabilities for user functions.
|
|
30
|
-
- No real-time replication or reactive queries -- function receives a snapshot.
|
|
31
|
-
- Function event contains the metadata but doesn't need to include the data.
|
|
32
|
-
*/
|
|
33
28
|
//# sourceMappingURL=functions-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions-client.d.ts","sourceRoot":"","sources":["../../../src/functions-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,KAAK,QAAQ,GAAG;IACd,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;IACzC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC;IAC3C,kBAAkB,EAAE,eAAe,CAAC,kBAAkB,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IAEtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;
|
|
1
|
+
{"version":3,"file":"functions-client.d.ts","sourceRoot":"","sources":["../../../src/functions-client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,KAAK,QAAQ,GAAG;IACd,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;IACzC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC;IAC3C,kBAAkB,EAAE,eAAe,CAAC,kBAAkB,CAAC;CACxD,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoC;IAEtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,YAAY,QAAQ,EAAE,QAAQ,EAW7B;IAED,IAAI,IAAI,IAAI,UAAU,CAErB;IAED,UAAyB,KAAK,kBAI7B;IAED,UAAyB,MAAM,kBAO9B;IAEK,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAQpD;CACF;AAED,eAAO,MAAM,mBAAmB,QAAe,GAAG,KAAG,OAAO,CAAC,eAAe,CAQ3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-service-impl.d.ts","sourceRoot":"","sources":["../../../../src/internal/data-service-impl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,IAAI,gBAAgB,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AAIjD,qBAAa,eAAgB,YAAW,gBAAgB;IAIpD,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,iBAAiB,CAAwF;
|
|
1
|
+
{"version":3,"file":"data-service-impl.d.ts","sourceRoot":"","sources":["../../../../src/internal/data-service-impl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAMrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,IAAI,gBAAgB,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AAIjD,qBAAa,eAAgB,YAAW,gBAAgB;IAIpD,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,iBAAiB,CAAwF;IAEjH,YACU,iBAAiB,EAAE,eAAe,CAAC,YAAY,EAC/C,YAAY,EAAE,eAAe,CAAC,WAAW,EAC/C;IAEJ,SAAS,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,sBAAsB,CAAC,CASlH;IAEK,kBAAkB,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC7F;IAEK,cAAc,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAItG;IAEK,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED,uBAAuB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAI7G;IAEK,gBAAgB,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAIhH;IAEK,YAAY,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpF;IAEK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAGnC;IAEK,wBAAwB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;CACF"}
|