@rivetkit/effect 0.0.0-main.9d355a2 → 0.0.0-main.b2d3b94

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 (63) hide show
  1. package/dist/Actor.d.ts +2 -3
  2. package/dist/Actor.d.ts.map +1 -1
  3. package/dist/Actor.js +2 -2
  4. package/dist/Actor.js.map +1 -1
  5. package/dist/Client.d.ts.map +1 -1
  6. package/dist/Client.js +6 -4
  7. package/dist/Client.js.map +1 -1
  8. package/dist/Registry.d.ts +69 -7
  9. package/dist/Registry.d.ts.map +1 -1
  10. package/dist/Registry.js +93 -40
  11. package/dist/Registry.js.map +1 -1
  12. package/dist/RivetError.d.ts +45 -3
  13. package/dist/RivetError.d.ts.map +1 -1
  14. package/dist/RivetError.js +112 -0
  15. package/dist/RivetError.js.map +1 -1
  16. package/dist/RivetLogger.d.ts +41 -0
  17. package/dist/RivetLogger.d.ts.map +1 -0
  18. package/dist/RivetLogger.js +41 -0
  19. package/dist/RivetLogger.js.map +1 -0
  20. package/dist/State.d.ts +92 -56
  21. package/dist/State.d.ts.map +1 -1
  22. package/dist/State.js +51 -57
  23. package/dist/State.js.map +1 -1
  24. package/dist/internal/ActorInstanceManager.d.ts.map +1 -1
  25. package/dist/internal/ActorInstanceManager.js +4 -4
  26. package/dist/internal/ActorInstanceManager.js.map +1 -1
  27. package/dist/internal/ActorStateAdapter.d.ts +1 -1
  28. package/dist/internal/ActorStateAdapter.d.ts.map +1 -1
  29. package/dist/internal/ActorStateAdapter.js +2 -7
  30. package/dist/internal/ActorStateAdapter.js.map +1 -1
  31. package/dist/internal/StateOptions.d.ts +1 -0
  32. package/dist/internal/StateOptions.d.ts.map +1 -1
  33. package/dist/internal/logging.d.ts +6 -7
  34. package/dist/internal/logging.d.ts.map +1 -1
  35. package/dist/internal/logging.js +78 -102
  36. package/dist/internal/logging.js.map +1 -1
  37. package/dist/mod.d.ts +1 -1
  38. package/dist/mod.d.ts.map +1 -1
  39. package/dist/mod.js +1 -1
  40. package/dist/mod.js.map +1 -1
  41. package/package.json +8 -3
  42. package/src/Actor.test-d.ts +38 -0
  43. package/src/Actor.ts +29 -4
  44. package/src/Client.test.ts +21 -18
  45. package/src/Client.ts +6 -4
  46. package/src/Registry.test.ts +7 -11
  47. package/src/Registry.ts +116 -50
  48. package/src/RivetError.test.ts +11 -0
  49. package/src/RivetError.ts +119 -0
  50. package/src/RivetLogger.ts +60 -0
  51. package/src/State.test.ts +163 -4
  52. package/src/State.ts +293 -97
  53. package/src/internal/ActorInstanceManager.ts +4 -10
  54. package/src/internal/ActorStateAdapter.ts +5 -11
  55. package/src/internal/StateOptions.ts +4 -0
  56. package/src/internal/logging.test.ts +65 -88
  57. package/src/internal/logging.ts +103 -143
  58. package/src/mod.ts +1 -1
  59. package/dist/Logger.d.ts +0 -29
  60. package/dist/Logger.d.ts.map +0 -1
  61. package/dist/Logger.js +0 -31
  62. package/dist/Logger.js.map +0 -1
  63. package/src/Logger.ts +0 -43
