durable-actors 0.4.0 → 0.4.3

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 (68) hide show
  1. package/README.md +19 -5
  2. package/dist/cli/control-plane.d.ts.map +1 -1
  3. package/dist/cli/control-plane.js +8 -8
  4. package/dist/cli/control-plane.js.map +1 -1
  5. package/dist/cli/dev.d.ts +2 -0
  6. package/dist/cli/dev.d.ts.map +1 -1
  7. package/dist/cli/dev.js +1 -1
  8. package/dist/cli/dev.js.map +1 -1
  9. package/dist/cli/generate.d.ts.map +1 -1
  10. package/dist/cli/generate.js +4 -4
  11. package/dist/cli/generate.js.map +1 -1
  12. package/dist/client-runtime/client.d.ts +6 -1
  13. package/dist/client-runtime/client.d.ts.map +1 -1
  14. package/dist/client-runtime/client.js +31 -14
  15. package/dist/client-runtime/client.js.map +1 -1
  16. package/dist/client-runtime/http.d.ts +2 -0
  17. package/dist/client-runtime/http.d.ts.map +1 -1
  18. package/dist/client-runtime/http.js +28 -6
  19. package/dist/client-runtime/http.js.map +1 -1
  20. package/dist/compiler/actor-compiler.d.ts +5 -3
  21. package/dist/compiler/actor-compiler.d.ts.map +1 -1
  22. package/dist/compiler/actor-compiler.js +10 -3
  23. package/dist/compiler/actor-compiler.js.map +1 -1
  24. package/dist/compiler/declarations.d.ts +11 -0
  25. package/dist/compiler/declarations.d.ts.map +1 -0
  26. package/dist/compiler/declarations.js +218 -0
  27. package/dist/compiler/declarations.js.map +1 -0
  28. package/dist/compiler/generators/backend-generator.d.ts +1 -2
  29. package/dist/compiler/generators/backend-generator.d.ts.map +1 -1
  30. package/dist/compiler/generators/backend-generator.js +8 -119
  31. package/dist/compiler/generators/backend-generator.js.map +1 -1
  32. package/dist/compiler/generators/client-artifacts.d.ts +6 -0
  33. package/dist/compiler/generators/client-artifacts.d.ts.map +1 -0
  34. package/dist/compiler/generators/client-artifacts.js +94 -0
  35. package/dist/compiler/generators/client-artifacts.js.map +1 -0
  36. package/dist/compiler/generators/client-generator.d.ts +1 -2
  37. package/dist/compiler/generators/client-generator.d.ts.map +1 -1
  38. package/dist/compiler/generators/client-generator.js +2 -2
  39. package/dist/compiler/generators/client-generator.js.map +1 -1
  40. package/dist/compiler/json-schema.d.ts.map +1 -1
  41. package/dist/compiler/json-schema.js +84 -25
  42. package/dist/compiler/json-schema.js.map +1 -1
  43. package/dist/compiler/validate-public-contract.d.ts.map +1 -1
  44. package/dist/compiler/validate-public-contract.js +4 -0
  45. package/dist/compiler/validate-public-contract.js.map +1 -1
  46. package/dist/generated/client-runtime.d.ts.map +1 -1
  47. package/dist/generated/client-runtime.js +1 -1
  48. package/dist/generated/client-runtime.js.map +1 -1
  49. package/dist/localRuntime.d.ts +3 -1
  50. package/dist/localRuntime.d.ts.map +1 -1
  51. package/dist/localRuntime.js +2 -1
  52. package/dist/localRuntime.js.map +1 -1
  53. package/dist/projectSdk.d.ts +1 -1
  54. package/dist/projectSdk.d.ts.map +1 -1
  55. package/dist/projectSdk.js +2 -2
  56. package/dist/projectSdk.js.map +1 -1
  57. package/dist/templates/actor/README.md +6 -6
  58. package/dist/templates/actor/package.json +1 -1
  59. package/dist/templates/ai-chat/package.json +1 -1
  60. package/dist/templates/chat/package.json +1 -1
  61. package/dist/templates/documents/package.json +1 -1
  62. package/dist/wire/public-contract.d.ts +6 -1
  63. package/dist/wire/public-contract.d.ts.map +1 -1
  64. package/package.json +7 -7
  65. package/dist/compiler/generators/typescript-generator.d.ts +0 -8
  66. package/dist/compiler/generators/typescript-generator.d.ts.map +0 -1
  67. package/dist/compiler/generators/typescript-generator.js +0 -157
  68. package/dist/compiler/generators/typescript-generator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"localRuntime.d.ts","sourceRoot":"","sources":["../src/localRuntime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,MAAM,WAAW,iBAAiB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB;;;;;;iBAUpB,CAAA;AAEF,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAC5C,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,8CAA8C;IAC9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,mDAAmD;AACnD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkB7F"}
