zudoku 0.0.0-fed343e → 0.0.0-ff27e7ea
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 +141 -0
- package/cli.js +12 -2
- package/client.d.ts +7 -0
- package/dist/app/ZuploBuildConfig.d.ts +45 -0
- package/dist/app/ZuploBuildConfig.js +29 -0
- package/dist/app/ZuploBuildConfig.js.map +1 -0
- package/dist/app/demo.js +23 -10
- package/dist/app/demo.js.map +1 -1
- package/dist/app/entry.client.d.ts +6 -2
- package/dist/app/entry.client.js +56 -7
- package/dist/app/entry.client.js.map +1 -1
- package/dist/app/entry.server.d.ts +9 -8
- package/dist/app/entry.server.js +36 -18
- package/dist/app/entry.server.js.map +1 -1
- package/dist/app/env.d.ts +33 -0
- package/dist/app/env.js +37 -0
- package/dist/app/env.js.map +1 -0
- package/dist/app/main.d.ts +94 -2
- package/dist/app/main.js +64 -70
- package/dist/app/main.js.map +1 -1
- package/dist/app/sentry.d.ts +3 -0
- package/dist/app/sentry.js +19 -0
- package/dist/app/sentry.js.map +1 -0
- package/dist/app/standalone.js +12 -11
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/build/handler.d.ts +1 -3
- package/dist/cli/build/handler.js +18 -2
- package/dist/cli/build/handler.js.map +1 -1
- package/dist/cli/cli.d.ts +9 -0
- package/dist/cli/cli.js +23 -15
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/cmds/build.d.ts +11 -3
- package/dist/cli/cmds/build.js +21 -13
- package/dist/cli/cmds/build.js.map +1 -1
- package/dist/cli/cmds/dev.d.ts +1 -1
- package/dist/cli/cmds/dev.js +5 -0
- package/dist/cli/cmds/dev.js.map +1 -1
- package/dist/cli/cmds/preview.d.ts +16 -0
- package/dist/cli/cmds/preview.js +25 -0
- package/dist/cli/cmds/preview.js.map +1 -0
- package/dist/cli/common/analytics/lib.js +1 -1
- package/dist/cli/common/analytics/lib.js.map +1 -1
- package/dist/cli/common/logger.js +8 -0
- package/dist/cli/common/logger.js.map +1 -1
- package/dist/cli/common/machine-id/lib.js +3 -1
- package/dist/cli/common/machine-id/lib.js.map +1 -1
- package/dist/cli/common/outdated.js +4 -2
- package/dist/cli/common/outdated.js.map +1 -1
- package/dist/cli/common/output.js +2 -3
- package/dist/cli/common/output.js.map +1 -1
- package/dist/cli/common/utils/box.js +2 -2
- package/dist/cli/common/utils/box.js.map +1 -1
- package/dist/cli/common/utils/ports.d.ts +1 -1
- package/dist/cli/common/utils/ports.js +16 -15
- package/dist/cli/common/utils/ports.js.map +1 -1
- package/dist/cli/common/validators/lib.js +1 -1
- package/dist/cli/common/validators/lib.js.map +1 -1
- package/dist/cli/common/version-check.d.ts +2 -0
- package/dist/cli/common/version-check.js +58 -0
- package/dist/cli/common/version-check.js.map +1 -0
- package/dist/cli/dev/handler.d.ts +1 -0
- package/dist/cli/dev/handler.js +15 -16
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/cli/preview/handler.d.ts +3 -0
- package/dist/cli/preview/handler.js +35 -0
- package/dist/cli/preview/handler.js.map +1 -0
- package/dist/codegen.d.ts +3 -0
- package/dist/codegen.js +45 -0
- package/dist/codegen.js.map +1 -0
- package/dist/config/config.d.ts +21 -35
- package/dist/config/file-exists.d.ts +1 -0
- package/dist/config/file-exists.js +5 -0
- package/dist/config/file-exists.js.map +1 -0
- package/dist/config/loader.d.ts +21 -0
- package/dist/config/loader.js +141 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/validators/BuildSchema.d.ts +44 -0
- package/dist/config/validators/BuildSchema.js +42 -0
- package/dist/config/validators/BuildSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.d.ts +7646 -0
- package/dist/config/validators/InputNavigationSchema.js +78 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js +146 -0
- package/dist/config/validators/InputNavigationSchema.test-d.js.map +1 -0
- package/dist/config/validators/NavigationSchema.d.ts +44 -0
- package/dist/config/validators/NavigationSchema.js +98 -0
- package/dist/config/validators/NavigationSchema.js.map +1 -0
- package/dist/config/validators/ProtectedRoutesSchema.d.ts +13 -0
- package/dist/config/validators/ProtectedRoutesSchema.js +10 -0
- package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
- package/dist/config/validators/auth.d.ts +2 -2
- package/dist/config/validators/auth.js +1 -1
- package/dist/config/validators/auth.js.map +1 -1
- package/dist/config/validators/icon-types.d.ts +2 -0
- package/dist/config/validators/icon-types.js +1873 -0
- package/dist/config/validators/icon-types.js.map +1 -0
- package/dist/config/validators/validate.d.ts +864 -1311
- package/dist/config/validators/validate.js +418 -131
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +183 -0
- package/dist/config/validators/validate.test.js.map +1 -0
- package/dist/flat-config.d.ts +379 -0
- package/dist/index.d.ts +11 -2
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/MissingIcon.d.ts +2 -0
- package/dist/lib/MissingIcon.js +7 -0
- package/dist/lib/MissingIcon.js.map +1 -0
- package/dist/lib/assets/language-icons/c.d.ts +3 -0
- package/dist/lib/assets/language-icons/c.js +4 -0
- package/dist/lib/assets/language-icons/c.js.map +1 -0
- package/dist/lib/assets/language-icons/commonlisp.d.ts +3 -0
- package/dist/lib/assets/language-icons/commonlisp.js +4 -0
- package/dist/lib/assets/language-icons/commonlisp.js.map +1 -0
- package/dist/lib/assets/language-icons/cpp.d.ts +3 -0
- package/dist/lib/assets/language-icons/cpp.js +4 -0
- package/dist/lib/assets/language-icons/cpp.js.map +1 -0
- package/dist/lib/assets/language-icons/csharp.d.ts +3 -0
- package/dist/lib/assets/language-icons/csharp.js +4 -0
- package/dist/lib/assets/language-icons/csharp.js.map +1 -0
- package/dist/lib/assets/language-icons/css.d.ts +3 -0
- package/dist/lib/assets/language-icons/css.js +4 -0
- package/dist/lib/assets/language-icons/css.js.map +1 -0
- package/dist/lib/assets/language-icons/dart.d.ts +3 -0
- package/dist/lib/assets/language-icons/dart.js +4 -0
- package/dist/lib/assets/language-icons/dart.js.map +1 -0
- package/dist/lib/assets/language-icons/elixir.d.ts +3 -0
- package/dist/lib/assets/language-icons/elixir.js +4 -0
- package/dist/lib/assets/language-icons/elixir.js.map +1 -0
- package/dist/lib/assets/language-icons/go.d.ts +3 -0
- package/dist/lib/assets/language-icons/go.js +4 -0
- package/dist/lib/assets/language-icons/go.js.map +1 -0
- package/dist/lib/assets/language-icons/graphql.d.ts +3 -0
- package/dist/lib/assets/language-icons/graphql.js +4 -0
- package/dist/lib/assets/language-icons/graphql.js.map +1 -0
- package/dist/lib/assets/language-icons/html.d.ts +3 -0
- package/dist/lib/assets/language-icons/html.js +4 -0
- package/dist/lib/assets/language-icons/html.js.map +1 -0
- package/dist/lib/assets/language-icons/java.d.ts +3 -0
- package/dist/lib/assets/language-icons/java.js +4 -0
- package/dist/lib/assets/language-icons/java.js.map +1 -0
- package/dist/lib/assets/language-icons/javascript.d.ts +3 -0
- package/dist/lib/assets/language-icons/javascript.js +4 -0
- package/dist/lib/assets/language-icons/javascript.js.map +1 -0
- package/dist/lib/assets/language-icons/json.d.ts +3 -0
- package/dist/lib/assets/language-icons/json.js +4 -0
- package/dist/lib/assets/language-icons/json.js.map +1 -0
- package/dist/lib/assets/language-icons/kotlin.d.ts +3 -0
- package/dist/lib/assets/language-icons/kotlin.js +4 -0
- package/dist/lib/assets/language-icons/kotlin.js.map +1 -0
- package/dist/lib/assets/language-icons/markdown.d.ts +3 -0
- package/dist/lib/assets/language-icons/markdown.js +4 -0
- package/dist/lib/assets/language-icons/markdown.js.map +1 -0
- package/dist/lib/assets/language-icons/mdx.d.ts +3 -0
- package/dist/lib/assets/language-icons/mdx.js +4 -0
- package/dist/lib/assets/language-icons/mdx.js.map +1 -0
- package/dist/lib/assets/language-icons/objectivec.d.ts +3 -0
- package/dist/lib/assets/language-icons/objectivec.js +4 -0
- package/dist/lib/assets/language-icons/objectivec.js.map +1 -0
- package/dist/lib/assets/language-icons/ocaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/ocaml.js +4 -0
- package/dist/lib/assets/language-icons/ocaml.js.map +1 -0
- package/dist/lib/assets/language-icons/php.d.ts +3 -0
- package/dist/lib/assets/language-icons/php.js +4 -0
- package/dist/lib/assets/language-icons/php.js.map +1 -0
- package/dist/lib/assets/language-icons/powershell.d.ts +3 -0
- package/dist/lib/assets/language-icons/powershell.js +4 -0
- package/dist/lib/assets/language-icons/powershell.js.map +1 -0
- package/dist/lib/assets/language-icons/python.d.ts +3 -0
- package/dist/lib/assets/language-icons/python.js +4 -0
- package/dist/lib/assets/language-icons/python.js.map +1 -0
- package/dist/lib/assets/language-icons/react.d.ts +3 -0
- package/dist/lib/assets/language-icons/react.js +4 -0
- package/dist/lib/assets/language-icons/react.js.map +1 -0
- package/dist/lib/assets/language-icons/ruby.d.ts +3 -0
- package/dist/lib/assets/language-icons/ruby.js +4 -0
- package/dist/lib/assets/language-icons/ruby.js.map +1 -0
- package/dist/lib/assets/language-icons/rust.d.ts +3 -0
- package/dist/lib/assets/language-icons/rust.js +4 -0
- package/dist/lib/assets/language-icons/rust.js.map +1 -0
- package/dist/lib/assets/language-icons/scala.d.ts +3 -0
- package/dist/lib/assets/language-icons/scala.js +4 -0
- package/dist/lib/assets/language-icons/scala.js.map +1 -0
- package/dist/lib/assets/language-icons/shell.d.ts +3 -0
- package/dist/lib/assets/language-icons/shell.js +4 -0
- package/dist/lib/assets/language-icons/shell.js.map +1 -0
- package/dist/lib/assets/language-icons/swift.d.ts +3 -0
- package/dist/lib/assets/language-icons/swift.js +4 -0
- package/dist/lib/assets/language-icons/swift.js.map +1 -0
- package/dist/lib/assets/language-icons/toml.d.ts +3 -0
- package/dist/lib/assets/language-icons/toml.js +4 -0
- package/dist/lib/assets/language-icons/toml.js.map +1 -0
- package/dist/lib/assets/language-icons/typescript.d.ts +3 -0
- package/dist/lib/assets/language-icons/typescript.js +4 -0
- package/dist/lib/assets/language-icons/typescript.js.map +1 -0
- package/dist/lib/assets/language-icons/xml.d.ts +3 -0
- package/dist/lib/assets/language-icons/xml.js +4 -0
- package/dist/lib/assets/language-icons/xml.js.map +1 -0
- package/dist/lib/assets/language-icons/yaml.d.ts +3 -0
- package/dist/lib/assets/language-icons/yaml.js +4 -0
- package/dist/lib/assets/language-icons/yaml.js.map +1 -0
- package/dist/lib/assets/language-icons/zig.d.ts +3 -0
- package/dist/lib/assets/language-icons/zig.js +4 -0
- package/dist/lib/assets/language-icons/zig.js.map +1 -0
- package/dist/lib/auth/issuer.d.ts +2 -0
- package/dist/lib/auth/issuer.js +40 -0
- package/dist/lib/auth/issuer.js.map +1 -0
- package/dist/lib/auth/issuer.test.js +95 -0
- package/dist/lib/auth/issuer.test.js.map +1 -0
- package/dist/lib/authentication/AuthenticationPlugin.d.ts +6 -4
- package/dist/lib/authentication/AuthenticationPlugin.js +4 -1
- package/dist/lib/authentication/AuthenticationPlugin.js.map +1 -1
- package/dist/lib/authentication/authentication.d.ts +22 -15
- package/dist/lib/authentication/components/CallbackHandler.js +27 -31
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
- package/dist/lib/authentication/components/SignIn.d.ts +1 -1
- package/dist/lib/authentication/components/SignIn.js +12 -7
- package/dist/lib/authentication/components/SignIn.js.map +1 -1
- package/dist/lib/authentication/components/SignOut.js +6 -6
- package/dist/lib/authentication/components/SignOut.js.map +1 -1
- package/dist/lib/authentication/components/SignUp.d.ts +1 -1
- package/dist/lib/authentication/components/SignUp.js +8 -5
- package/dist/lib/authentication/components/SignUp.js.map +1 -1
- package/dist/lib/authentication/errors.d.ts +6 -12
- package/dist/lib/authentication/errors.js +2 -1
- package/dist/lib/authentication/errors.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +15 -5
- package/dist/lib/authentication/hook.js +19 -7
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/providers/auth0.d.ts +2 -2
- package/dist/lib/authentication/providers/auth0.js +25 -14
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/azureb2c.d.ts +28 -0
- package/dist/lib/authentication/providers/azureb2c.js +147 -0
- package/dist/lib/authentication/providers/azureb2c.js.map +1 -0
- package/dist/lib/authentication/providers/clerk.d.ts +2 -2
- package/dist/lib/authentication/providers/clerk.js +111 -49
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/firebase.d.ts +4 -0
- package/dist/lib/authentication/providers/firebase.js +215 -0
- package/dist/lib/authentication/providers/firebase.js.map +1 -0
- package/dist/lib/authentication/providers/openid.d.ts +29 -24
- package/dist/lib/authentication/providers/openid.js +115 -74
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.d.ts +8 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js +39 -0
- package/dist/lib/authentication/providers/supabase/SupabaseAuthUI.js.map +1 -0
- package/dist/lib/authentication/providers/supabase.d.ts +4 -0
- package/dist/lib/authentication/providers/supabase.js +108 -0
- package/dist/lib/authentication/providers/supabase.js.map +1 -0
- package/dist/lib/authentication/state.d.ts +22 -3
- package/dist/lib/authentication/state.js +35 -2
- package/dist/lib/authentication/state.js.map +1 -1
- package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +24 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js +124 -0
- package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Apple.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Apple.js +4 -0
- package/dist/lib/authentication/ui/icons/Apple.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Facebook.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Facebook.js +4 -0
- package/dist/lib/authentication/ui/icons/Facebook.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Github.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Github.js +4 -0
- package/dist/lib/authentication/ui/icons/Github.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Google.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Google.js +4 -0
- package/dist/lib/authentication/ui/icons/Google.js.map +1 -0
- package/dist/lib/authentication/ui/icons/Microsoft.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js +4 -0
- package/dist/lib/authentication/ui/icons/Microsoft.js.map +1 -0
- package/dist/lib/authentication/ui/icons/X.d.ts +3 -0
- package/dist/lib/authentication/ui/icons/X.js +4 -0
- package/dist/lib/authentication/ui/icons/X.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/shared.d.ts +48 -0
- package/dist/lib/authentication/use-broadcast/shared.js +243 -0
- package/dist/lib/authentication/use-broadcast/shared.js.map +1 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.d.ts +24 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js +106 -0
- package/dist/lib/authentication/use-broadcast/useBroadcast.js.map +1 -0
- package/dist/lib/components/AnchorLink.d.ts +2 -2
- package/dist/lib/components/AnchorLink.js +9 -5
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +15 -0
- package/dist/lib/components/Autocomplete.js +51 -0
- package/dist/lib/components/Autocomplete.js.map +1 -0
- package/dist/lib/components/Banner.js +8 -2
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Bootstrap.d.ts +5 -3
- package/dist/lib/components/Bootstrap.js +13 -6
- package/dist/lib/components/Bootstrap.js.map +1 -1
- package/dist/lib/components/BuildCheck.d.ts +5 -0
- package/dist/lib/components/BuildCheck.js +45 -0
- package/dist/lib/components/BuildCheck.js.map +1 -0
- package/dist/lib/components/CategoryHeading.js +1 -1
- package/dist/lib/components/CategoryHeading.js.map +1 -1
- package/dist/lib/components/ClientOnly.d.ts +4 -2
- package/dist/lib/components/ClientOnly.js +1 -1
- package/dist/lib/components/ClientOnly.js.map +1 -1
- package/dist/lib/components/DeveloperHint.js +2 -1
- package/dist/lib/components/DeveloperHint.js.map +1 -1
- package/dist/lib/components/ErrorPage.js +2 -3
- package/dist/lib/components/ErrorPage.js.map +1 -1
- package/dist/lib/components/Footer.d.ts +1 -0
- package/dist/lib/components/Footer.js +32 -0
- package/dist/lib/components/Footer.js.map +1 -0
- package/dist/lib/components/Framed.d.ts +7 -0
- package/dist/lib/components/Framed.js +26 -0
- package/dist/lib/components/Framed.js.map +1 -0
- package/dist/lib/components/Header.js +32 -14
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +10 -6
- package/dist/lib/components/Heading.js +4 -3
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/InlineCode.d.ts +3 -1
- package/dist/lib/components/InlineCode.js +2 -1
- package/dist/lib/components/InlineCode.js.map +1 -1
- package/dist/lib/components/LanguageIcon.d.ts +3 -0
- package/dist/lib/components/LanguageIcon.js +163 -0
- package/dist/lib/components/LanguageIcon.js.map +1 -0
- package/dist/lib/components/Layout.js +11 -24
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Main.d.ts +2 -0
- package/dist/lib/components/Main.js +18 -0
- package/dist/lib/components/Main.js.map +1 -0
- package/dist/lib/components/Markdown.d.ts +4 -3
- package/dist/lib/components/Markdown.js +14 -14
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/MobileTopNavigation.js +20 -7
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/NotFoundPage.js +3 -3
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/components/PageProgress.d.ts +1 -0
- package/dist/lib/components/PageProgress.js +20 -0
- package/dist/lib/components/PageProgress.js.map +1 -0
- package/dist/lib/components/Pagination.d.ts +11 -0
- package/dist/lib/components/Pagination.js +10 -0
- package/dist/lib/components/Pagination.js.map +1 -0
- package/dist/lib/components/PathRenderer.d.ts +11 -0
- package/dist/lib/components/PathRenderer.js +28 -0
- package/dist/lib/components/PathRenderer.js.map +1 -0
- package/dist/lib/components/Search.d.ts +3 -1
- package/dist/lib/components/Search.js +10 -4
- package/dist/lib/components/Search.js.map +1 -1
- package/dist/lib/components/Slot.d.ts +17 -0
- package/dist/lib/components/Slot.js +24 -0
- package/dist/lib/components/Slot.js.map +1 -0
- package/dist/lib/components/Slot.test.d.ts +1 -0
- package/dist/lib/components/Slot.test.js +172 -0
- package/dist/lib/components/Slot.test.js.map +1 -0
- package/dist/lib/components/StatusPage.d.ts +7 -0
- package/dist/lib/components/StatusPage.js +75 -0
- package/dist/lib/components/StatusPage.js.map +1 -0
- package/dist/lib/components/ThemeSwitch.d.ts +1 -0
- package/dist/lib/components/ThemeSwitch.js +16 -0
- package/dist/lib/components/ThemeSwitch.js.map +1 -0
- package/dist/lib/components/TopNavigation.d.ts +7 -0
- package/dist/lib/components/TopNavigation.js +60 -9
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/Typography.d.ts +5 -0
- package/dist/lib/components/Typography.js +8 -0
- package/dist/lib/components/Typography.js.map +1 -0
- package/dist/lib/components/Zudoku.d.ts +7 -0
- package/dist/lib/components/Zudoku.js +58 -0
- package/dist/lib/components/Zudoku.js.map +1 -0
- package/dist/lib/components/cache.d.ts +15 -0
- package/dist/lib/components/cache.js +18 -0
- package/dist/lib/components/cache.js.map +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.d.ts +1 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js +3 -0
- package/dist/lib/components/context/BypassProtectedRoutesContext.js.map +1 -0
- package/dist/lib/components/context/ComponentsContext.js.map +1 -1
- package/dist/lib/components/context/RouterEventsEmitter.d.ts +1 -0
- package/dist/lib/components/context/RouterEventsEmitter.js +17 -0
- package/dist/lib/components/context/RouterEventsEmitter.js.map +1 -0
- package/dist/lib/components/context/SlotProvider.d.ts +26 -0
- package/dist/lib/components/context/SlotProvider.js +83 -0
- package/dist/lib/components/context/SlotProvider.js.map +1 -0
- package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
- package/dist/lib/components/context/ViewportAnchorContext.js +30 -24
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +9 -17
- package/dist/lib/components/context/ZudokuContext.js +74 -27
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuProvider.d.ts +2 -2
- package/dist/lib/components/context/ZudokuProvider.js +2 -1
- package/dist/lib/components/context/ZudokuProvider.js.map +1 -1
- package/dist/lib/components/index.d.ts +65 -23
- package/dist/lib/components/index.js +31 -15
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/Navigation.d.ts +5 -0
- package/dist/lib/components/navigation/Navigation.js +12 -0
- package/dist/lib/components/navigation/Navigation.js.map +1 -0
- package/dist/lib/components/navigation/NavigationBadge.d.ts +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js +26 -0
- package/dist/lib/components/navigation/NavigationBadge.js.map +1 -0
- package/dist/lib/components/navigation/NavigationCategory.d.ts +5 -0
- package/dist/lib/components/navigation/NavigationCategory.js +66 -0
- package/dist/lib/components/navigation/NavigationCategory.js.map +1 -0
- package/dist/lib/components/navigation/NavigationItem.d.ts +6 -0
- package/dist/lib/components/navigation/NavigationItem.js +55 -0
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -0
- package/dist/lib/components/navigation/NavigationWrapper.d.ts +7 -0
- package/dist/lib/components/navigation/NavigationWrapper.js +21 -0
- package/dist/lib/components/navigation/NavigationWrapper.js.map +1 -0
- package/dist/lib/components/navigation/PoweredByZudoku.d.ts +3 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js +7 -0
- package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -0
- package/dist/lib/components/navigation/Toc.js +46 -0
- package/dist/lib/components/navigation/Toc.js.map +1 -0
- package/dist/lib/components/navigation/ZudokuLogo.d.ts +6 -0
- package/dist/lib/components/navigation/ZudokuLogo.js +5 -0
- package/dist/lib/components/navigation/ZudokuLogo.js.map +1 -0
- package/dist/lib/components/navigation/ZuploLogo.d.ts +3 -0
- package/dist/lib/components/navigation/ZuploLogo.js +4 -0
- package/dist/lib/components/navigation/ZuploLogo.js.map +1 -0
- package/dist/lib/components/navigation/utils.d.ts +16 -8
- package/dist/lib/components/navigation/utils.js +60 -33
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/RouteGuard.d.ts +2 -0
- package/dist/lib/core/RouteGuard.js +44 -0
- package/dist/lib/core/RouteGuard.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +116 -0
- package/dist/lib/core/ZudokuContext.js +106 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -0
- package/dist/lib/core/__internal.d.ts +37 -0
- package/dist/lib/core/__internal.js +26 -0
- package/dist/lib/core/__internal.js.map +1 -0
- package/dist/lib/core/plugins.d.ts +37 -18
- package/dist/lib/core/plugins.js +4 -0
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/core/router.d.ts +1 -0
- package/dist/lib/core/router.js +2 -0
- package/dist/lib/core/router.js.map +1 -0
- package/dist/lib/errors/ErrorAlert.d.ts +1 -1
- package/dist/lib/errors/ErrorAlert.js +12 -4
- package/dist/lib/errors/ErrorAlert.js.map +1 -1
- package/dist/lib/errors/RouterError.d.ts +3 -1
- package/dist/lib/errors/RouterError.js +4 -3
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/errors/TopLevelError.d.ts +2 -2
- package/dist/lib/errors/TopLevelError.js +1 -2
- package/dist/lib/errors/TopLevelError.js.map +1 -1
- package/dist/lib/hooks/index.d.ts +28 -0
- package/dist/lib/hooks/index.js +16 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/useEvent.d.ts +11 -0
- package/dist/lib/hooks/useEvent.js +19 -0
- package/dist/lib/hooks/useEvent.js.map +1 -0
- package/dist/lib/hooks/useEvent.test.d.ts +1 -0
- package/dist/lib/hooks/useEvent.test.js +102 -0
- package/dist/lib/hooks/useEvent.test.js.map +1 -0
- package/dist/lib/hooks/useHotkey.d.ts +4 -0
- package/dist/lib/hooks/useHotkey.js +58 -0
- package/dist/lib/hooks/useHotkey.js.map +1 -0
- package/dist/lib/icons.d.ts +1 -0
- package/dist/lib/icons.js +1 -0
- package/dist/lib/icons.js.map +1 -1
- package/dist/lib/oas/graphql/circular.d.ts +3 -0
- package/dist/lib/oas/graphql/circular.js +43 -0
- package/dist/lib/oas/graphql/circular.js.map +1 -0
- package/dist/lib/oas/graphql/index.d.ts +26 -1
- package/dist/lib/oas/graphql/index.js +266 -75
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.js +10 -4
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/resolveRef.js +3 -3
- package/dist/lib/oas/parser/dereference/resolveRef.js.map +1 -1
- package/dist/lib/oas/parser/index.d.ts +9 -3
- package/dist/lib/oas/parser/index.js +12 -24
- package/dist/lib/oas/parser/index.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.d.ts +3 -2
- package/dist/lib/oas/parser/upgrade/index.js +84 -31
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/api-catalog/Catalog.d.ts +4 -0
- package/dist/lib/plugins/api-catalog/Catalog.js +32 -0
- package/dist/lib/plugins/api-catalog/Catalog.js.map +1 -0
- package/dist/lib/plugins/api-catalog/index.d.ts +31 -0
- package/dist/lib/plugins/api-catalog/index.js +46 -0
- package/dist/lib/plugins/api-catalog/index.js.map +1 -0
- package/dist/lib/plugins/api-keys/CreateApiKey.d.ts +3 -2
- package/dist/lib/plugins/api-keys/CreateApiKey.js +26 -8
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.d.ts +11 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js +9 -0
- package/dist/lib/plugins/api-keys/CreateApiKeyDialog.js.map +1 -0
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +5 -2
- package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.d.ts +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +146 -27
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +33 -18
- package/dist/lib/plugins/api-keys/index.js +65 -31
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.d.ts +8 -0
- package/dist/lib/plugins/custom-pages/index.js +19 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -0
- package/dist/lib/plugins/markdown/MdxPage.d.ts +10 -2
- package/dist/lib/plugins/markdown/MdxPage.js +68 -11
- package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ChatGPTLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.d.ts +2 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js +3 -0
- package/dist/lib/plugins/markdown/assets/ClaudeLogo.js.map +1 -0
- package/dist/lib/plugins/markdown/index.d.ts +19 -7
- package/dist/lib/plugins/markdown/index.js +14 -3
- package/dist/lib/plugins/markdown/index.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.d.ts +6 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js +26 -0
- package/dist/lib/plugins/openapi/CollapsibleCode.js.map +1 -0
- package/dist/lib/plugins/openapi/ColorizedParam.d.ts +10 -2
- package/dist/lib/plugins/openapi/ColorizedParam.js +32 -14
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -3
- package/dist/lib/plugins/openapi/Endpoint.js +43 -8
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.d.ts +5 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +10 -0
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.d.ts +5 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js +56 -0
- package/dist/lib/plugins/openapi/MCPEndpoint.js.map +1 -0
- package/dist/lib/plugins/openapi/OasProvider.d.ts +8 -0
- package/dist/lib/plugins/openapi/OasProvider.js +30 -0
- package/dist/lib/plugins/openapi/OasProvider.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationList.d.ts +5 -4
- package/dist/lib/plugins/openapi/OperationList.js +135 -31
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +6 -3
- package/dist/lib/plugins/openapi/OperationListItem.js +22 -8
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParamInfos.d.ts +6 -0
- package/dist/lib/plugins/openapi/ParamInfos.js +47 -0
- package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -0
- package/dist/lib/plugins/openapi/ParameterList.d.ts +4 -3
- package/dist/lib/plugins/openapi/ParameterList.js +10 -6
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.d.ts +2 -3
- package/dist/lib/plugins/openapi/ParameterListItem.js +30 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +6 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +15 -4
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +11 -5
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +8 -9
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +5 -6
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +27 -8
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SchemaList.d.ts +1 -0
- package/dist/lib/plugins/openapi/SchemaList.js +52 -0
- package/dist/lib/plugins/openapi/SchemaList.js.map +1 -0
- package/dist/lib/plugins/openapi/Sidecar.d.ts +6 -5
- package/dist/lib/plugins/openapi/Sidecar.js +120 -114
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.d.ts +14 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js +57 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
- package/dist/lib/plugins/openapi/SimpleSelect.d.ts +2 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
- package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
- package/dist/lib/plugins/openapi/StaggeredRender.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js +43 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
- package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
- package/dist/lib/plugins/openapi/client/createServer.d.ts +3 -1
- package/dist/lib/plugins/openapi/client/createServer.js +6 -4
- package/dist/lib/plugins/openapi/client/createServer.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +14 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +20 -0
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
- package/dist/lib/plugins/openapi/components/EnumValues.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js +15 -0
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.d.ts +4 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js +5 -0
- package/dist/lib/plugins/openapi/components/NonHighlightedCode.js.map +1 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.d.ts +12 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js +20 -0
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.d.ts +5 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js +16 -0
- package/dist/lib/plugins/openapi/components/SelectOnClick.js.map +1 -0
- package/dist/lib/plugins/openapi/context.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
- package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +11 -41
- package/dist/lib/plugins/openapi/graphql/gql.js +8 -14
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +179 -27
- package/dist/lib/plugins/openapi/graphql/graphql.js +250 -575
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +11 -8
- package/dist/lib/plugins/openapi/index.js +107 -109
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +75 -4
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +5 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +78 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +11 -0
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +9 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +5 -4
- package/dist/lib/plugins/openapi/playground/Headers.js +50 -9
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +15 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +17 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +12 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.d.ts +3 -2
- package/dist/lib/plugins/openapi/playground/PathParams.js +4 -8
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +40 -2
- package/dist/lib/plugins/openapi/playground/Playground.js +211 -80
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +6 -3
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +4 -4
- package/dist/lib/plugins/openapi/playground/QueryParams.js +22 -25
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +16 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Spinner.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js +63 -0
- package/dist/lib/plugins/openapi/playground/Spinner.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/createUrl.js +3 -1
- package/dist/lib/plugins/openapi/playground/createUrl.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/fileUtils.d.ts +2 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js +22 -0
- package/dist/lib/plugins/openapi/playground/fileUtils.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +19 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js +13 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlPath.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +12 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.d.ts +12 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/Highlight.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +71 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +14 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +117 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +15 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.d.ts +18 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js +12 -0
- package/dist/lib/plugins/openapi/playground/useRememberSkipLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.d.ts +8 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js +16 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js +195 -0
- package/dist/lib/plugins/openapi/processors/removeExtensions.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.d.ts +12 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js +66 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js +160 -0
- package/dist/lib/plugins/openapi/processors/removeParameters.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.d.ts +13 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js +33 -0
- package/dist/lib/plugins/openapi/processors/removePaths.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js +144 -0
- package/dist/lib/plugins/openapi/processors/removePaths.test.js.map +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.d.ts +1 -0
- package/dist/lib/plugins/openapi/processors/traverse.js +2 -0
- package/dist/lib/plugins/openapi/processors/traverse.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.d.ts +4 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +15 -0
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.d.ts +8 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +45 -0
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +4 -3
- package/dist/lib/plugins/openapi/schema/SchemaView.js +50 -50
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/UnionView.d.ts +5 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js +33 -0
- package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.d.ts +28 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js +71 -0
- package/dist/lib/plugins/openapi/schema/union-helpers.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/utils.d.ts +7 -7
- package/dist/lib/plugins/openapi/schema/utils.js +16 -10
- package/dist/lib/plugins/openapi/schema/utils.js.map +1 -1
- package/dist/lib/plugins/openapi/state.d.ts +27 -0
- package/dist/lib/plugins/openapi/state.js +18 -0
- package/dist/lib/plugins/openapi/state.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.d.ts +11 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js +89 -0
- package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.d.ts +9 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js +25 -0
- package/dist/lib/plugins/openapi/util/createNavigationCategory.js.map +1 -0
- package/dist/lib/plugins/openapi/util/generateSchemaExample.d.ts +2 -3
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +77 -39
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/plugins/openapi/util/getRoutes.d.ts +10 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js +117 -0
- package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.d.ts +2 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js +10 -0
- package/dist/lib/plugins/openapi/util/methodColorMap.js.map +1 -0
- package/dist/lib/plugins/openapi/util/methodToColor.d.ts +20 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js +24 -0
- package/dist/lib/plugins/openapi/util/methodToColor.js.map +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.d.ts +1 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js +27 -0
- package/dist/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.js.map +1 -0
- package/dist/lib/plugins/redirect/index.d.ts +4 -7
- package/dist/lib/plugins/redirect/index.js +2 -2
- package/dist/lib/plugins/redirect/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/index.d.ts +8 -6
- package/dist/lib/plugins/search-inkeep/index.js +49 -7
- package/dist/lib/plugins/search-inkeep/index.js.map +1 -1
- package/dist/lib/plugins/search-inkeep/inkeep.d.ts +2 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js +10 -19
- package/dist/lib/plugins/search-inkeep/inkeep.js.map +1 -1
- package/dist/lib/plugins/search-pagefind/PagefindSearch.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js +80 -0
- package/dist/lib/plugins/search-pagefind/PagefindSearch.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/ResultList.d.ts +8 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js +42 -0
- package/dist/lib/plugins/search-pagefind/ResultList.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/get-results.d.ts +10 -0
- package/dist/lib/plugins/search-pagefind/get-results.js +41 -0
- package/dist/lib/plugins/search-pagefind/get-results.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/index.d.ts +6 -0
- package/dist/lib/plugins/search-pagefind/index.js +9 -0
- package/dist/lib/plugins/search-pagefind/index.js.map +1 -0
- package/dist/lib/plugins/search-pagefind/types.d.ts +85 -0
- package/dist/lib/plugins/search-pagefind/types.js +2 -0
- package/dist/lib/plugins/search-pagefind/types.js.map +1 -0
- package/dist/lib/shiki.d.ts +32 -0
- package/dist/lib/shiki.js +124 -0
- package/dist/lib/shiki.js.map +1 -0
- package/dist/lib/ui/Accordion.d.ts +7 -0
- package/dist/lib/ui/Accordion.js +14 -0
- package/dist/lib/ui/Accordion.js.map +1 -0
- package/dist/lib/ui/ActionButton.d.ts +4 -0
- package/dist/lib/ui/ActionButton.js +10 -0
- package/dist/lib/ui/ActionButton.js.map +1 -0
- package/dist/lib/ui/Alert.d.ts +9 -0
- package/dist/lib/ui/Alert.js +25 -0
- package/dist/lib/ui/Alert.js.map +1 -0
- package/dist/lib/ui/AlertDialog.d.ts +20 -0
- package/dist/lib/ui/AlertDialog.js +27 -0
- package/dist/lib/ui/AlertDialog.js.map +1 -0
- package/dist/lib/ui/AspectRatio.d.ts +3 -0
- package/dist/lib/ui/AspectRatio.js +4 -0
- package/dist/lib/ui/AspectRatio.js.map +1 -0
- package/dist/lib/ui/Badge.d.ts +9 -0
- package/dist/lib/ui/Badge.js +24 -0
- package/dist/lib/ui/Badge.js.map +1 -0
- package/dist/lib/ui/Breadcrumb.d.ts +19 -0
- package/dist/lib/ui/Breadcrumb.js +24 -0
- package/dist/lib/ui/Breadcrumb.js.map +1 -0
- package/dist/lib/ui/Button.d.ts +4 -5
- package/dist/lib/ui/Button.js +10 -6
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/Callout.d.ts +38 -36
- package/dist/lib/ui/Callout.js +8 -7
- package/dist/lib/ui/Callout.js.map +1 -1
- package/dist/lib/ui/Card.js +1 -1
- package/dist/lib/ui/Card.js.map +1 -1
- package/dist/lib/ui/Carousel.d.ts +18 -0
- package/dist/lib/ui/Carousel.js +99 -0
- package/dist/lib/ui/Carousel.js.map +1 -0
- package/dist/lib/ui/Checkbox.d.ts +4 -0
- package/dist/lib/ui/Checkbox.js +9 -0
- package/dist/lib/ui/Checkbox.js.map +1 -0
- package/dist/lib/ui/CodeBlock.d.ts +14 -0
- package/dist/lib/ui/CodeBlock.js +18 -0
- package/dist/lib/ui/CodeBlock.js.map +1 -0
- package/dist/lib/ui/Collapsible.d.ts +5 -0
- package/dist/lib/ui/Collapsible.js +13 -0
- package/dist/lib/ui/Collapsible.js.map +1 -0
- package/dist/lib/ui/Command.d.ts +94 -0
- package/dist/lib/ui/Command.js +31 -0
- package/dist/lib/ui/Command.js.map +1 -0
- package/dist/lib/ui/Dialog.d.ts +15 -0
- package/dist/lib/ui/Dialog.js +36 -0
- package/dist/lib/ui/Dialog.js.map +1 -0
- package/dist/lib/ui/Drawer.d.ts +8 -10
- package/dist/lib/ui/Drawer.js.map +1 -1
- package/dist/lib/ui/DropdownMenu.js +4 -4
- package/dist/lib/ui/DropdownMenu.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.d.ts +16 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js +19 -0
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/dist/lib/ui/Form.d.ts +23 -0
- package/dist/lib/ui/Form.js +63 -0
- package/dist/lib/ui/Form.js.map +1 -0
- package/dist/lib/ui/Frame.d.ts +8 -0
- package/dist/lib/ui/Frame.js +22 -0
- package/dist/lib/ui/Frame.js.map +1 -0
- package/dist/lib/ui/HoverCard.d.ts +6 -0
- package/dist/lib/ui/HoverCard.js +10 -0
- package/dist/lib/ui/HoverCard.js.map +1 -0
- package/dist/lib/ui/Input.d.ts +1 -2
- package/dist/lib/ui/Input.js +1 -1
- package/dist/lib/ui/Input.js.map +1 -1
- package/dist/lib/ui/Item.d.ts +23 -0
- package/dist/lib/ui/Item.js +67 -0
- package/dist/lib/ui/Item.js.map +1 -0
- package/dist/lib/ui/Label.d.ts +5 -0
- package/dist/lib/ui/Label.js +10 -0
- package/dist/lib/ui/Label.js.map +1 -0
- package/dist/lib/ui/NativeSelect.d.ts +5 -0
- package/dist/lib/ui/NativeSelect.js +14 -0
- package/dist/lib/ui/NativeSelect.js.map +1 -0
- package/dist/lib/ui/Pagination.d.ts +28 -0
- package/dist/lib/ui/Pagination.js +24 -0
- package/dist/lib/ui/Pagination.js.map +1 -0
- package/dist/lib/ui/Popover.d.ts +6 -0
- package/dist/lib/ui/Popover.js +10 -0
- package/dist/lib/ui/Popover.js.map +1 -0
- package/dist/lib/ui/Progress.d.ts +4 -0
- package/dist/lib/ui/Progress.js +8 -0
- package/dist/lib/ui/Progress.js.map +1 -0
- package/dist/lib/ui/RadioGroup.d.ts +5 -0
- package/dist/lib/ui/RadioGroup.js +15 -0
- package/dist/lib/ui/RadioGroup.js.map +1 -0
- package/dist/lib/ui/ReactComponentDoc.d.ts +20 -0
- package/dist/lib/ui/ReactComponentDoc.js +10 -0
- package/dist/lib/ui/ReactComponentDoc.js.map +1 -0
- package/dist/lib/ui/ScrollArea.d.ts +5 -0
- package/dist/lib/ui/ScrollArea.js +12 -0
- package/dist/lib/ui/ScrollArea.js.map +1 -0
- package/dist/lib/ui/Secret.d.ts +18 -0
- package/dist/lib/ui/Secret.js +26 -0
- package/dist/lib/ui/Secret.js.map +1 -0
- package/dist/lib/ui/Select.d.ts +15 -0
- package/dist/lib/ui/Select.js +38 -0
- package/dist/lib/ui/Select.js.map +1 -0
- package/dist/lib/ui/Separator.d.ts +4 -0
- package/dist/lib/ui/Separator.js +8 -0
- package/dist/lib/ui/Separator.js.map +1 -0
- package/dist/lib/ui/Skeleton.d.ts +2 -0
- package/dist/lib/ui/Skeleton.js +7 -0
- package/dist/lib/ui/Skeleton.js.map +1 -0
- package/dist/lib/ui/Slider.d.ts +4 -0
- package/dist/lib/ui/Slider.js +8 -0
- package/dist/lib/ui/Slider.js.map +1 -0
- package/dist/lib/ui/Stepper.d.ts +3 -0
- package/dist/lib/ui/Stepper.js +7 -0
- package/dist/lib/ui/Stepper.js.map +1 -0
- package/dist/lib/ui/Switch.d.ts +4 -0
- package/dist/lib/ui/Switch.js +8 -0
- package/dist/lib/ui/Switch.js.map +1 -0
- package/dist/lib/ui/SyntaxHighlight.d.ts +13 -0
- package/dist/lib/ui/SyntaxHighlight.js +15 -0
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -0
- package/dist/lib/ui/Tabs.js +2 -2
- package/dist/lib/ui/Tabs.js.map +1 -1
- package/dist/lib/ui/Textarea.d.ts +4 -0
- package/dist/lib/ui/Textarea.js +9 -0
- package/dist/lib/ui/Textarea.js.map +1 -0
- package/dist/lib/ui/Toggle.d.ts +12 -0
- package/dist/lib/ui/Toggle.js +26 -0
- package/dist/lib/ui/Toggle.js.map +1 -0
- package/dist/lib/ui/ToggleGroup.d.ts +12 -0
- package/dist/lib/ui/ToggleGroup.js +21 -0
- package/dist/lib/ui/ToggleGroup.js.map +1 -0
- package/dist/lib/ui/Tooltip.d.ts +8 -0
- package/dist/lib/ui/Tooltip.js +18 -0
- package/dist/lib/ui/Tooltip.js.map +1 -0
- package/dist/lib/ui/Value.d.ts +5 -0
- package/dist/lib/ui/Value.js +13 -0
- package/dist/lib/ui/Value.js.map +1 -0
- package/dist/lib/ui/util.d.ts +2 -0
- package/dist/lib/ui/util.js +3 -0
- package/dist/lib/ui/util.js.map +1 -0
- package/dist/lib/util/MdxComponents.d.ts +39 -21
- package/dist/lib/util/MdxComponents.js +24 -17
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/cn.js.map +1 -1
- package/dist/lib/util/createVariantComponent.d.ts +7 -4
- package/dist/lib/util/createVariantComponent.js +5 -2
- package/dist/lib/util/createVariantComponent.js.map +1 -1
- package/dist/lib/util/detectOS.d.ts +1 -0
- package/dist/lib/util/detectOS.js +11 -0
- package/dist/lib/util/detectOS.js.map +1 -0
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +2 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/flattenAllOf.d.ts +4 -0
- package/dist/lib/util/flattenAllOf.js +65 -0
- package/dist/lib/util/flattenAllOf.js.map +1 -0
- package/dist/lib/util/flattenAllOf.test.d.ts +1 -0
- package/dist/lib/util/flattenAllOf.test.js +532 -0
- package/dist/lib/util/flattenAllOf.test.js.map +1 -0
- package/dist/lib/util/groupBy.js +1 -0
- package/dist/lib/util/groupBy.js.map +1 -1
- package/dist/lib/util/humanFileSize.d.ts +6 -0
- package/dist/lib/util/humanFileSize.js +14 -0
- package/dist/lib/util/humanFileSize.js.map +1 -0
- package/dist/lib/util/humanFileSize.test.d.ts +1 -0
- package/dist/lib/util/humanFileSize.test.js +22 -0
- package/dist/lib/util/humanFileSize.test.js.map +1 -0
- package/dist/lib/util/invariant.d.ts +10 -0
- package/dist/lib/util/invariant.js +10 -4
- package/dist/lib/util/invariant.js.map +1 -1
- package/dist/lib/util/joinPath.d.ts +3 -0
- package/dist/lib/util/joinPath.js +3 -0
- package/dist/lib/util/joinPath.js.map +1 -1
- package/dist/lib/util/joinUrl.d.ts +1 -0
- package/dist/lib/util/joinUrl.js +40 -0
- package/dist/lib/util/joinUrl.js.map +1 -0
- package/dist/lib/util/joinUrl.test.d.ts +1 -0
- package/dist/lib/util/joinUrl.test.js +43 -0
- package/dist/lib/util/joinUrl.test.js.map +1 -0
- package/dist/lib/util/os.d.ts +2 -0
- package/dist/lib/util/os.js +21 -0
- package/dist/lib/util/os.js.map +1 -0
- package/dist/lib/util/pastellize.js +4 -4
- package/dist/lib/util/pastellize.js.map +1 -1
- package/dist/lib/util/scrollIntoViewIfNeeded.d.ts +1 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js +14 -0
- package/dist/lib/util/scrollIntoViewIfNeeded.js.map +1 -0
- package/dist/lib/util/syncZustandState.d.ts +5 -0
- package/dist/lib/util/syncZustandState.js +14 -0
- package/dist/lib/util/syncZustandState.js.map +1 -0
- package/dist/lib/util/traverse.d.ts +4 -0
- package/dist/lib/util/traverse.js +48 -0
- package/dist/lib/util/traverse.js.map +1 -0
- package/dist/lib/util/types.d.ts +7 -0
- package/dist/lib/util/types.js +2 -0
- package/dist/lib/util/types.js.map +1 -0
- package/dist/lib/util/url.d.ts +4 -0
- package/dist/lib/util/url.js +13 -0
- package/dist/lib/util/url.js.map +1 -0
- package/dist/lib/util/url.test.d.ts +1 -0
- package/dist/lib/util/url.test.js +26 -0
- package/dist/lib/util/url.test.js.map +1 -0
- package/dist/lib/util/useCopyToClipboard.d.ts +1 -0
- package/dist/lib/util/useCopyToClipboard.js +11 -0
- package/dist/lib/util/useCopyToClipboard.js.map +1 -0
- package/dist/lib/util/useExposedProps.d.ts +9 -0
- package/dist/lib/util/useExposedProps.js +9 -0
- package/dist/lib/util/useExposedProps.js.map +1 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js +4 -0
- package/dist/lib/util/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/lib/util/useLatest.d.ts +1 -0
- package/dist/lib/util/useLatest.js +15 -0
- package/dist/lib/util/useLatest.js.map +1 -0
- package/dist/lib/util/useOnScreen.d.ts +5 -0
- package/dist/lib/util/useOnScreen.js +19 -0
- package/dist/lib/util/useOnScreen.js.map +1 -0
- package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
- package/dist/lib/util/useScrollToAnchor.js +45 -38
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/lib/util/useScrollToTop.js +7 -5
- package/dist/lib/util/useScrollToTop.js.map +1 -1
- package/dist/ts.js +3 -3
- package/dist/ts.js.map +1 -1
- package/dist/vite/api/SchemaManager.d.ts +38 -0
- package/dist/vite/api/SchemaManager.js +152 -0
- package/dist/vite/api/SchemaManager.js.map +1 -0
- package/dist/vite/api/SchemaManager.test.d.ts +1 -0
- package/dist/vite/api/SchemaManager.test.js +106 -0
- package/dist/vite/api/SchemaManager.test.js.map +1 -0
- package/dist/vite/api/schema-codegen.d.ts +12 -0
- package/dist/vite/api/schema-codegen.js +134 -0
- package/dist/vite/api/schema-codegen.js.map +1 -0
- package/dist/vite/api/schema-codegen.test.d.ts +1 -0
- package/dist/vite/api/schema-codegen.test.js +468 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -0
- package/dist/vite/build.js +63 -14
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.d.ts +1 -15
- package/dist/vite/config.js +128 -149
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +12 -6
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/create-pagefind-index.d.ts +4 -0
- package/dist/vite/create-pagefind-index.js +12 -0
- package/dist/vite/create-pagefind-index.js.map +1 -0
- package/dist/vite/css/collect.d.ts +2 -0
- package/dist/vite/css/collect.js +27 -0
- package/dist/vite/css/collect.js.map +1 -0
- package/dist/vite/css/plugin.d.ts +4 -0
- package/dist/vite/css/plugin.js +91 -0
- package/dist/vite/css/plugin.js.map +1 -0
- package/dist/vite/debug.d.ts +1 -0
- package/dist/vite/debug.js +10 -0
- package/dist/vite/debug.js.map +1 -0
- package/dist/vite/dev-server.d.ts +12 -4
- package/dist/vite/dev-server.js +94 -31
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/error-handler.d.ts +3 -3
- package/dist/vite/error-handler.js +1 -1
- package/dist/vite/error-handler.js.map +1 -1
- package/dist/vite/html.d.ts +7 -3
- package/dist/vite/html.js +15 -11
- package/dist/vite/html.js.map +1 -1
- package/dist/vite/llms.d.ts +12 -0
- package/dist/vite/llms.js +66 -0
- package/dist/vite/llms.js.map +1 -0
- package/dist/vite/mdx/remark-inject-filepath.d.ts +3 -0
- package/dist/vite/mdx/remark-inject-filepath.js +6 -0
- package/dist/vite/mdx/remark-inject-filepath.js.map +1 -0
- package/dist/vite/mdx/remark-last-modified.d.ts +3 -0
- package/dist/vite/mdx/remark-last-modified.js +82 -0
- package/dist/vite/mdx/remark-last-modified.js.map +1 -0
- package/dist/vite/mdx/remark-link-rewrite.d.ts +2 -0
- package/dist/vite/mdx/remark-link-rewrite.js +20 -0
- package/dist/vite/mdx/remark-link-rewrite.js.map +1 -0
- package/dist/vite/mdx/remark-normalize-image-url.d.ts +2 -0
- package/dist/vite/mdx/remark-normalize-image-url.js +12 -0
- package/dist/vite/mdx/remark-normalize-image-url.js.map +1 -0
- package/dist/vite/mdx/remark-static-generation.d.ts +3 -0
- package/dist/vite/mdx/remark-static-generation.js +125 -0
- package/dist/vite/mdx/remark-static-generation.js.map +1 -0
- package/dist/vite/mdx/utils.d.ts +2 -0
- package/dist/vite/mdx/utils.js +31 -0
- package/dist/vite/mdx/utils.js.map +1 -0
- package/dist/vite/output.d.ts +113 -0
- package/dist/vite/output.js +60 -0
- package/dist/vite/output.js.map +1 -0
- package/dist/vite/plugin-api-keys.d.ts +2 -3
- package/dist/vite/plugin-api-keys.js +14 -8
- package/dist/vite/plugin-api-keys.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -2
- package/dist/vite/plugin-api.js +148 -36
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.d.ts +2 -3
- package/dist/vite/plugin-auth.js +11 -7
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-component.d.ts +2 -3
- package/dist/vite/plugin-component.js +25 -15
- package/dist/vite/plugin-component.js.map +1 -1
- package/dist/vite/plugin-config-reload.d.ts +3 -4
- package/dist/vite/plugin-config-reload.js +31 -20
- package/dist/vite/plugin-config-reload.js.map +1 -1
- package/dist/vite/plugin-config.d.ts +2 -4
- package/dist/vite/plugin-config.js +28 -3
- package/dist/vite/plugin-config.js.map +1 -1
- package/dist/vite/plugin-custom-pages.d.ts +3 -0
- package/dist/vite/plugin-custom-pages.js +31 -0
- package/dist/vite/plugin-custom-pages.js.map +1 -0
- package/dist/vite/plugin-docs.d.ts +11 -3
- package/dist/vite/plugin-docs.js +100 -39
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +2 -0
- package/dist/vite/plugin-frontmatter.js +39 -0
- package/dist/vite/plugin-frontmatter.js.map +1 -0
- package/dist/vite/plugin-markdown-export.d.ts +21 -0
- package/dist/vite/plugin-markdown-export.js +141 -0
- package/dist/vite/plugin-markdown-export.js.map +1 -0
- package/dist/vite/plugin-mdx.d.ts +2 -9
- package/dist/vite/plugin-mdx.js +92 -36
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/plugin-metadata.d.ts +1 -1
- package/dist/vite/plugin-navigation.d.ts +4 -0
- package/dist/vite/plugin-navigation.js +67 -0
- package/dist/vite/plugin-navigation.js.map +1 -0
- package/dist/vite/plugin-redirect.d.ts +2 -3
- package/dist/vite/plugin-redirect.js +7 -6
- package/dist/vite/plugin-redirect.js.map +1 -1
- package/dist/vite/plugin-search.d.ts +2 -0
- package/dist/vite/plugin-search.js +31 -0
- package/dist/vite/plugin-search.js.map +1 -0
- package/dist/vite/plugin-shiki-register.d.ts +2 -0
- package/dist/vite/plugin-shiki-register.js +39 -0
- package/dist/vite/plugin-shiki-register.js.map +1 -0
- package/dist/vite/plugin-theme.d.ts +8 -0
- package/dist/vite/plugin-theme.js +283 -0
- package/dist/vite/plugin-theme.js.map +1 -0
- package/dist/vite/plugin-theme.test.d.ts +1 -0
- package/dist/vite/plugin-theme.test.js +314 -0
- package/dist/vite/plugin-theme.test.js.map +1 -0
- package/dist/vite/plugin.d.ts +2 -4
- package/dist/vite/plugin.js +30 -21
- package/dist/vite/plugin.js.map +1 -1
- package/dist/vite/prerender/FileWritingResponse.d.ts +25 -0
- package/dist/vite/prerender/FileWritingResponse.js +53 -0
- package/dist/vite/prerender/FileWritingResponse.js.map +1 -0
- package/dist/vite/prerender/InMemoryResponse.d.ts +16 -0
- package/dist/vite/prerender/InMemoryResponse.js +34 -0
- package/dist/vite/prerender/InMemoryResponse.js.map +1 -0
- package/dist/vite/prerender/PrerenderResponse.d.ts +10 -0
- package/dist/vite/prerender/PrerenderResponse.js +2 -0
- package/dist/vite/prerender/PrerenderResponse.js.map +1 -0
- package/dist/vite/prerender/prerender.d.ts +15 -0
- package/dist/vite/prerender/prerender.js +142 -0
- package/dist/vite/prerender/prerender.js.map +1 -0
- package/dist/vite/prerender/worker.d.ts +13 -0
- package/dist/vite/prerender/worker.js +63 -0
- package/dist/vite/prerender/worker.js.map +1 -0
- package/dist/vite/reporter.d.ts +3 -0
- package/dist/vite/reporter.js +33 -0
- package/dist/vite/reporter.js.map +1 -0
- package/dist/vite/shadcn-registry.d.ts +20 -0
- package/dist/vite/shadcn-registry.js +29 -0
- package/dist/vite/shadcn-registry.js.map +1 -0
- package/dist/vite/sitemap.d.ts +1 -1
- package/dist/vite/sitemap.js +16 -14
- package/dist/vite/sitemap.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo-mcp.d.ts +4 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js +117 -0
- package/dist/zuplo/enrich-with-zuplo-mcp.js.map +1 -0
- package/dist/zuplo/enrich-with-zuplo.d.ts +6 -0
- package/dist/zuplo/enrich-with-zuplo.js +185 -0
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -0
- package/dist/zuplo/policy-types.d.ts +33 -0
- package/dist/zuplo/policy-types.js +7 -0
- package/dist/zuplo/policy-types.js.map +1 -0
- package/dist/zuplo/with-zuplo-processors.d.ts +3 -0
- package/dist/zuplo/with-zuplo-processors.js +28 -0
- package/dist/zuplo/with-zuplo-processors.js.map +1 -0
- package/dist/zuplo/with-zuplo.d.ts +6 -0
- package/dist/zuplo/with-zuplo.js +10 -0
- package/dist/zuplo/with-zuplo.js.map +1 -0
- package/lib/Button-B3ucvvQw.js +52 -0
- package/lib/Button-B3ucvvQw.js.map +1 -0
- package/lib/Card-KFniaZn5.js +61 -0
- package/lib/Card-KFniaZn5.js.map +1 -0
- package/lib/CategoryHeading-DhmodDcq.js +17 -0
- package/lib/CategoryHeading-DhmodDcq.js.map +1 -0
- package/lib/ClientOnly-E7hGysn1.js +11 -0
- package/lib/ClientOnly-E7hGysn1.js.map +1 -0
- package/lib/Command-CUcrW3qs.js +134 -0
- package/lib/Command-CUcrW3qs.js.map +1 -0
- package/lib/Dialog-BQciPiHN.js +144 -0
- package/lib/Dialog-BQciPiHN.js.map +1 -0
- package/lib/Drawer-Ci7XwhqT.js +1133 -0
- package/lib/Drawer-Ci7XwhqT.js.map +1 -0
- package/lib/DropdownMenu-BZ2NKQ3K.js +126 -0
- package/lib/DropdownMenu-BZ2NKQ3K.js.map +1 -0
- package/lib/ErrorAlert-_1Zmhr68.js +15475 -0
- package/lib/ErrorAlert-_1Zmhr68.js.map +1 -0
- package/lib/MdxPage-B2t1EShN.js +240 -0
- package/lib/MdxPage-B2t1EShN.js.map +1 -0
- package/lib/OAuthErrorPage-DnKnq4xK.js +150 -0
- package/lib/OAuthErrorPage-DnKnq4xK.js.map +1 -0
- package/lib/OasProvider-Df8i4LN9.js +36 -0
- package/lib/OasProvider-Df8i4LN9.js.map +1 -0
- package/lib/OperationList-BGhUll5h.js +5688 -0
- package/lib/OperationList-BGhUll5h.js.map +1 -0
- package/lib/Pagination-hk-llhpw.js +37 -0
- package/lib/Pagination-hk-llhpw.js.map +1 -0
- package/lib/RouteGuard-Brz95MSt.js +77 -0
- package/lib/RouteGuard-Brz95MSt.js.map +1 -0
- package/lib/RouterError-CMaIfdjb.js +42 -0
- package/lib/RouterError-CMaIfdjb.js.map +1 -0
- package/lib/SchemaList-1BwTDYj4.js +150 -0
- package/lib/SchemaList-1BwTDYj4.js.map +1 -0
- package/lib/SchemaView-iAxsr0Pr.js +572 -0
- package/lib/SchemaView-iAxsr0Pr.js.map +1 -0
- package/lib/Select-DFRCS31-.js +399 -0
- package/lib/Select-DFRCS31-.js.map +1 -0
- package/lib/SignUp-sGYAsj2K.js +50 -0
- package/lib/SignUp-sGYAsj2K.js.map +1 -0
- package/lib/Spinner-CI6bRyZw.js +7 -0
- package/lib/Spinner-CI6bRyZw.js.map +1 -0
- package/lib/SyntaxHighlight-C19vH0V_.js +10352 -0
- package/lib/SyntaxHighlight-C19vH0V_.js.map +1 -0
- package/lib/Toc-DbWS75JZ.js +92 -0
- package/lib/Toc-DbWS75JZ.js.map +1 -0
- package/lib/ZudokuContext-BUZ5hkWB.js +1508 -0
- package/lib/ZudokuContext-BUZ5hkWB.js.map +1 -0
- package/lib/c-B-NUhs61.js +46 -0
- package/lib/c-B-NUhs61.js.map +1 -0
- package/lib/chunk-PVWAREVJ-BMhpCH5D.js +7965 -0
- package/lib/chunk-PVWAREVJ-BMhpCH5D.js.map +1 -0
- package/lib/circular-KI-MGwIg.js +15341 -0
- package/lib/circular-KI-MGwIg.js.map +1 -0
- package/lib/clsx-OuTLNxxd.js +17 -0
- package/lib/clsx-OuTLNxxd.js.map +1 -0
- package/lib/cn-dYga0KKN.js +2731 -0
- package/lib/cn-dYga0KKN.js.map +1 -0
- package/lib/commonlisp-De080z23.js +28 -0
- package/lib/commonlisp-De080z23.js.map +1 -0
- package/lib/cpp-79Paht7T.js +53 -0
- package/lib/cpp-79Paht7T.js.map +1 -0
- package/lib/createServer-CBgHAqRV.js +13018 -0
- package/lib/createServer-CBgHAqRV.js.map +1 -0
- package/lib/csharp-D8MIL50B.js +53 -0
- package/lib/csharp-D8MIL50B.js.map +1 -0
- package/lib/css-Bt6hr1td.js +54 -0
- package/lib/css-Bt6hr1td.js.map +1 -0
- package/lib/dart-B0vy1jWB.js +60 -0
- package/lib/dart-B0vy1jWB.js.map +1 -0
- package/lib/elixir-Ds8r0sF8.js +25 -0
- package/lib/elixir-Ds8r0sF8.js.map +1 -0
- package/lib/errors-CD873hrG.js +45 -0
- package/lib/errors-CD873hrG.js.map +1 -0
- package/lib/go-D2VsmIOS.js +25 -0
- package/lib/go-D2VsmIOS.js.map +1 -0
- package/lib/graphql-BtA6M4m5.js +25 -0
- package/lib/graphql-BtA6M4m5.js.map +1 -0
- package/lib/hook-CMeoxziF.js +40 -0
- package/lib/hook-CMeoxziF.js.map +1 -0
- package/lib/html-MGnI2uzP.js +33 -0
- package/lib/html-MGnI2uzP.js.map +1 -0
- package/lib/index-BK0jKRrX.js +2210 -0
- package/lib/index-BK0jKRrX.js.map +1 -0
- package/lib/index-CrcNWbel.js +316 -0
- package/lib/index-CrcNWbel.js.map +1 -0
- package/lib/index-CscynaXA.js +3680 -0
- package/lib/index-CscynaXA.js.map +1 -0
- package/lib/index-DI5SPFK9.js +36 -0
- package/lib/index-DI5SPFK9.js.map +1 -0
- package/lib/index-nGbmHh_A.js +4827 -0
- package/lib/index-nGbmHh_A.js.map +1 -0
- package/lib/index-pMMX55GH.js +1059 -0
- package/lib/index-pMMX55GH.js.map +1 -0
- package/lib/index.esm-BYObtETB.js +1294 -0
- package/lib/index.esm-BYObtETB.js.map +1 -0
- package/lib/index.esm-BnYHxCYC.js +683 -0
- package/lib/index.esm-BnYHxCYC.js.map +1 -0
- package/lib/invariant-Bm-FVUQE.js +44 -0
- package/lib/invariant-Bm-FVUQE.js.map +1 -0
- package/lib/java-CVLzHfb1.js +53 -0
- package/lib/java-CVLzHfb1.js.map +1 -0
- package/lib/javascript-CcmIpL4G.js +10 -0
- package/lib/javascript-CcmIpL4G.js.map +1 -0
- package/lib/json-4AyP4uiY.js +25 -0
- package/lib/json-4AyP4uiY.js.map +1 -0
- package/lib/jsx-runtime-BzflLqGi.js +283 -0
- package/lib/jsx-runtime-BzflLqGi.js.map +1 -0
- package/lib/kotlin-v2plddBQ.js +37 -0
- package/lib/kotlin-v2plddBQ.js.map +1 -0
- package/lib/markdown-DYGWCmGQ.js +25 -0
- package/lib/markdown-DYGWCmGQ.js.map +1 -0
- package/lib/mdx-CHwYvXd4.js +32 -0
- package/lib/mdx-CHwYvXd4.js.map +1 -0
- package/lib/mutation-BSU0xu4m.js +196 -0
- package/lib/mutation-BSU0xu4m.js.map +1 -0
- package/lib/objectivec-HZY8shkd.js +32 -0
- package/lib/objectivec-HZY8shkd.js.map +1 -0
- package/lib/ocaml-DqsdDdwb.js +52 -0
- package/lib/ocaml-DqsdDdwb.js.map +1 -0
- package/lib/php-rQXzo7K_.js +25 -0
- package/lib/php-rQXzo7K_.js.map +1 -0
- package/lib/powershell-CQje9pm1.js +39 -0
- package/lib/powershell-CQje9pm1.js.map +1 -0
- package/lib/processors/removeExtensions.js +11 -0
- package/lib/processors/removeExtensions.js.map +1 -0
- package/lib/processors/removeParameters.js +47 -0
- package/lib/processors/removeParameters.js.map +1 -0
- package/lib/processors/removePaths.js +28 -0
- package/lib/processors/removePaths.js.map +1 -0
- package/lib/processors/traverse.js +17 -0
- package/lib/processors/traverse.js.map +1 -0
- package/lib/python-QIQAE5Ei.js +32 -0
- package/lib/python-QIQAE5Ei.js.map +1 -0
- package/lib/react-DHpVpxRv.js +24 -0
- package/lib/react-DHpVpxRv.js.map +1 -0
- package/lib/ruby-B2dU8Ny5.js +25 -0
- package/lib/ruby-B2dU8Ny5.js.map +1 -0
- package/lib/rust-DYnLHAi2.js +25 -0
- package/lib/rust-DYnLHAi2.js.map +1 -0
- package/lib/scala-CeKInBR8.js +25 -0
- package/lib/scala-CeKInBR8.js.map +1 -0
- package/lib/shell-HUv9oVtp.js +25 -0
- package/lib/shell-HUv9oVtp.js.map +1 -0
- package/lib/swift-B4z6ig1Z.js +25 -0
- package/lib/swift-B4z6ig1Z.js.map +1 -0
- package/lib/toml-Co9mpdct.js +32 -0
- package/lib/toml-Co9mpdct.js.map +1 -0
- package/lib/typescript-C26xdBDC.js +32 -0
- package/lib/typescript-C26xdBDC.js.map +1 -0
- package/lib/ui/Accordion.js +47 -0
- package/lib/ui/Accordion.js.map +1 -0
- package/lib/ui/ActionButton.js +25 -0
- package/lib/ui/ActionButton.js.map +1 -0
- package/lib/ui/Alert.js +67 -0
- package/lib/ui/Alert.js.map +1 -0
- package/lib/ui/AlertDialog.js +114 -0
- package/lib/ui/AlertDialog.js.map +1 -0
- package/lib/ui/AspectRatio.js +6 -0
- package/lib/ui/AspectRatio.js.map +1 -0
- package/lib/ui/Badge.js +42 -0
- package/lib/ui/Badge.js.map +1 -0
- package/lib/ui/Breadcrumb.js +95 -0
- package/lib/ui/Breadcrumb.js.map +1 -0
- package/lib/ui/Button.js +53 -0
- package/lib/ui/Button.js.map +1 -0
- package/lib/ui/Callout.js +97 -0
- package/lib/ui/Callout.js.map +1 -0
- package/lib/ui/Card.js +62 -0
- package/lib/ui/Card.js.map +1 -0
- package/lib/ui/Carousel.js +1416 -0
- package/lib/ui/Carousel.js.map +1 -0
- package/lib/ui/Checkbox.js +32 -0
- package/lib/ui/Checkbox.js.map +1 -0
- package/lib/ui/CodeBlock.js +220 -0
- package/lib/ui/CodeBlock.js.map +1 -0
- package/lib/ui/Collapsible.js +35 -0
- package/lib/ui/Collapsible.js.map +1 -0
- package/lib/ui/Command.js +150 -0
- package/lib/ui/Command.js.map +1 -0
- package/lib/ui/Dialog.js +146 -0
- package/lib/ui/Dialog.js.map +1 -0
- package/lib/ui/Drawer.js +17 -0
- package/lib/ui/Drawer.js.map +1 -0
- package/lib/ui/DropdownMenu.js +145 -0
- package/lib/ui/DropdownMenu.js.map +1 -0
- package/lib/ui/EmbeddedCodeBlock.js +84 -0
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -0
- package/lib/ui/Form.js +95 -0
- package/lib/ui/Form.js.map +1 -0
- package/lib/ui/Frame.js +81 -0
- package/lib/ui/Frame.js.map +1 -0
- package/lib/ui/HoverCard.js +24 -0
- package/lib/ui/HoverCard.js.map +1 -0
- package/lib/ui/Input.js +22 -0
- package/lib/ui/Input.js.map +1 -0
- package/lib/ui/Item.js +188 -0
- package/lib/ui/Item.js.map +1 -0
- package/lib/ui/Label.js +20 -0
- package/lib/ui/Label.js.map +1 -0
- package/lib/ui/NativeSelect.js +57 -0
- package/lib/ui/NativeSelect.js.map +1 -0
- package/lib/ui/Pagination.js +105 -0
- package/lib/ui/Pagination.js.map +1 -0
- package/lib/ui/Popover.js +24 -0
- package/lib/ui/Popover.js.map +1 -0
- package/lib/ui/Progress.js +27 -0
- package/lib/ui/Progress.js.map +1 -0
- package/lib/ui/RadioGroup.js +32 -0
- package/lib/ui/RadioGroup.js.map +1 -0
- package/lib/ui/ReactComponentDoc.js +28 -0
- package/lib/ui/ReactComponentDoc.js.map +1 -0
- package/lib/ui/ScrollArea.js +39 -0
- package/lib/ui/ScrollArea.js.map +1 -0
- package/lib/ui/Secret.js +106 -0
- package/lib/ui/Secret.js.map +1 -0
- package/lib/ui/Select.js +172 -0
- package/lib/ui/Select.js.map +1 -0
- package/lib/ui/Separator.js +27 -0
- package/lib/ui/Separator.js.map +1 -0
- package/lib/ui/Skeleton.js +18 -0
- package/lib/ui/Skeleton.js.map +1 -0
- package/lib/ui/Slider.js +24 -0
- package/lib/ui/Slider.js.map +1 -0
- package/lib/ui/Stepper.js +6 -0
- package/lib/ui/Stepper.js.map +1 -0
- package/lib/ui/Switch.js +28 -0
- package/lib/ui/Switch.js.map +1 -0
- package/lib/ui/SyntaxHighlight.js +11 -0
- package/lib/ui/SyntaxHighlight.js.map +1 -0
- package/lib/ui/Tabs.js +47 -0
- package/lib/ui/Tabs.js.map +1 -0
- package/lib/ui/Textarea.js +21 -0
- package/lib/ui/Textarea.js.map +1 -0
- package/lib/ui/Toggle.js +38 -0
- package/lib/ui/Toggle.js.map +1 -0
- package/lib/ui/ToggleGroup.js +42 -0
- package/lib/ui/ToggleGroup.js.map +1 -0
- package/lib/ui/Tooltip.js +58 -0
- package/lib/ui/Tooltip.js.map +1 -0
- package/lib/ui/Value.js +39 -0
- package/lib/ui/Value.js.map +1 -0
- package/lib/ui/util.js +6 -0
- package/lib/ui/util.js.map +1 -0
- package/lib/useCopyToClipboard-B_085nfO.js +14 -0
- package/lib/useCopyToClipboard-B_085nfO.js.map +1 -0
- package/lib/useExposedProps-U3pmsHaG.js +113 -0
- package/lib/useExposedProps-U3pmsHaG.js.map +1 -0
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/xml-BQOOC04j.js +25 -0
- package/lib/xml-BQOOC04j.js.map +1 -0
- package/lib/yaml-BGsJItKv.js +32 -0
- package/lib/yaml-BGsJItKv.js.map +1 -0
- package/lib/zig-CUV2sTct.js +35 -0
- package/lib/zig-CUV2sTct.js.map +1 -0
- package/lib/zudoku.__internal.js +3084 -0
- package/lib/zudoku.__internal.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +32 -29
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +136 -0
- package/lib/zudoku.auth-azureb2c.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +112 -61
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +644 -664
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +154 -0
- package/lib/zudoku.auth-supabase.js.map +1 -0
- package/lib/zudoku.components.js +27 -3360
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +27 -0
- package/lib/zudoku.hooks.js.map +1 -0
- package/lib/zudoku.icons.js +10 -0
- package/lib/zudoku.icons.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +124 -0
- package/lib/zudoku.plugin-api-catalog.js.map +1 -0
- package/lib/zudoku.plugin-api-keys.js +635 -200
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +19 -0
- package/lib/zudoku.plugin-custom-pages.js.map +1 -0
- package/lib/zudoku.plugin-markdown.js +22 -25
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +8 -12
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +2 -2
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +61 -40
- package/lib/zudoku.plugin-search-inkeep.js.map +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +324 -0
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -0
- package/lib/zudoku.plugins.js +15 -0
- package/lib/zudoku.plugins.js.map +1 -0
- package/lib/zudoku.router.js +2507 -0
- package/lib/zudoku.router.js.map +1 -0
- package/package.json +230 -109
- package/src/app/ZuploBuildConfig.ts +33 -0
- package/src/app/defaultTheme.css +73 -0
- package/src/app/demo-cdn.html +31 -31
- package/src/app/demo.html +1 -1
- package/src/app/demo.tsx +26 -12
- package/src/app/entry.client.tsx +75 -8
- package/src/app/entry.server.tsx +97 -68
- package/src/app/env.ts +43 -0
- package/src/app/font.geist.css +73 -0
- package/src/app/main.css +232 -134
- package/src/app/main.tsx +100 -80
- package/src/app/sentry.ts +24 -0
- package/src/app/standalone.tsx +15 -13
- package/src/lib/MissingIcon.tsx +22 -0
- package/src/lib/assets/language-icons/c.tsx +31 -0
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -0
- package/src/lib/assets/language-icons/cpp.tsx +35 -0
- package/src/lib/assets/language-icons/csharp.tsx +35 -0
- package/src/lib/assets/language-icons/css.tsx +36 -0
- package/src/lib/assets/language-icons/dart.tsx +39 -0
- package/src/lib/assets/language-icons/elixir.tsx +19 -0
- package/src/lib/assets/language-icons/go.tsx +19 -0
- package/src/lib/assets/language-icons/graphql.tsx +19 -0
- package/src/lib/assets/language-icons/html.tsx +24 -0
- package/src/lib/assets/language-icons/java.tsx +35 -0
- package/src/lib/assets/language-icons/javascript.tsx +11 -0
- package/src/lib/assets/language-icons/json.tsx +19 -0
- package/src/lib/assets/language-icons/kotlin.tsx +30 -0
- package/src/lib/assets/language-icons/markdown.tsx +19 -0
- package/src/lib/assets/language-icons/mdx.tsx +23 -0
- package/src/lib/assets/language-icons/objectivec.tsx +23 -0
- package/src/lib/assets/language-icons/ocaml.tsx +34 -0
- package/src/lib/assets/language-icons/php.tsx +19 -0
- package/src/lib/assets/language-icons/powershell.tsx +27 -0
- package/src/lib/assets/language-icons/python.tsx +23 -0
- package/src/lib/assets/language-icons/react.tsx +21 -0
- package/src/lib/assets/language-icons/ruby.tsx +19 -0
- package/src/lib/assets/language-icons/rust.tsx +19 -0
- package/src/lib/assets/language-icons/scala.tsx +19 -0
- package/src/lib/assets/language-icons/shell.tsx +19 -0
- package/src/lib/assets/language-icons/swift.tsx +19 -0
- package/src/lib/assets/language-icons/toml.tsx +23 -0
- package/src/lib/assets/language-icons/typescript.tsx +23 -0
- package/src/lib/assets/language-icons/xml.tsx +19 -0
- package/src/lib/assets/language-icons/yaml.tsx +23 -0
- package/src/lib/assets/language-icons/zig.tsx +32 -0
- package/src/lib/auth/issuer.test.ts +121 -0
- package/src/lib/auth/issuer.ts +44 -0
- package/src/lib/authentication/AuthenticationPlugin.tsx +6 -3
- package/src/lib/authentication/authentication.ts +29 -12
- package/src/lib/authentication/components/CallbackHandler.tsx +36 -50
- package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
- package/src/lib/authentication/components/SignIn.tsx +35 -7
- package/src/lib/authentication/components/SignOut.tsx +8 -6
- package/src/lib/authentication/components/SignUp.tsx +36 -5
- package/src/lib/authentication/errors.ts +27 -13
- package/src/lib/authentication/hook.ts +29 -7
- package/src/lib/authentication/providers/auth0.tsx +39 -19
- package/src/lib/authentication/providers/azureb2c.tsx +208 -0
- package/src/lib/authentication/providers/clerk.tsx +138 -54
- package/src/lib/authentication/providers/firebase.tsx +284 -0
- package/src/lib/authentication/providers/openid.tsx +175 -89
- package/src/lib/authentication/providers/supabase/SupabaseAuthUI.tsx +75 -0
- package/src/lib/authentication/providers/supabase.tsx +162 -0
- package/src/lib/authentication/state.ts +65 -7
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +335 -0
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -0
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -0
- package/src/lib/authentication/ui/icons/Github.tsx +16 -0
- package/src/lib/authentication/ui/icons/Google.tsx +16 -0
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -0
- package/src/lib/authentication/ui/icons/X.tsx +10 -0
- package/src/lib/authentication/use-broadcast/LICENSE.md +18 -0
- package/src/lib/authentication/use-broadcast/shared.ts +372 -0
- package/src/lib/authentication/use-broadcast/useBroadcast.ts +146 -0
- package/src/lib/components/AnchorLink.tsx +13 -8
- package/src/lib/components/Autocomplete.tsx +123 -0
- package/src/lib/components/Banner.tsx +15 -5
- package/src/lib/components/Bootstrap.tsx +44 -16
- package/src/lib/components/BuildCheck.tsx +88 -0
- package/src/lib/components/CategoryHeading.tsx +4 -1
- package/src/lib/components/ClientOnly.tsx +6 -3
- package/src/lib/components/DeveloperHint.tsx +6 -1
- package/src/lib/components/ErrorPage.tsx +3 -5
- package/src/lib/components/Footer.tsx +136 -0
- package/src/lib/components/Framed.tsx +51 -0
- package/src/lib/components/Header.tsx +122 -66
- package/src/lib/components/Heading.tsx +22 -19
- package/src/lib/components/InlineCode.tsx +15 -8
- package/src/lib/components/LanguageIcon.tsx +181 -0
- package/src/lib/components/Layout.tsx +28 -69
- package/src/lib/components/Main.tsx +51 -0
- package/src/lib/components/Markdown.tsx +45 -30
- package/src/lib/components/Meta.tsx +45 -0
- package/src/lib/components/MobileTopNavigation.tsx +98 -28
- package/src/lib/components/NotFoundPage.tsx +7 -6
- package/src/lib/components/PageProgress.tsx +28 -0
- package/src/lib/components/Pagination.tsx +45 -0
- package/src/lib/components/PathRenderer.tsx +61 -0
- package/src/lib/components/Search.tsx +20 -9
- package/src/lib/components/Slot.test.tsx +465 -0
- package/src/lib/components/Slot.tsx +64 -0
- package/src/lib/components/StatusPage.tsx +96 -0
- package/src/lib/components/ThemeSwitch.tsx +46 -0
- package/src/lib/components/TopNavigation.tsx +104 -27
- package/src/lib/components/Typography.tsx +14 -0
- package/src/lib/components/Zudoku.tsx +119 -0
- package/src/lib/components/cache.ts +27 -0
- package/src/lib/components/context/BypassProtectedRoutesContext.ts +3 -0
- package/src/lib/components/context/ComponentsContext.tsx +2 -2
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -0
- package/src/lib/components/context/SlotProvider.tsx +149 -0
- package/src/lib/components/context/ViewportAnchorContext.tsx +35 -37
- package/src/lib/components/context/ZudokuContext.ts +87 -29
- package/src/lib/components/context/ZudokuProvider.tsx +4 -3
- package/src/lib/components/index.ts +34 -17
- package/src/lib/components/navigation/Navigation.tsx +50 -0
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -0
- package/src/lib/components/navigation/NavigationCategory.tsx +153 -0
- package/src/lib/components/navigation/NavigationItem.tsx +148 -0
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -0
- package/src/lib/components/navigation/PoweredByZudoku.tsx +33 -0
- package/src/lib/components/navigation/Toc.tsx +126 -0
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -0
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -0
- package/src/lib/components/navigation/utils.ts +85 -50
- package/src/lib/core/RouteGuard.tsx +116 -0
- package/src/lib/core/ZudokuContext.ts +249 -0
- package/src/lib/core/__internal.tsx +30 -0
- package/src/lib/core/plugins.ts +56 -23
- package/src/lib/core/router.ts +1 -0
- package/src/lib/errors/ErrorAlert.tsx +29 -17
- package/src/lib/errors/RouterError.tsx +8 -3
- package/src/lib/errors/TopLevelError.tsx +2 -4
- package/src/lib/hooks/index.ts +16 -0
- package/src/lib/hooks/useEvent.test.tsx +151 -0
- package/src/lib/hooks/useEvent.ts +41 -0
- package/src/lib/hooks/useHotkey.ts +70 -0
- package/src/lib/icons.ts +1 -0
- package/src/lib/oas/graphql/circular.ts +58 -0
- package/src/lib/oas/graphql/index.ts +358 -116
- package/src/lib/oas/parser/dereference/index.ts +12 -5
- package/src/lib/oas/parser/dereference/resolveRef.ts +4 -4
- package/src/lib/oas/parser/index.ts +22 -32
- package/src/lib/oas/parser/upgrade/index.ts +105 -39
- package/src/lib/plugins/api-catalog/Catalog.tsx +80 -0
- package/src/lib/plugins/api-catalog/index.tsx +115 -0
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +79 -49
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -0
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +12 -8
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +441 -122
- package/src/lib/plugins/api-keys/index.tsx +150 -66
- package/src/lib/plugins/custom-pages/index.tsx +32 -0
- package/src/lib/plugins/markdown/MdxPage.tsx +238 -62
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -0
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -0
- package/src/lib/plugins/markdown/index.tsx +39 -12
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -0
- package/src/lib/plugins/openapi/ColorizedParam.tsx +51 -23
- package/src/lib/plugins/openapi/Endpoint.tsx +83 -22
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -0
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -0
- package/src/lib/plugins/openapi/OasProvider.tsx +52 -0
- package/src/lib/plugins/openapi/OperationList.tsx +265 -73
- package/src/lib/plugins/openapi/OperationListItem.tsx +147 -91
- package/src/lib/plugins/openapi/ParamInfos.tsx +91 -0
- package/src/lib/plugins/openapi/ParameterList.tsx +43 -27
- package/src/lib/plugins/openapi/ParameterListItem.tsx +137 -39
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +28 -5
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +52 -28
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +87 -64
- package/src/lib/plugins/openapi/SchemaList.tsx +157 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +236 -174
- package/src/lib/plugins/openapi/SidecarBox.tsx +14 -4
- package/src/lib/plugins/openapi/SidecarExamples.tsx +174 -0
- package/src/lib/plugins/openapi/SimpleSelect.tsx +11 -3
- package/src/lib/plugins/openapi/StaggeredRender.tsx +1 -1
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +65 -0
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
- package/src/lib/plugins/openapi/client/createServer.ts +9 -4
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +46 -0
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -0
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -0
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +114 -0
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -0
- package/src/lib/plugins/openapi/context.tsx +2 -2
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +12 -19
- package/src/lib/plugins/openapi/graphql/gql.ts +46 -30
- package/src/lib/plugins/openapi/graphql/graphql.ts +438 -598
- package/src/lib/plugins/openapi/index.tsx +161 -157
- package/src/lib/plugins/openapi/interfaces.ts +77 -4
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +271 -0
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +173 -58
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -0
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +36 -70
- package/src/lib/plugins/openapi/playground/Playground.tsx +464 -263
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +24 -30
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -112
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -0
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -0
- package/src/lib/plugins/openapi/playground/createUrl.ts +6 -1
- package/src/lib/plugins/openapi/playground/fileUtils.ts +32 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +25 -0
- package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
- package/src/lib/plugins/openapi/playground/result-panel/Highlight.tsx +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +339 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +102 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.test.ts +223 -0
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -0
- package/src/lib/plugins/openapi/processors/removeParameters.test.ts +183 -0
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -0
- package/src/lib/plugins/openapi/processors/removePaths.test.ts +167 -0
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -0
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -0
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -0
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +175 -0
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +140 -139
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -0
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -0
- package/src/lib/plugins/openapi/schema/utils.ts +30 -13
- package/src/lib/plugins/openapi/state.ts +36 -0
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +107 -0
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -0
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +95 -45
- package/src/lib/plugins/openapi/util/getRoutes.tsx +198 -0
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -0
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -0
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -0
- package/src/lib/plugins/redirect/index.tsx +6 -10
- package/src/lib/plugins/search-inkeep/index.tsx +83 -32
- package/src/lib/plugins/search-inkeep/inkeep.ts +15 -23
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +163 -0
- package/src/lib/plugins/search-pagefind/ResultList.tsx +113 -0
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -0
- package/src/lib/plugins/search-pagefind/index.tsx +21 -0
- package/src/lib/plugins/search-pagefind/types.ts +118 -0
- package/src/lib/shiki.ts +161 -0
- package/src/lib/ui/Accordion.tsx +56 -0
- package/src/lib/ui/ActionButton.tsx +30 -0
- package/src/lib/ui/Alert.tsx +65 -0
- package/src/lib/ui/AlertDialog.tsx +139 -0
- package/src/lib/ui/AspectRatio.tsx +5 -0
- package/src/lib/ui/Badge.tsx +46 -0
- package/src/lib/ui/Breadcrumb.tsx +116 -0
- package/src/lib/ui/Button.tsx +14 -8
- package/src/lib/ui/Callout.tsx +47 -21
- package/src/lib/ui/Card.tsx +1 -1
- package/src/lib/ui/Carousel.tsx +260 -0
- package/src/lib/ui/Checkbox.tsx +28 -0
- package/src/lib/ui/CodeBlock.tsx +79 -0
- package/src/lib/ui/Collapsible.tsx +31 -0
- package/src/lib/ui/Command.tsx +191 -0
- package/src/lib/ui/Dialog.tsx +138 -0
- package/src/lib/ui/Drawer.tsx +38 -36
- package/src/lib/ui/DropdownMenu.tsx +4 -4
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -0
- package/src/lib/ui/Form.tsx +177 -0
- package/src/lib/ui/Frame.tsx +81 -0
- package/src/lib/ui/HoverCard.tsx +27 -0
- package/src/lib/ui/Input.tsx +2 -3
- package/src/lib/ui/Item.tsx +192 -0
- package/src/lib/ui/Label.tsx +24 -0
- package/src/lib/ui/NativeSelect.tsx +47 -0
- package/src/lib/ui/Pagination.tsx +116 -0
- package/src/lib/ui/Popover.tsx +29 -0
- package/src/lib/ui/Progress.tsx +26 -0
- package/src/lib/ui/RadioGroup.tsx +42 -0
- package/src/lib/ui/ReactComponentDoc.tsx +68 -0
- package/src/lib/ui/ScrollArea.tsx +46 -0
- package/src/lib/ui/Secret.tsx +123 -0
- package/src/lib/ui/Select.tsx +184 -0
- package/src/lib/ui/Separator.tsx +25 -0
- package/src/lib/ui/Skeleton.tsx +15 -0
- package/src/lib/ui/Slider.tsx +26 -0
- package/src/lib/ui/Stepper.tsx +8 -0
- package/src/lib/ui/Switch.tsx +27 -0
- package/src/lib/ui/SyntaxHighlight.tsx +40 -0
- package/src/lib/ui/Tabs.tsx +2 -2
- package/src/lib/ui/Textarea.tsx +23 -0
- package/src/lib/ui/Toggle.tsx +43 -0
- package/src/lib/ui/ToggleGroup.tsx +59 -0
- package/src/lib/ui/Tooltip.tsx +65 -0
- package/src/lib/ui/Value.tsx +42 -0
- package/src/lib/ui/util.tsx +3 -0
- package/src/lib/util/MdxComponents.tsx +58 -26
- package/src/lib/util/cn.ts +1 -1
- package/src/lib/util/createVariantComponent.tsx +33 -7
- package/src/lib/util/detectOS.ts +9 -0
- package/src/lib/util/ensureArray.ts +3 -0
- package/src/lib/util/flattenAllOf.test.ts +637 -0
- package/src/lib/util/flattenAllOf.ts +101 -0
- package/src/lib/util/groupBy.ts +1 -0
- package/src/lib/util/humanFileSize.test.ts +24 -0
- package/src/lib/util/humanFileSize.ts +15 -0
- package/src/lib/util/invariant.ts +18 -3
- package/src/lib/util/joinPath.tsx +3 -0
- package/src/lib/util/joinUrl.test.ts +62 -0
- package/src/lib/util/joinUrl.ts +57 -0
- package/src/lib/util/os.ts +18 -0
- package/src/lib/util/pastellize.ts +4 -4
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -0
- package/src/lib/util/syncZustandState.ts +22 -0
- package/src/lib/util/traverse.ts +70 -0
- package/src/lib/util/types.ts +7 -0
- package/src/lib/util/url.test.ts +51 -0
- package/src/lib/util/url.ts +18 -0
- package/src/lib/util/useCopyToClipboard.ts +17 -0
- package/src/lib/util/useExposedProps.tsx +27 -0
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -0
- package/src/lib/util/useLatest.ts +18 -0
- package/src/lib/util/useOnScreen.ts +34 -0
- package/src/lib/util/useScrollToAnchor.ts +51 -40
- package/src/lib/util/useScrollToTop.ts +9 -4
- package/src/shiki/langs/abap.js +1 -0
- package/src/shiki/langs/actionscript-3.js +1 -0
- package/src/shiki/langs/ada.js +1 -0
- package/src/shiki/langs/angular-expression.js +1 -0
- package/src/shiki/langs/angular-html.js +1 -0
- package/src/shiki/langs/angular-inline-style.js +1 -0
- package/src/shiki/langs/angular-inline-template.js +1 -0
- package/src/shiki/langs/angular-let-declaration.js +1 -0
- package/src/shiki/langs/angular-template-blocks.js +1 -0
- package/src/shiki/langs/angular-template.js +1 -0
- package/src/shiki/langs/angular-ts.js +1 -0
- package/src/shiki/langs/apache.js +1 -0
- package/src/shiki/langs/apex.js +1 -0
- package/src/shiki/langs/apl.js +1 -0
- package/src/shiki/langs/applescript.js +1 -0
- package/src/shiki/langs/ara.js +1 -0
- package/src/shiki/langs/asciidoc.js +1 -0
- package/src/shiki/langs/asm.js +1 -0
- package/src/shiki/langs/astro.js +1 -0
- package/src/shiki/langs/awk.js +1 -0
- package/src/shiki/langs/ballerina.js +1 -0
- package/src/shiki/langs/bat.js +1 -0
- package/src/shiki/langs/beancount.js +1 -0
- package/src/shiki/langs/berry.js +1 -0
- package/src/shiki/langs/bibtex.js +1 -0
- package/src/shiki/langs/bicep.js +1 -0
- package/src/shiki/langs/blade.js +1 -0
- package/src/shiki/langs/bsl.js +1 -0
- package/src/shiki/langs/c.js +1 -0
- package/src/shiki/langs/cadence.js +1 -0
- package/src/shiki/langs/cairo.js +1 -0
- package/src/shiki/langs/clarity.js +1 -0
- package/src/shiki/langs/clojure.js +1 -0
- package/src/shiki/langs/cmake.js +1 -0
- package/src/shiki/langs/cobol.js +1 -0
- package/src/shiki/langs/codeowners.js +1 -0
- package/src/shiki/langs/codeql.js +1 -0
- package/src/shiki/langs/coffee.js +1 -0
- package/src/shiki/langs/common-lisp.js +1 -0
- package/src/shiki/langs/coq.js +1 -0
- package/src/shiki/langs/cpp-macro.js +1 -0
- package/src/shiki/langs/cpp.js +1 -0
- package/src/shiki/langs/crystal.js +1 -0
- package/src/shiki/langs/csharp.js +1 -0
- package/src/shiki/langs/css.js +1 -0
- package/src/shiki/langs/csv.js +1 -0
- package/src/shiki/langs/cue.js +1 -0
- package/src/shiki/langs/cypher.js +1 -0
- package/src/shiki/langs/d.js +1 -0
- package/src/shiki/langs/dart.js +1 -0
- package/src/shiki/langs/dax.js +1 -0
- package/src/shiki/langs/desktop.js +1 -0
- package/src/shiki/langs/diff.js +1 -0
- package/src/shiki/langs/docker.js +1 -0
- package/src/shiki/langs/dotenv.js +1 -0
- package/src/shiki/langs/dream-maker.js +1 -0
- package/src/shiki/langs/edge.js +1 -0
- package/src/shiki/langs/elixir.js +1 -0
- package/src/shiki/langs/elm.js +1 -0
- package/src/shiki/langs/emacs-lisp.js +1 -0
- package/src/shiki/langs/erb.js +1 -0
- package/src/shiki/langs/erlang.js +1 -0
- package/src/shiki/langs/es-tag-css.js +1 -0
- package/src/shiki/langs/es-tag-glsl.js +1 -0
- package/src/shiki/langs/es-tag-html.js +1 -0
- package/src/shiki/langs/es-tag-sql.js +1 -0
- package/src/shiki/langs/es-tag-xml.js +1 -0
- package/src/shiki/langs/fennel.js +1 -0
- package/src/shiki/langs/fish.js +1 -0
- package/src/shiki/langs/fluent.js +1 -0
- package/src/shiki/langs/fortran-fixed-form.js +1 -0
- package/src/shiki/langs/fortran-free-form.js +1 -0
- package/src/shiki/langs/fsharp.js +1 -0
- package/src/shiki/langs/gdresource.js +1 -0
- package/src/shiki/langs/gdscript.js +1 -0
- package/src/shiki/langs/gdshader.js +1 -0
- package/src/shiki/langs/genie.js +1 -0
- package/src/shiki/langs/gherkin.js +1 -0
- package/src/shiki/langs/git-commit.js +1 -0
- package/src/shiki/langs/git-rebase.js +1 -0
- package/src/shiki/langs/gleam.js +1 -0
- package/src/shiki/langs/glimmer-js.js +1 -0
- package/src/shiki/langs/glimmer-ts.js +1 -0
- package/src/shiki/langs/glsl.js +1 -0
- package/src/shiki/langs/gnuplot.js +1 -0
- package/src/shiki/langs/go.js +1 -0
- package/src/shiki/langs/graphql.js +1 -0
- package/src/shiki/langs/groovy.js +1 -0
- package/src/shiki/langs/hack.js +1 -0
- package/src/shiki/langs/haml.js +1 -0
- package/src/shiki/langs/handlebars.js +1 -0
- package/src/shiki/langs/haskell.js +1 -0
- package/src/shiki/langs/haxe.js +1 -0
- package/src/shiki/langs/hcl.js +1 -0
- package/src/shiki/langs/hjson.js +1 -0
- package/src/shiki/langs/hlsl.js +1 -0
- package/src/shiki/langs/html-derivative.js +1 -0
- package/src/shiki/langs/html.js +1 -0
- package/src/shiki/langs/http.js +1 -0
- package/src/shiki/langs/hurl.js +1 -0
- package/src/shiki/langs/hxml.js +1 -0
- package/src/shiki/langs/hy.js +1 -0
- package/src/shiki/langs/imba.js +1 -0
- package/src/shiki/langs/ini.js +1 -0
- package/src/shiki/langs/java.js +1 -0
- package/src/shiki/langs/javascript.js +1 -0
- package/src/shiki/langs/jinja-html.js +1 -0
- package/src/shiki/langs/jinja.js +1 -0
- package/src/shiki/langs/jison.js +1 -0
- package/src/shiki/langs/json.js +1 -0
- package/src/shiki/langs/json5.js +1 -0
- package/src/shiki/langs/jsonc.js +1 -0
- package/src/shiki/langs/jsonl.js +1 -0
- package/src/shiki/langs/jsonnet.js +1 -0
- package/src/shiki/langs/jssm.js +1 -0
- package/src/shiki/langs/jsx.js +1 -0
- package/src/shiki/langs/julia.js +1 -0
- package/src/shiki/langs/kdl.js +1 -0
- package/src/shiki/langs/kotlin.js +1 -0
- package/src/shiki/langs/kusto.js +1 -0
- package/src/shiki/langs/latex.js +1 -0
- package/src/shiki/langs/lean.js +1 -0
- package/src/shiki/langs/less.js +1 -0
- package/src/shiki/langs/liquid.js +1 -0
- package/src/shiki/langs/llvm.js +1 -0
- package/src/shiki/langs/log.js +1 -0
- package/src/shiki/langs/logo.js +1 -0
- package/src/shiki/langs/lua.js +1 -0
- package/src/shiki/langs/luau.js +1 -0
- package/src/shiki/langs/make.js +1 -0
- package/src/shiki/langs/markdown-vue.js +1 -0
- package/src/shiki/langs/markdown.js +1 -0
- package/src/shiki/langs/marko.js +1 -0
- package/src/shiki/langs/matlab.js +1 -0
- package/src/shiki/langs/mdc.js +1 -0
- package/src/shiki/langs/mdx.js +1 -0
- package/src/shiki/langs/mermaid.js +1 -0
- package/src/shiki/langs/mipsasm.js +1 -0
- package/src/shiki/langs/mojo.js +1 -0
- package/src/shiki/langs/move.js +1 -0
- package/src/shiki/langs/narrat.js +1 -0
- package/src/shiki/langs/nextflow.js +1 -0
- package/src/shiki/langs/nginx.js +1 -0
- package/src/shiki/langs/nim.js +1 -0
- package/src/shiki/langs/nix.js +1 -0
- package/src/shiki/langs/nushell.js +1 -0
- package/src/shiki/langs/objective-c.js +1 -0
- package/src/shiki/langs/objective-cpp.js +1 -0
- package/src/shiki/langs/ocaml.js +1 -0
- package/src/shiki/langs/pascal.js +1 -0
- package/src/shiki/langs/perl.js +1 -0
- package/src/shiki/langs/php.js +1 -0
- package/src/shiki/langs/pkl.js +1 -0
- package/src/shiki/langs/plsql.js +1 -0
- package/src/shiki/langs/po.js +1 -0
- package/src/shiki/langs/polar.js +1 -0
- package/src/shiki/langs/postcss.js +1 -0
- package/src/shiki/langs/powerquery.js +1 -0
- package/src/shiki/langs/powershell.js +1 -0
- package/src/shiki/langs/prisma.js +1 -0
- package/src/shiki/langs/prolog.js +1 -0
- package/src/shiki/langs/proto.js +1 -0
- package/src/shiki/langs/pug.js +1 -0
- package/src/shiki/langs/puppet.js +1 -0
- package/src/shiki/langs/purescript.js +1 -0
- package/src/shiki/langs/python.js +1 -0
- package/src/shiki/langs/qml.js +1 -0
- package/src/shiki/langs/qmldir.js +1 -0
- package/src/shiki/langs/qss.js +1 -0
- package/src/shiki/langs/r.js +1 -0
- package/src/shiki/langs/racket.js +1 -0
- package/src/shiki/langs/raku.js +1 -0
- package/src/shiki/langs/razor.js +1 -0
- package/src/shiki/langs/reg.js +1 -0
- package/src/shiki/langs/regexp.js +1 -0
- package/src/shiki/langs/rel.js +1 -0
- package/src/shiki/langs/riscv.js +1 -0
- package/src/shiki/langs/rosmsg.js +1 -0
- package/src/shiki/langs/rst.js +1 -0
- package/src/shiki/langs/ruby.js +1 -0
- package/src/shiki/langs/rust.js +1 -0
- package/src/shiki/langs/sas.js +1 -0
- package/src/shiki/langs/sass.js +1 -0
- package/src/shiki/langs/scala.js +1 -0
- package/src/shiki/langs/scheme.js +1 -0
- package/src/shiki/langs/scss.js +1 -0
- package/src/shiki/langs/sdbl.js +1 -0
- package/src/shiki/langs/shaderlab.js +1 -0
- package/src/shiki/langs/shellscript.js +1 -0
- package/src/shiki/langs/shellsession.js +1 -0
- package/src/shiki/langs/smalltalk.js +1 -0
- package/src/shiki/langs/solidity.js +1 -0
- package/src/shiki/langs/soy.js +1 -0
- package/src/shiki/langs/sparql.js +1 -0
- package/src/shiki/langs/splunk.js +1 -0
- package/src/shiki/langs/sql.js +1 -0
- package/src/shiki/langs/ssh-config.js +1 -0
- package/src/shiki/langs/stata.js +1 -0
- package/src/shiki/langs/stylus.js +1 -0
- package/src/shiki/langs/svelte.js +1 -0
- package/src/shiki/langs/swift.js +1 -0
- package/src/shiki/langs/system-verilog.js +1 -0
- package/src/shiki/langs/systemd.js +1 -0
- package/src/shiki/langs/talonscript.js +1 -0
- package/src/shiki/langs/tasl.js +1 -0
- package/src/shiki/langs/tcl.js +1 -0
- package/src/shiki/langs/templ.js +1 -0
- package/src/shiki/langs/terraform.js +1 -0
- package/src/shiki/langs/tex.js +1 -0
- package/src/shiki/langs/toml.js +1 -0
- package/src/shiki/langs/ts-tags.js +1 -0
- package/src/shiki/langs/tsv.js +1 -0
- package/src/shiki/langs/tsx.js +1 -0
- package/src/shiki/langs/turtle.js +1 -0
- package/src/shiki/langs/twig.js +1 -0
- package/src/shiki/langs/typescript.js +1 -0
- package/src/shiki/langs/typespec.js +1 -0
- package/src/shiki/langs/typst.js +1 -0
- package/src/shiki/langs/v.js +1 -0
- package/src/shiki/langs/vala.js +1 -0
- package/src/shiki/langs/vb.js +1 -0
- package/src/shiki/langs/verilog.js +1 -0
- package/src/shiki/langs/vhdl.js +1 -0
- package/src/shiki/langs/viml.js +1 -0
- package/src/shiki/langs/vue-directives.js +1 -0
- package/src/shiki/langs/vue-html.js +1 -0
- package/src/shiki/langs/vue-interpolations.js +1 -0
- package/src/shiki/langs/vue-sfc-style-variable-injection.js +1 -0
- package/src/shiki/langs/vue-vine.js +1 -0
- package/src/shiki/langs/vue.js +1 -0
- package/src/shiki/langs/vyper.js +1 -0
- package/src/shiki/langs/wasm.js +1 -0
- package/src/shiki/langs/wenyan.js +1 -0
- package/src/shiki/langs/wgsl.js +1 -0
- package/src/shiki/langs/wikitext.js +1 -0
- package/src/shiki/langs/wit.js +1 -0
- package/src/shiki/langs/wolfram.js +1 -0
- package/src/shiki/langs/xml.js +1 -0
- package/src/shiki/langs/xsl.js +1 -0
- package/src/shiki/langs/yaml.js +1 -0
- package/src/shiki/langs/zenscript.js +1 -0
- package/src/shiki/langs/zig.js +1 -0
- package/src/shiki/themes/andromeeda.js +1 -0
- package/src/shiki/themes/aurora-x.js +1 -0
- package/src/shiki/themes/ayu-dark.js +1 -0
- package/src/shiki/themes/catppuccin-frappe.js +1 -0
- package/src/shiki/themes/catppuccin-latte.js +1 -0
- package/src/shiki/themes/catppuccin-macchiato.js +1 -0
- package/src/shiki/themes/catppuccin-mocha.js +1 -0
- package/src/shiki/themes/dark-plus.js +1 -0
- package/src/shiki/themes/dracula-soft.js +1 -0
- package/src/shiki/themes/dracula.js +1 -0
- package/src/shiki/themes/everforest-dark.js +1 -0
- package/src/shiki/themes/everforest-light.js +1 -0
- package/src/shiki/themes/github-dark-default.js +1 -0
- package/src/shiki/themes/github-dark-dimmed.js +1 -0
- package/src/shiki/themes/github-dark-high-contrast.js +1 -0
- package/src/shiki/themes/github-dark.js +1 -0
- package/src/shiki/themes/github-light-default.js +1 -0
- package/src/shiki/themes/github-light-high-contrast.js +1 -0
- package/src/shiki/themes/github-light.js +1 -0
- package/src/shiki/themes/gruvbox-dark-hard.js +1 -0
- package/src/shiki/themes/gruvbox-dark-medium.js +1 -0
- package/src/shiki/themes/gruvbox-dark-soft.js +1 -0
- package/src/shiki/themes/gruvbox-light-hard.js +1 -0
- package/src/shiki/themes/gruvbox-light-medium.js +1 -0
- package/src/shiki/themes/gruvbox-light-soft.js +1 -0
- package/src/shiki/themes/houston.js +1 -0
- package/src/shiki/themes/kanagawa-dragon.js +1 -0
- package/src/shiki/themes/kanagawa-lotus.js +1 -0
- package/src/shiki/themes/kanagawa-wave.js +1 -0
- package/src/shiki/themes/laserwave.js +1 -0
- package/src/shiki/themes/light-plus.js +1 -0
- package/src/shiki/themes/material-theme-darker.js +1 -0
- package/src/shiki/themes/material-theme-lighter.js +1 -0
- package/src/shiki/themes/material-theme-ocean.js +1 -0
- package/src/shiki/themes/material-theme-palenight.js +1 -0
- package/src/shiki/themes/material-theme.js +1 -0
- package/src/shiki/themes/min-dark.js +1 -0
- package/src/shiki/themes/min-light.js +1 -0
- package/src/shiki/themes/monokai.js +1 -0
- package/src/shiki/themes/night-owl.js +1 -0
- package/src/shiki/themes/nord.js +1 -0
- package/src/shiki/themes/one-dark-pro.js +1 -0
- package/src/shiki/themes/one-light.js +1 -0
- package/src/shiki/themes/plastic.js +1 -0
- package/src/shiki/themes/poimandres.js +1 -0
- package/src/shiki/themes/red.js +1 -0
- package/src/shiki/themes/rose-pine-dawn.js +1 -0
- package/src/shiki/themes/rose-pine-moon.js +1 -0
- package/src/shiki/themes/rose-pine.js +1 -0
- package/src/shiki/themes/slack-dark.js +1 -0
- package/src/shiki/themes/slack-ochin.js +1 -0
- package/src/shiki/themes/snazzy-light.js +1 -0
- package/src/shiki/themes/solarized-dark.js +1 -0
- package/src/shiki/themes/solarized-light.js +1 -0
- package/src/shiki/themes/synthwave-84.js +1 -0
- package/src/shiki/themes/tokyo-night.js +1 -0
- package/src/shiki/themes/vesper.js +1 -0
- package/src/shiki/themes/vitesse-black.js +1 -0
- package/src/shiki/themes/vitesse-dark.js +1 -0
- package/src/shiki/themes/vitesse-light.js +1 -0
- package/LICENSE.md +0 -9
- package/dist/app/tailwind.d.ts +0 -3
- package/dist/app/tailwind.js +0 -65
- package/dist/app/tailwind.js.map +0 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +0 -185
- package/dist/config/validators/InputSidebarSchema.js +0 -73
- package/dist/config/validators/InputSidebarSchema.js.map +0 -1
- package/dist/config/validators/SidebarSchema.d.ts +0 -23
- package/dist/config/validators/SidebarSchema.js +0 -82
- package/dist/config/validators/SidebarSchema.js.map +0 -1
- package/dist/internal.d.ts +0 -1
- package/dist/internal.js +0 -2
- package/dist/internal.js.map +0 -1
- package/dist/lib/components/DevPortal.d.ts +0 -7
- package/dist/lib/components/DevPortal.js +0 -54
- package/dist/lib/components/DevPortal.js.map +0 -1
- package/dist/lib/components/Dialog.d.ts +0 -19
- package/dist/lib/components/Dialog.js +0 -23
- package/dist/lib/components/Dialog.js.map +0 -1
- package/dist/lib/components/Select.d.ts +0 -13
- package/dist/lib/components/Select.js +0 -27
- package/dist/lib/components/Select.js.map +0 -1
- package/dist/lib/components/SlotletProvider.d.ts +0 -9
- package/dist/lib/components/SlotletProvider.js +0 -16
- package/dist/lib/components/SlotletProvider.js.map +0 -1
- package/dist/lib/components/SyntaxHighlight.d.ts +0 -11
- package/dist/lib/components/SyntaxHighlight.js +0 -50
- package/dist/lib/components/SyntaxHighlight.js.map +0 -1
- package/dist/lib/components/context/PluginSystem.js +0 -2
- package/dist/lib/components/context/PluginSystem.js.map +0 -1
- package/dist/lib/components/context/ThemeContext.d.ts +0 -2
- package/dist/lib/components/context/ThemeContext.js +0 -7
- package/dist/lib/components/context/ThemeContext.js.map +0 -1
- package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
- package/dist/lib/components/context/ThemeProvider.js +0 -23
- package/dist/lib/components/context/ThemeProvider.js.map +0 -1
- package/dist/lib/components/navigation/Sidebar.d.ts +0 -1
- package/dist/lib/components/navigation/Sidebar.js +0 -14
- package/dist/lib/components/navigation/Sidebar.js.map +0 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +0 -23
- package/dist/lib/components/navigation/SidebarBadge.js +0 -24
- package/dist/lib/components/navigation/SidebarBadge.js.map +0 -1
- package/dist/lib/components/navigation/SidebarCategory.d.ts +0 -5
- package/dist/lib/components/navigation/SidebarCategory.js +0 -41
- package/dist/lib/components/navigation/SidebarCategory.js.map +0 -1
- package/dist/lib/components/navigation/SidebarItem.d.ts +0 -12
- package/dist/lib/components/navigation/SidebarItem.js +0 -43
- package/dist/lib/components/navigation/SidebarItem.js.map +0 -1
- package/dist/lib/components/navigation/SidebarWrapper.d.ts +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js +0 -6
- package/dist/lib/components/navigation/SidebarWrapper.js.map +0 -1
- package/dist/lib/core/DevPortalContext.d.ts +0 -78
- package/dist/lib/core/DevPortalContext.js +0 -49
- package/dist/lib/core/DevPortalContext.js.map +0 -1
- package/dist/lib/plugins/custom-page/index.d.ts +0 -8
- package/dist/lib/plugins/custom-page/index.js +0 -12
- package/dist/lib/plugins/custom-page/index.js.map +0 -1
- package/dist/lib/plugins/markdown/Toc.js +0 -48
- package/dist/lib/plugins/markdown/Toc.js.map +0 -1
- package/dist/lib/plugins/markdown/generateRoutes.d.ts +0 -3
- package/dist/lib/plugins/markdown/generateRoutes.js +0 -19
- package/dist/lib/plugins/markdown/generateRoutes.js.map +0 -1
- package/dist/lib/plugins/openapi/Route.d.ts +0 -6
- package/dist/lib/plugins/openapi/Route.js +0 -8
- package/dist/lib/plugins/openapi/Route.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -12
- package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -46
- package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
- package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -61
- package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
- package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
- package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
- package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
- package/dist/lib/plugins/openapi/client/worker.js +0 -20
- package/dist/lib/plugins/openapi/client/worker.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +0 -1
- package/dist/lib/plugins/openapi/playground/Editor.js +0 -5
- package/dist/lib/plugins/openapi/playground/Editor.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
- package/dist/lib/plugins/openapi/playground/UrlDisplay.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js +0 -22
- package/dist/lib/plugins/openapi/playground/UrlDisplay.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.d.ts +0 -9
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js +0 -14
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.d.ts +0 -6
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js +0 -17
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.d.ts +0 -7
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js +0 -10
- package/dist/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.js.map +0 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.d.ts +0 -13
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +0 -28
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +0 -1
- package/dist/lib/plugins/openapi/util/urql.d.ts +0 -7
- package/dist/lib/plugins/openapi/util/urql.js +0 -8
- package/dist/lib/plugins/openapi/util/urql.js.map +0 -1
- package/dist/lib/plugins/openapi-worker.d.ts +0 -1
- package/dist/lib/plugins/openapi-worker.js +0 -2
- package/dist/lib/plugins/openapi-worker.js.map +0 -1
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.d.ts +0 -2
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js +0 -3
- package/dist/lib/plugins/search-inkeep/InkeepCustomTrigger.js.map +0 -1
- package/dist/lib/themeToggle.d.ts +0 -1
- package/dist/lib/themeToggle.js +0 -7
- package/dist/lib/themeToggle.js.map +0 -1
- package/dist/lib/ui/Note.d.ts +0 -8
- package/dist/lib/ui/Note.js +0 -23
- package/dist/lib/ui/Note.js.map +0 -1
- package/dist/lib/util/createWaitForNotify.d.ts +0 -1
- package/dist/lib/util/createWaitForNotify.js +0 -15
- package/dist/lib/util/createWaitForNotify.js.map +0 -1
- package/dist/lib/util/slugify.d.ts +0 -2
- package/dist/lib/util/slugify.js +0 -3
- package/dist/lib/util/slugify.js.map +0 -1
- package/dist/vite/plugin-custom-css.d.ts +0 -6
- package/dist/vite/plugin-custom-css.js +0 -55
- package/dist/vite/plugin-custom-css.js.map +0 -1
- package/dist/vite/plugin-docs.test.js +0 -30
- package/dist/vite/plugin-docs.test.js.map +0 -1
- package/dist/vite/plugin-html-transform.d.ts +0 -2
- package/dist/vite/plugin-html-transform.js +0 -15
- package/dist/vite/plugin-html-transform.js.map +0 -1
- package/dist/vite/plugin-icons.d.ts +0 -3
- package/dist/vite/plugin-icons.js +0 -47
- package/dist/vite/plugin-icons.js.map +0 -1
- package/dist/vite/plugin-sidebar.d.ts +0 -3
- package/dist/vite/plugin-sidebar.js +0 -33
- package/dist/vite/plugin-sidebar.js.map +0 -1
- package/dist/vite/prerender.d.ts +0 -17
- package/dist/vite/prerender.js +0 -87
- package/dist/vite/prerender.js.map +0 -1
- package/lib/AuthenticationPlugin-Bx9FK124.js +0 -55
- package/lib/AuthenticationPlugin-Bx9FK124.js.map +0 -1
- package/lib/CategoryHeading-XnFqN2lJ.js +0 -10
- package/lib/CategoryHeading-XnFqN2lJ.js.map +0 -1
- package/lib/DeveloperHint-FBb2uXJe.js +0 -16
- package/lib/DeveloperHint-FBb2uXJe.js.map +0 -1
- package/lib/ErrorPage-knunPbKI.js +0 -18
- package/lib/ErrorPage-knunPbKI.js.map +0 -1
- package/lib/InkeepCustomTrigger-CE5-K5ex.js +0 -6
- package/lib/InkeepCustomTrigger-CE5-K5ex.js.map +0 -1
- package/lib/Input-BEDZAKw0.js +0 -2198
- package/lib/Input-BEDZAKw0.js.map +0 -1
- package/lib/Markdown-B4aR03g6.js +0 -20279
- package/lib/Markdown-B4aR03g6.js.map +0 -1
- package/lib/MdxPage-BZyQsH8Z.js +0 -172
- package/lib/MdxPage-BZyQsH8Z.js.map +0 -1
- package/lib/OperationList-2NeWEM0u.js +0 -560
- package/lib/OperationList-2NeWEM0u.js.map +0 -1
- package/lib/Route-BZPewmrN.js +0 -14
- package/lib/Route-BZPewmrN.js.map +0 -1
- package/lib/SidebarBadge-COz0hgfa.js +0 -498
- package/lib/SidebarBadge-COz0hgfa.js.map +0 -1
- package/lib/SlotletProvider-DJMaOUDs.js +0 -238
- package/lib/SlotletProvider-DJMaOUDs.js.map +0 -1
- package/lib/Spinner-3cQDBVGr.js +0 -7
- package/lib/Spinner-3cQDBVGr.js.map +0 -1
- package/lib/ZudokuContext-cr-pTRY1.js +0 -1084
- package/lib/ZudokuContext-cr-pTRY1.js.map +0 -1
- package/lib/_commonjsHelpers-BkfeUUK-.js +0 -29
- package/lib/_commonjsHelpers-BkfeUUK-.js.map +0 -1
- package/lib/assets/index-B9EWVYfo.js +0 -4790
- package/lib/assets/index-B9EWVYfo.js.map +0 -1
- package/lib/assets/worker-BvD7B6MG.js +0 -15839
- package/lib/assets/worker-BvD7B6MG.js.map +0 -1
- package/lib/index-1EDgIO6b.js +0 -124
- package/lib/index-1EDgIO6b.js.map +0 -1
- package/lib/index-BG0g4WW0.js +0 -1771
- package/lib/index-BG0g4WW0.js.map +0 -1
- package/lib/index-CLd8ycZz.js +0 -4790
- package/lib/index-CLd8ycZz.js.map +0 -1
- package/lib/index-Dv2KZuEw.js +0 -5685
- package/lib/index-Dv2KZuEw.js.map +0 -1
- package/lib/index-Zezcv0xb.js +0 -2814
- package/lib/index-Zezcv0xb.js.map +0 -1
- package/lib/joinPath-B7kNnUX4.js +0 -8
- package/lib/joinPath-B7kNnUX4.js.map +0 -1
- package/lib/jsx-runtime-B6kdoens.js +0 -635
- package/lib/jsx-runtime-B6kdoens.js.map +0 -1
- package/lib/prism-bash.min-DadFsM4Z.js +0 -7
- package/lib/prism-bash.min-DadFsM4Z.js.map +0 -1
- package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
- package/lib/prism-csharp.min-Yizuc34Y.js.map +0 -1
- package/lib/prism-java.min-d5iT_mOd.js +0 -7
- package/lib/prism-java.min-d5iT_mOd.js.map +0 -1
- package/lib/prism-javascript.min-CEqHqgbm.js +0 -9
- package/lib/prism-javascript.min-CEqHqgbm.js.map +0 -1
- package/lib/prism-json.min-B1GJqK1k.js +0 -2
- package/lib/prism-json.min-B1GJqK1k.js.map +0 -1
- package/lib/prism-markdown.min-F3U-vPBi.js +0 -61
- package/lib/prism-markdown.min-F3U-vPBi.js.map +0 -1
- package/lib/prism-markup-BNGj0Tvm.js +0 -174
- package/lib/prism-markup-BNGj0Tvm.js.map +0 -1
- package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
- package/lib/prism-markup-templating-DZrrEs0A.js.map +0 -1
- package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
- package/lib/prism-objectivec.min-BXSWqpJJ.js.map +0 -1
- package/lib/prism-php.min-o7FpoMP_.js +0 -11
- package/lib/prism-php.min-o7FpoMP_.js.map +0 -1
- package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
- package/lib/prism-ruby.min-C7LwcKyz.js.map +0 -1
- package/lib/prism-typescript.min-oSVeWCAd.js +0 -6
- package/lib/prism-typescript.min-oSVeWCAd.js.map +0 -1
- package/lib/router-D2p7Olpn.js +0 -2971
- package/lib/router-D2p7Olpn.js.map +0 -1
- package/lib/slugify-DbLhpSPt.js +0 -28
- package/lib/slugify-DbLhpSPt.js.map +0 -1
- package/lib/state-lIwt9isb.js +0 -288
- package/lib/state-lIwt9isb.js.map +0 -1
- package/lib/urql-YhcsXYy8.js +0 -1591
- package/lib/urql-YhcsXYy8.js.map +0 -1
- package/lib/utils-ByIc_KIM.js +0 -749
- package/lib/utils-ByIc_KIM.js.map +0 -1
- package/lib/zudoku.openapi-worker.js +0 -16053
- package/lib/zudoku.openapi-worker.js.map +0 -1
- package/lib/zudoku.plugin-custom-page.js +0 -13
- package/lib/zudoku.plugin-custom-page.js.map +0 -1
- package/src/app/tailwind.ts +0 -68
- package/src/lib/components/DevPortal.tsx +0 -111
- package/src/lib/components/Dialog.tsx +0 -119
- package/src/lib/components/Select.tsx +0 -157
- package/src/lib/components/SlotletProvider.tsx +0 -30
- package/src/lib/components/SyntaxHighlight.tsx +0 -122
- package/src/lib/components/context/PluginSystem.ts +0 -0
- package/src/lib/components/context/ThemeContext.tsx +0 -8
- package/src/lib/components/context/ThemeProvider.tsx +0 -27
- package/src/lib/components/navigation/Sidebar.tsx +0 -39
- package/src/lib/components/navigation/SidebarBadge.tsx +0 -43
- package/src/lib/components/navigation/SidebarCategory.tsx +0 -131
- package/src/lib/components/navigation/SidebarItem.tsx +0 -130
- package/src/lib/components/navigation/SidebarWrapper.tsx +0 -26
- package/src/lib/core/DevPortalContext.ts +0 -135
- package/src/lib/plugins/custom-page/index.tsx +0 -22
- package/src/lib/plugins/markdown/Toc.tsx +0 -135
- package/src/lib/plugins/markdown/generateRoutes.tsx +0 -35
- package/src/lib/plugins/openapi/Route.tsx +0 -21
- package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -56
- package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -80
- package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
- package/src/lib/plugins/openapi/client/worker.ts +0 -30
- package/src/lib/plugins/openapi/playground/Editor.tsx +0 -4
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -77
- package/src/lib/plugins/openapi/playground/UrlDisplay.tsx +0 -32
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx +0 -47
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx +0 -54
- package/src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx +0 -30
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +0 -126
- package/src/lib/plugins/openapi/util/urql.ts +0 -8
- package/src/lib/plugins/openapi-worker.ts +0 -1
- package/src/lib/plugins/search-inkeep/InkeepCustomTrigger.tsx +0 -3
- package/src/lib/themeToggle.ts +0 -7
- package/src/lib/ui/Note.tsx +0 -58
- package/src/lib/util/createWaitForNotify.ts +0 -18
- package/src/lib/util/slugify.ts +0 -3
- /package/dist/{lib/components/context/PluginSystem.d.ts → config/validators/InputNavigationSchema.test-d.d.ts} +0 -0
- /package/dist/{lib/plugins/openapi/client/worker.d.ts → config/validators/validate.test.d.ts} +0 -0
- /package/dist/{vite/plugin-docs.test.d.ts → lib/auth/issuer.test.d.ts} +0 -0
- /package/dist/lib/{plugins/markdown → components/navigation}/Toc.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-nGbmHh_A.js","sources":["../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/identity.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/visit.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/doc/directives.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/doc/anchors.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/doc/applyReviver.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/toJS.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/Node.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/Alias.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/Scalar.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/doc/createNode.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/Collection.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyComment.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/foldFlowLines.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyString.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringify.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyPair.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/log.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/Pair.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyCollection.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/YAMLMap.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/common/map.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/nodes/YAMLSeq.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/common/seq.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/common/string.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/common/null.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/core/bool.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyNumber.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/core/float.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/core/int.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/core/schema.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/json/schema.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/tags.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/schema/Schema.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/stringify/stringifyDocument.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/doc/Document.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/errors.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-props.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/util-contains-newline.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/util-map-includes.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-block-map.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-block-seq.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-end.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/compose-collection.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/compose-scalar.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/compose-node.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/compose-doc.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/compose/composer.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/cst-scalar.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/cst-stringify.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/cst-visit.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/cst.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/lexer.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/line-counter.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/parse/parser.js","../../../node_modules/.pnpm/yaml@2.8.1/node_modules/yaml/browser/dist/public-api.js"],"sourcesContent":["const ALIAS = Symbol.for('yaml.alias');\nconst DOC = Symbol.for('yaml.document');\nconst MAP = Symbol.for('yaml.map');\nconst PAIR = Symbol.for('yaml.pair');\nconst SCALAR = Symbol.for('yaml.scalar');\nconst SEQ = Symbol.for('yaml.seq');\nconst NODE_TYPE = Symbol.for('yaml.node.type');\nconst isAlias = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === ALIAS;\nconst isDocument = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === DOC;\nconst isMap = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === MAP;\nconst isPair = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === PAIR;\nconst isScalar = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SCALAR;\nconst isSeq = (node) => !!node && typeof node === 'object' && node[NODE_TYPE] === SEQ;\nfunction isCollection(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case MAP:\n case SEQ:\n return true;\n }\n return false;\n}\nfunction isNode(node) {\n if (node && typeof node === 'object')\n switch (node[NODE_TYPE]) {\n case ALIAS:\n case MAP:\n case SCALAR:\n case SEQ:\n return true;\n }\n return false;\n}\nconst hasAnchor = (node) => (isScalar(node) || isCollection(node)) && !!node.anchor;\n\nexport { ALIAS, DOC, MAP, NODE_TYPE, PAIR, SCALAR, SEQ, hasAnchor, isAlias, isCollection, isDocument, isMap, isNode, isPair, isScalar, isSeq };\n","import { isDocument, isNode, isPair, isCollection, isMap, isSeq, isScalar, isAlias } from './nodes/identity.js';\n\nconst BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove node');\n/**\n * Apply a visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nfunction visit(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = visit_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n visit_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisit.SKIP = SKIP;\n/** Remove the current node */\nvisit.REMOVE = REMOVE;\nfunction visit_(key, node, visitor, path) {\n const ctrl = callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visit_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = visit_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = visit_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = visit_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\n/**\n * Apply an async visitor to an AST node or document.\n *\n * Walks through the tree (depth-first) starting from `node`, calling a\n * `visitor` function with three arguments:\n * - `key`: For sequence values and map `Pair`, the node's index in the\n * collection. Within a `Pair`, `'key'` or `'value'`, correspondingly.\n * `null` for the root node.\n * - `node`: The current node.\n * - `path`: The ancestry of the current node.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `Promise`: Must resolve to one of the following values\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this node, continue with next\n * sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current node, then continue with the next one\n * - `Node`: Replace the current node, then continue by visiting it\n * - `number`: While iterating the items of a sequence or map, set the index\n * of the next step. This is useful especially if the index of the current\n * node has changed.\n *\n * If `visitor` is a single function, it will be called with all values\n * encountered in the tree, including e.g. `null` values. Alternatively,\n * separate visitor functions may be defined for each `Map`, `Pair`, `Seq`,\n * `Alias` and `Scalar` node. To define the same visitor function for more than\n * one node type, use the `Collection` (map and seq), `Value` (map, seq & scalar)\n * and `Node` (alias, map, seq & scalar) targets. Of all these, only the most\n * specific defined one will be used for each node.\n */\nasync function visitAsync(node, visitor) {\n const visitor_ = initVisitor(visitor);\n if (isDocument(node)) {\n const cd = await visitAsync_(null, node.contents, visitor_, Object.freeze([node]));\n if (cd === REMOVE)\n node.contents = null;\n }\n else\n await visitAsync_(null, node, visitor_, Object.freeze([]));\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisitAsync.BREAK = BREAK;\n/** Do not visit the children of the current node */\nvisitAsync.SKIP = SKIP;\n/** Remove the current node */\nvisitAsync.REMOVE = REMOVE;\nasync function visitAsync_(key, node, visitor, path) {\n const ctrl = await callVisitor(key, node, visitor, path);\n if (isNode(ctrl) || isPair(ctrl)) {\n replaceNode(key, path, ctrl);\n return visitAsync_(key, ctrl, visitor, path);\n }\n if (typeof ctrl !== 'symbol') {\n if (isCollection(node)) {\n path = Object.freeze(path.concat(node));\n for (let i = 0; i < node.items.length; ++i) {\n const ci = await visitAsync_(i, node.items[i], visitor, path);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n node.items.splice(i, 1);\n i -= 1;\n }\n }\n }\n else if (isPair(node)) {\n path = Object.freeze(path.concat(node));\n const ck = await visitAsync_('key', node.key, visitor, path);\n if (ck === BREAK)\n return BREAK;\n else if (ck === REMOVE)\n node.key = null;\n const cv = await visitAsync_('value', node.value, visitor, path);\n if (cv === BREAK)\n return BREAK;\n else if (cv === REMOVE)\n node.value = null;\n }\n }\n return ctrl;\n}\nfunction initVisitor(visitor) {\n if (typeof visitor === 'object' &&\n (visitor.Collection || visitor.Node || visitor.Value)) {\n return Object.assign({\n Alias: visitor.Node,\n Map: visitor.Node,\n Scalar: visitor.Node,\n Seq: visitor.Node\n }, visitor.Value && {\n Map: visitor.Value,\n Scalar: visitor.Value,\n Seq: visitor.Value\n }, visitor.Collection && {\n Map: visitor.Collection,\n Seq: visitor.Collection\n }, visitor);\n }\n return visitor;\n}\nfunction callVisitor(key, node, visitor, path) {\n if (typeof visitor === 'function')\n return visitor(key, node, path);\n if (isMap(node))\n return visitor.Map?.(key, node, path);\n if (isSeq(node))\n return visitor.Seq?.(key, node, path);\n if (isPair(node))\n return visitor.Pair?.(key, node, path);\n if (isScalar(node))\n return visitor.Scalar?.(key, node, path);\n if (isAlias(node))\n return visitor.Alias?.(key, node, path);\n return undefined;\n}\nfunction replaceNode(key, path, node) {\n const parent = path[path.length - 1];\n if (isCollection(parent)) {\n parent.items[key] = node;\n }\n else if (isPair(parent)) {\n if (key === 'key')\n parent.key = node;\n else\n parent.value = node;\n }\n else if (isDocument(parent)) {\n parent.contents = node;\n }\n else {\n const pt = isAlias(parent) ? 'alias' : 'scalar';\n throw new Error(`Cannot replace node with ${pt} parent`);\n }\n}\n\nexport { visit, visitAsync };\n","import { isNode } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\nconst escapeChars = {\n '!': '%21',\n ',': '%2C',\n '[': '%5B',\n ']': '%5D',\n '{': '%7B',\n '}': '%7D'\n};\nconst escapeTagName = (tn) => tn.replace(/[!,[\\]{}]/g, ch => escapeChars[ch]);\nclass Directives {\n constructor(yaml, tags) {\n /**\n * The directives-end/doc-start marker `---`. If `null`, a marker may still be\n * included in the document's stringified representation.\n */\n this.docStart = null;\n /** The doc-end marker `...`. */\n this.docEnd = false;\n this.yaml = Object.assign({}, Directives.defaultYaml, yaml);\n this.tags = Object.assign({}, Directives.defaultTags, tags);\n }\n clone() {\n const copy = new Directives(this.yaml, this.tags);\n copy.docStart = this.docStart;\n return copy;\n }\n /**\n * During parsing, get a Directives instance for the current document and\n * update the stream state according to the current version's spec.\n */\n atDocument() {\n const res = new Directives(this.yaml, this.tags);\n switch (this.yaml.version) {\n case '1.1':\n this.atNextDocument = true;\n break;\n case '1.2':\n this.atNextDocument = false;\n this.yaml = {\n explicit: Directives.defaultYaml.explicit,\n version: '1.2'\n };\n this.tags = Object.assign({}, Directives.defaultTags);\n break;\n }\n return res;\n }\n /**\n * @param onError - May be called even if the action was successful\n * @returns `true` on success\n */\n add(line, onError) {\n if (this.atNextDocument) {\n this.yaml = { explicit: Directives.defaultYaml.explicit, version: '1.1' };\n this.tags = Object.assign({}, Directives.defaultTags);\n this.atNextDocument = false;\n }\n const parts = line.trim().split(/[ \\t]+/);\n const name = parts.shift();\n switch (name) {\n case '%TAG': {\n if (parts.length !== 2) {\n onError(0, '%TAG directive should contain exactly two parts');\n if (parts.length < 2)\n return false;\n }\n const [handle, prefix] = parts;\n this.tags[handle] = prefix;\n return true;\n }\n case '%YAML': {\n this.yaml.explicit = true;\n if (parts.length !== 1) {\n onError(0, '%YAML directive should contain exactly one part');\n return false;\n }\n const [version] = parts;\n if (version === '1.1' || version === '1.2') {\n this.yaml.version = version;\n return true;\n }\n else {\n const isValid = /^\\d+\\.\\d+$/.test(version);\n onError(6, `Unsupported YAML version ${version}`, isValid);\n return false;\n }\n }\n default:\n onError(0, `Unknown directive ${name}`, true);\n return false;\n }\n }\n /**\n * Resolves a tag, matching handles to those defined in %TAG directives.\n *\n * @returns Resolved tag, which may also be the non-specific tag `'!'` or a\n * `'!local'` tag, or `null` if unresolvable.\n */\n tagName(source, onError) {\n if (source === '!')\n return '!'; // non-specific tag\n if (source[0] !== '!') {\n onError(`Not a valid tag: ${source}`);\n return null;\n }\n if (source[1] === '<') {\n const verbatim = source.slice(2, -1);\n if (verbatim === '!' || verbatim === '!!') {\n onError(`Verbatim tags aren't resolved, so ${source} is invalid.`);\n return null;\n }\n if (source[source.length - 1] !== '>')\n onError('Verbatim tags must end with a >');\n return verbatim;\n }\n const [, handle, suffix] = source.match(/^(.*!)([^!]*)$/s);\n if (!suffix)\n onError(`The ${source} tag has no suffix`);\n const prefix = this.tags[handle];\n if (prefix) {\n try {\n return prefix + decodeURIComponent(suffix);\n }\n catch (error) {\n onError(String(error));\n return null;\n }\n }\n if (handle === '!')\n return source; // local tag\n onError(`Could not resolve tag: ${source}`);\n return null;\n }\n /**\n * Given a fully resolved tag, returns its printable string form,\n * taking into account current tag prefixes and defaults.\n */\n tagString(tag) {\n for (const [handle, prefix] of Object.entries(this.tags)) {\n if (tag.startsWith(prefix))\n return handle + escapeTagName(tag.substring(prefix.length));\n }\n return tag[0] === '!' ? tag : `!<${tag}>`;\n }\n toString(doc) {\n const lines = this.yaml.explicit\n ? [`%YAML ${this.yaml.version || '1.2'}`]\n : [];\n const tagEntries = Object.entries(this.tags);\n let tagNames;\n if (doc && tagEntries.length > 0 && isNode(doc.contents)) {\n const tags = {};\n visit(doc.contents, (_key, node) => {\n if (isNode(node) && node.tag)\n tags[node.tag] = true;\n });\n tagNames = Object.keys(tags);\n }\n else\n tagNames = [];\n for (const [handle, prefix] of tagEntries) {\n if (handle === '!!' && prefix === 'tag:yaml.org,2002:')\n continue;\n if (!doc || tagNames.some(tn => tn.startsWith(prefix)))\n lines.push(`%TAG ${handle} ${prefix}`);\n }\n return lines.join('\\n');\n }\n}\nDirectives.defaultYaml = { explicit: false, version: '1.2' };\nDirectives.defaultTags = { '!!': 'tag:yaml.org,2002:' };\n\nexport { Directives };\n","import { isScalar, isCollection } from '../nodes/identity.js';\nimport { visit } from '../visit.js';\n\n/**\n * Verify that the input string is a valid anchor.\n *\n * Will throw on errors.\n */\nfunction anchorIsValid(anchor) {\n if (/[\\x00-\\x19\\s,[\\]{}]/.test(anchor)) {\n const sa = JSON.stringify(anchor);\n const msg = `Anchor must not contain whitespace or control characters: ${sa}`;\n throw new Error(msg);\n }\n return true;\n}\nfunction anchorNames(root) {\n const anchors = new Set();\n visit(root, {\n Value(_key, node) {\n if (node.anchor)\n anchors.add(node.anchor);\n }\n });\n return anchors;\n}\n/** Find a new anchor name with the given `prefix` and a one-indexed suffix. */\nfunction findNewAnchor(prefix, exclude) {\n for (let i = 1; true; ++i) {\n const name = `${prefix}${i}`;\n if (!exclude.has(name))\n return name;\n }\n}\nfunction createNodeAnchors(doc, prefix) {\n const aliasObjects = [];\n const sourceObjects = new Map();\n let prevAnchors = null;\n return {\n onAnchor: (source) => {\n aliasObjects.push(source);\n prevAnchors ?? (prevAnchors = anchorNames(doc));\n const anchor = findNewAnchor(prefix, prevAnchors);\n prevAnchors.add(anchor);\n return anchor;\n },\n /**\n * With circular references, the source node is only resolved after all\n * of its child nodes are. This is why anchors are set only after all of\n * the nodes have been created.\n */\n setAnchors: () => {\n for (const source of aliasObjects) {\n const ref = sourceObjects.get(source);\n if (typeof ref === 'object' &&\n ref.anchor &&\n (isScalar(ref.node) || isCollection(ref.node))) {\n ref.node.anchor = ref.anchor;\n }\n else {\n const error = new Error('Failed to resolve repeated object (this should not happen)');\n error.source = source;\n throw error;\n }\n }\n },\n sourceObjects\n };\n}\n\nexport { anchorIsValid, anchorNames, createNodeAnchors, findNewAnchor };\n","/**\n * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,\n * in section 24.5.1.1 \"Runtime Semantics: InternalizeJSONProperty\" of the\n * 2021 edition: https://tc39.es/ecma262/#sec-json.parse\n *\n * Includes extensions for handling Map and Set objects.\n */\nfunction applyReviver(reviver, obj, key, val) {\n if (val && typeof val === 'object') {\n if (Array.isArray(val)) {\n for (let i = 0, len = val.length; i < len; ++i) {\n const v0 = val[i];\n const v1 = applyReviver(reviver, val, String(i), v0);\n // eslint-disable-next-line @typescript-eslint/no-array-delete\n if (v1 === undefined)\n delete val[i];\n else if (v1 !== v0)\n val[i] = v1;\n }\n }\n else if (val instanceof Map) {\n for (const k of Array.from(val.keys())) {\n const v0 = val.get(k);\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n val.delete(k);\n else if (v1 !== v0)\n val.set(k, v1);\n }\n }\n else if (val instanceof Set) {\n for (const v0 of Array.from(val)) {\n const v1 = applyReviver(reviver, val, v0, v0);\n if (v1 === undefined)\n val.delete(v0);\n else if (v1 !== v0) {\n val.delete(v0);\n val.add(v1);\n }\n }\n }\n else {\n for (const [k, v0] of Object.entries(val)) {\n const v1 = applyReviver(reviver, val, k, v0);\n if (v1 === undefined)\n delete val[k];\n else if (v1 !== v0)\n val[k] = v1;\n }\n }\n }\n return reviver.call(obj, key, val);\n}\n\nexport { applyReviver };\n","import { hasAnchor } from './identity.js';\n\n/**\n * Recursively convert any node or its contents to native JavaScript\n *\n * @param value - The input value\n * @param arg - If `value` defines a `toJSON()` method, use this\n * as its first argument\n * @param ctx - Conversion context, originally set in Document#toJS(). If\n * `{ keep: true }` is not set, output should be suitable for JSON\n * stringification.\n */\nfunction toJS(value, arg, ctx) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n if (Array.isArray(value))\n return value.map((v, i) => toJS(v, String(i), ctx));\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (!ctx || !hasAnchor(value))\n return value.toJSON(arg, ctx);\n const data = { aliasCount: 0, count: 1, res: undefined };\n ctx.anchors.set(value, data);\n ctx.onCreate = res => {\n data.res = res;\n delete ctx.onCreate;\n };\n const res = value.toJSON(arg, ctx);\n if (ctx.onCreate)\n ctx.onCreate(res);\n return res;\n }\n if (typeof value === 'bigint' && !ctx?.keep)\n return Number(value);\n return value;\n}\n\nexport { toJS };\n","import { applyReviver } from '../doc/applyReviver.js';\nimport { NODE_TYPE, isDocument } from './identity.js';\nimport { toJS } from './toJS.js';\n\nclass NodeBase {\n constructor(type) {\n Object.defineProperty(this, NODE_TYPE, { value: type });\n }\n /** Create a copy of this node. */\n clone() {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** A plain JavaScript representation of this node. */\n toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n if (!isDocument(doc))\n throw new TypeError('A document argument is required');\n const ctx = {\n anchors: new Map(),\n doc,\n keep: true,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this, '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n}\n\nexport { NodeBase };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { visit } from '../visit.js';\nimport { ALIAS, isAlias, isCollection, isPair, hasAnchor } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nclass Alias extends NodeBase {\n constructor(source) {\n super(ALIAS);\n this.source = source;\n Object.defineProperty(this, 'tag', {\n set() {\n throw new Error('Alias nodes cannot have tags');\n }\n });\n }\n /**\n * Resolve the value of this alias within `doc`, finding the last\n * instance of the `source` anchor before this node.\n */\n resolve(doc, ctx) {\n let nodes;\n if (ctx?.aliasResolveCache) {\n nodes = ctx.aliasResolveCache;\n }\n else {\n nodes = [];\n visit(doc, {\n Node: (_key, node) => {\n if (isAlias(node) || hasAnchor(node))\n nodes.push(node);\n }\n });\n if (ctx)\n ctx.aliasResolveCache = nodes;\n }\n let found = undefined;\n for (const node of nodes) {\n if (node === this)\n break;\n if (node.anchor === this.source)\n found = node;\n }\n return found;\n }\n toJSON(_arg, ctx) {\n if (!ctx)\n return { source: this.source };\n const { anchors, doc, maxAliasCount } = ctx;\n const source = this.resolve(doc, ctx);\n if (!source) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new ReferenceError(msg);\n }\n let data = anchors.get(source);\n if (!data) {\n // Resolve anchors for Node.prototype.toJS()\n toJS(source, null, ctx);\n data = anchors.get(source);\n }\n /* istanbul ignore if */\n if (!data || data.res === undefined) {\n const msg = 'This should not happen: Alias anchor was not resolved?';\n throw new ReferenceError(msg);\n }\n if (maxAliasCount >= 0) {\n data.count += 1;\n if (data.aliasCount === 0)\n data.aliasCount = getAliasCount(doc, source, anchors);\n if (data.count * data.aliasCount > maxAliasCount) {\n const msg = 'Excessive alias count indicates a resource exhaustion attack';\n throw new ReferenceError(msg);\n }\n }\n return data.res;\n }\n toString(ctx, _onComment, _onChompKeep) {\n const src = `*${this.source}`;\n if (ctx) {\n anchorIsValid(this.source);\n if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {\n const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;\n throw new Error(msg);\n }\n if (ctx.implicitKey)\n return `${src} `;\n }\n return src;\n }\n}\nfunction getAliasCount(doc, node, anchors) {\n if (isAlias(node)) {\n const source = node.resolve(doc);\n const anchor = anchors && source && anchors.get(source);\n return anchor ? anchor.count * anchor.aliasCount : 0;\n }\n else if (isCollection(node)) {\n let count = 0;\n for (const item of node.items) {\n const c = getAliasCount(doc, item, anchors);\n if (c > count)\n count = c;\n }\n return count;\n }\n else if (isPair(node)) {\n const kc = getAliasCount(doc, node.key, anchors);\n const vc = getAliasCount(doc, node.value, anchors);\n return Math.max(kc, vc);\n }\n return 1;\n}\n\nexport { Alias };\n","import { SCALAR } from './identity.js';\nimport { NodeBase } from './Node.js';\nimport { toJS } from './toJS.js';\n\nconst isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');\nclass Scalar extends NodeBase {\n constructor(value) {\n super(SCALAR);\n this.value = value;\n }\n toJSON(arg, ctx) {\n return ctx?.keep ? this.value : toJS(this.value, arg, ctx);\n }\n toString() {\n return String(this.value);\n }\n}\nScalar.BLOCK_FOLDED = 'BLOCK_FOLDED';\nScalar.BLOCK_LITERAL = 'BLOCK_LITERAL';\nScalar.PLAIN = 'PLAIN';\nScalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';\nScalar.QUOTE_SINGLE = 'QUOTE_SINGLE';\n\nexport { Scalar, isScalarValue };\n","import { Alias } from '../nodes/Alias.js';\nimport { isNode, isPair, MAP, SEQ, isDocument } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\n\nconst defaultTagPrefix = 'tag:yaml.org,2002:';\nfunction findTagObject(value, tagName, tags) {\n if (tagName) {\n const match = tags.filter(t => t.tag === tagName);\n const tagObj = match.find(t => !t.format) ?? match[0];\n if (!tagObj)\n throw new Error(`Tag ${tagName} not found`);\n return tagObj;\n }\n return tags.find(t => t.identify?.(value) && !t.format);\n}\nfunction createNode(value, tagName, ctx) {\n if (isDocument(value))\n value = value.contents;\n if (isNode(value))\n return value;\n if (isPair(value)) {\n const map = ctx.schema[MAP].createNode?.(ctx.schema, null, ctx);\n map.items.push(value);\n return map;\n }\n if (value instanceof String ||\n value instanceof Number ||\n value instanceof Boolean ||\n (typeof BigInt !== 'undefined' && value instanceof BigInt) // not supported everywhere\n ) {\n // https://tc39.es/ecma262/#sec-serializejsonproperty\n value = value.valueOf();\n }\n const { aliasDuplicateObjects, onAnchor, onTagObj, schema, sourceObjects } = ctx;\n // Detect duplicate references to the same object & use Alias nodes for all\n // after first. The `ref` wrapper allows for circular references to resolve.\n let ref = undefined;\n if (aliasDuplicateObjects && value && typeof value === 'object') {\n ref = sourceObjects.get(value);\n if (ref) {\n ref.anchor ?? (ref.anchor = onAnchor(value));\n return new Alias(ref.anchor);\n }\n else {\n ref = { anchor: null, node: null };\n sourceObjects.set(value, ref);\n }\n }\n if (tagName?.startsWith('!!'))\n tagName = defaultTagPrefix + tagName.slice(2);\n let tagObj = findTagObject(value, tagName, schema.tags);\n if (!tagObj) {\n if (value && typeof value.toJSON === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n value = value.toJSON();\n }\n if (!value || typeof value !== 'object') {\n const node = new Scalar(value);\n if (ref)\n ref.node = node;\n return node;\n }\n tagObj =\n value instanceof Map\n ? schema[MAP]\n : Symbol.iterator in Object(value)\n ? schema[SEQ]\n : schema[MAP];\n }\n if (onTagObj) {\n onTagObj(tagObj);\n delete ctx.onTagObj;\n }\n const node = tagObj?.createNode\n ? tagObj.createNode(ctx.schema, value, ctx)\n : typeof tagObj?.nodeClass?.from === 'function'\n ? tagObj.nodeClass.from(ctx.schema, value, ctx)\n : new Scalar(value);\n if (tagName)\n node.tag = tagName;\n else if (!tagObj.default)\n node.tag = tagObj.tag;\n if (ref)\n ref.node = node;\n return node;\n}\n\nexport { createNode };\n","import { createNode } from '../doc/createNode.js';\nimport { isNode, isPair, isCollection, isScalar } from './identity.js';\nimport { NodeBase } from './Node.js';\n\nfunction collectionFromPath(schema, path, value) {\n let v = value;\n for (let i = path.length - 1; i >= 0; --i) {\n const k = path[i];\n if (typeof k === 'number' && Number.isInteger(k) && k >= 0) {\n const a = [];\n a[k] = v;\n v = a;\n }\n else {\n v = new Map([[k, v]]);\n }\n }\n return createNode(v, undefined, {\n aliasDuplicateObjects: false,\n keepUndefined: false,\n onAnchor: () => {\n throw new Error('This should not happen, please report a bug.');\n },\n schema,\n sourceObjects: new Map()\n });\n}\n// Type guard is intentionally a little wrong so as to be more useful,\n// as it does not cover untypable empty non-string iterables (e.g. []).\nconst isEmptyPath = (path) => path == null ||\n (typeof path === 'object' && !!path[Symbol.iterator]().next().done);\nclass Collection extends NodeBase {\n constructor(type, schema) {\n super(type);\n Object.defineProperty(this, 'schema', {\n value: schema,\n configurable: true,\n enumerable: false,\n writable: true\n });\n }\n /**\n * Create a copy of this collection.\n *\n * @param schema - If defined, overwrites the original's schema\n */\n clone(schema) {\n const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));\n if (schema)\n copy.schema = schema;\n copy.items = copy.items.map(it => isNode(it) || isPair(it) ? it.clone(schema) : it);\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /**\n * Adds a value to the collection. For `!!map` and `!!omap` the value must\n * be a Pair instance or a `{ key, value }` object, which may not have a key\n * that already exists in the map.\n */\n addIn(path, value) {\n if (isEmptyPath(path))\n this.add(value);\n else {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (isCollection(node))\n node.addIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n /**\n * Removes a value from the collection.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.delete(key);\n const node = this.get(key, true);\n if (isCollection(node))\n return node.deleteIn(rest);\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n const [key, ...rest] = path;\n const node = this.get(key, true);\n if (rest.length === 0)\n return !keepScalar && isScalar(node) ? node.value : node;\n else\n return isCollection(node) ? node.getIn(rest, keepScalar) : undefined;\n }\n hasAllNullValues(allowScalar) {\n return this.items.every(node => {\n if (!isPair(node))\n return false;\n const n = node.value;\n return (n == null ||\n (allowScalar &&\n isScalar(n) &&\n n.value == null &&\n !n.commentBefore &&\n !n.comment &&\n !n.tag));\n });\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n */\n hasIn(path) {\n const [key, ...rest] = path;\n if (rest.length === 0)\n return this.has(key);\n const node = this.get(key, true);\n return isCollection(node) ? node.hasIn(rest) : false;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n const [key, ...rest] = path;\n if (rest.length === 0) {\n this.set(key, value);\n }\n else {\n const node = this.get(key, true);\n if (isCollection(node))\n node.setIn(rest, value);\n else if (node === undefined && this.schema)\n this.set(key, collectionFromPath(this.schema, rest, value));\n else\n throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);\n }\n }\n}\n\nexport { Collection, collectionFromPath, isEmptyPath };\n","/**\n * Stringifies a comment.\n *\n * Empty comment lines are left empty,\n * lines consisting of a single space are replaced by `#`,\n * and all other lines are prefixed with a `#`.\n */\nconst stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, '#');\nfunction indentComment(comment, indent) {\n if (/^\\n+$/.test(comment))\n return comment.substring(1);\n return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;\n}\nconst lineComment = (str, indent, comment) => str.endsWith('\\n')\n ? indentComment(comment, indent)\n : comment.includes('\\n')\n ? '\\n' + indentComment(comment, indent)\n : (str.endsWith(' ') ? '' : ' ') + comment;\n\nexport { indentComment, lineComment, stringifyComment };\n","const FOLD_FLOW = 'flow';\nconst FOLD_BLOCK = 'block';\nconst FOLD_QUOTED = 'quoted';\n/**\n * Tries to keep input at up to `lineWidth` characters, splitting only on spaces\n * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are\n * terminated with `\\n` and started with `indent`.\n */\nfunction foldFlowLines(text, indent, mode = 'flow', { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {\n if (!lineWidth || lineWidth < 0)\n return text;\n if (lineWidth < minContentWidth)\n minContentWidth = 0;\n const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);\n if (text.length <= endStep)\n return text;\n const folds = [];\n const escapedFolds = {};\n let end = lineWidth - indent.length;\n if (typeof indentAtStart === 'number') {\n if (indentAtStart > lineWidth - Math.max(2, minContentWidth))\n folds.push(0);\n else\n end = lineWidth - indentAtStart;\n }\n let split = undefined;\n let prev = undefined;\n let overflow = false;\n let i = -1;\n let escStart = -1;\n let escEnd = -1;\n if (mode === FOLD_BLOCK) {\n i = consumeMoreIndentedLines(text, i, indent.length);\n if (i !== -1)\n end = i + endStep;\n }\n for (let ch; (ch = text[(i += 1)]);) {\n if (mode === FOLD_QUOTED && ch === '\\\\') {\n escStart = i;\n switch (text[i + 1]) {\n case 'x':\n i += 3;\n break;\n case 'u':\n i += 5;\n break;\n case 'U':\n i += 9;\n break;\n default:\n i += 1;\n }\n escEnd = i;\n }\n if (ch === '\\n') {\n if (mode === FOLD_BLOCK)\n i = consumeMoreIndentedLines(text, i, indent.length);\n end = i + indent.length + endStep;\n split = undefined;\n }\n else {\n if (ch === ' ' &&\n prev &&\n prev !== ' ' &&\n prev !== '\\n' &&\n prev !== '\\t') {\n // space surrounded by non-space can be replaced with newline + indent\n const next = text[i + 1];\n if (next && next !== ' ' && next !== '\\n' && next !== '\\t')\n split = i;\n }\n if (i >= end) {\n if (split) {\n folds.push(split);\n end = split + endStep;\n split = undefined;\n }\n else if (mode === FOLD_QUOTED) {\n // white-space collected at end may stretch past lineWidth\n while (prev === ' ' || prev === '\\t') {\n prev = ch;\n ch = text[(i += 1)];\n overflow = true;\n }\n // Account for newline escape, but don't break preceding escape\n const j = i > escEnd + 1 ? i - 2 : escStart - 1;\n // Bail out if lineWidth & minContentWidth are shorter than an escape string\n if (escapedFolds[j])\n return text;\n folds.push(j);\n escapedFolds[j] = true;\n end = j + endStep;\n split = undefined;\n }\n else {\n overflow = true;\n }\n }\n }\n prev = ch;\n }\n if (overflow && onOverflow)\n onOverflow();\n if (folds.length === 0)\n return text;\n if (onFold)\n onFold();\n let res = text.slice(0, folds[0]);\n for (let i = 0; i < folds.length; ++i) {\n const fold = folds[i];\n const end = folds[i + 1] || text.length;\n if (fold === 0)\n res = `\\n${indent}${text.slice(0, end)}`;\n else {\n if (mode === FOLD_QUOTED && escapedFolds[fold])\n res += `${text[fold]}\\\\`;\n res += `\\n${indent}${text.slice(fold + 1, end)}`;\n }\n }\n return res;\n}\n/**\n * Presumes `i + 1` is at the start of a line\n * @returns index of last newline in more-indented block\n */\nfunction consumeMoreIndentedLines(text, i, indent) {\n let end = i;\n let start = i + 1;\n let ch = text[start];\n while (ch === ' ' || ch === '\\t') {\n if (i < start + indent) {\n ch = text[++i];\n }\n else {\n do {\n ch = text[++i];\n } while (ch && ch !== '\\n');\n end = i;\n start = i + 1;\n ch = text[start];\n }\n }\n return end;\n}\n\nexport { FOLD_BLOCK, FOLD_FLOW, FOLD_QUOTED, foldFlowLines };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { foldFlowLines, FOLD_FLOW, FOLD_QUOTED, FOLD_BLOCK } from './foldFlowLines.js';\n\nconst getFoldOptions = (ctx, isBlock) => ({\n indentAtStart: isBlock ? ctx.indent.length : ctx.indentAtStart,\n lineWidth: ctx.options.lineWidth,\n minContentWidth: ctx.options.minContentWidth\n});\n// Also checks for lines starting with %, as parsing the output as YAML 1.1 will\n// presume that's starting a new document.\nconst containsDocumentMarker = (str) => /^(%|---|\\.\\.\\.)/m.test(str);\nfunction lineLengthOverLimit(str, lineWidth, indentLength) {\n if (!lineWidth || lineWidth < 0)\n return false;\n const limit = lineWidth - indentLength;\n const strLen = str.length;\n if (strLen <= limit)\n return false;\n for (let i = 0, start = 0; i < strLen; ++i) {\n if (str[i] === '\\n') {\n if (i - start > limit)\n return true;\n start = i + 1;\n if (strLen - start <= limit)\n return false;\n }\n }\n return true;\n}\nfunction doubleQuotedString(value, ctx) {\n const json = JSON.stringify(value);\n if (ctx.options.doubleQuotedAsJSON)\n return json;\n const { implicitKey } = ctx;\n const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n let str = '';\n let start = 0;\n for (let i = 0, ch = json[i]; ch; ch = json[++i]) {\n if (ch === ' ' && json[i + 1] === '\\\\' && json[i + 2] === 'n') {\n // space before newline needs to be escaped to not be folded\n str += json.slice(start, i) + '\\\\ ';\n i += 1;\n start = i;\n ch = '\\\\';\n }\n if (ch === '\\\\')\n switch (json[i + 1]) {\n case 'u':\n {\n str += json.slice(start, i);\n const code = json.substr(i + 2, 4);\n switch (code) {\n case '0000':\n str += '\\\\0';\n break;\n case '0007':\n str += '\\\\a';\n break;\n case '000b':\n str += '\\\\v';\n break;\n case '001b':\n str += '\\\\e';\n break;\n case '0085':\n str += '\\\\N';\n break;\n case '00a0':\n str += '\\\\_';\n break;\n case '2028':\n str += '\\\\L';\n break;\n case '2029':\n str += '\\\\P';\n break;\n default:\n if (code.substr(0, 2) === '00')\n str += '\\\\x' + code.substr(2);\n else\n str += json.substr(i, 6);\n }\n i += 5;\n start = i + 1;\n }\n break;\n case 'n':\n if (implicitKey ||\n json[i + 2] === '\"' ||\n json.length < minMultiLineLength) {\n i += 1;\n }\n else {\n // folding will eat first newline\n str += json.slice(start, i) + '\\n\\n';\n while (json[i + 2] === '\\\\' &&\n json[i + 3] === 'n' &&\n json[i + 4] !== '\"') {\n str += '\\n';\n i += 2;\n }\n str += indent;\n // space after newline needs to be escaped to not be folded\n if (json[i + 2] === ' ')\n str += '\\\\';\n i += 1;\n start = i + 1;\n }\n break;\n default:\n i += 1;\n }\n }\n str = start ? str + json.slice(start) : json;\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));\n}\nfunction singleQuotedString(value, ctx) {\n if (ctx.options.singleQuote === false ||\n (ctx.implicitKey && value.includes('\\n')) ||\n /[ \\t]\\n|\\n[ \\t]/.test(value) // single quoted string can't have leading or trailing whitespace around newline\n )\n return doubleQuotedString(value, ctx);\n const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : '');\n const res = \"'\" + value.replace(/'/g, \"''\").replace(/\\n+/g, `$&\\n${indent}`) + \"'\";\n return ctx.implicitKey\n ? res\n : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction quotedString(value, ctx) {\n const { singleQuote } = ctx.options;\n let qs;\n if (singleQuote === false)\n qs = doubleQuotedString;\n else {\n const hasDouble = value.includes('\"');\n const hasSingle = value.includes(\"'\");\n if (hasDouble && !hasSingle)\n qs = singleQuotedString;\n else if (hasSingle && !hasDouble)\n qs = doubleQuotedString;\n else\n qs = singleQuote ? singleQuotedString : doubleQuotedString;\n }\n return qs(value, ctx);\n}\n// The negative lookbehind avoids a polynomial search,\n// but isn't supported yet on Safari: https://caniuse.com/js-regexp-lookbehind\nlet blockEndNewlines;\ntry {\n blockEndNewlines = new RegExp('(^|(?<!\\n))\\n+(?!\\n|$)', 'g');\n}\ncatch {\n blockEndNewlines = /\\n+(?!\\n|$)/g;\n}\nfunction blockString({ comment, type, value }, ctx, onComment, onChompKeep) {\n const { blockQuote, commentString, lineWidth } = ctx.options;\n // 1. Block can't end in whitespace unless the last line is non-empty.\n // 2. Strings consisting of only whitespace are best rendered explicitly.\n if (!blockQuote || /\\n[\\t ]+$/.test(value)) {\n return quotedString(value, ctx);\n }\n const indent = ctx.indent ||\n (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : '');\n const literal = blockQuote === 'literal'\n ? true\n : blockQuote === 'folded' || type === Scalar.BLOCK_FOLDED\n ? false\n : type === Scalar.BLOCK_LITERAL\n ? true\n : !lineLengthOverLimit(value, lineWidth, indent.length);\n if (!value)\n return literal ? '|\\n' : '>\\n';\n // determine chomping from whitespace at value end\n let chomp;\n let endStart;\n for (endStart = value.length; endStart > 0; --endStart) {\n const ch = value[endStart - 1];\n if (ch !== '\\n' && ch !== '\\t' && ch !== ' ')\n break;\n }\n let end = value.substring(endStart);\n const endNlPos = end.indexOf('\\n');\n if (endNlPos === -1) {\n chomp = '-'; // strip\n }\n else if (value === end || endNlPos !== end.length - 1) {\n chomp = '+'; // keep\n if (onChompKeep)\n onChompKeep();\n }\n else {\n chomp = ''; // clip\n }\n if (end) {\n value = value.slice(0, -end.length);\n if (end[end.length - 1] === '\\n')\n end = end.slice(0, -1);\n end = end.replace(blockEndNewlines, `$&${indent}`);\n }\n // determine indent indicator from whitespace at value start\n let startWithSpace = false;\n let startEnd;\n let startNlPos = -1;\n for (startEnd = 0; startEnd < value.length; ++startEnd) {\n const ch = value[startEnd];\n if (ch === ' ')\n startWithSpace = true;\n else if (ch === '\\n')\n startNlPos = startEnd;\n else\n break;\n }\n let start = value.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);\n if (start) {\n value = value.substring(start.length);\n start = start.replace(/\\n+/g, `$&${indent}`);\n }\n const indentSize = indent ? '2' : '1'; // root is at -1\n // Leading | or > is added later\n let header = (startWithSpace ? indentSize : '') + chomp;\n if (comment) {\n header += ' ' + commentString(comment.replace(/ ?[\\r\\n]+/g, ' '));\n if (onComment)\n onComment();\n }\n if (!literal) {\n const foldedValue = value\n .replace(/\\n+/g, '\\n$&')\n .replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g, '$1$2') // more-indented lines aren't folded\n // ^ more-ind. ^ empty ^ capture next empty lines only at end of indent\n .replace(/\\n+/g, `$&${indent}`);\n let literalFallback = false;\n const foldOptions = getFoldOptions(ctx, true);\n if (blockQuote !== 'folded' && type !== Scalar.BLOCK_FOLDED) {\n foldOptions.onOverflow = () => {\n literalFallback = true;\n };\n }\n const body = foldFlowLines(`${start}${foldedValue}${end}`, indent, FOLD_BLOCK, foldOptions);\n if (!literalFallback)\n return `>${header}\\n${indent}${body}`;\n }\n value = value.replace(/\\n+/g, `$&${indent}`);\n return `|${header}\\n${indent}${start}${value}${end}`;\n}\nfunction plainString(item, ctx, onComment, onChompKeep) {\n const { type, value } = item;\n const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;\n if ((implicitKey && value.includes('\\n')) ||\n (inFlow && /[[\\]{},]/.test(value))) {\n return quotedString(value, ctx);\n }\n if (/^[\\n\\t ,[\\]{}#&*!|>'\"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(value)) {\n // not allowed:\n // - '-' or '?'\n // - start with an indicator character (except [?:-]) or /[?-] /\n // - '\\n ', ': ' or ' \\n' anywhere\n // - '#' not preceded by a non-space char\n // - end with ' ' or ':'\n return implicitKey || inFlow || !value.includes('\\n')\n ? quotedString(value, ctx)\n : blockString(item, ctx, onComment, onChompKeep);\n }\n if (!implicitKey &&\n !inFlow &&\n type !== Scalar.PLAIN &&\n value.includes('\\n')) {\n // Where allowed & type not set explicitly, prefer block style for multiline strings\n return blockString(item, ctx, onComment, onChompKeep);\n }\n if (containsDocumentMarker(value)) {\n if (indent === '') {\n ctx.forceBlockIndent = true;\n return blockString(item, ctx, onComment, onChompKeep);\n }\n else if (implicitKey && indent === indentStep) {\n return quotedString(value, ctx);\n }\n }\n const str = value.replace(/\\n+/g, `$&\\n${indent}`);\n // Verify that output will be parsed as a string, as e.g. plain numbers and\n // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'),\n // and others in v1.1.\n if (actualString) {\n const test = (tag) => tag.default && tag.tag !== 'tag:yaml.org,2002:str' && tag.test?.test(str);\n const { compat, tags } = ctx.doc.schema;\n if (tags.some(test) || compat?.some(test))\n return quotedString(value, ctx);\n }\n return implicitKey\n ? str\n : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));\n}\nfunction stringifyString(item, ctx, onComment, onChompKeep) {\n const { implicitKey, inFlow } = ctx;\n const ss = typeof item.value === 'string'\n ? item\n : Object.assign({}, item, { value: String(item.value) });\n let { type } = item;\n if (type !== Scalar.QUOTE_DOUBLE) {\n // force double quotes on control characters & unpaired surrogates\n if (/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(ss.value))\n type = Scalar.QUOTE_DOUBLE;\n }\n const _stringify = (_type) => {\n switch (_type) {\n case Scalar.BLOCK_FOLDED:\n case Scalar.BLOCK_LITERAL:\n return implicitKey || inFlow\n ? quotedString(ss.value, ctx) // blocks are not valid inside flow containers\n : blockString(ss, ctx, onComment, onChompKeep);\n case Scalar.QUOTE_DOUBLE:\n return doubleQuotedString(ss.value, ctx);\n case Scalar.QUOTE_SINGLE:\n return singleQuotedString(ss.value, ctx);\n case Scalar.PLAIN:\n return plainString(ss, ctx, onComment, onChompKeep);\n default:\n return null;\n }\n };\n let res = _stringify(type);\n if (res === null) {\n const { defaultKeyType, defaultStringType } = ctx.options;\n const t = (implicitKey && defaultKeyType) || defaultStringType;\n res = _stringify(t);\n if (res === null)\n throw new Error(`Unsupported default string type ${t}`);\n }\n return res;\n}\n\nexport { stringifyString };\n","import { anchorIsValid } from '../doc/anchors.js';\nimport { isPair, isAlias, isNode, isScalar, isCollection } from '../nodes/identity.js';\nimport { stringifyComment } from './stringifyComment.js';\nimport { stringifyString } from './stringifyString.js';\n\nfunction createStringifyContext(doc, options) {\n const opt = Object.assign({\n blockQuote: true,\n commentString: stringifyComment,\n defaultKeyType: null,\n defaultStringType: 'PLAIN',\n directives: null,\n doubleQuotedAsJSON: false,\n doubleQuotedMinMultiLineLength: 40,\n falseStr: 'false',\n flowCollectionPadding: true,\n indentSeq: true,\n lineWidth: 80,\n minContentWidth: 20,\n nullStr: 'null',\n simpleKeys: false,\n singleQuote: null,\n trueStr: 'true',\n verifyAliasOrder: true\n }, doc.schema.toStringOptions, options);\n let inFlow;\n switch (opt.collectionStyle) {\n case 'block':\n inFlow = false;\n break;\n case 'flow':\n inFlow = true;\n break;\n default:\n inFlow = null;\n }\n return {\n anchors: new Set(),\n doc,\n flowCollectionPadding: opt.flowCollectionPadding ? ' ' : '',\n indent: '',\n indentStep: typeof opt.indent === 'number' ? ' '.repeat(opt.indent) : ' ',\n inFlow,\n options: opt\n };\n}\nfunction getTagObject(tags, item) {\n if (item.tag) {\n const match = tags.filter(t => t.tag === item.tag);\n if (match.length > 0)\n return match.find(t => t.format === item.format) ?? match[0];\n }\n let tagObj = undefined;\n let obj;\n if (isScalar(item)) {\n obj = item.value;\n let match = tags.filter(t => t.identify?.(obj));\n if (match.length > 1) {\n const testMatch = match.filter(t => t.test);\n if (testMatch.length > 0)\n match = testMatch;\n }\n tagObj =\n match.find(t => t.format === item.format) ?? match.find(t => !t.format);\n }\n else {\n obj = item;\n tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass);\n }\n if (!tagObj) {\n const name = obj?.constructor?.name ?? (obj === null ? 'null' : typeof obj);\n throw new Error(`Tag not resolved for ${name} value`);\n }\n return tagObj;\n}\n// needs to be called before value stringifier to allow for circular anchor refs\nfunction stringifyProps(node, tagObj, { anchors, doc }) {\n if (!doc.directives)\n return '';\n const props = [];\n const anchor = (isScalar(node) || isCollection(node)) && node.anchor;\n if (anchor && anchorIsValid(anchor)) {\n anchors.add(anchor);\n props.push(`&${anchor}`);\n }\n const tag = node.tag ?? (tagObj.default ? null : tagObj.tag);\n if (tag)\n props.push(doc.directives.tagString(tag));\n return props.join(' ');\n}\nfunction stringify(item, ctx, onComment, onChompKeep) {\n if (isPair(item))\n return item.toString(ctx, onComment, onChompKeep);\n if (isAlias(item)) {\n if (ctx.doc.directives)\n return item.toString(ctx);\n if (ctx.resolvedAliases?.has(item)) {\n throw new TypeError(`Cannot stringify circular structure without alias nodes`);\n }\n else {\n if (ctx.resolvedAliases)\n ctx.resolvedAliases.add(item);\n else\n ctx.resolvedAliases = new Set([item]);\n item = item.resolve(ctx.doc);\n }\n }\n let tagObj = undefined;\n const node = isNode(item)\n ? item\n : ctx.doc.createNode(item, { onTagObj: o => (tagObj = o) });\n tagObj ?? (tagObj = getTagObject(ctx.doc.schema.tags, node));\n const props = stringifyProps(node, tagObj, ctx);\n if (props.length > 0)\n ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;\n const str = typeof tagObj.stringify === 'function'\n ? tagObj.stringify(node, ctx, onComment, onChompKeep)\n : isScalar(node)\n ? stringifyString(node, ctx, onComment, onChompKeep)\n : node.toString(ctx, onComment, onChompKeep);\n if (!props)\n return str;\n return isScalar(node) || str[0] === '{' || str[0] === '['\n ? `${props} ${str}`\n : `${props}\\n${ctx.indent}${str}`;\n}\n\nexport { createStringifyContext, stringify };\n","import { isCollection, isNode, isScalar, isSeq } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyPair({ key, value }, ctx, onComment, onChompKeep) {\n const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;\n let keyComment = (isNode(key) && key.comment) || null;\n if (simpleKeys) {\n if (keyComment) {\n throw new Error('With simple keys, key nodes cannot have comments');\n }\n if (isCollection(key) || (!isNode(key) && typeof key === 'object')) {\n const msg = 'With simple keys, collection cannot be used as a key value';\n throw new Error(msg);\n }\n }\n let explicitKey = !simpleKeys &&\n (!key ||\n (keyComment && value == null && !ctx.inFlow) ||\n isCollection(key) ||\n (isScalar(key)\n ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL\n : typeof key === 'object'));\n ctx = Object.assign({}, ctx, {\n allNullValues: false,\n implicitKey: !explicitKey && (simpleKeys || !allNullValues),\n indent: indent + indentStep\n });\n let keyCommentDone = false;\n let chompKeep = false;\n let str = stringify(key, ctx, () => (keyCommentDone = true), () => (chompKeep = true));\n if (!explicitKey && !ctx.inFlow && str.length > 1024) {\n if (simpleKeys)\n throw new Error('With simple keys, single line scalar must not span more than 1024 characters');\n explicitKey = true;\n }\n if (ctx.inFlow) {\n if (allNullValues || value == null) {\n if (keyCommentDone && onComment)\n onComment();\n return str === '' ? '?' : explicitKey ? `? ${str}` : str;\n }\n }\n else if ((allNullValues && !simpleKeys) || (value == null && explicitKey)) {\n str = `? ${str}`;\n if (keyComment && !keyCommentDone) {\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n }\n if (keyCommentDone)\n keyComment = null;\n if (explicitKey) {\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n str = `? ${str}\\n${indent}:`;\n }\n else {\n str = `${str}:`;\n if (keyComment)\n str += lineComment(str, ctx.indent, commentString(keyComment));\n }\n let vsb, vcb, valueComment;\n if (isNode(value)) {\n vsb = !!value.spaceBefore;\n vcb = value.commentBefore;\n valueComment = value.comment;\n }\n else {\n vsb = false;\n vcb = null;\n valueComment = null;\n if (value && typeof value === 'object')\n value = doc.createNode(value);\n }\n ctx.implicitKey = false;\n if (!explicitKey && !keyComment && isScalar(value))\n ctx.indentAtStart = str.length + 1;\n chompKeep = false;\n if (!indentSeq &&\n indentStep.length >= 2 &&\n !ctx.inFlow &&\n !explicitKey &&\n isSeq(value) &&\n !value.flow &&\n !value.tag &&\n !value.anchor) {\n // If indentSeq === false, consider '- ' as part of indentation where possible\n ctx.indent = ctx.indent.substring(2);\n }\n let valueCommentDone = false;\n const valueStr = stringify(value, ctx, () => (valueCommentDone = true), () => (chompKeep = true));\n let ws = ' ';\n if (keyComment || vsb || vcb) {\n ws = vsb ? '\\n' : '';\n if (vcb) {\n const cs = commentString(vcb);\n ws += `\\n${indentComment(cs, ctx.indent)}`;\n }\n if (valueStr === '' && !ctx.inFlow) {\n if (ws === '\\n')\n ws = '\\n\\n';\n }\n else {\n ws += `\\n${ctx.indent}`;\n }\n }\n else if (!explicitKey && isCollection(value)) {\n const vs0 = valueStr[0];\n const nl0 = valueStr.indexOf('\\n');\n const hasNewline = nl0 !== -1;\n const flow = ctx.inFlow ?? value.flow ?? value.items.length === 0;\n if (hasNewline || !flow) {\n let hasPropsLine = false;\n if (hasNewline && (vs0 === '&' || vs0 === '!')) {\n let sp0 = valueStr.indexOf(' ');\n if (vs0 === '&' &&\n sp0 !== -1 &&\n sp0 < nl0 &&\n valueStr[sp0 + 1] === '!') {\n sp0 = valueStr.indexOf(' ', sp0 + 1);\n }\n if (sp0 === -1 || nl0 < sp0)\n hasPropsLine = true;\n }\n if (!hasPropsLine)\n ws = `\\n${ctx.indent}`;\n }\n }\n else if (valueStr === '' || valueStr[0] === '\\n') {\n ws = '';\n }\n str += ws + valueStr;\n if (ctx.inFlow) {\n if (valueCommentDone && onComment)\n onComment();\n }\n else if (valueComment && !valueCommentDone) {\n str += lineComment(str, ctx.indent, commentString(valueComment));\n }\n else if (chompKeep && onChompKeep) {\n onChompKeep();\n }\n return str;\n}\n\nexport { stringifyPair };\n","function debug(logLevel, ...messages) {\n if (logLevel === 'debug')\n console.log(...messages);\n}\nfunction warn(logLevel, warning) {\n if (logLevel === 'debug' || logLevel === 'warn') {\n console.warn(warning);\n }\n}\n\nexport { debug, warn };\n","import { isScalar, isAlias, isSeq, isMap } from '../../nodes/identity.js';\nimport { Scalar } from '../../nodes/Scalar.js';\n\n// If the value associated with a merge key is a single mapping node, each of\n// its key/value pairs is inserted into the current mapping, unless the key\n// already exists in it. If the value associated with the merge key is a\n// sequence, then this sequence is expected to contain mapping nodes and each\n// of these nodes is merged in turn according to its order in the sequence.\n// Keys in mapping nodes earlier in the sequence override keys specified in\n// later mapping nodes. -- http://yaml.org/type/merge.html\nconst MERGE_KEY = '<<';\nconst merge = {\n identify: value => value === MERGE_KEY ||\n (typeof value === 'symbol' && value.description === MERGE_KEY),\n default: 'key',\n tag: 'tag:yaml.org,2002:merge',\n test: /^<<$/,\n resolve: () => Object.assign(new Scalar(Symbol(MERGE_KEY)), {\n addToJSMap: addMergeToJSMap\n }),\n stringify: () => MERGE_KEY\n};\nconst isMergeKey = (ctx, key) => (merge.identify(key) ||\n (isScalar(key) &&\n (!key.type || key.type === Scalar.PLAIN) &&\n merge.identify(key.value))) &&\n ctx?.doc.schema.tags.some(tag => tag.tag === merge.tag && tag.default);\nfunction addMergeToJSMap(ctx, map, value) {\n value = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (isSeq(value))\n for (const it of value.items)\n mergeValue(ctx, map, it);\n else if (Array.isArray(value))\n for (const it of value)\n mergeValue(ctx, map, it);\n else\n mergeValue(ctx, map, value);\n}\nfunction mergeValue(ctx, map, value) {\n const source = ctx && isAlias(value) ? value.resolve(ctx.doc) : value;\n if (!isMap(source))\n throw new Error('Merge sources must be maps or map aliases');\n const srcMap = source.toJSON(null, ctx, Map);\n for (const [key, value] of srcMap) {\n if (map instanceof Map) {\n if (!map.has(key))\n map.set(key, value);\n }\n else if (map instanceof Set) {\n map.add(key);\n }\n else if (!Object.prototype.hasOwnProperty.call(map, key)) {\n Object.defineProperty(map, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n return map;\n}\n\nexport { addMergeToJSMap, isMergeKey, merge };\n","import { warn } from '../log.js';\nimport { isMergeKey, addMergeToJSMap } from '../schema/yaml-1.1/merge.js';\nimport { createStringifyContext } from '../stringify/stringify.js';\nimport { isNode } from './identity.js';\nimport { toJS } from './toJS.js';\n\nfunction addPairToJSMap(ctx, map, { key, value }) {\n if (isNode(key) && key.addToJSMap)\n key.addToJSMap(ctx, map, value);\n // TODO: Should drop this special case for bare << handling\n else if (isMergeKey(ctx, key))\n addMergeToJSMap(ctx, map, value);\n else {\n const jsKey = toJS(key, '', ctx);\n if (map instanceof Map) {\n map.set(jsKey, toJS(value, jsKey, ctx));\n }\n else if (map instanceof Set) {\n map.add(jsKey);\n }\n else {\n const stringKey = stringifyKey(key, jsKey, ctx);\n const jsValue = toJS(value, stringKey, ctx);\n if (stringKey in map)\n Object.defineProperty(map, stringKey, {\n value: jsValue,\n writable: true,\n enumerable: true,\n configurable: true\n });\n else\n map[stringKey] = jsValue;\n }\n }\n return map;\n}\nfunction stringifyKey(key, jsKey, ctx) {\n if (jsKey === null)\n return '';\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (typeof jsKey !== 'object')\n return String(jsKey);\n if (isNode(key) && ctx?.doc) {\n const strCtx = createStringifyContext(ctx.doc, {});\n strCtx.anchors = new Set();\n for (const node of ctx.anchors.keys())\n strCtx.anchors.add(node.anchor);\n strCtx.inFlow = true;\n strCtx.inStringifyKey = true;\n const strKey = key.toString(strCtx);\n if (!ctx.mapKeyWarned) {\n let jsonStr = JSON.stringify(strKey);\n if (jsonStr.length > 40)\n jsonStr = jsonStr.substring(0, 36) + '...\"';\n warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);\n ctx.mapKeyWarned = true;\n }\n return strKey;\n }\n return JSON.stringify(jsKey);\n}\n\nexport { addPairToJSMap };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyPair } from '../stringify/stringifyPair.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { NODE_TYPE, PAIR, isNode } from './identity.js';\n\nfunction createPair(key, value, ctx) {\n const k = createNode(key, undefined, ctx);\n const v = createNode(value, undefined, ctx);\n return new Pair(k, v);\n}\nclass Pair {\n constructor(key, value = null) {\n Object.defineProperty(this, NODE_TYPE, { value: PAIR });\n this.key = key;\n this.value = value;\n }\n clone(schema) {\n let { key, value } = this;\n if (isNode(key))\n key = key.clone(schema);\n if (isNode(value))\n value = value.clone(schema);\n return new Pair(key, value);\n }\n toJSON(_, ctx) {\n const pair = ctx?.mapAsMap ? new Map() : {};\n return addPairToJSMap(ctx, pair, this);\n }\n toString(ctx, onComment, onChompKeep) {\n return ctx?.doc\n ? stringifyPair(this, ctx, onComment, onChompKeep)\n : JSON.stringify(this);\n }\n}\n\nexport { Pair, createPair };\n","import { isNode, isPair } from '../nodes/identity.js';\nimport { stringify } from './stringify.js';\nimport { lineComment, indentComment } from './stringifyComment.js';\n\nfunction stringifyCollection(collection, ctx, options) {\n const flow = ctx.inFlow ?? collection.flow;\n const stringify = flow ? stringifyFlowCollection : stringifyBlockCollection;\n return stringify(collection, ctx, options);\n}\nfunction stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {\n const { indent, options: { commentString } } = ctx;\n const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });\n let chompKeep = false; // flag for the preceding node's status\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (!chompKeep && item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, chompKeep);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (!chompKeep && ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);\n }\n }\n chompKeep = false;\n let str = stringify(item, itemCtx, () => (comment = null), () => (chompKeep = true));\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (chompKeep && comment)\n chompKeep = false;\n lines.push(blockItemPrefix + str);\n }\n let str;\n if (lines.length === 0) {\n str = flowChars.start + flowChars.end;\n }\n else {\n str = lines[0];\n for (let i = 1; i < lines.length; ++i) {\n const line = lines[i];\n str += line ? `\\n${indent}${line}` : '\\n';\n }\n }\n if (comment) {\n str += '\\n' + indentComment(commentString(comment), indent);\n if (onComment)\n onComment();\n }\n else if (chompKeep && onChompKeep)\n onChompKeep();\n return str;\n}\nfunction stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {\n const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;\n itemIndent += indentStep;\n const itemCtx = Object.assign({}, ctx, {\n indent: itemIndent,\n inFlow: true,\n type: null\n });\n let reqNewline = false;\n let linesAtValue = 0;\n const lines = [];\n for (let i = 0; i < items.length; ++i) {\n const item = items[i];\n let comment = null;\n if (isNode(item)) {\n if (item.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, item.commentBefore, false);\n if (item.comment)\n comment = item.comment;\n }\n else if (isPair(item)) {\n const ik = isNode(item.key) ? item.key : null;\n if (ik) {\n if (ik.spaceBefore)\n lines.push('');\n addCommentBefore(ctx, lines, ik.commentBefore, false);\n if (ik.comment)\n reqNewline = true;\n }\n const iv = isNode(item.value) ? item.value : null;\n if (iv) {\n if (iv.comment)\n comment = iv.comment;\n if (iv.commentBefore)\n reqNewline = true;\n }\n else if (item.value == null && ik?.comment) {\n comment = ik.comment;\n }\n }\n if (comment)\n reqNewline = true;\n let str = stringify(item, itemCtx, () => (comment = null));\n if (i < items.length - 1)\n str += ',';\n if (comment)\n str += lineComment(str, itemIndent, commentString(comment));\n if (!reqNewline && (lines.length > linesAtValue || str.includes('\\n')))\n reqNewline = true;\n lines.push(str);\n linesAtValue = lines.length;\n }\n const { start, end } = flowChars;\n if (lines.length === 0) {\n return start + end;\n }\n else {\n if (!reqNewline) {\n const len = lines.reduce((sum, line) => sum + line.length + 2, 2);\n reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;\n }\n if (reqNewline) {\n let str = start;\n for (const line of lines)\n str += line ? `\\n${indentStep}${indent}${line}` : '\\n';\n return `${str}\\n${indent}${end}`;\n }\n else {\n return `${start}${fcPadding}${lines.join(' ')}${fcPadding}${end}`;\n }\n }\n}\nfunction addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {\n if (comment && chompKeep)\n comment = comment.replace(/^\\n+/, '');\n if (comment) {\n const ic = indentComment(commentString(comment), indent);\n lines.push(ic.trimStart()); // Avoid double indent on first line\n }\n}\n\nexport { stringifyCollection };\n","import { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { addPairToJSMap } from './addPairToJSMap.js';\nimport { Collection } from './Collection.js';\nimport { MAP, isPair, isScalar } from './identity.js';\nimport { Pair, createPair } from './Pair.js';\nimport { isScalarValue } from './Scalar.js';\n\nfunction findPair(items, key) {\n const k = isScalar(key) ? key.value : key;\n for (const it of items) {\n if (isPair(it)) {\n if (it.key === key || it.key === k)\n return it;\n if (isScalar(it.key) && it.key.value === k)\n return it;\n }\n }\n return undefined;\n}\nclass YAMLMap extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:map';\n }\n constructor(schema) {\n super(MAP, schema);\n this.items = [];\n }\n /**\n * A generic collection parsing method that can be extended\n * to other node classes that inherit from YAMLMap\n */\n static from(schema, obj, ctx) {\n const { keepUndefined, replacer } = ctx;\n const map = new this(schema);\n const add = (key, value) => {\n if (typeof replacer === 'function')\n value = replacer.call(obj, key, value);\n else if (Array.isArray(replacer) && !replacer.includes(key))\n return;\n if (value !== undefined || keepUndefined)\n map.items.push(createPair(key, value, ctx));\n };\n if (obj instanceof Map) {\n for (const [key, value] of obj)\n add(key, value);\n }\n else if (obj && typeof obj === 'object') {\n for (const key of Object.keys(obj))\n add(key, obj[key]);\n }\n if (typeof schema.sortMapEntries === 'function') {\n map.items.sort(schema.sortMapEntries);\n }\n return map;\n }\n /**\n * Adds a value to the collection.\n *\n * @param overwrite - If not set `true`, using a key that is already in the\n * collection will throw. Otherwise, overwrites the previous value.\n */\n add(pair, overwrite) {\n let _pair;\n if (isPair(pair))\n _pair = pair;\n else if (!pair || typeof pair !== 'object' || !('key' in pair)) {\n // In TypeScript, this never happens.\n _pair = new Pair(pair, pair?.value);\n }\n else\n _pair = new Pair(pair.key, pair.value);\n const prev = findPair(this.items, _pair.key);\n const sortEntries = this.schema?.sortMapEntries;\n if (prev) {\n if (!overwrite)\n throw new Error(`Key ${_pair.key} already set`);\n // For scalars, keep the old node & its comments and anchors\n if (isScalar(prev.value) && isScalarValue(_pair.value))\n prev.value.value = _pair.value;\n else\n prev.value = _pair.value;\n }\n else if (sortEntries) {\n const i = this.items.findIndex(item => sortEntries(_pair, item) < 0);\n if (i === -1)\n this.items.push(_pair);\n else\n this.items.splice(i, 0, _pair);\n }\n else {\n this.items.push(_pair);\n }\n }\n delete(key) {\n const it = findPair(this.items, key);\n if (!it)\n return false;\n const del = this.items.splice(this.items.indexOf(it), 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const it = findPair(this.items, key);\n const node = it?.value;\n return (!keepScalar && isScalar(node) ? node.value : node) ?? undefined;\n }\n has(key) {\n return !!findPair(this.items, key);\n }\n set(key, value) {\n this.add(new Pair(key, value), true);\n }\n /**\n * @param ctx - Conversion context, originally set in Document#toJS()\n * @param {Class} Type - If set, forces the returned collection type\n * @returns Instance of Type, Map, or Object\n */\n toJSON(_, ctx, Type) {\n const map = Type ? new Type() : ctx?.mapAsMap ? new Map() : {};\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const item of this.items)\n addPairToJSMap(ctx, map, item);\n return map;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n for (const item of this.items) {\n if (!isPair(item))\n throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);\n }\n if (!ctx.allNullValues && this.hasAllNullValues(false))\n ctx = Object.assign({}, ctx, { allNullValues: true });\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '',\n flowChars: { start: '{', end: '}' },\n itemIndent: ctx.indent || '',\n onChompKeep,\n onComment\n });\n }\n}\n\nexport { YAMLMap, findPair };\n","import { isMap } from '../../nodes/identity.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\n\nconst map = {\n collection: 'map',\n default: true,\n nodeClass: YAMLMap,\n tag: 'tag:yaml.org,2002:map',\n resolve(map, onError) {\n if (!isMap(map))\n onError('Expected a mapping for this tag');\n return map;\n },\n createNode: (schema, obj, ctx) => YAMLMap.from(schema, obj, ctx)\n};\n\nexport { map };\n","import { createNode } from '../doc/createNode.js';\nimport { stringifyCollection } from '../stringify/stringifyCollection.js';\nimport { Collection } from './Collection.js';\nimport { SEQ, isScalar } from './identity.js';\nimport { isScalarValue } from './Scalar.js';\nimport { toJS } from './toJS.js';\n\nclass YAMLSeq extends Collection {\n static get tagName() {\n return 'tag:yaml.org,2002:seq';\n }\n constructor(schema) {\n super(SEQ, schema);\n this.items = [];\n }\n add(value) {\n this.items.push(value);\n }\n /**\n * Removes a value from the collection.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n *\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return false;\n const del = this.items.splice(idx, 1);\n return del.length > 0;\n }\n get(key, keepScalar) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n return undefined;\n const it = this.items[idx];\n return !keepScalar && isScalar(it) ? it.value : it;\n }\n /**\n * Checks if the collection includes a value with the key `key`.\n *\n * `key` must contain a representation of an integer for this to succeed.\n * It may be wrapped in a `Scalar`.\n */\n has(key) {\n const idx = asItemIndex(key);\n return typeof idx === 'number' && idx < this.items.length;\n }\n /**\n * Sets a value in this collection. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n *\n * If `key` does not contain a representation of an integer, this will throw.\n * It may be wrapped in a `Scalar`.\n */\n set(key, value) {\n const idx = asItemIndex(key);\n if (typeof idx !== 'number')\n throw new Error(`Expected a valid index, not ${key}.`);\n const prev = this.items[idx];\n if (isScalar(prev) && isScalarValue(value))\n prev.value = value;\n else\n this.items[idx] = value;\n }\n toJSON(_, ctx) {\n const seq = [];\n if (ctx?.onCreate)\n ctx.onCreate(seq);\n let i = 0;\n for (const item of this.items)\n seq.push(toJS(item, String(i++), ctx));\n return seq;\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n return stringifyCollection(this, ctx, {\n blockItemPrefix: '- ',\n flowChars: { start: '[', end: ']' },\n itemIndent: (ctx.indent || '') + ' ',\n onChompKeep,\n onComment\n });\n }\n static from(schema, obj, ctx) {\n const { replacer } = ctx;\n const seq = new this(schema);\n if (obj && Symbol.iterator in Object(obj)) {\n let i = 0;\n for (let it of obj) {\n if (typeof replacer === 'function') {\n const key = obj instanceof Set ? it : String(i++);\n it = replacer.call(obj, key, it);\n }\n seq.items.push(createNode(it, undefined, ctx));\n }\n }\n return seq;\n }\n}\nfunction asItemIndex(key) {\n let idx = isScalar(key) ? key.value : key;\n if (idx && typeof idx === 'string')\n idx = Number(idx);\n return typeof idx === 'number' && Number.isInteger(idx) && idx >= 0\n ? idx\n : null;\n}\n\nexport { YAMLSeq };\n","import { isSeq } from '../../nodes/identity.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nconst seq = {\n collection: 'seq',\n default: true,\n nodeClass: YAMLSeq,\n tag: 'tag:yaml.org,2002:seq',\n resolve(seq, onError) {\n if (!isSeq(seq))\n onError('Expected a sequence for this tag');\n return seq;\n },\n createNode: (schema, obj, ctx) => YAMLSeq.from(schema, obj, ctx)\n};\n\nexport { seq };\n","import { stringifyString } from '../../stringify/stringifyString.js';\n\nconst string = {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify(item, ctx, onComment, onChompKeep) {\n ctx = Object.assign({ actualString: true }, ctx);\n return stringifyString(item, ctx, onComment, onChompKeep);\n }\n};\n\nexport { string };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst nullTag = {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^(?:~|[Nn]ull|NULL)?$/,\n resolve: () => new Scalar(null),\n stringify: ({ source }, ctx) => typeof source === 'string' && nullTag.test.test(source)\n ? source\n : ctx.options.nullStr\n};\n\nexport { nullTag };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nconst boolTag = {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,\n resolve: str => new Scalar(str[0] === 't' || str[0] === 'T'),\n stringify({ source, value }, ctx) {\n if (source && boolTag.test.test(source)) {\n const sv = source[0] === 't' || source[0] === 'T';\n if (value === sv)\n return source;\n }\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n }\n};\n\nexport { boolTag };\n","function stringifyNumber({ format, minFractionDigits, tag, value }) {\n if (typeof value === 'bigint')\n return String(value);\n const num = typeof value === 'number' ? value : Number(value);\n if (!isFinite(num))\n return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf';\n let n = JSON.stringify(value);\n if (!format &&\n minFractionDigits &&\n (!tag || tag === 'tag:yaml.org,2002:float') &&\n /^\\d/.test(n)) {\n let i = n.indexOf('.');\n if (i < 0) {\n i = n.length;\n n += '.';\n }\n let d = minFractionDigits - (n.length - i - 1);\n while (d-- > 0)\n n += '0';\n }\n return n;\n}\n\nexport { stringifyNumber };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: str => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,\n resolve: str => parseFloat(str),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str));\n const dot = str.indexOf('.');\n if (dot !== -1 && str[str.length - 1] === '0')\n node.minFractionDigits = str.length - dot - 1;\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nconst intResolve = (str, offset, radix, { intAsBigInt }) => (intAsBigInt ? BigInt(str) : parseInt(str.substring(offset), radix));\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value) && value >= 0)\n return prefix + value.toString(radix);\n return stringifyNumber(node);\n}\nconst intOct = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^0o[0-7]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 8, opt),\n stringify: node => intStringify(node, 8, '0o')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: value => intIdentify(value) && value >= 0,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^0x[0-9a-fA-F]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intHex, intOct };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { boolTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intOct, int, intHex } from './int.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n boolTag,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float\n];\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { map } from '../common/map.js';\nimport { seq } from '../common/seq.js';\n\nfunction intIdentify(value) {\n return typeof value === 'bigint' || Number.isInteger(value);\n}\nconst stringifyJSON = ({ value }) => JSON.stringify(value);\nconst jsonScalars = [\n {\n identify: value => typeof value === 'string',\n default: true,\n tag: 'tag:yaml.org,2002:str',\n resolve: str => str,\n stringify: stringifyJSON\n },\n {\n identify: value => value == null,\n createNode: () => new Scalar(null),\n default: true,\n tag: 'tag:yaml.org,2002:null',\n test: /^null$/,\n resolve: () => null,\n stringify: stringifyJSON\n },\n {\n identify: value => typeof value === 'boolean',\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^true$|^false$/,\n resolve: str => str === 'true',\n stringify: stringifyJSON\n },\n {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^-?(?:0|[1-9][0-9]*)$/,\n resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),\n stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value)\n },\n {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,\n resolve: str => parseFloat(str),\n stringify: stringifyJSON\n }\n];\nconst jsonError = {\n default: true,\n tag: '',\n test: /^/,\n resolve(str, onError) {\n onError(`Unresolved plain scalar ${JSON.stringify(str)}`);\n return str;\n }\n};\nconst schema = [map, seq].concat(jsonScalars, jsonError);\n\nexport { schema };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyString } from '../../stringify/stringifyString.js';\n\nconst binary = {\n identify: value => value instanceof Uint8Array, // Buffer inherits from Uint8Array\n default: false,\n tag: 'tag:yaml.org,2002:binary',\n /**\n * Returns a Buffer in node and an Uint8Array in browsers\n *\n * To use the resulting buffer as an image, you'll want to do something like:\n *\n * const blob = new Blob([buffer], { type: 'image/jpeg' })\n * document.querySelector('#photo').src = URL.createObjectURL(blob)\n */\n resolve(src, onError) {\n if (typeof atob === 'function') {\n // On IE 11, atob() can't handle newlines\n const str = atob(src.replace(/[\\n\\r]/g, ''));\n const buffer = new Uint8Array(str.length);\n for (let i = 0; i < str.length; ++i)\n buffer[i] = str.charCodeAt(i);\n return buffer;\n }\n else {\n onError('This environment does not support reading binary tags; either Buffer or atob is required');\n return src;\n }\n },\n stringify({ comment, type, value }, ctx, onComment, onChompKeep) {\n if (!value)\n return '';\n const buf = value; // checked earlier by binary.identify()\n let str;\n if (typeof btoa === 'function') {\n let s = '';\n for (let i = 0; i < buf.length; ++i)\n s += String.fromCharCode(buf[i]);\n str = btoa(s);\n }\n else {\n throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required');\n }\n type ?? (type = Scalar.BLOCK_LITERAL);\n if (type !== Scalar.QUOTE_DOUBLE) {\n const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);\n const n = Math.ceil(str.length / lineWidth);\n const lines = new Array(n);\n for (let i = 0, o = 0; i < n; ++i, o += lineWidth) {\n lines[i] = str.substr(o, lineWidth);\n }\n str = lines.join(type === Scalar.BLOCK_LITERAL ? '\\n' : ' ');\n }\n return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);\n }\n};\n\nexport { binary };\n","import { isSeq, isPair, isMap } from '../../nodes/identity.js';\nimport { createPair, Pair } from '../../nodes/Pair.js';\nimport { Scalar } from '../../nodes/Scalar.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\n\nfunction resolvePairs(seq, onError) {\n if (isSeq(seq)) {\n for (let i = 0; i < seq.items.length; ++i) {\n let item = seq.items[i];\n if (isPair(item))\n continue;\n else if (isMap(item)) {\n if (item.items.length > 1)\n onError('Each pair must have its own sequence indicator');\n const pair = item.items[0] || new Pair(new Scalar(null));\n if (item.commentBefore)\n pair.key.commentBefore = pair.key.commentBefore\n ? `${item.commentBefore}\\n${pair.key.commentBefore}`\n : item.commentBefore;\n if (item.comment) {\n const cn = pair.value ?? pair.key;\n cn.comment = cn.comment\n ? `${item.comment}\\n${cn.comment}`\n : item.comment;\n }\n item = pair;\n }\n seq.items[i] = isPair(item) ? item : new Pair(item);\n }\n }\n else\n onError('Expected a sequence for this tag');\n return seq;\n}\nfunction createPairs(schema, iterable, ctx) {\n const { replacer } = ctx;\n const pairs = new YAMLSeq(schema);\n pairs.tag = 'tag:yaml.org,2002:pairs';\n let i = 0;\n if (iterable && Symbol.iterator in Object(iterable))\n for (let it of iterable) {\n if (typeof replacer === 'function')\n it = replacer.call(iterable, String(i++), it);\n let key, value;\n if (Array.isArray(it)) {\n if (it.length === 2) {\n key = it[0];\n value = it[1];\n }\n else\n throw new TypeError(`Expected [key, value] tuple: ${it}`);\n }\n else if (it && it instanceof Object) {\n const keys = Object.keys(it);\n if (keys.length === 1) {\n key = keys[0];\n value = it[key];\n }\n else {\n throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);\n }\n }\n else {\n key = it;\n }\n pairs.items.push(createPair(key, value, ctx));\n }\n return pairs;\n}\nconst pairs = {\n collection: 'seq',\n default: false,\n tag: 'tag:yaml.org,2002:pairs',\n resolve: resolvePairs,\n createNode: createPairs\n};\n\nexport { createPairs, pairs, resolvePairs };\n","import { isScalar, isPair } from '../../nodes/identity.js';\nimport { toJS } from '../../nodes/toJS.js';\nimport { YAMLMap } from '../../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../../nodes/YAMLSeq.js';\nimport { resolvePairs, createPairs } from './pairs.js';\n\nclass YAMLOMap extends YAMLSeq {\n constructor() {\n super();\n this.add = YAMLMap.prototype.add.bind(this);\n this.delete = YAMLMap.prototype.delete.bind(this);\n this.get = YAMLMap.prototype.get.bind(this);\n this.has = YAMLMap.prototype.has.bind(this);\n this.set = YAMLMap.prototype.set.bind(this);\n this.tag = YAMLOMap.tag;\n }\n /**\n * If `ctx` is given, the return type is actually `Map<unknown, unknown>`,\n * but TypeScript won't allow widening the signature of a child method.\n */\n toJSON(_, ctx) {\n if (!ctx)\n return super.toJSON(_);\n const map = new Map();\n if (ctx?.onCreate)\n ctx.onCreate(map);\n for (const pair of this.items) {\n let key, value;\n if (isPair(pair)) {\n key = toJS(pair.key, '', ctx);\n value = toJS(pair.value, key, ctx);\n }\n else {\n key = toJS(pair, '', ctx);\n }\n if (map.has(key))\n throw new Error('Ordered maps must not include duplicate keys');\n map.set(key, value);\n }\n return map;\n }\n static from(schema, iterable, ctx) {\n const pairs = createPairs(schema, iterable, ctx);\n const omap = new this();\n omap.items = pairs.items;\n return omap;\n }\n}\nYAMLOMap.tag = 'tag:yaml.org,2002:omap';\nconst omap = {\n collection: 'seq',\n identify: value => value instanceof Map,\n nodeClass: YAMLOMap,\n default: false,\n tag: 'tag:yaml.org,2002:omap',\n resolve(seq, onError) {\n const pairs = resolvePairs(seq, onError);\n const seenKeys = [];\n for (const { key } of pairs.items) {\n if (isScalar(key)) {\n if (seenKeys.includes(key.value)) {\n onError(`Ordered maps must not include duplicate keys: ${key.value}`);\n }\n else {\n seenKeys.push(key.value);\n }\n }\n }\n return Object.assign(new YAMLOMap(), pairs);\n },\n createNode: (schema, iterable, ctx) => YAMLOMap.from(schema, iterable, ctx)\n};\n\nexport { YAMLOMap, omap };\n","import { Scalar } from '../../nodes/Scalar.js';\n\nfunction boolStringify({ value, source }, ctx) {\n const boolObj = value ? trueTag : falseTag;\n if (source && boolObj.test.test(source))\n return source;\n return value ? ctx.options.trueStr : ctx.options.falseStr;\n}\nconst trueTag = {\n identify: value => value === true,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,\n resolve: () => new Scalar(true),\n stringify: boolStringify\n};\nconst falseTag = {\n identify: value => value === false,\n default: true,\n tag: 'tag:yaml.org,2002:bool',\n test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,\n resolve: () => new Scalar(false),\n stringify: boolStringify\n};\n\nexport { falseTag, trueTag };\n","import { Scalar } from '../../nodes/Scalar.js';\nimport { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst floatNaN = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^(?:[-+]?\\.(?:inf|Inf|INF)|\\.nan|\\.NaN|\\.NAN)$/,\n resolve: (str) => str.slice(-3).toLowerCase() === 'nan'\n ? NaN\n : str[0] === '-'\n ? Number.NEGATIVE_INFINITY\n : Number.POSITIVE_INFINITY,\n stringify: stringifyNumber\n};\nconst floatExp = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'EXP',\n test: /^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,\n resolve: (str) => parseFloat(str.replace(/_/g, '')),\n stringify(node) {\n const num = Number(node.value);\n return isFinite(num) ? num.toExponential() : stringifyNumber(node);\n }\n};\nconst float = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n test: /^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,\n resolve(str) {\n const node = new Scalar(parseFloat(str.replace(/_/g, '')));\n const dot = str.indexOf('.');\n if (dot !== -1) {\n const f = str.substring(dot + 1).replace(/_/g, '');\n if (f[f.length - 1] === '0')\n node.minFractionDigits = f.length;\n }\n return node;\n },\n stringify: stringifyNumber\n};\n\nexport { float, floatExp, floatNaN };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\nconst intIdentify = (value) => typeof value === 'bigint' || Number.isInteger(value);\nfunction intResolve(str, offset, radix, { intAsBigInt }) {\n const sign = str[0];\n if (sign === '-' || sign === '+')\n offset += 1;\n str = str.substring(offset).replace(/_/g, '');\n if (intAsBigInt) {\n switch (radix) {\n case 2:\n str = `0b${str}`;\n break;\n case 8:\n str = `0o${str}`;\n break;\n case 16:\n str = `0x${str}`;\n break;\n }\n const n = BigInt(str);\n return sign === '-' ? BigInt(-1) * n : n;\n }\n const n = parseInt(str, radix);\n return sign === '-' ? -1 * n : n;\n}\nfunction intStringify(node, radix, prefix) {\n const { value } = node;\n if (intIdentify(value)) {\n const str = value.toString(radix);\n return value < 0 ? '-' + prefix + str.substr(1) : prefix + str;\n }\n return stringifyNumber(node);\n}\nconst intBin = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'BIN',\n test: /^[-+]?0b[0-1_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),\n stringify: node => intStringify(node, 2, '0b')\n};\nconst intOct = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'OCT',\n test: /^[-+]?0[0-7_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),\n stringify: node => intStringify(node, 8, '0')\n};\nconst int = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n test: /^[-+]?[0-9][0-9_]*$/,\n resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),\n stringify: stringifyNumber\n};\nconst intHex = {\n identify: intIdentify,\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'HEX',\n test: /^[-+]?0x[0-9a-fA-F_]+$/,\n resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),\n stringify: node => intStringify(node, 16, '0x')\n};\n\nexport { int, intBin, intHex, intOct };\n","import { isMap, isPair, isScalar } from '../../nodes/identity.js';\nimport { Pair, createPair } from '../../nodes/Pair.js';\nimport { YAMLMap, findPair } from '../../nodes/YAMLMap.js';\n\nclass YAMLSet extends YAMLMap {\n constructor(schema) {\n super(schema);\n this.tag = YAMLSet.tag;\n }\n add(key) {\n let pair;\n if (isPair(key))\n pair = key;\n else if (key &&\n typeof key === 'object' &&\n 'key' in key &&\n 'value' in key &&\n key.value === null)\n pair = new Pair(key.key, null);\n else\n pair = new Pair(key, null);\n const prev = findPair(this.items, pair.key);\n if (!prev)\n this.items.push(pair);\n }\n /**\n * If `keepPair` is `true`, returns the Pair matching `key`.\n * Otherwise, returns the value of that Pair's key.\n */\n get(key, keepPair) {\n const pair = findPair(this.items, key);\n return !keepPair && isPair(pair)\n ? isScalar(pair.key)\n ? pair.key.value\n : pair.key\n : pair;\n }\n set(key, value) {\n if (typeof value !== 'boolean')\n throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`);\n const prev = findPair(this.items, key);\n if (prev && !value) {\n this.items.splice(this.items.indexOf(prev), 1);\n }\n else if (!prev && value) {\n this.items.push(new Pair(key));\n }\n }\n toJSON(_, ctx) {\n return super.toJSON(_, ctx, Set);\n }\n toString(ctx, onComment, onChompKeep) {\n if (!ctx)\n return JSON.stringify(this);\n if (this.hasAllNullValues(true))\n return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);\n else\n throw new Error('Set items must all have null values');\n }\n static from(schema, iterable, ctx) {\n const { replacer } = ctx;\n const set = new this(schema);\n if (iterable && Symbol.iterator in Object(iterable))\n for (let value of iterable) {\n if (typeof replacer === 'function')\n value = replacer.call(iterable, value, value);\n set.items.push(createPair(value, null, ctx));\n }\n return set;\n }\n}\nYAMLSet.tag = 'tag:yaml.org,2002:set';\nconst set = {\n collection: 'map',\n identify: value => value instanceof Set,\n nodeClass: YAMLSet,\n default: false,\n tag: 'tag:yaml.org,2002:set',\n createNode: (schema, iterable, ctx) => YAMLSet.from(schema, iterable, ctx),\n resolve(map, onError) {\n if (isMap(map)) {\n if (map.hasAllNullValues(true))\n return Object.assign(new YAMLSet(), map);\n else\n onError('Set items must all have null values');\n }\n else\n onError('Expected a mapping for this tag');\n return map;\n }\n};\n\nexport { YAMLSet, set };\n","import { stringifyNumber } from '../../stringify/stringifyNumber.js';\n\n/** Internal types handle bigint as number, because TS can't figure it out. */\nfunction parseSexagesimal(str, asBigInt) {\n const sign = str[0];\n const parts = sign === '-' || sign === '+' ? str.substring(1) : str;\n const num = (n) => asBigInt ? BigInt(n) : Number(n);\n const res = parts\n .replace(/_/g, '')\n .split(':')\n .reduce((res, p) => res * num(60) + num(p), num(0));\n return (sign === '-' ? num(-1) * res : res);\n}\n/**\n * hhhh:mm:ss.sss\n *\n * Internal types handle bigint as number, because TS can't figure it out.\n */\nfunction stringifySexagesimal(node) {\n let { value } = node;\n let num = (n) => n;\n if (typeof value === 'bigint')\n num = n => BigInt(n);\n else if (isNaN(value) || !isFinite(value))\n return stringifyNumber(node);\n let sign = '';\n if (value < 0) {\n sign = '-';\n value *= num(-1);\n }\n const _60 = num(60);\n const parts = [value % _60]; // seconds, including ms\n if (value < 60) {\n parts.unshift(0); // at least one : is required\n }\n else {\n value = (value - parts[0]) / _60;\n parts.unshift(value % _60); // minutes\n if (value >= 60) {\n value = (value - parts[0]) / _60;\n parts.unshift(value); // hours\n }\n }\n return (sign +\n parts\n .map(n => String(n).padStart(2, '0'))\n .join(':')\n .replace(/000000\\d*$/, '') // % 60 may introduce error\n );\n}\nconst intTime = {\n identify: value => typeof value === 'bigint' || Number.isInteger(value),\n default: true,\n tag: 'tag:yaml.org,2002:int',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,\n resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),\n stringify: stringifySexagesimal\n};\nconst floatTime = {\n identify: value => typeof value === 'number',\n default: true,\n tag: 'tag:yaml.org,2002:float',\n format: 'TIME',\n test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,\n resolve: str => parseSexagesimal(str, false),\n stringify: stringifySexagesimal\n};\nconst timestamp = {\n identify: value => value instanceof Date,\n default: true,\n tag: 'tag:yaml.org,2002:timestamp',\n // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part\n // may be omitted altogether, resulting in a date format. In such a case, the time part is\n // assumed to be 00:00:00Z (start of day, UTC).\n test: RegExp('^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd\n '(?:' + // time is optional\n '(?:t|T|[ \\\\t]+)' + // t | T | whitespace\n '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)?\n '(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30\n ')?$'),\n resolve(str) {\n const match = str.match(timestamp.test);\n if (!match)\n throw new Error('!!timestamp expects a date, starting with yyyy-mm-dd');\n const [, year, month, day, hour, minute, second] = match.map(Number);\n const millisec = match[7] ? Number((match[7] + '00').substr(1, 3)) : 0;\n let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);\n const tz = match[8];\n if (tz && tz !== 'Z') {\n let d = parseSexagesimal(tz, false);\n if (Math.abs(d) < 30)\n d *= 60;\n date -= 60000 * d;\n }\n return new Date(date);\n },\n stringify: ({ value }) => value?.toISOString().replace(/(T00:00:00)?\\.000Z$/, '') ?? ''\n};\n\nexport { floatTime, intTime, timestamp };\n","import { map } from '../common/map.js';\nimport { nullTag } from '../common/null.js';\nimport { seq } from '../common/seq.js';\nimport { string } from '../common/string.js';\nimport { binary } from './binary.js';\nimport { trueTag, falseTag } from './bool.js';\nimport { floatNaN, floatExp, float } from './float.js';\nimport { intBin, intOct, int, intHex } from './int.js';\nimport { merge } from './merge.js';\nimport { omap } from './omap.js';\nimport { pairs } from './pairs.js';\nimport { set } from './set.js';\nimport { intTime, floatTime, timestamp } from './timestamp.js';\n\nconst schema = [\n map,\n seq,\n string,\n nullTag,\n trueTag,\n falseTag,\n intBin,\n intOct,\n int,\n intHex,\n floatNaN,\n floatExp,\n float,\n binary,\n merge,\n omap,\n pairs,\n set,\n intTime,\n floatTime,\n timestamp\n];\n\nexport { schema };\n","import { map } from './common/map.js';\nimport { nullTag } from './common/null.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { boolTag } from './core/bool.js';\nimport { floatNaN, floatExp, float } from './core/float.js';\nimport { intOct, intHex, int } from './core/int.js';\nimport { schema } from './core/schema.js';\nimport { schema as schema$1 } from './json/schema.js';\nimport { binary } from './yaml-1.1/binary.js';\nimport { merge } from './yaml-1.1/merge.js';\nimport { omap } from './yaml-1.1/omap.js';\nimport { pairs } from './yaml-1.1/pairs.js';\nimport { schema as schema$2 } from './yaml-1.1/schema.js';\nimport { set } from './yaml-1.1/set.js';\nimport { timestamp, intTime, floatTime } from './yaml-1.1/timestamp.js';\n\nconst schemas = new Map([\n ['core', schema],\n ['failsafe', [map, seq, string]],\n ['json', schema$1],\n ['yaml11', schema$2],\n ['yaml-1.1', schema$2]\n]);\nconst tagsByName = {\n binary,\n bool: boolTag,\n float,\n floatExp,\n floatNaN,\n floatTime,\n int,\n intHex,\n intOct,\n intTime,\n map,\n merge,\n null: nullTag,\n omap,\n pairs,\n seq,\n set,\n timestamp\n};\nconst coreKnownTags = {\n 'tag:yaml.org,2002:binary': binary,\n 'tag:yaml.org,2002:merge': merge,\n 'tag:yaml.org,2002:omap': omap,\n 'tag:yaml.org,2002:pairs': pairs,\n 'tag:yaml.org,2002:set': set,\n 'tag:yaml.org,2002:timestamp': timestamp\n};\nfunction getTags(customTags, schemaName, addMergeTag) {\n const schemaTags = schemas.get(schemaName);\n if (schemaTags && !customTags) {\n return addMergeTag && !schemaTags.includes(merge)\n ? schemaTags.concat(merge)\n : schemaTags.slice();\n }\n let tags = schemaTags;\n if (!tags) {\n if (Array.isArray(customTags))\n tags = [];\n else {\n const keys = Array.from(schemas.keys())\n .filter(key => key !== 'yaml11')\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown schema \"${schemaName}\"; use one of ${keys} or define customTags array`);\n }\n }\n if (Array.isArray(customTags)) {\n for (const tag of customTags)\n tags = tags.concat(tag);\n }\n else if (typeof customTags === 'function') {\n tags = customTags(tags.slice());\n }\n if (addMergeTag)\n tags = tags.concat(merge);\n return tags.reduce((tags, tag) => {\n const tagObj = typeof tag === 'string' ? tagsByName[tag] : tag;\n if (!tagObj) {\n const tagName = JSON.stringify(tag);\n const keys = Object.keys(tagsByName)\n .map(key => JSON.stringify(key))\n .join(', ');\n throw new Error(`Unknown custom tag ${tagName}; use one of ${keys}`);\n }\n if (!tags.includes(tagObj))\n tags.push(tagObj);\n return tags;\n }, []);\n}\n\nexport { coreKnownTags, getTags };\n","import { MAP, SCALAR, SEQ } from '../nodes/identity.js';\nimport { map } from './common/map.js';\nimport { seq } from './common/seq.js';\nimport { string } from './common/string.js';\nimport { getTags, coreKnownTags } from './tags.js';\n\nconst sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;\nclass Schema {\n constructor({ compat, customTags, merge, resolveKnownTags, schema, sortMapEntries, toStringDefaults }) {\n this.compat = Array.isArray(compat)\n ? getTags(compat, 'compat')\n : compat\n ? getTags(null, compat)\n : null;\n this.name = (typeof schema === 'string' && schema) || 'core';\n this.knownTags = resolveKnownTags ? coreKnownTags : {};\n this.tags = getTags(customTags, this.name, merge);\n this.toStringOptions = toStringDefaults ?? null;\n Object.defineProperty(this, MAP, { value: map });\n Object.defineProperty(this, SCALAR, { value: string });\n Object.defineProperty(this, SEQ, { value: seq });\n // Used by createMap()\n this.sortMapEntries =\n typeof sortMapEntries === 'function'\n ? sortMapEntries\n : sortMapEntries === true\n ? sortMapEntriesByKey\n : null;\n }\n clone() {\n const copy = Object.create(Schema.prototype, Object.getOwnPropertyDescriptors(this));\n copy.tags = this.tags.slice();\n return copy;\n }\n}\n\nexport { Schema };\n","import { isNode } from '../nodes/identity.js';\nimport { createStringifyContext, stringify } from './stringify.js';\nimport { indentComment, lineComment } from './stringifyComment.js';\n\nfunction stringifyDocument(doc, options) {\n const lines = [];\n let hasDirectives = options.directives === true;\n if (options.directives !== false && doc.directives) {\n const dir = doc.directives.toString(doc);\n if (dir) {\n lines.push(dir);\n hasDirectives = true;\n }\n else if (doc.directives.docStart)\n hasDirectives = true;\n }\n if (hasDirectives)\n lines.push('---');\n const ctx = createStringifyContext(doc, options);\n const { commentString } = ctx.options;\n if (doc.commentBefore) {\n if (lines.length !== 1)\n lines.unshift('');\n const cs = commentString(doc.commentBefore);\n lines.unshift(indentComment(cs, ''));\n }\n let chompKeep = false;\n let contentComment = null;\n if (doc.contents) {\n if (isNode(doc.contents)) {\n if (doc.contents.spaceBefore && hasDirectives)\n lines.push('');\n if (doc.contents.commentBefore) {\n const cs = commentString(doc.contents.commentBefore);\n lines.push(indentComment(cs, ''));\n }\n // top-level block scalars need to be indented if followed by a comment\n ctx.forceBlockIndent = !!doc.comment;\n contentComment = doc.contents.comment;\n }\n const onChompKeep = contentComment ? undefined : () => (chompKeep = true);\n let body = stringify(doc.contents, ctx, () => (contentComment = null), onChompKeep);\n if (contentComment)\n body += lineComment(body, '', commentString(contentComment));\n if ((body[0] === '|' || body[0] === '>') &&\n lines[lines.length - 1] === '---') {\n // Top-level block scalars with a preceding doc marker ought to use the\n // same line for their header.\n lines[lines.length - 1] = `--- ${body}`;\n }\n else\n lines.push(body);\n }\n else {\n lines.push(stringify(doc.contents, ctx));\n }\n if (doc.directives?.docEnd) {\n if (doc.comment) {\n const cs = commentString(doc.comment);\n if (cs.includes('\\n')) {\n lines.push('...');\n lines.push(indentComment(cs, ''));\n }\n else {\n lines.push(`... ${cs}`);\n }\n }\n else {\n lines.push('...');\n }\n }\n else {\n let dc = doc.comment;\n if (dc && chompKeep)\n dc = dc.replace(/^\\n+/, '');\n if (dc) {\n if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '')\n lines.push('');\n lines.push(indentComment(commentString(dc), ''));\n }\n }\n return lines.join('\\n') + '\\n';\n}\n\nexport { stringifyDocument };\n","import { Alias } from '../nodes/Alias.js';\nimport { isEmptyPath, collectionFromPath } from '../nodes/Collection.js';\nimport { NODE_TYPE, DOC, isNode, isCollection, isScalar } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { toJS } from '../nodes/toJS.js';\nimport { Schema } from '../schema/Schema.js';\nimport { stringifyDocument } from '../stringify/stringifyDocument.js';\nimport { anchorNames, findNewAnchor, createNodeAnchors } from './anchors.js';\nimport { applyReviver } from './applyReviver.js';\nimport { createNode } from './createNode.js';\nimport { Directives } from './directives.js';\n\nclass Document {\n constructor(value, replacer, options) {\n /** A comment before this Document */\n this.commentBefore = null;\n /** A comment immediately after this Document */\n this.comment = null;\n /** Errors encountered during parsing. */\n this.errors = [];\n /** Warnings encountered during parsing. */\n this.warnings = [];\n Object.defineProperty(this, NODE_TYPE, { value: DOC });\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const opt = Object.assign({\n intAsBigInt: false,\n keepSourceTokens: false,\n logLevel: 'warn',\n prettyErrors: true,\n strict: true,\n stringKeys: false,\n uniqueKeys: true,\n version: '1.2'\n }, options);\n this.options = opt;\n let { version } = opt;\n if (options?._directives) {\n this.directives = options._directives.atDocument();\n if (this.directives.yaml.explicit)\n version = this.directives.yaml.version;\n }\n else\n this.directives = new Directives({ version });\n this.setSchema(version, options);\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents =\n value === undefined ? null : this.createNode(value, _replacer, options);\n }\n /**\n * Create a deep copy of this Document and its contents.\n *\n * Custom Node values that inherit from `Object` still refer to their original instances.\n */\n clone() {\n const copy = Object.create(Document.prototype, {\n [NODE_TYPE]: { value: DOC }\n });\n copy.commentBefore = this.commentBefore;\n copy.comment = this.comment;\n copy.errors = this.errors.slice();\n copy.warnings = this.warnings.slice();\n copy.options = Object.assign({}, this.options);\n if (this.directives)\n copy.directives = this.directives.clone();\n copy.schema = this.schema.clone();\n // @ts-expect-error We can't really know that this matches Contents.\n copy.contents = isNode(this.contents)\n ? this.contents.clone(copy.schema)\n : this.contents;\n if (this.range)\n copy.range = this.range.slice();\n return copy;\n }\n /** Adds a value to the document. */\n add(value) {\n if (assertCollection(this.contents))\n this.contents.add(value);\n }\n /** Adds a value to the document. */\n addIn(path, value) {\n if (assertCollection(this.contents))\n this.contents.addIn(path, value);\n }\n /**\n * Create a new `Alias` node, ensuring that the target `node` has the required anchor.\n *\n * If `node` already has an anchor, `name` is ignored.\n * Otherwise, the `node.anchor` value will be set to `name`,\n * or if an anchor with that name is already present in the document,\n * `name` will be used as a prefix for a new unique anchor.\n * If `name` is undefined, the generated anchor will use 'a' as a prefix.\n */\n createAlias(node, name) {\n if (!node.anchor) {\n const prev = anchorNames(this);\n node.anchor =\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n !name || prev.has(name) ? findNewAnchor(name || 'a', prev) : name;\n }\n return new Alias(node.anchor);\n }\n createNode(value, replacer, options) {\n let _replacer = undefined;\n if (typeof replacer === 'function') {\n value = replacer.call({ '': value }, '', value);\n _replacer = replacer;\n }\n else if (Array.isArray(replacer)) {\n const keyToStr = (v) => typeof v === 'number' || v instanceof String || v instanceof Number;\n const asStr = replacer.filter(keyToStr).map(String);\n if (asStr.length > 0)\n replacer = replacer.concat(asStr);\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n replacer = undefined;\n }\n const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options ?? {};\n const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(this, \n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n anchorPrefix || 'a');\n const ctx = {\n aliasDuplicateObjects: aliasDuplicateObjects ?? true,\n keepUndefined: keepUndefined ?? false,\n onAnchor,\n onTagObj,\n replacer: _replacer,\n schema: this.schema,\n sourceObjects\n };\n const node = createNode(value, tag, ctx);\n if (flow && isCollection(node))\n node.flow = true;\n setAnchors();\n return node;\n }\n /**\n * Convert a key and a value into a `Pair` using the current schema,\n * recursively wrapping all values as `Scalar` or `Collection` nodes.\n */\n createPair(key, value, options = {}) {\n const k = this.createNode(key, null, options);\n const v = this.createNode(value, null, options);\n return new Pair(k, v);\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n delete(key) {\n return assertCollection(this.contents) ? this.contents.delete(key) : false;\n }\n /**\n * Removes a value from the document.\n * @returns `true` if the item was found and removed.\n */\n deleteIn(path) {\n if (isEmptyPath(path)) {\n if (this.contents == null)\n return false;\n // @ts-expect-error Presumed impossible if Strict extends false\n this.contents = null;\n return true;\n }\n return assertCollection(this.contents)\n ? this.contents.deleteIn(path)\n : false;\n }\n /**\n * Returns item at `key`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n get(key, keepScalar) {\n return isCollection(this.contents)\n ? this.contents.get(key, keepScalar)\n : undefined;\n }\n /**\n * Returns item at `path`, or `undefined` if not found. By default unwraps\n * scalar values from their surrounding node; to disable set `keepScalar` to\n * `true` (collections are always returned intact).\n */\n getIn(path, keepScalar) {\n if (isEmptyPath(path))\n return !keepScalar && isScalar(this.contents)\n ? this.contents.value\n : this.contents;\n return isCollection(this.contents)\n ? this.contents.getIn(path, keepScalar)\n : undefined;\n }\n /**\n * Checks if the document includes a value with the key `key`.\n */\n has(key) {\n return isCollection(this.contents) ? this.contents.has(key) : false;\n }\n /**\n * Checks if the document includes a value at `path`.\n */\n hasIn(path) {\n if (isEmptyPath(path))\n return this.contents !== undefined;\n return isCollection(this.contents) ? this.contents.hasIn(path) : false;\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n set(key, value) {\n if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, [key], value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.set(key, value);\n }\n }\n /**\n * Sets a value in this document. For `!!set`, `value` needs to be a\n * boolean to add/remove the item from the set.\n */\n setIn(path, value) {\n if (isEmptyPath(path)) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = value;\n }\n else if (this.contents == null) {\n // @ts-expect-error We can't really know that this matches Contents.\n this.contents = collectionFromPath(this.schema, Array.from(path), value);\n }\n else if (assertCollection(this.contents)) {\n this.contents.setIn(path, value);\n }\n }\n /**\n * Change the YAML version and schema used by the document.\n * A `null` version disables support for directives, explicit tags, anchors, and aliases.\n * It also requires the `schema` option to be given as a `Schema` instance value.\n *\n * Overrides all previously set schema options.\n */\n setSchema(version, options = {}) {\n if (typeof version === 'number')\n version = String(version);\n let opt;\n switch (version) {\n case '1.1':\n if (this.directives)\n this.directives.yaml.version = '1.1';\n else\n this.directives = new Directives({ version: '1.1' });\n opt = { resolveKnownTags: false, schema: 'yaml-1.1' };\n break;\n case '1.2':\n case 'next':\n if (this.directives)\n this.directives.yaml.version = version;\n else\n this.directives = new Directives({ version });\n opt = { resolveKnownTags: true, schema: 'core' };\n break;\n case null:\n if (this.directives)\n delete this.directives;\n opt = null;\n break;\n default: {\n const sv = JSON.stringify(version);\n throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);\n }\n }\n // Not using `instanceof Schema` to allow for duck typing\n if (options.schema instanceof Object)\n this.schema = options.schema;\n else if (opt)\n this.schema = new Schema(Object.assign(opt, options));\n else\n throw new Error(`With a null YAML version, the { schema: Schema } option is required`);\n }\n // json & jsonArg are only used from toJSON()\n toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {\n const ctx = {\n anchors: new Map(),\n doc: this,\n keep: !json,\n mapAsMap: mapAsMap === true,\n mapKeyWarned: false,\n maxAliasCount: typeof maxAliasCount === 'number' ? maxAliasCount : 100\n };\n const res = toJS(this.contents, jsonArg ?? '', ctx);\n if (typeof onAnchor === 'function')\n for (const { count, res } of ctx.anchors.values())\n onAnchor(res, count);\n return typeof reviver === 'function'\n ? applyReviver(reviver, { '': res }, '', res)\n : res;\n }\n /**\n * A JSON representation of the document `contents`.\n *\n * @param jsonArg Used by `JSON.stringify` to indicate the array index or\n * property name.\n */\n toJSON(jsonArg, onAnchor) {\n return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });\n }\n /** A YAML representation of the document. */\n toString(options = {}) {\n if (this.errors.length > 0)\n throw new Error('Document with errors cannot be stringified');\n if ('indent' in options &&\n (!Number.isInteger(options.indent) || Number(options.indent) <= 0)) {\n const s = JSON.stringify(options.indent);\n throw new Error(`\"indent\" option must be a positive integer, not ${s}`);\n }\n return stringifyDocument(this, options);\n }\n}\nfunction assertCollection(contents) {\n if (isCollection(contents))\n return true;\n throw new Error('Expected a YAML collection as document contents');\n}\n\nexport { Document };\n","class YAMLError extends Error {\n constructor(name, pos, code, message) {\n super();\n this.name = name;\n this.code = code;\n this.message = message;\n this.pos = pos;\n }\n}\nclass YAMLParseError extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLParseError', pos, code, message);\n }\n}\nclass YAMLWarning extends YAMLError {\n constructor(pos, code, message) {\n super('YAMLWarning', pos, code, message);\n }\n}\nconst prettifyError = (src, lc) => (error) => {\n if (error.pos[0] === -1)\n return;\n error.linePos = error.pos.map(pos => lc.linePos(pos));\n const { line, col } = error.linePos[0];\n error.message += ` at line ${line}, column ${col}`;\n let ci = col - 1;\n let lineStr = src\n .substring(lc.lineStarts[line - 1], lc.lineStarts[line])\n .replace(/[\\n\\r]+$/, '');\n // Trim to max 80 chars, keeping col position near the middle\n if (ci >= 60 && lineStr.length > 80) {\n const trimStart = Math.min(ci - 39, lineStr.length - 79);\n lineStr = '…' + lineStr.substring(trimStart);\n ci -= trimStart - 1;\n }\n if (lineStr.length > 80)\n lineStr = lineStr.substring(0, 79) + '…';\n // Include previous line in context if pointing at line start\n if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {\n // Regexp won't match if start is trimmed\n let prev = src.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);\n if (prev.length > 80)\n prev = prev.substring(0, 79) + '…\\n';\n lineStr = prev + lineStr;\n }\n if (/[^ ]/.test(lineStr)) {\n let count = 1;\n const end = error.linePos[1];\n if (end && end.line === line && end.col > col) {\n count = Math.max(1, Math.min(end.col - col, 80 - ci));\n }\n const pointer = ' '.repeat(ci) + '^'.repeat(count);\n error.message += `:\\n\\n${lineStr}\\n${pointer}\\n`;\n }\n};\n\nexport { YAMLError, YAMLParseError, YAMLWarning, prettifyError };\n","function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {\n let spaceBefore = false;\n let atNewline = startOnNewline;\n let hasSpace = startOnNewline;\n let comment = '';\n let commentSep = '';\n let hasNewline = false;\n let reqSpace = false;\n let tab = null;\n let anchor = null;\n let tag = null;\n let newlineAfterProp = null;\n let comma = null;\n let found = null;\n let start = null;\n for (const token of tokens) {\n if (reqSpace) {\n if (token.type !== 'space' &&\n token.type !== 'newline' &&\n token.type !== 'comma')\n onError(token.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n reqSpace = false;\n }\n if (tab) {\n if (atNewline && token.type !== 'comment' && token.type !== 'newline') {\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n }\n tab = null;\n }\n switch (token.type) {\n case 'space':\n // At the doc level, tabs at line start may be parsed\n // as leading white space rather than indentation.\n // In a flow collection, only the parser handles indent.\n if (!flow &&\n (indicator !== 'doc-start' || next?.type !== 'flow-collection') &&\n token.source.includes('\\t')) {\n tab = token;\n }\n hasSpace = true;\n break;\n case 'comment': {\n if (!hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = token.source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += commentSep + cb;\n commentSep = '';\n atNewline = false;\n break;\n }\n case 'newline':\n if (atNewline) {\n if (comment)\n comment += token.source;\n else if (!found || indicator !== 'seq-item-ind')\n spaceBefore = true;\n }\n else\n commentSep += token.source;\n atNewline = true;\n hasNewline = true;\n if (anchor || tag)\n newlineAfterProp = token;\n hasSpace = true;\n break;\n case 'anchor':\n if (anchor)\n onError(token, 'MULTIPLE_ANCHORS', 'A node can have at most one anchor');\n if (token.source.endsWith(':'))\n onError(token.offset + token.source.length - 1, 'BAD_ALIAS', 'Anchor ending in : is ambiguous', true);\n anchor = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n case 'tag': {\n if (tag)\n onError(token, 'MULTIPLE_TAGS', 'A node can have at most one tag');\n tag = token;\n start ?? (start = token.offset);\n atNewline = false;\n hasSpace = false;\n reqSpace = true;\n break;\n }\n case indicator:\n // Could here handle preceding comments differently\n if (anchor || tag)\n onError(token, 'BAD_PROP_ORDER', `Anchors and tags must be after the ${token.source} indicator`);\n if (found)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.source} in ${flow ?? 'collection'}`);\n found = token;\n atNewline =\n indicator === 'seq-item-ind' || indicator === 'explicit-key-ind';\n hasSpace = false;\n break;\n case 'comma':\n if (flow) {\n if (comma)\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected , in ${flow}`);\n comma = token;\n atNewline = false;\n hasSpace = false;\n break;\n }\n // else fallthrough\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${token.type} token`);\n atNewline = false;\n hasSpace = false;\n }\n }\n const last = tokens[tokens.length - 1];\n const end = last ? last.offset + last.source.length : offset;\n if (reqSpace &&\n next &&\n next.type !== 'space' &&\n next.type !== 'newline' &&\n next.type !== 'comma' &&\n (next.type !== 'scalar' || next.source !== '')) {\n onError(next.offset, 'MISSING_CHAR', 'Tags and anchors must be separated from the next token by white space');\n }\n if (tab &&\n ((atNewline && tab.indent <= parentIndent) ||\n next?.type === 'block-map' ||\n next?.type === 'block-seq'))\n onError(tab, 'TAB_AS_INDENT', 'Tabs are not allowed as indentation');\n return {\n comma,\n found,\n spaceBefore,\n comment,\n hasNewline,\n anchor,\n tag,\n newlineAfterProp,\n end,\n start: start ?? end\n };\n}\n\nexport { resolveProps };\n","function containsNewline(key) {\n if (!key)\n return null;\n switch (key.type) {\n case 'alias':\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n if (key.source.includes('\\n'))\n return true;\n if (key.end)\n for (const st of key.end)\n if (st.type === 'newline')\n return true;\n return false;\n case 'flow-collection':\n for (const it of key.items) {\n for (const st of it.start)\n if (st.type === 'newline')\n return true;\n if (it.sep)\n for (const st of it.sep)\n if (st.type === 'newline')\n return true;\n if (containsNewline(it.key) || containsNewline(it.value))\n return true;\n }\n return false;\n default:\n return true;\n }\n}\n\nexport { containsNewline };\n","import { containsNewline } from './util-contains-newline.js';\n\nfunction flowIndentCheck(indent, fc, onError) {\n if (fc?.type === 'flow-collection') {\n const end = fc.end[0];\n if (end.indent === indent &&\n (end.source === ']' || end.source === '}') &&\n containsNewline(fc)) {\n const msg = 'Flow end indicator should be more indented than parent';\n onError(end, 'BAD_INDENT', msg, true);\n }\n }\n}\n\nexport { flowIndentCheck };\n","import { isScalar } from '../nodes/identity.js';\n\nfunction mapIncludes(ctx, items, search) {\n const { uniqueKeys } = ctx.options;\n if (uniqueKeys === false)\n return false;\n const isEqual = typeof uniqueKeys === 'function'\n ? uniqueKeys\n : (a, b) => a === b || (isScalar(a) && isScalar(b) && a.value === b.value);\n return items.some(pair => isEqual(pair.key, search));\n}\n\nexport { mapIncludes };\n","import { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst startColMsg = 'All mapping items must start at the same column';\nfunction resolveBlockMap({ composeNode, composeEmptyNode }, ctx, bm, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLMap;\n const map = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n let offset = bm.offset;\n let commentEnd = null;\n for (const collItem of bm.items) {\n const { start, key, sep, value } = collItem;\n // key properties\n const keyProps = resolveProps(start, {\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: bm.indent,\n startOnNewline: true\n });\n const implicitKey = !keyProps.found;\n if (implicitKey) {\n if (key) {\n if (key.type === 'block-seq')\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'A block sequence may not be used as an implicit map key');\n else if ('indent' in key && key.indent !== bm.indent)\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n if (!keyProps.anchor && !keyProps.tag && !sep) {\n commentEnd = keyProps.end;\n if (keyProps.comment) {\n if (map.comment)\n map.comment += '\\n' + keyProps.comment;\n else\n map.comment = keyProps.comment;\n }\n continue;\n }\n if (keyProps.newlineAfterProp || containsNewline(key)) {\n onError(key ?? start[start.length - 1], 'MULTILINE_IMPLICIT_KEY', 'Implicit keys need to be on a single line');\n }\n }\n else if (keyProps.found?.indent !== bm.indent) {\n onError(offset, 'BAD_INDENT', startColMsg);\n }\n // key value\n ctx.atKey = true;\n const keyStart = keyProps.end;\n const keyNode = key\n ? composeNode(ctx, key, keyProps, onError)\n : composeEmptyNode(ctx, keyStart, start, null, keyProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, key, onError);\n ctx.atKey = false;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: bm.indent,\n startOnNewline: !key || key.type === 'block-scalar'\n });\n offset = valueProps.end;\n if (valueProps.found) {\n if (implicitKey) {\n if (value?.type === 'block-map' && !valueProps.hasNewline)\n onError(offset, 'BLOCK_AS_IMPLICIT_KEY', 'Nested mappings are not allowed in compact mappings');\n if (ctx.options.strict &&\n keyProps.start < valueProps.found.offset - 1024)\n onError(keyNode.range, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit block mapping key');\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : composeEmptyNode(ctx, offset, sep, null, valueProps, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bm.indent, value, onError);\n offset = valueNode.range[2];\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n else {\n // key with no value\n if (implicitKey)\n onError(keyNode.range, 'MISSING_CHAR', 'Implicit map keys need to be followed by map values');\n if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n map.items.push(pair);\n }\n }\n if (commentEnd && commentEnd < offset)\n onError(commentEnd, 'IMPOSSIBLE', 'Map comment with trailing content');\n map.range = [bm.offset, offset, commentEnd ?? offset];\n return map;\n}\n\nexport { resolveBlockMap };\n","import { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveProps } from './resolve-props.js';\nimport { flowIndentCheck } from './util-flow-indent-check.js';\n\nfunction resolveBlockSeq({ composeNode, composeEmptyNode }, ctx, bs, onError, tag) {\n const NodeClass = tag?.nodeClass ?? YAMLSeq;\n const seq = new NodeClass(ctx.schema);\n if (ctx.atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = bs.offset;\n let commentEnd = null;\n for (const { start, value } of bs.items) {\n const props = resolveProps(start, {\n indicator: 'seq-item-ind',\n next: value,\n offset,\n onError,\n parentIndent: bs.indent,\n startOnNewline: true\n });\n if (!props.found) {\n if (props.anchor || props.tag || value) {\n if (value && value.type === 'block-seq')\n onError(props.end, 'BAD_INDENT', 'All sequence items must start at the same column');\n else\n onError(offset, 'MISSING_CHAR', 'Sequence item without - indicator');\n }\n else {\n commentEnd = props.end;\n if (props.comment)\n seq.comment = props.comment;\n continue;\n }\n }\n const node = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n if (ctx.schema.compat)\n flowIndentCheck(bs.indent, value, onError);\n offset = node.range[2];\n seq.items.push(node);\n }\n seq.range = [bs.offset, offset, commentEnd ?? offset];\n return seq;\n}\n\nexport { resolveBlockSeq };\n","function resolveEnd(end, offset, reqSpace, onError) {\n let comment = '';\n if (end) {\n let hasSpace = false;\n let sep = '';\n for (const token of end) {\n const { source, type } = token;\n switch (type) {\n case 'space':\n hasSpace = true;\n break;\n case 'comment': {\n if (reqSpace && !hasSpace)\n onError(token, 'MISSING_CHAR', 'Comments must be separated from other tokens by white space characters');\n const cb = source.substring(1) || ' ';\n if (!comment)\n comment = cb;\n else\n comment += sep + cb;\n sep = '';\n break;\n }\n case 'newline':\n if (comment)\n sep += source;\n hasSpace = true;\n break;\n default:\n onError(token, 'UNEXPECTED_TOKEN', `Unexpected ${type} at node end`);\n }\n offset += source.length;\n }\n }\n return { comment, offset };\n}\n\nexport { resolveEnd };\n","import { isPair } from '../nodes/identity.js';\nimport { Pair } from '../nodes/Pair.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\nimport { containsNewline } from './util-contains-newline.js';\nimport { mapIncludes } from './util-map-includes.js';\n\nconst blockMsg = 'Block collections are not allowed within flow collections';\nconst isBlock = (token) => token && (token.type === 'block-map' || token.type === 'block-seq');\nfunction resolveFlowCollection({ composeNode, composeEmptyNode }, ctx, fc, onError, tag) {\n const isMap = fc.start.source === '{';\n const fcName = isMap ? 'flow map' : 'flow sequence';\n const NodeClass = (tag?.nodeClass ?? (isMap ? YAMLMap : YAMLSeq));\n const coll = new NodeClass(ctx.schema);\n coll.flow = true;\n const atRoot = ctx.atRoot;\n if (atRoot)\n ctx.atRoot = false;\n if (ctx.atKey)\n ctx.atKey = false;\n let offset = fc.offset + fc.start.source.length;\n for (let i = 0; i < fc.items.length; ++i) {\n const collItem = fc.items[i];\n const { start, key, sep, value } = collItem;\n const props = resolveProps(start, {\n flow: fcName,\n indicator: 'explicit-key-ind',\n next: key ?? sep?.[0],\n offset,\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (!props.found) {\n if (!props.anchor && !props.tag && !sep && !value) {\n if (i === 0 && props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n else if (i < fc.items.length - 1)\n onError(props.start, 'UNEXPECTED_TOKEN', `Unexpected empty item in ${fcName}`);\n if (props.comment) {\n if (coll.comment)\n coll.comment += '\\n' + props.comment;\n else\n coll.comment = props.comment;\n }\n offset = props.end;\n continue;\n }\n if (!isMap && ctx.options.strict && containsNewline(key))\n onError(key, // checked by containsNewline()\n 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n }\n if (i === 0) {\n if (props.comma)\n onError(props.comma, 'UNEXPECTED_TOKEN', `Unexpected , in ${fcName}`);\n }\n else {\n if (!props.comma)\n onError(props.start, 'MISSING_CHAR', `Missing , between ${fcName} items`);\n if (props.comment) {\n let prevItemComment = '';\n loop: for (const st of start) {\n switch (st.type) {\n case 'comma':\n case 'space':\n break;\n case 'comment':\n prevItemComment = st.source.substring(1);\n break loop;\n default:\n break loop;\n }\n }\n if (prevItemComment) {\n let prev = coll.items[coll.items.length - 1];\n if (isPair(prev))\n prev = prev.value ?? prev.key;\n if (prev.comment)\n prev.comment += '\\n' + prevItemComment;\n else\n prev.comment = prevItemComment;\n props.comment = props.comment.substring(prevItemComment.length + 1);\n }\n }\n }\n if (!isMap && !sep && !props.found) {\n // item is a value in a seq\n // → key & sep are empty, start does not include ? or :\n const valueNode = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, sep, null, props, onError);\n coll.items.push(valueNode);\n offset = valueNode.range[2];\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else {\n // item is a key+value pair\n // key value\n ctx.atKey = true;\n const keyStart = props.end;\n const keyNode = key\n ? composeNode(ctx, key, props, onError)\n : composeEmptyNode(ctx, keyStart, start, null, props, onError);\n if (isBlock(key))\n onError(keyNode.range, 'BLOCK_IN_FLOW', blockMsg);\n ctx.atKey = false;\n // value properties\n const valueProps = resolveProps(sep ?? [], {\n flow: fcName,\n indicator: 'map-value-ind',\n next: value,\n offset: keyNode.range[2],\n onError,\n parentIndent: fc.indent,\n startOnNewline: false\n });\n if (valueProps.found) {\n if (!isMap && !props.found && ctx.options.strict) {\n if (sep)\n for (const st of sep) {\n if (st === valueProps.found)\n break;\n if (st.type === 'newline') {\n onError(st, 'MULTILINE_IMPLICIT_KEY', 'Implicit keys of flow sequence pairs need to be on a single line');\n break;\n }\n }\n if (props.start < valueProps.found.offset - 1024)\n onError(valueProps.found, 'KEY_OVER_1024_CHARS', 'The : indicator must be at most 1024 chars after the start of an implicit flow sequence key');\n }\n }\n else if (value) {\n if ('source' in value && value.source && value.source[0] === ':')\n onError(value, 'MISSING_CHAR', `Missing space after : in ${fcName}`);\n else\n onError(valueProps.start, 'MISSING_CHAR', `Missing , or : between ${fcName} items`);\n }\n // value value\n const valueNode = value\n ? composeNode(ctx, value, valueProps, onError)\n : valueProps.found\n ? composeEmptyNode(ctx, valueProps.end, sep, null, valueProps, onError)\n : null;\n if (valueNode) {\n if (isBlock(value))\n onError(valueNode.range, 'BLOCK_IN_FLOW', blockMsg);\n }\n else if (valueProps.comment) {\n if (keyNode.comment)\n keyNode.comment += '\\n' + valueProps.comment;\n else\n keyNode.comment = valueProps.comment;\n }\n const pair = new Pair(keyNode, valueNode);\n if (ctx.options.keepSourceTokens)\n pair.srcToken = collItem;\n if (isMap) {\n const map = coll;\n if (mapIncludes(ctx, map.items, keyNode))\n onError(keyStart, 'DUPLICATE_KEY', 'Map keys must be unique');\n map.items.push(pair);\n }\n else {\n const map = new YAMLMap(ctx.schema);\n map.flow = true;\n map.items.push(pair);\n const endRange = (valueNode ?? keyNode).range;\n map.range = [keyNode.range[0], endRange[1], endRange[2]];\n coll.items.push(map);\n }\n offset = valueNode ? valueNode.range[2] : valueProps.end;\n }\n }\n const expectedEnd = isMap ? '}' : ']';\n const [ce, ...ee] = fc.end;\n let cePos = offset;\n if (ce && ce.source === expectedEnd)\n cePos = ce.offset + ce.source.length;\n else {\n const name = fcName[0].toUpperCase() + fcName.substring(1);\n const msg = atRoot\n ? `${name} must end with a ${expectedEnd}`\n : `${name} in block collection must be sufficiently indented and end with a ${expectedEnd}`;\n onError(offset, atRoot ? 'MISSING_CHAR' : 'BAD_INDENT', msg);\n if (ce && ce.source.length !== 1)\n ee.unshift(ce);\n }\n if (ee.length > 0) {\n const end = resolveEnd(ee, cePos, ctx.options.strict, onError);\n if (end.comment) {\n if (coll.comment)\n coll.comment += '\\n' + end.comment;\n else\n coll.comment = end.comment;\n }\n coll.range = [fc.offset, cePos, end.offset];\n }\n else {\n coll.range = [fc.offset, cePos, cePos];\n }\n return coll;\n}\n\nexport { resolveFlowCollection };\n","import { isNode } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { YAMLMap } from '../nodes/YAMLMap.js';\nimport { YAMLSeq } from '../nodes/YAMLSeq.js';\nimport { resolveBlockMap } from './resolve-block-map.js';\nimport { resolveBlockSeq } from './resolve-block-seq.js';\nimport { resolveFlowCollection } from './resolve-flow-collection.js';\n\nfunction resolveCollection(CN, ctx, token, onError, tagName, tag) {\n const coll = token.type === 'block-map'\n ? resolveBlockMap(CN, ctx, token, onError, tag)\n : token.type === 'block-seq'\n ? resolveBlockSeq(CN, ctx, token, onError, tag)\n : resolveFlowCollection(CN, ctx, token, onError, tag);\n const Coll = coll.constructor;\n // If we got a tagName matching the class, or the tag name is '!',\n // then use the tagName from the node class used to create it.\n if (tagName === '!' || tagName === Coll.tagName) {\n coll.tag = Coll.tagName;\n return coll;\n }\n if (tagName)\n coll.tag = tagName;\n return coll;\n}\nfunction composeCollection(CN, ctx, token, props, onError) {\n const tagToken = props.tag;\n const tagName = !tagToken\n ? null\n : ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg));\n if (token.type === 'block-seq') {\n const { anchor, newlineAfterProp: nl } = props;\n const lastProp = anchor && tagToken\n ? anchor.offset > tagToken.offset\n ? anchor\n : tagToken\n : (anchor ?? tagToken);\n if (lastProp && (!nl || nl.offset < lastProp.offset)) {\n const message = 'Missing newline after block sequence props';\n onError(lastProp, 'MISSING_CHAR', message);\n }\n }\n const expType = token.type === 'block-map'\n ? 'map'\n : token.type === 'block-seq'\n ? 'seq'\n : token.start.source === '{'\n ? 'map'\n : 'seq';\n // shortcut: check if it's a generic YAMLMap or YAMLSeq\n // before jumping into the custom tag logic.\n if (!tagToken ||\n !tagName ||\n tagName === '!' ||\n (tagName === YAMLMap.tagName && expType === 'map') ||\n (tagName === YAMLSeq.tagName && expType === 'seq')) {\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n let tag = ctx.schema.tags.find(t => t.tag === tagName && t.collection === expType);\n if (!tag) {\n const kt = ctx.schema.knownTags[tagName];\n if (kt && kt.collection === expType) {\n ctx.schema.tags.push(Object.assign({}, kt, { default: false }));\n tag = kt;\n }\n else {\n if (kt) {\n onError(tagToken, 'BAD_COLLECTION_TYPE', `${kt.tag} used for ${expType} collection, but expects ${kt.collection ?? 'scalar'}`, true);\n }\n else {\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, true);\n }\n return resolveCollection(CN, ctx, token, onError, tagName);\n }\n }\n const coll = resolveCollection(CN, ctx, token, onError, tagName, tag);\n const res = tag.resolve?.(coll, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg), ctx.options) ?? coll;\n const node = isNode(res)\n ? res\n : new Scalar(res);\n node.range = coll.range;\n node.tag = tagName;\n if (tag?.format)\n node.format = tag.format;\n return node;\n}\n\nexport { composeCollection };\n","import { Scalar } from '../nodes/Scalar.js';\n\nfunction resolveBlockScalar(ctx, scalar, onError) {\n const start = scalar.offset;\n const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError);\n if (!header)\n return { value: '', type: null, comment: '', range: [start, start, start] };\n const type = header.mode === '>' ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;\n const lines = scalar.source ? splitLines(scalar.source) : [];\n // determine the end of content & start of chomping\n let chompStart = lines.length;\n for (let i = lines.length - 1; i >= 0; --i) {\n const content = lines[i][1];\n if (content === '' || content === '\\r')\n chompStart = i;\n else\n break;\n }\n // shortcut for empty contents\n if (chompStart === 0) {\n const value = header.chomp === '+' && lines.length > 0\n ? '\\n'.repeat(Math.max(1, lines.length - 1))\n : '';\n let end = start + header.length;\n if (scalar.source)\n end += scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n }\n // find the indentation level to trim from start\n let trimIndent = scalar.indent + header.indent;\n let offset = scalar.offset + header.length;\n let contentStart = 0;\n for (let i = 0; i < chompStart; ++i) {\n const [indent, content] = lines[i];\n if (content === '' || content === '\\r') {\n if (header.indent === 0 && indent.length > trimIndent)\n trimIndent = indent.length;\n }\n else {\n if (indent.length < trimIndent) {\n const message = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator';\n onError(offset + indent.length, 'MISSING_CHAR', message);\n }\n if (header.indent === 0)\n trimIndent = indent.length;\n contentStart = i;\n if (trimIndent === 0 && !ctx.atRoot) {\n const message = 'Block scalar values in collections must be indented';\n onError(offset, 'BAD_INDENT', message);\n }\n break;\n }\n offset += indent.length + content.length + 1;\n }\n // include trailing more-indented empty lines in content\n for (let i = lines.length - 1; i >= chompStart; --i) {\n if (lines[i][0].length > trimIndent)\n chompStart = i + 1;\n }\n let value = '';\n let sep = '';\n let prevMoreIndented = false;\n // leading whitespace is kept intact\n for (let i = 0; i < contentStart; ++i)\n value += lines[i][0].slice(trimIndent) + '\\n';\n for (let i = contentStart; i < chompStart; ++i) {\n let [indent, content] = lines[i];\n offset += indent.length + content.length + 1;\n const crlf = content[content.length - 1] === '\\r';\n if (crlf)\n content = content.slice(0, -1);\n /* istanbul ignore if already caught in lexer */\n if (content && indent.length < trimIndent) {\n const src = header.indent\n ? 'explicit indentation indicator'\n : 'first line';\n const message = `Block scalar lines must not be less indented than their ${src}`;\n onError(offset - content.length - (crlf ? 2 : 1), 'BAD_INDENT', message);\n indent = '';\n }\n if (type === Scalar.BLOCK_LITERAL) {\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n }\n else if (indent.length > trimIndent || content[0] === '\\t') {\n // more-indented content within a folded block\n if (sep === ' ')\n sep = '\\n';\n else if (!prevMoreIndented && sep === '\\n')\n sep = '\\n\\n';\n value += sep + indent.slice(trimIndent) + content;\n sep = '\\n';\n prevMoreIndented = true;\n }\n else if (content === '') {\n // empty line\n if (sep === '\\n')\n value += '\\n';\n else\n sep = '\\n';\n }\n else {\n value += sep + content;\n sep = ' ';\n prevMoreIndented = false;\n }\n }\n switch (header.chomp) {\n case '-':\n break;\n case '+':\n for (let i = chompStart; i < lines.length; ++i)\n value += '\\n' + lines[i][0].slice(trimIndent);\n if (value[value.length - 1] !== '\\n')\n value += '\\n';\n break;\n default:\n value += '\\n';\n }\n const end = start + header.length + scalar.source.length;\n return { value, type, comment: header.comment, range: [start, end, end] };\n}\nfunction parseBlockScalarHeader({ offset, props }, strict, onError) {\n /* istanbul ignore if should not happen */\n if (props[0].type !== 'block-scalar-header') {\n onError(props[0], 'IMPOSSIBLE', 'Block scalar header not found');\n return null;\n }\n const { source } = props[0];\n const mode = source[0];\n let indent = 0;\n let chomp = '';\n let error = -1;\n for (let i = 1; i < source.length; ++i) {\n const ch = source[i];\n if (!chomp && (ch === '-' || ch === '+'))\n chomp = ch;\n else {\n const n = Number(ch);\n if (!indent && n)\n indent = n;\n else if (error === -1)\n error = offset + i;\n }\n }\n if (error !== -1)\n onError(error, 'UNEXPECTED_TOKEN', `Block scalar header includes extra characters: ${source}`);\n let hasSpace = false;\n let comment = '';\n let length = source.length;\n for (let i = 1; i < props.length; ++i) {\n const token = props[i];\n switch (token.type) {\n case 'space':\n hasSpace = true;\n // fallthrough\n case 'newline':\n length += token.source.length;\n break;\n case 'comment':\n if (strict && !hasSpace) {\n const message = 'Comments must be separated from other tokens by white space characters';\n onError(token, 'MISSING_CHAR', message);\n }\n length += token.source.length;\n comment = token.source.substring(1);\n break;\n case 'error':\n onError(token, 'UNEXPECTED_TOKEN', token.message);\n length += token.source.length;\n break;\n /* istanbul ignore next should not happen */\n default: {\n const message = `Unexpected token in block scalar header: ${token.type}`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n const ts = token.source;\n if (ts && typeof ts === 'string')\n length += ts.length;\n }\n }\n }\n return { mode, indent, chomp, comment, length };\n}\n/** @returns Array of lines split up as `[indent, content]` */\nfunction splitLines(source) {\n const split = source.split(/\\n( *)/);\n const first = split[0];\n const m = first.match(/^( *)/);\n const line0 = m?.[1]\n ? [m[1], first.slice(m[1].length)]\n : ['', first];\n const lines = [line0];\n for (let i = 1; i < split.length; i += 2)\n lines.push([split[i], split[i + 1]]);\n return lines;\n}\n\nexport { resolveBlockScalar };\n","import { Scalar } from '../nodes/Scalar.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction resolveFlowScalar(scalar, strict, onError) {\n const { offset, type, source, end } = scalar;\n let _type;\n let value;\n const _onError = (rel, code, msg) => onError(offset + rel, code, msg);\n switch (type) {\n case 'scalar':\n _type = Scalar.PLAIN;\n value = plainValue(source, _onError);\n break;\n case 'single-quoted-scalar':\n _type = Scalar.QUOTE_SINGLE;\n value = singleQuotedValue(source, _onError);\n break;\n case 'double-quoted-scalar':\n _type = Scalar.QUOTE_DOUBLE;\n value = doubleQuotedValue(source, _onError);\n break;\n /* istanbul ignore next should not happen */\n default:\n onError(scalar, 'UNEXPECTED_TOKEN', `Expected a flow scalar value, but found: ${type}`);\n return {\n value: '',\n type: null,\n comment: '',\n range: [offset, offset + source.length, offset + source.length]\n };\n }\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, strict, onError);\n return {\n value,\n type: _type,\n comment: re.comment,\n range: [offset, valueEnd, re.offset]\n };\n}\nfunction plainValue(source, onError) {\n let badChar = '';\n switch (source[0]) {\n /* istanbul ignore next should not happen */\n case '\\t':\n badChar = 'a tab character';\n break;\n case ',':\n badChar = 'flow indicator character ,';\n break;\n case '%':\n badChar = 'directive indicator character %';\n break;\n case '|':\n case '>': {\n badChar = `block scalar indicator ${source[0]}`;\n break;\n }\n case '@':\n case '`': {\n badChar = `reserved character ${source[0]}`;\n break;\n }\n }\n if (badChar)\n onError(0, 'BAD_SCALAR_START', `Plain value cannot start with ${badChar}`);\n return foldLines(source);\n}\nfunction singleQuotedValue(source, onError) {\n if (source[source.length - 1] !== \"'\" || source.length === 1)\n onError(source.length, 'MISSING_CHAR', \"Missing closing 'quote\");\n return foldLines(source.slice(1, -1)).replace(/''/g, \"'\");\n}\nfunction foldLines(source) {\n /**\n * The negative lookbehind here and in the `re` RegExp is to\n * prevent causing a polynomial search time in certain cases.\n *\n * The try-catch is for Safari, which doesn't support this yet:\n * https://caniuse.com/js-regexp-lookbehind\n */\n let first, line;\n try {\n first = new RegExp('(.*?)(?<![ \\t])[ \\t]*\\r?\\n', 'sy');\n line = new RegExp('[ \\t]*(.*?)(?:(?<![ \\t])[ \\t]*)?\\r?\\n', 'sy');\n }\n catch {\n first = /(.*?)[ \\t]*\\r?\\n/sy;\n line = /[ \\t]*(.*?)[ \\t]*\\r?\\n/sy;\n }\n let match = first.exec(source);\n if (!match)\n return source;\n let res = match[1];\n let sep = ' ';\n let pos = first.lastIndex;\n line.lastIndex = pos;\n while ((match = line.exec(source))) {\n if (match[1] === '') {\n if (sep === '\\n')\n res += sep;\n else\n sep = '\\n';\n }\n else {\n res += sep + match[1];\n sep = ' ';\n }\n pos = line.lastIndex;\n }\n const last = /[ \\t]*(.*)/sy;\n last.lastIndex = pos;\n match = last.exec(source);\n return res + sep + (match?.[1] ?? '');\n}\nfunction doubleQuotedValue(source, onError) {\n let res = '';\n for (let i = 1; i < source.length - 1; ++i) {\n const ch = source[i];\n if (ch === '\\r' && source[i + 1] === '\\n')\n continue;\n if (ch === '\\n') {\n const { fold, offset } = foldNewline(source, i);\n res += fold;\n i = offset;\n }\n else if (ch === '\\\\') {\n let next = source[++i];\n const cc = escapeCodes[next];\n if (cc)\n res += cc;\n else if (next === '\\n') {\n // skip escaped newlines, but still trim the following line\n next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === '\\r' && source[i + 1] === '\\n') {\n // skip escaped CRLF newlines, but still trim the following line\n next = source[++i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n }\n else if (next === 'x' || next === 'u' || next === 'U') {\n const length = { x: 2, u: 4, U: 8 }[next];\n res += parseCharCode(source, i + 1, length, onError);\n i += length;\n }\n else {\n const raw = source.substr(i - 1, 2);\n onError(i - 1, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n res += raw;\n }\n }\n else if (ch === ' ' || ch === '\\t') {\n // trim trailing whitespace\n const wsStart = i;\n let next = source[i + 1];\n while (next === ' ' || next === '\\t')\n next = source[++i + 1];\n if (next !== '\\n' && !(next === '\\r' && source[i + 2] === '\\n'))\n res += i > wsStart ? source.slice(wsStart, i + 1) : ch;\n }\n else {\n res += ch;\n }\n }\n if (source[source.length - 1] !== '\"' || source.length === 1)\n onError(source.length, 'MISSING_CHAR', 'Missing closing \"quote');\n return res;\n}\n/**\n * Fold a single newline into a space, multiple newlines to N - 1 newlines.\n * Presumes `source[offset] === '\\n'`\n */\nfunction foldNewline(source, offset) {\n let fold = '';\n let ch = source[offset + 1];\n while (ch === ' ' || ch === '\\t' || ch === '\\n' || ch === '\\r') {\n if (ch === '\\r' && source[offset + 2] !== '\\n')\n break;\n if (ch === '\\n')\n fold += '\\n';\n offset += 1;\n ch = source[offset + 1];\n }\n if (!fold)\n fold = ' ';\n return { fold, offset };\n}\nconst escapeCodes = {\n '0': '\\0', // null character\n a: '\\x07', // bell character\n b: '\\b', // backspace\n e: '\\x1b', // escape character\n f: '\\f', // form feed\n n: '\\n', // line feed\n r: '\\r', // carriage return\n t: '\\t', // horizontal tab\n v: '\\v', // vertical tab\n N: '\\u0085', // Unicode next line\n _: '\\u00a0', // Unicode non-breaking space\n L: '\\u2028', // Unicode line separator\n P: '\\u2029', // Unicode paragraph separator\n ' ': ' ',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\',\n '\\t': '\\t'\n};\nfunction parseCharCode(source, offset, length, onError) {\n const cc = source.substr(offset, length);\n const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);\n const code = ok ? parseInt(cc, 16) : NaN;\n if (isNaN(code)) {\n const raw = source.substr(offset - 2, length + 2);\n onError(offset - 2, 'BAD_DQ_ESCAPE', `Invalid escape sequence ${raw}`);\n return raw;\n }\n return String.fromCodePoint(code);\n}\n\nexport { resolveFlowScalar };\n","import { isScalar, SCALAR } from '../nodes/identity.js';\nimport { Scalar } from '../nodes/Scalar.js';\nimport { resolveBlockScalar } from './resolve-block-scalar.js';\nimport { resolveFlowScalar } from './resolve-flow-scalar.js';\n\nfunction composeScalar(ctx, token, tagToken, onError) {\n const { value, type, comment, range } = token.type === 'block-scalar'\n ? resolveBlockScalar(ctx, token, onError)\n : resolveFlowScalar(token, ctx.options.strict, onError);\n const tagName = tagToken\n ? ctx.directives.tagName(tagToken.source, msg => onError(tagToken, 'TAG_RESOLVE_FAILED', msg))\n : null;\n let tag;\n if (ctx.options.stringKeys && ctx.atKey) {\n tag = ctx.schema[SCALAR];\n }\n else if (tagName)\n tag = findScalarTagByName(ctx.schema, value, tagName, tagToken, onError);\n else if (token.type === 'scalar')\n tag = findScalarTagByTest(ctx, value, token, onError);\n else\n tag = ctx.schema[SCALAR];\n let scalar;\n try {\n const res = tag.resolve(value, msg => onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg), ctx.options);\n scalar = isScalar(res) ? res : new Scalar(res);\n }\n catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n onError(tagToken ?? token, 'TAG_RESOLVE_FAILED', msg);\n scalar = new Scalar(value);\n }\n scalar.range = range;\n scalar.source = value;\n if (type)\n scalar.type = type;\n if (tagName)\n scalar.tag = tagName;\n if (tag.format)\n scalar.format = tag.format;\n if (comment)\n scalar.comment = comment;\n return scalar;\n}\nfunction findScalarTagByName(schema, value, tagName, tagToken, onError) {\n if (tagName === '!')\n return schema[SCALAR]; // non-specific tag\n const matchWithTest = [];\n for (const tag of schema.tags) {\n if (!tag.collection && tag.tag === tagName) {\n if (tag.default && tag.test)\n matchWithTest.push(tag);\n else\n return tag;\n }\n }\n for (const tag of matchWithTest)\n if (tag.test?.test(value))\n return tag;\n const kt = schema.knownTags[tagName];\n if (kt && !kt.collection) {\n // Ensure that the known tag is available for stringifying,\n // but does not get used by default.\n schema.tags.push(Object.assign({}, kt, { default: false, test: undefined }));\n return kt;\n }\n onError(tagToken, 'TAG_RESOLVE_FAILED', `Unresolved tag: ${tagName}`, tagName !== 'tag:yaml.org,2002:str');\n return schema[SCALAR];\n}\nfunction findScalarTagByTest({ atKey, directives, schema }, value, token, onError) {\n const tag = schema.tags.find(tag => (tag.default === true || (atKey && tag.default === 'key')) &&\n tag.test?.test(value)) || schema[SCALAR];\n if (schema.compat) {\n const compat = schema.compat.find(tag => tag.default && tag.test?.test(value)) ??\n schema[SCALAR];\n if (tag.tag !== compat.tag) {\n const ts = directives.tagString(tag.tag);\n const cs = directives.tagString(compat.tag);\n const msg = `Value may be parsed as either ${ts} or ${cs}`;\n onError(token, 'TAG_RESOLVE_FAILED', msg, true);\n }\n }\n return tag;\n}\n\nexport { composeScalar };\n","function emptyScalarPosition(offset, before, pos) {\n if (before) {\n pos ?? (pos = before.length);\n for (let i = pos - 1; i >= 0; --i) {\n let st = before[i];\n switch (st.type) {\n case 'space':\n case 'comment':\n case 'newline':\n offset -= st.source.length;\n continue;\n }\n // Technically, an empty scalar is immediately after the last non-empty\n // node, but it's more useful to place it after any whitespace.\n st = before[++i];\n while (st?.type === 'space') {\n offset += st.source.length;\n st = before[++i];\n }\n break;\n }\n }\n return offset;\n}\n\nexport { emptyScalarPosition };\n","import { Alias } from '../nodes/Alias.js';\nimport { isScalar } from '../nodes/identity.js';\nimport { composeCollection } from './compose-collection.js';\nimport { composeScalar } from './compose-scalar.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { emptyScalarPosition } from './util-empty-scalar-position.js';\n\nconst CN = { composeNode, composeEmptyNode };\nfunction composeNode(ctx, token, props, onError) {\n const atKey = ctx.atKey;\n const { spaceBefore, comment, anchor, tag } = props;\n let node;\n let isSrcToken = true;\n switch (token.type) {\n case 'alias':\n node = composeAlias(ctx, token, onError);\n if (anchor || tag)\n onError(token, 'ALIAS_PROPS', 'An alias node must not specify any properties');\n break;\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'block-scalar':\n node = composeScalar(ctx, token, tag, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n case 'block-map':\n case 'block-seq':\n case 'flow-collection':\n node = composeCollection(CN, ctx, token, props, onError);\n if (anchor)\n node.anchor = anchor.source.substring(1);\n break;\n default: {\n const message = token.type === 'error'\n ? token.message\n : `Unsupported token (type: ${token.type})`;\n onError(token, 'UNEXPECTED_TOKEN', message);\n node = composeEmptyNode(ctx, token.offset, undefined, null, props, onError);\n isSrcToken = false;\n }\n }\n if (anchor && node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n if (atKey &&\n ctx.options.stringKeys &&\n (!isScalar(node) ||\n typeof node.value !== 'string' ||\n (node.tag && node.tag !== 'tag:yaml.org,2002:str'))) {\n const msg = 'With stringKeys, all keys must be strings';\n onError(tag ?? token, 'NON_STRING_KEY', msg);\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n if (token.type === 'scalar' && token.source === '')\n node.comment = comment;\n else\n node.commentBefore = comment;\n }\n // @ts-expect-error Type checking misses meaning of isSrcToken\n if (ctx.options.keepSourceTokens && isSrcToken)\n node.srcToken = token;\n return node;\n}\nfunction composeEmptyNode(ctx, offset, before, pos, { spaceBefore, comment, anchor, tag, end }, onError) {\n const token = {\n type: 'scalar',\n offset: emptyScalarPosition(offset, before, pos),\n indent: -1,\n source: ''\n };\n const node = composeScalar(ctx, token, tag, onError);\n if (anchor) {\n node.anchor = anchor.source.substring(1);\n if (node.anchor === '')\n onError(anchor, 'BAD_ALIAS', 'Anchor cannot be an empty string');\n }\n if (spaceBefore)\n node.spaceBefore = true;\n if (comment) {\n node.comment = comment;\n node.range[2] = end;\n }\n return node;\n}\nfunction composeAlias({ options }, { offset, source, end }, onError) {\n const alias = new Alias(source.substring(1));\n if (alias.source === '')\n onError(offset, 'BAD_ALIAS', 'Alias cannot be an empty string');\n if (alias.source.endsWith(':'))\n onError(offset + source.length - 1, 'BAD_ALIAS', 'Alias ending in : is ambiguous', true);\n const valueEnd = offset + source.length;\n const re = resolveEnd(end, valueEnd, options.strict, onError);\n alias.range = [offset, valueEnd, re.offset];\n if (re.comment)\n alias.comment = re.comment;\n return alias;\n}\n\nexport { composeEmptyNode, composeNode };\n","import { Document } from '../doc/Document.js';\nimport { composeNode, composeEmptyNode } from './compose-node.js';\nimport { resolveEnd } from './resolve-end.js';\nimport { resolveProps } from './resolve-props.js';\n\nfunction composeDoc(options, directives, { offset, start, value, end }, onError) {\n const opts = Object.assign({ _directives: directives }, options);\n const doc = new Document(undefined, opts);\n const ctx = {\n atKey: false,\n atRoot: true,\n directives: doc.directives,\n options: doc.options,\n schema: doc.schema\n };\n const props = resolveProps(start, {\n indicator: 'doc-start',\n next: value ?? end?.[0],\n offset,\n onError,\n parentIndent: 0,\n startOnNewline: true\n });\n if (props.found) {\n doc.directives.docStart = true;\n if (value &&\n (value.type === 'block-map' || value.type === 'block-seq') &&\n !props.hasNewline)\n onError(props.end, 'MISSING_CHAR', 'Block collection cannot start on same line with directives-end marker');\n }\n // @ts-expect-error If Contents is set, let's trust the user\n doc.contents = value\n ? composeNode(ctx, value, props, onError)\n : composeEmptyNode(ctx, props.end, start, null, props, onError);\n const contentEnd = doc.contents.range[2];\n const re = resolveEnd(end, contentEnd, false, onError);\n if (re.comment)\n doc.comment = re.comment;\n doc.range = [offset, contentEnd, re.offset];\n return doc;\n}\n\nexport { composeDoc };\n","import { Directives } from '../doc/directives.js';\nimport { Document } from '../doc/Document.js';\nimport { YAMLWarning, YAMLParseError } from '../errors.js';\nimport { isCollection, isPair } from '../nodes/identity.js';\nimport { composeDoc } from './compose-doc.js';\nimport { resolveEnd } from './resolve-end.js';\n\nfunction getErrorPos(src) {\n if (typeof src === 'number')\n return [src, src + 1];\n if (Array.isArray(src))\n return src.length === 2 ? src : [src[0], src[1]];\n const { offset, source } = src;\n return [offset, offset + (typeof source === 'string' ? source.length : 1)];\n}\nfunction parsePrelude(prelude) {\n let comment = '';\n let atComment = false;\n let afterEmptyLine = false;\n for (let i = 0; i < prelude.length; ++i) {\n const source = prelude[i];\n switch (source[0]) {\n case '#':\n comment +=\n (comment === '' ? '' : afterEmptyLine ? '\\n\\n' : '\\n') +\n (source.substring(1) || ' ');\n atComment = true;\n afterEmptyLine = false;\n break;\n case '%':\n if (prelude[i + 1]?.[0] !== '#')\n i += 1;\n atComment = false;\n break;\n default:\n // This may be wrong after doc-end, but in that case it doesn't matter\n if (!atComment)\n afterEmptyLine = true;\n atComment = false;\n }\n }\n return { comment, afterEmptyLine };\n}\n/**\n * Compose a stream of CST nodes into a stream of YAML Documents.\n *\n * ```ts\n * import { Composer, Parser } from 'yaml'\n *\n * const src: string = ...\n * const tokens = new Parser().parse(src)\n * const docs = new Composer().compose(tokens)\n * ```\n */\nclass Composer {\n constructor(options = {}) {\n this.doc = null;\n this.atDirectives = false;\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n this.onError = (source, code, message, warning) => {\n const pos = getErrorPos(source);\n if (warning)\n this.warnings.push(new YAMLWarning(pos, code, message));\n else\n this.errors.push(new YAMLParseError(pos, code, message));\n };\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.directives = new Directives({ version: options.version || '1.2' });\n this.options = options;\n }\n decorate(doc, afterDoc) {\n const { comment, afterEmptyLine } = parsePrelude(this.prelude);\n //console.log({ dc: doc.comment, prelude, comment })\n if (comment) {\n const dc = doc.contents;\n if (afterDoc) {\n doc.comment = doc.comment ? `${doc.comment}\\n${comment}` : comment;\n }\n else if (afterEmptyLine || doc.directives.docStart || !dc) {\n doc.commentBefore = comment;\n }\n else if (isCollection(dc) && !dc.flow && dc.items.length > 0) {\n let it = dc.items[0];\n if (isPair(it))\n it = it.key;\n const cb = it.commentBefore;\n it.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n else {\n const cb = dc.commentBefore;\n dc.commentBefore = cb ? `${comment}\\n${cb}` : comment;\n }\n }\n if (afterDoc) {\n Array.prototype.push.apply(doc.errors, this.errors);\n Array.prototype.push.apply(doc.warnings, this.warnings);\n }\n else {\n doc.errors = this.errors;\n doc.warnings = this.warnings;\n }\n this.prelude = [];\n this.errors = [];\n this.warnings = [];\n }\n /**\n * Current stream status information.\n *\n * Mostly useful at the end of input for an empty stream.\n */\n streamInfo() {\n return {\n comment: parsePrelude(this.prelude).comment,\n directives: this.directives,\n errors: this.errors,\n warnings: this.warnings\n };\n }\n /**\n * Compose tokens into documents.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *compose(tokens, forceDoc = false, endOffset = -1) {\n for (const token of tokens)\n yield* this.next(token);\n yield* this.end(forceDoc, endOffset);\n }\n /** Advance the composer by one CST token. */\n *next(token) {\n switch (token.type) {\n case 'directive':\n this.directives.add(token.source, (offset, message, warning) => {\n const pos = getErrorPos(token);\n pos[0] += offset;\n this.onError(pos, 'BAD_DIRECTIVE', message, warning);\n });\n this.prelude.push(token.source);\n this.atDirectives = true;\n break;\n case 'document': {\n const doc = composeDoc(this.options, this.directives, token, this.onError);\n if (this.atDirectives && !doc.directives.docStart)\n this.onError(token, 'MISSING_CHAR', 'Missing directives-end/doc-start indicator line');\n this.decorate(doc, false);\n if (this.doc)\n yield this.doc;\n this.doc = doc;\n this.atDirectives = false;\n break;\n }\n case 'byte-order-mark':\n case 'space':\n break;\n case 'comment':\n case 'newline':\n this.prelude.push(token.source);\n break;\n case 'error': {\n const msg = token.source\n ? `${token.message}: ${JSON.stringify(token.source)}`\n : token.message;\n const error = new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg);\n if (this.atDirectives || !this.doc)\n this.errors.push(error);\n else\n this.doc.errors.push(error);\n break;\n }\n case 'doc-end': {\n if (!this.doc) {\n const msg = 'Unexpected doc-end without preceding document';\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', msg));\n break;\n }\n this.doc.directives.docEnd = true;\n const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);\n this.decorate(this.doc, true);\n if (end.comment) {\n const dc = this.doc.comment;\n this.doc.comment = dc ? `${dc}\\n${end.comment}` : end.comment;\n }\n this.doc.range[2] = end.offset;\n break;\n }\n default:\n this.errors.push(new YAMLParseError(getErrorPos(token), 'UNEXPECTED_TOKEN', `Unsupported token ${token.type}`));\n }\n }\n /**\n * Call at end of input to yield any remaining document.\n *\n * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.\n * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.\n */\n *end(forceDoc = false, endOffset = -1) {\n if (this.doc) {\n this.decorate(this.doc, true);\n yield this.doc;\n this.doc = null;\n }\n else if (forceDoc) {\n const opts = Object.assign({ _directives: this.directives }, this.options);\n const doc = new Document(undefined, opts);\n if (this.atDirectives)\n this.onError(endOffset, 'MISSING_CHAR', 'Missing directives-end indicator line');\n doc.range = [0, endOffset, endOffset];\n this.decorate(doc, false);\n yield doc;\n }\n }\n}\n\nexport { Composer };\n","import { resolveBlockScalar } from '../compose/resolve-block-scalar.js';\nimport { resolveFlowScalar } from '../compose/resolve-flow-scalar.js';\nimport { YAMLParseError } from '../errors.js';\nimport { stringifyString } from '../stringify/stringifyString.js';\n\nfunction resolveAsScalar(token, strict = true, onError) {\n if (token) {\n const _onError = (pos, code, message) => {\n const offset = typeof pos === 'number' ? pos : Array.isArray(pos) ? pos[0] : pos.offset;\n if (onError)\n onError(offset, code, message);\n else\n throw new YAMLParseError([offset, offset + 1], code, message);\n };\n switch (token.type) {\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return resolveFlowScalar(token, strict, _onError);\n case 'block-scalar':\n return resolveBlockScalar({ options: { strict } }, token, _onError);\n }\n }\n return null;\n}\n/**\n * Create a new scalar token with `value`\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.end Comments and whitespace after the end of the value, or after the block scalar header. If undefined, a newline will be added.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.indent The indent level of the token.\n * @param context.inFlow Is this scalar within a flow collection? This may affect the resolved type of the token's value.\n * @param context.offset The offset position of the token.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction createScalarToken(value, context) {\n const { implicitKey = false, indent, inFlow = false, offset = -1, type = 'PLAIN' } = context;\n const source = stringifyString({ type, value }, {\n implicitKey,\n indent: indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n const end = context.end ?? [\n { type: 'newline', offset: -1, indent, source: '\\n' }\n ];\n switch (source[0]) {\n case '|':\n case '>': {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, end))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n return { type: 'block-scalar', offset, indent, props, source: body };\n }\n case '\"':\n return { type: 'double-quoted-scalar', offset, indent, source, end };\n case \"'\":\n return { type: 'single-quoted-scalar', offset, indent, source, end };\n default:\n return { type: 'scalar', offset, indent, source, end };\n }\n}\n/**\n * Set the value of `token` to the given string `value`, overwriting any previous contents and type that it may have.\n *\n * Best efforts are made to retain any comments previously associated with the `token`,\n * though all contents within a collection's `items` will be overwritten.\n *\n * Values that represent an actual string but may be parsed as a different type should use a `type` other than `'PLAIN'`,\n * as this function does not support any schema operations and won't check for such conflicts.\n *\n * @param token Any token. If it does not include an `indent` value, the value will be stringified as if it were an implicit key.\n * @param value The string representation of the value, which will have its content properly indented.\n * @param context.afterKey In most cases, values after a key should have an additional level of indentation.\n * @param context.implicitKey Being within an implicit key may affect the resolved type of the token's value.\n * @param context.inFlow Being within a flow collection may affect the resolved type of the token's value.\n * @param context.type The preferred type of the scalar token. If undefined, the previous type of the `token` will be used, defaulting to `'PLAIN'`.\n */\nfunction setScalarValue(token, value, context = {}) {\n let { afterKey = false, implicitKey = false, inFlow = false, type } = context;\n let indent = 'indent' in token ? token.indent : null;\n if (afterKey && typeof indent === 'number')\n indent += 2;\n if (!type)\n switch (token.type) {\n case 'single-quoted-scalar':\n type = 'QUOTE_SINGLE';\n break;\n case 'double-quoted-scalar':\n type = 'QUOTE_DOUBLE';\n break;\n case 'block-scalar': {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n type = header.source[0] === '>' ? 'BLOCK_FOLDED' : 'BLOCK_LITERAL';\n break;\n }\n default:\n type = 'PLAIN';\n }\n const source = stringifyString({ type, value }, {\n implicitKey: implicitKey || indent === null,\n indent: indent !== null && indent > 0 ? ' '.repeat(indent) : '',\n inFlow,\n options: { blockQuote: true, lineWidth: -1 }\n });\n switch (source[0]) {\n case '|':\n case '>':\n setBlockScalarValue(token, source);\n break;\n case '\"':\n setFlowScalarValue(token, source, 'double-quoted-scalar');\n break;\n case \"'\":\n setFlowScalarValue(token, source, 'single-quoted-scalar');\n break;\n default:\n setFlowScalarValue(token, source, 'scalar');\n }\n}\nfunction setBlockScalarValue(token, source) {\n const he = source.indexOf('\\n');\n const head = source.substring(0, he);\n const body = source.substring(he + 1) + '\\n';\n if (token.type === 'block-scalar') {\n const header = token.props[0];\n if (header.type !== 'block-scalar-header')\n throw new Error('Invalid block scalar header');\n header.source = head;\n token.source = body;\n }\n else {\n const { offset } = token;\n const indent = 'indent' in token ? token.indent : -1;\n const props = [\n { type: 'block-scalar-header', offset, indent, source: head }\n ];\n if (!addEndtoBlockProps(props, 'end' in token ? token.end : undefined))\n props.push({ type: 'newline', offset: -1, indent, source: '\\n' });\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type: 'block-scalar', indent, props, source: body });\n }\n}\n/** @returns `true` if last token is a newline */\nfunction addEndtoBlockProps(props, end) {\n if (end)\n for (const st of end)\n switch (st.type) {\n case 'space':\n case 'comment':\n props.push(st);\n break;\n case 'newline':\n props.push(st);\n return true;\n }\n return false;\n}\nfunction setFlowScalarValue(token, source, type) {\n switch (token.type) {\n case 'scalar':\n case 'double-quoted-scalar':\n case 'single-quoted-scalar':\n token.type = type;\n token.source = source;\n break;\n case 'block-scalar': {\n const end = token.props.slice(1);\n let oa = source.length;\n if (token.props[0].type === 'block-scalar-header')\n oa -= token.props[0].source.length;\n for (const tok of end)\n tok.offset += oa;\n delete token.props;\n Object.assign(token, { type, source, end });\n break;\n }\n case 'block-map':\n case 'block-seq': {\n const offset = token.offset + source.length;\n const nl = { type: 'newline', offset, indent: token.indent, source: '\\n' };\n delete token.items;\n Object.assign(token, { type, source, end: [nl] });\n break;\n }\n default: {\n const indent = 'indent' in token ? token.indent : -1;\n const end = 'end' in token && Array.isArray(token.end)\n ? token.end.filter(st => st.type === 'space' ||\n st.type === 'comment' ||\n st.type === 'newline')\n : [];\n for (const key of Object.keys(token))\n if (key !== 'type' && key !== 'offset')\n delete token[key];\n Object.assign(token, { type, indent, source, end });\n }\n }\n}\n\nexport { createScalarToken, resolveAsScalar, setScalarValue };\n","/**\n * Stringify a CST document, token, or collection item\n *\n * Fair warning: This applies no validation whatsoever, and\n * simply concatenates the sources in their logical order.\n */\nconst stringify = (cst) => 'type' in cst ? stringifyToken(cst) : stringifyItem(cst);\nfunction stringifyToken(token) {\n switch (token.type) {\n case 'block-scalar': {\n let res = '';\n for (const tok of token.props)\n res += stringifyToken(tok);\n return res + token.source;\n }\n case 'block-map':\n case 'block-seq': {\n let res = '';\n for (const item of token.items)\n res += stringifyItem(item);\n return res;\n }\n case 'flow-collection': {\n let res = token.start.source;\n for (const item of token.items)\n res += stringifyItem(item);\n for (const st of token.end)\n res += st.source;\n return res;\n }\n case 'document': {\n let res = stringifyItem(token);\n if (token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n default: {\n let res = token.source;\n if ('end' in token && token.end)\n for (const st of token.end)\n res += st.source;\n return res;\n }\n }\n}\nfunction stringifyItem({ start, key, sep, value }) {\n let res = '';\n for (const st of start)\n res += st.source;\n if (key)\n res += stringifyToken(key);\n if (sep)\n for (const st of sep)\n res += st.source;\n if (value)\n res += stringifyToken(value);\n return res;\n}\n\nexport { stringify };\n","const BREAK = Symbol('break visit');\nconst SKIP = Symbol('skip children');\nconst REMOVE = Symbol('remove item');\n/**\n * Apply a visitor to a CST document or item.\n *\n * Walks through the tree (depth-first) starting from the root, calling a\n * `visitor` function with two arguments when entering each item:\n * - `item`: The current item, which included the following members:\n * - `start: SourceToken[]` – Source tokens before the key or value,\n * possibly including its anchor or tag.\n * - `key?: Token | null` – Set for pair values. May then be `null`, if\n * the key before the `:` separator is empty.\n * - `sep?: SourceToken[]` – Source tokens between the key and the value,\n * which should include the `:` map value indicator if `value` is set.\n * - `value?: Token` – The value of a sequence item, or of a map pair.\n * - `path`: The steps from the root to the current node, as an array of\n * `['key' | 'value', number]` tuples.\n *\n * The return value of the visitor may be used to control the traversal:\n * - `undefined` (default): Do nothing and continue\n * - `visit.SKIP`: Do not visit the children of this token, continue with\n * next sibling\n * - `visit.BREAK`: Terminate traversal completely\n * - `visit.REMOVE`: Remove the current item, then continue with the next one\n * - `number`: Set the index of the next step. This is useful especially if\n * the index of the current token has changed.\n * - `function`: Define the next visitor for this item. After the original\n * visitor is called on item entry, next visitors are called after handling\n * a non-empty `key` and when exiting the item.\n */\nfunction visit(cst, visitor) {\n if ('type' in cst && cst.type === 'document')\n cst = { start: cst.start, value: cst.value };\n _visit(Object.freeze([]), cst, visitor);\n}\n// Without the `as symbol` casts, TS declares these in the `visit`\n// namespace using `var`, but then complains about that because\n// `unique symbol` must be `const`.\n/** Terminate visit traversal completely */\nvisit.BREAK = BREAK;\n/** Do not visit the children of the current item */\nvisit.SKIP = SKIP;\n/** Remove the current item */\nvisit.REMOVE = REMOVE;\n/** Find the item at `path` from `cst` as the root */\nvisit.itemAtPath = (cst, path) => {\n let item = cst;\n for (const [field, index] of path) {\n const tok = item?.[field];\n if (tok && 'items' in tok) {\n item = tok.items[index];\n }\n else\n return undefined;\n }\n return item;\n};\n/**\n * Get the immediate parent collection of the item at `path` from `cst` as the root.\n *\n * Throws an error if the collection is not found, which should never happen if the item itself exists.\n */\nvisit.parentCollection = (cst, path) => {\n const parent = visit.itemAtPath(cst, path.slice(0, -1));\n const field = path[path.length - 1][0];\n const coll = parent?.[field];\n if (coll && 'items' in coll)\n return coll;\n throw new Error('Parent collection not found');\n};\nfunction _visit(path, item, visitor) {\n let ctrl = visitor(item, path);\n if (typeof ctrl === 'symbol')\n return ctrl;\n for (const field of ['key', 'value']) {\n const token = item[field];\n if (token && 'items' in token) {\n for (let i = 0; i < token.items.length; ++i) {\n const ci = _visit(Object.freeze(path.concat([[field, i]])), token.items[i], visitor);\n if (typeof ci === 'number')\n i = ci - 1;\n else if (ci === BREAK)\n return BREAK;\n else if (ci === REMOVE) {\n token.items.splice(i, 1);\n i -= 1;\n }\n }\n if (typeof ctrl === 'function' && field === 'key')\n ctrl = ctrl(item, path);\n }\n }\n return typeof ctrl === 'function' ? ctrl(item, path) : ctrl;\n}\n\nexport { visit };\n","export { createScalarToken, resolveAsScalar, setScalarValue } from './cst-scalar.js';\nexport { stringify } from './cst-stringify.js';\nexport { visit } from './cst-visit.js';\n\n/** The byte order mark */\nconst BOM = '\\u{FEFF}';\n/** Start of doc-mode */\nconst DOCUMENT = '\\x02'; // C0: Start of Text\n/** Unexpected end of flow-mode */\nconst FLOW_END = '\\x18'; // C0: Cancel\n/** Next token is a scalar value */\nconst SCALAR = '\\x1f'; // C0: Unit Separator\n/** @returns `true` if `token` is a flow or block collection */\nconst isCollection = (token) => !!token && 'items' in token;\n/** @returns `true` if `token` is a flow or block scalar; not an alias */\nconst isScalar = (token) => !!token &&\n (token.type === 'scalar' ||\n token.type === 'single-quoted-scalar' ||\n token.type === 'double-quoted-scalar' ||\n token.type === 'block-scalar');\n/* istanbul ignore next */\n/** Get a printable representation of a lexer token */\nfunction prettyToken(token) {\n switch (token) {\n case BOM:\n return '<BOM>';\n case DOCUMENT:\n return '<DOC>';\n case FLOW_END:\n return '<FLOW_END>';\n case SCALAR:\n return '<SCALAR>';\n default:\n return JSON.stringify(token);\n }\n}\n/** Identify the type of a lexer token. May return `null` for unknown tokens. */\nfunction tokenType(source) {\n switch (source) {\n case BOM:\n return 'byte-order-mark';\n case DOCUMENT:\n return 'doc-mode';\n case FLOW_END:\n return 'flow-error-end';\n case SCALAR:\n return 'scalar';\n case '---':\n return 'doc-start';\n case '...':\n return 'doc-end';\n case '':\n case '\\n':\n case '\\r\\n':\n return 'newline';\n case '-':\n return 'seq-item-ind';\n case '?':\n return 'explicit-key-ind';\n case ':':\n return 'map-value-ind';\n case '{':\n return 'flow-map-start';\n case '}':\n return 'flow-map-end';\n case '[':\n return 'flow-seq-start';\n case ']':\n return 'flow-seq-end';\n case ',':\n return 'comma';\n }\n switch (source[0]) {\n case ' ':\n case '\\t':\n return 'space';\n case '#':\n return 'comment';\n case '%':\n return 'directive-line';\n case '*':\n return 'alias';\n case '&':\n return 'anchor';\n case '!':\n return 'tag';\n case \"'\":\n return 'single-quoted-scalar';\n case '\"':\n return 'double-quoted-scalar';\n case '|':\n case '>':\n return 'block-scalar-header';\n }\n return null;\n}\n\nexport { BOM, DOCUMENT, FLOW_END, SCALAR, isCollection, isScalar, prettyToken, tokenType };\n","import { BOM, DOCUMENT, FLOW_END, SCALAR } from './cst.js';\n\n/*\nSTART -> stream\n\nstream\n directive -> line-end -> stream\n indent + line-end -> stream\n [else] -> line-start\n\nline-end\n comment -> line-end\n newline -> .\n input-end -> END\n\nline-start\n doc-start -> doc\n doc-end -> stream\n [else] -> indent -> block-start\n\nblock-start\n seq-item-start -> block-start\n explicit-key-start -> block-start\n map-value-start -> block-start\n [else] -> doc\n\ndoc\n line-end -> line-start\n spaces -> doc\n anchor -> doc\n tag -> doc\n flow-start -> flow -> doc\n flow-end -> error -> doc\n seq-item-start -> error -> doc\n explicit-key-start -> error -> doc\n map-value-start -> doc\n alias -> doc\n quote-start -> quoted-scalar -> doc\n block-scalar-header -> line-end -> block-scalar(min) -> line-start\n [else] -> plain-scalar(false, min) -> doc\n\nflow\n line-end -> flow\n spaces -> flow\n anchor -> flow\n tag -> flow\n flow-start -> flow -> flow\n flow-end -> .\n seq-item-start -> error -> flow\n explicit-key-start -> flow\n map-value-start -> flow\n alias -> flow\n quote-start -> quoted-scalar -> flow\n comma -> flow\n [else] -> plain-scalar(true, 0) -> flow\n\nquoted-scalar\n quote-end -> .\n [else] -> quoted-scalar\n\nblock-scalar(min)\n newline + peek(indent < min) -> .\n [else] -> block-scalar(min)\n\nplain-scalar(is-flow, min)\n scalar-end(is-flow) -> .\n peek(newline + (indent < min)) -> .\n [else] -> plain-scalar(min)\n*/\nfunction isEmpty(ch) {\n switch (ch) {\n case undefined:\n case ' ':\n case '\\n':\n case '\\r':\n case '\\t':\n return true;\n default:\n return false;\n }\n}\nconst hexDigits = new Set('0123456789ABCDEFabcdef');\nconst tagChars = new Set(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()\");\nconst flowIndicatorChars = new Set(',[]{}');\nconst invalidAnchorChars = new Set(' ,[]{}\\n\\r\\t');\nconst isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);\n/**\n * Splits an input string into lexical tokens, i.e. smaller strings that are\n * easily identifiable by `tokens.tokenType()`.\n *\n * Lexing starts always in a \"stream\" context. Incomplete input may be buffered\n * until a complete token can be emitted.\n *\n * In addition to slices of the original input, the following control characters\n * may also be emitted:\n *\n * - `\\x02` (Start of Text): A document starts with the next token\n * - `\\x18` (Cancel): Unexpected end of flow-mode (indicates an error)\n * - `\\x1f` (Unit Separator): Next token is a scalar value\n * - `\\u{FEFF}` (Byte order mark): Emitted separately outside documents\n */\nclass Lexer {\n constructor() {\n /**\n * Flag indicating whether the end of the current buffer marks the end of\n * all input\n */\n this.atEnd = false;\n /**\n * Explicit indent set in block scalar header, as an offset from the current\n * minimum indent, so e.g. set to 1 from a header `|2+`. Set to -1 if not\n * explicitly set.\n */\n this.blockScalarIndent = -1;\n /**\n * Block scalars that include a + (keep) chomping indicator in their header\n * include trailing empty lines, which are otherwise excluded from the\n * scalar's contents.\n */\n this.blockScalarKeep = false;\n /** Current input */\n this.buffer = '';\n /**\n * Flag noting whether the map value indicator : can immediately follow this\n * node within a flow context.\n */\n this.flowKey = false;\n /** Count of surrounding flow collection levels. */\n this.flowLevel = 0;\n /**\n * Minimum level of indentation required for next lines to be parsed as a\n * part of the current scalar value.\n */\n this.indentNext = 0;\n /** Indentation level of the current line. */\n this.indentValue = 0;\n /** Position of the next \\n character. */\n this.lineEndPos = null;\n /** Stores the state of the lexer if reaching the end of incpomplete input */\n this.next = null;\n /** A pointer to `buffer`; the current position of the lexer. */\n this.pos = 0;\n }\n /**\n * Generate YAML tokens from the `source` string. If `incomplete`,\n * a part of the last line may be left as a buffer for the next call.\n *\n * @returns A generator of lexical tokens\n */\n *lex(source, incomplete = false) {\n if (source) {\n if (typeof source !== 'string')\n throw TypeError('source is not a string');\n this.buffer = this.buffer ? this.buffer + source : source;\n this.lineEndPos = null;\n }\n this.atEnd = !incomplete;\n let next = this.next ?? 'stream';\n while (next && (incomplete || this.hasChars(1)))\n next = yield* this.parseNext(next);\n }\n atLineEnd() {\n let i = this.pos;\n let ch = this.buffer[i];\n while (ch === ' ' || ch === '\\t')\n ch = this.buffer[++i];\n if (!ch || ch === '#' || ch === '\\n')\n return true;\n if (ch === '\\r')\n return this.buffer[i + 1] === '\\n';\n return false;\n }\n charAt(n) {\n return this.buffer[this.pos + n];\n }\n continueScalar(offset) {\n let ch = this.buffer[offset];\n if (this.indentNext > 0) {\n let indent = 0;\n while (ch === ' ')\n ch = this.buffer[++indent + offset];\n if (ch === '\\r') {\n const next = this.buffer[indent + offset + 1];\n if (next === '\\n' || (!next && !this.atEnd))\n return offset + indent + 1;\n }\n return ch === '\\n' || indent >= this.indentNext || (!ch && !this.atEnd)\n ? offset + indent\n : -1;\n }\n if (ch === '-' || ch === '.') {\n const dt = this.buffer.substr(offset, 3);\n if ((dt === '---' || dt === '...') && isEmpty(this.buffer[offset + 3]))\n return -1;\n }\n return offset;\n }\n getLine() {\n let end = this.lineEndPos;\n if (typeof end !== 'number' || (end !== -1 && end < this.pos)) {\n end = this.buffer.indexOf('\\n', this.pos);\n this.lineEndPos = end;\n }\n if (end === -1)\n return this.atEnd ? this.buffer.substring(this.pos) : null;\n if (this.buffer[end - 1] === '\\r')\n end -= 1;\n return this.buffer.substring(this.pos, end);\n }\n hasChars(n) {\n return this.pos + n <= this.buffer.length;\n }\n setNext(state) {\n this.buffer = this.buffer.substring(this.pos);\n this.pos = 0;\n this.lineEndPos = null;\n this.next = state;\n return null;\n }\n peek(n) {\n return this.buffer.substr(this.pos, n);\n }\n *parseNext(next) {\n switch (next) {\n case 'stream':\n return yield* this.parseStream();\n case 'line-start':\n return yield* this.parseLineStart();\n case 'block-start':\n return yield* this.parseBlockStart();\n case 'doc':\n return yield* this.parseDocument();\n case 'flow':\n return yield* this.parseFlowCollection();\n case 'quoted-scalar':\n return yield* this.parseQuotedScalar();\n case 'block-scalar':\n return yield* this.parseBlockScalar();\n case 'plain-scalar':\n return yield* this.parsePlainScalar();\n }\n }\n *parseStream() {\n let line = this.getLine();\n if (line === null)\n return this.setNext('stream');\n if (line[0] === BOM) {\n yield* this.pushCount(1);\n line = line.substring(1);\n }\n if (line[0] === '%') {\n let dirEnd = line.length;\n let cs = line.indexOf('#');\n while (cs !== -1) {\n const ch = line[cs - 1];\n if (ch === ' ' || ch === '\\t') {\n dirEnd = cs - 1;\n break;\n }\n else {\n cs = line.indexOf('#', cs + 1);\n }\n }\n while (true) {\n const ch = line[dirEnd - 1];\n if (ch === ' ' || ch === '\\t')\n dirEnd -= 1;\n else\n break;\n }\n const n = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));\n yield* this.pushCount(line.length - n); // possible comment\n this.pushNewline();\n return 'stream';\n }\n if (this.atLineEnd()) {\n const sp = yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - sp);\n yield* this.pushNewline();\n return 'stream';\n }\n yield DOCUMENT;\n return yield* this.parseLineStart();\n }\n *parseLineStart() {\n const ch = this.charAt(0);\n if (!ch && !this.atEnd)\n return this.setNext('line-start');\n if (ch === '-' || ch === '.') {\n if (!this.atEnd && !this.hasChars(4))\n return this.setNext('line-start');\n const s = this.peek(3);\n if ((s === '---' || s === '...') && isEmpty(this.charAt(3))) {\n yield* this.pushCount(3);\n this.indentValue = 0;\n this.indentNext = 0;\n return s === '---' ? 'doc' : 'stream';\n }\n }\n this.indentValue = yield* this.pushSpaces(false);\n if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))\n this.indentNext = this.indentValue;\n return yield* this.parseBlockStart();\n }\n *parseBlockStart() {\n const [ch0, ch1] = this.peek(2);\n if (!ch1 && !this.atEnd)\n return this.setNext('block-start');\n if ((ch0 === '-' || ch0 === '?' || ch0 === ':') && isEmpty(ch1)) {\n const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));\n this.indentNext = this.indentValue + 1;\n this.indentValue += n;\n return yield* this.parseBlockStart();\n }\n return 'doc';\n }\n *parseDocument() {\n yield* this.pushSpaces(true);\n const line = this.getLine();\n if (line === null)\n return this.setNext('doc');\n let n = yield* this.pushIndicators();\n switch (line[n]) {\n case '#':\n yield* this.pushCount(line.length - n);\n // fallthrough\n case undefined:\n yield* this.pushNewline();\n return yield* this.parseLineStart();\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel = 1;\n return 'flow';\n case '}':\n case ']':\n // this is an error\n yield* this.pushCount(1);\n return 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'doc';\n case '\"':\n case \"'\":\n return yield* this.parseQuotedScalar();\n case '|':\n case '>':\n n += yield* this.parseBlockScalarHeader();\n n += yield* this.pushSpaces(true);\n yield* this.pushCount(line.length - n);\n yield* this.pushNewline();\n return yield* this.parseBlockScalar();\n default:\n return yield* this.parsePlainScalar();\n }\n }\n *parseFlowCollection() {\n let nl, sp;\n let indent = -1;\n do {\n nl = yield* this.pushNewline();\n if (nl > 0) {\n sp = yield* this.pushSpaces(false);\n this.indentValue = indent = sp;\n }\n else {\n sp = 0;\n }\n sp += yield* this.pushSpaces(true);\n } while (nl + sp > 0);\n const line = this.getLine();\n if (line === null)\n return this.setNext('flow');\n if ((indent !== -1 && indent < this.indentNext && line[0] !== '#') ||\n (indent === 0 &&\n (line.startsWith('---') || line.startsWith('...')) &&\n isEmpty(line[3]))) {\n // Allowing for the terminal ] or } at the same (rather than greater)\n // indent level as the initial [ or { is technically invalid, but\n // failing here would be surprising to users.\n const atFlowEndMarker = indent === this.indentNext - 1 &&\n this.flowLevel === 1 &&\n (line[0] === ']' || line[0] === '}');\n if (!atFlowEndMarker) {\n // this is an error\n this.flowLevel = 0;\n yield FLOW_END;\n return yield* this.parseLineStart();\n }\n }\n let n = 0;\n while (line[n] === ',') {\n n += yield* this.pushCount(1);\n n += yield* this.pushSpaces(true);\n this.flowKey = false;\n }\n n += yield* this.pushIndicators();\n switch (line[n]) {\n case undefined:\n return 'flow';\n case '#':\n yield* this.pushCount(line.length - n);\n return 'flow';\n case '{':\n case '[':\n yield* this.pushCount(1);\n this.flowKey = false;\n this.flowLevel += 1;\n return 'flow';\n case '}':\n case ']':\n yield* this.pushCount(1);\n this.flowKey = true;\n this.flowLevel -= 1;\n return this.flowLevel ? 'flow' : 'doc';\n case '*':\n yield* this.pushUntil(isNotAnchorChar);\n return 'flow';\n case '\"':\n case \"'\":\n this.flowKey = true;\n return yield* this.parseQuotedScalar();\n case ':': {\n const next = this.charAt(1);\n if (this.flowKey || isEmpty(next) || next === ',') {\n this.flowKey = false;\n yield* this.pushCount(1);\n yield* this.pushSpaces(true);\n return 'flow';\n }\n }\n // fallthrough\n default:\n this.flowKey = false;\n return yield* this.parsePlainScalar();\n }\n }\n *parseQuotedScalar() {\n const quote = this.charAt(0);\n let end = this.buffer.indexOf(quote, this.pos + 1);\n if (quote === \"'\") {\n while (end !== -1 && this.buffer[end + 1] === \"'\")\n end = this.buffer.indexOf(\"'\", end + 2);\n }\n else {\n // double-quote\n while (end !== -1) {\n let n = 0;\n while (this.buffer[end - 1 - n] === '\\\\')\n n += 1;\n if (n % 2 === 0)\n break;\n end = this.buffer.indexOf('\"', end + 1);\n }\n }\n // Only looking for newlines within the quotes\n const qb = this.buffer.substring(0, end);\n let nl = qb.indexOf('\\n', this.pos);\n if (nl !== -1) {\n while (nl !== -1) {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = qb.indexOf('\\n', cs);\n }\n if (nl !== -1) {\n // this is an error caused by an unexpected unindent\n end = nl - (qb[nl - 1] === '\\r' ? 2 : 1);\n }\n }\n if (end === -1) {\n if (!this.atEnd)\n return this.setNext('quoted-scalar');\n end = this.buffer.length;\n }\n yield* this.pushToIndex(end + 1, false);\n return this.flowLevel ? 'flow' : 'doc';\n }\n *parseBlockScalarHeader() {\n this.blockScalarIndent = -1;\n this.blockScalarKeep = false;\n let i = this.pos;\n while (true) {\n const ch = this.buffer[++i];\n if (ch === '+')\n this.blockScalarKeep = true;\n else if (ch > '0' && ch <= '9')\n this.blockScalarIndent = Number(ch) - 1;\n else if (ch !== '-')\n break;\n }\n return yield* this.pushUntil(ch => isEmpty(ch) || ch === '#');\n }\n *parseBlockScalar() {\n let nl = this.pos - 1; // may be -1 if this.pos === 0\n let indent = 0;\n let ch;\n loop: for (let i = this.pos; (ch = this.buffer[i]); ++i) {\n switch (ch) {\n case ' ':\n indent += 1;\n break;\n case '\\n':\n nl = i;\n indent = 0;\n break;\n case '\\r': {\n const next = this.buffer[i + 1];\n if (!next && !this.atEnd)\n return this.setNext('block-scalar');\n if (next === '\\n')\n break;\n } // fallthrough\n default:\n break loop;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('block-scalar');\n if (indent >= this.indentNext) {\n if (this.blockScalarIndent === -1)\n this.indentNext = indent;\n else {\n this.indentNext =\n this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);\n }\n do {\n const cs = this.continueScalar(nl + 1);\n if (cs === -1)\n break;\n nl = this.buffer.indexOf('\\n', cs);\n } while (nl !== -1);\n if (nl === -1) {\n if (!this.atEnd)\n return this.setNext('block-scalar');\n nl = this.buffer.length;\n }\n }\n // Trailing insufficiently indented tabs are invalid.\n // To catch that during parsing, we include them in the block scalar value.\n let i = nl + 1;\n ch = this.buffer[i];\n while (ch === ' ')\n ch = this.buffer[++i];\n if (ch === '\\t') {\n while (ch === '\\t' || ch === ' ' || ch === '\\r' || ch === '\\n')\n ch = this.buffer[++i];\n nl = i - 1;\n }\n else if (!this.blockScalarKeep) {\n do {\n let i = nl - 1;\n let ch = this.buffer[i];\n if (ch === '\\r')\n ch = this.buffer[--i];\n const lastChar = i; // Drop the line if last char not more indented\n while (ch === ' ')\n ch = this.buffer[--i];\n if (ch === '\\n' && i >= this.pos && i + 1 + indent > lastChar)\n nl = i;\n else\n break;\n } while (true);\n }\n yield SCALAR;\n yield* this.pushToIndex(nl + 1, true);\n return yield* this.parseLineStart();\n }\n *parsePlainScalar() {\n const inFlow = this.flowLevel > 0;\n let end = this.pos - 1;\n let i = this.pos - 1;\n let ch;\n while ((ch = this.buffer[++i])) {\n if (ch === ':') {\n const next = this.buffer[i + 1];\n if (isEmpty(next) || (inFlow && flowIndicatorChars.has(next)))\n break;\n end = i;\n }\n else if (isEmpty(ch)) {\n let next = this.buffer[i + 1];\n if (ch === '\\r') {\n if (next === '\\n') {\n i += 1;\n ch = '\\n';\n next = this.buffer[i + 1];\n }\n else\n end = i;\n }\n if (next === '#' || (inFlow && flowIndicatorChars.has(next)))\n break;\n if (ch === '\\n') {\n const cs = this.continueScalar(i + 1);\n if (cs === -1)\n break;\n i = Math.max(i, cs - 2); // to advance, but still account for ' #'\n }\n }\n else {\n if (inFlow && flowIndicatorChars.has(ch))\n break;\n end = i;\n }\n }\n if (!ch && !this.atEnd)\n return this.setNext('plain-scalar');\n yield SCALAR;\n yield* this.pushToIndex(end + 1, true);\n return inFlow ? 'flow' : 'doc';\n }\n *pushCount(n) {\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos += n;\n return n;\n }\n return 0;\n }\n *pushToIndex(i, allowEmpty) {\n const s = this.buffer.slice(this.pos, i);\n if (s) {\n yield s;\n this.pos += s.length;\n return s.length;\n }\n else if (allowEmpty)\n yield '';\n return 0;\n }\n *pushIndicators() {\n switch (this.charAt(0)) {\n case '!':\n return ((yield* this.pushTag()) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '&':\n return ((yield* this.pushUntil(isNotAnchorChar)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n case '-': // this is an error\n case '?': // this is an error outside flow collections\n case ':': {\n const inFlow = this.flowLevel > 0;\n const ch1 = this.charAt(1);\n if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {\n if (!inFlow)\n this.indentNext = this.indentValue + 1;\n else if (this.flowKey)\n this.flowKey = false;\n return ((yield* this.pushCount(1)) +\n (yield* this.pushSpaces(true)) +\n (yield* this.pushIndicators()));\n }\n }\n }\n return 0;\n }\n *pushTag() {\n if (this.charAt(1) === '<') {\n let i = this.pos + 2;\n let ch = this.buffer[i];\n while (!isEmpty(ch) && ch !== '>')\n ch = this.buffer[++i];\n return yield* this.pushToIndex(ch === '>' ? i + 1 : i, false);\n }\n else {\n let i = this.pos + 1;\n let ch = this.buffer[i];\n while (ch) {\n if (tagChars.has(ch))\n ch = this.buffer[++i];\n else if (ch === '%' &&\n hexDigits.has(this.buffer[i + 1]) &&\n hexDigits.has(this.buffer[i + 2])) {\n ch = this.buffer[(i += 3)];\n }\n else\n break;\n }\n return yield* this.pushToIndex(i, false);\n }\n }\n *pushNewline() {\n const ch = this.buffer[this.pos];\n if (ch === '\\n')\n return yield* this.pushCount(1);\n else if (ch === '\\r' && this.charAt(1) === '\\n')\n return yield* this.pushCount(2);\n else\n return 0;\n }\n *pushSpaces(allowTabs) {\n let i = this.pos - 1;\n let ch;\n do {\n ch = this.buffer[++i];\n } while (ch === ' ' || (allowTabs && ch === '\\t'));\n const n = i - this.pos;\n if (n > 0) {\n yield this.buffer.substr(this.pos, n);\n this.pos = i;\n }\n return n;\n }\n *pushUntil(test) {\n let i = this.pos;\n let ch = this.buffer[i];\n while (!test(ch))\n ch = this.buffer[++i];\n return yield* this.pushToIndex(i, false);\n }\n}\n\nexport { Lexer };\n","/**\n * Tracks newlines during parsing in order to provide an efficient API for\n * determining the one-indexed `{ line, col }` position for any offset\n * within the input.\n */\nclass LineCounter {\n constructor() {\n this.lineStarts = [];\n /**\n * Should be called in ascending order. Otherwise, call\n * `lineCounter.lineStarts.sort()` before calling `linePos()`.\n */\n this.addNewLine = (offset) => this.lineStarts.push(offset);\n /**\n * Performs a binary search and returns the 1-indexed { line, col }\n * position of `offset`. If `line === 0`, `addNewLine` has never been\n * called or `offset` is before the first known newline.\n */\n this.linePos = (offset) => {\n let low = 0;\n let high = this.lineStarts.length;\n while (low < high) {\n const mid = (low + high) >> 1; // Math.floor((low + high) / 2)\n if (this.lineStarts[mid] < offset)\n low = mid + 1;\n else\n high = mid;\n }\n if (this.lineStarts[low] === offset)\n return { line: low + 1, col: 1 };\n if (low === 0)\n return { line: 0, col: offset };\n const start = this.lineStarts[low - 1];\n return { line: low, col: offset - start + 1 };\n };\n }\n}\n\nexport { LineCounter };\n","import { tokenType } from './cst.js';\nimport { Lexer } from './lexer.js';\n\nfunction includesToken(list, type) {\n for (let i = 0; i < list.length; ++i)\n if (list[i].type === type)\n return true;\n return false;\n}\nfunction findNonEmptyIndex(list) {\n for (let i = 0; i < list.length; ++i) {\n switch (list[i].type) {\n case 'space':\n case 'comment':\n case 'newline':\n break;\n default:\n return i;\n }\n }\n return -1;\n}\nfunction isFlowToken(token) {\n switch (token?.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n case 'flow-collection':\n return true;\n default:\n return false;\n }\n}\nfunction getPrevProps(parent) {\n switch (parent.type) {\n case 'document':\n return parent.start;\n case 'block-map': {\n const it = parent.items[parent.items.length - 1];\n return it.sep ?? it.start;\n }\n case 'block-seq':\n return parent.items[parent.items.length - 1].start;\n /* istanbul ignore next should not happen */\n default:\n return [];\n }\n}\n/** Note: May modify input array */\nfunction getFirstKeyStartProps(prev) {\n if (prev.length === 0)\n return [];\n let i = prev.length;\n loop: while (--i >= 0) {\n switch (prev[i].type) {\n case 'doc-start':\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n case 'newline':\n break loop;\n }\n }\n while (prev[++i]?.type === 'space') {\n /* loop */\n }\n return prev.splice(i, prev.length);\n}\nfunction fixFlowSeqItems(fc) {\n if (fc.start.type === 'flow-seq-start') {\n for (const it of fc.items) {\n if (it.sep &&\n !it.value &&\n !includesToken(it.start, 'explicit-key-ind') &&\n !includesToken(it.sep, 'map-value-ind')) {\n if (it.key)\n it.value = it.key;\n delete it.key;\n if (isFlowToken(it.value)) {\n if (it.value.end)\n Array.prototype.push.apply(it.value.end, it.sep);\n else\n it.value.end = it.sep;\n }\n else\n Array.prototype.push.apply(it.start, it.sep);\n delete it.sep;\n }\n }\n }\n}\n/**\n * A YAML concrete syntax tree (CST) parser\n *\n * ```ts\n * const src: string = ...\n * for (const token of new Parser().parse(src)) {\n * // token: Token\n * }\n * ```\n *\n * To use the parser with a user-provided lexer:\n *\n * ```ts\n * function* parse(source: string, lexer: Lexer) {\n * const parser = new Parser()\n * for (const lexeme of lexer.lex(source))\n * yield* parser.next(lexeme)\n * yield* parser.end()\n * }\n *\n * const src: string = ...\n * const lexer = new Lexer()\n * for (const token of parse(src, lexer)) {\n * // token: Token\n * }\n * ```\n */\nclass Parser {\n /**\n * @param onNewLine - If defined, called separately with the start position of\n * each new line (in `parse()`, including the start of input).\n */\n constructor(onNewLine) {\n /** If true, space and sequence indicators count as indentation */\n this.atNewLine = true;\n /** If true, next token is a scalar value */\n this.atScalar = false;\n /** Current indentation level */\n this.indent = 0;\n /** Current offset since the start of parsing */\n this.offset = 0;\n /** On the same line with a block map key */\n this.onKeyLine = false;\n /** Top indicates the node that's currently being built */\n this.stack = [];\n /** The source of the current token, set in parse() */\n this.source = '';\n /** The type of the current token, set in parse() */\n this.type = '';\n // Must be defined after `next()`\n this.lexer = new Lexer();\n this.onNewLine = onNewLine;\n }\n /**\n * Parse `source` as a YAML stream.\n * If `incomplete`, a part of the last line may be left as a buffer for the next call.\n *\n * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.\n *\n * @returns A generator of tokens representing each directive, document, and other structure.\n */\n *parse(source, incomplete = false) {\n if (this.onNewLine && this.offset === 0)\n this.onNewLine(0);\n for (const lexeme of this.lexer.lex(source, incomplete))\n yield* this.next(lexeme);\n if (!incomplete)\n yield* this.end();\n }\n /**\n * Advance the parser by the `source` of one lexical token.\n */\n *next(source) {\n this.source = source;\n if (this.atScalar) {\n this.atScalar = false;\n yield* this.step();\n this.offset += source.length;\n return;\n }\n const type = tokenType(source);\n if (!type) {\n const message = `Not a YAML token: ${source}`;\n yield* this.pop({ type: 'error', offset: this.offset, message, source });\n this.offset += source.length;\n }\n else if (type === 'scalar') {\n this.atNewLine = false;\n this.atScalar = true;\n this.type = 'scalar';\n }\n else {\n this.type = type;\n yield* this.step();\n switch (type) {\n case 'newline':\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine)\n this.onNewLine(this.offset + source.length);\n break;\n case 'space':\n if (this.atNewLine && source[0] === ' ')\n this.indent += source.length;\n break;\n case 'explicit-key-ind':\n case 'map-value-ind':\n case 'seq-item-ind':\n if (this.atNewLine)\n this.indent += source.length;\n break;\n case 'doc-mode':\n case 'flow-error-end':\n return;\n default:\n this.atNewLine = false;\n }\n this.offset += source.length;\n }\n }\n /** Call at end of input to push out any remaining constructions */\n *end() {\n while (this.stack.length > 0)\n yield* this.pop();\n }\n get sourceToken() {\n const st = {\n type: this.type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n return st;\n }\n *step() {\n const top = this.peek(1);\n if (this.type === 'doc-end' && (!top || top.type !== 'doc-end')) {\n while (this.stack.length > 0)\n yield* this.pop();\n this.stack.push({\n type: 'doc-end',\n offset: this.offset,\n source: this.source\n });\n return;\n }\n if (!top)\n return yield* this.stream();\n switch (top.type) {\n case 'document':\n return yield* this.document(top);\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return yield* this.scalar(top);\n case 'block-scalar':\n return yield* this.blockScalar(top);\n case 'block-map':\n return yield* this.blockMap(top);\n case 'block-seq':\n return yield* this.blockSequence(top);\n case 'flow-collection':\n return yield* this.flowCollection(top);\n case 'doc-end':\n return yield* this.documentEnd(top);\n }\n /* istanbul ignore next should not happen */\n yield* this.pop();\n }\n peek(n) {\n return this.stack[this.stack.length - n];\n }\n *pop(error) {\n const token = error ?? this.stack.pop();\n /* istanbul ignore if should not happen */\n if (!token) {\n const message = 'Tried to pop an empty stack';\n yield { type: 'error', offset: this.offset, source: '', message };\n }\n else if (this.stack.length === 0) {\n yield token;\n }\n else {\n const top = this.peek(1);\n if (token.type === 'block-scalar') {\n // Block scalars use their parent rather than header indent\n token.indent = 'indent' in top ? top.indent : 0;\n }\n else if (token.type === 'flow-collection' && top.type === 'document') {\n // Ignore all indent for top-level flow collections\n token.indent = 0;\n }\n if (token.type === 'flow-collection')\n fixFlowSeqItems(token);\n switch (top.type) {\n case 'document':\n top.value = token;\n break;\n case 'block-scalar':\n top.props.push(token); // error\n break;\n case 'block-map': {\n const it = top.items[top.items.length - 1];\n if (it.value) {\n top.items.push({ start: [], key: token, sep: [] });\n this.onKeyLine = true;\n return;\n }\n else if (it.sep) {\n it.value = token;\n }\n else {\n Object.assign(it, { key: token, sep: [] });\n this.onKeyLine = !it.explicitKey;\n return;\n }\n break;\n }\n case 'block-seq': {\n const it = top.items[top.items.length - 1];\n if (it.value)\n top.items.push({ start: [], value: token });\n else\n it.value = token;\n break;\n }\n case 'flow-collection': {\n const it = top.items[top.items.length - 1];\n if (!it || it.value)\n top.items.push({ start: [], key: token, sep: [] });\n else if (it.sep)\n it.value = token;\n else\n Object.assign(it, { key: token, sep: [] });\n return;\n }\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.pop(token);\n }\n if ((top.type === 'document' ||\n top.type === 'block-map' ||\n top.type === 'block-seq') &&\n (token.type === 'block-map' || token.type === 'block-seq')) {\n const last = token.items[token.items.length - 1];\n if (last &&\n !last.sep &&\n !last.value &&\n last.start.length > 0 &&\n findNonEmptyIndex(last.start) === -1 &&\n (token.indent === 0 ||\n last.start.every(st => st.type !== 'comment' || st.indent < token.indent))) {\n if (top.type === 'document')\n top.end = last.start;\n else\n top.items.push({ start: last.start });\n token.items.splice(-1, 1);\n }\n }\n }\n }\n *stream() {\n switch (this.type) {\n case 'directive-line':\n yield { type: 'directive', offset: this.offset, source: this.source };\n return;\n case 'byte-order-mark':\n case 'space':\n case 'comment':\n case 'newline':\n yield this.sourceToken;\n return;\n case 'doc-mode':\n case 'doc-start': {\n const doc = {\n type: 'document',\n offset: this.offset,\n start: []\n };\n if (this.type === 'doc-start')\n doc.start.push(this.sourceToken);\n this.stack.push(doc);\n return;\n }\n }\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML stream`,\n source: this.source\n };\n }\n *document(doc) {\n if (doc.value)\n return yield* this.lineEnd(doc);\n switch (this.type) {\n case 'doc-start': {\n if (findNonEmptyIndex(doc.start) !== -1) {\n yield* this.pop();\n yield* this.step();\n }\n else\n doc.start.push(this.sourceToken);\n return;\n }\n case 'anchor':\n case 'tag':\n case 'space':\n case 'comment':\n case 'newline':\n doc.start.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(doc);\n if (bv)\n this.stack.push(bv);\n else {\n yield {\n type: 'error',\n offset: this.offset,\n message: `Unexpected ${this.type} token in YAML document`,\n source: this.source\n };\n }\n }\n *scalar(scalar) {\n if (this.type === 'map-value-ind') {\n const prev = getPrevProps(this.peek(2));\n const start = getFirstKeyStartProps(prev);\n let sep;\n if (scalar.end) {\n sep = scalar.end;\n sep.push(this.sourceToken);\n delete scalar.end;\n }\n else\n sep = [this.sourceToken];\n const map = {\n type: 'block-map',\n offset: scalar.offset,\n indent: scalar.indent,\n items: [{ start, key: scalar, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else\n yield* this.lineEnd(scalar);\n }\n *blockScalar(scalar) {\n switch (this.type) {\n case 'space':\n case 'comment':\n case 'newline':\n scalar.props.push(this.sourceToken);\n return;\n case 'scalar':\n scalar.source = this.source;\n // block-scalar source includes trailing newline\n this.atNewLine = true;\n this.indent = 0;\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n yield* this.pop();\n break;\n /* istanbul ignore next should not happen */\n default:\n yield* this.pop();\n yield* this.step();\n }\n }\n *blockMap(map) {\n const it = map.items[map.items.length - 1];\n // it.sep is true-ish if pair already has key or : separator\n switch (this.type) {\n case 'newline':\n this.onKeyLine = false;\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'space':\n case 'comment':\n if (it.value) {\n map.items.push({ start: [this.sourceToken] });\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n if (this.atIndentedComment(it.start, map.indent)) {\n const prev = map.items[map.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n map.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n }\n if (this.indent >= map.indent) {\n const atMapIndent = !this.onKeyLine && this.indent === map.indent;\n const atNextItem = atMapIndent &&\n (it.sep || it.explicitKey) &&\n this.type !== 'seq-item-ind';\n // For empty nodes, assign newline-separated not indented empty tokens to following node\n let start = [];\n if (atNextItem && it.sep && !it.value) {\n const nl = [];\n for (let i = 0; i < it.sep.length; ++i) {\n const st = it.sep[i];\n switch (st.type) {\n case 'newline':\n nl.push(i);\n break;\n case 'space':\n break;\n case 'comment':\n if (st.indent > map.indent)\n nl.length = 0;\n break;\n default:\n nl.length = 0;\n }\n }\n if (nl.length >= 2)\n start = it.sep.splice(nl[1]);\n }\n switch (this.type) {\n case 'anchor':\n case 'tag':\n if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n it.sep.push(this.sourceToken);\n }\n else {\n it.start.push(this.sourceToken);\n }\n return;\n case 'explicit-key-ind':\n if (!it.sep && !it.explicitKey) {\n it.start.push(this.sourceToken);\n it.explicitKey = true;\n }\n else if (atNextItem || it.value) {\n start.push(this.sourceToken);\n map.items.push({ start, explicitKey: true });\n }\n else {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken], explicitKey: true }]\n });\n }\n this.onKeyLine = true;\n return;\n case 'map-value-ind':\n if (it.explicitKey) {\n if (!it.sep) {\n if (includesToken(it.start, 'newline')) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else {\n const start = getFirstKeyStartProps(it.start);\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n }\n else if (it.value) {\n map.items.push({ start: [], key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n });\n }\n else if (isFlowToken(it.key) &&\n !includesToken(it.sep, 'newline')) {\n const start = getFirstKeyStartProps(it.start);\n const key = it.key;\n const sep = it.sep;\n sep.push(this.sourceToken);\n // @ts-expect-error type guard is wrong here\n delete it.key;\n // @ts-expect-error type guard is wrong here\n delete it.sep;\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key, sep }]\n });\n }\n else if (start.length > 0) {\n // Not actually at next item\n it.sep = it.sep.concat(start, this.sourceToken);\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n else {\n if (!it.sep) {\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n }\n else if (it.value || atNextItem) {\n map.items.push({ start, key: null, sep: [this.sourceToken] });\n }\n else if (includesToken(it.sep, 'map-value-ind')) {\n this.stack.push({\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [], key: null, sep: [this.sourceToken] }]\n });\n }\n else {\n it.sep.push(this.sourceToken);\n }\n }\n this.onKeyLine = true;\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (atNextItem || it.value) {\n map.items.push({ start, key: fs, sep: [] });\n this.onKeyLine = true;\n }\n else if (it.sep) {\n this.stack.push(fs);\n }\n else {\n Object.assign(it, { key: fs, sep: [] });\n this.onKeyLine = true;\n }\n return;\n }\n default: {\n const bv = this.startBlockValue(map);\n if (bv) {\n if (bv.type === 'block-seq') {\n if (!it.explicitKey &&\n it.sep &&\n !includesToken(it.sep, 'newline')) {\n yield* this.pop({\n type: 'error',\n offset: this.offset,\n message: 'Unexpected block-seq-ind on same line with key',\n source: this.source\n });\n return;\n }\n }\n else if (atMapIndent) {\n map.items.push({ start });\n }\n this.stack.push(bv);\n return;\n }\n }\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *blockSequence(seq) {\n const it = seq.items[seq.items.length - 1];\n switch (this.type) {\n case 'newline':\n if (it.value) {\n const end = 'end' in it.value ? it.value.end : undefined;\n const last = Array.isArray(end) ? end[end.length - 1] : undefined;\n if (last?.type === 'comment')\n end?.push(this.sourceToken);\n else\n seq.items.push({ start: [this.sourceToken] });\n }\n else\n it.start.push(this.sourceToken);\n return;\n case 'space':\n case 'comment':\n if (it.value)\n seq.items.push({ start: [this.sourceToken] });\n else {\n if (this.atIndentedComment(it.start, seq.indent)) {\n const prev = seq.items[seq.items.length - 2];\n const end = prev?.value?.end;\n if (Array.isArray(end)) {\n Array.prototype.push.apply(end, it.start);\n end.push(this.sourceToken);\n seq.items.pop();\n return;\n }\n }\n it.start.push(this.sourceToken);\n }\n return;\n case 'anchor':\n case 'tag':\n if (it.value || this.indent <= seq.indent)\n break;\n it.start.push(this.sourceToken);\n return;\n case 'seq-item-ind':\n if (this.indent !== seq.indent)\n break;\n if (it.value || includesToken(it.start, 'seq-item-ind'))\n seq.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n }\n if (this.indent > seq.indent) {\n const bv = this.startBlockValue(seq);\n if (bv) {\n this.stack.push(bv);\n return;\n }\n }\n yield* this.pop();\n yield* this.step();\n }\n *flowCollection(fc) {\n const it = fc.items[fc.items.length - 1];\n if (this.type === 'flow-error-end') {\n let top;\n do {\n yield* this.pop();\n top = this.peek(1);\n } while (top && top.type === 'flow-collection');\n }\n else if (fc.end.length === 0) {\n switch (this.type) {\n case 'comma':\n case 'explicit-key-ind':\n if (!it || it.sep)\n fc.items.push({ start: [this.sourceToken] });\n else\n it.start.push(this.sourceToken);\n return;\n case 'map-value-ind':\n if (!it || it.value)\n fc.items.push({ start: [], key: null, sep: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n Object.assign(it, { key: null, sep: [this.sourceToken] });\n return;\n case 'space':\n case 'comment':\n case 'newline':\n case 'anchor':\n case 'tag':\n if (!it || it.value)\n fc.items.push({ start: [this.sourceToken] });\n else if (it.sep)\n it.sep.push(this.sourceToken);\n else\n it.start.push(this.sourceToken);\n return;\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar': {\n const fs = this.flowScalar(this.type);\n if (!it || it.value)\n fc.items.push({ start: [], key: fs, sep: [] });\n else if (it.sep)\n this.stack.push(fs);\n else\n Object.assign(it, { key: fs, sep: [] });\n return;\n }\n case 'flow-map-end':\n case 'flow-seq-end':\n fc.end.push(this.sourceToken);\n return;\n }\n const bv = this.startBlockValue(fc);\n /* istanbul ignore else should not happen */\n if (bv)\n this.stack.push(bv);\n else {\n yield* this.pop();\n yield* this.step();\n }\n }\n else {\n const parent = this.peek(2);\n if (parent.type === 'block-map' &&\n ((this.type === 'map-value-ind' && parent.indent === fc.indent) ||\n (this.type === 'newline' &&\n !parent.items[parent.items.length - 1].sep))) {\n yield* this.pop();\n yield* this.step();\n }\n else if (this.type === 'map-value-ind' &&\n parent.type !== 'flow-collection') {\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n fixFlowSeqItems(fc);\n const sep = fc.end.splice(1, fc.end.length);\n sep.push(this.sourceToken);\n const map = {\n type: 'block-map',\n offset: fc.offset,\n indent: fc.indent,\n items: [{ start, key: fc, sep }]\n };\n this.onKeyLine = true;\n this.stack[this.stack.length - 1] = map;\n }\n else {\n yield* this.lineEnd(fc);\n }\n }\n }\n flowScalar(type) {\n if (this.onNewLine) {\n let nl = this.source.indexOf('\\n') + 1;\n while (nl !== 0) {\n this.onNewLine(this.offset + nl);\n nl = this.source.indexOf('\\n', nl) + 1;\n }\n }\n return {\n type,\n offset: this.offset,\n indent: this.indent,\n source: this.source\n };\n }\n startBlockValue(parent) {\n switch (this.type) {\n case 'alias':\n case 'scalar':\n case 'single-quoted-scalar':\n case 'double-quoted-scalar':\n return this.flowScalar(this.type);\n case 'block-scalar-header':\n return {\n type: 'block-scalar',\n offset: this.offset,\n indent: this.indent,\n props: [this.sourceToken],\n source: ''\n };\n case 'flow-map-start':\n case 'flow-seq-start':\n return {\n type: 'flow-collection',\n offset: this.offset,\n indent: this.indent,\n start: this.sourceToken,\n items: [],\n end: []\n };\n case 'seq-item-ind':\n return {\n type: 'block-seq',\n offset: this.offset,\n indent: this.indent,\n items: [{ start: [this.sourceToken] }]\n };\n case 'explicit-key-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n start.push(this.sourceToken);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, explicitKey: true }]\n };\n }\n case 'map-value-ind': {\n this.onKeyLine = true;\n const prev = getPrevProps(parent);\n const start = getFirstKeyStartProps(prev);\n return {\n type: 'block-map',\n offset: this.offset,\n indent: this.indent,\n items: [{ start, key: null, sep: [this.sourceToken] }]\n };\n }\n }\n return null;\n }\n atIndentedComment(start, indent) {\n if (this.type !== 'comment')\n return false;\n if (this.indent <= indent)\n return false;\n return start.every(st => st.type === 'newline' || st.type === 'space');\n }\n *documentEnd(docEnd) {\n if (this.type !== 'doc-mode') {\n if (docEnd.end)\n docEnd.end.push(this.sourceToken);\n else\n docEnd.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n *lineEnd(token) {\n switch (this.type) {\n case 'comma':\n case 'doc-start':\n case 'doc-end':\n case 'flow-seq-end':\n case 'flow-map-end':\n case 'map-value-ind':\n yield* this.pop();\n yield* this.step();\n break;\n case 'newline':\n this.onKeyLine = false;\n // fallthrough\n case 'space':\n case 'comment':\n default:\n // all other values are errors\n if (token.end)\n token.end.push(this.sourceToken);\n else\n token.end = [this.sourceToken];\n if (this.type === 'newline')\n yield* this.pop();\n }\n }\n}\n\nexport { Parser };\n","import { Composer } from './compose/composer.js';\nimport { Document } from './doc/Document.js';\nimport { prettifyError, YAMLParseError } from './errors.js';\nimport { warn } from './log.js';\nimport { isDocument } from './nodes/identity.js';\nimport { LineCounter } from './parse/line-counter.js';\nimport { Parser } from './parse/parser.js';\n\nfunction parseOptions(options) {\n const prettyErrors = options.prettyErrors !== false;\n const lineCounter = options.lineCounter || (prettyErrors && new LineCounter()) || null;\n return { lineCounter, prettyErrors };\n}\n/**\n * Parse the input as a stream of YAML documents.\n *\n * Documents should be separated from each other by `...` or `---` marker lines.\n *\n * @returns If an empty `docs` array is returned, it will be of type\n * EmptyStream and contain additional stream information. In\n * TypeScript, you should use `'empty' in docs` as a type guard for it.\n */\nfunction parseAllDocuments(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n const docs = Array.from(composer.compose(parser.parse(source)));\n if (prettyErrors && lineCounter)\n for (const doc of docs) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n if (docs.length > 0)\n return docs;\n return Object.assign([], { empty: true }, composer.streamInfo());\n}\n/** Parse an input string into a single YAML.Document */\nfunction parseDocument(source, options = {}) {\n const { lineCounter, prettyErrors } = parseOptions(options);\n const parser = new Parser(lineCounter?.addNewLine);\n const composer = new Composer(options);\n // `doc` is always set by compose.end(true) at the very latest\n let doc = null;\n for (const _doc of composer.compose(parser.parse(source), true, source.length)) {\n if (!doc)\n doc = _doc;\n else if (doc.options.logLevel !== 'silent') {\n doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), 'MULTIPLE_DOCS', 'Source contains multiple documents; please use YAML.parseAllDocuments()'));\n break;\n }\n }\n if (prettyErrors && lineCounter) {\n doc.errors.forEach(prettifyError(source, lineCounter));\n doc.warnings.forEach(prettifyError(source, lineCounter));\n }\n return doc;\n}\nfunction parse(src, reviver, options) {\n let _reviver = undefined;\n if (typeof reviver === 'function') {\n _reviver = reviver;\n }\n else if (options === undefined && reviver && typeof reviver === 'object') {\n options = reviver;\n }\n const doc = parseDocument(src, options);\n if (!doc)\n return null;\n doc.warnings.forEach(warning => warn(doc.options.logLevel, warning));\n if (doc.errors.length > 0) {\n if (doc.options.logLevel !== 'silent')\n throw doc.errors[0];\n else\n doc.errors = [];\n }\n return doc.toJS(Object.assign({ reviver: _reviver }, options));\n}\nfunction stringify(value, replacer, options) {\n let _replacer = null;\n if (typeof replacer === 'function' || Array.isArray(replacer)) {\n _replacer = replacer;\n }\n else if (options === undefined && replacer) {\n options = replacer;\n }\n if (typeof options === 'string')\n options = options.length;\n if (typeof options === 'number') {\n const indent = Math.round(options);\n options = indent < 1 ? undefined : indent > 8 ? { indent: 8 } : { indent };\n }\n if (value === undefined) {\n const { keepUndefined } = options ?? replacer ?? {};\n if (!keepUndefined)\n return undefined;\n }\n if (isDocument(value) && !_replacer)\n return value.toString(options);\n return new Document(value, _replacer, options).toString(options);\n}\n\nexport { parse, parseAllDocuments, parseDocument, stringify };\n"],"names":["ALIAS","DOC","MAP","PAIR","SCALAR","SEQ","NODE_TYPE","isAlias","node","isDocument","isMap","isPair","isScalar","isSeq","isCollection","isNode","hasAnchor","BREAK","SKIP","REMOVE","visit","visitor","visitor_","initVisitor","visit_","key","path","ctrl","callVisitor","replaceNode","i","ci","ck","cv","visitAsync","visitAsync_","parent","pt","escapeChars","escapeTagName","tn","ch","Directives","yaml","tags","copy","res","line","onError","parts","name","handle","prefix","version","isValid","source","verbatim","suffix","error","tag","doc","lines","tagEntries","tagNames","_key","anchorIsValid","anchor","msg","anchorNames","root","anchors","findNewAnchor","exclude","createNodeAnchors","aliasObjects","sourceObjects","prevAnchors","ref","applyReviver","reviver","obj","val","len","v0","v1","k","toJS","value","arg","ctx","v","data","NodeBase","type","mapAsMap","maxAliasCount","onAnchor","count","Alias","nodes","found","_arg","getAliasCount","_onComment","_onChompKeep","src","item","c","kc","vc","isScalarValue","Scalar","defaultTagPrefix","findTagObject","tagName","match","t","tagObj","createNode","map","aliasDuplicateObjects","onTagObj","schema","collectionFromPath","a","isEmptyPath","Collection","it","rest","keepScalar","allowScalar","stringifyComment","str","indentComment","comment","indent","lineComment","FOLD_FLOW","FOLD_BLOCK","FOLD_QUOTED","foldFlowLines","text","mode","indentAtStart","lineWidth","minContentWidth","onFold","onOverflow","endStep","folds","escapedFolds","end","split","prev","overflow","escStart","escEnd","consumeMoreIndentedLines","next","j","fold","start","getFoldOptions","isBlock","containsDocumentMarker","lineLengthOverLimit","indentLength","limit","strLen","doubleQuotedString","json","implicitKey","minMultiLineLength","code","singleQuotedString","quotedString","singleQuote","qs","hasDouble","hasSingle","blockEndNewlines","blockString","onComment","onChompKeep","blockQuote","commentString","literal","chomp","endStart","endNlPos","startWithSpace","startEnd","startNlPos","header","foldedValue","literalFallback","foldOptions","body","plainString","actualString","indentStep","inFlow","test","compat","stringifyString","ss","_stringify","_type","defaultKeyType","defaultStringType","createStringifyContext","options","opt","getTagObject","testMatch","stringifyProps","props","stringify","o","stringifyPair","allNullValues","indentSeq","simpleKeys","keyComment","explicitKey","keyCommentDone","chompKeep","vsb","vcb","valueComment","valueCommentDone","valueStr","ws","cs","vs0","nl0","hasNewline","flow","hasPropsLine","sp0","warn","logLevel","warning","MERGE_KEY","merge","addMergeToJSMap","isMergeKey","mergeValue","srcMap","addPairToJSMap","jsKey","stringKey","stringifyKey","jsValue","strCtx","strKey","jsonStr","createPair","Pair","_","pair","stringifyCollection","collection","stringifyFlowCollection","stringifyBlockCollection","items","blockItemPrefix","flowChars","itemIndent","itemCtx","addCommentBefore","ik","fcPadding","reqNewline","linesAtValue","iv","sum","ic","findPair","YAMLMap","keepUndefined","replacer","add","overwrite","_pair","sortEntries","Type","YAMLSeq","idx","asItemIndex","seq","string","nullTag","boolTag","sv","stringifyNumber","format","minFractionDigits","num","n","d","floatNaN","floatExp","float","dot","intIdentify","intResolve","offset","radix","intAsBigInt","intStringify","intOct","_onError","int","intHex","stringifyJSON","jsonScalars","jsonError","binary","buffer","buf","s","resolvePairs","cn","createPairs","iterable","pairs","keys","YAMLOMap","omap","seenKeys","boolStringify","trueTag","falseTag","f","sign","intBin","YAMLSet","keepPair","set","parseSexagesimal","asBigInt","p","stringifySexagesimal","_60","intTime","floatTime","timestamp","year","month","day","hour","minute","second","millisec","date","tz","schemas","schema$1","schema$2","tagsByName","coreKnownTags","getTags","customTags","schemaName","addMergeTag","schemaTags","sortMapEntriesByKey","b","Schema","resolveKnownTags","sortMapEntries","toStringDefaults","stringifyDocument","hasDirectives","dir","contentComment","dc","Document","_replacer","assertCollection","keyToStr","asStr","anchorPrefix","setAnchors","jsonArg","contents","YAMLError","pos","message","YAMLParseError","YAMLWarning","prettifyError","lc","col","lineStr","trimStart","pointer","resolveProps","tokens","indicator","parentIndent","startOnNewline","spaceBefore","atNewline","hasSpace","commentSep","reqSpace","tab","newlineAfterProp","comma","token","cb","last","containsNewline","st","flowIndentCheck","fc","mapIncludes","search","uniqueKeys","isEqual","startColMsg","resolveBlockMap","composeNode","composeEmptyNode","bm","NodeClass","commentEnd","collItem","sep","keyProps","keyStart","keyNode","valueProps","valueNode","resolveBlockSeq","bs","resolveEnd","blockMsg","resolveFlowCollection","fcName","coll","atRoot","prevItemComment","loop","endRange","expectedEnd","ce","ee","cePos","resolveCollection","CN","Coll","composeCollection","tagToken","nl","lastProp","expType","kt","resolveBlockScalar","scalar","parseBlockScalarHeader","splitLines","chompStart","content","trimIndent","contentStart","prevMoreIndented","crlf","strict","length","ts","first","m","resolveFlowScalar","rel","plainValue","singleQuotedValue","doubleQuotedValue","valueEnd","re","badChar","foldLines","foldNewline","cc","escapeCodes","parseCharCode","raw","wsStart","composeScalar","range","findScalarTagByName","findScalarTagByTest","matchWithTest","atKey","directives","emptyScalarPosition","before","isSrcToken","composeAlias","alias","composeDoc","opts","contentEnd","getErrorPos","parsePrelude","prelude","atComment","afterEmptyLine","Composer","afterDoc","forceDoc","endOffset","resolveAsScalar","createScalarToken","context","he","head","addEndtoBlockProps","setScalarValue","afterKey","setBlockScalarValue","setFlowScalarValue","oa","tok","cst","stringifyToken","stringifyItem","_visit","field","index","BOM","DOCUMENT","FLOW_END","prettyToken","tokenType","isEmpty","hexDigits","tagChars","flowIndicatorChars","invalidAnchorChars","isNotAnchorChar","Lexer","incomplete","dt","state","dirEnd","sp","ch0","ch1","quote","qb","lastChar","allowEmpty","allowTabs","LineCounter","low","high","mid","includesToken","list","findNonEmptyIndex","isFlowToken","getPrevProps","getFirstKeyStartProps","fixFlowSeqItems","Parser","onNewLine","lexeme","top","bv","atMapIndent","atNextItem","fs","docEnd","parseOptions","prettyErrors","parseAllDocuments","lineCounter","parser","composer","docs","parseDocument","_doc","parse","_reviver"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70]}
|