unikvs 0.0.10 → 0.0.13

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 (77) hide show
  1. package/README.md +3 -0
  2. package/dist/index.d.ts +1553 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +4032 -0
  5. package/dist/index.js.map +1 -0
  6. package/package.json +35 -34
  7. package/src/_contexts.ts +1089 -0
  8. package/src/_logger.ts +5 -3
  9. package/src/_middleware.ts +207 -0
  10. package/src/_pipeline-graph.helpers.ts +183 -0
  11. package/src/_pipeline-graph.ts +1307 -0
  12. package/src/_pipeline-graph.types.ts +303 -0
  13. package/src/_pipeline-leaf-resolver.ts +70 -0
  14. package/src/_plugin-lifecycle.ts +201 -0
  15. package/src/_storage.ts +173 -96
  16. package/src/_streams.schemas.ts +21 -0
  17. package/src/_streams.ts +73 -0
  18. package/src/_to-value-stream.ts +22 -11
  19. package/src/_types.ts +237 -0
  20. package/src/_unikvs-branch.ts +94 -0
  21. package/src/_unikvs.schemas.ts +451 -0
  22. package/src/_valibot.ts +17 -3
  23. package/src/_value-schemas.ts +192 -0
  24. package/src/_value-validation.ts +57 -0
  25. package/src/errors.ts +446 -252
  26. package/src/index.ts +46 -26
  27. package/src/types.ts +13 -0
  28. package/src/unikvs-branch.ts +445 -0
  29. package/src/unikvs-builder.ts +706 -0
  30. package/src/unikvs.ts +1456 -971
  31. package/src/unikvs.types.ts +194 -0
  32. package/src/value-schemas.ts +98 -0
  33. package/dist/src/_logger.d.ts +0 -3
  34. package/dist/src/_logger.d.ts.map +0 -1
  35. package/dist/src/_logger.js +0 -3
  36. package/dist/src/_merge-context.d.ts +0 -13
  37. package/dist/src/_merge-context.d.ts.map +0 -1
  38. package/dist/src/_merge-context.js +0 -12
  39. package/dist/src/_storage.d.ts +0 -18
  40. package/dist/src/_storage.d.ts.map +0 -1
  41. package/dist/src/_storage.js +0 -94
  42. package/dist/src/_to-value-stream.d.ts +0 -12
  43. package/dist/src/_to-value-stream.d.ts.map +0 -1
  44. package/dist/src/_to-value-stream.js +0 -102
  45. package/dist/src/_transformer.d.ts +0 -13
  46. package/dist/src/_transformer.d.ts.map +0 -1
  47. package/dist/src/_transformer.js +0 -60
  48. package/dist/src/_valibot.d.ts +0 -15
  49. package/dist/src/_valibot.d.ts.map +0 -1
  50. package/dist/src/_valibot.js +0 -23
  51. package/dist/src/context.types.d.ts +0 -17
  52. package/dist/src/context.types.d.ts.map +0 -1
  53. package/dist/src/context.types.js +0 -1
  54. package/dist/src/errors.d.ts +0 -340
  55. package/dist/src/errors.d.ts.map +0 -1
  56. package/dist/src/errors.js +0 -250
  57. package/dist/src/index.d.ts +0 -10
  58. package/dist/src/index.d.ts.map +0 -1
  59. package/dist/src/index.js +0 -3
  60. package/dist/src/unikvs-config.d.ts +0 -255
  61. package/dist/src/unikvs-config.d.ts.map +0 -1
  62. package/dist/src/unikvs-config.js +0 -105
  63. package/dist/src/unikvs.d.ts +0 -354
  64. package/dist/src/unikvs.d.ts.map +0 -1
  65. package/dist/src/unikvs.js +0 -867
  66. package/dist/src/utils.types.d.ts +0 -7
  67. package/dist/src/utils.types.d.ts.map +0 -1
  68. package/dist/src/utils.types.js +0 -1
  69. package/dist/src/value-stream.types.d.ts +0 -16
  70. package/dist/src/value-stream.types.d.ts.map +0 -1
  71. package/dist/src/value-stream.types.js +0 -1
  72. package/src/_merge-context.ts +0 -19
  73. package/src/_transformer.ts +0 -89
  74. package/src/context.types.ts +0 -19
  75. package/src/unikvs-config.ts +0 -426
  76. package/src/utils.types.ts +0 -6
  77. package/src/value-stream.types.ts +0 -19
@@ -0,0 +1,57 @@
1
+ import { isReadableStream } from "./_streams.js";
2
+ import { pipe, check, unknown, parseInput } from "./_valibot.js";
3
+ import type { ValueSchemaInfo } from "./_value-schemas.js";
4
+
5
+ /**
6
+ * プレーン値専用のスキーマに ReadableStream が渡されたことを報告するためのスキーマです。
7
+ */
8
+ const PlainValueInputSchema = pipe(
9
+ unknown(),
10
+ check(
11
+ (input) => !isReadableStream(input),
12
+ "Expected a plain value, but received a ReadableStream",
13
+ ),
14
+ );
15
+
16
+ /**
17
+ * ストリーム専用のスキーマにプレーン値が渡されたことを報告するためのスキーマです。
18
+ */
19
+ const StreamValueInputSchema = pipe(
20
+ unknown(),
21
+ check(isReadableStream, "Expected a ReadableStream, but received a plain value"),
22
+ );
23
+
24
+ /**
25
+ * スキーマ情報に基づいて `set` の入力値を検証します。
26
+ *
27
+ * プレーン値はその場で検証し、ストリームはチャンクごとに検証するストリームに変換します。
28
+ *
29
+ * @param info キーに対応するスキーマ情報です。
30
+ * @param value 検証する入力値です。
31
+ *
32
+ * @returns 検証済みの入力値を返します。
33
+ */
34
+ export function parseSetValue(info: ValueSchemaInfo, value: unknown): unknown {
35
+ if (isReadableStream(value)) {
36
+ if (info.kind === "plain") {
37
+ // 必ず検証に失敗するため、InvalidInputError が投げられます。
38
+ parseInput(PlainValueInputSchema, value);
39
+ }
40
+
41
+ // 入力チャンクを検証し、変換後の値を後続のパイプラインへ流します。
42
+ return value.pipeThrough(
43
+ new TransformStream({
44
+ transform(chunk, controller) {
45
+ controller.enqueue(parseInput(info.schema, chunk));
46
+ },
47
+ }),
48
+ );
49
+ }
50
+
51
+ if (info.kind === "stream") {
52
+ // 必ず検証に失敗するため、InvalidInputError が投げられます。
53
+ parseInput(StreamValueInputSchema, value);
54
+ }
55
+
56
+ return parseInput(info.schema, value);
57
+ }