keri-ts 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -120
- package/esm/app/cli/agent.js +0 -19
- package/esm/app/cli/annotate.js +7 -2
- package/esm/app/cli/benchmark.js +210 -0
- package/esm/app/cli/cli.js +50 -52
- package/esm/app/cli/command-definitions.js +258 -6
- package/esm/app/cli/common/existing.js +40 -0
- package/esm/app/cli/common/parsing.js +20 -0
- package/esm/app/cli/export.js +51 -0
- package/esm/app/cli/incept.js +106 -0
- package/esm/app/cli/index.js +9 -0
- package/esm/app/cli/init.js +72 -41
- package/esm/app/configing.js +261 -0
- package/esm/app/habbing.js +386 -0
- package/esm/app/index.js +10 -0
- package/esm/app/keeping.js +321 -0
- package/esm/app/version.js +2 -2
- package/esm/db/basing.js +66 -1
- package/esm/db/core/lmdber.js +13 -7
- package/esm/db/core/path-manager.js +193 -169
- package/esm/db/index.js +1 -0
- package/esm/db/keeping.js +214 -0
- package/esm/deps/jsr.io/@std/internal/1.0.12/_os.js +12 -0
- package/esm/deps/jsr.io/@std/internal/1.0.12/os.js +5 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/assert_path.js +7 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/basename.js +40 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/common.js +23 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/constants.js +46 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/dirname.js +8 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/format.js +19 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.js +9 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.js +235 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/normalize.js +8 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.js +77 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/relative.js +9 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.js +19 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.js +15 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/basename.js +35 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/common.js +33 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/constants.js +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/dirname.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/extname.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/format.js +27 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/from_file_url.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.js +83 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/is_absolute.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/is_glob.js +42 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/join.js +29 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/join_globs.js +34 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/mod.js +216 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/normalize.js +32 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/normalize_glob.js +35 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/parse.js +39 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/_util.js +8 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/basename.js +52 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/constants.js +14 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/dirname.js +64 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/extname.js +93 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/format.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.js +21 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.js +82 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.js +23 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/join.js +45 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/join_globs.js +40 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/normalize.js +58 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.js +32 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/parse.js +115 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/relative.js +106 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/resolve.js +59 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.js +27 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.js +20 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/relative.js +30 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/resolve.js +30 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/to_file_url.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.js +29 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/types.js +3 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/_util.js +15 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/basename.js +47 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/constants.js +14 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/dirname.js +113 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/extname.js +82 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/format.js +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.js +30 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.js +82 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.js +38 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/join.js +77 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/join_globs.js +41 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/normalize.js +135 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.js +32 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/parse.js +176 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/relative.js +131 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/resolve.js +154 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.js +34 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.js +49 -0
- package/esm/npm/index.js +7 -2
- package/package.json +6 -3
- package/types/app/cli/agent.d.ts.map +1 -1
- package/types/app/cli/annotate.d.ts.map +1 -1
- package/types/app/cli/benchmark.d.ts +11 -0
- package/types/app/cli/benchmark.d.ts.map +1 -0
- package/types/app/cli/cli.d.ts.map +1 -1
- package/types/app/cli/command-definitions.d.ts +5 -2
- package/types/app/cli/command-definitions.d.ts.map +1 -1
- package/types/app/cli/command-types.d.ts +12 -0
- package/types/app/cli/command-types.d.ts.map +1 -1
- package/types/app/cli/common/existing.d.ts +4 -0
- package/types/app/cli/common/existing.d.ts.map +1 -0
- package/types/app/cli/common/parsing.d.ts +15 -0
- package/types/app/cli/common/parsing.d.ts.map +1 -0
- package/types/app/cli/export.d.ts +8 -0
- package/types/app/cli/export.d.ts.map +1 -0
- package/types/app/cli/incept.d.ts +8 -0
- package/types/app/cli/incept.d.ts.map +1 -0
- package/types/app/cli/index.d.ts +10 -0
- package/types/app/cli/index.d.ts.map +1 -0
- package/types/app/cli/init.d.ts +5 -0
- package/types/app/cli/init.d.ts.map +1 -1
- package/types/app/configing.d.ts +57 -0
- package/types/app/configing.d.ts.map +1 -0
- package/types/app/habbing.d.ts +107 -0
- package/types/app/habbing.d.ts.map +1 -0
- package/types/app/index.d.ts +11 -0
- package/types/app/index.d.ts.map +1 -0
- package/types/app/keeping.d.ts +72 -0
- package/types/app/keeping.d.ts.map +1 -0
- package/types/app/version.d.ts +2 -2
- package/types/app/version.d.ts.map +1 -1
- package/types/db/basing.d.ts +16 -1
- package/types/db/basing.d.ts.map +1 -1
- package/types/db/core/lmdber.d.ts +8 -4
- package/types/db/core/lmdber.d.ts.map +1 -1
- package/types/db/core/path-manager.d.ts +88 -24
- package/types/db/core/path-manager.d.ts.map +1 -1
- package/types/db/index.d.ts +1 -0
- package/types/db/index.d.ts.map +1 -1
- package/types/db/keeping.d.ts +73 -0
- package/types/db/keeping.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.12/_os.d.ts +2 -0
- package/types/deps/jsr.io/@std/internal/1.0.12/_os.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/internal/1.0.12/os.d.ts +3 -0
- package/types/deps/jsr.io/@std/internal/1.0.12/os.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/assert_path.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/assert_path.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/basename.d.ts +4 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/basename.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/common.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/common.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/constants.d.ts +40 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/constants.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/dirname.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/dirname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/format.d.ts +4 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/format.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.d.ts +35 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/normalize.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/normalize.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/relative.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/relative.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/basename.d.ts +27 -0
- package/types/deps/jsr.io/@std/path/1.1.4/basename.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/common.d.ts +28 -0
- package/types/deps/jsr.io/@std/path/1.1.4/common.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/constants.d.ts +15 -0
- package/types/deps/jsr.io/@std/path/1.1.4/constants.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/dirname.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/dirname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/extname.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/extname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/format.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/format.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/from_file_url.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/from_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.d.ts +77 -0
- package/types/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/is_absolute.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/is_absolute.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/is_glob.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/is_glob.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/join.d.ts +23 -0
- package/types/deps/jsr.io/@std/path/1.1.4/join.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/join_globs.d.ts +28 -0
- package/types/deps/jsr.io/@std/path/1.1.4/join_globs.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/mod.d.ts +213 -0
- package/types/deps/jsr.io/@std/path/1.1.4/mod.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/normalize.d.ts +26 -0
- package/types/deps/jsr.io/@std/path/1.1.4/normalize.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/normalize_glob.d.ts +29 -0
- package/types/deps/jsr.io/@std/path/1.1.4/normalize_glob.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/parse.d.ts +35 -0
- package/types/deps/jsr.io/@std/path/1.1.4/parse.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/_util.d.ts +2 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/_util.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/basename.d.ts +39 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/basename.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/constants.d.ts +13 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/constants.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/dirname.d.ts +30 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/dirname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/extname.d.ts +37 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/extname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/format.d.ts +24 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/format.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.d.ts +16 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.d.ts +72 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/join.d.ts +31 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/join.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/join_globs.d.ts +20 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/join_globs.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/normalize.d.ts +37 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/normalize.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.d.ts +20 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/parse.d.ts +25 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/parse.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/relative.d.ts +20 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/relative.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/resolve.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/resolve.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.d.ts +16 -0
- package/types/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/relative.d.ts +24 -0
- package/types/deps/jsr.io/@std/path/1.1.4/relative.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/resolve.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/resolve.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/to_file_url.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/to_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.d.ts +21 -0
- package/types/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/types.d.ts +38 -0
- package/types/deps/jsr.io/@std/path/1.1.4/types.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/_util.d.ts +4 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/_util.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/basename.d.ts +22 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/basename.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/constants.d.ts +13 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/constants.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/dirname.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/dirname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/extname.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/extname.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/format.d.ts +24 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/format.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.d.ts +18 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.d.ts +71 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/join.d.ts +18 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/join.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/join_globs.d.ts +21 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/join_globs.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/normalize.d.ts +19 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/normalize.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.d.ts +20 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/parse.d.ts +25 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/parse.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/relative.d.ts +23 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/relative.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/resolve.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/resolve.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.d.ts +17 -0
- package/types/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.d.ts.map +1 -0
- package/types/npm/index.d.ts +7 -2
- package/types/npm/index.d.ts.map +1 -1
- package/esm/app/cli/stub-commands.js +0 -61
- package/types/app/cli/stub-commands.d.ts +0 -6
- package/types/app/cli/stub-commands.d.ts.map +0 -1
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import { DatabaseNotOpenError, DatabaseOperationError, } from "../core/errors.js";
|
|
2
|
+
import { consoleLogger } from "../core/logger.js";
|
|
3
|
+
import { LMDBer } from "./core/lmdber.js";
|
|
4
|
+
export class Keeper {
|
|
5
|
+
constructor(options = {}) {
|
|
6
|
+
Object.defineProperty(this, "lmdber", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
configurable: true,
|
|
9
|
+
writable: true,
|
|
10
|
+
value: void 0
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(this, "logger", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: void 0
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(this, "gbls", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
configurable: true,
|
|
21
|
+
writable: true,
|
|
22
|
+
value: void 0
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(this, "pris", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
configurable: true,
|
|
27
|
+
writable: true,
|
|
28
|
+
value: void 0
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(this, "pres", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
configurable: true,
|
|
33
|
+
writable: true,
|
|
34
|
+
value: void 0
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(this, "prms", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: void 0
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(this, "sits", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: void 0
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(this, "pubs", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true,
|
|
51
|
+
writable: true,
|
|
52
|
+
value: void 0
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(this, "prxs", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true,
|
|
58
|
+
value: void 0
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(this, "nxts", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
configurable: true,
|
|
63
|
+
writable: true,
|
|
64
|
+
value: void 0
|
|
65
|
+
});
|
|
66
|
+
this.logger = options.logger ?? consoleLogger;
|
|
67
|
+
this.lmdber = new LMDBer(options, {
|
|
68
|
+
tailDirPath: Keeper.TailDirPath,
|
|
69
|
+
altTailDirPath: Keeper.AltTailDirPath,
|
|
70
|
+
tempPrefix: Keeper.TempPrefix,
|
|
71
|
+
maxNamedDBs: Keeper.MaxNamedDBs,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
get name() {
|
|
75
|
+
return this.lmdber.name;
|
|
76
|
+
}
|
|
77
|
+
get base() {
|
|
78
|
+
return this.lmdber.base;
|
|
79
|
+
}
|
|
80
|
+
get opened() {
|
|
81
|
+
return this.lmdber.opened;
|
|
82
|
+
}
|
|
83
|
+
get temp() {
|
|
84
|
+
return this.lmdber.temp;
|
|
85
|
+
}
|
|
86
|
+
get path() {
|
|
87
|
+
return this.lmdber.path;
|
|
88
|
+
}
|
|
89
|
+
*reopen(options = {}) {
|
|
90
|
+
const opened = yield* this.lmdber.reopen(options);
|
|
91
|
+
if (!opened)
|
|
92
|
+
return false;
|
|
93
|
+
try {
|
|
94
|
+
this.gbls = this.lmdber.openDB("gbls.", false);
|
|
95
|
+
this.pris = this.lmdber.openDB("pris.", false);
|
|
96
|
+
this.pres = this.lmdber.openDB("pres.", false);
|
|
97
|
+
this.prms = this.lmdber.openDB("prms.", false);
|
|
98
|
+
this.sits = this.lmdber.openDB("sits.", false);
|
|
99
|
+
this.pubs = this.lmdber.openDB("pubs.", false);
|
|
100
|
+
this.prxs = this.lmdber.openDB("prxs.", false);
|
|
101
|
+
this.nxts = this.lmdber.openDB("nxts.", false);
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.logger.error(`Failed to open Keeper sub-databases: ${error}`);
|
|
106
|
+
throw new DatabaseOperationError("Failed to open Keeper sub-databases", {
|
|
107
|
+
cause: error instanceof Error ? error.message : String(error),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
*close(clear = false) {
|
|
112
|
+
return yield* this.lmdber.close(clear);
|
|
113
|
+
}
|
|
114
|
+
enc(text) {
|
|
115
|
+
return new TextEncoder().encode(text);
|
|
116
|
+
}
|
|
117
|
+
dec(bytes) {
|
|
118
|
+
if (bytes === null)
|
|
119
|
+
return null;
|
|
120
|
+
return new TextDecoder().decode(bytes);
|
|
121
|
+
}
|
|
122
|
+
encJson(value) {
|
|
123
|
+
return this.enc(JSON.stringify(value));
|
|
124
|
+
}
|
|
125
|
+
decJson(bytes) {
|
|
126
|
+
const text = this.dec(bytes);
|
|
127
|
+
if (text === null)
|
|
128
|
+
return null;
|
|
129
|
+
return JSON.parse(text);
|
|
130
|
+
}
|
|
131
|
+
getGbls(key) {
|
|
132
|
+
return this.dec(this.lmdber.getVal(this.gbls, this.enc(key)));
|
|
133
|
+
}
|
|
134
|
+
pinGbls(key, value) {
|
|
135
|
+
return this.lmdber.setVal(this.gbls, this.enc(key), this.enc(value));
|
|
136
|
+
}
|
|
137
|
+
putPres(pre, val) {
|
|
138
|
+
return this.lmdber.putVal(this.pres, this.enc(pre), this.enc(val));
|
|
139
|
+
}
|
|
140
|
+
pinPres(pre, val) {
|
|
141
|
+
return this.lmdber.setVal(this.pres, this.enc(pre), this.enc(val));
|
|
142
|
+
}
|
|
143
|
+
getPres(pre) {
|
|
144
|
+
return this.dec(this.lmdber.getVal(this.pres, this.enc(pre)));
|
|
145
|
+
}
|
|
146
|
+
putPris(pub, secret) {
|
|
147
|
+
return this.lmdber.putVal(this.pris, this.enc(pub), this.enc(secret));
|
|
148
|
+
}
|
|
149
|
+
pinPris(pub, secret) {
|
|
150
|
+
return this.lmdber.setVal(this.pris, this.enc(pub), this.enc(secret));
|
|
151
|
+
}
|
|
152
|
+
getPris(pub) {
|
|
153
|
+
return this.dec(this.lmdber.getVal(this.pris, this.enc(pub)));
|
|
154
|
+
}
|
|
155
|
+
putPrms(pre, val) {
|
|
156
|
+
return this.lmdber.putVal(this.prms, this.enc(pre), this.encJson(val));
|
|
157
|
+
}
|
|
158
|
+
pinPrms(pre, val) {
|
|
159
|
+
return this.lmdber.setVal(this.prms, this.enc(pre), this.encJson(val));
|
|
160
|
+
}
|
|
161
|
+
getPrms(pre) {
|
|
162
|
+
return this.decJson(this.lmdber.getVal(this.prms, this.enc(pre)));
|
|
163
|
+
}
|
|
164
|
+
putSits(pre, val) {
|
|
165
|
+
return this.lmdber.putVal(this.sits, this.enc(pre), this.encJson(val));
|
|
166
|
+
}
|
|
167
|
+
pinSits(pre, val) {
|
|
168
|
+
return this.lmdber.setVal(this.sits, this.enc(pre), this.encJson(val));
|
|
169
|
+
}
|
|
170
|
+
getSits(pre) {
|
|
171
|
+
return this.decJson(this.lmdber.getVal(this.sits, this.enc(pre)));
|
|
172
|
+
}
|
|
173
|
+
putPubs(key, val) {
|
|
174
|
+
return this.lmdber.putVal(this.pubs, this.enc(key), this.encJson(val));
|
|
175
|
+
}
|
|
176
|
+
pinPubs(key, val) {
|
|
177
|
+
return this.lmdber.setVal(this.pubs, this.enc(key), this.encJson(val));
|
|
178
|
+
}
|
|
179
|
+
getPubs(key) {
|
|
180
|
+
return this.decJson(this.lmdber.getVal(this.pubs, this.enc(key)));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
Object.defineProperty(Keeper, "TailDirPath", {
|
|
184
|
+
enumerable: true,
|
|
185
|
+
configurable: true,
|
|
186
|
+
writable: true,
|
|
187
|
+
value: "keri/ks"
|
|
188
|
+
});
|
|
189
|
+
Object.defineProperty(Keeper, "AltTailDirPath", {
|
|
190
|
+
enumerable: true,
|
|
191
|
+
configurable: true,
|
|
192
|
+
writable: true,
|
|
193
|
+
value: ".tufa/ks"
|
|
194
|
+
});
|
|
195
|
+
Object.defineProperty(Keeper, "TempPrefix", {
|
|
196
|
+
enumerable: true,
|
|
197
|
+
configurable: true,
|
|
198
|
+
writable: true,
|
|
199
|
+
value: "keri_ks_"
|
|
200
|
+
});
|
|
201
|
+
Object.defineProperty(Keeper, "MaxNamedDBs", {
|
|
202
|
+
enumerable: true,
|
|
203
|
+
configurable: true,
|
|
204
|
+
writable: true,
|
|
205
|
+
value: 16
|
|
206
|
+
});
|
|
207
|
+
export function* createKeeper(options = {}) {
|
|
208
|
+
const keeper = new Keeper(options);
|
|
209
|
+
const opened = yield* keeper.reopen(options);
|
|
210
|
+
if (!opened) {
|
|
211
|
+
throw new DatabaseNotOpenError("Failed to open Keeper");
|
|
212
|
+
}
|
|
213
|
+
return keeper;
|
|
214
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
import * as dntShim from "../../../../../_dnt.shims.js";
|
|
3
|
+
export function checkWindows() {
|
|
4
|
+
// deno-lint-ignore no-explicit-any
|
|
5
|
+
const global = dntShim.dntGlobalThis;
|
|
6
|
+
const os = global.Deno?.build?.os;
|
|
7
|
+
// Check Deno, then the remaining runtimes (e.g. Node, Bun and the browser)
|
|
8
|
+
return typeof os === "string"
|
|
9
|
+
? os === "windows"
|
|
10
|
+
: global.navigator?.platform?.startsWith("Win") ??
|
|
11
|
+
global.process?.platform?.startsWith("win") ?? false;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// Copyright the Browserify authors. MIT License.
|
|
3
|
+
export function assertPath(path) {
|
|
4
|
+
if (typeof path !== "string") {
|
|
5
|
+
throw new TypeError(`Path must be a string, received "${JSON.stringify(path)}"`);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// This module is browser compatible.
|
|
3
|
+
import { assertPath } from "./assert_path.js";
|
|
4
|
+
export function stripSuffix(name, suffix) {
|
|
5
|
+
if (suffix.length >= name.length) {
|
|
6
|
+
return name;
|
|
7
|
+
}
|
|
8
|
+
const lenDiff = name.length - suffix.length;
|
|
9
|
+
for (let i = suffix.length - 1; i >= 0; --i) {
|
|
10
|
+
if (name.charCodeAt(lenDiff + i) !== suffix.charCodeAt(i)) {
|
|
11
|
+
return name;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return name.slice(0, -suffix.length);
|
|
15
|
+
}
|
|
16
|
+
export function lastPathSegment(path, isSep, start = 0) {
|
|
17
|
+
let matchedNonSeparator = false;
|
|
18
|
+
let end = path.length;
|
|
19
|
+
for (let i = path.length - 1; i >= start; --i) {
|
|
20
|
+
if (isSep(path.charCodeAt(i))) {
|
|
21
|
+
if (matchedNonSeparator) {
|
|
22
|
+
start = i + 1;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (!matchedNonSeparator) {
|
|
27
|
+
matchedNonSeparator = true;
|
|
28
|
+
end = i + 1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return path.slice(start, end);
|
|
32
|
+
}
|
|
33
|
+
export function assertArgs(path, suffix) {
|
|
34
|
+
assertPath(path);
|
|
35
|
+
if (path.length === 0)
|
|
36
|
+
return path;
|
|
37
|
+
if (typeof suffix !== "string") {
|
|
38
|
+
throw new TypeError(`Suffix must be a string, received "${JSON.stringify(suffix)}"`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// This module is browser compatible.
|
|
3
|
+
export function common(paths, sep) {
|
|
4
|
+
const [first = "", ...remaining] = paths;
|
|
5
|
+
const parts = first.split(sep);
|
|
6
|
+
let endOfPrefix = parts.length;
|
|
7
|
+
let append = "";
|
|
8
|
+
for (const path of remaining) {
|
|
9
|
+
const compare = path.split(sep);
|
|
10
|
+
if (compare.length <= endOfPrefix) {
|
|
11
|
+
endOfPrefix = compare.length;
|
|
12
|
+
append = "";
|
|
13
|
+
}
|
|
14
|
+
for (let i = 0; i < endOfPrefix; i++) {
|
|
15
|
+
if (compare[i] !== parts[i]) {
|
|
16
|
+
endOfPrefix = i;
|
|
17
|
+
append = i === 0 ? "" : sep;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return parts.slice(0, endOfPrefix).join(sep) + append;
|
|
23
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// Copyright the Browserify authors. MIT License.
|
|
3
|
+
// Ported from https://github.com/browserify/path-browserify/
|
|
4
|
+
// This module is browser compatible.
|
|
5
|
+
// Alphabet chars.
|
|
6
|
+
export const CHAR_UPPERCASE_A = 65; /* A */
|
|
7
|
+
export const CHAR_LOWERCASE_A = 97; /* a */
|
|
8
|
+
export const CHAR_UPPERCASE_Z = 90; /* Z */
|
|
9
|
+
export const CHAR_LOWERCASE_Z = 122; /* z */
|
|
10
|
+
// Non-alphabetic chars.
|
|
11
|
+
export const CHAR_DOT = 46; /* . */
|
|
12
|
+
export const CHAR_FORWARD_SLASH = 47; /* / */
|
|
13
|
+
export const CHAR_BACKWARD_SLASH = 92; /* \ */
|
|
14
|
+
export const CHAR_VERTICAL_LINE = 124; /* | */
|
|
15
|
+
export const CHAR_COLON = 58; /* : */
|
|
16
|
+
export const CHAR_QUESTION_MARK = 63; /* ? */
|
|
17
|
+
export const CHAR_UNDERSCORE = 95; /* _ */
|
|
18
|
+
export const CHAR_LINE_FEED = 10; /* \n */
|
|
19
|
+
export const CHAR_CARRIAGE_RETURN = 13; /* \r */
|
|
20
|
+
export const CHAR_TAB = 9; /* \t */
|
|
21
|
+
export const CHAR_FORM_FEED = 12; /* \f */
|
|
22
|
+
export const CHAR_EXCLAMATION_MARK = 33; /* ! */
|
|
23
|
+
export const CHAR_HASH = 35; /* # */
|
|
24
|
+
export const CHAR_SPACE = 32; /* */
|
|
25
|
+
export const CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */
|
|
26
|
+
export const CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */
|
|
27
|
+
export const CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */
|
|
28
|
+
export const CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */
|
|
29
|
+
export const CHAR_LEFT_ANGLE_BRACKET = 60; /* < */
|
|
30
|
+
export const CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */
|
|
31
|
+
export const CHAR_LEFT_CURLY_BRACKET = 123; /* { */
|
|
32
|
+
export const CHAR_RIGHT_CURLY_BRACKET = 125; /* } */
|
|
33
|
+
export const CHAR_HYPHEN_MINUS = 45; /* - */
|
|
34
|
+
export const CHAR_PLUS = 43; /* + */
|
|
35
|
+
export const CHAR_DOUBLE_QUOTE = 34; /* " */
|
|
36
|
+
export const CHAR_SINGLE_QUOTE = 39; /* ' */
|
|
37
|
+
export const CHAR_PERCENT = 37; /* % */
|
|
38
|
+
export const CHAR_SEMICOLON = 59; /* ; */
|
|
39
|
+
export const CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */
|
|
40
|
+
export const CHAR_GRAVE_ACCENT = 96; /* ` */
|
|
41
|
+
export const CHAR_AT = 64; /* @ */
|
|
42
|
+
export const CHAR_AMPERSAND = 38; /* & */
|
|
43
|
+
export const CHAR_EQUAL = 61; /* = */
|
|
44
|
+
// Digits
|
|
45
|
+
export const CHAR_0 = 48; /* 0 */
|
|
46
|
+
export const CHAR_9 = 57; /* 9 */
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// This module is browser compatible.
|
|
3
|
+
export function _format(sep, pathObject) {
|
|
4
|
+
const dir = pathObject.dir || pathObject.root;
|
|
5
|
+
const base = pathObject.base ||
|
|
6
|
+
(pathObject.name ?? "") + (pathObject.ext ?? "");
|
|
7
|
+
if (!dir)
|
|
8
|
+
return base;
|
|
9
|
+
if (base === sep)
|
|
10
|
+
return dir;
|
|
11
|
+
if (dir === pathObject.root)
|
|
12
|
+
return dir + base;
|
|
13
|
+
return dir + sep + base;
|
|
14
|
+
}
|
|
15
|
+
export function assertArg(pathObject) {
|
|
16
|
+
if (pathObject === null || typeof pathObject !== "object") {
|
|
17
|
+
throw new TypeError(`The "pathObject" argument must be of type Object, received type "${typeof pathObject}"`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// This module is browser compatible.
|
|
3
|
+
export function assertArg(url) {
|
|
4
|
+
url = url instanceof URL ? url : new URL(url);
|
|
5
|
+
if (url.protocol !== "file:") {
|
|
6
|
+
throw new TypeError(`URL must be a file URL: received "${url.protocol}"`);
|
|
7
|
+
}
|
|
8
|
+
return url;
|
|
9
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
// This module is browser compatible.
|
|
3
|
+
const REG_EXP_ESCAPE_CHARS = [
|
|
4
|
+
"!",
|
|
5
|
+
"$",
|
|
6
|
+
"(",
|
|
7
|
+
")",
|
|
8
|
+
"*",
|
|
9
|
+
"+",
|
|
10
|
+
".",
|
|
11
|
+
"=",
|
|
12
|
+
"?",
|
|
13
|
+
"[",
|
|
14
|
+
"\\",
|
|
15
|
+
"^",
|
|
16
|
+
"{",
|
|
17
|
+
"|",
|
|
18
|
+
];
|
|
19
|
+
const RANGE_ESCAPE_CHARS = ["-", "\\", "]"];
|
|
20
|
+
export function _globToRegExp(c, glob, { extended = true, globstar: globstarOption = true,
|
|
21
|
+
// os = osType,
|
|
22
|
+
caseInsensitive = false, } = {}) {
|
|
23
|
+
if (glob === "") {
|
|
24
|
+
return /(?!)/;
|
|
25
|
+
}
|
|
26
|
+
// Remove trailing separators.
|
|
27
|
+
let newLength = glob.length;
|
|
28
|
+
for (; newLength > 1 && c.seps.includes(glob[newLength - 1]); newLength--)
|
|
29
|
+
;
|
|
30
|
+
glob = glob.slice(0, newLength);
|
|
31
|
+
let regExpString = "";
|
|
32
|
+
// Terminates correctly. Trust that `j` is incremented every iteration.
|
|
33
|
+
for (let j = 0; j < glob.length;) {
|
|
34
|
+
let segment = "";
|
|
35
|
+
const groupStack = [];
|
|
36
|
+
let inRange = false;
|
|
37
|
+
let inEscape = false;
|
|
38
|
+
let endsWithSep = false;
|
|
39
|
+
let i = j;
|
|
40
|
+
// Terminates with `i` at the non-inclusive end of the current segment.
|
|
41
|
+
for (; i < glob.length &&
|
|
42
|
+
!(c.seps.includes(glob[i]) && groupStack.length === 0); i++) {
|
|
43
|
+
if (inEscape) {
|
|
44
|
+
inEscape = false;
|
|
45
|
+
const escapeChars = (inRange
|
|
46
|
+
? RANGE_ESCAPE_CHARS
|
|
47
|
+
: REG_EXP_ESCAPE_CHARS);
|
|
48
|
+
segment += escapeChars.includes(glob[i])
|
|
49
|
+
? `\\${glob[i]}`
|
|
50
|
+
: glob[i];
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (glob[i] === c.escapePrefix) {
|
|
54
|
+
inEscape = true;
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (glob[i] === "[") {
|
|
58
|
+
if (!inRange) {
|
|
59
|
+
inRange = true;
|
|
60
|
+
segment += "[";
|
|
61
|
+
if (glob[i + 1] === "!") {
|
|
62
|
+
i++;
|
|
63
|
+
segment += "^";
|
|
64
|
+
}
|
|
65
|
+
else if (glob[i + 1] === "^") {
|
|
66
|
+
i++;
|
|
67
|
+
segment += "\\^";
|
|
68
|
+
}
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
else if (glob[i + 1] === ":") {
|
|
72
|
+
let k = i + 1;
|
|
73
|
+
let value = "";
|
|
74
|
+
while (glob[k + 1] !== undefined && glob[k + 1] !== ":") {
|
|
75
|
+
value += glob[k + 1];
|
|
76
|
+
k++;
|
|
77
|
+
}
|
|
78
|
+
if (glob[k + 1] === ":" && glob[k + 2] === "]") {
|
|
79
|
+
i = k + 2;
|
|
80
|
+
if (value === "alnum")
|
|
81
|
+
segment += "\\dA-Za-z";
|
|
82
|
+
else if (value === "alpha")
|
|
83
|
+
segment += "A-Za-z";
|
|
84
|
+
else if (value === "ascii")
|
|
85
|
+
segment += "\x00-\x7F";
|
|
86
|
+
else if (value === "blank")
|
|
87
|
+
segment += "\t ";
|
|
88
|
+
else if (value === "cntrl")
|
|
89
|
+
segment += "\x00-\x1F\x7F";
|
|
90
|
+
else if (value === "digit")
|
|
91
|
+
segment += "\\d";
|
|
92
|
+
else if (value === "graph")
|
|
93
|
+
segment += "\x21-\x7E";
|
|
94
|
+
else if (value === "lower")
|
|
95
|
+
segment += "a-z";
|
|
96
|
+
else if (value === "print")
|
|
97
|
+
segment += "\x20-\x7E";
|
|
98
|
+
else if (value === "punct") {
|
|
99
|
+
segment += "!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_‘{|}~";
|
|
100
|
+
}
|
|
101
|
+
else if (value === "space")
|
|
102
|
+
segment += "\\s\v";
|
|
103
|
+
else if (value === "upper")
|
|
104
|
+
segment += "A-Z";
|
|
105
|
+
else if (value === "word")
|
|
106
|
+
segment += "\\w";
|
|
107
|
+
else if (value === "xdigit")
|
|
108
|
+
segment += "\\dA-Fa-f";
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (glob[i] === "]" && inRange) {
|
|
114
|
+
inRange = false;
|
|
115
|
+
segment += "]";
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (inRange) {
|
|
119
|
+
segment += glob[i];
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (glob[i] === ")" && groupStack.length > 0 &&
|
|
123
|
+
groupStack[groupStack.length - 1] !== "BRACE") {
|
|
124
|
+
segment += ")";
|
|
125
|
+
const type = groupStack.pop();
|
|
126
|
+
if (type === "!") {
|
|
127
|
+
segment += c.wildcard;
|
|
128
|
+
}
|
|
129
|
+
else if (type !== "@") {
|
|
130
|
+
segment += type;
|
|
131
|
+
}
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (glob[i] === "|" && groupStack.length > 0 &&
|
|
135
|
+
groupStack[groupStack.length - 1] !== "BRACE") {
|
|
136
|
+
segment += "|";
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (glob[i] === "+" && extended && glob[i + 1] === "(") {
|
|
140
|
+
i++;
|
|
141
|
+
groupStack.push("+");
|
|
142
|
+
segment += "(?:";
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (glob[i] === "@" && extended && glob[i + 1] === "(") {
|
|
146
|
+
i++;
|
|
147
|
+
groupStack.push("@");
|
|
148
|
+
segment += "(?:";
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (glob[i] === "?") {
|
|
152
|
+
if (extended && glob[i + 1] === "(") {
|
|
153
|
+
i++;
|
|
154
|
+
groupStack.push("?");
|
|
155
|
+
segment += "(?:";
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
segment += ".";
|
|
159
|
+
}
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
if (glob[i] === "!" && extended && glob[i + 1] === "(") {
|
|
163
|
+
i++;
|
|
164
|
+
groupStack.push("!");
|
|
165
|
+
segment += "(?!";
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
if (glob[i] === "{") {
|
|
169
|
+
groupStack.push("BRACE");
|
|
170
|
+
segment += "(?:";
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (glob[i] === "}" && groupStack[groupStack.length - 1] === "BRACE") {
|
|
174
|
+
groupStack.pop();
|
|
175
|
+
segment += ")";
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (glob[i] === "," && groupStack[groupStack.length - 1] === "BRACE") {
|
|
179
|
+
segment += "|";
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
if (glob[i] === "*") {
|
|
183
|
+
if (extended && glob[i + 1] === "(") {
|
|
184
|
+
i++;
|
|
185
|
+
groupStack.push("*");
|
|
186
|
+
segment += "(?:";
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
const prevChar = glob[i - 1];
|
|
190
|
+
let numStars = 1;
|
|
191
|
+
while (glob[i + 1] === "*") {
|
|
192
|
+
i++;
|
|
193
|
+
numStars++;
|
|
194
|
+
}
|
|
195
|
+
const nextChar = glob[i + 1];
|
|
196
|
+
if (globstarOption && numStars === 2 &&
|
|
197
|
+
[...c.seps, undefined].includes(prevChar) &&
|
|
198
|
+
[...c.seps, undefined].includes(nextChar)) {
|
|
199
|
+
segment += c.globstar;
|
|
200
|
+
endsWithSep = true;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
segment += c.wildcard;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
segment += REG_EXP_ESCAPE_CHARS.includes(glob[i])
|
|
209
|
+
? `\\${glob[i]}`
|
|
210
|
+
: glob[i];
|
|
211
|
+
}
|
|
212
|
+
// Check for unclosed groups or a dangling backslash.
|
|
213
|
+
if (groupStack.length > 0 || inRange || inEscape) {
|
|
214
|
+
// Parse failure. Take all characters from this segment literally.
|
|
215
|
+
segment = "";
|
|
216
|
+
for (const c of glob.slice(j, i)) {
|
|
217
|
+
segment += REG_EXP_ESCAPE_CHARS.includes(c)
|
|
218
|
+
? `\\${c}`
|
|
219
|
+
: c;
|
|
220
|
+
endsWithSep = false;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
regExpString += segment;
|
|
224
|
+
if (!endsWithSep) {
|
|
225
|
+
regExpString += i < glob.length ? c.sep : c.sepMaybe;
|
|
226
|
+
endsWithSep = true;
|
|
227
|
+
}
|
|
228
|
+
// Terminates with `i` at the start of the next segment.
|
|
229
|
+
while (c.seps.includes(glob[i]))
|
|
230
|
+
i++;
|
|
231
|
+
j = i;
|
|
232
|
+
}
|
|
233
|
+
regExpString = `^${regExpString}$`;
|
|
234
|
+
return new RegExp(regExpString, caseInsensitive ? "i" : "");
|
|
235
|
+
}
|