@intlayer/design-system 8.7.7 → 8.7.8-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/ContentEditor/ContentEditorTextArea.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/ContentEditorView/TextEditor.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/DictionaryCreationForm/DictionaryCreationForm.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/DictionaryDetails/DictionaryDetailsForm.mjs +3 -3
- package/dist/esm/components/DictionaryFieldEditor/DictionaryFieldEditor.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/NavigationView/NavigationViewNode.mjs +1 -1
- package/dist/esm/components/DictionaryFieldEditor/SaveForm/SaveForm.mjs +2 -2
- package/dist/esm/components/DictionaryFieldEditor/StructureView/StructureView.mjs +1 -1
- package/dist/esm/components/Form/elements/OTPElement.mjs +1 -1
- package/dist/esm/components/HeightResizer/index.mjs +25 -0
- package/dist/esm/components/HeightResizer/index.mjs.map +1 -1
- package/dist/esm/components/IDE/Code.mjs +96 -13
- package/dist/esm/components/IDE/Code.mjs.map +1 -1
- package/dist/esm/components/IDE/CodeBlockHighlight.mjs +77 -0
- package/dist/esm/components/IDE/CodeBlockHighlight.mjs.map +1 -0
- package/dist/esm/components/IDE/CodeConditionalRenderer.mjs +15 -4
- package/dist/esm/components/IDE/CodeConditionalRenderer.mjs.map +1 -1
- package/dist/esm/components/IDE/CodeFormatSelector.mjs +5 -4
- package/dist/esm/components/IDE/CodeFormatSelector.mjs.map +1 -1
- package/dist/esm/components/IDE/codeTransformer.mjs +228 -0
- package/dist/esm/components/IDE/codeTransformer.mjs.map +1 -0
- package/dist/esm/components/LocaleSwitcherContentDropDown/LocaleSwitcherContent.mjs +1 -1
- package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs +101 -0
- package/dist/esm/components/MarkDownRender/MarkDownIframe.mjs.map +1 -0
- package/dist/esm/components/MarkDownRender/MarkDownRender.mjs +2 -9
- package/dist/esm/components/MarkDownRender/MarkDownRender.mjs.map +1 -1
- package/dist/esm/components/Modal/Modal.mjs +2 -2
- package/dist/esm/components/Navbar/MobileNavbar.mjs +1 -1
- package/dist/esm/components/Pagination/Pagination.mjs +1 -1
- package/dist/esm/components/RightDrawer/RightDrawer.mjs +3 -3
- package/dist/esm/components/WithResizer/index.mjs +24 -0
- package/dist/esm/components/WithResizer/index.mjs.map +1 -1
- package/dist/esm/hooks/index.mjs +9 -9
- package/dist/esm/hooks/reactQuery.mjs +4 -2
- package/dist/esm/hooks/reactQuery.mjs.map +1 -1
- package/dist/types/components/Badge/index.d.ts +2 -2
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Command/index.d.ts +2 -2
- package/dist/types/components/HeightResizer/index.d.ts.map +1 -1
- package/dist/types/components/IDE/Code.d.ts +3 -3
- package/dist/types/components/IDE/Code.d.ts.map +1 -1
- package/dist/types/components/IDE/CodeBlockHighlight.d.ts +20 -0
- package/dist/types/components/IDE/CodeBlockHighlight.d.ts.map +1 -0
- package/dist/types/components/IDE/CodeConditionalRenderer.d.ts.map +1 -1
- package/dist/types/components/IDE/CodeFormatSelector.d.ts +5 -1
- package/dist/types/components/IDE/CodeFormatSelector.d.ts.map +1 -1
- package/dist/types/components/IDE/codeTransformer.d.ts +25 -0
- package/dist/types/components/IDE/codeTransformer.d.ts.map +1 -0
- package/dist/types/components/Input/Checkbox.d.ts +2 -2
- package/dist/types/components/Input/Input.d.ts +1 -1
- package/dist/types/components/Link/Link.d.ts +2 -2
- package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts +7 -0
- package/dist/types/components/MarkDownRender/MarkDownIframe.d.ts.map +1 -0
- package/dist/types/components/MarkDownRender/MarkDownRender.d.ts.map +1 -1
- package/dist/types/components/Pagination/Pagination.d.ts +1 -1
- package/dist/types/components/Tab/Tab.d.ts +1 -1
- package/dist/types/components/TabSelector/TabSelector.d.ts +1 -1
- package/dist/types/components/Tag/index.d.ts +1 -1
- package/dist/types/components/WithResizer/index.d.ts.map +1 -1
- package/dist/types/hooks/reactQuery.d.ts.map +1 -1
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/WithResizer/index.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport React, {\n type FC,\n type PropsWithChildren,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\n/**\n * Props for the WithResizer component.\n *\n * Defines the configuration for a resizable container with drag-based width adjustment.\n *\n * @example\n * ```tsx\n * // Basic resizable container\n * <WithResizer initialWidth={300} minWidth={200} maxWidth={600}>\n * <div className=\"p-4\">Resizable content</div>\n * </WithResizer>\n *\n * // Sidebar with resizing\n * <WithResizer\n * initialWidth={250}\n * minWidth={180}\n * maxWidth={400}\n * >\n * <nav className=\"h-full p-4\">\n * <SidebarContent />\n * </nav>\n * </WithResizer>\n *\n * // Panel with unlimited growth\n * <WithResizer initialWidth={400} minWidth={300}>\n * <div className=\"h-full overflow-auto\">\n * <PanelContent />\n * </div>\n * </WithResizer>\n * ```\n */\ntype WithResizerProps = {\n /** Initial width of the resizable container in pixels */\n initialWidth: number;\n /** Maximum allowed width in pixels (optional, no limit if not specified) */\n maxWidth?: number;\n /** Minimum allowed width in pixels */\n minWidth?: number;\n /** Position of the resize handle (default: 'right') */\n handlePosition?: 'left' | 'right';\n};\n\n/**\n * WithResizer Component\n *\n * A flexible container component that allows users to dynamically resize its width\n * through mouse or touch drag interactions. Perfect for creating adjustable panels,\n * sidebars, and split-pane layouts.\n *\n * ## Features\n * - **Mouse & Touch Support**: Works with both mouse drag and touch interactions\n * - **Constraint Enforcement**: Respects minimum and maximum width boundaries\n * - **Visual Feedback**: Clear resize handle with hover and active states\n * - **Smooth Interactions**: Passive event listeners for optimal performance\n * - **Accessibility**: ARIA slider role with proper value announcements\n * - **Responsive Design**: Adapts to different screen sizes and containers\n *\n * ## Technical Implementation\n * - **Event Handling**: Uses `useCallback` for optimal performance\n * - **Boundary Calculation**: Real-time width calculation based on mouse/touch position\n * - **State Management**: Tracks resizing state for visual feedback\n * - **Memory Management**: Proper cleanup of global event listeners\n * - **Touch Events**: Full support for mobile touch interactions\n *\n * ## Visual Design\n * - **Resize Handle**: Rounded handle positioned on the right border\n * - **Border Indicator**: Visual border showing resizable edge\n * - **State Feedback**: Different colors for normal, hover, and active states\n * - **Dark Mode**: Full support with appropriate color scheme\n * - **Smooth Transitions**: CSS transitions for visual polish\n *\n * ## Use Cases\n * - **Application Sidebars**: Collapsible navigation and tool panels\n * - **Content Panels**: Adjustable content areas in complex layouts\n * - **Split Panes**: Dividing screen space between multiple content areas\n * - **Inspector Panels**: Debugging tools and property inspectors\n * - **File Explorers**: Tree views with adjustable column widths\n * - **Dashboard Widgets**: Customizable widget sizes for dashboards\n *\n * ## Accessibility Features\n * - **ARIA Slider**: Proper slider role for screen readers\n * - **Value Announcements**: Current, minimum, and maximum values announced\n * - **Keyboard Focus**: Focusable with tab navigation\n * - **Clear Affordances**: Visual indicators for interactive elements\n *\n * @example\n * ```tsx\n * // Application sidebar with resizing\n * const [sidebarWidth, setSidebarWidth] = useState(250);\n *\n * <div className=\"flex h-screen\">\n * <WithResizer\n * initialWidth={sidebarWidth}\n * minWidth={200}\n * maxWidth={400}\n * >\n * <aside className=\"h-full bg-gray-100 p-4\">\n * <nav>\n * <NavItems />\n * </nav>\n * </aside>\n * </WithResizer>\n *\n * <main className=\"flex-1 p-6\">\n * <MainContent />\n * </main>\n * </div>\n *\n * // Developer tools panel\n * <WithResizer\n * initialWidth={350}\n * minWidth={250}\n * maxWidth={600}\n * >\n * <div className=\"h-full flex flex-col\">\n * <div className=\"flex-1 overflow-auto p-4\">\n * <InspectorContent />\n * </div>\n * <div className=\"border-t p-2\">\n * <Controls />\n * </div>\n * </div>\n * </WithResizer>\n *\n * // Multi-column layout\n * <div className=\"flex h-full\">\n * <WithResizer initialWidth={300} minWidth={200} maxWidth={500}>\n * <FileExplorer />\n * </WithResizer>\n *\n * <WithResizer initialWidth={400} minWidth={300}>\n * <CodeEditor />\n * </WithResizer>\n *\n * <div className=\"flex-1 min-w-0\">\n * <OutputPanel />\n * </div>\n * </div>\n * ```\n *\n * ## Performance Considerations\n * - Uses passive event listeners to prevent scroll blocking\n * - Optimized with `useCallback` to prevent unnecessary re-renders\n * - Efficient boundary calculations using `getBoundingClientRect`\n * - Minimal DOM manipulation for smooth drag interactions\n *\n * ## Browser Support\n * - Modern browsers with support for touch events\n * - Graceful degradation for older browsers\n * - Mobile-first touch interaction handling\n */\nexport const WithResizer: FC<PropsWithChildren<WithResizerProps>> = ({\n initialWidth,\n maxWidth,\n minWidth = 0,\n handlePosition = 'right',\n children,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState(initialWidth);\n\n const resizeState = useRef({\n startX: 0,\n startWidth: 0,\n factor: 1,\n });\n\n // Handler to resize the div\n const resize = useCallback(\n (mouseMoveEvent: MouseEvent | TouchEvent) => {\n if (resizeState.current.startWidth === 0) return;\n\n let clientX = 0;\n if (mouseMoveEvent instanceof MouseEvent) {\n clientX = mouseMoveEvent.clientX;\n } else if (\n typeof TouchEvent !== 'undefined' &&\n mouseMoveEvent instanceof TouchEvent\n ) {\n clientX = mouseMoveEvent.touches[0].clientX;\n }\n\n const { startX, startWidth, factor } = resizeState.current;\n const delta = (clientX - startX) / factor;\n // Invert delta for left handle (moving left decreases width, moving right increases width)\n const adjustedDelta = handlePosition === 'left' ? -delta : delta;\n const newWidth = startWidth + adjustedDelta;\n\n const constrainedWidth = Math.max(\n Math.min(newWidth, maxWidth ?? Infinity),\n minWidth\n );\n\n setWidth(constrainedWidth);\n },\n [maxWidth, minWidth, handlePosition]\n );\n\n // Handler to stop resizing\n const stopResizing = useCallback(() => {\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n window.removeEventListener('mousemove', resize);\n window.removeEventListener('mouseup', stopResizing);\n window.removeEventListener('touchmove', resize);\n window.removeEventListener('touchend', stopResizing);\n }, [resize]);\n\n // Handler to start resizing\n const startResizing = useCallback(\n (\n mouseDownEvent:\n | React.MouseEvent<HTMLDivElement>\n | React.TouchEvent<HTMLDivElement>\n ) => {\n mouseDownEvent.preventDefault();\n const container = containerRef.current;\n\n if (!container) return;\n\n const { width: rectWidth } = container.getBoundingClientRect();\n const offsetWidth = container.offsetWidth;\n const factor = offsetWidth > 0 ? rectWidth / offsetWidth : 1;\n\n let clientX = 0;\n if ('touches' in mouseDownEvent) {\n clientX = mouseDownEvent.touches[0].clientX;\n } else {\n clientX = mouseDownEvent.clientX;\n }\n\n resizeState.current = {\n startX: clientX,\n startWidth: offsetWidth,\n factor,\n };\n\n document.body.style.cursor = 'ew-resize';\n document.body.style.userSelect = 'none';\n\n window.addEventListener('mousemove', resize, { passive: true });\n window.addEventListener('mouseup', stopResizing);\n window.addEventListener('touchmove', resize, { passive: true });\n window.addEventListener('touchend', stopResizing);\n },\n [resize, stopResizing]\n );\n\n useEffect(() => {\n return () => {\n window.removeEventListener('mousemove', resize);\n window.removeEventListener('mouseup', stopResizing);\n window.removeEventListener('touchmove', resize);\n window.removeEventListener('touchend', stopResizing);\n };\n }, [resize, stopResizing]);\n\n return (\n <div\n className={cn(\n 'relative h-full w-full max-w-[80%] shrink-0 cursor-ew-resize border-neutral-200 transition dark:border-neutral-950',\n handlePosition === 'right'\n ? [\n 'border-r-[2px]',\n 'after:absolute after:top-1/2 after:right-0 after:block after:h-10 after:w-2 after:translate-x-1/2 after:-translate-y-1/2 after:transform after:cursor-ew-resize after:rounded-full after:bg-neutral-200 after:transition after:content-[\"\"] dark:after:bg-neutral-950',\n ]\n : [\n 'border-l-[2px]',\n 'after:absolute after:top-1/2 after:left-0 after:block after:h-10 after:w-2 after:-translate-x-1/2 after:-translate-y-1/2 after:transform after:cursor-ew-resize after:rounded-full after:bg-neutral-200 after:transition after:content-[\"\"] dark:after:bg-neutral-950',\n ],\n 'active:border-neutral-400 active:after:bg-neutral-400 dark:active:border-neutral-600 active:dark:after:bg-neutral-600',\n minWidth && `min-w-[${minWidth}px]`,\n maxWidth && `max-w-[${maxWidth}px]`\n )}\n style={{\n width: `${width}px`,\n }}\n ref={containerRef}\n onMouseDown={startResizing}\n onTouchStart={startResizing}\n aria-valuemin={minWidth}\n aria-valuemax={maxWidth}\n aria-valuenow={width}\n aria-label=\"Resizable component\"\n role=\"slider\"\n tabIndex={0}\n >\n {/* biome-ignore lint/a11y/noStaticElementInteractions: This div stops event propagation to prevent content clicks from triggering resize */}\n <div\n role=\"presentation\"\n className=\"absolute top-0 left-0 size-full cursor-default overflow-hidden\"\n onMouseDown={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmKA,MAAa,eAAwD,EACnE,cACA,UACA,WAAW,GACX,iBAAiB,SACjB,eACI;CACJ,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,CAAC,OAAO,YAAY,SAAS,aAAa;CAEhD,MAAM,cAAc,OAAO;EACzB,QAAQ;EACR,YAAY;EACZ,QAAQ;EACT,CAAC;CAGF,MAAM,SAAS,aACZ,mBAA4C;AAC3C,MAAI,YAAY,QAAQ,eAAe,EAAG;EAE1C,IAAI,UAAU;AACd,MAAI,0BAA0B,WAC5B,WAAU,eAAe;WAEzB,OAAO,eAAe,eACtB,0BAA0B,WAE1B,WAAU,eAAe,QAAQ,GAAG;EAGtC,MAAM,EAAE,QAAQ,YAAY,WAAW,YAAY;EACnD,MAAM,SAAS,UAAU,UAAU;EAGnC,MAAM,WAAW,cADK,mBAAmB,SAAS,CAAC,QAAQ;AAQ3D,WALyB,KAAK,IAC5B,KAAK,IAAI,UAAU,YAAY,SAAS,EACxC,SAGuB,CAAC;IAE5B;EAAC;EAAU;EAAU;EAAe,CACrC;CAGD,MAAM,eAAe,kBAAkB;AACrC,WAAS,KAAK,MAAM,SAAS;AAC7B,WAAS,KAAK,MAAM,aAAa;AACjC,SAAO,oBAAoB,aAAa,OAAO;AAC/C,SAAO,oBAAoB,WAAW,aAAa;AACnD,SAAO,oBAAoB,aAAa,OAAO;AAC/C,SAAO,oBAAoB,YAAY,aAAa;IACnD,CAAC,OAAO,CAAC;CAGZ,MAAM,gBAAgB,aAElB,mBAGG;AACH,iBAAe,gBAAgB;EAC/B,MAAM,YAAY,aAAa;AAE/B,MAAI,CAAC,UAAW;EAEhB,MAAM,EAAE,OAAO,cAAc,UAAU,uBAAuB;EAC9D,MAAM,cAAc,UAAU;EAC9B,MAAM,SAAS,cAAc,IAAI,YAAY,cAAc;EAE3D,IAAI,UAAU;AACd,MAAI,aAAa,eACf,WAAU,eAAe,QAAQ,GAAG;MAEpC,WAAU,eAAe;AAG3B,cAAY,UAAU;GACpB,QAAQ;GACR,YAAY;GACZ;GACD;AAED,WAAS,KAAK,MAAM,SAAS;AAC7B,WAAS,KAAK,MAAM,aAAa;AAEjC,SAAO,iBAAiB,aAAa,QAAQ,EAAE,SAAS,MAAM,CAAC;AAC/D,SAAO,iBAAiB,WAAW,aAAa;AAChD,SAAO,iBAAiB,aAAa,QAAQ,EAAE,SAAS,MAAM,CAAC;AAC/D,SAAO,iBAAiB,YAAY,aAAa;IAEnD,CAAC,QAAQ,aAAa,CACvB;AAED,iBAAgB;AACd,eAAa;AACX,UAAO,oBAAoB,aAAa,OAAO;AAC/C,UAAO,oBAAoB,WAAW,aAAa;AACnD,UAAO,oBAAoB,aAAa,OAAO;AAC/C,UAAO,oBAAoB,YAAY,aAAa;;IAErD,CAAC,QAAQ,aAAa,CAAC;AAE1B,QACE,oBAAC,OAAD;EACE,WAAW,GACT,sHACA,mBAAmB,UACf,CACE,kBACA,0QACD,GACD,CACE,kBACA,0QACD,EACL,yHACA,YAAY,UAAU,SAAS,MAC/B,YAAY,UAAU,SAAS,KAChC;EACD,OAAO,EACL,OAAO,GAAG,MAAM,KACjB;EACD,KAAK;EACL,aAAa;EACb,cAAc;EACd,iBAAe;EACf,iBAAe;EACf,iBAAe;EACf,cAAW;EACX,MAAK;EACL,UAAU;YAGV,oBAAC,OAAD;GACE,MAAK;GACL,WAAU;GACV,cAAc,MAAM,EAAE,iBAAiB;GACvC,eAAe,MAAM,EAAE,iBAAiB;GAEvC;GACG;EACF"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/WithResizer/index.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@utils/cn';\nimport React, {\n type FC,\n type PropsWithChildren,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nconst HANDLE_DOUBLE_CLICK_ZONE_PX = 16;\n\n/**\n * Props for the WithResizer component.\n *\n * Defines the configuration for a resizable container with drag-based width adjustment.\n *\n * @example\n * ```tsx\n * // Basic resizable container\n * <WithResizer initialWidth={300} minWidth={200} maxWidth={600}>\n * <div className=\"p-4\">Resizable content</div>\n * </WithResizer>\n *\n * // Sidebar with resizing\n * <WithResizer\n * initialWidth={250}\n * minWidth={180}\n * maxWidth={400}\n * >\n * <nav className=\"h-full p-4\">\n * <SidebarContent />\n * </nav>\n * </WithResizer>\n *\n * // Panel with unlimited growth\n * <WithResizer initialWidth={400} minWidth={300}>\n * <div className=\"h-full overflow-auto\">\n * <PanelContent />\n * </div>\n * </WithResizer>\n * ```\n */\ntype WithResizerProps = {\n /** Initial width of the resizable container in pixels */\n initialWidth: number;\n /** Maximum allowed width in pixels (optional, no limit if not specified) */\n maxWidth?: number;\n /** Minimum allowed width in pixels */\n minWidth?: number;\n /** Position of the resize handle (default: 'right') */\n handlePosition?: 'left' | 'right';\n};\n\n/**\n * WithResizer Component\n *\n * A flexible container component that allows users to dynamically resize its width\n * through mouse or touch drag interactions. Perfect for creating adjustable panels,\n * sidebars, and split-pane layouts.\n *\n * ## Features\n * - **Mouse & Touch Support**: Works with both mouse drag and touch interactions\n * - **Constraint Enforcement**: Respects minimum and maximum width boundaries\n * - **Visual Feedback**: Clear resize handle with hover and active states\n * - **Smooth Interactions**: Passive event listeners for optimal performance\n * - **Accessibility**: ARIA slider role with proper value announcements\n * - **Responsive Design**: Adapts to different screen sizes and containers\n *\n * ## Technical Implementation\n * - **Event Handling**: Uses `useCallback` for optimal performance\n * - **Boundary Calculation**: Real-time width calculation based on mouse/touch position\n * - **State Management**: Tracks resizing state for visual feedback\n * - **Memory Management**: Proper cleanup of global event listeners\n * - **Touch Events**: Full support for mobile touch interactions\n *\n * ## Visual Design\n * - **Resize Handle**: Rounded handle positioned on the right border\n * - **Border Indicator**: Visual border showing resizable edge\n * - **State Feedback**: Different colors for normal, hover, and active states\n * - **Dark Mode**: Full support with appropriate color scheme\n * - **Smooth Transitions**: CSS transitions for visual polish\n *\n * ## Use Cases\n * - **Application Sidebars**: Collapsible navigation and tool panels\n * - **Content Panels**: Adjustable content areas in complex layouts\n * - **Split Panes**: Dividing screen space between multiple content areas\n * - **Inspector Panels**: Debugging tools and property inspectors\n * - **File Explorers**: Tree views with adjustable column widths\n * - **Dashboard Widgets**: Customizable widget sizes for dashboards\n *\n * ## Accessibility Features\n * - **ARIA Slider**: Proper slider role for screen readers\n * - **Value Announcements**: Current, minimum, and maximum values announced\n * - **Keyboard Focus**: Focusable with tab navigation\n * - **Clear Affordances**: Visual indicators for interactive elements\n *\n * @example\n * ```tsx\n * // Application sidebar with resizing\n * const [sidebarWidth, setSidebarWidth] = useState(250);\n *\n * <div className=\"flex h-screen\">\n * <WithResizer\n * initialWidth={sidebarWidth}\n * minWidth={200}\n * maxWidth={400}\n * >\n * <aside className=\"h-full bg-gray-100 p-4\">\n * <nav>\n * <NavItems />\n * </nav>\n * </aside>\n * </WithResizer>\n *\n * <main className=\"flex-1 p-6\">\n * <MainContent />\n * </main>\n * </div>\n *\n * // Developer tools panel\n * <WithResizer\n * initialWidth={350}\n * minWidth={250}\n * maxWidth={600}\n * >\n * <div className=\"h-full flex flex-col\">\n * <div className=\"flex-1 overflow-auto p-4\">\n * <InspectorContent />\n * </div>\n * <div className=\"border-t p-2\">\n * <Controls />\n * </div>\n * </div>\n * </WithResizer>\n *\n * // Multi-column layout\n * <div className=\"flex h-full\">\n * <WithResizer initialWidth={300} minWidth={200} maxWidth={500}>\n * <FileExplorer />\n * </WithResizer>\n *\n * <WithResizer initialWidth={400} minWidth={300}>\n * <CodeEditor />\n * </WithResizer>\n *\n * <div className=\"flex-1 min-w-0\">\n * <OutputPanel />\n * </div>\n * </div>\n * ```\n *\n * ## Performance Considerations\n * - Uses passive event listeners to prevent scroll blocking\n * - Optimized with `useCallback` to prevent unnecessary re-renders\n * - Efficient boundary calculations using `getBoundingClientRect`\n * - Minimal DOM manipulation for smooth drag interactions\n *\n * ## Browser Support\n * - Modern browsers with support for touch events\n * - Graceful degradation for older browsers\n * - Mobile-first touch interaction handling\n */\nexport const WithResizer: FC<PropsWithChildren<WithResizerProps>> = ({\n initialWidth,\n maxWidth,\n minWidth = 0,\n handlePosition = 'right',\n children,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [width, setWidth] = useState(initialWidth);\n const lastExpandedWidthRef = useRef(initialWidth);\n\n const resizeState = useRef({\n startX: 0,\n startWidth: 0,\n factor: 1,\n });\n\n // Handler to resize the div\n const resize = useCallback(\n (mouseMoveEvent: MouseEvent | TouchEvent) => {\n if (resizeState.current.startWidth === 0) return;\n\n let clientX = 0;\n if (mouseMoveEvent instanceof MouseEvent) {\n clientX = mouseMoveEvent.clientX;\n } else if (\n typeof TouchEvent !== 'undefined' &&\n mouseMoveEvent instanceof TouchEvent\n ) {\n clientX = mouseMoveEvent.touches[0].clientX;\n }\n\n const { startX, startWidth, factor } = resizeState.current;\n const delta = (clientX - startX) / factor;\n // Invert delta for left handle (moving left decreases width, moving right increases width)\n const adjustedDelta = handlePosition === 'left' ? -delta : delta;\n const newWidth = startWidth + adjustedDelta;\n\n const constrainedWidth = Math.max(\n Math.min(newWidth, maxWidth ?? Infinity),\n minWidth\n );\n\n setWidth(constrainedWidth);\n },\n [maxWidth, minWidth, handlePosition]\n );\n\n // Handler to stop resizing\n const stopResizing = useCallback(() => {\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n window.removeEventListener('mousemove', resize);\n window.removeEventListener('mouseup', stopResizing);\n window.removeEventListener('touchmove', resize);\n window.removeEventListener('touchend', stopResizing);\n }, [resize]);\n\n // Handler to start resizing\n const startResizing = useCallback(\n (\n mouseDownEvent:\n | React.MouseEvent<HTMLDivElement>\n | React.TouchEvent<HTMLDivElement>\n ) => {\n mouseDownEvent.preventDefault();\n const container = containerRef.current;\n\n if (!container) return;\n\n const { width: rectWidth } = container.getBoundingClientRect();\n const offsetWidth = container.offsetWidth;\n const factor = offsetWidth > 0 ? rectWidth / offsetWidth : 1;\n\n let clientX = 0;\n if ('touches' in mouseDownEvent) {\n clientX = mouseDownEvent.touches[0].clientX;\n } else {\n clientX = mouseDownEvent.clientX;\n }\n\n resizeState.current = {\n startX: clientX,\n startWidth: offsetWidth,\n factor,\n };\n\n document.body.style.cursor = 'ew-resize';\n document.body.style.userSelect = 'none';\n\n window.addEventListener('mousemove', resize, { passive: true });\n window.addEventListener('mouseup', stopResizing);\n window.addEventListener('touchmove', resize, { passive: true });\n window.addEventListener('touchend', stopResizing);\n },\n [resize, stopResizing]\n );\n\n useEffect(() => {\n return () => {\n window.removeEventListener('mousemove', resize);\n window.removeEventListener('mouseup', stopResizing);\n window.removeEventListener('touchmove', resize);\n window.removeEventListener('touchend', stopResizing);\n };\n }, [resize, stopResizing]);\n\n useEffect(() => {\n if (width > minWidth) {\n lastExpandedWidthRef.current = width;\n }\n }, [width, minWidth]);\n\n const handleDoubleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const el = containerRef.current;\n if (!el) return;\n\n const { left, right } = el.getBoundingClientRect();\n const inHandleZone =\n handlePosition === 'right'\n ? right - event.clientX <= HANDLE_DOUBLE_CLICK_ZONE_PX\n : event.clientX - left <= HANDLE_DOUBLE_CLICK_ZONE_PX;\n\n if (!inHandleZone) return;\n\n event.preventDefault();\n event.stopPropagation();\n\n if (width > minWidth) {\n setWidth(minWidth);\n return;\n }\n\n const target = Math.min(\n Math.max(lastExpandedWidthRef.current, minWidth),\n maxWidth ?? Infinity\n );\n setWidth(target);\n },\n [handlePosition, maxWidth, minWidth, width]\n );\n\n return (\n <div\n className={cn(\n 'relative h-full w-full max-w-[80%] shrink-0 cursor-ew-resize border-neutral-200 transition dark:border-neutral-950',\n handlePosition === 'right'\n ? [\n 'border-r-[2px]',\n 'after:absolute after:top-1/2 after:right-0 after:block after:h-10 after:w-2 after:translate-x-1/2 after:-translate-y-1/2 after:transform after:cursor-ew-resize after:rounded-full after:bg-neutral-200 after:transition after:content-[\"\"] dark:after:bg-neutral-950',\n ]\n : [\n 'border-l-[2px]',\n 'after:absolute after:top-1/2 after:left-0 after:block after:h-10 after:w-2 after:-translate-x-1/2 after:-translate-y-1/2 after:transform after:cursor-ew-resize after:rounded-full after:bg-neutral-200 after:transition after:content-[\"\"] dark:after:bg-neutral-950',\n ],\n 'active:border-neutral-400 active:after:bg-neutral-400 dark:active:border-neutral-600 active:dark:after:bg-neutral-600',\n minWidth && `min-w-[${minWidth}px]`,\n maxWidth && `max-w-[${maxWidth}px]`\n )}\n style={{\n width: `${width}px`,\n }}\n ref={containerRef}\n onMouseDown={startResizing}\n onTouchStart={startResizing}\n onDoubleClick={handleDoubleClick}\n aria-valuemin={minWidth}\n aria-valuemax={maxWidth}\n aria-valuenow={width}\n aria-label=\"Resizable component\"\n role=\"slider\"\n tabIndex={0}\n >\n {/* biome-ignore lint/a11y/noStaticElementInteractions: This div stops event propagation to prevent content clicks from triggering resize */}\n <div\n role=\"presentation\"\n className=\"absolute top-0 left-0 size-full cursor-default overflow-hidden\"\n onMouseDown={(e) => e.stopPropagation()}\n onTouchStart={(e) => e.stopPropagation()}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
|
package/dist/esm/hooks/index.mjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useKeyboardDetector } from "./useKeyboardDetector.mjs";
|
|
2
|
+
import { useGetElementOrWindow } from "./useGetElementOrWindow.mjs";
|
|
3
|
+
import { useScrollY } from "./useScrollY.mjs";
|
|
3
4
|
import { usePersistedStore } from "./usePersistedStore.mjs";
|
|
5
|
+
import { useHorizontalSwipe } from "./useHorizontalSwipe.mjs";
|
|
6
|
+
import { useItemSelector } from "./useItemSelector.mjs";
|
|
7
|
+
import { calculateIsMobile, checkIsIOS, checkIsIphoneOrSafariDevice, checkIsMac, checkIsMobileScreen, checkIsMobileUserAgent, getBreakpointFromSize, useDevice } from "./useDevice.mjs";
|
|
4
8
|
import { useOAuth2 } from "./useAuth/useOAuth2.mjs";
|
|
5
9
|
import { useSession } from "./useAuth/useSession.mjs";
|
|
6
10
|
import { useAuth } from "./useAuth/useAuth.mjs";
|
|
7
11
|
import { useIntlayerAuth, useIntlayerOAuth } from "./useIntlayerAPI.mjs";
|
|
8
12
|
import { useAddDictionary, useAddNewAccessKey, useAddOrganization, useAddOrganizationMember, useAddPasskey, useAddProject, useAddTag, useAppQuery, useAskDocQuestion, useAskResetPassword, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditScan, useAuditTag, useAutocomplete, useBitbucketAuth, useBitbucketCheckConfig, useBitbucketGetConfigFile, useBitbucketRepos, useCancelSubscription, useChangePassword, useCreateUser, useDeleteAccessKey, useDeleteDictionary, useDeleteOrganization, useDeletePasskey, useDeleteProject, useDeleteSSOProvider, useDeleteShowcaseProject, useDeleteTag, useDeleteUser, useDisableTwoFactor, useEnableTwoFactor, useFillAllTranslations, useGetCIConfig, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useGetDiscussions, useGetDiscussionsData, useGetEditorDictionaries, useGetNewsletterStatus, useGetOrganizations, useGetOtherShowcaseProjects, useGetPricing, useGetProjects, useGetRecursiveAuditStatus, useGetShowcaseProjectById, useGetShowcaseProjects, useGetSubscription, useGetTags, useGetUserByAccount, useGetUserById, useGetUsers, useGetVerifyEmailStatus, useGithubAuth, useGithubCheckConfig, useGithubGetAuthUrl, useGithubGetConfigFile, useGithubRepos, useGitlabAuth, useGitlabCheckConfig, useGitlabGetConfigFile, useGitlabProjects, useInfiniteGetDictionaries, useListPasskeys, useListSSOProviders, useLogin, useLogout, usePauseTranslationJob, usePushCIConfig, usePushDictionaries, useQueryClient, useRefreshAccessKey, useRegister, useRegisterSSO, useResetPassword, useResumeTranslationJob, useSearchDoc, useSelectOrganization, useSelectProject, useSignInMagicLink, useSignInPasskey, useSignInSSO, useStartRecursiveAudit, useStopTranslationJob, useSubmitShowcaseProject, useSubscribeToNewsletter, useToggleShowcaseDownvote, useToggleShowcaseUpvote, useTranslateJSONDeclaration, useTriggerBuild, useTriggerWebhook, useUnselectOrganization, useUnselectProject, useUnsubscribeFromNewsletter, useUpdateDictionary, useUpdateOrganization, useUpdateOrganizationMembers, useUpdateOrganizationMembersById, useUpdateProject, useUpdateProjectMembers, useUpdateShowcaseProject, useUpdateTag, useUpdateUser, useVerifyBackupCode, useVerifyEmail, useVerifyTotp, useWriteDictionary } from "./reactQuery.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
13
|
+
import { useSearch } from "./useSearch.mjs";
|
|
14
|
+
import { useIsMounted } from "./useIsMounted.mjs";
|
|
11
15
|
import { useGetElementById } from "./useGetElementById.mjs";
|
|
12
|
-
import { useGetElementOrWindow } from "./useGetElementOrWindow.mjs";
|
|
13
16
|
import { useIsDarkMode } from "./useIsDarkMode.mjs";
|
|
14
|
-
import { useIsMounted } from "./useIsMounted.mjs";
|
|
15
|
-
import { useKeyboardDetector } from "./useKeyboardDetector.mjs";
|
|
16
17
|
import { useScreenWidth } from "./useScreenWidth.mjs";
|
|
17
18
|
import { useScrollBlockage } from "./useScrollBlockage/index.mjs";
|
|
18
19
|
import { useScrollDetection } from "./useScrollDetection.mjs";
|
|
19
|
-
import {
|
|
20
|
-
import { useSearch } from "./useSearch.mjs";
|
|
20
|
+
import { useUser } from "./useUser/index.mjs";
|
|
21
21
|
|
|
22
22
|
export { calculateIsMobile, checkIsIOS, checkIsIphoneOrSafariDevice, checkIsMac, checkIsMobileScreen, checkIsMobileUserAgent, getBreakpointFromSize, useAddDictionary, useAddNewAccessKey, useAddOrganization, useAddOrganizationMember, useAddPasskey, useAddProject, useAddTag, useAppQuery, useAskDocQuestion, useAskResetPassword, useAuditContentDeclaration, useAuditContentDeclarationField, useAuditContentDeclarationMetadata, useAuditScan, useAuditTag, useAuth, useAutocomplete, useBitbucketAuth, useBitbucketCheckConfig, useBitbucketGetConfigFile, useBitbucketRepos, useCancelSubscription, useChangePassword, useCreateUser, useDeleteAccessKey, useDeleteDictionary, useDeleteOrganization, useDeletePasskey, useDeleteProject, useDeleteSSOProvider, useDeleteShowcaseProject, useDeleteTag, useDeleteUser, useDevice, useDisableTwoFactor, useEnableTwoFactor, useFillAllTranslations, useGetCIConfig, useGetDictionaries, useGetDictionariesKeys, useGetDictionary, useGetDiscussions, useGetDiscussionsData, useGetEditorDictionaries, useGetElementById, useGetElementOrWindow, useGetNewsletterStatus, useGetOrganizations, useGetOtherShowcaseProjects, useGetPricing, useGetProjects, useGetRecursiveAuditStatus, useGetShowcaseProjectById, useGetShowcaseProjects, useGetSubscription, useGetTags, useGetUserByAccount, useGetUserById, useGetUsers, useGetVerifyEmailStatus, useGithubAuth, useGithubCheckConfig, useGithubGetAuthUrl, useGithubGetConfigFile, useGithubRepos, useGitlabAuth, useGitlabCheckConfig, useGitlabGetConfigFile, useGitlabProjects, useHorizontalSwipe, useInfiniteGetDictionaries, useIntlayerAuth, useIntlayerOAuth, useIsDarkMode, useIsMounted, useItemSelector, useKeyboardDetector, useListPasskeys, useListSSOProviders, useLogin, useLogout, useOAuth2, usePauseTranslationJob, usePersistedStore, usePushCIConfig, usePushDictionaries, useQueryClient, useRefreshAccessKey, useRegister, useRegisterSSO, useResetPassword, useResumeTranslationJob, useScreenWidth, useScrollBlockage, useScrollDetection, useScrollY, useSearch, useSearchDoc, useSelectOrganization, useSelectProject, useSession, useSignInMagicLink, useSignInPasskey, useSignInSSO, useStartRecursiveAudit, useStopTranslationJob, useSubmitShowcaseProject, useSubscribeToNewsletter, useToggleShowcaseDownvote, useToggleShowcaseUpvote, useTranslateJSONDeclaration, useTriggerBuild, useTriggerWebhook, useUnselectOrganization, useUnselectProject, useUnsubscribeFromNewsletter, useUpdateDictionary, useUpdateOrganization, useUpdateOrganizationMembers, useUpdateOrganizationMembersById, useUpdateProject, useUpdateProjectMembers, useUpdateShowcaseProject, useUpdateTag, useUpdateUser, useUser, useVerifyBackupCode, useVerifyEmail, useVerifyTotp, useWriteDictionary };
|
|
@@ -1038,10 +1038,12 @@ const useFillAllTranslations = () => {
|
|
|
1038
1038
|
return useMutation({
|
|
1039
1039
|
mutationKey: ["fill-all-translations"],
|
|
1040
1040
|
mutationFn: async (args) => {
|
|
1041
|
-
|
|
1041
|
+
let dictionaryIds = args.dictionaryIds;
|
|
1042
|
+
if (!dictionaryIds || dictionaryIds.length === 0) dictionaryIds = ((await intlayerOAuth.dictionary.getDictionaries({ pageSize: 1e3 }))?.data ?? []).map((d) => d.id);
|
|
1042
1043
|
return intlayerOAuth.translate.translateDictionaries({
|
|
1043
1044
|
dictionaryIds,
|
|
1044
|
-
targetLocales: args.targetLocales
|
|
1045
|
+
targetLocales: args.targetLocales,
|
|
1046
|
+
mode: args.mode
|
|
1045
1047
|
});
|
|
1046
1048
|
}
|
|
1047
1049
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactQuery.mjs","names":[],"sources":["../../../src/hooks/reactQuery.ts"],"sourcesContent":["'use client';\n\nimport type {} from '@better-fetch/fetch'; // Import for type inference\nimport type {\n GetRecursiveAuditStatusParams,\n ScanUrlBody,\n StartRecursiveAuditBody,\n} from '@intlayer/api';\nimport type {\n AddDictionaryBody,\n AddNewAccessKeyBody,\n AddOrganizationBody,\n AddOrganizationMemberBody,\n AddProjectBody,\n AddTagBody,\n AskDocQuestionBody,\n AuditContentDeclarationBody,\n AuditContentDeclarationFieldBody,\n AuditContentDeclarationMetadataBody,\n AuditTagBody,\n AutocompleteBody,\n CreateUserBody,\n DeleteAccessKeyBody,\n DeleteDictionaryParam,\n DeleteTagParams,\n GetCheckoutSessionBody,\n GetDictionariesParams,\n GetDictionaryParams,\n GetDictionaryQuery,\n GetOrganizationsParams,\n GetPricingBody,\n GetPricingResult,\n GetProjectsParams,\n GetShowcaseProjectByIdParams,\n GetShowcaseProjectsResult,\n GetTagsParams,\n GetUsersParams,\n NewsletterSubscriptionBody,\n NewsletterUnsubscriptionBody,\n OtherShowcaseProjectsQuery,\n PushDictionariesBody,\n RefreshAccessKeyBody,\n SearchDocUtilParams,\n SelectOrganizationParam,\n SelectProjectParam,\n ShowcaseProjectsQuery,\n SubmitShowcaseProjectBody,\n TranslateDictionariesBody,\n TranslateJSONBody,\n UpdateDictionaryBody,\n UpdateOrganizationBody,\n UpdateOrganizationMembersBody,\n UpdateProjectBody,\n UpdateProjectMembersBody,\n UpdateUserBody,\n} from '@intlayer/backend';\n\nimport { useConfiguration } from '@intlayer/editor-react';\nimport {\n type UseQueryOptions,\n useInfiniteQuery,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport type {} from 'better-auth'; // Import for type inference\n// @ts-ignore\nimport type { WriteContentDeclarationBody } from 'intlayer-editor';\nimport type { AuthAPI } from '../libs/auth';\nimport { useAuth } from './useAuth';\nimport {\n type UseIntlayerAuthProps,\n useIntlayerAuth,\n useIntlayerOAuth,\n} from './useIntlayerAPI';\n\nexport { useQueryClient };\n\ntype AuthEnableOptions = {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n};\n\n/**\n * Hook to enable authentication\n */\nconst useAuthEnable = ({\n requireUser,\n requireProject,\n requireOrganization,\n}: AuthEnableOptions) => {\n const configuration = useConfiguration();\n const { oAuth2AccessToken, session } = useAuth({\n intlayerConfiguration: configuration,\n });\n\n const user = session ? session.user : oAuth2AccessToken?.user;\n\n const organization = session\n ? session.organization\n : oAuth2AccessToken?.organization;\n\n const project = session ? session.project : oAuth2AccessToken?.project;\n\n const isUserEnabled = requireUser ? Boolean(user) : true;\n\n const isProjectEnabled = requireProject ? Boolean(project) : true;\n\n const isOrganizationEnabled = requireOrganization\n ? Boolean(organization)\n : true;\n\n const isEnabled = isUserEnabled && isProjectEnabled && isOrganizationEnabled;\n\n return {\n enable: isEnabled,\n };\n};\n\nexport const useAppQuery = (\n options: UseQueryOptions & {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n }\n) => {\n const { requireUser, requireProject, requireOrganization, ...rest } = options;\n const { enable } = useAuthEnable({\n requireUser,\n requireProject,\n requireOrganization,\n });\n\n const result = useQuery({\n enabled: rest?.enabled === false ? false : enable,\n ...rest,\n });\n\n return result;\n};\n\n// Removed unused useEditorMutation\n\n/**\n * Auth\n */\n\nexport const useLogin = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['login'],\n mutationFn: (args: Parameters<AuthAPI['signInEmail']>[0]) =>\n intlayerAuth.signInEmail(args),\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session && data.data?.user) {\n queryClient.setQueryData(['session'], {\n ...session,\n user: data.data.user,\n });\n }\n },\n });\n};\n\nexport const useGetVerifyEmailStatus = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['getVerifyEmailStatus'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>) =>\n intlayerAuth.verifyEmailSession(...args),\n });\n};\n\nexport const useRegister = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['register'],\n mutationFn: (args: Parameters<AuthAPI['signUpEmail']>[0]) =>\n intlayerAuth.signUpEmail(args),\n });\n};\n\nexport const useLogout = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['logout'],\n mutationFn: () => intlayerAuth.signOut(),\n meta: {\n resetQueries: [\n ['session'],\n ['users'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ],\n },\n });\n};\n\nexport const useChangePassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['changePassword'],\n mutationFn: (args: Parameters<AuthAPI['changePasswordSession']>) =>\n intlayerAuth.changePasswordSession(...args),\n });\n};\n\nexport const useAskResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['askResetPassword'],\n mutationFn: (args: Parameters<AuthAPI['requestPasswordResetSession']>[0]) =>\n intlayerAuth.requestPasswordResetSession(args),\n });\n};\n\nexport const useResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['resetPassword'],\n mutationFn: (args: Parameters<AuthAPI['resetPassword']>[0]) =>\n intlayerAuth.resetPassword(args),\n });\n};\n\nexport const useVerifyEmail = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['verifyEmail'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>[0]) =>\n intlayerAuth.verifyEmailSession(args),\n });\n};\n\nexport const useGetUserByAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['user'],\n mutationFn: (args: Parameters<AuthAPI['accountInfo']>[0]) =>\n intlayerAuth.accountInfo(args),\n });\n};\n\nexport const useEnableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['enableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['enableTwoFactor']>[0]) =>\n intlayerAuth.enableTwoFactor(args),\n });\n};\n\nexport const useDisableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['disableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['disableTwoFactor']>[0]) =>\n intlayerAuth.disableTwoFactor(args),\n });\n};\n\nexport const useVerifyTotp = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyTotp'],\n mutationFn: (args: Parameters<AuthAPI['verifyTotp']>[0]) =>\n intlayerAuth.verifyTotp(args),\n });\n};\n\nexport const useVerifyBackupCode = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyBackupCode'],\n mutationFn: (args: Parameters<AuthAPI['verifyBackupCode']>[0]) =>\n intlayerAuth.verifyBackupCode(args),\n });\n};\n\nexport const useAddPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['addPasskey'],\n mutationFn: (args: Parameters<AuthAPI['addPasskey']>[0]) =>\n intlayerAuth.addPasskey(args),\n });\n};\n\nexport const useSignInPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInPasskey'],\n mutationFn: (args?: Parameters<AuthAPI['signInPasskey']>[0]) =>\n intlayerAuth.signInPasskey(args),\n });\n};\n\nexport const useDeletePasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['deletePasskey'],\n mutationFn: (args: Parameters<AuthAPI['deletePasskey']>[0]) =>\n intlayerAuth.deletePasskey(args),\n });\n};\n\nexport const useListPasskeys = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listPasskeys'],\n queryFn: () => intlayerAuth.listPasskeys(),\n });\n};\n\nexport const useSignInMagicLink = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInMagicLink'],\n mutationFn: (args?: any) => intlayerAuth.signInMagicLink(args),\n });\n};\n\nexport const useRegisterSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['registerSSO'],\n mutationFn: (args: Parameters<AuthAPI['registerSSO']>[0]) =>\n intlayerAuth.registerSSO(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\nexport const useSignInSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInSSO'],\n mutationFn: (args: Parameters<AuthAPI['signInSSO']>[0]) =>\n intlayerAuth.signInSSO(args),\n });\n};\n\nexport const useListSSOProviders = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['ssoProviders'],\n queryFn: () => intlayerAuth.listSSOProviders(),\n });\n};\n\nexport const useDeleteSSOProvider = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['deleteSSOProvider'],\n mutationFn: (args: Parameters<AuthAPI['deleteSSOProvider']>[0]) =>\n intlayerAuth.deleteSSOProvider(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\n/**\n * User\n */\n\nexport const useGetUsers = (\n filters?: GetUsersParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['users', filters],\n queryFn: () => intlayerOAuth.user.getUsers(filters),\n requireUser: true,\n // placeholderData: keepPreviousData,\n ...options,\n });\n};\n\nexport const useGetUserById = (userId: string) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['users', userId],\n queryFn: () => intlayerOAuth.user.getUserById(userId),\n requireUser: true,\n });\n};\n\nexport const useCreateUser = () => {\n const intlayerAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: CreateUserBody) => intlayerAuth.user.createUser(args),\n });\n};\n\nexport const useUpdateUser = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: UpdateUserBody) => intlayerOAuth.user.updateUser(args),\n });\n};\n\nexport const useDeleteUser = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: string) => intlayerOAuth.user.deleteUser(args),\n meta: {\n invalidateQueries: [['users']],\n },\n });\n};\n\n/**\n * Organization\n */\n\nexport const useGetOrganizations = (filters?: GetOrganizationsParams) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['organizations', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.organization.getOrganizations(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n });\n};\n\nexport const useAddOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: AddOrganizationBody) =>\n intlayerOAuth.organization.addOrganization(args),\n meta: {\n invalidateQueries: [['organizations']],\n },\n });\n};\n\nexport const useUpdateOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: UpdateOrganizationBody) =>\n intlayerOAuth.organization.updateOrganization(args),\n });\n};\n\nexport const useUpdateOrganizationMembers = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: UpdateOrganizationMembersBody) =>\n intlayerOAuth.organization.updateOrganizationMembers(args),\n meta: {\n invalidateQueries: [['organizations'], ['users']],\n },\n });\n};\n\nexport const useUpdateOrganizationMembersById = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: ({\n organizationId,\n ...body\n }: {\n organizationId: string;\n membersIds: string[];\n adminsIds?: string[];\n }) =>\n intlayerOAuth.organization.updateOrganizationMembersById(\n organizationId,\n body\n ),\n meta: {\n invalidateQueries: [['organizations'], ['users']],\n },\n });\n};\n\nexport const useAddOrganizationMember = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: AddOrganizationMemberBody) =>\n intlayerOAuth.organization.addOrganizationMember(args),\n meta: {\n invalidateQueries: [['organizations']],\n },\n });\n};\n\nexport const useDeleteOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: () => intlayerOAuth.organization.deleteOrganization(),\n meta: {\n invalidateQueries: [['organizations'], ['session']],\n },\n });\n};\n\nexport const useSelectOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-organizations'],\n mutationFn: (args: SelectOrganizationParam) =>\n intlayerOAuth.organization.selectOrganization(args),\n meta: {\n invalidateQueries: [\n ['session'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n organization: data.data,\n });\n }\n },\n });\n};\n\nexport const useUnselectOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-organizations'],\n mutationFn: () => intlayerOAuth.organization.unselectOrganization(),\n meta: {\n resetQueries: [\n ['session'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: () => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n organization: null,\n project: null,\n });\n }\n },\n });\n};\n\n/**\n * Project\n */\n\nexport const useGetProjects = (\n filters?: GetProjectsParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['projects', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.project.getProjects(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useAddProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: AddProjectBody) =>\n intlayerOAuth.project.addProject(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useUpdateProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: UpdateProjectBody) =>\n intlayerOAuth.project.updateProject(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session && data.data) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: data.data,\n });\n }\n },\n });\n};\n\nexport const useUpdateProjectMembers = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: UpdateProjectMembersBody) =>\n intlayerOAuth.project.updateProjectMembers(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useDeleteProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: () => intlayerOAuth.project.deleteProject(),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useSelectProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-projects'],\n mutationFn: (args: SelectProjectParam) =>\n intlayerOAuth.project.selectProject(args),\n meta: {\n invalidateQueries: [\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: data.data,\n });\n }\n },\n });\n};\n\nexport const useUnselectProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-projects'],\n mutationFn: () => intlayerOAuth.project.unselectProject(),\n meta: {\n resetQueries: [\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: () => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: null,\n });\n }\n },\n });\n};\n\nexport const useGetCIConfig = (options?: Partial<UseQueryOptions>) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['ci-config'],\n queryFn: ({ signal }) => intlayerOAuth.project.getCIConfig({ signal }),\n requireProject: true,\n ...options,\n });\n};\n\nexport const usePushCIConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ci-config'],\n mutationFn: () => intlayerOAuth.project.pushCIConfig(),\n meta: {\n invalidateQueries: [['ci-config']],\n },\n });\n};\n\nexport const useTriggerBuild = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects', 'build'],\n mutationFn: () => intlayerOAuth.project.triggerBuild(),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useTriggerWebhook = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects', 'webhook'],\n mutationFn: (webhookIndex: number) =>\n intlayerOAuth.project.triggerWebhook(webhookIndex),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useAddNewAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: AddNewAccessKeyBody) =>\n intlayerOAuth.project.addNewAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useDeleteAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: DeleteAccessKeyBody) =>\n intlayerOAuth.project.deleteAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useRefreshAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: RefreshAccessKeyBody) =>\n intlayerOAuth.project.refreshAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\n/**\n * Dictionary\n */\n\nexport const useGetDictionaries = (\n filters?: GetDictionariesParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionaries', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.dictionary.getDictionaries(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useInfiniteGetDictionaries = (\n filters?: Omit<GetDictionariesParams, 'page'>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n const { enable } = useAuthEnable({\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n });\n\n return useInfiniteQuery({\n queryKey: ['dictionaries', 'infinite', filters],\n queryFn: async ({ pageParam = 1, signal }) => {\n const res = await intlayerOAuth.dictionary.getDictionaries(\n { ...filters, page: pageParam },\n { signal }\n );\n return res;\n },\n getNextPageParam: (lastPage) => {\n if (lastPage.data.length === 0) return undefined;\n const currentPage = lastPage.page ?? 1;\n const totalPages = lastPage.total_pages ?? 1;\n return currentPage < totalPages ? currentPage + 1 : undefined;\n },\n initialPageParam: 1,\n enabled: options?.enabled === false ? false : enable,\n ...options,\n });\n};\n\nexport const useGetDictionariesKeys = (options?: Partial<UseQueryOptions>) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionariesKeys'],\n queryFn: () => intlayerOAuth.dictionary.getDictionariesKeys(),\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useGetDictionary = (\n dictionaryKey: GetDictionaryParams['dictionaryKey'],\n version?: GetDictionaryQuery['version'],\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionary', dictionaryKey],\n queryFn: ({ signal }) =>\n intlayerOAuth.dictionary.getDictionary(dictionaryKey, version, {\n signal,\n }),\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useAddDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: AddDictionaryBody) =>\n intlayerOAuth.dictionary.addDictionary(args),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const usePushDictionaries = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: PushDictionariesBody) =>\n intlayerOAuth.dictionary.pushDictionaries(args.dictionaries),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const useUpdateDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: UpdateDictionaryBody) =>\n intlayerOAuth.dictionary.updateDictionary(args),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const useDeleteDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: DeleteDictionaryParam) =>\n intlayerOAuth.dictionary.deleteDictionary(args.dictionaryId),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\n/**\n * Tag\n */\n\nexport const useGetTags = (\n filters?: GetTagsParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['tags', filters],\n queryFn: ({ signal }) => intlayerOAuth.tag.getTags(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useAddTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (args: AddTagBody) => intlayerOAuth.tag.addTag(args),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\nexport const useUpdateTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (v: { tagId: string; tag: any }) =>\n intlayerOAuth.tag.updateTag(v.tagId, v.tag),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\nexport const useDeleteTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (args: DeleteTagParams) => intlayerOAuth.tag.deleteTag(args),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\n/**\n * Stripe\n */\n\nexport const useGetPricing = (\n body: GetPricingBody,\n options?: Partial<UseQueryOptions<GetPricingResult>>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['pricing', body],\n queryFn: ({ signal }) => intlayerOAuth.stripe.getPricing(body, { signal }),\n ...options,\n });\n};\n\nexport const useGetSubscription = (\n body: GetCheckoutSessionBody,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['subscription', body],\n queryFn: ({ signal }) =>\n intlayerOAuth.stripe.getSubscription(body, { signal }),\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useCancelSubscription = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['subscription'],\n mutationFn: () => intlayerOAuth.stripe.cancelSubscription(),\n meta: {\n invalidateQueries: [['session'], ['subscription']],\n },\n });\n};\n\n/**\n * AI\n */\n\nexport const useTranslateJSONDeclaration = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-translateJSON'],\n mutationFn: (args: TranslateJSONBody) =>\n intlayerOAuth.ai.translateJSON(args),\n });\n};\n\nexport const useAuditContentDeclaration = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclaration'],\n mutationFn: (args: AuditContentDeclarationBody) =>\n intlayerOAuth.ai.auditContentDeclaration(args),\n });\n};\n\nexport const useAuditContentDeclarationMetadata = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclarationMetadata'],\n mutationFn: (args: AuditContentDeclarationMetadataBody) =>\n intlayerOAuth.ai.auditContentDeclarationMetadata(args),\n });\n};\n\nexport const useAuditContentDeclarationField = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclarationField'],\n mutationFn: (args: AuditContentDeclarationFieldBody) =>\n intlayerOAuth.ai.auditContentDeclarationField(args),\n });\n};\n\nexport const useAuditTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditTag'],\n mutationFn: (args: AuditTagBody) => intlayerOAuth.ai.auditTag(args),\n });\n};\n\nexport const useAskDocQuestion = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: [],\n mutationFn: (args?: AskDocQuestionBody) =>\n intlayerOAuth.ai.askDocQuestion(args),\n });\n};\n\nexport const useAutocomplete = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-autocomplete'],\n mutationFn: (args?: AutocompleteBody) =>\n intlayerOAuth.ai.autocomplete(args),\n });\n};\n\n/**\n * Audit\n */\n\nexport const useAuditScan = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['audit-scan'],\n mutationFn: (args: ScanUrlBody) => intlayerOAuth.audit.scanUrl(args),\n });\n};\n\nexport const useStartRecursiveAudit = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['audit-recursive-start'],\n mutationFn: (args: StartRecursiveAuditBody) =>\n intlayerOAuth.audit.startRecursiveAudit(args),\n });\n};\n\nexport const useGetRecursiveAuditStatus = (\n params?: GetRecursiveAuditStatusParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['audit-recursive-status', params?.jobId],\n queryFn: ({ signal }) =>\n intlayerOAuth.audit.getRecursiveAuditStatus(params, { signal }),\n enabled: Boolean(params?.jobId),\n ...options,\n });\n};\n\n/**\n * Discussions\n */\n\nexport const useGetDiscussions = (\n params?: Record<string, string | string[] | undefined>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['discussions', params],\n queryFn: ({ signal }) =>\n intlayerOAuth.ai.getDiscussions(params, { signal, cache: 'no-store' }),\n requireUser: true,\n ...options,\n });\n};\n\nexport const useGetDiscussionsData = (\n params?: Record<string, string | string[] | undefined>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['discussions-data', params],\n queryFn: ({ signal }) =>\n intlayerOAuth.ai.getDiscussions(\n { includeMessages: 'false', ...(params ?? {}) } as any,\n { signal, cache: 'no-store' }\n ),\n requireUser: true,\n ...options,\n });\n};\n\n/**\n * Search\n */\n\nexport const useSearchDoc = (params: SearchDocUtilParams) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['search', params],\n queryFn: () => intlayerOAuth.search.searchDoc(params),\n enabled: (params?.input?.length ?? 0) > 3,\n });\n};\n\n/**\n * Newsletter\n */\n\nexport const useSubscribeToNewsletter = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: (args: NewsletterSubscriptionBody) =>\n intlayerOAuth.newsletter.subscribeToNewsletter(args),\n });\n};\n\nexport const useUnsubscribeFromNewsletter = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: (args: NewsletterUnsubscriptionBody) =>\n intlayerOAuth.newsletter.unsubscribeFromNewsletter(args),\n });\n};\n\nexport const useGetNewsletterStatus = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: () => intlayerOAuth.newsletter.getNewsletterStatus(),\n });\n};\n\n/**\n * GitHub\n */\n\nexport const useGithubGetAuthUrl = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'auth-url'],\n mutationFn: (redirectUri: string) =>\n intlayerOAuth.github.getAuthUrl(redirectUri),\n });\n};\n\nexport const useGithubAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'auth'],\n mutationFn: (code: string) => intlayerOAuth.github.authenticate(code),\n });\n};\n\nexport const useGithubRepos = (enabled: boolean = true) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['github', 'repos'],\n queryFn: () => intlayerOAuth.github.getRepositories(),\n enabled,\n });\n};\n\nexport const useGithubCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'check-config'],\n mutationFn: (args: {\n owner: string;\n repository: string;\n branch?: string;\n }) =>\n intlayerOAuth.github.checkIntlayerConfig(\n undefined,\n args.owner,\n args.repository,\n args.branch\n ),\n });\n};\n\nexport const useGithubGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'get-config-file'],\n mutationFn: (args: {\n owner: string;\n repository: string;\n branch?: string;\n path?: string;\n }) =>\n intlayerOAuth.github.getConfigFile(\n undefined,\n args.owner,\n args.repository,\n args.branch,\n args.path\n ),\n });\n};\n\n/**\n * GitLab\n */\n\nexport const useGitlabAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'auth'],\n mutationFn: (args: {\n code: string;\n redirectUri: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.authenticate(\n args.code,\n args.redirectUri,\n args.instanceUrl\n ),\n });\n};\n\nexport const useGitlabProjects = (\n enabled: boolean = true,\n instanceUrl?: string\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['gitlab', 'projects', instanceUrl],\n queryFn: () => intlayerOAuth.gitlab.getProjects(undefined, instanceUrl),\n enabled,\n });\n};\n\nexport const useGitlabCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'check-config'],\n mutationFn: (args: {\n projectId: number;\n branch?: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.checkIntlayerConfig(\n undefined,\n args.projectId,\n args.branch,\n args.instanceUrl\n ),\n });\n};\n\nexport const useGitlabGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'get-config-file'],\n mutationFn: (args: {\n projectId: number;\n branch?: string;\n path?: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.getConfigFile(\n undefined,\n args.projectId,\n args.branch,\n args.path,\n args.instanceUrl\n ),\n });\n};\n\n/**\n * Bitbucket\n */\n\nexport const useBitbucketAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'auth'],\n mutationFn: (code: string) => intlayerOAuth.bitbucket.authenticate(code),\n });\n};\n\nexport const useBitbucketRepos = (enabled: boolean = true) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['bitbucket', 'repos'],\n queryFn: () => intlayerOAuth.bitbucket.getRepositories(),\n enabled,\n });\n};\n\nexport const useBitbucketCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'check-config'],\n mutationFn: (args: {\n workspace: string;\n repoSlug: string;\n branch?: string;\n }) =>\n intlayerOAuth.bitbucket.checkIntlayerConfig(\n undefined,\n args.workspace,\n args.repoSlug,\n args.branch\n ),\n });\n};\n\nexport const useBitbucketGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'get-config-file'],\n mutationFn: (args: {\n workspace: string;\n repoSlug: string;\n branch?: string;\n path?: string;\n }) =>\n intlayerOAuth.bitbucket.getConfigFile(\n undefined,\n args.workspace,\n args.repoSlug,\n args.branch,\n args.path\n ),\n });\n};\n\n/**\n * Editor\n */\n\nexport const useGetEditorDictionaries = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['editor', 'dictionaries'],\n queryFn: () => intlayerOAuth.editor.getDictionaries(),\n });\n};\n\nexport const useWriteDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['editor', 'dictionaries'],\n mutationFn: (args: WriteContentDeclarationBody) =>\n intlayerOAuth.editor.writeDictionary(args),\n });\n};\n\n/**\n * Showcase\n */\n\nexport const useGetShowcaseProjects = (\n query?: ShowcaseProjectsQuery,\n options?: Partial<UseQueryOptions<GetShowcaseProjectsResult>>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'projects', query],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getShowcaseProjects(query, { signal }),\n ...options,\n });\n};\n\nexport const useGetShowcaseProjectById = (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'project', projectId],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getShowcaseProjectById(projectId, {\n signal,\n }),\n enabled: Boolean(projectId),\n ...options,\n });\n};\n\nexport const useGetOtherShowcaseProjects = (\n query: OtherShowcaseProjectsQuery,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'other-projects', query],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getOtherShowcaseProjects(query, {\n signal,\n }),\n enabled: Boolean(query.excludeId),\n ...options,\n });\n};\n\nexport const useSubmitShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'submit'],\n mutationFn: (body: SubmitShowcaseProjectBody) =>\n intlayerOAuth.showcaseProject.submitShowcaseProject(body),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\nexport const useDeleteShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'delete'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.deleteShowcaseProject(projectId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\nexport const useToggleShowcaseUpvote = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n\n return useMutation({\n mutationKey: ['showcase', 'upvote'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.toggleShowcaseUpvote({ projectId }),\n });\n};\n\nexport const useToggleShowcaseDownvote = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n\n return useMutation({\n mutationKey: ['showcase', 'downvote'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.toggleShowcaseDownvote({ projectId }),\n });\n};\n\nexport const useUpdateShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'update'],\n mutationFn: ({\n projectId,\n ...body\n }: {\n projectId: string;\n name?: string;\n url?: string;\n githubUrl?: string;\n tagline?: string;\n description?: string;\n useCases?: string[];\n }) => intlayerOAuth.showcaseProject.updateShowcaseProject(projectId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\n/**\n * Translation\n */\n\nexport const useFillAllTranslations = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['fill-all-translations'],\n mutationFn: async (\n args: Pick<TranslateDictionariesBody, 'targetLocales'>\n ) => {\n const result = await intlayerOAuth.dictionary.getDictionaries({\n pageSize: 1000,\n });\n const dictionaryIds = (result?.data ?? []).map((d) => d.id);\n return intlayerOAuth.translate.translateDictionaries({\n dictionaryIds,\n targetLocales: args.targetLocales,\n });\n },\n });\n};\n\nexport const useStopTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['stop-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.stopTranslationJob(jobId),\n });\n};\n\nexport const usePauseTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['pause-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.pauseTranslationJob(jobId),\n });\n};\n\nexport const useResumeTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['resume-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.resumeTranslationJob(jobId),\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reactQuery.mjs","names":[],"sources":["../../../src/hooks/reactQuery.ts"],"sourcesContent":["'use client';\n\nimport type {} from '@better-fetch/fetch'; // Import for type inference\nimport type {\n GetRecursiveAuditStatusParams,\n ScanUrlBody,\n StartRecursiveAuditBody,\n} from '@intlayer/api';\nimport type {\n AddDictionaryBody,\n AddNewAccessKeyBody,\n AddOrganizationBody,\n AddOrganizationMemberBody,\n AddProjectBody,\n AddTagBody,\n AskDocQuestionBody,\n AuditContentDeclarationBody,\n AuditContentDeclarationFieldBody,\n AuditContentDeclarationMetadataBody,\n AuditTagBody,\n AutocompleteBody,\n CreateUserBody,\n DeleteAccessKeyBody,\n DeleteDictionaryParam,\n DeleteTagParams,\n GetCheckoutSessionBody,\n GetDictionariesParams,\n GetDictionaryParams,\n GetDictionaryQuery,\n GetOrganizationsParams,\n GetPricingBody,\n GetPricingResult,\n GetProjectsParams,\n GetShowcaseProjectByIdParams,\n GetShowcaseProjectsResult,\n GetTagsParams,\n GetUsersParams,\n NewsletterSubscriptionBody,\n NewsletterUnsubscriptionBody,\n OtherShowcaseProjectsQuery,\n PushDictionariesBody,\n RefreshAccessKeyBody,\n SearchDocUtilParams,\n SelectOrganizationParam,\n SelectProjectParam,\n ShowcaseProjectsQuery,\n SubmitShowcaseProjectBody,\n TranslateDictionariesBody,\n TranslateJSONBody,\n UpdateDictionaryBody,\n UpdateOrganizationBody,\n UpdateOrganizationMembersBody,\n UpdateProjectBody,\n UpdateProjectMembersBody,\n UpdateUserBody,\n} from '@intlayer/backend';\n\nimport { useConfiguration } from '@intlayer/editor-react';\nimport {\n type UseQueryOptions,\n useInfiniteQuery,\n useMutation,\n useQuery,\n useQueryClient,\n} from '@tanstack/react-query';\nimport type {} from 'better-auth'; // Import for type inference\n// @ts-ignore\nimport type { WriteContentDeclarationBody } from 'intlayer-editor';\nimport type { AuthAPI } from '../libs/auth';\nimport { useAuth } from './useAuth';\nimport {\n type UseIntlayerAuthProps,\n useIntlayerAuth,\n useIntlayerOAuth,\n} from './useIntlayerAPI';\n\nexport { useQueryClient };\n\ntype AuthEnableOptions = {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n};\n\n/**\n * Hook to enable authentication\n */\nconst useAuthEnable = ({\n requireUser,\n requireProject,\n requireOrganization,\n}: AuthEnableOptions) => {\n const configuration = useConfiguration();\n const { oAuth2AccessToken, session } = useAuth({\n intlayerConfiguration: configuration,\n });\n\n const user = session ? session.user : oAuth2AccessToken?.user;\n\n const organization = session\n ? session.organization\n : oAuth2AccessToken?.organization;\n\n const project = session ? session.project : oAuth2AccessToken?.project;\n\n const isUserEnabled = requireUser ? Boolean(user) : true;\n\n const isProjectEnabled = requireProject ? Boolean(project) : true;\n\n const isOrganizationEnabled = requireOrganization\n ? Boolean(organization)\n : true;\n\n const isEnabled = isUserEnabled && isProjectEnabled && isOrganizationEnabled;\n\n return {\n enable: isEnabled,\n };\n};\n\nexport const useAppQuery = (\n options: UseQueryOptions & {\n requireUser?: boolean;\n requireProject?: boolean;\n requireOrganization?: boolean;\n }\n) => {\n const { requireUser, requireProject, requireOrganization, ...rest } = options;\n const { enable } = useAuthEnable({\n requireUser,\n requireProject,\n requireOrganization,\n });\n\n const result = useQuery({\n enabled: rest?.enabled === false ? false : enable,\n ...rest,\n });\n\n return result;\n};\n\n// Removed unused useEditorMutation\n\n/**\n * Auth\n */\n\nexport const useLogin = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['login'],\n mutationFn: (args: Parameters<AuthAPI['signInEmail']>[0]) =>\n intlayerAuth.signInEmail(args),\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session && data.data?.user) {\n queryClient.setQueryData(['session'], {\n ...session,\n user: data.data.user,\n });\n }\n },\n });\n};\n\nexport const useGetVerifyEmailStatus = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['getVerifyEmailStatus'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>) =>\n intlayerAuth.verifyEmailSession(...args),\n });\n};\n\nexport const useRegister = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['register'],\n mutationFn: (args: Parameters<AuthAPI['signUpEmail']>[0]) =>\n intlayerAuth.signUpEmail(args),\n });\n};\n\nexport const useLogout = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['logout'],\n mutationFn: () => intlayerAuth.signOut(),\n meta: {\n resetQueries: [\n ['session'],\n ['users'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ],\n },\n });\n};\n\nexport const useChangePassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['changePassword'],\n mutationFn: (args: Parameters<AuthAPI['changePasswordSession']>) =>\n intlayerAuth.changePasswordSession(...args),\n });\n};\n\nexport const useAskResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['askResetPassword'],\n mutationFn: (args: Parameters<AuthAPI['requestPasswordResetSession']>[0]) =>\n intlayerAuth.requestPasswordResetSession(args),\n });\n};\n\nexport const useResetPassword = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['resetPassword'],\n mutationFn: (args: Parameters<AuthAPI['resetPassword']>[0]) =>\n intlayerAuth.resetPassword(args),\n });\n};\n\nexport const useVerifyEmail = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['verifyEmail'],\n mutationFn: (args: Parameters<AuthAPI['verifyEmailSession']>[0]) =>\n intlayerAuth.verifyEmailSession(args),\n });\n};\n\nexport const useGetUserByAccount = () => {\n const intlayerAuth = useIntlayerAuth();\n\n return useMutation({\n mutationKey: ['user'],\n mutationFn: (args: Parameters<AuthAPI['accountInfo']>[0]) =>\n intlayerAuth.accountInfo(args),\n });\n};\n\nexport const useEnableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['enableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['enableTwoFactor']>[0]) =>\n intlayerAuth.enableTwoFactor(args),\n });\n};\n\nexport const useDisableTwoFactor = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['disableTwoFactor'],\n mutationFn: (args: Parameters<AuthAPI['disableTwoFactor']>[0]) =>\n intlayerAuth.disableTwoFactor(args),\n });\n};\n\nexport const useVerifyTotp = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyTotp'],\n mutationFn: (args: Parameters<AuthAPI['verifyTotp']>[0]) =>\n intlayerAuth.verifyTotp(args),\n });\n};\n\nexport const useVerifyBackupCode = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['verifyBackupCode'],\n mutationFn: (args: Parameters<AuthAPI['verifyBackupCode']>[0]) =>\n intlayerAuth.verifyBackupCode(args),\n });\n};\n\nexport const useAddPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['addPasskey'],\n mutationFn: (args: Parameters<AuthAPI['addPasskey']>[0]) =>\n intlayerAuth.addPasskey(args),\n });\n};\n\nexport const useSignInPasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInPasskey'],\n mutationFn: (args?: Parameters<AuthAPI['signInPasskey']>[0]) =>\n intlayerAuth.signInPasskey(args),\n });\n};\n\nexport const useDeletePasskey = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['deletePasskey'],\n mutationFn: (args: Parameters<AuthAPI['deletePasskey']>[0]) =>\n intlayerAuth.deletePasskey(args),\n });\n};\n\nexport const useListPasskeys = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['listPasskeys'],\n queryFn: () => intlayerAuth.listPasskeys(),\n });\n};\n\nexport const useSignInMagicLink = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInMagicLink'],\n mutationFn: (args?: any) => intlayerAuth.signInMagicLink(args),\n });\n};\n\nexport const useRegisterSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['registerSSO'],\n mutationFn: (args: Parameters<AuthAPI['registerSSO']>[0]) =>\n intlayerAuth.registerSSO(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\nexport const useSignInSSO = () => {\n const intlayerAuth = useIntlayerAuth();\n return useMutation({\n mutationKey: ['signInSSO'],\n mutationFn: (args: Parameters<AuthAPI['signInSSO']>[0]) =>\n intlayerAuth.signInSSO(args),\n });\n};\n\nexport const useListSSOProviders = () => {\n const intlayerAuth = useIntlayerAuth();\n return useQuery({\n queryKey: ['ssoProviders'],\n queryFn: () => intlayerAuth.listSSOProviders(),\n });\n};\n\nexport const useDeleteSSOProvider = () => {\n const intlayerAuth = useIntlayerAuth();\n const queryClient = useQueryClient();\n return useMutation({\n mutationKey: ['deleteSSOProvider'],\n mutationFn: (args: Parameters<AuthAPI['deleteSSOProvider']>[0]) =>\n intlayerAuth.deleteSSOProvider(args),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['ssoProviders'] });\n },\n });\n};\n\n/**\n * User\n */\n\nexport const useGetUsers = (\n filters?: GetUsersParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['users', filters],\n queryFn: () => intlayerOAuth.user.getUsers(filters),\n requireUser: true,\n // placeholderData: keepPreviousData,\n ...options,\n });\n};\n\nexport const useGetUserById = (userId: string) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['users', userId],\n queryFn: () => intlayerOAuth.user.getUserById(userId),\n requireUser: true,\n });\n};\n\nexport const useCreateUser = () => {\n const intlayerAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: CreateUserBody) => intlayerAuth.user.createUser(args),\n });\n};\n\nexport const useUpdateUser = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: UpdateUserBody) => intlayerOAuth.user.updateUser(args),\n });\n};\n\nexport const useDeleteUser = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['users'],\n mutationFn: (args: string) => intlayerOAuth.user.deleteUser(args),\n meta: {\n invalidateQueries: [['users']],\n },\n });\n};\n\n/**\n * Organization\n */\n\nexport const useGetOrganizations = (filters?: GetOrganizationsParams) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['organizations', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.organization.getOrganizations(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n });\n};\n\nexport const useAddOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: AddOrganizationBody) =>\n intlayerOAuth.organization.addOrganization(args),\n meta: {\n invalidateQueries: [['organizations']],\n },\n });\n};\n\nexport const useUpdateOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: UpdateOrganizationBody) =>\n intlayerOAuth.organization.updateOrganization(args),\n });\n};\n\nexport const useUpdateOrganizationMembers = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: UpdateOrganizationMembersBody) =>\n intlayerOAuth.organization.updateOrganizationMembers(args),\n meta: {\n invalidateQueries: [['organizations'], ['users']],\n },\n });\n};\n\nexport const useUpdateOrganizationMembersById = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: ({\n organizationId,\n ...body\n }: {\n organizationId: string;\n membersIds: string[];\n adminsIds?: string[];\n }) =>\n intlayerOAuth.organization.updateOrganizationMembersById(\n organizationId,\n body\n ),\n meta: {\n invalidateQueries: [['organizations'], ['users']],\n },\n });\n};\n\nexport const useAddOrganizationMember = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: (args: AddOrganizationMemberBody) =>\n intlayerOAuth.organization.addOrganizationMember(args),\n meta: {\n invalidateQueries: [['organizations']],\n },\n });\n};\n\nexport const useDeleteOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['organizations'],\n mutationFn: () => intlayerOAuth.organization.deleteOrganization(),\n meta: {\n invalidateQueries: [['organizations'], ['session']],\n },\n });\n};\n\nexport const useSelectOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-organizations'],\n mutationFn: (args: SelectOrganizationParam) =>\n intlayerOAuth.organization.selectOrganization(args),\n meta: {\n invalidateQueries: [\n ['session'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n organization: data.data,\n });\n }\n },\n });\n};\n\nexport const useUnselectOrganization = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-organizations'],\n mutationFn: () => intlayerOAuth.organization.unselectOrganization(),\n meta: {\n resetQueries: [\n ['session'],\n ['organizations'],\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: () => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n organization: null,\n project: null,\n });\n }\n },\n });\n};\n\n/**\n * Project\n */\n\nexport const useGetProjects = (\n filters?: GetProjectsParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['projects', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.project.getProjects(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useAddProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: AddProjectBody) =>\n intlayerOAuth.project.addProject(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useUpdateProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: UpdateProjectBody) =>\n intlayerOAuth.project.updateProject(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session && data.data) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: data.data,\n });\n }\n },\n });\n};\n\nexport const useUpdateProjectMembers = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: UpdateProjectMembersBody) =>\n intlayerOAuth.project.updateProjectMembers(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useDeleteProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: () => intlayerOAuth.project.deleteProject(),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useSelectProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-projects'],\n mutationFn: (args: SelectProjectParam) =>\n intlayerOAuth.project.selectProject(args),\n meta: {\n invalidateQueries: [\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: (data) => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: data.data,\n });\n }\n },\n });\n};\n\nexport const useUnselectProject = () => {\n const intlayerOAuth = useIntlayerOAuth();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['session-projects'],\n mutationFn: () => intlayerOAuth.project.unselectProject(),\n meta: {\n resetQueries: [\n ['projects'],\n ['dictionaries'],\n ['tags'],\n ['subscription'],\n ['users'],\n ],\n },\n onSuccess: () => {\n const session = queryClient.getQueryData(['session']);\n\n if (session) {\n queryClient.setQueryData(['session'], {\n ...session,\n project: null,\n });\n }\n },\n });\n};\n\nexport const useGetCIConfig = (options?: Partial<UseQueryOptions>) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['ci-config'],\n queryFn: ({ signal }) => intlayerOAuth.project.getCIConfig({ signal }),\n requireProject: true,\n ...options,\n });\n};\n\nexport const usePushCIConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ci-config'],\n mutationFn: () => intlayerOAuth.project.pushCIConfig(),\n meta: {\n invalidateQueries: [['ci-config']],\n },\n });\n};\n\nexport const useTriggerBuild = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects', 'build'],\n mutationFn: () => intlayerOAuth.project.triggerBuild(),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useTriggerWebhook = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects', 'webhook'],\n mutationFn: (webhookIndex: number) =>\n intlayerOAuth.project.triggerWebhook(webhookIndex),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useAddNewAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: AddNewAccessKeyBody) =>\n intlayerOAuth.project.addNewAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useDeleteAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: DeleteAccessKeyBody) =>\n intlayerOAuth.project.deleteAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\nexport const useRefreshAccessKey = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['projects'],\n mutationFn: (args: RefreshAccessKeyBody) =>\n intlayerOAuth.project.refreshAccessKey(args),\n meta: {\n invalidateQueries: [['projects']],\n },\n });\n};\n\n/**\n * Dictionary\n */\n\nexport const useGetDictionaries = (\n filters?: GetDictionariesParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionaries', filters],\n queryFn: ({ signal }) =>\n intlayerOAuth.dictionary.getDictionaries(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useInfiniteGetDictionaries = (\n filters?: Omit<GetDictionariesParams, 'page'>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n const { enable } = useAuthEnable({\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n });\n\n return useInfiniteQuery({\n queryKey: ['dictionaries', 'infinite', filters],\n queryFn: async ({ pageParam = 1, signal }) => {\n const res = await intlayerOAuth.dictionary.getDictionaries(\n { ...filters, page: pageParam },\n { signal }\n );\n return res;\n },\n getNextPageParam: (lastPage) => {\n if (lastPage.data.length === 0) return undefined;\n const currentPage = lastPage.page ?? 1;\n const totalPages = lastPage.total_pages ?? 1;\n return currentPage < totalPages ? currentPage + 1 : undefined;\n },\n initialPageParam: 1,\n enabled: options?.enabled === false ? false : enable,\n ...options,\n });\n};\n\nexport const useGetDictionariesKeys = (options?: Partial<UseQueryOptions>) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionariesKeys'],\n queryFn: () => intlayerOAuth.dictionary.getDictionariesKeys(),\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useGetDictionary = (\n dictionaryKey: GetDictionaryParams['dictionaryKey'],\n version?: GetDictionaryQuery['version'],\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['dictionary', dictionaryKey],\n queryFn: ({ signal }) =>\n intlayerOAuth.dictionary.getDictionary(dictionaryKey, version, {\n signal,\n }),\n requireUser: true,\n requireOrganization: true,\n requireProject: true,\n ...options,\n });\n};\n\nexport const useAddDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: AddDictionaryBody) =>\n intlayerOAuth.dictionary.addDictionary(args),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const usePushDictionaries = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: PushDictionariesBody) =>\n intlayerOAuth.dictionary.pushDictionaries(args.dictionaries),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const useUpdateDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: UpdateDictionaryBody) =>\n intlayerOAuth.dictionary.updateDictionary(args),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\nexport const useDeleteDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['dictionaries'],\n mutationFn: (args: DeleteDictionaryParam) =>\n intlayerOAuth.dictionary.deleteDictionary(args.dictionaryId),\n meta: {\n invalidateQueries: [['dictionaries'], ['dictionariesKeys']],\n },\n });\n};\n\n/**\n * Tag\n */\n\nexport const useGetTags = (\n filters?: GetTagsParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['tags', filters],\n queryFn: ({ signal }) => intlayerOAuth.tag.getTags(filters, { signal }),\n // placeholderData: keepPreviousData,\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useAddTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (args: AddTagBody) => intlayerOAuth.tag.addTag(args),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\nexport const useUpdateTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (v: { tagId: string; tag: any }) =>\n intlayerOAuth.tag.updateTag(v.tagId, v.tag),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\nexport const useDeleteTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['tags'],\n mutationFn: (args: DeleteTagParams) => intlayerOAuth.tag.deleteTag(args),\n meta: {\n invalidateQueries: [['tags']],\n },\n });\n};\n\n/**\n * Stripe\n */\n\nexport const useGetPricing = (\n body: GetPricingBody,\n options?: Partial<UseQueryOptions<GetPricingResult>>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['pricing', body],\n queryFn: ({ signal }) => intlayerOAuth.stripe.getPricing(body, { signal }),\n ...options,\n });\n};\n\nexport const useGetSubscription = (\n body: GetCheckoutSessionBody,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['subscription', body],\n queryFn: ({ signal }) =>\n intlayerOAuth.stripe.getSubscription(body, { signal }),\n requireUser: true,\n requireOrganization: true,\n ...options,\n });\n};\n\nexport const useCancelSubscription = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['subscription'],\n mutationFn: () => intlayerOAuth.stripe.cancelSubscription(),\n meta: {\n invalidateQueries: [['session'], ['subscription']],\n },\n });\n};\n\n/**\n * AI\n */\n\nexport const useTranslateJSONDeclaration = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-translateJSON'],\n mutationFn: (args: TranslateJSONBody) =>\n intlayerOAuth.ai.translateJSON(args),\n });\n};\n\nexport const useAuditContentDeclaration = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclaration'],\n mutationFn: (args: AuditContentDeclarationBody) =>\n intlayerOAuth.ai.auditContentDeclaration(args),\n });\n};\n\nexport const useAuditContentDeclarationMetadata = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclarationMetadata'],\n mutationFn: (args: AuditContentDeclarationMetadataBody) =>\n intlayerOAuth.ai.auditContentDeclarationMetadata(args),\n });\n};\n\nexport const useAuditContentDeclarationField = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditContentDeclarationField'],\n mutationFn: (args: AuditContentDeclarationFieldBody) =>\n intlayerOAuth.ai.auditContentDeclarationField(args),\n });\n};\n\nexport const useAuditTag = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-auditTag'],\n mutationFn: (args: AuditTagBody) => intlayerOAuth.ai.auditTag(args),\n });\n};\n\nexport const useAskDocQuestion = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: [],\n mutationFn: (args?: AskDocQuestionBody) =>\n intlayerOAuth.ai.askDocQuestion(args),\n });\n};\n\nexport const useAutocomplete = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['ai-autocomplete'],\n mutationFn: (args?: AutocompleteBody) =>\n intlayerOAuth.ai.autocomplete(args),\n });\n};\n\n/**\n * Audit\n */\n\nexport const useAuditScan = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['audit-scan'],\n mutationFn: (args: ScanUrlBody) => intlayerOAuth.audit.scanUrl(args),\n });\n};\n\nexport const useStartRecursiveAudit = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['audit-recursive-start'],\n mutationFn: (args: StartRecursiveAuditBody) =>\n intlayerOAuth.audit.startRecursiveAudit(args),\n });\n};\n\nexport const useGetRecursiveAuditStatus = (\n params?: GetRecursiveAuditStatusParams,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['audit-recursive-status', params?.jobId],\n queryFn: ({ signal }) =>\n intlayerOAuth.audit.getRecursiveAuditStatus(params, { signal }),\n enabled: Boolean(params?.jobId),\n ...options,\n });\n};\n\n/**\n * Discussions\n */\n\nexport const useGetDiscussions = (\n params?: Record<string, string | string[] | undefined>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['discussions', params],\n queryFn: ({ signal }) =>\n intlayerOAuth.ai.getDiscussions(params, { signal, cache: 'no-store' }),\n requireUser: true,\n ...options,\n });\n};\n\nexport const useGetDiscussionsData = (\n params?: Record<string, string | string[] | undefined>,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useAppQuery({\n queryKey: ['discussions-data', params],\n queryFn: ({ signal }) =>\n intlayerOAuth.ai.getDiscussions(\n { includeMessages: 'false', ...(params ?? {}) } as any,\n { signal, cache: 'no-store' }\n ),\n requireUser: true,\n ...options,\n });\n};\n\n/**\n * Search\n */\n\nexport const useSearchDoc = (params: SearchDocUtilParams) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['search', params],\n queryFn: () => intlayerOAuth.search.searchDoc(params),\n enabled: (params?.input?.length ?? 0) > 3,\n });\n};\n\n/**\n * Newsletter\n */\n\nexport const useSubscribeToNewsletter = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: (args: NewsletterSubscriptionBody) =>\n intlayerOAuth.newsletter.subscribeToNewsletter(args),\n });\n};\n\nexport const useUnsubscribeFromNewsletter = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: (args: NewsletterUnsubscriptionBody) =>\n intlayerOAuth.newsletter.unsubscribeFromNewsletter(args),\n });\n};\n\nexport const useGetNewsletterStatus = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['newsletter'],\n mutationFn: () => intlayerOAuth.newsletter.getNewsletterStatus(),\n });\n};\n\n/**\n * GitHub\n */\n\nexport const useGithubGetAuthUrl = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'auth-url'],\n mutationFn: (redirectUri: string) =>\n intlayerOAuth.github.getAuthUrl(redirectUri),\n });\n};\n\nexport const useGithubAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'auth'],\n mutationFn: (code: string) => intlayerOAuth.github.authenticate(code),\n });\n};\n\nexport const useGithubRepos = (enabled: boolean = true) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['github', 'repos'],\n queryFn: () => intlayerOAuth.github.getRepositories(),\n enabled,\n });\n};\n\nexport const useGithubCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'check-config'],\n mutationFn: (args: {\n owner: string;\n repository: string;\n branch?: string;\n }) =>\n intlayerOAuth.github.checkIntlayerConfig(\n undefined,\n args.owner,\n args.repository,\n args.branch\n ),\n });\n};\n\nexport const useGithubGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['github', 'get-config-file'],\n mutationFn: (args: {\n owner: string;\n repository: string;\n branch?: string;\n path?: string;\n }) =>\n intlayerOAuth.github.getConfigFile(\n undefined,\n args.owner,\n args.repository,\n args.branch,\n args.path\n ),\n });\n};\n\n/**\n * GitLab\n */\n\nexport const useGitlabAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'auth'],\n mutationFn: (args: {\n code: string;\n redirectUri: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.authenticate(\n args.code,\n args.redirectUri,\n args.instanceUrl\n ),\n });\n};\n\nexport const useGitlabProjects = (\n enabled: boolean = true,\n instanceUrl?: string\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['gitlab', 'projects', instanceUrl],\n queryFn: () => intlayerOAuth.gitlab.getProjects(undefined, instanceUrl),\n enabled,\n });\n};\n\nexport const useGitlabCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'check-config'],\n mutationFn: (args: {\n projectId: number;\n branch?: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.checkIntlayerConfig(\n undefined,\n args.projectId,\n args.branch,\n args.instanceUrl\n ),\n });\n};\n\nexport const useGitlabGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['gitlab', 'get-config-file'],\n mutationFn: (args: {\n projectId: number;\n branch?: string;\n path?: string;\n instanceUrl?: string;\n }) =>\n intlayerOAuth.gitlab.getConfigFile(\n undefined,\n args.projectId,\n args.branch,\n args.path,\n args.instanceUrl\n ),\n });\n};\n\n/**\n * Bitbucket\n */\n\nexport const useBitbucketAuth = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'auth'],\n mutationFn: (code: string) => intlayerOAuth.bitbucket.authenticate(code),\n });\n};\n\nexport const useBitbucketRepos = (enabled: boolean = true) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['bitbucket', 'repos'],\n queryFn: () => intlayerOAuth.bitbucket.getRepositories(),\n enabled,\n });\n};\n\nexport const useBitbucketCheckConfig = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'check-config'],\n mutationFn: (args: {\n workspace: string;\n repoSlug: string;\n branch?: string;\n }) =>\n intlayerOAuth.bitbucket.checkIntlayerConfig(\n undefined,\n args.workspace,\n args.repoSlug,\n args.branch\n ),\n });\n};\n\nexport const useBitbucketGetConfigFile = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['bitbucket', 'get-config-file'],\n mutationFn: (args: {\n workspace: string;\n repoSlug: string;\n branch?: string;\n path?: string;\n }) =>\n intlayerOAuth.bitbucket.getConfigFile(\n undefined,\n args.workspace,\n args.repoSlug,\n args.branch,\n args.path\n ),\n });\n};\n\n/**\n * Editor\n */\n\nexport const useGetEditorDictionaries = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['editor', 'dictionaries'],\n queryFn: () => intlayerOAuth.editor.getDictionaries(),\n });\n};\n\nexport const useWriteDictionary = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['editor', 'dictionaries'],\n mutationFn: (args: WriteContentDeclarationBody) =>\n intlayerOAuth.editor.writeDictionary(args),\n });\n};\n\n/**\n * Showcase\n */\n\nexport const useGetShowcaseProjects = (\n query?: ShowcaseProjectsQuery,\n options?: Partial<UseQueryOptions<GetShowcaseProjectsResult>>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'projects', query],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getShowcaseProjects(query, { signal }),\n ...options,\n });\n};\n\nexport const useGetShowcaseProjectById = (\n projectId: GetShowcaseProjectByIdParams['projectId'],\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'project', projectId],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getShowcaseProjectById(projectId, {\n signal,\n }),\n enabled: Boolean(projectId),\n ...options,\n });\n};\n\nexport const useGetOtherShowcaseProjects = (\n query: OtherShowcaseProjectsQuery,\n options?: Partial<UseQueryOptions>\n) => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useQuery({\n queryKey: ['showcase', 'other-projects', query],\n queryFn: ({ signal }) =>\n intlayerOAuth.showcaseProject.getOtherShowcaseProjects(query, {\n signal,\n }),\n enabled: Boolean(query.excludeId),\n ...options,\n });\n};\n\nexport const useSubmitShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'submit'],\n mutationFn: (body: SubmitShowcaseProjectBody) =>\n intlayerOAuth.showcaseProject.submitShowcaseProject(body),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\nexport const useDeleteShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'delete'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.deleteShowcaseProject(projectId),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\nexport const useToggleShowcaseUpvote = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n\n return useMutation({\n mutationKey: ['showcase', 'upvote'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.toggleShowcaseUpvote({ projectId }),\n });\n};\n\nexport const useToggleShowcaseDownvote = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n\n return useMutation({\n mutationKey: ['showcase', 'downvote'],\n mutationFn: (projectId: string) =>\n intlayerOAuth.showcaseProject.toggleShowcaseDownvote({ projectId }),\n });\n};\n\nexport const useUpdateShowcaseProject = (props?: UseIntlayerAuthProps) => {\n const intlayerOAuth = useIntlayerOAuth(props);\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationKey: ['showcase', 'update'],\n mutationFn: ({\n projectId,\n ...body\n }: {\n projectId: string;\n name?: string;\n url?: string;\n githubUrl?: string;\n tagline?: string;\n description?: string;\n useCases?: string[];\n }) => intlayerOAuth.showcaseProject.updateShowcaseProject(projectId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['showcase'] });\n },\n });\n};\n\n/**\n * Translation\n */\n\nexport const useFillAllTranslations = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['fill-all-translations'],\n mutationFn: async (\n args: Pick<TranslateDictionariesBody, 'targetLocales' | 'mode'> & {\n dictionaryIds?: string[];\n }\n ) => {\n let dictionaryIds = args.dictionaryIds;\n if (!dictionaryIds || dictionaryIds.length === 0) {\n const result = await intlayerOAuth.dictionary.getDictionaries({\n pageSize: 1000,\n });\n dictionaryIds = (result?.data ?? []).map((d) => d.id);\n }\n return intlayerOAuth.translate.translateDictionaries({\n dictionaryIds,\n targetLocales: args.targetLocales,\n mode: args.mode,\n });\n },\n });\n};\n\nexport const useStopTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['stop-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.stopTranslationJob(jobId),\n });\n};\n\nexport const usePauseTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['pause-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.pauseTranslationJob(jobId),\n });\n};\n\nexport const useResumeTranslationJob = () => {\n const intlayerOAuth = useIntlayerOAuth();\n\n return useMutation({\n mutationKey: ['resume-translation-job'],\n mutationFn: (jobId: string) =>\n intlayerOAuth.translate.resumeTranslationJob(jobId),\n });\n};\n"],"mappings":"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"}
|
|
@@ -43,8 +43,8 @@ declare enum BadgeSize {
|
|
|
43
43
|
* @description Defines the styling variants for different badge combinations
|
|
44
44
|
*/
|
|
45
45
|
declare const badgeVariants: (props?: {
|
|
46
|
-
color?: "text" | "primary" | "secondary" | "destructive" | "
|
|
47
|
-
variant?: "
|
|
46
|
+
color?: "text" | "primary" | "secondary" | "destructive" | "neutral" | "light" | "dark" | "error" | "success" | "custom";
|
|
47
|
+
variant?: "default" | "none" | "outline" | "hoverable";
|
|
48
48
|
size?: "sm" | "md" | "lg";
|
|
49
49
|
} & _$class_variance_authority_types0.ClassProp) => string;
|
|
50
50
|
/**
|
|
@@ -61,10 +61,10 @@ declare enum ButtonTextAlign {
|
|
|
61
61
|
*/
|
|
62
62
|
declare const buttonVariants: (props?: {
|
|
63
63
|
size?: "sm" | "md" | "lg" | "xl" | "icon-sm" | "icon-md" | "icon-lg" | "icon-xl";
|
|
64
|
-
color?: "text" | "primary" | "secondary" | "destructive" | "
|
|
64
|
+
color?: "text" | "primary" | "secondary" | "destructive" | "neutral" | "card" | "light" | "dark" | "current" | "text-inverse" | "error" | "success" | "custom";
|
|
65
65
|
roundedSize?: "sm" | "md" | "lg" | "xl" | "2xl" | "none" | "3xl" | "4xl" | "5xl" | "full";
|
|
66
|
-
variant?: "
|
|
67
|
-
textAlign?: "left" | "
|
|
66
|
+
variant?: "default" | "none" | "input" | "outline" | "link" | "invisible-link" | "hoverable" | "fade";
|
|
67
|
+
textAlign?: "left" | "right" | "center";
|
|
68
68
|
isFullWidth?: boolean;
|
|
69
69
|
} & _$class_variance_authority_types0.ClassProp) => string;
|
|
70
70
|
/**
|
|
@@ -29,7 +29,7 @@ declare const Command: {
|
|
|
29
29
|
ref?: React.Ref<HTMLInputElement>;
|
|
30
30
|
} & {
|
|
31
31
|
asChild?: boolean;
|
|
32
|
-
}, "key" | keyof _$react.InputHTMLAttributes<HTMLInputElement> | "asChild">, "
|
|
32
|
+
}, "key" | keyof _$react.InputHTMLAttributes<HTMLInputElement> | "asChild">, "value" | "onChange" | "type"> & {
|
|
33
33
|
value?: string;
|
|
34
34
|
onValueChange?: (search: string) => void;
|
|
35
35
|
} & _$react.RefAttributes<HTMLInputElement>>;
|
|
@@ -73,7 +73,7 @@ declare const Command: {
|
|
|
73
73
|
ref?: React.Ref<HTMLDivElement>;
|
|
74
74
|
} & {
|
|
75
75
|
asChild?: boolean;
|
|
76
|
-
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild">, "
|
|
76
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild">, "disabled" | "value" | "onSelect"> & {
|
|
77
77
|
disabled?: boolean;
|
|
78
78
|
onSelect?: (value: string) => void;
|
|
79
79
|
value?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/components/HeightResizer/index.tsx"],"mappings":";;;;;AAae;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/components/HeightResizer/index.tsx"],"mappings":";;;;;AAae;;;KASV,kBAAA;EAsBiB;;;;;EAhBpB,aAAA;EAOA;;;;;EAAA,SAAA;EASkE;;AAsEpE;;;;EAvEE,SAAA;AAAA,IACE,iBAAA,CAAkB,cAAA,CAAe,cAAA,GAAiB,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsEzC,aAAA,EAAe,EAAA,CAAG,iBAAA,CAAkB,kBAAA"}
|
|
@@ -5,9 +5,9 @@ import { BundledLanguage } from "shiki/bundle/web";
|
|
|
5
5
|
//#region src/components/IDE/Code.d.ts
|
|
6
6
|
type CodeCompAttributes = {
|
|
7
7
|
fileName?: string;
|
|
8
|
-
packageManager?: PackageManager;
|
|
9
|
-
codeFormat?: CodeFormat;
|
|
10
|
-
contentDeclarationFormat?: ContentDeclarationFormat;
|
|
8
|
+
packageManager?: PackageManager; /** Single format, or a JSON-array string like `["typescript","esm","commonjs"]`. */
|
|
9
|
+
codeFormat?: CodeFormat | string;
|
|
10
|
+
contentDeclarationFormat?: ContentDeclarationFormat | string;
|
|
11
11
|
};
|
|
12
12
|
type CodeCompProps = {
|
|
13
13
|
children: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Code.d.ts","names":[],"sources":["../../../../src/components/IDE/Code.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"Code.d.ts","names":[],"sources":["../../../../src/components/IDE/Code.tsx"],"mappings":";;;;;KAsBY,kBAAA;EACV,QAAA;EACA,cAAA,GAAiB,cAAA,EAFW;EAI5B,UAAA,GAAa,UAAA;EACb,wBAAA,GAA2B,wBAAA;AAAA;AAAA,KAGxB,aAAA;EACH,QAAA;EACA,QAAA;EACA,QAAA,EAAU,eAAA;EACV,UAAA;EACA,UAAA;EACA,eAAA;EACA,UAAA;AAAA,IACE,kBAAA,GACF,cAAA,CAAe,cAAA;AAAA,cAqBJ,IAAA,EAAM,EAAA,CAAG,aAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CodeFormat } from "./CodeContext.js";
|
|
2
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import { BundledLanguage } from "shiki/bundle/web";
|
|
4
|
+
|
|
5
|
+
//#region src/components/IDE/CodeBlockHighlight.d.ts
|
|
6
|
+
type Props = {
|
|
7
|
+
/** Raw TypeScript source code (the canonical "source of truth"). */children: string; /** Language of the source (e.g. 'tsx', 'typescript'). */
|
|
8
|
+
originalLang: BundledLanguage; /** Currently selected format: 'typescript' | 'esm' | 'commonjs'. */
|
|
9
|
+
targetFormat: Exclude<CodeFormat, 'json'>;
|
|
10
|
+
isDarkMode?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const CodeBlockHighlight: ({
|
|
13
|
+
children,
|
|
14
|
+
originalLang,
|
|
15
|
+
targetFormat,
|
|
16
|
+
isDarkMode
|
|
17
|
+
}: Props) => _$react_jsx_runtime0.JSX.Element;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { CodeBlockHighlight };
|
|
20
|
+
//# sourceMappingURL=CodeBlockHighlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlockHighlight.d.ts","names":[],"sources":["../../../../src/components/IDE/CodeBlockHighlight.tsx"],"mappings":";;;;;KAcK,KAAA;sEAEH,QAAA,UAFG;EAIH,YAAA,EAAc,eAAA;EAEd,YAAA,EAAc,OAAA,CAAQ,UAAA;EACtB,UAAA;AAAA;AAAA,cAmBW,kBAAA;EAAsB,QAAA;EAAA,YAAA;EAAA,YAAA;EAAA;AAAA,GAKhC,KAAA,KAAK,oBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeConditionalRenderer.d.ts","names":[],"sources":["../../../../src/components/IDE/CodeConditionalRenderer.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"CodeConditionalRenderer.d.ts","names":[],"sources":["../../../../src/components/IDE/CodeConditionalRenderer.tsx"],"mappings":";;;;cAwBa,qBAAA,EAAuB,EAAA,CAClC,iBAAA,CAAkB,kBAAA"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
import { CodeFormat } from "./CodeContext.js";
|
|
1
2
|
import { FC } from "react";
|
|
2
3
|
|
|
3
4
|
//#region src/components/IDE/CodeFormatSelector.d.ts
|
|
4
|
-
|
|
5
|
+
type CodeFormatSelectorProps = {
|
|
6
|
+
/** When provided, only the listed formats are shown as options. */availableFormats?: CodeFormat[];
|
|
7
|
+
};
|
|
8
|
+
declare const CodeFormatSelector: FC<CodeFormatSelectorProps>;
|
|
5
9
|
//#endregion
|
|
6
10
|
export { CodeFormatSelector };
|
|
7
11
|
//# sourceMappingURL=CodeFormatSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeFormatSelector.d.ts","names":[],"sources":["../../../../src/components/IDE/CodeFormatSelector.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeFormatSelector.d.ts","names":[],"sources":["../../../../src/components/IDE/CodeFormatSelector.tsx"],"mappings":";;;;KAQK,uBAAA;qEAEH,gBAAA,GAAmB,UAAA;AAAA;AAAA,cAGR,kBAAA,EAAoB,EAAA,CAAG,uBAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/components/IDE/codeTransformer.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Runtime transformer: converts TypeScript source code to ESM or CommonJS format.
|
|
4
|
+
*
|
|
5
|
+
* Design constraints:
|
|
6
|
+
* - Regex/string based (no AST) — runs in the browser
|
|
7
|
+
* - Handles patterns that actually appear in the Intlayer docs
|
|
8
|
+
* - Intentionally limited: exotic TypeScript features may not transform perfectly
|
|
9
|
+
*/
|
|
10
|
+
type TargetCodeFormat = 'esm' | 'commonjs' | 'typescript';
|
|
11
|
+
declare const transformCode: (code: string, target: TargetCodeFormat) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Derive the file name for a transformed format.
|
|
14
|
+
* `next.config.ts` → `next.config.mjs` (ESM) / `next.config.cjs` (CJS)
|
|
15
|
+
* `layout.tsx` → `layout.jsx` (ESM or CJS — JSX always stays .jsx)
|
|
16
|
+
*/
|
|
17
|
+
declare const deriveFileName: (fileName: string, target: TargetCodeFormat) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Derive the syntax-highlighting language for a transformed format.
|
|
20
|
+
* `typescript` → `javascript`; `tsx` → `jsx`
|
|
21
|
+
*/
|
|
22
|
+
declare const deriveLanguage: (language: string, target: TargetCodeFormat) => string;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { TargetCodeFormat, deriveFileName, deriveLanguage, transformCode };
|
|
25
|
+
//# sourceMappingURL=codeTransformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeTransformer.d.ts","names":[],"sources":["../../../../src/components/IDE/codeTransformer.ts"],"mappings":";;AASA;;;;;AA0WA;;KA1WY,gBAAA;AAAA,cA0WC,aAAA,GACX,IAAA,UACA,MAAA,EAAQ,gBAAA;;;;;;cAkDG,cAAA,GACX,QAAA,UACA,MAAA,EAAQ,gBAAA;;;;;cAcG,cAAA,GACX,QAAA,UACA,MAAA,EAAQ,gBAAA"}
|