@dxos/functions 0.7.4 → 0.7.5-main.937ce75

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.
Files changed (84) hide show
  1. package/dist/lib/browser/chunk-5YMUMLKR.mjs +168 -0
  2. package/dist/lib/browser/chunk-5YMUMLKR.mjs.map +7 -0
  3. package/dist/lib/browser/chunk-B3FGASHJ.mjs +125 -0
  4. package/dist/lib/browser/chunk-B3FGASHJ.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-Y2OPAP26.mjs → chunk-LNWYDAJH.mjs} +2 -2
  6. package/dist/lib/browser/chunk-XRCXIG74.mjs +12 -0
  7. package/dist/lib/browser/edge/index.mjs +21 -0
  8. package/dist/lib/browser/index.mjs +26 -3
  9. package/dist/lib/browser/index.mjs.map +1 -1
  10. package/dist/lib/browser/meta.json +1 -1
  11. package/dist/lib/browser/testing/index.mjs +5 -3
  12. package/dist/lib/browser/testing/index.mjs.map +1 -1
  13. package/dist/lib/browser/{types.mjs → types/index.mjs} +9 -2
  14. package/dist/lib/browser/types/index.mjs.map +7 -0
  15. package/dist/lib/node/{chunk-CCULBUSE.cjs → chunk-GR7UUM3W.cjs} +15 -15
  16. package/dist/lib/node/chunk-JEQ2X3Z6.cjs +34 -0
  17. package/dist/lib/node/chunk-JEQ2X3Z6.cjs.map +7 -0
  18. package/dist/lib/node/chunk-XVI7DQF5.cjs +195 -0
  19. package/dist/lib/node/chunk-XVI7DQF5.cjs.map +7 -0
  20. package/dist/lib/node/chunk-ZDG466QT.cjs +151 -0
  21. package/dist/lib/node/chunk-ZDG466QT.cjs.map +7 -0
  22. package/dist/lib/node/edge/index.cjs +42 -0
  23. package/dist/lib/node/edge/index.cjs.map +7 -0
  24. package/dist/lib/node/index.cjs +37 -15
  25. package/dist/lib/node/index.cjs.map +1 -1
  26. package/dist/lib/node/meta.json +1 -1
  27. package/dist/lib/node/testing/index.cjs +11 -10
  28. package/dist/lib/node/testing/index.cjs.map +1 -1
  29. package/dist/lib/node/{types.cjs → types/index.cjs} +16 -9
  30. package/dist/lib/node/types/index.cjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-BODWNC7C.mjs +168 -0
  32. package/dist/lib/node-esm/chunk-BODWNC7C.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-CN74WOTT.mjs +125 -0
  34. package/dist/lib/node-esm/chunk-CN74WOTT.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-DHGBFXSZ.mjs +12 -0
  36. package/dist/lib/node-esm/chunk-DHGBFXSZ.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-GGGGWYP6.mjs → chunk-LLKTW5AA.mjs} +2 -2
  38. package/dist/lib/node-esm/edge/index.mjs +21 -0
  39. package/dist/lib/node-esm/edge/index.mjs.map +7 -0
  40. package/dist/lib/node-esm/index.mjs +26 -3
  41. package/dist/lib/node-esm/index.mjs.map +1 -1
  42. package/dist/lib/node-esm/meta.json +1 -1
  43. package/dist/lib/node-esm/testing/index.mjs +5 -3
  44. package/dist/lib/node-esm/testing/index.mjs.map +1 -1
  45. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +9 -2
  46. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  47. package/dist/types/src/edge/functions.d.ts +25 -0
  48. package/dist/types/src/edge/functions.d.ts.map +1 -0
  49. package/dist/types/src/edge/index.d.ts +2 -0
  50. package/dist/types/src/edge/index.d.ts.map +1 -0
  51. package/dist/types/src/index.d.ts +1 -0
  52. package/dist/types/src/index.d.ts.map +1 -1
  53. package/dist/types/src/testing/types.d.ts +3 -5
  54. package/dist/types/src/testing/types.d.ts.map +1 -1
  55. package/dist/types/src/translations.d.ts +9 -0
  56. package/dist/types/src/translations.d.ts.map +1 -0
  57. package/dist/types/src/types/index.d.ts +3 -0
  58. package/dist/types/src/types/index.d.ts.map +1 -0
  59. package/dist/types/src/types/schema.d.ts +62 -0
  60. package/dist/types/src/types/schema.d.ts.map +1 -0
  61. package/dist/types/src/{types.d.ts → types/types.d.ts} +76 -75
  62. package/dist/types/src/types/types.d.ts.map +1 -0
  63. package/dist/types/tsconfig.tsbuildinfo +1 -0
  64. package/package.json +27 -20
  65. package/src/edge/functions.ts +116 -0
  66. package/src/edge/index.ts +5 -0
  67. package/src/index.ts +1 -0
  68. package/src/translations.ts +15 -0
  69. package/src/types/index.ts +6 -0
  70. package/src/types/schema.ts +48 -0
  71. package/src/{types.ts → types/types.ts} +8 -0
  72. package/dist/lib/browser/chunk-N5D5R4Q4.mjs +0 -129
  73. package/dist/lib/browser/chunk-N5D5R4Q4.mjs.map +0 -7
  74. package/dist/lib/node/chunk-JMJCJ3SA.cjs +0 -156
  75. package/dist/lib/node/chunk-JMJCJ3SA.cjs.map +0 -7
  76. package/dist/lib/node/types.cjs.map +0 -7
  77. package/dist/lib/node-esm/chunk-2NACE6MJ.mjs +0 -129
  78. package/dist/lib/node-esm/chunk-2NACE6MJ.mjs.map +0 -7
  79. package/dist/types/src/types.d.ts.map +0 -1
  80. /package/dist/lib/browser/{chunk-Y2OPAP26.mjs.map → chunk-LNWYDAJH.mjs.map} +0 -0
  81. /package/dist/lib/browser/{types.mjs.map → chunk-XRCXIG74.mjs.map} +0 -0
  82. /package/dist/lib/{node-esm/types.mjs.map → browser/edge/index.mjs.map} +0 -0
  83. /package/dist/lib/node/{chunk-CCULBUSE.cjs.map → chunk-GR7UUM3W.cjs.map} +0 -0
  84. /package/dist/lib/node-esm/{chunk-GGGGWYP6.mjs.map → chunk-LLKTW5AA.mjs.map} +0 -0
