durable-actors 0.3.1 → 0.4.2

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 (262) hide show
  1. package/README.md +21 -15
  2. package/dist/backend.d.ts +3 -10
  3. package/dist/backend.d.ts.map +1 -1
  4. package/dist/backend.js +7 -34
  5. package/dist/backend.js.map +1 -1
  6. package/dist/cli/actor-source-watcher.d.ts.map +1 -1
  7. package/dist/cli/actor-source-watcher.js +6 -2
  8. package/dist/cli/actor-source-watcher.js.map +1 -1
  9. package/dist/cli/connection.d.ts +1 -1
  10. package/dist/cli/control-plane.d.ts.map +1 -1
  11. package/dist/cli/control-plane.js +16 -12
  12. package/dist/cli/control-plane.js.map +1 -1
  13. package/dist/cli/dev.d.ts.map +1 -1
  14. package/dist/cli/dev.js +35 -3
  15. package/dist/cli/dev.js.map +1 -1
  16. package/dist/cli/generate.d.ts.map +1 -1
  17. package/dist/cli/generate.js +16 -9
  18. package/dist/cli/generate.js.map +1 -1
  19. package/dist/cli.js +18 -3
  20. package/dist/cli.js.map +1 -1
  21. package/dist/client/clientSettings.d.ts +1 -8
  22. package/dist/client/clientSettings.d.ts.map +1 -1
  23. package/dist/client/clientSettings.js +1 -51
  24. package/dist/client/clientSettings.js.map +1 -1
  25. package/dist/client/remoteClient.d.ts +4 -35
  26. package/dist/client/remoteClient.d.ts.map +1 -1
  27. package/dist/client/remoteClient.js +13 -201
  28. package/dist/client/remoteClient.js.map +1 -1
  29. package/dist/client/telemetry.d.ts +4 -12
  30. package/dist/client/telemetry.d.ts.map +1 -1
  31. package/dist/client/telemetry.js +3 -19
  32. package/dist/client/telemetry.js.map +1 -1
  33. package/dist/client-runtime/client.d.ts +45 -0
  34. package/dist/client-runtime/client.d.ts.map +1 -0
  35. package/dist/client-runtime/client.js +200 -0
  36. package/dist/client-runtime/client.js.map +1 -0
  37. package/dist/client-runtime/errors.d.ts +30 -0
  38. package/dist/client-runtime/errors.d.ts.map +1 -0
  39. package/dist/client-runtime/errors.js +55 -0
  40. package/dist/client-runtime/errors.js.map +1 -0
  41. package/dist/client-runtime/http.d.ts +45 -0
  42. package/dist/client-runtime/http.d.ts.map +1 -0
  43. package/dist/client-runtime/http.js +85 -0
  44. package/dist/client-runtime/http.js.map +1 -0
  45. package/dist/client-runtime/index.browser.d.ts +8 -0
  46. package/dist/client-runtime/index.browser.d.ts.map +1 -0
  47. package/dist/client-runtime/index.browser.js +14 -0
  48. package/dist/client-runtime/index.browser.js.map +1 -0
  49. package/dist/client-runtime/index.d.ts +6 -0
  50. package/dist/client-runtime/index.d.ts.map +1 -0
  51. package/dist/client-runtime/index.js +4 -0
  52. package/dist/client-runtime/index.js.map +1 -0
  53. package/dist/client-runtime/json.d.ts +9 -0
  54. package/dist/client-runtime/json.d.ts.map +1 -0
  55. package/dist/client-runtime/json.js +16 -0
  56. package/dist/client-runtime/json.js.map +1 -0
  57. package/dist/client-runtime/proxy.d.ts +49 -0
  58. package/dist/client-runtime/proxy.d.ts.map +1 -0
  59. package/dist/client-runtime/proxy.js +106 -0
  60. package/dist/client-runtime/proxy.js.map +1 -0
  61. package/dist/client-runtime/settings.d.ts +20 -0
  62. package/dist/client-runtime/settings.d.ts.map +1 -0
  63. package/dist/client-runtime/settings.js +60 -0
  64. package/dist/client-runtime/settings.js.map +1 -0
  65. package/dist/client-runtime/stub.d.ts +15 -0
  66. package/dist/client-runtime/stub.d.ts.map +1 -0
  67. package/dist/client-runtime/stub.js +44 -0
  68. package/dist/client-runtime/stub.js.map +1 -0
  69. package/dist/client-runtime/telemetry.d.ts +13 -0
  70. package/dist/client-runtime/telemetry.d.ts.map +1 -0
  71. package/dist/client-runtime/telemetry.js +18 -0
  72. package/dist/client-runtime/telemetry.js.map +1 -0
  73. package/dist/compiler/actor-build.js +1 -1
  74. package/dist/compiler/deployment-build.js +15 -0
  75. package/dist/compiler/deployment-build.js.map +1 -1
  76. package/dist/compiler/generators/backend-generator.js +4 -4
  77. package/dist/compiler/generators/backend-generator.js.map +1 -1
  78. package/dist/compiler/generators/client-generator.d.ts.map +1 -1
  79. package/dist/compiler/generators/client-generator.js +6 -19
  80. package/dist/compiler/generators/client-generator.js.map +1 -1
  81. package/dist/compiler/generators/typescript-generator.d.ts +1 -1
  82. package/dist/compiler/generators/typescript-generator.d.ts.map +1 -1
  83. package/dist/compiler/generators/typescript-generator.js +11 -8
  84. package/dist/compiler/generators/typescript-generator.js.map +1 -1
  85. package/dist/compiler/json-schema.d.ts.map +1 -1
  86. package/dist/compiler/json-schema.js +2 -1
  87. package/dist/compiler/json-schema.js.map +1 -1
  88. package/dist/errors.d.ts +1 -29
  89. package/dist/errors.d.ts.map +1 -1
  90. package/dist/errors.js +1 -54
  91. package/dist/errors.js.map +1 -1
  92. package/dist/generated/client-runtime.d.ts +2 -0
  93. package/dist/generated/client-runtime.d.ts.map +1 -0
  94. package/dist/generated/client-runtime.js +2 -0
  95. package/dist/generated/client-runtime.js.map +1 -0
  96. package/dist/host/actor-host.d.ts.map +1 -1
  97. package/dist/host/actor-host.js +4 -18
  98. package/dist/host/actor-host.js.map +1 -1
  99. package/dist/host/actor-worker.js +7 -1
  100. package/dist/host/actor-worker.js.map +1 -1
  101. package/dist/host/generic-host.d.ts.map +1 -1
  102. package/dist/host/generic-host.js +4 -5
  103. package/dist/host/generic-host.js.map +1 -1
  104. package/dist/host/protocol.d.ts +2 -2
  105. package/dist/host/protocol.js +1 -1
  106. package/dist/host/types.d.ts +1 -5
  107. package/dist/host/types.d.ts.map +1 -1
  108. package/dist/host/validate-artifact.d.ts +2 -0
  109. package/dist/host/validate-artifact.d.ts.map +1 -0
  110. package/dist/host/validate-artifact.js +10 -0
  111. package/dist/host/validate-artifact.js.map +1 -0
  112. package/dist/host/worker-supervisor.d.ts +2 -25
  113. package/dist/host/worker-supervisor.d.ts.map +1 -1
  114. package/dist/host/worker-supervisor.js +2 -53
  115. package/dist/host/worker-supervisor.js.map +1 -1
  116. package/dist/json.d.ts +1 -1
  117. package/dist/json.d.ts.map +1 -1
  118. package/dist/json.js +1 -13
  119. package/dist/json.js.map +1 -1
  120. package/dist/localRuntime.d.ts.map +1 -1
  121. package/dist/localRuntime.js +5 -0
  122. package/dist/localRuntime.js.map +1 -1
  123. package/dist/projectSdk.d.ts +2 -0
  124. package/dist/projectSdk.d.ts.map +1 -0
  125. package/dist/projectSdk.js +19 -0
  126. package/dist/projectSdk.js.map +1 -0
  127. package/dist/proxy.d.ts +1 -51
  128. package/dist/proxy.d.ts.map +1 -1
  129. package/dist/proxy.js +1 -71
  130. package/dist/proxy.js.map +1 -1
  131. package/dist/templates/actor/README.md +8 -8
  132. package/dist/templates/actor/package.json +2 -2
  133. package/dist/templates/actor/pnpm-workspace.yaml +2 -0
  134. package/dist/templates/ai-chat/README.md +5 -10
  135. package/dist/templates/ai-chat/package.json +1 -1
  136. package/dist/templates/ai-chat/pnpm-workspace.yaml +2 -0
  137. package/dist/templates/ai-chat/src/actors.ts +3 -8
  138. package/dist/templates/ai-chat/src/backend.ts +2 -12
  139. package/dist/templates/chat/README.md +1 -1
  140. package/dist/templates/chat/package.json +2 -2
  141. package/dist/templates/chat/pnpm-workspace.yaml +2 -0
  142. package/dist/templates/documents/README.md +1 -1
  143. package/dist/templates/documents/package.json +2 -2
  144. package/dist/templates/documents/pnpm-workspace.yaml +2 -0
  145. package/package.json +25 -22
  146. package/dist/client/actorHostGrpc.d.ts +0 -50
  147. package/dist/client/actorHostGrpc.d.ts.map +0 -1
  148. package/dist/client/actorHostGrpc.js +0 -111
  149. package/dist/client/actorHostGrpc.js.map +0 -1
  150. package/dist/generated/durable_actors/v1/ActivateActorReply.d.ts +0 -8
  151. package/dist/generated/durable_actors/v1/ActivateActorReply.d.ts.map +0 -1
  152. package/dist/generated/durable_actors/v1/ActivateActorReply.js +0 -3
  153. package/dist/generated/durable_actors/v1/ActivateActorReply.js.map +0 -1
  154. package/dist/generated/durable_actors/v1/ActivateActorRequest.d.ts +0 -8
  155. package/dist/generated/durable_actors/v1/ActivateActorRequest.d.ts.map +0 -1
  156. package/dist/generated/durable_actors/v1/ActivateActorRequest.js +0 -3
  157. package/dist/generated/durable_actors/v1/ActivateActorRequest.js.map +0 -1
  158. package/dist/generated/durable_actors/v1/ActorCompleted.d.ts +0 -9
  159. package/dist/generated/durable_actors/v1/ActorCompleted.d.ts.map +0 -1
  160. package/dist/generated/durable_actors/v1/ActorCompleted.js +0 -3
  161. package/dist/generated/durable_actors/v1/ActorCompleted.js.map +0 -1
  162. package/dist/generated/durable_actors/v1/ActorControlPlaneService.d.ts +0 -21
  163. package/dist/generated/durable_actors/v1/ActorControlPlaneService.d.ts.map +0 -1
  164. package/dist/generated/durable_actors/v1/ActorControlPlaneService.js +0 -3
  165. package/dist/generated/durable_actors/v1/ActorControlPlaneService.js.map +0 -1
  166. package/dist/generated/durable_actors/v1/ActorFailed.d.ts +0 -9
  167. package/dist/generated/durable_actors/v1/ActorFailed.d.ts.map +0 -1
  168. package/dist/generated/durable_actors/v1/ActorFailed.js +0 -3
  169. package/dist/generated/durable_actors/v1/ActorFailed.js.map +0 -1
  170. package/dist/generated/durable_actors/v1/ActorHostService.d.ts +0 -56
  171. package/dist/generated/durable_actors/v1/ActorHostService.d.ts.map +0 -1
  172. package/dist/generated/durable_actors/v1/ActorHostService.js +0 -3
  173. package/dist/generated/durable_actors/v1/ActorHostService.js.map +0 -1
  174. package/dist/generated/durable_actors/v1/ActorKey.d.ts +0 -11
  175. package/dist/generated/durable_actors/v1/ActorKey.d.ts.map +0 -1
  176. package/dist/generated/durable_actors/v1/ActorKey.js +0 -3
  177. package/dist/generated/durable_actors/v1/ActorKey.js.map +0 -1
  178. package/dist/generated/durable_actors/v1/ControlPlaneReply.d.ts +0 -7
  179. package/dist/generated/durable_actors/v1/ControlPlaneReply.d.ts.map +0 -1
  180. package/dist/generated/durable_actors/v1/ControlPlaneReply.js +0 -3
  181. package/dist/generated/durable_actors/v1/ControlPlaneReply.js.map +0 -1
  182. package/dist/generated/durable_actors/v1/ControlPlaneRequest.d.ts +0 -7
  183. package/dist/generated/durable_actors/v1/ControlPlaneRequest.d.ts.map +0 -1
  184. package/dist/generated/durable_actors/v1/ControlPlaneRequest.js +0 -3
  185. package/dist/generated/durable_actors/v1/ControlPlaneRequest.js.map +0 -1
  186. package/dist/generated/durable_actors/v1/Empty.d.ts +0 -5
  187. package/dist/generated/durable_actors/v1/Empty.d.ts.map +0 -1
  188. package/dist/generated/durable_actors/v1/Empty.js +0 -3
  189. package/dist/generated/durable_actors/v1/Empty.js.map +0 -1
  190. package/dist/generated/durable_actors/v1/HostInvokeActorRequest.d.ts +0 -11
  191. package/dist/generated/durable_actors/v1/HostInvokeActorRequest.d.ts.map +0 -1
  192. package/dist/generated/durable_actors/v1/HostInvokeActorRequest.js +0 -3
  193. package/dist/generated/durable_actors/v1/HostInvokeActorRequest.js.map +0 -1
  194. package/dist/generated/durable_actors/v1/HostSocketEventRequest.d.ts +0 -17
  195. package/dist/generated/durable_actors/v1/HostSocketEventRequest.d.ts.map +0 -1
  196. package/dist/generated/durable_actors/v1/HostSocketEventRequest.js +0 -3
  197. package/dist/generated/durable_actors/v1/HostSocketEventRequest.js.map +0 -1
  198. package/dist/generated/durable_actors/v1/InvokeActorReply.d.ts +0 -16
  199. package/dist/generated/durable_actors/v1/InvokeActorReply.d.ts.map +0 -1
  200. package/dist/generated/durable_actors/v1/InvokeActorReply.js +0 -3
  201. package/dist/generated/durable_actors/v1/InvokeActorReply.js.map +0 -1
  202. package/dist/generated/durable_actors/v1/InvokeActorRequest.d.ts +0 -14
  203. package/dist/generated/durable_actors/v1/InvokeActorRequest.d.ts.map +0 -1
  204. package/dist/generated/durable_actors/v1/InvokeActorRequest.js +0 -3
  205. package/dist/generated/durable_actors/v1/InvokeActorRequest.js.map +0 -1
  206. package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.d.ts +0 -13
  207. package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.d.ts.map +0 -1
  208. package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.js +0 -3
  209. package/dist/generated/durable_actors/v1/PublishSocketEffectsRequest.js.map +0 -1
  210. package/dist/generated/durable_actors/v1/ReplicaService.d.ts +0 -42
  211. package/dist/generated/durable_actors/v1/ReplicaService.d.ts.map +0 -1
  212. package/dist/generated/durable_actors/v1/ReplicaService.js +0 -3
  213. package/dist/generated/durable_actors/v1/ReplicaService.js.map +0 -1
  214. package/dist/generated/durable_actors/v1/ReplicaSessionHead.d.ts +0 -14
  215. package/dist/generated/durable_actors/v1/ReplicaSessionHead.d.ts.map +0 -1
  216. package/dist/generated/durable_actors/v1/ReplicaSessionHead.js +0 -3
  217. package/dist/generated/durable_actors/v1/ReplicaSessionHead.js.map +0 -1
  218. package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.d.ts +0 -14
  219. package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.d.ts.map +0 -1
  220. package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.js +0 -3
  221. package/dist/generated/durable_actors/v1/ReplicaSnapshotRef.js.map +0 -1
  222. package/dist/generated/durable_actors/v1/ReplicaStreamHead.d.ts +0 -11
  223. package/dist/generated/durable_actors/v1/ReplicaStreamHead.d.ts.map +0 -1
  224. package/dist/generated/durable_actors/v1/ReplicaStreamHead.js +0 -3
  225. package/dist/generated/durable_actors/v1/ReplicaStreamHead.js.map +0 -1
  226. package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.d.ts +0 -14
  227. package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.d.ts.map +0 -1
  228. package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.js +0 -3
  229. package/dist/generated/durable_actors/v1/ReplicaStreamIdentity.js.map +0 -1
  230. package/dist/generated/durable_actors/v1/Reroute.d.ts +0 -5
  231. package/dist/generated/durable_actors/v1/Reroute.d.ts.map +0 -1
  232. package/dist/generated/durable_actors/v1/Reroute.js +0 -3
  233. package/dist/generated/durable_actors/v1/Reroute.js.map +0 -1
  234. package/dist/generated/durable_actors/v1/SnapshotData.d.ts +0 -7
  235. package/dist/generated/durable_actors/v1/SnapshotData.d.ts.map +0 -1
  236. package/dist/generated/durable_actors/v1/SnapshotData.js +0 -3
  237. package/dist/generated/durable_actors/v1/SnapshotData.js.map +0 -1
  238. package/dist/generated/durable_actors/v1/SnapshotService.d.ts +0 -32
  239. package/dist/generated/durable_actors/v1/SnapshotService.d.ts.map +0 -1
  240. package/dist/generated/durable_actors/v1/SnapshotService.js +0 -3
  241. package/dist/generated/durable_actors/v1/SnapshotService.js.map +0 -1
  242. package/dist/generated/durable_actors/v1/SnapshotWriteReply.d.ts +0 -7
  243. package/dist/generated/durable_actors/v1/SnapshotWriteReply.d.ts.map +0 -1
  244. package/dist/generated/durable_actors/v1/SnapshotWriteReply.js +0 -3
  245. package/dist/generated/durable_actors/v1/SnapshotWriteReply.js.map +0 -1
  246. package/dist/generated/durable_actors.d.ts +0 -69
  247. package/dist/generated/durable_actors.d.ts.map +0 -1
  248. package/dist/generated/durable_actors.js +0 -2
  249. package/dist/generated/durable_actors.js.map +0 -1
  250. package/dist/generated/durable_actors.proto +0 -117
  251. package/dist/generated.browser.d.ts +0 -6
  252. package/dist/generated.browser.d.ts.map +0 -1
  253. package/dist/generated.browser.js +0 -10
  254. package/dist/generated.browser.js.map +0 -1
  255. package/dist/generated.d.ts +0 -3
  256. package/dist/generated.d.ts.map +0 -1
  257. package/dist/generated.js +0 -3
  258. package/dist/generated.js.map +0 -1
  259. package/dist/templates/actor/LICENSE.md +0 -9
  260. package/dist/templates/ai-chat/LICENSE.md +0 -9
  261. package/dist/templates/chat/LICENSE.md +0 -9
  262. package/dist/templates/documents/LICENSE.md +0 -9
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "my-actors",
2
+ "name": "durable-actors-example-actor",
3
3
  "private": true,