@@ -7,7 +7,9 @@ export const make = Effect.fnUntraced(function* ({ wakeHandler, stateAdapter, ma
7
7
  const scope = yield* Scope.make();
8
8
  return yield* Effect.gen(function* () {
9
9
  const state = stateAdapter
10
- ? yield* stateAdapter.makeStateView(c)
10
+ ? yield* stateAdapter
11
+ .makeStateView(c)
12
+ .pipe(Effect.provideService(Scope.Scope, scope))
11
13
  : undefined;
12
14
  const context = makeContext(c, scope);
13
15
  const actionHandlers = yield* wakeHandler(makeWakeOptions(c, state)).pipe(Effect.provide(context));
@@ -23,9 +25,7 @@ export const make = Effect.fnUntraced(function* ({ wakeHandler, stateAdapter, ma
23
25
  return {
24
26
  get: (actorId) => instances.get(actorId),
25
27
  onWake: async (c) => {
26
- await runPromise(makeInstance(c).pipe(Effect.tap((instance) => Effect.sync(() => {
27
- instances.set(c.actorId, instance);
28
- }))));
28
+ instances.set(c.actorId, await runPromise(makeInstance(c)));
29
29
  },
30
30
  onStateChange: stateAdapter
31
31
  ? (c, newState) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ActorInstanceManager.js","sourceRoot":"","sources":["../../src/internal/ActorInstanceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActorInstanceManager.js","sourceRoot":"","sources":["../../src/internal/ActorInstanceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAc,QAAQ,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAuC5E,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAK7C,EACD,WAAW,EACX,YAAY,EACZ,WAAW,EACX,eAAe,GAgBf;IACA,MAAM,SAAS,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAO,CAAC;IAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC/C,CAAyC;QAEzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjC,MAAM,KAAK,GAAG,YAAY;gBACzB,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY;qBAClB,aAAa,CAAC,CAAC,CAAC;qBAChB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAClD,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,WAAW,CACxC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,CACzB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAIxC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAE3D,OAAO;gBACN,cAAc;gBACd,OAAO;gBACP,KAAK;gBACL,KAAK;aACL,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CACzC,CACD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,GAAG,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;QAChD,MAAM,EAAE,KAAK,EAAE,CAAyC,EAAE,EAAE;YAC3D,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,aAAa,EAAE,YAAY;YAC1B,CAAC,CAAC,CACA,CAAyC,EACzC,QAAiB,EAChB,EAAE;gBACH,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,gEAAgE;gBAChE,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAEtB,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;YACF,CAAC,CAAC,SAAS;QACZ,UAAU,EAAE,KAAK,EAAE,CAA+B,EAAE,EAAE;YACrD,OAAO,UAAU,CAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1C,iEAAiE;gBACjE,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBAEtB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CACF,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { Effect, type Fiber, Schema } from "effect";
2
2
  import * as State from "../State.ts";
3
3
  import type * as StateOptions from "./StateOptions.ts";
4
- export type ActorState<StateDefinition extends StateOptions.Any> = State.State<StateOptions.Decoded<StateDefinition>, Schema.SchemaError>;
4
+ export type ActorState<StateDefinition extends StateOptions.Any> = State.State<StateOptions.Decoded<StateDefinition>, Schema.SchemaError, StateOptions.Services<StateDefinition>>;
5
5
  type StateInstance<StateDefinition extends StateOptions.Any> = {
6
6
  readonly runFork: <A, E>(effect: Effect.Effect<A, E, any>, options?: Effect.RunOptions) => Fiber.Fiber<A, E>;
7
7
  readonly state?: ActorState<StateDefinition>;
@@ -1 +1 @@
1
- {"version":3,"file":"ActorStateAdapter.d.ts","sourceRoot":"","sources":["../../src/internal/ActorStateAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAC7E,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,EACrC,MAAM,CAAC,WAAW,CAClB,CAAC;AAEF,KAAK,aAAa,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI;IAC9D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,KACvB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI;IAC/D,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;QAC3B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7C,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,OAAO,CACzC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CACrC,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,CACvB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,QAAQ,EAAE,OAAO,KACb,IAAI,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,IAAI,GAChB,eAAe,SAAS,YAAY,CAAC,GAAG,uFAwDvC,CAAC"}
1
+ {"version":3,"file":"ActorStateAdapter.d.ts","sourceRoot":"","sources":["../../src/internal/ActorStateAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,UAAU,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAC7E,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,EACrC,MAAM,CAAC,WAAW,EAClB,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CACtC,CAAC;AAEF,KAAK,aAAa,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI;IAC9D,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAChC,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU,KACvB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,eAAe,SAAS,YAAY,CAAC,GAAG,IAAI;IAC/D,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;QAC3B,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7C,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,OAAO,CACzC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CACrC,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,CACvB,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,QAAQ,EAAE,OAAO,KACb,IAAI,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,IAAI,GAChB,eAAe,SAAS,YAAY,CAAC,GAAG,uFAiDvC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Effect, Schema, Semaphore } from "effect";
1
+ import { Effect, Schema } from "effect";
2
2
  import * as State from "../State.js";
3
3
  export const make = Effect.fnUntraced(function* (stateOptions) {
4
4
  const services = yield* Effect.context();
@@ -16,12 +16,7 @@ export const make = Effect.fnUntraced(function* (stateOptions) {
16
16
  publishChange: (instance, newState) => {
17
17
  instance.runFork(Effect.gen(function* () {
18
18
  const state = yield* Effect.fromNullishOr(instance.state).pipe(Effect.orDie);
19
- yield* Semaphore.withPermit(state.semaphore, Effect.gen(function* () {
20
- const decoded = yield* stateCodec
21
- .decodeUnknown(newState)
22
- .pipe(Effect.orDie);
23
- State.publishUnsafe(state, decoded);
24
- }));
19
+ yield* state[State.RuntimeTypeId].publishEffect(stateCodec.decodeUnknown(newState).pipe(Effect.orDie));
25
20
  }));
26
21
  },
27
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ActorStateAdapter.js","sourceRoot":"","sources":["../../src/internal/ActorStateAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AA6BrC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAG9C,YAA6B;IAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAO,CAAC;IAE9C,MAAM,UAAU,GAAG;QAClB,aAAa,EAAE,MAAM,CAAC,mBAAmB,CACxC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CACvC;QACD,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KACpE,CAAC;IAEF,OAAO;QACN,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CACpB,KAAK,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EACvC,CAAC,IAAI,EAAE,EAAE,CACR,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QACnB,CAAC,CAAC,CACF,EACD,MAAM,CAAC,MAAM,CACb,CACF,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAoC,CAAC,CAC3D;QACF,kBAAkB,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC9B,UAAU;aACR,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;aACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB;QACF,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACrC,QAAQ,CAAC,OAAO,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CACxC,QAAQ,CAAC,KAAK,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAErB,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAC1B,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU;yBAC/B,aAAa,CAAC,QAAQ,CAAC;yBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACrB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrC,CAAC,CAAC,CACF,CAAC;YACH,CAAC,CAAC,CACF,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ActorStateAdapter.js","sourceRoot":"","sources":["../../src/internal/ActorStateAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AA8BrC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAG9C,YAA6B;IAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAO,CAAC;IAE9C,MAAM,UAAU,GAAG;QAClB,aAAa,EAAE,MAAM,CAAC,mBAAmB,CACxC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CACvC;QACD,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;KACpE,CAAC;IAEF,OAAO;QACN,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CACpB,KAAK,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EACvC,CAAC,IAAI,EAAE,EAAE,CACR,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAChB,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QACnB,CAAC,CAAC,CACF,EACD,MAAM,CAAC,MAAM,CACb,CACF,CAAC,IAAI,CACL,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAoC,CAAC,CAC3D;QACF,kBAAkB,EAAE,GAAG,EAAE,CACxB,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC9B,UAAU;aACR,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;aACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB;QACF,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACrC,QAAQ,CAAC,OAAO,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CACxC,QAAQ,CAAC,KAAK,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrB,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,CAC9C,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CACrD,CAAC;YACH,CAAC,CAAC,CACF,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -7,6 +7,7 @@ export interface Any {
7
7
  readonly schema: Schema.Top;
8
8
  readonly initialValue: () => unknown;
9
9
  }
10
+ export type Services<State extends Any> = State["schema"]["DecodingServices"] | State["schema"]["EncodingServices"];
10
11
  export type Encoded<State extends Any> = State["schema"]["Encoded"] | ([State] extends [never] ? undefined : never);
11
12
  export type Decoded<State extends Any> = State["schema"]["Type"];
12
13
  //# sourceMappingURL=StateOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateOptions.d.ts","sourceRoot":"","sources":["../../src/internal/StateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG;IACxD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,GAAG,IAClC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAC1B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;AAEjD,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"StateOptions.d.ts","sourceRoot":"","sources":["../../src/internal/StateOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG;IACxD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,GAAG,IACnC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,GACnC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAEvC,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,GAAG,IAClC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAC1B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;AAEjD,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1,23 +1,22 @@
1
- import { Context, Effect, Logger as EffectLogger, type LogLevel } from "effect";
1
+ import { Context, Effect, Logger } from "effect";
2
2
  import type * as Rivetkit from "rivetkit";
3
- import { type Logger as PinoLogger, type LogLevel as PinoLogLevel } from "rivetkit/log";
3
+ import * as RivetkitLog from "rivetkit/log";
4
4
  type ActorLogContext = {
5
5
  readonly name: string;
6
6
  readonly key: Rivetkit.ActorKey;
7
7
  readonly actorId: string;
8
8
  };
9
- declare const BaseLogger_base: Context.ServiceClass<BaseLogger, "@rivetkit/effect/Logger/BaseLogger", PinoLogger>;
9
+ declare const BaseLogger_base: Context.ServiceClass<BaseLogger, "@rivetkit/effect/RivetLogger/BaseLogger", RivetkitLog.Logger>;
10
10
  export declare class BaseLogger extends BaseLogger_base {
11
11
  }
12
- export declare const toPinoLevel: (logLevel: LogLevel.LogLevel) => PinoLogLevel;
13
- export declare const makeDefaultBaseLogger: Effect.Effect<PinoLogger>;
14
- export declare const getOrCreateBaseLogger: Effect.Effect<PinoLogger>;
12
+ export declare const makeDefaultBaseLogger: Effect.Effect<RivetkitLog.Logger>;
13
+ export declare const getOrCreateBaseLogger: Effect.Effect<RivetkitLog.Logger>;
15
14
  export declare function makeActorLogAnnotations(context: ActorLogContext): {
16
15
  readonly actor: string;
17
16
  readonly key: string;
18
17
  readonly actorId: string;
19
18
  };
20
19
  export declare function serializeActorKey(key: Rivetkit.ActorKey): string;
21
- export declare function makeEffectLogger(baseLogger: PinoLogger): EffectLogger.Logger<unknown, void>;
20
+ export declare function makeLogger(baseLogger: RivetkitLog.Logger): Logger.Logger<unknown, void>;
22
21
  export {};
23
22
  //# sourceMappingURL=logging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,OAAO,EACP,MAAM,EACN,MAAM,IAAI,YAAY,EACtB,KAAK,QAAQ,EAEb,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,EAGN,KAAK,MAAM,IAAI,UAAU,EACzB,KAAK,QAAQ,IAAI,YAAY,EAC7B,MAAM,cAAc,CAAC;AAKtB,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB,CAAC;;AAEF,qBAAa,UAAW,SAAQ,eAE/B;CAAG;AAaJ,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,CAAC,QAAQ,KAAG,YACzB,CAAC;AA4BlC,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAoB3D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAS3D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB,CAMA;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAgBhE;AAmED,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,UAAU,GACpB,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAoCpC"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,OAAO,EACP,MAAM,EACN,MAAM,EAMN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAK5C,KAAK,eAAe,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB,CAAC;;AAEF,qBAAa,UAAW,SAAQ,eAGc;CAAG;AAuCjD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAUjE,CAAC;AAEJ,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAQjE,CAAC;AAEJ,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG;IAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB,CAMA;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAgBhE;AAED,wBAAgB,UAAU,CACzB,UAAU,EAAE,WAAW,CAAC,MAAM,GAC5B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CA4B9B"}
@@ -1,21 +1,11 @@
1
- import { Cause, Config, Context, Effect, Logger as EffectLogger, References, } from "effect";
2
- import { configureDefaultLogger, getBaseLogger, } from "rivetkit/log";
1
+ import { Config, Context, Effect, Logger, Option, Predicate, Record as EffectRecord, References, } from "effect";
2
+ import * as RivetkitLog from "rivetkit/log";
3
3
  const EMPTY_KEY = "/";
4
4
  const KEY_SEPARATOR = "/";
5
- export class BaseLogger extends Context.Service()("@rivetkit/effect/Logger/BaseLogger") {
5
+ export class BaseLogger extends Context.Service()("@rivetkit/effect/RivetLogger/BaseLogger") {
6
6
  }
7
- const PinoLevelByEffectLevel = {
8
- All: "trace",
9
- Trace: "trace",
10
- Debug: "debug",
11
- Info: "info",
12
- Warn: "warn",
13
- Error: "error",
14
- Fatal: "fatal",
15
- None: "silent",
16
- };
17
- export const toPinoLevel = (logLevel) => PinoLevelByEffectLevel[logLevel];
18
- const EffectLevelByPinoLevel = {
7
+ const RivetkitLogLevels = RivetkitLog.LogLevelSchema.options;
8
+ const EffectLevelByRivetkitLevel = {
19
9
  trace: "Trace",
20
10
  debug: "Debug",
21
11
  info: "Info",
@@ -24,32 +14,30 @@ const EffectLevelByPinoLevel = {
24
14
  fatal: "Fatal",
25
15
  silent: "None",
26
16
  };
27
- const pinoLogLevelFromEnv = Config.string("RIVET_LOG_LEVEL").pipe(Config.map((value) => {
28
- const pinoLevel = value.toLowerCase();
29
- if (pinoLevel in EffectLevelByPinoLevel) {
30
- return EffectLevelByPinoLevel[pinoLevel];
31
- }
32
- return "Info";
17
+ const RivetkitLevelByEffectLevel = {
18
+ ...Object.fromEntries(RivetkitLogLevels.map((level) => [
19
+ EffectLevelByRivetkitLevel[level],
20
+ level,
21
+ ])),
22
+ All: "trace",
23
+ };
24
+ const rivetLogLevelFromEnv = Config.string("RIVET_LOG_LEVEL").pipe(Effect.option, Effect.map((maybeRivetLogLevel) => {
25
+ if (Option.isNone(maybeRivetLogLevel))
26
+ return Option.none();
27
+ const parsed = RivetkitLog.LogLevelSchema.safeParse(maybeRivetLogLevel.value.toLowerCase());
28
+ return parsed.success ? Option.some(parsed.data) : Option.none();
33
29
  }));
34
- const logLevelFromEnv = Config.logLevel("RIVET_LOG_LEVEL").pipe(Config.orElse(() => pinoLogLevelFromEnv), Effect.option);
35
30
  export const makeDefaultBaseLogger = Effect.gen(function* () {
36
- const context = yield* Effect.context();
37
- const providedMinimumLogLevel = Context.getOrUndefined(context, References.MinimumLogLevel);
38
- const envLogLevel = yield* logLevelFromEnv;
39
- const logLevel = providedMinimumLogLevel !== undefined
40
- ? providedMinimumLogLevel
41
- : envLogLevel._tag === "Some"
42
- ? envLogLevel.value
43
- : yield* References.MinimumLogLevel;
44
- return yield* Effect.sync(() => {
45
- configureDefaultLogger(toPinoLevel(logLevel));
46
- return getBaseLogger();
47
- });
31
+ const maybeRivetLogLevel = yield* rivetLogLevelFromEnv;
32
+ const logLevel = Option.isSome(maybeRivetLogLevel)
33
+ ? maybeRivetLogLevel.value
34
+ : RivetkitLevelByEffectLevel[yield* References.MinimumLogLevel];
35
+ return yield* Effect.sync(() => RivetkitLog.makeDefaultLogger(logLevel));
48
36
  });
49
37
  export const getOrCreateBaseLogger = Effect.gen(function* () {
50
- const provided = yield* Effect.serviceOption(BaseLogger);
51
- if (provided._tag === "Some") {
52
- return provided.value;
38
+ const maybeBaseLogger = yield* Effect.serviceOption(BaseLogger);
39
+ if (Option.isSome(maybeBaseLogger)) {
40
+ return maybeBaseLogger.value;
53
41
  }
54
42
  return yield* makeDefaultBaseLogger;
55
43
  });
@@ -75,51 +63,62 @@ export function serializeActorKey(key) {
75
63
  })
76
64
  .join(KEY_SEPARATOR);
77
65
  }
78
- function structuredValue(value) {
79
- if (value instanceof Error) {
80
- return value;
81
- }
82
- return value;
66
+ export function makeLogger(baseLogger) {
67
+ return Logger.make((options) => {
68
+ if (options.logLevel === "None")
69
+ return;
70
+ const rivetkitLevel = RivetkitLevelByEffectLevel[options.logLevel];
71
+ const structured = Logger.formatStructured.log(options);
72
+ const { msg, fields: messageFields } = extractMessage(structured.message);
73
+ const fields = {
74
+ ...messageFields,
75
+ ...structured.annotations,
76
+ fiberId: structured.fiberId,
77
+ };
78
+ if (!EffectRecord.isEmptyRecord(structured.spans)) {
79
+ fields.spans = structured.spans;
80
+ }
81
+ if (structured.cause !== undefined) {
82
+ fields.cause = structured.cause;
83
+ }
84
+ const logger = baseLogger[rivetkitLevel];
85
+ if (msg === undefined) {
86
+ logger.call(baseLogger, fields);
87
+ }
88
+ else {
89
+ logger.call(baseLogger, fields, msg);
90
+ }
91
+ });
83
92
  }
84
- function extractMessageAndFields(message) {
93
+ function extractMessage(message) {
85
94
  const values = Array.isArray(message) ? message : [message];
86
- if (values.length === 0) {
87
- return { msg: undefined, fields: {} };
88
- }
89
- const [first, ...rest] = values;
90
95
  const fields = {};
96
+ const args = [];
91
97
  let msg;
92
- if (first instanceof Error) {
93
- fields.error = first;
94
- msg = first.message;
95
- }
96
- else if (first !== null && typeof first === "object") {
97
- const firstFields = first;
98
- for (const [key, value] of Object.entries(firstFields)) {
99
- if (key === "msg") {
100
- if (value !== undefined) {
101
- msg = String(value);
102
- }
103
- }
104
- else {
105
- fields[key] = structuredValue(value);
106
- }
98
+ for (const [index, value] of values.entries()) {
99
+ if (Predicate.isError(value)) {
100
+ fields.error = value;
101
+ if (index === 0)
102
+ msg = value.message;
107
103
  }
108
- }
109
- else if (first !== undefined) {
110
- msg = String(first);
111
- }
112
- const args = [];
113
- for (const value of rest) {
114
- if (value instanceof Error) {
104
+ else if (isStructuredError(value)) {
115
105
  fields.error = value;
106
+ if (index === 0)
107
+ msg = value.error;
116
108
  }
117
- else if (value !== null &&
118
- typeof value === "object" &&
119
- !Array.isArray(value)) {
120
- for (const [key, fieldValue] of Object.entries(value)) {
121
- fields[key] = structuredValue(fieldValue);
109
+ else if (Predicate.isObject(value)) {
110
+ if (index === 0) {
111
+ const { msg: valueMsg, ...rest } = value;
112
+ Object.assign(fields, rest);
113
+ if (valueMsg !== undefined)
114
+ msg = String(valueMsg);
122
115
  }
116
+ else {
117
+ Object.assign(fields, value);
118
+ }
119
+ }
120
+ else if (index === 0) {
121
+ msg = value === undefined ? undefined : String(value);
123
122
  }
124
123
  else {
125
124
  args.push(value);
@@ -130,33 +129,10 @@ function extractMessageAndFields(message) {
130
129
  }
131
130
  return { msg, fields };
132
131
  }
133
- export function makeEffectLogger(baseLogger) {
134
- return EffectLogger.make(({ cause, date, fiber, logLevel, message }) => {
135
- const { msg, fields } = extractMessageAndFields(message);
136
- for (const [key, value] of Object.entries(fiber.getRef(References.CurrentLogAnnotations))) {
137
- fields[key] = structuredValue(value);
138
- }
139
- const spans = {};
140
- for (const [label, startTime] of fiber.getRef(References.CurrentLogSpans)) {
141
- spans[label] = date.getTime() - startTime;
142
- }
143
- if (Object.keys(spans).length > 0) {
144
- fields.spans = spans;
145
- }
146
- if (cause.reasons.length > 0) {
147
- fields.cause = Cause.pretty(cause);
148
- }
149
- const pinoLevel = toPinoLevel(logLevel);
150
- if (pinoLevel === "silent") {
151
- return;
152
- }
153
- const logger = baseLogger[pinoLevel];
154
- if (msg === undefined) {
155
- logger.call(baseLogger, fields);
156
- }
157
- else {
158
- logger.call(baseLogger, fields, msg);
159
- }
160
- });
132
+ function isStructuredError(value) {
133
+ return (Predicate.hasProperty(value, "error") &&
134
+ Predicate.hasProperty(value, "name") &&
135
+ Predicate.isString(value.error) &&
136
+ Predicate.isString(value.name));
161
137
  }
162
138
  //# sourceMappingURL=logging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"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"}
package/dist/mod.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export * as Action from "./Action.ts";
2
2
  export * as Actor from "./Actor.ts";
3
3
  export * as Client from "./Client.ts";
4
- export * as Logger from "./Logger.ts";
5
4
  export * as Registry from "./Registry.ts";
5
+ export * as RivetLogger from "./RivetLogger.ts";
6
6
  export * as RivetError from "./RivetError.ts";
7
7
  export * as State from "./State.ts";
8
8
  //# sourceMappingURL=mod.d.ts.map
package/dist/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
package/dist/mod.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export * as Action from "./Action.js";
2
2
  export * as Actor from "./Actor.js";
3
3
  export * as Client from "./Client.js";
4
- export * as Logger from "./Logger.js";
5
4
  export * as Registry from "./Registry.js";
5
+ export * as RivetLogger from "./RivetLogger.js";
6
6
  export * as RivetError from "./RivetError.js";
7
7
  export * as State from "./State.js";
8
8
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rivetkit/effect",
3
- "version": "0.0.0-main.9d355a2",
3
+ "version": "0.0.0-main.b2d3b94",
4
4
  "description": "Effect SDK for Rivet Actors",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "peerDependencies": {
33
33
  "effect": "^4.0.0-beta.66",
34
- "rivetkit": "0.0.0-main.9d355a2"
34
+ "rivetkit": "0.0.0-main.b2d3b94"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@arethetypeswrong/cli": "^0.18.3",
@@ -40,8 +40,13 @@
40
40
  "@types/node": "^22.18.1",
41
41
  "@vitest/coverage-v8": "^4.1.7",
42
42
  "publint": "^0.3.21",
43
- "rivetkit": "0.0.0-main.9d355a2",
43
+ "rivetkit": "0.0.0-main.b2d3b94",
44
44
  "typescript": "^5.9.2",
45
45
  "vitest": "^4.1.5"
46
+ },
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/rivet-dev/actors.git",
50
+ "directory": "rivetkit-typescript/packages/effect"
46
51
  }
47
52
  }
@@ -76,6 +76,13 @@ const ServiceDependentActor = Actor.make("ServiceDependentActor", {
76
76
  actions: [ServiceDependentAction],
77
77
  });
78
78
 
79
+ const ServiceDependentState = {
80
+ schema: Schema.Struct({
81
+ count: ServiceDependentNumber,
82
+ }),
83
+ initialValue: () => ({ count: 0 }),
84
+ };
85
+
79
86
  const TransformedState = {
80
87
  schema: Schema.Struct({
81
88
  when: Schema.DateFromString,
@@ -182,6 +189,31 @@ describe("Actor.make(...).toLayer", () => {
182
189
  );
183
190
  });
184
191
 
192
+ test("state schema services surface in State effects and actor layers", () => {
193
+ const layer = TestActor.toLayer(
194
+ (wakeOptions) => {
195
+ type StateGetServices = Effect.Services<
196
+ typeof wakeOptions.state.get
197
+ >;
198
+
199
+ expectTypeOf<SomeDep>().toExtend<StateGetServices>();
200
+
201
+ return {
202
+ Ping: () =>
203
+ wakeOptions.state.get.pipe(
204
+ Effect.map((current) => current.count),
205
+ Effect.orDie,
206
+ ),
207
+ };
208
+ },
209
+ { state: ServiceDependentState },
210
+ );
211
+ type LayerServices = Layer.Services<typeof layer>;
212
+ type LayerHasSomeDep = SomeDep extends LayerServices ? true : false;
213
+
214
+ expectTypeOf<LayerHasSomeDep>().toEqualTypeOf<true>();
215
+ });
216
+
185
217
  test("wake options carry the transformed state type", () => {
186
218
  TestActor.toLayer(
187
219
  (wakeOptions) => {
@@ -256,6 +288,12 @@ describe("Actor.make(...).toLayer", () => {
256
288
  expectTypeOf(
257
289
  wakeOptions.rawRivetkitContext.db,
258
290
  ).toEqualTypeOf<RawAccess>();
291
+ expectTypeOf(
292
+ wakeOptions.rawRivetkitContext.db.transaction(
293
+ async () => {},
294
+ { name: "effect-operation", timeout: 1_000 },
295
+ ),
296
+ ).toEqualTypeOf<Promise<void>>();
259
297
 
260
298
  return {
261
299
  Ping: () => Effect.succeed(0),
package/src/Actor.ts CHANGED
@@ -175,7 +175,8 @@ type WakeOptionsFor<
175
175
  : {
176
176
  readonly state: State.State<
177
177
  StateOptions.Decoded<StateDefinition>,
178
- Schema.SchemaError
178
+ Schema.SchemaError,
179
+ StateOptions.Services<StateDefinition>
179
180
  >;
180
181
  });
181
182
 
@@ -232,6 +233,7 @@ type ToLayerRequirements<
232
233
  | ExcludeBuiltInWakeServices<R, State>
233
234
  | ExcludeBuiltInWakeServices<RX, State>
234
235
  | UnknownToNever<ActionHandlerServices<ActionHandlers>>
236
+ | UnknownToNever<StateOptions.Services<State>>
235
237
  | UnknownToNever<Action.ServicesServer<Actions>>
236
238
  | UnknownToNever<Action.ServicesClient<Actions>>
237
239
  | Registry.Registry;
@@ -334,9 +336,9 @@ const Proto: Omit<Actor<any, any>, "name" | "actions"> = {
334
336
  >(wake),
335
337
  options,
336
338
  }).pipe(
337
- Effect.flatMap((rivetKitActor) =>
339
+ Effect.tap((rivetKitActor) =>
338
340
  Registry.Registry.pipe(
339
- Effect.flatMap((registry) =>
341
+ Effect.tap((registry) =>
340
342
  Effect.sync(() =>
341
343
  registry.rivetkitActors.set(
342
344
  this.name,
@@ -375,6 +377,29 @@ export const make = <
375
377
  return self;
376
378
  };
377
379
 
380
+ /**
381
+ * Normalizes any supported actor wake declaration into a wake function.
382
+ *
383
+ * @remarks
384
+ * {@link Actor.toLayer|`Actor.toLayer()`} accepts several equivalent shapes so actor
385
+ * implementations can choose the amount of initialization they need:
386
+ *
387
+ * - a plain action-handler object
388
+ * - an `Effect` that builds an action-handler object
389
+ * - a wake function that receives `wakeOptions` and returns handlers
390
+ * - a wake function that returns an `Effect` of handlers
391
+ * - an `Effect` that builds one of those wake functions
392
+ *
393
+ * This helper resolves those forms lazily for each actor wake and returns a
394
+ * single `(wakeOptions) => Effect<handlers>` representation. It does not run a
395
+ * wake function until the returned function is invoked, so per-wake resources,
396
+ * services, and state are scoped to the specific actor instance that is waking.
397
+ *
398
+ * @param wake - A supported wake declaration shape.
399
+ * @returns A function that resolves action handlers for one actor wake.
400
+ *
401
+ * @internal
402
+ */
378
403
  export function toWakeHandler<
379
404
  ActionHandlers extends object,
380
405
  R,
@@ -443,7 +468,7 @@ export function toWakeHandler<
443
468
 
444
469
  return wakeEffect.pipe(
445
470
  Effect.flatMap((resolvedWake) => {
446
- if (typeof resolvedWake === "function") {
471
+ if (Predicate.isFunction(resolvedWake)) {
447
472
  const actionHandlers = resolvedWake(wakeOptions);
448
473
  return Effect.isEffect(actionHandlers)
449
474
  ? actionHandlers