├── .gitignore
├── static
├── vue-demo.gif
├── api-response.png
└── default-vue-app.png
├── src
├── App.vue
├── main.js
├── store.js
├── components
│ ├── Dinosaur.vue
│ ├── HomePage.vue
│ └── Dinosaurs.vue
├── assets
│ └── vue.svg
├── router
│ └── index.ts
└── style.css
├── vite.config.mjs
├── deno.json
├── index.html
├── api
├── main.ts
└── data.json
├── public
└── vite.svg
├── README.md
└── deno.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | .vite
--------------------------------------------------------------------------------
/static/vue-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denoland/deno-vue-example/main/static/vue-demo.gif
--------------------------------------------------------------------------------
/static/api-response.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denoland/deno-vue-example/main/static/api-response.png
--------------------------------------------------------------------------------
/static/default-vue-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/denoland/deno-vue-example/main/static/default-vue-app.png
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
10 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 | import "./style.css";
3 | import App from "./App.vue";
4 | import router from "./router/index.ts";
5 |
6 | const app = createApp(App);
7 | app.use(router);
8 | app.mount("#app");
9 |
--------------------------------------------------------------------------------
/src/store.js:
--------------------------------------------------------------------------------
1 | import { reactive } from "vue";
2 |
3 | export const store = reactive({
4 | dinosaur: {},
5 | setDinosaur(name, description) {
6 | this.dinosaur.name = name;
7 | this.dinosaur.description = description;
8 | },
9 | });
10 |
--------------------------------------------------------------------------------
/src/components/Dinosaur.vue:
--------------------------------------------------------------------------------
1 |
12 |
13 |
14 |
15 | Name: {{ store.dinosaur.name }}
16 |
17 | Description: {{ store.dinosaur.description }}
18 |
--------------------------------------------------------------------------------
/vite.config.mjs:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "npm:vite@^3.1.3";
2 | import vue from "npm:@vitejs/plugin-vue";
3 |
4 | // NOTE(bartlomieju): this is a papercut that shouldn't be required, see README.md
5 | import "npm:vue";
6 | import "npm:vue-router@4";
7 |
8 | // https://vitejs.dev/config/
9 | export default defineConfig({
10 | plugins: [vue()],
11 | });
12 |
--------------------------------------------------------------------------------
/deno.json:
--------------------------------------------------------------------------------
1 | {
2 | "tasks": {
3 | "dev": "deno run -A --unstable --node-modules-dir npm:vite",
4 | "build": "deno run -A --unstable --node-modules-dir npm:vite build",
5 | "preview": "deno run -A --unstable --node-modules-dir npm:vite preview",
6 | "serve": "deno run --allow-net --allow-read https://deno.land/std@0.157.0/http/file_server.ts dist/"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + Vue
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/assets/vue.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHistory } from "vue-router";
2 | import HomePage from "../components/HomePage.vue";
3 | import Dinosaur from "../components/Dinosaur.vue";
4 |
5 | const routes = [
6 | {
7 | path: "/",
8 | name: "Home",
9 | component: HomePage,
10 | },
11 | {
12 | path: "/:dinosaur",
13 | name: "Dinosaur",
14 | component: Dinosaur,
15 | props: true,
16 | },
17 | ];
18 |
19 | const router = createRouter({
20 | history: createWebHistory("/"),
21 | routes,
22 | });
23 |
24 | export default router;
25 |
--------------------------------------------------------------------------------
/src/components/HomePage.vue:
--------------------------------------------------------------------------------
1 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Loading...
19 |
20 |
21 |
22 |
23 | Check out
24 | create-vue, the official Vue + Vite starter
27 |
28 | Learn more about using Deno and Vite.
29 |
30 |
31 |
36 |
--------------------------------------------------------------------------------
/api/main.ts:
--------------------------------------------------------------------------------
1 | import { Application, Router } from "https://deno.land/x/oak@v11.1.0/mod.ts";
2 | import { oakCors } from "https://deno.land/x/cors@v1.2.2/mod.ts";
3 | import data from "./data.json" assert { type: "json" };
4 |
5 | const router = new Router();
6 | router
7 | .get("/", (context) => {
8 | context.response.body = "Welcome to dinosaur API!";
9 | })
10 | .get("/api", (context) => {
11 | context.response.body = data;
12 | })
13 | .get("/api/:dinosaur", (context) => {
14 | if (context?.params?.dinosaur) {
15 | const filtered = data.filter((item) =>
16 | item["name"].toLowerCase() === context.params.dinosaur.toLowerCase()
17 | );
18 | if (filtered.length === 0) {
19 | context.response.body = "No dinosaurs found.";
20 | } else {
21 | context.response.body = filtered[0];
22 | }
23 | }
24 | });
25 |
26 | const app = new Application();
27 | app.use(oakCors()); // Enable CORS for All Routes
28 | app.use(router.routes());
29 | app.use(router.allowedMethods());
30 |
31 | await app.listen({ port: 8000 });
32 |
--------------------------------------------------------------------------------
/src/components/Dinosaurs.vue:
--------------------------------------------------------------------------------
1 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | {{dinosaur.name}}
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
3 | font-size: 16px;
4 | line-height: 24px;
5 | font-weight: 400;
6 |
7 | color-scheme: light dark;
8 | color: rgba(255, 255, 255, 0.87);
9 | background-color: #242424;
10 |
11 | font-synthesis: none;
12 | text-rendering: optimizeLegibility;
13 | -webkit-font-smoothing: antialiased;
14 | -moz-osx-font-smoothing: grayscale;
15 | -webkit-text-size-adjust: 100%;
16 | }
17 |
18 | a {
19 | font-weight: 500;
20 | color: #646cff;
21 | text-decoration: inherit;
22 | }
23 | a:hover {
24 | color: #535bf2;
25 | }
26 |
27 | a {
28 | font-weight: 500;
29 | color: #646cff;
30 | text-decoration: inherit;
31 | }
32 | a:hover {
33 | color: #535bf2;
34 | }
35 |
36 | body {
37 | margin: 0;
38 | display: flex;
39 | place-items: center;
40 | min-width: 320px;
41 | min-height: 100vh;
42 | }
43 |
44 | h1 {
45 | font-size: 3.2em;
46 | line-height: 1.1;
47 | }
48 |
49 | button {
50 | border-radius: 8px;
51 | border: 1px solid transparent;
52 | padding: 0.6em 1.2em;
53 | font-size: 1em;
54 | font-weight: 500;
55 | font-family: inherit;
56 | background-color: #1a1a1a;
57 | cursor: pointer;
58 | transition: border-color 0.25s;
59 | }
60 | button:hover {
61 | border-color: #646cff;
62 | }
63 | button:focus,
64 | button:focus-visible {
65 | outline: 4px auto -webkit-focus-ring-color;
66 | }
67 |
68 | .card {
69 | padding: 2em;
70 | }
71 |
72 | #app {
73 | max-width: 1280px;
74 | margin: 0 auto;
75 | padding: 2rem;
76 | text-align: center;
77 | }
78 |
79 | @media (prefers-color-scheme: light) {
80 | :root {
81 | color: #213547;
82 | background-color: #ffffff;
83 | }
84 | a:hover {
85 | color: #747bff;
86 | }
87 | button {
88 | background-color: #f9f9f9;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # How to use Vue with Deno
2 |
3 | [Vue](https://vuejs.org/) is a progressive front-end JavaScript framework, built
4 | for performance and versatility.
5 |
6 | This How To guide will show you how to create a simple app using Deno, Vite, and
7 | Vue.
8 |
9 | ## Run `npm:create-vite-extra`
10 |
11 | We'll use Vite to scaffold our Vue app. First, run:
12 |
13 | ```
14 | deno run -A npm:create-vite-extra
15 | ```
16 |
17 | Name your project, then select "deno-vue".
18 |
19 | Then, `cd` into your new project and run:
20 |
21 | ```
22 | deno task dev
23 | ```
24 |
25 | You should now be able to view your default Deno and Vue app in your browser:
26 |
27 | 
28 |
29 | ## Add a backend
30 |
31 | The next step is to add a backend API. We'll create a very simple API that
32 | returns information about dinosaurs.
33 |
34 | In the directory, let's create an `api` folder. In that folder, we'll create a
35 | `main.ts` file, which will run the server, and a `data.json`, which is the hard
36 | coded data.
37 |
38 | ```
39 | mkdir api && touch api/data.json && touch api/main.ts
40 | ```
41 |
42 | Copy and paste
43 | [this json file](https://github.com/denoland/deno-vue-example/blob/main/api/data.json)
44 | into your `api/data.json`.
45 |
46 | Then, let's update `api/main.ts`:
47 |
48 | ```ts
49 | import { Application, Router } from "https://deno.land/x/oak@v11.1.0/mod.ts";
50 | import { oakCors } from "https://deno.land/x/cors@v1.2.2/mod.ts";
51 | import data from "./data.json" assert { type: "json" };
52 |
53 | const router = new Router();
54 | router
55 | .get("/", (context) => {
56 | context.response.body = "Welcome to dinosaur API!";
57 | })
58 | .get("/api", (context) => {
59 | context.response.body = data;
60 | })
61 | .get("/api/:dinosaur", (context) => {
62 | if (context?.params?.dinosaur) {
63 | const filtered = data.filter((item) =>
64 | item["name"].toLowerCase() === context.params.dinosaur.toLowerCase()
65 | );
66 | if (filtered.length === 0) {
67 | context.response.body = "No dinosaurs found.";
68 | } else {
69 | context.response.body = filtered[0];
70 | }
71 | }
72 | });
73 |
74 | const app = new Application();
75 | app.use(oakCors()); // Enable CORS for All Routes
76 | app.use(router.routes());
77 | app.use(router.allowedMethods());
78 |
79 | await app.listen({ port: 8000 });
80 | ```
81 |
82 | This is a very simple API server using [`oak`](https://deno.land/x/oak) that
83 | will return dinosaur information based on the route. Let's start the API server:
84 |
85 | ```
86 | deno run --allow-env --allow-net api/main.ts
87 | ```
88 |
89 | If we go to `localhost:8000/api`, we see:
90 |
91 | 
92 |
93 | Lookin' good so far.
94 |
95 | ## Add Vue components
96 |
97 | Let's update `src/components`. We'll add the files:
98 |
99 | - `HomePage.vue`, the component for the home page
100 | - `Dinosaurs.vue`, the component that lists all dinosaur names as anchor links,
101 | and
102 | - `Dinosaur.vue`, the component that shows an individual dinosaur's name and
103 | description
104 |
105 | ```
106 | touch src/components/HomePage.vue src/components/Dinosaurs.vue src/components/Dinosaur.vue
107 | ```
108 |
109 | Before we create the components, let's add some state management.
110 |
111 | ## Maintain state with `store`
112 |
113 | In order to maintain state across our `` and `` components,
114 | we'll use [Vue store](https://vuejs.org/guide/scaling-up/state-management.html).
115 | Note for more complex state management, check out the Vue-endorsed
116 | [Pinia](https://pinia.vuejs.org/) library.
117 |
118 | Create a `src/store.js` file:
119 |
120 | ```
121 | touch src/store.js
122 | ```
123 |
124 | And in it, let's add:
125 |
126 | ```js
127 | import { reactive } from "vue";
128 |
129 | export const store = reactive({
130 | dinosaur: {},
131 | setDinosaur(name, description) {
132 | this.dinosaur.name = name;
133 | this.dinosaur.description = description;
134 | },
135 | });
136 | ```
137 |
138 | We'll import `store` into both `Dinosaurs.vue` and `Dinosaur.vue` to set and
139 | retrieve dinosaur name and description.
140 |
141 | ## Update Vue components
142 |
143 | In `Dinosaurs.vue`, we'll three things:
144 |
145 | - send a `GET` request to our API and return that as `dinosaurs`
146 | - iterate through `dinosaurs` and render each `dinosaur` in `` that
147 | points to the `` component
148 | - add `store.setDinosaur()` to `@click` on each `dinosaur`, which will set the
149 | `store`
150 |
151 | Here is the complete code below:
152 |
153 | ```vue
154 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 | {{dinosaur.name}}
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
199 | ```
200 |
201 | In `Dinosaur.vue`, we'll add:
202 |
203 | - importing `store`
204 | - rendering `store.dinosaur` in the HTML
205 |
206 | ```vue
207 |
217 |
218 |
219 | Name: {{ store.dinosaur.name }}
220 |
221 | Description: {{ store.dinosaur.description }}
222 |
223 | ```
224 |
225 | Next, we'll update `HomePage.vue`. Since the `Dinosaurs` component needs to
226 | fetch the data from the API, we'll use
227 | [``](https://vuejs.org/guide/built-ins/suspense.html), which manages
228 | async dependencies in a component tree.
229 |
230 | ```vue
231 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 | Loading...
248 |
249 |
250 |
251 |
252 | Check out
253 | create-vue, the official Vue + Vite starter
256 |
257 | Learn more about using Deno and Vite.
258 |
259 |
260 |
265 | ```
266 |
267 | Tying it all together, let's update `src/App.vue`:
268 |
269 | ```vue
270 |
272 |
273 |
274 |
275 |
276 |
277 |
279 | ```
280 |
281 | ## Add routing
282 |
283 | You'll notice that we have used `` and ``. These
284 | components are part of the [`vue-router` library](https://router.vuejs.org/),
285 | which we'll have to setup and configure in another file.
286 |
287 | First, let's import `vue-router` in our `vite.config.mjs` file:
288 |
289 | ```ts
290 | import { defineConfig } from "npm:vite@^3.1.3";
291 | import vue from "npm:@vitejs/plugin-vue@^3.2.39";
292 |
293 | import "npm:vue@^3.2.39";
294 | import "npm:vue-router@4";
295 |
296 | // https://vitejs.dev/config/
297 | export default defineConfig({
298 | plugins: [vue()],
299 | });
300 | ```
301 |
302 | Next, let's create a folder named `router`. In it, let's create `index.ts`:
303 |
304 | ```
305 | mkdir router && touch router/index.ts
306 | ```
307 |
308 | In `router/index.ts`, we'll create `router`, which contains information about
309 | each route and their component, and export it. For more information on using
310 | `vue-router`, check out their [guide](https://router.vuejs.org/guide).
311 |
312 | ```ts
313 | import { createRouter, createWebHistory } from "vue-router";
314 | import HomePage from "../components/HomePage.vue";
315 | import Dinosaur from "../components/Dinosaur.vue";
316 |
317 | const routes = [
318 | {
319 | path: "/",
320 | name: "Home",
321 | component: HomePage,
322 | },
323 | {
324 | path: "/:dinosaur",
325 | name: "Dinosaur",
326 | component: Dinosaur,
327 | props: true,
328 | },
329 | ];
330 |
331 | const router = createRouter({
332 | history: createWebHistory("/"),
333 | routes,
334 | });
335 |
336 | export default router;
337 | ```
338 |
339 | Next, in our `src/main.ts` file, which contains all of the logic for the
340 | frontend app, we'll have to import and use `router`:
341 |
342 | ```ts
343 | import { createApp } from "vue";
344 | import "./style.css";
345 | import App from "./App.vue";
346 | import router from "./router/index.ts";
347 |
348 | const app = createApp(App);
349 | app.use(router);
350 | app.mount("#app");
351 | ```
352 |
353 | Let's run it and see what we get so far:
354 |
355 | 
356 |
357 | Awesome!
358 |
--------------------------------------------------------------------------------
/deno.lock:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2",
3 | "remote": {
4 | "https://deno.land/std@0.140.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
5 | "https://deno.land/std@0.140.0/_util/os.ts": "3b4c6e27febd119d36a416d7a97bd3b0251b77c88942c8f16ee5953ea13e2e49",
6 | "https://deno.land/std@0.140.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d",
7 | "https://deno.land/std@0.140.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9",
8 | "https://deno.land/std@0.140.0/bytes/mod.ts": "763f97d33051cc3f28af1a688dfe2830841192a9fea0cbaa55f927b49d49d0bf",
9 | "https://deno.land/std@0.140.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f",
10 | "https://deno.land/std@0.140.0/http/http_status.ts": "71838ad33cb03ff2575f5e8fdea5f930979cdff8a81c11ade497f11d4c026019",
11 | "https://deno.land/std@0.140.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b",
12 | "https://deno.land/std@0.140.0/io/readers.ts": "15062a8863e6df8503ac6629924d04c5e65cf3da15997470525e705831a810c8",
13 | "https://deno.land/std@0.140.0/io/types.d.ts": "01f60ae7ec02675b5dbed150d258fc184a78dfe5c209ef53ba4422b46b58822c",
14 | "https://deno.land/std@0.140.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
15 | "https://deno.land/std@0.140.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
16 | "https://deno.land/std@0.140.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b",
17 | "https://deno.land/std@0.140.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633",
18 | "https://deno.land/std@0.140.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee",
19 | "https://deno.land/std@0.140.0/path/mod.ts": "d3e68d0abb393fb0bf94a6d07c46ec31dc755b544b13144dee931d8d5f06a52d",
20 | "https://deno.land/std@0.140.0/path/posix.ts": "293cdaec3ecccec0a9cc2b534302dfe308adb6f10861fa183275d6695faace44",
21 | "https://deno.land/std@0.140.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9",
22 | "https://deno.land/std@0.140.0/path/win32.ts": "31811536855e19ba37a999cd8d1b62078235548d67902ece4aa6b814596dd757",
23 | "https://deno.land/std@0.140.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21",
24 | "https://deno.land/std@0.152.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74",
25 | "https://deno.land/std@0.152.0/_util/os.ts": "3b4c6e27febd119d36a416d7a97bd3b0251b77c88942c8f16ee5953ea13e2e49",
26 | "https://deno.land/std@0.152.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a",
27 | "https://deno.land/std@0.152.0/bytes/bytes_list.ts": "aba5e2369e77d426b10af1de0dcc4531acecec27f9b9056f4f7bfbf8ac147ab4",
28 | "https://deno.land/std@0.152.0/bytes/equals.ts": "3c3558c3ae85526f84510aa2b48ab2ad7bdd899e2e0f5b7a8ffc85acb3a6043a",
29 | "https://deno.land/std@0.152.0/bytes/mod.ts": "763f97d33051cc3f28af1a688dfe2830841192a9fea0cbaa55f927b49d49d0bf",
30 | "https://deno.land/std@0.152.0/crypto/timing_safe_equal.ts": "82a29b737bc8932d75d7a20c404136089d5d23629e94ba14efa98a8cc066c73e",
31 | "https://deno.land/std@0.152.0/encoding/base64.ts": "c57868ca7fa2fbe919f57f88a623ad34e3d970d675bdc1ff3a9d02bba7409db2",
32 | "https://deno.land/std@0.152.0/fmt/colors.ts": "6f9340b7fb8cc25a993a99e5efc56fe81bb5af284ff412129dd06df06f53c0b4",
33 | "https://deno.land/std@0.152.0/http/_negotiation/common.ts": "410e902f01cdd324e4746e8017595be4fc357d6fc4cd6044f2f808a943d7eaf7",
34 | "https://deno.land/std@0.152.0/http/_negotiation/encoding.ts": "f749c1d539d139af783e8a7741de5a47a98a5e3c9af82b8af512567ccf5fe632",
35 | "https://deno.land/std@0.152.0/http/_negotiation/language.ts": "53c306186904d2dace4c624a8822542866ad332a7f40ac90e0af1504f95c63d0",
36 | "https://deno.land/std@0.152.0/http/_negotiation/media_type.ts": "ecdda87286495f7ff25116858f5088856953e2f1585e593d314e0c71b826a137",
37 | "https://deno.land/std@0.152.0/http/http_errors.ts": "fe9b7f95f7ee0592c3306f8c7aed03ba53d55d1ef81e00041c1171b9588f46d9",
38 | "https://deno.land/std@0.152.0/http/http_status.ts": "897575a7d6bc2b9123f6a38ecbc0f03d95a532c5d92029315dc9f508e12526b8",
39 | "https://deno.land/std@0.152.0/http/negotiation.ts": "f35b1ff2ad4ff9feaa00ac234960b398172768205c8eceaef7f2eafe34716ba2",
40 | "https://deno.land/std@0.152.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b",
41 | "https://deno.land/std@0.152.0/io/readers.ts": "45847ad404afd2f605eae1cff193f223462bc55eeb9ae313c2f3db28aada0fd6",
42 | "https://deno.land/std@0.152.0/io/types.d.ts": "0cae3a62da7a37043661746c65c021058bae020b54e50c0e774916e5d4baee43",
43 | "https://deno.land/std@0.152.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1",
44 | "https://deno.land/std@0.152.0/media_types/mod.ts": "3829264ca0610cac40f3214f939d7733483523f82bc1041c51045d7c75fb93b8",
45 | "https://deno.land/std@0.152.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af",
46 | "https://deno.land/std@0.152.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3",
47 | "https://deno.land/std@0.152.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09",
48 | "https://deno.land/std@0.152.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b",
49 | "https://deno.land/std@0.152.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633",
50 | "https://deno.land/std@0.152.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee",
51 | "https://deno.land/std@0.152.0/path/mod.ts": "56fec03ad0ebd61b6ab39ddb9b0ddb4c4a5c9f2f4f632e09dd37ec9ebfd722ac",
52 | "https://deno.land/std@0.152.0/path/posix.ts": "c1f7afe274290ea0b51da07ee205653b2964bd74909a82deb07b69a6cc383aaa",
53 | "https://deno.land/std@0.152.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9",
54 | "https://deno.land/std@0.152.0/path/win32.ts": "bd7549042e37879c68ff2f8576a25950abbfca1d696d41d82c7bca0b7e6f452c",
55 | "https://deno.land/std@0.152.0/streams/conversion.ts": "fc3db02026183da795fa32ac7549868e9f19c75ba029d4b4c3739af62b48517a",
56 | "https://deno.land/std@0.152.0/testing/_diff.ts": "029a00560b0d534bc0046f1bce4bd36b3b41ada3f2a3178c85686eb2ff5f1413",
57 | "https://deno.land/std@0.152.0/testing/_format.ts": "0d8dc79eab15b67cdc532826213bbe05bccfd276ca473a50a3fc7bbfb7260642",
58 | "https://deno.land/std@0.152.0/testing/asserts.ts": "093735c88f52bbead7f60a1f7a97a2ce4df3c2d5fab00a46956f20b4a5793ccd",
59 | "https://deno.land/x/cors@v1.2.2/abcCors.ts": "cdf83a7eaa69a1bf3ab910d18b9422217902fac47601adcaf0afac5a61845d48",
60 | "https://deno.land/x/cors@v1.2.2/attainCors.ts": "7d6aba0f942495cc31119604e0895c9bb8edd8f8baa7fe78e6c655bd0b4cbf59",
61 | "https://deno.land/x/cors@v1.2.2/cors.ts": "0e2d9167e3685f9bcf48f565e312b6e1883fa458f7337e5ce7bc2e3b29767980",
62 | "https://deno.land/x/cors@v1.2.2/mithCors.ts": "3a359d6e716e0410ede278ab54d875b293a2d66d838aaa7cfbf9ddc1e9e990d3",
63 | "https://deno.land/x/cors@v1.2.2/mod.ts": "2b351913f56d77ad80cb3b8633d4539c9eeddb426dae79437ada0e6a9cb4f1a6",
64 | "https://deno.land/x/cors@v1.2.2/oakCors.ts": "1348dc7673c61b85d2e80559a7b44f8e0246eaa6bcc6ec744fafe5d9b13b5c71",
65 | "https://deno.land/x/cors@v1.2.2/opineCors.ts": "fb5790115c26b7061d84b8d6c17d258a1e241bcab75b0bc3ca1fdb2e57bc5072",
66 | "https://deno.land/x/cors@v1.2.2/types.ts": "97546633ccc7f0df7a29bacba5d91dc6f61decdd1b65258300244dba905d34b8",
67 | "https://deno.land/x/media_types@v3.0.3/mod.ts": "c12ebcac562696c5679fc8d4f16531ec16349c2e7e9211108b27f0baa534eb62",
68 | "https://deno.land/x/oak@v10.6.0/application.ts": "37a78bc0464fa677df5c290ee9a30de1e3da7c6e0ce6c2ff4a721455d5d47b6b",
69 | "https://deno.land/x/oak@v10.6.0/body.ts": "80ef7b8e7bb6bd7907ecdfb9148bffdbde10f9d3be9336d84075038473f804a1",
70 | "https://deno.land/x/oak@v10.6.0/buf_reader.ts": "7cf96aa0ac670b75098113cf88a291a68332cc45efa8a9698f064ac5b8098a0f",
71 | "https://deno.land/x/oak@v10.6.0/content_disposition.ts": "8b8c3cb2fba7138cd5b7f82fc3b5ea39b33db924a824b28261659db7e164621e",
72 | "https://deno.land/x/oak@v10.6.0/context.ts": "078306333a79f1010a49d5e9a05fca3dbc0c18fbda7610fa05400fa2e6eb9f95",
73 | "https://deno.land/x/oak@v10.6.0/cookies.ts": "d9f94b99f26c6169c6982ce12323c41a548d001bfc28f464264c22dc3dbf2181",
74 | "https://deno.land/x/oak@v10.6.0/deps.ts": "82cc4358116d6794ed93d73ee5f1c73e14397101dd7fa9b1b2931041aab72927",
75 | "https://deno.land/x/oak@v10.6.0/etag.ts": "19918f5e1964e3fe6c9fe524a88ffbf9900ce1dfe4146b187b2a86256bb6b663",
76 | "https://deno.land/x/oak@v10.6.0/headers.ts": "9a28c40344e85be0877e192210f89d7de12fa3fc4e9c959f7480f6fc4006fcfe",
77 | "https://deno.land/x/oak@v10.6.0/helpers.ts": "42212afa07a560b2958359cc19577417e89d9574d6579551a0af36ff7f00cc6e",
78 | "https://deno.land/x/oak@v10.6.0/httpError.ts": "8368d20c2bbb1e97eab0f9de5752ed04217675b4b5f33862a4e0bde71a492096",
79 | "https://deno.land/x/oak@v10.6.0/http_server_native.ts": "549dffcd2db5cbb0e44ad50cf9c54956b42a10450b1ac66e1362e32a073c8c1b",
80 | "https://deno.land/x/oak@v10.6.0/http_server_native_request.ts": "07910ea2ed51af6c4e69addf9015cdd8d2b5c9ee03fd4993e386834a129a9eb6",
81 | "https://deno.land/x/oak@v10.6.0/isMediaType.ts": "e7457f8c14245a7bb9a3a48000d50e112bb6fcafeab8fd7bcff16363a0cd8687",
82 | "https://deno.land/x/oak@v10.6.0/keyStack.ts": "7594ef9ff4f9be12a4ad23471a5f8bcbdeb5c1ec8ff51229b47114176b5f280d",
83 | "https://deno.land/x/oak@v10.6.0/mediaTyper.ts": "042b853fc8e9c3f6c628dd389e03ef481552bf07242efc3f8a1af042102a6105",
84 | "https://deno.land/x/oak@v10.6.0/middleware.ts": "de14f045a2ddfe845d89b5d3140ff52cbcc6f3b3965391106ce04480f9786737",
85 | "https://deno.land/x/oak@v10.6.0/middleware/proxy.ts": "b927232f97ec18af4185d7912e45b1191e3ffe24a9c875262ad524211b1274c9",
86 | "https://deno.land/x/oak@v10.6.0/mod.ts": "08de87563f94b7efdd7497e2b06b6e7c8b30e2c209d42caf79d843f38adc2b92",
87 | "https://deno.land/x/oak@v10.6.0/multipart.ts": "23e85f51e155d4ff1e143e8bc8121e006135be7db7bad6367cee711eddd1b724",
88 | "https://deno.land/x/oak@v10.6.0/negotiation/charset.ts": "b4c2e0c49dd5122f130f95bf29508448d983c424801b5bc304b00288b5ae3195",
89 | "https://deno.land/x/oak@v10.6.0/negotiation/common.ts": "f54d599d37408005f8c565d0f6505de51fed31feaa3654a7758e2359c006b02c",
90 | "https://deno.land/x/oak@v10.6.0/negotiation/encoding.ts": "60eb0fc3df57cc39eaa739e0e9e2cda6c20b3aa429d1a0108f503065f5709bbe",
91 | "https://deno.land/x/oak@v10.6.0/negotiation/language.ts": "62ef13ea3146538dd52a4666611bd423ebb9a6438e7312398e17a4d16dbafb51",
92 | "https://deno.land/x/oak@v10.6.0/negotiation/mediaType.ts": "7e25cc34600beea3bf0b0879ff1783c752260fcb517dffea2e122830c36e8451",
93 | "https://deno.land/x/oak@v10.6.0/range.ts": "d13898fcfc27f42309535f8e06ba522f51c811372c7d3bd657a957b52a481622",
94 | "https://deno.land/x/oak@v10.6.0/request.ts": "50c16bd8f8adef03fbb280de8f23b8ea1927fa813bbc87041c35078ad74e70f1",
95 | "https://deno.land/x/oak@v10.6.0/response.ts": "04d5faebf53d79f69a093332fb2180904e8c47d3666f60754b72ef8aca4cfef0",
96 | "https://deno.land/x/oak@v10.6.0/router.ts": "21e9cd4c1d83c9a0848e5943074a5ea748932d8a5fee9ce528f8bd790eaf6483",
97 | "https://deno.land/x/oak@v10.6.0/send.ts": "1e1766c9d2569af636315933fab46b35459893464a759c9a00ece9440eb0a992",
98 | "https://deno.land/x/oak@v10.6.0/server_sent_event.ts": "948b0fe4cb3fe38c7db15e476eb3b7671ef20e566d130e9f701d7c0146aa47dd",
99 | "https://deno.land/x/oak@v10.6.0/structured_clone.ts": "ecf42598652b8082f37252cb873d6e257ad728e6fe73c6bd61f343d94501fbde",
100 | "https://deno.land/x/oak@v10.6.0/testing.ts": "5a2c53dd48e0b45994de668082d26dba4c2a0694f2ceeb1e7c68d5aca170c73f",
101 | "https://deno.land/x/oak@v10.6.0/tssCompare.ts": "27f45f507ef21ba7b727b6c66b491543e6e1815c17194bf0b1d7a1ea5ab8027b",
102 | "https://deno.land/x/oak@v10.6.0/types.d.ts": "a952d39b03215604c12d13688ed868986591e9ea4db831e18df7021fde50d9d3",
103 | "https://deno.land/x/oak@v10.6.0/util.ts": "090f6fbc994a91709560184cdde0d9e72056a41e620da7cde84011e11e6393a3",
104 | "https://deno.land/x/oak@v11.1.0/application.ts": "0a728331822b8e27727ceec48a8499657c3163fc48fd379a8a9578a75f3cdb62",
105 | "https://deno.land/x/oak@v11.1.0/body.ts": "78402a4936accb80372c4944384658105604352d6783de7ff1e36b8832dd93c9",
106 | "https://deno.land/x/oak@v11.1.0/buf_reader.ts": "7cf96aa0ac670b75098113cf88a291a68332cc45efa8a9698f064ac5b8098a0f",
107 | "https://deno.land/x/oak@v11.1.0/content_disposition.ts": "8b8c3cb2fba7138cd5b7f82fc3b5ea39b33db924a824b28261659db7e164621e",
108 | "https://deno.land/x/oak@v11.1.0/context.ts": "014d1ce40e62a7901411425541b0d5a08018968a330595bd686f8d00222a35bb",
109 | "https://deno.land/x/oak@v11.1.0/cookies.ts": "d9f94b99f26c6169c6982ce12323c41a548d001bfc28f464264c22dc3dbf2181",
110 | "https://deno.land/x/oak@v11.1.0/deps.ts": "b897b0f2bec99cd8b402b279b7f21de955d98cbd72835b6c912be5e11c26148b",
111 | "https://deno.land/x/oak@v11.1.0/etag.ts": "19918f5e1964e3fe6c9fe524a88ffbf9900ce1dfe4146b187b2a86256bb6b663",
112 | "https://deno.land/x/oak@v11.1.0/headers.ts": "f50fb05614432bda971021633129aa2e8737e0844e0f01c27a937997b4d8dd4f",
113 | "https://deno.land/x/oak@v11.1.0/helpers.ts": "42212afa07a560b2958359cc19577417e89d9574d6579551a0af36ff7f00cc6e",
114 | "https://deno.land/x/oak@v11.1.0/http_request.ts": "0831c828816fcb58a5aa8361c6865c4151f4c8b59fabcef2e2cd235bb28170c5",
115 | "https://deno.land/x/oak@v11.1.0/http_server_flash.ts": "e312754acad26d3d70f243d657547e697921f67f0a2179dbec41a20a3228fd79",
116 | "https://deno.land/x/oak@v11.1.0/http_server_native.ts": "549dffcd2db5cbb0e44ad50cf9c54956b42a10450b1ac66e1362e32a073c8c1b",
117 | "https://deno.land/x/oak@v11.1.0/http_server_native_request.ts": "07910ea2ed51af6c4e69addf9015cdd8d2b5c9ee03fd4993e386834a129a9eb6",
118 | "https://deno.land/x/oak@v11.1.0/isMediaType.ts": "62d638abcf837ece3a8f07a4b7ca59794135cb0d4b73194c7d5837efd4161005",
119 | "https://deno.land/x/oak@v11.1.0/keyStack.ts": "fa0d5898fb8ba34de1c9cdcf4b2e8434952dc9931671858d33560368784a22ef",
120 | "https://deno.land/x/oak@v11.1.0/mediaTyper.ts": "042b853fc8e9c3f6c628dd389e03ef481552bf07242efc3f8a1af042102a6105",
121 | "https://deno.land/x/oak@v11.1.0/middleware.ts": "de14f045a2ddfe845d89b5d3140ff52cbcc6f3b3965391106ce04480f9786737",
122 | "https://deno.land/x/oak@v11.1.0/middleware/proxy.ts": "b927232f97ec18af4185d7912e45b1191e3ffe24a9c875262ad524211b1274c9",
123 | "https://deno.land/x/oak@v11.1.0/mod.ts": "de52855c8f626e30ba683fb265c0a0773ba2f5f117b3549b7d9c857edba58338",
124 | "https://deno.land/x/oak@v11.1.0/multipart.ts": "98fe9f226de8c26a16d067027b69fb1e34ad8c4055767dd157907d06cea36f9a",
125 | "https://deno.land/x/oak@v11.1.0/range.ts": "68a6df7ab3b868843e33f52deb94c3d4cab25cb9ef369691990c2ac15b04fafb",
126 | "https://deno.land/x/oak@v11.1.0/request.ts": "5852ad36389b48e0428a6f3c90854d01f10d1b15949b56001e1e75c2a00ef0f9",
127 | "https://deno.land/x/oak@v11.1.0/response.ts": "867d81f7eb0c65c7b8e0e0e9e145ededd5b6daa9ad922e6adc6a36a525f439a6",
128 | "https://deno.land/x/oak@v11.1.0/router.ts": "187522a549f6c179ff01d321882a8bfacbfb7f3e24b004ec4534a3613c7f9b0e",
129 | "https://deno.land/x/oak@v11.1.0/send.ts": "7ef2591792426d62add91536bb434566d4b224247ca343fdd63e486f9d4e9446",
130 | "https://deno.land/x/oak@v11.1.0/server_sent_event.ts": "948b0fe4cb3fe38c7db15e476eb3b7671ef20e566d130e9f701d7c0146aa47dd",
131 | "https://deno.land/x/oak@v11.1.0/structured_clone.ts": "ecf42598652b8082f37252cb873d6e257ad728e6fe73c6bd61f343d94501fbde",
132 | "https://deno.land/x/oak@v11.1.0/testing.ts": "7612656efd2975f7a2e6848609f5971922dbec46b76372c5c623202fdd7b9a85",
133 | "https://deno.land/x/oak@v11.1.0/types.d.ts": "41951a18c3bfdb11e40707cab75da078ba8a4907cd7d4e11d8536bc2db0dde05",
134 | "https://deno.land/x/oak@v11.1.0/util.ts": "3af8c4ed04c6cc2bedbe66e562a77fc59c72df31c55a902a63885861ca1639d6",
135 | "https://deno.land/x/path_to_regexp@v6.2.0/index.ts": "e94c04a44bbecac99ff2db2d831afe98b423e627b775cb57fc7935f848c64c51",
136 | "https://deno.land/x/path_to_regexp@v6.2.1/index.ts": "894060567837bae8fc9c5cbd4d0a05e9024672083d5883b525c031eea940e556",
137 | "https://raw.githubusercontent.com/jshttp/mime-db/v1.52.0/db.json": "85c8e1ba609079947c8df83c092900ab0226e1d7b60e5e7105fb7dd701833263"
138 | },
139 | "npm": {
140 | "specifiers": {
141 | "@vitejs/plugin-vue": "@vitejs/plugin-vue@3.1.0",
142 | "vite": "vite@3.2.2",
143 | "vite@^3.1.3": "vite@3.2.2",
144 | "vue": "vue@3.2.40",
145 | "vue-router@4": "vue-router@4.1.5"
146 | },
147 | "packages": {
148 | "@babel/parser@7.20.1": {
149 | "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==",
150 | "dependencies": {}
151 | },
152 | "@esbuild/android-arm@0.15.12": {
153 | "integrity": "sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==",
154 | "dependencies": {}
155 | },
156 | "@esbuild/linux-loong64@0.15.12": {
157 | "integrity": "sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==",
158 | "dependencies": {}
159 | },
160 | "@vitejs/plugin-vue@3.1.0": {
161 | "integrity": "sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==",
162 | "dependencies": {}
163 | },
164 | "@vue/compiler-core@3.2.40": {
165 | "integrity": "sha512-2Dc3Stk0J/VyQ4OUr2yEC53kU28614lZS+bnrCbFSAIftBJ40g/2yQzf4mPBiFuqguMB7hyHaujdgZAQ67kZYA==",
166 | "dependencies": {
167 | "@babel/parser": "@babel/parser@7.20.1",
168 | "@vue/shared": "@vue/shared@3.2.40",
169 | "estree-walker": "estree-walker@2.0.2",
170 | "source-map": "source-map@0.6.1"
171 | }
172 | },
173 | "@vue/compiler-dom@3.2.40": {
174 | "integrity": "sha512-OZCNyYVC2LQJy4H7h0o28rtk+4v+HMQygRTpmibGoG9wZyomQiS5otU7qo3Wlq5UfHDw2RFwxb9BJgKjVpjrQw==",
175 | "dependencies": {
176 | "@vue/compiler-core": "@vue/compiler-core@3.2.40",
177 | "@vue/shared": "@vue/shared@3.2.40"
178 | }
179 | },
180 | "@vue/compiler-sfc@3.2.40": {
181 | "integrity": "sha512-tzqwniIN1fu1PDHC3CpqY/dPCfN/RN1thpBC+g69kJcrl7mbGiHKNwbA6kJ3XKKy8R6JLKqcpVugqN4HkeBFFg==",
182 | "dependencies": {
183 | "@babel/parser": "@babel/parser@7.20.1",
184 | "@vue/compiler-core": "@vue/compiler-core@3.2.40",
185 | "@vue/compiler-dom": "@vue/compiler-dom@3.2.40",
186 | "@vue/compiler-ssr": "@vue/compiler-ssr@3.2.40",
187 | "@vue/reactivity-transform": "@vue/reactivity-transform@3.2.40",
188 | "@vue/shared": "@vue/shared@3.2.40",
189 | "estree-walker": "estree-walker@2.0.2",
190 | "magic-string": "magic-string@0.25.9",
191 | "postcss": "postcss@8.4.18",
192 | "source-map": "source-map@0.6.1"
193 | }
194 | },
195 | "@vue/compiler-ssr@3.2.40": {
196 | "integrity": "sha512-80cQcgasKjrPPuKcxwuCx7feq+wC6oFl5YaKSee9pV3DNq+6fmCVwEEC3vvkf/E2aI76rIJSOYHsWSEIxK74oQ==",
197 | "dependencies": {
198 | "@vue/compiler-dom": "@vue/compiler-dom@3.2.40",
199 | "@vue/shared": "@vue/shared@3.2.40"
200 | }
201 | },
202 | "@vue/devtools-api@6.4.4": {
203 | "integrity": "sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw==",
204 | "dependencies": {}
205 | },
206 | "@vue/reactivity-transform@3.2.40": {
207 | "integrity": "sha512-HQUCVwEaacq6fGEsg2NUuGKIhUveMCjOk8jGHqLXPI2w6zFoPrlQhwWEaINTv5kkZDXKEnCijAp+4gNEHG03yw==",
208 | "dependencies": {
209 | "@babel/parser": "@babel/parser@7.20.1",
210 | "@vue/compiler-core": "@vue/compiler-core@3.2.40",
211 | "@vue/shared": "@vue/shared@3.2.40",
212 | "estree-walker": "estree-walker@2.0.2",
213 | "magic-string": "magic-string@0.25.9"
214 | }
215 | },
216 | "@vue/reactivity@3.2.40": {
217 | "integrity": "sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==",
218 | "dependencies": { "@vue/shared": "@vue/shared@3.2.40" }
219 | },
220 | "@vue/runtime-core@3.2.40": {
221 | "integrity": "sha512-U1+rWf0H8xK8aBUZhnrN97yoZfHbjgw/bGUzfgKPJl69/mXDuSg8CbdBYBn6VVQdR947vWneQBFzdhasyzMUKg==",
222 | "dependencies": {
223 | "@vue/reactivity": "@vue/reactivity@3.2.40",
224 | "@vue/shared": "@vue/shared@3.2.40"
225 | }
226 | },
227 | "@vue/runtime-dom@3.2.40": {
228 | "integrity": "sha512-AO2HMQ+0s2+MCec8hXAhxMgWhFhOPJ/CyRXnmTJ6XIOnJFLrH5Iq3TNwvVcODGR295jy77I6dWPj+wvFoSYaww==",
229 | "dependencies": {
230 | "@vue/runtime-core": "@vue/runtime-core@3.2.40",
231 | "@vue/shared": "@vue/shared@3.2.40",
232 | "csstype": "csstype@2.6.21"
233 | }
234 | },
235 | "@vue/server-renderer@3.2.40": {
236 | "integrity": "sha512-gtUcpRwrXOJPJ4qyBpU3EyxQa4EkV8I4f8VrDePcGCPe4O/hd0BPS7v9OgjIQob6Ap8VDz9G+mGTKazE45/95w==",
237 | "dependencies": {
238 | "@vue/compiler-ssr": "@vue/compiler-ssr@3.2.40",
239 | "@vue/shared": "@vue/shared@3.2.40"
240 | }
241 | },
242 | "@vue/shared@3.2.40": {
243 | "integrity": "sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==",
244 | "dependencies": {}
245 | },
246 | "csstype@2.6.21": {
247 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==",
248 | "dependencies": {}
249 | },
250 | "esbuild-android-64@0.15.12": {
251 | "integrity": "sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==",
252 | "dependencies": {}
253 | },
254 | "esbuild-android-arm64@0.15.12": {
255 | "integrity": "sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==",
256 | "dependencies": {}
257 | },
258 | "esbuild-darwin-64@0.15.12": {
259 | "integrity": "sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==",
260 | "dependencies": {}
261 | },
262 | "esbuild-darwin-arm64@0.15.12": {
263 | "integrity": "sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==",
264 | "dependencies": {}
265 | },
266 | "esbuild-freebsd-64@0.15.12": {
267 | "integrity": "sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==",
268 | "dependencies": {}
269 | },
270 | "esbuild-freebsd-arm64@0.15.12": {
271 | "integrity": "sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==",
272 | "dependencies": {}
273 | },
274 | "esbuild-linux-32@0.15.12": {
275 | "integrity": "sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==",
276 | "dependencies": {}
277 | },
278 | "esbuild-linux-64@0.15.12": {
279 | "integrity": "sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==",
280 | "dependencies": {}
281 | },
282 | "esbuild-linux-arm64@0.15.12": {
283 | "integrity": "sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==",
284 | "dependencies": {}
285 | },
286 | "esbuild-linux-arm@0.15.12": {
287 | "integrity": "sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==",
288 | "dependencies": {}
289 | },
290 | "esbuild-linux-mips64le@0.15.12": {
291 | "integrity": "sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==",
292 | "dependencies": {}
293 | },
294 | "esbuild-linux-ppc64le@0.15.12": {
295 | "integrity": "sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==",
296 | "dependencies": {}
297 | },
298 | "esbuild-linux-riscv64@0.15.12": {
299 | "integrity": "sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==",
300 | "dependencies": {}
301 | },
302 | "esbuild-linux-s390x@0.15.12": {
303 | "integrity": "sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==",
304 | "dependencies": {}
305 | },
306 | "esbuild-netbsd-64@0.15.12": {
307 | "integrity": "sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==",
308 | "dependencies": {}
309 | },
310 | "esbuild-openbsd-64@0.15.12": {
311 | "integrity": "sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==",
312 | "dependencies": {}
313 | },
314 | "esbuild-sunos-64@0.15.12": {
315 | "integrity": "sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==",
316 | "dependencies": {}
317 | },
318 | "esbuild-windows-32@0.15.12": {
319 | "integrity": "sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==",
320 | "dependencies": {}
321 | },
322 | "esbuild-windows-64@0.15.12": {
323 | "integrity": "sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==",
324 | "dependencies": {}
325 | },
326 | "esbuild-windows-arm64@0.15.12": {
327 | "integrity": "sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==",
328 | "dependencies": {}
329 | },
330 | "esbuild@0.15.12": {
331 | "integrity": "sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==",
332 | "dependencies": {
333 | "@esbuild/android-arm": "@esbuild/android-arm@0.15.12",
334 | "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.15.12",
335 | "esbuild-android-64": "esbuild-android-64@0.15.12",
336 | "esbuild-android-arm64": "esbuild-android-arm64@0.15.12",
337 | "esbuild-darwin-64": "esbuild-darwin-64@0.15.12",
338 | "esbuild-darwin-arm64": "esbuild-darwin-arm64@0.15.12",
339 | "esbuild-freebsd-64": "esbuild-freebsd-64@0.15.12",
340 | "esbuild-freebsd-arm64": "esbuild-freebsd-arm64@0.15.12",
341 | "esbuild-linux-32": "esbuild-linux-32@0.15.12",
342 | "esbuild-linux-64": "esbuild-linux-64@0.15.12",
343 | "esbuild-linux-arm": "esbuild-linux-arm@0.15.12",
344 | "esbuild-linux-arm64": "esbuild-linux-arm64@0.15.12",
345 | "esbuild-linux-mips64le": "esbuild-linux-mips64le@0.15.12",
346 | "esbuild-linux-ppc64le": "esbuild-linux-ppc64le@0.15.12",
347 | "esbuild-linux-riscv64": "esbuild-linux-riscv64@0.15.12",
348 | "esbuild-linux-s390x": "esbuild-linux-s390x@0.15.12",
349 | "esbuild-netbsd-64": "esbuild-netbsd-64@0.15.12",
350 | "esbuild-openbsd-64": "esbuild-openbsd-64@0.15.12",
351 | "esbuild-sunos-64": "esbuild-sunos-64@0.15.12",
352 | "esbuild-windows-32": "esbuild-windows-32@0.15.12",
353 | "esbuild-windows-64": "esbuild-windows-64@0.15.12",
354 | "esbuild-windows-arm64": "esbuild-windows-arm64@0.15.12"
355 | }
356 | },
357 | "estree-walker@2.0.2": {
358 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
359 | "dependencies": {}
360 | },
361 | "fsevents@2.3.2": {
362 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
363 | "dependencies": {}
364 | },
365 | "function-bind@1.1.1": {
366 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
367 | "dependencies": {}
368 | },
369 | "has@1.0.3": {
370 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
371 | "dependencies": { "function-bind": "function-bind@1.1.1" }
372 | },
373 | "is-core-module@2.11.0": {
374 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
375 | "dependencies": { "has": "has@1.0.3" }
376 | },
377 | "magic-string@0.25.9": {
378 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
379 | "dependencies": { "sourcemap-codec": "sourcemap-codec@1.4.8" }
380 | },
381 | "nanoid@3.3.4": {
382 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
383 | "dependencies": {}
384 | },
385 | "path-parse@1.0.7": {
386 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
387 | "dependencies": {}
388 | },
389 | "picocolors@1.0.0": {
390 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
391 | "dependencies": {}
392 | },
393 | "postcss@8.4.18": {
394 | "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
395 | "dependencies": {
396 | "nanoid": "nanoid@3.3.4",
397 | "picocolors": "picocolors@1.0.0",
398 | "source-map-js": "source-map-js@1.0.2"
399 | }
400 | },
401 | "resolve@1.22.1": {
402 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
403 | "dependencies": {
404 | "is-core-module": "is-core-module@2.11.0",
405 | "path-parse": "path-parse@1.0.7",
406 | "supports-preserve-symlinks-flag": "supports-preserve-symlinks-flag@1.0.0"
407 | }
408 | },
409 | "rollup@2.79.1": {
410 | "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
411 | "dependencies": { "fsevents": "fsevents@2.3.2" }
412 | },
413 | "source-map-js@1.0.2": {
414 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
415 | "dependencies": {}
416 | },
417 | "source-map@0.6.1": {
418 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
419 | "dependencies": {}
420 | },
421 | "sourcemap-codec@1.4.8": {
422 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
423 | "dependencies": {}
424 | },
425 | "supports-preserve-symlinks-flag@1.0.0": {
426 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
427 | "dependencies": {}
428 | },
429 | "vite@3.2.2": {
430 | "integrity": "sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==",
431 | "dependencies": {
432 | "esbuild": "esbuild@0.15.12",
433 | "fsevents": "fsevents@2.3.2",
434 | "postcss": "postcss@8.4.18",
435 | "resolve": "resolve@1.22.1",
436 | "rollup": "rollup@2.79.1"
437 | }
438 | },
439 | "vue-router@4.1.5": {
440 | "integrity": "sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ==",
441 | "dependencies": { "@vue/devtools-api": "@vue/devtools-api@6.4.4" }
442 | },
443 | "vue@3.2.40": {
444 | "integrity": "sha512-1mGHulzUbl2Nk3pfvI5aXYYyJUs1nm4kyvuz38u4xlQkLUn1i2R7nDbI4TufECmY8v1qNBHYy62bCaM+3cHP2A==",
445 | "dependencies": {
446 | "@vue/compiler-dom": "@vue/compiler-dom@3.2.40",
447 | "@vue/compiler-sfc": "@vue/compiler-sfc@3.2.40",
448 | "@vue/runtime-dom": "@vue/runtime-dom@3.2.40",
449 | "@vue/server-renderer": "@vue/server-renderer@3.2.40",
450 | "@vue/shared": "@vue/shared@3.2.40"
451 | }
452 | }
453 | }
454 | }
455 | }
456 |
--------------------------------------------------------------------------------
/api/data.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "Aardonyx",
4 | "description": "An early stage in the evolution of sauropods."
5 | },
6 | {
7 | "name": "Abelisaurus",
8 | "description": "\"Abel's lizard\" has been reconstructed from a single skull."
9 | },
10 | {
11 | "name": "Abrictosaurus",
12 | "description": "An early relative of Heterodontosaurus."
13 | },
14 | {
15 | "name": "Abrosaurus",
16 | "description": "A close Asian relative of Camarasaurus."
17 | },
18 | {
19 | "name": "Abydosaurus",
20 | "description": "This sauropod's intact skull was discovered in 2010."
21 | },
22 | {
23 | "name": "Acanthopholis",
24 | "description": "No, it's not a city in Greece."
25 | },
26 | {
27 | "name": "Achelousaurus",
28 | "description": "Might this have been a growth stage of Pachyrhinosaurus?"
29 | },
30 | {
31 | "name": "Achillobator",
32 | "description": "This fierce raptor was discovered in modern-day Mongolia."
33 | },
34 | {
35 | "name": "Acristavus",
36 | "description": "This early hadrosaur lacked any ornamentation on its skull."
37 | },
38 | {
39 | "name": "Acrocanthosaurus",
40 | "description": "The largest meat-eating dinosaur of the early Cretaceous period."
41 | },
42 | {
43 | "name": "Acrotholus",
44 | "description": "North America's earliest bone-headed dinosaur."
45 | },
46 | {
47 | "name": "Adamantisaurus",
48 | "description": "This titanosaur was named 50 years after its discovery."
49 | },
50 | {
51 | "name": "Adasaurus",
52 | "description": "This raptor's hind claws were unusually small."
53 | },
54 | {
55 | "name": "Adeopapposaurus",
56 | "description": "A close relative of Massospondylus."
57 | },
58 | {
59 | "name": "Aegyptosaurus",
60 | "description": "Try and guess which country this dinosaur was found in."
61 | },
62 | {
63 | "name": "Aeolosaurus",
64 | "description": "Could this titanosaur have reared up on its hind legs?"
65 | },
66 | {
67 | "name": "Aerosteon",
68 | "description": "This air-boned dinosaur may have breathed like a bird."
69 | },
70 | {
71 | "name": "Afrovenator",
72 | "description": "One of the few carnivores ever to be dug up in northern Africa."
73 | },
74 | {
75 | "name": "Agathaumas",
76 | "description": "The first ceratopsian dinosaur ever discovered."
77 | },
78 | {
79 | "name": "Agilisaurus",
80 | "description": "This \"agile lizard\" was one of the earliest ornithopods."
81 | },
82 | {
83 | "name": "Agujaceratops",
84 | "description": "It was once classified as a species of Chasmosaurus."
85 | },
86 | {
87 | "name": "Agustinia",
88 | "description": "A large, spiny-backed sauropod."
89 | },
90 | {
91 | "name": "Ajkaceratops",
92 | "description": "The first ceratopsian ever to be discovered in Europe."
93 | },
94 | {
95 | "name": "Alamosaurus",
96 | "description": "No, it wasn't named after the Alamo, but it should have been."
97 | },
98 | {
99 | "name": "Alaskacephale",
100 | "description": "Can you guess which state this pachycephalosaur was found in?"
101 | },
102 | {
103 | "name": "Albalophosaurus",
104 | "description": "One of the few dinosaurs ever to be discovered in Japan."
105 | },
106 | {
107 | "name": "Albertaceratops",
108 | "description": "The most basal \"centrosaurine\" yet identified."
109 | },
110 | {
111 | "name": "Albertadromeus",
112 | "description": "This petite ornithopod was recently discovered in Canada."
113 | },
114 | {
115 | "name": "Albertonykus",
116 | "description": "A tiny, birdlike, North American dinosaur."
117 | },
118 | {
119 | "name": "Albertosaurus",
120 | "description": "This carnivorous dinosaur was a close relative of T. Rex."
121 | },
122 | {
123 | "name": "Alectrosaurus",
124 | "description": "Few specimens of this \"unmarried lizard\" have been found."
125 | },
126 | {
127 | "name": "Aletopelta",
128 | "description": "The first ankylosaur known to have lived in Mexico."
129 | },
130 | {
131 | "name": "Alioramus",
132 | "description": "Everything we know about this tyrannosaur is based on a single skull."
133 | },
134 | {
135 | "name": "Allosaurus",
136 | "description": "The apex predator of late Jurassic North America."
137 | },
138 | {
139 | "name": "Altirhinus",
140 | "description": "This \"high-nosed\" plant eater resembled an early hadrosaur."
141 | },
142 | {
143 | "name": "Alvarezsaurus",
144 | "description": "A bird-like dinosaur of the late Cretaceous."
145 | },
146 | {
147 | "name": "Alwalkeria",
148 | "description": "This Indian dinosaur was one of the earliest saurischians."
149 | },
150 | {
151 | "name": "Alxasaurus",
152 | "description": "An early relative of the bizarre Therizinosaurus."
153 | },
154 | {
155 | "name": "Amargasaurus",
156 | "description": "A bizarre, spined sauropod from South America."
157 | },
158 | {
159 | "name": "Amazonsaurus",
160 | "description": "One of the few dinosaurs to be found in the Amazon basin."
161 | },
162 | {
163 | "name": "Ammosaurus",
164 | "description": "This may (or may not) have been the same dinosaur as Anchisaurus."
165 | },
166 | {
167 | "name": "Ampelosaurus",
168 | "description": "One of the best-known of the armored titanosaurs."
169 | },
170 | {
171 | "name": "Amphicoelias",
172 | "description": "Could it have been the biggest dinosaur that ever lived?"
173 | },
174 | {
175 | "name": "Amurosaurus",
176 | "description": "The most complete hadrosaur to be discovered in Russia."
177 | },
178 | {
179 | "name": "Anabisetia",
180 | "description": "The best-attested South American ornithopod."
181 | },
182 | {
183 | "name": "Anatosaurus",
184 | "description": "This dinosaur is now known as either Anatotitan or Edmontosaurus."
185 | },
186 | {
187 | "name": "Anatotitan",
188 | "description": "This hadrosaur's name means \"giant duck\"."
189 | },
190 | {
191 | "name": "Anchiceratops",
192 | "description": "This dinosaur had a distinctively shaped frill."
193 | },
194 | {
195 | "name": "Anchiornis",
196 | "description": "A four-winged dino-bird that resembled Microraptor."
197 | },
198 | {
199 | "name": "Anchisaurus",
200 | "description": "One of the first dinosaurs ever to be dug up in the U.S."
201 | },
202 | {
203 | "name": "Andesaurus",
204 | "description": "This titanosaur rivaled Argentinosaurus in size."
205 | },
206 | {
207 | "name": "Angaturama",
208 | "description": "A Brazilian relative of Spinosaurus."
209 | },
210 | {
211 | "name": "Angolatitan",
212 | "description": "The first dinosaur ever to be discovered in Angola."
213 | },
214 | {
215 | "name": "Angulomastacator",
216 | "description": "This dinosaur had a strangely shaped upper jaw."
217 | },
218 | {
219 | "name": "Animantarx",
220 | "description": "This \"living fortress\" was discovered in an unusual way."
221 | },
222 | {
223 | "name": "Ankylosaurus",
224 | "description": "This dinosaur was the Cretaceous equivalent of a Sherman tank."
225 | },
226 | {
227 | "name": "Anodontosaurus",
228 | "description": "This \"toothless lizard\" actually had a full set of choppers."
229 | },
230 | {
231 | "name": "Anserimimus",
232 | "description": "This \"goose mimic\" didn’t bear much of a resemblance."
233 | },
234 | {
235 | "name": "Antarctopelta",
236 | "description": "The first dinosaur fossil ever discovered in Antarctica."
237 | },
238 | {
239 | "name": "Antarctosaurus",
240 | "description": "This titanosaur may or may not have lived in Antarctica."
241 | },
242 | {
243 | "name": "Antetonitrus",
244 | "description": "Either a very late prosauropod or a very early sauropod."
245 | },
246 | {
247 | "name": "Anzu",
248 | "description": "This Oviraptor relative was recently discovered in North America."
249 | },
250 | {
251 | "name": "Aorun",
252 | "description": "A small theropod of late Jurassic Asia."
253 | },
254 | {
255 | "name": "Apatosaurus",
256 | "description": "The dinosaur formerly known as Brontosaurus."
257 | },
258 | {
259 | "name": "Appalachiosaurus",
260 | "description": "One of the few dinosaurs ever to be found in Alabama."
261 | },
262 | {
263 | "name": "Aquilops",
264 | "description": "The earliest ceratopsian ever to be discovered in North America."
265 | },
266 | {
267 | "name": "Aragosaurus",
268 | "description": "named after the Aragon region of Spain."
269 | },
270 | {
271 | "name": "Aralosaurus",
272 | "description": "Not much is known about this central Asian duck-billed dinosaur."
273 | },
274 | {
275 | "name": "Archaeoceratops",
276 | "description": "Possibly the smallest ceratopsian that ever lived."
277 | },
278 | {
279 | "name": "Archaeopteryx",
280 | "description": "This ancient dino-bird was about the size of a modern pigeon."
281 | },
282 | {
283 | "name": "Archaeornithomimus",
284 | "description": "A likely ancestor of Ornithomimus."
285 | },
286 | {
287 | "name": "Arcovenator",
288 | "description": "This fierce abelisaur was recently discovered in France."
289 | },
290 | {
291 | "name": "Arcusaurus",
292 | "description": "This prosauropod was recently discovered in South Africa."
293 | },
294 | {
295 | "name": "Argentinosaurus",
296 | "description": "Possibly the largest dinosaur that ever lived."
297 | },
298 | {
299 | "name": "Argyrosaurus",
300 | "description": "A plus-sized titanosaur from South America."
301 | },
302 | {
303 | "name": "Aristosuchus",
304 | "description": "This \"noble crocodile\" was actually a dinosaur."
305 | },
306 | {
307 | "name": "Arrhinoceratops",
308 | "description": "This ceratopsian was named for its \"missing\" nose horn."
309 | },
310 | {
311 | "name": "Astrodon",
312 | "description": "The official state dinosaur of Maryland."
313 | },
314 | {
315 | "name": "Asylosaurus",
316 | "description": "This \"unharmed lizard\" escaped destruction in World War II."
317 | },
318 | {
319 | "name": "Atlasaurus",
320 | "description": "This sauropod had unusually long legs."
321 | },
322 | {
323 | "name": "Atlascopcosaurus",
324 | "description": "named after a manufacturer of digging equipment."
325 | },
326 | {
327 | "name": "Atrociraptor",
328 | "description": "This \"cruel thief\" wasn't as atrocious as its name implies."
329 | },
330 | {
331 | "name": "Aublysodon",
332 | "description": "This tyrannosaur was named after a single tooth."
333 | },
334 | {
335 | "name": "Aucasaurus",
336 | "description": "This predator was a close relative of Carnotaurus."
337 | },
338 | {
339 | "name": "Auroraceratops",
340 | "description": "A close relative of Archaeoceratops."
341 | },
342 | {
343 | "name": "Australodocus",
344 | "description": "This sauropod was found in modern-day Tanzania."
345 | },
346 | {
347 | "name": "Australovenator",
348 | "description": "A recently discovered carnivore from Australia."
349 | },
350 | {
351 | "name": "Austroraptor",
352 | "description": "The largest raptor from South America."
353 | },
354 | {
355 | "name": "Austrosaurus",
356 | "description": "This titanosaur was discovered near a train station."
357 | },
358 | {
359 | "name": "Avaceratops",
360 | "description": "This ceratopsian is represented by a single juvenile."
361 | },
362 | {
363 | "name": "Aviatyrannis",
364 | "description": "This \"grandmother tyrant\" was one of the first tyrannosaurs."
365 | },
366 | {
367 | "name": "Avimimus",
368 | "description": "A particularly bird-like cousin of Oviraptor."
369 | },
370 | {
371 | "name": "Bactrosaurus",
372 | "description": "One of the earliest of the duck-billed dinosaurs."
373 | },
374 | {
375 | "name": "Bagaceratops",
376 | "description": "A small ceratopsian from central Asia."
377 | },
378 | {
379 | "name": "Bagaraatan",
380 | "description": "No one is quite sure how to classify this theropod."
381 | },
382 | {
383 | "name": "Bahariasaurus",
384 | "description": "This obscure carnivore may have been the size of T. Rex."
385 | },
386 | {
387 | "name": "Balaur",
388 | "description": "This \"stocky dragon\" was recently discovered in Romania."
389 | },
390 | {
391 | "name": "Bambiraptor",
392 | "description": "Yes, this tiny raptor was named after you-know-who."
393 | },
394 | {
395 | "name": "Barapasaurus",
396 | "description": "Probably the first of the giant sauropods."
397 | },
398 | {
399 | "name": "Barilium",
400 | "description": "Yet another iguanodontid ornithopod of the British Isles."
401 | },
402 | {
403 | "name": "Barosaurus",
404 | "description": "An enormous plant-eater with a tiny head."
405 | },
406 | {
407 | "name": "Barsboldia",
408 | "description": "This hadrosaur was named after Rinchen Barsbold."
409 | },
410 | {
411 | "name": "Baryonyx",
412 | "description": "You wouldn't want to clip this dinosaur's claws."
413 | },
414 | {
415 | "name": "Batyrosaurus",
416 | "description": "One of the most basal hadrosaurs yet identified."
417 | },
418 | {
419 | "name": "Becklespinax",
420 | "description": "A strangely named theropod of the early Cretaceous period."
421 | },
422 | {
423 | "name": "Beipiaosaurus",
424 | "description": "The only known feathered therizinosaur."
425 | },
426 | {
427 | "name": "Beishanlong",
428 | "description": "This bird mimic weighed over half a ton."
429 | },
430 | {
431 | "name": "Bellusaurus",
432 | "description": "A herd of this sauropod drowned in a flash flood."
433 | },
434 | {
435 | "name": "Berberosaurus",
436 | "description": "This \"Berber lizard\" has proven difficult to classify."
437 | },
438 | {
439 | "name": "Bicentenaria",
440 | "description": "This dinosaur was named for Argentina's 200th anniversary."
441 | },
442 | {
443 | "name": "Bistahieversor",
444 | "description": "This tyrannosaur had more teeth than T. Rex."
445 | },
446 | {
447 | "name": "Bonapartenykus",
448 | "description": "This feathered dinosaur was found in close proximity to its eggs."
449 | },
450 | {
451 | "name": "Bonitasaura",
452 | "description": "This titanosaur wasn't as beautiful as its name implies."
453 | },
454 | {
455 | "name": "Borogovia",
456 | "description": "This theropod was named after a Lewis Carroll poem."
457 | },
458 | {
459 | "name": "Bothriospondylus",
460 | "description": "A case study in dinosaur confusion."
461 | },
462 | {
463 | "name": "Brachiosaurus",
464 | "description": "This dinosaur was a giant, gentle, long-necked plant-eater."
465 | },
466 | {
467 | "name": "Brachyceratops",
468 | "description": "A little-known ceratopsian from North America."
469 | },
470 | {
471 | "name": "Brachylophosaurus",
472 | "description": "This duck-billed dinosaur's beak looked more like a parrot's."
473 | },
474 | {
475 | "name": "Brachytrachelopan",
476 | "description": "This sauropod had an unusually short neck."
477 | },
478 | {
479 | "name": "Bravoceratops",
480 | "description": "This ceratopsian was recently discovered in Texas."
481 | },
482 | {
483 | "name": "Brontomerus",
484 | "description": "Its name is Greek for \"thunder thighs\"."
485 | },
486 | {
487 | "name": "Bruhathkayosaurus",
488 | "description": "Was this titanosaur bigger than Argentinosaurus?"
489 | },
490 | {
491 | "name": "Buitreraptor",
492 | "description": "The oldest raptor ever discovered in South America."
493 | },
494 | {
495 | "name": "Byronosaurus",
496 | "description": "This theropod was a close relative of Troodon."
497 | },
498 | {
499 | "name": "Camarasaurus",
500 | "description": "The most common sauropod of Jurassic North America."
501 | },
502 | {
503 | "name": "Camarillasaurus",
504 | "description": "A ceratosaur of early Cretaceous western Europe."
505 | },
506 | {
507 | "name": "Camelotia",
508 | "description": "An early member of the line that evolved into sauropods."
509 | },
510 | {
511 | "name": "Camptosaurus",
512 | "description": "A close relative of Iguanodon."
513 | },
514 | {
515 | "name": "Carcharodontosaurus",
516 | "description": "Its name means \"great white shark lizard.\" Impressed yet?"
517 | },
518 | {
519 | "name": "Carnotaurus",
520 | "description": "The shortest arms of any meat-eating dinosaur with horns to match."
521 | },
522 | {
523 | "name": "Caudipteryx",
524 | "description": "A birdlike dinosaur that changed the views of paleontologists."
525 | },
526 | {
527 | "name": "Centrosaurus",
528 | "description": "Like a unicorn, this ceratopsian only had one horn."
529 | },
530 | {
531 | "name": "Cerasinops",
532 | "description": "A small ceratopsian of the late Cretaceous."
533 | },
534 | {
535 | "name": "Ceratonykus",
536 | "description": "This dino-bird was discovered in Mongolia in 2009."
537 | },
538 | {
539 | "name": "Ceratosaurus",
540 | "description": "This primitive carnivore is hard to classify."
541 | },
542 | {
543 | "name": "Cetiosauriscus",
544 | "description": "Not to be confused with the more famous Cetiosaurus."
545 | },
546 | {
547 | "name": "Cetiosaurus",
548 | "description": "This \"whale lizard\" was once mistaken for the Loch Ness Monster."
549 | },
550 | {
551 | "name": "Changyuraptor",
552 | "description": "Was this feathered dinosaur capable of flight?"
553 | },
554 | {
555 | "name": "Chaoyangsaurus",
556 | "description": "An early ceratopsian of the late Jurassic period."
557 | },
558 | {
559 | "name": "Charonosaurus",
560 | "description": "This duck-billed dinosaur was much bigger than an elephant."
561 | },
562 | {
563 | "name": "Chasmosaurus",
564 | "description": "The only dinosaur that came with its own awning."
565 | },
566 | {
567 | "name": "Chialingosaurus",
568 | "description": "One of the earliest Asian stegosaurs."
569 | },
570 | {
571 | "name": "Chilantaisaurus",
572 | "description": "This large theropod may have been ancestral to Spinosaurus."
573 | },
574 | {
575 | "name": "Chilesaurus",
576 | "description": "This plant-eating theropod was recently discovered in Chile."
577 | },
578 | {
579 | "name": "Chindesaurus",
580 | "description": "This early dinosaur was a close relative of Herrerasaurus."
581 | },
582 | {
583 | "name": "Chirostenotes",
584 | "description": "This birdlike dinosaur has been known by three different names."
585 | },
586 | {
587 | "name": "Chubutisaurus",
588 | "description": "This titanosaur was on Tyrannotitan's lunch menu."
589 | },
590 | {
591 | "name": "Chungkingosaurus",
592 | "description": "This early stegosaur had some primitive characteristics."
593 | },
594 | {
595 | "name": "Citipati",
596 | "description": "This Mongolian theropod was a close relative of Oviraptor."
597 | },
598 | {
599 | "name": "Claosaurus",
600 | "description": "This \"broken lizard\" was a primitive hadrosaur."
601 | },
602 | {
603 | "name": "Coahuilaceratops",
604 | "description": "It had the longest horns of any known ceratopsian dinosaur."
605 | },
606 | {
607 | "name": "Coelophysis",
608 | "description": "One of the most ancient dinosaurs ever to roam the earth."
609 | },
610 | {
611 | "name": "Coelurus",
612 | "description": "This tiny dinosaur was a close relative of Compsognathus."
613 | },
614 | {
615 | "name": "Colepiocephale",
616 | "description": "This thick-skulled dinosaur's name is Greek for \"knucklehead\"."
617 | },
618 | {
619 | "name": "Compsognathus",
620 | "description": "This dinosaur was the size of a chicken, but much meaner."
621 | },
622 | {
623 | "name": "Concavenator",
624 | "description": "This large theropod had a bizarre hump on its back."
625 | },
626 | {
627 | "name": "Conchoraptor",
628 | "description": "This \"conch thief\" may have lunched on mollusks."
629 | },
630 | {
631 | "name": "Condorraptor",
632 | "description": "A small theropod of middle Jurassic South America."
633 | },
634 | {
635 | "name": "Coronosaurus",
636 | "description": "This \"crown lizard\" was once classified as a species of Centrosaurus."
637 | },
638 | {
639 | "name": "Corythosaurus",
640 | "description": "This \"Corinthian-helmeted\" dino had a distinctive mating call."
641 | },
642 | {
643 | "name": "Crichtonsaurus",
644 | "description": "This dinosaur was named after the author of Jurassic Park."
645 | },
646 | {
647 | "name": "Cruxicheiros",
648 | "description": "This \"cross-handed\" dinosaur was named in 2010."
649 | },
650 | {
651 | "name": "Cryolophosaurus",
652 | "description": "This crested dinosaur was once known as \"Elvisaurus\"."
653 | },
654 | {
655 | "name": "Cryptovolans",
656 | "description": "Was this the same dinosaur as Microraptor?"
657 | },
658 | {
659 | "name": "Cumnoria",
660 | "description": "It was once mistakenly classified as a species of Iguanodon."
661 | },
662 | {
663 | "name": "Dacentrurus",
664 | "description": "The first stegosaur ever to be described."
665 | },
666 | {
667 | "name": "Daemonosauru 0s",
668 | "description": "This \"evil lizard\" was a close relative of Coelophysis."
669 | },
670 | {
671 | "name": "Dahalokely",
672 | "description": "A rare theropod from the island of Madagascar."
673 | },
674 | {
675 | "name": "Dakotaraptor",
676 | "description": "This giant raptor was recently discovered in South Dakota."
677 | },
678 | {
679 | "name": "Daspletosaurus",
680 | "description": "This \"frightful lizard\" was a close cousin of T. Rex."
681 | },
682 | {
683 | "name": "Datousaurus",
684 | "description": "A medium-sized sauropod from middle Jurassic Asia."
685 | },
686 | {
687 | "name": "Darwinsaurus",
688 | "description": "\"Darwin's lizard\" may or may not be a valid dinosaur genus."
689 | },
690 | {
691 | "name": "Deinocheirus",
692 | "description": "All we know for sure about this dinosaur is the shape of its arms."
693 | },
694 | {
695 | "name": "Deinodon",
696 | "description": "This \"terrible tooth\" is important from a historical perspective."
697 | },
698 | {
699 | "name": "Deinonychus",
700 | "description": "One of the most fearsome raptors of the Cretaceous period."
701 | },
702 | {
703 | "name": "Delapparentia",
704 | "description": "This ornithopod was initially classified as a species of Iguanodon."
705 | },
706 | {
707 | "name": "Deltadromeus",
708 | "description": "An unusually speedy theropod of the middle Cretaceous."
709 | },
710 | {
711 | "name": "Demandasaurus",
712 | "description": "A poorly understood sauropod of early Cretaceous Europe."
713 | },
714 | {
715 | "name": "Diabloceratops",
716 | "description": "It looked like a cross between a Triceratops and a Centrosaurus."
717 | },
718 | {
719 | "name": "Diamantinasaurus",
720 | "description": "This titanosaur was recently discovered in Australia."
721 | },
722 | {
723 | "name": "Diceratops",
724 | "description": "Was this two-horned dinosaur really a specimen of Triceratops?"
725 | },
726 | {
727 | "name": "Dicraeosaurus",
728 | "description": "A medium-sized, spiny-necked sauropod."
729 | },
730 | {
731 | "name": "Dilong",
732 | "description": "This \"emperor dragon\" may have been an ancestor of T. Rex."
733 | },
734 | {
735 | "name": "Dilophosaurus",
736 | "description": "This dinosaur was distinguished by the bony crests on its noggin."
737 | },
738 | {
739 | "name": "Dimetrodon",
740 | "description": "This ancient synapsid had a huge sail on its back."
741 | },
742 | {
743 | "name": "Diplodocus",
744 | "description": "Thin at one end, much thicker in the middle, and thin again at the far end."
745 | },
746 | {
747 | "name": "Dollodon",
748 | "description": "named after the Belgian paleontologist Louis Dollo."
749 | },
750 | {
751 | "name": "Draconyx",
752 | "description": "This \"dragon claw\" lived in late Jurassic Portugal."
753 | },
754 | {
755 | "name": "Dracopelta",
756 | "description": "This early ankylosaur was discovered in Portugal."
757 | },
758 | {
759 | "name": "Dracorex",
760 | "description": "The only dinosaur to be named after the \"Harry Potter\" books."
761 | },
762 | {
763 | "name": "Dracovenator",
764 | "description": "This \"dragon hunter\" was a close relative of Dilophosaurus."
765 | },
766 | {
767 | "name": "Dravidosaurus",
768 | "description": "This \"dinosaur\" may actually have been a marine reptile."
769 | },
770 | {
771 | "name": "Dreadnoughtus",
772 | "description": "This huge titanosaur was recently discovered in Argentina."
773 | },
774 | {
775 | "name": "Drinker",
776 | "description": "named after the famous paleontologist Edward Drinker Cope."
777 | },
778 | {
779 | "name": "Dromaeosauroides",
780 | "description": "The only dinosaur ever to be discovered in Denmark."
781 | },
782 | {
783 | "name": "Dromaeosaurus",
784 | "description": "This \"running lizard\" was probably covered with feathers."
785 | },
786 | {
787 | "name": "Dromiceiomimus",
788 | "description": "Possibly the fastest dinosaur that ever lived."
789 | },
790 | {
791 | "name": "Dryosaurus",
792 | "description": "A typical ornithopod of the late Jurassic."
793 | },
794 | {
795 | "name": "Dryptosaurus",
796 | "description": "The first tyrannosaur to be discovered in the U.S."
797 | },
798 | {
799 | "name": "Dubreuillosaurus",
800 | "description": "This megalosaur had a long, low snout."
801 | },
802 | {
803 | "name": "Duriavenator",
804 | "description": "Yet another theropod that was once assigned to Megalosaurus."
805 | },
806 | {
807 | "name": "Dyoplosaurus",
808 | "description": "This ankylosaur was once confused with Euoplocephalus."
809 | },
810 | {
811 | "name": "Dysalotosaurus",
812 | "description": "We know a lot about this dinosaur's growth stages."
813 | },
814 | {
815 | "name": "Dyslocosaurus",
816 | "description": "Its name means \"hard-to-place lizard\"."
817 | },
818 | {
819 | "name": "Dystrophaeus",
820 | "description": "This Diplodocus-like sauropod was named by Edward Cope."
821 | },
822 | {
823 | "name": "Echinodon",
824 | "description": "One of the few ornithopods to sport a set of canines."
825 | },
826 | {
827 | "name": "Edmarka",
828 | "description": "This may have been a species of Torvosaurus."
829 | },
830 | {
831 | "name": "Edmontonia",
832 | "description": "This armored dinosaur never actually lived in Edmonton."
833 | },
834 | {
835 | "name": "Edmontosaurus",
836 | "description": "This large, duck-billed herbivore was a contemporary of T. Rex."
837 | },
838 | {
839 | "name": "Efraasia",
840 | "description": "This Triassic herbivore may have been ancestral to sauropods."
841 | },
842 | {
843 | "name": "Einiosaurus",
844 | "description": "This ceratopsian was a close relative of Centrosaurus."
845 | },
846 | {
847 | "name": "Ekrixinatosaurus",
848 | "description": "Its name means \"explosion-born lizard\"."
849 | },
850 | {
851 | "name": "Elaphrosaurus",
852 | "description": "A lightweight theropod from the late Jurassic."
853 | },
854 | {
855 | "name": "Elmisaurus",
856 | "description": "This \"foot lizard\" was a close relative of Oviraptor."
857 | },
858 | {
859 | "name": "Elopteryx",
860 | "description": "This Transylvanian dinosaur is almost as controversial as Dracula."
861 | },
862 | {
863 | "name": "Elrhazosaurus",
864 | "description": "Once classified as a species of Valdosaurus."
865 | },
866 | {
867 | "name": "Enigmosaurus",
868 | "description": "This \"puzzle lizard\" was closely related to Therizinosaurus."
869 | },
870 | {
871 | "name": "Eoabelisaurus",
872 | "description": "The earliest abelisaurid theropod yet identified."
873 | },
874 | {
875 | "name": "Eobrontosaurus",
876 | "description": "This \"dawn brontosaurus\" isn't accepted by most experts."
877 | },
878 | {
879 | "name": "Eocarcharia",
880 | "description": "This \"dawn shark\" prowled the woodlands of northern Africa."
881 | },
882 | {
883 | "name": "Eocursor",
884 | "description": "This late Triassic reptile was one of the earliest true dinosaurs."
885 | },
886 | {
887 | "name": "Eodromaeus",
888 | "description": "Yet another ancient theropod from South America."
889 | },
890 | {
891 | "name": "Eolambia",
892 | "description": "An early hadrosaur from North America."
893 | },
894 | {
895 | "name": "Eoraptor",
896 | "description": "This tiny dinosaur was among the first of its kind."
897 | },
898 | {
899 | "name": "Eosinopteryx",
900 | "description": "A tiny feathered dinosaur of the late Jurassic period."
901 | },
902 | {
903 | "name": "Eotriceratops",
904 | "description": "This \"dawn Triceratops\" was recently discovered in Canada."
905 | },
906 | {
907 | "name": "Eotyrannus",
908 | "description": "This early tyrannosaur looked more like a raptor."
909 | },
910 | {
911 | "name": "Epachthosaurus",
912 | "description": "This \"heavy lizard\" was relatively primitive for its time and place."
913 | },
914 | {
915 | "name": "Epidendrosaurus",
916 | "description": "Did this tiny dino-bird spend its life up a tree?"
917 | },
918 | {
919 | "name": "Epidexipteryx",
920 | "description": "This feathered dinosaur predated Archaeopteryx."
921 | },
922 | {
923 | "name": "Equijubus",
924 | "description": "Its name is Greek for \"horse mane\"."
925 | },
926 | {
927 | "name": "Erectopus",
928 | "description": "This \"upright-footed\" dinosaur is a 19th-century enigma."
929 | },
930 | {
931 | "name": "Erketu",
932 | "description": "This titanosaur had an unusually long neck."
933 | },
934 | {
935 | "name": "Erliansaurus",
936 | "description": "A basal therizinosaur from central Asia."
937 | },
938 | {
939 | "name": "Erlikosaurus",
940 | "description": "This late therizinosaur roamed the Mongolian forests."
941 | },
942 | {
943 | "name": "Euhelopus",
944 | "description": "The first sauropod to be discovered in China."
945 | },
946 | {
947 | "name": "Euoplocephalus",
948 | "description": "Even this ankylosaur's eyelids were armored."
949 | },
950 | {
951 | "name": "Europasaurus",
952 | "description": "The smallest sauropod ever discovered."
953 | },
954 | {
955 | "name": "Europelta",
956 | "description": "This early nodosaur was recently discovered in Spain."
957 | },
958 | {
959 | "name": "Euskelosaurus",
960 | "description": "The first dinosaur ever to be discovered in Africa."
961 | },
962 | {
963 | "name": "Eustreptospondylus",
964 | "description": "A close cousin of Megalosaurus."
965 | },
966 | {
967 | "name": "Fabrosaurus",
968 | "description": "This early ornithopod may have been a species of Lesothosaurus."
969 | },
970 | {
971 | "name": "Falcarius",
972 | "description": "A bizarre, feathered theropod from North America."
973 | },
974 | {
975 | "name": "Ferganasaurus",
976 | "description": "The first dinosaur ever to be discovered in the USSR."
977 | },
978 | {
979 | "name": "Fruitadens",
980 | "description": "One of the tiniest dinosaurs ever to live in North America."
981 | },
982 | {
983 | "name": "Fukuiraptor",
984 | "description": "One of the few carnivorous dinosaurs ever to be dug up in Japan."
985 | },
986 | {
987 | "name": "Fukuisaurus",
988 | "description": "This ornithopod was discovered in Japan."
989 | },
990 | {
991 | "name": "Fulgurotherium",
992 | "description": "Very little is known about this \"lightning beast\"."
993 | },
994 | {
995 | "name": "Futalognkosaurus",
996 | "description": "A very big, and very strangely named sauropod."
997 | },
998 | {
999 | "name": "Gallimimus",
1000 | "description": "This \"chicken mimic\" roamed the plains of the late Cretaceous."
1001 | },
1002 | {
1003 | "name": "Gargoyleosaurus",
1004 | "description": "This \"gargoyle lizard\" was an ancestor of Ankylosaurus."
1005 | },
1006 | {
1007 | "name": "Garudimimus",
1008 | "description": "A relative slowpoke compared to other ornithomimids."
1009 | },
1010 | {
1011 | "name": "Gasosaurus",
1012 | "description": "Yes, that's its real name, and no, it isn't for the reason you think."
1013 | },
1014 | {
1015 | "name": "Gasparinisaura",
1016 | "description": "One of the few ornithopods known to have lived in South America."
1017 | },
1018 | {
1019 | "name": "Gastonia",
1020 | "description": "This ankylosaur was probably on Utahraptor's lunch menu."
1021 | },
1022 | {
1023 | "name": "Genyodectes",
1024 | "description": "This dinosaur is represented by an impressive set of teeth."
1025 | },
1026 | {
1027 | "name": "Gideonmantellia",
1028 | "description": "Guess what naturalist this dinosaur was named after."
1029 | },
1030 | {
1031 | "name": "Giganotosaurus",
1032 | "description": "Not quite a \"Gigantosaurus,\" but close enough."
1033 | },
1034 | {
1035 | "name": "Gigantoraptor",
1036 | "description": "This huge oviraptorosaur weighed over two tons."
1037 | },
1038 | {
1039 | "name": "Gigantspinosaurus",
1040 | "description": "It may or may not have been a true stegosaur."
1041 | },
1042 | {
1043 | "name": "Gilmoreosaurus",
1044 | "description": "One of the few dinosaurs known to have suffered from cancer."
1045 | },
1046 | {
1047 | "name": "Giraffatitan",
1048 | "description": "Might this \"giant giraffe\" have been a species of Brachiosaurus?"
1049 | },
1050 | {
1051 | "name": "Glacialisaurus",
1052 | "description": "This \"frozen lizard\" was a close relative of Lufengosaurus."
1053 | },
1054 | {
1055 | "name": "Gobiceratops",
1056 | "description": "This ceratopsian's tiny skull was found in the Gobi Desert."
1057 | },
1058 | {
1059 | "name": "Gobisaurus",
1060 | "description": "An unusually large ankylosaur of central Asia."
1061 | },
1062 | {
1063 | "name": "Gobivenator",
1064 | "description": "This feathered dinosaur gave Velociraptor a run for its money."
1065 | },
1066 | {
1067 | "name": "Gojirasaurus",
1068 | "description": "This early predator was named after Godzilla."
1069 | },
1070 | {
1071 | "name": "Gondwanatitan",
1072 | "description": "Yet another titanosaur from South America."
1073 | },
1074 | {
1075 | "name": "Gorgosaurus",
1076 | "description": "Might this tyrannosaur have been a species of Albertosaurus?"
1077 | },
1078 | {
1079 | "name": "Goyocephale",
1080 | "description": "A primitive bonehead from Asia."
1081 | },
1082 | {
1083 | "name": "Graciliraptor",
1084 | "description": "This tiny dino-bird was a close relative of Microraptor."
1085 | },
1086 | {
1087 | "name": "Gryphoceratops",
1088 | "description": "A tiny ceratopsian of Cretaceous North America."
1089 | },
1090 | {
1091 | "name": "Gryponyx",
1092 | "description": "This \"hooked claw\" was a distant sauropod ancestor."
1093 | },
1094 | {
1095 | "name": "Gryposaurus",
1096 | "description": "One of the most common of the duck-billed dinosaurs."
1097 | },
1098 | {
1099 | "name": "Guaibasaurus",
1100 | "description": "Was this early dinosaur a theropod or a prosauropod?"
1101 | },
1102 | {
1103 | "name": "Guanlong",
1104 | "description": "Probably the first tyrannosaur ever to walk the earth."
1105 | },
1106 | {
1107 | "name": "Hadrosaurus",
1108 | "description": "The official state dinosaur of New Jersey."
1109 | },
1110 | {
1111 | "name": "Hagryphus",
1112 | "description": "The largest North American oviraptor yet discovered."
1113 | },
1114 | {
1115 | "name": "Halticosaurus",
1116 | "description": "A \"nomen dubium\" theropod of the early 20th century."
1117 | },
1118 | {
1119 | "name": "Haplocanthosaurus",
1120 | "description": "A typical sauropod of the late Jurassic period."
1121 | },
1122 | {
1123 | "name": "Haplocheirus",
1124 | "description": "This feathered dinosaur predated Archaeopteryx by millions of years."
1125 | },
1126 | {
1127 | "name": "Harpymimus",
1128 | "description": "named after the winged creature of Greek myth."
1129 | },
1130 | {
1131 | "name": "Haya",
1132 | "description": "This dinosaur was named after a horse-headed Mongolian god."
1133 | },
1134 | {
1135 | "name": "Herrerasaurus",
1136 | "description": "This carnivore roamed present-day South America."
1137 | },
1138 | {
1139 | "name": "Hesperonychus",
1140 | "description": "A tiny North American dinosaur."
1141 | },
1142 | {
1143 | "name": "Hesperosaurus",
1144 | "description": "The oldest stegosaur discovered in North America."
1145 | },
1146 | {
1147 | "name": "Heterodontosaurus",
1148 | "description": "This \"different-toothed\" dinosaur was a dentist's nightmare."
1149 | },
1150 | {
1151 | "name": "Hexing",
1152 | "description": "This early ornithomimid was recently discovered in China."
1153 | },
1154 | {
1155 | "name": "Hexinlusaurus",
1156 | "description": "named after the Chinese professor He Xin-Lu."
1157 | },
1158 | {
1159 | "name": "Heyuannia",
1160 | "description": "Yet another close relative of Oviraptor."
1161 | },
1162 | {
1163 | "name": "Hippodraco",
1164 | "description": "This \"horse dragon\" was recently discovered in Utah."
1165 | },
1166 | {
1167 | "name": "Homalocephale",
1168 | "description": "This herbivore had a very flat--and very thick--skull."
1169 | },
1170 | {
1171 | "name": "Hongshanosaurus",
1172 | "description": "This early ceratopsian is known by two skulls."
1173 | },
1174 | {
1175 | "name": "Hoplitosaurus",
1176 | "description": "named after the heavily armored soldiers of classical Greece."
1177 | },
1178 | {
1179 | "name": "Huabeisaurus",
1180 | "description": "A titanosaur from northern China."
1181 | },
1182 | {
1183 | "name": "Huanghetitan",
1184 | "description": "Yet another contender for the biggest dinosaur that ever lived."
1185 | },
1186 | {
1187 | "name": "Huaxiagnathus",
1188 | "description": "One of the biggest dino-birds of its time."
1189 | },
1190 | {
1191 | "name": "Huaxiaosaurus",
1192 | "description": "Might it be an unusually large specimen of Shantungosaurus?"
1193 | },
1194 | {
1195 | "name": "Huayangosaurus",
1196 | "description": "Could this have been the ancestor of all the stegosaurs?"
1197 | },
1198 | {
1199 | "name": "Huehuecanauhtlus",
1200 | "description": "Its name is Aztec for \"ancient duck\"."
1201 | },
1202 | {
1203 | "name": "Hungarosaurus",
1204 | "description": "The best-attested ankylosaur ever discovered in Europe."
1205 | },
1206 | {
1207 | "name": "Huxleysaurus",
1208 | "description": "named after the famous biologist Thomas Henry Huxley."
1209 | },
1210 | {
1211 | "name": "Hylaeosaurus",
1212 | "description": "One of the first creatures ever to be called a dinosaur."
1213 | },
1214 | {
1215 | "name": "Hypacrosaurus",
1216 | "description": "We know a lot about this dinosaur's family life."
1217 | },
1218 | {
1219 | "name": "Hypselosaurus",
1220 | "description": "This titanosaur's eggs were a foot in diameter."
1221 | },
1222 | {
1223 | "name": "Hypselospinus",
1224 | "description": "It was once classified as a species of Iguanodon."
1225 | },
1226 | {
1227 | "name": "Hypsibema",
1228 | "description": "The official state dinosaur of Missouri."
1229 | },
1230 | {
1231 | "name": "Hypsilophodon",
1232 | "description": "This man-sized herbivore liked to eat and run."
1233 | },
1234 | {
1235 | "name": "Ichthyovenator",
1236 | "description": "This sail-backed dinosaur was recently discovered in Laos."
1237 | },
1238 | {
1239 | "name": "Ignavusaurus",
1240 | "description": "Its name means \"cowardly lizard\"."
1241 | },
1242 | {
1243 | "name": "Iguanacolossus",
1244 | "description": "A brand-new ornithopod from North America."
1245 | },
1246 | {
1247 | "name": "Iguanodon",
1248 | "description": "The second dinosaur in history ever to receive a name."
1249 | },
1250 | {
1251 | "name": "Ilokelesia",
1252 | "description": "A primitive abelisaur from South America."
1253 | },
1254 | {
1255 | "name": "Incisivosaurus",
1256 | "description": "This buck-toothed dinosaur was the Cretaceous equivalent of a beaver."
1257 | },
1258 | {
1259 | "name": "Indosuchus",
1260 | "description": "This \"Indian crocodile\" was actually a dinosaur."
1261 | },
1262 | {
1263 | "name": "Ingenia",
1264 | "description": "A small, birdlike dinosaur from central Asia."
1265 | },
1266 | {
1267 | "name": "Irritator",
1268 | "description": "This spinosaur was named by a very frustrated paleontologist."
1269 | },
1270 | {
1271 | "name": "Isanosaurus",
1272 | "description": "One of the first sauropods ever to walk the earth."
1273 | },
1274 | {
1275 | "name": "Isisaurus",
1276 | "description": "Otherwise known as the Indian Statistical Institute Lizard."
1277 | },
1278 | {
1279 | "name": "Jainosaurus",
1280 | "description": "named after the Indian paleontologist Sohan Lal Jain."
1281 | },
1282 | {
1283 | "name": "Janenschia",
1284 | "description": "The earliest titanosaur in the fossil record."
1285 | },
1286 | {
1287 | "name": "Jaxartosaurus",
1288 | "description": "A poorly known hadrosaur from central Asia."
1289 | },
1290 | {
1291 | "name": "Jeholosaurus",
1292 | "description": "This ornithopod may have had an omnivorous diet."
1293 | },
1294 | {
1295 | "name": "Jeyawati",
1296 | "description": "Its name is Zuni for \"grinding mouth\"."
1297 | },
1298 | {
1299 | "name": "Jianchangosaurus",
1300 | "description": "One of the earliest therizinosaurs in the fossil record."
1301 | },
1302 | {
1303 | "name": "Jinfengopteryx",
1304 | "description": "This feathered dinosaur was once thought to be a true bird."
1305 | },
1306 | {
1307 | "name": "Jingshanosaurus",
1308 | "description": "A close relative of Yunnanosaurus."
1309 | },
1310 | {
1311 | "name": "Jinzhousaurus",
1312 | "description": "This Asian dinosaur was one of the first hadrosaurs."
1313 | },
1314 | {
1315 | "name": "Jobaria",
1316 | "description": "A strange, short-tailed African sauropod."
1317 | },
1318 | {
1319 | "name": "Judiceratops",
1320 | "description": "The earliest Chasmosaurus ancestor yet identified."
1321 | },
1322 | {
1323 | "name": "Juratyrant",
1324 | "description": "This early tyrannosaur was discovered in England."
1325 | },
1326 | {
1327 | "name": "Juravenator",
1328 | "description": "Why didn't this presumed \"dino-bird\" have feathers?"
1329 | },
1330 | {
1331 | "name": "Kaatedocus",
1332 | "description": "This Diplodocus relative had a characteristic grin."
1333 | },
1334 | {
1335 | "name": "Kaijiangosaurus",
1336 | "description": "This might have been the same dinosaur as Gasosaurus."
1337 | },
1338 | {
1339 | "name": "Kazaklambia",
1340 | "description": "This duck-billed dinosaur was discovered in Kazakhstan."
1341 | },
1342 | {
1343 | "name": "Kentrosaurus",
1344 | "description": "A smaller, African cousin of Stegosaurus."
1345 | },
1346 | {
1347 | "name": "Kerberosaurus",
1348 | "description": "named after the three-headed dog of Greek myth."
1349 | },
1350 | {
1351 | "name": "Khaan",
1352 | "description": "Few small mammals dared face the wrath of this dinosaur."
1353 | },
1354 | {
1355 | "name": "Kileskus",
1356 | "description": "Yet another \"basal\" tyrannosaur from central Asia."
1357 | },
1358 | {
1359 | "name": "Kinnareemimus",
1360 | "description": "This \"bird mimic\" dinosaur was recently discovered in Thailand."
1361 | },
1362 | {
1363 | "name": "Kol",
1364 | "description": "It's tied with Mei for \"shortest dinosaur name\"."
1365 | },
1366 | {
1367 | "name": "Koreaceratops",
1368 | "description": "There's evidence that this ceratopsian liked to go swimming."
1369 | },
1370 | {
1371 | "name": "Koreanosaurus",
1372 | "description": "Guess what country this ornithopod was discovered in."
1373 | },
1374 | {
1375 | "name": "Kosmoceratops",
1376 | "description": "This ceratopsian had a bizarre, downward-folding frill."
1377 | },
1378 | {
1379 | "name": "Kotasaurus",
1380 | "description": "One of the few sauropods to be discovered in India."
1381 | },
1382 | {
1383 | "name": "Kritosaurus",
1384 | "description": "A famous, but poorly understood hadrosaur."
1385 | },
1386 | {
1387 | "name": "Kryptops",
1388 | "description": "This dinosaur came equipped with its own face mask."
1389 | },
1390 | {
1391 | "name": "Kukufeldia",
1392 | "description": "Yet another ornithopod that was once lumped in with Iguanodon."
1393 | },
1394 | {
1395 | "name": "Kulindadromeus",
1396 | "description": "Why did this ornithopod dinosaur have feathers?"
1397 | },
1398 | {
1399 | "name": "Kundurosaurus",
1400 | "description": "This hadrosaur was discovered in the far east of Russia."
1401 | },
1402 | {
1403 | "name": "Labocania",
1404 | "description": "It may or may not have been a true tyrannosaur."
1405 | },
1406 | {
1407 | "name": "Lagosuchus",
1408 | "description": "Could this have been the ancestor of all the dinosaurs?"
1409 | },
1410 | {
1411 | "name": "Lambeosaurus",
1412 | "description": "This duck-billed dinosaur had a hatchet-shaped crest on its noggin."
1413 | },
1414 | {
1415 | "name": "Lamplughsaura",
1416 | "description": "This early sauropod was discovered in India."
1417 | },
1418 | {
1419 | "name": "Lanzhousaurus",
1420 | "description": "This herbivore's teeth were half a foot long."
1421 | },
1422 | {
1423 | "name": "Laosaurus",
1424 | "description": "This dubious ornithopod was named by Othniel C. Marsh."
1425 | },
1426 | {
1427 | "name": "Lapparentosaurus",
1428 | "description": "This sauropod was discovered in Madagascar."
1429 | },
1430 | {
1431 | "name": "Laquintasaura",
1432 | "description": "The first plant-eating dinosaur ever to be discovered in Venezuela."
1433 | },
1434 | {
1435 | "name": "Latirhinus",
1436 | "description": "This duck-billed dinosaur had an enormous nose."
1437 | },
1438 | {
1439 | "name": "Leaellynasaura",
1440 | "description": "One of the few dinosaurs to be named after a little girl."
1441 | },
1442 | {
1443 | "name": "Leinkupal",
1444 | "description": "The latest surviving diplodocid sauropod."
1445 | },
1446 | {
1447 | "name": "Leonerasaurus",
1448 | "description": "This prosauropod was recently discovered in Argentina."
1449 | },
1450 | {
1451 | "name": "Leptoceratops",
1452 | "description": "One of the most primitive of all ceratopsians."
1453 | },
1454 | {
1455 | "name": "Leshansaurus",
1456 | "description": "Did this meat-eater feast on small, armored dinosaurs?"
1457 | },
1458 | {
1459 | "name": "Lesothosaurus",
1460 | "description": "One of the earliest of all the ornithischian dinosaurs."
1461 | },
1462 | {
1463 | "name": "Lessemsaurus",
1464 | "description": "named after the popular science writer Don Lessem."
1465 | },
1466 | {
1467 | "name": "Lexovisaurus",
1468 | "description": "One of the oldest European stegosaurs."
1469 | },
1470 | {
1471 | "name": "Leyesaurus",
1472 | "description": "A newly discovered prosauropod from South America."
1473 | },
1474 | {
1475 | "name": "Liaoceratops",
1476 | "description": "A tiny ceratopsian of early Cretaceous Asia."
1477 | },
1478 | {
1479 | "name": "Liaoningosaurus",
1480 | "description": "One of the smallest ankylosaurs in the fossil record."
1481 | },
1482 | {
1483 | "name": "Liliensternus",
1484 | "description": "One of the largest carnivores of the Triassic period."
1485 | },
1486 | {
1487 | "name": "Limaysaurus",
1488 | "description": "It was once classified as a species of Rebbachisaurus."
1489 | },
1490 | {
1491 | "name": "Limusaurus",
1492 | "description": "Was this toothless theropod a vegetarian?"
1493 | },
1494 | {
1495 | "name": "Linhenykus",
1496 | "description": "This tiny dinosaur had single-clawed hands."
1497 | },
1498 | {
1499 | "name": "Linheraptor",
1500 | "description": "This Mongolian raptor was discovered in 2008."
1501 | },
1502 | {
1503 | "name": "Linhevenato",
1504 | "description": "r This troodont was recently discovered in Mongolia."
1505 | },
1506 | {
1507 | "name": "Lophorhothon",
1508 | "description": "The first dinosaur ever to be discovered in Alabama."
1509 | },
1510 | {
1511 | "name": "Lophostropheus",
1512 | "description": "This theropod lived near the Triassic/Jurassic boundary."
1513 | },
1514 | {
1515 | "name": "Loricatosaurus",
1516 | "description": "This stegosaur was once classified as a species of Lexovisaurus."
1517 | },
1518 | {
1519 | "name": "Lourinhanosaurus",
1520 | "description": "Not to be confused with Lourinhasaurus, below."
1521 | },
1522 | {
1523 | "name": "Lourinhasaurus",
1524 | "description": "Not to be confused with Lourinhanosaurus, above."
1525 | },
1526 | {
1527 | "name": "Luanchuanraptor",
1528 | "description": "A small, poorly understood Asian raptor."
1529 | },
1530 | {
1531 | "name": "Lufengosaurus",
1532 | "description": "A common sight at Chinese natural history museums."
1533 | },
1534 | {
1535 | "name": "Lurdusaurus",
1536 | "description": "This ornithopod resembled a giant sloth."
1537 | },
1538 | {
1539 | "name": "Lusotitan",
1540 | "description": "This sauropod was once classified as a species of Brachiosaurus."
1541 | },
1542 | {
1543 | "name": "Lycorhinus",
1544 | "description": "This dinosaur was once thought to be a mammal-like reptile."
1545 | },
1546 | {
1547 | "name": "Lythronax",
1548 | "description": "This tyrannosaur lived on the island of Laramidia."
1549 | },
1550 | {
1551 | "name": "Machairasaurus",
1552 | "description": "This \"short scimitar lizard\" was a close relative of Oviraptor."
1553 | },
1554 | {
1555 | "name": "Macrogryphosaurus",
1556 | "description": "Otherwise known as the Big Enigmatic Lizard."
1557 | },
1558 | {
1559 | "name": "Magnapaulia",
1560 | "description": "The largest lambeosaurine hadrosaur yet identified."
1561 | },
1562 | {
1563 | "name": "Magnirostris",
1564 | "description": "This ceratopsian had an unusually big beak."
1565 | },
1566 | {
1567 | "name": "Magnosaurus",
1568 | "description": "Once thought to be a species of Megalosaurus."
1569 | },
1570 | {
1571 | "name": "Magyarosaurus",
1572 | "description": "This dwarf titanosaur was probably confined to a small island."
1573 | },
1574 | {
1575 | "name": "Mahakala",
1576 | "description": "This dino-bird was named after a Buddhist deity."
1577 | },
1578 | {
1579 | "name": "Maiasaura",
1580 | "description": "This \"good mother lizard\" kept close tabs on her young."
1581 | },
1582 | {
1583 | "name": "Majungasaurus",
1584 | "description": "Fairly--or unfairly--known as the \"cannibal dinosaur\"."
1585 | },
1586 | {
1587 | "name": "Malawisaurus",
1588 | "description": "The first titanosaur to be found with an intact skull."
1589 | },
1590 | {
1591 | "name": "Mamenchisaurus",
1592 | "description": "The longest-necked dinosaur that ever lived."
1593 | },
1594 | {
1595 | "name": "Manidens",
1596 | "description": "A strangely toothed relative of Heterodontosaurus."
1597 | },
1598 | {
1599 | "name": "Mantellisaurus",
1600 | "description": "named after the famous fossil hunter Gideon Mantell."
1601 | },
1602 | {
1603 | "name": "Mantellodon",
1604 | "description": "This Iguanodon refugee may or may not deserve its own genus."
1605 | },
1606 | {
1607 | "name": "Mapusaurus",
1608 | "description": "This huge carnivore was closely related to Giganotosaurus."
1609 | },
1610 | {
1611 | "name": "Marshosaurus",
1612 | "description": "named after the famous paleontologist Othniel C. Marsh."
1613 | },
1614 | {
1615 | "name": "Martharaptor",
1616 | "description": "This dinosaur was named after a Utah paleontologist."
1617 | },
1618 | {
1619 | "name": "Masiakasaurus",
1620 | "description": "A bizarre, buck-toothed predator of the late Cretaceous."
1621 | },
1622 | {
1623 | "name": "Massospondylus",
1624 | "description": "This small, lithe, bipedal plant-eater roamed the plains of South Africa."
1625 | },
1626 | {
1627 | "name": "Maxakalisaurus",
1628 | "description": "One of the biggest titanosaurs ever found in Brazil."
1629 | },
1630 | {
1631 | "name": "Medusaceratops",
1632 | "description": "This frilled dinosaur was a close relative of Centrosaurus."
1633 | },
1634 | {
1635 | "name": "Megalosaurus",
1636 | "description": "The first dinosaur ever to be discovered and named."
1637 | },
1638 | {
1639 | "name": "Megapnosaurus",
1640 | "description": "Its name is Greek for \"big dead lizard\"."
1641 | },
1642 | {
1643 | "name": "Megaraptor",
1644 | "description": "Despite its name, it wasn't really a raptor."
1645 | },
1646 | {
1647 | "name": "Mei",
1648 | "description": "The current record-holder for \"shortest dinosaur name\"."
1649 | },
1650 | {
1651 | "name": "Melanorosaurus",
1652 | "description": "Probably the largest prosauropod that ever lived."
1653 | },
1654 | {
1655 | "name": "Mendozasaurus",
1656 | "description": "This titanosaur was ancestral to Futalognkosaurus."
1657 | },
1658 | {
1659 | "name": "Mercuriceratops",
1660 | "description": "This ceratopsian was discovered on the U.S./Canada border."
1661 | },
1662 | {
1663 | "name": "Metriacanthosaurus",
1664 | "description": "Yet another dinosaur that was once mistaken for Megalosaurus."
1665 | },
1666 | {
1667 | "name": "Microceratops",
1668 | "description": "Probably the smallest ceratopsian that ever lived."
1669 | },
1670 | {
1671 | "name": "Micropachycephalosaurus",
1672 | "description": "The current record-holder for longest dinosaur name."
1673 | },
1674 | {
1675 | "name": "Microraptor",
1676 | "description": "This tiny feathered dinosaur had four wings rather than two."
1677 | },
1678 | {
1679 | "name": "Microvenator",
1680 | "description": "This \"tiny hunter\" actually measured 10 feet from head to tail."
1681 | },
1682 | {
1683 | "name": "Minmi",
1684 | "description": "An early (and very dumb) ankylosaur from Australia."
1685 | },
1686 | {
1687 | "name": "Minotaurasaurus",
1688 | "description": "named after the half-man, half-bull of Greek myth."
1689 | },
1690 | {
1691 | "name": "Miragaia",
1692 | "description": "This stegosaur had an unusually long neck."
1693 | },
1694 | {
1695 | "name": "Mirischia",
1696 | "description": "Its name means \"wonderful pelvis\"."
1697 | },
1698 | {
1699 | "name": "Mochlodon",
1700 | "description": "One of the few dinosaurs ever to be discovered in Austria."
1701 | },
1702 | {
1703 | "name": "Mojoceratops",
1704 | "description": "This ceratopsian had a heart-shaped frill."
1705 | },
1706 | {
1707 | "name": "Monkonosaurus",
1708 | "description": "The first dinosaur ever to be discovered in modern-day Tibet."
1709 | },
1710 | {
1711 | "name": "Monoclonius",
1712 | "description": "Might this have been a species of Centrosaurus?"
1713 | },
1714 | {
1715 | "name": "Monolophosaurus",
1716 | "description": "This Jurassic predator had a single crest on its skull."
1717 | },
1718 | {
1719 | "name": "Mononykus",
1720 | "description": "This dinosaur may have dug into termite mounds for its lunch."
1721 | },
1722 | {
1723 | "name": "Montanoceratops",
1724 | "description": "A primitive ceratopsian of the late Cretaceous period."
1725 | },
1726 | {
1727 | "name": "Mussaurus",
1728 | "description": "This \"mouse lizard\" lived in Triassic South America."
1729 | },
1730 | {
1731 | "name": "Muttaburrasaurus",
1732 | "description": "The most complete dinosaur fossil ever found in Australia."
1733 | },
1734 | {
1735 | "name": "Mymoorapelta",
1736 | "description": "named after the Mygand-Moore quarry in Colorado."
1737 | },
1738 | {
1739 | "name": "Nankangia",
1740 | "description": "A recently discovered oviraptor from China."
1741 | },
1742 | {
1743 | "name": "Nanosaurus",
1744 | "description": "This \"tiny lizard\" was named by Othniel C. Marsh."
1745 | },
1746 | {
1747 | "name": "Nanotyrannus",
1748 | "description": "Could this have been a juvenile T. Rex?"
1749 | },
1750 | {
1751 | "name": "Nanshiungosaurus",
1752 | "description": "A bizarre therizinosaur from Asia."
1753 | },
1754 | {
1755 | "name": "Nanuqsaurus",
1756 | "description": "This \"polar lizard\" was recently discovered in Alaska."
1757 | },
1758 | {
1759 | "name": "Nanyangosaurus",
1760 | "description": "An iguanodontid ornithopod of middle Cretaceous Asia."
1761 | },
1762 | {
1763 | "name": "Nasutoceratops",
1764 | "description": "This dinosaur had horns like a modern steer."
1765 | },
1766 | {
1767 | "name": "Nebulasaurus",
1768 | "description": "This \"nebula lizard\" was recently discovered in China."
1769 | },
1770 | {
1771 | "name": "Nedcolbertia",
1772 | "description": "named after the famous paleontologist Edwin Colbert."
1773 | },
1774 | {
1775 | "name": "Neimongosaurus",
1776 | "description": "A rare therizinosaur from inner Mongolia."
1777 | },
1778 | {
1779 | "name": "Nemegtomaia",
1780 | "description": "This dinosaur had a bizarrely shaped skull."
1781 | },
1782 | {
1783 | "name": "Nemegtosaurus",
1784 | "description": "This titanosaur has been recreated from a single, incomplete skull."
1785 | },
1786 | {
1787 | "name": "Neovenator",
1788 | "description": "One of the largest carnivorous dinosaurs of western Europe."
1789 | },
1790 | {
1791 | "name": "Neuquenraptor",
1792 | "description": "It may actually be a species (or specimen) of Unenlagia."
1793 | },
1794 | {
1795 | "name": "Neuquensaurus",
1796 | "description": "Was this titanosaur really a species of Saltasaurus?"
1797 | },
1798 | {
1799 | "name": "Nigersaurus",
1800 | "description": "This African sauropod had a huge number of teeth."
1801 | },
1802 | {
1803 | "name": "Nipponosaurus",
1804 | "description": "This hadrosaur was discovered on the island of Sakhalin."
1805 | },
1806 | {
1807 | "name": "Noasaurus",
1808 | "description": "Were this predator's giant claws on its hands, or on its feet?"
1809 | },
1810 | {
1811 | "name": "Nodocephalosaurus",
1812 | "description": "This armored dinosaur has been reconstructed from a single skull."
1813 | },
1814 | {
1815 | "name": "Nodosaurus",
1816 | "description": "One of the first armored dinosaurs ever discovered in North America."
1817 | },
1818 | {
1819 | "name": "Nomingia",
1820 | "description": "This small dinosaur had a peacock-like tail."
1821 | },
1822 | {
1823 | "name": "Nothronychus",
1824 | "description": "The first therizonosaur to be found outside Asia."
1825 | },
1826 | {
1827 | "name": "Notohypsilophodon",
1828 | "description": "A rare South American ornithopod."
1829 | },
1830 | {
1831 | "name": "Nqwebasaurus",
1832 | "description": "One of the few theropods to be discovered in sub-Saharan Africa."
1833 | },
1834 | {
1835 | "name": "Nuthetes",
1836 | "description": "This raptor was named after the modern monitor lizard."
1837 | },
1838 | {
1839 | "name": "Nyasasaurus",
1840 | "description": "Could this be the earliest dinosaur in the fossil record?"
1841 | },
1842 | {
1843 | "name": "Ojoceratops",
1844 | "description": "A very close relative of Triceratops."
1845 | },
1846 | {
1847 | "name": "Olorotitan",
1848 | "description": "One of the most complete dinosaur fossils ever found in Russia."
1849 | },
1850 | {
1851 | "name": "Omeisaurus",
1852 | "description": "One of the most common Chinese sauropods."
1853 | },
1854 | {
1855 | "name": "Oohkotokia",
1856 | "description": "Its name is Blackfoot for \"large stone\"."
1857 | },
1858 | {
1859 | "name": "Opisthocoelicaudia",
1860 | "description": "A clumsily named titanosaur of the late Cretaceous period."
1861 | },
1862 | {
1863 | "name": "Orkoraptor",
1864 | "description": "The southernmost theropod ever to live in South America."
1865 | },
1866 | {
1867 | "name": "Ornithodesmus",
1868 | "description": "This mysterious raptor was once thought to be a pterosaur."
1869 | },
1870 | {
1871 | "name": "Ornitholestes",
1872 | "description": "This \"bird robber\" probably preyed on small lizards instead."
1873 | },
1874 | {
1875 | "name": "Ornithomimus",
1876 | "description": "This \"bird mimic\" resembled a modern ostrich."
1877 | },
1878 | {
1879 | "name": "Ornithopsis",
1880 | "description": "This \"bird face\" was actually a genus of titanosaur."
1881 | },
1882 | {
1883 | "name": "Orodromeus",
1884 | "description": "This tiny herbivore was on Troodon's dinner menu."
1885 | },
1886 | {
1887 | "name": "Orthomerus",
1888 | "description": "One of the few dinosaurs to be discovered in Holland."
1889 | },
1890 | {
1891 | "name": "Oryctodromeus",
1892 | "description": "The only ornithopod known to have lived in burrows."
1893 | },
1894 | {
1895 | "name": "Ostafrikasaurus",
1896 | "description": "Could this have been the earliest known spinosaur?"
1897 | },
1898 | {
1899 | "name": "Othnielia",
1900 | "description": "named after the famous paleontologist Othniel C. Marsh."
1901 | },
1902 | {
1903 | "name": "Othnielosaurus",
1904 | "description": "Also named after the famous paleontologist Othniel C. Marsh."
1905 | },
1906 | {
1907 | "name": "Ouranosaurus",
1908 | "description": "Scientists can't decide if this herbivore had a sail or a hump."
1909 | },
1910 | {
1911 | "name": "Overosaurus",
1912 | "description": "This dwarf titanosaur was announced to the world in 2013."
1913 | },
1914 | {
1915 | "name": "Oviraptor",
1916 | "description": "Turns out that this \"egg thief\" got a bad rap."
1917 | },
1918 | {
1919 | "name": "Oxalaia",
1920 | "description": "This spinosaur was recently discovered in Brazil."
1921 | },
1922 | {
1923 | "name": "Ozraptor",
1924 | "description": "Not much is known about this Australian theropod."
1925 | },
1926 | {
1927 | "name": "Pachycephalosaurus",
1928 | "description": "This plant-eater gave new meaning to the word \"blockhead\"."
1929 | },
1930 | {
1931 | "name": "Pachyrhinosaurus",
1932 | "description": "This \"thick-nosed lizard\" roamed the North American forests."
1933 | },
1934 | {
1935 | "name": "Palaeoscincus",
1936 | "description": "This \"ancient skink\" was actually an armored dinosaur."
1937 | },
1938 | {
1939 | "name": "Paluxysaurus",
1940 | "description": "The official Texas state dinosaur."
1941 | },
1942 | {
1943 | "name": "Pampadromaeus",
1944 | "description": "This \"Pampas runner\" was ancestral to sauropods."
1945 | },
1946 | {
1947 | "name": "Pamparaptor",
1948 | "description": "This raptor was discovered in the Argentinian Pampas."
1949 | },
1950 | {
1951 | "name": "Panamericansaurus",
1952 | "description": "This titanosaur was named after an energy company."
1953 | },
1954 | {
1955 | "name": "Panoplosaurus",
1956 | "description": "A squat, stocky nodosaur of the late Cretaceous."
1957 | },
1958 | {
1959 | "name": "Panphagia",
1960 | "description": "Its name is Greek for \"eats everything\"."
1961 | },
1962 | {
1963 | "name": "Pantydraco",
1964 | "description": "No, this dinosaur didn't wear you-know-what."
1965 | },
1966 | {
1967 | "name": "Paralititan",
1968 | "description": "This huge sauropod was discovered recently in Egypt."
1969 | },
1970 | {
1971 | "name": "Paranthodon",
1972 | "description": "This stegosaur was discovered over 150 years ago."
1973 | },
1974 | {
1975 | "name": "Pararhabdodon",
1976 | "description": "The western European equivalent of Tsintaosaurus."
1977 | },
1978 | {
1979 | "name": "Parasaurolophus",
1980 | "description": "Possibly the loudest dinosaur ever to roam the earth."
1981 | },
1982 | {
1983 | "name": "Parksosaurus",
1984 | "description": "It was once classified as a species of Thescelosaurus."
1985 | },
1986 | {
1987 | "name": "Paronychodon",
1988 | "description": "This \"tooth taxon\" didn't make it out of the 19th century."
1989 | },
1990 | {
1991 | "name": "Parvicursor",
1992 | "description": "One of the smallest dinosaurs yet identified."
1993 | },
1994 | {
1995 | "name": "Patagosaurus",
1996 | "description": "This \"Patagonian lizard\" hailed from South America."
1997 | },
1998 | {
1999 | "name": "Pawpawsaurus",
2000 | "description": "This ancient nodosaur was discovered in Texas."
2001 | },
2002 | {
2003 | "name": "Pedopenna",
2004 | "description": "One of the earliest known dino-birds."
2005 | },
2006 | {
2007 | "name": "Pegomastax",
2008 | "description": "This dinosaur was covered with porcupine-like bristles."
2009 | },
2010 | {
2011 | "name": "Pelecanimimus",
2012 | "description": "This \"pelican mimic\" sported over 200 teeth."
2013 | },
2014 | {
2015 | "name": "Peloroplites",
2016 | "description": "This \"monstrous Hoplite\" was recently discovered in Utah."
2017 | },
2018 | {
2019 | "name": "Pelorosaurus",
2020 | "description": "The first sauropod ever to be discovered."
2021 | },
2022 | {
2023 | "name": "Pentaceratops",
2024 | "description": "This \"five-horned\" herbivore really had only three."
2025 | },
2026 | {
2027 | "name": "Philovenator",
2028 | "description": "As its name says this dinosaur \"loved to hunt\"."
2029 | },
2030 | {
2031 | "name": "Phuwiangosaurus",
2032 | "description": "This titanosaur was discovered in modern-day Thailand."
2033 | },
2034 | {
2035 | "name": "Piatnitzkysaurus",
2036 | "description": "Its teeth were as sharp as its name is funny."
2037 | },
2038 | {
2039 | "name": "Pinacosaurus",
2040 | "description": "Did this ankylosaur roam central Asia in herds?"
2041 | },
2042 | {
2043 | "name": "Pisanosaurus",
2044 | "description": "One of the earliest known ornithischian dinosaurs."
2045 | },
2046 | {
2047 | "name": "Piveteausaurus",
2048 | "description": "No one is quite sure what to make of this theropod dinosaur."
2049 | },
2050 | {
2051 | "name": "Planicoxa",
2052 | "description": "A medium-sized iguanodont of early Cretaceous North America."
2053 | },
2054 | {
2055 | "name": "Plateosaurus",
2056 | "description": "This herd dinosaur blackened the plains of the late Triassic."
2057 | },
2058 | {
2059 | "name": "Pleurocoelus",
2060 | "description": "It was the official state dinosaur of Texas."
2061 | },
2062 | {
2063 | "name": "Pneumatoraptor",
2064 | "description": "This \"air thief\" was recently discovered in Hungary."
2065 | },
2066 | {
2067 | "name": "Podokesaurus",
2068 | "description": "One of the earliest dinosaurs to live in eastern North America."
2069 | },
2070 | {
2071 | "name": "Poekilopleuron",
2072 | "description": "It may (or may not) have been a species of Megalosaurus."
2073 | },
2074 | {
2075 | "name": "Polacanthus",
2076 | "description": "An extremely spiky ankylosaur of the middle Cretaceous."
2077 | },
2078 | {
2079 | "name": "Prenocephale",
2080 | "description": "This \"bonehead\" had a round, thick skull."
2081 | },
2082 | {
2083 | "name": "Prenoceratops",
2084 | "description": "A close relative of Leptoceratops."
2085 | },
2086 | {
2087 | "name": "Proa",
2088 | "description": "This ornithopod was named after its prow-shaped jaw."
2089 | },
2090 | {
2091 | "name": "Probactrosaurus",
2092 | "description": "An early stage in hadrosaur evolution."
2093 | },
2094 | {
2095 | "name": "Proceratosaurus",
2096 | "description": "Despite its name, not a close relative of Ceratosaurus."
2097 | },
2098 | {
2099 | "name": "Procompsognathus",
2100 | "description": "Was it an archosaur or an early dinosaur?"
2101 | },
2102 | {
2103 | "name": "Propanoplosaurus",
2104 | "description": "This baby ankylosaur was recently discovered in Maryland."
2105 | },
2106 | {
2107 | "name": "Prosaurolophus",
2108 | "description": "The likely ancestor of both Saurolophus and Parasaurolophus."
2109 | },
2110 | {
2111 | "name": "Protarchaeopteryx",
2112 | "description": "Before Archaeopteryx? It actually lived millions of years later."
2113 | },
2114 | {
2115 | "name": "Protoceratops",
2116 | "description": "A famous dinosaur with a very funky frill."
2117 | },
2118 | {
2119 | "name": "Protohadros",
2120 | "description": "Despite its name, it wasn't really the \"first\" hadrosaur."
2121 | },
2122 | {
2123 | "name": "Psittacosaurus",
2124 | "description": "This dinosaur's noggin wouldn't have looked out of place on a parrot."
2125 | },
2126 | {
2127 | "name": "Puertasaurus",
2128 | "description": "This titanosaur rivaled Argentinosaurus in size."
2129 | },
2130 | {
2131 | "name": "Pyroraptor",
2132 | "description": "This \"fire thief\" prowled the plains of prehistoric France."
2133 | },
2134 | {
2135 | "name": "Qantassaurus",
2136 | "description": "named after the national airline of Australia."
2137 | },
2138 | {
2139 | "name": "Qianzhousaurus",
2140 | "description": "This long-snouted tyrannosaur has been nicknamed Pinocchio Rex."
2141 | },
2142 | {
2143 | "name": "Qiaowanlong",
2144 | "description": "An Asian relative of Brachiosaurus."
2145 | },
2146 | {
2147 | "name": "Qiupalong",
2148 | "description": "This \"bird mimic\" dinosaur was recently discovered in China."
2149 | },
2150 | {
2151 | "name": "Quaesitosaurus",
2152 | "description": "This titanosaur may have had remarkably sharp hearing."
2153 | },
2154 | {
2155 | "name": "Quilmesaurus",
2156 | "description": "This dinosaur was named after an indigenous South American tribe."
2157 | },
2158 | {
2159 | "name": "Rahiolisaurus",
2160 | "description": "This Indian dinosaur is represented by seven tangled individuals."
2161 | },
2162 | {
2163 | "name": "Rahonavis",
2164 | "description": "Was it a raptor-like bird or a bird-like raptor?"
2165 | },
2166 | {
2167 | "name": "Rajasaurus",
2168 | "description": "This \"prince lizard\" lived in what is now modern-day India."
2169 | },
2170 | {
2171 | "name": "Rapator",
2172 | "description": "No, this mysterious Australian theropod wasn't a raptor."
2173 | },
2174 | {
2175 | "name": "Rapetosaurus",
2176 | "description": "The only sauropod ever to be discovered on modern-day Madagascar."
2177 | },
2178 | {
2179 | "name": "Raptorex",
2180 | "description": "A pint-sized precursor of T. Rex."
2181 | },
2182 | {
2183 | "name": "Rebbachisaurus",
2184 | "description": "A poorly understood sauropod from northern Africa."
2185 | },
2186 | {
2187 | "name": "Regaliceratops",
2188 | "description": "This ceratopsian had a huge, crown-shaped frill."
2189 | },
2190 | {
2191 | "name": "Regnosaurus",
2192 | "description": "This stegosaur lived in what is now modern-day England."
2193 | },
2194 | {
2195 | "name": "Rhabdodon",
2196 | "description": "A possible \"missing link\" between Iguanodon and Hypsilophodon."
2197 | },
2198 | {
2199 | "name": "Rhinorex",
2200 | "description": "This duck-billed dinosaur had an unusually large nose."
2201 | },
2202 | {
2203 | "name": "Rhoetosaurus",
2204 | "description": "A medium-sized sauropod from Down Under."
2205 | },
2206 | {
2207 | "name": "Richardoestesia",
2208 | "description": "named after the paleontologist Richard Estes."
2209 | },
2210 | {
2211 | "name": "Rinchenia",
2212 | "description": "named after the famous paleontologist Rinchen Barsbold."
2213 | },
2214 | {
2215 | "name": "Rinconsaurus",
2216 | "description": "A modestly sized titanosaur of South America."
2217 | },
2218 | {
2219 | "name": "Riojasaurus",
2220 | "description": "One of the few prosauropods known to have lived in South America."
2221 | },
2222 | {
2223 | "name": "Rubeosaurus",
2224 | "description": "A ceratopsian dinosaur from the Two Medicine Formation."
2225 | },
2226 | {
2227 | "name": "Rugops",
2228 | "description": "This wrinkly-faced carnivore probably fed on abandoned carcasses."
2229 | },
2230 | {
2231 | "name": "Sahaliyania",
2232 | "description": "This hadrosaur's name is Manchurian for \"black\"."
2233 | },
2234 | {
2235 | "name": "Saichania",
2236 | "description": "This ankylosaur's name is Chinese for \"beautiful\"."
2237 | },
2238 | {
2239 | "name": "Saltasaurus",
2240 | "description": "The first armored sauropod ever to be discovered."
2241 | },
2242 | {
2243 | "name": "Saltopus",
2244 | "description": "Experts aren't sure if this was a dinosaur or an archosaur."
2245 | },
2246 | {
2247 | "name": "Sanjuansaurus",
2248 | "description": "An early theropod from South America."
2249 | },
2250 | {
2251 | "name": "Santanaraptor",
2252 | "description": "named after Brazil's Santana formation."
2253 | },
2254 | {
2255 | "name": "Sarahsaurus",
2256 | "description": "This prosauropod had unusually strong hands."
2257 | },
2258 | {
2259 | "name": "Sarcolestes",
2260 | "description": "The most likely ancestor of the ankylosaurs."
2261 | },
2262 | {
2263 | "name": "Sarcosaurus",
2264 | "description": "This \"flesh lizard\" roamed early Jurassic England."
2265 | },
2266 | {
2267 | "name": "Saturnalia",
2268 | "description": "The earliest dinosaur known to have had a herbivorous diet."
2269 | },
2270 | {
2271 | "name": "Saurolophus",
2272 | "description": "One of the few hadrosaurs known to have lived on two continents."
2273 | },
2274 | {
2275 | "name": "Sauroniops",
2276 | "description": "This dinosaur's name means \"Eye of Sauron\"."
2277 | },
2278 | {
2279 | "name": "Sauropelta",
2280 | "description": "This ankylosaur's armor helped keep raptors at bay."
2281 | },
2282 | {
2283 | "name": "Saurophaganax",
2284 | "description": "The official state dinosaur of Oklahoma."
2285 | },
2286 | {
2287 | "name": "Sauroposeidon",
2288 | "description": "One of the tallest dinosaurs ever to walk the earth."
2289 | },
2290 | {
2291 | "name": "Saurornithoides",
2292 | "description": "A Troodon-like predator from central Asia."
2293 | },
2294 | {
2295 | "name": "Saurornitholestes",
2296 | "description": "A close cousin of Velociraptor."
2297 | },
2298 | {
2299 | "name": "Savannasaurus",
2300 | "description": "This titanosaur was recently discovered in Australia."
2301 | },
2302 | {
2303 | "name": "Scansoriopteryx",
2304 | "description": "This early proto-bird probably lived in trees."
2305 | },
2306 | {
2307 | "name": "Scelidosaurus",
2308 | "description": "Among the earliest of all the armored dinosaurs."
2309 | },
2310 | {
2311 | "name": "Scipionyx",
2312 | "description": "One of the most perfectly preserved dinosaur fossils ever found."
2313 | },
2314 | {
2315 | "name": "Sciurumimus",
2316 | "description": "This \"squirrel mimic\" was one of the earliest feathered dinosaurs."
2317 | },
2318 | {
2319 | "name": "Scolosaurus",
2320 | "description": "It was once classified as a species of Euoplocephalus."
2321 | },
2322 | {
2323 | "name": "Scutellosaurus",
2324 | "description": "Probably the smallest of all the armored dinosaurs."
2325 | },
2326 | {
2327 | "name": "Secernosaurus",
2328 | "description": "The first hadrosaur to be discovered in South America."
2329 | },
2330 | {
2331 | "name": "Seitaad",
2332 | "description": "This small dinosaur may have been buried in an avalanche."
2333 | },
2334 | {
2335 | "name": "Segisaurus",
2336 | "description": "An early dinosaur closely related to Coelophysis."
2337 | },
2338 | {
2339 | "name": "Segnosaurus",
2340 | "description": "One of the most unusual (and poorly understood) Cretaceous dinosaurs."
2341 | },
2342 | {
2343 | "name": "Seismosaurus",
2344 | "description": "It was huge, to be sure, but might it have been a species of Diplodocus?"
2345 | },
2346 | {
2347 | "name": "Sellosaurus",
2348 | "description": "Another early prosauropod of the Triassic period."
2349 | },
2350 | {
2351 | "name": "Serendipaceratops",
2352 | "description": "Was this really an Australian ceratopsian?"
2353 | },
2354 | {
2355 | "name": "Shamosaurus",
2356 | "description": "This Mongolian ankylosaur was a close relative of Gobisaurus."
2357 | },
2358 | {
2359 | "name": "Shanag",
2360 | "description": "A basal raptor of early Cretaceous Asia."
2361 | },
2362 | {
2363 | "name": "Shantungosaurus",
2364 | "description": "The biggest of all the duck-billed dinosaurs."
2365 | },
2366 | {
2367 | "name": "Shaochilong",
2368 | "description": "Its name is Chinese for \"shark-toothed dragon\"."
2369 | },
2370 | {
2371 | "name": "Shenzhousaurus",
2372 | "description": "A small, primitive ornithomimid from China."
2373 | },
2374 | {
2375 | "name": "Shunosaurus",
2376 | "description": "Anatomically speaking, probably the best known of all the sauropods."
2377 | },
2378 | {
2379 | "name": "Shuvosaurus",
2380 | "description": "Was this meat eater an early dinosaur or a two-legged crocodile?"
2381 | },
2382 | {
2383 | "name": "Shuvuuia",
2384 | "description": "Scientists can't decide if it was a dinosaur or a bird."
2385 | },
2386 | {
2387 | "name": "Siamodon",
2388 | "description": "This ornithopod was recently discovered in Thailand."
2389 | },
2390 | {
2391 | "name": "Siamosaurus",
2392 | "description": "This may (or may not) have been a spinosaur from Thailand."
2393 | },
2394 | {
2395 | "name": "Siamotyrannus",
2396 | "description": "Despite its name, it wasn't a true tyrannosaur."
2397 | },
2398 | {
2399 | "name": "Siats",
2400 | "description": "One of the largest theropods ever to live in North America."
2401 | },
2402 | {
2403 | "name": "Sigilmassasaurus",
2404 | "description": "Was this really a species of Carcharodontosaurus?"
2405 | },
2406 | {
2407 | "name": "Silvisaurus",
2408 | "description": "This primitive nodosaur was discovered in Kansas."
2409 | },
2410 | {
2411 | "name": "Similicaudipteryx",
2412 | "description": "The juveniles may have been differently feathered than the adults."
2413 | },
2414 | {
2415 | "name": "Sinocalliopteryx",
2416 | "description": "The biggest \"dino-bird\" yet discovered."
2417 | },
2418 | {
2419 | "name": "Sinoceratops",
2420 | "description": "A rare ceratopsian from late Cretaceous China."
2421 | },
2422 | {
2423 | "name": "Sinornithoides",
2424 | "description": "A small, feathered dinosaur closely related to Troodon."
2425 | },
2426 | {
2427 | "name": "Sinornithomimus",
2428 | "description": "This ornithomimid is known from over a dozen skeletons."
2429 | },
2430 | {
2431 | "name": "Sinornithosaurus",
2432 | "description": "A typical dino-bird of the early Cretaceous."
2433 | },
2434 | {
2435 | "name": "Sinosauropteryx",
2436 | "description": "The first dinosaur proven to have feathers."
2437 | },
2438 | {
2439 | "name": "Sinosaurus",
2440 | "description": "It was once classified as an Asian species of Dilophosaurus."
2441 | },
2442 | {
2443 | "name": "Sinotyrannus",
2444 | "description": "This \"Chinese tyrant\" was an ancient ancestor of tyrannosaurs."
2445 | },
2446 | {
2447 | "name": "Sinovenator",
2448 | "description": "This \"Chinese hunter\" preyed on its fellow dino-birds."
2449 | },
2450 | {
2451 | "name": "Sinraptor",
2452 | "description": "Despite its name, this allosaur wasn't any better or worse than other dinosaurs."
2453 | },
2454 | {
2455 | "name": "Sinusonasus",
2456 | "description": "It sounds like a disease, but it was actually a feathered dinosaur."
2457 | },
2458 | {
2459 | "name": "Skorpiovenator",
2460 | "description": "This \"scorpion hunter\" really ate meat."
2461 | },
2462 | {
2463 | "name": "Sonorasaurus",
2464 | "description": "The remains of this sauropod were discovered in Arizona."
2465 | },
2466 | {
2467 | "name": "Sphaerotholus",
2468 | "description": "Yet another dome-headed dino from North America."
2469 | },
2470 | {
2471 | "name": "Spinophorosaurus",
2472 | "description": "This early sauropod had a \"thagomizer\" on its tail."
2473 | },
2474 | {
2475 | "name": "Spinops",
2476 | "description": "This ceratopsian was named 100 years after its bones were found."
2477 | },
2478 | {
2479 | "name": "Spinosaurus",
2480 | "description": "This dinosaur was distinguished by the sail-like structure on its back."
2481 | },
2482 | {
2483 | "name": "Spinostropheus",
2484 | "description": "This theropod was once thought to be a species of Elaphrosaurus."
2485 | },
2486 | {
2487 | "name": "Staurikosaurus",
2488 | "description": "Another primitive theropod of the Triassic period."
2489 | },
2490 | {
2491 | "name": "Stegoceras",
2492 | "description": "This small herbivore was built for high-speed head-butting."
2493 | },
2494 | {
2495 | "name": "Stegosaurus",
2496 | "description": "The small-brained, spike-tailed, plant-eating dinosaur."
2497 | },
2498 | {
2499 | "name": "Stenopelix",
2500 | "description": "Experts aren't sure how to classify this dinosaur."
2501 | },
2502 | {
2503 | "name": "Stokesosaurus",
2504 | "description": "Some experts think this was the earliest tyrannosaur."
2505 | },
2506 | {
2507 | "name": "Struthiomimus",
2508 | "description": "This \"ostrich mimic\" roamed the plains of North America."
2509 | },
2510 | {
2511 | "name": "Struthiosaurus",
2512 | "description": "The smallest nodosaur yet discovered."
2513 | },
2514 | {
2515 | "name": "Stygimoloch",
2516 | "description": "Its name means \"demon from the river of death.\" Got your attention yet?"
2517 | },
2518 | {
2519 | "name": "Styracosaurus",
2520 | "description": "Winner of the \"most elaborate head display\" competition."
2521 | },
2522 | {
2523 | "name": "Suchomimus",
2524 | "description": "A fish-eating dinosaur with a distinct crocodilian profile."
2525 | },
2526 | {
2527 | "name": "Sulaimanisaurus",
2528 | "description": "One of the few dinosaurs ever to be discovered in Pakistan."
2529 | },
2530 | {
2531 | "name": "Supersaurus",
2532 | "description": "No, it didn't wear a cape, but this giant dino was still impressive."
2533 | },
2534 | {
2535 | "name": "Suuwassea",
2536 | "description": "Its name is Native American for \"ancient thunder\"."
2537 | },
2538 | {
2539 | "name": "Suzhousaurus",
2540 | "description": "A large, early Cretaceous therizinosaur."
2541 | },
2542 | {
2543 | "name": "Szechuanosaurus",
2544 | "description": "This theropod was a close relative of Sinraptor."
2545 | },
2546 | {
2547 | "name": "Tachiraptor",
2548 | "description": "The first meat-eating dinosaur ever to be discovered in Venezuela."
2549 | },
2550 | {
2551 | "name": "Talarurus",
2552 | "description": "This ankylosaur was discovered in the Gobi Desert."
2553 | },
2554 | {
2555 | "name": "Talos",
2556 | "description": "This dinosaur was found with an injured big toe."
2557 | },
2558 | {
2559 | "name": "Tangvayosaurus",
2560 | "description": "This Laotian titanosaur was closely related to Phuwiangosaurus."
2561 | },
2562 | {
2563 | "name": "Tanius",
2564 | "description": "Not much is known about this Chinese hadrosaur."
2565 | },
2566 | {
2567 | "name": "Tanycolagreus",
2568 | "description": "This mysterious theropod was once thought to be a species of Coelurus."
2569 | },
2570 | {
2571 | "name": "Taohelong",
2572 | "description": "The first \"polacanthine\" ankylosaur ever to be discovered in Asia."
2573 | },
2574 | {
2575 | "name": "Tapuiasaurus",
2576 | "description": "A recently discovered titanosaur from South America."
2577 | },
2578 | {
2579 | "name": "Tarascosaurus",
2580 | "description": "The only known abelisaur of the northern hemisphere."
2581 | },
2582 | {
2583 | "name": "Tarbosaurus",
2584 | "description": "The second-biggest tyrannosaur after T. Rex."
2585 | },
2586 | {
2587 | "name": "Tarchia",
2588 | "description": "Its name means \"brainy,\" but that may be an exaggeration."
2589 | },
2590 | {
2591 | "name": "Tastavinsaurus",
2592 | "description": "This titanosaur was discovered in Spain."
2593 | },
2594 | {
2595 | "name": "Tatankacephalus",
2596 | "description": "A brand-new ankylosaur from North America."
2597 | },
2598 | {
2599 | "name": "Tatankaceratops",
2600 | "description": "Was this really a juvenile specimen of Triceratops?"
2601 | },
2602 | {
2603 | "name": "Tataouinea",
2604 | "description": "No, this dinosaur wasn't named after Tatooine in Star Wars."
2605 | },
2606 | {
2607 | "name": "Tawa",
2608 | "description": "This ancient theropod points to a South American origin for dinosaurs."
2609 | },
2610 | {
2611 | "name": "Tazoudasaurus",
2612 | "description": "This Vulcanodon relative was one of the earliest sauropods."
2613 | },
2614 | {
2615 | "name": "Technosaurus",
2616 | "description": "This early herbivore was named after Texas Tech university."
2617 | },
2618 | {
2619 | "name": "Tehuelchesaurus",
2620 | "description": "This sauropod was named after an indigenous South American people."
2621 | },
2622 | {
2623 | "name": "Telmatosaurus",
2624 | "description": "This duck-billed dinosaur was discovered in Transylvania."
2625 | },
2626 | {
2627 | "name": "Tendaguria",
2628 | "description": "This Tanzanian sauropod has proven difficult to classify."
2629 | },
2630 | {
2631 | "name": "Tenontosaurus",
2632 | "description": "This long-tailed herbivore was hunted by Deinonychus."
2633 | },
2634 | {
2635 | "name": "Teratophoneus",
2636 | "description": "This \"monstrous murderer\" wasn't all that big."
2637 | },
2638 | {
2639 | "name": "Tethyshadros",
2640 | "description": "One of the few dinosaurs to be found in modern-day Italy."
2641 | },
2642 | {
2643 | "name": "Texacephale",
2644 | "description": "This Texan pachycephalosaur was named in 2010."
2645 | },
2646 | {
2647 | "name": "Thecocoelurus",
2648 | "description": "Is this the earliest ornithomimid in the fossil record?"
2649 | },
2650 | {
2651 | "name": "Thecodontosaurus",
2652 | "description": "The first prosauropod ever to be discovered."
2653 | },
2654 | {
2655 | "name": "Theiophytalia",
2656 | "description": "Its name means \"garden of the gods\"."
2657 | },
2658 | {
2659 | "name": "Therizinosaurus",
2660 | "description": "What did Little Orphan Annie say to this dinosaur? \"Reaping lizards!\""
2661 | },
2662 | {
2663 | "name": "Thescelosaurus",
2664 | "description": "Did paleontologists find this dinosaur's mummified heart?"
2665 | },
2666 | {
2667 | "name": "Tianchisaurus",
2668 | "description": "This dinosaur's species name honors \"Jurassic Park\"."
2669 | },
2670 | {
2671 | "name": "Tianyulong",
2672 | "description": "Why did this ornithopod have feathers?"
2673 | },
2674 | {
2675 | "name": "Tianyuraptor",
2676 | "description": "A small, long-legged raptor from eastern Asia."
2677 | },
2678 | {
2679 | "name": "Tianzhenosaurus",
2680 | "description": "This ankylosaur's skull has been spectacularly preserved."
2681 | },
2682 | {
2683 | "name": "Timimus",
2684 | "description": "The only ornithomimid ever discovered in Australia."
2685 | },
2686 | {
2687 | "name": "Titanoceratops",
2688 | "description": "The biggest of all the horned, frilled dinosaurs."
2689 | },
2690 | {
2691 | "name": "Titanosaurus",
2692 | "description": "This sauropod may—or may not—have been a unique member of its genus."
2693 | },
2694 | {
2695 | "name": "Tochisaurus",
2696 | "description": "A large troodont of late Cretaceous Asia."
2697 | },
2698 | {
2699 | "name": "Tornieria",
2700 | "description": "This sauropod has a complicated taxonomic history."
2701 | },
2702 | {
2703 | "name": "Torosaurus",
2704 | "description": "Was it really an elderly specimen of Triceratops?"
2705 | },
2706 | {
2707 | "name": "Torvosaurus",
2708 | "description": "One of the largest predators of Jurassic North America."
2709 | },
2710 | {
2711 | "name": "Triceratops",
2712 | "description": "The famous, three-horned, plant-eating dinosaur."
2713 | },
2714 | {
2715 | "name": "Trinisaura",
2716 | "description": "The first ornithopod ever to be discovered in Antarctica."
2717 | },
2718 | {
2719 | "name": "Troodon",
2720 | "description": "Possibly the smartest dinosaur that ever lived."
2721 | },
2722 | {
2723 | "name": "Tsaagan",
2724 | "description": "One of the earliest raptors yet discovered."
2725 | },
2726 | {
2727 | "name": "Tsintaosaurus",
2728 | "description": "Also known as the \"Unicorn Dinosaur\"."
2729 | },
2730 | {
2731 | "name": "Tuojiangosaurus",
2732 | "description": "One of the most well-known Chinese stegosaurs."
2733 | },
2734 | {
2735 | "name": "Turanoceratops",
2736 | "description": "What was this ceratopsian doing in late Cretaceous Asia?"
2737 | },
2738 | {
2739 | "name": "Turiasaurus",
2740 | "description": "The largest dinosaur ever to be discovered in Europe."
2741 | },
2742 | {
2743 | "name": "Tylocephale",
2744 | "description": "The tallest-domed of all the pachycephalosaurs."
2745 | },
2746 | {
2747 | "name": "Tyrannosaurus Rex",
2748 | "description": "The once—and always—king of the dinosaurs."
2749 | },
2750 | {
2751 | "name": "Tyrannotitan",
2752 | "description": "We know very little about this fearsomely named dinosaur."
2753 | },
2754 | {
2755 | "name": "Uberabatitan",
2756 | "description": "Discovered in the Uberaba region of Brazil."
2757 | },
2758 | {
2759 | "name": "Udanoceratops",
2760 | "description": "The largest ceratopsian to run on two legs."
2761 | },
2762 | {
2763 | "name": "Unaysaurus",
2764 | "description": "One of the oldest prosauropods yet discovered."
2765 | },
2766 | {
2767 | "name": "Unenlagia",
2768 | "description": "This bird-like raptor was native to South America."
2769 | },
2770 | {
2771 | "name": "Unescoceratops",
2772 | "description": "named after the United Nation's UNESCO."
2773 | },
2774 | {
2775 | "name": "Urbacodon",
2776 | "description": "This Troodon-like predator was discovered in Uzbekistan."
2777 | },
2778 | {
2779 | "name": "Utahceratops",
2780 | "description": "Guess what state this dinosaur was discovered in."
2781 | },
2782 | {
2783 | "name": "Utahraptor",
2784 | "description": "Probably the biggest raptor that ever lived."
2785 | },
2786 | {
2787 | "name": "Uteodon",
2788 | "description": "It was once classified as a species of Camptosaurus."
2789 | },
2790 | {
2791 | "name": "Vagaceratops",
2792 | "description": "This big-frilled dinosaur was closely related to Kosmoceratops."
2793 | },
2794 | {
2795 | "name": "Vahiny",
2796 | "description": "Its name is Malagasy for \"traveler\"."
2797 | },
2798 | {
2799 | "name": "Valdoraptor",
2800 | "description": "This early \"bird mimic\" dinosaur lived in England."
2801 | },
2802 | {
2803 | "name": "Valdosaurus",
2804 | "description": "This ornithopod was discovered on the Isle of Wight."
2805 | },
2806 | {
2807 | "name": "Variraptor",
2808 | "description": "The first raptor ever to be discovered in France."
2809 | },
2810 | {
2811 | "name": "Velafrons",
2812 | "description": "A new addition to the duck-billed dinosaur family."
2813 | },
2814 | {
2815 | "name": "Velociraptor",
2816 | "description": "This dinosaur was vicious but a lot smaller than you thought."
2817 | },
2818 | {
2819 | "name": "Velocisaurus",
2820 | "description": "A small, speedy theropod of late Cretaceous South America."
2821 | },
2822 | {
2823 | "name": "Venenosaurus",
2824 | "description": "This \"poison lizard\" was really a gentle plant-eater."
2825 | },
2826 | {
2827 | "name": "Veterupristisaurus",
2828 | "description": "One of the earliest carcharodontosaurs yet identified."
2829 | },
2830 | {
2831 | "name": "Vulcanodon",
2832 | "description": "An early sauropod of the Jurassic period."
2833 | },
2834 | {
2835 | "name": "Wannanosaurus",
2836 | "description": "Probably the smallest of all the bone-headed dinosaurs."
2837 | },
2838 | {
2839 | "name": "Wellnhoferia",
2840 | "description": "Was it really a species of Archaeopteryx?"
2841 | },
2842 | {
2843 | "name": "Wendiceratops",
2844 | "description": "This dinosaur honors Canadian fossil hunter Wendy Sloboda."
2845 | },
2846 | {
2847 | "name": "Willinakaqe",
2848 | "description": "A rare duck-billed dinosaur from South America."
2849 | },
2850 | {
2851 | "name": "Wintonotitan",
2852 | "description": "Another new titanosaur from Australia."
2853 | },
2854 | {
2855 | "name": "Wuerhosaurus",
2856 | "description": "Could this have been the last of the stegosaurs?"
2857 | },
2858 | {
2859 | "name": "Wulagasaurus",
2860 | "description": "The earliest saurolophine hadrosaur in the fossil record."
2861 | },
2862 | {
2863 | "name": "Xenoceratops",
2864 | "description": "This \"alien horned face\" was announced in 2012."
2865 | },
2866 | {
2867 | "name": "Xenoposeidon",
2868 | "description": "Experts aren't sure how to classify this sauropod."
2869 | },
2870 | {
2871 | "name": "Xenotarsosaurus",
2872 | "description": "A poorly understood abelisaur from South America."
2873 | },
2874 | {
2875 | "name": "Xiaosaurus",
2876 | "description": "A small ornithopod from late Jurassic Asia."
2877 | },
2878 | {
2879 | "name": "Xiaotingia",
2880 | "description": "This feathered dinosaur predated Archaeopteryx."
2881 | },
2882 | {
2883 | "name": "Xinjiangtitan",
2884 | "description": "This huge sauropod was a close relative of Mamenchisaurus."
2885 | },
2886 | {
2887 | "name": "Xiongguanlong",
2888 | "description": "A small, primitive tyrannosaur from Asia."
2889 | },
2890 | {
2891 | "name": "Xixianykus",
2892 | "description": "A long-legged dino-bird from eastern Asia."
2893 | },
2894 | {
2895 | "name": "Xuanhanosaurus",
2896 | "description": "You didn't think there'd be so many \"X\"'s on this list, did you?"
2897 | },
2898 | {
2899 | "name": "Xuanhuaceratops",
2900 | "description": "An early ceratopsian of the late Jurassic."
2901 | },
2902 | {
2903 | "name": "Xuwulong",
2904 | "description": "This iguanodontid ornithopod was recently discovered in China."
2905 | },
2906 | {
2907 | "name": "Yamaceratops",
2908 | "description": "No, it didn't have a sweet potato for a head."
2909 | },
2910 | {
2911 | "name": "Yandusaurus",
2912 | "description": "A small ornithopod of middle Jurassic China."
2913 | },
2914 | {
2915 | "name": "Yangchuanosaurus",
2916 | "description": "A large theropod of late Jurassic Asia."
2917 | },
2918 | {
2919 | "name": "Yaverlandia",
2920 | "description": "A classic case of mistaken dinosaur identity."
2921 | },
2922 | {
2923 | "name": "Yi Qi",
2924 | "description": "This strange Jurassic dinosaur had bat-like wings."
2925 | },
2926 | {
2927 | "name": "Yimenosaurus",
2928 | "description": "One of the better-known Chinese prosauropods."
2929 | },
2930 | {
2931 | "name": "Yinlong",
2932 | "description": "This \"hidden dragon\" was an early ceratopsian."
2933 | },
2934 | {
2935 | "name": "Yixianosaurus",
2936 | "description": "How did this dino-bird use its long fingers?"
2937 | },
2938 | {
2939 | "name": "Yizhousaurus",
2940 | "description": "The earliest intact sauropod yet discovered."
2941 | },
2942 | {
2943 | "name": "Yongjinglong",
2944 | "description": "This titanosaur was recently discovered in China."
2945 | },
2946 | {
2947 | "name": "Yueosaurus",
2948 | "description": "This basal ornithopod was discovered by construction workers."
2949 | },
2950 | {
2951 | "name": "Yulong",
2952 | "description": "The smallest oviraptor yet identified."
2953 | },
2954 | {
2955 | "name": "Yunnanosaurus",
2956 | "description": "One of the last prosauropods to walk the earth."
2957 | },
2958 | {
2959 | "name": "Yutyrannus",
2960 | "description": "The largest feathered tyrannosaur yet identified."
2961 | },
2962 | {
2963 | "name": "Zalmoxes",
2964 | "description": "A strange-looking ornithopod from Romania."
2965 | },
2966 | {
2967 | "name": "Zanabazar",
2968 | "description": "named after a Buddhist spiritual leader."
2969 | },
2970 | {
2971 | "name": "Zapalasaurus",
2972 | "description": "This \"diplodocoid\" sauropod lived in early Cretaceous South America."
2973 | },
2974 | {
2975 | "name": "Zby",
2976 | "description": "This dinosaur's name was inversely proportional to its size."
2977 | },
2978 | {
2979 | "name": "Zephyrosaurus",
2980 | "description": "Otherwise known as the Western Wind Lizard."
2981 | },
2982 | {
2983 | "name": "Zhanghenglong",
2984 | "description": "A transitional hadrosaur of late Cretaceous Asia."
2985 | },
2986 | {
2987 | "name": "Zhejiangosaurus",
2988 | "description": "The first identified nodosaur from Asia."
2989 | },
2990 | {
2991 | "name": "Zhenyuanlong",
2992 | "description": "Also known as the \"fluffy feathered poodle from hell\"."
2993 | },
2994 | {
2995 | "name": "Zhongyuansaurus",
2996 | "description": "The only known ankylosaur to lack a tail club."
2997 | },
2998 | {
2999 | "name": "Zhuchengceratops",
3000 | "description": "It probably figured on the lunch menu of Zhuchengtyrannus."
3001 | },
3002 | {
3003 | "name": "Zhuchengosaurus",
3004 | "description": "This hadrosaur was even bigger than Shantungosaurus."
3005 | },
3006 | {
3007 | "name": "Zhuchengtyrannus",
3008 | "description": "This Asian tyrannosaur was the size of T. Rex."
3009 | },
3010 | {
3011 | "name": "Zuniceratops",
3012 | "description": "This horned dinosaur was discovered by an eight-year-old boy."
3013 | },
3014 | {
3015 | "name": "Zuolong",
3016 | "description": "It was named after General Tso, of Chinese restaurant fame."
3017 | },
3018 | {
3019 | "name": "Zupaysaurus",
3020 | "description": "This \"devil lizard\" was one of the earliest theropods."
3021 | }
3022 | ]
3023 |
--------------------------------------------------------------------------------