4
4
  "type": "module",
5
5
  "engines": {
@@ -10,7 +10,7 @@
10
10
  "check": "tsc --noEmit"
11
11
  },
12
12
  "dependencies": {
13
- "durable-actors": "0.3.1"
13
+ "durable-actors": "0.4.2"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/node": "^22.0.0",
@@ -0,0 +1,2 @@
1
+ allowBuilds:
2
+ esbuild: true
@@ -4,7 +4,7 @@ An Express + React app that streams replies with the Vercel AI SDK and saves con
4
4
 
5
5
  ## Run locally
6
6
 
7
- Requires Node.js 22.19+, Bun 1.4.2+, and an OpenAI API key.
7
+ Requires Node.js 22.19+, Bun 1.3.9+, and an OpenAI API key.
8
8
 
9
9
  ```sh
10
10
  npx durable-actors init ai-chat-example --template ai-chat
@@ -32,33 +32,28 @@ Open [localhost:3000](http://127.0.0.1:3000), send a message, and reload after t
32
32
  [ChatHistory](src/actors.ts) keeps one conversation per actor ID:
33
33
 
34
34
  ```ts
35
+ import type { UIMessage } from "ai"
35
36
  import { Actor, Persisted } from "durable-actors"
36
37
 
37
38
  export class ChatHistory extends Actor {
38
- @Persisted private messages: ChatMessage[] = []
39
+ @Persisted private messages: UIMessage[] = []
39
40
 
40
41
  async load() {
41
42
  return this.messages
42
43
  }
43
44
 
44
- async append(message: ChatMessage) {
45
+ async append(message: UIMessage) {
45
46
  this.messages.push(message)
46
47
  return this.messages
47
48
  }
48
49
  }
49
-
50
- export type ChatMessage = {
51
- id: string
52
- role: "system" | "user" | "assistant"
53
- parts: { type: "text"; text: string }[]
54
- }
55
50
  ```
56
51
 
57
52
  ## Stream the reply
58
53
 
59
54
  The [Express backend](src/backend.ts) appends the user message, sends the saved conversation to the model, and streams the reply. It saves the assistant message when the reply completes.
60
55
 
61
- The [React client](src/Chat.tsx) loads saved messages and uses `useChat` to display the stream. This demo saves text only; in-progress streams are not resumed after a reload.
56
+ The [React client](src/Chat.tsx) loads saved messages and uses `useChat` to display the stream. In-progress streams are not resumed after a reload.
62
57
 
63
58
  The lobby is shared and has no authentication. Add authentication and chat ownership checks before using it for private conversations.
64
59
 
@@ -15,7 +15,7 @@
15
15
  "@ai-sdk/react": "^4.0.100",
16
16
  "ai": "^7.0.97",
17
17
  "express": "^5.2.1",
18
- "durable-actors": "0.3.1",
18
+ "durable-actors": "0.4.2",
19
19
  "react": "^19.3.0",
20
20
  "react-dom": "^19.3.0"
21
21
  },
@@ -0,0 +1,2 @@
1
+ allowBuilds:
2
+ esbuild: true
@@ -1,20 +1,15 @@
1
+ import type { UIMessage } from "ai"
1
2
  import { Actor, Persisted } from "durable-actors"
2
3
 
3
4
  export class ChatHistory extends Actor {
4
- @Persisted private messages: ChatMessage[] = []
5
+ @Persisted private messages: UIMessage[] = []
5
6
 
6
7
  async load() {
7
8
  return this.messages
8
9
  }
9
10
 
10
- async append(message: ChatMessage) {
11
+ async append(message: UIMessage) {
11
12
  this.messages.push(message)
12
13
  return this.messages
13
14
  }
14
15
  }
15
-
16
- export type ChatMessage = {
17
- id: string
18
- role: "system" | "user" | "assistant"
19
- parts: { type: "text"; text: string }[]
20
- }
@@ -1,12 +1,10 @@
1
1
  import { openai } from "@ai-sdk/openai"
2
2
  import { convertToModelMessages, generateId, pipeUIMessageStreamToResponse, streamText, toUIMessageStream, validateUIMessages } from "ai"
3
- import type { UIMessage } from "ai"
4
3
  import express from "express"
5
4
  import { createServer as createHttpServer } from "node:http"
6
5
  import { createServer } from "vite"
7
6
 
8
7
  import { ChatHistory } from "./actors.js"
9
- import type { ChatMessage } from "./actors.js"
10
8
 
11
9
  const app = express()
12
10
  const server = createHttpServer(app)
@@ -21,7 +19,7 @@ app.post("/api/chat", async (request, response) => {
21
19
  const [message] = await validateUIMessages({ messages: [request.body.messages.at(-1)] })
22
20
  if (message.role !== "user") return response.sendStatus(400)
23
21
  const chat = ChatHistory.get(request.body.id)
24
- const messages = await chat.append(historyMessage(message))
22
+ const messages = await chat.append(message)
25
23
  const result = streamText({
26
24
  model: openai("gpt-5-mini"),
27
25
  messages: await convertToModelMessages(messages)
@@ -33,7 +31,7 @@ app.post("/api/chat", async (request, response) => {
33
31
  originalMessages: messages,
34
32
  generateMessageId: generateId,
35
33
  onEnd: async ({ responseMessage, outcome }) => {
36
- if (outcome.status === "completed") await chat.append(historyMessage(responseMessage))
34
+ if (outcome.status === "completed") await chat.append(responseMessage)
37
35
  }
38
36
  })
39
37
  })
@@ -44,11 +42,3 @@ const vite = await createServer({
44
42
  })
45
43
  app.use(vite.middlewares)
46
44
  server.listen(port, "127.0.0.1", () => console.log(`AI chat: http://127.0.0.1:${port}`))
47
-
48
- function historyMessage(message: UIMessage): ChatMessage {
49
- return {
50
- id: message.id,
51
- role: message.role,
52
- parts: message.parts.filter(part => part.type === "text").map(part => ({ type: "text", text: part.text }))
53
- }
54
- }
@@ -4,7 +4,7 @@ An Express + React chatroom backed by a durable actor. Messages appear in every
4
4
 
5
5
  ## Run locally
6
6
 
7
- Requires Node.js 22.19+ and Bun 1.4.2+.
7
+ Requires Node.js 22.19+ and Bun 1.3.9+.
8
8
 
9
9
  ```sh
10
10
  npx durable-actors init chat-example --template chat
@@ -8,11 +8,11 @@
8
8
  "scripts": {
9
9
  "dev": "durable-actors generate && tsx --env-file=.env src/backend.ts",
10
10
  "dev:actors": "durable-actors dev",
11
- "build": "durable-actors generate && tsc --noEmit && vite build"
11
+ "build": "durable-actors generate src/actors.ts && tsc --noEmit && vite build"
12
12
  },
13
13
  "dependencies": {
14
14
  "express": "^5.2.1",
15
- "durable-actors": "0.3.1",
15
+ "durable-actors": "0.4.2",
16
16
  "react": "^19.3.0",
17
17
  "react-dom": "^19.3.0"
18
18
  },
@@ -0,0 +1,2 @@
1
+ allowBuilds:
2
+ esbuild: true
@@ -4,7 +4,7 @@ A Tiptap editor with Yjs for concurrent edits and durable actors for saved docum
4
4
 
5
5
  ## Run locally
6
6
 
7
- Requires Node.js 22.19+ and Bun 1.4.2+.
7
+ Requires Node.js 22.19+ and Bun 1.3.9+.
8
8
 
9
9
  ```sh
10
10
  npx durable-actors init documents-example --template documents
@@ -8,7 +8,7 @@
8
8
  "scripts": {
9
9
  "dev": "durable-actors generate && tsx --env-file=.env src/backend.ts",
10
10
  "dev:actors": "durable-actors dev",
11
- "build": "durable-actors generate && tsc --noEmit && vite build"
11
+ "build": "durable-actors generate src/actors.ts && tsc --noEmit && vite build"
12
12
  },
13
13
  "dependencies": {
14
14
  "@tiptap/core": "^3.31.3",
@@ -19,7 +19,7 @@
19
19
  "@tiptap/y-tiptap": "^3.0.7",
20
20
  "express": "^5.2.1",
21
21
  "lib0": "^0.2.117",
22
- "durable-actors": "0.3.1",
22
+ "durable-actors": "0.4.2",
23
23
  "react": "^19.3.0",
24
24
  "react-dom": "^19.3.0",
25
25
  "yjs": "^13.6.32"
@@ -0,0 +1,2 @@
1
+ allowBuilds:
2
+ esbuild: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "durable-actors",
3
- "version": "0.3.1",
3
+ "version": "0.4.2",
4
4
  "description": "Provider-neutral actors for sandbox compute",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -33,38 +33,40 @@
33
33
  "durable-actors": "dist/cli.js"
34
34
  },
35
35
  "exports": {
36
- "./generated": {
37
- "types": "./dist/generated.d.ts",
38
- "browser": "./dist/generated.browser.js",
39
- "import": "./dist/generated.js"
40
- },
41
36
  "./backend": {
42
37
  "types": "./dist/backend.d.ts",
43
- "import": "./dist/backend.js"
38
+ "import": "./dist/backend.js",
39
+ "default": "./dist/backend.js"
44
40
  },
45
41
  "./dev": {
46
42
  "types": "./dist/localRuntime.d.ts",
47
- "import": "./dist/localRuntime.js"
43
+ "import": "./dist/localRuntime.js",
44
+ "default": "./dist/localRuntime.js"
48
45
  },
49
46
  "./proxy": {
50
47
  "types": "./dist/proxy.d.ts",
51
- "import": "./dist/proxy.js"
48
+ "import": "./dist/proxy.js",
49
+ "default": "./dist/proxy.js"
52
50
  },
53
51
  ".": {
54
52
  "types": "./dist/index.d.ts",
55
- "import": "./dist/index.js"
53
+ "import": "./dist/index.js",
54
+ "default": "./dist/index.js"
56
55
  },
57
56
  "./host": {
58
57
  "types": "./dist/host.d.ts",
59
- "import": "./dist/host.js"
58
+ "import": "./dist/host.js",
59
+ "default": "./dist/host.js"
60
60
  },
61
61
  "./compiler": {
62
62
  "types": "./dist/compiler/actor-compiler.d.ts",
63
- "import": "./dist/compiler/actor-compiler.js"
63
+ "import": "./dist/compiler/actor-compiler.js",
64
+ "default": "./dist/compiler/actor-compiler.js"
64
65
  },
65
66
  "./codegen": {
66
67
  "types": "./dist/compiler/generators/typescript-generator.d.ts",
67
- "import": "./dist/compiler/generators/typescript-generator.js"
68
+ "import": "./dist/compiler/generators/typescript-generator.js",
69
+ "default": "./dist/compiler/generators/typescript-generator.js"
68
70
  }
69
71
  },
70
72
  "files": [
@@ -74,41 +76,42 @@
74
76
  ],
75
77
  "dependencies": {
76
78
  "@discoveryjs/json-ext": "^1.1.0",
77
- "@grpc/grpc-js": "^1.14.4",
78
- "@grpc/proto-loader": "^0.8.1",
79
79
  "@types/json-schema": "^7.0.15",
80
80
  "ajv": "^8.20.0",
81
81
  "chokidar": "^4.0.3",
82
82
  "commander": "^14.0.3",
83
83
  "dotenv": "^18.0.0",
84
84
  "esbuild": "^0.28.2",
85
+ "import-meta-resolve": "^4.2.0",
85
86
  "json-schema-to-typescript": "^16.0.0",
86
- "durable-actors-observer": "0.1.0",
87
87
  "open": "^10.2.0",
88
88
  "prettier": "^3.9.6",
89
89
  "tar": "^7.5.22",
90
90
  "typescript": "~5.9.3",
91
91
  "typescript-json-schema": "^0.68.0",
92
+ "validate-npm-package-name": "^6.0.2",
92
93
  "vite": "^8.3.0",
93
94
  "ws": "^8.18.3",
94
- "zod": "^4.3.6"
95
+ "zod": "^4.3.6",
96
+ "durable-actors-observer": "0.4.2"
95
97
  },
96
98
  "devDependencies": {
97
99
  "@types/node": "^22.0.0",
100
+ "@types/validate-npm-package-name": "^4.0.2",
98
101
  "@types/ws": "^8.18.1",
99
102
  "typedoc": "^0.28.20",
100
103
  "typedoc-plugin-missing-exports": "^4.1.4"
101
104
  },
102
105
  "scripts": {
103
- "build": "pnpm run build:observer && pnpm run generate:proto && tsc -p tsconfig.build.json && cp ../proto/durable_actors.proto dist/generated/durable_actors.proto && node scripts/build-template.mjs && pnpm --dir .. install --offline --frozen-lockfile --ignore-scripts",
104
- "generate:proto": "rm -rf src/generated && proto-loader-gen-types --longs=Number --defaults --oneofs --grpcLib=@grpc/grpc-js --importFileExtension=.js --outDir=src/generated ../proto/durable_actors.proto",
106
+ "build": "pnpm run build:observer && pnpm run build:client && tsc -p tsconfig.build.json && node scripts/build-template.mjs && pnpm --dir .. install --offline --frozen-lockfile --ignore-scripts",
105
107
  "check": "pnpm run format:check && pnpm run test && pnpm run package:check",
106
108
  "clean": "rm -rf dist .test-dist",
107
- "package:check": "node --test tests/scripts/codegen-api.test.mjs tests/scripts/build-artifact.test.mjs",
108
- "test": "pnpm run clean && pnpm run build && node tests/prepare.mjs && tsc -p tsconfig.test.json && cp dist/generated/durable_actors.proto .test-dist/src/generated/durable_actors.proto && node scripts/test.mjs",
109
+ "package:check": "node --test tests/scripts/codegen-api.test.mjs tests/scripts/build-artifact.test.mjs tests/scripts/standalone-client.test.mjs",
110
+ "test": "pnpm run clean && pnpm run build && node tests/prepare.mjs && tsc -p tsconfig.test.json && node scripts/test.mjs",
109
111
  "format": "prettier --config ../.prettierrc --write \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/*.mjs\" \"tests/**/*.mjs\"",
110
112
  "format:check": "prettier --config ../.prettierrc --check \"src/**/*.ts\" \"tests/**/*.ts\" \"scripts/*.mjs\" \"tests/**/*.mjs\"",
111
113
  "build:observer": "pnpm --filter durable-actors-observer build",
112
- "docs": "typedoc --options typedoc.json"
114
+ "docs": "typedoc --options typedoc.json",
115
+ "build:client": "node scripts/build-client-runtime.mjs"
113
116
  }
114
117
  }
@@ -1,50 +0,0 @@
1
- import type { SocketEffect } from "../actor/socketProtocol.js";
2
- import type { JsonValue } from "../json.js";
3
- interface ActorHostTarget {
4
- readonly route: string;
5
- readonly token: string;
6
- readonly ownerEpoch: number;
7
- readonly expiresAtMs: number;
8
- }
9
- interface DirectActorInvocation {
10
- readonly projectId: string;
11
- readonly requestId: string;
12
- readonly actorName: string;
13
- readonly actorId: string;
14
- readonly method: string;
15
- readonly args: readonly JsonValue[];
16
- }
17
- type ActorHostReply = {
18
- readonly type: "completed";
19
- readonly result: unknown;
20
- readonly effects: readonly SocketEffect[];
21
- } | {
22
- readonly type: "failed";
23
- readonly code: string;
24
- readonly message: string;
25
- } | {
26
- readonly type: "reroute";
27
- } | {
28
- readonly type: "unauthenticated";
29
- };
30
- interface ActorHostTransport {
31
- publish(target: ActorHostTarget, actor: {
32
- projectId: string;
33
- actorName: string;
34
- actorId: string;
35
- }, effects: readonly SocketEffect[]): Promise<void>;
36
- invoke(target: ActorHostTarget, invocation: DirectActorInvocation): Promise<ActorHostReply>;
37
- }
38
- declare class GrpcActorHostTransport implements ActorHostTransport {
39
- private readonly clients;
40
- invoke(target: ActorHostTarget, invocation: DirectActorInvocation): Promise<ActorHostReply>;
41
- publish(target: ActorHostTarget, actor: {
42
- projectId: string;
43
- actorName: string;
44
- actorId: string;
45
- }, effects: readonly SocketEffect[]): Promise<void>;
46
- private client;
47
- }
48
- export { GrpcActorHostTransport };
49
- export type { ActorHostReply, ActorHostTarget, ActorHostTransport, DirectActorInvocation };
50
- //# sourceMappingURL=actorHostGrpc.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actorHostGrpc.d.ts","sourceRoot":"","sources":["../../src/client/actorHostGrpc.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAM9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAI3C,UAAU,eAAe;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,qBAAqB;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAA;CACtC;AAED,KAAK,cAAc,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GACnG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAE1C,UAAU,kBAAkB;IACxB,OAAO,CACH,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAChE,OAAO,EAAE,SAAS,YAAY,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAC9F;AAED,cAAM,sBAAuB,YAAW,kBAAkB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAE9D,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B3F,OAAO,CACT,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAChE,OAAO,EAAE,SAAS,YAAY,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAYhB,OAAO,CAAC,MAAM;CAgBjB;AA8DD,OAAO,EAAE,sBAAsB,EAAE,CAAA;AACjC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAA"}
@@ -1,111 +0,0 @@
1
- import { Metadata, credentials, loadPackageDefinition, status } from "@grpc/grpc-js";
2
- import { loadSync } from "@grpc/proto-loader";
3
- import { fileURLToPath } from "node:url";
4
- import { parseSocketEffects } from "../actor/socketProtocol.js";
5
- import { ActorProtocolError } from "../errors.js";
6
- const MAX_MESSAGE_BYTES = 32 * 1024 * 1024;
7
- class GrpcActorHostTransport {
8
- clients = new Map();
9
- async invoke(target, invocation) {
10
- const metadata = new Metadata();
11
- metadata.set("authorization", `Bearer ${target.token}`);
12
- const request = {
13
- invocation: {
14
- requestId: invocation.requestId,
15
- actor: {
16
- projectId: invocation.projectId,
17
- actorName: invocation.actorName,
18
- actorId: invocation.actorId
19
- },
20
- method: invocation.method,
21
- argsJson: Buffer.from(JSON.stringify(invocation.args))
22
- },
23
- ownerEpoch: target.ownerEpoch
24
- };
25
- try {
26
- const reply = await unaryRequest(this.client(target.route), request, metadata);
27
- return decodeReply(reply);
28
- }
29
- catch (error) {
30
- // The host authenticates before dispatching any actor code.
31
- if (error instanceof Error && "code" in error && error.code === status.UNAUTHENTICATED)
32
- return { type: "unauthenticated" };
33
- throw error;
34
- }
35
- }
36
- async publish(target, actor, effects) {
37
- const metadata = new Metadata();
38
- metadata.set("authorization", `Bearer ${target.token}`);
39
- await new Promise((resolve, reject) => {
40
- this.client(target.route).publishSocketEffects({ actor, ownerEpoch: target.ownerEpoch, effectsJson: Buffer.from(JSON.stringify(effects)) }, metadata, error => (error ? reject(error) : resolve()));
41
- });
42
- }
43
- client(route) {
44
- const existing = this.clients.get(route);
45
- if (existing)
46
- return existing;
47
- const url = actorHostUrl(route);
48
- const address = url.port ? url.host : `${url.hostname}:${url.protocol === "https:" ? 443 : 80}`;
49
- const client = new ActorHostClient(address, url.protocol === "https:" ? credentials.createSsl() : credentials.createInsecure(), {
50
- "grpc.max_receive_message_length": MAX_MESSAGE_BYTES,
51
- "grpc.max_send_message_length": MAX_MESSAGE_BYTES
52
- });
53
- this.clients.set(route, client);
54
- return client;
55
- }
56
- }
57
- function unaryRequest(client, request, metadata) {
58
- return new Promise((resolve, reject) => {
59
- client.invoke(request, metadata, (error, reply) => {
60
- if (error)
61
- reject(error);
62
- else if (reply)
63
- resolve(reply);
64
- else
65
- reject(new ActorProtocolError("actor host gRPC response was empty"));
66
- });
67
- });
68
- }
69
- function decodeReply(reply) {
70
- if (reply.completed) {
71
- return {
72
- type: "completed",
73
- result: parseJson(reply.completed.resultJson, "result"),
74
- effects: parseSocketEffects(parseJson(reply.completed.socketEffectsJson, "socket effects"))
75
- };
76
- }
77
- if (reply.failed)
78
- return { type: "failed", code: reply.failed.code, message: reply.failed.message };
79
- if (reply.reroute)
80
- return { type: "reroute" };
81
- throw new ActorProtocolError("actor host response did not contain a result");
82
- }
83
- function parseJson(bytes, label) {
84
- try {
85
- return JSON.parse(Buffer.from(bytes).toString("utf8"));
86
- }
87
- catch (error) {
88
- throw new ActorProtocolError(`actor host ${label} was not valid JSON`, { cause: error });
89
- }
90
- }
91
- function actorHostUrl(route) {
92
- const url = new URL(route);
93
- if (!/^https?:$/u.test(url.protocol) ||
94
- !url.hostname ||
95
- url.username ||
96
- url.password ||
97
- url.pathname !== "/" ||
98
- url.search ||
99
- url.hash) {
100
- throw new ActorProtocolError("actor host route must be an HTTP or HTTPS origin");
101
- }
102
- return url;
103
- }
104
- const definition = loadPackageDefinition(loadSync(fileURLToPath(new URL("../generated/durable_actors.proto", import.meta.url)), {
105
- defaults: true,
106
- longs: Number,
107
- oneofs: true
108
- }));
109
- const ActorHostClient = definition.durable_actors.v1.ActorHostService;
110
- export { GrpcActorHostTransport };
111
- //# sourceMappingURL=actorHostGrpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actorHostGrpc.js","sourceRoot":"","sources":["../../src/client/actorHostGrpc.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { Long } from '@grpc/proto-loader';
2
- export interface ActivateActorReply {
3
- 'ownerEpoch'?: (number | string | Long);
4
- }
5
- export interface ActivateActorReply__Output {
6
- 'ownerEpoch': (number);
7
- }
8
- //# sourceMappingURL=ActivateActorReply.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivateActorReply.d.ts","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActivateActorReply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;CACxB"}
@@ -1,3 +0,0 @@
1
- // Original file: ../proto/durable_actors.proto
2
- export {};
3
- //# sourceMappingURL=ActivateActorReply.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivateActorReply.js","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActivateActorReply.ts"],"names":[],"mappings":"AAAA,+CAA+C"}
@@ -1,8 +0,0 @@
1
- import type { ActorKey as _durable_actors_v1_ActorKey, ActorKey__Output as _durable_actors_v1_ActorKey__Output } from '../../durable_actors/v1/ActorKey.js';
2
- export interface ActivateActorRequest {
3
- 'actor'?: (_durable_actors_v1_ActorKey | null);
4
- }
5
- export interface ActivateActorRequest__Output {
6
- 'actor': (_durable_actors_v1_ActorKey__Output | null);
7
- }
8
- //# sourceMappingURL=ActivateActorRequest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivateActorRequest.d.ts","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActivateActorRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,IAAI,2BAA2B,EAAE,gBAAgB,IAAI,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAE5J,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;CACvD"}
@@ -1,3 +0,0 @@
1
- // Original file: ../proto/durable_actors.proto
2
- export {};
3
- //# sourceMappingURL=ActivateActorRequest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActivateActorRequest.js","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActivateActorRequest.ts"],"names":[],"mappings":"AAAA,+CAA+C"}
@@ -1,9 +0,0 @@
1
- export interface ActorCompleted {
2
- 'resultJson'?: (Buffer | Uint8Array | string);
3
- 'socketEffectsJson'?: (Buffer | Uint8Array | string);
4
- }
5
- export interface ActorCompleted__Output {
6
- 'resultJson': (Buffer);
7
- 'socketEffectsJson': (Buffer);
8
- }
9
- //# sourceMappingURL=ActorCompleted.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActorCompleted.d.ts","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActorCompleted.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;CAC/B"}
@@ -1,3 +0,0 @@
1
- // Original file: ../proto/durable_actors.proto
2
- export {};
3
- //# sourceMappingURL=ActorCompleted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActorCompleted.js","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActorCompleted.ts"],"names":[],"mappings":"AAAA,+CAA+C"}
@@ -1,21 +0,0 @@
1
- import type * as grpc from '@grpc/grpc-js';
2
- import type { MethodDefinition } from '@grpc/proto-loader';
3
- import type { ControlPlaneReply as _durable_actors_v1_ControlPlaneReply, ControlPlaneReply__Output as _durable_actors_v1_ControlPlaneReply__Output } from '../../durable_actors/v1/ControlPlaneReply.js';
4
- import type { ControlPlaneRequest as _durable_actors_v1_ControlPlaneRequest, ControlPlaneRequest__Output as _durable_actors_v1_ControlPlaneRequest__Output } from '../../durable_actors/v1/ControlPlaneRequest.js';
5
- export interface ActorControlPlaneServiceClient extends grpc.Client {
6
- Execute(argument: _durable_actors_v1_ControlPlaneRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
7
- Execute(argument: _durable_actors_v1_ControlPlaneRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
8
- Execute(argument: _durable_actors_v1_ControlPlaneRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
9
- Execute(argument: _durable_actors_v1_ControlPlaneRequest, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
10
- execute(argument: _durable_actors_v1_ControlPlaneRequest, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
11
- execute(argument: _durable_actors_v1_ControlPlaneRequest, metadata: grpc.Metadata, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
12
- execute(argument: _durable_actors_v1_ControlPlaneRequest, options: grpc.CallOptions, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
13
- execute(argument: _durable_actors_v1_ControlPlaneRequest, callback: grpc.requestCallback<_durable_actors_v1_ControlPlaneReply__Output>): grpc.ClientUnaryCall;
14
- }
15
- export interface ActorControlPlaneServiceHandlers extends grpc.UntypedServiceImplementation {
16
- Execute: grpc.handleUnaryCall<_durable_actors_v1_ControlPlaneRequest__Output, _durable_actors_v1_ControlPlaneReply>;
17
- }
18
- export interface ActorControlPlaneServiceDefinition extends grpc.ServiceDefinition {
19
- Execute: MethodDefinition<_durable_actors_v1_ControlPlaneRequest, _durable_actors_v1_ControlPlaneReply, _durable_actors_v1_ControlPlaneRequest__Output, _durable_actors_v1_ControlPlaneReply__Output>;
20
- }
21
- //# sourceMappingURL=ActorControlPlaneService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActorControlPlaneService.d.ts","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActorControlPlaneService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,IAAI,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,iBAAiB,IAAI,oCAAoC,EAAE,yBAAyB,IAAI,4CAA4C,EAAE,MAAM,8CAA8C,CAAC;AACzM,OAAO,KAAK,EAAE,mBAAmB,IAAI,sCAAsC,EAAE,2BAA2B,IAAI,8CAA8C,EAAE,MAAM,gDAAgD,CAAC;AAEnN,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,MAAM;IACjE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IAClN,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IACvL,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IACzL,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IAC9J,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IAClN,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IACvL,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;IACzL,OAAO,CAAC,QAAQ,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,4CAA4C,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;CAE/J;AAED,MAAM,WAAW,gCAAiC,SAAQ,IAAI,CAAC,4BAA4B;IACzF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,8CAA8C,EAAE,oCAAoC,CAAC,CAAC;CAErH;AAED,MAAM,WAAW,kCAAmC,SAAQ,IAAI,CAAC,iBAAiB;IAChF,OAAO,EAAE,gBAAgB,CAAC,sCAAsC,EAAE,oCAAoC,EAAE,8CAA8C,EAAE,4CAA4C,CAAC,CAAA;CACtM"}
@@ -1,3 +0,0 @@
1
- // Original file: ../proto/durable_actors.proto
2
- export {};
3
- //# sourceMappingURL=ActorControlPlaneService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActorControlPlaneService.js","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActorControlPlaneService.ts"],"names":[],"mappings":"AAAA,+CAA+C"}
@@ -1,9 +0,0 @@
1
- export interface ActorFailed {
2
- 'code'?: (string);
3
- 'message'?: (string);
4
- }
5
- export interface ActorFailed__Output {
6
- 'code': (string);
7
- 'message': (string);
8
- }
9
- //# sourceMappingURL=ActorFailed.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActorFailed.d.ts","sourceRoot":"","sources":["../../../../src/generated/durable_actors/v1/ActorFailed.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAClB,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IACjB,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;CACrB"}
@@ -1,3 +0,0 @@
1
- // Original file: ../proto/durable_actors.proto
2
- export {};
3
- //# sourceMappingURL=ActorFailed.js.map