@@ -2,6 +2,6 @@
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
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.waitUntilReady();\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.query({ id: value.objectId }).first();\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, (trigger: FunctionTrigger) => trigger.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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",
5
+ "mappings": "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",
6
6
  "names": ["getRandomPort", "path", "waitForCondition", "Client", "Config", "range", "S", "TypedObject", "TestType", "TypedObject", "typename", "version", "title", "S", "String", "express", "getPort", "join", "asyncTimeout", "Event", "Trigger", "Context", "invariant", "log", "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", "path", "Mutex", "loadObjectReferences", "Context", "Reference", "log", "Scheduler", "constructor", "functions", "triggers", "_options", "_ctx", "createContext", "_functionUriToCallMutex", "Map", "registered", "on", "space", "added", "_safeActivateTriggers", "getInactiveTriggers", "getFunctions", "start", "dispose", "open", "stop", "close", "register", "manifest", "mountTasks", "map", "trigger", "activate", "Promise", "all", "catch", "definition", "find", "def", "uri", "function", "info", "execFunction", "args", "mutex", "get", "set", "executeSynchronized", "t", "Object", "values", "meta", "key", "value", "entries", "object", "db", "query", "id", "objectId", "first", "_execFunction", "data", "spaceKey", "status", "payload", "assign", "endpoint", "callback", "url", "join", "route", "triggerType", "spec", "type", "response", "fetch", "method", "headers", "body", "JSON", "stringify", "Error", "err", "error", "message", "name", "createInitializedClients", "testBuilder", "count", "config", "clients", "range", "map", "Client", "services", "createLocalClientServices", "types", "FunctionDef", "FunctionTrigger", "TestType", "ctx", "onDispose", "Promise", "all", "client", "destroy", "index", "initialize", "halo", "createIdentity", "displayName", "spaces", "waitUntilReady", "createFunctionRuntime", "pluginInitializer", "functionsPort", "getRandomPort", "Config", "runtime", "agent", "plugins", "id", "port", "plugin", "close", "startFunctionsHost", "options", "functionRuntime", "functionsRegistry", "FunctionRegistry", "devServer", "startDevServer", "scheduler", "startScheduler", "waitForActiveTriggers", "space", "waitForCondition", "condition", "triggers", "getActiveTriggers", "length", "functionRegistry", "triggerRegistry", "TriggerRegistry", "Scheduler", "endpoint", "start", "stop", "server", "DevServer", "baseDir", "path", "join", "__dirname", "Filter", "performInvitation", "invariant", "Invitation", "triggerWebhook", "space", "uri", "trigger", "db", "query", "Filter", "schema", "FunctionTrigger", "function", "run", "objects", "invariant", "spec", "type", "fetch", "port", "inviteMember", "host", "guest", "invitation", "hostInvitation", "Promise", "all", "performInvitation", "spaces", "state", "Invitation", "State", "SUCCESS", "Error", "testFunctionManifest", "functions", "uri", "route", "handler"]
