@dxos/functions 0.8.4-main.c1de068 → 0.8.4-main.dedc0f3

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 (138) hide show
  1. package/dist/lib/browser/bundler/index.mjs +56 -38
  2. package/dist/lib/browser/bundler/index.mjs.map +3 -3
  3. package/dist/lib/browser/chunk-ANP3DFCO.mjs +623 -0
  4. package/dist/lib/browser/chunk-ANP3DFCO.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  7. package/dist/lib/browser/edge/index.mjs +22 -8
  8. package/dist/lib/browser/edge/index.mjs.map +3 -3
  9. package/dist/lib/browser/index.mjs +892 -130
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/testing/index.mjs +76 -6
  13. package/dist/lib/browser/testing/index.mjs.map +3 -3
  14. package/dist/lib/node-esm/bundler/index.mjs +55 -38
  15. package/dist/lib/node-esm/bundler/index.mjs.map +3 -3
  16. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  17. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  18. package/dist/lib/node-esm/chunk-MPKVY7ZR.mjs +625 -0
  19. package/dist/lib/node-esm/chunk-MPKVY7ZR.mjs.map +7 -0
  20. package/dist/lib/node-esm/edge/index.mjs +21 -8
  21. package/dist/lib/node-esm/edge/index.mjs.map +3 -3
  22. package/dist/lib/node-esm/index.mjs +892 -130
  23. package/dist/lib/node-esm/index.mjs.map +4 -4
  24. package/dist/lib/node-esm/meta.json +1 -1
  25. package/dist/lib/node-esm/testing/index.mjs +76 -6
  26. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  27. package/dist/types/src/bundler/bundler.d.ts +11 -12
  28. package/dist/types/src/bundler/bundler.d.ts.map +1 -1
  29. package/dist/types/src/edge/functions.d.ts +3 -2
  30. package/dist/types/src/edge/functions.d.ts.map +1 -1
  31. package/dist/types/src/errors.d.ts +77 -8
  32. package/dist/types/src/errors.d.ts.map +1 -1
  33. package/dist/types/src/examples/fib.d.ts +7 -0
  34. package/dist/types/src/examples/fib.d.ts.map +1 -0
  35. package/dist/types/src/examples/index.d.ts +4 -0
  36. package/dist/types/src/examples/index.d.ts.map +1 -0
  37. package/dist/types/src/examples/reply.d.ts +3 -0
  38. package/dist/types/src/examples/reply.d.ts.map +1 -0
  39. package/dist/types/src/examples/sleep.d.ts +5 -0
  40. package/dist/types/src/examples/sleep.d.ts.map +1 -0
  41. package/dist/types/src/executor/executor.d.ts +4 -1
  42. package/dist/types/src/executor/executor.d.ts.map +1 -1
  43. package/dist/types/src/handler.d.ts +40 -8
  44. package/dist/types/src/handler.d.ts.map +1 -1
  45. package/dist/types/src/index.d.ts +3 -1
  46. package/dist/types/src/index.d.ts.map +1 -1
  47. package/dist/types/src/schema.d.ts +6 -1
  48. package/dist/types/src/schema.d.ts.map +1 -1
  49. package/dist/types/src/services/credentials.d.ts +16 -3
  50. package/dist/types/src/services/credentials.d.ts.map +1 -1
  51. package/dist/types/src/services/database.d.ts +75 -6
  52. package/dist/types/src/services/database.d.ts.map +1 -1
  53. package/dist/types/src/services/event-logger.d.ts +65 -30
  54. package/dist/types/src/services/event-logger.d.ts.map +1 -1
  55. package/dist/types/src/services/index.d.ts +2 -1
  56. package/dist/types/src/services/index.d.ts.map +1 -1
  57. package/dist/types/src/services/local-function-execution.d.ts +25 -0
  58. package/dist/types/src/services/local-function-execution.d.ts.map +1 -0
  59. package/dist/types/src/services/queues.d.ts +21 -6
  60. package/dist/types/src/services/queues.d.ts.map +1 -1
  61. package/dist/types/src/services/remote-function-execution-service.d.ts +15 -0
  62. package/dist/types/src/services/remote-function-execution-service.d.ts.map +1 -0
  63. package/dist/types/src/services/service-container.d.ts +5 -5
  64. package/dist/types/src/services/service-container.d.ts.map +1 -1
  65. package/dist/types/src/services/service-registry.d.ts +1 -1
  66. package/dist/types/src/services/service-registry.d.ts.map +1 -1
  67. package/dist/types/src/services/tracing.d.ts +37 -5
  68. package/dist/types/src/services/tracing.d.ts.map +1 -1
  69. package/dist/types/src/testing/layer.d.ts +7 -2
  70. package/dist/types/src/testing/layer.d.ts.map +1 -1
  71. package/dist/types/src/testing/logger.d.ts +3 -3
  72. package/dist/types/src/testing/logger.d.ts.map +1 -1
  73. package/dist/types/src/testing/persist-database.test.d.ts +2 -0
  74. package/dist/types/src/testing/persist-database.test.d.ts.map +1 -0
  75. package/dist/types/src/testing/services.d.ts +2 -2
  76. package/dist/types/src/testing/services.d.ts.map +1 -1
  77. package/dist/types/src/trace.d.ts +20 -22
  78. package/dist/types/src/trace.d.ts.map +1 -1
  79. package/dist/types/src/triggers/index.d.ts +4 -0
  80. package/dist/types/src/triggers/index.d.ts.map +1 -0
  81. package/dist/types/src/triggers/input-builder.d.ts +3 -0
  82. package/dist/types/src/triggers/input-builder.d.ts.map +1 -0
  83. package/dist/types/src/triggers/invocation-tracer.d.ts +35 -0
  84. package/dist/types/src/triggers/invocation-tracer.d.ts.map +1 -0
  85. package/dist/types/src/triggers/trigger-dispatcher.d.ts +75 -0
  86. package/dist/types/src/triggers/trigger-dispatcher.d.ts.map +1 -0
  87. package/dist/types/src/triggers/trigger-dispatcher.test.d.ts +2 -0
  88. package/dist/types/src/triggers/trigger-dispatcher.test.d.ts.map +1 -0
  89. package/dist/types/src/triggers/trigger-state-store.d.ts +27 -0
  90. package/dist/types/src/triggers/trigger-state-store.d.ts.map +1 -0
  91. package/dist/types/src/types.d.ts +49 -249
  92. package/dist/types/src/types.d.ts.map +1 -1
  93. package/dist/types/src/url.d.ts +10 -6
  94. package/dist/types/src/url.d.ts.map +1 -1
  95. package/dist/types/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +39 -34
  97. package/src/bundler/bundler.test.ts +8 -9
  98. package/src/bundler/bundler.ts +32 -33
  99. package/src/edge/functions.ts +8 -5
  100. package/src/errors.ts +8 -0
  101. package/src/examples/fib.ts +30 -0
  102. package/src/examples/index.ts +7 -0
  103. package/src/examples/reply.ts +18 -0
  104. package/src/examples/sleep.ts +22 -0
  105. package/src/executor/executor.ts +9 -9
  106. package/src/handler.ts +99 -18
  107. package/src/index.ts +3 -3
  108. package/src/schema.ts +11 -0
  109. package/src/services/credentials.ts +79 -3
  110. package/src/services/database.ts +118 -18
  111. package/src/services/event-logger.ts +68 -37
  112. package/src/services/index.ts +2 -1
  113. package/src/services/local-function-execution.ts +114 -0
  114. package/src/services/queues.ts +37 -10
  115. package/src/services/remote-function-execution-service.ts +46 -0
  116. package/src/services/service-container.ts +11 -10
  117. package/src/services/service-registry.ts +5 -2
  118. package/src/services/tracing.ts +105 -7
  119. package/src/testing/layer.ts +83 -3
  120. package/src/testing/logger.ts +4 -4
  121. package/src/testing/persist-database.test.ts +87 -0
  122. package/src/testing/services.ts +4 -3
  123. package/src/trace.ts +17 -19
  124. package/src/triggers/index.ts +7 -0
  125. package/src/triggers/input-builder.ts +35 -0
  126. package/src/triggers/invocation-tracer.ts +99 -0
  127. package/src/triggers/trigger-dispatcher.test.ts +652 -0
  128. package/src/triggers/trigger-dispatcher.ts +512 -0
  129. package/src/triggers/trigger-state-store.ts +60 -0
  130. package/src/types.ts +22 -33
  131. package/src/url.ts +13 -10
  132. package/dist/lib/browser/chunk-3NGCSUEW.mjs +0 -328
  133. package/dist/lib/browser/chunk-3NGCSUEW.mjs.map +0 -7
  134. package/dist/lib/node-esm/chunk-FJ2MU7TL.mjs +0 -330
  135. package/dist/lib/node-esm/chunk-FJ2MU7TL.mjs.map +0 -7
  136. package/dist/types/src/services/function-call-service.d.ts +0 -16
  137. package/dist/types/src/services/function-call-service.d.ts.map +0 -1
  138. package/src/services/function-call-service.ts +0 -64
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/testing/services.ts", "../../../../src/testing/logger.ts", "../../../../src/testing/layer.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context } from 'effect';\n\nimport type { Space } from '@dxos/client/echo';\nimport type { EchoDatabase, QueueFactory } from '@dxos/echo-db';\nimport { assertArgument } from '@dxos/invariant';\n\nimport {\n ConfiguredCredentialsService,\n type CredentialsService,\n DatabaseService,\n type EventLogger,\n QueueService,\n ServiceContainer,\n type ServiceCredential,\n type TracingService,\n} from '../services';\nimport { consoleLogger, noopLogger } from './logger';\n\n// TODO(burdon): Factor out.\nexport type OneOf<T> = {\n [K in keyof T]: { [P in K]: T[P] } & { [P in Exclude<keyof T, K>]?: never };\n}[keyof T];\n\nexport type AiServiceProvider = 'dev' | 'edge' | 'ollama' | 'lmstudio';\n\nexport type TestServiceOptions = {\n /**\n * AI service configuration.\n */\n ai?: any;\n\n /**\n * Credentials service configuration.\n */\n credentials?: OneOf<{\n /**\n * Predefined credentials list.\n */\n services?: ServiceCredential[];\n\n /**\n * Custom credentials service.\n */\n service?: Context.Tag.Service<CredentialsService>;\n }>;\n\n /**\n * Database configuration.\n */\n db?: EchoDatabase;\n\n /**\n * Gets database and queue services from the space.\n * Exclusive with: `db`, `queues`\n */\n space?: Space;\n\n /**\n * Logging configuration.\n */\n logging?: {\n enabled?: boolean;\n logger?: Context.Tag.Service<EventLogger>;\n };\n\n /**\n * Queue service configuration.\n */\n queues?: QueueFactory;\n\n tracing?: {\n service?: Context.Tag.Service<TracingService>;\n };\n};\n\n/**\n * @deprecated\n */\nexport const createTestServices = ({\n ai,\n credentials,\n db,\n logging,\n queues,\n space,\n tracing,\n}: TestServiceOptions = {}): ServiceContainer => {\n assertArgument(!(!!space && (!!db || !!queues)), 'space can be provided only if db and queues are not');\n\n return new ServiceContainer().setServices({\n // ai: createAiService(ai),\n credentials: createCredentialsService(credentials),\n database: space || db ? DatabaseService.make(space?.db || db!) : undefined,\n eventLogger: (logging?.logger ?? logging?.enabled) ? consoleLogger : noopLogger,\n queues: space || queues ? QueueService.make(space?.queues || queues!, undefined) : undefined,\n tracing: tracing?.service,\n });\n};\n\nconst createCredentialsService = (\n credentials: TestServiceOptions['credentials'] | undefined,\n): Context.Tag.Service<CredentialsService> | undefined => {\n if (credentials?.services) {\n return new ConfiguredCredentialsService(credentials.services);\n }\n\n if (credentials?.service) {\n return credentials.service;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect, type Context } from 'effect';\n\nimport { LogLevel } from '@dxos/log';\n\nimport { type EventLogger, createEventLogger } from '../services';\n\nexport const noopLogger: Context.Tag.Service<EventLogger> = {\n log: () => Effect.succeed(undefined),\n nodeId: undefined,\n};\n\nexport const consoleLogger: Context.Tag.Service<EventLogger> = createEventLogger(LogLevel.INFO);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Context, Effect, Layer } from 'effect';\nimport type { Schema } from 'effect';\n\nimport { EchoTestBuilder } from '@dxos/echo-db/testing';\nimport type { EchoHostIndexingConfig } from '@dxos/echo-pipeline';\nimport { accuireReleaseResource } from '@dxos/effect';\n\nimport { DatabaseService, QueueService } from '../services';\n\nconst testBuilder = accuireReleaseResource(() => new EchoTestBuilder());\n\nexport type TestDatabaseOptions = {\n indexing?: Partial<EchoHostIndexingConfig>;\n types?: Schema.Schema.AnyNoContext[];\n};\n\nexport const TestDatabaseLayer = ({ indexing, types }: TestDatabaseOptions = {}) =>\n Layer.scopedContext(\n Effect.gen(function* () {\n const builder = yield* testBuilder;\n const { db, queues } = yield* Effect.promise(() => builder.createDatabase({ indexing, types }));\n return Context.mergeAll(\n Context.make(DatabaseService, DatabaseService.make(db)),\n Context.make(QueueService, QueueService.make(queues, undefined)),\n );\n }),\n );\n"],
5
- "mappings": ";;;;;;;;;;AAQA,SAASA,sBAAsB;;;ACJ/B,SAASC,cAA4B;AAErC,SAASC,gBAAgB;AAIlB,IAAMC,aAA+C;EAC1DC,KAAK,MAAMC,OAAOC,QAAQC,MAAAA;EAC1BC,QAAQD;AACV;AAEO,IAAME,gBAAkDC,kBAAkBC,SAASC,IAAI;;;ADmEvF,IAAMC,qBAAqB,CAAC,EACjCC,IACAC,aACAC,IACAC,SACAC,QACAC,OACAC,QAAO,IACe,CAAC,MAAC;AACxBC,iBAAe,EAAE,CAAC,CAACF,UAAU,CAAC,CAACH,MAAM,CAAC,CAACE,UAAU,qDAAA;AAEjD,SAAO,IAAII,iBAAAA,EAAmBC,YAAY;;IAExCR,aAAaS,yBAAyBT,WAAAA;IACtCU,UAAUN,SAASH,KAAKU,gBAAgBC,KAAKR,OAAOH,MAAMA,EAAAA,IAAOY;IACjEC,aAAcZ,SAASa,UAAUb,SAASc,UAAWC,gBAAgBC;IACrEf,QAAQC,SAASD,SAASgB,aAAaP,KAAKR,OAAOD,UAAUA,QAASU,MAAAA,IAAaA;IACnFR,SAASA,SAASe;EACpB,CAAA;AACF;AAEA,IAAMX,2BAA2B,CAC/BT,gBAAAA;AAEA,MAAIA,aAAaqB,UAAU;AACzB,WAAO,IAAIC,6BAA6BtB,YAAYqB,QAAQ;EAC9D;AAEA,MAAIrB,aAAaoB,SAAS;AACxB,WAAOpB,YAAYoB;EACrB;AACF;;;AE7GA,SAASG,SAASC,UAAAA,SAAQC,aAAa;AAGvC,SAASC,uBAAuB;AAEhC,SAASC,8BAA8B;AAIvC,IAAMC,cAAcC,uBAAuB,MAAM,IAAIC,gBAAAA,CAAAA;AAO9C,IAAMC,oBAAoB,CAAC,EAAEC,UAAUC,MAAK,IAA0B,CAAC,MAC5EC,MAAMC,cACJC,QAAOC,IAAI,aAAA;AACT,QAAMC,UAAU,OAAOV;AACvB,QAAM,EAAEW,IAAIC,OAAM,IAAK,OAAOJ,QAAOK,QAAQ,MAAMH,QAAQI,eAAe;IAAEV;IAAUC;EAAM,CAAA,CAAA;AAC5F,SAAOU,QAAQC,SACbD,QAAQE,KAAKC,iBAAiBA,gBAAgBD,KAAKN,EAAAA,CAAAA,GACnDI,QAAQE,KAAKE,cAAcA,aAAaF,KAAKL,QAAQQ,MAAAA,CAAAA,CAAAA;AAEzD,CAAA,CAAA;",
6
- "names": ["assertArgument", "Effect", "LogLevel", "noopLogger", "log", "Effect", "succeed", "undefined", "nodeId", "consoleLogger", "createEventLogger", "LogLevel", "INFO", "createTestServices", "ai", "credentials", "db", "logging", "queues", "space", "tracing", "assertArgument", "ServiceContainer", "setServices", "createCredentialsService", "database", "DatabaseService", "make", "undefined", "eventLogger", "logger", "enabled", "consoleLogger", "noopLogger", "QueueService", "service", "services", "ConfiguredCredentialsService", "Context", "Effect", "Layer", "EchoTestBuilder", "accuireReleaseResource", "testBuilder", "accuireReleaseResource", "EchoTestBuilder", "TestDatabaseLayer", "indexing", "types", "Layer", "scopedContext", "Effect", "gen", "builder", "db", "queues", "promise", "createDatabase", "Context", "mergeAll", "make", "DatabaseService", "QueueService", "undefined"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context } from 'effect';\n\nimport type { Space } from '@dxos/client/echo';\nimport type { EchoDatabase, QueueFactory } from '@dxos/echo-db';\nimport { assertArgument } from '@dxos/invariant';\n\nimport {\n type ComputeEventLogger,\n ConfiguredCredentialsService,\n type CredentialsService,\n DatabaseService,\n QueueService,\n ServiceContainer,\n type ServiceCredential,\n type TracingService,\n} from '../services';\n\nimport { consoleLogger, noopLogger } from './logger';\n\n// TODO(burdon): Factor out.\nexport type OneOf<T> = {\n [K in keyof T]: { [P in K]: T[P] } & { [P in Exclude<keyof T, K>]?: never };\n}[keyof T];\n\nexport type AiServiceProvider = 'dev' | 'edge' | 'ollama' | 'lmstudio';\n\nexport type TestServiceOptions = {\n /**\n * AI service configuration.\n */\n ai?: any;\n\n /**\n * Credentials service configuration.\n */\n credentials?: OneOf<{\n /**\n * Predefined credentials list.\n */\n services?: ServiceCredential[];\n\n /**\n * Custom credentials service.\n */\n service?: Context.Tag.Service<CredentialsService>;\n }>;\n\n /**\n * Database configuration.\n */\n db?: EchoDatabase;\n\n /**\n * Gets database and queue services from the space.\n * Exclusive with: `db`, `queues`\n */\n space?: Space;\n\n /**\n * Logging configuration.\n */\n logging?: {\n enabled?: boolean;\n logger?: Context.Tag.Service<ComputeEventLogger>;\n };\n\n /**\n * Queue service configuration.\n */\n queues?: QueueFactory;\n\n tracing?: {\n service?: Context.Tag.Service<TracingService>;\n };\n};\n\n/**\n * @deprecated\n */\nexport const createTestServices = ({\n ai,\n credentials,\n db,\n logging,\n queues,\n space,\n tracing,\n}: TestServiceOptions = {}): ServiceContainer => {\n assertArgument(!(!!space && (!!db || !!queues)), 'space', 'space can be provided only if db and queues are not');\n\n return new ServiceContainer().setServices({\n // ai: createAiService(ai),\n credentials: createCredentialsService(credentials),\n database: space || db ? DatabaseService.make(space?.db || db!) : undefined,\n eventLogger: (logging?.logger ?? logging?.enabled) ? consoleLogger : noopLogger,\n queues: space || queues ? QueueService.make(space?.queues || queues!, undefined) : undefined,\n tracing: tracing?.service,\n });\n};\n\nconst createCredentialsService = (\n credentials: TestServiceOptions['credentials'] | undefined,\n): Context.Tag.Service<CredentialsService> | undefined => {\n if (credentials?.services) {\n return new ConfiguredCredentialsService(credentials.services);\n }\n\n if (credentials?.service) {\n return credentials.service;\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Context, Effect } from 'effect';\n\nimport { LogLevel } from '@dxos/log';\n\nimport { type ComputeEventLogger, createEventLogger } from '../services';\n\nexport const noopLogger: Context.Tag.Service<ComputeEventLogger> = {\n log: () => Effect.succeed(undefined),\n nodeId: undefined,\n};\n\nexport const consoleLogger: Context.Tag.Service<ComputeEventLogger> = createEventLogger(LogLevel.INFO);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type { Schema } from 'effect';\nimport { Context, Effect, Layer } from 'effect';\n\nimport type { EchoDatabaseImpl, QueueFactory } from '@dxos/echo-db';\nimport { EchoTestBuilder } from '@dxos/echo-db/testing';\nimport type { EchoHostIndexingConfig } from '@dxos/echo-pipeline';\nimport { accuireReleaseResource } from '@dxos/effect';\nimport { PublicKey } from '@dxos/keys';\nimport type { LevelDB } from '@dxos/kv-store';\nimport { createTestLevel } from '@dxos/kv-store/testing';\nimport { log } from '@dxos/log';\n\nimport { DatabaseService, QueueService } from '../services';\n\nconst testBuilder = accuireReleaseResource(() => new EchoTestBuilder());\n\nexport const testStoragePath = ({ name = PublicKey.random().toHex() }: { name?: string }) => {\n return `/tmp/dxos-${name}`;\n};\n\nexport type TestDatabaseOptions = {\n indexing?: Partial<EchoHostIndexingConfig>;\n types?: Schema.Schema.AnyNoContext[];\n storagePath?: string;\n onInit?: () => Effect.Effect<void, never, DatabaseService | QueueService>;\n};\n\nexport const TestDatabaseLayer = ({ indexing, types, storagePath, onInit }: TestDatabaseOptions = {}) =>\n Layer.scopedContext(\n Effect.gen(function* () {\n const builder = yield* testBuilder;\n\n let kv: LevelDB | undefined;\n if (storagePath) {\n kv = createTestLevel(storagePath);\n yield* Effect.promise(() => kv!.open());\n // const keyCount = yield* Effect.promise(async () => (await kv!.iterator({ values: false }).all()).length);\n // log.info('opened test db', { storagePath, keyCount });\n }\n const peer = yield* Effect.promise(() => builder.createPeer({ indexing, types, kv }));\n\n let db: EchoDatabaseImpl | undefined;\n let queues: QueueFactory | undefined;\n\n if (storagePath) {\n const testMetadata = yield* Effect.promise(async () => {\n try {\n return await kv!.get('test-metadata', { valueEncoding: 'json' });\n } catch (e) {\n if ((e as any).code === 'LEVEL_NOT_FOUND') {\n return undefined;\n }\n throw e;\n }\n });\n log('starting persistant test db', { storagePath, testMetadata });\n if (!testMetadata) {\n const key = PublicKey.random();\n db = yield* Effect.promise(() => peer.createDatabase(key));\n queues = peer.client.constructQueueFactory(db.spaceId);\n\n yield* Effect.promise(() =>\n kv!.put('test-metadata', { key: key.toHex(), rootUrl: db!.rootUrl }, { valueEncoding: 'json' }),\n );\n\n if (onInit) {\n yield* onInit().pipe(\n Effect.provideService(DatabaseService, DatabaseService.make(db)),\n Effect.provideService(QueueService, QueueService.make(queues, undefined)),\n );\n }\n } else {\n const key = PublicKey.from((testMetadata as any).key);\n const rootUrl = (testMetadata as any).rootUrl;\n db = yield* Effect.promise(() => peer.openDatabase(key, rootUrl));\n queues = peer.client.constructQueueFactory(db.spaceId);\n }\n } else {\n db = yield* Effect.promise(() => peer.createDatabase());\n queues = peer.client.constructQueueFactory(db.spaceId);\n if (onInit) {\n yield* onInit().pipe(\n Effect.provideService(DatabaseService, DatabaseService.make(db)),\n Effect.provideService(QueueService, QueueService.make(queues, undefined)),\n );\n }\n }\n\n yield* Effect.addFinalizer(() =>\n Effect.promise(async () => {\n if (kv) {\n // {\n // const keyCount = (await kv.iterator({ values: false }).all()).length;\n // log.info('closing persistant test db', { storagePath, keyCount });\n // }\n\n await kv.close();\n }\n }),\n );\n\n return Context.mergeAll(\n Context.make(DatabaseService, DatabaseService.make(db)),\n Context.make(QueueService, QueueService.make(queues, undefined)),\n );\n }),\n );\n"],
5
+ "mappings": "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",
6
+ "names": ["assertArgument", "Effect", "LogLevel", "noopLogger", "log", "Effect", "succeed", "undefined", "nodeId", "consoleLogger", "createEventLogger", "LogLevel", "INFO", "createTestServices", "ai", "credentials", "db", "logging", "queues", "space", "tracing", "assertArgument", "ServiceContainer", "setServices", "createCredentialsService", "database", "DatabaseService", "make", "undefined", "eventLogger", "logger", "enabled", "consoleLogger", "noopLogger", "QueueService", "service", "services", "ConfiguredCredentialsService", "Context", "Effect", "Layer", "EchoTestBuilder", "accuireReleaseResource", "PublicKey", "createTestLevel", "log", "testBuilder", "accuireReleaseResource", "EchoTestBuilder", "testStoragePath", "name", "PublicKey", "random", "toHex", "TestDatabaseLayer", "indexing", "types", "storagePath", "onInit", "Layer", "scopedContext", "Effect", "gen", "builder", "kv", "createTestLevel", "promise", "open", "peer", "createPeer", "db", "queues", "testMetadata", "get", "valueEncoding", "e", "code", "undefined", "log", "key", "createDatabase", "client", "constructQueueFactory", "spaceId", "put", "rootUrl", "pipe", "provideService", "DatabaseService", "make", "QueueService", "from", "openDatabase", "addFinalizer", "close", "Context", "mergeAll"]
7
7
  }
