@wener/common 2.0.2 → 2.0.3
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/lib/ai/qwen3vl/index.js +2 -0
- package/lib/ai/qwen3vl/index.js.map +1 -0
- package/lib/ai/qwen3vl/utils.js +31 -0
- package/lib/ai/qwen3vl/utils.js.map +1 -0
- package/lib/ai/vision/DocLayoutElementTypeSchema.js +28 -0
- package/lib/ai/vision/DocLayoutElementTypeSchema.js.map +1 -0
- package/lib/ai/vision/ImageAnnotationSchema.js +50 -0
- package/lib/ai/vision/ImageAnnotationSchema.js.map +1 -0
- package/lib/ai/vision/index.js +3 -0
- package/lib/ai/vision/index.js.map +1 -0
- package/lib/ai/vision/resolveImageAnnotation.js +105 -0
- package/lib/ai/vision/resolveImageAnnotation.js.map +1 -0
- package/lib/cn/ChineseResidentIdNo.js +21 -14
- package/lib/cn/ChineseResidentIdNo.js.map +1 -0
- package/lib/cn/ChineseResidentIdNo.test.js +1 -1
- package/lib/cn/DivisionCode.js +30 -25
- package/lib/cn/DivisionCode.js.map +1 -0
- package/lib/cn/DivisionCode.test.js +1 -1
- package/lib/cn/Mod11.js +38 -81
- package/lib/cn/Mod11.js.map +1 -0
- package/lib/cn/Mod31.js +41 -90
- package/lib/cn/Mod31.js.map +1 -0
- package/lib/cn/UnifiedSocialCreditCode.js +43 -34
- package/lib/cn/UnifiedSocialCreditCode.js.map +1 -0
- package/lib/cn/UnifiedSocialCreditCode.test.js +1 -1
- package/lib/cn/formatChineseAmount.js +77 -0
- package/lib/cn/formatChineseAmount.js.map +1 -0
- package/lib/cn/index.js +7 -1
- package/lib/cn/index.js.map +1 -0
- package/lib/cn/parseChineseNumber.js +94 -0
- package/lib/cn/parseChineseNumber.js.map +1 -0
- package/lib/cn/parseChineseNumber.test.js +278 -0
- package/lib/cn/pinyin/cartesianProduct.js +22 -0
- package/lib/cn/pinyin/cartesianProduct.js.map +1 -0
- package/lib/cn/pinyin/cartesianProduct.test.js +179 -0
- package/lib/cn/pinyin/data.json +23573 -0
- package/lib/cn/pinyin/loader.js +14 -0
- package/lib/cn/pinyin/loader.js.map +1 -0
- package/lib/cn/pinyin/preload.js +3 -0
- package/lib/cn/pinyin/preload.js.map +1 -0
- package/lib/cn/pinyin/toPinyin.test.js +167 -0
- package/lib/cn/pinyin/toPinyinPure.js +33 -0
- package/lib/cn/pinyin/toPinyinPure.js.map +1 -0
- package/lib/cn/pinyin/transform.js +14 -0
- package/lib/cn/pinyin/transform.js.map +1 -0
- package/lib/cn/types.d.js +2 -0
- package/lib/cn/types.d.js.map +1 -0
- package/lib/consola/createStandardConsolaReporter.js +6 -6
- package/lib/consola/createStandardConsolaReporter.js.map +1 -0
- package/lib/consola/formatLogObject.js +65 -145
- package/lib/consola/formatLogObject.js.map +1 -0
- package/lib/consola/formatLogObject.test.js +184 -0
- package/lib/consola/index.js +1 -0
- package/lib/consola/index.js.map +1 -0
- package/lib/data/formatSort.js +6 -5
- package/lib/data/formatSort.js.map +1 -0
- package/lib/data/index.js +1 -0
- package/lib/data/index.js.map +1 -0
- package/lib/data/maybeNumber.js +5 -7
- package/lib/data/maybeNumber.js.map +1 -0
- package/lib/data/parseSort.js +22 -28
- package/lib/data/parseSort.js.map +1 -0
- package/lib/data/resolvePagination.js +13 -17
- package/lib/data/resolvePagination.js.map +1 -0
- package/lib/data/types.d.js +2 -0
- package/lib/data/types.d.js.map +1 -0
- package/lib/dayjs/dayjs.js +21 -19
- package/lib/dayjs/dayjs.js.map +1 -0
- package/lib/dayjs/formatDuration.js +15 -14
- package/lib/dayjs/formatDuration.js.map +1 -0
- package/lib/dayjs/index.js +2 -0
- package/lib/dayjs/index.js.map +1 -0
- package/lib/dayjs/parseDuration.js +5 -8
- package/lib/dayjs/parseDuration.js.map +1 -0
- package/lib/dayjs/parseRelativeTime.js +90 -0
- package/lib/dayjs/parseRelativeTime.js.map +1 -0
- package/lib/dayjs/parseRelativeTime.test.js +247 -0
- package/lib/dayjs/resolveRelativeTime.js +158 -0
- package/lib/dayjs/resolveRelativeTime.js.map +1 -0
- package/lib/dayjs/resolveRelativeTime.test.js +310 -0
- package/lib/decimal/index.js +1 -0
- package/lib/decimal/index.js.map +1 -0
- package/lib/decimal/parseDecimal.js +3 -1
- package/lib/decimal/parseDecimal.js.map +1 -0
- package/lib/emittery/emitter.js +10 -0
- package/lib/emittery/emitter.js.map +1 -0
- package/lib/emittery/index.js +2 -0
- package/lib/emittery/index.js.map +1 -0
- package/lib/foundation/schema/SexType.js +5 -3
- package/lib/foundation/schema/SexType.js.map +1 -0
- package/lib/foundation/schema/index.js +1 -0
- package/lib/foundation/schema/index.js.map +1 -0
- package/lib/foundation/schema/parseSexType.js +1 -0
- package/lib/foundation/schema/parseSexType.js.map +1 -0
- package/lib/foundation/schema/types.js +4 -2
- package/lib/foundation/schema/types.js.map +1 -0
- package/lib/fs/FileSystemError.js +23 -0
- package/lib/fs/FileSystemError.js.map +1 -0
- package/lib/fs/IFileSystem.d.js +3 -0
- package/lib/fs/IFileSystem.d.js.map +1 -0
- package/lib/fs/MemoryFileSystem.test.js +188 -0
- package/lib/fs/createBrowserFileSystem.js +248 -0
- package/lib/fs/createBrowserFileSystem.js.map +1 -0
- package/lib/fs/createMemoryFileSystem.js +516 -0
- package/lib/fs/createMemoryFileSystem.js.map +1 -0
- package/lib/fs/createSandboxFileSystem.js +108 -0
- package/lib/fs/createSandboxFileSystem.js.map +1 -0
- package/lib/fs/createWebDavFileSystem.js +137 -0
- package/lib/fs/createWebDavFileSystem.js.map +1 -0
- package/lib/fs/findMimeType.js +17 -0
- package/lib/fs/findMimeType.js.map +1 -0
- package/lib/fs/index.js +8 -0
- package/lib/fs/index.js.map +1 -0
- package/lib/fs/orpc/FileSystemContract.js +93 -0
- package/lib/fs/orpc/FileSystemContract.js.map +1 -0
- package/lib/fs/orpc/createContractClientFileSystem.js +93 -0
- package/lib/fs/orpc/createContractClientFileSystem.js.map +1 -0
- package/lib/fs/orpc/index.js +3 -0
- package/lib/fs/orpc/index.js.map +1 -0
- package/lib/fs/orpc/server/createFileSystemContractImpl.js +63 -0
- package/lib/fs/orpc/server/createFileSystemContractImpl.js.map +1 -0
- package/lib/fs/orpc/server/index.js +2 -0
- package/lib/fs/orpc/server/index.js.map +1 -0
- package/lib/fs/s3/createS3MiniFileSystem.js +705 -0
- package/lib/fs/s3/createS3MiniFileSystem.js.map +1 -0
- package/lib/fs/s3/index.js +2 -0
- package/lib/fs/s3/index.js.map +1 -0
- package/lib/fs/s3/s3mini.test.js +584 -0
- package/lib/fs/scandir.js +59 -0
- package/lib/fs/scandir.js.map +1 -0
- package/lib/fs/server/createDatabaseFileSystem.js +750 -0
- package/lib/fs/server/createDatabaseFileSystem.js.map +1 -0
- package/lib/fs/server/createNodeFileSystem.js +401 -0
- package/lib/fs/server/createNodeFileSystem.js.map +1 -0
- package/lib/fs/server/dbfs.test.js +221 -0
- package/lib/fs/server/index.js +2 -0
- package/lib/fs/server/index.js.map +1 -0
- package/lib/fs/server/loadTestDatabase.js +127 -0
- package/lib/fs/server/loadTestDatabase.js.map +1 -0
- package/lib/fs/tests/runFileSystemTest.js +318 -0
- package/lib/fs/tests/runFileSystemTest.js.map +1 -0
- package/lib/fs/types.js +27 -0
- package/lib/fs/types.js.map +1 -0
- package/lib/fs/utils/getFileUrl.js +35 -0
- package/lib/fs/utils/getFileUrl.js.map +1 -0
- package/lib/fs/utils.js +22 -0
- package/lib/fs/utils.js.map +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -0
- package/lib/jsonschema/JsonSchema.js +146 -172
- package/lib/jsonschema/JsonSchema.js.map +1 -0
- package/lib/jsonschema/forEachJsonSchema.js +44 -0
- package/lib/jsonschema/forEachJsonSchema.js.map +1 -0
- package/lib/jsonschema/index.js +2 -0
- package/lib/jsonschema/index.js.map +1 -0
- package/lib/jsonschema/types.d.js +2 -0
- package/lib/jsonschema/types.d.js.map +1 -0
- package/lib/meta/defineFileType.js +20 -103
- package/lib/meta/defineFileType.js.map +1 -0
- package/lib/meta/defineInit.js +31 -250
- package/lib/meta/defineInit.js.map +1 -0
- package/lib/meta/defineMetadata.js +24 -140
- package/lib/meta/defineMetadata.js.map +1 -0
- package/lib/meta/index.js +1 -0
- package/lib/meta/index.js.map +1 -0
- package/lib/orpc/createOpenApiContractClient.js +27 -0
- package/lib/orpc/createOpenApiContractClient.js.map +1 -0
- package/lib/orpc/createRpcContractClient.js +34 -0
- package/lib/orpc/createRpcContractClient.js.map +1 -0
- package/lib/orpc/index.js +3 -0
- package/lib/orpc/index.js.map +1 -0
- package/lib/orpc/resolveLinkPlugins.js +28 -0
- package/lib/orpc/resolveLinkPlugins.js.map +1 -0
- package/lib/password/PHC.js +63 -87
- package/lib/password/PHC.js.map +1 -0
- package/lib/password/PHC.test.js +11 -3
- package/lib/password/Password.js +29 -294
- package/lib/password/Password.js.map +1 -0
- package/lib/password/Password.test.js +35 -22
- package/lib/password/createArgon2PasswordAlgorithm.js +35 -191
- package/lib/password/createArgon2PasswordAlgorithm.js.map +1 -0
- package/lib/password/createBase64PasswordAlgorithm.js +8 -141
- package/lib/password/createBase64PasswordAlgorithm.js.map +1 -0
- package/lib/password/createBcryptPasswordAlgorithm.js +13 -168
- package/lib/password/createBcryptPasswordAlgorithm.js.map +1 -0
- package/lib/password/createPBKDF2PasswordAlgorithm.js +46 -228
- package/lib/password/createPBKDF2PasswordAlgorithm.js.map +1 -0
- package/lib/password/createScryptPasswordAlgorithm.js +55 -211
- package/lib/password/createScryptPasswordAlgorithm.js.map +1 -0
- package/lib/password/index.js +1 -0
- package/lib/password/index.js.map +1 -0
- package/lib/password/server/index.js +1 -0
- package/lib/password/server/index.js.map +1 -0
- package/lib/resource/Identifiable.js +2 -0
- package/lib/resource/Identifiable.js.map +1 -0
- package/lib/resource/ListQuery.js +21 -93
- package/lib/resource/ListQuery.js.map +1 -0
- package/lib/resource/getTitleOfResource.js +3 -5
- package/lib/resource/getTitleOfResource.js.map +1 -0
- package/lib/resource/index.js +1 -0
- package/lib/resource/index.js.map +1 -0
- package/lib/resource/schema/AnyResourceSchema.js +2 -1
- package/lib/resource/schema/AnyResourceSchema.js.map +1 -0
- package/lib/resource/schema/BaseResourceSchema.js +2 -1
- package/lib/resource/schema/BaseResourceSchema.js.map +1 -0
- package/lib/resource/schema/ResourceActionType.js +6 -4
- package/lib/resource/schema/ResourceActionType.js.map +1 -0
- package/lib/resource/schema/ResourceStatus.js +5 -3
- package/lib/resource/schema/ResourceStatus.js.map +1 -0
- package/lib/resource/schema/ResourceType.js +5 -3
- package/lib/resource/schema/ResourceType.js.map +1 -0
- package/lib/resource/schema/index.js +1 -0
- package/lib/resource/schema/index.js.map +1 -0
- package/lib/resource/schema/types.js +16 -20
- package/lib/resource/schema/types.js.map +1 -0
- package/lib/s3/formatS3Url.js +65 -0
- package/lib/s3/formatS3Url.js.map +1 -0
- package/lib/s3/formatS3Url.test.js +262 -0
- package/lib/s3/index.js +3 -0
- package/lib/s3/index.js.map +1 -0
- package/lib/s3/parseS3Url.js +65 -0
- package/lib/s3/parseS3Url.js.map +1 -0
- package/lib/s3/parseS3Url.test.js +270 -0
- package/lib/schema/SchemaRegistry.js +38 -38
- package/lib/schema/SchemaRegistry.js.map +1 -0
- package/lib/schema/TypeSchema.d.js +2 -0
- package/lib/schema/TypeSchema.d.js.map +1 -0
- package/lib/schema/createSchemaData.js +26 -125
- package/lib/schema/createSchemaData.js.map +1 -0
- package/lib/schema/findJsonSchemaByPath.js +13 -36
- package/lib/schema/findJsonSchemaByPath.js.map +1 -0
- package/lib/schema/formatZodError.js +140 -0
- package/lib/schema/formatZodError.js.map +1 -0
- package/lib/schema/formatZodError.test.js +196 -0
- package/lib/schema/getSchemaCache.js +5 -5
- package/lib/schema/getSchemaCache.js.map +1 -0
- package/lib/schema/getSchemaOptions.js +8 -11
- package/lib/schema/getSchemaOptions.js.map +1 -0
- package/lib/schema/index.js +2 -1
- package/lib/schema/index.js.map +1 -0
- package/lib/schema/toJsonSchema.js +47 -290
- package/lib/schema/toJsonSchema.js.map +1 -0
- package/lib/schema/validate.js +33 -45
- package/lib/schema/validate.js.map +1 -0
- package/lib/tools/generateSchema.js +39 -197
- package/lib/tools/generateSchema.js.map +1 -0
- package/lib/tools/renderJsonSchemaToMarkdownDoc.js +55 -143
- package/lib/tools/renderJsonSchemaToMarkdownDoc.js.map +1 -0
- package/lib/utils/buildBaseUrl.js +13 -0
- package/lib/utils/buildBaseUrl.js.map +1 -0
- package/lib/utils/buildRedactorFormSchema.js +59 -0
- package/lib/utils/buildRedactorFormSchema.js.map +1 -0
- package/lib/utils/getEstimateProcessTime.js +12 -11
- package/lib/utils/getEstimateProcessTime.js.map +1 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/resolveFeatureOptions.js +12 -0
- package/lib/utils/resolveFeatureOptions.js.map +1 -0
- package/package.json +61 -13
- package/src/ai/qwen3vl/index.ts +1 -0
- package/src/ai/qwen3vl/utils.ts +36 -0
- package/src/ai/vision/DocLayoutElementTypeSchema.ts +30 -0
- package/src/ai/vision/ImageAnnotationSchema.ts +60 -0
- package/src/ai/vision/index.ts +2 -0
- package/src/ai/vision/resolveImageAnnotation.ts +135 -0
- package/src/cn/ChineseResidentIdNo.test.ts +1 -1
- package/src/cn/ChineseResidentIdNo.ts +8 -0
- package/src/cn/DivisionCode.test.ts +1 -1
- package/src/cn/DivisionCode.ts +8 -0
- package/src/cn/UnifiedSocialCreditCode.test.ts +1 -1
- package/src/cn/UnifiedSocialCreditCode.ts +15 -0
- package/src/cn/__snapshots__/UnifiedSocialCreditCode.test.ts.snap +23 -0
- package/src/cn/formatChineseAmount.ts +61 -0
- package/src/cn/index.ts +7 -1
- package/src/cn/parseChineseNumber.test.ts +159 -0
- package/src/cn/parseChineseNumber.ts +97 -0
- package/src/cn/pinyin/cartesianProduct.test.ts +64 -0
- package/src/cn/pinyin/cartesianProduct.ts +24 -0
- package/src/cn/pinyin/data.json +23573 -0
- package/src/cn/pinyin/loader.ts +12 -0
- package/src/cn/pinyin/preload.ts +3 -0
- package/src/cn/pinyin/toPinyin.test.ts +12 -0
- package/src/cn/pinyin/toPinyinPure.ts +43 -0
- package/src/cn/pinyin/transform.ts +12 -0
- package/src/consola/formatLogObject.test.ts +27 -0
- package/src/consola/formatLogObject.ts +34 -6
- package/src/dayjs/dayjs.ts +18 -18
- package/src/dayjs/index.ts +3 -1
- package/src/dayjs/parseRelativeTime.test.ts +185 -0
- package/src/dayjs/parseRelativeTime.ts +115 -0
- package/src/dayjs/resolveRelativeTime.test.ts +357 -0
- package/src/dayjs/resolveRelativeTime.ts +167 -0
- package/src/emittery/emitter.ts +9 -0
- package/src/emittery/index.ts +1 -0
- package/src/fs/FileSystemError.ts +26 -0
- package/src/fs/IFileSystem.d.ts +102 -0
- package/src/fs/MemoryFileSystem.test.ts +37 -0
- package/src/fs/createBrowserFileSystem.ts +291 -0
- package/src/fs/createMemoryFileSystem.ts +604 -0
- package/src/fs/createSandboxFileSystem.ts +136 -0
- package/src/fs/createWebDavFileSystem.ts +172 -0
- package/src/fs/findMimeType.ts +23 -0
- package/src/fs/index.ts +8 -0
- package/src/fs/orpc/FileSystemContract.ts +92 -0
- package/src/fs/orpc/createContractClientFileSystem.ts +115 -0
- package/src/fs/orpc/index.ts +2 -0
- package/src/fs/orpc/server/createFileSystemContractImpl.ts +64 -0
- package/src/fs/orpc/server/index.ts +1 -0
- package/src/fs/s3/createS3MiniFileSystem.ts +830 -0
- package/src/fs/s3/index.ts +1 -0
- package/src/fs/s3/s3mini.test.ts +264 -0
- package/src/fs/scandir.ts +75 -0
- package/src/fs/server/createDatabaseFileSystem.ts +668 -0
- package/src/fs/server/createNodeFileSystem.ts +499 -0
- package/src/fs/server/dbfs.test.ts +47 -0
- package/src/fs/server/index.ts +1 -0
- package/src/fs/server/loadTestDatabase.ts +131 -0
- package/src/fs/tests/runFileSystemTest.ts +288 -0
- package/src/fs/types.ts +29 -0
- package/src/fs/utils/getFileUrl.ts +44 -0
- package/src/fs/utils.ts +23 -0
- package/src/jsonschema/JsonSchema.ts +118 -110
- package/src/jsonschema/forEachJsonSchema.ts +50 -0
- package/src/jsonschema/index.ts +1 -0
- package/src/orpc/createOpenApiContractClient.ts +52 -0
- package/src/orpc/createRpcContractClient.ts +50 -0
- package/src/orpc/index.ts +2 -0
- package/src/orpc/resolveLinkPlugins.ts +29 -0
- package/src/password/PHC.ts +3 -3
- package/src/password/Password.test.ts +1 -1
- package/src/password/createPBKDF2PasswordAlgorithm.ts +2 -2
- package/src/resource/schema/AnyResourceSchema.ts +16 -2
- package/src/s3/formatS3Url.test.ts +254 -0
- package/src/s3/formatS3Url.ts +84 -0
- package/src/s3/index.ts +2 -0
- package/src/s3/parseS3Url.test.ts +258 -0
- package/src/s3/parseS3Url.ts +88 -0
- package/src/schema/SchemaRegistry.ts +35 -33
- package/src/schema/formatZodError.test.ts +196 -0
- package/src/schema/formatZodError.ts +151 -0
- package/src/schema/getSchemaOptions.ts +2 -2
- package/src/schema/index.ts +1 -1
- package/src/utils/buildBaseUrl.ts +12 -0
- package/src/utils/buildRedactorFormSchema.ts +85 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/resolveFeatureOptions.ts +14 -0
- package/src/cn/ChineseResidentIdNo.mod.ts +0 -7
- package/src/cn/DivisionCode.mod.ts +0 -7
- package/src/cn/UnifiedSocialCreditCode.mod.ts +0 -7
- package/src/cn/mod.ts +0 -3
- package/src/schema/SchemaRegistry.mod.ts +0 -1
|
@@ -1,201 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { exec } from "node:child_process";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import * as Codegen from "@sinclair/typebox-codegen";
|
|
5
|
+
export async function generateSchema({ file, dir = path.dirname(file) }) {
|
|
6
|
+
const fn = path.basename(file).replace(/\.d\.ts$/, '.ts');
|
|
7
|
+
const types = await fs.readFile(file, 'utf-8');
|
|
8
|
+
const typeboxDir = path.join(dir, 'typebox');
|
|
9
|
+
const zodDir = path.join(dir, 'zod');
|
|
10
|
+
await fs.mkdir(typeboxDir, {
|
|
11
|
+
recursive: true
|
|
12
|
+
});
|
|
13
|
+
await fs.mkdir(zodDir, {
|
|
14
|
+
recursive: true
|
|
15
|
+
});
|
|
16
|
+
const typeBoxFile = path.join(typeboxDir, fn);
|
|
17
|
+
const zodFile = path.join(zodDir, fn);
|
|
18
|
+
{
|
|
19
|
+
// avoid import type error
|
|
20
|
+
let out = Codegen.TypeScriptToTypeBox.Generate(types);
|
|
21
|
+
out = out.replace(/^import \{ Type, Static\b/, `import { Type, type Static`);
|
|
22
|
+
await fs.writeFile(typeBoxFile, out);
|
|
8
23
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var self = this, args = arguments;
|
|
18
|
-
return new Promise(function(resolve, reject) {
|
|
19
|
-
var gen = fn.apply(self, args);
|
|
20
|
-
function _next(value) {
|
|
21
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
22
|
-
}
|
|
23
|
-
function _throw(err) {
|
|
24
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
25
|
-
}
|
|
26
|
-
_next(undefined);
|
|
27
|
-
});
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function _ts_generator(thisArg, body) {
|
|
31
|
-
var f, y, t, _ = {
|
|
32
|
-
label: 0,
|
|
33
|
-
sent: function() {
|
|
34
|
-
if (t[0] & 1) throw t[1];
|
|
35
|
-
return t[1];
|
|
36
|
-
},
|
|
37
|
-
trys: [],
|
|
38
|
-
ops: []
|
|
39
|
-
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
40
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
41
|
-
return this;
|
|
42
|
-
}), g;
|
|
43
|
-
function verb(n) {
|
|
44
|
-
return function(v) {
|
|
45
|
-
return step([
|
|
46
|
-
n,
|
|
47
|
-
v
|
|
48
|
-
]);
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function step(op) {
|
|
52
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
53
|
-
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
54
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
55
|
-
if (y = 0, t) op = [
|
|
56
|
-
op[0] & 2,
|
|
57
|
-
t.value
|
|
58
|
-
];
|
|
59
|
-
switch(op[0]){
|
|
60
|
-
case 0:
|
|
61
|
-
case 1:
|
|
62
|
-
t = op;
|
|
63
|
-
break;
|
|
64
|
-
case 4:
|
|
65
|
-
_.label++;
|
|
66
|
-
return {
|
|
67
|
-
value: op[1],
|
|
68
|
-
done: false
|
|
69
|
-
};
|
|
70
|
-
case 5:
|
|
71
|
-
_.label++;
|
|
72
|
-
y = op[1];
|
|
73
|
-
op = [
|
|
74
|
-
0
|
|
75
|
-
];
|
|
76
|
-
continue;
|
|
77
|
-
case 7:
|
|
78
|
-
op = _.ops.pop();
|
|
79
|
-
_.trys.pop();
|
|
80
|
-
continue;
|
|
81
|
-
default:
|
|
82
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
83
|
-
_ = 0;
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
87
|
-
_.label = op[1];
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
91
|
-
_.label = t[1];
|
|
92
|
-
t = op;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
if (t && _.label < t[2]) {
|
|
96
|
-
_.label = t[2];
|
|
97
|
-
_.ops.push(op);
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
if (t[2]) _.ops.pop();
|
|
101
|
-
_.trys.pop();
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
op = body.call(thisArg, _);
|
|
105
|
-
} catch (e) {
|
|
106
|
-
op = [
|
|
107
|
-
6,
|
|
108
|
-
e
|
|
109
|
-
];
|
|
110
|
-
y = 0;
|
|
111
|
-
} finally{
|
|
112
|
-
f = t = 0;
|
|
113
|
-
}
|
|
114
|
-
if (op[0] & 5) throw op[1];
|
|
115
|
-
return {
|
|
116
|
-
value: op[0] ? op[1] : void 0,
|
|
117
|
-
done: true
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
import { exec } from 'node:child_process';
|
|
122
|
-
import fs from 'node:fs/promises';
|
|
123
|
-
import path from 'node:path';
|
|
124
|
-
import * as Codegen from '@sinclair/typebox-codegen';
|
|
125
|
-
export function generateSchema(_0) {
|
|
126
|
-
return _async_to_generator(function(param) {
|
|
127
|
-
var file, _param_dir, dir, fn, types, typeboxDir, zodDir, typeBoxFile, zodFile, out, model;
|
|
128
|
-
return _ts_generator(this, function(_state) {
|
|
129
|
-
switch(_state.label){
|
|
130
|
-
case 0:
|
|
131
|
-
file = param.file, _param_dir = param.dir, dir = _param_dir === void 0 ? path.dirname(file) : _param_dir;
|
|
132
|
-
fn = path.basename(file).replace(/\.d\.ts$/, '.ts');
|
|
133
|
-
return [
|
|
134
|
-
4,
|
|
135
|
-
fs.readFile(file, 'utf-8')
|
|
136
|
-
];
|
|
137
|
-
case 1:
|
|
138
|
-
types = _state.sent();
|
|
139
|
-
typeboxDir = path.join(dir, 'typebox');
|
|
140
|
-
zodDir = path.join(dir, 'zod');
|
|
141
|
-
return [
|
|
142
|
-
4,
|
|
143
|
-
fs.mkdir(typeboxDir, {
|
|
144
|
-
recursive: true
|
|
145
|
-
})
|
|
146
|
-
];
|
|
147
|
-
case 2:
|
|
148
|
-
_state.sent();
|
|
149
|
-
return [
|
|
150
|
-
4,
|
|
151
|
-
fs.mkdir(zodDir, {
|
|
152
|
-
recursive: true
|
|
153
|
-
})
|
|
154
|
-
];
|
|
155
|
-
case 3:
|
|
156
|
-
_state.sent();
|
|
157
|
-
typeBoxFile = path.join(typeboxDir, fn);
|
|
158
|
-
zodFile = path.join(zodDir, fn);
|
|
159
|
-
// avoid import type error
|
|
160
|
-
out = Codegen.TypeScriptToTypeBox.Generate(types);
|
|
161
|
-
out = out.replace(/^import \{ Type, Static\b/, "import { Type, type Static");
|
|
162
|
-
return [
|
|
163
|
-
4,
|
|
164
|
-
fs.writeFile(typeBoxFile, out)
|
|
165
|
-
];
|
|
166
|
-
case 4:
|
|
167
|
-
_state.sent();
|
|
168
|
-
model = Codegen.TypeScriptToModel.Generate(types);
|
|
169
|
-
return [
|
|
170
|
-
4,
|
|
171
|
-
fs.writeFile(zodFile, Codegen.ModelToZod.Generate(model))
|
|
172
|
-
];
|
|
173
|
-
case 5:
|
|
174
|
-
_state.sent();
|
|
175
|
-
return [
|
|
176
|
-
4,
|
|
177
|
-
new Promise(function(resolve, reject) {
|
|
178
|
-
exec('pnpm prettier --write "'.concat(dir, '/{typebox,zod}/*.ts"'), function(error, stdout, stderr) {
|
|
179
|
-
if (error) {
|
|
180
|
-
console.error("exec error: ".concat(error));
|
|
181
|
-
reject(error);
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
resolve({
|
|
185
|
-
stderr: stderr,
|
|
186
|
-
stdout: stdout
|
|
187
|
-
});
|
|
188
|
-
stdout && console.log("prettier:stdout: ".concat(stdout));
|
|
189
|
-
stderr && console.error("prettier:stderr: ".concat(stderr));
|
|
190
|
-
});
|
|
191
|
-
})
|
|
192
|
-
];
|
|
193
|
-
case 6:
|
|
194
|
-
_state.sent();
|
|
195
|
-
return [
|
|
196
|
-
2
|
|
197
|
-
];
|
|
24
|
+
const model = Codegen.TypeScriptToModel.Generate(types);
|
|
25
|
+
await fs.writeFile(zodFile, Codegen.ModelToZod.Generate(model));
|
|
26
|
+
await new Promise((resolve, reject)=>{
|
|
27
|
+
exec(`pnpm prettier --write "${dir}/{typebox,zod}/*.ts"`, (error, stdout, stderr)=>{
|
|
28
|
+
if (error) {
|
|
29
|
+
console.error(`exec error: ${error}`);
|
|
30
|
+
reject(error);
|
|
31
|
+
return;
|
|
198
32
|
}
|
|
33
|
+
resolve({
|
|
34
|
+
stderr,
|
|
35
|
+
stdout
|
|
36
|
+
});
|
|
37
|
+
stdout && console.log(`prettier:stdout: ${stdout}`);
|
|
38
|
+
stderr && console.error(`prettier:stderr: ${stderr}`);
|
|
199
39
|
});
|
|
200
|
-
})
|
|
40
|
+
});
|
|
201
41
|
}
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=generateSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tools/generateSchema.ts"],"sourcesContent":["import { exec } from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport * as Codegen from '@sinclair/typebox-codegen';\n\nexport async function generateSchema({ file, dir = path.dirname(file) }: { file: string; dir?: string }) {\n\tconst fn = path.basename(file).replace(/\\.d\\.ts$/, '.ts');\n\tconst types = await fs.readFile(file, 'utf-8');\n\n\tconst typeboxDir = path.join(dir, 'typebox');\n\tconst zodDir = path.join(dir, 'zod');\n\n\tawait fs.mkdir(typeboxDir, { recursive: true });\n\tawait fs.mkdir(zodDir, { recursive: true });\n\n\tconst typeBoxFile = path.join(typeboxDir, fn);\n\tconst zodFile = path.join(zodDir, fn);\n\t{\n\t\t// avoid import type error\n\t\tlet out = Codegen.TypeScriptToTypeBox.Generate(types);\n\t\tout = out.replace(/^import \\{ Type, Static\\b/, `import { Type, type Static`);\n\t\tawait fs.writeFile(typeBoxFile, out);\n\t}\n\tconst model = Codegen.TypeScriptToModel.Generate(types);\n\tawait fs.writeFile(zodFile, Codegen.ModelToZod.Generate(model));\n\n\tawait new Promise((resolve, reject) => {\n\t\texec(`pnpm prettier --write \"${dir}/{typebox,zod}/*.ts\"`, (error, stdout, stderr) => {\n\t\t\tif (error) {\n\t\t\t\tconsole.error(`exec error: ${error}`);\n\t\t\t\treject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresolve({ stderr, stdout });\n\t\t\tstdout && console.log(`prettier:stdout: ${stdout}`);\n\t\t\tstderr && console.error(`prettier:stderr: ${stderr}`);\n\t\t});\n\t});\n}\n"],"names":["exec","fs","path","Codegen","generateSchema","file","dir","dirname","fn","basename","replace","types","readFile","typeboxDir","join","zodDir","mkdir","recursive","typeBoxFile","zodFile","out","TypeScriptToTypeBox","Generate","writeFile","model","TypeScriptToModel","ModelToZod","Promise","resolve","reject","error","stdout","stderr","console","log"],"mappings":"AAAA,SAASA,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,QAAQ,mBAAmB;AAClC,OAAOC,UAAU,YAAY;AAC7B,YAAYC,aAAa,4BAA4B;AAErD,OAAO,eAAeC,eAAe,EAAEC,IAAI,EAAEC,MAAMJ,KAAKK,OAAO,CAACF,KAAK,EAAkC;IACtG,MAAMG,KAAKN,KAAKO,QAAQ,CAACJ,MAAMK,OAAO,CAAC,YAAY;IACnD,MAAMC,QAAQ,MAAMV,GAAGW,QAAQ,CAACP,MAAM;IAEtC,MAAMQ,aAAaX,KAAKY,IAAI,CAACR,KAAK;IAClC,MAAMS,SAASb,KAAKY,IAAI,CAACR,KAAK;IAE9B,MAAML,GAAGe,KAAK,CAACH,YAAY;QAAEI,WAAW;IAAK;IAC7C,MAAMhB,GAAGe,KAAK,CAACD,QAAQ;QAAEE,WAAW;IAAK;IAEzC,MAAMC,cAAchB,KAAKY,IAAI,CAACD,YAAYL;IAC1C,MAAMW,UAAUjB,KAAKY,IAAI,CAACC,QAAQP;IAClC;QACC,0BAA0B;QAC1B,IAAIY,MAAMjB,QAAQkB,mBAAmB,CAACC,QAAQ,CAACX;QAC/CS,MAAMA,IAAIV,OAAO,CAAC,6BAA6B,CAAC,0BAA0B,CAAC;QAC3E,MAAMT,GAAGsB,SAAS,CAACL,aAAaE;IACjC;IACA,MAAMI,QAAQrB,QAAQsB,iBAAiB,CAACH,QAAQ,CAACX;IACjD,MAAMV,GAAGsB,SAAS,CAACJ,SAAShB,QAAQuB,UAAU,CAACJ,QAAQ,CAACE;IAExD,MAAM,IAAIG,QAAQ,CAACC,SAASC;QAC3B7B,KAAK,CAAC,uBAAuB,EAAEM,IAAI,oBAAoB,CAAC,EAAE,CAACwB,OAAOC,QAAQC;YACzE,IAAIF,OAAO;gBACVG,QAAQH,KAAK,CAAC,CAAC,YAAY,EAAEA,OAAO;gBACpCD,OAAOC;gBACP;YACD;YACAF,QAAQ;gBAAEI;gBAAQD;YAAO;YACzBA,UAAUE,QAAQC,GAAG,CAAC,CAAC,iBAAiB,EAAEH,QAAQ;YAClDC,UAAUC,QAAQH,KAAK,CAAC,CAAC,iBAAiB,EAAEE,QAAQ;QACrD;IACD;AACD"}
|
|
@@ -1,173 +1,85 @@
|
|
|
1
|
-
function _array_like_to_array(arr, len) {
|
|
2
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
-
return arr2;
|
|
5
|
-
}
|
|
6
|
-
function _array_with_holes(arr) {
|
|
7
|
-
if (Array.isArray(arr)) return arr;
|
|
8
|
-
}
|
|
9
|
-
function _iterable_to_array_limit(arr, i) {
|
|
10
|
-
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
11
|
-
if (_i == null) return;
|
|
12
|
-
var _arr = [];
|
|
13
|
-
var _n = true;
|
|
14
|
-
var _d = false;
|
|
15
|
-
var _s, _e;
|
|
16
|
-
try {
|
|
17
|
-
for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
|
|
18
|
-
_arr.push(_s.value);
|
|
19
|
-
if (i && _arr.length === i) break;
|
|
20
|
-
}
|
|
21
|
-
} catch (err) {
|
|
22
|
-
_d = true;
|
|
23
|
-
_e = err;
|
|
24
|
-
} finally{
|
|
25
|
-
try {
|
|
26
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
27
|
-
} finally{
|
|
28
|
-
if (_d) throw _e;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return _arr;
|
|
32
|
-
}
|
|
33
|
-
function _non_iterable_rest() {
|
|
34
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
35
|
-
}
|
|
36
|
-
function _sliced_to_array(arr, i) {
|
|
37
|
-
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
38
|
-
}
|
|
39
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
40
|
-
if (!o) return;
|
|
41
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
42
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
43
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
44
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
45
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
46
|
-
}
|
|
47
1
|
export function renderJsonSchemaToMarkdownDoc(rootSchema) {
|
|
48
2
|
// markdown
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
3
|
+
const out = [];
|
|
4
|
+
const all = new Set();
|
|
5
|
+
const pending = [];
|
|
6
|
+
const addObject = (o)=>{
|
|
53
7
|
if (all.has(o.$id)) {
|
|
54
8
|
return;
|
|
55
9
|
}
|
|
56
10
|
all.add(o.$id);
|
|
57
11
|
pending.push(o);
|
|
58
12
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (!(T === null || T === void 0 ? void 0 : T.properties)) {
|
|
13
|
+
const writeObjectProps = (T, { prefix = '' } = {})=>{
|
|
14
|
+
if (!T?.properties) {
|
|
62
15
|
return;
|
|
63
16
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
typ = "".concat(schema.items.$id || schema.items.type, "[]");
|
|
71
|
-
if (schema.items.$id) {
|
|
72
|
-
addObject(schema.items);
|
|
73
|
-
}
|
|
74
|
-
} else if (schema.$id) {
|
|
75
|
-
addObject(schema);
|
|
76
|
-
}
|
|
77
|
-
if (!typ) {
|
|
78
|
-
if ('anyOf' in schema) {
|
|
79
|
-
typ = 'enum';
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
out.push("| ".concat(prefix).concat(name, " | ").concat(typ, " | ").concat(schema.title || schema.description || '', " |"));
|
|
83
|
-
if (typ === 'object') {
|
|
84
|
-
writeObjectProps(schema, {
|
|
85
|
-
prefix: "".concat(prefix).concat(name, ".")
|
|
86
|
-
});
|
|
87
|
-
} else if (schema.type === 'array') {
|
|
88
|
-
if (schema.items.type === 'object' && !schema.items.$id) {
|
|
89
|
-
writeObjectProps(schema.items, {
|
|
90
|
-
prefix: "".concat(prefix).concat(name, "[].")
|
|
91
|
-
});
|
|
92
|
-
}
|
|
17
|
+
for (const [name, schema] of Object.entries(T.properties)){
|
|
18
|
+
let typ = schema.$id || schema.type;
|
|
19
|
+
if (typ === 'array') {
|
|
20
|
+
typ = `${schema.items.$id || schema.items.type}[]`;
|
|
21
|
+
if (schema.items.$id) {
|
|
22
|
+
addObject(schema.items);
|
|
93
23
|
}
|
|
24
|
+
} else if (schema.$id) {
|
|
25
|
+
addObject(schema);
|
|
94
26
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
} finally{
|
|
99
|
-
try {
|
|
100
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
101
|
-
_iterator.return();
|
|
27
|
+
if (!typ) {
|
|
28
|
+
if ('anyOf' in schema) {
|
|
29
|
+
typ = 'enum';
|
|
102
30
|
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
31
|
+
}
|
|
32
|
+
out.push(`| ${prefix}${name} | ${typ} | ${schema.title || schema.description || ''} |`);
|
|
33
|
+
if (typ === 'object') {
|
|
34
|
+
writeObjectProps(schema, {
|
|
35
|
+
prefix: `${prefix}${name}.`
|
|
36
|
+
});
|
|
37
|
+
} else if (schema.type === 'array') {
|
|
38
|
+
if (schema.items.type === 'object' && !schema.items.$id) {
|
|
39
|
+
writeObjectProps(schema.items, {
|
|
40
|
+
prefix: `${prefix}${name}[].`
|
|
41
|
+
});
|
|
106
42
|
}
|
|
107
43
|
}
|
|
108
44
|
}
|
|
109
45
|
};
|
|
110
|
-
|
|
111
|
-
out.push(
|
|
112
|
-
out.push(
|
|
46
|
+
const writeObject = (T)=>{
|
|
47
|
+
out.push(`### ${T.title || T.$id}`);
|
|
48
|
+
out.push(`
|
|
49
|
+
| $id | 名字 |
|
|
50
|
+
| --- | --- |
|
|
51
|
+
| ${T.$id || ''} | ${T.title || ''} |
|
|
52
|
+
`);
|
|
113
53
|
if (T.description) {
|
|
114
54
|
out.push('');
|
|
115
|
-
out.push(
|
|
55
|
+
out.push(`> ${T.description}`);
|
|
116
56
|
out.push('');
|
|
117
57
|
}
|
|
118
|
-
out.push(
|
|
119
|
-
out.push(
|
|
58
|
+
out.push(`| 名字 | 类型 | 说明 |`);
|
|
59
|
+
out.push(`| --- | --- | --- |`);
|
|
120
60
|
writeObjectProps(T);
|
|
121
61
|
out.push('');
|
|
122
62
|
};
|
|
123
63
|
writeObject(rootSchema);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
var item = _step1.value;
|
|
139
|
-
out.push("| ".concat(item.const, " | ").concat(item.title || item.description || '', " |"));
|
|
140
|
-
}
|
|
141
|
-
} catch (err) {
|
|
142
|
-
_didIteratorError1 = true;
|
|
143
|
-
_iteratorError1 = err;
|
|
144
|
-
} finally{
|
|
145
|
-
try {
|
|
146
|
-
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
147
|
-
_iterator1.return();
|
|
148
|
-
}
|
|
149
|
-
} finally{
|
|
150
|
-
if (_didIteratorError1) {
|
|
151
|
-
throw _iteratorError1;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
out.push('');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
} catch (err) {
|
|
159
|
-
_didIteratorError = true;
|
|
160
|
-
_iteratorError = err;
|
|
161
|
-
} finally{
|
|
162
|
-
try {
|
|
163
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
164
|
-
_iterator.return();
|
|
165
|
-
}
|
|
166
|
-
} finally{
|
|
167
|
-
if (_didIteratorError) {
|
|
168
|
-
throw _iteratorError;
|
|
64
|
+
for (const schema of pending){
|
|
65
|
+
if (schema.type === 'object') {
|
|
66
|
+
writeObject(schema);
|
|
67
|
+
} else if ('anyOf' in schema) {
|
|
68
|
+
out.push(`### ${schema.$id || schema.title}`);
|
|
69
|
+
out.push(`
|
|
70
|
+
| $id | 名字 |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| ${schema.$id || ''} | ${schema.title || ''} |
|
|
73
|
+
`);
|
|
74
|
+
out.push(`| 值 | 说明 |`);
|
|
75
|
+
out.push(`| --- | --- |`);
|
|
76
|
+
for (const item of schema.anyOf){
|
|
77
|
+
out.push(`| ${item.const} | ${item.title || item.description || ''} |`);
|
|
169
78
|
}
|
|
79
|
+
out.push('');
|
|
170
80
|
}
|
|
171
81
|
}
|
|
172
82
|
return out.join('\n');
|
|
173
83
|
}
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=renderJsonSchemaToMarkdownDoc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tools/renderJsonSchemaToMarkdownDoc.ts"],"sourcesContent":["import type { TObject, TSchema } from '@sinclair/typebox';\n\nexport function renderJsonSchemaToMarkdownDoc(rootSchema: any) {\n\t// markdown\n\tconst out: string[] = [];\n\tconst all = new Set();\n\tconst pending: TSchema[] = [];\n\n\tconst addObject = (o: TSchema) => {\n\t\tif (all.has(o.$id)) {\n\t\t\treturn;\n\t\t}\n\t\tall.add(o.$id);\n\t\tpending.push(o);\n\t};\n\n\tconst writeObjectProps = (T: TObject, { prefix = '' }: { prefix?: string } = {}) => {\n\t\tif (!T?.properties) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const [name, schema] of Object.entries(T.properties)) {\n\t\t\tlet typ = schema.$id || schema.type;\n\n\t\t\tif (typ === 'array') {\n\t\t\t\ttyp = `${schema.items.$id || schema.items.type}[]`;\n\t\t\t\tif (schema.items.$id) {\n\t\t\t\t\taddObject(schema.items);\n\t\t\t\t}\n\t\t\t} else if (schema.$id) {\n\t\t\t\taddObject(schema);\n\t\t\t}\n\t\t\tif (!typ) {\n\t\t\t\tif ('anyOf' in schema) {\n\t\t\t\t\ttyp = 'enum';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tout.push(`| ${prefix}${name} | ${typ} | ${schema.title || schema.description || ''} |`);\n\n\t\t\tif (typ === 'object') {\n\t\t\t\twriteObjectProps(schema as TObject, { prefix: `${prefix}${name}.` });\n\t\t\t} else if (schema.type === 'array') {\n\t\t\t\tif (schema.items.type === 'object' && !schema.items.$id) {\n\t\t\t\t\twriteObjectProps(schema.items as TObject, { prefix: `${prefix}${name}[].` });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tconst writeObject = (T: TObject) => {\n\t\tout.push(`### ${T.title || T.$id}`);\n\t\tout.push(`\n| $id | 名字 |\n| --- | --- |\n| ${T.$id || ''} | ${T.title || ''} | \n `);\n\t\tif (T.description) {\n\t\t\tout.push('');\n\t\t\tout.push(`> ${T.description}`);\n\t\t\tout.push('');\n\t\t}\n\n\t\tout.push(`| 名字 | 类型 | 说明 |`);\n\t\tout.push(`| --- | --- | --- |`);\n\n\t\twriteObjectProps(T);\n\n\t\tout.push('');\n\t};\n\n\twriteObject(rootSchema);\n\n\tfor (const schema of pending) {\n\t\tif (schema.type === 'object') {\n\t\t\twriteObject(schema as TObject);\n\t\t} else if ('anyOf' in schema) {\n\t\t\tout.push(`### ${schema.$id || schema.title}`);\n\t\t\tout.push(`\n| $id | 名字 |\n| --- | --- |\n| ${schema.$id || ''} | ${schema.title || ''} | \n `);\n\n\t\t\tout.push(`| 值 | 说明 |`);\n\t\t\tout.push(`| --- | --- |`);\n\t\t\tfor (const item of schema.anyOf) {\n\t\t\t\tout.push(`| ${item.const} | ${item.title || item.description || ''} |`);\n\t\t\t}\n\t\t\tout.push('');\n\t\t}\n\t}\n\n\treturn out.join('\\n');\n}\n"],"names":["renderJsonSchemaToMarkdownDoc","rootSchema","out","all","Set","pending","addObject","o","has","$id","add","push","writeObjectProps","T","prefix","properties","name","schema","Object","entries","typ","type","items","title","description","writeObject","item","anyOf","const","join"],"mappings":"AAEA,OAAO,SAASA,8BAA8BC,UAAe;IAC5D,WAAW;IACX,MAAMC,MAAgB,EAAE;IACxB,MAAMC,MAAM,IAAIC;IAChB,MAAMC,UAAqB,EAAE;IAE7B,MAAMC,YAAY,CAACC;QAClB,IAAIJ,IAAIK,GAAG,CAACD,EAAEE,GAAG,GAAG;YACnB;QACD;QACAN,IAAIO,GAAG,CAACH,EAAEE,GAAG;QACbJ,QAAQM,IAAI,CAACJ;IACd;IAEA,MAAMK,mBAAmB,CAACC,GAAY,EAAEC,SAAS,EAAE,EAAuB,GAAG,CAAC,CAAC;QAC9E,IAAI,CAACD,GAAGE,YAAY;YACnB;QACD;QACA,KAAK,MAAM,CAACC,MAAMC,OAAO,IAAIC,OAAOC,OAAO,CAACN,EAAEE,UAAU,EAAG;YAC1D,IAAIK,MAAMH,OAAOR,GAAG,IAAIQ,OAAOI,IAAI;YAEnC,IAAID,QAAQ,SAAS;gBACpBA,MAAM,GAAGH,OAAOK,KAAK,CAACb,GAAG,IAAIQ,OAAOK,KAAK,CAACD,IAAI,CAAC,EAAE,CAAC;gBAClD,IAAIJ,OAAOK,KAAK,CAACb,GAAG,EAAE;oBACrBH,UAAUW,OAAOK,KAAK;gBACvB;YACD,OAAO,IAAIL,OAAOR,GAAG,EAAE;gBACtBH,UAAUW;YACX;YACA,IAAI,CAACG,KAAK;gBACT,IAAI,WAAWH,QAAQ;oBACtBG,MAAM;gBACP;YACD;YAEAlB,IAAIS,IAAI,CAAC,CAAC,EAAE,EAAEG,SAASE,KAAK,GAAG,EAAEI,IAAI,GAAG,EAAEH,OAAOM,KAAK,IAAIN,OAAOO,WAAW,IAAI,GAAG,EAAE,CAAC;YAEtF,IAAIJ,QAAQ,UAAU;gBACrBR,iBAAiBK,QAAmB;oBAAEH,QAAQ,GAAGA,SAASE,KAAK,CAAC,CAAC;gBAAC;YACnE,OAAO,IAAIC,OAAOI,IAAI,KAAK,SAAS;gBACnC,IAAIJ,OAAOK,KAAK,CAACD,IAAI,KAAK,YAAY,CAACJ,OAAOK,KAAK,CAACb,GAAG,EAAE;oBACxDG,iBAAiBK,OAAOK,KAAK,EAAa;wBAAER,QAAQ,GAAGA,SAASE,KAAK,GAAG,CAAC;oBAAC;gBAC3E;YACD;QACD;IACD;IACA,MAAMS,cAAc,CAACZ;QACpBX,IAAIS,IAAI,CAAC,CAAC,IAAI,EAAEE,EAAEU,KAAK,IAAIV,EAAEJ,GAAG,EAAE;QAClCP,IAAIS,IAAI,CAAC,CAAC;;;EAGV,EAAEE,EAAEJ,GAAG,IAAI,GAAG,GAAG,EAAEI,EAAEU,KAAK,IAAI,GAAG;IAC/B,CAAC;QACH,IAAIV,EAAEW,WAAW,EAAE;YAClBtB,IAAIS,IAAI,CAAC;YACTT,IAAIS,IAAI,CAAC,CAAC,EAAE,EAAEE,EAAEW,WAAW,EAAE;YAC7BtB,IAAIS,IAAI,CAAC;QACV;QAEAT,IAAIS,IAAI,CAAC,CAAC,gBAAgB,CAAC;QAC3BT,IAAIS,IAAI,CAAC,CAAC,mBAAmB,CAAC;QAE9BC,iBAAiBC;QAEjBX,IAAIS,IAAI,CAAC;IACV;IAEAc,YAAYxB;IAEZ,KAAK,MAAMgB,UAAUZ,QAAS;QAC7B,IAAIY,OAAOI,IAAI,KAAK,UAAU;YAC7BI,YAAYR;QACb,OAAO,IAAI,WAAWA,QAAQ;YAC7Bf,IAAIS,IAAI,CAAC,CAAC,IAAI,EAAEM,OAAOR,GAAG,IAAIQ,OAAOM,KAAK,EAAE;YAC5CrB,IAAIS,IAAI,CAAC,CAAC;;;EAGX,EAAEM,OAAOR,GAAG,IAAI,GAAG,GAAG,EAAEQ,OAAOM,KAAK,IAAI,GAAG;IACzC,CAAC;YAEFrB,IAAIS,IAAI,CAAC,CAAC,WAAW,CAAC;YACtBT,IAAIS,IAAI,CAAC,CAAC,aAAa,CAAC;YACxB,KAAK,MAAMe,QAAQT,OAAOU,KAAK,CAAE;gBAChCzB,IAAIS,IAAI,CAAC,CAAC,EAAE,EAAEe,KAAKE,KAAK,CAAC,GAAG,EAAEF,KAAKH,KAAK,IAAIG,KAAKF,WAAW,IAAI,GAAG,EAAE,CAAC;YACvE;YACAtB,IAAIS,IAAI,CAAC;QACV;IACD;IAEA,OAAOT,IAAI2B,IAAI,CAAC;AACjB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function joinUrl(baseUrl, maybeUrl) {
|
|
2
|
+
const sanitizedBase = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
|
|
3
|
+
const sanitizedEndpoint = maybeUrl.startsWith('/') ? maybeUrl.slice(1) : maybeUrl;
|
|
4
|
+
return `${sanitizedBase}/${sanitizedEndpoint}`;
|
|
5
|
+
}
|
|
6
|
+
export function buildBaseUrl(url, baseUrl) {
|
|
7
|
+
if (!baseUrl || /^https?:/.test(url)) {
|
|
8
|
+
return url;
|
|
9
|
+
}
|
|
10
|
+
return joinUrl(baseUrl, url);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=buildBaseUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/buildBaseUrl.ts"],"sourcesContent":["function joinUrl(baseUrl: string, maybeUrl: string): string {\n\tconst sanitizedBase = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n\tconst sanitizedEndpoint = maybeUrl.startsWith('/') ? maybeUrl.slice(1) : maybeUrl;\n\treturn `${sanitizedBase}/${sanitizedEndpoint}`;\n}\n\nexport function buildBaseUrl(url: string, baseUrl: string | undefined | null): string {\n\tif (!baseUrl || /^https?:/.test(url)) {\n\t\treturn url;\n\t}\n\treturn joinUrl(baseUrl, url);\n}\n"],"names":["joinUrl","baseUrl","maybeUrl","sanitizedBase","endsWith","slice","sanitizedEndpoint","startsWith","buildBaseUrl","url","test"],"mappings":"AAAA,SAASA,QAAQC,OAAe,EAAEC,QAAgB;IACjD,MAAMC,gBAAgBF,QAAQG,QAAQ,CAAC,OAAOH,QAAQI,KAAK,CAAC,GAAG,CAAC,KAAKJ;IACrE,MAAMK,oBAAoBJ,SAASK,UAAU,CAAC,OAAOL,SAASG,KAAK,CAAC,KAAKH;IACzE,OAAO,GAAGC,cAAc,CAAC,EAAEG,mBAAmB;AAC/C;AAEA,OAAO,SAASE,aAAaC,GAAW,EAAER,OAAkC;IAC3E,IAAI,CAACA,WAAW,WAAWS,IAAI,CAACD,MAAM;QACrC,OAAOA;IACR;IACA,OAAOT,QAAQC,SAASQ;AACzB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { forEachJsonSchema } from "../jsonschema/index.js";
|
|
2
|
+
import { toJsonSchema } from "../schema/index.js";
|
|
3
|
+
export const RedactedText = "[redacted]";
|
|
4
|
+
export function buildRedactorFormSchema(ts, { shouldRedact = (schema) => schema["x-sensitive"] === true, replacer = () => RedactedText }) {
|
|
5
|
+
let js = toJsonSchema(ts);
|
|
6
|
+
let paths = [];
|
|
7
|
+
forEachJsonSchema(js, (js, { path }) => {
|
|
8
|
+
if (shouldRedact(js)) {
|
|
9
|
+
paths.push(path);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
const vis = (root, path) => {
|
|
13
|
+
switch (root) {
|
|
14
|
+
case null:
|
|
15
|
+
case undefined:
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let c = root;
|
|
19
|
+
for (let i = 0; i < path.length; i++) {
|
|
20
|
+
let k = path[i];
|
|
21
|
+
if (c && typeof c === "object" && k in c) {
|
|
22
|
+
let v = c[k];
|
|
23
|
+
if (path.length === 1) {
|
|
24
|
+
c[k] = replacer(k, v);
|
|
25
|
+
}
|
|
26
|
+
else if (Array.isArray(v)) {
|
|
27
|
+
for (let vv of v) {
|
|
28
|
+
vis(vv, path.slice(i + 1));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
vis(v, path.slice(i + 1));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return (root) => {
|
|
38
|
+
if (!paths.length) {
|
|
39
|
+
return root;
|
|
40
|
+
}
|
|
41
|
+
paths.forEach((path) => {
|
|
42
|
+
vis(root, path);
|
|
43
|
+
});
|
|
44
|
+
return root;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function buildReversibleRedactText({ id, type, key, timestamp } = {}) {
|
|
48
|
+
if (!id) {
|
|
49
|
+
return RedactedText;
|
|
50
|
+
}
|
|
51
|
+
if (timestamp === true) {
|
|
52
|
+
timestamp = Date.now();
|
|
53
|
+
}
|
|
54
|
+
return `[redacted ${id}]`;
|
|
55
|
+
}
|
|
56
|
+
export function isRedactedText(v) {
|
|
57
|
+
return v === RedactedText || typeof v === "string" && v.startsWith("[redacted ") && v.endsWith("]");
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=buildRedactorFormSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/buildRedactorFormSchema.ts"],"sourcesContent":["import { forEachJsonSchema, type JsonSchemaDef } from '../jsonschema';\nimport { toJsonSchema, type TypeSchema } from '../schema';\n\nexport const RedactedText = '[redacted]';\n\nexport function buildRedactorFormSchema(\n\tts: TypeSchema,\n\t{\n\t\tshouldRedact = (schema) => schema['x-sensitive'] === true,\n\t\treplacer = () => RedactedText,\n\t}: {\n\t\tshouldRedact?: (schema: JsonSchemaDef) => boolean;\n\t\treplacer?: (key: string, value: any) => any;\n\t},\n) {\n\tlet js = toJsonSchema(ts);\n\n\tlet paths: string[][] = [];\n\n\tforEachJsonSchema(js, (js, { path }) => {\n\t\tif (shouldRedact(js)) {\n\t\t\tpaths.push(path);\n\t\t}\n\t});\n\tconst vis = (root: any, path: string[]) => {\n\t\tswitch (root) {\n\t\t\tcase null:\n\t\t\tcase undefined:\n\t\t\t\treturn;\n\t\t}\n\n\t\tlet c = root;\n\t\tfor (let i = 0; i < path.length; i++) {\n\t\t\tlet k = path[i];\n\t\t\tif (c && typeof c === 'object' && k in c) {\n\t\t\t\tlet v = c[k];\n\t\t\t\tif (path.length === 1) {\n\t\t\t\t\tc[k] = replacer(k, v);\n\t\t\t\t} else if (Array.isArray(v)) {\n\t\t\t\t\tfor (let vv of v) {\n\t\t\t\t\t\tvis(vv, path.slice(i + 1));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvis(v, path.slice(i + 1));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (root: any) => {\n\t\tif (!paths.length) {\n\t\t\treturn root;\n\t\t}\n\n\t\tpaths.forEach((path) => {\n\t\t\tvis(root, path);\n\t\t});\n\n\t\treturn root;\n\t};\n}\n\nfunction buildReversibleRedactText({\n\tid,\n\ttype,\n\tkey,\n\ttimestamp,\n}: {\n\tid?: string | number;\n\ttype?: string;\n\tkey?: string;\n\ttimestamp?: number | boolean;\n} = {}) {\n\tif (!id) {\n\t\treturn RedactedText;\n\t}\n\tif (timestamp === true) {\n\t\ttimestamp = Date.now();\n\t}\n\treturn `[redacted ${id}]`;\n}\n\nexport function isRedactedText(v: any) {\n\treturn v === RedactedText || (typeof v === 'string' && v.startsWith('[redacted ') && v.endsWith(']'));\n}\n"],"names":["forEachJsonSchema","toJsonSchema","RedactedText","buildRedactorFormSchema","ts","shouldRedact","schema","replacer","js","paths","path","push","vis","root","undefined","c","i","length","k","v","Array","isArray","vv","slice","forEach","buildReversibleRedactText","id","type","key","timestamp","Date","now","isRedactedText","startsWith","endsWith"],"mappings":"AAAA,SAASA,iBAAiB,QAA4B,gBAAgB;AACtE,SAASC,YAAY,QAAyB,YAAY;AAE1D,OAAO,MAAMC,eAAe,aAAa;AAEzC,OAAO,SAASC,wBACfC,EAAc,EACd,EACCC,eAAe,CAACC,SAAWA,MAAM,CAAC,cAAc,KAAK,IAAI,EACzDC,WAAW,IAAML,YAAY,EAI7B;IAED,IAAIM,KAAKP,aAAaG;IAEtB,IAAIK,QAAoB,EAAE;IAE1BT,kBAAkBQ,IAAI,CAACA,IAAI,EAAEE,IAAI,EAAE;QAClC,IAAIL,aAAaG,KAAK;YACrBC,MAAME,IAAI,CAACD;QACZ;IACD;IACA,MAAME,MAAM,CAACC,MAAWH;QACvB,OAAQG;YACP,KAAK;YACL,KAAKC;gBACJ;QACF;QAEA,IAAIC,IAAIF;QACR,IAAK,IAAIG,IAAI,GAAGA,IAAIN,KAAKO,MAAM,EAAED,IAAK;YACrC,IAAIE,IAAIR,IAAI,CAACM,EAAE;YACf,IAAID,KAAK,OAAOA,MAAM,YAAYG,KAAKH,GAAG;gBACzC,IAAII,IAAIJ,CAAC,CAACG,EAAE;gBACZ,IAAIR,KAAKO,MAAM,KAAK,GAAG;oBACtBF,CAAC,CAACG,EAAE,GAAGX,SAASW,GAAGC;gBACpB,OAAO,IAAIC,MAAMC,OAAO,CAACF,IAAI;oBAC5B,KAAK,IAAIG,MAAMH,EAAG;wBACjBP,IAAIU,IAAIZ,KAAKa,KAAK,CAACP,IAAI;oBACxB;gBACD,OAAO;oBACNJ,IAAIO,GAAGT,KAAKa,KAAK,CAACP,IAAI;gBACvB;YACD;QACD;IACD;IAEA,OAAO,CAACH;QACP,IAAI,CAACJ,MAAMQ,MAAM,EAAE;YAClB,OAAOJ;QACR;QAEAJ,MAAMe,OAAO,CAAC,CAACd;YACdE,IAAIC,MAAMH;QACX;QAEA,OAAOG;IACR;AACD;AAEA,SAASY,0BAA0B,EAClCC,EAAE,EACFC,IAAI,EACJC,GAAG,EACHC,SAAS,EAMT,GAAG,CAAC,CAAC;IACL,IAAI,CAACH,IAAI;QACR,OAAOxB;IACR;IACA,IAAI2B,cAAc,MAAM;QACvBA,YAAYC,KAAKC,GAAG;IACrB;IACA,OAAO,CAAC,UAAU,EAAEL,GAAG,CAAC,CAAC;AAC1B;AAEA,OAAO,SAASM,eAAeb,CAAM;IACpC,OAAOA,MAAMjB,gBAAiB,OAAOiB,MAAM,YAAYA,EAAEc,UAAU,CAAC,iBAAiBd,EAAEe,QAAQ,CAAC;AACjG"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
export function getEstimateProcessTime(
|
|
2
|
-
var total = param.total, processed = param.processed, startTime = param.startTime, _param_elapsed = param.elapsed, elapsed = _param_elapsed === void 0 ? startTime ? (Date.now() - startTime.getTime()) / 1000 : undefined : _param_elapsed;
|
|
1
|
+
export function getEstimateProcessTime({ total, processed, startTime, elapsed = startTime ? (Date.now() - startTime.getTime()) / 1000 : undefined }) {
|
|
3
2
|
if (typeof total !== 'number' || typeof processed !== 'number' || !elapsed || processed === 0 || processed >= total) {
|
|
4
3
|
return undefined;
|
|
5
4
|
}
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const now = new Date();
|
|
6
|
+
const rate = processed / elapsed;
|
|
8
7
|
if (rate === 0) {
|
|
9
8
|
return undefined;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const remaining = total - processed;
|
|
11
|
+
const eta = Math.round(remaining / rate);
|
|
12
|
+
const endTime = new Date(now.getTime() + eta * 1000);
|
|
14
13
|
return {
|
|
15
|
-
eta
|
|
16
|
-
elapsed
|
|
17
|
-
endTime
|
|
18
|
-
rate
|
|
14
|
+
eta,
|
|
15
|
+
elapsed,
|
|
16
|
+
endTime,
|
|
17
|
+
rate
|
|
19
18
|
};
|
|
20
19
|
}
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=getEstimateProcessTime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/getEstimateProcessTime.ts"],"sourcesContent":["type EstimateProcessTimeResult = {\n\teta: number; // estimated time of arrival in seconds\n\telapsed: number; // in seconds\n\tendTime: Date; // estimated end time\n\trate: number; // rate of processing in items per second\n};\n\nexport function getEstimateProcessTime({\n\ttotal,\n\tprocessed,\n\tstartTime,\n\telapsed = startTime ? (Date.now() - startTime.getTime()) / 1000 : undefined,\n}: {\n\ttotal?: number;\n\tprocessed?: number;\n\tstartTime?: Date;\n\telapsed?: number; // in seconds\n}): EstimateProcessTimeResult | undefined {\n\tif (typeof total !== 'number' || typeof processed !== 'number' || !elapsed || processed === 0 || processed >= total) {\n\t\treturn undefined;\n\t}\n\tconst now = new Date();\n\tconst rate = processed / elapsed;\n\tif (rate === 0) {\n\t\treturn undefined;\n\t}\n\tconst remaining = total - processed;\n\tconst eta = Math.round(remaining / rate);\n\tconst endTime = new Date(now.getTime() + eta * 1000);\n\treturn {\n\t\teta,\n\t\telapsed,\n\t\tendTime,\n\t\trate,\n\t};\n}\n"],"names":["getEstimateProcessTime","total","processed","startTime","elapsed","Date","now","getTime","undefined","rate","remaining","eta","Math","round","endTime"],"mappings":"AAOA,OAAO,SAASA,uBAAuB,EACtCC,KAAK,EACLC,SAAS,EACTC,SAAS,EACTC,UAAUD,YAAY,AAACE,CAAAA,KAAKC,GAAG,KAAKH,UAAUI,OAAO,EAAC,IAAK,OAAOC,SAAS,EAM3E;IACA,IAAI,OAAOP,UAAU,YAAY,OAAOC,cAAc,YAAY,CAACE,WAAWF,cAAc,KAAKA,aAAaD,OAAO;QACpH,OAAOO;IACR;IACA,MAAMF,MAAM,IAAID;IAChB,MAAMI,OAAOP,YAAYE;IACzB,IAAIK,SAAS,GAAG;QACf,OAAOD;IACR;IACA,MAAME,YAAYT,QAAQC;IAC1B,MAAMS,MAAMC,KAAKC,KAAK,CAACH,YAAYD;IACnC,MAAMK,UAAU,IAAIT,KAAKC,IAAIC,OAAO,KAAKI,MAAM;IAC/C,OAAO;QACNA;QACAP;QACAU;QACAL;IACD;AACD"}
|
package/lib/utils/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/index.ts"],"sourcesContent":["export { getEstimateProcessTime } from './getEstimateProcessTime';\n\nexport { buildRedactorFormSchema } from './buildRedactorFormSchema';\n\nexport { buildBaseUrl } from './buildBaseUrl';\n"],"names":["getEstimateProcessTime","buildRedactorFormSchema","buildBaseUrl"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,2BAA2B;AAElE,SAASC,uBAAuB,QAAQ,4BAA4B;AAEpE,SAASC,YAAY,QAAQ,iBAAiB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { maybeFunction } from "@wener/utils";
|
|
2
|
+
export function resolveFeatureOptions(value, defaultValue) {
|
|
3
|
+
if (value === false) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (value === true || value === undefined || value === null) {
|
|
7
|
+
return maybeFunction(defaultValue);
|
|
8
|
+
}
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=resolveFeatureOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/resolveFeatureOptions.ts"],"sourcesContent":["import { maybeFunction, type MaybeFunction } from '@wener/utils';\n\nexport function resolveFeatureOptions<T>(\n\tvalue: boolean | T | undefined | null,\n\tdefaultValue: MaybeFunction<T>,\n): T | undefined {\n\tif (value === false) {\n\t\treturn undefined;\n\t}\n\tif (value === true || value === undefined || value === null) {\n\t\treturn maybeFunction(defaultValue);\n\t}\n\treturn value;\n}\n"],"names":["maybeFunction","resolveFeatureOptions","value","defaultValue","undefined"],"mappings":"AAAA,SAASA,aAAa,QAA4B,eAAe;AAEjE,OAAO,SAASC,sBACfC,KAAqC,EACrCC,YAA8B;IAE9B,IAAID,UAAU,OAAO;QACpB,OAAOE;IACR;IACA,IAAIF,UAAU,QAAQA,UAAUE,aAAaF,UAAU,MAAM;QAC5D,OAAOF,cAAcG;IACtB;IACA,OAAOD;AACR"}
|