@cardelli/ambit 0.1.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/esm/_dnt.polyfills.d.ts +111 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -0
- package/esm/_dnt.polyfills.js +141 -0
- package/esm/_dnt.shims.d.ts +6 -0
- package/esm/_dnt.shims.d.ts.map +1 -0
- package/esm/_dnt.shims.js +61 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_layout.d.ts +104 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_layout.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_layout.js +531 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_utils.d.ts +29 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_utils.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/_utils.js +72 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/border.d.ts +21 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/border.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/border.js +18 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/cell.d.ts +155 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/cell.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/cell.js +190 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/column.d.ts +62 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/column.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/column.js +78 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/consume_words.d.ts +30 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/consume_words.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/consume_words.js +64 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/mod.d.ts +43 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/mod.js +42 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/row.d.ts +67 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/row.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/row.js +82 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/table.d.ts +188 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/table.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/table.js +286 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/unicode_width.d.ts +40 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/unicode_width.d.ts.map +1 -0
- package/esm/deps/jsr.io/@cliffy/table/1.0.0/unicode_width.js +95 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_data.d.ts +9 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_data.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_data.js +17 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_run_length.d.ts +9 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_run_length.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/_run_length.js +34 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/mod.d.ts +18 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/mod.js +18 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/parse_args.d.ts +343 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/parse_args.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/parse_args.js +358 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/prompt_secret.d.ts +28 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/prompt_secret.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/prompt_secret.js +109 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/unicode_width.d.ts +40 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/unicode_width.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/cli/1.0.27/unicode_width.js +74 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/_utils.d.ts +6 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/_utils.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/_utils.js +18 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/deep_merge.d.ts +322 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/deep_merge.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.1.3/deep_merge.js +95 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.9/colors.d.ts +700 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.9/colors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.9/colors.js +903 -0
- package/esm/deps/jsr.io/@std/internal/1.0.12/_os.d.ts +2 -0
- package/esm/deps/jsr.io/@std/internal/1.0.12/_os.d.ts.map +1 -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.d.ts +3 -0
- package/esm/deps/jsr.io/@std/internal/1.0.12/os.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/assert_path.d.ts.map +1 -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.d.ts +4 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/basename.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/common.d.ts.map +1 -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.d.ts +40 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/constants.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/dirname.d.ts.map +1 -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.d.ts +4 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/format.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/from_file_url.d.ts.map +1 -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.d.ts +35 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/glob_to_reg_exp.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/normalize.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/normalize_string.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/relative.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/strip_trailing_separators.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/_common/to_file_url.d.ts.map +1 -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.d.ts +27 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/basename.d.ts.map +1 -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.d.ts +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/common.d.ts.map +1 -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.d.ts +15 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/constants.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/dirname.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/extname.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/format.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/from_file_url.d.ts.map +1 -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.d.ts +77 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/is_absolute.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/is_glob.d.ts.map +1 -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.d.ts +23 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/join.d.ts.map +1 -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.d.ts +28 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/join_globs.d.ts.map +1 -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.d.ts +213 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/mod.d.ts.map +1 -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.d.ts +26 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/normalize.d.ts.map +1 -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.d.ts +29 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/normalize_glob.d.ts.map +1 -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.d.ts +35 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/parse.d.ts.map +1 -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.d.ts +2 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/_util.d.ts.map +1 -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.d.ts +39 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/basename.d.ts.map +1 -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.d.ts +13 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/constants.d.ts.map +1 -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.d.ts +30 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/dirname.d.ts.map +1 -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.d.ts +37 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/extname.d.ts.map +1 -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.d.ts +24 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/format.d.ts.map +1 -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.d.ts +16 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/from_file_url.d.ts.map +1 -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.d.ts +72 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/glob_to_regexp.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/is_absolute.d.ts.map +1 -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.d.ts +31 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/join.d.ts.map +1 -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.d.ts +20 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/join_globs.d.ts.map +1 -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.d.ts +37 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/normalize.d.ts.map +1 -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.d.ts +20 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/normalize_glob.d.ts.map +1 -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.d.ts +25 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/parse.d.ts.map +1 -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.d.ts +20 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/relative.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/resolve.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/to_file_url.d.ts.map +1 -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.d.ts +16 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/posix/to_namespaced_path.d.ts.map +1 -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.d.ts +24 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/relative.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/resolve.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/to_file_url.d.ts.map +1 -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.d.ts +21 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.d.ts.map +1 -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.d.ts +38 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/types.d.ts.map +1 -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.d.ts +4 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/_util.d.ts.map +1 -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.d.ts +22 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/basename.d.ts.map +1 -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.d.ts +13 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/constants.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/dirname.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/extname.d.ts.map +1 -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.d.ts +24 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/format.d.ts.map +1 -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.d.ts +18 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/from_file_url.d.ts.map +1 -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.d.ts +71 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/glob_to_regexp.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/is_absolute.d.ts.map +1 -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.d.ts +18 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/join.d.ts.map +1 -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.d.ts +21 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/join_globs.d.ts.map +1 -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.d.ts +19 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/normalize.d.ts.map +1 -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.d.ts +20 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/normalize_glob.d.ts.map +1 -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.d.ts +25 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/parse.d.ts.map +1 -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.d.ts +23 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/relative.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/resolve.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/to_file_url.d.ts.map +1 -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.d.ts +17 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/path/1.1.4/windows/to_namespaced_path.js +49 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +740 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.js +110 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.js +25 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.js +276 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/index.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/index.js +4 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/checks.d.ts +2 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/checks.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/checks.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/coerce.d.ts +18 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/coerce.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/coerce.js +17 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/compat.d.ts +51 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/compat.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/compat.js +31 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/errors.d.ts +31 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/errors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/errors.js +48 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/external.d.ts +16 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/external.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/external.js +20 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/from-json-schema.d.ts +13 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/from-json-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/from-json-schema.js +584 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/iso.d.ts +23 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/iso.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/iso.js +30 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/parse.d.ts +32 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/parse.js +15 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/schemas.d.ts +740 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/schemas.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/classic/schemas.js +1157 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/api.d.ts +305 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/api.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/api.js +1082 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/checks.d.ts +279 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/checks.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/checks.js +566 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/core.d.ts +71 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/core.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/core.js +75 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/doc.d.ts +15 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/doc.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/doc.js +36 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/errors.d.ts +221 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/errors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/errors.js +181 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/index.d.ts +17 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/index.js +16 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-generator.d.ts +66 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-generator.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-generator.js +96 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-processors.d.ts +50 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-processors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema-processors.js +605 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema.d.ts +89 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/json-schema.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/parse.d.ts +50 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/parse.js +93 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/regexes.d.ts +80 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/regexes.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/regexes.js +133 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/registries.d.ts +36 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/registries.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/registries.js +51 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/schemas.d.ts +1148 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/schemas.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/schemas.js +2092 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/standard-schema.d.ts +127 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/standard-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/standard-schema.js +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/to-json-schema.d.ts +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/to-json-schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/to-json-schema.js +436 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/util.d.ts +200 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/util.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/util.js +650 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/versions.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/versions.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/core/versions.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ar.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ar.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ar.js +106 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/az.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/az.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/az.js +105 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/be.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/be.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/be.js +156 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/bg.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/bg.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/bg.js +120 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ca.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ca.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ca.js +107 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/cs.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/cs.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/cs.js +111 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/da.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/da.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/da.js +115 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/de.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/de.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/de.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/en.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/en.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/en.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/eo.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/eo.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/eo.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/es.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/es.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/es.js +132 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fa.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fa.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fa.js +114 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fi.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fi.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fi.js +112 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr-CA.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr-CA.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr-CA.js +107 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/fr.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/he.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/he.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/he.js +214 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hu.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hu.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hu.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hy.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hy.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/hy.js +147 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/id.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/id.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/id.js +106 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/index.d.ts +50 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/index.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/index.js +49 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/is.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/is.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/is.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/it.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/it.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/it.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ja.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ja.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ja.js +107 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ka.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ka.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ka.js +112 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/kh.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/kh.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/kh.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/km.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/km.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/km.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ko.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ko.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ko.js +111 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/lt.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/lt.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/lt.js +203 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/mk.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/mk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/mk.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ms.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ms.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ms.js +107 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/nl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/nl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/nl.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/no.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/no.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/no.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ota.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ota.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ota.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pl.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ps.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ps.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ps.js +114 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pt.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pt.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/pt.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ru.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ru.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ru.js +156 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sl.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sl.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sl.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sv.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sv.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/sv.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ta.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ta.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ta.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/th.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/th.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/th.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/tr.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/tr.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/tr.js +105 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ua.d.ts +6 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ua.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ua.js +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uk.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uk.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ur.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ur.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/ur.js +110 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uz.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uz.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/uz.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/vi.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/vi.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/vi.js +108 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/yo.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/yo.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/yo.js +107 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-CN.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-CN.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-CN.js +109 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-TW.d.ts +5 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-TW.d.ts.map +1 -0
- package/esm/deps/jsr.io/@zod/zod/4.3.6/src/v4/locales/zh-TW.js +107 -0
- package/esm/lib/cli.d.ts +34 -0
- package/esm/lib/cli.d.ts.map +1 -0
- package/esm/lib/cli.js +176 -0
- package/esm/lib/command.d.ts +54 -0
- package/esm/lib/command.d.ts.map +1 -0
- package/esm/lib/command.js +121 -0
- package/esm/lib/output.d.ts +33 -0
- package/esm/lib/output.d.ts.map +1 -0
- package/esm/lib/output.js +114 -0
- package/esm/lib/paths.d.ts +3 -0
- package/esm/lib/paths.d.ts.map +1 -0
- package/esm/lib/paths.js +5 -0
- package/esm/main.d.ts +9 -0
- package/esm/main.d.ts.map +1 -0
- package/esm/main.js +69 -0
- package/esm/package.json +3 -0
- package/esm/src/cli/commands/create.d.ts +2 -0
- package/esm/src/cli/commands/create.d.ts.map +1 -0
- package/esm/src/cli/commands/create.js +281 -0
- package/esm/src/cli/commands/deploy.d.ts +2 -0
- package/esm/src/cli/commands/deploy.d.ts.map +1 -0
- package/esm/src/cli/commands/deploy.js +251 -0
- package/esm/src/cli/commands/destroy.d.ts +2 -0
- package/esm/src/cli/commands/destroy.d.ts.map +1 -0
- package/esm/src/cli/commands/destroy.js +133 -0
- package/esm/src/cli/commands/doctor.d.ts +2 -0
- package/esm/src/cli/commands/doctor.d.ts.map +1 -0
- package/esm/src/cli/commands/doctor.js +141 -0
- package/esm/src/cli/commands/list.d.ts +2 -0
- package/esm/src/cli/commands/list.d.ts.map +1 -0
- package/esm/src/cli/commands/list.js +94 -0
- package/esm/src/cli/commands/status.d.ts +2 -0
- package/esm/src/cli/commands/status.d.ts.map +1 -0
- package/esm/src/cli/commands/status.js +148 -0
- package/esm/src/cli/mod.d.ts +13 -0
- package/esm/src/cli/mod.d.ts.map +1 -0
- package/esm/src/cli/mod.js +93 -0
- package/esm/src/credentials.d.ts +13 -0
- package/esm/src/credentials.d.ts.map +1 -0
- package/esm/src/credentials.js +72 -0
- package/esm/src/discovery.d.ts +32 -0
- package/esm/src/discovery.d.ts.map +1 -0
- package/esm/src/discovery.js +79 -0
- package/esm/src/docker/router/Dockerfile +43 -0
- package/esm/src/docker/router/fly.toml +15 -0
- package/esm/src/docker/router/start.sh +146 -0
- package/esm/src/guard.d.ts +33 -0
- package/esm/src/guard.d.ts.map +1 -0
- package/esm/src/guard.js +148 -0
- package/esm/src/providers/fly.d.ts +60 -0
- package/esm/src/providers/fly.d.ts.map +1 -0
- package/esm/src/providers/fly.js +384 -0
- package/esm/src/providers/tailscale.d.ts +31 -0
- package/esm/src/providers/tailscale.d.ts.map +1 -0
- package/esm/src/providers/tailscale.js +195 -0
- package/esm/src/resolve.d.ts +11 -0
- package/esm/src/resolve.d.ts.map +1 -0
- package/esm/src/resolve.js +36 -0
- package/esm/src/schemas/config.d.ts +5 -0
- package/esm/src/schemas/config.d.ts.map +1 -0
- package/esm/src/schemas/config.js +22 -0
- package/esm/src/schemas/fly.d.ts +172 -0
- package/esm/src/schemas/fly.d.ts.map +1 -0
- package/esm/src/schemas/fly.js +144 -0
- package/esm/src/schemas/tailscale.d.ts +65 -0
- package/esm/src/schemas/tailscale.d.ts.map +1 -0
- package/esm/src/schemas/tailscale.js +73 -0
- package/package.json +59 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../../src/src/cli/commands/doctor.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Doctor Command - Verify Environment and Infrastructure Health
|
|
3
|
+
// =============================================================================
|
|
4
|
+
import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.27/mod.js";
|
|
5
|
+
import { bold } from "../../../lib/cli.js";
|
|
6
|
+
import { createOutput } from "../../../lib/output.js";
|
|
7
|
+
import { runCommand } from "../../../lib/command.js";
|
|
8
|
+
import { registerCommand } from "../mod.js";
|
|
9
|
+
import { createFlyProvider } from "../../providers/fly.js";
|
|
10
|
+
import { isAcceptRoutesEnabled, isTailscaleInstalled, } from "../../providers/tailscale.js";
|
|
11
|
+
import { requireTailscaleProvider } from "../../credentials.js";
|
|
12
|
+
import { findRouterApp, getRouterMachineInfo, getRouterTailscaleInfo, listRouterApps, } from "../../discovery.js";
|
|
13
|
+
import { resolveOrg } from "../../resolve.js";
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Doctor Command
|
|
16
|
+
// =============================================================================
|
|
17
|
+
const doctor = async (argv) => {
|
|
18
|
+
const args = parseArgs(argv, {
|
|
19
|
+
string: ["network", "org"],
|
|
20
|
+
boolean: ["help", "json"],
|
|
21
|
+
});
|
|
22
|
+
if (args.help) {
|
|
23
|
+
console.log(`
|
|
24
|
+
${bold("ambit doctor")} - Verify Environment and Infrastructure Health
|
|
25
|
+
|
|
26
|
+
${bold("USAGE")}
|
|
27
|
+
ambit doctor [--network <name>] [--org <org>] [--json]
|
|
28
|
+
|
|
29
|
+
${bold("OPTIONS")}
|
|
30
|
+
--network <name> Check a specific router (otherwise checks all)
|
|
31
|
+
--org <org> Fly.io organization slug
|
|
32
|
+
--json Output as JSON
|
|
33
|
+
|
|
34
|
+
${bold("CHECKS")}
|
|
35
|
+
- Tailscale CLI installed and connected
|
|
36
|
+
- Accept-routes enabled
|
|
37
|
+
- Router(s) created and running
|
|
38
|
+
- Router(s) visible in tailnet
|
|
39
|
+
`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const out = createOutput(args.json);
|
|
43
|
+
out.blank().header("ambit Doctor").blank();
|
|
44
|
+
const results = [];
|
|
45
|
+
const report = (name, ok, hint) => {
|
|
46
|
+
results.push({ name, ok, hint });
|
|
47
|
+
if (ok) {
|
|
48
|
+
out.ok(name);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
out.err(name);
|
|
52
|
+
if (hint)
|
|
53
|
+
out.dim(` ${hint}`);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
// =========================================================================
|
|
57
|
+
// Prerequisites (fail fast)
|
|
58
|
+
// =========================================================================
|
|
59
|
+
const fly = createFlyProvider();
|
|
60
|
+
await fly.ensureInstalled();
|
|
61
|
+
await fly.ensureAuth({ interactive: !args.json });
|
|
62
|
+
const tailscale = await requireTailscaleProvider(out);
|
|
63
|
+
const org = await resolveOrg(fly, args, out);
|
|
64
|
+
// =========================================================================
|
|
65
|
+
// Local checks
|
|
66
|
+
// =========================================================================
|
|
67
|
+
report("Tailscale Installed", await isTailscaleInstalled(), "Install from https://tailscale.com/download");
|
|
68
|
+
const tsStatus = await runCommand(["tailscale", "status", "--json"]);
|
|
69
|
+
let tsConnected = false;
|
|
70
|
+
if (tsStatus.success) {
|
|
71
|
+
try {
|
|
72
|
+
const parsed = JSON.parse(tsStatus.stdout);
|
|
73
|
+
tsConnected = parsed.BackendState === "Running";
|
|
74
|
+
}
|
|
75
|
+
catch { /* ignore */ }
|
|
76
|
+
}
|
|
77
|
+
report("Tailscale Connected", tsConnected, "Run: tailscale up");
|
|
78
|
+
report("Accept Routes Enabled", await isAcceptRoutesEnabled(), "Run: sudo tailscale set --accept-routes");
|
|
79
|
+
// =========================================================================
|
|
80
|
+
// Router checks
|
|
81
|
+
// =========================================================================
|
|
82
|
+
if (args.network) {
|
|
83
|
+
const app = await findRouterApp(fly, org, args.network);
|
|
84
|
+
report(`Router Exists (${args.network})`, app !== null, `Create with: ambit create ${args.network}`);
|
|
85
|
+
const machine = app ? await getRouterMachineInfo(fly, app.appName) : null;
|
|
86
|
+
report(`Router Running (${args.network})`, machine?.state === "started", machine ? `Machine state: ${machine.state}` : "No machine found");
|
|
87
|
+
const ts = app
|
|
88
|
+
? await getRouterTailscaleInfo(tailscale, app.appName)
|
|
89
|
+
: null;
|
|
90
|
+
report(`Router in Tailnet (${args.network})`, ts !== null, "Router may still be starting, or check router logs");
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const routerApps = await listRouterApps(fly, org);
|
|
94
|
+
if (routerApps.length === 0) {
|
|
95
|
+
report("Routers Discovered", false, "Run: ambit create <network>");
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
let runningCount = 0;
|
|
99
|
+
let inTailnetCount = 0;
|
|
100
|
+
for (const app of routerApps) {
|
|
101
|
+
const machine = await getRouterMachineInfo(fly, app.appName);
|
|
102
|
+
if (machine?.state === "started")
|
|
103
|
+
runningCount++;
|
|
104
|
+
const ts = await getRouterTailscaleInfo(tailscale, app.appName);
|
|
105
|
+
if (ts)
|
|
106
|
+
inTailnetCount++;
|
|
107
|
+
}
|
|
108
|
+
report("Routers Discovered", runningCount > 0, `${routerApps.length} Router(s): ${runningCount} Running, ${inTailnetCount} In Tailnet`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// =========================================================================
|
|
112
|
+
// Summary
|
|
113
|
+
// =========================================================================
|
|
114
|
+
const issues = results.filter((r) => !r.ok).length;
|
|
115
|
+
if (issues === 0) {
|
|
116
|
+
out.done({ checks: results });
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
out.fail(`${issues} Issue${issues > 1 ? "s" : ""} Found`, {
|
|
120
|
+
checks: results,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
out.blank();
|
|
124
|
+
if (issues === 0) {
|
|
125
|
+
out.text("All Checks Passed.");
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
out.text(`${issues} Issue${issues > 1 ? "s" : ""} Found.`);
|
|
129
|
+
}
|
|
130
|
+
out.blank();
|
|
131
|
+
out.print();
|
|
132
|
+
};
|
|
133
|
+
// =============================================================================
|
|
134
|
+
// Register Command
|
|
135
|
+
// =============================================================================
|
|
136
|
+
registerCommand({
|
|
137
|
+
name: "doctor",
|
|
138
|
+
description: "Check that Tailscale and the router are working correctly",
|
|
139
|
+
usage: "ambit doctor [--network <name>] [--org <org>] [--json]",
|
|
140
|
+
run: doctor,
|
|
141
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/src/cli/commands/list.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// List Command - List All Discovered Routers
|
|
3
|
+
// =============================================================================
|
|
4
|
+
import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.27/mod.js";
|
|
5
|
+
import { Table } from "../../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
|
|
6
|
+
import { bold } from "../../../lib/cli.js";
|
|
7
|
+
import { createOutput } from "../../../lib/output.js";
|
|
8
|
+
import { registerCommand } from "../mod.js";
|
|
9
|
+
import { createFlyProvider } from "../../providers/fly.js";
|
|
10
|
+
import { requireTailscaleProvider } from "../../credentials.js";
|
|
11
|
+
import { getRouterMachineInfo, getRouterTailscaleInfo, listRouterApps, } from "../../discovery.js";
|
|
12
|
+
import { resolveOrg } from "../../resolve.js";
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// List Command
|
|
15
|
+
// =============================================================================
|
|
16
|
+
const list = async (argv) => {
|
|
17
|
+
const args = parseArgs(argv, {
|
|
18
|
+
string: ["org"],
|
|
19
|
+
boolean: ["help", "json"],
|
|
20
|
+
});
|
|
21
|
+
if (args.help) {
|
|
22
|
+
console.log(`
|
|
23
|
+
${bold("ambit list")} - List All Discovered Routers
|
|
24
|
+
|
|
25
|
+
${bold("USAGE")}
|
|
26
|
+
ambit list [--org <org>] [--json]
|
|
27
|
+
|
|
28
|
+
${bold("OPTIONS")}
|
|
29
|
+
--org <org> Fly.io organization slug
|
|
30
|
+
--json Output as JSON
|
|
31
|
+
`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const out = createOutput(args.json);
|
|
35
|
+
const fly = createFlyProvider();
|
|
36
|
+
await fly.ensureInstalled();
|
|
37
|
+
await fly.ensureAuth({ interactive: !args.json });
|
|
38
|
+
const tailscale = await requireTailscaleProvider(out);
|
|
39
|
+
const org = await resolveOrg(fly, args, out);
|
|
40
|
+
// 1. Find all router apps
|
|
41
|
+
const spinner = out.spinner("Discovering Routers");
|
|
42
|
+
const routerApps = await listRouterApps(fly, org);
|
|
43
|
+
spinner.success(`Found ${routerApps.length} Router${routerApps.length !== 1 ? "s" : ""}`);
|
|
44
|
+
if (routerApps.length === 0) {
|
|
45
|
+
out.blank()
|
|
46
|
+
.text("No Routers Found.")
|
|
47
|
+
.dim(" Create one with: ambit create <network>")
|
|
48
|
+
.blank();
|
|
49
|
+
out.done({ routers: [] });
|
|
50
|
+
out.print();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
// 2. Get machine + tailscale state for each
|
|
54
|
+
const routers = [];
|
|
55
|
+
for (const app of routerApps) {
|
|
56
|
+
const machine = await getRouterMachineInfo(fly, app.appName);
|
|
57
|
+
const ts = await getRouterTailscaleInfo(tailscale, app.appName);
|
|
58
|
+
routers.push({ ...app, machine, tailscale: ts });
|
|
59
|
+
}
|
|
60
|
+
// 3. Render
|
|
61
|
+
out.blank().header("Routers").blank();
|
|
62
|
+
const rows = routers.map((r) => {
|
|
63
|
+
const tsStatus = r.tailscale
|
|
64
|
+
? r.tailscale.online ? "online" : "offline"
|
|
65
|
+
: "not found";
|
|
66
|
+
const tag = r.tailscale?.tags?.[0] ?? "unknown";
|
|
67
|
+
return [
|
|
68
|
+
r.network,
|
|
69
|
+
r.appName,
|
|
70
|
+
r.machine?.region ?? "-",
|
|
71
|
+
r.machine?.state ?? "unknown",
|
|
72
|
+
tsStatus,
|
|
73
|
+
tag,
|
|
74
|
+
];
|
|
75
|
+
});
|
|
76
|
+
const table = new Table()
|
|
77
|
+
.header(["Network", "App", "Region", "State", "Tailscale", "Tag"])
|
|
78
|
+
.body(rows)
|
|
79
|
+
.indent(2)
|
|
80
|
+
.padding(2);
|
|
81
|
+
out.text(table.toString());
|
|
82
|
+
out.blank();
|
|
83
|
+
out.done({ routers });
|
|
84
|
+
out.print();
|
|
85
|
+
};
|
|
86
|
+
// =============================================================================
|
|
87
|
+
// Register Command
|
|
88
|
+
// =============================================================================
|
|
89
|
+
registerCommand({
|
|
90
|
+
name: "list",
|
|
91
|
+
description: "List all discovered routers across networks",
|
|
92
|
+
usage: "ambit list [--org <org>] [--json]",
|
|
93
|
+
run: list,
|
|
94
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/src/cli/commands/status.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Status Command - Show Router Status
|
|
3
|
+
// =============================================================================
|
|
4
|
+
import { parseArgs } from "../../../deps/jsr.io/@std/cli/1.0.27/mod.js";
|
|
5
|
+
import { Table } from "../../../deps/jsr.io/@cliffy/table/1.0.0/mod.js";
|
|
6
|
+
import { bold } from "../../../lib/cli.js";
|
|
7
|
+
import { createOutput } from "../../../lib/output.js";
|
|
8
|
+
import { registerCommand } from "../mod.js";
|
|
9
|
+
import { createFlyProvider } from "../../providers/fly.js";
|
|
10
|
+
import { requireTailscaleProvider } from "../../credentials.js";
|
|
11
|
+
import { findRouterApp, getRouterMachineInfo, getRouterTailscaleInfo, listRouterApps, } from "../../discovery.js";
|
|
12
|
+
import { resolveOrg } from "../../resolve.js";
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Status Command
|
|
15
|
+
// =============================================================================
|
|
16
|
+
const status = async (argv) => {
|
|
17
|
+
const args = parseArgs(argv, {
|
|
18
|
+
string: ["network", "org"],
|
|
19
|
+
boolean: ["help", "json"],
|
|
20
|
+
});
|
|
21
|
+
if (args.help) {
|
|
22
|
+
console.log(`
|
|
23
|
+
${bold("ambit status")} - Show Router Status
|
|
24
|
+
|
|
25
|
+
${bold("USAGE")}
|
|
26
|
+
ambit status [--network <name>] [--org <org>] [--json]
|
|
27
|
+
|
|
28
|
+
${bold("OPTIONS")}
|
|
29
|
+
--network <name> Show detailed status for a specific network
|
|
30
|
+
--org <org> Fly.io organization slug
|
|
31
|
+
--json Output as JSON
|
|
32
|
+
|
|
33
|
+
${bold("EXAMPLES")}
|
|
34
|
+
ambit status Show summary of all routers
|
|
35
|
+
ambit status --network browsers Show detailed status for one router
|
|
36
|
+
`);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const fly = createFlyProvider();
|
|
40
|
+
await fly.ensureInstalled();
|
|
41
|
+
await fly.ensureAuth({ interactive: !args.json });
|
|
42
|
+
if (args.network) {
|
|
43
|
+
// ========================================================================
|
|
44
|
+
// Single Router Detailed View
|
|
45
|
+
// ========================================================================
|
|
46
|
+
const out = createOutput(args.json);
|
|
47
|
+
const tailscale = await requireTailscaleProvider(out);
|
|
48
|
+
const org = await resolveOrg(fly, args, out);
|
|
49
|
+
// 1. Find the router
|
|
50
|
+
const app = await findRouterApp(fly, org, args.network);
|
|
51
|
+
if (!app) {
|
|
52
|
+
return out.die(`No Router Found for Network '${args.network}'`);
|
|
53
|
+
}
|
|
54
|
+
// 2. Get machine state
|
|
55
|
+
const machine = await getRouterMachineInfo(fly, app.appName);
|
|
56
|
+
// 3. Get tailscale state
|
|
57
|
+
const ts = await getRouterTailscaleInfo(tailscale, app.appName);
|
|
58
|
+
const tag = ts?.tags?.[0] ?? null;
|
|
59
|
+
out.blank()
|
|
60
|
+
.header("ambit Status")
|
|
61
|
+
.blank()
|
|
62
|
+
.text(` Network: ${bold(app.network)}`)
|
|
63
|
+
.text(` TLD: *.${app.network}`)
|
|
64
|
+
.text(` Tag: ${tag ?? "unknown"}`)
|
|
65
|
+
.blank()
|
|
66
|
+
.text(` Router App: ${app.appName}`)
|
|
67
|
+
.text(` Region: ${machine?.region ?? "unknown"}`)
|
|
68
|
+
.text(` Machine State: ${machine?.state ?? "unknown"}`)
|
|
69
|
+
.text(` Private IP: ${machine?.privateIp ?? "unknown"}`)
|
|
70
|
+
.text(` SOCKS Proxy: ${machine?.privateIp
|
|
71
|
+
? `socks5://[${machine.privateIp}]:1080`
|
|
72
|
+
: "unknown"}`);
|
|
73
|
+
if (machine?.subnet) {
|
|
74
|
+
out.text(` Subnet: ${machine.subnet}`);
|
|
75
|
+
}
|
|
76
|
+
out.blank();
|
|
77
|
+
if (ts) {
|
|
78
|
+
out.text(` Tailscale IP: ${ts.ip}`)
|
|
79
|
+
.text(` Online: ${ts.online ? "yes" : "no"}`);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
out.text(" Tailscale: Not Found in Tailnet");
|
|
83
|
+
}
|
|
84
|
+
out.blank();
|
|
85
|
+
out.done({
|
|
86
|
+
network: app.network,
|
|
87
|
+
router: app,
|
|
88
|
+
machine,
|
|
89
|
+
tag,
|
|
90
|
+
tailscale: ts,
|
|
91
|
+
});
|
|
92
|
+
out.print();
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
// ========================================================================
|
|
96
|
+
// Summary Table of All Routers
|
|
97
|
+
// ========================================================================
|
|
98
|
+
const out = createOutput(args.json);
|
|
99
|
+
const tailscale = await requireTailscaleProvider(out);
|
|
100
|
+
const org = await resolveOrg(fly, args, out);
|
|
101
|
+
// 1. Find all router apps
|
|
102
|
+
const spinner = out.spinner("Discovering Routers");
|
|
103
|
+
const routerApps = await listRouterApps(fly, org);
|
|
104
|
+
spinner.success(`Found ${routerApps.length} Router${routerApps.length !== 1 ? "s" : ""}`);
|
|
105
|
+
if (routerApps.length === 0) {
|
|
106
|
+
out.blank()
|
|
107
|
+
.text("No Routers Found.")
|
|
108
|
+
.dim(" Create one with: ambit create <network>")
|
|
109
|
+
.blank();
|
|
110
|
+
out.done({ routers: [] });
|
|
111
|
+
out.print();
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// 2. Get machine + tailscale state for each
|
|
115
|
+
const routers = [];
|
|
116
|
+
for (const app of routerApps) {
|
|
117
|
+
const machine = await getRouterMachineInfo(fly, app.appName);
|
|
118
|
+
const ts = await getRouterTailscaleInfo(tailscale, app.appName);
|
|
119
|
+
routers.push({ ...app, machine, tailscale: ts });
|
|
120
|
+
}
|
|
121
|
+
// 3. Render
|
|
122
|
+
out.blank().header("Router Status").blank();
|
|
123
|
+
const rows = routers.map((r) => {
|
|
124
|
+
const tsStatus = r.tailscale
|
|
125
|
+
? r.tailscale.online ? "online" : "offline"
|
|
126
|
+
: "not found";
|
|
127
|
+
return [r.network, r.appName, r.machine?.state ?? "unknown", tsStatus];
|
|
128
|
+
});
|
|
129
|
+
const table = new Table()
|
|
130
|
+
.header(["Network", "App", "State", "Tailscale"])
|
|
131
|
+
.body(rows)
|
|
132
|
+
.indent(2)
|
|
133
|
+
.padding(2);
|
|
134
|
+
out.text(table.toString());
|
|
135
|
+
out.blank();
|
|
136
|
+
out.done({ routers });
|
|
137
|
+
out.print();
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
// =============================================================================
|
|
141
|
+
// Register Command
|
|
142
|
+
// =============================================================================
|
|
143
|
+
registerCommand({
|
|
144
|
+
name: "status",
|
|
145
|
+
description: "Show router status, network, and tailnet info",
|
|
146
|
+
usage: "ambit status [--network <name>] [--org <org>] [--json]",
|
|
147
|
+
run: status,
|
|
148
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface Command {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
usage: string;
|
|
5
|
+
run: (args: string[]) => Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const registerCommand: (command: Command) => void;
|
|
8
|
+
export declare const getCommand: (name: string) => Command | undefined;
|
|
9
|
+
export declare const getAllCommands: () => Command[];
|
|
10
|
+
export declare const showHelp: () => void;
|
|
11
|
+
export declare const showVersion: () => void;
|
|
12
|
+
export declare const runCli: (argv: string[]) => Promise<void>;
|
|
13
|
+
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/src/cli/mod.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAQD,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,IAElD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,OAAO,GAAG,SAEnD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,EAExC,CAAC;AAQF,eAAO,MAAM,QAAQ,QAAO,IA4B3B,CAAC;AAEF,eAAO,MAAM,WAAW,QAAO,IAE9B,CAAC;AAMF,eAAO,MAAM,MAAM,GAAU,MAAM,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAuCzD,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// CLI Framework - Command Parser and Router
|
|
3
|
+
// =============================================================================
|
|
4
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
5
|
+
import { parseArgs } from "../../deps/jsr.io/@std/cli/1.0.27/mod.js";
|
|
6
|
+
import { bold, dim } from "../../lib/cli.js";
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// Commands Registry
|
|
9
|
+
// =============================================================================
|
|
10
|
+
const commands = new Map();
|
|
11
|
+
export const registerCommand = (command) => {
|
|
12
|
+
commands.set(command.name, command);
|
|
13
|
+
};
|
|
14
|
+
export const getCommand = (name) => {
|
|
15
|
+
return commands.get(name);
|
|
16
|
+
};
|
|
17
|
+
export const getAllCommands = () => {
|
|
18
|
+
return Array.from(commands.values());
|
|
19
|
+
};
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// Help Text
|
|
22
|
+
// =============================================================================
|
|
23
|
+
const VERSION = "0.3.0";
|
|
24
|
+
export const showHelp = () => {
|
|
25
|
+
console.log(`
|
|
26
|
+
${bold("ambit")} - Tailscale Subnet Router for Fly.io Custom Networks
|
|
27
|
+
|
|
28
|
+
${bold("USAGE")}
|
|
29
|
+
ambit <command> [options]
|
|
30
|
+
|
|
31
|
+
${bold("COMMANDS")}
|
|
32
|
+
create Create a Tailscale subnet router on a Fly.io custom network
|
|
33
|
+
deploy Deploy an app safely on a custom private network
|
|
34
|
+
list List all discovered routers across networks
|
|
35
|
+
status Show router status, network, and tailnet info
|
|
36
|
+
destroy Tear down the router, clean up DNS and tailnet device
|
|
37
|
+
doctor Check that Tailscale and the router are working correctly
|
|
38
|
+
|
|
39
|
+
${bold("OPTIONS")}
|
|
40
|
+
--help Show help for a command
|
|
41
|
+
--version Show version
|
|
42
|
+
|
|
43
|
+
${bold("EXAMPLES")}
|
|
44
|
+
ambit create browsers
|
|
45
|
+
ambit list
|
|
46
|
+
ambit status --network browsers
|
|
47
|
+
ambit destroy --network browsers
|
|
48
|
+
ambit doctor
|
|
49
|
+
|
|
50
|
+
${dim("Run 'ambit <command> --help' for command-specific help.")}
|
|
51
|
+
`);
|
|
52
|
+
};
|
|
53
|
+
export const showVersion = () => {
|
|
54
|
+
console.log(`ambit ${VERSION}`);
|
|
55
|
+
};
|
|
56
|
+
// =============================================================================
|
|
57
|
+
// Main CLI Runner
|
|
58
|
+
// =============================================================================
|
|
59
|
+
export const runCli = async (argv) => {
|
|
60
|
+
const args = parseArgs(argv, {
|
|
61
|
+
boolean: ["help", "version"],
|
|
62
|
+
stopEarly: true,
|
|
63
|
+
});
|
|
64
|
+
if (args.version) {
|
|
65
|
+
showVersion();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const commandName = args._[0];
|
|
69
|
+
if (!commandName || args.help) {
|
|
70
|
+
if (commandName) {
|
|
71
|
+
const command = getCommand(commandName);
|
|
72
|
+
if (command) {
|
|
73
|
+
console.log(`
|
|
74
|
+
${bold(command.name)} - ${command.description}
|
|
75
|
+
|
|
76
|
+
${bold("USAGE")}
|
|
77
|
+
${command.usage}
|
|
78
|
+
`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
showHelp();
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const command = getCommand(commandName);
|
|
86
|
+
if (!command) {
|
|
87
|
+
console.log(`Unknown command: ${commandName}`);
|
|
88
|
+
console.log(`Run 'ambit --help' for usage.`);
|
|
89
|
+
dntShim.Deno.exit(1);
|
|
90
|
+
}
|
|
91
|
+
const commandArgs = argv.slice(1);
|
|
92
|
+
await command.run(commandArgs);
|
|
93
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "../_dnt.polyfills.js";
|
|
2
|
+
import { type TailscaleProvider } from "./providers/tailscale.js";
|
|
3
|
+
export interface CredentialStore {
|
|
4
|
+
getTailscaleApiKey(): Promise<string | null>;
|
|
5
|
+
setTailscaleApiKey(key: string): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const createConfigCredentialStore: () => CredentialStore;
|
|
8
|
+
export declare const getCredentialStore: () => CredentialStore;
|
|
9
|
+
/** Get a TailscaleProvider or die via out.die(). Respects JSON mode. */
|
|
10
|
+
export declare const requireTailscaleProvider: (out: {
|
|
11
|
+
die(msg: string): never;
|
|
12
|
+
}) => Promise<TailscaleProvider>;
|
|
13
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/src/credentials.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,CAAC;AAQ9B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAclC,MAAM,WAAW,eAAe;IAC9B,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAQD,eAAO,MAAM,2BAA2B,QAAO,eA0B9C,CAAC;AAMF,eAAO,MAAM,kBAAkB,QAAO,eAgBrC,CAAC;AAMF,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,GACnC,KAAK;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,KAC/B,OAAO,CAAC,iBAAiB,CAS3B,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Credential Store - Persistent Tailscale API Key Storage
|
|
3
|
+
// =============================================================================
|
|
4
|
+
import "../_dnt.polyfills.js";
|
|
5
|
+
import * as dntShim from "../_dnt.shims.js";
|
|
6
|
+
import { z } from "../deps/jsr.io/@zod/zod/4.3.6/src/index.js";
|
|
7
|
+
import { ensureConfigDir, fileExists } from "../lib/cli.js";
|
|
8
|
+
import { getConfigDir } from "./schemas/config.js";
|
|
9
|
+
import { createTailscaleProvider, } from "./providers/tailscale.js";
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Schema
|
|
12
|
+
// =============================================================================
|
|
13
|
+
const CredentialsSchema = z.object({
|
|
14
|
+
apiKey: z.string(),
|
|
15
|
+
});
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// Config File Implementation
|
|
18
|
+
// =============================================================================
|
|
19
|
+
const getCredentialsPath = () => `${getConfigDir()}/credentials.json`;
|
|
20
|
+
export const createConfigCredentialStore = () => {
|
|
21
|
+
return {
|
|
22
|
+
async getTailscaleApiKey() {
|
|
23
|
+
const path = getCredentialsPath();
|
|
24
|
+
if (!(await fileExists(path))) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
const content = await dntShim.Deno.readTextFile(path);
|
|
29
|
+
const result = CredentialsSchema.safeParse(JSON.parse(content));
|
|
30
|
+
return result.success ? result.data.apiKey : null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
async setTailscaleApiKey(key) {
|
|
37
|
+
await ensureConfigDir();
|
|
38
|
+
const path = getCredentialsPath();
|
|
39
|
+
await dntShim.Deno.writeTextFile(path, JSON.stringify({ apiKey: key }, null, 2) + "\n");
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
// =============================================================================
|
|
44
|
+
// Default Credential Store (env var → file)
|
|
45
|
+
// =============================================================================
|
|
46
|
+
export const getCredentialStore = () => {
|
|
47
|
+
const fileStore = createConfigCredentialStore();
|
|
48
|
+
return {
|
|
49
|
+
async getTailscaleApiKey() {
|
|
50
|
+
// Environment variable takes priority
|
|
51
|
+
const envKey = dntShim.Deno.env.get("TAILSCALE_API_KEY");
|
|
52
|
+
if (envKey)
|
|
53
|
+
return envKey;
|
|
54
|
+
return await fileStore.getTailscaleApiKey();
|
|
55
|
+
},
|
|
56
|
+
async setTailscaleApiKey(key) {
|
|
57
|
+
await fileStore.setTailscaleApiKey(key);
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// Require Tailscale Provider (fail-fast)
|
|
63
|
+
// =============================================================================
|
|
64
|
+
/** Get a TailscaleProvider or die via out.die(). Respects JSON mode. */
|
|
65
|
+
export const requireTailscaleProvider = async (out) => {
|
|
66
|
+
const store = getCredentialStore();
|
|
67
|
+
const key = await store.getTailscaleApiKey();
|
|
68
|
+
if (!key) {
|
|
69
|
+
return out.die("Tailscale API Key Required. Run 'ambit create' or set TAILSCALE_API_KEY");
|
|
70
|
+
}
|
|
71
|
+
return createTailscaleProvider("-", key);
|
|
72
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "../_dnt.polyfills.js";
|
|
2
|
+
import type { FlyProvider } from "./providers/fly.js";
|
|
3
|
+
import type { TailscaleProvider } from "./providers/tailscale.js";
|
|
4
|
+
/** A router app discovered from the Fly REST API. */
|
|
5
|
+
export interface RouterApp {
|
|
6
|
+
appName: string;
|
|
7
|
+
network: string;
|
|
8
|
+
org: string;
|
|
9
|
+
}
|
|
10
|
+
/** Machine state for a router, from the Fly Machines API. */
|
|
11
|
+
export interface RouterMachineInfo {
|
|
12
|
+
region: string;
|
|
13
|
+
state: string;
|
|
14
|
+
privateIp?: string;
|
|
15
|
+
subnet?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Tailscale device state for a router. */
|
|
18
|
+
export interface RouterTailscaleInfo {
|
|
19
|
+
ip: string;
|
|
20
|
+
online: boolean;
|
|
21
|
+
hostname: string;
|
|
22
|
+
tags?: string[];
|
|
23
|
+
}
|
|
24
|
+
/** List all ambit apps on custom networks in an org. */
|
|
25
|
+
export declare const listRouterApps: (fly: FlyProvider, org: string) => Promise<RouterApp[]>;
|
|
26
|
+
/** Find the router app for a specific network. */
|
|
27
|
+
export declare const findRouterApp: (fly: FlyProvider, org: string, network: string) => Promise<RouterApp | null>;
|
|
28
|
+
/** Get machine info for a router app. Returns null if no machines exist. */
|
|
29
|
+
export declare const getRouterMachineInfo: (fly: FlyProvider, appName: string) => Promise<RouterMachineInfo | null>;
|
|
30
|
+
/** Get tailscale device info for a router. Returns null if not found. */
|
|
31
|
+
export declare const getRouterTailscaleInfo: (tailscale: TailscaleProvider, appName: string) => Promise<RouterTailscaleInfo | null>;
|
|
32
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/src/discovery.ts"],"names":[],"mappings":"AAcA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAaD,wDAAwD;AACxD,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,KAAK,MAAM,KACV,OAAO,CAAC,SAAS,EAAE,CAcrB,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,aAAa,GACxB,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,SAAS,MAAM,KACd,OAAO,CAAC,SAAS,GAAG,IAAI,CAG1B,CAAC;AAMF,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,GAC/B,KAAK,WAAW,EAChB,SAAS,MAAM,KACd,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAclC,CAAC;AAMF,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,GACjC,WAAW,iBAAiB,EAC5B,SAAS,MAAM,KACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAcpC,CAAC"}
|