@@ -5,23 +5,22 @@ export type Import = {
5
5
  namedImports: string[];
6
6
  };
7
7
  export type BundleOptions = {
8
- /**
9
- * Path to the source file on the local file system.
10
- * If provided, the path will be used instead of the `source` code.
11
- */
12
- path?: string;
13
8
  /**
14
9
  * Source code to bundle.
15
- * Required if `path` is not provided.
16
10
  */
17
- source?: string;
11
+ source: string;
18
12
  };
19
13
  export type BundleResult = {
20
14
  timestamp: number;
21
- sourceHash?: Buffer;
22
- imports?: Import[];
23
- bundle?: string;
24
- error?: any;
15
+ sourceHash: Buffer;
16
+ error: unknown;
17
+ } | {
18
+ timestamp: number;
19
+ sourceHash: Buffer;
20
+ imports: Import[];
21
+ entryPoint: string;
22
+ asset: Uint8Array;
23
+ bundle: string;
25
24
  };
26
25
  export type BundlerOptions = {
27
26
  platform: BuildOptions['platform'];
@@ -37,7 +36,7 @@ export declare const initializeBundler: (options: {
37
36
  export declare class Bundler {
38
37
  private readonly _options;
39
38
  constructor(_options: BundlerOptions);
40
- bundle({ path, source }: BundleOptions): Promise<BundleResult>;
39
+ bundle({ source }: BundleOptions): Promise<BundleResult>;
41
40
  analyzeImports(result: BuildResult): Import[];
42
41
  analyzeSourceFileImports(code: string): {
43
42
  defaultImportName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../src/bundler/bundler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAkC,KAAK,WAAW,EAAe,MAAM,cAAc,CAAC;AAOhH,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAU,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,kBAInE,CAAC;AAEF;;GAEG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/C,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAwFpE,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;IA2B7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;CAaJ"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../src/bundler/bundler.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAA+C,MAAM,cAAc,CAAC;AAOhH,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB,GACD;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAU,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,kBAInE,CAAC;AAEF;;GAEG;AACH,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE/C,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyF9D,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE;IA0B7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;QACtC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;CAaJ"}
@@ -4,13 +4,14 @@ import { type PublicKey } from '@dxos/keys';
4
4
  import { type UploadFunctionResponseBody } from '@dxos/protocols';
5
5
  export type UploadWorkerArgs = {
6
6
  client: Client;
7
- source: string;
8
7
  version: string;
9
8
  name?: string;
10
9
  functionId?: string;
11
10
  ownerPublicKey: PublicKey;
11
+ entryPoint: string;
12
+ assets: Record<string, Uint8Array>;
12
13
  };
13
- export declare const uploadWorkerFunction: ({ client, version, source, name, functionId, ownerPublicKey, }: UploadWorkerArgs) => Promise<UploadFunctionResponseBody>;
14
+ export declare const uploadWorkerFunction: ({ client, version, name, functionId, ownerPublicKey, entryPoint, assets, }: UploadWorkerArgs) => Promise<UploadFunctionResponseBody>;
14
15
  export declare const incrementSemverPatch: (version: string) => string;
15
16
  export declare const publicKeyToDid: (key: PublicKey) => DID;
16
17
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/edge/functions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,gEAOxC,gBAAgB,KAAG,OAAO,CAAC,0BAA0B,CAqBvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MAKtD,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,KAAG,GAE/C,CAAC"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../../src/edge/functions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,4EAQxC,gBAAgB,KAAG,OAAO,CAAC,0BAA0B,CAsBvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,MAAM,KAAG,MAKtD,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,KAAK,SAAS,KAAG,GAE/C,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { BaseError } from '@dxos/errors';
2
2
  declare const ServiceNotAvailableError_base: {
3
3
  new (message: string, options?: import("@dxos/errors").BaseErrorOptions): {
4
- "__#1@#code": "SERVICE_NOT_AVAILABLE";
5
- "__#1@#context": Record<string, unknown>;
4
+ #code: "SERVICE_NOT_AVAILABLE";
5
+ #context: Record<string, unknown>;
6
6
  readonly name: "SERVICE_NOT_AVAILABLE";
7
7
  readonly code: "SERVICE_NOT_AVAILABLE";
8
8
  readonly _tag: "SERVICE_NOT_AVAILABLE";
@@ -14,8 +14,8 @@ declare const ServiceNotAvailableError_base: {
14
14
  code: "SERVICE_NOT_AVAILABLE";
15
15
  is(error: unknown): error is BaseError;
16
16
  wrap(message: string, options?: Omit<import("@dxos/errors").BaseErrorOptions, "cause">): (error: unknown) => {
17
- "__#1@#code": "SERVICE_NOT_AVAILABLE";
18
- "__#1@#context": Record<string, unknown>;
17
+ #code: "SERVICE_NOT_AVAILABLE";
18
+ #context: Record<string, unknown>;
19
19
  readonly name: "SERVICE_NOT_AVAILABLE";
20
20
  readonly code: "SERVICE_NOT_AVAILABLE";
21
21
  readonly _tag: "SERVICE_NOT_AVAILABLE";
@@ -25,6 +25,7 @@ declare const ServiceNotAvailableError_base: {
25
25
  cause?: unknown;
26
26
  };
27
27
  extend<Code extends string>(code: Code): any;
28
+ isError(error: unknown): error is Error;
28
29
  captureStackTrace(targetObject: object, constructorOpt?: Function): void;
29
30
  prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
30
31
  stackTraceLimit: number;
@@ -32,10 +33,44 @@ declare const ServiceNotAvailableError_base: {
32
33
  export declare class ServiceNotAvailableError extends ServiceNotAvailableError_base {
33
34
  constructor(serviceName: string);
34
35
  }
36
+ declare const FunctionNotFoundError_base: {
37
+ new (message: string, options?: import("@dxos/errors").BaseErrorOptions): {
38
+ #code: "FUNCTION_NOT_FOUND";
39
+ #context: Record<string, unknown>;
40
+ readonly name: "FUNCTION_NOT_FOUND";
41
+ readonly code: "FUNCTION_NOT_FOUND";
42
+ readonly _tag: "FUNCTION_NOT_FOUND";
43
+ readonly context: Record<string, unknown>;
44
+ message: string;
45
+ stack?: string;
46
+ cause?: unknown;
47
+ };
48
+ code: "FUNCTION_NOT_FOUND";
49
+ is(error: unknown): error is BaseError;
50
+ wrap(message: string, options?: Omit<import("@dxos/errors").BaseErrorOptions, "cause">): (error: unknown) => {
51
+ #code: "FUNCTION_NOT_FOUND";
52
+ #context: Record<string, unknown>;
53
+ readonly name: "FUNCTION_NOT_FOUND";
54
+ readonly code: "FUNCTION_NOT_FOUND";
55
+ readonly _tag: "FUNCTION_NOT_FOUND";
56
+ readonly context: Record<string, unknown>;
57
+ message: string;
58
+ stack?: string;
59
+ cause?: unknown;
60
+ };
61
+ extend<Code extends string>(code: Code): any;
62
+ isError(error: unknown): error is Error;
63
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
64
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
65
+ stackTraceLimit: number;
66
+ };
67
+ export declare class FunctionNotFoundError extends FunctionNotFoundError_base {
68
+ constructor(functionKey: string);
69
+ }
35
70
  declare const FunctionError_base: {
36
71
  new (message: string, options?: import("@dxos/errors").BaseErrorOptions): {
37
- "__#1@#code": "FUNCTION_ERROR";
38
- "__#1@#context": Record<string, unknown>;
72
+ #code: "FUNCTION_ERROR";
73
+ #context: Record<string, unknown>;
39
74
  readonly name: "FUNCTION_ERROR";
40
75
  readonly code: "FUNCTION_ERROR";
41
76
  readonly _tag: "FUNCTION_ERROR";
@@ -47,8 +82,8 @@ declare const FunctionError_base: {
47
82
  code: "FUNCTION_ERROR";
48
83
  is(error: unknown): error is BaseError;
49
84
  wrap(message: string, options?: Omit<import("@dxos/errors").BaseErrorOptions, "cause">): (error: unknown) => {
50
- "__#1@#code": "FUNCTION_ERROR";
51
- "__#1@#context": Record<string, unknown>;
85
+ #code: "FUNCTION_ERROR";
86
+ #context: Record<string, unknown>;
52
87
  readonly name: "FUNCTION_ERROR";
53
88
  readonly code: "FUNCTION_ERROR";
54
89
  readonly _tag: "FUNCTION_ERROR";
@@ -58,11 +93,45 @@ declare const FunctionError_base: {
58
93
  cause?: unknown;
59
94
  };
60
95
  extend<Code extends string>(code: Code): any;
96
+ isError(error: unknown): error is Error;
61
97
  captureStackTrace(targetObject: object, constructorOpt?: Function): void;
62
98
  prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
63
99
  stackTraceLimit: number;
64
100
  };
65
101
  export declare class FunctionError extends FunctionError_base {
66
102
  }
103
+ declare const TriggerStateNotFoundError_base: {
104
+ new (message: string, options?: import("@dxos/errors").BaseErrorOptions): {
105
+ #code: "TRIGGER_STATE_NOT_FOUND";
106
+ #context: Record<string, unknown>;
107
+ readonly name: "TRIGGER_STATE_NOT_FOUND";
108
+ readonly code: "TRIGGER_STATE_NOT_FOUND";
109
+ readonly _tag: "TRIGGER_STATE_NOT_FOUND";
110
+ readonly context: Record<string, unknown>;
111
+ message: string;
112
+ stack?: string;
113
+ cause?: unknown;
114
+ };
115
+ code: "TRIGGER_STATE_NOT_FOUND";
116
+ is(error: unknown): error is BaseError;
117
+ wrap(message: string, options?: Omit<import("@dxos/errors").BaseErrorOptions, "cause">): (error: unknown) => {
118
+ #code: "TRIGGER_STATE_NOT_FOUND";
119
+ #context: Record<string, unknown>;
120
+ readonly name: "TRIGGER_STATE_NOT_FOUND";
121
+ readonly code: "TRIGGER_STATE_NOT_FOUND";
122
+ readonly _tag: "TRIGGER_STATE_NOT_FOUND";
123
+ readonly context: Record<string, unknown>;
124
+ message: string;
125
+ stack?: string;
126
+ cause?: unknown;
127
+ };
128
+ extend<Code extends string>(code: Code): any;
129
+ isError(error: unknown): error is Error;
130
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
131
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
132
+ stackTraceLimit: number;
133
+ };
134
+ export declare class TriggerStateNotFoundError extends TriggerStateNotFoundError_base {
135
+ }
67
136
  export {};
68
137
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,qBAAa,wBAAyB,SAAQ,6BAAyC;gBACzE,WAAW,EAAE,MAAM;CAGhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,aAAc,SAAQ,kBAAkC;CAAG"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzC,qBAAa,wBAAyB,SAAQ,6BAAyC;gBACzE,WAAW,EAAE,MAAM;CAGhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,qBAAsB,SAAQ,0BAAsC;gBACnE,WAAW,EAAE,MAAM;CAGhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,aAAc,SAAQ,kBAAkC;CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAExE,qBAAa,yBAA0B,SAAQ,8BAA2C;CAAG"}
@@ -0,0 +1,7 @@
1
+ declare const _default: import("..").FunctionDefinition<{
2
+ readonly iterations?: number | undefined;
3
+ }, {
4
+ readonly result: string;
5
+ }>;
6
+ export default _default;
7
+ //# sourceMappingURL=fib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fib.d.ts","sourceRoot":"","sources":["../../../../src/examples/fib.ts"],"names":[],"mappings":";;;;;AAQA,wBAqBG"}
@@ -0,0 +1,4 @@
1
+ export { default as fib } from './fib';
2
+ export { default as reply } from './reply';
3
+ export { default as sleep } from './sleep';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/examples/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").FunctionDefinition<any, any>;
2
+ export default _default;
3
+ //# sourceMappingURL=reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../../src/examples/reply.ts"],"names":[],"mappings":";AAQA,wBASG"}
@@ -0,0 +1,5 @@
1
+ declare const _default: import("..").FunctionDefinition<{
2
+ readonly duration?: number | undefined;
3
+ }, void>;
4
+ export default _default;
5
+ //# sourceMappingURL=sleep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../src/examples/sleep.ts"],"names":[],"mappings":";;;AAQA,wBAaG"}
@@ -3,6 +3,9 @@ import type { ServiceContainer } from '../services';
3
3
  export declare class FunctionExecutor {
4
4
  private readonly _services;
5
5
  constructor(_services: ServiceContainer);
6
- invoke<F extends FunctionDefinition<any, any>>(fnDef: F, input: F extends FunctionDefinition<infer I, infer _O> ? I : never): Promise<F extends FunctionDefinition<infer _I, infer O> ? O : never>;
6
+ /**
7
+ * Invoke function.
8
+ */
9
+ invoke<F extends FunctionDefinition<any, any>>(functionDef: F, input: F extends FunctionDefinition<infer I, infer _O> ? I : never): Promise<F extends FunctionDefinition<infer _I, infer O> ? O : never>;
7
10
  }
8
11
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/executor/executor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,aAAa,CAAC;AAE9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAGlD,MAAM,CAAC,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GACjE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CAkCxE"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/executor/executor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,aAAa,CAAC;AAE9D,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,gBAAgB;IAExD;;OAEG;IAEG,MAAM,CAAC,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,WAAW,EAAE,CAAC,EACd,KAAK,EAAE,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GACjE,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CA+BxE"}
@@ -1,10 +1,10 @@
1
- import { Schema, type Context, type Effect } from 'effect';
2
- import { type AiServiceClient } from '@dxos/ai';
3
- import type { EchoDatabase } from '@dxos/echo-db';
1
+ import { type Context, Effect, Schema, type Types } from 'effect';
2
+ import { type EchoDatabase } from '@dxos/echo-db';
4
3
  import { type HasId } from '@dxos/echo-schema';
5
- import { type SpaceId, type DXN } from '@dxos/keys';
4
+ import { type DXN, type SpaceId } from '@dxos/keys';
6
5
  import { type QueryResult } from '@dxos/protocols';
7
- import type { Services } from './services';
6
+ import { FunctionType } from './schema';
7
+ import { type Services } from './services';
8
8
  /**
9
9
  * Function handler.
10
10
  */
@@ -28,7 +28,6 @@ export interface FunctionContext {
28
28
  * Space from which the function was invoked.
29
29
  */
30
30
  space: SpaceAPI | undefined;
31
- ai: AiServiceClient;
32
31
  /**
33
32
  * Resolves a service available to the function.
34
33
  * @throws if the service is not available.
@@ -51,12 +50,45 @@ export interface SpaceAPI {
51
50
  get db(): EchoDatabase;
52
51
  get queues(): QueuesAPI;
53
52
  }
54
- export type FunctionDefinition<T = {}, O = any> = {
53
+ declare const typeId: unique symbol;
54
+ export type FunctionDefinition<T = any, O = any> = {
55
+ [typeId]: true;
56
+ key: string;
55
57
  name: string;
56
58
  description?: string;
57
59
  inputSchema: Schema.Schema<T, any>;
58
60
  outputSchema?: Schema.Schema<O, any>;
59
61
  handler: FunctionHandler<T, O>;
60
62
  };
61
- export declare const defineFunction: <T, O>({ name, description, inputSchema, outputSchema, handler, }: FunctionDefinition<T, O>) => FunctionDefinition<T, O>;
63
+ export declare const defineFunction: {
64
+ <I, O>(params: {
65
+ key?: string;
66
+ name: string;
67
+ description?: string;
68
+ inputSchema: Schema.Schema<I, any>;
69
+ outputSchema?: Schema.Schema<O, any>;
70
+ handler: Types.NoInfer<FunctionHandler<I, O>>;
71
+ }): FunctionDefinition<I, O>;
72
+ };
73
+ export declare const FunctionDefinition: {
74
+ make: <I, O>(params: {
75
+ key?: string;
76
+ name: string;
77
+ description?: string;
78
+ inputSchema: Schema.Schema<I, any>;
79
+ outputSchema?: Schema.Schema<O, any>;
80
+ handler: Types.NoInfer<FunctionHandler<I, O>>;
81
+ }) => FunctionDefinition<I, O>;
82
+ isFunction: (value: unknown) => value is FunctionDefinition.Any;
83
+ serialize: (functionDef: FunctionDefinition.Any) => FunctionType;
84
+ deserialize: (functionObj: FunctionType) => FunctionDefinition.Any;
85
+ };
86
+ export declare namespace FunctionDefinition {
87
+ type Any = FunctionDefinition<any, any>;
88
+ type Input<T extends FunctionDefinition> = T extends FunctionDefinition<infer I, any> ? I : never;
89
+ type Output<T extends FunctionDefinition> = T extends FunctionDefinition<any, infer O> ? O : never;
90
+ }
91
+ export declare const serializeFunction: (functionDef: FunctionDefinition<any, any>) => FunctionType;
92
+ export declare const deserializeFunction: (functionObj: FunctionType) => FunctionDefinition<unknown, unknown>;
93
+ export {};
62
94
  //# sourceMappingURL=handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAChE;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,IAAI,EAAE,KAAK,CAAC;CACb,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B,EAAE,EAAE,eAAe,CAAC;IAEpB;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhF,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAEhC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9D;AAQD,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,YAAY,CAAC;IAGvB,IAAI,MAAM,IAAI,SAAS,CAAC;CACzB;AAOD,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAChC,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,4DAMlC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAepD,CAAC"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGlE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAO3C;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;IAChE;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,IAAI,EAAE,KAAK,CAAC;CACb,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhF,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,iBAAiB;IAEhC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9D;AAQD,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,YAAY,CAAC;IAGvB,IAAI,MAAM,IAAI,SAAS,CAAC;CACzB;AAOD,QAAA,MAAM,MAAM,eAAmD,CAAC;AAEhE,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI;IACjD,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;QAEb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/C,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CA+C9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;WAzD5B,CAAC,EAAE,CAAC,UAAU;QAEb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC/C,KAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;wBAmDR,OAAO,KAAG,KAAK,IAAI,kBAAkB,CAAC,GAAG;6BAGpC,kBAAkB,CAAC,GAAG,KAAG,YAAY;+BAInC,YAAY,KAAG,kBAAkB,CAAC,GAAG;CAIjE,CAAC;AACF,MAAM,CAAC,OAAO,WAAW,kBAAkB,CAAC;IAC1C,KAAY,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/C,KAAY,KAAK,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzG,KAAY,MAAM,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,SAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CAC3G;AAED,eAAO,MAAM,iBAAiB,GAAI,aAAa,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAG,YAQ1E,CAAC;AAEL,eAAO,MAAM,mBAAmB,GAAI,aAAa,YAAY,KAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAWlG,CAAC"}
@@ -1,9 +1,11 @@
1
+ export * from './errors';
1
2
  export * from './handler';
2
3
  export * from './schema';
3
4
  export * from './trace';
4
5
  export * from './types';
5
6
  export * from './url';
7
+ export * from './triggers';
6
8
  export * from './services';
7
9
  export * from './executor';
8
- export * from './errors';
10
+ export * as exampleFunctions from './examples';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC"}
@@ -18,12 +18,17 @@ export interface ScriptType extends Schema.Schema.Type<typeof ScriptType> {
18
18
  * Function deployment.
19
19
  */
20
20
  export declare const FunctionType: Type.obj<Schema.Struct<{
21
+ /**
22
+ * Global registry ID.
23
+ * NOTE: The `key` property refers to the original registry entry.
24
+ */
25
+ key: Schema.optional<typeof Schema.String>;
21
26
  name: typeof Schema.NonEmptyString;
22
27
  version: typeof Schema.String;
23
28
  description: Schema.optional<typeof Schema.String>;
24
29
  source: Schema.optional<import("@dxos/echo-schema").Ref$<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
25
- description?: string | undefined;
26
30
  name?: string | undefined;
31
+ description?: string | undefined;
27
32
  changed?: boolean | undefined;
28
33
  source: Ref<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
29
34
  content: string;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAmC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGzE;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;GAatB,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;GAsBxB,CAAC;AACF,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAmC,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGzE;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;GAatB,CAAC;AAEF,MAAM,WAAW,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC;CAAG;AAE5E;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;OAGG;;;;;;;;;;;;;;;;GA6BJ,CAAC;AACF,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG"}
@@ -1,12 +1,14 @@
1
- import { Context, Effect } from 'effect';
2
- type CredentialQuery = {
1
+ import { HttpClient } from '@effect/platform';
2
+ import { type Config, Context, Effect, Layer, Redacted } from 'effect';
3
+ import { DatabaseService } from './database';
4
+ export type CredentialQuery = {
3
5
  service?: string;
4
6
  };
5
7
  export type ServiceCredential = {
6
8
  service: string;
7
9
  apiKey?: string;
8
10
  };
9
- declare const CredentialsService_base: Context.TagClass<CredentialsService, "CredentialsService", {
11
+ declare const CredentialsService_base: Context.TagClass<CredentialsService, "@dxos/functions/CredentialsService", {
10
12
  /**
11
13
  * Query all.
12
14
  */
@@ -19,6 +21,13 @@ declare const CredentialsService_base: Context.TagClass<CredentialsService, "Cre
19
21
  }>;
20
22
  export declare class CredentialsService extends CredentialsService_base {
21
23
  static getCredential: (query: CredentialQuery) => Effect.Effect<ServiceCredential, never, CredentialsService>;
24
+ static getApiKey: (query: CredentialQuery) => Effect.Effect<Redacted.Redacted<string>, never, CredentialsService>;
25
+ static configuredLayer: (credentials: ServiceCredential[]) => Layer.Layer<CredentialsService, never, never>;
26
+ static layerConfig: (credentials: {
27
+ service: string;
28
+ apiKey: Config.Config<Redacted.Redacted<string>>;
29
+ }[]) => Layer.Layer<CredentialsService, import("effect/ConfigError").ConfigError, never>;
30
+ static layerFromDatabase: () => Layer.Layer<CredentialsService, never, DatabaseService>;
22
31
  }
23
32
  export declare class ConfiguredCredentialsService implements Context.Tag.Service<CredentialsService> {
24
33
  private readonly credentials;
@@ -27,5 +36,9 @@ export declare class ConfiguredCredentialsService implements Context.Tag.Service
27
36
  queryCredentials(query: CredentialQuery): Promise<ServiceCredential[]>;
28
37
  getCredential(query: CredentialQuery): Promise<ServiceCredential>;
29
38
  }
39
+ /**
40
+ * Maps the request to include the API key from the credential.
41
+ */
42
+ export declare const withAuthorization: (query: CredentialQuery, kind?: "Bearer" | "Basic") => <E, R>(self: HttpClient.HttpClient.With<E, R>) => HttpClient.HttpClient.With<E, CredentialsService | R>;
30
43
  export {};
31
44
  //# sourceMappingURL=credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/services/credentials.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEzC,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;;IAKE;;OAEG;sBACe,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE1E;;;OAGG;mBACY,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC;;AAZzE,qBAAa,kBAAmB,SAAQ,uBAcrC;IACD,MAAM,CAAC,aAAa,GAAI,OAAO,eAAe,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAIvG;CACN;AAED,qBAAa,4BAA6B,YAAW,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,GAAE,iBAAiB,EAAO;IAElE,cAAc,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,4BAA4B;IAKxE,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAItE,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAOxE"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../../src/services/credentials.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAIF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;;IAKE;;OAEG;sBACe,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAE1E;;;OAGG;mBACY,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,iBAAiB,CAAC;;AAZzE,qBAAa,kBAAmB,SAAQ,uBAcrC;IACD,MAAM,CAAC,aAAa,GAAI,OAAO,eAAe,KAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAIvG;IAEL,MAAM,CAAC,SAAS,GAAI,OAAO,eAAe,KAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAO3G;IAEL,MAAM,CAAC,eAAe,GAAI,aAAa,iBAAiB,EAAE,mDACyB;IAEnF,MAAM,CAAC,WAAW,GAAI,aAAa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,EAAE,sFAetG;IAEJ,MAAM,CAAC,iBAAiB,gEA2BpB;CACL;AAED,qBAAa,4BAA6B,YAAW,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC9E,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,GAAE,iBAAiB,EAAO;IAElE,cAAc,CAAC,WAAW,EAAE,iBAAiB,EAAE,GAAG,4BAA4B;IAKxE,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAItE,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAOxE;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,eAAe,EAAE,OAAO,QAAQ,GAAG,OAAO,4GAOhF,CAAC"}
@@ -1,15 +1,48 @@
1
- import { Context, Effect, Layer } from 'effect';
2
- import type { Filter, Live, Obj, Query, Ref, Relation } from '@dxos/echo';
3
- import type { EchoDatabase, OneShotQueryResult, QueryResult } from '@dxos/echo-db';
1
+ import { Context, Effect, Layer, Option, type Schema } from 'effect';
2
+ import { type Filter, type Live, Obj, type Query, type Ref, type Relation, type Type } from '@dxos/echo';
3
+ import type { EchoDatabase, FlushOptions, OneShotQueryResult, QueryResult, SchemaRegistryQuery } from '@dxos/echo-db';
4
+ import type { SchemaRegistryPreparedQuery } from '@dxos/echo-db';
5
+ import type { EchoSchema } from '@dxos/echo-schema';
6
+ import { BaseError } from '@dxos/errors';
4
7
  import type { DXN } from '@dxos/keys';
5
- declare const DatabaseService_base: Context.TagClass<DatabaseService, "DatabaseService", {
8
+ declare const DatabaseService_base: Context.TagClass<DatabaseService, "@dxos/functions/DatabaseService", {
6
9
  readonly db: EchoDatabase;
7
10
  }>;
8
11
  export declare class DatabaseService extends DatabaseService_base {
9
12
  static notAvailable: Layer.Layer<DatabaseService, never, never>;
10
13
  static make: (db: EchoDatabase) => Context.Tag.Service<DatabaseService>;
11
- static resolve: (dxn: DXN) => Effect.Effect<Obj.Any | Relation.Any, Error, DatabaseService>;
12
- static loadRef: <T>(ref: Ref.Ref<T>) => Effect.Effect<T, never, never>;
14
+ static layer: (db: EchoDatabase) => Layer.Layer<DatabaseService>;
15
+ /**
16
+ * Resolves an object by its DXN.
17
+ */
18
+ static resolve: {
19
+ (dxn: DXN): Effect.Effect<Obj.Any | Relation.Any, never, DatabaseService>;
20
+ <S extends Type.Obj.Any | Type.Relation.Any>(dxn: DXN, schema: S): Effect.Effect<Schema.Schema.Type<S>, ObjectNotFoundError, DatabaseService>;
21
+ };
22
+ /**
23
+ * Loads an object reference.
24
+ */
25
+ static load: <T>(ref: Ref.Ref<T>) => Effect.Effect<T, ObjectNotFoundError, never>;
26
+ /**
27
+ * Loads an object reference option.
28
+ */
29
+ static loadOption: <T>(ref: Ref.Ref<T>) => Effect.Effect<Option.Option<T>, never, never>;
30
+ /**
31
+ * @link EchoDatabase.add
32
+ */
33
+ static add: <T extends Obj.Any | Relation.Any>(obj: T) => Effect.Effect<T, never, DatabaseService>;
34
+ /**
35
+ * @link EchoDatabase.remove
36
+ */
37
+ static remove: <T extends Obj.Any | Relation.Any>(obj: T) => Effect.Effect<void, never, DatabaseService>;
38
+ /**
39
+ * @link EchoDatabase.flush
40
+ */
41
+ static flush: (opts?: FlushOptions) => Effect.Effect<void, never, DatabaseService>;
42
+ /**
43
+ * @link EchoDatabase.getObjectById
44
+ */
45
+ static getObjectById: <T extends Obj.Any | Relation.Any>(id: string) => Effect.Effect<Live<T> | undefined, never, DatabaseService>;
13
46
  /**
14
47
  * Creates a `QueryResult` object that can be subscribed to.
15
48
  */
@@ -24,6 +57,42 @@ export declare class DatabaseService extends DatabaseService_base {
24
57
  <Q extends Query.Any>(query: Q): Effect.Effect<OneShotQueryResult<Live<Query.Type<Q>>>, never, DatabaseService>;
25
58
  <F extends Filter.Any>(filter: F): Effect.Effect<OneShotQueryResult<Live<Filter.Type<F>>>, never, DatabaseService>;
26
59
  };
60
+ static schemaQuery: <Q extends SchemaRegistryQuery>(query: Q) => Effect.Effect<SchemaRegistryPreparedQuery<EchoSchema>, never, DatabaseService>;
61
+ static runSchemaQuery: <Q extends SchemaRegistryQuery>(query: Q) => Effect.Effect<EchoSchema[], never, DatabaseService>;
62
+ }
63
+ declare const ObjectNotFoundError_base: {
64
+ new (message: string, options?: import("@dxos/errors").BaseErrorOptions): {
65
+ #code: "OBJECT_NOT_FOUND";
66
+ #context: Record<string, unknown>;
67
+ readonly name: "OBJECT_NOT_FOUND";
68
+ readonly code: "OBJECT_NOT_FOUND";
69
+ readonly _tag: "OBJECT_NOT_FOUND";
70
+ readonly context: Record<string, unknown>;
71
+ message: string;
72
+ stack?: string;
73
+ cause?: unknown;
74
+ };
75
+ code: "OBJECT_NOT_FOUND";
76
+ is(error: unknown): error is BaseError;
77
+ wrap(message: string, options?: Omit<import("@dxos/errors").BaseErrorOptions, "cause">): (error: unknown) => {
78
+ #code: "OBJECT_NOT_FOUND";
79
+ #context: Record<string, unknown>;
80
+ readonly name: "OBJECT_NOT_FOUND";
81
+ readonly code: "OBJECT_NOT_FOUND";
82
+ readonly _tag: "OBJECT_NOT_FOUND";
83
+ readonly context: Record<string, unknown>;
84
+ message: string;
85
+ stack?: string;
86
+ cause?: unknown;
87
+ };
88
+ extend<Code extends string>(code: Code): any;
89
+ isError(error: unknown): error is Error;
90
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
91
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
92
+ stackTraceLimit: number;
93
+ };
94
+ declare class ObjectNotFoundError extends ObjectNotFoundError_base {
95
+ constructor(context?: Record<string, unknown>);
27
96
  }
28
97
  export {};
29
98
  //# sourceMappingURL=database.d.ts.map