@livestore/utils 0.3.1 → 0.3.2-dev.1
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/.tsbuildinfo.json +1 -1
- package/dist/NoopTracer.d.ts +1 -0
- package/dist/NoopTracer.d.ts.map +1 -1
- package/dist/NoopTracer.js +1 -1
- package/dist/NoopTracer.js.map +1 -1
- package/dist/base64.d.ts.map +1 -1
- package/dist/base64.js +2 -2
- package/dist/base64.js.map +1 -1
- package/dist/cuid/cuid.browser.d.ts.map +1 -1
- package/dist/cuid/cuid.browser.js +12 -10
- package/dist/cuid/cuid.browser.js.map +1 -1
- package/dist/cuid/cuid.node.d.ts.map +1 -1
- package/dist/cuid/cuid.node.js +17 -11
- package/dist/cuid/cuid.node.js.map +1 -1
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +3 -3
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Scheduler.d.ts.map +1 -1
- package/dist/effect/Scheduler.js +0 -1
- package/dist/effect/Scheduler.js.map +1 -1
- package/dist/effect/Schema/debug-diff.test.js +1 -1
- package/dist/effect/Schema/index.d.ts +2 -2
- package/dist/effect/Schema/index.js +3 -3
- package/dist/effect/Subscribable.d.ts.map +1 -1
- package/dist/effect/Subscribable.js +2 -3
- package/dist/effect/Subscribable.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.d.ts +13 -17
- package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
- package/dist/effect/WebChannel/WebChannel.js +5 -6
- package/dist/effect/WebChannel/WebChannel.js.map +1 -1
- package/dist/effect/WebChannel/WebChannel.test.js +1 -1
- package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts +2 -2
- package/dist/effect/WebChannel/broadcastChannelWithAck.js +2 -2
- package/dist/effect/WebChannel/mod.d.ts +3 -3
- package/dist/effect/WebChannel/mod.d.ts.map +1 -1
- package/dist/effect/WebChannel/mod.js +3 -3
- package/dist/effect/WebChannel/mod.js.map +1 -1
- package/dist/effect/WebLock.d.ts +1 -1
- package/dist/effect/WebLock.d.ts.map +1 -1
- package/dist/effect/WebLock.js.map +1 -1
- package/dist/effect/WebSocket.test.js +1 -1
- package/dist/effect/index.d.ts +22 -23
- package/dist/effect/index.d.ts.map +1 -1
- package/dist/effect/index.js +25 -26
- package/dist/effect/index.js.map +1 -1
- package/dist/env.js +1 -1
- package/dist/fast-deep-equal.d.ts.map +1 -1
- package/dist/fast-deep-equal.js +9 -8
- package/dist/fast-deep-equal.js.map +1 -1
- package/dist/global.js.map +1 -1
- package/dist/index.d.ts +18 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -17
- package/dist/index.js.map +1 -1
- package/dist/misc.d.ts.map +1 -1
- package/dist/misc.js +3 -3
- package/dist/misc.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js +3 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +2 -2
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +4 -4
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +3 -3
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +1 -1
- package/dist/node/mod.d.ts +4 -4
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +5 -5
- package/dist/node/mod.js.map +1 -1
- package/dist/object/index.d.ts +3 -2
- package/dist/object/index.d.ts.map +1 -1
- package/dist/object/index.js +3 -2
- package/dist/object/index.js.map +1 -1
- package/dist/object/stringify-object.d.ts +9 -0
- package/dist/object/stringify-object.d.ts.map +1 -0
- package/dist/object/stringify-object.js +27 -0
- package/dist/object/stringify-object.js.map +1 -0
- package/dist/object/stringify-object.test.d.ts +2 -0
- package/dist/object/stringify-object.test.d.ts.map +1 -0
- package/dist/object/stringify-object.test.js +38 -0
- package/dist/object/stringify-object.test.js.map +1 -0
- package/package.json +43 -35
- package/src/NoopTracer.ts +2 -2
- package/src/base64.ts +2 -3
- package/src/cuid/cuid.browser.ts +20 -21
- package/src/cuid/cuid.node.ts +33 -34
- package/src/effect/Effect.ts +6 -3
- package/src/effect/Scheduler.ts +0 -1
- package/src/effect/Schema/debug-diff.test.ts +2 -2
- package/src/effect/Schema/index.ts +3 -3
- package/src/effect/Subscribable.ts +6 -5
- package/src/effect/WebChannel/WebChannel.test.ts +1 -1
- package/src/effect/WebChannel/WebChannel.ts +17 -21
- package/src/effect/WebChannel/broadcastChannelWithAck.ts +3 -3
- package/src/effect/WebChannel/mod.ts +3 -3
- package/src/effect/WebLock.ts +2 -2
- package/src/effect/WebSocket.test.ts +1 -1
- package/src/effect/index.ts +104 -110
- package/src/env.ts +1 -1
- package/src/fast-deep-equal.ts +9 -10
- package/src/index.ts +27 -17
- package/src/misc.ts +3 -3
- package/src/node/ChildProcessRunner/ChildProcessRunner.ts +1 -1
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +3 -3
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +3 -3
- package/src/node/ChildProcessRunner/ChildProcessWorker.ts +1 -4
- package/src/node/mod.ts +6 -6
- package/src/object/index.ts +3 -2
- package/src/object/stringify-object.test.ts +44 -0
- package/src/object/stringify-object.ts +27 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessRunner.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChildProcessRunner.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAOvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AA8DrC,eAAO,MAAM,KAAK,kDAA2D,CAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
2
1
|
import process from 'node:process';
|
|
3
2
|
import { WorkerError } from '@effect/platform/WorkerError';
|
|
4
3
|
import * as Runner from '@effect/platform/WorkerRunner';
|
|
@@ -24,7 +23,9 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
24
23
|
close: () => process.disconnect(),
|
|
25
24
|
};
|
|
26
25
|
const send = (_portId, message, _transfers) => Effect.sync(() => port.postMessage([1, message] /*, transfers as any*/));
|
|
27
|
-
const run = Effect.fnUntraced(function* (
|
|
26
|
+
const run = Effect.fnUntraced(function* (
|
|
27
|
+
// biome-ignore lint/suspicious/noConfusingVoidType: need to support void
|
|
28
|
+
handler) {
|
|
28
29
|
const runtime = (yield* Effect.interruptible(Effect.runtime())).pipe(Runtime.updateContext(Context.omit(Scope.Scope)));
|
|
29
30
|
const fiberSet = yield* FiberSet.make();
|
|
30
31
|
const runFork = Runtime.runFork(runtime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessRunner.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ChildProcessRunner.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import * as ChildProcess from 'node:child_process';
|
|
|
3
3
|
import * as EffectWorker from '@effect/platform/Worker';
|
|
4
4
|
import { assert, describe, it } from '@effect/vitest';
|
|
5
5
|
import { Chunk, Effect, Stream } from 'effect';
|
|
6
|
-
import * as ChildProcessWorker from
|
|
7
|
-
import { GetPersonById, GetUserById, InitialMessage, Person, User } from
|
|
6
|
+
import * as ChildProcessWorker from "../ChildProcessWorker.js";
|
|
7
|
+
import { GetPersonById, GetUserById, InitialMessage, Person, User } from "./schema.js";
|
|
8
8
|
const WorkerLive = ChildProcessWorker.layer(() => ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url)));
|
|
9
9
|
// const WorkerLive = NodeWorker.layer(
|
|
10
10
|
// () =>
|
|
@@ -6,9 +6,9 @@ declare const User_base: Schema.Class<User, {
|
|
|
6
6
|
id: typeof Schema.Number;
|
|
7
7
|
name: typeof Schema.String;
|
|
8
8
|
}>, never, {
|
|
9
|
-
readonly name: string;
|
|
10
|
-
} & {
|
|
11
9
|
readonly id: number;
|
|
10
|
+
} & {
|
|
11
|
+
readonly name: string;
|
|
12
12
|
}, {}, {}>;
|
|
13
13
|
export declare class User extends User_base {
|
|
14
14
|
}
|
|
@@ -28,11 +28,11 @@ declare const Person_base: Schema.Class<Person, {
|
|
|
28
28
|
name: typeof Schema.String;
|
|
29
29
|
data: typeof Schema.Uint8Array;
|
|
30
30
|
}>, never, {
|
|
31
|
-
readonly
|
|
31
|
+
readonly data: Uint8Array<ArrayBufferLike>;
|
|
32
32
|
} & {
|
|
33
33
|
readonly id: number;
|
|
34
34
|
} & {
|
|
35
|
-
readonly
|
|
35
|
+
readonly name: string;
|
|
36
36
|
}, {}, {}>;
|
|
37
37
|
export declare class Person extends Person_base {
|
|
38
38
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as Runner from '@effect/platform/WorkerRunner';
|
|
2
2
|
import { Context, Effect, Layer, Option, Stream } from 'effect';
|
|
3
3
|
// import { NodeRuntime, NodeWorkerRunner } from '@effect/platform-node'
|
|
4
|
-
import { PlatformNode } from
|
|
5
|
-
import * as ChildProcessRunner from
|
|
6
|
-
import { Person, User, WorkerMessage } from
|
|
4
|
+
import { PlatformNode } from "../../mod.js";
|
|
5
|
+
import * as ChildProcessRunner from "../ChildProcessRunner.js";
|
|
6
|
+
import { Person, User, WorkerMessage } from "./schema.js";
|
|
7
7
|
const Name = Context.GenericTag('Name');
|
|
8
8
|
const WorkerLive = Runner.layerSerialized(WorkerMessage, {
|
|
9
9
|
GetPersonById: (req) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import type * as ChildProcess from 'node:child_process';
|
|
1
2
|
import * as Worker from '@effect/platform/Worker';
|
|
2
|
-
import type * as ChildProcess from 'child_process';
|
|
3
3
|
import * as Layer from 'effect/Layer';
|
|
4
4
|
export declare const layerWorker: Layer.Layer<Worker.PlatformWorker, never, never>;
|
|
5
5
|
export declare const layerManager: Layer.Layer<Worker.WorkerManager, never, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessWorker.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChildProcessWorker.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAKjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAgDrC,eAAO,MAAM,WAAW,kDAA2D,CAAA;AAEnF,eAAO,MAAM,YAAY,iDAAkD,CAAA;AAE3E,eAAO,MAAM,KAAK,GAAI,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,CAAC,YAAY,qEACf,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessWorker.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChildProcessWorker.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"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"}
|
package/dist/node/mod.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Effect, Layer } from 'effect';
|
|
2
|
-
import { OtelTracer, UnknownError } from '../effect/index.
|
|
2
|
+
import { OtelTracer, UnknownError } from '../effect/index.ts';
|
|
3
3
|
export * as Cli from '@effect/cli';
|
|
4
|
-
export * as PlatformNode from '@effect/platform-node';
|
|
5
4
|
export * as SocketServer from '@effect/platform/SocketServer';
|
|
6
|
-
export * as
|
|
7
|
-
export * as
|
|
5
|
+
export * as PlatformNode from '@effect/platform-node';
|
|
6
|
+
export * as ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.ts';
|
|
7
|
+
export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.ts';
|
|
8
8
|
export declare const getFreePort: Effect.Effect<number, UnknownError, never>;
|
|
9
9
|
export declare const OtelLiveDummy: Layer.Layer<OtelTracer.OtelTracer>;
|
|
10
10
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/node/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAOhF,eAAO,MAAM,WAAW,4CAuBtB,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAQ3D,CAAA"}
|
package/dist/node/mod.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as http from 'node:http';
|
|
2
2
|
import { Effect, Layer } from 'effect';
|
|
3
|
-
import { OtelTracer, UnknownError } from
|
|
4
|
-
import { makeNoopTracer } from
|
|
3
|
+
import { OtelTracer, UnknownError } from "../effect/index.js";
|
|
4
|
+
import { makeNoopTracer } from "../NoopTracer.js";
|
|
5
5
|
export * as Cli from '@effect/cli';
|
|
6
|
-
export * as PlatformNode from '@effect/platform-node';
|
|
7
6
|
export * as SocketServer from '@effect/platform/SocketServer';
|
|
8
|
-
export * as
|
|
9
|
-
export * as
|
|
7
|
+
export * as PlatformNode from '@effect/platform-node';
|
|
8
|
+
export * as ChildProcessRunner from "./ChildProcessRunner/ChildProcessRunner.js";
|
|
9
|
+
export * as ChildProcessWorker from "./ChildProcessRunner/ChildProcessWorker.js";
|
|
10
10
|
// Enable debug logging for OpenTelemetry
|
|
11
11
|
// otel.diag.setLogger(new otel.DiagConsoleLogger(), otel.DiagLogLevel.ERROR)
|
|
12
12
|
// export const OtelLiveHttp = (args: any): Layer.Layer<never> => Layer.empty
|
package/dist/node/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAEhF,yCAAyC;AACzC,6EAA6E;AAE7E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IAElC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAuC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAA;IAE7E,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACvF,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CACnC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA"}
|
package/dist/object/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
1
|
+
export * from './omit.ts';
|
|
2
|
+
export * from './pick.ts';
|
|
3
|
+
export * from './stringify-object.ts';
|
|
3
4
|
type ValueOfRecord<R extends Record<any, any>> = R extends Record<any, infer V> ? V : never;
|
|
4
5
|
export declare const mapObjectValues: <O_In extends Record<string, any>, V_Out>(obj: O_In, mapValue: (key: keyof O_In, val: ValueOfRecord<O_In>) => V_Out) => { [K in keyof O_In]: V_Out; };
|
|
5
6
|
export type Entries<T> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AAErC,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE3F,eAAO,MAAM,eAAe,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EACrE,KAAK,IAAI,EACT,UAAU,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,KAAK,KAC7D,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,KAAK,GAG5B,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;AAEjE,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,KAAG,OAAO,CAAC,CAAC,CAAsC,CAAA;AAErH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,IAAI,KAAG,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,GAI9F,CAAA"}
|
package/dist/object/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { pipe } from 'effect';
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
2
|
+
export * from "./omit.js";
|
|
3
|
+
export * from "./pick.js";
|
|
4
|
+
export * from "./stringify-object.js";
|
|
4
5
|
export const mapObjectValues = (obj, mapValue) => {
|
|
5
6
|
const mappedEntries = Object.entries(obj).map(([key, val]) => [key, mapValue(key, val)]);
|
|
6
7
|
return Object.fromEntries(mappedEntries);
|
package/dist/object/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA;AAIrC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAS,EACT,QAA8D,EAChC,EAAE;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAiB,EAAE,GAAG,CAAC,CAAU,CAAC,CAAA;IAC/G,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;AACjD,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,aAAa,GAAG,CAAgC,GAAM,EAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAe,CAAA;AAErH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAmC,GAAS,EAA4B,EAAE,CAC3G,IAAI,CACF,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACvC,MAAM,CAAC,WAAW,CACZ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stringifies object into the following format:
|
|
3
|
+
*
|
|
4
|
+
* `prop1=value prop2=value prop3.key1=value prop3.key2=value prop4.key1=[value1, value2]`
|
|
5
|
+
*
|
|
6
|
+
* This is useful for logging and debugging.
|
|
7
|
+
*/
|
|
8
|
+
export declare const stringifyObject: (obj: object, prefix?: string) => string;
|
|
9
|
+
//# sourceMappingURL=stringify-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.d.ts","sourceRoot":"","sources":["../../src/object/stringify-object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,eAAW,KAAG,MAmB1D,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stringifies object into the following format:
|
|
3
|
+
*
|
|
4
|
+
* `prop1=value prop2=value prop3.key1=value prop3.key2=value prop4.key1=[value1, value2]`
|
|
5
|
+
*
|
|
6
|
+
* This is useful for logging and debugging.
|
|
7
|
+
*/
|
|
8
|
+
export const stringifyObject = (obj, prefix = '') => {
|
|
9
|
+
const entries = [];
|
|
10
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
11
|
+
const fullKey = prefix !== '' ? `${prefix}.${key}` : key;
|
|
12
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
13
|
+
// Recursively stringify nested objects with dot notation
|
|
14
|
+
entries.push(stringifyObject(value, fullKey));
|
|
15
|
+
}
|
|
16
|
+
else if (Array.isArray(value)) {
|
|
17
|
+
// Arrays get converted to comma-separated values
|
|
18
|
+
entries.push(`${fullKey}=${value.join(',')}`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Primitive values
|
|
22
|
+
entries.push(`${fullKey}=${value}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return entries.join(' ');
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=stringify-object.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.js","sourceRoot":"","sources":["../../src/object/stringify-object.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,MAAM,GAAG,EAAE,EAAU,EAAE;IAClE,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,yDAAyD;YACzD,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,mBAAmB;YACnB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.test.d.ts","sourceRoot":"","sources":["../../src/object/stringify-object.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { stringifyObject } from "./stringify-object.js";
|
|
3
|
+
describe('stringifyObject', () => {
|
|
4
|
+
it('stringifies a flat object', () => {
|
|
5
|
+
const obj = { a: 1, b: 'test', c: true };
|
|
6
|
+
expect(stringifyObject(obj)).toBe('a=1 b=test c=true');
|
|
7
|
+
});
|
|
8
|
+
it('stringifies a nested object with dot notation', () => {
|
|
9
|
+
const obj = { a: 1, b: { c: 2, d: 'x' } };
|
|
10
|
+
expect(stringifyObject(obj)).toBe('a=1 b.c=2 b.d=x');
|
|
11
|
+
});
|
|
12
|
+
it('stringifies an object with array values', () => {
|
|
13
|
+
const obj = { a: [1, 2, 3], b: 'x' };
|
|
14
|
+
expect(stringifyObject(obj)).toBe('a=1,2,3 b=x');
|
|
15
|
+
});
|
|
16
|
+
it('handles objects with undefined and null values', () => {
|
|
17
|
+
const obj = { a: undefined, b: null, c: 1 };
|
|
18
|
+
expect(stringifyObject(obj)).toBe('a=undefined b=null c=1');
|
|
19
|
+
});
|
|
20
|
+
it('handles deeply nested objects', () => {
|
|
21
|
+
const obj = { a: { b: { c: { d: 1 } } } };
|
|
22
|
+
expect(stringifyObject(obj)).toBe('a.b.c.d=1');
|
|
23
|
+
});
|
|
24
|
+
it('handles complex nested objects with arrays', () => {
|
|
25
|
+
const obj = {
|
|
26
|
+
config: {
|
|
27
|
+
values: [1, 2],
|
|
28
|
+
settings: { enabled: true },
|
|
29
|
+
},
|
|
30
|
+
name: 'test',
|
|
31
|
+
};
|
|
32
|
+
expect(stringifyObject(obj)).toBe('config.values=1,2 config.settings.enabled=true name=test');
|
|
33
|
+
});
|
|
34
|
+
it('handles empty object', () => {
|
|
35
|
+
expect(stringifyObject({})).toBe('');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=stringify-object.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringify-object.test.js","sourceRoot":"","sources":["../../src/object/stringify-object.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;QACxC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAA;QACzC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;QACpC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC3C,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAA;QACzC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,GAAG,GAAG;YACV,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACd,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;aAC5B;YACD,IAAI,EAAE,MAAM;SACb,CAAA;QACD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/utils",
|
|
3
|
-
"version": "0.3.1",
|
|
3
|
+
"version": "0.3.2-dev.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./dist/global.js"
|
|
@@ -8,28 +8,36 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
+
"bun": "./src/index.ts",
|
|
11
12
|
"default": "./dist/index.js"
|
|
12
13
|
},
|
|
13
14
|
"./cuid": {
|
|
14
15
|
"types": "./dist/cuid/cuid.node.d.ts",
|
|
15
|
-
"node": "./dist/cuid/cuid.node.js",
|
|
16
16
|
"browser": "./dist/cuid/cuid.browser.js",
|
|
17
|
+
"node": "./dist/cuid/cuid.node.js",
|
|
18
|
+
"bun": "./src/cuid/cuid.node.ts",
|
|
17
19
|
"react-native": "./dist/cuid/cuid.browser.js"
|
|
18
20
|
},
|
|
19
21
|
"./nanoid": {
|
|
20
22
|
"types": "./dist/nanoid/index.d.ts",
|
|
23
|
+
"bun": "./src/nanoid/index.ts",
|
|
21
24
|
"default": "./dist/nanoid/index.js"
|
|
22
25
|
},
|
|
23
26
|
"./effect": {
|
|
24
27
|
"types": "./dist/effect/index.d.ts",
|
|
28
|
+
"node": "./src/effect/index.ts",
|
|
29
|
+
"bun": "./src/effect/index.ts",
|
|
25
30
|
"default": "./dist/effect/index.js"
|
|
26
31
|
},
|
|
27
32
|
"./node": {
|
|
28
33
|
"types": "./dist/node/mod.d.ts",
|
|
34
|
+
"node": "./src/node/mod.ts",
|
|
35
|
+
"bun": "./src/node/mod.ts",
|
|
29
36
|
"default": "./dist/node/mod.js"
|
|
30
37
|
},
|
|
31
38
|
"./bun": {
|
|
32
39
|
"types": "./dist/bun/mod.d.ts",
|
|
40
|
+
"bun": "./src/bun/mod.ts",
|
|
33
41
|
"default": "./dist/bun/mod.js"
|
|
34
42
|
}
|
|
35
43
|
},
|
|
@@ -57,32 +65,32 @@
|
|
|
57
65
|
"@standard-schema/spec": "1.0.0",
|
|
58
66
|
"msgpackr": "1.11.2",
|
|
59
67
|
"nanoid": "5.1.3",
|
|
60
|
-
"pretty-bytes": "
|
|
68
|
+
"pretty-bytes": "7.0.0"
|
|
61
69
|
},
|
|
62
70
|
"devDependencies": {
|
|
63
|
-
"@effect/cli": "^0.
|
|
64
|
-
"@effect/cluster": "^0.
|
|
65
|
-
"@effect/experimental": "^0.
|
|
66
|
-
"@effect/opentelemetry": "^0.
|
|
67
|
-
"@effect/platform": "^0.
|
|
68
|
-
"@effect/platform-browser": "^0.
|
|
69
|
-
"@effect/platform-bun": "^0.
|
|
70
|
-
"@effect/platform-node": "^0.
|
|
71
|
-
"@effect/printer": "^0.
|
|
72
|
-
"@effect/printer-ansi": "^0.
|
|
73
|
-
"@effect/rpc": "^0.
|
|
74
|
-
"@effect/sql": "^0.
|
|
75
|
-
"@effect/typeclass": "^0.
|
|
76
|
-
"@effect/vitest": "^0.
|
|
71
|
+
"@effect/cli": "^0.66.10",
|
|
72
|
+
"@effect/cluster": "^0.41.14",
|
|
73
|
+
"@effect/experimental": "^0.51.11",
|
|
74
|
+
"@effect/opentelemetry": "^0.53.11",
|
|
75
|
+
"@effect/platform": "^0.87.10",
|
|
76
|
+
"@effect/platform-browser": "^0.67.10",
|
|
77
|
+
"@effect/platform-bun": "^0.72.14",
|
|
78
|
+
"@effect/platform-node": "^0.89.2",
|
|
79
|
+
"@effect/printer": "^0.44.12",
|
|
80
|
+
"@effect/printer-ansi": "^0.44.12",
|
|
81
|
+
"@effect/rpc": "^0.64.11",
|
|
82
|
+
"@effect/sql": "^0.40.11",
|
|
83
|
+
"@effect/typeclass": "^0.35.12",
|
|
84
|
+
"@effect/vitest": "^0.23.12",
|
|
77
85
|
"@opentelemetry/api": "^1.9.0",
|
|
78
86
|
"@opentelemetry/resources": "^2.0.0",
|
|
79
|
-
"@types/bun": "^1.2.
|
|
87
|
+
"@types/bun": "^1.2.5",
|
|
80
88
|
"@types/jsdom": "^21.1.7",
|
|
81
|
-
"@types/node": "^22.15.
|
|
89
|
+
"@types/node": "^22.15.33",
|
|
82
90
|
"@types/web": "^0.0.203",
|
|
83
|
-
"effect": "^3.
|
|
91
|
+
"effect": "^3.16.12",
|
|
84
92
|
"jsdom": "^26.0.0",
|
|
85
|
-
"vitest": "
|
|
93
|
+
"vitest": "3.2.4"
|
|
86
94
|
},
|
|
87
95
|
"files": [
|
|
88
96
|
"package.json",
|
|
@@ -91,22 +99,22 @@
|
|
|
91
99
|
],
|
|
92
100
|
"license": "Apache-2.0",
|
|
93
101
|
"peerDependencies": {
|
|
94
|
-
"@effect/cli": "~0.
|
|
95
|
-
"@effect/cluster": "~0.
|
|
96
|
-
"@effect/experimental": "~0.
|
|
97
|
-
"@effect/opentelemetry": "~0.
|
|
98
|
-
"@effect/platform": "~0.
|
|
99
|
-
"@effect/platform-browser": "~0.
|
|
100
|
-
"@effect/platform-bun": "~0.
|
|
101
|
-
"@effect/platform-node": "~0.
|
|
102
|
-
"@effect/printer": "~0.
|
|
103
|
-
"@effect/printer-ansi": "~0.
|
|
104
|
-
"@effect/rpc": "~0.
|
|
105
|
-
"@effect/sql": "~0.
|
|
106
|
-
"@effect/typeclass": "~0.
|
|
102
|
+
"@effect/cli": "~0.66.10",
|
|
103
|
+
"@effect/cluster": "~0.41.14",
|
|
104
|
+
"@effect/experimental": "~0.51.11",
|
|
105
|
+
"@effect/opentelemetry": "~0.53.11",
|
|
106
|
+
"@effect/platform": "~0.87.10",
|
|
107
|
+
"@effect/platform-browser": "~0.67.10",
|
|
108
|
+
"@effect/platform-bun": "~0.72.14",
|
|
109
|
+
"@effect/platform-node": "~0.89.2",
|
|
110
|
+
"@effect/printer": "~0.44.12",
|
|
111
|
+
"@effect/printer-ansi": "~0.44.12",
|
|
112
|
+
"@effect/rpc": "~0.64.11",
|
|
113
|
+
"@effect/sql": "~0.40.11",
|
|
114
|
+
"@effect/typeclass": "~0.35.12",
|
|
107
115
|
"@opentelemetry/api": "~1.9.0",
|
|
108
116
|
"@opentelemetry/resources": "~2.0.0",
|
|
109
|
-
"effect": "~3.
|
|
117
|
+
"effect": "~3.16.12"
|
|
110
118
|
},
|
|
111
119
|
"publishConfig": {
|
|
112
120
|
"access": "public"
|
package/src/NoopTracer.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/** biome-ignore-all lint/complexity/noArguments: using arguments is fine here */
|
|
2
2
|
import type * as otel from '@opentelemetry/api'
|
|
3
3
|
|
|
4
4
|
export const makeNoopSpan = () => {
|
|
@@ -48,7 +48,7 @@ export class NoopTracer {
|
|
|
48
48
|
fn: F,
|
|
49
49
|
): ReturnType<F>
|
|
50
50
|
startActiveSpan<F extends (span: otel.Span) => ReturnType<F>>(
|
|
51
|
-
|
|
51
|
+
_name: string,
|
|
52
52
|
arg2?: F | otel.SpanOptions,
|
|
53
53
|
arg3?: F | otel.Context,
|
|
54
54
|
arg4?: F,
|
package/src/base64.ts
CHANGED
|
@@ -79,8 +79,8 @@ const textEncoder = new TextEncoder()
|
|
|
79
79
|
export const encode = (data: Uint8Array | string): string => {
|
|
80
80
|
const uint8 =
|
|
81
81
|
typeof data === 'string' ? textEncoder.encode(data) : data instanceof Uint8Array ? data : new Uint8Array(data)
|
|
82
|
-
let result = ''
|
|
83
|
-
|
|
82
|
+
let result = ''
|
|
83
|
+
let i: number
|
|
84
84
|
const l = uint8.length
|
|
85
85
|
for (i = 2; i < l; i += 3) {
|
|
86
86
|
result += base64abc[uint8[i - 2]! >> 2]
|
|
@@ -113,7 +113,6 @@ export const decode = (b64: string): Uint8Array => {
|
|
|
113
113
|
const size = binString.length
|
|
114
114
|
const bytes = new Uint8Array(size)
|
|
115
115
|
for (let i = 0; i < size; i++) {
|
|
116
|
-
// eslint-disable-next-line unicorn/prefer-code-point
|
|
117
116
|
bytes[i] = binString.charCodeAt(i)
|
|
118
117
|
}
|
|
119
118
|
return bytes
|
package/src/cuid/cuid.browser.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable unicorn/prefer-global-this */
|
|
2
1
|
/**
|
|
3
2
|
* Based on:
|
|
4
3
|
*
|
|
@@ -13,7 +12,7 @@
|
|
|
13
12
|
* MIT License
|
|
14
13
|
*/
|
|
15
14
|
|
|
16
|
-
const lim =
|
|
15
|
+
const lim = 2 ** 32 - 1
|
|
17
16
|
|
|
18
17
|
const crypto = globalThis.crypto
|
|
19
18
|
|
|
@@ -22,7 +21,7 @@ const getRandomValue = () => {
|
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
const pad = (num: number | string, size: number) => {
|
|
25
|
-
const s =
|
|
24
|
+
const s = `000000000${num}`
|
|
26
25
|
return s.slice(s.length - size)
|
|
27
26
|
}
|
|
28
27
|
|
|
@@ -40,7 +39,7 @@ const fingerprint = () => clientId
|
|
|
40
39
|
let c = 0
|
|
41
40
|
const blockSize = 4
|
|
42
41
|
const base = 36
|
|
43
|
-
const discreteValues =
|
|
42
|
+
const discreteValues = base ** blockSize
|
|
44
43
|
|
|
45
44
|
const randomBlock = () => {
|
|
46
45
|
return pad(Math.trunc(getRandomValue() * discreteValues).toString(base), blockSize)
|
|
@@ -55,28 +54,28 @@ const safeCounter = () => {
|
|
|
55
54
|
export const cuid = () => {
|
|
56
55
|
// Starting with a lowercase letter makes
|
|
57
56
|
// it HTML element ID friendly.
|
|
58
|
-
const letter = 'c'
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
const letter = 'c' // hard-coded allows for sequential access
|
|
58
|
+
// timestamp
|
|
59
|
+
// warning: this exposes the exact date and time
|
|
60
|
+
// that the uid was created.
|
|
61
|
+
const timestamp = Date.now().toString(base)
|
|
62
|
+
// Prevent same-machine collisions.
|
|
63
|
+
const counter = pad(safeCounter().toString(base), blockSize)
|
|
64
|
+
// A few chars to generate distinct ids for different
|
|
65
|
+
// clients (so different computers are far less
|
|
66
|
+
// likely to generate the same id)
|
|
67
|
+
const print = fingerprint()
|
|
68
|
+
// Grab some more chars from Math.random()
|
|
69
|
+
const random = randomBlock() + randomBlock()
|
|
71
70
|
|
|
72
71
|
return letter + timestamp + counter + print + random
|
|
73
72
|
}
|
|
74
73
|
|
|
75
74
|
export const slug = () => {
|
|
76
|
-
const date = Date.now().toString(36)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
75
|
+
const date = Date.now().toString(36)
|
|
76
|
+
const counter = safeCounter().toString(36).slice(-4)
|
|
77
|
+
const print = fingerprint().slice(0, 1) + fingerprint().slice(-1)
|
|
78
|
+
const random = randomBlock().slice(-2)
|
|
80
79
|
|
|
81
80
|
return date.slice(-2) + counter + print + random
|
|
82
81
|
}
|