@dxos/functions 0.6.12-main.ed7cda7 → 0.6.12-staging.e11e696
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 +3 -3
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +6 -6
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node/index.cjs +3 -3
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +6 -6
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +3 -3
- package/dist/lib/node-esm/index.mjs.map +2 -2
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +6 -6
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/handler.d.ts +2 -1
- package/dist/types/src/handler.d.ts.map +1 -1
- package/dist/types/src/testing/setup.d.ts.map +1 -1
- package/package.json +15 -14
- package/src/handler.ts +3 -1
- package/src/testing/setup.ts +9 -2
package/dist/lib/node/meta.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/core/functions/src/types.ts":{"bytes":9947,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/function/function-registry.ts":{"bytes":13004,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/function/index.ts":{"bytes":529,"imports":[{"path":"packages/core/functions/src/function/function-registry.ts","kind":"import-statement","original":"./function-registry"}],"format":"esm"},"packages/core/functions/src/handler.ts":{"bytes":10606,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytes":10343,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytes":4173,"imports":[{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytes":13341,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/index.ts":{"bytes":864,"imports":[{"path":"packages/core/functions/src/trigger/type/subscription-trigger.ts","kind":"import-statement","original":"./subscription-trigger"},{"path":"packages/core/functions/src/trigger/type/timer-trigger.ts","kind":"import-statement","original":"./timer-trigger"},{"path":"packages/core/functions/src/trigger/type/websocket-trigger.ts","kind":"import-statement","original":"./websocket-trigger"}],"format":"esm"},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytes":28453,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/trigger/index.ts":{"bytes":603,"imports":[{"path":"packages/core/functions/src/trigger/trigger-registry.ts","kind":"import-statement","original":"./trigger-registry"},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"}],"format":"esm"},"packages/core/functions/src/index.ts":{"bytes":840,"imports":[{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"./function"},{"path":"packages/core/functions/src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/core/functions/src/testing/types.ts":{"bytes":1131,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/dev-server.ts":{"bytes":28958,"imports":[{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/scheduler.ts":{"bytes":21084,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/index.ts":{"bytes":598,"imports":[{"path":"packages/core/functions/src/runtime/dev-server.ts","kind":"import-statement","original":"./dev-server"},{"path":"packages/core/functions/src/runtime/scheduler.ts","kind":"import-statement","original":"./scheduler"}],"format":"esm"},"packages/core/functions/src/testing/setup.ts":{"bytes":12671,"imports":[{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"../function"},{"path":"packages/core/functions/src/runtime/index.ts","kind":"import-statement","original":"../runtime"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"../trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/util.ts":{"bytes":4292,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/manifest.ts":{"bytes":1139,"imports":[],"format":"esm"},"packages/core/functions/src/testing/index.ts":{"bytes":749,"imports":[{"path":"packages/core/functions/src/testing/setup.ts","kind":"import-statement","original":"./setup"},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/functions/src/testing/manifest.ts","kind":"import-statement","original":"./manifest"}],"format":"esm"}},"outputs":{"packages/core/functions/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5746},"packages/core/functions/dist/lib/node/index.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionRegistry","FunctionTrigger","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger","subscriptionHandler"],"entryPoint":"packages/core/functions/src/index.ts","inputs":{"packages/core/functions/src/index.ts":{"bytesInOutput":0},"packages/core/functions/src/handler.ts":{"bytesInOutput":1624}},"bytes":2242},"packages/core/functions/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32212},"packages/core/functions/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["TestType","createFunctionRuntime","createInitializedClients","inviteMember","startFunctionsHost","testFunctionManifest","triggerWebhook"],"entryPoint":"packages/core/functions/src/testing/index.ts","inputs":{"packages/core/functions/src/testing/setup.ts":{"bytesInOutput":2783},"packages/core/functions/src/testing/types.ts":{"bytesInOutput":182},"packages/core/functions/src/runtime/dev-server.ts":{"bytesInOutput":7860},"packages/core/functions/src/runtime/index.ts":{"bytesInOutput":0},"packages/core/functions/src/runtime/scheduler.ts":{"bytesInOutput":5330},"packages/core/functions/src/testing/index.ts":{"bytesInOutput":0},"packages/core/functions/src/testing/util.ts":{"bytesInOutput":1051},"packages/core/functions/src/testing/manifest.ts":{"bytesInOutput":146}},"bytes":18063},"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33088},"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true}],"exports":["FunctionRegistry","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger"],"inputs":{"packages/core/functions/src/function/function-registry.ts":{"bytesInOutput":3046},"packages/core/functions/src/function/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytesInOutput":2008},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytesInOutput":898},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytesInOutput":3491},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytesInOutput":7421},"packages/core/functions/src/trigger/type/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/index.ts":{"bytesInOutput":0}},"bytes":17447},"packages/core/functions/dist/lib/node/types.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/functions/dist/lib/node/types.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger"],"entryPoint":"packages/core/functions/src/types.ts","inputs":{},"bytes":243},"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5514},"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger","__require"],"inputs":{"packages/core/functions/src/types.ts":{"bytesInOutput":1898}},"bytes":2452}}}
|
|
1
|
+
{"inputs":{"packages/core/functions/src/types.ts":{"bytes":9947,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/function/function-registry.ts":{"bytes":13004,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/function/index.ts":{"bytes":529,"imports":[{"path":"packages/core/functions/src/function/function-registry.ts","kind":"import-statement","original":"./function-registry"}],"format":"esm"},"packages/core/functions/src/handler.ts":{"bytes":10666,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytes":10343,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytes":4173,"imports":[{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytes":13341,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/index.ts":{"bytes":864,"imports":[{"path":"packages/core/functions/src/trigger/type/subscription-trigger.ts","kind":"import-statement","original":"./subscription-trigger"},{"path":"packages/core/functions/src/trigger/type/timer-trigger.ts","kind":"import-statement","original":"./timer-trigger"},{"path":"packages/core/functions/src/trigger/type/websocket-trigger.ts","kind":"import-statement","original":"./websocket-trigger"}],"format":"esm"},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytes":28453,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/trigger/index.ts":{"bytes":603,"imports":[{"path":"packages/core/functions/src/trigger/trigger-registry.ts","kind":"import-statement","original":"./trigger-registry"},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"}],"format":"esm"},"packages/core/functions/src/index.ts":{"bytes":840,"imports":[{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"./function"},{"path":"packages/core/functions/src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/core/functions/src/testing/types.ts":{"bytes":1131,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/dev-server.ts":{"bytes":28958,"imports":[{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/scheduler.ts":{"bytes":21084,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/index.ts":{"bytes":598,"imports":[{"path":"packages/core/functions/src/runtime/dev-server.ts","kind":"import-statement","original":"./dev-server"},{"path":"packages/core/functions/src/runtime/scheduler.ts","kind":"import-statement","original":"./scheduler"}],"format":"esm"},"packages/core/functions/src/testing/setup.ts":{"bytes":12717,"imports":[{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"../function"},{"path":"packages/core/functions/src/runtime/index.ts","kind":"import-statement","original":"../runtime"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"../trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/util.ts":{"bytes":4292,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/manifest.ts":{"bytes":1139,"imports":[],"format":"esm"},"packages/core/functions/src/testing/index.ts":{"bytes":749,"imports":[{"path":"packages/core/functions/src/testing/setup.ts","kind":"import-statement","original":"./setup"},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/functions/src/testing/manifest.ts","kind":"import-statement","original":"./manifest"}],"format":"esm"}},"outputs":{"packages/core/functions/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5792},"packages/core/functions/dist/lib/node/index.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionRegistry","FunctionTrigger","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger","subscriptionHandler"],"entryPoint":"packages/core/functions/src/index.ts","inputs":{"packages/core/functions/src/index.ts":{"bytesInOutput":0},"packages/core/functions/src/handler.ts":{"bytesInOutput":1624}},"bytes":2242},"packages/core/functions/dist/lib/node/testing/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32241},"packages/core/functions/dist/lib/node/testing/index.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["TestType","createFunctionRuntime","createInitializedClients","inviteMember","startFunctionsHost","testFunctionManifest","triggerWebhook"],"entryPoint":"packages/core/functions/src/testing/index.ts","inputs":{"packages/core/functions/src/testing/setup.ts":{"bytesInOutput":2773},"packages/core/functions/src/testing/types.ts":{"bytesInOutput":182},"packages/core/functions/src/runtime/dev-server.ts":{"bytesInOutput":7860},"packages/core/functions/src/runtime/index.ts":{"bytesInOutput":0},"packages/core/functions/src/runtime/scheduler.ts":{"bytesInOutput":5330},"packages/core/functions/src/testing/index.ts":{"bytesInOutput":0},"packages/core/functions/src/testing/util.ts":{"bytesInOutput":1051},"packages/core/functions/src/testing/manifest.ts":{"bytesInOutput":146}},"bytes":18053},"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33088},"packages/core/functions/dist/lib/node/chunk-DELILIR2.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true}],"exports":["FunctionRegistry","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger"],"inputs":{"packages/core/functions/src/function/function-registry.ts":{"bytesInOutput":3046},"packages/core/functions/src/function/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytesInOutput":2008},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytesInOutput":898},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytesInOutput":3491},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytesInOutput":7421},"packages/core/functions/src/trigger/type/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/index.ts":{"bytesInOutput":0}},"bytes":17447},"packages/core/functions/dist/lib/node/types.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/functions/dist/lib/node/types.cjs":{"imports":[{"path":"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs","kind":"import-statement"}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger"],"entryPoint":"packages/core/functions/src/types.ts","inputs":{},"bytes":243},"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5514},"packages/core/functions/dist/lib/node/chunk-JV3VNH5X.cjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger","__require"],"inputs":{"packages/core/functions/src/types.ts":{"bytesInOutput":1898}},"bytes":2452}}}
|
|
@@ -567,7 +567,12 @@ var createContext2 = () => new import_context2.Context({
|
|
|
567
567
|
var createInitializedClients = async (testBuilder, count = 1, config) => {
|
|
568
568
|
const clients = (0, import_util.range)(count).map(() => new import_client.Client({
|
|
569
569
|
config,
|
|
570
|
-
services: testBuilder.createLocalClientServices()
|
|
570
|
+
services: testBuilder.createLocalClientServices(),
|
|
571
|
+
types: [
|
|
572
|
+
import_chunk_JV3VNH5X.FunctionDef,
|
|
573
|
+
import_chunk_JV3VNH5X.FunctionTrigger,
|
|
574
|
+
TestType
|
|
575
|
+
]
|
|
571
576
|
}));
|
|
572
577
|
testBuilder.ctx.onDispose(() => Promise.all(clients.map((client) => client.destroy())));
|
|
573
578
|
return Promise.all(clients.map(async (client, index) => {
|
|
@@ -576,11 +581,6 @@ var createInitializedClients = async (testBuilder, count = 1, config) => {
|
|
|
576
581
|
displayName: `Peer ${index}`
|
|
577
582
|
});
|
|
578
583
|
await client.spaces.isReady.wait();
|
|
579
|
-
client.addTypes([
|
|
580
|
-
import_chunk_JV3VNH5X.FunctionDef,
|
|
581
|
-
import_chunk_JV3VNH5X.FunctionTrigger,
|
|
582
|
-
TestType
|
|
583
|
-
]);
|
|
584
584
|
return client;
|
|
585
585
|
}));
|
|
586
586
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/testing/setup.ts", "../../../../src/testing/types.ts", "../../../../src/runtime/dev-server.ts", "../../../../src/runtime/scheduler.ts", "../../../../src/testing/util.ts", "../../../../src/testing/manifest.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { getRandomPort } from 'get-port-please';\nimport path from 'node:path';\n\nimport { waitForCondition } from '@dxos/async';\nimport { Client, Config } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { type TestBuilder } from '@dxos/client/testing';\nimport { range } from '@dxos/util';\n\nimport { TestType } from './types';\nimport { FunctionRegistry } from '../function';\nimport { DevServer, type DevServerOptions, Scheduler } from '../runtime';\nimport { TriggerRegistry } from '../trigger';\nimport { FunctionDef, FunctionTrigger } from '../types';\n\nexport type FunctionsPluginInitializer = (client: Client) => Promise<{ close: () => Promise<void> }>;\n\n// TODO(burdon): Extend/wrap TestBuilder.\n\nexport const createInitializedClients = async (testBuilder: TestBuilder, count: number = 1, config?: Config) => {\n const clients = range(count).map(() => new Client({ config, services: testBuilder.createLocalClientServices() }));\n testBuilder.ctx.onDispose(() => Promise.all(clients.map((client) => client.destroy())));\n return Promise.all(\n clients.map(async (client, index) => {\n await client.initialize();\n await client.halo.createIdentity({ displayName: `Peer ${index}` });\n await client.spaces.isReady.wait();\n client.addTypes([FunctionDef, FunctionTrigger, TestType]);\n return client;\n }),\n );\n};\n\nexport const createFunctionRuntime = async (\n testBuilder: TestBuilder,\n pluginInitializer: FunctionsPluginInitializer,\n): Promise<Client> => {\n const functionsPort = await getRandomPort('127.0.0.1');\n const config = new Config({\n runtime: {\n agent: {\n plugins: [{ id: 'dxos.org/agent/plugin/functions', config: { port: functionsPort } }],\n },\n },\n });\n\n const [client] = await createInitializedClients(testBuilder, 1, config);\n const plugin = await pluginInitializer(client);\n testBuilder.ctx.onDispose(() => plugin.close());\n return client;\n};\n\nexport const startFunctionsHost = async (\n testBuilder: TestBuilder,\n pluginInitializer: FunctionsPluginInitializer,\n options?: DevServerOptions,\n) => {\n const functionRuntime = await createFunctionRuntime(testBuilder, pluginInitializer);\n const functionsRegistry = new FunctionRegistry(functionRuntime);\n const devServer = await startDevServer(testBuilder, functionRuntime, functionsRegistry, options);\n const scheduler = await startScheduler(testBuilder, functionRuntime, devServer, functionsRegistry);\n return {\n scheduler,\n client: functionRuntime,\n waitForActiveTriggers: async (space: Space) => {\n await waitForCondition({ condition: () => scheduler.triggers.getActiveTriggers(space).length > 0 });\n },\n };\n};\n\nconst startScheduler = async (\n testBuilder: TestBuilder,\n client: Client,\n devServer: DevServer,\n functionRegistry: FunctionRegistry,\n) => {\n const triggerRegistry = new TriggerRegistry(client);\n const scheduler = new Scheduler(functionRegistry, triggerRegistry, { endpoint: devServer.endpoint });\n await scheduler.start();\n testBuilder.ctx.onDispose(() => scheduler.stop());\n return scheduler;\n};\n\nconst startDevServer = async (\n testBuilder: TestBuilder,\n client: Client,\n functionRegistry: FunctionRegistry,\n options?: { baseDir?: string },\n) => {\n const server = new DevServer(client, functionRegistry, {\n baseDir: path.join(__dirname, '../testing'),\n port: await getRandomPort('127.0.0.1'),\n ...options,\n });\n await server.start();\n testBuilder.ctx.onDispose(() => server.stop());\n return server;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport class TestType extends TypedObject({ typename: 'example.com/type/Test', version: '0.1.0' })({\n title: S.String,\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport express from 'express';\nimport { getPort } from 'get-port-please';\nimport type http from 'http';\nimport { join } from 'node:path';\n\nimport { asyncTimeout, Event, Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nimport { type FunctionRegistry } from '../function';\nimport { type FunctionContext, type FunctionEvent, type FunctionHandler, type FunctionResponse } from '../handler';\nimport { type FunctionDef } from '../types';\n\nconst FN_TIMEOUT = 20_000;\n\nexport type DevServerOptions = {\n baseDir: string;\n port?: number;\n reload?: boolean;\n dataDir?: string;\n};\n\n/**\n * Functions dev server provides a local HTTP server for loading and invoking functions.\n * Functions are executed in the context of an authenticated client.\n */\nexport class DevServer {\n private _ctx = createContext();\n\n // Function handlers indexed by name (URL path).\n private readonly _handlers: Record<string, { def: FunctionDef; handler: FunctionHandler<any> }> = {};\n\n private _server?: http.Server;\n private _port?: number;\n private _functionServiceRegistration?: string;\n private _proxy?: string;\n private _seq = 0;\n\n public readonly update = new Event<number>();\n\n constructor(\n private readonly _client: Client,\n private readonly _functionsRegistry: FunctionRegistry,\n private readonly _options: DevServerOptions,\n ) {}\n\n get stats() {\n return {\n seq: this._seq,\n };\n }\n\n get endpoint() {\n invariant(this._port);\n return `http://localhost:${this._port}`;\n }\n\n get proxy() {\n return this._proxy;\n }\n\n get functions() {\n return Object.values(this._handlers);\n }\n\n async start() {\n invariant(!this._server);\n log.info('starting...');\n this._ctx = createContext();\n\n // TODO(burdon): Change to hono.\n const app = express();\n app.use(express.json());\n\n app.post('/:path', async (req, res) => {\n const { path } = req.params;\n try {\n log.info('calling', { path });\n if (this._options.reload) {\n const { def } = this._handlers['/' + path];\n await this._load(def, true);\n }\n\n // TODO(burdon): Get function context.\n res.statusCode = await asyncTimeout(this.invoke('/' + path, req.body), FN_TIMEOUT);\n res.end();\n } catch (err: any) {\n log.catch(err);\n res.statusCode = 500;\n res.end();\n }\n });\n\n this._port = this._options.port ?? (await getPort({ host: 'localhost', port: 7200, portRange: [7200, 7299] }));\n this._server = app.listen(this._port);\n\n try {\n // Register functions.\n const { registrationId, endpoint } = await this._client.services.services.FunctionRegistryService!.register({\n endpoint: this.endpoint,\n });\n\n log.info('registered', { endpoint });\n this._proxy = endpoint;\n this._functionServiceRegistration = registrationId;\n\n // Open after registration, so that it can be updated with the list of function definitions.\n await this._handleNewFunctions(this._functionsRegistry.getUniqueByUri());\n this._ctx.onDispose(this._functionsRegistry.registered.on(({ added }) => this._handleNewFunctions(added)));\n } catch (err: any) {\n await this.stop();\n throw new Error('FunctionRegistryService not available (check plugin is configured).');\n }\n\n log.info('started', { port: this._port });\n }\n\n async stop() {\n if (!this._server) {\n return;\n }\n\n log.info('stopping...');\n await this._ctx.dispose();\n\n const trigger = new Trigger();\n this._server.close(async () => {\n log.info('server stopped');\n try {\n if (this._functionServiceRegistration) {\n invariant(this._client.services.services.FunctionRegistryService);\n await this._client.services.services.FunctionRegistryService.unregister({\n registrationId: this._functionServiceRegistration,\n });\n\n log.info('unregistered', { registrationId: this._functionServiceRegistration });\n this._functionServiceRegistration = undefined;\n this._proxy = undefined;\n }\n\n trigger.wake();\n } catch (err) {\n trigger.throw(err as Error);\n }\n });\n\n await trigger.wait();\n this._port = undefined;\n this._server = undefined;\n log.info('stopped');\n }\n\n private async _handleNewFunctions(newFunctions: FunctionDef[]) {\n newFunctions.forEach((def) => this._load(def));\n await this._safeUpdateRegistration();\n log('new functions loaded', { newFunctions });\n }\n\n /**\n * Load function.\n */\n private async _load(def: FunctionDef, force?: boolean | undefined) {\n const { uri, route, handler } = def;\n const filePath = join(this._options.baseDir, handler);\n log.info('loading', { uri, force });\n\n // Remove from cache.\n if (force) {\n Object.keys(require.cache)\n .filter((key) => key.startsWith(filePath))\n .forEach((key) => {\n delete require.cache[key];\n });\n }\n\n // TODO(burdon): Import types.\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const module = require(filePath);\n if (typeof module.default !== 'function') {\n throw new Error(`Handler must export default function: ${uri}`);\n }\n\n this._handlers[route] = { def, handler: module.default };\n }\n\n private async _safeUpdateRegistration(): Promise<void> {\n invariant(this._functionServiceRegistration);\n try {\n await this._client.services.services.FunctionRegistryService!.updateRegistration({\n registrationId: this._functionServiceRegistration,\n functions: this.functions.map(({ def: { id, route } }) => ({ id, route })),\n });\n } catch (err) {\n log.catch(err);\n }\n }\n\n /**\n * Invoke function.\n */\n public async invoke(path: string, data: any): Promise<number> {\n const seq = ++this._seq;\n const now = Date.now();\n\n log.info('req', { seq, path });\n const statusCode = await this._invoke(path, { data });\n\n log.info('res', { seq, path, statusCode, duration: Date.now() - now });\n this.update.emit(statusCode);\n return statusCode;\n }\n\n private async _invoke(path: string, event: FunctionEvent) {\n const { handler } = this._handlers[path] ?? {};\n invariant(handler, `invalid path: ${path}`);\n const context: FunctionContext = {\n client: this._client,\n dataDir: this._options.dataDir,\n } as any;\n\n let statusCode = 200;\n const response: FunctionResponse = {\n status: (code: number) => {\n statusCode = code;\n return response;\n },\n };\n\n await handler({ context, event, response });\n return statusCode;\n }\n}\n\nconst createContext = () => new Context({ name: 'DevServer' });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport path from 'node:path';\n\nimport { Mutex } from '@dxos/async';\nimport { loadObjectReferences, type Space } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\nimport { Reference } from '@dxos/echo-protocol';\nimport { log } from '@dxos/log';\n\nimport { type FunctionRegistry } from '../function';\nimport { type FunctionEventMeta } from '../handler';\nimport { type TriggerCallback, type TriggerRegistry } from '../trigger';\nimport { type FunctionDef, type FunctionManifest, type FunctionTrigger } from '../types';\n\nexport type Callback = (data: any) => Promise<void | number>;\n\nexport type SchedulerOptions = {\n endpoint?: string;\n callback?: Callback;\n};\n\n/**\n * The scheduler triggers function execution based on various trigger configurations.\n * Functions are scheduled within the context of a specific space.\n */\nexport class Scheduler {\n private _ctx = createContext();\n\n private readonly _functionUriToCallMutex = new Map<string, Mutex>();\n\n constructor(\n public readonly functions: FunctionRegistry,\n public readonly triggers: TriggerRegistry,\n private readonly _options: SchedulerOptions = {},\n ) {\n this.functions.registered.on(async ({ space, added }) => {\n await this._safeActivateTriggers(space, this.triggers.getInactiveTriggers(space), added);\n });\n this.triggers.registered.on(async ({ space, triggers }) => {\n await this._safeActivateTriggers(space, triggers, this.functions.getFunctions(space));\n });\n }\n\n async start() {\n await this._ctx.dispose();\n this._ctx = createContext();\n await this.functions.open(this._ctx);\n await this.triggers.open(this._ctx);\n }\n\n async stop() {\n await this._ctx.dispose();\n await this.functions.close();\n await this.triggers.close();\n }\n\n // TODO(burdon): Remove and update registries directly?\n public async register(space: Space, manifest: FunctionManifest) {\n await this.functions.register(space, manifest.functions);\n await this.triggers.register(space, manifest);\n }\n\n private async _safeActivateTriggers(\n space: Space,\n triggers: FunctionTrigger[],\n functions: FunctionDef[],\n ): Promise<void> {\n const mountTasks = triggers.map((trigger) => {\n return this.activate(space, functions, trigger);\n });\n\n await Promise.all(mountTasks).catch(log.catch);\n }\n\n /**\n * Activate trigger.\n */\n // TODO(burdon): How are triggers deactivated?\n private async activate(space: Space, functions: FunctionDef[], trigger: FunctionTrigger) {\n const definition = functions.find((def) => def.uri === trigger.function);\n if (!definition) {\n log.info('function is not found for trigger', { trigger });\n return;\n }\n\n const execFunction: TriggerCallback = async (args) => {\n const mutex = this._functionUriToCallMutex.get(definition.uri) ?? new Mutex();\n this._functionUriToCallMutex.set(definition.uri, mutex);\n\n log.info('function triggered, waiting for mutex', { uri: definition.uri });\n return mutex.executeSynchronized(async () => {\n log.info('mutex acquired', { uri: definition.uri });\n\n // Load potential references in meta properties to serialize.\n await loadObjectReferences(trigger, (t) => Object.values(t.meta ?? {}));\n const meta: FunctionTrigger['meta'] = {};\n for (const [key, value] of Object.entries(trigger.meta ?? {})) {\n if (value instanceof Reference) {\n const object = await space.db.loadObjectById(value.objectId);\n if (object) {\n meta[key] = object;\n }\n } else {\n meta[key] = value;\n }\n }\n\n return this._execFunction(definition, trigger, {\n meta,\n data: { ...args, spaceKey: space.key },\n });\n });\n };\n\n await this.triggers.activate(space, trigger, execFunction);\n log('activated trigger', { space: space.key, trigger });\n }\n\n /**\n * Invoke function RPC.\n */\n private async _execFunction<TData, TMeta>(\n def: FunctionDef,\n trigger: FunctionTrigger,\n { meta, data }: { meta?: TMeta; data: TData },\n ): Promise<number> {\n let status = 0;\n try {\n // TODO(burdon): Pass in Space key (common context)?\n const payload = Object.assign({}, meta && ({ meta } satisfies FunctionEventMeta<TMeta>), data);\n\n const { endpoint, callback } = this._options;\n if (endpoint) {\n // TODO(burdon): Move out of scheduler (generalize as callback).\n const url = path.join(endpoint, def.route);\n log.info('exec', { function: def.uri, url, triggerType: trigger.spec.type });\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n status = response.status;\n } else if (callback) {\n log.info('exec', { function: def.uri });\n status = (await callback(payload)) ?? 200;\n }\n\n // Check errors.\n if (status && status >= 400) {\n throw new Error(`Response: ${status}`);\n }\n\n // const result = await response.json();\n log.info('done', { function: def.uri, status });\n } catch (err: any) {\n log.error('error', { function: def.uri, error: err.message });\n status = 500;\n }\n\n return status;\n }\n}\n\nconst createContext = () => new Context({ name: 'FunctionScheduler' });\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { performInvitation } from '@dxos/client/testing';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { FunctionTrigger } from '../types';\n\nexport const triggerWebhook = async (space: Space, uri: string) => {\n const trigger = (\n await space.db.query(Filter.schema(FunctionTrigger, (t: FunctionTrigger) => t.function === uri)).run()\n ).objects[0];\n invariant(trigger.spec.type === 'webhook');\n void fetch(`http://localhost:${trigger.spec.port}`);\n};\n\nexport const inviteMember = async (host: Space, guest: Client) => {\n const [{ invitation: hostInvitation }] = await Promise.all(performInvitation({ host, guest: guest.spaces }));\n if (hostInvitation?.state !== Invitation.State.SUCCESS) {\n throw new Error(`Expected ${hostInvitation?.state} to be ${Invitation.State.SUCCESS}.`);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { FunctionManifest } from '../types';\n\nexport const testFunctionManifest: FunctionManifest = {\n functions: [\n {\n uri: 'example.com/function/test',\n route: 'test',\n handler: 'test',\n },\n ],\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_get_port_please", "import_node_path", "import_async", "import_context", "import_log", "import_echo", "import_invariant", "TestType", "TypedObject", "typename", "version", "title", "S", "String", "FN_TIMEOUT", "DevServer", "constructor", "_client", "_functionsRegistry", "_options", "_ctx", "createContext", "_handlers", "_seq", "update", "Event", "stats", "seq", "endpoint", "invariant", "_port", "proxy", "_proxy", "functions", "Object", "values", "start", "_server", "log", "info", "app", "express", "use", "json", "post", "req", "res", "path", "params", "reload", "def", "_load", "statusCode", "asyncTimeout", "invoke", "body", "end", "err", "catch", "port", "getPort", "host", "portRange", "listen", "registrationId", "services", "FunctionRegistryService", "register", "_functionServiceRegistration", "_handleNewFunctions", "getUniqueByUri", "onDispose", "registered", "on", "added", "stop", "Error", "dispose", "trigger", "Trigger", "close", "unregister", "undefined", "wake", "throw", "wait", "newFunctions", "forEach", "_safeUpdateRegistration", "force", "uri", "route", "handler", "filePath", "join", "baseDir", "keys", "require", "cache", "filter", "key", "startsWith", "module", "default", "updateRegistration", "map", "id", "data", "now", "Date", "_invoke", "duration", "emit", "event", "context", "client", "dataDir", "response", "status", "code", "Context", "name", "Scheduler", "triggers", "_functionUriToCallMutex", "Map", "space", "_safeActivateTriggers", "getInactiveTriggers", "getFunctions", "open", "manifest", "mountTasks", "activate", "Promise", "all", "definition", "find", "function", "execFunction", "args", "mutex", "get", "Mutex", "set", "executeSynchronized", "loadObjectReferences", "t", "meta", "value", "entries", "Reference", "object", "db", "loadObjectById", "objectId", "_execFunction", "spaceKey", "payload", "assign", "callback", "url", "triggerType", "spec", "type", "fetch", "method", "headers", "JSON", "stringify", "error", "message", "createInitializedClients", "testBuilder", "count", "config", "clients", "range", "Client", "createLocalClientServices", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { getRandomPort } from 'get-port-please';\nimport path from 'node:path';\n\nimport { waitForCondition } from '@dxos/async';\nimport { Client, Config } from '@dxos/client';\nimport { type Space } from '@dxos/client/echo';\nimport { type TestBuilder } from '@dxos/client/testing';\nimport { range } from '@dxos/util';\n\nimport { TestType } from './types';\nimport { FunctionRegistry } from '../function';\nimport { DevServer, type DevServerOptions, Scheduler } from '../runtime';\nimport { TriggerRegistry } from '../trigger';\nimport { FunctionDef, FunctionTrigger } from '../types';\n\nexport type FunctionsPluginInitializer = (client: Client) => Promise<{ close: () => Promise<void> }>;\n\n// TODO(burdon): Extend/wrap TestBuilder.\n\nexport const createInitializedClients = async (testBuilder: TestBuilder, count: number = 1, config?: Config) => {\n const clients = range(count).map(\n () =>\n new Client({\n config,\n services: testBuilder.createLocalClientServices(),\n types: [FunctionDef, FunctionTrigger, TestType],\n }),\n );\n\n testBuilder.ctx.onDispose(() => Promise.all(clients.map((client) => client.destroy())));\n return Promise.all(\n clients.map(async (client, index) => {\n await client.initialize();\n await client.halo.createIdentity({ displayName: `Peer ${index}` });\n await client.spaces.isReady.wait();\n return client;\n }),\n );\n};\n\nexport const createFunctionRuntime = async (\n testBuilder: TestBuilder,\n pluginInitializer: FunctionsPluginInitializer,\n): Promise<Client> => {\n const functionsPort = await getRandomPort('127.0.0.1');\n const config = new Config({\n runtime: {\n agent: {\n plugins: [{ id: 'dxos.org/agent/plugin/functions', config: { port: functionsPort } }],\n },\n },\n });\n\n const [client] = await createInitializedClients(testBuilder, 1, config);\n const plugin = await pluginInitializer(client);\n testBuilder.ctx.onDispose(() => plugin.close());\n return client;\n};\n\nexport const startFunctionsHost = async (\n testBuilder: TestBuilder,\n pluginInitializer: FunctionsPluginInitializer,\n options?: DevServerOptions,\n) => {\n const functionRuntime = await createFunctionRuntime(testBuilder, pluginInitializer);\n const functionsRegistry = new FunctionRegistry(functionRuntime);\n const devServer = await startDevServer(testBuilder, functionRuntime, functionsRegistry, options);\n const scheduler = await startScheduler(testBuilder, functionRuntime, devServer, functionsRegistry);\n return {\n scheduler,\n client: functionRuntime,\n waitForActiveTriggers: async (space: Space) => {\n await waitForCondition({ condition: () => scheduler.triggers.getActiveTriggers(space).length > 0 });\n },\n };\n};\n\nconst startScheduler = async (\n testBuilder: TestBuilder,\n client: Client,\n devServer: DevServer,\n functionRegistry: FunctionRegistry,\n) => {\n const triggerRegistry = new TriggerRegistry(client);\n const scheduler = new Scheduler(functionRegistry, triggerRegistry, { endpoint: devServer.endpoint });\n await scheduler.start();\n testBuilder.ctx.onDispose(() => scheduler.stop());\n return scheduler;\n};\n\nconst startDevServer = async (\n testBuilder: TestBuilder,\n client: Client,\n functionRegistry: FunctionRegistry,\n options?: { baseDir?: string },\n) => {\n const server = new DevServer(client, functionRegistry, {\n baseDir: path.join(__dirname, '../testing'),\n port: await getRandomPort('127.0.0.1'),\n ...options,\n });\n await server.start();\n testBuilder.ctx.onDispose(() => server.stop());\n return server;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\nexport class TestType extends TypedObject({ typename: 'example.com/type/Test', version: '0.1.0' })({\n title: S.String,\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport express from 'express';\nimport { getPort } from 'get-port-please';\nimport type http from 'http';\nimport { join } from 'node:path';\n\nimport { asyncTimeout, Event, Trigger } from '@dxos/async';\nimport { type Client } from '@dxos/client';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\n\nimport { type FunctionRegistry } from '../function';\nimport { type FunctionContext, type FunctionEvent, type FunctionHandler, type FunctionResponse } from '../handler';\nimport { type FunctionDef } from '../types';\n\nconst FN_TIMEOUT = 20_000;\n\nexport type DevServerOptions = {\n baseDir: string;\n port?: number;\n reload?: boolean;\n dataDir?: string;\n};\n\n/**\n * Functions dev server provides a local HTTP server for loading and invoking functions.\n * Functions are executed in the context of an authenticated client.\n */\nexport class DevServer {\n private _ctx = createContext();\n\n // Function handlers indexed by name (URL path).\n private readonly _handlers: Record<string, { def: FunctionDef; handler: FunctionHandler<any> }> = {};\n\n private _server?: http.Server;\n private _port?: number;\n private _functionServiceRegistration?: string;\n private _proxy?: string;\n private _seq = 0;\n\n public readonly update = new Event<number>();\n\n constructor(\n private readonly _client: Client,\n private readonly _functionsRegistry: FunctionRegistry,\n private readonly _options: DevServerOptions,\n ) {}\n\n get stats() {\n return {\n seq: this._seq,\n };\n }\n\n get endpoint() {\n invariant(this._port);\n return `http://localhost:${this._port}`;\n }\n\n get proxy() {\n return this._proxy;\n }\n\n get functions() {\n return Object.values(this._handlers);\n }\n\n async start() {\n invariant(!this._server);\n log.info('starting...');\n this._ctx = createContext();\n\n // TODO(burdon): Change to hono.\n const app = express();\n app.use(express.json());\n\n app.post('/:path', async (req, res) => {\n const { path } = req.params;\n try {\n log.info('calling', { path });\n if (this._options.reload) {\n const { def } = this._handlers['/' + path];\n await this._load(def, true);\n }\n\n // TODO(burdon): Get function context.\n res.statusCode = await asyncTimeout(this.invoke('/' + path, req.body), FN_TIMEOUT);\n res.end();\n } catch (err: any) {\n log.catch(err);\n res.statusCode = 500;\n res.end();\n }\n });\n\n this._port = this._options.port ?? (await getPort({ host: 'localhost', port: 7200, portRange: [7200, 7299] }));\n this._server = app.listen(this._port);\n\n try {\n // Register functions.\n const { registrationId, endpoint } = await this._client.services.services.FunctionRegistryService!.register({\n endpoint: this.endpoint,\n });\n\n log.info('registered', { endpoint });\n this._proxy = endpoint;\n this._functionServiceRegistration = registrationId;\n\n // Open after registration, so that it can be updated with the list of function definitions.\n await this._handleNewFunctions(this._functionsRegistry.getUniqueByUri());\n this._ctx.onDispose(this._functionsRegistry.registered.on(({ added }) => this._handleNewFunctions(added)));\n } catch (err: any) {\n await this.stop();\n throw new Error('FunctionRegistryService not available (check plugin is configured).');\n }\n\n log.info('started', { port: this._port });\n }\n\n async stop() {\n if (!this._server) {\n return;\n }\n\n log.info('stopping...');\n await this._ctx.dispose();\n\n const trigger = new Trigger();\n this._server.close(async () => {\n log.info('server stopped');\n try {\n if (this._functionServiceRegistration) {\n invariant(this._client.services.services.FunctionRegistryService);\n await this._client.services.services.FunctionRegistryService.unregister({\n registrationId: this._functionServiceRegistration,\n });\n\n log.info('unregistered', { registrationId: this._functionServiceRegistration });\n this._functionServiceRegistration = undefined;\n this._proxy = undefined;\n }\n\n trigger.wake();\n } catch (err) {\n trigger.throw(err as Error);\n }\n });\n\n await trigger.wait();\n this._port = undefined;\n this._server = undefined;\n log.info('stopped');\n }\n\n private async _handleNewFunctions(newFunctions: FunctionDef[]) {\n newFunctions.forEach((def) => this._load(def));\n await this._safeUpdateRegistration();\n log('new functions loaded', { newFunctions });\n }\n\n /**\n * Load function.\n */\n private async _load(def: FunctionDef, force?: boolean | undefined) {\n const { uri, route, handler } = def;\n const filePath = join(this._options.baseDir, handler);\n log.info('loading', { uri, force });\n\n // Remove from cache.\n if (force) {\n Object.keys(require.cache)\n .filter((key) => key.startsWith(filePath))\n .forEach((key) => {\n delete require.cache[key];\n });\n }\n\n // TODO(burdon): Import types.\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const module = require(filePath);\n if (typeof module.default !== 'function') {\n throw new Error(`Handler must export default function: ${uri}`);\n }\n\n this._handlers[route] = { def, handler: module.default };\n }\n\n private async _safeUpdateRegistration(): Promise<void> {\n invariant(this._functionServiceRegistration);\n try {\n await this._client.services.services.FunctionRegistryService!.updateRegistration({\n registrationId: this._functionServiceRegistration,\n functions: this.functions.map(({ def: { id, route } }) => ({ id, route })),\n });\n } catch (err) {\n log.catch(err);\n }\n }\n\n /**\n * Invoke function.\n */\n public async invoke(path: string, data: any): Promise<number> {\n const seq = ++this._seq;\n const now = Date.now();\n\n log.info('req', { seq, path });\n const statusCode = await this._invoke(path, { data });\n\n log.info('res', { seq, path, statusCode, duration: Date.now() - now });\n this.update.emit(statusCode);\n return statusCode;\n }\n\n private async _invoke(path: string, event: FunctionEvent) {\n const { handler } = this._handlers[path] ?? {};\n invariant(handler, `invalid path: ${path}`);\n const context: FunctionContext = {\n client: this._client,\n dataDir: this._options.dataDir,\n } as any;\n\n let statusCode = 200;\n const response: FunctionResponse = {\n status: (code: number) => {\n statusCode = code;\n return response;\n },\n };\n\n await handler({ context, event, response });\n return statusCode;\n }\n}\n\nconst createContext = () => new Context({ name: 'DevServer' });\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport path from 'node:path';\n\nimport { Mutex } from '@dxos/async';\nimport { loadObjectReferences, type Space } from '@dxos/client/echo';\nimport { Context } from '@dxos/context';\nimport { Reference } from '@dxos/echo-protocol';\nimport { log } from '@dxos/log';\n\nimport { type FunctionRegistry } from '../function';\nimport { type FunctionEventMeta } from '../handler';\nimport { type TriggerCallback, type TriggerRegistry } from '../trigger';\nimport { type FunctionDef, type FunctionManifest, type FunctionTrigger } from '../types';\n\nexport type Callback = (data: any) => Promise<void | number>;\n\nexport type SchedulerOptions = {\n endpoint?: string;\n callback?: Callback;\n};\n\n/**\n * The scheduler triggers function execution based on various trigger configurations.\n * Functions are scheduled within the context of a specific space.\n */\nexport class Scheduler {\n private _ctx = createContext();\n\n private readonly _functionUriToCallMutex = new Map<string, Mutex>();\n\n constructor(\n public readonly functions: FunctionRegistry,\n public readonly triggers: TriggerRegistry,\n private readonly _options: SchedulerOptions = {},\n ) {\n this.functions.registered.on(async ({ space, added }) => {\n await this._safeActivateTriggers(space, this.triggers.getInactiveTriggers(space), added);\n });\n this.triggers.registered.on(async ({ space, triggers }) => {\n await this._safeActivateTriggers(space, triggers, this.functions.getFunctions(space));\n });\n }\n\n async start() {\n await this._ctx.dispose();\n this._ctx = createContext();\n await this.functions.open(this._ctx);\n await this.triggers.open(this._ctx);\n }\n\n async stop() {\n await this._ctx.dispose();\n await this.functions.close();\n await this.triggers.close();\n }\n\n // TODO(burdon): Remove and update registries directly?\n public async register(space: Space, manifest: FunctionManifest) {\n await this.functions.register(space, manifest.functions);\n await this.triggers.register(space, manifest);\n }\n\n private async _safeActivateTriggers(\n space: Space,\n triggers: FunctionTrigger[],\n functions: FunctionDef[],\n ): Promise<void> {\n const mountTasks = triggers.map((trigger) => {\n return this.activate(space, functions, trigger);\n });\n\n await Promise.all(mountTasks).catch(log.catch);\n }\n\n /**\n * Activate trigger.\n */\n // TODO(burdon): How are triggers deactivated?\n private async activate(space: Space, functions: FunctionDef[], trigger: FunctionTrigger) {\n const definition = functions.find((def) => def.uri === trigger.function);\n if (!definition) {\n log.info('function is not found for trigger', { trigger });\n return;\n }\n\n const execFunction: TriggerCallback = async (args) => {\n const mutex = this._functionUriToCallMutex.get(definition.uri) ?? new Mutex();\n this._functionUriToCallMutex.set(definition.uri, mutex);\n\n log.info('function triggered, waiting for mutex', { uri: definition.uri });\n return mutex.executeSynchronized(async () => {\n log.info('mutex acquired', { uri: definition.uri });\n\n // Load potential references in meta properties to serialize.\n await loadObjectReferences(trigger, (t) => Object.values(t.meta ?? {}));\n const meta: FunctionTrigger['meta'] = {};\n for (const [key, value] of Object.entries(trigger.meta ?? {})) {\n if (value instanceof Reference) {\n const object = await space.db.loadObjectById(value.objectId);\n if (object) {\n meta[key] = object;\n }\n } else {\n meta[key] = value;\n }\n }\n\n return this._execFunction(definition, trigger, {\n meta,\n data: { ...args, spaceKey: space.key },\n });\n });\n };\n\n await this.triggers.activate(space, trigger, execFunction);\n log('activated trigger', { space: space.key, trigger });\n }\n\n /**\n * Invoke function RPC.\n */\n private async _execFunction<TData, TMeta>(\n def: FunctionDef,\n trigger: FunctionTrigger,\n { meta, data }: { meta?: TMeta; data: TData },\n ): Promise<number> {\n let status = 0;\n try {\n // TODO(burdon): Pass in Space key (common context)?\n const payload = Object.assign({}, meta && ({ meta } satisfies FunctionEventMeta<TMeta>), data);\n\n const { endpoint, callback } = this._options;\n if (endpoint) {\n // TODO(burdon): Move out of scheduler (generalize as callback).\n const url = path.join(endpoint, def.route);\n log.info('exec', { function: def.uri, url, triggerType: trigger.spec.type });\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n status = response.status;\n } else if (callback) {\n log.info('exec', { function: def.uri });\n status = (await callback(payload)) ?? 200;\n }\n\n // Check errors.\n if (status && status >= 400) {\n throw new Error(`Response: ${status}`);\n }\n\n // const result = await response.json();\n log.info('done', { function: def.uri, status });\n } catch (err: any) {\n log.error('error', { function: def.uri, error: err.message });\n status = 500;\n }\n\n return status;\n }\n}\n\nconst createContext = () => new Context({ name: 'FunctionScheduler' });\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { performInvitation } from '@dxos/client/testing';\nimport { invariant } from '@dxos/invariant';\nimport { Invitation } from '@dxos/protocols/proto/dxos/client/services';\n\nimport { FunctionTrigger } from '../types';\n\nexport const triggerWebhook = async (space: Space, uri: string) => {\n const trigger = (\n await space.db.query(Filter.schema(FunctionTrigger, (t: FunctionTrigger) => t.function === uri)).run()\n ).objects[0];\n invariant(trigger.spec.type === 'webhook');\n void fetch(`http://localhost:${trigger.spec.port}`);\n};\n\nexport const inviteMember = async (host: Space, guest: Client) => {\n const [{ invitation: hostInvitation }] = await Promise.all(performInvitation({ host, guest: guest.spaces }));\n if (hostInvitation?.state !== Invitation.State.SUCCESS) {\n throw new Error(`Expected ${hostInvitation?.state} to be ${Invitation.State.SUCCESS}.`);\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport type { FunctionManifest } from '../types';\n\nexport const testFunctionManifest: FunctionManifest = {\n functions: [\n {\n uri: 'example.com/function/test',\n route: 'test',\n handler: 'test',\n },\n ],\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_get_port_please", "import_node_path", "import_async", "import_context", "import_log", "import_echo", "import_invariant", "TestType", "TypedObject", "typename", "version", "title", "S", "String", "FN_TIMEOUT", "DevServer", "constructor", "_client", "_functionsRegistry", "_options", "_ctx", "createContext", "_handlers", "_seq", "update", "Event", "stats", "seq", "endpoint", "invariant", "_port", "proxy", "_proxy", "functions", "Object", "values", "start", "_server", "log", "info", "app", "express", "use", "json", "post", "req", "res", "path", "params", "reload", "def", "_load", "statusCode", "asyncTimeout", "invoke", "body", "end", "err", "catch", "port", "getPort", "host", "portRange", "listen", "registrationId", "services", "FunctionRegistryService", "register", "_functionServiceRegistration", "_handleNewFunctions", "getUniqueByUri", "onDispose", "registered", "on", "added", "stop", "Error", "dispose", "trigger", "Trigger", "close", "unregister", "undefined", "wake", "throw", "wait", "newFunctions", "forEach", "_safeUpdateRegistration", "force", "uri", "route", "handler", "filePath", "join", "baseDir", "keys", "require", "cache", "filter", "key", "startsWith", "module", "default", "updateRegistration", "map", "id", "data", "now", "Date", "_invoke", "duration", "emit", "event", "context", "client", "dataDir", "response", "status", "code", "Context", "name", "Scheduler", "triggers", "_functionUriToCallMutex", "Map", "space", "_safeActivateTriggers", "getInactiveTriggers", "getFunctions", "open", "manifest", "mountTasks", "activate", "Promise", "all", "definition", "find", "function", "execFunction", "args", "mutex", "get", "Mutex", "set", "executeSynchronized", "loadObjectReferences", "t", "meta", "value", "entries", "Reference", "object", "db", "loadObjectById", "objectId", "_execFunction", "spaceKey", "payload", "assign", "callback", "url", "triggerType", "spec", "type", "fetch", "method", "headers", "JSON", "stringify", "error", "message", "createInitializedClients", "testBuilder", "count", "config", "clients", "range", "Client", "createLocalClientServices", "types", "FunctionDef", "FunctionTrigger", "ctx", "destroy", "index", "initialize", "halo", "createIdentity", "displayName", "spaces", "isReady", "createFunctionRuntime", "pluginInitializer", "functionsPort", "getRandomPort", "Config", "runtime", "agent", "plugins", "plugin", "startFunctionsHost", "options", "functionRuntime", "functionsRegistry", "FunctionRegistry", "devServer", "startDevServer", "scheduler", "startScheduler", "waitForActiveTriggers", "waitForCondition", "condition", "getActiveTriggers", "length", "functionRegistry", "triggerRegistry", "TriggerRegistry", "server", "__dirname", "triggerWebhook", "query", "Filter", "schema", "run", "objects", "inviteMember", "guest", "invitation", "hostInvitation", "performInvitation", "state", "Invitation", "State", "SUCCESS", "testFunctionManifest"]
|
|
7
7
|
}
|
|
@@ -26,7 +26,7 @@ var subscriptionHandler = (handler, types) => {
|
|
|
26
26
|
if (!space) {
|
|
27
27
|
log.error("Invalid space", void 0, {
|
|
28
28
|
F: __dxlog_file,
|
|
29
|
-
L:
|
|
29
|
+
L: 133,
|
|
30
30
|
S: void 0,
|
|
31
31
|
C: (f, a) => f(...a)
|
|
32
32
|
});
|
|
@@ -39,7 +39,7 @@ var subscriptionHandler = (handler, types) => {
|
|
|
39
39
|
data
|
|
40
40
|
}, {
|
|
41
41
|
F: __dxlog_file,
|
|
42
|
-
L:
|
|
42
|
+
L: 143,
|
|
43
43
|
S: void 0,
|
|
44
44
|
C: (f, a) => f(...a)
|
|
45
45
|
});
|
|
@@ -49,7 +49,7 @@ var subscriptionHandler = (handler, types) => {
|
|
|
49
49
|
objects: objects?.length
|
|
50
50
|
}, {
|
|
51
51
|
F: __dxlog_file,
|
|
52
|
-
L:
|
|
52
|
+
L: 145,
|
|
53
53
|
S: void 0,
|
|
54
54
|
C: (f, a) => f(...a)
|
|
55
55
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/handler.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Client, PublicKey } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport type { CoreDatabase } from '@dxos/echo-db';\nimport { type EchoReactiveObject
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\n\nimport { type Client, PublicKey } from '@dxos/client';\nimport { type Space, type SpaceId } from '@dxos/client/echo';\nimport type { CoreDatabase } from '@dxos/echo-db';\nimport { type EchoReactiveObject } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\nimport { nonNullable } from '@dxos/util';\n\n// TODO(burdon): Model after http request. Ref Lambda/OpenFaaS.\n// https://docs.aws.amazon.com/lambda/latest/dg/typescript-handler.html\n// https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml/#functions\n// https://www.npmjs.com/package/aws-lambda\n\n/**\n * Function handler.\n */\nexport type FunctionHandler<TData = {}, TMeta = {}> = (params: {\n context: FunctionContext;\n event: FunctionEvent<TData, TMeta>;\n\n /**\n * @deprecated\n */\n response: FunctionResponse;\n}) => Promise<Response | FunctionResponse | void>;\n\n/**\n * Function context.\n */\nexport interface FunctionContext {\n getSpace: (spaceId: SpaceId) => Promise<SpaceAPI>;\n\n /**\n * Space from which the function was invoked.\n */\n space: SpaceAPI | undefined;\n\n ai: FunctionContextAi;\n\n /**\n * @deprecated\n */\n // TODO(burdon): Limit access to individual space.\n client: Client;\n /**\n * @deprecated\n */\n // TODO(burdon): Replace with storage service abstraction.\n dataDir?: string;\n}\n\nexport interface FunctionContextAi {\n // TODO(dmaretskyi): Refer to cloudflare AI docs for more comprehensive typedefs.\n run(model: string, inputs: any, options?: any): Promise<any>;\n}\n\n/**\n * Event payload.\n */\nexport type FunctionEvent<TData = {}, TMeta = {}> = {\n data: FunctionEventMeta<TMeta> & TData;\n};\n\n/**\n * Metadata from trigger.\n */\nexport type FunctionEventMeta<TMeta = {}> = {\n meta: TMeta;\n};\n\n/**\n * Function response.\n */\nexport type FunctionResponse = {\n status(code: number): FunctionResponse;\n};\n\n//\n// API.\n//\n\n/**\n * Space interface available to functions.\n */\nexport interface SpaceAPI {\n get id(): SpaceId;\n get crud(): CoreDatabase;\n}\n\nconst __assertFunctionSpaceIsCompatibleWithTheClientSpace = () => {\n // eslint-disable-next-line unused-imports/no-unused-vars\n const y: SpaceAPI = {} as Space;\n};\n\n//\n// Subscription utils.\n//\n\nexport type RawSubscriptionData = {\n spaceKey?: string;\n objects?: string[];\n};\n\nexport type SubscriptionData = {\n space?: Space;\n objects?: EchoReactiveObject<any>[];\n};\n\n/**\n * Handler wrapper for subscription events; extracts space and objects.\n *\n * To test:\n * ```\n * curl -s -X POST -H \"Content-Type: application/json\" --data '{\"space\": \"0446...1cbb\"}' http://localhost:7100/dev/email-extractor\n * ```\n *\n * NOTE: Get space key from devtools or `dx space list --json`\n */\n// TODO(burdon): Evolve into plugin definition like Composer.\nexport const subscriptionHandler = <TMeta>(\n handler: FunctionHandler<SubscriptionData, TMeta>,\n types?: S.Schema<any>[],\n): FunctionHandler<RawSubscriptionData, TMeta> => {\n return async ({ event: { data }, context, response, ...rest }) => {\n const { client } = context;\n const space = data.spaceKey ? client.spaces.get(PublicKey.from(data.spaceKey)) : undefined;\n if (!space) {\n log.error('Invalid space');\n return response.status(500);\n }\n\n registerTypes(space, types);\n const objects = space\n ? data.objects?.map<EchoReactiveObject<any> | undefined>((id) => space!.db.getObjectById(id)).filter(nonNullable)\n : [];\n\n if (!!data.spaceKey && !space) {\n log.warn('invalid space', { data });\n } else {\n log.info('handler', { space: space?.key.truncate(), objects: objects?.length });\n }\n\n return handler({ event: { data: { ...data, space, objects } }, context, response, ...rest });\n };\n};\n\n// TODO(burdon): Evolve types as part of function metadata.\nconst registerTypes = (space: Space, types: S.Schema<any>[] = []) => {\n const registry = space.db.graph.schemaRegistry;\n for (const type of types) {\n if (!registry.hasSchema(type)) {\n registry.addSchema([type]);\n }\n }\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAMA,SAAsBA,iBAAiB;AAIvC,SAASC,WAAW;AACpB,SAASC,mBAAmB;;AAiHrB,IAAMC,sBAAsB,CACjCC,SACAC,UAAAA;AAEA,SAAO,OAAO,EAAEC,OAAO,EAAEC,KAAI,GAAIC,SAASC,UAAU,GAAGC,KAAAA,MAAM;AAC3D,UAAM,EAAEC,OAAM,IAAKH;AACnB,UAAMI,QAAQL,KAAKM,WAAWF,OAAOG,OAAOC,IAAIC,UAAUC,KAAKV,KAAKM,QAAQ,CAAA,IAAKK;AACjF,QAAI,CAACN,OAAO;AACVO,UAAIC,MAAM,iBAAA,QAAA;;;;;;AACV,aAAOX,SAASY,OAAO,GAAA;IACzB;AAEAC,kBAAcV,OAAOP,KAAAA;AACrB,UAAMkB,UAAUX,QACZL,KAAKgB,SAASC,IAAyC,CAACC,OAAOb,MAAOc,GAAGC,cAAcF,EAAAA,CAAAA,EAAKG,OAAOC,WAAAA,IACnG,CAAA;AAEJ,QAAI,CAAC,CAACtB,KAAKM,YAAY,CAACD,OAAO;AAC7BO,UAAIW,KAAK,iBAAiB;QAAEvB;MAAK,GAAA;;;;;;IACnC,OAAO;AACLY,UAAIY,KAAK,WAAW;QAAEnB,OAAOA,OAAOoB,IAAIC,SAAAA;QAAYV,SAASA,SAASW;MAAO,GAAA;;;;;;IAC/E;AAEA,WAAO9B,QAAQ;MAAEE,OAAO;QAAEC,MAAM;UAAE,GAAGA;UAAMK;UAAOW;QAAQ;MAAE;MAAGf;MAASC;MAAU,GAAGC;IAAK,CAAA;EAC5F;AACF;AAGA,IAAMY,gBAAgB,CAACV,OAAcP,QAAyB,CAAA,MAAE;AAC9D,QAAM8B,WAAWvB,MAAMc,GAAGU,MAAMC;AAChC,aAAWC,QAAQjC,OAAO;AACxB,QAAI,CAAC8B,SAASI,UAAUD,IAAAA,GAAO;AAC7BH,eAASK,UAAU;QAACF;OAAK;IAC3B;EACF;AACF;",
|
|
6
6
|
"names": ["PublicKey", "log", "nonNullable", "subscriptionHandler", "handler", "types", "event", "data", "context", "response", "rest", "client", "space", "spaceKey", "spaces", "get", "PublicKey", "from", "undefined", "log", "error", "status", "registerTypes", "objects", "map", "id", "db", "getObjectById", "filter", "nonNullable", "warn", "info", "key", "truncate", "length", "registry", "graph", "schemaRegistry", "type", "hasSchema", "addSchema"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/core/functions/src/types.ts":{"bytes":9947,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/function/function-registry.ts":{"bytes":13004,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/function/index.ts":{"bytes":529,"imports":[{"path":"packages/core/functions/src/function/function-registry.ts","kind":"import-statement","original":"./function-registry"}],"format":"esm"},"packages/core/functions/src/handler.ts":{"bytes":10606,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytes":10343,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytes":4173,"imports":[{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytes":13341,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/index.ts":{"bytes":864,"imports":[{"path":"packages/core/functions/src/trigger/type/subscription-trigger.ts","kind":"import-statement","original":"./subscription-trigger"},{"path":"packages/core/functions/src/trigger/type/timer-trigger.ts","kind":"import-statement","original":"./timer-trigger"},{"path":"packages/core/functions/src/trigger/type/websocket-trigger.ts","kind":"import-statement","original":"./websocket-trigger"}],"format":"esm"},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytes":28453,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/trigger/index.ts":{"bytes":603,"imports":[{"path":"packages/core/functions/src/trigger/trigger-registry.ts","kind":"import-statement","original":"./trigger-registry"},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"}],"format":"esm"},"packages/core/functions/src/index.ts":{"bytes":840,"imports":[{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"./function"},{"path":"packages/core/functions/src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/core/functions/src/testing/types.ts":{"bytes":1131,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/dev-server.ts":{"bytes":28958,"imports":[{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/scheduler.ts":{"bytes":21084,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/index.ts":{"bytes":598,"imports":[{"path":"packages/core/functions/src/runtime/dev-server.ts","kind":"import-statement","original":"./dev-server"},{"path":"packages/core/functions/src/runtime/scheduler.ts","kind":"import-statement","original":"./scheduler"}],"format":"esm"},"packages/core/functions/src/testing/setup.ts":{"bytes":12671,"imports":[{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"../function"},{"path":"packages/core/functions/src/runtime/index.ts","kind":"import-statement","original":"../runtime"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"../trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/util.ts":{"bytes":4292,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/manifest.ts":{"bytes":1139,"imports":[],"format":"esm"},"packages/core/functions/src/testing/index.ts":{"bytes":749,"imports":[{"path":"packages/core/functions/src/testing/setup.ts","kind":"import-statement","original":"./setup"},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/functions/src/testing/manifest.ts","kind":"import-statement","original":"./manifest"}],"format":"esm"}},"outputs":{"packages/core/functions/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5747},"packages/core/functions/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionRegistry","FunctionTrigger","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger","subscriptionHandler"],"entryPoint":"packages/core/functions/src/index.ts","inputs":{"packages/core/functions/src/index.ts":{"bytesInOutput":0},"packages/core/functions/src/handler.ts":{"bytesInOutput":1624}},"bytes":2334},"packages/core/functions/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32213},"packages/core/functions/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["TestType","createFunctionRuntime","createInitializedClients","inviteMember","startFunctionsHost","testFunctionManifest","triggerWebhook"],"entryPoint":"packages/core/functions/src/testing/index.ts","inputs":{"packages/core/functions/src/testing/setup.ts":{"bytesInOutput":2783},"packages/core/functions/src/testing/types.ts":{"bytesInOutput":182},"packages/core/functions/src/runtime/dev-server.ts":{"bytesInOutput":7860},"packages/core/functions/src/runtime/index.ts":{"bytesInOutput":0},"packages/core/functions/src/runtime/scheduler.ts":{"bytesInOutput":5330},"packages/core/functions/src/testing/index.ts":{"bytesInOutput":0},"packages/core/functions/src/testing/util.ts":{"bytesInOutput":1051},"packages/core/functions/src/testing/manifest.ts":{"bytesInOutput":146}},"bytes":18155},"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33089},"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true}],"exports":["FunctionRegistry","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger"],"inputs":{"packages/core/functions/src/function/function-registry.ts":{"bytesInOutput":3046},"packages/core/functions/src/function/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytesInOutput":2008},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytesInOutput":898},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytesInOutput":3491},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytesInOutput":7421},"packages/core/functions/src/trigger/type/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/index.ts":{"bytesInOutput":0}},"bytes":17539},"packages/core/functions/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/functions/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger"],"entryPoint":"packages/core/functions/src/types.ts","inputs":{},"bytes":335},"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5515},"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger","__require"],"inputs":{"packages/core/functions/src/types.ts":{"bytesInOutput":1898}},"bytes":2544}}}
|
|
1
|
+
{"inputs":{"packages/core/functions/src/types.ts":{"bytes":9947,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/function/function-registry.ts":{"bytes":13004,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/function/index.ts":{"bytes":529,"imports":[{"path":"packages/core/functions/src/function/function-registry.ts","kind":"import-statement","original":"./function-registry"}],"format":"esm"},"packages/core/functions/src/handler.ts":{"bytes":10666,"imports":[{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytes":10343,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytes":4173,"imports":[{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytes":13341,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/trigger/type/index.ts":{"bytes":864,"imports":[{"path":"packages/core/functions/src/trigger/type/subscription-trigger.ts","kind":"import-statement","original":"./subscription-trigger"},{"path":"packages/core/functions/src/trigger/type/timer-trigger.ts","kind":"import-statement","original":"./timer-trigger"},{"path":"packages/core/functions/src/trigger/type/websocket-trigger.ts","kind":"import-statement","original":"./websocket-trigger"}],"format":"esm"},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytes":28453,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/trigger/index.ts":{"bytes":603,"imports":[{"path":"packages/core/functions/src/trigger/trigger-registry.ts","kind":"import-statement","original":"./trigger-registry"},{"path":"packages/core/functions/src/trigger/type/index.ts","kind":"import-statement","original":"./type"}],"format":"esm"},"packages/core/functions/src/index.ts":{"bytes":840,"imports":[{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"./function"},{"path":"packages/core/functions/src/handler.ts","kind":"import-statement","original":"./handler"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"./trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/core/functions/src/testing/types.ts":{"bytes":1131,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/dev-server.ts":{"bytes":28958,"imports":[{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/scheduler.ts":{"bytes":21084,"imports":[{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/core/functions/src/runtime/index.ts":{"bytes":598,"imports":[{"path":"packages/core/functions/src/runtime/dev-server.ts","kind":"import-statement","original":"./dev-server"},{"path":"packages/core/functions/src/runtime/scheduler.ts","kind":"import-statement","original":"./scheduler"}],"format":"esm"},"packages/core/functions/src/testing/setup.ts":{"bytes":12717,"imports":[{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/function/index.ts","kind":"import-statement","original":"../function"},{"path":"packages/core/functions/src/runtime/index.ts","kind":"import-statement","original":"../runtime"},{"path":"packages/core/functions/src/trigger/index.ts","kind":"import-statement","original":"../trigger"},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/util.ts":{"bytes":4292,"imports":[{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"packages/core/functions/src/types.ts","kind":"import-statement","original":"../types"}],"format":"esm"},"packages/core/functions/src/testing/manifest.ts":{"bytes":1139,"imports":[],"format":"esm"},"packages/core/functions/src/testing/index.ts":{"bytes":749,"imports":[{"path":"packages/core/functions/src/testing/setup.ts","kind":"import-statement","original":"./setup"},{"path":"packages/core/functions/src/testing/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/core/functions/src/testing/util.ts","kind":"import-statement","original":"./util"},{"path":"packages/core/functions/src/testing/manifest.ts","kind":"import-statement","original":"./manifest"}],"format":"esm"}},"outputs":{"packages/core/functions/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5793},"packages/core/functions/dist/lib/node-esm/index.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionRegistry","FunctionTrigger","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger","subscriptionHandler"],"entryPoint":"packages/core/functions/src/index.ts","inputs":{"packages/core/functions/src/index.ts":{"bytesInOutput":0},"packages/core/functions/src/handler.ts":{"bytesInOutput":1624}},"bytes":2334},"packages/core/functions/dist/lib/node-esm/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":32242},"packages/core/functions/dist/lib/node-esm/testing/index.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs","kind":"import-statement"},{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"express","kind":"import-statement","external":true},{"path":"get-port-please","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-protocol","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/client/testing","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true}],"exports":["TestType","createFunctionRuntime","createInitializedClients","inviteMember","startFunctionsHost","testFunctionManifest","triggerWebhook"],"entryPoint":"packages/core/functions/src/testing/index.ts","inputs":{"packages/core/functions/src/testing/setup.ts":{"bytesInOutput":2773},"packages/core/functions/src/testing/types.ts":{"bytesInOutput":182},"packages/core/functions/src/runtime/dev-server.ts":{"bytesInOutput":7860},"packages/core/functions/src/runtime/index.ts":{"bytesInOutput":0},"packages/core/functions/src/runtime/scheduler.ts":{"bytesInOutput":5330},"packages/core/functions/src/testing/index.ts":{"bytesInOutput":0},"packages/core/functions/src/testing/util.ts":{"bytesInOutput":1051},"packages/core/functions/src/testing/manifest.ts":{"bytesInOutput":146}},"bytes":18145},"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":33089},"packages/core/functions/dist/lib/node-esm/chunk-H3RLSCYN.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/keys","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/echo-db","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"cron","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client/echo","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","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/util","kind":"import-statement","external":true}],"exports":["FunctionRegistry","TriggerRegistry","createSubscriptionTrigger","createTimerTrigger","createWebSocket","createWebsocketTrigger"],"inputs":{"packages/core/functions/src/function/function-registry.ts":{"bytesInOutput":3046},"packages/core/functions/src/function/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/type/subscription-trigger.ts":{"bytesInOutput":2008},"packages/core/functions/src/trigger/type/timer-trigger.ts":{"bytesInOutput":898},"packages/core/functions/src/trigger/type/websocket-trigger.ts":{"bytesInOutput":3491},"packages/core/functions/src/trigger/trigger-registry.ts":{"bytesInOutput":7421},"packages/core/functions/src/trigger/type/index.ts":{"bytesInOutput":0},"packages/core/functions/src/trigger/index.ts":{"bytesInOutput":0}},"bytes":17539},"packages/core/functions/dist/lib/node-esm/types.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/core/functions/dist/lib/node-esm/types.mjs":{"imports":[{"path":"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs","kind":"import-statement"}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger"],"entryPoint":"packages/core/functions/src/types.ts","inputs":{},"bytes":335},"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5515},"packages/core/functions/dist/lib/node-esm/chunk-OWEGFCYZ.mjs":{"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"exports":["FUNCTION_SCHEMA","FunctionDef","FunctionManifestSchema","FunctionTrigger","__require"],"inputs":{"packages/core/functions/src/types.ts":{"bytesInOutput":1898}},"bytes":2544}}}
|
|
@@ -542,7 +542,12 @@ var createContext2 = () => new Context2({
|
|
|
542
542
|
var createInitializedClients = async (testBuilder, count = 1, config) => {
|
|
543
543
|
const clients = range(count).map(() => new Client({
|
|
544
544
|
config,
|
|
545
|
-
services: testBuilder.createLocalClientServices()
|
|
545
|
+
services: testBuilder.createLocalClientServices(),
|
|
546
|
+
types: [
|
|
547
|
+
FunctionDef,
|
|
548
|
+
FunctionTrigger,
|
|
549
|
+
TestType
|
|
550
|
+
]
|
|
546
551
|
}));
|
|
547
552
|
testBuilder.ctx.onDispose(() => Promise.all(clients.map((client) => client.destroy())));
|
|
548
553
|
return Promise.all(clients.map(async (client, index) => {
|
|
@@ -551,11 +556,6 @@ var createInitializedClients = async (testBuilder, count = 1, config) => {
|
|
|
551
556
|
displayName: `Peer ${index}`
|
|
552
557
|
});
|
|
553
558
|
await client.spaces.isReady.wait();
|
|
554
|
-
client.addTypes([
|
|
555
|
-
FunctionDef,
|
|
556
|
-
FunctionTrigger,
|
|
557
|
-
TestType
|
|
558
|
-
]);
|
|
559
559
|
return client;
|
|
560
560
|
}));
|
|
561
561
|
};
|