From 2b5f14cf6979706d394a7699aa00f2b5e9d02bbb Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:37:54 -0500
Subject: [PATCH 01/26] Require Hello World in the document
---
src/text.Test.tsx | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 src/text.Test.tsx
diff --git a/src/text.Test.tsx b/src/text.Test.tsx
new file mode 100644
index 0000000000..b32c330d3f
--- /dev/null
+++ b/src/text.Test.tsx
@@ -0,0 +1,9 @@
+import React from "react";
+import { render, screen } from "@testing-library/react";
+import App from "./App";
+
+test("renders the text 'Hello World' somewhere", () => {
+ render();
+ const text = screen.getByText(/Hello World/);
+ expect(text).toBeInTheDocument();
+});
From a7dee05e0bee0379110c6189433d12482280146a Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:41:17 -0500
Subject: [PATCH 02/26] Rename text.Test.tsx to text.test.tsx
---
src/{text.Test.tsx => text.test.tsx} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename src/{text.Test.tsx => text.test.tsx} (100%)
diff --git a/src/text.Test.tsx b/src/text.test.tsx
similarity index 100%
rename from src/text.Test.tsx
rename to src/text.test.tsx
From 3e381f38b1d44afd102eb053a8ba9a48a069434e Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:56:42 -0500
Subject: [PATCH 03/26] Include the task info
---
public/tasks/task-first-branch.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 public/tasks/task-first-branch.md
diff --git a/public/tasks/task-first-branch.md b/public/tasks/task-first-branch.md
new file mode 100644
index 0000000000..94333338a0
--- /dev/null
+++ b/public/tasks/task-first-branch.md
@@ -0,0 +1,5 @@
+# Task - First Branch
+
+Version: 0.0.1
+
+Pass a short test to have certain text on the page.
From e6b1dab1961daf6f03459789cef974bf043501f2 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Thu, 3 Feb 2022 14:10:55 -0500
Subject: [PATCH 04/26] Allow one or more instances of the Hello World text
---
src/text.test.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/text.test.tsx b/src/text.test.tsx
index b32c330d3f..f99a063e76 100644
--- a/src/text.test.tsx
+++ b/src/text.test.tsx
@@ -4,6 +4,6 @@ import App from "./App";
test("renders the text 'Hello World' somewhere", () => {
render();
- const text = screen.getByText(/Hello World/);
- expect(text).toBeInTheDocument();
+ const texts = screen.getAllByText(/Hello World/);
+ expect(texts.length).toBeGreaterThanOrEqual(1);
});
From 7a207345d9e404afd04607811b89bb758de02905 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sat, 24 Aug 2024 12:52:12 -0400
Subject: [PATCH 05/26] Include json test command here
---
package.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/package.json b/package.json
index cf6e1bc772..fc2b66a549 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"build": "react-scripts build",
"test": "react-scripts test",
"test:cov": "react-scripts test --coverage --watchAll",
+ "test:json": "react-scripts test --json --watchAll=false --outputFile jest-output.json --coverage",
"eject": "react-scripts eject",
"lint": "eslint ./src --ext .tsx --ext .ts --max-warnings 0",
"eslint-output": "eslint-output ./src --ext .tsx --ext .ts --max-warnings 0",
From 7fe9ca316fad2e694586e037fe601b85a2584c56 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:37:54 -0500
Subject: [PATCH 06/26] Require Hello World in the document
---
src/text.Test.tsx | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 src/text.Test.tsx
diff --git a/src/text.Test.tsx b/src/text.Test.tsx
new file mode 100644
index 0000000000..b32c330d3f
--- /dev/null
+++ b/src/text.Test.tsx
@@ -0,0 +1,9 @@
+import React from "react";
+import { render, screen } from "@testing-library/react";
+import App from "./App";
+
+test("renders the text 'Hello World' somewhere", () => {
+ render();
+ const text = screen.getByText(/Hello World/);
+ expect(text).toBeInTheDocument();
+});
From b8b8878c873d4faa2fd5f04d656e23d66c7d6cef Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:56:42 -0500
Subject: [PATCH 07/26] Include the task info
---
public/tasks/task-first-branch.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 public/tasks/task-first-branch.md
diff --git a/public/tasks/task-first-branch.md b/public/tasks/task-first-branch.md
new file mode 100644
index 0000000000..94333338a0
--- /dev/null
+++ b/public/tasks/task-first-branch.md
@@ -0,0 +1,5 @@
+# Task - First Branch
+
+Version: 0.0.1
+
+Pass a short test to have certain text on the page.
From fbdebdec2006b01d3976bd9408037baf82eb5e56 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:41:17 -0500
Subject: [PATCH 08/26] Rename text.Test.tsx to text.test.tsx
---
src/{text.Test.tsx => text.test.tsx} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename src/{text.Test.tsx => text.test.tsx} (100%)
diff --git a/src/text.Test.tsx b/src/text.test.tsx
similarity index 100%
rename from src/text.Test.tsx
rename to src/text.test.tsx
From 2f0146c22beca5c5ac48603876f0fa8ea2e2e905 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Thu, 3 Feb 2022 14:10:55 -0500
Subject: [PATCH 09/26] Allow one or more instances of the Hello World text
---
src/text.test.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/text.test.tsx b/src/text.test.tsx
index b32c330d3f..f99a063e76 100644
--- a/src/text.test.tsx
+++ b/src/text.test.tsx
@@ -4,6 +4,6 @@ import App from "./App";
test("renders the text 'Hello World' somewhere", () => {
render();
- const text = screen.getByText(/Hello World/);
- expect(text).toBeInTheDocument();
+ const texts = screen.getAllByText(/Hello World/);
+ expect(texts.length).toBeGreaterThanOrEqual(1);
});
From ac36b32302a8ea2e66b4b954626c8e396e172075 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sat, 29 Jan 2022 23:59:24 -0500
Subject: [PATCH 10/26] First set of tests
---
public/tasks/task-html-css.md | 5 +++++
src/HtmlCss.test.tsx | 28 ++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
create mode 100644 public/tasks/task-html-css.md
create mode 100644 src/HtmlCss.test.tsx
diff --git a/public/tasks/task-html-css.md b/public/tasks/task-html-css.md
new file mode 100644
index 0000000000..ebc0efcba5
--- /dev/null
+++ b/public/tasks/task-html-css.md
@@ -0,0 +1,5 @@
+# Task - HTML/CSS
+
+Version: 0.0.1
+
+Add in some HTML and CSS, including a fancy looking button.
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
new file mode 100644
index 0000000000..168ce37fde
--- /dev/null
+++ b/src/HtmlCss.test.tsx
@@ -0,0 +1,28 @@
+import React from "react";
+import { render, screen } from "@testing-library/react";
+import App from "./App";
+
+describe("Some HTML Elements are added.", () => {
+ test("There is a header", () => {
+ render();
+ const header = screen.getByRole("heading");
+ expect(header).toBeInTheDocument();
+ });
+});
+
+describe("Some basic CSS is added.", () => {
+ test("There is a floating red box", () => {
+ render();
+ expect(true);
+ });
+});
+
+describe("Some Bootstrap Elements are added", () => {
+ test("There is a bootstrap button", () => {
+ render();
+ const button = screen.getByRole("button");
+ expect(button).toBeInTheDocument();
+ expect(button).toHaveClass("btn");
+ expect(button).toHaveClass("btn-primary");
+ });
+});
From d04739d1d2ec0c934c0ecf1dc05ac1289063627d Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sun, 30 Jan 2022 00:24:38 -0500
Subject: [PATCH 11/26] Some logging tests
---
src/HtmlCss.test.tsx | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 168ce37fde..bf957616f9 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -1,6 +1,7 @@
import React from "react";
import { render, screen } from "@testing-library/react";
import App from "./App";
+import userEvent from "@testing-library/user-event";
describe("Some HTML Elements are added.", () => {
test("There is a header", () => {
@@ -18,11 +19,25 @@ describe("Some basic CSS is added.", () => {
});
describe("Some Bootstrap Elements are added", () => {
- test("There is a bootstrap button", () => {
+ test("There is one bootstrap button with the text 'Log Hello World'", () => {
render();
- const button = screen.getByRole("button");
+ const button = screen.getByRole("button", { name: /Log Hello World/i });
expect(button).toBeInTheDocument();
expect(button).toHaveClass("btn");
expect(button).toHaveClass("btn-primary");
});
+
+ test("Not clicking the bootstrap button does not logs 'Hello World!'", () => {
+ const consoleSpy = jest.spyOn(console, "log");
+ render();
+ expect(consoleSpy).not.toHaveBeenCalledWith("Hello World!");
+ });
+
+ test("Clicking the bootstrap button logs 'Hello World!'", () => {
+ const consoleSpy = jest.spyOn(console, "log");
+ render();
+ const button = screen.getByRole("button", { name: /Log Hello World/i });
+ userEvent.click(button);
+ expect(consoleSpy).toHaveBeenCalledWith("Hello World!");
+ });
});
From b26100f543943eced73fdff33784861243c65386 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sun, 30 Jan 2022 00:47:43 -0500
Subject: [PATCH 12/26] More html tests
---
src/HtmlCss.test.tsx | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index bf957616f9..676c37f903 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -9,6 +9,20 @@ describe("Some HTML Elements are added.", () => {
const header = screen.getByRole("heading");
expect(header).toBeInTheDocument();
});
+
+ test("There is an image with alt text", () => {
+ render();
+ const image = screen.getByRole("image");
+ expect(image).toBeInTheDocument();
+ expect(image).toHaveAttribute("alt");
+ });
+
+ test("There is a list with at least three elements", () => {
+ render();
+ const list = screen.getByRole("list");
+ expect(list).toBeInTheDocument();
+ expect(list.children.length).toBeGreaterThanOrEqual(3);
+ });
});
describe("Some basic CSS is added.", () => {
From 3bf4550a8f042dee28a57c06abec05dfce779519 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sun, 30 Jan 2022 00:55:24 -0500
Subject: [PATCH 13/26] Fix the image test
---
src/HtmlCss.test.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 676c37f903..79b7db2dda 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -12,7 +12,7 @@ describe("Some HTML Elements are added.", () => {
test("There is an image with alt text", () => {
render();
- const image = screen.getByRole("image");
+ const image = screen.getByRole("img");
expect(image).toBeInTheDocument();
expect(image).toHaveAttribute("alt");
});
From 8dff2b64a2efc0b1b49703077965fe5e334eab1a Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:31:58 -0500
Subject: [PATCH 14/26] Updated CSS tests, left a note about additional tests
---
src/HtmlCss.test.tsx | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 79b7db2dda..379fc8f449 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -30,6 +30,14 @@ describe("Some basic CSS is added.", () => {
render();
expect(true);
});
+
+ test("The background color of the header area is different", () => {
+ render();
+ const banner = screen.getByRole("banner");
+ expect(banner).not.toHaveStyle({
+ "background-color": "rgb(40, 44, 52)"
+ });
+ });
});
describe("Some Bootstrap Elements are added", () => {
From b66d4de909f74de4cba160a6fff05b078b9b47cc Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Mon, 31 Jan 2022 16:32:13 -0500
Subject: [PATCH 15/26] See previous commit message
---
src/HtmlCss.test.tsx | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 379fc8f449..36767ad350 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -26,11 +26,6 @@ describe("Some HTML Elements are added.", () => {
});
describe("Some basic CSS is added.", () => {
- test("There is a floating red box", () => {
- render();
- expect(true);
- });
-
test("The background color of the header area is different", () => {
render();
const banner = screen.getByRole("banner");
@@ -63,3 +58,7 @@ describe("Some Bootstrap Elements are added", () => {
expect(consoleSpy).toHaveBeenCalledWith("Hello World!");
});
});
+
+/**
+ * Remember, there are additional tasks described on the page!
+ */
From 0a24364f67b1ee221ebe175d6c494d5eca6ad7dc Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sat, 24 Aug 2024 13:10:09 -0400
Subject: [PATCH 16/26] Add in new css test
---
src/HtmlCss.test.tsx | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 36767ad350..48b0a6df2d 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -30,7 +30,7 @@ describe("Some basic CSS is added.", () => {
render();
const banner = screen.getByRole("banner");
expect(banner).not.toHaveStyle({
- "background-color": "rgb(40, 44, 52)"
+ "background-color": "rgb(40, 44, 52)",
});
});
});
@@ -59,6 +59,25 @@ describe("Some Bootstrap Elements are added", () => {
});
});
-/**
- * Remember, there are additional tasks described on the page!
- */
+describe("Some additional CSS was added", () => {
+ test("checks if any element has a background color of red", () => {
+ const { container } = render();
+ // Get all elements in the rendered container
+ const elements = container.querySelectorAll("*");
+
+ // Check if any element has a background color of red
+ let foundRedBackground = false;
+
+ elements.forEach((element) => {
+ const style = getComputedStyle(element);
+ if (
+ style.backgroundColor === "red" ||
+ style.backgroundColor === "rgb(255, 0, 0)"
+ ) {
+ foundRedBackground = true;
+ }
+ });
+
+ expect(foundRedBackground).toBe(true);
+ });
+});
From 4d43d7a5d133522b0a8d92e1cb3d7e4053a81992 Mon Sep 17 00:00:00 2001
From: Austin Cory Bart
Date: Sat, 24 Aug 2024 13:12:28 -0400
Subject: [PATCH 17/26] Add in points
---
src/HtmlCss.test.tsx | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/HtmlCss.test.tsx b/src/HtmlCss.test.tsx
index 48b0a6df2d..320cb97524 100644
--- a/src/HtmlCss.test.tsx
+++ b/src/HtmlCss.test.tsx
@@ -4,20 +4,20 @@ import App from "./App";
import userEvent from "@testing-library/user-event";
describe("Some HTML Elements are added.", () => {
- test("There is a header", () => {
+ test("(2 pts) There is a header", () => {
render();
const header = screen.getByRole("heading");
expect(header).toBeInTheDocument();
});
- test("There is an image with alt text", () => {
+ test("(2 pts) There is an image with alt text", () => {
render();
const image = screen.getByRole("img");
expect(image).toBeInTheDocument();
expect(image).toHaveAttribute("alt");
});
- test("There is a list with at least three elements", () => {
+ test("(2 pts) There is a list with at least three elements", () => {
render();
const list = screen.getByRole("list");
expect(list).toBeInTheDocument();
@@ -25,7 +25,7 @@ describe("Some HTML Elements are added.", () => {
});
});
-describe("Some basic CSS is added.", () => {
+describe("(2 pts) Some basic CSS is added.", () => {
test("The background color of the header area is different", () => {
render();
const banner = screen.getByRole("banner");
@@ -35,7 +35,7 @@ describe("Some basic CSS is added.", () => {
});
});
-describe("Some Bootstrap Elements are added", () => {
+describe("(2 pts) Some Bootstrap Elements are added", () => {
test("There is one bootstrap button with the text 'Log Hello World'", () => {
render();
const button = screen.getByRole("button", { name: /Log Hello World/i });
@@ -44,13 +44,13 @@ describe("Some Bootstrap Elements are added", () => {
expect(button).toHaveClass("btn-primary");
});
- test("Not clicking the bootstrap button does not logs 'Hello World!'", () => {
+ test("(2 pts) Not clicking the bootstrap button does not logs 'Hello World!'", () => {
const consoleSpy = jest.spyOn(console, "log");
render();
expect(consoleSpy).not.toHaveBeenCalledWith("Hello World!");
});
- test("Clicking the bootstrap button logs 'Hello World!'", () => {
+ test("(2 pts) Clicking the bootstrap button logs 'Hello World!'", () => {
const consoleSpy = jest.spyOn(console, "log");
render();
const button = screen.getByRole("button", { name: /Log Hello World/i });
@@ -60,7 +60,7 @@ describe("Some Bootstrap Elements are added", () => {
});
describe("Some additional CSS was added", () => {
- test("checks if any element has a background color of red", () => {
+ test("(2 pts) checks if any element has a background color of red", () => {
const { container } = render();
// Get all elements in the rendered container
const elements = container.querySelectorAll("*");
From 55c8e9a18038c21431b93e31126851c484f48c5c Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Fri, 29 Aug 2025 13:27:48 -0400
Subject: [PATCH 18/26] Added name to App
---
src/App.tsx | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/App.tsx b/src/App.tsx
index b77558eaac..62365e91a9 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,6 +7,10 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
+
+
Edit src/App.tsx and save. This page will
automatically reload.
From 124cb06058c4754c9be2cc0c9f56c49b3695804f Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Fri, 29 Aug 2025 14:39:33 -0400
Subject: [PATCH 19/26] Added name to App
---
src/App.tsx | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index 62365e91a9..c6981eacef 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,10 +7,9 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
-
- Angel Jose
+
-
Edit src/App.tsx and save. This page will
automatically reload.
From c8f21b787daaac5032b6ee9e3920ad5881649bdf Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Sat, 30 Aug 2025 22:04:08 -0400
Subject: [PATCH 20/26] Added name to App
---
src/App.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index c6981eacef..b0be3df3a6 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,9 +7,9 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
-
+
Edit src/App.tsx and save. This page will
automatically reload.
From 23ac51b51130c04fd356f29199e5a85dcd1fe4f0 Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Wed, 3 Sep 2025 15:10:02 -0400
Subject: [PATCH 21/26] Add Hello World to App
---
src/App.tsx | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/App.tsx b/src/App.tsx
index b0be3df3a6..55a2923ab3 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -14,6 +14,9 @@ function App(): React.JSX.Element {
Edit src/App.tsx and save. This page will
automatically reload.
+
+ Hello World
+
);
}
From a50097e60e17ef9364e0464d982163b9e0232528 Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Thu, 4 Sep 2025 12:24:12 -0400
Subject: [PATCH 22/26] Added Hello World to App
---
src/App.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/App.tsx b/src/App.tsx
index 55a2923ab3..fc118cfce8 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -16,7 +16,7 @@ function App(): React.JSX.Element {
Hello World
-
+
);
}
From 0d7a76c9c9d0e54220d768846fab75dfd1a113df Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Thu, 4 Sep 2025 21:26:01 -0400
Subject: [PATCH 23/26] added task files and removed git repo
---
git | 0
package-lock.json | 119 +++++++++++++++++++++-------------------------
src/App.tsx | 8 +---
src/tasks | 1 +
src/text.test.tsx | 2 +-
5 files changed, 59 insertions(+), 71 deletions(-)
create mode 100644 git
create mode 160000 src/tasks
diff --git a/git b/git
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/package-lock.json b/package-lock.json
index 8c3779f487..cacf8a1063 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3273,7 +3273,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
"integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@sinclair/typebox": "^0.27.8"
@@ -3436,7 +3436,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
"integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -3454,7 +3454,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -3470,7 +3470,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -3487,7 +3487,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -3500,14 +3500,14 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@jest/types/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -3517,7 +3517,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -3909,7 +3909,7 @@
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
"integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@sinonjs/commons": {
@@ -4222,7 +4222,6 @@
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz",
"integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.10.4",
@@ -4242,7 +4241,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -4258,7 +4256,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -4275,7 +4272,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -4288,14 +4284,12 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
"license": "MIT"
},
"node_modules/@testing-library/dom/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -4305,7 +4299,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -4470,35 +4463,34 @@
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
"integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node16": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
"integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@types/aria-query": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
"integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/babel__core": {
@@ -4911,7 +4903,7 @@
"version": "17.0.33",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@types/yargs-parser": "*"
@@ -5508,7 +5500,7 @@
"version": "8.3.3",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
"integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"acorn": "^8.11.0"
@@ -7210,7 +7202,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/cross-spawn": {
@@ -7947,7 +7939,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
@@ -13021,7 +13013,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
"integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -13031,7 +13023,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
"integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
@@ -13949,7 +13941,7 @@
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
"integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@@ -13959,7 +13951,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
"integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.0.0",
@@ -13994,7 +13986,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -14010,7 +14002,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -14027,7 +14019,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -14040,14 +14032,14 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/jest-resolve/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -14057,7 +14049,7 @@
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"is-core-module": "^2.13.0",
@@ -14075,7 +14067,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -14518,7 +14510,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
"integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
@@ -14536,7 +14528,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -14552,7 +14544,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -14569,7 +14561,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -14582,14 +14574,14 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/jest-util/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -14599,7 +14591,7 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -14612,7 +14604,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
"integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jest/types": "^29.6.3",
@@ -14630,7 +14622,7 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -14646,7 +14638,7 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -14659,7 +14651,7 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -14676,7 +14668,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -14689,14 +14681,14 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/jest-validate/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -14706,7 +14698,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
"integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jest/schemas": "^29.6.3",
@@ -14721,7 +14713,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -14734,14 +14726,14 @@
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/jest-validate/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -14850,7 +14842,7 @@
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
"integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@types/node": "*",
@@ -14866,7 +14858,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -14876,7 +14868,7 @@
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -15368,7 +15360,6 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
"integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
- "dev": true,
"license": "MIT",
"bin": {
"lz-string": "bin/bin.js"
@@ -15402,7 +15393,7 @@
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/makeerror": {
@@ -20668,7 +20659,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
"integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -22588,7 +22579,7 @@
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
@@ -22632,7 +22623,7 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/tsconfig-paths": {
@@ -23056,7 +23047,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/v8-to-istanbul": {
@@ -24118,7 +24109,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
diff --git a/src/App.tsx b/src/App.tsx
index fc118cfce8..a1e93bca44 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -7,16 +7,12 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
-
- Angel Jose
-
+ Angel Jose
Edit src/App.tsx and save. This page will
automatically reload.
-
- Hello World
-
+ Hello World
);
}
diff --git a/src/tasks b/src/tasks
new file mode 160000
index 0000000000..42b33db682
--- /dev/null
+++ b/src/tasks
@@ -0,0 +1 @@
+Subproject commit 42b33db682337400db6357ef2f826920c279d3b0
diff --git a/src/text.test.tsx b/src/text.test.tsx
index f99a063e76..e7e4a3507c 100644
--- a/src/text.test.tsx
+++ b/src/text.test.tsx
@@ -6,4 +6,4 @@ test("renders the text 'Hello World' somewhere", () => {
render();
const texts = screen.getAllByText(/Hello World/);
expect(texts.length).toBeGreaterThanOrEqual(1);
-});
+});
\ No newline at end of file
From dd1a0a8872e22a9cd846bbfcc02246b2d8caff97 Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Thu, 4 Sep 2025 21:48:55 -0400
Subject: [PATCH 24/26] Readd Hello World to App
---
src/App.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/App.tsx b/src/App.tsx
index a1e93bca44..a6160f9dbb 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -12,7 +12,7 @@ function App(): React.JSX.Element {
Edit src/App.tsx and save. This page will
automatically reload.
- Hello World
+ Hello World
);
}
From 9f529e01c58b1ce55f0bf4d7888c5fc13120525c Mon Sep 17 00:00:00 2001
From: Angel Jose
Date: Mon, 8 Sep 2025 11:20:08 -0400
Subject: [PATCH 25/26] changes from Task 3
---
src/App.tsx | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
src/dog.jpg | Bin 0 -> 493969 bytes
2 files changed, 47 insertions(+), 2 deletions(-)
create mode 100644 src/dog.jpg
diff --git a/src/App.tsx b/src/App.tsx
index a6160f9dbb..c570891ce4 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,5 +1,8 @@
import React from "react";
import "./App.css";
+import { Button, Col, Container, Row } from "react-bootstrap";
+import dog from "./dog.jpg"
+
function App(): React.JSX.Element {
return (
@@ -7,14 +10,56 @@ function App(): React.JSX.Element {
UD CISC275 with React Hooks and TypeScript
+ This is header text
Angel Jose
Edit src/App.tsx and save. This page will
automatically reload.
- Hello World
+ Hello World!
+
+
+
+ - golden retriever
+ - poodle
+ - german shepard
+
+
+
+
+
+
+ {" "}
+ First column.
+
+
+
+ Second Column.
+
+
+
+
+ This is colored text
);
}
-
export default App;
diff --git a/src/dog.jpg b/src/dog.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e696ff714d2890781530b4988a95b68d1bf88d30
GIT binary patch
literal 493969
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%0DZ9N?kz9$%{t%D5qS?=U40Jo9>7)e`T03-SWEU#j
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 t)#sZ!4@(dY_}QMxCX~gjXNL$5QQs)zcY2J5AyZ
zv3eKOvx3eqln4Y7D-fItBq>jxA>XD6iU%MD$}Ba=cgs)jAel!C>sqriKvcTwNPb5B+eV8INbB&T`i%2RVZ
zr!sjR0ph$0rnFeWkZmFc`BqJPBUlN1Z(MA>rQP-x@rJ(KAEfq(M>qZ&56Rl+j6wCQ
zD-ilAC(M(vt&T>GNPUSvcg~W@P2s
zRy`6x+eA-I_~H0W@f$)p*o%~w|)ASg@
z{({qLI%~HiDvH
z3C%|2*IqqNbw?9!7YBUG$&<>);Q~}Qavi9;e-?r1EI8-SrQYRw55s2}*DdcvqQ+O_
zz@y$PFP?*1ekuva!=)M3Mxp5n=r3MWdVfaZqZEg0i%n#xZn%Lp#H_B
zenf7(wH`HIOF(VN$$!Oxk<44);7K8KK+IIbAFLcliJ5~UG6@Hc_8fsR$Tkc{act>N$`hqkC^IYF1`b-w6z5_h#;z)omV6}Z=@1~wLK@+s9z
z3wc%4LS6`!ID}@G4ER{MLWY8tr!j(xxISL?PV<40*??T0D=ntp`
zo>C_}`x$iDP^o@pIU+WHuOSK7H@Sf&
zj@esr*~SC>c^nDFK*W&^bgN>D<6;=!=@*l_TTseJ!g^!xW6SO(4OIxSzUr7jD{}E&
zFwJPYRT+wpMo=~CvZ|nwHCZsc2Y^6ryj9cWb6=8{Ph0Gey?!Oi-Hkw?v3
z-K%z`0eg*I@fx%C<(m3uTjB6%+XJ6)B3}DKUt?ztoP<}EQ|@to#C?!!!9~hrs_dwl
zDdrFS%|;#rsWU=oW2JuSM-NEYek;GQ>9|+!5I=IaI<6!6QYrju8>TTwOP74@XsH#N
z$yC>0J9L<2&Vr)f!dqk5j<|;kOE5CFn5p`dLtLr76bRBv+#TPY%ss{-|^bx8IGRUKY2=PgLM
zbW^sP)`mf|vm1KD*p@gDKUf=NYiEK(
zB?>~L*XH_uQZ2Y4DK79wi0Mm4pyR~V0e5Y-I=%qtI)jXyEv5EcYq%yBGsIXd&6?nz4(Mj7%q6Mvjq+z3*;ei|JEl1*FNpuItlB0)$;@mmo
zY|e2{ohnOR_-7*Bvtd^>g+{Z;vq^+{2=hAAIM(*K62#JnJ{OYj)I*3D@AU==?U4-7N5!^!+aA!>d>60-itFNo
zdd1Lq5|#V>4?J~|pJmngf_P-kh#{{Bo)^?-k@!<>oL?%pSk6&7O2YnNP=w`TWAU2S
z%P^32@$lwk>{^psoJ}nuWlIU@8Uvu2OJ>2`b$`IWlV}I>TmuA{F_mU}PxH<|CPtjt
zN9$LvtkS=bqp>$jHqtkUOGs%g8P|NF4!q|S`{c=&GWXZaL62IKT;&>+W6il%tV3fY
zN;T`I01&+4PtifdFB1iieAFxMbA7uCv>oF~q0?N#+}oN$X8vVS9;n%5%U|Xsk*)YG
zX12`IUN=6shk(B&Et_HMC)tz_pxB@@ZIHQrBj}d9D~@JlKF1kyPp4y}*JwSGM_lQ1
zt>!l8#yI%XJw1rE%QtKq+;P=Qj0R)ll3(Ci{xT6k?E%0ZWW+{q^y)piG6&@4AmRdR
z9juq5ISHSNv1?7e+W1t)R|1!;omg}&2JWLU)`BU?!NK9Hcs4=C
zrVQ>Zt!P07vjO+&1<7$-3nV8X@H@%%a{xP0)4NPCHj{aQVZ$R~zD~yQFq|v4hvY8^
z=(d}s7}u?6%=rI<@pE2@y&LK%$i_)9{7KjFAy(Xaq0OuWDn9LIZYa3P>@l!0VKguO
z@|8!>3e7fIVA<$W9Z-(w=HUj;58!NMIwvPTR;Lf(q*W5&%3t);a-uL{!
zkbp{+In~t%S>;Kk6{mZOKNiNC=3F&yQv3TY@CP=w7L{n+kcfO-SuT} hgZZ@
zYUP>8N^6J%kYY>`-A$I8j_5EHc}7X
zgokr}!Mcqcb7=t3Q+s;&(zt|d)lDv5+zrDhEMX}wInMo*^w!gvTkw}
zJ2$?*y?Bpu@S?4f!KF`ct(Qv!PE`x`99F$aT1Of;#fG>|Xz22~BrX+$x2{ztI29^(SA1G`&XMwv4aZk(71JHQ@PlggrH(YS
zV5~TVYG1x*H5+a9xnRPRH{dc^gZKz#5Fzska$X)dkXPI_6cIwd*{`
z#({}6inyWXEnePzDs!Vwizu!|66adyq6lRA418_Otr35mD`VV9Gl=bSjYs|xIr(zy
zJ%O-j8dE>JcwSCznj;-2JUJLtq=B`Sal_aVxQ<%#HQrYcFZKZ0M8`9%ZT5~XbbN4*
zZ5)!}AW#gjXqU_xORIH!M=-v|P07{fl6xQRLF}HM3glK}zfm*dkGOFk^$c3-yKymU
z7jLn{-iKL^E`~;8qJHHm^T%ZiykJ0&wtd{AbFR8}j;qu)_#eRrj;QGW@&fND8^yG%
z&haKeEzFCF@ur+kTY+^gsJaA%uiN-V#i=ZcQEO5tyNb}4daAAvGQbn?S|z#VU|Ctm
z(Abyaz%P|666#wo=xGc!ze+@$4h#-@;sp+K&sSe+R{PFYwB6xLjq26sQN@pK+~Aaw
z)p@WUtM@C@XWjZ&Mq(0O+tB0W{gtcr>*Tg}^YiNl*{|72oiMk0hDi;#z&%flO*d{u
z_8V`Bb9+OP&0Kj`uQ5K@jbd8m+{H-@*9y($q8rmSmfgsY@kjC4bE`ZJ)%z~xQkBw{
z8@kN**%+Y~@&1b%&uk |