1
+ {"version":3,"file":"localRuntime.d.ts","sourceRoot":"","sources":["../src/localRuntime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAA;AAEtD,MAAM,WAAW,iBAAiB;IAC9B,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB;;;;;;iBAUpB,CAAA;AAEF,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAC5C,6CAA6C;IAC7C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,8CAA8C;IAC9C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB;AAED,mDAAmD;AACnD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkB7F"}
@@ -7,6 +7,7 @@ import { validateProjectId } from "./actor/identity.js";
7
7
  import { actorEnvironment } from "./environment.js";
8
8
  import { projectSdkModule } from "./projectSdk.js";
9
9
  import { fetchRuntimeExecutablePath } from "./runtimeInstaller.js";
10
+ export { runDev } from "./cli/dev.js";
10
11
  const connectionSchema = z.object({
11
12
  projectId: z.string().min(1),
12
13
  controlPlaneUrl: z.string().url(),
@@ -23,7 +24,7 @@ export async function startLocalActors(options) {
23
24
  if (options.projectId !== undefined)
24
25
  validateProjectId(options.projectId);
25
26
  const project = path.resolve(options.project ?? ".");
26
- const local = await projectSdkModule(project, "./localRuntime.js", import.meta.url);
27
+ const local = await projectSdkModule(project, "./localRuntime.js", import.meta.url, options.sdkResolveFrom);
27
28
  if (local !== undefined)
28
29
  return (await import(local)).startLocalActors({ ...options, project });
29
30
  const child = launch(await fetchRuntimeExecutablePath(), options);
@@ -1 +1 @@
1
- {"version":3,"file":"localRuntime.js","sourceRoot":"","sources":["../src/localRuntime.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAkBlE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACjC,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,EAAE;SACT,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAWF,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA0B;IAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,0BAA0B,EAAE,EAAE,OAAO,CAAC,CAAA;IACjE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACtC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAa,EAC1B,MAAM,EACN,OAAO,CAAC,gBAAgB,IAAI,OAAO,CACtC,CAAA;QACD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC5B,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,UAAkB,EAAE,OAA0B;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAA;IACpD,OAAO,KAAK,CACR,UAAU,EACV;QACI,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,WAAW;QACX,OAAO;QACP,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QACzC,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC;QAC3D,QAAQ;QACR,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QACzB,YAAY;QACZ,GAAG;QACH,YAAY;QACZ,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvD,EACD;QACI,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE;YACD,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;YAC/H,2BAA2B,EAAE,eAAe;YAC5C,oCAAoC,EAAE,GAAG;SAC5C;QACD,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC;KACtG,CACJ,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAA;;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAkC,CAAA;IACtC,MAAM,IAAI,GAAG,GAAG,EAAE,CACd,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;QACrB,QAAQ,GAAG,IAAI,CAAA;QACf,KAAK,CAAC,KAAM,CAAC,GAAG,EAAE,CAAA;QAClB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7D,IAAI,CAAC;YACD,MAAM,MAAM,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;IACL,CAAC,CAAC,EAAE,CAAC,CAAA;IACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,SAAmB,EAAE,MAAqB,EAAE,SAAiB;IAC1F,IAAI,KAAgD,CAAA;IACpD,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAClC,cAAc,CAAC,SAAS,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;YAC3D,CAAC,CAAC;YACF,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC7B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YAC5F,CAAC,CAAC;SACL,CAAC,CAAA;QACF,OAAO,UAAU,CAAA;IACrB,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,SAAS,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAgB;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAC7F,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACrF,CAAC"}
1
+ {"version":3,"file":"localRuntime.js","sourceRoot":"","sources":["../src/localRuntime.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,MAAM,EAAmB,MAAM,cAAc,CAAA;AAoBtD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACjC,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,EAAE;SACT,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAWF,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAA0B;IAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAA;IACpD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC3G,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,0BAA0B,EAAE,EAAE,OAAO,CAAC,CAAA;IACjE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IACzC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACtC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAa,EAC1B,MAAM,EACN,OAAO,CAAC,gBAAgB,IAAI,OAAO,CACtC,CAAA;QACD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC5B,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,UAAkB,EAAE,OAA0B;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,CAAA;IACpD,OAAO,KAAK,CACR,UAAU,EACV;QACI,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACtE,WAAW;QACX,OAAO;QACP,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QACzC,YAAY;QACZ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAC;QAC3D,QAAQ;QACR,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QACzB,YAAY;QACZ,GAAG;QACH,YAAY;QACZ,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvD,EACD;QACI,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE;YACD,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;YAChC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;YAC/H,2BAA2B,EAAE,eAAe;YAC5C,oCAAoC,EAAE,GAAG;SAC5C;QACD,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC;KACtG,CACJ,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAChC,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAA;;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IACF,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAkC,CAAA;IACtC,MAAM,IAAI,GAAG,GAAG,EAAE,CACd,CAAC,OAAO,KAAK,CAAC,KAAK,IAAI,EAAE;QACrB,QAAQ,GAAG,IAAI,CAAA;QACf,KAAK,CAAC,KAAM,CAAC,GAAG,EAAE,CAAA;QAClB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7D,IAAI,CAAC;YACD,MAAM,MAAM,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;IACL,CAAC,CAAC,EAAE,CAAC,CAAA;IACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC3B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,SAAmB,EAAE,MAAqB,EAAE,SAAiB;IAC1F,IAAI,KAAgD,CAAA;IACpD,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAClC,cAAc,CAAC,SAAS,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;YAC3D,CAAC,CAAC;YACF,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC7B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YAC5F,CAAC,CAAC;SACL,CAAC,CAAA;QACF,OAAO,UAAU,CAAA;IACrB,CAAC;YAAS,CAAC;QACP,YAAY,CAAC,KAAK,CAAC,CAAA;QACnB,SAAS,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAgB;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAC7F,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACrF,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function projectSdkModule(project: string, entrypoint: string, caller: string): Promise<string | undefined>;
1
+ export declare function projectSdkModule(project: string, entrypoint: string, caller: string, sdkResolveFrom?: string): Promise<string | undefined>;
2
2
  //# sourceMappingURL=projectSdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectSdk.d.ts","sourceRoot":"","sources":["../src/projectSdk.ts"],"names":[],"mappings":"AAKA,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B"}
1
+ {"version":3,"file":"projectSdk.d.ts","sourceRoot":"","sources":["../src/projectSdk.ts"],"names":[],"mappings":"AAKA,wBAAsB,gBAAgB,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY7B"}
@@ -2,10 +2,10 @@ import { resolve } from "import-meta-resolve";
2
2
  import { realpath } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath, pathToFileURL } from "node:url";
5
- export async function projectSdkModule(project, entrypoint, caller) {
5
+ export async function projectSdkModule(project, entrypoint, caller, sdkResolveFrom) {
6
6
  let target;
7
7
  try {
8
- const parent = pathToFileURL(path.resolve(project, "package.json")).href;
8
+ const parent = sdkResolveFrom ?? pathToFileURL(path.resolve(project, "package.json")).href;
9
9
  const host = resolve("durable-actors/host", parent);
10
10
  target = await realpath(fileURLToPath(new URL(entrypoint, host)));
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectSdk.js","sourceRoot":"","sources":["../src/projectSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,OAAe,EACf,UAAkB,EAClB,MAAc;IAEd,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;QACxE,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;QACnD,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,0CAA0C,EAAE;YACxG,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;AACtG,CAAC"}
1
+ {"version":3,"file":"projectSdk.js","sourceRoot":"","sources":["../src/projectSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,OAAe,EACf,UAAkB,EAClB,MAAc,EACd,cAAuB;IAEvB,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;QACnD,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,0CAA0C,EAAE;YACxG,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IACD,OAAO,MAAM,KAAK,CAAC,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;AACtG,CAAC"}
@@ -4,20 +4,22 @@ Requires Node.js 22.19.0+, pnpm, and Bun 1.3.9+ on your PATH.
4
4
 
5
5
  ```sh
6
6
  pnpm install
7
- pnpm exec durable-actors dev
7
+ # Or with npm:
8
+ npm install
9
+ npx durable-actors dev
8
10
  ```
9
11
 
10
12
  Define your actors in `src/actors.ts`. The starter contains a counter with persisted state and `read()` and `increment()` methods. Each counter ID has its own saved value.
11
13
 
12
- `pnpm exec durable-actors dev` watches your actor source and stores local state in `.durable-actors/`. It defaults to project ID `local`; choose another with `DURABLE_ACTORS_PROJECT_ID=my-project pnpm exec durable-actors dev`.
14
+ `npx durable-actors dev` watches your actor source and stores local state in `.durable-actors/`. It defaults to project ID `local`; choose another with `DURABLE_ACTORS_PROJECT_ID=my-project npx durable-actors dev`.
13
15
 
14
16
  ## Connect your application
15
17
 
16
18
  In your separate application project's directory:
17
19
 
18
- 1. Run `pnpm add -D durable-actors`.
20
+ 1. Run `pnpm install --save-dev durable-actors` or `npm install --save-dev durable-actors`.
19
21
  2. Use the local defaults: project `local`, URL `http://127.0.0.1:7100`, and no secret. If you configure a different project, port, or optional secret on the actor server, put matching settings in your application’s `.env` or `.env.local` file.
20
- 3. Run `pnpm exec durable-actors generate`; the CLI loads both automatically. Exported environment variables take precedence over `.env.local`, which takes precedence over `.env`.
22
+ 3. Run `npx durable-actors generate`; the CLI loads both environment files automatically. Exported environment variables take precedence over `.env.local`, which takes precedence over `.env`.
21
23
 
22
24
  Your application backend can then use the generated client:
23
25
 
@@ -28,6 +30,4 @@ const counter = actors.Counter.get("example")
28
30
  console.log(await counter.increment())
29
31
  ```
30
32
 
31
- Start your backend with that environment file loaded. Update its secret after restarting the actor server. If you change the actor server's URL or port, also set `DURABLE_ACTORS_CONTROL_PLANE_URL` in the backend environment. After changing actor method signatures, rerun the printed generate command in your application.
32
-
33
33
  Use `pnpm check` to check types. Production deployment integrations register actor images through `PUT /v1/projects/{project_id}/deployment`; see the [HTTP API](https://github.com/TerseAI/durable-actors/blob/main/docs/reference/openapi.yaml).
@@ -10,7 +10,7 @@
10
10
  "check": "tsc --noEmit"
11
11
  },
12
12
  "dependencies": {
13
- "durable-actors": "0.4.0"
13
+ "durable-actors": "0.4.3"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/node": "^22.0.0",
@@ -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.4.0",
18
+ "durable-actors": "0.4.3",
19
19
  "react": "^19.3.0",
20
20
  "react-dom": "^19.3.0"
21
21
  },
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "express": "^5.2.1",
15
- "durable-actors": "0.4.0",
15
+ "durable-actors": "0.4.3",
16
16
  "react": "^19.3.0",
17
17
  "react-dom": "^19.3.0"
18
18
  },
@@ -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.4.0",
22
+ "durable-actors": "0.4.3",
23
23
  "react": "^19.3.0",
24
24
  "react-dom": "^19.3.0",
25
25
  "yjs": "^13.6.32"
@@ -3,6 +3,11 @@ import type { SocketContract } from "./contract.js";
3
3
  interface PublicActorContract {
4
4
  readonly version: 1;
5
5
  readonly actors: readonly ActorApi[];
6
+ readonly typescript: TypeScriptContract;
7
+ }
8
+ interface TypeScriptContract {
9
+ readonly declarations: string;
10
+ readonly dependencies: Readonly<Record<string, string>>;
6
11
  }
7
12
  interface ActorApi {
8
13
  readonly actorName: string;
@@ -32,5 +37,5 @@ interface RpcParameter {
32
37
  interface TypeReference {
33
38
  readonly $ref: string;
34
39
  }
35
- export type { ActorApi, TypeReference, PublicActorContract, RpcContract, RpcMethod, RpcParameter };
40
+ export type { ActorApi, TypeReference, PublicActorContract, RpcContract, RpcMethod, RpcParameter, TypeScriptContract };
36
41
  //# sourceMappingURL=public-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-contract.d.ts","sourceRoot":"","sources":["../../src/wire/public-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,UAAU,mBAAmB;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;CACvC;AAED,UAAU,QAAQ;IACd,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;CAC5B;AAED,UAAU,WAAW;IACjB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACzC;AAED,UAAU,SAAS;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAA;CACxG;AAED,UAAU,YAAY;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC/B;AAED,UAAU,aAAa;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACxB;AAED,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"public-contract.d.ts","sourceRoot":"","sources":["../../src/wire/public-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,UAAU,mBAAmB;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;IACpC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;CAC1C;AAED,UAAU,kBAAkB;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC1D;AAED,UAAU,QAAQ;IACd,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;CAC5B;AAED,UAAU,WAAW;IACjB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;CACzC;AAED,UAAU,SAAS;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;KAAE,CAAA;CACxG;AAED,UAAU,YAAY;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAC/B;AAED,UAAU,aAAa;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACxB;AAED,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "durable-actors",
3
- "version": "0.4.0",
3
+ "version": "0.4.3",
4
4
  "description": "Provider-neutral actors for sandbox compute",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -64,9 +64,9 @@
64
64
  "default": "./dist/compiler/actor-compiler.js"
65
65
  },
66
66
  "./codegen": {
67
- "types": "./dist/compiler/generators/typescript-generator.d.ts",
68
- "import": "./dist/compiler/generators/typescript-generator.js",
69
- "default": "./dist/compiler/generators/typescript-generator.js"
67
+ "types": "./dist/compiler/generators/client-artifacts.d.ts",
68
+ "import": "./dist/compiler/generators/client-artifacts.js",
69
+ "default": "./dist/compiler/generators/client-artifacts.js"
70
70
  }
71
71
  },
72
72
  "files": [
@@ -81,10 +81,9 @@
81
81
  "chokidar": "^4.0.3",
82
82
  "commander": "^14.0.3",
83
83
  "dotenv": "^18.0.0",
84
- "durable-actors-observer": "0.1.0",
84
+ "dts-bundle-generator": "9.5.1",
85
85
  "esbuild": "^0.28.2",
86
86
  "import-meta-resolve": "^4.2.0",
87
- "json-schema-to-typescript": "^16.0.0",
88
87
  "open": "^10.2.0",
89
88
  "prettier": "^3.9.6",
90
89
  "tar": "^7.5.22",
@@ -93,7 +92,8 @@
93
92
  "validate-npm-package-name": "^6.0.2",
94
93
  "vite": "^8.3.0",
95
94
  "ws": "^8.18.3",
96
- "zod": "^4.3.6"
95
+ "zod": "^4.3.6",
96
+ "durable-actors-observer": "0.4.3"
97
97
  },
98
98
  "devDependencies": {
99
99
  "@types/node": "^22.0.0",
@@ -1,8 +0,0 @@
1
- import type { SocketContract } from "../../wire/contract.js";
2
- import type { PublicActorContract } from "../../wire/public-contract.js";
3
- /** Returns the typed client and its standalone runtime without writing files or executing actor code. */
4
- declare function generateTypeScript(input: readonly SocketContract[] | PublicActorContract): Promise<ReadonlyMap<string, string>>;
5
- export { generateTypeScript };
6
- export type { SocketContract };
7
- export type { PublicActorContract };
8
- //# sourceMappingURL=typescript-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../../src/compiler/generators/typescript-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAMxE,yGAAyG;AACzG,iBAAe,kBAAkB,CAC7B,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,mBAAmB,GACvD,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqCtC;AA6ID,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAC7B,YAAY,EAAE,cAAc,EAAE,CAAA;AAC9B,YAAY,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,157 +0,0 @@
1
- import { compile } from "json-schema-to-typescript";
2
- import { format } from "prettier";
3
- import ts from "typescript";
4
- import { runtimeFiles } from "../../generated/client-runtime.js";
5
- import { parsePublicContract } from "../validate-public-contract.js";
6
- import { backendSource } from "./backend-generator.js";
7
- import { usageComment } from "./usage-comment.js";
8
- /** Returns the typed client and its standalone runtime without writing files or executing actor code. */
9
- async function generateTypeScript(input) {
10
- const document = "actors" in input ? input : undefined;
11
- if (document && document.version !== 1)
12
- throw new Error(`unsupported public actor contract version ${document.version}`);
13
- if (document)
14
- parsePublicContract(document);
15
- const contracts = "actors" in input ? input.actors.map(actor => actor.socket) : input;
16
- const declarations = [];
17
- const wireNames = new Map();
18
- for (const contract of contracts) {
19
- if (!/^[A-Za-z_$][\w$]*$/u.test(contract.actorName))
20
- throw new Error(`actor name ${contract.actorName} cannot be emitted as a TypeScript identifier`);
21
- const wire = await wireDeclarations(contract);
22
- wireNames.set(contract.actorName, [...wire.names, "Authorization"]);
23
- declarations.push(actorDeclarations(contract, wire.code));
24
- }
25
- const exampleActor = contracts[0]?.actorName;
26
- const source = `// Generated by durable-actors; regenerate instead of editing.
27
- ${usageComment("Use this file to call actors and prepare WebSocket access from your backend.", 'import { actors, ActorProxy, type ActorAuthorization } from "./generated/index.js"')}
28
- import { createActorStub as $createActorStub, SocketProxy as $SocketProxy } from "./runtime/index.js"
29
- export { createActorTransport, ActorInvocationError } from "./runtime/index.js"
30
- export type { ActorRpcTransport, DurableActorsClientOptions, SocketGrant, SocketProxyDependencies, SocketProxyOptions } from "./runtime/index.js"
31
-
32
- ${usageComment("Types for actor state and socket messages.", exampleActor && `type State = actors.${exampleActor}.State`)}
33
- export declare namespace actors {
34
- ${declarations.join("\n")}
35
- }
36
-
37
- ${await backendSource(document?.actors ?? [], contracts, wireNames)}
38
- ${proxySource(contracts)}`;
39
- const formatted = await format(source, {
40
- parser: "typescript",
41
- tabWidth: 4,
42
- printWidth: 120,
43
- semi: false,
44
- trailingComma: "none"
45
- });
46
- return new Map([["index.ts", formatted], ...Object.entries(runtimeFiles)]);
47
- }
48
- function actorDeclarations(contract, declarations) {
49
- return `export namespace ${contract.actorName} {
50
- ${declarations}
51
- export interface Authorization {
52
- actorName: ${JSON.stringify(contract.actorName)}
53
- actorId: string
54
- metadata: Metadata
55
- clientLocation?: { latitude: number; longitude: number }
56
- authorizationLifetimeMs?: number
57
- }
58
- }`;
59
- }
60
- async function wireDeclarations(contract) {
61
- const kinds = ["Metadata", "Incoming", "Outgoing", "State"];
62
- const properties = Object.fromEntries(kinds.map(kind => [
63
- kind.toLowerCase(),
64
- typeof contract.schema.definitions?.[kind] === "boolean"
65
- ? contract.schema.definitions[kind]
66
- : { $ref: `#/definitions/${kind}` }
67
- ]));
68
- const code = await compile(inlineAnonymousReferences({
69
- ...contract.schema,
70
- type: "object",
71
- additionalProperties: false,
72
- properties,
73
- required: Object.keys(properties)
74
- }, contract.schema.definitions ?? {}), "ActorTypes", {
75
- $refOptions: { resolve: { file: false, http: false } },
76
- bannerComment: "",
77
- unknownAny: true,
78
- additionalProperties: false,
79
- customName: (schema, key) => {
80
- const name = schema.title || schema.$id || key;
81
- return (schema.title && kinds.includes(name)) ||
82
- ["Connection", "Authorization", "Methods", "Parameters", "ReturnType", "Awaited"].includes(name)
83
- ? `${name}Data`
84
- : undefined;
85
- }
86
- });
87
- const source = ts.createSourceFile("types.ts", code, ts.ScriptTarget.Latest, true);
88
- const root = source.statements.find(statement => ts.isInterfaceDeclaration(statement) && statement.name.text === "ActorTypes");
89
- const declarations = source.statements.filter(statement => statement !== root);
90
- const named = new Map(declarations
91
- .filter((statement) => ts.isInterfaceDeclaration(statement) || ts.isTypeAliasDeclaration(statement))
92
- .map(statement => [statement.name.text, statement]));
93
- const main = kinds.map(kind => {
94
- const declaration = named.get(kind);
95
- if (declaration)
96
- return declaration.getText(source);
97
- const property = root.members.find(member => ts.isPropertySignature(member) && member.name.getText(source) === kind.toLowerCase());
98
- return `export type ${kind} = ${property.type.getText(source)}`;
99
- });
100
- const helpers = declarations.filter(statement => !kinds.some(kind => named.get(kind) === statement));
101
- return {
102
- code: [...main, ...helpers.map(statement => statement.getText(source))].join("\n\n") + "\n",
103
- names: [...new Set([...kinds, ...named.keys()])]
104
- };
105
- }
106
- function inlineAnonymousReferences(value, definitions, visiting = new Set()) {
107
- if (Array.isArray(value))
108
- return value.map(item => inlineAnonymousReferences(item, definitions, visiting));
109
- if (!value || typeof value !== "object")
110
- return value;
111
- const node = value;
112
- const key = typeof node.$ref === "string" && node.$ref.startsWith("#/definitions/")
113
- ? decodeURIComponent(node.$ref.slice("#/definitions/".length)).replaceAll("~1", "/").replaceAll("~0", "~")
114
- : undefined;
115
- const definition = key === undefined ? undefined : definitions[key];
116
- if (key !== undefined &&
117
- definition &&
118
- typeof definition === "object" &&
119
- !definition.title &&
120
- !visiting.has(key) &&
121
- (/^(Type\d+|Field_.*)$/.test(key) ||
122
- (typeof definition.type === "string" &&
123
- ["string", "number", "integer", "boolean", "null"].includes(definition.type)))) {
124
- const { $ref, ...rest } = node;
125
- return inlineAnonymousReferences({ ...definition, ...rest }, definitions, new Set([...visiting, key]));
126
- }
127
- return Object.fromEntries(Object.entries(node).map(([key, child]) => [key, inlineAnonymousReferences(child, definitions, visiting)]));
128
- }
129
- function proxySource(contracts) {
130
- const actors = contracts
131
- .map(({ actorName }) => `[${JSON.stringify(actorName)}]: {} as import("./runtime/index.js").ProxyActor<actors.${actorName}.Metadata>`)
132
- .join(", ");
133
- const authorization = contracts.map(({ actorName }) => `actors.${actorName}.Authorization`).join(" | ") || "never";
134
- const exampleActor = contracts[0]?.actorName;
135
- return `${usageComment("The actor and connection details approved by your backend.", exampleActor && `const authorization: ActorAuthorization = { actorName: ${JSON.stringify(exampleActor)}, actorId: "actor-id", metadata }`)}
136
- export type ActorAuthorization = ${authorization}
137
-
138
- ${usageComment("Allow a frontend connection after your backend checks the user's access.", exampleActor && `const grant = await ActorProxy.handle({ actorName: ${JSON.stringify(exampleActor)}, actorId: "actor-id", metadata })`)}
139
- export class ActorProxy extends $SocketProxy<{
140
- ${contracts.map(({ actorName }) => `[${JSON.stringify(actorName)}]: import("./runtime/index.js").ProxyActor<actors.${actorName}.Metadata>`).join("\n")}
141
- }> {
142
- constructor(options: import("./runtime/index.js").SocketProxyOptions = {}, dependencies: import("./runtime/index.js").SocketProxyDependencies = {}) {
143
- super({ ${actors} }, options, dependencies)
144
- }
145
-
146
- handle(authorization: ActorAuthorization): Promise<import("./runtime/index.js").SocketGrant> {
147
- return super.handle(authorization)
148
- }
149
-
150
- static handle(authorization: ActorAuthorization, options: import("./runtime/index.js").SocketProxyOptions = {}): Promise<import("./runtime/index.js").SocketGrant> {
151
- return new ActorProxy(options).handle(authorization)
152
- }
153
- }
154
- `;
155
- }
156
- export { generateTypeScript };
157
- //# sourceMappingURL=typescript-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../../../src/compiler/generators/typescript-generator.ts"],"names":[],"mappings":"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"}