Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 757890e1c1 | |||
| 7c048ef168 | |||
| b3b4ed1dc0 | |||
| 1417a4b958 | |||
| c33d9fd6ec | |||
| 84b874c1a3 | |||
| 2da2081b6f | |||
| 0c3c92aebf | |||
| 6ed666fb38 | |||
| 79ea6279d5 | |||
| fd7f359489 | |||
| 3d7f971d86 | |||
| 9e8f206ebf | |||
| 61d8c2bdb6 | |||
| e77d918871 | |||
| dddf28a834 | |||
| b694250f51 | |||
| d7374730e3 | |||
| 908d0408f5 | |||
| 269bd60b5a | |||
| 87c03fd088 | |||
| b9a8b0f6d6 | |||
| 34ee3b7ea7 | |||
| 5ffe02bcc0 | |||
| 670428d322 | |||
| 3e58a6ca46 | |||
| b21d548d06 | |||
| cadbd0d698 | |||
| 6fdba0ecba |
@@ -13,7 +13,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Close unsigned PRs
|
||||
uses: actions/github-script@v6
|
||||
uses: actions/github-script@v8
|
||||
with:
|
||||
script: |
|
||||
const now = new Date();
|
||||
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
github.event.pull_request.head.repo.full_name == github.repository)
|
||||
steps:
|
||||
- name: Checkout Branch
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v5
|
||||
- name: Compress Images
|
||||
id: calibre
|
||||
uses: calibreapp/image-actions@main
|
||||
@@ -48,6 +48,7 @@ jobs:
|
||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||
# For non-Pull Requests, run in compressOnly mode and we'll PR after.
|
||||
compressOnly: ${{ github.event_name != 'pull_request' }}
|
||||
minPctChange: "10"
|
||||
- name: Create Pull Request
|
||||
# If it's not a Pull Request then commit any changes as a new PR.
|
||||
if: |
|
||||
|
||||
@@ -25,9 +25,9 @@ jobs:
|
||||
node-version: [20.x, 22.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: "yarn"
|
||||
@@ -38,8 +38,8 @@ jobs:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: "yarn"
|
||||
@@ -50,8 +50,8 @@ jobs:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: "yarn"
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
server: ${{ steps.filter.outputs.server }}
|
||||
app: ${{ steps.filter.outputs.app }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: dorny/paths-filter@v2
|
||||
id: filter
|
||||
with:
|
||||
@@ -92,8 +92,8 @@ jobs:
|
||||
matrix:
|
||||
test-group: [app, shared]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: "yarn"
|
||||
@@ -124,8 +124,8 @@ jobs:
|
||||
shard: [1, 2, 3, 4]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: "yarn"
|
||||
@@ -141,8 +141,8 @@ jobs:
|
||||
if: ${{ needs.changes.outputs.app == 'true' && github.repository == 'outline/outline' }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: 22.x
|
||||
cache: "yarn"
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v5
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: ubicloud-standard-8-arm
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
@@ -93,7 +93,7 @@ jobs:
|
||||
runs-on: ubicloud-standard-8
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
run-linters:
|
||||
if: startsWith(github.actor, 'codegen-sh')
|
||||
name: Run linters
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
# Give the default GITHUB_TOKEN write permission to commit and push the
|
||||
# added or changed files to the repository.
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20.x
|
||||
cache: "yarn"
|
||||
- run: yarn install --frozen-lockfile --prefer-offline
|
||||
- run: yarn lint --fix
|
||||
|
||||
- name: Commit changes
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "Applied automatic fixes"
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v5
|
||||
- uses: actions/stale@v10
|
||||
with:
|
||||
stale-pr-message: "This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days"
|
||||
stale-issue-message: "This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days"
|
||||
|
||||
@@ -22,6 +22,7 @@ export const inviteUser = createAction({
|
||||
perform: ({ t }) => {
|
||||
stores.dialogs.openModal({
|
||||
title: t("Invite to workspace"),
|
||||
width: "500px",
|
||||
content: <Invite onSubmit={stores.dialogs.closeAllModals} />,
|
||||
});
|
||||
},
|
||||
|
||||
@@ -2,6 +2,7 @@ import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
import useBoolean from "~/hooks/useBoolean";
|
||||
import Initials from "./Initials";
|
||||
import Tooltip from "../Tooltip";
|
||||
|
||||
export enum AvatarSize {
|
||||
Small = 16,
|
||||
@@ -22,6 +23,7 @@ export interface IAvatar {
|
||||
avatarUrl: string | null;
|
||||
color?: string;
|
||||
initial?: string;
|
||||
name?: string;
|
||||
id?: string;
|
||||
}
|
||||
|
||||
@@ -42,6 +44,8 @@ type Props = {
|
||||
className?: string;
|
||||
/** Optional style */
|
||||
style?: React.CSSProperties;
|
||||
/** Whether to show a tooltip */
|
||||
showTooltip?: boolean;
|
||||
};
|
||||
|
||||
function Avatar(props: Props) {
|
||||
@@ -50,12 +54,13 @@ function Avatar(props: Props) {
|
||||
style,
|
||||
variant = AvatarVariant.Round,
|
||||
className,
|
||||
showTooltip,
|
||||
...rest
|
||||
} = props;
|
||||
const src = props.src || model?.avatarUrl;
|
||||
const [error, handleError] = useBoolean(false);
|
||||
|
||||
return (
|
||||
const content = (
|
||||
<Relative
|
||||
style={style}
|
||||
$variant={variant}
|
||||
@@ -73,6 +78,12 @@ function Avatar(props: Props) {
|
||||
)}
|
||||
</Relative>
|
||||
);
|
||||
|
||||
return showTooltip ? (
|
||||
<Tooltip content={props.alt || model?.name || ""}>{content}</Tooltip>
|
||||
) : (
|
||||
content
|
||||
);
|
||||
}
|
||||
|
||||
Avatar.defaultProps = {
|
||||
|
||||
@@ -32,6 +32,8 @@ function Dialogs() {
|
||||
}}
|
||||
title={modal.title}
|
||||
style={modal.style}
|
||||
width={modal.width}
|
||||
height={modal.height}
|
||||
>
|
||||
{modal.content}
|
||||
</Modal>
|
||||
|
||||
@@ -32,6 +32,7 @@ function EditableTitle(
|
||||
const [isEditing, setIsEditing] = React.useState(rest.isEditing || false);
|
||||
const [originalValue, setOriginalValue] = React.useState(title);
|
||||
const [value, setValue] = React.useState(title);
|
||||
const [isSubmitting, setIsSubmitting] = React.useState(false);
|
||||
|
||||
React.useImperativeHandle(ref, () => ({
|
||||
setIsEditing,
|
||||
@@ -65,6 +66,10 @@ function EditableTitle(
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
|
||||
if (isSubmitting) {
|
||||
return;
|
||||
}
|
||||
|
||||
const trimmedValue = value.trim();
|
||||
|
||||
if (trimmedValue === originalValue || trimmedValue.length === 0) {
|
||||
@@ -74,6 +79,7 @@ function EditableTitle(
|
||||
return;
|
||||
}
|
||||
|
||||
setIsSubmitting(true);
|
||||
try {
|
||||
await onSubmit(trimmedValue);
|
||||
setOriginalValue(trimmedValue);
|
||||
@@ -82,10 +88,11 @@ function EditableTitle(
|
||||
toast.error(error.message);
|
||||
throw error;
|
||||
} finally {
|
||||
setIsSubmitting(false);
|
||||
setIsEditing(false);
|
||||
}
|
||||
},
|
||||
[originalValue, value, onCancel, onSubmit]
|
||||
[originalValue, value, onCancel, onSubmit, isSubmitting]
|
||||
);
|
||||
|
||||
const handleKeyDown = React.useCallback(
|
||||
|
||||
@@ -25,6 +25,7 @@ function ExportDialog({ collection, onSubmit }: Props) {
|
||||
);
|
||||
const [includeAttachments, setIncludeAttachments] =
|
||||
React.useState<boolean>(true);
|
||||
const [includePrivate, setIncludePrivate] = React.useState<boolean>(true);
|
||||
const user = useCurrentUser();
|
||||
const { collections } = useStores();
|
||||
const { t } = useTranslation();
|
||||
@@ -44,6 +45,13 @@ function ExportDialog({ collection, onSubmit }: Props) {
|
||||
[]
|
||||
);
|
||||
|
||||
const handleIncludePrivateChange = React.useCallback(
|
||||
(ev: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setIncludePrivate(ev.target.checked);
|
||||
},
|
||||
[]
|
||||
);
|
||||
|
||||
const handleSubmit = async () => {
|
||||
if (collection) {
|
||||
await collection.export(format, includeAttachments);
|
||||
@@ -59,7 +67,7 @@ function ExportDialog({ collection, onSubmit }: Props) {
|
||||
},
|
||||
});
|
||||
} else {
|
||||
await collections.export(format, includeAttachments);
|
||||
await collections.export({ format, includeAttachments, includePrivate });
|
||||
toast.success(t("Export started"));
|
||||
}
|
||||
onSubmit();
|
||||
@@ -123,37 +131,62 @@ function ExportDialog({ collection, onSubmit }: Props) {
|
||||
<Text as="p" size="small" weight="bold">
|
||||
{item.title}
|
||||
</Text>
|
||||
<Text size="small">{item.description}</Text>
|
||||
<Text size="small" type="secondary">
|
||||
{item.description}
|
||||
</Text>
|
||||
</div>
|
||||
</Option>
|
||||
))}
|
||||
</Flex>
|
||||
<hr />
|
||||
<Option>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="includeAttachments"
|
||||
checked={includeAttachments}
|
||||
onChange={handleIncludeAttachmentsChange}
|
||||
/>
|
||||
<div>
|
||||
<Text as="p" size="small" weight="bold">
|
||||
{t("Include attachments")}
|
||||
</Text>
|
||||
<Text size="small">
|
||||
{t("Including uploaded images and files in the exported data")}.
|
||||
</Text>{" "}
|
||||
</div>
|
||||
</Option>
|
||||
<HR />
|
||||
<Flex gap={12} column>
|
||||
<Option>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="includeAttachments"
|
||||
checked={includeAttachments}
|
||||
onChange={handleIncludeAttachmentsChange}
|
||||
/>
|
||||
<div>
|
||||
<Text as="p" size="small" weight="bold">
|
||||
{t("Include attachments")}
|
||||
</Text>
|
||||
<Text size="small" type="secondary">
|
||||
{t("Including uploaded images and files in the exported data")}.
|
||||
</Text>{" "}
|
||||
</div>
|
||||
</Option>
|
||||
<Option>
|
||||
<input
|
||||
type="checkbox"
|
||||
name="includePrivate"
|
||||
checked={includePrivate}
|
||||
onChange={handleIncludePrivateChange}
|
||||
/>
|
||||
<div>
|
||||
<Text as="p" size="small" weight="bold">
|
||||
{t("Include private collections")}
|
||||
</Text>
|
||||
</div>
|
||||
</Option>
|
||||
</Flex>
|
||||
</ConfirmationDialog>
|
||||
);
|
||||
}
|
||||
|
||||
const HR = styled.hr`
|
||||
margin: 16px 0;
|
||||
`;
|
||||
|
||||
const Option = styled.label`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: start;
|
||||
gap: 16px;
|
||||
|
||||
input {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import styled from "styled-components";
|
||||
import User from "~/models/User";
|
||||
import { Avatar, AvatarSize } from "~/components/Avatar";
|
||||
import Flex from "~/components/Flex";
|
||||
import { s } from "@shared/styles";
|
||||
|
||||
type Props = {
|
||||
/** The users to display */
|
||||
@@ -21,6 +22,8 @@ type Props = {
|
||||
model: User;
|
||||
}
|
||||
>;
|
||||
/** Whether to show tooltips on hover, defaults to true */
|
||||
showTooltip?: boolean;
|
||||
};
|
||||
|
||||
function Facepile({
|
||||
@@ -29,6 +32,7 @@ function Facepile({
|
||||
size = AvatarSize.Large,
|
||||
limit = 8,
|
||||
renderAvatar = Avatar,
|
||||
showTooltip = true,
|
||||
...rest
|
||||
}: Props) {
|
||||
const { t } = useTranslation();
|
||||
@@ -51,6 +55,7 @@ function Facepile({
|
||||
<Component
|
||||
key={model.id}
|
||||
{...{
|
||||
showTooltip,
|
||||
model,
|
||||
size,
|
||||
style: {
|
||||
@@ -101,6 +106,11 @@ const Avatars = styled(Flex)`
|
||||
align-items: center;
|
||||
flex-direction: row-reverse;
|
||||
cursor: var(--pointer);
|
||||
|
||||
*:hover {
|
||||
clip-path: none !important;
|
||||
box-shadow: 0 0 0 2px ${s("background")};
|
||||
}
|
||||
`;
|
||||
|
||||
export default observer(Facepile);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import * as VisuallyHidden from "@radix-ui/react-visually-hidden";
|
||||
import { QuestionMarkIcon } from "outline-icons";
|
||||
import { transparentize } from "polished";
|
||||
import * as React from "react";
|
||||
import styled from "styled-components";
|
||||
import { s } from "@shared/styles";
|
||||
@@ -342,9 +341,9 @@ function Option({
|
||||
{option.description && (
|
||||
<>
|
||||
|
||||
<Description type="tertiary" size="small" ellipsis>
|
||||
<Text type="tertiary" size="small" ellipsis>
|
||||
– {option.description}
|
||||
</Description>
|
||||
</Text>
|
||||
</>
|
||||
)}
|
||||
</OptionContainer>
|
||||
@@ -360,15 +359,6 @@ const OptionContainer = styled(Flex)`
|
||||
min-height: 24px;
|
||||
`;
|
||||
|
||||
const Description = styled(Text)`
|
||||
@media (hover: hover) {
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: ${(props) => transparentize(0.5, props.theme.accentText)};
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
const IconWrapper = styled.span`
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
@@ -5,10 +5,12 @@ import {
|
||||
ComponentProps,
|
||||
createContext,
|
||||
forwardRef,
|
||||
HTMLAttributes,
|
||||
ReactNode,
|
||||
useCallback,
|
||||
useContext,
|
||||
useEffect,
|
||||
useMemo,
|
||||
useRef,
|
||||
useState,
|
||||
} from "react";
|
||||
@@ -47,6 +49,7 @@ import {
|
||||
ReactZoomPanPinchRef,
|
||||
} from "react-zoom-pan-pinch";
|
||||
import { transparentize } from "polished";
|
||||
import { mergeRefs } from "react-merge-refs";
|
||||
|
||||
export enum LightboxStatus {
|
||||
READY_TO_OPEN,
|
||||
@@ -96,16 +99,44 @@ type ZoomablePannablePinchableProps = {
|
||||
children: ReactNode;
|
||||
panningDisabled: boolean;
|
||||
disabled: boolean;
|
||||
onClose?: () => void;
|
||||
};
|
||||
|
||||
const ZoomablePannablePinchable = forwardRef<
|
||||
ReactZoomPanPinchRef,
|
||||
ZoomablePannablePinchableProps
|
||||
>(({ children, panningDisabled, disabled }, ref) => {
|
||||
>(({ children, panningDisabled, disabled, onClose }, ref) => {
|
||||
const { isPanning, ...panningHandlers } = usePanning();
|
||||
const wrapperRef = useRef<ReactZoomPanPinchRef>(null);
|
||||
const scale = wrapperRef.current?.instance.transformState.scale ?? 1;
|
||||
|
||||
const wrapperProps = useMemo(
|
||||
() =>
|
||||
({
|
||||
onClick: (event) => {
|
||||
if (scale > 1) {
|
||||
return;
|
||||
}
|
||||
if (event.defaultPrevented) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
["IMG", "INPUT", "BUTTON", "A"].includes(
|
||||
(event.target as Element).tagName
|
||||
)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
onClose?.();
|
||||
},
|
||||
}) satisfies HTMLAttributes<HTMLDivElement>,
|
||||
[onClose, scale]
|
||||
);
|
||||
|
||||
return (
|
||||
<ZoomPanPinchContext.Provider value={{ isImagePanning: isPanning }}>
|
||||
<TransformWrapper
|
||||
ref={ref}
|
||||
ref={mergeRefs([ref, wrapperRef])}
|
||||
disabled={disabled}
|
||||
doubleClick={{ disabled: true }}
|
||||
minScale={1}
|
||||
@@ -116,7 +147,11 @@ const ZoomablePannablePinchable = forwardRef<
|
||||
{...panningHandlers}
|
||||
>
|
||||
<TransformComponent
|
||||
wrapperStyle={{ width: "100%", height: "100%" }}
|
||||
wrapperStyle={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
cursor: isPanning ? "grabbing" : scale > 1 ? "grab" : "zoom-out",
|
||||
}}
|
||||
contentStyle={{
|
||||
width: "100%",
|
||||
height: "100%",
|
||||
@@ -124,6 +159,7 @@ const ZoomablePannablePinchable = forwardRef<
|
||||
justifyContent: "center",
|
||||
alignItems: "center",
|
||||
}}
|
||||
wrapperProps={wrapperProps}
|
||||
>
|
||||
{children}
|
||||
</TransformComponent>
|
||||
@@ -138,10 +174,7 @@ function usePanning() {
|
||||
|
||||
const onPanningStart: ComponentProps<
|
||||
typeof TransformWrapper
|
||||
>["onPanningStart"] = (ref, event) => {
|
||||
if (!(event.target instanceof HTMLImageElement)) {
|
||||
return;
|
||||
}
|
||||
>["onPanningStart"] = (ref) => {
|
||||
const zoomedIn = ref.state.scale > 1;
|
||||
if (zoomedIn) {
|
||||
setPanning(ref.instance.isPanning);
|
||||
@@ -157,13 +190,10 @@ function usePanning() {
|
||||
const onPanningStop: ComponentProps<
|
||||
typeof TransformWrapper
|
||||
>["onPanningStop"] = (ref, event) => {
|
||||
if (!(event.target instanceof HTMLImageElement)) {
|
||||
return;
|
||||
}
|
||||
setPanning(ref.instance.isPanning);
|
||||
if (dragged.current) {
|
||||
dragged.current = false;
|
||||
} else {
|
||||
} else if (event.target instanceof HTMLImageElement) {
|
||||
const zoomedOut = Math.abs(ref.state.scale - 1) < 0.001;
|
||||
if (zoomedOut) {
|
||||
ref.zoomIn();
|
||||
@@ -758,6 +788,7 @@ function Lightbox({ images, activeImage, onUpdate, onClose }: Props) {
|
||||
}
|
||||
disabled={status.image === ImageStatus.ERROR}
|
||||
ref={zoomPanPinchRef}
|
||||
onClose={close}
|
||||
>
|
||||
<Image
|
||||
ref={imgRef}
|
||||
@@ -998,7 +1029,7 @@ const StyledImg = styled.img<{
|
||||
object-fit: contain;
|
||||
cursor: ${(props) =>
|
||||
props.$panning
|
||||
? "grab"
|
||||
? "grabbing"
|
||||
: props.$zoomedOut
|
||||
? "zoom-in"
|
||||
: props.$zoomedIn
|
||||
|
||||
@@ -22,6 +22,8 @@ type Props = {
|
||||
isOpen: boolean;
|
||||
title?: React.ReactNode;
|
||||
style?: React.CSSProperties;
|
||||
width?: number | string;
|
||||
height?: number | string;
|
||||
onRequestClose: () => void;
|
||||
};
|
||||
|
||||
@@ -30,6 +32,8 @@ const Modal: React.FC<Props> = ({
|
||||
isOpen,
|
||||
title = "Untitled",
|
||||
style,
|
||||
width,
|
||||
height,
|
||||
onRequestClose,
|
||||
}: Props) => {
|
||||
const wasOpen = usePrevious(isOpen);
|
||||
@@ -57,7 +61,7 @@ const Modal: React.FC<Props> = ({
|
||||
>
|
||||
{isMobile ? (
|
||||
<Mobile>
|
||||
<Content>
|
||||
<MobileContent>
|
||||
<Centered onClick={(ev) => ev.stopPropagation()} column>
|
||||
{title && (
|
||||
<Text size="xlarge" weight="bold">
|
||||
@@ -66,7 +70,7 @@ const Modal: React.FC<Props> = ({
|
||||
)}
|
||||
<ErrorBoundary>{children}</ErrorBoundary>
|
||||
</Centered>
|
||||
</Content>
|
||||
</MobileContent>
|
||||
<Close onClick={onRequestClose}>
|
||||
<CloseIcon size={32} />
|
||||
</Close>
|
||||
@@ -76,7 +80,7 @@ const Modal: React.FC<Props> = ({
|
||||
</Back>
|
||||
</Mobile>
|
||||
) : (
|
||||
<Small>
|
||||
<Wrapper $width={width} $height={height}>
|
||||
<Centered
|
||||
onClick={(ev) => ev.stopPropagation()}
|
||||
// maxHeight needed for proper overflow behavior in Safari
|
||||
@@ -84,9 +88,9 @@ const Modal: React.FC<Props> = ({
|
||||
column
|
||||
reverse
|
||||
>
|
||||
<SmallContent style={style} shadow>
|
||||
<DesktopContent style={style} shadow>
|
||||
<ErrorBoundary component="div">{children}</ErrorBoundary>
|
||||
</SmallContent>
|
||||
</DesktopContent>
|
||||
<Header>
|
||||
{title && <Text size="large">{title}</Text>}
|
||||
<NudeButton onClick={onRequestClose}>
|
||||
@@ -94,7 +98,7 @@ const Modal: React.FC<Props> = ({
|
||||
</NudeButton>
|
||||
</Header>
|
||||
</Centered>
|
||||
</Small>
|
||||
</Wrapper>
|
||||
)}
|
||||
</StyledContent>
|
||||
</Dialog.Portal>
|
||||
@@ -142,7 +146,7 @@ const Mobile = styled.div`
|
||||
outline: none;
|
||||
`;
|
||||
|
||||
const Content = styled(Scrollable)`
|
||||
const MobileContent = styled(Scrollable)`
|
||||
width: 100%;
|
||||
padding: 8vh 12px;
|
||||
|
||||
@@ -151,6 +155,10 @@ const Content = styled(Scrollable)`
|
||||
`};
|
||||
`;
|
||||
|
||||
const DesktopContent = styled(Scrollable)`
|
||||
padding: 8px 24px 24px;
|
||||
`;
|
||||
|
||||
const Centered = styled(Flex)`
|
||||
width: 640px;
|
||||
max-width: 100%;
|
||||
@@ -207,14 +215,17 @@ const Header = styled(Flex)`
|
||||
padding: 24px 24px 12px;
|
||||
`;
|
||||
|
||||
const Small = styled.div`
|
||||
const Wrapper = styled.div<{
|
||||
$width?: number | string;
|
||||
$height?: number | string;
|
||||
}>`
|
||||
animation: ${fadeAndScaleIn} 250ms ease;
|
||||
|
||||
margin: 25vh auto auto auto;
|
||||
width: 75vw;
|
||||
min-width: 350px;
|
||||
max-width: 450px;
|
||||
max-height: 65vh;
|
||||
max-width: ${(props) => props.$width || "450px"};
|
||||
max-height: ${(props) => props.$height || "70vh"};
|
||||
z-index: ${depths.modal};
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@@ -237,8 +248,4 @@ const Small = styled.div`
|
||||
}
|
||||
`;
|
||||
|
||||
const SmallContent = styled(Scrollable)`
|
||||
padding: 8px 24px 24px;
|
||||
`;
|
||||
|
||||
export default observer(Modal);
|
||||
|
||||
@@ -9,6 +9,8 @@ import breakpoint from "styled-components-breakpoint";
|
||||
import { s } from "@shared/styles";
|
||||
import Button, { Inner } from "~/components/Button";
|
||||
import Flex from "~/components/Flex";
|
||||
import Text from "~/components/Text";
|
||||
import { transparentize } from "polished";
|
||||
|
||||
export const SelectItem = forwardRef<
|
||||
HTMLDivElement,
|
||||
@@ -114,6 +116,10 @@ const ItemContainer = styled(Flex)`
|
||||
color: ${s("accentText")};
|
||||
fill: ${s("accentText")};
|
||||
}
|
||||
|
||||
${Text} {
|
||||
color: ${(props) => transparentize(0.5, props.theme.accentText)};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ function usePosition({
|
||||
offset: 0,
|
||||
visible: true,
|
||||
blockSelection: false,
|
||||
maxWidth: width,
|
||||
maxWidth: "100%",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,11 @@ import * as React from "react";
|
||||
import scrollIntoView from "scroll-into-view-if-needed";
|
||||
import styled from "styled-components";
|
||||
import { usePortalContext } from "~/components/Portal";
|
||||
import { MenuButton, MenuLabel } from "~/components/primitives/components/Menu";
|
||||
import {
|
||||
MenuButton,
|
||||
MenuIconWrapper,
|
||||
MenuLabel,
|
||||
} from "~/components/primitives/components/Menu";
|
||||
|
||||
export type Props = {
|
||||
/** Whether the item is selected */
|
||||
@@ -60,7 +64,7 @@ function SuggestionsMenuItem({
|
||||
onPointerMove={disabled ? undefined : onPointerMove}
|
||||
$active={selected}
|
||||
>
|
||||
{icon}
|
||||
<MenuIconWrapper>{icon}</MenuIconWrapper>
|
||||
<MenuLabel>
|
||||
{title}
|
||||
{subtitle && (
|
||||
|
||||
@@ -158,7 +158,7 @@ const useSettingsConfig = () => {
|
||||
path: settingsPath("templates"),
|
||||
component: Templates.Component,
|
||||
preload: Templates.preload,
|
||||
enabled: can.readTemplate,
|
||||
enabled: can.updateTemplate,
|
||||
group: t("Workspace"),
|
||||
icon: ShapesIcon,
|
||||
},
|
||||
|
||||
@@ -179,7 +179,7 @@ export default class Document extends ArchivableModel implements Searchable {
|
||||
/**
|
||||
* Parent document that this is a child of, if any.
|
||||
*/
|
||||
@Relation(() => Document, { onArchive: "cascade" })
|
||||
@Relation(() => Document, { onArchive: "cascade", onDelete: "cascade" })
|
||||
parentDocument?: Document;
|
||||
|
||||
@observable
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { differenceInMilliseconds } from "date-fns";
|
||||
import { action } from "mobx";
|
||||
import { runInAction } from "mobx";
|
||||
import { observer } from "mobx-react";
|
||||
import { DoneIcon } from "outline-icons";
|
||||
import { darken } from "polished";
|
||||
@@ -179,18 +179,18 @@ function CommentThreadItem({
|
||||
);
|
||||
}, []);
|
||||
|
||||
const handleSubmit = action(async (event: React.FormEvent) => {
|
||||
const handleSubmit = async (event: React.FormEvent) => {
|
||||
event.preventDefault();
|
||||
|
||||
try {
|
||||
handleSetReadOnly();
|
||||
comment.data = data;
|
||||
runInAction(() => (comment.data = data));
|
||||
await comment.save();
|
||||
} catch (_err) {
|
||||
setEditing();
|
||||
toast.error(t("Error updating comment"));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const handleCancel = () => {
|
||||
setData(comment.data);
|
||||
|
||||
@@ -58,7 +58,9 @@ function Invite({ onSubmit }: Props) {
|
||||
onSubmit();
|
||||
|
||||
if (response.length > 0) {
|
||||
toast.success(t("We sent out your invites!"));
|
||||
toast.success(
|
||||
t("{{ count }} invites sent", { count: response.length })
|
||||
);
|
||||
} else {
|
||||
toast.message(t("Those email addresses are already invited"));
|
||||
}
|
||||
@@ -223,6 +225,8 @@ function Invite({ onSubmit }: Props) {
|
||||
labelHidden={index !== 0}
|
||||
onKeyDown={handleKeyDown}
|
||||
onChange={(ev) => handleChange(ev, index)}
|
||||
autoComplete="off"
|
||||
data-1p-ignore
|
||||
value={invite.name}
|
||||
required={!!invite.email}
|
||||
flex
|
||||
|
||||
@@ -247,9 +247,9 @@ export default class CollectionsStore extends Store<Collection> {
|
||||
await this.rootStore.documents.fetchRecentlyViewed();
|
||||
}
|
||||
|
||||
export = (format: FileOperationFormat, includeAttachments: boolean) =>
|
||||
client.post("/collections.export_all", {
|
||||
format,
|
||||
includeAttachments,
|
||||
});
|
||||
export = (options: {
|
||||
format: FileOperationFormat;
|
||||
includeAttachments: boolean;
|
||||
includePrivate: boolean;
|
||||
}) => client.post("/collections.export_all", options);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ type DialogDefinition = {
|
||||
content: React.ReactNode;
|
||||
isOpen: boolean;
|
||||
style?: React.CSSProperties;
|
||||
width?: number | string;
|
||||
height?: number | string;
|
||||
onClose?: () => void;
|
||||
};
|
||||
|
||||
@@ -48,14 +50,12 @@ export default class DialogsStore {
|
||||
content,
|
||||
replace,
|
||||
style,
|
||||
width,
|
||||
height,
|
||||
onClose,
|
||||
}: {
|
||||
}: Omit<DialogDefinition, "isOpen"> & {
|
||||
id?: string;
|
||||
title: string;
|
||||
content: React.ReactNode;
|
||||
style?: React.CSSProperties;
|
||||
replace?: boolean;
|
||||
onClose?: () => void;
|
||||
}) => {
|
||||
setTimeout(
|
||||
action(() => {
|
||||
@@ -69,6 +69,8 @@ export default class DialogsStore {
|
||||
title,
|
||||
content,
|
||||
style,
|
||||
width,
|
||||
height,
|
||||
isOpen: true,
|
||||
onClose,
|
||||
});
|
||||
|
||||
@@ -22,6 +22,7 @@ import { Searchable } from "~/models/interfaces/Searchable";
|
||||
import type { PaginationParams, PartialExcept, Properties } from "~/types";
|
||||
import { client } from "~/utils/ApiClient";
|
||||
import { AuthorizationError, NotFoundError } from "~/utils/errors";
|
||||
import ParanoidModel from "~/models/base/ParanoidModel";
|
||||
|
||||
export enum RPCAction {
|
||||
Info = "info",
|
||||
@@ -212,7 +213,13 @@ export default abstract class Store<T extends Model> {
|
||||
}
|
||||
|
||||
LifecycleManager.executeHooks(model.constructor, "beforeRemove", model);
|
||||
this.data.delete(id);
|
||||
|
||||
if (model instanceof ParanoidModel) {
|
||||
model.deletedAt = new Date().toISOString();
|
||||
} else {
|
||||
this.data.delete(id);
|
||||
}
|
||||
|
||||
LifecycleManager.executeHooks(model.constructor, "afterRemove", model);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,11 +51,11 @@
|
||||
"> 0.25%, not dead"
|
||||
],
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "3.901.0",
|
||||
"@aws-sdk/lib-storage": "3.903.0",
|
||||
"@aws-sdk/s3-presigned-post": "3.901.0",
|
||||
"@aws-sdk/s3-request-presigner": "3.901.0",
|
||||
"@aws-sdk/signature-v4-crt": "^3.901.0",
|
||||
"@aws-sdk/client-s3": "3.908.0",
|
||||
"@aws-sdk/lib-storage": "3.908.0",
|
||||
"@aws-sdk/s3-presigned-post": "3.908.0",
|
||||
"@aws-sdk/s3-request-presigner": "3.908.0",
|
||||
"@aws-sdk/signature-v4-crt": "^3.908.0",
|
||||
"@babel/core": "^7.28.4",
|
||||
"@babel/plugin-proposal-decorators": "^7.28.0",
|
||||
"@babel/plugin-transform-class-properties": "^7.27.1",
|
||||
@@ -133,14 +133,14 @@
|
||||
"diff": "^5.2.0",
|
||||
"email-providers": "^1.14.0",
|
||||
"emoji-mart": "^5.6.0",
|
||||
"emoji-regex": "^10.5.0",
|
||||
"emoji-regex": "^10.6.0",
|
||||
"es6-error": "^4.1.1",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fetch-retry": "^5.0.6",
|
||||
"form-data": "^4.0.4",
|
||||
"fractional-index": "^1.0.0",
|
||||
"framer-motion": "^4.1.17",
|
||||
"fs-extra": "^11.3.1",
|
||||
"fs-extra": "^11.3.2",
|
||||
"fuzzy-search": "^3.2.1",
|
||||
"glob": "^8.1.0",
|
||||
"http-errors": "2.0.0",
|
||||
@@ -312,7 +312,7 @@
|
||||
"@types/markdown-it-emoji": "^3.0.1",
|
||||
"@types/mime-types": "^3.0.1",
|
||||
"@types/natural-sort": "^0.0.24",
|
||||
"@types/node": "20.17.30",
|
||||
"@types/node": "20.19.21",
|
||||
"@types/node-fetch": "^2.6.9",
|
||||
"@types/nodemailer": "^6.4.17",
|
||||
"@types/passport-oauth2": "^1.8.0",
|
||||
@@ -365,7 +365,7 @@
|
||||
"prettier": "^3.6.2",
|
||||
"react-refresh": "^0.17.0",
|
||||
"rimraf": "^2.5.4",
|
||||
"rollup-plugin-webpack-stats": "2.1.3",
|
||||
"rollup-plugin-webpack-stats": "2.1.6",
|
||||
"terser": "^5.43.1",
|
||||
"typescript": "^5.9.2",
|
||||
"yarn-deduplicate": "^6.0.2"
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 977 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 965 B |
|
Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 638 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 619 B |
|
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 239 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 828 B After Width: | Height: | Size: 764 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1013 B |
|
After Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 988 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 513 B |
|
Before Width: | Height: | Size: 1010 B After Width: | Height: | Size: 803 B |
@@ -94,8 +94,8 @@ async function accountProvisioner(
|
||||
|
||||
try {
|
||||
result = await teamProvisioner(ctx, {
|
||||
name: "Wiki",
|
||||
...teamParams,
|
||||
name: teamParams.name || "Wiki",
|
||||
authenticationProvider: authenticationProviderParams,
|
||||
});
|
||||
} catch (err) {
|
||||
|
||||
@@ -15,6 +15,7 @@ type Props = {
|
||||
user: User;
|
||||
format?: FileOperationFormat;
|
||||
includeAttachments?: boolean;
|
||||
includePrivate?: boolean;
|
||||
ctx: APIContext;
|
||||
};
|
||||
|
||||
@@ -34,6 +35,7 @@ async function collectionExporter({
|
||||
user,
|
||||
format = FileOperationFormat.MarkdownZip,
|
||||
includeAttachments = true,
|
||||
includePrivate = true,
|
||||
ctx,
|
||||
}: Props) {
|
||||
const collectionId = collection?.id;
|
||||
@@ -52,6 +54,7 @@ async function collectionExporter({
|
||||
collectionId,
|
||||
options: {
|
||||
includeAttachments,
|
||||
includePrivate,
|
||||
},
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import uniqBy from "lodash/uniqBy";
|
||||
import partition from "lodash/partition";
|
||||
import { UserRole } from "@shared/types";
|
||||
import InviteEmail from "@server/emails/templates/InviteEmail";
|
||||
import env from "@server/env";
|
||||
@@ -24,6 +25,7 @@ export default async function userInviter(
|
||||
{ invites }: Props
|
||||
): Promise<{
|
||||
sent: Invite[];
|
||||
unsent: Invite[];
|
||||
users: User[];
|
||||
}> {
|
||||
const { user } = ctx.state.auth;
|
||||
@@ -61,8 +63,9 @@ export default async function userInviter(
|
||||
const existingEmails = existingUsers.map(
|
||||
(existingUser) => existingUser.email
|
||||
);
|
||||
const filteredInvites = normalizedInvites.filter(
|
||||
(invite) => !existingEmails.includes(invite.email)
|
||||
const [existingInvites, filteredInvites] = partition(
|
||||
normalizedInvites,
|
||||
(invite) => existingEmails.includes(invite.email)
|
||||
);
|
||||
const users = [];
|
||||
|
||||
@@ -112,6 +115,7 @@ export default async function userInviter(
|
||||
|
||||
return {
|
||||
sent: filteredInvites,
|
||||
unsent: existingInvites,
|
||||
users,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -215,13 +215,17 @@ export class Mailer {
|
||||
name: env.SMTP_NAME,
|
||||
host: env.SMTP_HOST,
|
||||
port: env.SMTP_PORT,
|
||||
// If not explicitly configured we default to using TLS in production
|
||||
secure: env.SMTP_SECURE ?? env.isProduction,
|
||||
// Allow connections with no authentication if no username is provided
|
||||
auth: env.SMTP_USERNAME
|
||||
? {
|
||||
user: env.SMTP_USERNAME,
|
||||
pass: env.SMTP_PASSWORD,
|
||||
}
|
||||
: undefined,
|
||||
// Disable STARTTLS entirely when secure is set to false
|
||||
ignoreTLS: !env.SMTP_SECURE,
|
||||
tls: env.SMTP_SECURE
|
||||
? env.SMTP_TLS_CIPHERS
|
||||
? {
|
||||
|
||||
@@ -28,6 +28,7 @@ import Fix from "./decorators/Fix";
|
||||
|
||||
export type FileOperationOptions = {
|
||||
includeAttachments?: boolean;
|
||||
includePrivate?: boolean;
|
||||
permission?: CollectionPermission | null;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import fileOperationPresenter from "@server/presenters/fileOperation";
|
||||
import FileStorage from "@server/storage/files";
|
||||
import BaseTask, { TaskPriority } from "./BaseTask";
|
||||
import { Op } from "sequelize";
|
||||
import { WhereOptions } from "sequelize";
|
||||
|
||||
type Props = {
|
||||
fileOperationId: string;
|
||||
@@ -41,16 +42,26 @@ export default abstract class ExportTask extends BaseTask<Props> {
|
||||
User.findByPk(fileOperation.userId, { rejectOnEmpty: true }),
|
||||
]);
|
||||
|
||||
const where = fileOperation.collectionId
|
||||
const where: WhereOptions<Collection> = fileOperation.collectionId
|
||||
? {
|
||||
teamId: user.teamId,
|
||||
id: fileOperation.collectionId,
|
||||
permission: fileOperation.options?.includePrivate
|
||||
? undefined
|
||||
: {
|
||||
[Op.ne]: null,
|
||||
},
|
||||
}
|
||||
: {
|
||||
teamId: user.teamId,
|
||||
archivedAt: {
|
||||
[Op.eq]: null,
|
||||
},
|
||||
permission: fileOperation.options?.includePrivate
|
||||
? undefined
|
||||
: {
|
||||
[Op.ne]: null,
|
||||
},
|
||||
};
|
||||
|
||||
const collections = await Collection.scope("withDocumentStructure").findAll(
|
||||
|
||||
@@ -533,7 +533,7 @@ router.post(
|
||||
validate(T.CollectionsExportAllSchema),
|
||||
transaction(),
|
||||
async (ctx: APIContext<T.CollectionsExportAllReq>) => {
|
||||
const { format, includeAttachments } = ctx.input.body;
|
||||
const { format, includeAttachments, includePrivate } = ctx.input.body;
|
||||
const { user } = ctx.state.auth;
|
||||
const { transaction } = ctx.state;
|
||||
const team = await Team.findByPk(user.teamId, { transaction });
|
||||
@@ -544,6 +544,7 @@ router.post(
|
||||
team,
|
||||
format,
|
||||
includeAttachments,
|
||||
includePrivate,
|
||||
ctx,
|
||||
});
|
||||
|
||||
|
||||
@@ -154,6 +154,7 @@ export const CollectionsExportAllSchema = BaseSchema.extend({
|
||||
.nativeEnum(FileOperationFormat)
|
||||
.default(FileOperationFormat.MarkdownZip),
|
||||
includeAttachments: z.boolean().default(true),
|
||||
includePrivate: z.boolean().default(true),
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
@@ -541,6 +541,7 @@ router.post(
|
||||
ctx.body = {
|
||||
data: {
|
||||
sent: response.sent,
|
||||
unsent: response.unsent,
|
||||
users: response.users.map((user) =>
|
||||
presentUser(user, { includeEmail: !!can(user, "readEmail", user) })
|
||||
),
|
||||
|
||||
@@ -16,9 +16,15 @@ if (input.length === 0) {
|
||||
const root = path.resolve(__dirname, "..", "..");
|
||||
const opts = {
|
||||
cwd: root,
|
||||
stdio: "inherit",
|
||||
};
|
||||
|
||||
execSync(`npm version ${input.join(" ")} --no-git-tag-version`, opts);
|
||||
try {
|
||||
execSync(`npm version ${input.join(" ")} --no-git-tag-version`, opts);
|
||||
} catch (err) {
|
||||
console.log("Error updating version:", err.message);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const package = require(path.resolve(root, "package.json"));
|
||||
|
||||
@@ -42,8 +48,8 @@ fs.writeFileSync(path.resolve(root, "LICENSE"), newLicense);
|
||||
|
||||
execSync(`git add package.json`, opts);
|
||||
execSync(`git add LICENSE`, opts);
|
||||
execSync(`git commit -m "v${newVersion}"`, opts);
|
||||
execSync(`git tag v${newVersion}`, opts);
|
||||
execSync(`git commit -m "v${newVersion}" --no-verify`, opts);
|
||||
execSync(`git tag v${newVersion} -m v${newVersion}`, opts);
|
||||
execSync(`git push origin v${newVersion}`, opts);
|
||||
execSync(`git push origin main`, opts);
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { useAgent as useFilteringAgent } from "request-filtering-agent";
|
||||
import env from "@server/env";
|
||||
import Logger from "@server/logging/Logger";
|
||||
import { capitalize, defaults } from "lodash";
|
||||
import { InternalError } from "@server/errors";
|
||||
|
||||
interface UrlWithTunnel extends URL {
|
||||
tunnelMethod?: string;
|
||||
@@ -56,25 +57,35 @@ export default async function fetch(
|
||||
Logger.silly("http", `Network request to ${url}`, init);
|
||||
|
||||
const { allowPrivateIPAddress, ...rest } = init || {};
|
||||
const response = await nodeFetch(url, {
|
||||
...rest,
|
||||
headers: {
|
||||
"User-Agent": outlineUserAgent,
|
||||
...rest?.headers,
|
||||
},
|
||||
agent: buildAgent(url, init),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
Logger.silly("http", `Network request failed`, {
|
||||
url,
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
headers: response.headers.raw(),
|
||||
try {
|
||||
const response = await nodeFetch(url, {
|
||||
...rest,
|
||||
headers: {
|
||||
"User-Agent": outlineUserAgent,
|
||||
...rest?.headers,
|
||||
},
|
||||
agent: buildAgent(url, init),
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
if (!response.ok) {
|
||||
Logger.silly("http", `Network request failed`, {
|
||||
url,
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
headers: response.headers.raw(),
|
||||
});
|
||||
}
|
||||
|
||||
return response;
|
||||
} catch (err) {
|
||||
if (!env.isCloudHosted && err.message?.startsWith("DNS lookup")) {
|
||||
throw InternalError(
|
||||
`${err.message}\n\nTo allow this request, add the IP address to the ALLOWED_PRIVATE_IP_ADDRESSES environment variable.`
|
||||
);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,13 +22,13 @@ import useStores from "../../hooks/useStores";
|
||||
import theme from "../../styles/theme";
|
||||
import {
|
||||
IntegrationService,
|
||||
UnfurlResourceType,
|
||||
type JSONValue,
|
||||
type UnfurlResourceType,
|
||||
type UnfurlResponse,
|
||||
} from "../../types";
|
||||
import { cn } from "../styles/utils";
|
||||
import { ComponentProps } from "../types";
|
||||
import { sanitizeUrl } from "@shared/utils/urls";
|
||||
import { toDisplayUrl, cdnPath } from "../../utils/urls";
|
||||
|
||||
type Attrs = {
|
||||
className: string;
|
||||
@@ -144,10 +144,15 @@ type IssuePrProps = ComponentProps & {
|
||||
) => void;
|
||||
};
|
||||
|
||||
export const MentionURL = (props: ComponentProps) => {
|
||||
type IssueUrlProps = ComponentProps & {
|
||||
onChangeUnfurl: (unfurl: UnfurlResponse[UnfurlResourceType.URL]) => void;
|
||||
};
|
||||
|
||||
export const MentionURL = (props: IssueUrlProps) => {
|
||||
const { unfurls } = useStores();
|
||||
const isMounted = useIsMounted();
|
||||
const [loaded, setLoaded] = React.useState(false);
|
||||
const onChangeUnfurl = React.useRef(props.onChangeUnfurl).current; // stable reference to callback function.
|
||||
|
||||
const { isSelected, node } = props;
|
||||
const {
|
||||
@@ -156,17 +161,39 @@ export const MentionURL = (props: ComponentProps) => {
|
||||
...attrs
|
||||
} = getAttributesFromNode(node);
|
||||
|
||||
const url = String(attrs.href);
|
||||
const unfurl = unfurls.get(attrs.href)?.data ?? unfurlAttr;
|
||||
|
||||
React.useEffect(() => {
|
||||
const fetchUnfurl = async () => {
|
||||
await unfurls.fetchUnfurl({ url: attrs.href });
|
||||
try {
|
||||
const unfurlModel = await unfurls.fetchUnfurl({ url });
|
||||
|
||||
if (!isMounted()) {
|
||||
return;
|
||||
if (!isMounted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (unfurlModel) {
|
||||
onChangeUnfurl(
|
||||
unfurlModel.data satisfies UnfurlResponse[UnfurlResourceType.URL]
|
||||
);
|
||||
} else {
|
||||
// If we didn't get a result back, we still want to add a basic unfurl
|
||||
// to avoid refetching again in future. This will just show the URL
|
||||
// with a generic link icon.
|
||||
unfurls.add({
|
||||
id: url,
|
||||
type: UnfurlResourceType.URL,
|
||||
fetchedAt: new Date().toISOString(),
|
||||
data: {
|
||||
title: toDisplayUrl(url),
|
||||
faviconUrl: cdnPath("/images/link.png"),
|
||||
},
|
||||
});
|
||||
}
|
||||
} finally {
|
||||
setLoaded(true);
|
||||
}
|
||||
|
||||
setLoaded(true);
|
||||
};
|
||||
|
||||
void fetchUnfurl();
|
||||
@@ -191,9 +218,7 @@ export const MentionURL = (props: ComponentProps) => {
|
||||
rel="noopener noreferrer nofollow"
|
||||
>
|
||||
<Flex align="center" gap={6}>
|
||||
{unfurl.faviconUrl ? (
|
||||
<Logo src={sanitizeUrl(unfurl.faviconUrl)} alt="" />
|
||||
) : null}
|
||||
{unfurl.faviconUrl ? <Logo src={unfurl.faviconUrl} alt="" /> : null}
|
||||
<Text>
|
||||
<Backticks content={unfurl.title} />
|
||||
</Text>
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import * as React from "react";
|
||||
import Frame from "../components/Frame";
|
||||
import Image from "../components/Img";
|
||||
import { EmbedProps as Props } from ".";
|
||||
import { useTheme } from "styled-components";
|
||||
|
||||
function PlantUmlDiagrams({ matches, ...props }: Props) {
|
||||
const theme = useTheme();
|
||||
const mode = theme.isDark ? "dsvg" : "svg";
|
||||
const title = props.attrs.href.split("/uml/")[1];
|
||||
const finalUrl = `https://www.plantuml.com/plantuml/${mode}/${title}`;
|
||||
|
||||
return (
|
||||
<Frame
|
||||
{...props}
|
||||
src={finalUrl}
|
||||
icon={
|
||||
<Image
|
||||
src="/images/plantuml.png"
|
||||
alt="PlantUml"
|
||||
width={16}
|
||||
height={16}
|
||||
/>
|
||||
}
|
||||
canonicalUrl={props.attrs.href}
|
||||
border
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default PlantUmlDiagrams;
|
||||
@@ -20,6 +20,7 @@ import Spotify from "./Spotify";
|
||||
import Trello from "./Trello";
|
||||
import Vimeo from "./Vimeo";
|
||||
import YouTube from "./YouTube";
|
||||
import PlantUmlDiagrams from "./PlantUml";
|
||||
|
||||
export type EmbedProps = {
|
||||
isSelected: boolean;
|
||||
@@ -677,6 +678,15 @@ const embeds: EmbedDescriptor[] = [
|
||||
icon: <Img src="/images/youtube.png" alt="YouTube" />,
|
||||
component: YouTube,
|
||||
}),
|
||||
new EmbedDescriptor({
|
||||
title: "Plant UML",
|
||||
keywords: "plant plantuml uml",
|
||||
regexMatch: [
|
||||
/(?:https?:\/\/)?(?:www\.)?editor\.plantuml\.com\/uml\/([a-zA-Z0-9\-_]+)([\&\?].*)?$/i,
|
||||
],
|
||||
icon: <Img src="/images/plantuml.png" alt="PlantUml" />,
|
||||
component: PlantUmlDiagrams,
|
||||
}),
|
||||
/* The generic iframe embed should always be the last one */
|
||||
new EmbedDescriptor({
|
||||
title: "Embed",
|
||||
|
||||
@@ -145,7 +145,12 @@ export default class Mention extends Node {
|
||||
/>
|
||||
);
|
||||
case MentionType.URL:
|
||||
return <MentionURL {...props} />;
|
||||
return (
|
||||
<MentionURL
|
||||
{...props}
|
||||
onChangeUnfurl={this.handleChangeUnfurl(props)}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
@@ -323,7 +328,8 @@ export default class Mention extends Node {
|
||||
|
||||
const label =
|
||||
unfurl.type === UnfurlResourceType.Issue ||
|
||||
unfurl.type === UnfurlResourceType.PR
|
||||
unfurl.type === UnfurlResourceType.PR ||
|
||||
unfurl.type === UnfurlResourceType.URL
|
||||
? unfurl.title
|
||||
: undefined;
|
||||
|
||||
|
||||
@@ -285,6 +285,7 @@
|
||||
"You will receive an email when it's complete.": "You will receive an email when it's complete.",
|
||||
"Include attachments": "Include attachments",
|
||||
"Including uploaded images and files in the exported data": "Including uploaded images and files in the exported data",
|
||||
"Include private collections": "Include private collections",
|
||||
"{{count}} more user": "{{count}} more user",
|
||||
"{{count}} more user_plural": "{{count}} more users",
|
||||
"Filter options": "Filter options",
|
||||
@@ -778,7 +779,8 @@
|
||||
"Weird, this shouldn’t ever be empty": "Weird, this shouldn’t ever be empty",
|
||||
"You haven’t created any documents yet": "You haven’t created any documents yet",
|
||||
"Documents you’ve recently viewed will be here for easy access": "Documents you’ve recently viewed will be here for easy access",
|
||||
"We sent out your invites!": "We sent out your invites!",
|
||||
"{{ count }} invites sent": "{{ count }} invites sent",
|
||||
"{{ count }} invites sent_plural": "{{ count }} invites sent",
|
||||
"Those email addresses are already invited": "Those email addresses are already invited",
|
||||
"Sorry, you can only send {{MAX_INVITES}} invites at a time": "Sorry, you can only send {{MAX_INVITES}} invites at a time",
|
||||
"Invited {{roleName}} will receive access to": "Invited {{roleName}} will receive access to",
|
||||
|
||||
@@ -230,3 +230,18 @@ export function urlRegex(url: string | null | undefined): RegExp | undefined {
|
||||
export function getUrls(text: string) {
|
||||
return Array.from(text.match(/(?:https?):\/\/[^\s]+/gi) || []);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a url to a display friendly format, removing the protocol and trailing slash.
|
||||
*
|
||||
* @param url The url to convert.
|
||||
* @returns The display friendly url.
|
||||
*/
|
||||
export function toDisplayUrl(url: string) {
|
||||
try {
|
||||
const parsed = new URL(url);
|
||||
return parsed.host + (parsed.pathname === "/" ? "" : parsed.pathname);
|
||||
} catch {
|
||||
return url;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,171 +92,171 @@
|
||||
"@smithy/util-utf8" "^2.0.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/client-s3@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz#42e9faf3b9943c56e86ade41a36950dfb231d095"
|
||||
integrity sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA==
|
||||
"@aws-sdk/client-s3@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.908.0.tgz#99aaf076f95dadc11419a2558749b0159e5d9e4a"
|
||||
integrity sha512-c/89iG3of8UEiWbRK014DoHLy8PLLTJtM9IvYLPsvrf83kpV2P/K9WrdbjW4h6e5qt9XPgfNTZ8U607mt7pdmA==
|
||||
dependencies:
|
||||
"@aws-crypto/sha1-browser" "5.2.0"
|
||||
"@aws-crypto/sha256-browser" "5.2.0"
|
||||
"@aws-crypto/sha256-js" "5.2.0"
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/credential-provider-node" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/credential-provider-node" "3.908.0"
|
||||
"@aws-sdk/middleware-bucket-endpoint" "3.901.0"
|
||||
"@aws-sdk/middleware-expect-continue" "3.901.0"
|
||||
"@aws-sdk/middleware-flexible-checksums" "3.901.0"
|
||||
"@aws-sdk/middleware-flexible-checksums" "3.908.0"
|
||||
"@aws-sdk/middleware-host-header" "3.901.0"
|
||||
"@aws-sdk/middleware-location-constraint" "3.901.0"
|
||||
"@aws-sdk/middleware-logger" "3.901.0"
|
||||
"@aws-sdk/middleware-recursion-detection" "3.901.0"
|
||||
"@aws-sdk/middleware-sdk-s3" "3.901.0"
|
||||
"@aws-sdk/middleware-sdk-s3" "3.908.0"
|
||||
"@aws-sdk/middleware-ssec" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.908.0"
|
||||
"@aws-sdk/region-config-resolver" "3.901.0"
|
||||
"@aws-sdk/signature-v4-multi-region" "3.901.0"
|
||||
"@aws-sdk/signature-v4-multi-region" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-endpoints" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.907.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.908.0"
|
||||
"@aws-sdk/xml-builder" "3.901.0"
|
||||
"@smithy/config-resolver" "^4.3.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/eventstream-serde-browser" "^4.2.0"
|
||||
"@smithy/eventstream-serde-config-resolver" "^4.3.0"
|
||||
"@smithy/eventstream-serde-node" "^4.2.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.0"
|
||||
"@smithy/hash-blob-browser" "^4.2.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.1"
|
||||
"@smithy/hash-blob-browser" "^4.2.1"
|
||||
"@smithy/hash-node" "^4.2.0"
|
||||
"@smithy/hash-stream-node" "^4.2.0"
|
||||
"@smithy/invalid-dependency" "^4.2.0"
|
||||
"@smithy/md5-js" "^4.2.0"
|
||||
"@smithy/middleware-content-length" "^4.2.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/middleware-retry" "^4.4.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/middleware-retry" "^4.4.1"
|
||||
"@smithy/middleware-serde" "^4.2.0"
|
||||
"@smithy/middleware-stack" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/node-http-handler" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/url-parser" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-body-length-browser" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-browser" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.1"
|
||||
"@smithy/util-defaults-mode-browser" "^4.3.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.1"
|
||||
"@smithy/util-endpoints" "^3.2.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-retry" "^4.2.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
"@smithy/util-waiter" "^4.2.0"
|
||||
"@smithy/uuid" "^1.1.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/client-sso@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz#bad08910097ffa0458c2fe662dd4f8439c6e7eeb"
|
||||
integrity sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg==
|
||||
"@aws-sdk/client-sso@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.908.0.tgz#08db2b04caaeee7b3453945e18b8ff5811219ec5"
|
||||
integrity sha512-PseFMWvtac+Q+zaY9DMISE+2+glNh0ROJ1yR4gMzeafNHSwkdYu4qcgxLWIOnIodGydBv/tQ6nzHPzExXnUUgw==
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser" "5.2.0"
|
||||
"@aws-crypto/sha256-js" "5.2.0"
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/middleware-host-header" "3.901.0"
|
||||
"@aws-sdk/middleware-logger" "3.901.0"
|
||||
"@aws-sdk/middleware-recursion-detection" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.908.0"
|
||||
"@aws-sdk/region-config-resolver" "3.901.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-endpoints" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.907.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.908.0"
|
||||
"@smithy/config-resolver" "^4.3.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.1"
|
||||
"@smithy/hash-node" "^4.2.0"
|
||||
"@smithy/invalid-dependency" "^4.2.0"
|
||||
"@smithy/middleware-content-length" "^4.2.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/middleware-retry" "^4.4.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/middleware-retry" "^4.4.1"
|
||||
"@smithy/middleware-serde" "^4.2.0"
|
||||
"@smithy/middleware-stack" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/node-http-handler" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/url-parser" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-body-length-browser" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-browser" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.1"
|
||||
"@smithy/util-defaults-mode-browser" "^4.3.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.1"
|
||||
"@smithy/util-endpoints" "^3.2.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-retry" "^4.2.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/core@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.901.0.tgz#054341ff9ddede525a7bc3881872a97598fe757f"
|
||||
integrity sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw==
|
||||
"@aws-sdk/core@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.908.0.tgz#efd691b34ea3ba413f82ec27ce5fa9db4f9d386d"
|
||||
integrity sha512-okl6FC2cQT1Oidvmnmvyp/IEvqENBagKO0ww4YV5UtBkf0VlhAymCWkZqhovtklsqgq0otag2VRPAgnrMt6nVQ==
|
||||
dependencies:
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/xml-builder" "3.901.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/signature-v4" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-env@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz#d3192a091a94931b2fbc2ef82a278d8daea06f43"
|
||||
integrity sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA==
|
||||
"@aws-sdk/credential-provider-env@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.908.0.tgz#9767fcafbe643f0f5b5d4b6283c9dddb5fdee708"
|
||||
integrity sha512-FK2YuxoI5CxUflPOIMbVAwDbi6Xvu+2sXopXLmrHc2PfI39M3vmjEoQwYCP8WuQSRb+TbAP3xAkxHjFSBFR35w==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-http@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz#40bbaa9e62431741d8ea7ed31c8e10de75a9ecde"
|
||||
integrity sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ==
|
||||
"@aws-sdk/credential-provider-http@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.908.0.tgz#9500e348eb64cecfcaa6c10ce68785aecf3ee612"
|
||||
integrity sha512-eLbz0geVW9EykujQNnYfR35Of8MreI6pau5K6XDFDUSWO9GF8wqH7CQwbXpXHBlCTHtq4QSLxzorD8U5CROhUw==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.1"
|
||||
"@smithy/node-http-handler" "^4.3.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-ini@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz#83ada385ae94fed0a362f3be4689cf0a0284847d"
|
||||
integrity sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw==
|
||||
"@aws-sdk/credential-provider-ini@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.908.0.tgz#6f2567326245ea57e37cfb0bf30b7526c13a3965"
|
||||
integrity sha512-7Cgnv5wabgFtsgr+Uc/76EfPNGyxmbG8aICn3g3D3iJlcO4uuOZI8a77i0afoDdchZrTC6TG6UusS/NAW6zEoQ==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/credential-provider-env" "3.901.0"
|
||||
"@aws-sdk/credential-provider-http" "3.901.0"
|
||||
"@aws-sdk/credential-provider-process" "3.901.0"
|
||||
"@aws-sdk/credential-provider-sso" "3.901.0"
|
||||
"@aws-sdk/credential-provider-web-identity" "3.901.0"
|
||||
"@aws-sdk/nested-clients" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/credential-provider-env" "3.908.0"
|
||||
"@aws-sdk/credential-provider-http" "3.908.0"
|
||||
"@aws-sdk/credential-provider-process" "3.908.0"
|
||||
"@aws-sdk/credential-provider-sso" "3.908.0"
|
||||
"@aws-sdk/credential-provider-web-identity" "3.908.0"
|
||||
"@aws-sdk/nested-clients" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/credential-provider-imds" "^4.2.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
@@ -264,17 +264,17 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-node@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz#b48ddc78998e6a96ad14ecec22d81714c59ff6d1"
|
||||
integrity sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ==
|
||||
"@aws-sdk/credential-provider-node@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.908.0.tgz#942c686e105182b5c59fad92f65b1fdf246f347a"
|
||||
integrity sha512-8OKbykpGw5bdfF/pLTf8YfUi1Kl8o1CTjBqWQTsLOkE3Ho3hsp1eQx8Cz4ttrpv0919kb+lox62DgmAOEmTr1w==
|
||||
dependencies:
|
||||
"@aws-sdk/credential-provider-env" "3.901.0"
|
||||
"@aws-sdk/credential-provider-http" "3.901.0"
|
||||
"@aws-sdk/credential-provider-ini" "3.901.0"
|
||||
"@aws-sdk/credential-provider-process" "3.901.0"
|
||||
"@aws-sdk/credential-provider-sso" "3.901.0"
|
||||
"@aws-sdk/credential-provider-web-identity" "3.901.0"
|
||||
"@aws-sdk/credential-provider-env" "3.908.0"
|
||||
"@aws-sdk/credential-provider-http" "3.908.0"
|
||||
"@aws-sdk/credential-provider-ini" "3.908.0"
|
||||
"@aws-sdk/credential-provider-process" "3.908.0"
|
||||
"@aws-sdk/credential-provider-sso" "3.908.0"
|
||||
"@aws-sdk/credential-provider-web-identity" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/credential-provider-imds" "^4.2.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
@@ -282,62 +282,62 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-process@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz#0e388fe22f357adb9c07b5f4a055eff6ba99dcff"
|
||||
integrity sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A==
|
||||
"@aws-sdk/credential-provider-process@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.908.0.tgz#b9bf7b2780a2c378d2983c3a53c2bf68de4427e5"
|
||||
integrity sha512-sWnbkGjDPBi6sODUzrAh5BCDpnPw0wpK8UC/hWI13Q8KGfyatAmCBfr+9OeO3+xBHa8N5AskMncr7C4qS846yQ==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/shared-ini-file-loader" "^4.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-sso@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz#b60d8619edeb6b45c79a3f7cc0392a899de44886"
|
||||
integrity sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw==
|
||||
"@aws-sdk/credential-provider-sso@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.908.0.tgz#2c21de6f6974aff4eee7464056547ae0cf8168c5"
|
||||
integrity sha512-WV/aOzuS6ZZhrkPty6TJ3ZG24iS8NXP0m3GuTVuZ5tKi9Guss31/PJ1CrKPRCYGm15CsIjf+mrUxVnNYv9ap5g==
|
||||
dependencies:
|
||||
"@aws-sdk/client-sso" "3.901.0"
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/token-providers" "3.901.0"
|
||||
"@aws-sdk/client-sso" "3.908.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/token-providers" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/shared-ini-file-loader" "^4.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/credential-provider-web-identity@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz#512ad0d35e59bc669b41e18479e6b92d62a2d42a"
|
||||
integrity sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA==
|
||||
"@aws-sdk/credential-provider-web-identity@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.908.0.tgz#5ad86a4cf5fd650b60eed83d0575de4666c554b7"
|
||||
integrity sha512-9xWrFn6nWlF5KlV4XYW+7E6F33S3wUUEGRZ/+pgDhkIZd527ycT2nPG2dZ3fWUZMlRmzijP20QIJDqEbbGWe1Q==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/nested-clients" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/nested-clients" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/shared-ini-file-loader" "^4.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/crt-loader@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/crt-loader/-/crt-loader-3.901.0.tgz#2d888906634194ccd8552db9267bcfb3b56a0697"
|
||||
integrity sha512-Ka8MapaOJx5fdAjUTOJNgGeHdExUq7NbCUwlploddjhA5z1jO97E2Kk1jLBy50alSaodQKB2Ozj3KPwHaMk87A==
|
||||
"@aws-sdk/crt-loader@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/crt-loader/-/crt-loader-3.908.0.tgz#2b7c4eaa2af1c41dd6bdb28c321e2f31ca966d67"
|
||||
integrity sha512-uVlQB6rySkTKFclGu6QXMaWm/zbMYdrh9kziPVd0OZ6WNRV6NdyFNgldc1V5NCSrLscWye3vdDI5PPR4gyX/dw==
|
||||
dependencies:
|
||||
"@aws-sdk/util-user-agent-node" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.908.0"
|
||||
aws-crt "^1.24.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/lib-storage@3.903.0":
|
||||
version "3.903.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.903.0.tgz#b5d64d3c916389fd46948afd84829652f307af28"
|
||||
integrity sha512-/CFhz/QtPSI9CVAdlW6JrfMyPjnE38a8pzTi8CMCWXu51c1NqzcGXo80LZUwzWkcWk5ZqPWRYzrw43TQ8ia78w==
|
||||
"@aws-sdk/lib-storage@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.908.0.tgz#087f56b39c4e9ef11f12940ccf424c0180dc85bf"
|
||||
integrity sha512-tWYvGPAImOHSGYyau5rrVQA3OS0MV8ZCgf5ywtRIAmMEV4CSctDBP8WR2FrO7shAPKMRkjgdul5f0pZAjOYd2Q==
|
||||
dependencies:
|
||||
"@smithy/abort-controller" "^4.2.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
buffer "5.6.0"
|
||||
events "3.3.0"
|
||||
stream-browserify "3.0.0"
|
||||
@@ -366,22 +366,22 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/middleware-flexible-checksums@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz#373449d1609c9af810a824b395633ce6d1fc03f1"
|
||||
integrity sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA==
|
||||
"@aws-sdk/middleware-flexible-checksums@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.908.0.tgz#ab406ce131a4916d2724c5a297464771bd0df37f"
|
||||
integrity sha512-hYGhNBvdfnxhhywYRkesdxIZD8rvhsp2CBci5kCqrR2o5VvEkn5+waUQtkREtkciEpC4ent4fadg7N9XfTKvgQ==
|
||||
dependencies:
|
||||
"@aws-crypto/crc32" "5.2.0"
|
||||
"@aws-crypto/crc32c" "5.2.0"
|
||||
"@aws-crypto/util" "5.2.0"
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/is-array-buffer" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
@@ -424,23 +424,23 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/middleware-sdk-s3@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz#65ae0e84b020a1dd28278a1610cc4c8978edf853"
|
||||
integrity sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA==
|
||||
"@aws-sdk/middleware-sdk-s3@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.908.0.tgz#e65cf8668270162e469c74da726e023fbe5bd135"
|
||||
integrity sha512-23MbAOHsGaD0kTVMVLumaIM1f9vtDImIn2lSvPullbjFHKS4XxfrKuPumtKDzl8gzcux+98XnmfDRKH0fzkOUA==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-arn-parser" "3.893.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/signature-v4" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-config-provider" "^4.2.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
@@ -453,57 +453,57 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/middleware-user-agent@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz#ff6ff86115e1c580f369d33a25213e336896c548"
|
||||
integrity sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ==
|
||||
"@aws-sdk/middleware-user-agent@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.908.0.tgz#aa4827cf1c5290b5d9d44ac39f467735fd199b04"
|
||||
integrity sha512-R0ePEOku72EvyJWy/D0Z5f/Ifpfxa0U9gySO3stpNhOox87XhsILpcIsCHPy0OHz1a7cMoZsF6rMKSzDeCnogQ==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-endpoints" "3.901.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/nested-clients@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz#8fcd2c48a0132ef1623b243ec88b6aff3164e76a"
|
||||
integrity sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag==
|
||||
"@aws-sdk/nested-clients@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.908.0.tgz#133f316e6655b509f1b872b0ef352923ac8b86df"
|
||||
integrity sha512-ZxDYrfxOKXNFHLyvJtT96TJ0p4brZOhwRE4csRXrezEVUN+pNgxuem95YvMALPVhlVqON2CTzr8BX+CcBKvX9Q==
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser" "5.2.0"
|
||||
"@aws-crypto/sha256-js" "5.2.0"
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/middleware-host-header" "3.901.0"
|
||||
"@aws-sdk/middleware-logger" "3.901.0"
|
||||
"@aws-sdk/middleware-recursion-detection" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.908.0"
|
||||
"@aws-sdk/region-config-resolver" "3.901.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-endpoints" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.901.0"
|
||||
"@aws-sdk/util-user-agent-browser" "3.907.0"
|
||||
"@aws-sdk/util-user-agent-node" "3.908.0"
|
||||
"@smithy/config-resolver" "^4.3.0"
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.1"
|
||||
"@smithy/hash-node" "^4.2.0"
|
||||
"@smithy/invalid-dependency" "^4.2.0"
|
||||
"@smithy/middleware-content-length" "^4.2.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/middleware-retry" "^4.4.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/middleware-retry" "^4.4.1"
|
||||
"@smithy/middleware-serde" "^4.2.0"
|
||||
"@smithy/middleware-stack" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/node-http-handler" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/url-parser" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-body-length-browser" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-browser" "^4.2.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.0"
|
||||
"@smithy/util-body-length-node" "^4.2.1"
|
||||
"@smithy/util-defaults-mode-browser" "^4.3.0"
|
||||
"@smithy/util-defaults-mode-node" "^4.2.1"
|
||||
"@smithy/util-endpoints" "^3.2.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-retry" "^4.2.0"
|
||||
@@ -522,42 +522,42 @@
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/s3-presigned-post@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.901.0.tgz#abc475780c78b69f651cfa33454a3f9783c16840"
|
||||
integrity sha512-CzvxW4v9qXbNE+MbuuCSshb6gnPl2K93pHB6+hHocxacIZhUvRJPZRNEcEfl5dzYSWgq6o1y0tuVFbhYnOJiOw==
|
||||
"@aws-sdk/s3-presigned-post@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.908.0.tgz#7bc1d84b7e8d883440bb4857ca5f8a5d404a4166"
|
||||
integrity sha512-DXVmqv9hSwBtJxAGmdpjS2Any8hOpC4TgIfxe73E26TWUDj9LCJH4BEAqfjnqvWvUhMAAjrMyXI8q0cTFnVa8w==
|
||||
dependencies:
|
||||
"@aws-sdk/client-s3" "3.901.0"
|
||||
"@aws-sdk/client-s3" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-format-url" "3.901.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/signature-v4" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-hex-encoding" "^4.2.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/s3-request-presigner@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.901.0.tgz#c21088f68158b2fc7f1e78a3b0feaefb9c5591de"
|
||||
integrity sha512-G/0G5tL3beETs2zkI0YQuM2SkrAsYJSe2vN2XtouVSN5c9v6EiSvdSsHAqMhLebnSs2suUkq0JO9ZotbXkUfMQ==
|
||||
"@aws-sdk/s3-request-presigner@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.908.0.tgz#70b491ae2caded10406a7aa43ee209b140f00803"
|
||||
integrity sha512-MN/0kk2ZDazemXm5FHtB4sfefamIjxrtvPZtCkGYrxopAqoHEkHKS7WqflWz4dtvPtc1A1uMDDZMXTNQbjRkYw==
|
||||
dependencies:
|
||||
"@aws-sdk/signature-v4-multi-region" "3.901.0"
|
||||
"@aws-sdk/signature-v4-multi-region" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@aws-sdk/util-format-url" "3.901.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/signature-v4-crt@^3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.901.0.tgz#e5ab17f95fbc0b7b0ec66de616ca4dd67b4b86d6"
|
||||
integrity sha512-rpztysar48zfP6MJHqjnsBtZSrycRhMvkOM0jfnDtegoB0pLj4B4zGIv/FtjfRo/4jwy4dVwRX3PLZAsDbSsZg==
|
||||
"@aws-sdk/signature-v4-crt@^3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.908.0.tgz#053f7a44daa35249cea6d53ef6de5eca4296865d"
|
||||
integrity sha512-LbiQPr/DIBnCOud8q8VqTu6vFCuJmlYvQQHu5boqBjcTm28DmwZffK65B9hVPF7FPM3MfoBvFWf4VQRh5AkDMA==
|
||||
dependencies:
|
||||
"@aws-sdk/crt-loader" "3.901.0"
|
||||
"@aws-sdk/signature-v4-multi-region" "3.901.0"
|
||||
"@aws-sdk/crt-loader" "3.908.0"
|
||||
"@aws-sdk/signature-v4-multi-region" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/querystring-parser" "^4.2.0"
|
||||
"@smithy/signature-v4" "^5.3.0"
|
||||
@@ -565,25 +565,25 @@
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/signature-v4-multi-region@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz#773cd83ab38efe8bd5c1e563e5bd8b79391dfa12"
|
||||
integrity sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw==
|
||||
"@aws-sdk/signature-v4-multi-region@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.908.0.tgz#05690b946b11b9a2663012aac503ed3e6f3109bc"
|
||||
integrity sha512-8OodflIzZM2GVuCGiGK6hqwsbfHRDl4kQcEYzHRg9p91H4h5Y876DPvLRkwM7pSC7LKUL0XkKWWVVjwJbp6/Ig==
|
||||
dependencies:
|
||||
"@aws-sdk/middleware-sdk-s3" "3.901.0"
|
||||
"@aws-sdk/middleware-sdk-s3" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/signature-v4" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/token-providers@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz#1f506f169cde6342c8bad75c068a719453ebcf54"
|
||||
integrity sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ==
|
||||
"@aws-sdk/token-providers@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.908.0.tgz#ed3b064ad07db451a7abc0a8d73e1443aa5f6a19"
|
||||
integrity sha512-4SosHWRQ8hj1X2yDenCYHParcCjHcd7S+Mdb/lelwF0JBFCNC+dNCI9ws3cP/dFdZO/AIhJQGUBzEQtieloixw==
|
||||
dependencies:
|
||||
"@aws-sdk/core" "3.901.0"
|
||||
"@aws-sdk/nested-clients" "3.901.0"
|
||||
"@aws-sdk/core" "3.908.0"
|
||||
"@aws-sdk/nested-clients" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/shared-ini-file-loader" "^4.3.0"
|
||||
@@ -633,22 +633,22 @@
|
||||
dependencies:
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/util-user-agent-browser@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz#2c0e71e9019f054fb6a6061f99f55c13fb92830f"
|
||||
integrity sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg==
|
||||
"@aws-sdk/util-user-agent-browser@3.907.0":
|
||||
version "3.907.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.907.0.tgz#96b621c66530c061fbc51f5bf4931e64429927d4"
|
||||
integrity sha512-Hus/2YCQmtCEfr4Ls88d07Q99Ex59uvtktiPTV963Q7w7LHuIT/JBjrbwNxtSm2KlJR9PHNdqxwN+fSuNsMGMQ==
|
||||
dependencies:
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
bowser "^2.11.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@aws-sdk/util-user-agent-node@3.901.0":
|
||||
version "3.901.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz#3a0a59a93229016f011e7ee0533d36275e3063bd"
|
||||
integrity sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw==
|
||||
"@aws-sdk/util-user-agent-node@3.908.0":
|
||||
version "3.908.0"
|
||||
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.908.0.tgz#37d0397a3dac1705693b4cad5fe79da5bd04e46d"
|
||||
integrity sha512-l6AEaKUAYarcEy8T8NZ+dNZ00VGLs3fW2Cqu1AuPENaSad0/ahEU+VU7MpXS8FhMRGPgplxKVgCTLyTY0Lbssw==
|
||||
dependencies:
|
||||
"@aws-sdk/middleware-user-agent" "3.901.0"
|
||||
"@aws-sdk/middleware-user-agent" "3.908.0"
|
||||
"@aws-sdk/types" "3.901.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
@@ -3945,12 +3945,12 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/chunked-blob-reader-native@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz#3115cfb230f20da21d1011ee2b47165f4c2773e3"
|
||||
integrity sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q==
|
||||
"@smithy/chunked-blob-reader-native@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz#380266951d746b522b4ab2b16bfea6b451147b41"
|
||||
integrity sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==
|
||||
dependencies:
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/chunked-blob-reader@^5.2.0":
|
||||
@@ -3971,18 +3971,18 @@
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/core@^3.14.0":
|
||||
version "3.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.14.0.tgz#22bdb346b171c76b629c4f59dc496c27e10f1c82"
|
||||
integrity sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA==
|
||||
"@smithy/core@^3.15.0":
|
||||
version "3.15.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.15.0.tgz#1afb51780ec8379624f4694443287e57e7986498"
|
||||
integrity sha512-VJWncXgt+ExNn0U2+Y7UywuATtRYaodGQKFo9mDyh70q+fJGedfrqi2XuKU1BhiLeXgg6RZrW7VEKfeqFhHAJA==
|
||||
dependencies:
|
||||
"@smithy/middleware-serde" "^4.2.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-body-length-browser" "^4.2.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
"@smithy/uuid" "^1.1.0"
|
||||
tslib "^2.6.2"
|
||||
@@ -4043,24 +4043,24 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/fetch-http-handler@^5.3.0":
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz#1c5205642a9295f44441d8763e7c3a51a747fc95"
|
||||
integrity sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw==
|
||||
"@smithy/fetch-http-handler@^5.3.1":
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.1.tgz#0c1ec5605c7ed5313aa677165c8ad669b2c3d11d"
|
||||
integrity sha512-3AvYYbB+Dv5EPLqnJIAgYw/9+WzeBiUYS8B+rU0pHq5NMQMvrZmevUROS4V2GAt0jEOn9viBzPLrZE+riTNd5Q==
|
||||
dependencies:
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/querystring-builder" "^4.2.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/hash-blob-browser@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz#b7bd8c5b379ebfae5b8ce10312da1351d7ff5ff4"
|
||||
integrity sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA==
|
||||
"@smithy/hash-blob-browser@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.1.tgz#156df61af1842a55ae2ecb44c1378c19a9f56a98"
|
||||
integrity sha512-Os9cg1fTXMwuqbvjemELlf+HB5oEeVyZmYsTbAtDQBmjGyibjmbeeqcaw7xOJLIHrkH/u0wAYabNcN6FRTqMRg==
|
||||
dependencies:
|
||||
"@smithy/chunked-blob-reader" "^5.2.0"
|
||||
"@smithy/chunked-blob-reader-native" "^4.2.0"
|
||||
"@smithy/chunked-blob-reader-native" "^4.2.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
@@ -4123,12 +4123,12 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/middleware-endpoint@^4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz#407ce4051be2f1855259a02900a957e9b347fdfd"
|
||||
integrity sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw==
|
||||
"@smithy/middleware-endpoint@^4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.1.tgz#0ff2d78e7126c52924a48ac7cfe8a60a234a865a"
|
||||
integrity sha512-JtM4SjEgImLEJVXdsbvWHYiJ9dtuKE8bqLlvkvGi96LbejDL6qnVpVxEFUximFodoQbg0Gnkyff9EKUhFhVJFw==
|
||||
dependencies:
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/middleware-serde" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/shared-ini-file-loader" "^4.3.0"
|
||||
@@ -4137,15 +4137,15 @@
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/middleware-retry@^4.4.0":
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz#7f4b313a808aa8ac1a5922aff355e12c5a270de1"
|
||||
integrity sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg==
|
||||
"@smithy/middleware-retry@^4.4.1":
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.1.tgz#6986ee827053986848f7ece835887c7a28c3d49a"
|
||||
integrity sha512-wXxS4ex8cJJteL0PPQmWYkNi9QKDWZIpsndr0wZI2EL+pSSvA/qqxXU60gBOJoIc2YgtZSWY/PE86qhKCCKP1w==
|
||||
dependencies:
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/service-error-classification" "^4.2.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-middleware" "^4.2.0"
|
||||
"@smithy/util-retry" "^4.2.0"
|
||||
@@ -4252,17 +4252,17 @@
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/smithy-client@^4.7.0":
|
||||
version "4.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.7.0.tgz#1b0b74a3f58bdf7a77024473b6fe6ec1aa9556c2"
|
||||
integrity sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ==
|
||||
"@smithy/smithy-client@^4.7.1":
|
||||
version "4.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.7.1.tgz#78f201b61d8305abd7bb1f0c196b64a22b1c7691"
|
||||
integrity sha512-WXVbiyNf/WOS/RHUoFMkJ6leEVpln5ojCjNBnzoZeMsnCg3A0BRhLK3WYc4V7PmYcYPZh9IYzzAg9XcNSzYxYQ==
|
||||
dependencies:
|
||||
"@smithy/core" "^3.14.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.0"
|
||||
"@smithy/core" "^3.15.0"
|
||||
"@smithy/middleware-endpoint" "^4.3.1"
|
||||
"@smithy/middleware-stack" "^4.2.0"
|
||||
"@smithy/protocol-http" "^5.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-stream" "^4.4.0"
|
||||
"@smithy/util-stream" "^4.5.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/types@^4.6.0":
|
||||
@@ -4281,10 +4281,10 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/util-base64@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.2.0.tgz#677f616772389adbad278b05d84835abbfe63bbc"
|
||||
integrity sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA==
|
||||
"@smithy/util-base64@^4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d"
|
||||
integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==
|
||||
dependencies:
|
||||
"@smithy/util-buffer-from" "^4.2.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
@@ -4297,10 +4297,10 @@
|
||||
dependencies:
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/util-body-length-node@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz#ea6a0fdabb48dd0b212e17e42b1f07bb7373147b"
|
||||
integrity sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ==
|
||||
"@smithy/util-body-length-node@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec"
|
||||
integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==
|
||||
dependencies:
|
||||
tslib "^2.6.2"
|
||||
|
||||
@@ -4327,27 +4327,26 @@
|
||||
dependencies:
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/util-defaults-mode-browser@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz#7b9f0299203aaa48953c4997c1630bdeffd80ec0"
|
||||
integrity sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ==
|
||||
"@smithy/util-defaults-mode-browser@^4.3.0":
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.0.tgz#ea03c444da5b4080d2280b754c5f93d5ce884fc1"
|
||||
integrity sha512-H4MAj8j8Yp19Mr7vVtGgi7noJjvjJbsKQJkvNnLlrIFduRFT5jq5Eri1k838YW7rN2g5FTnXpz5ktKVr1KVgPQ==
|
||||
dependencies:
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
bowser "^2.11.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/util-defaults-mode-node@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz#efe5a6be134755317a0edf9595582bd6732e493a"
|
||||
integrity sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg==
|
||||
"@smithy/util-defaults-mode-node@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.1.tgz#e605d031d0de42db19d9e0458a6acd1eb58120ae"
|
||||
integrity sha512-PuDcgx7/qKEMzV1QFHJ7E4/MMeEjaA7+zS5UNcHCLPvvn59AeZQ0DSDGMpqC2xecfa/1cNGm4l8Ec/VxCuY7Ug==
|
||||
dependencies:
|
||||
"@smithy/config-resolver" "^4.3.0"
|
||||
"@smithy/credential-provider-imds" "^4.2.0"
|
||||
"@smithy/node-config-provider" "^4.3.0"
|
||||
"@smithy/property-provider" "^4.2.0"
|
||||
"@smithy/smithy-client" "^4.7.0"
|
||||
"@smithy/smithy-client" "^4.7.1"
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
@@ -4384,15 +4383,15 @@
|
||||
"@smithy/types" "^4.6.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@smithy/util-stream@^4.4.0":
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.4.0.tgz#e203c74b8664d0e3f537185de5da960655333a45"
|
||||
integrity sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg==
|
||||
"@smithy/util-stream@^4.5.0":
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.0.tgz#3bf98b008526974ee68268b36da089641866c2db"
|
||||
integrity sha512-0TD5M5HCGu5diEvZ/O/WquSjhJPasqv7trjoqHyWjNh/FBeBl7a0ztl9uFMOsauYtRfd8jvpzIAQhDHbx+nvZw==
|
||||
dependencies:
|
||||
"@smithy/fetch-http-handler" "^5.3.0"
|
||||
"@smithy/fetch-http-handler" "^5.3.1"
|
||||
"@smithy/node-http-handler" "^4.3.0"
|
||||
"@smithy/types" "^4.6.0"
|
||||
"@smithy/util-base64" "^4.2.0"
|
||||
"@smithy/util-base64" "^4.3.0"
|
||||
"@smithy/util-buffer-from" "^4.2.0"
|
||||
"@smithy/util-hex-encoding" "^4.2.0"
|
||||
"@smithy/util-utf8" "^4.2.0"
|
||||
@@ -5236,12 +5235,12 @@
|
||||
"@types/node" "*"
|
||||
form-data "^4.0.0"
|
||||
|
||||
"@types/node@*", "@types/node@20.17.30", "@types/node@>=10.0.0", "@types/node@>=13.7.0":
|
||||
version "20.17.30"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.30.tgz#1d93f656d3b869dbef7b796568ac457606ba58d0"
|
||||
integrity sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==
|
||||
"@types/node@*", "@types/node@20.19.21", "@types/node@>=10.0.0", "@types/node@>=13.7.0":
|
||||
version "20.19.21"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.21.tgz#6e5378e04993c40395473b13baf94a09875157b8"
|
||||
integrity sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==
|
||||
dependencies:
|
||||
undici-types "~6.19.2"
|
||||
undici-types "~6.21.0"
|
||||
|
||||
"@types/nodemailer@^6.4.17":
|
||||
version "6.4.17"
|
||||
@@ -7828,10 +7827,10 @@ emoji-mart@^5.6.0:
|
||||
resolved "https://registry.yarnpkg.com/emoji-mart/-/emoji-mart-5.6.0.tgz#71b3ed0091d3e8c68487b240d9d6d9a73c27f023"
|
||||
integrity sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==
|
||||
|
||||
emoji-regex@*, emoji-regex@^10.5.0:
|
||||
version "10.5.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.5.0.tgz#be23498b9e39db476226d8e81e467f39aca26b78"
|
||||
integrity sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==
|
||||
emoji-regex@*, emoji-regex@^10.6.0:
|
||||
version "10.6.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d"
|
||||
integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
@@ -8425,10 +8424,10 @@ fs-extra@11.3.0:
|
||||
jsonfile "^6.0.1"
|
||||
universalify "^2.0.0"
|
||||
|
||||
fs-extra@^11.1.0, fs-extra@^11.3.1:
|
||||
version "11.3.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.1.tgz#ba7a1f97a85f94c6db2e52ff69570db3671d5a74"
|
||||
integrity sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==
|
||||
fs-extra@^11.1.0, fs-extra@^11.3.2:
|
||||
version "11.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4"
|
||||
integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.0"
|
||||
jsonfile "^6.0.1"
|
||||
@@ -13087,17 +13086,17 @@ rollup-plugin-node-resolve@^3.0.0:
|
||||
is-module "^1.0.0"
|
||||
resolve "^1.1.6"
|
||||
|
||||
rollup-plugin-stats@1.5.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup-plugin-stats/-/rollup-plugin-stats-1.5.0.tgz#f23c1e30ebaff970eaa33e93ea69853ca1529437"
|
||||
integrity sha512-TsWaV7ulwPA9JhqGJemrDJkvXNeNQb60lB13gIcT2kVDXlBM/PQD3GqVyhCJpvn43Y4YT5+VmWDRsbIAbuilBA==
|
||||
rollup-plugin-stats@1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/rollup-plugin-stats/-/rollup-plugin-stats-1.5.1.tgz#dd66c6cb881aeed89f9d6cb91933e5509b3df62e"
|
||||
integrity sha512-WXx9F3i57DLKkB8mt6Zw3jN9sS8YOqTsfvuOG8RW0D95Wn5KHt2e9POh8sYWODgmTsiKK0Nm54ZjxLnp7yeCDw==
|
||||
|
||||
rollup-plugin-webpack-stats@2.1.3:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/rollup-plugin-webpack-stats/-/rollup-plugin-webpack-stats-2.1.3.tgz#3ae79db5b6af191c8d26a701f3cd47dde61038fe"
|
||||
integrity sha512-OOhpuwwoxW8J5pVd+RdokSbaVa21/4/mV1EsBBLfmcmc2hjL5VMFkytN0YTFGfPWcluWBCxrpA+8SP7P3xvloQ==
|
||||
rollup-plugin-webpack-stats@2.1.6:
|
||||
version "2.1.6"
|
||||
resolved "https://registry.yarnpkg.com/rollup-plugin-webpack-stats/-/rollup-plugin-webpack-stats-2.1.6.tgz#bff2772f7a9ada327763e6a098456f78cf066479"
|
||||
integrity sha512-njKotmo0lWIbrTKJ5CrIPk9DuDsQziOo73rE3aQIAhecJj5o0ECBbE0vxgMor37o6TQ/IEAK8pDxzs4CqLdIJw==
|
||||
dependencies:
|
||||
rollup-plugin-stats "1.5.0"
|
||||
rollup-plugin-stats "1.5.1"
|
||||
|
||||
rollup@^0.41.4:
|
||||
version "0.41.6"
|
||||
@@ -14452,10 +14451,10 @@ underscore@^1.13.1:
|
||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
|
||||
integrity "sha1-DBxr0t9UtrafIxQGbWW2zeb8+dE= sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
|
||||
|
||||
undici-types@~6.19.2:
|
||||
version "6.19.8"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
|
||||
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
|
||||
undici-types@~6.21.0:
|
||||
version "6.21.0"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
|
||||
integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
|
||||
|
||||
unfetch@^4.2.0:
|
||||
version "4.2.0"
|
||||
|
||||