unikvs 0.0.10 → 0.0.12
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/README.md +3 -0
- package/dist/src/_merge-variables.d.ts +13 -0
- package/dist/src/_merge-variables.d.ts.map +1 -0
- package/dist/src/_merge-variables.js +12 -0
- package/dist/src/_storage.d.ts +11 -11
- package/dist/src/_storage.d.ts.map +1 -1
- package/dist/src/_storage.js +31 -22
- package/dist/src/_streams.d.ts +20 -0
- package/dist/src/_streams.d.ts.map +1 -0
- package/dist/src/_streams.js +36 -0
- package/dist/src/_transformer.d.ts +7 -7
- package/dist/src/_transformer.d.ts.map +1 -1
- package/dist/src/_transformer.js +12 -12
- package/dist/src/_valibot.d.ts +2 -2
- package/dist/src/_valibot.d.ts.map +1 -1
- package/dist/src/_valibot.js +1 -1
- package/dist/src/_value-schemas.d.ts +179 -0
- package/dist/src/_value-schemas.d.ts.map +1 -0
- package/dist/src/_value-schemas.js +150 -0
- package/dist/src/errors.d.ts +60 -94
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +15 -31
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/unikvs-config.d.ts +58 -139
- package/dist/src/unikvs-config.d.ts.map +1 -1
- package/dist/src/unikvs-config.js +42 -47
- package/dist/src/unikvs.d.ts +84 -166
- package/dist/src/unikvs.d.ts.map +1 -1
- package/dist/src/unikvs.js +230 -169
- package/dist/src/utils.types.d.ts +1 -3
- package/dist/src/utils.types.d.ts.map +1 -1
- package/dist/src/value-stream.types.d.ts +2 -8
- package/dist/src/value-stream.types.d.ts.map +1 -1
- package/dist/src/variables.types.d.ts +11 -0
- package/dist/src/variables.types.d.ts.map +1 -0
- package/package.json +17 -16
- package/src/_merge-variables.ts +19 -0
- package/src/_storage.ts +47 -24
- package/src/_streams.ts +47 -0
- package/src/_transformer.ts +13 -13
- package/src/_valibot.ts +4 -1
- package/src/_value-schemas.ts +362 -0
- package/src/errors.ts +60 -109
- package/src/index.ts +2 -3
- package/src/unikvs-config.ts +143 -168
- package/src/unikvs.ts +359 -290
- package/src/utils.types.ts +1 -3
- package/src/value-stream.types.ts +2 -8
- package/src/variables.types.ts +13 -0
- package/dist/src/_merge-context.d.ts +0 -13
- package/dist/src/_merge-context.d.ts.map +0 -1
- package/dist/src/_merge-context.js +0 -12
- package/dist/src/context.types.d.ts +0 -17
- package/dist/src/context.types.d.ts.map +0 -1
- package/src/_merge-context.ts +0 -19
- package/src/context.types.ts +0 -19
- /package/dist/src/{context.types.js → variables.types.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Variables } from "@unikvs/core";
|
|
2
|
+
import type { VariablesSource } from "./variables.types.js";
|
|
3
|
+
/**
|
|
4
|
+
* 2 つの Variables オブジェクトを結合します。
|
|
5
|
+
*
|
|
6
|
+
* 基本となる Variables に対して、追加または上書きする変数情報を結合し、新しい Variables オブジェクトを生成して返します。追加する変数情報が配列(キーと値のペアの配列)である場合は、オブジェクトに変換した上で結合処理を行います。
|
|
7
|
+
*
|
|
8
|
+
* @param a ベースとなる読み取り専用の Variables オブジェクトです。
|
|
9
|
+
* @param b 結合する読み取り専用の Variables、または VariablesSource、あるいは undefined です。
|
|
10
|
+
* @returns 結合された新しい Variables オブジェクトです。
|
|
11
|
+
*/
|
|
12
|
+
export default function mergeVariables(a: Readonly<Variables>, b: Readonly<Variables> | VariablesSource | undefined): Variables;
|
|
13
|
+
//# sourceMappingURL=_merge-variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_merge-variables.d.ts","sourceRoot":"","sources":["../../src/_merge-variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EACtB,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,GACnD,SAAS,CAEX"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 2 つの Variables オブジェクトを結合します。
|
|
3
|
+
*
|
|
4
|
+
* 基本となる Variables に対して、追加または上書きする変数情報を結合し、新しい Variables オブジェクトを生成して返します。追加する変数情報が配列(キーと値のペアの配列)である場合は、オブジェクトに変換した上で結合処理を行います。
|
|
5
|
+
*
|
|
6
|
+
* @param a ベースとなる読み取り専用の Variables オブジェクトです。
|
|
7
|
+
* @param b 結合する読み取り専用の Variables、または VariablesSource、あるいは undefined です。
|
|
8
|
+
* @returns 結合された新しい Variables オブジェクトです。
|
|
9
|
+
*/
|
|
10
|
+
export default function mergeVariables(a, b) {
|
|
11
|
+
return { ...a, ...(Array.isArray(b) ? Object.fromEntries(b) : b) };
|
|
12
|
+
}
|
package/dist/src/_storage.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Variables, IStorage, IReadableStream, IWritableStream } from "@unikvs/core";
|
|
2
2
|
import { type PluginOperationAggregateError } from "./errors.js";
|
|
3
3
|
export default class UniKvsStorage {
|
|
4
4
|
private readonly io;
|
|
5
5
|
private managed;
|
|
6
6
|
constructor(io: IStorage);
|
|
7
|
-
open(
|
|
8
|
-
close(
|
|
9
|
-
write(
|
|
10
|
-
read(
|
|
11
|
-
exists(
|
|
12
|
-
delete(
|
|
13
|
-
clear(
|
|
14
|
-
getReadable(
|
|
15
|
-
getWritable(
|
|
16
|
-
onOtherWriteError(
|
|
7
|
+
open(vars: Variables, signal: AbortSignal): Promise<void>;
|
|
8
|
+
close(vars: Variables, signal: AbortSignal): Promise<void>;
|
|
9
|
+
write(vars: Variables, signal: AbortSignal, key: IStorage.Key, data: unknown): Promise<void>;
|
|
10
|
+
read(vars: Variables, signal: AbortSignal, key: IStorage.Key): Promise<unknown>;
|
|
11
|
+
exists(vars: Variables, signal: AbortSignal, key: IStorage.Key): Promise<boolean>;
|
|
12
|
+
delete(vars: Variables, signal: AbortSignal, key: IStorage.Key): Promise<void>;
|
|
13
|
+
clear(vars: Variables, signal: AbortSignal): Promise<void>;
|
|
14
|
+
getReadable(vars: Variables, signal: AbortSignal, key: IStorage.Key): Promise<IReadableStream>;
|
|
15
|
+
getWritable(vars: Variables, signal: AbortSignal, key: IStorage.Key): Promise<IWritableStream>;
|
|
16
|
+
onOtherWriteError(vars: Variables, signal: AbortSignal, key: IStorage.Key, err: PluginOperationAggregateError): Promise<void>;
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=_storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_storage.d.ts","sourceRoot":"","sources":["../../src/_storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"_storage.d.ts","sourceRoot":"","sources":["../../src/_storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EAER,eAAe,EACf,eAAe,EAChB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,KAAK,6BAA6B,EAInC,MAAM,aAAa,CAAC;AAkBrB,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAE9B,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAmB,EAAE,EAAE,QAAQ,EAG9B;IAEY,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;IAEY,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtE;IAEY,KAAK,CAChB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAMf;IAEY,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ3F;IAEY,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAS7F;IAEY,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1F;IAEY,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE;IAEY,WAAW,CACtB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,CAAC,GAAG,GAChB,OAAO,CAAC,eAAe,CAAC,CAa1B;IAEY,WAAW,CACtB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,CAAC,GAAG,GAChB,OAAO,CAAC,eAAe,CAAC,CAa1B;IAEY,iBAAiB,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,GAAG,EAAE,6BAA6B,GACjC,OAAO,CAAC,IAAI,CAAC,CAsBf;CACF"}
|
package/dist/src/_storage.js
CHANGED
|
@@ -1,83 +1,92 @@
|
|
|
1
|
+
import { isReadableStream, isWritableStream } from "./_streams.js";
|
|
1
2
|
import * as v from "./_valibot.js";
|
|
2
3
|
import { StorageIsNotOpenError, ReadableStreamNotSupportedError, WritableStreamNotSupportedError, } from "./errors.js";
|
|
4
|
+
/**
|
|
5
|
+
* `ReadableStream` のインターフェースを満たすかを検証するためのスキーマです。
|
|
6
|
+
*/
|
|
7
|
+
const ReadableStreamSchema = v.custom(isReadableStream, "Expected a ReadableStream");
|
|
8
|
+
/**
|
|
9
|
+
* `WritableStream` のインターフェースを満たすかを検証するためのスキーマです。
|
|
10
|
+
*/
|
|
11
|
+
const WritableStreamSchema = v.custom(isWritableStream, "Expected a WritableStream");
|
|
3
12
|
export default class UniKvsStorage {
|
|
4
13
|
constructor(io) {
|
|
5
14
|
this.io = io;
|
|
6
15
|
this.managed = false;
|
|
7
16
|
}
|
|
8
|
-
async open(
|
|
17
|
+
async open(vars, signal) {
|
|
9
18
|
if (typeof this.io.open !== "function") {
|
|
10
19
|
return;
|
|
11
20
|
}
|
|
12
21
|
if (!this.io.isOpen) {
|
|
13
22
|
this.managed = true;
|
|
14
|
-
await this.io.open({
|
|
23
|
+
await this.io.open({ vars, signal });
|
|
15
24
|
}
|
|
16
25
|
}
|
|
17
|
-
async close(
|
|
26
|
+
async close(vars, signal) {
|
|
18
27
|
if (typeof this.io.close !== "function") {
|
|
19
28
|
return;
|
|
20
29
|
}
|
|
21
30
|
if (this.io.isOpen && this.managed) {
|
|
22
|
-
await this.io.close({
|
|
31
|
+
await this.io.close({ vars, signal });
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
|
-
async write(
|
|
34
|
+
async write(vars, signal, key, data) {
|
|
26
35
|
if (!this.io.isOpen) {
|
|
27
36
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
28
37
|
}
|
|
29
|
-
await this.io.write({ key, data,
|
|
38
|
+
await this.io.write({ key, data, vars, signal });
|
|
30
39
|
}
|
|
31
|
-
async read(
|
|
40
|
+
async read(vars, signal, key) {
|
|
32
41
|
if (!this.io.isOpen) {
|
|
33
42
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
34
43
|
}
|
|
35
|
-
const output = await this.io.read({ key,
|
|
44
|
+
const output = await this.io.read({ key, vars, signal });
|
|
36
45
|
return output;
|
|
37
46
|
}
|
|
38
|
-
async exists(
|
|
47
|
+
async exists(vars, signal, key) {
|
|
39
48
|
if (!this.io.isOpen) {
|
|
40
49
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
41
50
|
}
|
|
42
|
-
const output = await this.io.exists({ key,
|
|
51
|
+
const output = await this.io.exists({ key, vars, signal });
|
|
43
52
|
const parsed = Boolean(output);
|
|
44
53
|
return parsed;
|
|
45
54
|
}
|
|
46
|
-
async delete(
|
|
55
|
+
async delete(vars, signal, key) {
|
|
47
56
|
if (!this.io.isOpen) {
|
|
48
57
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
49
58
|
}
|
|
50
|
-
await this.io.delete({ key,
|
|
59
|
+
await this.io.delete({ key, vars, signal });
|
|
51
60
|
}
|
|
52
|
-
async clear(
|
|
61
|
+
async clear(vars, signal) {
|
|
53
62
|
if (!this.io.isOpen) {
|
|
54
63
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
55
64
|
}
|
|
56
|
-
await this.io.clear({
|
|
65
|
+
await this.io.clear({ vars, signal });
|
|
57
66
|
}
|
|
58
|
-
async getReadable(
|
|
67
|
+
async getReadable(vars, signal, key) {
|
|
59
68
|
if (!this.io.isOpen) {
|
|
60
69
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
61
70
|
}
|
|
62
71
|
if (typeof this.io.getReadable !== "function") {
|
|
63
72
|
throw new ReadableStreamNotSupportedError({ name: this.io.name });
|
|
64
73
|
}
|
|
65
|
-
const output = await this.io.getReadable({ key,
|
|
66
|
-
const parsed = v.parseOutput(
|
|
74
|
+
const output = await this.io.getReadable({ key, vars, signal });
|
|
75
|
+
const parsed = v.parseOutput(ReadableStreamSchema, output);
|
|
67
76
|
return parsed;
|
|
68
77
|
}
|
|
69
|
-
async getWritable(
|
|
78
|
+
async getWritable(vars, signal, key) {
|
|
70
79
|
if (!this.io.isOpen) {
|
|
71
80
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
72
81
|
}
|
|
73
82
|
if (typeof this.io.getWritable !== "function") {
|
|
74
83
|
throw new WritableStreamNotSupportedError({ name: this.io.name });
|
|
75
84
|
}
|
|
76
|
-
const output = await this.io.getWritable({ key,
|
|
77
|
-
const parsed = v.parseOutput(
|
|
85
|
+
const output = await this.io.getWritable({ key, vars, signal });
|
|
86
|
+
const parsed = v.parseOutput(WritableStreamSchema, output);
|
|
78
87
|
return parsed;
|
|
79
88
|
}
|
|
80
|
-
async onOtherWriteError(
|
|
89
|
+
async onOtherWriteError(vars, signal, key, err) {
|
|
81
90
|
if (!this.io.isOpen) {
|
|
82
91
|
throw new StorageIsNotOpenError({ name: this.io.name });
|
|
83
92
|
}
|
|
@@ -88,7 +97,7 @@ export default class UniKvsStorage {
|
|
|
88
97
|
key,
|
|
89
98
|
error: err,
|
|
90
99
|
signal,
|
|
91
|
-
|
|
100
|
+
vars,
|
|
92
101
|
});
|
|
93
102
|
}
|
|
94
103
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IReadableStream, IWritableStream } from "@unikvs/core";
|
|
2
|
+
/**
|
|
3
|
+
* 値が `ReadableStream` のインターフェースを満たすかどうかを判定します。
|
|
4
|
+
*
|
|
5
|
+
* ランタイムによっては `ReadableStream` クラスを継承せずに同じインターフェースを備えたオブジェクトが存在するため、`instanceof` ではなく必要なメソッドの有無で判定します。
|
|
6
|
+
*
|
|
7
|
+
* @param input 判定する値です。
|
|
8
|
+
* @returns `ReadableStream` のインターフェースを満たす場合は `true` を返します。
|
|
9
|
+
*/
|
|
10
|
+
export declare function isReadableStream(input: unknown): input is IReadableStream;
|
|
11
|
+
/**
|
|
12
|
+
* 値が `WritableStream` のインターフェースを満たすかどうかを判定します。
|
|
13
|
+
*
|
|
14
|
+
* ランタイムによっては `WritableStream` クラスを継承せずに同じインターフェースを備えたオブジェクトが存在するため、`instanceof` ではなく必要なメソッドの有無で判定します。
|
|
15
|
+
*
|
|
16
|
+
* @param input 判定する値です。
|
|
17
|
+
* @returns `WritableStream` のインターフェースを満たす場合は `true` を返します。
|
|
18
|
+
*/
|
|
19
|
+
export declare function isWritableStream(input: unknown): input is IWritableStream;
|
|
20
|
+
//# sourceMappingURL=_streams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_streams.d.ts","sourceRoot":"","sources":["../../src/_streams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAczE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAYzE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 値が `ReadableStream` のインターフェースを満たすかどうかを判定します。
|
|
3
|
+
*
|
|
4
|
+
* ランタイムによっては `ReadableStream` クラスを継承せずに同じインターフェースを備えたオブジェクトが存在するため、`instanceof` ではなく必要なメソッドの有無で判定します。
|
|
5
|
+
*
|
|
6
|
+
* @param input 判定する値です。
|
|
7
|
+
* @returns `ReadableStream` のインターフェースを満たす場合は `true` を返します。
|
|
8
|
+
*/
|
|
9
|
+
export function isReadableStream(input) {
|
|
10
|
+
if (typeof input !== "object" || input === null) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const stream = input;
|
|
14
|
+
return (typeof stream.getReader === "function" &&
|
|
15
|
+
typeof stream.pipeThrough === "function" &&
|
|
16
|
+
typeof stream.pipeTo === "function" &&
|
|
17
|
+
typeof stream.tee === "function" &&
|
|
18
|
+
typeof stream.cancel === "function");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 値が `WritableStream` のインターフェースを満たすかどうかを判定します。
|
|
22
|
+
*
|
|
23
|
+
* ランタイムによっては `WritableStream` クラスを継承せずに同じインターフェースを備えたオブジェクトが存在するため、`instanceof` ではなく必要なメソッドの有無で判定します。
|
|
24
|
+
*
|
|
25
|
+
* @param input 判定する値です。
|
|
26
|
+
* @returns `WritableStream` のインターフェースを満たす場合は `true` を返します。
|
|
27
|
+
*/
|
|
28
|
+
export function isWritableStream(input) {
|
|
29
|
+
if (typeof input !== "object" || input === null) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const stream = input;
|
|
33
|
+
return (typeof stream.getWriter === "function" &&
|
|
34
|
+
typeof stream.abort === "function" &&
|
|
35
|
+
typeof stream.close === "function");
|
|
36
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Variables, IDecodable, ITransformer, IEncodable } from "@unikvs/core";
|
|
2
2
|
export default class UniKvsTransformer {
|
|
3
3
|
private readonly tf;
|
|
4
4
|
private managed;
|
|
5
5
|
constructor(tf: ITransformer);
|
|
6
|
-
open(
|
|
7
|
-
close(
|
|
8
|
-
encode(
|
|
9
|
-
decode(
|
|
10
|
-
getEncodable(
|
|
11
|
-
getDecodable(
|
|
6
|
+
open(vars: Variables, signal: AbortSignal): Promise<void>;
|
|
7
|
+
close(vars: Variables, signal: AbortSignal): Promise<void>;
|
|
8
|
+
encode(vars: Variables, signal: AbortSignal, data: any): Promise<unknown>;
|
|
9
|
+
decode(vars: Variables, signal: AbortSignal, data: any): Promise<unknown>;
|
|
10
|
+
getEncodable(vars: Variables, signal: AbortSignal): Promise<IEncodable>;
|
|
11
|
+
getDecodable(vars: Variables, signal: AbortSignal): Promise<IDecodable>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=_transformer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_transformer.d.ts","sourceRoot":"","sources":["../../src/_transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"_transformer.d.ts","sourceRoot":"","sources":["../../src/_transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQpF,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAElC,OAAO,CAAC,OAAO,CAAU;IAEzB,YAAmB,EAAE,EAAE,YAAY,EAGlC;IAEY,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CASrE;IAEY,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtE;IAEY,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrF;IAEY,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrF;IAEY,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAanF;IAEY,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAanF;CACF"}
|
package/dist/src/_transformer.js
CHANGED
|
@@ -4,56 +4,56 @@ export default class UniKvsTransformer {
|
|
|
4
4
|
this.tf = tf;
|
|
5
5
|
this.managed = false;
|
|
6
6
|
}
|
|
7
|
-
async open(
|
|
7
|
+
async open(vars, signal) {
|
|
8
8
|
if (typeof this.tf.open !== "function") {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
11
|
if (!this.tf.isOpen) {
|
|
12
12
|
this.managed = true;
|
|
13
|
-
await this.tf.open({
|
|
13
|
+
await this.tf.open({ vars, signal });
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
async close(
|
|
16
|
+
async close(vars, signal) {
|
|
17
17
|
if (typeof this.tf.close !== "function") {
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
if (this.tf.isOpen && this.managed) {
|
|
21
|
-
await this.tf.close({
|
|
21
|
+
await this.tf.close({ vars, signal });
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
async encode(
|
|
24
|
+
async encode(vars, signal, data) {
|
|
25
25
|
if (!this.tf.isOpen) {
|
|
26
26
|
throw new TransformerIsNotOpenError({ name: this.tf.name });
|
|
27
27
|
}
|
|
28
|
-
const output = await this.tf.encode({ data,
|
|
28
|
+
const output = await this.tf.encode({ data, vars, signal });
|
|
29
29
|
return output;
|
|
30
30
|
}
|
|
31
|
-
async decode(
|
|
31
|
+
async decode(vars, signal, data) {
|
|
32
32
|
if (!this.tf.isOpen) {
|
|
33
33
|
throw new TransformerIsNotOpenError({ name: this.tf.name });
|
|
34
34
|
}
|
|
35
|
-
const output = await this.tf.decode({ data,
|
|
35
|
+
const output = await this.tf.decode({ data, vars, signal });
|
|
36
36
|
return output;
|
|
37
37
|
}
|
|
38
|
-
async getEncodable(
|
|
38
|
+
async getEncodable(vars, signal) {
|
|
39
39
|
if (!this.tf.isOpen) {
|
|
40
40
|
throw new TransformerIsNotOpenError({ name: this.tf.name });
|
|
41
41
|
}
|
|
42
42
|
if (typeof this.tf.getEncodable !== "function") {
|
|
43
43
|
throw new EncodableStreamNotSupportedError({ name: this.tf.name });
|
|
44
44
|
}
|
|
45
|
-
const output = await this.tf.getEncodable({
|
|
45
|
+
const output = await this.tf.getEncodable({ vars, signal });
|
|
46
46
|
const parsed = output; // TODO(tai-kun): 要検証
|
|
47
47
|
return parsed;
|
|
48
48
|
}
|
|
49
|
-
async getDecodable(
|
|
49
|
+
async getDecodable(vars, signal) {
|
|
50
50
|
if (!this.tf.isOpen) {
|
|
51
51
|
throw new TransformerIsNotOpenError({ name: this.tf.name });
|
|
52
52
|
}
|
|
53
53
|
if (typeof this.tf.getDecodable !== "function") {
|
|
54
54
|
throw new DecodableStreamNotSupportedError({ name: this.tf.name });
|
|
55
55
|
}
|
|
56
|
-
const output = await this.tf.getDecodable({
|
|
56
|
+
const output = await this.tf.getDecodable({ vars, signal });
|
|
57
57
|
const parsed = output; // TODO(tai-kun): 要検証
|
|
58
58
|
return parsed;
|
|
59
59
|
}
|
package/dist/src/_valibot.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type InferOutput, safeParse } from "valibot";
|
|
2
2
|
import { type InvalidInputErrorArgs, type InvalidOutputErrorArgs } from "./errors.js";
|
|
3
|
-
export type { InferInput, InferOutput } from "valibot";
|
|
4
|
-
export { any, omit, pipe, union, number, string, symbol, unknown, instance, minValue, optional, safeInteger, } from "valibot";
|
|
3
|
+
export type { GenericSchema, InferInput, InferOutput } from "valibot";
|
|
4
|
+
export { any, check, custom, omit, pipe, union, number, string, symbol, unknown, instance, minValue, optional, safeInteger, safeParse, } from "valibot";
|
|
5
5
|
export { array, tuple, object, record, transform } from "@tai-kun/valibot-extra-lab";
|
|
6
6
|
type BaseSchema = typeof safeParse extends (schema: infer S, ...args: any) => any ? S : never;
|
|
7
7
|
export interface IParseInputErrorConstructor {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_valibot.d.ts","sourceRoot":"","sources":["../../src/_valibot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAG5B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"_valibot.d.ts","sourceRoot":"","sources":["../../src/_valibot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAG5B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EACL,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAErF,KAAK,UAAU,GAAG,OAAO,SAAS,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAE9F,MAAM,WAAW,2BAA2B;IAC1C,KAAK,IAAI,EAAE,qBAAqB,GAAG,KAAK,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,OAAO,SAAS,UAAU,EACzD,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,EACd,KAAK,GAAE,2BAA+C,GACrD,WAAW,CAAC,OAAO,CAAC,CAStB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,IAAI,EAAE,sBAAsB,GAAG,KAAK,CAAC;CAC3C;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,OAAO,SAAS,UAAU,EAC1D,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,EACd,KAAK,GAAE,2BAAgD,GACtD,WAAW,CAAC,OAAO,CAAC,CAStB"}
|
package/dist/src/_valibot.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { tryCaptureStackTrace } from "try-capture-stack-trace";
|
|
2
2
|
import { safeParse } from "valibot";
|
|
3
3
|
import { InvalidInputError, InvalidOutputError, } from "./errors.js";
|
|
4
|
-
export { any, omit, pipe, union, number, string, symbol, unknown, instance, minValue, optional, safeInteger, } from "valibot";
|
|
4
|
+
export { any, check, custom, omit, pipe, union, number, string, symbol, unknown, instance, minValue, optional, safeInteger, safeParse, } from "valibot";
|
|
5
5
|
export { array, tuple, object, record, transform } from "@tai-kun/valibot-extra-lab";
|
|
6
6
|
export function parseInput(schema, value, Error = InvalidInputError) {
|
|
7
7
|
const result = safeParse(schema, value);
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import * as v from "./_valibot.js";
|
|
2
|
+
/**
|
|
3
|
+
* プレーンな値を識別するための固有のシンボルです。
|
|
4
|
+
*/
|
|
5
|
+
declare const PLAIN_VALUE: unique symbol;
|
|
6
|
+
/**
|
|
7
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
8
|
+
*
|
|
9
|
+
* @template TData 入出力されるデータの型です。
|
|
10
|
+
* @template TInput `set` が受け付ける入力データの型です。
|
|
11
|
+
*/
|
|
12
|
+
export type PlainValue<TData = any, TInput = TData> = [
|
|
13
|
+
Type: typeof PLAIN_VALUE,
|
|
14
|
+
Data: TData,
|
|
15
|
+
Input: TInput
|
|
16
|
+
];
|
|
17
|
+
/**
|
|
18
|
+
* ストリーム形式の値を識別するための固有のシンボルです。
|
|
19
|
+
*/
|
|
20
|
+
declare const STREAM_VALUE: unique symbol;
|
|
21
|
+
/**
|
|
22
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
23
|
+
*
|
|
24
|
+
* @template TChunkData 入出力されるチャンクデータの型です。
|
|
25
|
+
* @template TChunkInput `set` が受け付ける入力チャンクデータの型です。
|
|
26
|
+
*/
|
|
27
|
+
export type StreamValue<TChunkData = any, TChunkInput = TChunkData> = [
|
|
28
|
+
Type: typeof STREAM_VALUE,
|
|
29
|
+
ChunkData: TChunkData,
|
|
30
|
+
ChunkInput: TChunkInput
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
34
|
+
*
|
|
35
|
+
* @template TDataAndChunkData データまたはチャンクデータの型です。
|
|
36
|
+
* @template TInput `set` が受け付ける入力データまたは入力チャンクデータの型です。
|
|
37
|
+
*/
|
|
38
|
+
export type Value<TDataAndChunkData = any, TInput = TDataAndChunkData> = PlainValue<TDataAndChunkData, TInput> | StreamValue<TDataAndChunkData, TInput>;
|
|
39
|
+
/**
|
|
40
|
+
* PlainValue 型から内部のデータ型を抽出します。
|
|
41
|
+
*
|
|
42
|
+
* @template TPlainValue 対象となる PlainValue 型です。
|
|
43
|
+
*/
|
|
44
|
+
export type $InferPlainValueData<TPlainValue> = TPlainValue extends PlainValue<infer TData, any> ? TData : never;
|
|
45
|
+
/**
|
|
46
|
+
* PlainValue 型から入力データの型を抽出します。
|
|
47
|
+
*
|
|
48
|
+
* @template TPlainValue 対象となる PlainValue 型です。
|
|
49
|
+
*/
|
|
50
|
+
export type $InferPlainValueInput<TPlainValue> = TPlainValue extends PlainValue<any, infer TInput> ? TInput : never;
|
|
51
|
+
/**
|
|
52
|
+
* StreamValue 型から内部のチャンクデータ型を抽出します。
|
|
53
|
+
*
|
|
54
|
+
* @template TStreamValue 対象となる StreamValue 型です。
|
|
55
|
+
*/
|
|
56
|
+
export type $InferStreamValueChunkData<TStreamValue> = TStreamValue extends StreamValue<infer TChunkData, any> ? TChunkData : never;
|
|
57
|
+
/**
|
|
58
|
+
* StreamValue 型から入力チャンクデータの型を抽出します。
|
|
59
|
+
*
|
|
60
|
+
* @template TStreamValue 対象となる StreamValue 型です。
|
|
61
|
+
*/
|
|
62
|
+
export type $InferStreamValueChunkInput<TStreamValue> = TStreamValue extends StreamValue<any, infer TChunkInput> ? TChunkInput : never;
|
|
63
|
+
/**
|
|
64
|
+
* スキーマ付きの値が扱うデータの種類です。
|
|
65
|
+
*
|
|
66
|
+
* - `"plain"`: プレーンな値のみを扱います。
|
|
67
|
+
* - `"stream"`: ストリーム形式の値のみを扱います。
|
|
68
|
+
* - `"any"`: プレーンな値とストリーム形式の値のどちらも扱います。
|
|
69
|
+
*/
|
|
70
|
+
export type ValueSchemaKind = "plain" | "stream" | "any";
|
|
71
|
+
/**
|
|
72
|
+
* キーに対応する値のスキーマ情報です。
|
|
73
|
+
*/
|
|
74
|
+
export type ValueSchemaInfo = {
|
|
75
|
+
/**
|
|
76
|
+
* 扱うデータの種類です。
|
|
77
|
+
*/
|
|
78
|
+
readonly kind: ValueSchemaKind;
|
|
79
|
+
/**
|
|
80
|
+
* データの検証に使用するスキーマです。
|
|
81
|
+
*/
|
|
82
|
+
readonly schema: v.GenericSchema;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
86
|
+
*
|
|
87
|
+
* プレーンな値のスキーマを定義します。
|
|
88
|
+
*
|
|
89
|
+
* @template TSchema スキーマの型です。
|
|
90
|
+
* @param schema 値の検証に使用する Valibot スキーマです。
|
|
91
|
+
* @returns プレーンな値であることを示す型情報を返します。
|
|
92
|
+
*/
|
|
93
|
+
export declare function PlainValue<const TSchema extends v.GenericSchema>(schema: TSchema): PlainValue<v.InferOutput<TSchema>, v.InferInput<TSchema>>;
|
|
94
|
+
/**
|
|
95
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
96
|
+
*
|
|
97
|
+
* ストリーム形式の値のスキーマを定義します。
|
|
98
|
+
*
|
|
99
|
+
* @template TSchema スキーマの型です。
|
|
100
|
+
* @param schema チャンクデータの検証に使用する Valibot スキーマです。
|
|
101
|
+
* @returns ストリーム形式の値であることを示す型情報を返します。
|
|
102
|
+
*/
|
|
103
|
+
export declare function StreamValue<const TSchema extends v.GenericSchema>(schema: TSchema): StreamValue<v.InferOutput<TSchema>, v.InferInput<TSchema>>;
|
|
104
|
+
/**
|
|
105
|
+
* [API Reference](https://tai-kun.github.io/unikvs/packages/unikvs#value-types)
|
|
106
|
+
*
|
|
107
|
+
* プレーンな値とストリーム形式の値の両方で使えるスキーマを定義します。
|
|
108
|
+
*
|
|
109
|
+
* @template TSchema スキーマの型です。
|
|
110
|
+
* @param schema データとチャンクデータの検証に使用する Valibot スキーマです。
|
|
111
|
+
* @returns どちらの形式でも使える値であることを示す型情報を返します。
|
|
112
|
+
*/
|
|
113
|
+
export declare function Value<const TSchema extends v.GenericSchema>(schema: TSchema): Value<v.InferOutput<TSchema>, v.InferInput<TSchema>>;
|
|
114
|
+
/**
|
|
115
|
+
* オブジェクト形式のスキーマ定義です。キーをそのままキーとして扱います。
|
|
116
|
+
*/
|
|
117
|
+
export type UniKvsSchemaRecord = {
|
|
118
|
+
readonly [key: string]: Value<any, any>;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* 配列形式のスキーマ定義です。キーのスキーマと値のスキーマの組を並べます。
|
|
122
|
+
*/
|
|
123
|
+
export type UniKvsSchemaEntries = readonly (readonly [v.GenericSchema, Value<any, any>])[];
|
|
124
|
+
/**
|
|
125
|
+
* `UniKvs.config()` の `schema` オプションに指定できるスキーマ定義です。
|
|
126
|
+
*/
|
|
127
|
+
export type UniKvsSchema = UniKvsSchemaRecord | UniKvsSchemaEntries;
|
|
128
|
+
/**
|
|
129
|
+
* スキーマ定義からキーと値のマッピング型を推論します。
|
|
130
|
+
*
|
|
131
|
+
* @template TSchema 対象となるスキーマ定義の型です。
|
|
132
|
+
*/
|
|
133
|
+
export type $InferKeyValueMapping<TSchema extends UniKvsSchema> = TSchema extends readonly (readonly [v.GenericSchema, infer TValue extends Value<any, any>])[] ? {
|
|
134
|
+
readonly [key: string]: TValue;
|
|
135
|
+
} : TSchema extends {
|
|
136
|
+
readonly [key: string]: Value<any, any>;
|
|
137
|
+
} ? {
|
|
138
|
+
readonly [TKey in keyof TSchema]: TSchema[TKey];
|
|
139
|
+
} : never;
|
|
140
|
+
/**
|
|
141
|
+
* 検証済みのオブジェクト形式のスキーマ定義です。
|
|
142
|
+
*/
|
|
143
|
+
export type UniKvsSchemaInfoRecord = {
|
|
144
|
+
readonly [key: string]: ValueSchemaInfo;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* 検証済みの配列形式のスキーマ定義です。
|
|
148
|
+
*/
|
|
149
|
+
export type UniKvsSchemaInfoEntries = readonly (readonly [v.GenericSchema, ValueSchemaInfo])[];
|
|
150
|
+
/**
|
|
151
|
+
* 検証済みのスキーマ定義です。
|
|
152
|
+
*/
|
|
153
|
+
export type UniKvsSchemaInfo = UniKvsSchemaInfoRecord | UniKvsSchemaInfoEntries;
|
|
154
|
+
/**
|
|
155
|
+
* `schema` オプションの検証に使用するスキーマです。
|
|
156
|
+
*/
|
|
157
|
+
export declare const UniKvsSchemaSchema: import("valibot").UnionSchema<[import("@tai-kun/valibot-extra-lab").ArraySchema<import("@tai-kun/valibot-extra-lab").TupleSchema<[import("valibot").CustomSchema<v.GenericSchema, undefined>, import("valibot").CustomSchema<ValueSchemaInfo, undefined>], undefined>, undefined>, import("@tai-kun/valibot-extra-lab").RecordSchema<import("valibot").StringSchema<undefined>, import("valibot").CustomSchema<ValueSchemaInfo, undefined>, undefined>], undefined>;
|
|
158
|
+
/**
|
|
159
|
+
* キーに対応する値のスキーマ情報を解決するインターフェースです。
|
|
160
|
+
*/
|
|
161
|
+
export interface IValueSchemaResolver {
|
|
162
|
+
/**
|
|
163
|
+
* キーに対応する値のスキーマ情報を返します。
|
|
164
|
+
*
|
|
165
|
+
* @param key 解決するキーです。
|
|
166
|
+
* @returns 対応するスキーマ情報を返します。対応する定義がない場合は `undefined` を返します。
|
|
167
|
+
* @throws キーがどのキースキーマにも一致しない場合に `InvalidInputError` を投げます。
|
|
168
|
+
*/
|
|
169
|
+
resolve(key: string): ValueSchemaInfo | undefined;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 検証済みのスキーマ定義からスキーマリゾルバーを生成します。
|
|
173
|
+
*
|
|
174
|
+
* @param schema 検証済みのスキーマ定義です。
|
|
175
|
+
* @returns スキーマリゾルバーを返します。
|
|
176
|
+
*/
|
|
177
|
+
export declare function createValueSchemaResolver(schema: UniKvsSchemaInfo): IValueSchemaResolver;
|
|
178
|
+
export {};
|
|
179
|
+
//# sourceMappingURL=_value-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_value-schemas.d.ts","sourceRoot":"","sources":["../../src/_value-schemas.ts"],"names":[],"mappings":"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"}
|