@ohos-ports/rivetkit-effect 2.3.17-beta.0
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.
- package/dist/Action.d.ts +104 -0
- package/dist/Action.d.ts.map +1 -0
- package/dist/Action.js +50 -0
- package/dist/Action.js.map +1 -0
- package/dist/Actor.d.ts +132 -0
- package/dist/Actor.d.ts.map +1 -0
- package/dist/Actor.js +104 -0
- package/dist/Actor.js.map +1 -0
- package/dist/Client.d.ts +31 -0
- package/dist/Client.d.ts.map +1 -0
- package/dist/Client.js +100 -0
- package/dist/Client.js.map +1 -0
- package/dist/Registry.d.ts +134 -0
- package/dist/Registry.d.ts.map +1 -0
- package/dist/Registry.js +178 -0
- package/dist/Registry.js.map +1 -0
- package/dist/RivetError.d.ts +480 -0
- package/dist/RivetError.d.ts.map +1 -0
- package/dist/RivetError.js +985 -0
- package/dist/RivetError.js.map +1 -0
- package/dist/RivetLogger.d.ts +41 -0
- package/dist/RivetLogger.d.ts.map +1 -0
- package/dist/RivetLogger.js +41 -0
- package/dist/RivetLogger.js.map +1 -0
- package/dist/State.d.ts +159 -0
- package/dist/State.d.ts.map +1 -0
- package/dist/State.js +98 -0
- package/dist/State.js.map +1 -0
- package/dist/internal/ActionDispatcher.d.ts +14 -0
- package/dist/internal/ActionDispatcher.d.ts.map +1 -0
- package/dist/internal/ActionDispatcher.js +100 -0
- package/dist/internal/ActionDispatcher.js.map +1 -0
- package/dist/internal/ActionErrorEnvelope.d.ts +11 -0
- package/dist/internal/ActionErrorEnvelope.d.ts.map +1 -0
- package/dist/internal/ActionErrorEnvelope.js +14 -0
- package/dist/internal/ActionErrorEnvelope.js.map +1 -0
- package/dist/internal/ActorInstanceManager.d.ts +28 -0
- package/dist/internal/ActorInstanceManager.d.ts.map +1 -0
- package/dist/internal/ActorInstanceManager.js +51 -0
- package/dist/internal/ActorInstanceManager.js.map +1 -0
- package/dist/internal/ActorStateAdapter.d.ts +18 -0
- package/dist/internal/ActorStateAdapter.d.ts.map +1 -0
- package/dist/internal/ActorStateAdapter.js +24 -0
- package/dist/internal/ActorStateAdapter.js.map +1 -0
- package/dist/internal/StateOptions.d.ts +13 -0
- package/dist/internal/StateOptions.d.ts.map +1 -0
- package/dist/internal/StateOptions.js +2 -0
- package/dist/internal/StateOptions.js.map +1 -0
- package/dist/internal/logging.d.ts +22 -0
- package/dist/internal/logging.d.ts.map +1 -0
- package/dist/internal/logging.js +138 -0
- package/dist/internal/logging.js.map +1 -0
- package/dist/internal/tracing.d.ts +23 -0
- package/dist/internal/tracing.d.ts.map +1 -0
- package/dist/internal/tracing.js +30 -0
- package/dist/internal/tracing.js.map +1 -0
- package/dist/internal/utils.d.ts +7 -0
- package/dist/internal/utils.d.ts.map +1 -0
- package/dist/internal/utils.js +7 -0
- package/dist/internal/utils.js.map +1 -0
- package/dist/mod.d.ts +8 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +8 -0
- package/dist/mod.js.map +1 -0
- package/package.json +56 -0
- package/src/Action.ts +231 -0
- package/src/Actor.test-d.ts +641 -0
- package/src/Actor.test.ts +209 -0
- package/src/Actor.ts +575 -0
- package/src/Client.test.ts +206 -0
- package/src/Client.ts +218 -0
- package/src/Registry.test-d.ts +126 -0
- package/src/Registry.test.ts +400 -0
- package/src/Registry.ts +304 -0
- package/src/RivetError.test.ts +199 -0
- package/src/RivetError.ts +1163 -0
- package/src/RivetLogger.ts +60 -0
- package/src/State.test.ts +340 -0
- package/src/State.ts +420 -0
- package/src/internal/ActionDispatcher.ts +189 -0
- package/src/internal/ActionErrorEnvelope.ts +19 -0
- package/src/internal/ActorInstanceManager.ts +137 -0
- package/src/internal/ActorStateAdapter.ts +82 -0
- package/src/internal/StateOptions.ts +21 -0
- package/src/internal/logging.test.ts +274 -0
- package/src/internal/logging.ts +197 -0
- package/src/internal/tracing.ts +42 -0
- package/src/internal/utils.ts +12 -0
- package/src/mod.ts +7 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Context, Effect, type Fiber, Scope } from "effect";
|
|
2
|
+
import type * as Rivetkit from "@ohos-ports/rivetkit";
|
|
3
|
+
import type * as RivetkitDb from "@ohos-ports/rivetkit/db";
|
|
4
|
+
import type * as ActorStateAdapter from "./ActorStateAdapter.ts";
|
|
5
|
+
import type * as StateOptions from "./StateOptions.ts";
|
|
6
|
+
type RivetkitDefinitionFor<StateDefinition extends StateOptions.Any, Database extends RivetkitDb.AnyDatabaseProvider> = Rivetkit.ActorDefinition<StateOptions.Encoded<StateDefinition>, undefined, undefined, undefined, undefined, Database, Record<never, never>, Record<never, never>, any>;
|
|
7
|
+
type WakeContext<StateDefinition extends StateOptions.Any, Database extends RivetkitDb.AnyDatabaseProvider> = Rivetkit.WakeContextOf<RivetkitDefinitionFor<StateDefinition, Database>>;
|
|
8
|
+
export type Instance<ActionHandlers, StateDefinition extends StateOptions.Any> = {
|
|
9
|
+
readonly actionHandlers: ActionHandlers;
|
|
10
|
+
readonly runFork: <A, E>(effect: Effect.Effect<A, E, any>, options?: Effect.RunOptions) => Fiber.Fiber<A, E>;
|
|
11
|
+
readonly scope: Scope.Closeable;
|
|
12
|
+
readonly state?: ActorStateAdapter.ActorState<StateDefinition>;
|
|
13
|
+
};
|
|
14
|
+
export declare const make: <ActionHandlers, StateDefinition extends StateOptions.Any, Database extends RivetkitDb.AnyDatabaseProvider, WakeOptions>(args_0: {
|
|
15
|
+
readonly wakeHandler: (wakeOptions: WakeOptions) => Effect.Effect<ActionHandlers, never, any>;
|
|
16
|
+
readonly stateAdapter: ActorStateAdapter.Adapter<StateDefinition> | undefined;
|
|
17
|
+
readonly makeContext: (c: WakeContext<StateDefinition, Database>, scope: Scope.Closeable) => Context.Context<any>;
|
|
18
|
+
readonly makeWakeOptions: (c: WakeContext<StateDefinition, Database>, state: ActorStateAdapter.ActorState<StateDefinition> | undefined) => WakeOptions;
|
|
19
|
+
}) => Effect.Effect<{
|
|
20
|
+
get: (actorId: string) => Instance<ActionHandlers, StateDefinition> | undefined;
|
|
21
|
+
onWake: (c: WakeContext<StateDefinition, Database>) => Promise<void>;
|
|
22
|
+
onStateChange: ((c: WakeContext<StateDefinition, Database>, newState: unknown) => void) | undefined;
|
|
23
|
+
onTeardown: (c: {
|
|
24
|
+
readonly actorId: string;
|
|
25
|
+
}) => Promise<void>;
|
|
26
|
+
}, never, any>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=ActorInstanceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActorInstanceManager.d.ts","sourceRoot":"","sources":["../../src/internal/ActorInstanceManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,KAAK,EAAY,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,KAAK,UAAU,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,KAAK,iBAAiB,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAEvD,KAAK,qBAAqB,CACzB,eAAe,SAAS,YAAY,CAAC,GAAG,EACxC,QAAQ,SAAS,UAAU,CAAC,mBAAmB,IAC5C,QAAQ,CAAC,eAAe,CAC3B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,EACrC,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACpB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACpB,GAAG,CACH,CAAC;AAEF,KAAK,WAAW,CACf,eAAe,SAAS,YAAY,CAAC,GAAG,EACxC,QAAQ,SAAS,UAAU,CAAC,mBAAmB,IAC5C,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,QAAQ,CACnB,cAAc,EACd,eAAe,SAAS,YAAY,CAAC,GAAG,IACrC;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,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,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,IAAI,GAChB,cAAc,EACd,eAAe,SAAS,YAAY,CAAC,GAAG,EACxC,QAAQ,SAAS,UAAU,CAAC,mBAAmB,EAC/C,WAAW;0BAOW,CACrB,WAAW,EAAE,WAAW,KACpB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC;2BAE3C,iBAAiB,CAAC,OAAO,CAAC,eAAe,CAAC,GAC1C,SAAS;0BACU,CACrB,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,EACzC,KAAK,EAAE,KAAK,CAAC,SAAS,KAClB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;8BACC,CACzB,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,EACzC,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,SAAS,KAC5D,WAAW;;mBA4CA,MAAM;gBACH,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC;wBAKlD,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,YAC/B,OAAO;oBASE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE;cAalD,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Context, Effect, Exit, FiberSet, Scope } from "effect";
|
|
2
|
+
export const make = Effect.fnUntraced(function* ({ wakeHandler, stateAdapter, makeContext, makeWakeOptions, }) {
|
|
3
|
+
const instances = new Map();
|
|
4
|
+
const services = yield* Effect.context();
|
|
5
|
+
const runPromise = Effect.runPromiseWith(services);
|
|
6
|
+
const makeInstance = Effect.fnUntraced(function* (c) {
|
|
7
|
+
const scope = yield* Scope.make();
|
|
8
|
+
return yield* Effect.gen(function* () {
|
|
9
|
+
const state = stateAdapter
|
|
10
|
+
? yield* stateAdapter
|
|
11
|
+
.makeStateView(c)
|
|
12
|
+
.pipe(Effect.provideService(Scope.Scope, scope))
|
|
13
|
+
: undefined;
|
|
14
|
+
const context = makeContext(c, scope);
|
|
15
|
+
const actionHandlers = yield* wakeHandler(makeWakeOptions(c, state)).pipe(Effect.provide(context));
|
|
16
|
+
const runFork = yield* FiberSet.makeRuntime().pipe(Effect.provide(Context.merge(services, context)));
|
|
17
|
+
return {
|
|
18
|
+
actionHandlers,
|
|
19
|
+
runFork,
|
|
20
|
+
scope,
|
|
21
|
+
state,
|
|
22
|
+
};
|
|
23
|
+
}).pipe(Effect.onError((cause) => Scope.close(scope, Exit.failCause(cause))));
|
|
24
|
+
});
|
|
25
|
+
return {
|
|
26
|
+
get: (actorId) => instances.get(actorId),
|
|
27
|
+
onWake: async (c) => {
|
|
28
|
+
instances.set(c.actorId, await runPromise(makeInstance(c)));
|
|
29
|
+
},
|
|
30
|
+
onStateChange: stateAdapter
|
|
31
|
+
? (c, newState) => {
|
|
32
|
+
const instance = instances.get(c.actorId);
|
|
33
|
+
// State changes can arrive after teardown removes the instance.
|
|
34
|
+
if (!instance)
|
|
35
|
+
return;
|
|
36
|
+
stateAdapter.publishChange(instance, newState);
|
|
37
|
+
}
|
|
38
|
+
: undefined,
|
|
39
|
+
onTeardown: async (c) => {
|
|
40
|
+
return runPromise(Effect.gen(function* () {
|
|
41
|
+
const instance = instances.get(c.actorId);
|
|
42
|
+
// Teardown can be reported through multiple lifecycle callbacks.
|
|
43
|
+
if (!instance)
|
|
44
|
+
return;
|
|
45
|
+
instances.delete(c.actorId);
|
|
46
|
+
yield* Scope.close(instance.scope, Exit.void);
|
|
47
|
+
}));
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=ActorInstanceManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActorInstanceManager.js","sourceRoot":"","sources":["../../src/internal/ActorInstanceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Effect, type Fiber, Schema } from "effect";
|
|
2
|
+
import * as State from "../State.ts";
|
|
3
|
+
import type * as StateOptions from "./StateOptions.ts";
|
|
4
|
+
export type ActorState<StateDefinition extends StateOptions.Any> = State.State<StateOptions.Decoded<StateDefinition>, Schema.SchemaError, StateOptions.Services<StateDefinition>>;
|
|
5
|
+
type StateInstance<StateDefinition extends StateOptions.Any> = {
|
|
6
|
+
readonly runFork: <A, E>(effect: Effect.Effect<A, E, any>, options?: Effect.RunOptions) => Fiber.Fiber<A, E>;
|
|
7
|
+
readonly state?: ActorState<StateDefinition>;
|
|
8
|
+
};
|
|
9
|
+
export type Adapter<StateDefinition extends StateOptions.Any> = {
|
|
10
|
+
readonly makeStateView: (c: {
|
|
11
|
+
state: StateOptions.Encoded<StateDefinition>;
|
|
12
|
+
}) => Effect.Effect<ActorState<StateDefinition>, never, any>;
|
|
13
|
+
readonly createInitialState: () => Promise<StateOptions.Encoded<StateDefinition>>;
|
|
14
|
+
readonly publishChange: (instance: StateInstance<StateDefinition>, newState: unknown) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare const make: <StateDefinition extends StateOptions.Any>(stateOptions: StateDefinition) => Effect.Effect<Adapter<StateDefinition>, never, any>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=ActorStateAdapter.d.ts.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import * as State from "../State.js";
|
|
3
|
+
export const make = Effect.fnUntraced(function* (stateOptions) {
|
|
4
|
+
const services = yield* Effect.context();
|
|
5
|
+
const stateCodec = {
|
|
6
|
+
decodeUnknown: Schema.decodeUnknownEffect(Schema.toCodecJson(stateOptions.schema)),
|
|
7
|
+
encode: Schema.encodeEffect(Schema.toCodecJson(stateOptions.schema)),
|
|
8
|
+
};
|
|
9
|
+
return {
|
|
10
|
+
makeStateView: (c) => State.make(() => stateCodec.decodeUnknown(c.state), (next) => stateCodec.encode(next).pipe(Effect.tap((encoded) => Effect.sync(() => {
|
|
11
|
+
c.state = encoded;
|
|
12
|
+
})), Effect.asVoid)).pipe(Effect.orDie, Effect.map((state) => state)),
|
|
13
|
+
createInitialState: () => Effect.runPromiseWith(services)(stateCodec
|
|
14
|
+
.encode(stateOptions.initialValue())
|
|
15
|
+
.pipe(Effect.orDie)),
|
|
16
|
+
publishChange: (instance, newState) => {
|
|
17
|
+
instance.runFork(Effect.gen(function* () {
|
|
18
|
+
const state = yield* Effect.fromNullishOr(instance.state).pipe(Effect.orDie);
|
|
19
|
+
yield* state[State.RuntimeTypeId].publishEffect(stateCodec.decodeUnknown(newState).pipe(Effect.orDie));
|
|
20
|
+
}));
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=ActorStateAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Schema } from "effect";
|
|
2
|
+
export interface StateOptions<in out S extends Schema.Top> {
|
|
3
|
+
readonly schema: S;
|
|
4
|
+
readonly initialValue: () => S["Type"];
|
|
5
|
+
}
|
|
6
|
+
export interface Any {
|
|
7
|
+
readonly schema: Schema.Top;
|
|
8
|
+
readonly initialValue: () => unknown;
|
|
9
|
+
}
|
|
10
|
+
export type Services<State extends Any> = State["schema"]["DecodingServices"] | State["schema"]["EncodingServices"];
|
|
11
|
+
export type Encoded<State extends Any> = State["schema"]["Encoded"] | ([State] extends [never] ? undefined : never);
|
|
12
|
+
export type Decoded<State extends Any> = State["schema"]["Type"];
|
|
13
|
+
//# sourceMappingURL=StateOptions.d.ts.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateOptions.js","sourceRoot":"","sources":["../../src/internal/StateOptions.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Context, Effect, Logger } from "effect";
|
|
2
|
+
import type * as Rivetkit from "@ohos-ports/rivetkit";
|
|
3
|
+
import * as RivetkitLog from "@ohos-ports/rivetkit/log";
|
|
4
|
+
type ActorLogContext = {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly key: Rivetkit.ActorKey;
|
|
7
|
+
readonly actorId: string;
|
|
8
|
+
};
|
|
9
|
+
declare const BaseLogger_base: Context.ServiceClass<BaseLogger, "@rivetkit/effect/RivetLogger/BaseLogger", RivetkitLog.Logger>;
|
|
10
|
+
export declare class BaseLogger extends BaseLogger_base {
|
|
11
|
+
}
|
|
12
|
+
export declare const makeDefaultBaseLogger: Effect.Effect<RivetkitLog.Logger>;
|
|
13
|
+
export declare const getOrCreateBaseLogger: Effect.Effect<RivetkitLog.Logger>;
|
|
14
|
+
export declare function makeActorLogAnnotations(context: ActorLogContext): {
|
|
15
|
+
readonly actor: string;
|
|
16
|
+
readonly key: string;
|
|
17
|
+
readonly actorId: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function serializeActorKey(key: Rivetkit.ActorKey): string;
|
|
20
|
+
export declare function makeLogger(baseLogger: RivetkitLog.Logger): Logger.Logger<unknown, void>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Config, Context, Effect, Logger, Option, Predicate, Record as EffectRecord, References, } from "effect";
|
|
2
|
+
import * as RivetkitLog from "@ohos-ports/rivetkit/log";
|
|
3
|
+
const EMPTY_KEY = "/";
|
|
4
|
+
const KEY_SEPARATOR = "/";
|
|
5
|
+
export class BaseLogger extends Context.Service()("@rivetkit/effect/RivetLogger/BaseLogger") {
|
|
6
|
+
}
|
|
7
|
+
const RivetkitLogLevels = RivetkitLog.LogLevelSchema.options;
|
|
8
|
+
const EffectLevelByRivetkitLevel = {
|
|
9
|
+
trace: "Trace",
|
|
10
|
+
debug: "Debug",
|
|
11
|
+
info: "Info",
|
|
12
|
+
warn: "Warn",
|
|
13
|
+
error: "Error",
|
|
14
|
+
fatal: "Fatal",
|
|
15
|
+
silent: "None",
|
|
16
|
+
};
|
|
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();
|
|
29
|
+
}));
|
|
30
|
+
export const makeDefaultBaseLogger = Effect.gen(function* () {
|
|
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));
|
|
36
|
+
});
|
|
37
|
+
export const getOrCreateBaseLogger = Effect.gen(function* () {
|
|
38
|
+
const maybeBaseLogger = yield* Effect.serviceOption(BaseLogger);
|
|
39
|
+
if (Option.isSome(maybeBaseLogger)) {
|
|
40
|
+
return maybeBaseLogger.value;
|
|
41
|
+
}
|
|
42
|
+
return yield* makeDefaultBaseLogger;
|
|
43
|
+
});
|
|
44
|
+
export function makeActorLogAnnotations(context) {
|
|
45
|
+
return {
|
|
46
|
+
actor: context.name,
|
|
47
|
+
key: serializeActorKey(context.key),
|
|
48
|
+
actorId: context.actorId,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export function serializeActorKey(key) {
|
|
52
|
+
if (key.length === 0) {
|
|
53
|
+
return EMPTY_KEY;
|
|
54
|
+
}
|
|
55
|
+
return key
|
|
56
|
+
.map((part) => {
|
|
57
|
+
if (part === "") {
|
|
58
|
+
return "\\0";
|
|
59
|
+
}
|
|
60
|
+
return part
|
|
61
|
+
.replace(/\\/g, "\\\\")
|
|
62
|
+
.replace(/\//g, `\\${KEY_SEPARATOR}`);
|
|
63
|
+
})
|
|
64
|
+
.join(KEY_SEPARATOR);
|
|
65
|
+
}
|
|
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
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function extractMessage(message) {
|
|
94
|
+
const values = Array.isArray(message) ? message : [message];
|
|
95
|
+
const fields = {};
|
|
96
|
+
const args = [];
|
|
97
|
+
let msg;
|
|
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;
|
|
103
|
+
}
|
|
104
|
+
else if (isStructuredError(value)) {
|
|
105
|
+
fields.error = value;
|
|
106
|
+
if (index === 0)
|
|
107
|
+
msg = value.error;
|
|
108
|
+
}
|
|
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);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
Object.assign(fields, value);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else if (index === 0) {
|
|
121
|
+
msg = value === undefined ? undefined : String(value);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
args.push(value);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (args.length > 0) {
|
|
128
|
+
fields.args = args;
|
|
129
|
+
}
|
|
130
|
+
return { msg, fields };
|
|
131
|
+
}
|
|
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));
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/internal/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identifies the SDK as the RPC system on action spans. Stamped onto
|
|
3
|
+
* the `rpc.system.name` OTel attribute.
|
|
4
|
+
*/
|
|
5
|
+
export declare const rpcSystem = "rivet.actors";
|
|
6
|
+
/**
|
|
7
|
+
* Cross-wire trace metadata. Carries just enough of an `Effect.Tracer`
|
|
8
|
+
* span to reconstitute it on the server as a `Tracer.externalSpan`
|
|
9
|
+
* parent for the handler's span.
|
|
10
|
+
*/
|
|
11
|
+
export interface TraceMeta {
|
|
12
|
+
readonly traceId: string;
|
|
13
|
+
readonly spanId: string;
|
|
14
|
+
readonly sampled: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Pull a valid `TraceMeta` out of the wire `ActionMeta` envelope, or
|
|
18
|
+
* `undefined` if the caller didn't ship one (or shipped something
|
|
19
|
+
* malformed). Kept lenient because the meta envelope is forward-
|
|
20
|
+
* extensible — future fields shouldn't break trace extraction.
|
|
21
|
+
*/
|
|
22
|
+
export declare const readTraceMeta: (meta: unknown) => TraceMeta | undefined;
|
|
23
|
+
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/internal/tracing.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,SAAS,GAAG,SAgBzD,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Predicate } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* Identifies the SDK as the RPC system on action spans. Stamped onto
|
|
4
|
+
* the `rpc.system.name` OTel attribute.
|
|
5
|
+
*/
|
|
6
|
+
export const rpcSystem = "rivet.actors";
|
|
7
|
+
/**
|
|
8
|
+
* Pull a valid `TraceMeta` out of the wire `ActionMeta` envelope, or
|
|
9
|
+
* `undefined` if the caller didn't ship one (or shipped something
|
|
10
|
+
* malformed). Kept lenient because the meta envelope is forward-
|
|
11
|
+
* extensible — future fields shouldn't break trace extraction.
|
|
12
|
+
*/
|
|
13
|
+
export const readTraceMeta = (meta) => {
|
|
14
|
+
if (!Predicate.isObject(meta))
|
|
15
|
+
return undefined;
|
|
16
|
+
const trace = meta.trace;
|
|
17
|
+
if (!Predicate.isObject(trace))
|
|
18
|
+
return undefined;
|
|
19
|
+
if (!Predicate.isString(trace.traceId) ||
|
|
20
|
+
!Predicate.isString(trace.spanId) ||
|
|
21
|
+
!Predicate.isBoolean(trace.sampled)) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
traceId: trace.traceId,
|
|
26
|
+
spanId: trace.spanId,
|
|
27
|
+
sampled: trace.sampled,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/internal/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC;AAaxC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAa,EAAyB,EAAE;IACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IACC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAClC,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO;QACN,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;KACtB,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Predicate } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* Refinement that narrows `unknown` to an object with `key` set to a
|
|
4
|
+
* `string`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const hasStringProperty: <K extends PropertyKey>(key: K) => Predicate.Refinement<unknown, { readonly [P in K]: string; }>;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,CAAC,SAAS,WAAW,EACrB,KAAK,CAAC,KACJ,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,GAAE,CAEF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Predicate } from "effect";
|
|
2
|
+
/**
|
|
3
|
+
* Refinement that narrows `unknown` to an object with `key` set to a
|
|
4
|
+
* `string`.
|
|
5
|
+
*/
|
|
6
|
+
export const hasStringProperty = (key) => (u) => Predicate.hasProperty(u, key) && Predicate.isString(u[key]);
|
|
7
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC7B,CACC,GAAM,EACyD,EAAE,CAClE,CAAC,CAAC,EAAsC,EAAE,CACzC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
package/dist/mod.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as Action from "./Action.ts";
|
|
2
|
+
export * as Actor from "./Actor.ts";
|
|
3
|
+
export * as Client from "./Client.ts";
|
|
4
|
+
export * as Registry from "./Registry.ts";
|
|
5
|
+
export * as RivetLogger from "./RivetLogger.ts";
|
|
6
|
+
export * as RivetError from "./RivetError.ts";
|
|
7
|
+
export * as State from "./State.ts";
|
|
8
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +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,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
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as Action from "./Action.js";
|
|
2
|
+
export * as Actor from "./Actor.js";
|
|
3
|
+
export * as Client from "./Client.js";
|
|
4
|
+
export * as Registry from "./Registry.js";
|
|
5
|
+
export * as RivetLogger from "./RivetLogger.js";
|
|
6
|
+
export * as RivetError from "./RivetError.js";
|
|
7
|
+
export * as State from "./State.js";
|
|
8
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
|
@@ -0,0 +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,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
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ohos-ports/rivetkit-effect",
|
|
3
|
+
"version": "2.3.17-beta.0",
|
|
4
|
+
"description": "Effect SDK for Rivet Actors",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"files": [
|
|
9
|
+
"src/**/*.ts",
|
|
10
|
+
"dist/**/*.js",
|
|
11
|
+
"dist/**/*.js.map",
|
|
12
|
+
"dist/**/*.d.ts",
|
|
13
|
+
"dist/**/*.d.ts.map"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": "./dist/mod.js"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": "./dist/mod.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc -p tsconfig.build.json",
|
|
26
|
+
"check-types": "tsc --noEmit",
|
|
27
|
+
"lint:publint": "publint --strict",
|
|
28
|
+
"lint:attw": "attw --pack . --profile esm-only",
|
|
29
|
+
"test": "vitest --typecheck",
|
|
30
|
+
"coverage": "vitest run --coverage"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"effect": "4.0.0-beta.66",
|
|
34
|
+
"@ohos-ports/rivetkit": "^2.3.15-beta.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@arethetypeswrong/cli": "^0.18.3",
|
|
38
|
+
"@effect/language-service": "^0.85.1",
|
|
39
|
+
"@effect/vitest": "^4.0.0-beta.66",
|
|
40
|
+
"@types/node": "^22.18.1",
|
|
41
|
+
"@vitest/coverage-v8": "^4.1.7",
|
|
42
|
+
"publint": "^0.3.21",
|
|
43
|
+
"typescript": "^5.9.2",
|
|
44
|
+
"vitest": "^4.1.5",
|
|
45
|
+
"@ohos-ports/rivetkit": "^2.3.15-beta.0",
|
|
46
|
+
"effect": "4.0.0-beta.66"
|
|
47
|
+
},
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "https://github.com/ohos-ports/ohos-ports.git",
|
|
51
|
+
"directory": "ports/@rivetkit/effect/2.3.17"
|
|
52
|
+
},
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/ohos-ports/ohos-ports/issues"
|
|
55
|
+
}
|
|
56
|
+
}
|