From db15bfaaf54d374cfec5a360bde57f4e7607ffb0 Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Tue, 9 Apr 2024 18:36:05 +0900 Subject: [PATCH 1/6] =?UTF-8?q?FIX:=20=EC=A7=81=EC=9B=90=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB=A5=BC=20?= =?UTF-8?q?=EB=A7=88=EC=B9=9C=20=ED=9B=84=20=EB=8B=A4=EB=A5=B8=20=EC=A7=81?= =?UTF-8?q?=EC=9B=90=20=EC=B6=94=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8?= =?UTF-8?q?=EC=8A=A4=EB=A5=BC=20=EC=A7=84=ED=96=89=EC=8B=9C=20=EC=A0=84=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=82=A8=EC=95=84=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20=EC=9D=B4=EC=8A=88=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/screen/manage/ShareLink.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/screen/manage/ShareLink.tsx b/src/screen/manage/ShareLink.tsx index 720a212..ef19293 100644 --- a/src/screen/manage/ShareLink.tsx +++ b/src/screen/manage/ShareLink.tsx @@ -2,6 +2,7 @@ import { storeIdAtom } from "@/data/global"; import { InviteSchedule, inviteScheduleAtom, + scheduleInit, selectedPositionAtom, } from "@/data/inviteSchedule"; import copy from "@/libs/copy"; @@ -16,10 +17,20 @@ interface InviteDataType { schedule: InviteSchedule; } +const inviteScheduleInit: InviteSchedule = { + 월: { ...scheduleInit }, + 화: { ...scheduleInit }, + 수: { ...scheduleInit }, + 목: { ...scheduleInit }, + 금: { ...scheduleInit }, + 토: { ...scheduleInit }, + 일: { ...scheduleInit }, +}; + function ShareLink() { const [linkCopied, setLinkCopied] = useState(false); - const [inviteSchedule] = useAtom(inviteScheduleAtom); - const [selectedPosition] = useAtom(selectedPositionAtom); + const [inviteSchedule, setInviteSchedule] = useAtom(inviteScheduleAtom); + const [selectedPosition, setSelectedPostion] = useAtom(selectedPositionAtom); const [storeId] = useAtom(storeIdAtom); function filterSchedule(inviteData: InviteDataType): InviteDataType { @@ -44,7 +55,8 @@ function ShareLink() { position: selectedPosition, schedule: inviteSchedule, }; - + setSelectedPostion(""); + setInviteSchedule(inviteScheduleInit); const inviteDataString = encodeURIComponent( JSON.stringify(filterSchedule(inviteData)), ); From 9f5c379f33332024cb68d7a446ace50da7ab222d Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Tue, 9 Apr 2024 18:52:10 +0900 Subject: [PATCH 2/6] =?UTF-8?q?FIX:=20=EC=A7=81=EC=9B=90=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB=A5=BC=20?= =?UTF-8?q?=EB=A7=88=EC=B9=9C=20=ED=9B=84=20=EB=8B=A4=EB=A5=B8=20=EC=A7=81?= =?UTF-8?q?=EC=9B=90=20=EC=B6=94=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8?= =?UTF-8?q?=EC=8A=A4=EB=A5=BC=20=EC=A7=84=ED=96=89=EC=8B=9C=20=EC=A0=84=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=82=A8=EC=95=84=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20=EC=9D=B4=EC=8A=88=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/manage/staff.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pages/manage/staff.tsx b/src/pages/manage/staff.tsx index 769fdee..5e21d39 100644 --- a/src/pages/manage/staff.tsx +++ b/src/pages/manage/staff.tsx @@ -11,6 +11,7 @@ import Divider from "@modules/layout/Divider"; import FlexBox from "@modules/layout/FlexBox"; import TopTitle from "@modules/layout/TopTitle"; import { useAtom } from "jotai"; +import React from "react"; import { useEffect, useState } from "react"; export default function Staff() { @@ -87,8 +88,8 @@ export default function Staff() { {histories && histories.map(myhistory => ( <> - {myhistory.status != "DISAPPROVED" && ( - <> + {myhistory.status !== "DISAPPROVED" && ( + - - ), - )} + + )} + + ))} From 178c34c61341bdcb735107163091caf4c6974692 Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Tue, 9 Apr 2024 18:59:04 +0900 Subject: [PATCH 3/6] =?UTF-8?q?FIX:=20=EC=A7=81=EC=9B=90=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=EB=A5=BC=20?= =?UTF-8?q?=EB=A7=88=EC=B9=9C=20=ED=9B=84=20=EB=8B=A4=EB=A5=B8=20=EC=A7=81?= =?UTF-8?q?=EC=9B=90=20=EC=B6=94=EA=B0=80=20=ED=94=84=EB=A1=9C=EC=84=B8?= =?UTF-8?q?=EC=8A=A4=EB=A5=BC=20=EC=A7=84=ED=96=89=EC=8B=9C=20=EC=A0=84=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EB=82=A8=EC=95=84=EC=9E=88?= =?UTF-8?q?=EB=8A=94=20=EC=9D=B4=20=EC=8A=88=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/manage/staff.tsx | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/pages/manage/staff.tsx b/src/pages/manage/staff.tsx index 5e21d39..997d285 100644 --- a/src/pages/manage/staff.tsx +++ b/src/pages/manage/staff.tsx @@ -11,7 +11,6 @@ import Divider from "@modules/layout/Divider"; import FlexBox from "@modules/layout/FlexBox"; import TopTitle from "@modules/layout/TopTitle"; import { useAtom } from "jotai"; -import React from "react"; import { useEffect, useState } from "react"; export default function Staff() { @@ -86,10 +85,10 @@ export default function Staff() {
출퇴근 기록
{histories && - histories.map(myhistory => ( - <> - {myhistory.status !== "DISAPPROVED" && ( - + histories.map( + myhistory => + myhistory.status !== "DISAPPROVED" && ( + <> - - )} - - ))} + + ), + )}
From de8d30efa4301e69681af384bed37b7bf604e2c0 Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Thu, 18 Apr 2024 23:02:05 +0900 Subject: [PATCH 4/6] =?UTF-8?q?FEAT:=20=EB=A7=81=ED=81=AC=EB=A5=BC=20?= =?UTF-8?q?=ED=86=B5=ED=95=9C=20=EA=B0=80=EA=B2=8C=20=ED=95=A9=EB=A5=98=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 + src/libs/createRandomId.tsx | 10 + src/libs/dynamoDB/getOutput.ts | 87 +++ src/libs/dynamoDB/parse.ts | 14 + src/libs/dynamoDB/tableHandler.ts | 128 +++++ src/pages/api/dynamoDB/index.ts | 66 +++ src/pages/index.tsx | 6 +- src/pages/manage/confirm.tsx | 10 + src/pages/oauth/redirect.tsx | 56 +- src/screen/manage/ShareLink.tsx | 51 +- yarn.lock | 911 +++++++++++++++++++++++++++++- 11 files changed, 1288 insertions(+), 54 deletions(-) create mode 100644 src/libs/createRandomId.tsx create mode 100644 src/libs/dynamoDB/getOutput.ts create mode 100644 src/libs/dynamoDB/parse.ts create mode 100644 src/libs/dynamoDB/tableHandler.ts create mode 100644 src/pages/api/dynamoDB/index.ts diff --git a/package.json b/package.json index 62bab12..edd3921 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,8 @@ "lint": "next lint" }, "dependencies": { + "@aws-sdk/client-dynamodb": "^3.556.0", + "@aws-sdk/util-dynamodb": "^3.556.0", "@tanstack/react-query": "^5.24.7", "@tanstack/react-query-devtools": "^5.24.7", "@types/node": "20.11.1", @@ -16,6 +18,7 @@ "@types/react-dom": "18.2.7", "autoprefixer": "10.4.14", "axios": "^1.5.0", + "cors": "^2.8.5", "dayjs": "^1.11.10", "eslint": "^8.56.0", "eslint-config-next": "13.4.13", diff --git a/src/libs/createRandomId.tsx b/src/libs/createRandomId.tsx new file mode 100644 index 0000000..69e4c78 --- /dev/null +++ b/src/libs/createRandomId.tsx @@ -0,0 +1,10 @@ +export const createRandomString = (num: number) => { + const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + let result = ""; + const charactersLength = characters.length; + for (let i = 0; i < num; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + console.log(result); + return result; +}; diff --git a/src/libs/dynamoDB/getOutput.ts b/src/libs/dynamoDB/getOutput.ts new file mode 100644 index 0000000..42eadd6 --- /dev/null +++ b/src/libs/dynamoDB/getOutput.ts @@ -0,0 +1,87 @@ +import { + DeleteItemCommand, + DeleteItemCommandInput, + GetItemCommand, + GetItemCommandInput, + PutItemCommand, + PutItemCommandInput, + QueryCommand, + QueryCommandInput, + QueryCommandOutput, + ScanCommand, + ScanCommandInput, + ScanCommandOutput, + UpdateItemCommand, + UpdateItemCommandInput, +} from '@aws-sdk/client-dynamodb'; +import { getDynamoDBClient } from '../network'; + +async function getScanCommandOutputFromDynamoDB(params: ScanCommandInput) { + const client = getDynamoDBClient(); + let data: ScanCommandOutput; + + const command = new ScanCommand(params); + data = await client.send(command); + + while (true) { + if (data.LastEvaluatedKey) { + params.ExclusiveStartKey = data.LastEvaluatedKey; + } else break; + const tempcommand = new ScanCommand(params); + const tempdata = await client.send(tempcommand); + data.Items = data.Items?.concat(tempdata.Items ?? []); + data.LastEvaluatedKey = tempdata.LastEvaluatedKey; + } + + return data; +} + +async function getQueryCommandOutputFromDynamoDB(params: QueryCommandInput) { + const client = getDynamoDBClient(); + let data: QueryCommandOutput; + + const command = new QueryCommand(params); + data = await client.send(command); + return data; +} + +async function getItemCommandOutputFromDynamoDB(params: GetItemCommandInput) { + const client = getDynamoDBClient(); + + const command = new GetItemCommand(params); + const data = await client.send(command); + return data; +} + +async function putItemCommandOutputFromDynamoDB(params: PutItemCommandInput) { + const client = getDynamoDBClient(); + + const command = new PutItemCommand(params); + const data = await client.send(command); + return data; +} + +async function patchItemCommandOutputFromDynamoDB(params: UpdateItemCommandInput) { + const client = getDynamoDBClient(); + + const command = new UpdateItemCommand(params); + const data = await client.send(command); + return data; +} + +async function deleteItemCommandOutputFromDynamoDB(params: DeleteItemCommandInput) { + const client = getDynamoDBClient(); + + const command = new DeleteItemCommand(params); + const data = await client.send(command); + return data; +} + +export { + deleteItemCommandOutputFromDynamoDB, + getItemCommandOutputFromDynamoDB, + getQueryCommandOutputFromDynamoDB, + getScanCommandOutputFromDynamoDB, + patchItemCommandOutputFromDynamoDB, + putItemCommandOutputFromDynamoDB, +}; diff --git a/src/libs/dynamoDB/parse.ts b/src/libs/dynamoDB/parse.ts new file mode 100644 index 0000000..b05b38c --- /dev/null +++ b/src/libs/dynamoDB/parse.ts @@ -0,0 +1,14 @@ +import { GetItemCommandOutput, ScanCommandOutput } from '@aws-sdk/client-dynamodb'; +import { unmarshall } from '@aws-sdk/util-dynamodb'; + +function parseRecord(data: GetItemCommandOutput) { + const record = unmarshall(data.Item!); + return record; +} + +function parseRecords(data: ScanCommandOutput) { + const records = data.Items!.map((i) => unmarshall(i)); + return records; +} + +export { parseRecord, parseRecords }; diff --git a/src/libs/dynamoDB/tableHandler.ts b/src/libs/dynamoDB/tableHandler.ts new file mode 100644 index 0000000..e82a373 --- /dev/null +++ b/src/libs/dynamoDB/tableHandler.ts @@ -0,0 +1,128 @@ +import { QueryCommandInput, ScanCommandInput } from '@aws-sdk/client-dynamodb'; +import { marshall } from '@aws-sdk/util-dynamodb'; +import { + deleteItemCommandOutputFromDynamoDB, + getItemCommandOutputFromDynamoDB, + getQueryCommandOutputFromDynamoDB, + getScanCommandOutputFromDynamoDB, + patchItemCommandOutputFromDynamoDB, + putItemCommandOutputFromDynamoDB, +} from './getOutput'; +import { parseRecord, parseRecords } from './parse'; + +async function getListFromDynamoDB(table: string) { + const params: ScanCommandInput = { + TableName: table, + }; + while (true) { + try { + const data = await getScanCommandOutputFromDynamoDB(params); + const records = parseRecords(data); + return records; + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +async function getQueryFromDynamoDB(table: string, queryKeys: any) { + let keyExpression = ''; + Object.keys(queryKeys).forEach((key) => { + if (keyExpression !== '') keyExpression += ' AND '; + keyExpression += key + ' = :' + key; + }); + let expressionAttributeValues: { [key: string]: any } = {}; + Object.keys(queryKeys).forEach((key) => { + expressionAttributeValues[':' + key] = queryKeys[key]; + }); + const params: QueryCommandInput = { + TableName: table, + KeyConditionExpression: keyExpression, + ExpressionAttributeValues: expressionAttributeValues, + ConsistentRead: true, + }; + while (true) { + try { + const data = await getQueryCommandOutputFromDynamoDB(params); + const records = parseRecords(data); + return records; + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +async function getFromDynamoDB(table: string, key: any) { + const params = { + TableName: table, + Key: key, + }; + + while (true) { + try { + const data = await getItemCommandOutputFromDynamoDB(params); + const record = parseRecord(data); + return record; + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +async function putFromDynamoDB(table: string, item: any) { + const params = { + TableName: table, + Item: marshall(item), + }; + while (true) { + try { + return await putItemCommandOutputFromDynamoDB(params); + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +async function patchFromDynamoDB(table: string, key: any, updates: any) { + const params = { + TableName: table, + Key: key, + AttributeUpdates: updates, + }; + while (true) { + try { + return await patchItemCommandOutputFromDynamoDB(params); + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +async function deleteFromDynamoDB(table: string, key: any) { + const params = { + TableName: table, + Key: key, + }; + while (true) { + try { + return await deleteItemCommandOutputFromDynamoDB(params); + } catch (error: any) { + if (error?.name !== 'ProvisionedThroughputExceededException') throw error; + else console.log(error?.name); + } + } +} + +export { + deleteFromDynamoDB, + getFromDynamoDB, + getListFromDynamoDB, + getQueryFromDynamoDB, + patchFromDynamoDB, + putFromDynamoDB, +}; diff --git a/src/pages/api/dynamoDB/index.ts b/src/pages/api/dynamoDB/index.ts new file mode 100644 index 0000000..52e187b --- /dev/null +++ b/src/pages/api/dynamoDB/index.ts @@ -0,0 +1,66 @@ +import { NextApiRequest, NextApiResponse } from "next"; +import { + DynamoDBClient, + GetItemCommand, + PutItemCommand, + PutItemCommandInput, + QueryCommand, + ScanCommand, + ScanCommandInput, +} from "@aws-sdk/client-dynamodb"; +import { marshall, unmarshall } from "@aws-sdk/util-dynamodb"; + +const client = new DynamoDBClient({ + region: process.env.REGION, + credentials: { + accessKeyId: process.env.DYNAMODB_ACCESS_KEY!, + secretAccessKey: process.env.DYNAMODB_SECRET_KEY!, + }, +}); +const tableName = "eolluga-dynamodb"; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + switch (req.method) { + case "GET": + try { + const id = req.query.id as string; + const params = { + TableName: tableName, + Key: { + id: { S: id }, + }, + }; + const data = await client.send(new GetItemCommand(params)); + const records = unmarshall(data.Item!); + res.status(200).json(records); + } catch (error: any) { + console.log(error); + res.status(400).json({ + message: error.message || "An error occurred during fetching data", + }); + } + break; + case "POST": + try { + const item = req.body; + const params: PutItemCommandInput = { + TableName: tableName, + Item: marshall(item), + }; + const data = await client.send(new PutItemCommand(params)); + res.status(200); + } catch (error: any) { + console.log(error); + res.status(400).json({ + message: error.message || "An error occurred during posting data", + }); + } + break; + default: + res.status(405).json({ message: "Method Not Allowed" }); + } + res.end(); +} diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 4c1d6f4..a26fb02 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -9,9 +9,9 @@ export default function Home() { const { query } = useRouter(); useEffect(() => { - if (typeof query.inviteData === "string") { - const inviteData = query.inviteData as string; - localStorage.setItem("inviteData", inviteData); + if (typeof query.id === "string") { + const inviteDataId = query.id as string; + localStorage.setItem("inviteDataId", inviteDataId); } }, [query]); diff --git a/src/pages/manage/confirm.tsx b/src/pages/manage/confirm.tsx index f17e5a0..55e2d6a 100644 --- a/src/pages/manage/confirm.tsx +++ b/src/pages/manage/confirm.tsx @@ -5,6 +5,7 @@ import TopTitle from "@modules/layout/TopTitle"; import TextButton from "@modules/components/button/TextButton"; import ConfirmEmployee from "@/screen/manage/ConfirmEmployee"; import ShareLink from "@/screen/manage/ShareLink"; +import { InviteSchedule, inviteScheduleInit } from "@/data/inviteSchedule"; type View = "confirm" | "share"; @@ -17,6 +18,8 @@ export default function Home() { }; const handleShiftButton = () => { + setSelectedPostion(""); + setInviteSchedule(inviteScheduleInit); router.push("/manage"); }; @@ -45,3 +48,10 @@ export default function Home() { ); } +function setSelectedPostion(arg0: string) { + throw new Error("Function not implemented."); +} + +function setInviteSchedule(inviteScheduleInit: InviteSchedule) { + throw new Error("Function not implemented."); +} diff --git a/src/pages/oauth/redirect.tsx b/src/pages/oauth/redirect.tsx index a4b435c..324c647 100644 --- a/src/pages/oauth/redirect.tsx +++ b/src/pages/oauth/redirect.tsx @@ -4,6 +4,7 @@ import { useGetMy } from "@/hooks/query/my"; import { usePostPlanList } from "@/hooks/query/plan"; import { usePostRelation } from "@/hooks/query/relation"; import { InviteDataType } from "@/screen/manage/ShareLink"; +import axios from "axios"; import { useAtom } from "jotai"; import { useRouter } from "next/router"; import { useEffect } from "react"; @@ -23,31 +24,46 @@ export default function Redirect() { } }, [token]); + async function getInviteData(inviteDataId: string) { + const response = await axios.get( + `/api/dynamoDB/?=${inviteDataId}`, + ); + return response.data; + } + function createNewEmployee(inviteData: InviteDataType, memberId: string) { + const body: PostRelationBody = { + role: "STAFF", + position: inviteData.position, + }; + postRelationMutate( + { storeId: inviteData.storeId, memberId: my?.id as string, body }, + { + onSettled: () => + postPlanListMutate({ + storeId: inviteData.storeId, + memberId: memberId, + inviteSchedule: inviteData.schedule, + }), + }, + ); + } useEffect(() => { if (my?.id === undefined || my?.id === null) return; if (my?.relationList.length === 0) { push("/signup"); - } else if (localStorage.getItem("inviteData") !== null) { - const inviteData: InviteDataType = JSON.parse( - localStorage.getItem("inviteData") as string, + } else if (localStorage.getItem("inviteDataId") !== null) { + const inviteDataId: string = JSON.parse( + localStorage.getItem("inviteDataId") as string, ); - const body: PostRelationBody = { - role: "STAFF", - position: inviteData.position, - }; - postRelationMutate( - { storeId: inviteData.storeId, memberId: my?.id as string, body }, - { - onSettled: () => - postPlanListMutate({ - storeId: inviteData.storeId, - memberId: my?.id, - inviteSchedule: inviteData.schedule, - }), - }, - ); - localStorage.removeItem("inviteData"); - push("/main"); + getInviteData(inviteDataId) + .then(inviteData => { + createNewEmployee(inviteData, my?.id); + localStorage.removeItem("inviteDataId"); + push("/main"); + }) + .catch(() => { + push("/main"); + }); } else { push("/main"); } diff --git a/src/screen/manage/ShareLink.tsx b/src/screen/manage/ShareLink.tsx index ef19293..fa48d79 100644 --- a/src/screen/manage/ShareLink.tsx +++ b/src/screen/manage/ShareLink.tsx @@ -5,11 +5,13 @@ import { scheduleInit, selectedPositionAtom, } from "@/data/inviteSchedule"; -import copy from "@/libs/copy"; import FlexBox from "@modules/layout/FlexBox"; +import axios from "axios"; import { useAtom } from "jotai"; import Image from "next/image"; import { useEffect, useState } from "react"; +import { createRandomString } from "@/libs/createRandomId"; +import copy from "@/libs/copy"; interface InviteDataType { storeId: string; @@ -29,42 +31,37 @@ const inviteScheduleInit: InviteSchedule = { function ShareLink() { const [linkCopied, setLinkCopied] = useState(false); - const [inviteSchedule, setInviteSchedule] = useAtom(inviteScheduleAtom); - const [selectedPosition, setSelectedPostion] = useAtom(selectedPositionAtom); + const [inviteSchedule] = useAtom(inviteScheduleAtom); + const [selectedPosition] = useAtom(selectedPositionAtom); const [storeId] = useAtom(storeIdAtom); - function filterSchedule(inviteData: InviteDataType): InviteDataType { - const filteredSchedule: InviteSchedule = Object.entries( - inviteData.schedule, - ).reduce((acc, [day, schedule]) => { - if (schedule.workFrom !== null) { - acc[day as keyof InviteSchedule] = schedule; - } - return acc; - }, {} as InviteSchedule); + const currentInviteId = createRandomString(8); - return { - ...inviteData, - schedule: filteredSchedule, - }; - } + useEffect(() => { + sendInviteToDB(); + }, []); - const createQueryString = () => { + const sendInviteToDB = async () => { const inviteData: InviteDataType = { storeId, position: selectedPosition, schedule: inviteSchedule, }; - setSelectedPostion(""); - setInviteSchedule(inviteScheduleInit); - const inviteDataString = encodeURIComponent( - JSON.stringify(filterSchedule(inviteData)), - ); - return `/?inviteData=${inviteDataString}`; + console.log(currentInviteId); + const data = { + id: currentInviteId, + inviteData, + }; + try { + await axios.post("/api/dynamoDB", data); + handleCopyLink(); + } catch (error) { + console.error("Failed to create invite:", error); + } }; const handleCopyLink = () => { - const link = window.location.origin + createQueryString(); + const link = window.location.origin + "/?=" + currentInviteId; copy( link, () => { @@ -77,10 +74,6 @@ function ShareLink() { ); }; - useEffect(() => { - handleCopyLink(); - }, []); - return ( <> diff --git a/yarn.lock b/yarn.lock index 4cec0a9..1b4716c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,485 @@ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-dynamodb@^3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-dynamodb/-/client-dynamodb-3.556.0.tgz#e47f0ac584502da8482089e2a306dbf0d539ebcd" + integrity sha512-Msb/LxTbboX/v5HlR5zcMJ9JI61X83yI6pqsL85CcFrEuzAi+QqSmt84sT9sYU263RKkmo8Py4WazM7uIGs+mw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.556.0" + "@aws-sdk/core" "3.556.0" + "@aws-sdk/credential-provider-node" "3.556.0" + "@aws-sdk/middleware-endpoint-discovery" "3.535.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + "@smithy/util-waiter" "^2.2.0" + tslib "^2.6.2" + uuid "^9.0.1" + +"@aws-sdk/client-sso-oidc@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.556.0.tgz#4c19fccc35361de046d2cd74a7a685d71aa5dd1e" + integrity sha512-AXKd2TB6nNrksu+OfmHl8uI07PdgzOo4o8AxoRO8SHlwoMAGvcT9optDGVSYoVfgOKTymCoE7h8/UoUfPc11wQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.556.0" + "@aws-sdk/core" "3.556.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.556.0.tgz#7beeeebb6a437f09680edefc5c998822292a528a" + integrity sha512-unXdWS7uvHqCcOyC1de+Fr8m3F2vMg2m24GPea0bg7rVGTYmiyn9mhUX11VCt+ozydrw+F50FQwL6OqoqPocmw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.556.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.556.0.tgz#3aa20cca462839f1451f11efada2be119dd36a6b" + integrity sha512-TsK3js7Suh9xEmC886aY+bv0KdLLYtzrcmVt6sJ/W6EnDXYQhBuKYFhp03NrN2+vSvMGpqJwR62DyfKe1G0QzQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.556.0" + "@aws-sdk/middleware-host-header" "3.535.0" + "@aws-sdk/middleware-logger" "3.535.0" + "@aws-sdk/middleware-recursion-detection" "3.535.0" + "@aws-sdk/middleware-user-agent" "3.540.0" + "@aws-sdk/region-config-resolver" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@aws-sdk/util-user-agent-browser" "3.535.0" + "@aws-sdk/util-user-agent-node" "3.535.0" + "@smithy/config-resolver" "^2.2.0" + "@smithy/core" "^1.4.2" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/hash-node" "^2.2.0" + "@smithy/invalid-dependency" "^2.2.0" + "@smithy/middleware-content-length" "^2.2.0" + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-body-length-browser" "^2.2.0" + "@smithy/util-body-length-node" "^2.3.0" + "@smithy/util-defaults-mode-browser" "^2.2.1" + "@smithy/util-defaults-mode-node" "^2.3.1" + "@smithy/util-endpoints" "^1.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.556.0.tgz#d0f4431a72282b71cfbcaedfb803f7f2807cf60b" + integrity sha512-vJaSaHw2kPQlo11j/Rzuz0gk1tEaKdz+2ser0f0qZ5vwFlANjt08m/frU17ctnVKC1s58bxpctO/1P894fHLrA== + dependencies: + "@smithy/core" "^1.4.2" + "@smithy/protocol-http" "^3.3.0" + "@smithy/signature-v4" "^2.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf" + integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.552.0": + version "3.552.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.552.0.tgz#ecc88d02cba95621887e6b85b2583e756ad29eb6" + integrity sha512-vsmu7Cz1i45pFEqzVb4JcFmAmVnWFNLsGheZc8SCptlqCO5voETrZZILHYIl4cjKkSDk3pblBOf0PhyjqWW6WQ== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.556.0.tgz#bf780feb92a7920cc525cd7cb7870ea61b84c125" + integrity sha512-0Nz4ErOlXhe3muxWYMbPwRMgfKmVbBp36BAE2uv/z5wTbfdBkcgUwaflEvlKCLUTdHzuZsQk+BFS/gVyaUeOuA== + dependencies: + "@aws-sdk/client-sts" "3.556.0" + "@aws-sdk/credential-provider-env" "3.535.0" + "@aws-sdk/credential-provider-process" "3.535.0" + "@aws-sdk/credential-provider-sso" "3.556.0" + "@aws-sdk/credential-provider-web-identity" "3.556.0" + "@aws-sdk/types" "3.535.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.556.0.tgz#51f3dc4506053249f8593765d1ab2cef53732fa3" + integrity sha512-s1xVtKjyGc60O8qcNIzS1X3H+pWEwEfZ7TgNznVDNyuXvLrlNWiAcigPWGl2aAkc8tGcsSG0Qpyw2KYC939LFg== + dependencies: + "@aws-sdk/credential-provider-env" "3.535.0" + "@aws-sdk/credential-provider-http" "3.552.0" + "@aws-sdk/credential-provider-ini" "3.556.0" + "@aws-sdk/credential-provider-process" "3.535.0" + "@aws-sdk/credential-provider-sso" "3.556.0" + "@aws-sdk/credential-provider-web-identity" "3.556.0" + "@aws-sdk/types" "3.535.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659" + integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.556.0.tgz#26dfdd2c6e034f66e82985d65bd6aa3ae09d5e19" + integrity sha512-ETuBgcnpfxqadEAqhQFWpKoV1C/NAgvs5CbBc5EJbelJ8f4prTdErIHjrRtVT8c02MXj92QwczsiNYd5IoOqyw== + dependencies: + "@aws-sdk/client-sso" "3.556.0" + "@aws-sdk/token-providers" "3.556.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.556.0.tgz#94cd55eaee6ca96354237569102dfaf6774544f4" + integrity sha512-R/YAL8Uh8i+dzVjzMnbcWLIGeeRi2mioHVGnVF+minmaIkCiQMZg2HPrdlKm49El+RljT28Nl5YHRuiqzEIwMA== + dependencies: + "@aws-sdk/client-sts" "3.556.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/endpoint-cache@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/endpoint-cache/-/endpoint-cache-3.535.0.tgz#cd230b03065e2b32675a8b3f1514c8bfb13d50ba" + integrity sha512-sPG2l00iVuporK9AmPWq4UBcJURs2RN+vKA8QLRQANmQS3WFHWHamvGltxCjK79izkeqri882V4XlFpZfWhemA== + dependencies: + mnemonist "0.38.3" + tslib "^2.6.2" + +"@aws-sdk/middleware-endpoint-discovery@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint-discovery/-/middleware-endpoint-discovery-3.535.0.tgz#204b2e7f50059bc8ed187d15ae23a53483920d00" + integrity sha512-+EsqJB5A15RoTf0HxUdknF3hp+2WDg0HWc+QERUctzzYXy9l5LIQjmhQ96cWDyFttKmHE+4h6fjMZjJEeWOeYQ== + dependencies: + "@aws-sdk/endpoint-cache" "3.535.0" + "@aws-sdk/types" "3.535.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db" + integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee" + integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d" + integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.540.0": + version "3.540.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d" + integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ== + dependencies: + "@aws-sdk/types" "3.535.0" + "@aws-sdk/util-endpoints" "3.540.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec" + integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.556.0.tgz#96b4dd4fec67ae62f8c98ae8c2f94e4ed050073a" + integrity sha512-tvIiugNF0/+2wfuImMrpKjXMx4nCnFWQjQvouObny+wrif/PGqqQYrybwxPJDvzbd965bu1I+QuSv85/ug7xsg== + dependencies: + "@aws-sdk/client-sso-oidc" "3.556.0" + "@aws-sdk/types" "3.535.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.535.0", "@aws-sdk/types@^3.222.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04" + integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/util-dynamodb@^3.556.0": + version "3.556.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-dynamodb/-/util-dynamodb-3.556.0.tgz#b3f5989f628e0df8f76922e9a9de42633da52b0e" + integrity sha512-SF7bEPt8uCiklHkCvDQfGmAl6qADDd/sHHjcWS0zGYPesLkKSJDo/uKUjwuLxzkpHEp+xvB8BYrHFMIefb28AQ== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.540.0": + version "3.540.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8" + integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + "@smithy/util-endpoints" "^1.2.0" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7" + integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f" + integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.535.0": + version "3.535.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b" + integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ== + dependencies: + "@aws-sdk/types" "3.535.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + "@babel/runtime@^7.23.2": version "7.24.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.1.tgz#431f9a794d173b53720e69a6464abc6f0e2a5c57" @@ -237,6 +716,382 @@ resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.8.0.tgz#c5545e6a5d2bd5c26b4021c357177a28698c950e" integrity sha512-0HejFckBN2W+ucM6cUOlwsByTKt9/+0tWhqUffNIcHqCXkthY/mZ7AuYPK/2IIaGWhdl0h+tICDO0ssLMd6XMQ== +"@smithy/abort-controller@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" + integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/config-resolver@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" + integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-config-provider" "^2.3.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/core@^1.4.2": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.2.tgz#1c3ed886d403041ce5bd2d816448420c57baa19c" + integrity sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-retry" "^2.3.1" + "@smithy/middleware-serde" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" + integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" + integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + tslib "^2.6.2" + +"@smithy/hash-node@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" + integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" + integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/middleware-content-length@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" + integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== + dependencies: + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" + integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== + dependencies: + "@smithy/middleware-serde" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + "@smithy/url-parser" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + tslib "^2.6.2" + +"@smithy/middleware-retry@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" + integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/service-error-classification" "^2.1.5" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-retry" "^2.2.0" + tslib "^2.6.2" + uuid "^9.0.1" + +"@smithy/middleware-serde@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" + integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" + integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" + integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/shared-ini-file-loader" "^2.4.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" + integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/querystring-builder" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/property-provider@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0" + integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" + integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" + integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== + dependencies: + "@smithy/types" "^2.12.0" + "@smithy/util-uri-escape" "^2.2.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" + integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005" + integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ== + dependencies: + "@smithy/types" "^2.12.0" + +"@smithy/shared-ini-file-loader@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" + integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.3.0.tgz#c30dd4028ae50c607db99459981cce8cdab7a3fd" + integrity sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + "@smithy/types" "^2.12.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-middleware" "^2.2.0" + "@smithy/util-uri-escape" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" + integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== + dependencies: + "@smithy/middleware-endpoint" "^2.5.1" + "@smithy/middleware-stack" "^2.2.0" + "@smithy/protocol-http" "^3.3.0" + "@smithy/types" "^2.12.0" + "@smithy/util-stream" "^2.2.0" + tslib "^2.6.2" + +"@smithy/types@^2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041" + integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" + integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== + dependencies: + "@smithy/querystring-parser" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-base64@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" + integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c" + integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f" + integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" + integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" + integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== + dependencies: + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" + integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== + dependencies: + "@smithy/config-resolver" "^2.2.0" + "@smithy/credential-provider-imds" "^2.3.0" + "@smithy/node-config-provider" "^2.3.0" + "@smithy/property-provider" "^2.2.0" + "@smithy/smithy-client" "^2.5.1" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" + integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== + dependencies: + "@smithy/node-config-provider" "^2.3.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" + integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" + integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== + dependencies: + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-retry@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85" + integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g== + dependencies: + "@smithy/service-error-classification" "^2.1.5" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + +"@smithy/util-stream@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" + integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== + dependencies: + "@smithy/fetch-http-handler" "^2.5.0" + "@smithy/node-http-handler" "^2.5.0" + "@smithy/types" "^2.12.0" + "@smithy/util-base64" "^2.3.0" + "@smithy/util-buffer-from" "^2.2.0" + "@smithy/util-hex-encoding" "^2.2.0" + "@smithy/util-utf8" "^2.3.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" + integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-waiter@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.2.0.tgz#d11baf50637bfaadb9641d6ca1619da413dd2612" + integrity sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA== + dependencies: + "@smithy/abort-controller" "^2.2.0" + "@smithy/types" "^2.12.0" + tslib "^2.6.2" + "@swc/helpers@0.5.2": version "0.5.2" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" @@ -667,6 +1522,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -799,6 +1659,14 @@ confusing-browser-globals@^1.0.10: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1365,6 +2233,13 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + fastq@^1.6.0: version "1.17.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" @@ -2084,6 +2959,13 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +mnemonist@0.38.3: + version "0.38.3" + resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.3.tgz#35ec79c1c1f4357cfda2fe264659c2775ccd7d9d" + integrity sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw== + dependencies: + obliterator "^1.6.1" + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -2151,7 +3033,7 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -2227,6 +3109,11 @@ object.values@^1.1.6, object.values@^1.1.7: define-properties "^1.2.1" es-object-atoms "^1.0.0" +obliterator@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-1.6.1.tgz#dea03e8ab821f6c4d96a299e17aef6a3af994ef3" + integrity sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2760,6 +3647,11 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + styled-jsx@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" @@ -2879,7 +3771,12 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2.4.0, tslib@^2.6.2: +tslib@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.3.1, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -2980,6 +3877,16 @@ util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +vary@^1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + watchpack@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" From a779a27293cc88050d64ca13c2c47df95b881527 Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Thu, 18 Apr 2024 23:25:55 +0900 Subject: [PATCH 5/6] =?UTF-8?q?FIX:=20invite=20=ED=8E=98=EC=9D=B4=EC=A7=80?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/manage/invite.tsx | 49 +++++++------------------------------ 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/src/pages/manage/invite.tsx b/src/pages/manage/invite.tsx index c0ca4df..fdf7e2a 100644 --- a/src/pages/manage/invite.tsx +++ b/src/pages/manage/invite.tsx @@ -43,7 +43,7 @@ export default function Invite() { 토: "inactive", 일: "inactive", }); - + const days: (keyof DayType)[] = ["월", "화", "수", "목", "금", "토", "일"]; const [workFrom, setWorkFrom] = useState("0000"); const [workUntil, setWorkUntil] = useState("0000"); @@ -84,14 +84,11 @@ export default function Invite() { }); setInviteSchedule(newSchedule); // 갱신된 스케줄로 상태 업데이트 - setCurrentView("inital_set"); - setWorkFrom("0000"); setWorkUntil("0000"); setRestFrom("0000"); setRestUntil("0000"); - setIsButtonActive(false); } }; @@ -115,7 +112,6 @@ export default function Invite() { ); }, ); - setIsButtonActive(isAnyScheduleChanged); }, [inviteSchedule]); @@ -141,41 +137,14 @@ export default function Invite() {
근무 요일
- onChipClick("월")} - /> - onChipClick("화")} - /> - onChipClick("수")} - /> - onChipClick("목")} - /> - onChipClick("금")} - /> - onChipClick("토")} - /> - onChipClick("일")} - /> + {days.map((day: keyof DayType) => ( + onChipClick(day)} + /> + ))} {currentView === "manage_time" && (
From 2927c9b578e617882d1fef1d4b5b876c8a3bc24c Mon Sep 17 00:00:00 2001 From: Wonchang0314 Date: Mon, 29 Apr 2024 15:21:06 +0900 Subject: [PATCH 6/6] =?UTF-8?q?FIX:=20=EB=A7=81=ED=81=AC=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=ED=8F=B0=ED=8A=B8=EB=94=94=EC=9E=90=EC=9D=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/screen/manage/ShareLink.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/screen/manage/ShareLink.tsx b/src/screen/manage/ShareLink.tsx index fa48d79..6ad0118 100644 --- a/src/screen/manage/ShareLink.tsx +++ b/src/screen/manage/ShareLink.tsx @@ -66,7 +66,9 @@ function ShareLink() { link, () => { setLinkCopied(true); + /* setTimeout(() => setLinkCopied(false), 2000); + */ }, err => { console.log("링크를 복사하는데 실패했습니다: ", err); @@ -96,13 +98,16 @@ function ShareLink() { 링크복사가 안되었나요?
{linkCopied && ( -
- 링크가 자동으로 복사되었습니다. +
+

링크가 자동으로 복사되었습니다.

)}