plugin-git-manager 1.0.3 → 1.0.10
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 +108 -0
- package/dist/client/228.7588a0707cb3694a.js +10 -0
- package/dist/client/498.dd1184272d8038d4.js +10 -0
- package/dist/client/ai-context.d.ts +8 -0
- package/dist/client/components/AIEmployeeSelect.d.ts +13 -0
- package/dist/client/components/MarkdownView.d.ts +10 -0
- package/dist/client/components/MergeRequests.d.ts +2 -0
- package/dist/client/components/PollingStatus.d.ts +2 -0
- package/dist/client/components/ReviewFlows.d.ts +2 -0
- package/dist/client/components/ReviewHistory.d.ts +4 -0
- package/dist/client/components/RunReviewButton.d.ts +31 -0
- package/dist/client/index.js +1 -1
- package/dist/externalVersion.js +4 -4
- package/dist/locale/en-US.json +137 -1
- package/dist/locale/vi-VN.json +137 -1
- package/dist/node_modules/zod/LICENSE +21 -0
- package/dist/node_modules/zod/index.cjs +1 -0
- package/dist/node_modules/zod/index.d.cts +4 -0
- package/dist/node_modules/zod/index.d.ts +4 -0
- package/dist/node_modules/zod/index.js +4 -0
- package/dist/node_modules/zod/locales/index.cjs +17 -0
- package/dist/node_modules/zod/locales/index.d.cts +1 -0
- package/dist/node_modules/zod/locales/index.d.ts +1 -0
- package/dist/node_modules/zod/locales/index.js +1 -0
- package/dist/node_modules/zod/locales/package.json +6 -0
- package/dist/node_modules/zod/mini/index.cjs +17 -0
- package/dist/node_modules/zod/mini/index.d.cts +1 -0
- package/dist/node_modules/zod/mini/index.d.ts +1 -0
- package/dist/node_modules/zod/mini/index.js +1 -0
- package/dist/node_modules/zod/mini/package.json +6 -0
- package/dist/node_modules/zod/package.json +1 -0
- package/dist/node_modules/zod/src/index.ts +4 -0
- package/dist/node_modules/zod/src/locales/index.ts +1 -0
- package/dist/node_modules/zod/src/mini/index.ts +1 -0
- package/dist/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/dist/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/dist/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/dist/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/dist/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/dist/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/dist/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/dist/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/dist/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/dist/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/dist/node_modules/zod/src/v3/errors.ts +13 -0
- package/dist/node_modules/zod/src/v3/external.ts +6 -0
- package/dist/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/dist/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/dist/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/dist/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/dist/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/dist/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/dist/node_modules/zod/src/v3/index.ts +4 -0
- package/dist/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/dist/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/dist/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/dist/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/dist/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/dist/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/dist/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/dist/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/dist/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/dist/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/dist/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/dist/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/dist/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/dist/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/dist/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/dist/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/dist/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/dist/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/dist/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/dist/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/dist/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/dist/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/dist/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/dist/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/dist/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/dist/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/dist/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/dist/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/dist/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/dist/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/dist/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/dist/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/dist/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/dist/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/dist/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/dist/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/dist/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/dist/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/dist/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/dist/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/dist/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/dist/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/dist/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/dist/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/dist/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/dist/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/dist/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/dist/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/dist/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/dist/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/dist/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/dist/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/dist/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/dist/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/dist/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/dist/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/dist/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/dist/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/dist/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/dist/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/dist/node_modules/zod/src/v3/types.ts +5138 -0
- package/dist/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/dist/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/dist/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/dist/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/dist/node_modules/zod/src/v4/classic/external.ts +51 -0
- package/dist/node_modules/zod/src/v4/classic/from-json-schema.ts +643 -0
- package/dist/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/dist/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/dist/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/dist/node_modules/zod/src/v4/classic/schemas.ts +2409 -0
- package/dist/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/dist/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/dist/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/dist/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/dist/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/dist/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/dist/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/dist/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/dist/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/dist/node_modules/zod/src/v4/classic/tests/catch.test.ts +276 -0
- package/dist/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/dist/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/dist/node_modules/zod/src/v4/classic/tests/codec.test.ts +562 -0
- package/dist/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/dist/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/dist/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/dist/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/dist/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/dist/node_modules/zod/src/v4/classic/tests/default.test.ts +365 -0
- package/dist/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/dist/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/dist/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +661 -0
- package/dist/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/dist/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +595 -0
- package/dist/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/dist/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/dist/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/dist/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/dist/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +734 -0
- package/dist/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/dist/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/dist/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/dist/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/dist/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/dist/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/dist/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/dist/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/dist/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/dist/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/dist/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/classic/tests/number.test.ts +270 -0
- package/dist/node_modules/zod/src/v4/classic/tests/object.test.ts +640 -0
- package/dist/node_modules/zod/src/v4/classic/tests/optional.test.ts +223 -0
- package/dist/node_modules/zod/src/v4/classic/tests/partial.test.ts +427 -0
- package/dist/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/dist/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/dist/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/dist/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +282 -0
- package/dist/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/dist/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/dist/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/dist/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/dist/node_modules/zod/src/v4/classic/tests/record.test.ts +600 -0
- package/dist/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +582 -0
- package/dist/node_modules/zod/src/v4/classic/tests/refine.test.ts +570 -0
- package/dist/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/dist/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/dist/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/dist/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/dist/node_modules/zod/src/v4/classic/tests/string.test.ts +1175 -0
- package/dist/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/dist/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/dist/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/dist/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2975 -0
- package/dist/node_modules/zod/src/v4/classic/tests/transform.test.ts +361 -0
- package/dist/node_modules/zod/src/v4/classic/tests/tuple.test.ts +183 -0
- package/dist/node_modules/zod/src/v4/classic/tests/union.test.ts +219 -0
- package/dist/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/dist/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/dist/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/dist/node_modules/zod/src/v4/core/api.ts +1798 -0
- package/dist/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/dist/node_modules/zod/src/v4/core/config.ts +15 -0
- package/dist/node_modules/zod/src/v4/core/core.ts +138 -0
- package/dist/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/dist/node_modules/zod/src/v4/core/errors.ts +448 -0
- package/dist/node_modules/zod/src/v4/core/index.ts +16 -0
- package/dist/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/dist/node_modules/zod/src/v4/core/json-schema-processors.ts +667 -0
- package/dist/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/dist/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/dist/node_modules/zod/src/v4/core/regexes.ts +183 -0
- package/dist/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/dist/node_modules/zod/src/v4/core/schemas.ts +4543 -0
- package/dist/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/dist/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/dist/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/dist/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +83 -0
- package/dist/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +67 -0
- package/dist/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/dist/node_modules/zod/src/v4/core/to-json-schema.ts +613 -0
- package/dist/node_modules/zod/src/v4/core/util.ts +966 -0
- package/dist/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/dist/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/dist/node_modules/zod/src/v4/index.ts +4 -0
- package/dist/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/dist/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/dist/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/dist/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/dist/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/en.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/dist/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/dist/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/fr.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/dist/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/dist/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/index.ts +49 -0
- package/dist/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/dist/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/dist/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/dist/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/dist/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/dist/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/dist/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/dist/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/dist/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/dist/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/dist/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/dist/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/dist/node_modules/zod/src/v4/locales/uz.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/dist/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/dist/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/dist/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/dist/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/dist/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/dist/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/dist/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/dist/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/dist/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/dist/node_modules/zod/src/v4/mini/schemas.ts +1916 -0
- package/dist/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/dist/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/dist/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/dist/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/dist/node_modules/zod/src/v4/mini/tests/codec.test.ts +529 -0
- package/dist/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/dist/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/dist/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/dist/node_modules/zod/src/v4/mini/tests/index.test.ts +963 -0
- package/dist/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/dist/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/dist/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/dist/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/dist/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/dist/node_modules/zod/src/v4/mini/tests/string.test.ts +347 -0
- package/dist/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/dist/node_modules/zod/v3/ZodError.cjs +138 -0
- package/dist/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/dist/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/dist/node_modules/zod/v3/ZodError.js +133 -0
- package/dist/node_modules/zod/v3/errors.cjs +17 -0
- package/dist/node_modules/zod/v3/errors.d.cts +5 -0
- package/dist/node_modules/zod/v3/errors.d.ts +5 -0
- package/dist/node_modules/zod/v3/errors.js +9 -0
- package/dist/node_modules/zod/v3/external.cjs +22 -0
- package/dist/node_modules/zod/v3/external.d.cts +6 -0
- package/dist/node_modules/zod/v3/external.d.ts +6 -0
- package/dist/node_modules/zod/v3/external.js +6 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/dist/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/dist/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/dist/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/dist/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/dist/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/dist/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/dist/node_modules/zod/v3/helpers/util.js +133 -0
- package/dist/node_modules/zod/v3/index.cjs +33 -0
- package/dist/node_modules/zod/v3/index.d.cts +4 -0
- package/dist/node_modules/zod/v3/index.d.ts +4 -0
- package/dist/node_modules/zod/v3/index.js +4 -0
- package/dist/node_modules/zod/v3/locales/en.cjs +112 -0
- package/dist/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/dist/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/dist/node_modules/zod/v3/locales/en.js +109 -0
- package/dist/node_modules/zod/v3/package.json +6 -0
- package/dist/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/dist/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/dist/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/dist/node_modules/zod/v3/standard-schema.js +1 -0
- package/dist/node_modules/zod/v3/types.cjs +3777 -0
- package/dist/node_modules/zod/v3/types.d.cts +1034 -0
- package/dist/node_modules/zod/v3/types.d.ts +1034 -0
- package/dist/node_modules/zod/v3/types.js +3695 -0
- package/dist/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/dist/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/dist/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/dist/node_modules/zod/v4/classic/checks.js +1 -0
- package/dist/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/dist/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/dist/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/dist/node_modules/zod/v4/classic/coerce.js +17 -0
- package/dist/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/dist/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/dist/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/dist/node_modules/zod/v4/classic/compat.js +31 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/dist/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/dist/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/dist/node_modules/zod/v4/classic/errors.js +48 -0
- package/dist/node_modules/zod/v4/classic/external.cjs +73 -0
- package/dist/node_modules/zod/v4/classic/external.d.cts +15 -0
- package/dist/node_modules/zod/v4/classic/external.d.ts +15 -0
- package/dist/node_modules/zod/v4/classic/external.js +20 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.cjs +610 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/dist/node_modules/zod/v4/classic/from-json-schema.js +584 -0
- package/dist/node_modules/zod/v4/classic/index.cjs +33 -0
- package/dist/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/dist/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/dist/node_modules/zod/v4/classic/index.js +4 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/dist/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/dist/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/dist/node_modules/zod/v4/classic/iso.js +30 -0
- package/dist/node_modules/zod/v4/classic/package.json +6 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/dist/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/dist/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/dist/node_modules/zod/v4/classic/parse.js +15 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +1272 -0
- package/dist/node_modules/zod/v4/classic/schemas.d.cts +739 -0
- package/dist/node_modules/zod/v4/classic/schemas.d.ts +739 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +1157 -0
- package/dist/node_modules/zod/v4/core/api.cjs +1222 -0
- package/dist/node_modules/zod/v4/core/api.d.cts +304 -0
- package/dist/node_modules/zod/v4/core/api.d.ts +304 -0
- package/dist/node_modules/zod/v4/core/api.js +1082 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +601 -0
- package/dist/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/dist/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/dist/node_modules/zod/v4/core/checks.js +575 -0
- package/dist/node_modules/zod/v4/core/core.cjs +83 -0
- package/dist/node_modules/zod/v4/core/core.d.cts +70 -0
- package/dist/node_modules/zod/v4/core/core.d.ts +70 -0
- package/dist/node_modules/zod/v4/core/core.js +76 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +39 -0
- package/dist/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/dist/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/dist/node_modules/zod/v4/core/doc.js +35 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +213 -0
- package/dist/node_modules/zod/v4/core/errors.d.cts +220 -0
- package/dist/node_modules/zod/v4/core/errors.d.ts +220 -0
- package/dist/node_modules/zod/v4/core/errors.js +182 -0
- package/dist/node_modules/zod/v4/core/index.cjs +47 -0
- package/dist/node_modules/zod/v4/core/index.d.cts +16 -0
- package/dist/node_modules/zod/v4/core/index.d.ts +16 -0
- package/dist/node_modules/zod/v4/core/index.js +16 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/dist/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +648 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +605 -0
- package/dist/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/dist/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/dist/node_modules/zod/v4/core/json-schema.js +1 -0
- package/dist/node_modules/zod/v4/core/package.json +6 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +131 -0
- package/dist/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/dist/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/dist/node_modules/zod/v4/core/parse.js +93 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +166 -0
- package/dist/node_modules/zod/v4/core/regexes.d.cts +79 -0
- package/dist/node_modules/zod/v4/core/regexes.d.ts +79 -0
- package/dist/node_modules/zod/v4/core/regexes.js +133 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +56 -0
- package/dist/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/dist/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/dist/node_modules/zod/v4/core/registries.js +51 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +2126 -0
- package/dist/node_modules/zod/v4/core/schemas.d.cts +1146 -0
- package/dist/node_modules/zod/v4/core/schemas.d.ts +1146 -0
- package/dist/node_modules/zod/v4/core/schemas.js +2095 -0
- package/dist/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/dist/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/dist/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/dist/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +446 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +437 -0
- package/dist/node_modules/zod/v4/core/util.cjs +710 -0
- package/dist/node_modules/zod/v4/core/util.d.cts +199 -0
- package/dist/node_modules/zod/v4/core/util.d.ts +199 -0
- package/dist/node_modules/zod/v4/core/util.js +651 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +8 -0
- package/dist/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/dist/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/dist/node_modules/zod/v4/core/versions.js +5 -0
- package/dist/node_modules/zod/v4/index.cjs +22 -0
- package/dist/node_modules/zod/v4/index.d.cts +3 -0
- package/dist/node_modules/zod/v4/index.d.ts +3 -0
- package/dist/node_modules/zod/v4/index.js +3 -0
- package/dist/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/dist/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ar.js +106 -0
- package/dist/node_modules/zod/v4/locales/az.cjs +132 -0
- package/dist/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/az.js +105 -0
- package/dist/node_modules/zod/v4/locales/be.cjs +183 -0
- package/dist/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/be.js +156 -0
- package/dist/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/dist/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/bg.js +120 -0
- package/dist/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ca.js +107 -0
- package/dist/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/dist/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/cs.js +111 -0
- package/dist/node_modules/zod/v4/locales/da.cjs +142 -0
- package/dist/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/da.js +115 -0
- package/dist/node_modules/zod/v4/locales/de.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/de.js +108 -0
- package/dist/node_modules/zod/v4/locales/en.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/en.js +109 -0
- package/dist/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/eo.js +109 -0
- package/dist/node_modules/zod/v4/locales/es.cjs +159 -0
- package/dist/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/es.js +132 -0
- package/dist/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/dist/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fa.js +114 -0
- package/dist/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/dist/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fi.js +112 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/dist/node_modules/zod/v4/locales/fr.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/fr.js +108 -0
- package/dist/node_modules/zod/v4/locales/he.cjs +241 -0
- package/dist/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/he.js +214 -0
- package/dist/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/hu.js +108 -0
- package/dist/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/dist/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/hy.js +147 -0
- package/dist/node_modules/zod/v4/locales/id.cjs +133 -0
- package/dist/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/id.js +106 -0
- package/dist/node_modules/zod/v4/locales/index.cjs +104 -0
- package/dist/node_modules/zod/v4/locales/index.d.cts +49 -0
- package/dist/node_modules/zod/v4/locales/index.d.ts +49 -0
- package/dist/node_modules/zod/v4/locales/index.js +49 -0
- package/dist/node_modules/zod/v4/locales/is.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/is.js +109 -0
- package/dist/node_modules/zod/v4/locales/it.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/it.js +108 -0
- package/dist/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ja.js +107 -0
- package/dist/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/dist/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ka.js +112 -0
- package/dist/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/dist/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/dist/node_modules/zod/v4/locales/kh.js +5 -0
- package/dist/node_modules/zod/v4/locales/km.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/km.js +110 -0
- package/dist/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/dist/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ko.js +111 -0
- package/dist/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/dist/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/lt.js +203 -0
- package/dist/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/mk.js +109 -0
- package/dist/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ms.js +107 -0
- package/dist/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/nl.js +110 -0
- package/dist/node_modules/zod/v4/locales/no.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/no.js +108 -0
- package/dist/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ota.js +109 -0
- package/dist/node_modules/zod/v4/locales/package.json +6 -0
- package/dist/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/pl.js +109 -0
- package/dist/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/dist/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ps.js +114 -0
- package/dist/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/pt.js +108 -0
- package/dist/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/dist/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ru.js +156 -0
- package/dist/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/sl.js +109 -0
- package/dist/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/sv.js +110 -0
- package/dist/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ta.js +110 -0
- package/dist/node_modules/zod/v4/locales/th.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/th.js +110 -0
- package/dist/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/dist/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/tr.js +105 -0
- package/dist/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/dist/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/dist/node_modules/zod/v4/locales/ua.js +5 -0
- package/dist/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/uk.js +108 -0
- package/dist/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/dist/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/ur.js +110 -0
- package/dist/node_modules/zod/v4/locales/uz.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/uz.js +109 -0
- package/dist/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/dist/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/vi.js +108 -0
- package/dist/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/yo.js +107 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/dist/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/dist/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/dist/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/dist/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/dist/node_modules/zod/v4/mini/checks.js +1 -0
- package/dist/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/dist/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/dist/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/dist/node_modules/zod/v4/mini/coerce.js +22 -0
- package/dist/node_modules/zod/v4/mini/external.cjs +63 -0
- package/dist/node_modules/zod/v4/mini/external.d.cts +12 -0
- package/dist/node_modules/zod/v4/mini/external.d.ts +12 -0
- package/dist/node_modules/zod/v4/mini/external.js +14 -0
- package/dist/node_modules/zod/v4/mini/index.cjs +32 -0
- package/dist/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/dist/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/dist/node_modules/zod/v4/mini/index.js +3 -0
- package/dist/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/dist/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/dist/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/dist/node_modules/zod/v4/mini/iso.js +34 -0
- package/dist/node_modules/zod/v4/mini/package.json +6 -0
- package/dist/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/dist/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/dist/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/dist/node_modules/zod/v4/mini/parse.js +1 -0
- package/dist/node_modules/zod/v4/mini/schemas.cjs +1046 -0
- package/dist/node_modules/zod/v4/mini/schemas.d.cts +427 -0
- package/dist/node_modules/zod/v4/mini/schemas.d.ts +427 -0
- package/dist/node_modules/zod/v4/mini/schemas.js +925 -0
- package/dist/node_modules/zod/v4/package.json +6 -0
- package/dist/node_modules/zod/v4-mini/index.cjs +17 -0
- package/dist/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/dist/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/dist/node_modules/zod/v4-mini/index.js +1 -0
- package/dist/node_modules/zod/v4-mini/package.json +6 -0
- package/dist/server/actions/git-actions.js +24 -9
- package/dist/server/actions/gitlab-api.d.ts +4 -0
- package/dist/server/actions/gitlab-api.js +363 -0
- package/dist/server/actions/poller.d.ts +8 -0
- package/dist/server/actions/poller.js +55 -0
- package/dist/server/actions/review.d.ts +36 -0
- package/dist/server/actions/review.js +529 -0
- package/dist/server/ai-tools.d.ts +10 -0
- package/dist/server/ai-tools.js +230 -0
- package/dist/server/collections/gitCodeReviews.d.ts +2 -0
- package/dist/server/collections/gitCodeReviews.js +221 -0
- package/dist/server/collections/gitRepositories.js +21 -0
- package/dist/server/collections/gitReviewFlows.d.ts +2 -0
- package/dist/server/collections/gitReviewFlows.js +138 -0
- package/dist/server/plugin.d.ts +2 -0
- package/dist/server/plugin.js +62 -3
- package/dist/server/poller.d.ts +30 -0
- package/dist/server/poller.js +241 -0
- package/dist/server/utils/gitlab-url.d.ts +21 -0
- package/dist/server/utils/gitlab-url.js +47 -0
- package/package.json +6 -1
- package/src/client/ai-context.tsx +114 -0
- package/src/client/components/AIEmployeeSelect.tsx +63 -0
- package/src/client/components/CommitHistory.tsx +14 -0
- package/src/client/components/GitManagerSettings.tsx +44 -1
- package/src/client/components/MarkdownView.tsx +83 -0
- package/src/client/components/MergeRequests.tsx +681 -0
- package/src/client/components/PollingStatus.tsx +194 -0
- package/src/client/components/RepositoryConfig.tsx +38 -3
- package/src/client/components/ReviewFlows.tsx +255 -0
- package/src/client/components/ReviewHistory.tsx +517 -0
- package/src/client/components/RunReviewButton.tsx +278 -0
- package/src/client/index.tsx +12 -0
- package/src/locale/en-US.json +137 -1
- package/src/locale/vi-VN.json +137 -1
- package/src/server/actions/git-actions.ts +28 -9
- package/src/server/actions/gitlab-api.ts +356 -0
- package/src/server/actions/poller.ts +26 -0
- package/src/server/actions/review.ts +605 -0
- package/src/server/ai-tools.ts +204 -0
- package/src/server/collections/gitCodeReviews.ts +191 -0
- package/src/server/collections/gitRepositories.ts +21 -0
- package/src/server/collections/gitReviewFlows.ts +108 -0
- package/src/server/plugin.ts +67 -0
- package/src/server/poller.ts +258 -0
- package/src/server/utils/gitlab-url.ts +35 -0
- package/dist/client/100.e08d760e0b01997c.js +0 -10
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import type { Application } from '@nocobase/server';
|
|
2
|
+
import { triggerReviewInternal, branchMatches } from './actions/review';
|
|
3
|
+
import { parseGitLabProject } from './utils/gitlab-url';
|
|
4
|
+
|
|
5
|
+
const POLL_INTERVAL_MS = 5 * 60 * 1000; // 5 minutes
|
|
6
|
+
const MR_PAGE_SIZE = 50;
|
|
7
|
+
/**
|
|
8
|
+
* Maximum duration a single poll cycle is allowed to hold the lock.
|
|
9
|
+
* If a cycle exceeds this, the stale lock is forcibly released so future
|
|
10
|
+
* ticks are not permanently blocked.
|
|
11
|
+
*/
|
|
12
|
+
const STALE_POLL_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
13
|
+
|
|
14
|
+
let timer: NodeJS.Timeout | null = null;
|
|
15
|
+
let isPolling = false;
|
|
16
|
+
let pollStartedAt: number | null = null;
|
|
17
|
+
let lastTickAt: Date | null = null;
|
|
18
|
+
let lastError: string | null = null;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Start the background poller. Idempotent — calling twice is a no-op.
|
|
22
|
+
* The poller scans repos with autoReview=true, lists their open MRs from GitLab,
|
|
23
|
+
* and triggers a review if no record exists for the MR's current head SHA.
|
|
24
|
+
*/
|
|
25
|
+
export function startPoller(app: Application) {
|
|
26
|
+
if (timer) return;
|
|
27
|
+
app.log?.info?.('plugin-git-manager: starting MR poller (interval 5min)');
|
|
28
|
+
// First tick after a short delay so app is fully ready
|
|
29
|
+
timer = setInterval(() => tick(app).catch((e) => app.log?.error?.('poller tick error', e)), POLL_INTERVAL_MS);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function stopPoller() {
|
|
33
|
+
if (timer) {
|
|
34
|
+
clearInterval(timer);
|
|
35
|
+
timer = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function getPollerStatus() {
|
|
40
|
+
return {
|
|
41
|
+
running: !!timer,
|
|
42
|
+
polling: isPolling,
|
|
43
|
+
lastTickAt: lastTickAt?.toISOString() ?? null,
|
|
44
|
+
lastError,
|
|
45
|
+
intervalSec: POLL_INTERVAL_MS / 1000,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Attempt to acquire a DB-level advisory lock so that only one node in an
|
|
51
|
+
* HA cluster runs the poller at any given time.
|
|
52
|
+
*
|
|
53
|
+
* Returns `true` if the lock was acquired, `false` if another node holds it.
|
|
54
|
+
* Falls back to the in-memory flag if the DB doesn't support advisory locks.
|
|
55
|
+
*/
|
|
56
|
+
async function tryAcquirePollerLock(app: Application): Promise<boolean> {
|
|
57
|
+
try {
|
|
58
|
+
const sequelize = (app.db as any).sequelize;
|
|
59
|
+
if (!sequelize) return true; // can't lock — allow
|
|
60
|
+
const dialect = sequelize.getDialect?.();
|
|
61
|
+
// Lock key derived from a fixed identifier for this plugin's poller
|
|
62
|
+
const lockKey = 777_042; // arbitrary stable int
|
|
63
|
+
if (dialect === 'postgres') {
|
|
64
|
+
const [results] = await sequelize.query(`SELECT pg_try_advisory_lock(${lockKey}) AS locked`);
|
|
65
|
+
return results?.[0]?.locked === true;
|
|
66
|
+
}
|
|
67
|
+
// For MySQL / MariaDB
|
|
68
|
+
if (dialect === 'mysql' || dialect === 'mariadb') {
|
|
69
|
+
const [results] = await sequelize.query(`SELECT GET_LOCK('git_poller', 0) AS locked`);
|
|
70
|
+
return results?.[0]?.locked === 1;
|
|
71
|
+
}
|
|
72
|
+
// SQLite or unknown — no distributed locking, allow
|
|
73
|
+
return true;
|
|
74
|
+
} catch {
|
|
75
|
+
return true; // on error, fall back to allowing
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async function releasePollerLock(app: Application): Promise<void> {
|
|
80
|
+
try {
|
|
81
|
+
const sequelize = (app.db as any).sequelize;
|
|
82
|
+
if (!sequelize) return;
|
|
83
|
+
const dialect = sequelize.getDialect?.();
|
|
84
|
+
const lockKey = 777_042;
|
|
85
|
+
if (dialect === 'postgres') {
|
|
86
|
+
await sequelize.query(`SELECT pg_advisory_unlock(${lockKey})`);
|
|
87
|
+
} else if (dialect === 'mysql' || dialect === 'mariadb') {
|
|
88
|
+
await sequelize.query(`SELECT RELEASE_LOCK('git_poller')`);
|
|
89
|
+
}
|
|
90
|
+
} catch {
|
|
91
|
+
// best-effort release
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Run one poll cycle for all auto-enabled repos. Public so that the
|
|
97
|
+
* gitManager:pollNow action can force a tick on demand.
|
|
98
|
+
*/
|
|
99
|
+
export async function pollAllRepos(app: Application): Promise<{ scanned: number; triggered: number }> {
|
|
100
|
+
// M-4 fix: recover from stale isPolling flag
|
|
101
|
+
if (isPolling) {
|
|
102
|
+
if (pollStartedAt && Date.now() - pollStartedAt > STALE_POLL_TIMEOUT_MS) {
|
|
103
|
+
app.log?.warn?.('poller: stale isPolling flag detected — forcibly resetting');
|
|
104
|
+
isPolling = false;
|
|
105
|
+
pollStartedAt = null;
|
|
106
|
+
} else {
|
|
107
|
+
return { scanned: 0, triggered: 0 };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// C-1 fix: acquire distributed lock for HA
|
|
112
|
+
const lockAcquired = await tryAcquirePollerLock(app);
|
|
113
|
+
if (!lockAcquired) {
|
|
114
|
+
app.log?.debug?.('poller: another node holds the advisory lock — skipping');
|
|
115
|
+
return { scanned: 0, triggered: 0 };
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
isPolling = true;
|
|
119
|
+
pollStartedAt = Date.now();
|
|
120
|
+
lastTickAt = new Date();
|
|
121
|
+
lastError = null;
|
|
122
|
+
|
|
123
|
+
let scanned = 0;
|
|
124
|
+
let triggered = 0;
|
|
125
|
+
|
|
126
|
+
try {
|
|
127
|
+
const reposRepo = app.db.getRepository('gitRepositories');
|
|
128
|
+
const repos = await reposRepo.find({ filter: { autoReview: true } });
|
|
129
|
+
for (const repo of repos) {
|
|
130
|
+
try {
|
|
131
|
+
const result = await pollOneRepo(app, repo);
|
|
132
|
+
scanned += result.scanned;
|
|
133
|
+
triggered += result.triggered;
|
|
134
|
+
} catch (err: any) {
|
|
135
|
+
app.log?.error?.(`poller: repo ${repo.get('id')} failed: ${err?.message}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
} catch (err: any) {
|
|
139
|
+
lastError = err?.message || String(err);
|
|
140
|
+
app.log?.error?.('poller: cycle failed', err);
|
|
141
|
+
} finally {
|
|
142
|
+
isPolling = false;
|
|
143
|
+
pollStartedAt = null;
|
|
144
|
+
await releasePollerLock(app);
|
|
145
|
+
}
|
|
146
|
+
return { scanned, triggered };
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
async function tick(app: Application) {
|
|
150
|
+
await pollAllRepos(app);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Poll a single repo for MR changes. Returns counts.
|
|
155
|
+
*/
|
|
156
|
+
export async function pollOneRepo(
|
|
157
|
+
app: Application,
|
|
158
|
+
repo: any,
|
|
159
|
+
): Promise<{ scanned: number; triggered: number }> {
|
|
160
|
+
const flowsRepo = app.db.getRepository('gitReviewFlows');
|
|
161
|
+
const reviewsRepo = app.db.getRepository('gitCodeReviews');
|
|
162
|
+
const reposRepo = app.db.getRepository('gitRepositories');
|
|
163
|
+
|
|
164
|
+
// Find auto-trigger flows scoped to this repo or global
|
|
165
|
+
const flows = await flowsRepo.find({
|
|
166
|
+
filter: {
|
|
167
|
+
enabled: true,
|
|
168
|
+
triggerMode: { $in: ['onMergeRequestCreated', 'both'] },
|
|
169
|
+
$or: [{ repositoryId: repo.get('id') }, { repositoryId: null }],
|
|
170
|
+
},
|
|
171
|
+
sort: ['-repositoryId'],
|
|
172
|
+
});
|
|
173
|
+
if (!flows?.length) return { scanned: 0, triggered: 0 };
|
|
174
|
+
|
|
175
|
+
// Need PAT to query GitLab
|
|
176
|
+
const pat = repo.get('pat') as string;
|
|
177
|
+
if (!pat) return { scanned: 0, triggered: 0 };
|
|
178
|
+
|
|
179
|
+
const lastPolledAt = repo.get('lastPolledAt') as Date | null;
|
|
180
|
+
const mrs = await listMergeRequests(repo, lastPolledAt);
|
|
181
|
+
|
|
182
|
+
let triggered = 0;
|
|
183
|
+
for (const mr of mrs) {
|
|
184
|
+
// Pick first flow whose branchFilter matches this MR's source branch
|
|
185
|
+
const flow = flows.find((f: any) => branchMatches(f, mr.source_branch));
|
|
186
|
+
if (!flow) continue;
|
|
187
|
+
|
|
188
|
+
// Auto-poll only triggers for MRs that have NEVER been reviewed.
|
|
189
|
+
// For existing reviews we just refresh latestSha so the UI can flag
|
|
190
|
+
// "new commits available" — re-review must be done manually by the user.
|
|
191
|
+
const existing = await reviewsRepo.findOne({
|
|
192
|
+
filter: {
|
|
193
|
+
repositoryId: repo.get('id'),
|
|
194
|
+
targetType: 'mr',
|
|
195
|
+
mrIid: mr.iid,
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
if (existing) {
|
|
199
|
+
if (existing.get('latestSha') !== mr.sha) {
|
|
200
|
+
await reviewsRepo.update({
|
|
201
|
+
filterByTk: existing.get('id'),
|
|
202
|
+
values: { latestSha: mr.sha },
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
try {
|
|
209
|
+
await triggerReviewInternal(app, {
|
|
210
|
+
flowId: flow.get('id'),
|
|
211
|
+
repositoryId: repo.get('id'),
|
|
212
|
+
targetType: 'mr',
|
|
213
|
+
mrIid: mr.iid,
|
|
214
|
+
branch: mr.source_branch,
|
|
215
|
+
headSha: mr.sha,
|
|
216
|
+
triggeredBy: 'poll',
|
|
217
|
+
});
|
|
218
|
+
triggered++;
|
|
219
|
+
} catch (err: any) {
|
|
220
|
+
app.log?.error?.(`poller: triggerReviewInternal failed for MR !${mr.iid}: ${err?.message}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
await reposRepo.update({
|
|
225
|
+
filterByTk: repo.get('id'),
|
|
226
|
+
values: { lastPolledAt: new Date() },
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
return { scanned: mrs.length, triggered };
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
async function listMergeRequests(repo: any, updatedAfter: Date | null): Promise<any[]> {
|
|
233
|
+
const repoUrl = repo.get('repoUrl') as string;
|
|
234
|
+
const pat = repo.get('pat') as string;
|
|
235
|
+
const { apiBase, encodedProject } = parseGitLabProject(repoUrl);
|
|
236
|
+
|
|
237
|
+
const params = new URLSearchParams({
|
|
238
|
+
state: 'opened',
|
|
239
|
+
per_page: String(MR_PAGE_SIZE),
|
|
240
|
+
order_by: 'updated_at',
|
|
241
|
+
sort: 'desc',
|
|
242
|
+
});
|
|
243
|
+
if (updatedAfter) {
|
|
244
|
+
// GitLab `updated_after` is exclusive; subtract 1s so MRs updated within
|
|
245
|
+
// the same second as the last poll aren't dropped.
|
|
246
|
+
const safeBound = new Date(updatedAfter.getTime() - 1000);
|
|
247
|
+
params.set('updated_after', safeBound.toISOString());
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
const response = await fetch(`${apiBase}/projects/${encodedProject}/merge_requests?${params.toString()}`, {
|
|
251
|
+
headers: { 'PRIVATE-TOKEN': pat, Accept: 'application/json' },
|
|
252
|
+
});
|
|
253
|
+
if (!response.ok) {
|
|
254
|
+
const body = await response.text().catch(() => '');
|
|
255
|
+
throw new Error(`GitLab API error ${response.status}: ${body}`);
|
|
256
|
+
}
|
|
257
|
+
return response.json();
|
|
258
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility for parsing GitLab repository URLs.
|
|
3
|
+
* Extracted to avoid duplicating URL-parsing logic across
|
|
4
|
+
* gitlab-api.ts, poller.ts, and review.ts.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export interface GitLabProject {
|
|
8
|
+
/** Full API base URL, e.g. https://gitlab.com/api/v4 */
|
|
9
|
+
apiBase: string;
|
|
10
|
+
/** Raw project path, e.g. group/sub/project */
|
|
11
|
+
projectPath: string;
|
|
12
|
+
/** URL-encoded project path for use in API endpoints */
|
|
13
|
+
encodedProject: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Extract GitLab API base URL and project path from a repository URL.
|
|
18
|
+
* Supports: https://gitlab.com/group/project.git
|
|
19
|
+
* https://self-hosted.gitlab.com/group/sub/project.git
|
|
20
|
+
*
|
|
21
|
+
* @throws Error if the URL cannot be parsed or has no project path
|
|
22
|
+
*/
|
|
23
|
+
export function parseGitLabProject(repoUrl: string): GitLabProject {
|
|
24
|
+
const url = new URL(repoUrl);
|
|
25
|
+
// Remove .git suffix and leading slash
|
|
26
|
+
const projectPath = url.pathname.replace(/\.git$/, '').replace(/^\//, '');
|
|
27
|
+
if (!projectPath) {
|
|
28
|
+
throw new Error('Cannot extract project path from repository URL');
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
apiBase: `${url.protocol}//${url.host}/api/v4`,
|
|
32
|
+
projectPath,
|
|
33
|
+
encodedProject: encodeURIComponent(projectPath),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunkplugin_git_manager=self.webpackChunkplugin_git_manager||[]).push([["100"],{45:function(e,t,n){n.r(t),n.d(t,{GitManagerSettings:function(){return el}});var r=n(156),l=n.n(r),a=n(721),o=n(482),i=n(772);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function s(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){u(a,r,l,o,i,"next",e)}function i(e){u(a,r,l,o,i,"throw",e)}o(void 0)})}}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var m=(0,r.createContext)(null);function p(){return(0,r.useContext)(m)}var y=function(e){var t=e.children,n=(0,i.useAPIClient)(),a=d((0,r.useState)([]),2),o=a[0],c=a[1],u=d((0,r.useState)(null),2),p=u[0],y=u[1],h=d((0,r.useState)(!1),2),b=h[0],g=h[1],v=d((0,r.useState)([]),2),E=v[0],S=v[1],w=d((0,r.useState)(""),2),O=w[0],k=w[1],x=(0,r.useRef)(p);x.current=p;var C=(0,r.useCallback)(s(function(){var e,t,r,l;return f(this,function(a){switch(a.label){case 0:if(!(e=x.current)||"connected"!==e.status)return S([]),k(""),[2];a.label=1;case 1:return a.trys.push([1,3,,4]),[4,n.request({url:"gitManager:branches",params:{repositoryId:e.id}})];case 2:return(l=(null==(r=a.sent().data)||null==(t=r.data)?void 0:t.data)||(null==r?void 0:r.data))&&(S(l.all||[]),k(l.current||"")),[3,4];case 3:return a.sent(),S([]),k(""),[3,4];case 4:return[2]}})}),[n]),I=(0,r.useCallback)(s(function(){var e,t,r,l;return f(this,function(a){switch(a.label){case 0:g(!0),a.label=1;case 1:return a.trys.push([1,,3,4]),[4,n.request({url:"gitRepositories:list",params:{pageSize:100}})];case 2:return c(t=(null==(e=a.sent().data)?void 0:e.data)||[]),(r=x.current)&&(l=t.find(function(e){return e.id===r.id}))&&y(l),[3,4];case 3:return g(!1),[7];case 4:return[2]}})}),[n]);return l().createElement(m.Provider,{value:{repos:o,selectedRepo:p,loading:b,branches:E,currentBranch:O,setSelectedRepo:y,refreshRepos:I,refreshBranches:C}},t)};function h(){var e=(0,i.useApp)();return function(t,n){return e.i18n.t(t,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({ns:["plugin-git-manager","client"]},n))}}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){g(a,r,l,o,i,"next",e)}function i(e){g(a,r,l,o,i,"throw",e)}o(void 0)})}}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var w=function(){var e,t,n,c=h(),u=(0,i.useAPIClient)(),s=p(),d=s.repos,f=s.refreshRepos,m=s.selectedRepo,y=s.setSelectedRepo,b=E((0,r.useState)(!1),2),g=b[0],w=b[1],O=E((0,r.useState)(null),2),k=O[0],x=O[1],C=E(a.Form.useForm(),1)[0],I=E((0,r.useState)(null),2),P=I[0],j=I[1],A=(e=v(function(){var e,t;return S(this,function(n){switch(n.label){case 0:return[4,C.validateFields()];case 1:e=n.sent(),k&&(!e.pat||"••••••••"===e.pat)&&delete e.pat,n.label=2;case 2:if(n.trys.push([2,8,,9]),!k)return[3,4];return[4,u.request({url:"gitRepositories:update",method:"post",params:{filterByTk:k.id},data:e})];case 3:return n.sent(),a.message.success(c("Repository updated")),[3,6];case 4:return[4,u.request({url:"gitRepositories:create",method:"post",data:e})];case 5:n.sent(),a.message.success(c("Repository added")),n.label=6;case 6:return w(!1),x(null),C.resetFields(),[4,f()];case 7:return n.sent(),[3,9];case 8:return t=n.sent(),a.message.error((null==t?void 0:t.message)||c("Failed to save")),[3,9];case 9:return[2]}})}),function(){return e.apply(this,arguments)}),B=(t=v(function(e){return S(this,function(t){switch(t.label){case 0:return[4,u.request({url:"gitRepositories:destroy",method:"post",params:{filterByTk:e}})];case 1:return t.sent(),(null==m?void 0:m.id)===e&&y(null),a.message.success(c("Deleted")),[4,f()];case 2:return t.sent(),[2]}})}),function(e){return t.apply(this,arguments)}),T=(n=v(function(e){var t,n,r,l,o;return S(this,function(i){switch(i.label){case 0:j("clone-".concat(e.id)),i.label=1;case 1:return i.trys.push([1,4,5,6]),[4,u.request({url:"gitManager:clone",method:"post",params:{repositoryId:e.id}})];case 2:return i.sent(),a.message.success(c("Clone successful")),[4,f()];case 3:return i.sent(),[3,6];case 4:return t=i.sent(),a.message.error((null==t||null==(o=t.response)||null==(l=o.data)||null==(r=l.errors)||null==(n=r[0])?void 0:n.message)||c("Clone failed")),[3,6];case 5:return j(null),[7];case 6:return[2]}})}),function(e){return n.apply(this,arguments)}),R=[{title:c("Repository Name"),dataIndex:"name",key:"name",render:function(e,t){return l().createElement("a",{onClick:function(){return y(t)}},e)}},{title:c("Repository URL"),dataIndex:"repoUrl",key:"repoUrl",ellipsis:!0},{title:c("Local Path"),dataIndex:"localPath",key:"localPath",ellipsis:!0},{title:c("Default Branch"),dataIndex:"defaultBranch",key:"defaultBranch",width:120},{title:c("Status"),dataIndex:"status",key:"status",width:120,render:function(e){var t={connected:{color:"green",label:c("Connected")},error:{color:"red",label:c("Error")}}[e]||{color:"default",label:c("Disconnected")};return l().createElement(a.Tag,{color:t.color},t.label)}},{title:"",key:"actions",width:200,render:function(e,t){return l().createElement(a.Space,{size:"small"},"connected"!==t.status&&l().createElement(a.Button,{size:"small",icon:l().createElement(o.LinkOutlined,null),loading:P==="clone-".concat(t.id),onClick:function(){return T(t)}},c("Clone")),l().createElement(a.Button,{size:"small",onClick:function(){var e,n;x(t),C.setFieldsValue((e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}({},t),n=n={pat:""},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e)),w(!0)}},c("Edit")),l().createElement(a.Popconfirm,{title:c("Delete this repository?"),onConfirm:function(){return B(t.id)}},l().createElement(a.Button,{size:"small",danger:!0,icon:l().createElement(o.DeleteOutlined,null)})))}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:16}},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){x(null),C.resetFields(),w(!0)}},c("Add Repository"))),l().createElement(a.Table,{dataSource:d,columns:R,rowKey:"id",size:"small",pagination:!1,rowClassName:function(e){return(null==m?void 0:m.id)===e.id?"ant-table-row-selected":""}}),l().createElement(a.Modal,{title:k?c("Edit Repository"):c("Add Repository"),open:g,onOk:A,onCancel:function(){w(!1),x(null)},width:520},l().createElement(a.Form,{form:C,layout:"vertical",initialValues:{defaultBranch:"main"}},l().createElement(a.Form.Item,{name:"name",label:c("Repository Name"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"my-project"})),l().createElement(a.Form.Item,{name:"repoUrl",label:c("Repository URL"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"https://github.com/user/repo.git"})),l().createElement(a.Form.Item,{name:"localPath",label:c("Local Path"),rules:[{required:!0}]},l().createElement(a.Input,{placeholder:"my-project"})),l().createElement(a.Form.Item,{name:"pat",label:c("Personal Access Token"),rules:k?[]:[{required:!0}]},l().createElement(a.Input.Password,{placeholder:k?"Leave empty to keep current":"ghp_xxxx..."})),l().createElement(a.Form.Item,{name:"defaultBranch",label:c("Default Branch")},l().createElement(a.Input,{placeholder:"main"})))))};function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function x(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){k(a,r,l,o,i,"next",e)}function i(e){k(a,r,l,o,i,"throw",e)}o(void 0)})}}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function I(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var A=a.Typography.Text,B=a.Input.Search,T=a.theme.useToken,R={ts:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),tsx:l().createElement(o.CodeOutlined,{style:{color:"#3178c6"}}),js:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),jsx:l().createElement(o.CodeOutlined,{style:{color:"#f7df1e"}}),json:l().createElement(o.CodeOutlined,{style:{color:"#5b5b5b"}}),md:l().createElement(o.FileMarkdownOutlined,{style:{color:"#083fa1"}}),html:l().createElement(o.Html5Outlined,{style:{color:"#e34c26"}}),css:l().createElement(o.FileTextOutlined,{style:{color:"#563d7c"}}),py:l().createElement(o.CodeOutlined,{style:{color:"#3572A5"}}),png:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),jpg:l().createElement(o.FileImageOutlined,{style:{color:"#a85e32"}}),svg:l().createElement(o.FileImageOutlined,{style:{color:"#ffb13b"}})},z=function(){var e,t,n,c=h(),u=T().token,s=(0,i.useAPIClient)(),d=p(),f=d.selectedRepo,m=d.branches,y=d.currentBranch,b=d.refreshBranches,g=P((0,r.useState)([]),2),v=g[0],E=g[1],S=P((0,r.useState)(!1),2),w=S[0],O=S[1],k=P((0,r.useState)(null),2),z=k[0],D=k[1],F=P((0,r.useState)(null),2),M=F[0],L=F[1],q=P((0,r.useState)("HEAD"),2),W=q[0],U=q[1],H=P((0,r.useState)(""),2),_=H[0],N=H[1],G=P((0,r.useState)(""),2),K=G[0],$=G[1],Q=P((0,r.useState)(!1),2),J=Q[0],V=Q[1],X=(0,r.useCallback)(x(function(){var e,t,n,r,a=arguments;return j(this,function(i){switch(i.label){case 0:if(e=a.length>0&&void 0!==a[0]?a[0]:"",t=a.length>1&&void 0!==a[1]?a[1]:W,!f)return[2,[]];return[4,s.request({url:"gitManager:fileTree",params:{repositoryId:f.id,ref:t,treePath:e}})];case 1:return[2,(Array.isArray(r=(null==(n=i.sent().data)?void 0:n.data)||n||[])?r:Array.isArray(null==r?void 0:r.data)?r.data:[]).map(function(e){return{key:e.path,title:l().createElement(A,{style:{fontSize:13}},e.name,"blob"===e.type&&e.size>0&&l().createElement(A,{type:"secondary",style:{fontSize:11,marginLeft:8}},e.size>1024?"".concat((e.size/1024).toFixed(1),"KB"):"".concat(e.size,"B"))),icon:function(e,t){if("tree"!==t){var n;return R[(null==(n=e.split(".").pop())?void 0:n.toLowerCase())||""]||l().createElement(o.FileOutlined,null)}}(e.name,e.type),isLeaf:"blob"===e.type,filePath:e.path,fileType:e.type}})]}})}),[s,f,W]),Y=(0,r.useCallback)(x(function(){return j(this,function(e){switch(e.label){case 0:O(!0),e.label=1;case 1:return e.trys.push([1,,3,4]),[4,X("",W)];case 2:return E(e.sent()),[3,4];case 3:return O(!1),[7];case 4:return[2]}})}),[X,W]);(0,r.useEffect)(function(){(null==f?void 0:f.status)==="connected"?(b(),D(null),L(null)):E([])},[f]),(0,r.useEffect)(function(){y&&"HEAD"===W&&U(y)},[y]),(0,r.useEffect)(function(){(null==f?void 0:f.status)==="connected"&&Y()},[W,f]);var Z=(e=x(function(e){var t;return j(this,function(n){switch(n.label){case 0:if(e.children)return[2];return[4,X(e.filePath,W)];case 1:return t=n.sent(),E(function(n){return function e(t,n,r){return t.map(function(t){return t.key===n?I(C({},t),{children:r}):t.children?I(C({},t),{children:e(t.children,n,r)}):t})}(n,e.key,t)}),[2]}})}),function(t){return e.apply(this,arguments)}),ee=(t=x(function(e,t){var n,r,l,a;return j(this,function(e){switch(e.label){case 0:if(!(n=t.node).isLeaf)return[2];V(!0),L(n.filePath),e.label=1;case 1:return e.trys.push([1,3,4,5]),[4,s.request({url:"gitManager:fileContent",params:{repositoryId:f.id,ref:W,filePath:n.filePath}})];case 2:return D((null==(a=(null==(l=e.sent().data)||null==(r=l.data)?void 0:r.data)||(null==l?void 0:l.data))?void 0:a.content)||""),[3,5];case 3:return e.sent(),D("// Failed to load file content"),[3,5];case 4:return V(!1),[7];case 5:return[2]}})}),function(e,n){return t.apply(this,arguments)}),et=(0,r.useRef)();if((0,r.useEffect)(function(){return et.current=setTimeout(function(){return $(_)},300),function(){return clearTimeout(et.current)}},[_]),!f)return l().createElement(a.Empty,{description:c("No repository selected")});if("connected"!==f.status)return l().createElement(a.Empty,{description:c("Repository not cloned yet")});var en=K?function e(t,n){return t.map(function(t){if(t.children){var r=e(t.children,n);if(r.length>0)return I(C({},t),{children:r})}return(t.filePath||"").toLowerCase().includes(n)?t:null}).filter(Boolean)}(v,K.toLowerCase()):v;return l().createElement("div",{style:{display:"flex",height:"calc(100vh - 280px)",gap:0}},l().createElement("div",{style:{width:320,minWidth:280,borderRight:"1px solid ".concat(u.colorBorderSecondary),display:"flex",flexDirection:"column",background:u.colorBgContainer}},l().createElement("div",{style:{padding:"8px 12px",borderBottom:"1px solid ".concat(u.colorBorderSecondary)}},l().createElement(a.Space,{direction:"vertical",style:{width:"100%"},size:6},l().createElement(a.Select,{size:"small",style:{width:"100%"},value:W,onChange:function(e){U(e),D(null),L(null)},options:m.map(function(e){return{label:e,value:e}}),placeholder:"Branch"}),l().createElement(B,{size:"small",placeholder:"Filter files...",allowClear:!0,onChange:function(e){return N(e.target.value)}}))),l().createElement("div",{style:{flex:1,overflow:"auto",padding:"4px 0"}},w?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement(a.Tree,{showIcon:!0,treeData:en,loadData:Z,onSelect:ee,selectedKeys:M?[M]:[],style:{fontSize:13},blockNode:!0}))),l().createElement("div",{style:{flex:1,display:"flex",flexDirection:"column",background:u.colorBgLayout}},M?l().createElement(l().Fragment,null,l().createElement("div",{style:{padding:"6px 16px",borderBottom:"1px solid ".concat(u.colorBorderSecondary),background:u.colorBgContainer,display:"flex",alignItems:"center",gap:8}},l().createElement(a.Breadcrumb,{items:M.split("/").map(function(e,t,n){return{title:t===n.length-1?l().createElement(A,{strong:!0},e):e}})}),l().createElement(A,{type:"secondary",style:{marginLeft:"auto",fontSize:12}},{ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",md:"markdown",html:"html",css:"css",scss:"scss",py:"python",sh:"bash",yml:"yaml",yaml:"yaml",sql:"sql",xml:"xml",java:"java",go:"go",rs:"rust",rb:"ruby"}[(null==(n=M.split(".").pop())?void 0:n.toLowerCase())||""]||"text")),l().createElement("div",{style:{flex:1,overflow:"auto"}},J?l().createElement("div",{style:{textAlign:"center",padding:40}},l().createElement(a.Spin,null)):l().createElement("pre",{style:{margin:0,padding:16,fontSize:13,lineHeight:1.6,fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",background:u.colorBgContainer,minHeight:"100%"}},(z||"").split("\n").map(function(e,t){return l().createElement("div",{key:t,style:{display:"flex"}},l().createElement("span",{style:{display:"inline-block",width:50,textAlign:"right",paddingRight:16,color:u.colorTextQuaternary,userSelect:"none",flexShrink:0}},t+1),l().createElement("span",{style:{flex:1}},e||" "))})))):l().createElement("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%"}},l().createElement(A,{type:"secondary"},"Select a file to view its content"))))};function D(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){F(a,r,l,o,i,"next",e)}function i(e){F(a,r,l,o,i,"throw",e)}o(void 0)})}}function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return D(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return D(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var W=a.Typography.Text,U=a.theme.useToken,H={A:{color:"green",icon:l().createElement(o.PlusCircleOutlined,null),label:"Added"},M:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},D:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},R:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"}},_=function(){var e,t,n,c,u=h(),s=U().token,d=(0,i.useAPIClient)(),f=p(),m=f.selectedRepo,y=f.branches,b=f.currentBranch,g=L((0,r.useState)([]),2),v=g[0],E=g[1],S=L((0,r.useState)(!1),2),w=S[0],O=S[1],k=L((0,r.useState)(null),2),x=k[0],C=k[1],I=L((0,r.useState)(null),2),P=I[0],j=I[1],A=L((0,r.useState)(!1),2),B=A[0],T=A[1],R=L((0,r.useState)(null),2),z=R[0],D=R[1],F=L((0,r.useState)(null),2),_=F[0],K=F[1],$=(0,r.useCallback)(M(function(){var e,t,n;return q(this,function(r){switch(r.label){case 0:if(!m)return[2];O(!0),r.label=1;case 1:return r.trys.push([1,,3,4]),[4,d.request({url:"gitManager:log",params:{repositoryId:m.id,maxCount:100}})];case 2:return E((null==(n=(null==(t=r.sent().data)||null==(e=t.data)?void 0:e.data)||(null==t?void 0:t.data))?void 0:n.all)||[]),[3,4];case 3:return O(!1),[7];case 4:return[2]}})}),[d,m]);(0,r.useEffect)(function(){(null==m?void 0:m.status)==="connected"?$():E([])},[m]);var Q=(e=M(function(e){var t,n;return q(this,function(r){switch(r.label){case 0:C(e),T(!0),D(null),K(null),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,d.request({url:"gitManager:commitDetail",params:{repositoryId:m.id,commitHash:e.hash}})];case 2:return j((null==(n=r.sent().data)||null==(t=n.data)?void 0:t.data)||(null==n?void 0:n.data)),[3,5];case 3:return r.sent(),j(null),[3,5];case 4:return T(!1),[7];case 5:return[2]}})}),function(t){return e.apply(this,arguments)}),J=(t=M(function(e,t){var n,r;return q(this,function(l){switch(l.label){case 0:K(t),l.label=1;case 1:return l.trys.push([1,3,,4]),[4,d.request({url:"gitManager:diff",params:{repositoryId:m.id,commitHash:e,file:t}})];case 2:return D((null==(r=l.sent().data)||null==(n=r.data)?void 0:n.data)||(null==r?void 0:r.data)||""),[3,4];case 3:return l.sent(),D("// Failed to load diff"),[3,4];case 4:return[2]}})}),function(e,n){return t.apply(this,arguments)});if(!m)return l().createElement(a.Empty,{description:u("No repository selected")});if("connected"!==m.status)return l().createElement(a.Empty,{description:u("Repository not cloned yet")});var V=[{title:"",key:"graph",width:40,render:function(e,t,n){return l().createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",height:"100%"}},l().createElement("div",{style:{width:10,height:10,borderRadius:"50%",background:0===n?s.colorPrimary:s.colorBorder,border:"2px solid ".concat(0===n?s.colorPrimary:s.colorBorder),zIndex:1}}))}},{title:u("Message"),dataIndex:"message",key:"message",render:function(e,t){return l().createElement("div",null,l().createElement(W,{strong:!0,style:{fontSize:13}},e),l().createElement("div",{style:{marginTop:2}},l().createElement(W,{type:"secondary",style:{fontSize:12}},l().createElement(o.UserOutlined,{style:{marginRight:4}}),t.author_name,l().createElement("span",{style:{margin:"0 8px"}},"\xb7"),l().createElement(o.ClockCircleOutlined,{style:{marginRight:4}}),G(t.date))))}},{title:"Hash",dataIndex:"hash",key:"hash",width:100,render:function(e){return l().createElement(W,{code:!0,copyable:!0,style:{fontSize:12}},null==e?void 0:e.substring(0,7))}},{title:"",key:"action",width:80,render:function(e,t){return l().createElement(a.Button,{size:"small",icon:l().createElement(o.DiffOutlined,null),onClick:function(){return Q(t)}},"Detail")}}];return l().createElement("div",null,l().createElement("div",{style:{marginBottom:12,display:"flex",alignItems:"center",gap:12}},l().createElement(o.BranchesOutlined,null),l().createElement(a.Select,{size:"small",style:{width:200},value:b,options:y.map(function(e){return{label:e,value:e}}),disabled:!0}),l().createElement(W,{type:"secondary"},v.length," commits")),w?l().createElement(a.Spin,null):l().createElement(a.Table,{dataSource:v,columns:V,rowKey:"hash",size:"small",pagination:{pageSize:30,showSizeChanger:!0},onRow:function(e){return{style:{cursor:"pointer"},onClick:function(){return Q(e)}}}}),l().createElement(a.Drawer,{title:x?l().createElement("div",null,l().createElement(W,{strong:!0},x.message),l().createElement("div",null,l().createElement(W,{type:"secondary",style:{fontSize:12}},null==(n=x.hash)?void 0:n.substring(0,7)," \xb7 ",x.author_name," \xb7 ",G(x.date)))):"Commit Detail",open:!!x,onClose:function(){C(null),j(null),D(null),K(null)},width:800},B?l().createElement(a.Spin,null):P?l().createElement("div",null,l().createElement(W,{strong:!0},"Changed Files (",(null==(c=P.files)?void 0:c.length)||0,")"),l().createElement(a.List,{size:"small",style:{marginTop:8},dataSource:P.files||[],renderItem:function(e){var t=H[e.status]||H.M,n=_===e.file;return l().createElement(a.List.Item,{style:{cursor:"pointer",background:n?s.colorPrimaryBg:void 0,padding:"6px 12px",borderRadius:4},onClick:function(){return J(x.hash,e.file)}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:70,textAlign:"center"}},t.icon," ",t.label),l().createElement(W,{style:{fontSize:13}},e.file)))}}),null!==z&&l().createElement("div",{style:{marginTop:16}},l().createElement(W,{strong:!0,style:{display:"block",marginBottom:8}},l().createElement(o.FileTextOutlined,null)," ",_),l().createElement(N,{content:z}))):null))},N=(0,r.memo)(function(e){var t=e.content,n=U().token,r=t.split("\n");return l().createElement("div",{style:{fontFamily:"'JetBrains Mono', 'Fira Code', Consolas, monospace",fontSize:12,lineHeight:1.5,border:"1px solid ".concat(n.colorBorderSecondary),borderRadius:6,overflow:"auto",maxHeight:500}},r.map(function(e,t){var r="transparent",a=n.colorText;return e.startsWith("+")&&!e.startsWith("+++")?(r="rgba(46, 160, 67, 0.12)",a="#2ea043"):e.startsWith("-")&&!e.startsWith("---")?(r="rgba(248, 81, 73, 0.12)",a="#f85149"):e.startsWith("@@")?(r="rgba(56, 139, 253, 0.08)",a="#388bfd"):(e.startsWith("diff")||e.startsWith("index"))&&(a=n.colorTextSecondary),l().createElement("div",{key:t,style:{padding:"0 12px",background:r,color:a,whiteSpace:"pre",minHeight:20}},l().createElement("span",{style:{display:"inline-block",width:40,color:n.colorTextQuaternary,userSelect:"none",textAlign:"right",marginRight:12}},t+1),e)}))});function G(e){if(!e)return"";var t=new Date(e),n=new Date().getTime()-t.getTime(),r=n/36e5;return r<1?"".concat(Math.round(n/6e4),"m ago"):r<24?"".concat(Math.round(r),"h ago"):r<168?"".concat(Math.round(r/24),"d ago"):t.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function $(e,t,n,r,l,a,o){try{var i=e[a](o),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,l)}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||V(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e){return function(e){if(Array.isArray(e))return K(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||V(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function V(e,t){if(e){if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return K(e,t)}}var X=a.Typography.Text,Y=a.theme.useToken,Z={not_added:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"New"},modified:{color:"blue",icon:l().createElement(o.EditOutlined,null),label:"Modified"},deleted:{color:"red",icon:l().createElement(o.DeleteOutlined,null),label:"Deleted"},renamed:{color:"orange",icon:l().createElement(o.EditOutlined,null),label:"Renamed"},conflicted:{color:"red",icon:l().createElement(o.WarningOutlined,null),label:"Conflict"},created:{color:"green",icon:l().createElement(o.FileAddOutlined,null),label:"Created"}},ee=function(){var e,t,n,c,u,s,d,f,m=h(),y=Y().token,b=(0,i.useAPIClient)(),g=p(),v=g.selectedRepo,E=g.refreshRepos,S=Q((0,r.useState)(null),2),w=S[0],O=S[1],k=Q((0,r.useState)(null),2),x=k[0],C=k[1],I=Q((0,r.useState)(null),2),P=I[0],j=I[1],A=(0,r.useCallback)((e=function(e){var t,n,r,l,o,i,c,u;return function(e,t){var n,r,l,a,o={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){var c=[a,i];if(n)throw TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(l=2&c[0]?r.return:c[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,c[1])).done)return l;switch(r=0,l&&(c=[2&c[0],l.value]),c[0]){case 0:case 1:l=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(l=(l=o.trys).length>0&&l[l.length-1])&&(6===c[0]||2===c[0])){o=0;continue}if(3===c[0]&&(!l||c[1]>l[0]&&c[1]<l[3])){o.label=c[1];break}if(6===c[0]&&o.label<l[1]){o.label=l[1],l=c;break}if(l&&o.label<l[2]){o.label=l[2],o.ops.push(c);break}l[2]&&o.ops.pop(),o.trys.pop();continue}c=t.call(e,o)}catch(e){c=[6,e],r=0}finally{n=l=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(s){switch(s.label){case 0:if(!v)return[2];O(e),j(null),s.label=1;case 1:return s.trys.push([1,4,5,6]),[4,b.request({url:"gitManager:".concat(e),method:"post",params:{repositoryId:v.id}})];case 2:return t=s.sent().data,j({action:e,success:!0,message:m("{{action}} completed successfully",{action:e})}),a.message.success(m("{{action}} completed",{action:e})),"status"===e&&C((null==t||null==(n=t.data)?void 0:n.data)||(null==t?void 0:t.data)),[4,E()];case 3:return s.sent(),[3,6];case 4:return u=(null==(r=s.sent())||null==(c=r.response)||null==(i=c.data)||null==(o=i.errors)||null==(l=o[0])?void 0:l.message)||m("{{action}} failed",{action:e}),j({action:e,success:!1,message:u}),a.message.error(u),[3,6];case 5:return O(null),[7];case 6:return[2]}})},t=function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){$(a,r,l,o,i,"next",e)}function i(e){$(a,r,l,o,i,"throw",e)}o(void 0)})},function(e){return t.apply(this,arguments)}),[b,v,E]);if(!v)return l().createElement(a.Empty,{description:m("No repository selected")});if("connected"!==v.status)return l().createElement(a.Empty,{description:m("Repository not cloned yet")});var B=x?J((null==(n=x.not_added)?void 0:n.map(function(e){return{file:e,status:"not_added"}}))||[]).concat(J((null==(c=x.modified)?void 0:c.map(function(e){return{file:e,status:"modified"}}))||[]),J((null==(u=x.deleted)?void 0:u.map(function(e){return{file:e,status:"deleted"}}))||[]),J((null==(s=x.renamed)?void 0:s.map(function(e){return{file:"string"==typeof e?e:e.to,status:"renamed"}}))||[]),J((null==(d=x.conflicted)?void 0:d.map(function(e){return{file:e,status:"conflicted"}}))||[]),J((null==(f=x.created)?void 0:f.map(function(e){return{file:e,status:"created"}}))||[])):[];return l().createElement("div",null,l().createElement(a.Space,{size:"middle",wrap:!0,style:{marginBottom:24}},l().createElement(a.Button,{size:"large",icon:l().createElement(o.SyncOutlined,null),loading:"fetch"===w,onClick:function(){return A("fetch")}},m("Fetch")),l().createElement(a.Button,{size:"large",type:"primary",icon:l().createElement(o.CloudDownloadOutlined,null),loading:"pull"===w,onClick:function(){return A("pull")}},m("Pull")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.CloudUploadOutlined,null),loading:"push"===w,onClick:function(){return A("push")}},m("Push")),l().createElement(a.Button,{size:"large",icon:l().createElement(o.BranchesOutlined,null),loading:"status"===w,onClick:function(){return A("status")}},m("Status"))),P&&l().createElement(a.Card,{size:"small",style:{marginBottom:16,borderColor:P.success?y.colorSuccessBorder:y.colorErrorBorder}},l().createElement(a.Space,null,P.success?l().createElement(o.CheckCircleOutlined,{style:{color:y.colorSuccess}}):l().createElement(o.WarningOutlined,{style:{color:y.colorError}}),l().createElement(X,{strong:!0},P.action),l().createElement(X,null,P.message))),x&&l().createElement(a.Card,{title:m("Working Directory Status"),size:"small"},l().createElement(a.Descriptions,{column:3,size:"small",style:{marginBottom:16}},l().createElement(a.Descriptions.Item,{label:"Branch"},l().createElement(a.Tag,{icon:l().createElement(o.BranchesOutlined,null),color:"blue"},x.current)),l().createElement(a.Descriptions.Item,{label:"Tracking"},l().createElement(X,null,x.tracking||"N/A")),l().createElement(a.Descriptions.Item,{label:"Changes"},l().createElement(a.Space,null,x.ahead>0&&l().createElement(a.Badge,{count:"".concat(x.ahead," ahead"),style:{backgroundColor:y.colorPrimary}}),x.behind>0&&l().createElement(a.Badge,{count:"".concat(x.behind," behind"),style:{backgroundColor:y.colorWarning}}),0===x.ahead&&0===x.behind&&l().createElement(a.Tag,{color:"green",icon:l().createElement(o.CheckCircleOutlined,null)},"Up to date")))),B.length>0?l().createElement(l().Fragment,null,l().createElement(X,{strong:!0,style:{display:"block",marginBottom:8}},B.length," changed file(s)"),l().createElement(a.List,{size:"small",dataSource:B,renderItem:function(e){var t=Z[e.status]||{color:"default",icon:l().createElement(o.QuestionCircleOutlined,null),label:e.status};return l().createElement(a.List.Item,{style:{padding:"4px 0"}},l().createElement(a.Space,null,l().createElement(a.Tag,{color:t.color,style:{minWidth:80,textAlign:"center"}},t.icon," ",t.label),l().createElement(X,{code:!0,style:{fontSize:13}},e.file)))}})):l().createElement(X,{type:"secondary"},"Working directory clean")))},et=a.Typography.Text,en=a.theme.useToken,er=function(){var e=h(),t=en().token,n=p(),i=n.repos,c=n.selectedRepo,u=n.setSelectedRepo,s=n.refreshRepos;return(0,r.useEffect)(function(){s()},[]),l().createElement("div",{style:{height:"100%"}},l().createElement("div",{style:{padding:"12px 0",marginBottom:16,display:"flex",alignItems:"center",gap:12,borderBottom:"1px solid ".concat(t.colorBorderSecondary)}},l().createElement(o.DatabaseOutlined,{style:{fontSize:16}}),l().createElement(et,{strong:!0},"Repository:"),l().createElement(a.Select,{style:{minWidth:250},placeholder:e("Select a repository"),value:null==c?void 0:c.id,onChange:function(e){u(i.find(function(t){return t.id===e})||null)},options:i.map(function(t){return{label:l().createElement(a.Space,null,t.name,l().createElement(a.Tag,{color:"connected"===t.status?"green":"default",style:{fontSize:11}},"connected"===t.status?e("Connected"):e("Disconnected"))),value:t.id}}),allowClear:!0,onClear:function(){return u(null)}}),c&&l().createElement(et,{type:"secondary",style:{fontSize:12}},c.repoUrl)),l().createElement(a.Tabs,{type:"card",defaultActiveKey:"repos",destroyInactiveTabPane:!0,items:[{key:"repos",label:l().createElement("span",null,l().createElement(o.DatabaseOutlined,null)," ",e("Repositories")),children:l().createElement(w,null)},{key:"explorer",label:l().createElement("span",null,l().createElement(o.FolderOutlined,null)," ",e("File Explorer")),children:l().createElement(z,null)},{key:"history",label:l().createElement("span",null,l().createElement(o.HistoryOutlined,null)," ",e("History")),children:l().createElement(_,null)},{key:"operations",label:l().createElement("span",null,l().createElement(o.ToolOutlined,null)," ",e("Operations")),children:l().createElement(ee,null)}]}))},el=function(){return l().createElement(y,null,l().createElement(er,null))}}}]);
|