7
7
  }
@@ -5,16 +5,23 @@ import {
5
5
  FunctionManifestSchema,
6
6
  FunctionTrigger,
7
7
  FunctionTriggerSchema,
8
+ FunctionType,
9
+ ScriptType,
10
+ TextType,
8
11
  TriggerKind,
9
12
  TriggerSchema
10
- } from "./chunk-N5D5R4Q4.mjs";
13
+ } from "../chunk-5YMUMLKR.mjs";
14
+ import "../chunk-XRCXIG74.mjs";
11
15
  export {
12
16
  FUNCTION_TYPES,
13
17
  FunctionDef,
14
18
  FunctionManifestSchema,
15
19
  FunctionTrigger,
16
20
  FunctionTriggerSchema,
21
+ FunctionType,
22
+ ScriptType,
23
+ TextType,
17
24
  TriggerKind,
18
25
  TriggerSchema
19
26
  };
20
- //# sourceMappingURL=types.mjs.map
27
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -16,15 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_CCULBUSE_exports = {};
20
- __export(chunk_CCULBUSE_exports, {
19
+ var chunk_GR7UUM3W_exports = {};
20
+ __export(chunk_GR7UUM3W_exports, {
21
21
  FunctionRegistry: () => FunctionRegistry,
22
22
  TriggerRegistry: () => TriggerRegistry,
23
23
  createSubscriptionTrigger: () => createSubscriptionTrigger,
24
24
  createTimerTrigger: () => createTimerTrigger
25
25
  });
26
- module.exports = __toCommonJS(chunk_CCULBUSE_exports);
27
- var import_chunk_JMJCJ3SA = require("./chunk-JMJCJ3SA.cjs");
26
+ module.exports = __toCommonJS(chunk_GR7UUM3W_exports);
27
+ var import_chunk_XVI7DQF5 = require("./chunk-XVI7DQF5.cjs");
28
28
  var import_async = require("@dxos/async");
29
29
  var import_echo = require("@dxos/client/echo");
30
30
  var import_context = require("@dxos/context");
@@ -85,14 +85,14 @@ var FunctionRegistry = class extends import_context.Resource {
85
85
  if (!functions?.length) {
86
86
  return;
87
87
  }
88
- if (!space.db.graph.schemaRegistry.hasSchema(import_chunk_JMJCJ3SA.FunctionDef)) {
88
+ if (!space.db.graph.schemaRegistry.hasSchema(import_chunk_XVI7DQF5.FunctionDef)) {
89
89
  space.db.graph.schemaRegistry.addSchema([
90
- import_chunk_JMJCJ3SA.FunctionDef
90
+ import_chunk_XVI7DQF5.FunctionDef
91
91
  ]);
92
92
  }
93
- const { objects: existing } = await space.db.query(import_echo.Filter.schema(import_chunk_JMJCJ3SA.FunctionDef)).run();
93
+ const { objects: existing } = await space.db.query(import_echo.Filter.schema(import_chunk_XVI7DQF5.FunctionDef)).run();
94
94
  const { added } = (0, import_util.diff)(existing, functions, (a, b) => a.uri === b.uri);
95
- added.forEach((def) => space.db.add((0, import_echo.create)(import_chunk_JMJCJ3SA.FunctionDef, def)));
95
+ added.forEach((def) => space.db.add((0, import_echo.create)(import_chunk_XVI7DQF5.FunctionDef, def)));
96
96
  if (added.length > 0) {
97
97
  await space.db.flush({
98
98
  indexes: true,
@@ -118,7 +118,7 @@ var FunctionRegistry = class extends import_context.Resource {
118
118
  if (this._ctx.disposed) {
119
119
  break;
120
120
  }
121
- this._ctx.onDispose(space.db.query(import_echo.Filter.schema(import_chunk_JMJCJ3SA.FunctionDef)).subscribe(({ objects }) => {
121
+ this._ctx.onDispose(space.db.query(import_echo.Filter.schema(import_chunk_XVI7DQF5.FunctionDef)).subscribe(({ objects }) => {
122
122
  const { added } = (0, import_util.diff)(registered, objects, (a, b) => a.uri === b.uri);
123
123
  if (added.length > 0) {
124
124
  registered.push(...added);
@@ -335,9 +335,9 @@ var TriggerRegistry = class extends import_context2.Resource {
335
335
  if (!manifest.triggers?.length) {
336
336
  return;
337
337
  }
338
- if (!space.db.graph.schemaRegistry.hasSchema(import_chunk_JMJCJ3SA.FunctionTrigger)) {
338
+ if (!space.db.graph.schemaRegistry.hasSchema(import_chunk_XVI7DQF5.FunctionTrigger)) {
339
339
  space.db.graph.schemaRegistry.addSchema([
340
- import_chunk_JMJCJ3SA.FunctionTrigger
340
+ import_chunk_XVI7DQF5.FunctionTrigger
341
341
  ]);
342
342
  }
343
343
  const manifestTriggers = manifest.triggers.map((trigger) => {
@@ -351,11 +351,11 @@ var TriggerRegistry = class extends import_context2.Resource {
351
351
  ].join(":"))
352
352
  ];
353
353
  }
354
- return (0, import_echo3.create)(import_chunk_JMJCJ3SA.FunctionTrigger, trigger, {
354
+ return (0, import_echo3.create)(import_chunk_XVI7DQF5.FunctionTrigger, trigger, {
355
355
  keys
356
356
  });
357
357
  });
358
- const { objects: existing } = await space.db.query(import_echo3.Filter.schema(import_chunk_JMJCJ3SA.FunctionTrigger)).run();
358
+ const { objects: existing } = await space.db.query(import_echo3.Filter.schema(import_chunk_XVI7DQF5.FunctionTrigger)).run();
359
359
  const { added } = (0, import_util2.diff)(existing, manifestTriggers, import_echo3.compareForeignKeys);
360
360
  added.forEach((trigger) => {
361
361
  space.db.add(trigger);
@@ -390,7 +390,7 @@ var TriggerRegistry = class extends import_context2.Resource {
390
390
  if (this._ctx.disposed) {
391
391
  break;
392
392
  }
393
- this._ctx.onDispose(space.db.query(import_echo3.Filter.schema(import_chunk_JMJCJ3SA.FunctionTrigger)).subscribe(async ({ objects: current }) => {
393
+ this._ctx.onDispose(space.db.query(import_echo3.Filter.schema(import_chunk_XVI7DQF5.FunctionTrigger)).subscribe(async ({ objects: current }) => {
394
394
  import_log4.log.info("update", {
395
395
  space: space.key,
396
396
  registered: registered.length,
@@ -491,4 +491,4 @@ var TriggerRegistry = class extends import_context2.Resource {
491
491
  createSubscriptionTrigger,
492
492
  createTimerTrigger
493
493
  });
494
- //# sourceMappingURL=chunk-CCULBUSE.cjs.map
494
+ //# sourceMappingURL=chunk-GR7UUM3W.cjs.map
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chunk_JEQ2X3Z6_exports = {};
20
+ __export(chunk_JEQ2X3Z6_exports, {
21
+ __require: () => __require
22
+ });
23
+ module.exports = __toCommonJS(chunk_JEQ2X3Z6_exports);
24
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
25
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
26
+ }) : x)(function(x) {
27
+ if (typeof require !== "undefined") return require.apply(this, arguments);
28
+ throw Error('Dynamic require of "' + x + '" is not supported');
29
+ });
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ __require
33
+ });
34
+ //# sourceMappingURL=chunk-JEQ2X3Z6.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["chunk-JEQ2X3Z6.cjs"],
4
+ "sourcesContent": ["var __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\n\nexport {\n __require\n};\n//# sourceMappingURL=chunk-JEQ2X3Z6.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAI,YAA6B,kBAAC,MAAM,OAAO,YAAY,cAAc,UAAU,OAAO,UAAU,cAAc,IAAI,MAAM,GAAG;AAAA,EAC7H,KAAK,CAAC,GAAG,OAAO,OAAO,YAAY,cAAc,UAAU,GAAG,CAAC;AACjE,CAAC,IAAI,GAAG,SAAS,GAAG;AAClB,MAAI,OAAO,YAAY,YAAa,QAAO,QAAQ,MAAM,MAAM,SAAS;AACxE,QAAM,MAAM,yBAAyB,IAAI,oBAAoB;AAC/D,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var chunk_XVI7DQF5_exports = {};
20
+ __export(chunk_XVI7DQF5_exports, {
21
+ FUNCTION_TYPES: () => FUNCTION_TYPES,
22
+ FunctionDef: () => FunctionDef,
23
+ FunctionManifestSchema: () => FunctionManifestSchema,
24
+ FunctionTrigger: () => FunctionTrigger,
25
+ FunctionTriggerSchema: () => FunctionTriggerSchema,
26
+ FunctionType: () => FunctionType,
27
+ ScriptType: () => ScriptType,
28
+ TextType: () => TextType,
29
+ TriggerKind: () => TriggerKind,
30
+ TriggerSchema: () => TriggerSchema
31
+ });
32
+ module.exports = __toCommonJS(chunk_XVI7DQF5_exports);
33
+ var import_echo_schema = require("@dxos/echo-schema");
34
+ var import_echo_schema2 = require("@dxos/echo-schema");
35
+ var TextType = class extends (0, import_echo_schema.TypedObject)({
36
+ typename: "dxos.org/type/Text",
37
+ version: "0.1.0"
38
+ })({
39
+ content: import_echo_schema.S.String
40
+ }) {
41
+ };
42
+ var ScriptType = class extends (0, import_echo_schema.TypedObject)({
43
+ typename: "dxos.org/type/Script",
44
+ version: "0.1.0"
45
+ })({
46
+ // TODO(burdon): Change to URI?
47
+ name: import_echo_schema.S.optional(import_echo_schema.S.String),
48
+ description: import_echo_schema.S.optional(import_echo_schema.S.String),
49
+ // TODO(burdon): Change to hash of deployed content.
50
+ // Whether source has changed since last deploy.
51
+ changed: import_echo_schema.S.optional(import_echo_schema.S.Boolean),
52
+ source: (0, import_echo_schema.Ref)(TextType)
53
+ }) {
54
+ };
55
+ var FunctionType = class extends (0, import_echo_schema.TypedObject)({
56
+ typename: "dxos.org/type/Function",
57
+ version: "0.1.0"
58
+ })({
59
+ // TODO(burdon): Rename to id/uri?
60
+ name: import_echo_schema.S.NonEmptyString,
61
+ version: import_echo_schema.S.String,
62
+ // Reference to a source script if it exists within ECHO.
63
+ // TODO(burdon): Don't ref ScriptType directly (core).
64
+ source: import_echo_schema.S.optional((0, import_echo_schema.Ref)(ScriptType)),
65
+ inputSchema: import_echo_schema.S.optional(import_echo_schema.JsonSchemaType),
66
+ // Local binding to a function name.
67
+ binding: import_echo_schema.S.optional(import_echo_schema.S.String)
68
+ }) {
69
+ };
70
+ var TriggerKind;
71
+ (function(TriggerKind2) {
72
+ TriggerKind2["Timer"] = "timer";
73
+ TriggerKind2["Webhook"] = "webhook";
74
+ TriggerKind2["Subscription"] = "subscription";
75
+ TriggerKind2["Email"] = "email";
76
+ })(TriggerKind || (TriggerKind = {}));
77
+ var typeLiteralAnnotations = {
78
+ [import_echo_schema2.AST.TitleAnnotationId]: "Type"
79
+ };
80
+ var TimerTriggerSchema = import_echo_schema2.S.Struct({
81
+ type: import_echo_schema2.S.Literal("timer").annotations(typeLiteralAnnotations),
82
+ cron: import_echo_schema2.S.String.annotations({
83
+ [import_echo_schema2.AST.TitleAnnotationId]: "Cron",
84
+ [import_echo_schema2.AST.ExamplesAnnotationId]: [
85
+ "0 0 * * *"
86
+ ]
87
+ })
88
+ }).pipe(import_echo_schema2.S.mutable);
89
+ var EmailTriggerSchema = import_echo_schema2.S.Struct({
90
+ type: import_echo_schema2.S.Literal("email").annotations(typeLiteralAnnotations)
91
+ }).pipe(import_echo_schema2.S.mutable);
92
+ var WebhookTriggerSchema = import_echo_schema2.S.Struct({
93
+ type: import_echo_schema2.S.Literal("webhook").annotations(typeLiteralAnnotations),
94
+ method: import_echo_schema2.S.optional(import_echo_schema2.S.String.annotations({
95
+ [import_echo_schema2.AST.TitleAnnotationId]: "Method",
96
+ [import_echo_schema2.OptionsAnnotationId]: [
97
+ "GET",
98
+ "POST"
99
+ ]
100
+ })),
101
+ port: import_echo_schema2.S.optional(import_echo_schema2.S.Number.annotations({
102
+ [import_echo_schema2.AST.TitleAnnotationId]: "Port"
103
+ }))
104
+ }).pipe(import_echo_schema2.S.mutable);
105
+ var QuerySchema = import_echo_schema2.S.Struct({
106
+ type: import_echo_schema2.S.optional(import_echo_schema2.S.String.annotations({
107
+ [import_echo_schema2.AST.TitleAnnotationId]: "Type"
108
+ })),
109
+ props: import_echo_schema2.S.optional(import_echo_schema2.S.Record({
110
+ key: import_echo_schema2.S.String,
111
+ value: import_echo_schema2.S.Any
112
+ }))
113
+ }).annotations({
114
+ [import_echo_schema2.AST.TitleAnnotationId]: "Query"
115
+ });
116
+ var SubscriptionTriggerSchema = import_echo_schema2.S.Struct({
117
+ type: import_echo_schema2.S.Literal("subscription").annotations(typeLiteralAnnotations),
118
+ // TODO(burdon): Define query DSL (from ECHO). Reconcile with Table.Query.
119
+ filter: QuerySchema,
120
+ options: import_echo_schema2.S.optional(import_echo_schema2.S.Struct({
121
+ // Watch changes to object (not just creation).
122
+ deep: import_echo_schema2.S.optional(import_echo_schema2.S.Boolean.annotations({
123
+ [import_echo_schema2.AST.TitleAnnotationId]: "Nested"
124
+ })),
125
+ // Debounce changes (delay in ms).
126
+ delay: import_echo_schema2.S.optional(import_echo_schema2.S.Number.annotations({
127
+ [import_echo_schema2.AST.TitleAnnotationId]: "Delay"
128
+ }))
129
+ }).annotations({
130
+ [import_echo_schema2.AST.TitleAnnotationId]: "Options"
131
+ }))
132
+ }).pipe(import_echo_schema2.S.mutable);
133
+ var TriggerSchema = import_echo_schema2.S.Union(
134
+ //
135
+ TimerTriggerSchema,
136
+ WebhookTriggerSchema,
137
+ SubscriptionTriggerSchema,
138
+ EmailTriggerSchema
139
+ ).annotations({
140
+ [import_echo_schema2.AST.TitleAnnotationId]: "Trigger"
141
+ });
142
+ var FunctionTriggerSchema = import_echo_schema2.S.Struct({
143
+ // TODO(burdon): What type does this reference.
144
+ function: import_echo_schema2.S.optional(import_echo_schema2.S.String.annotations({
145
+ [import_echo_schema2.AST.TitleAnnotationId]: "Function"
146
+ })),
147
+ enabled: import_echo_schema2.S.optional(import_echo_schema2.S.Boolean.annotations({
148
+ [import_echo_schema2.AST.TitleAnnotationId]: "Enabled"
149
+ })),
150
+ // TODO(burdon): Flatten entire schema.
151
+ spec: import_echo_schema2.S.optional(TriggerSchema),
152
+ // TODO(burdon): Get meta from function.
153
+ // The `meta` property is merged into the event data passed to the function.
154
+ meta: import_echo_schema2.S.optional(import_echo_schema2.S.mutable(import_echo_schema2.S.Record({
155
+ key: import_echo_schema2.S.String,
156
+ value: import_echo_schema2.S.Any
157
+ })))
158
+ });
159
+ var FunctionTrigger = class extends (0, import_echo_schema2.TypedObject)({
160
+ typename: "dxos.org/type/FunctionTrigger",
161
+ version: "0.1.0"
162
+ })(FunctionTriggerSchema.fields) {
163
+ };
164
+ var FunctionDef = class extends (0, import_echo_schema2.TypedObject)({
165
+ typename: "dxos.org/type/FunctionDef",
166
+ version: "0.1.0"
167
+ })({
168
+ uri: import_echo_schema2.S.String,
169
+ description: import_echo_schema2.S.optional(import_echo_schema2.S.String),
170
+ route: import_echo_schema2.S.String,
171
+ handler: import_echo_schema2.S.String
172
+ }) {
173
+ };
174
+ var FunctionManifestSchema = import_echo_schema2.S.Struct({
175
+ functions: import_echo_schema2.S.optional(import_echo_schema2.S.mutable(import_echo_schema2.S.Array((0, import_echo_schema2.RawObject)(FunctionDef)))),
176
+ triggers: import_echo_schema2.S.optional(import_echo_schema2.S.mutable(import_echo_schema2.S.Array((0, import_echo_schema2.RawObject)(FunctionTrigger))))
177
+ });
178
+ var FUNCTION_TYPES = [
179
+ FunctionDef,
180
+ FunctionTrigger
181
+ ];
182
+ // Annotate the CommonJS export names for ESM import in node:
183
+ 0 && (module.exports = {
184
+ FUNCTION_TYPES,
185
+ FunctionDef,
186
+ FunctionManifestSchema,
187
+ FunctionTrigger,
188
+ FunctionTriggerSchema,
189
+ FunctionType,
190
+ ScriptType,
191
+ TextType,
192
+ TriggerKind,
193
+ TriggerSchema
194
+ });
195
+ //# sourceMappingURL=chunk-XVI7DQF5.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { JsonSchemaType, Ref, S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Reconcile with plugin-markdown.\nexport class TextType extends TypedObject({ typename: 'dxos.org/type/Text', version: '0.1.0' })({\n content: S.String,\n}) {}\n\n/**\n * Source script.\n */\nexport class ScriptType extends TypedObject({\n typename: 'dxos.org/type/Script',\n version: '0.1.0',\n})({\n // TODO(burdon): Change to URI?\n name: S.optional(S.String),\n description: S.optional(S.String),\n // TODO(burdon): Change to hash of deployed content.\n // Whether source has changed since last deploy.\n changed: S.optional(S.Boolean),\n source: Ref(TextType),\n}) {}\n\n/**\n * Function deployment.\n */\n// TODO(burdon): Move to core/functions.\nexport class FunctionType extends TypedObject({\n typename: 'dxos.org/type/Function',\n version: '0.1.0',\n})({\n // TODO(burdon): Rename to id/uri?\n name: S.NonEmptyString,\n version: S.String,\n\n // Reference to a source script if it exists within ECHO.\n // TODO(burdon): Don't ref ScriptType directly (core).\n source: S.optional(Ref(ScriptType)),\n\n inputSchema: S.optional(JsonSchemaType),\n\n // Local binding to a function name.\n binding: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AST, OptionsAnnotationId, RawObject, S, TypedObject } from '@dxos/echo-schema';\n\n/**\n * Type discriminator for TriggerType.\n * Every spec has a type field of type TriggerKind that we can use to understand which type we're working with.\n * https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions\n */\nexport enum TriggerKind {\n Timer = 'timer',\n Webhook = 'webhook',\n Subscription = 'subscription',\n Email = 'email',\n}\n\n// TODO(burdon): Rename prop kind.\nconst typeLiteralAnnotations = { [AST.TitleAnnotationId]: 'Type' };\n\n/**\n * Cron timer.\n */\nconst TimerTriggerSchema = S.Struct({\n type: S.Literal(TriggerKind.Timer).annotations(typeLiteralAnnotations),\n cron: S.String.annotations({\n [AST.TitleAnnotationId]: 'Cron',\n [AST.ExamplesAnnotationId]: ['0 0 * * *'],\n }),\n}).pipe(S.mutable);\n\nexport type TimerTrigger = S.Schema.Type<typeof TimerTriggerSchema>;\n\nconst EmailTriggerSchema = S.Struct({\n type: S.Literal(TriggerKind.Email).annotations(typeLiteralAnnotations),\n}).pipe(S.mutable);\n\nexport type EmailTrigger = S.Schema.Type<typeof EmailTriggerSchema>;\n\n/**\n * Webhook.\n */\nconst WebhookTriggerSchema = S.Struct({\n type: S.Literal(TriggerKind.Webhook).annotations(typeLiteralAnnotations),\n method: S.optional(\n S.String.annotations({\n [AST.TitleAnnotationId]: 'Method',\n [OptionsAnnotationId]: ['GET', 'POST'],\n }),\n ),\n port: S.optional(\n S.Number.annotations({\n [AST.TitleAnnotationId]: 'Port',\n }),\n ),\n}).pipe(S.mutable);\n\nexport type WebhookTrigger = S.Schema.Type<typeof WebhookTriggerSchema>;\n\n// TODO(burdon): Use ECHO definition (from https://github.com/dxos/dxos/pull/8233).\nconst QuerySchema = S.Struct({\n type: S.optional(S.String.annotations({ [AST.TitleAnnotationId]: 'Type' })),\n props: S.optional(S.Record({ key: S.String, value: S.Any })),\n}).annotations({ [AST.TitleAnnotationId]: 'Query' });\n\n/**\n * Subscription.\n */\nconst SubscriptionTriggerSchema = S.Struct({\n type: S.Literal(TriggerKind.Subscription).annotations(typeLiteralAnnotations),\n // TODO(burdon): Define query DSL (from ECHO). Reconcile with Table.Query.\n filter: QuerySchema,\n options: S.optional(\n S.Struct({\n // Watch changes to object (not just creation).\n deep: S.optional(S.Boolean.annotations({ [AST.TitleAnnotationId]: 'Nested' })),\n // Debounce changes (delay in ms).\n delay: S.optional(S.Number.annotations({ [AST.TitleAnnotationId]: 'Delay' })),\n }).annotations({ [AST.TitleAnnotationId]: 'Options' }),\n ),\n}).pipe(S.mutable);\n\nexport type SubscriptionTrigger = S.Schema.Type<typeof SubscriptionTriggerSchema>;\n\n/**\n * Trigger schema (discriminated union).\n */\nexport const TriggerSchema = S.Union(\n //\n TimerTriggerSchema,\n WebhookTriggerSchema,\n SubscriptionTriggerSchema,\n EmailTriggerSchema,\n).annotations({\n [AST.TitleAnnotationId]: 'Trigger',\n});\n\nexport type TriggerType = S.Schema.Type<typeof TriggerSchema>;\n\n/**\n * Function trigger.\n */\nexport const FunctionTriggerSchema = S.Struct({\n // TODO(burdon): What type does this reference.\n function: S.optional(S.String.annotations({ [AST.TitleAnnotationId]: 'Function' })),\n\n enabled: S.optional(S.Boolean.annotations({ [AST.TitleAnnotationId]: 'Enabled' })),\n\n // TODO(burdon): Flatten entire schema.\n spec: S.optional(TriggerSchema),\n\n // TODO(burdon): Get meta from function.\n // The `meta` property is merged into the event data passed to the function.\n meta: S.optional(S.mutable(S.Record({ key: S.String, value: S.Any }))),\n});\n\nexport type FunctionTriggerType = S.Schema.Type<typeof FunctionTriggerSchema>;\n\n/**\n * Function trigger.\n */\nexport class FunctionTrigger extends TypedObject({\n typename: 'dxos.org/type/FunctionTrigger',\n version: '0.1.0',\n})(FunctionTriggerSchema.fields) {}\n\n/**\n * Function definition.\n * @deprecated (Use dxos.org/type/Function)\n */\n// TODO(burdon): Reconcile with FunctionType.\nexport class FunctionDef extends TypedObject({\n typename: 'dxos.org/type/FunctionDef',\n version: '0.1.0',\n})({\n uri: S.String,\n description: S.optional(S.String),\n route: S.String,\n handler: S.String,\n}) {}\n\n/**\n * Function manifest file.\n */\nexport const FunctionManifestSchema = S.Struct({\n functions: S.optional(S.mutable(S.Array(RawObject(FunctionDef)))),\n triggers: S.optional(S.mutable(S.Array(RawObject(FunctionTrigger)))),\n});\n\nexport type FunctionManifest = S.Schema.Type<typeof FunctionManifestSchema>;\n\nexport const FUNCTION_TYPES = [FunctionDef, FunctionTrigger];\n"],
5
+ "mappings": "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",
6
+ "names": ["import_echo_schema", "TextType", "TypedObject", "typename", "version", "content", "S", "String", "ScriptType", "name", "optional", "description", "changed", "Boolean", "source", "Ref", "FunctionType", "NonEmptyString", "inputSchema", "JsonSchemaType", "binding", "TriggerKind", "typeLiteralAnnotations", "AST", "TitleAnnotationId", "TimerTriggerSchema", "Struct", "type", "Literal", "annotations", "cron", "ExamplesAnnotationId", "pipe", "mutable", "EmailTriggerSchema", "WebhookTriggerSchema", "method", "OptionsAnnotationId", "port", "Number", "QuerySchema", "props", "Record", "key", "value", "Any", "SubscriptionTriggerSchema", "filter", "options", "deep", "delay", "TriggerSchema", "Union", "FunctionTriggerSchema", "function", "enabled", "spec", "meta", "FunctionTrigger", "fields", "FunctionDef", "uri", "route", "handler", "FunctionManifestSchema", "functions", "Array", "RawObject", "triggers", "FUNCTION_TYPES"]
7
+ }