🎉 initiate project *astro_rewrite*
This commit is contained in:
parent
ffd4d5e86c
commit
2ba37bfbe3
8658 changed files with 2268794 additions and 2538 deletions
32
.github/workflows/gh-pages.yml
vendored
32
.github/workflows/gh-pages.yml
vendored
|
@ -1,32 +0,0 @@
|
|||
name: github pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main # Set a branch to deploy
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true # Fetch Hugo themes (true OR recursive)
|
||||
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
|
||||
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: 'latest'
|
||||
# extended: true
|
||||
|
||||
- name: Build
|
||||
run: hugo --minify
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
if: github.ref == 'refs/heads/main'
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./public
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule "themes/PaperMod"]
|
||||
path = themes/PaperMod
|
||||
url = https://github.com/adityatelange/hugo-PaperMod.git
|
36
README.md
36
README.md
|
@ -1,3 +1,5 @@
|
|||
# CURRENTLY REWRITING WEBSITE TO ASTRO
|
||||
|
||||
<div align="center">
|
||||
<img alt="logo" src="static/img/coolkid.png" width="100" />
|
||||
</div>
|
||||
|
@ -24,40 +26,12 @@
|
|||
|
||||
### Features
|
||||
|
||||
- CV
|
||||
- Blog
|
||||
- Logs
|
||||
...
|
||||
|
||||
### Future plans:
|
||||
|
||||
- [ ] Add a "foodwall" for my recipes
|
||||
- [ ] Restructure enitre site from Hugo over to Astro
|
||||
- [ ] Implement multilingual support
|
||||
...
|
||||
|
||||
## 🛠️ How do I run it locally?
|
||||
|
||||
1. [Hugo](https://gohugo.io/) must be installed
|
||||
2. Clone the project and add submodules
|
||||
|
||||
```bash
|
||||
git clone https://github.com/SindreKjelsrud/sindrekjelsrud.github.io.git
|
||||
cd sindrekjelsrud.github.io
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
3. To run the project use: `hugo serve` (livereload \<3)
|
||||
|
||||
> 3.5. To add a new blogpost use: `hugo new blog-posts/{NameOfPost}.md`
|
||||
|
||||
4. Feel free to create issues if you see room for improvement!
|
||||
|
||||
## 🫶 Misc
|
||||
|
||||
### Useful links
|
||||
|
||||
- Hugo functions - https://gohugo.io/functions/
|
||||
|
||||
### Powered by:
|
||||
|
||||
1. Hugo - https://gohugo.io/
|
||||
2. PaperMod - https://github.com/adityatelange/hugo-PaperMod
|
||||
...
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
.not-found {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.not-found-text {
|
||||
font-size: 50px;
|
||||
font-weight: 700;
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -1,8 +0,0 @@
|
|||
.button:hover {
|
||||
-webkit-transform: scale(1.1);
|
||||
-moz-transform: scale(1.1);
|
||||
-ms-transform: scale(1.1);
|
||||
-o-transform: scale(1.1);
|
||||
/* box-shadow: 0 0 0 1px grey; */
|
||||
transform: scale(1.1) translateZ(0) translate3d(0, 0, 0) rotate(0.01deg);
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
:root {
|
||||
--nav-width: 1380px;
|
||||
--article-width: 650px;
|
||||
--toc-width: 300px;
|
||||
}
|
||||
|
||||
.toc {
|
||||
margin: 0 2px 40px 2px;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--entry);
|
||||
border-radius: var(--radius);
|
||||
padding: 0.4em;
|
||||
}
|
||||
|
||||
.toc-container.wide {
|
||||
position: absolute;
|
||||
height: 100%;
|
||||
border-right: 1px solid var(--border);
|
||||
left: calc((var(--toc-width) + var(--gap)) * -1);
|
||||
top: calc(var(--gap) * 2);
|
||||
width: var(--toc-width);
|
||||
}
|
||||
|
||||
.wide .toc {
|
||||
position: sticky;
|
||||
top: var(--gap);
|
||||
border: unset;
|
||||
background: unset;
|
||||
border-radius: unset;
|
||||
width: 100%;
|
||||
margin: 0 2px 40px 2px;
|
||||
}
|
||||
|
||||
.toc details summary {
|
||||
cursor: zoom-in;
|
||||
margin-inline-start: 20px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.toc details[open] summary {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.toc-container.wide .toc .inner {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.active {
|
||||
font-size: 110%;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.toc ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
.toc .inner {
|
||||
margin: 0 0 0 20px;
|
||||
padding: 0px 15px 15px 20px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.toc li ul {
|
||||
margin-inline-start: calc(var(--gap) * 0.5);
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.toc li {
|
||||
list-style: none;
|
||||
font-size: 0.95rem;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.toc li a:hover {
|
||||
color: var(--secondary);
|
||||
}
|
10
astro.config.mjs
Normal file
10
astro.config.mjs
Normal file
|
@ -0,0 +1,10 @@
|
|||
import { defineConfig } from 'astro/config';
|
||||
import mdx from '@astrojs/mdx';
|
||||
|
||||
import sitemap from '@astrojs/sitemap';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site: 'https://example.com',
|
||||
integrations: [mdx(), sitemap()],
|
||||
});
|
135
config.yml
135
config.yml
|
@ -1,135 +0,0 @@
|
|||
languageCode: en-us
|
||||
baseURL: "https://sindrekjelsrud.github.io/"
|
||||
title: Sindre Kjelsrud
|
||||
theme: PaperMod
|
||||
|
||||
enableInlineShortcodes: true
|
||||
enableMoji: true # allowing using emoji
|
||||
enableRobotsTXT: true
|
||||
|
||||
buildDrafts: false
|
||||
buildFuture: false
|
||||
buildExpired: false
|
||||
|
||||
#googleAnalytics: UA-123-45
|
||||
|
||||
paginate: 5 # articles per page
|
||||
|
||||
minify:
|
||||
disableXML: true
|
||||
# minifyOutput: true
|
||||
|
||||
params:
|
||||
env: production # to enable google analytics, opengraph, twitter-cards and schema.
|
||||
title: Sindre Kjelsrud
|
||||
description: "Student"
|
||||
author: Sindre Kjelsrud # author: ["Me", "You"] # multiple authors
|
||||
images: ["<link or path of image for opengraph, twitter-cards>"]
|
||||
|
||||
DateFormat: "January 2, 2006"
|
||||
defaultTheme: auto # dark, light
|
||||
disableThemeToggle: false
|
||||
ShowReadingTime: true
|
||||
ShowShareButtons: false
|
||||
ShowPostNavLinks: true
|
||||
ShowBreadCrumbs: true
|
||||
ShowCodeCopyButtons: false
|
||||
disableSpecial1stPost: false
|
||||
disableScrollToTop: false
|
||||
comments: false
|
||||
hidemeta: false
|
||||
hideSummary: false
|
||||
showtoc: false
|
||||
tocopen: false
|
||||
|
||||
label:
|
||||
text: "home"
|
||||
|
||||
assets:
|
||||
favicon: "img/coolkid.png"
|
||||
|
||||
# profile-mode
|
||||
profileMode:
|
||||
enabled: true # needs to be explicitly set
|
||||
title: "Sindre Kjelsrud"
|
||||
subtitle: "Student at Western University of Applied Sciences"
|
||||
imageUrl: "img/20kb-pfp.jpg"
|
||||
imageTitle: "Me, Myself and I"
|
||||
imageWidth: 150
|
||||
imageHeight: 150
|
||||
buttons:
|
||||
- name: Projects
|
||||
url: projects
|
||||
- name: Resume
|
||||
url: en_resume
|
||||
|
||||
# home-info mode
|
||||
homeInfoParams:
|
||||
Title: "Welcome! 🚀"
|
||||
Content: "My name is Sindre Kjelsrud, and I'm an IT-Student at Western University of Applied Sciences."
|
||||
|
||||
socialIcons:
|
||||
- name: email
|
||||
url: "mailto:kjelsrudsindre@gmail.com"
|
||||
- name: linkedin
|
||||
url: "https://www.linkedin.com/in/sindre-kjelsrud-345583218/"
|
||||
- name: github
|
||||
url: "https://github.com/SindreKjelsrud"
|
||||
- name: instagram
|
||||
url: "https://instagram.com/SindreKjelsrud"
|
||||
- name: spotify
|
||||
url: "https://open.spotify.com/user/kjelsrud!"
|
||||
|
||||
# for search
|
||||
# https://fusejs.io/api/options.html
|
||||
fuseOpts:
|
||||
isCaseSensitive: false
|
||||
shouldSort: true
|
||||
location: 0
|
||||
distance: 1000
|
||||
threshold: 0.4
|
||||
minMatchCharLength: 0
|
||||
keys: ["title", "permalink", "summary", "content"]
|
||||
menu:
|
||||
main:
|
||||
- identifier: about
|
||||
name: about
|
||||
url: /about/
|
||||
weight: 1
|
||||
- identifier: projects
|
||||
name: projects
|
||||
url: /projects/
|
||||
weight: 2
|
||||
- identifier: resume
|
||||
name: resume
|
||||
url: /en_resume/
|
||||
weight: 3
|
||||
- identifier: blog
|
||||
name: blog
|
||||
url: /blog-posts/
|
||||
weight: 4
|
||||
#- identifier: example
|
||||
# name: example.org
|
||||
# url: https://example.org
|
||||
# weight: 30
|
||||
#########################################################################
|
||||
|
||||
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠤⠒⠒⠒⠒⠒⠤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
#⠀⠀⠀⠀⢀⡲⢋⠝⠋⣛⣳⡄⠀⠀⠀⠀⠀⠀⠉⠓⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀
|
||||
#⠀⢀⠠⣴⠗⢀⠥⠂⢁⠤⠤⠤⠁⠀⠀⠀⠀⠀⠀⠀⠀⣛⠛⠉⠗⠒⠲⢤⣀⠀
|
||||
#⠰⠃⠐⠀⠋⡠⠀⠮⠤⠤⠤⠤⡤⡄⠀⠀⠀⠀⠀⠀⢠⣽⠄⠀⠀⠀⠀⠀⢸⡆ __ __
|
||||
#⠀⠜⠀⠀⠈⠀⢠⣤⣔⣒⡒⠒⠂⠁⠀⡀⢀⣀⣤⣶⣿⡟⠀⠀⠀⠀⠀⢀⡼⠀ | \ | \
|
||||
#⠈⠀⠀⠀⠀⣰⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠉⠁⠀⠀⠀⢄⡴⠋⠀⠀ _______ \▓▓ ____| ▓▓
|
||||
#⠀⠀⠀⠀⣰⠋⠀⠀⠀⠈⠙⠛⠛⠛⠛⠋⠉⠀⠀⠀⠀⢀⣠⣴⡊⠁⠀⠀⠀⠀ / \ \/ ▓▓
|
||||
#⠀⡠⠐⠉⢸⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⣤⣶⣿⣿⣿⡻⡄⠀⠀⠀⠀ | ▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓▓▓▓
|
||||
#⠀⠁⠀⠀⣿⢹⣿⣿⣿⣶⣦⣶⣶⣶⣶⣶⣙⠋⠴⠛⣿⢛⡿⠬⠃⠀⠀⠀⠀⠀ \▓▓ \| ▓▓ ▓▓ | ▓▓
|
||||
#⠀⠀⠀⠀⠈⠘⠹⣿⣿⠛⠛⠛⢿⡇⠀⠉⠀⠘⠉⢰⣯⡊⠙⠀⠀⠀⠀⠀⠀⠀ _\▓▓▓▓▓▓\ ▓▓ ▓▓__| ▓▓
|
||||
#⠀⠀⠀⠀⠀⠀⠀⠈⠱⡄⠀⠀⠘⠃⠀⠀⠀⠀⠠⠛⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀ | ▓▓ ▓▓\▓▓ ▓▓
|
||||
#⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⢲⣄⠀⠒⠂⠀⣀⢴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ \▓▓▓▓▓▓▓ \▓▓ \▓▓▓▓▓▓▓
|
||||
#⠀⠀⠀⠀⠀⣀⣀⣀⣀⣈⠀⢻⣿⣶⣴⣾⡟⢸⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀
|
||||
#⠀⠀⠀⢀⡎⠀⢀⣠⡤⠂⢠⠈⢿⣿⡿⣿⠃⠀⠙⣀⣀⣀⡀⠀⠙⣄⠀⠀⠀⠀
|
||||
#⠀⠀⠀⠀⠀⢠⠉⠉⢇⠀⠈⡇⠘⣏⠀⡿⡰⠀⠀⢀⠛⠛⠻⣆⠀⠀⠀⠀⠀⠀
|
||||
#⠀⠀⠀⠀⠀⢸⠉⠉⠉⠗⠒⢿⡀⠸⡈⣠⠧⠞⠉⡏⠉⠉⠉⢹⠀⠀⠀⠀⠀⠀
|
||||
#⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠁⠀⠉⠉⠀⠀⠈⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀
|
||||
|
||||
#########################################################################
|
|
@ -1,37 +0,0 @@
|
|||
---
|
||||
title: "My 1st post"
|
||||
date: 2020-09-15T11:30:03+00:00
|
||||
# weight: 1
|
||||
# aliases: ["/first"]
|
||||
tags: ["first"]
|
||||
author: "Me"
|
||||
# author: ["Me", "You"] # multiple authors
|
||||
showToc: true
|
||||
TocOpen: false
|
||||
draft: false
|
||||
hidemeta: false
|
||||
comments: false
|
||||
description: "Desc Text."
|
||||
canonicalURL: "https://canonical.url/to/page"
|
||||
disableHLJS: true # to disable highlightjs
|
||||
disableShare: false
|
||||
disableHLJS: false
|
||||
hideSummary: false
|
||||
searchHidden: true
|
||||
ShowReadingTime: true
|
||||
ShowBreadCrumbs: true
|
||||
ShowPostNavLinks: true
|
||||
ShowWordCount: true
|
||||
ShowRssButtonInSectionTermList: true
|
||||
UseHugoToc: true
|
||||
cover:
|
||||
image: "<image path/url>" # image path/url
|
||||
alt: "<alt text>" # alt text
|
||||
caption: "<text>" # display caption under cover
|
||||
relative: false # when using page bundles set this to true
|
||||
hidden: true # only hide on current single page
|
||||
editPost:
|
||||
URL: "https://github.com/<path_to_repo>/content"
|
||||
Text: "Suggest Changes" # edit text
|
||||
appendFilePath: true # to append file path to Edit link
|
||||
---
|
|
@ -1,36 +0,0 @@
|
|||
---
|
||||
title: "About"
|
||||
date: true
|
||||
draft: false
|
||||
---
|
||||
```java
|
||||
public class Me {
|
||||
|
||||
private String self;
|
||||
|
||||
public Information info(self) {
|
||||
self.name = "Sindre Kjelsrud";
|
||||
self.nickname = "Sid";
|
||||
self.year_born = 1999;
|
||||
self.hometown = "Skedsmokorset, Viken";
|
||||
self.curr_location = "Bergen, Vestlandet";
|
||||
self.university = "Western University of Applied Sciences";
|
||||
}
|
||||
|
||||
public Favourites favs(self) {
|
||||
self.fav_sport = "bouldering && climbing";
|
||||
self.fav_color = "purple";
|
||||
self.fav_series = "Silicon Valley";
|
||||
self.fav_anime = "One Piece";
|
||||
self.fav_movie = "The Social Network || Ready Player One";
|
||||
self.fav_animemov = "Le Sommet des Dieux";
|
||||
}
|
||||
|
||||
public ContactInformation contact_info(self) {
|
||||
self.github = "SindreKjelsrud";
|
||||
self.linkedin = "Sindre Kjelsrud";
|
||||
self.instagram = "sindrekjelsrud";
|
||||
self.spotify = "Kjelsrud!";
|
||||
}
|
||||
}
|
||||
```
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "📓 journaling"
|
||||
date: true
|
||||
draft: false
|
||||
---
|
||||
My digital journal for each month.
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
title: "june23"
|
||||
date: 2023-07-02T23:11:57+02:00
|
||||
description: "What I've been doing during the month of June."
|
||||
tags: ["EN", "Journaling"]
|
||||
draft: false
|
||||
showToc: true
|
||||
---
|
||||
|
||||
## 🪴 Life
|
||||
The 13. of June I finally finished this semester. Exam-period was tough, but at least I'm done! I've passed all my exams so far, just currently waiting on my "konte"-exam.
|
||||
|
||||
I actually started my first ever summer-internship this month, at [NAV IT](https://www.detsombetyrnoe.no/). I've been very excited the last couple of months for this, as well as I've been feeling a lot of imposter syndrome lol. I'll do some journaling each week during the summer so I can take a look back at it and see all the fun stuff I've been doing! (will be posted at the end of the summer)
|
||||
|
||||
Also this month I got an idea I wanted to incorporate as a segment to this section of my journal called "månedens varde" (*this months cairn*). This is because I love building cairns during trips, so I wanted to share them as well as it motivates me to go outdoors each month! Some are built to be stable while others are just me trying to build as high as possible lol. And with that, let me proudly present to you this months cairn right below!
|
||||
|
||||
### *månedens varde🪨*
|
||||

|
||||
> *Blåmanen, Bergen ~ 14.06.23*
|
||||
|
||||
## 💪 Health
|
||||
This month I've done ok in terms of exerciseing, one hike and some bouldering here and there! I always have a hard time keeping my training-routine going between school ending and starting my summer. Hope it'll become better the next couple of weeks!
|
||||
|
||||
## 👨💻Development
|
||||
Finally finished the *logs*-page on my website! Here is a [link](https://kjelsrud.dev/logs) to the site. I haven't decided yet if I want to make a dedicated link-button to it on my site yet, but we'll see.
|
||||
|
||||
At work I'm gonna learn Kotlin and Next.js this summer as this was the techstack my team went for! Here is the [repo](https://github.com/navikt/helse-sprik) for our project if you want to take a look. Love that NAV is all for open-source!
|
||||
|
||||
I've also been researching Astro a bit here and there, and I've decided that I want to try it out for a rebrand of my website! But it'll take some time since I need to focus on work atm.
|
||||
|
||||
## 📚 Reading
|
||||
- I finished *Magnus*, the biography of Magnus Midtbø. Such a good book, loved that he included images in it so you could see the routes he was talking about! Cool to read about how he grew up and how his career was, as well as his new project with YouTube.
|
||||
- I finished *Will Artificial Intelligence Outsmart Us?* by Stephen Hawking in a day, very short book/essay. Quick read that gives a thought-provoking exploration of the potential risks and implications of advanced AI.
|
||||
- Finished *Mob Psycho 100: Vol. 7* on the trainride home from Bergen. Pretty good volume.
|
||||
|
||||
## 🎬 Entertainment
|
||||
### Movies
|
||||
- *2001: A Space Odyssey*: A rewatch, but this time I didn't just think about the visuals. As I've learned more about AI, the movie gets much more interesting since it delves deep into the intricacies of AI while presenting a captivating narrative about the evolution of artificial intelligence and its profound impact on human existence.
|
||||
- *Spider-Man: Across the Spider-Verse*: Watched it at the cinema, and wow what a great movie! I think this may be my favorite Marvel movie tbh. Such a unique film with so many artstyles! Can't wait for more.
|
||||
|
||||
### TV
|
||||
- *Dr. Stone*: Finished season 3, was a good season! Loved the new island stuff.
|
||||
|
||||
## 🎧 Music
|
||||
I've gotten two new vinyls this month!
|
||||
- "*Evig Eventyr*" album from Ka2, it's so goooood.
|
||||
- "*College Park*" album from Logic! Haven't gotten a listen yet, but I know the album is good from Spotify.
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: "may23"
|
||||
date: 2023-06-01T08:36:49+02:00
|
||||
description: "What I've been doing during the month of May."
|
||||
tags: ["EN", "Journaling"]
|
||||
draft: false
|
||||
showToc: true
|
||||
---
|
||||
|
||||
## ✍️ Blogging
|
||||
I've actually blogged quite a bit (in my opinion) this month! During the start of this exam-period I got the idea to write two posts related to a course at university, called [DAT154](https://www.hvl.no/studier/studieprogram/emne/DAT154), which is about software architecture and application development. It helped me understand different topics for the course!
|
||||
|
||||
I've also started journaling, as you see in this first post! I've got the idea, and a lot of inspiration, from a member ([Tim Hårek](https://timharek.no/)) of the studentorganization ([friByte](https://fribyte.no)) I'm a part of.
|
||||
|
||||
## 💪 Health
|
||||
I've mostly gone bouldering and climbing, with a bit of cycling mixed into the week.
|
||||
But for the first time I've gone climbing outside, and I love it! It's so much more fun and enjoyable, and wow the views you get!
|
||||
|
||||
## 👨💻Development
|
||||
During this month, I've not gotten to code as much as I'd like to, but my website will soon get the long-awaited *logs*-page where I'll store all my logs for stuff like books I've read, movies and series I've watched and so on. This way I don't need to be dependent on third-party applications! (Another inspiration from [Tim Hårek](https://timharek.no/))
|
||||
|
||||
I've set up a [wiki](https://wiki.kjelsrud.dev) (or digital garden as some call it) for myself, can't wait to fill it up with info and stuff I've learned.
|
||||
|
||||
I've also set up a [blogsite](https://pblog.kjelsrud.dev/) for a course I'll have next semester. It's for blogging about my days at an internship during next semester where I'll learn about React, TypeScript and Redux. I'll add a blogpost later where I'll just collect everything that will be blogged during the internship into one post.
|
||||
|
||||
## 📚 Reading
|
||||
- I (finally) finished my *Steve Jobs* book this month which took forever. Pretty good book, loved to learn more about him as a person and his journey.
|
||||
- Read through the manga *JoJo's Bizarre Adventure: Phantom Blood Vol. 1*. It was good, but don't know if I'll continue the series by manga (will watch the anime of course).
|
||||
- Started and finished *Hjertet i to: Seks måneder med Karpe* in just a day. Was such a good book, loved to get to know their journey towards Spektrum x10.
|
||||
|
||||
## 🎬 Entertainment
|
||||
### Movies
|
||||
- *Stone Locals: Rediscovering the Soul of Climbing*: This may be a new favorite movie. Wow is all I can say.
|
||||
- *Fishpeople | Lives Transformed by the Sea*: I wanted to go out in the water right away after the emotional short-film.
|
||||
- *Surfs Up*: Rewatch, it's so good lmao.
|
||||
- *Encanto*: Very nice and emotional movie, love Disney.
|
||||
- *Shang-Chi and the Legend of the Ten Rings*: Finally got around to watch, pretty cool film.
|
||||
- *Whiplash*: Supercool film, wanted more when it ended.
|
||||
### TV
|
||||
- *S.W.A.T.*: Finished season 6, not a huge fan anymore tbh..
|
||||
- *Star Wars: Visions*: Finished season 2, I love this concept so much. Aau's song was awesome.
|
||||
|
||||
## 🎮 Gaming
|
||||
Not a lot of gaming this month, but I started a hardcore world in Minecraft for the first time! It's an amplified world because I wanted large mountains after I watched the last episode of Star Wars: Visions S02 - "Aau's Song".
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "🏫 school"
|
||||
date: true
|
||||
draft: false
|
||||
---
|
||||
These posts are related to stuff I've learned in school.
|
|
@ -1,122 +0,0 @@
|
|||
---
|
||||
title: "Bygg solide applikasjoner med objekt-orienterte prinsipper og praksiser"
|
||||
date: 2023-05-13T11:28:45+02:00
|
||||
description: "Eksamensøving for faget DAT109 - Systemutvikling"
|
||||
tags: ["NO", "Systemutvikling", "Objekt-orienterte prinsipper & praksiser"]
|
||||
draft: false
|
||||
showToc: true
|
||||
---
|
||||
|
||||
## Introduksjon
|
||||
|
||||
I faget DAT109, **_"Systemutvikling"_**, har vi gått igjennom temaer rundt det å utvikle systemer/applikasjoner, bruken av diverse utviklingsmetoder, og viktigheten med objekt-orientert analyse, utforming og programmering.
|
||||
|
||||
Her er en kort beskrivelse av faget:
|
||||
|
||||
> Emnet skal gi studentene en innføring i prinsipper fra flere programvareutviklingsmetoder for utvikling av større programvaresystemer, samt. få erfaring i praktisk systemutvikling gjennom et større prosjektarbeid.
|
||||
> Sentralt er ulike utviklingsmetoder og modelleringsteknikker, modeller og notasjon.
|
||||
|
||||
Nå som det nærmer seg eksamen i dette faget har jeg valgt å gå igjennom hvert tema og skrive en bloggpost om disse for å få en bedre forståelse av disse. Mesteparten av infoen er hentet fra forelesningsnotater og slides.
|
||||
|
||||
Jeg har valgt å dele denne bloggposten opp i 5 deler, der jeg skal først introdusere litt om temaet for så å gå innom nøkkeltemaene **_objekt-orientert analyse (OOA)_** og **_objekt-orientert design (OOD)_** med designprinsippene **_GRASP_** og **_SOLID_**.
|
||||
|
||||

|
||||
[_Systemutvikling_ (🖼️ - **insidecreative.no**)](https://insidecreative.no/services/hjemmeside-for-bedrifter/systemutvikling/)
|
||||
|
||||
## Objekt-orienterte prinsipper og praksiser
|
||||
|
||||
**Objekt-orientert programmering (OOP)** har lenge vært en populær tilnærming av programvare. Dette er grunnet fordelene utviklere kan oppnå ved å organisere koden rundt konsepter som objekter og klasser. Når utviklere gjør dette vil de oppleve **_økt gjenbruk, fleksibilitet og lesbarhet_** i kodebasen, og dette fører til at programmet vil bli lettere å vedlikeholde og skalere.
|
||||
|
||||
Men (_ja det er et "men"_), det er ikke bare nok å følge OOP; det er viktig for utviklere å kjenne til og implementere velprøvde prinsipper og praksiser for å bygge solide systemer/applikasjoner.
|
||||
I tillegg så finnes det ulemper med å bruke disse prinsippene og praksisene i programvareutvikling. En utvikler kan føle at dette er en ganske **_tidskrevende_** prosess ettersom det innebærer betydlig planlegging og dokumentasjon på forhånd, samt. at det kan bli **_økt kostnad_** i forhold til andre programvareutviklingsmetodologier grunnet akkurat dette.
|
||||
|
||||

|
||||
[_OOA_ (🖼️ - **businessanalystlearnings.com**)](https://www.businessanalystlearnings.com/ba-techniques/2017/8/8/an-introduction-to-object-oriented-analysis)
|
||||
|
||||
## Objekt-Orientert Analyse (OOA)
|
||||
|
||||
Vi kan starte med en godt skrevet definisjon for OOA av **Grady Booch**:
|
||||
|
||||
> _Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain_
|
||||
|
||||
La oss si at vi skal utvikle et slags system, si et biblioteksystem. Ved å bruke OOA kan vi identifisere objekter som bøker, bibliotekarer, utlånere osv. og definere deres attributter og oppførsel.
|
||||
|
||||
Her bruker vi ulike modeller for å representere den statiske strukturen, dynamiske oppførselen og de funksjonelle kravene til systemet. Dette gjør det lettere for oss utviklere å forstå systemet, eller applikasjonen, og dens funksjonalitet før vi går videre til designfasen.
|
||||
|
||||
> Noen av de vanligste modellene som brukes i OOA er deriblant klassediagrammer, use-case diagrammer, sekvensdiagrammer og tilstandsdiagrammer.
|
||||
|
||||

|
||||
[_OOD_ (🖼️ - **Derek Bananas on YouTube**)](https://www.youtube.com/watch?v=fJW65Wo7IHI)
|
||||
|
||||
## Objekt-Orientert Design (OOD)
|
||||
|
||||
Objekt-orientert design (OOD) er prosessen med å utforme løsningen for problemet som ble analysert i OOA, til et konkret design som er implementerbart.
|
||||
|
||||
Et vellykket OOD tar hensyn til prinsippene om lav kobling og høy sammenheng.
|
||||
|
||||
Fortsetter vi videre med eksempelet vårt over, _biblioteksystemet_, så kan vi designe klasser som "Bok", "Bibliotek", og "Bibliotekar" med tydelige ansvarsområder og godt definerte grensesnitt. Fordelene med dette er at koden vår blir **mer modulær, vedlikeholdbar og enklere å teste**.
|
||||
|
||||
Slik som OOA, bruker OOD også ulike modeller for å representere de ulike komponentene og interaksjonene i systemet, men disse er mer detaljrike og har flere implementasjonsspesifikke aspekter.
|
||||
|
||||
> Noen av de vanligste modellene som brukes i OOD er deriblant klassediagrammer, samarbeidsdiagrammer, komponentdiagrammer og distribusjonsdiagrammer.
|
||||
|
||||

|
||||
[_GRASP_ (🖼️ - **ArjanCodes on YouTube**)](https://www.youtube.com/watch?v=fGNF6wuD-fg)
|
||||
|
||||
### ⤷ General Responsibility Assignment Software Principles (GRASP)
|
||||
|
||||
**GRASP** er et sett med **_ni prinsipper / retningslinjer_** som hjelper oss med å tildele ansvar til klassene våres på en effektiv måte. Kort sagt et slags mentalt verktøysett.
|
||||
|
||||
Dette prinsippet hjelper oss å lage klasser som er uavhengige av hverandre, samtidig som de er sterkt knyttet til sine egne ansvarsområder.
|
||||
|
||||
Disse ni prinsippene / retningslinjene er følgende:
|
||||
|
||||
- **_Skaper_** (Creator)
|
||||
- **_Informasjonsekspert_** (Information Expert)
|
||||
- **_Lav kobling_** (Low Coupling)
|
||||
- **_Høy samhørighet_** (High Cohesion)
|
||||
- **_Kontroll / styringsenhet_** (Controller)
|
||||
- **_Indireksjon_** (Indirection)
|
||||
- **_Polymorfi_** (Polymorphism)
|
||||
- **_Beskyttet mot variasjon_** (Protected Variations)
|
||||
- **_Ren fabrikkering_** (Pure Fabrication)
|
||||
|
||||
Fortsetter vi med bibliotekeksempelet vårt, så bør "Bok" være ansvarlig for å håndtere bokrelaterte operasjoner, mens "Bibliotek" skal være ansvarlig for administrasjonen av bøker og utlånsprosessen.
|
||||
|
||||
Disse teknikkene har ikke blitt oppfunnet for å skape nye måter å jobbe på, men for å forbedre dokumentasjon og standardisere gamle, velprøvde programmeringsprinsipper i OOD.
|
||||
Hver klasse vil ha en tydlig rolle og ansvaret vil være riktig fordelt, noe som resulterer i en mer fleksibel og vedlikeholdbar kodebase.
|
||||
|
||||

|
||||
[_SOLID_ (🖼️ - **effectivesoftwaredesign.com**)](https://effectivesoftwaredesign.com/2015/04/22/do-solid-design-principles-make-code-slow/)
|
||||
|
||||
### ⤷SOLID
|
||||
|
||||
**SOLID** er også et akronym som _GRASP_, og står for fem viktige prinsipper innenfor objekt-orientert design. Disse fem prinsippene lyder slik:
|
||||
|
||||
- **S** ingle Responsibility
|
||||
- prinsipp om at en klasse bør ha et ansvar og derfor bare en grunn til å endre seg.
|
||||
- _eksempel_: Klassen "Bok" skal kun være ansvarlig for bokrelaterte operasjoner, som å lagre metadata, hente informasjon og håndtere status.
|
||||
- **O** pen-Closed
|
||||
- prinsipp om at en klasse skal være åpen for utvidelse, men lukket for endring.
|
||||
- _eksempel_: For biblioteksystemet kan vi oppnå dette ved å bruke abstrakte klasser og grensesnitt, slik at nye typer bøker eller utlånsregler kan legges til uten å endre den eksisterende koden.
|
||||
- **L** iskov Substitution
|
||||
- prinsipp om at en subklasse bør kunne erstatte sin superklasse uten å bryte programmet.
|
||||
- _eksempel_: Hvis vi har en superklasse "Gjenstand" som inkluderer både bøker og digitale ressurser, bør vi kunne bruke objekter av begge typene problemfritt i systemet.
|
||||
- **I** nterface Segregation
|
||||
- prinsipp om invertering av avhengigeter (riktig bruk av grensesnitt), mange spesifikke grensesnitt er bedre enn ett generelt grensesnitt.
|
||||
- _eksempel_: Vi kan i biblioteksystemet vårt definere spesifikke grensesnitt for ulike roller, eksempelvis "Utlånbart" for bøker som kan lånes ut.
|
||||
- **D** ependency Inversion
|
||||
- prinsipp om invertering av avhengigeter (riktige koplinger, lav kopling), en klasse bør avhenge av abstraksjoner, ikke konkrete implementasjoner.
|
||||
- Bruk av avhengighetsinjeksjon sikrer at klassene våres er avhengige av abstraksjoner heller enn konkrete klasser.
|
||||
|
||||
Ved å følge disse fem prinsippene kan man skrive høykvalitets, vedlikeholdbar kode og designe systemer på en riktig måte.
|
||||
|
||||
## Konklusjon
|
||||
|
||||
Ved å bruke **OOA** og **OOD** kan utviklere få et grundigere og mer helhetlig bilde av systemet / applikasjonen de bygger, samtidig som de sikrer at koden deres er strukturert, fleksibel og enkel å vedlikeholde.
|
||||
Disse spiller altså en avgjørende rolle i utviklingen av solide og vedlikeholdbare applikasjoner.
|
||||
|
||||
**GRASP**-prinsippene vil gi veiledning for riktig kobling og ansvarsfordeling mellom klassene våres.
|
||||
**SOLID**-prinsippene vil gi en klar retning for å oppnå god designpraksis, med fokus på enkelt ansvar, åpen for utvidelse og lukket for endring, substituerbarhet, grensesnitts-sergregasjon og avhengighetsinversjon.
|
||||
|
||||
Utviklere kan, ved å følge disse prinsippene / praksisene, skape programvareløsninger som er fleksible, skalerbare og enklere å vedlikeholde over tid. Dette gjør at utviklere får en solid grunnmur for å bygge komplekse systemer med en effektiv og strukturert utviklingsprosess.
|
|
@ -1,127 +0,0 @@
|
|||
---
|
||||
title: "En guide til smidige utviklingsmetoder: Fra AUP til DevOps"
|
||||
date: 2023-05-16T19:02:18+02:00
|
||||
description: "Eksamensøving for faget DAT109 - Systemutvikling"
|
||||
tags: ["NO", "Systemutvikling", "Utviklingsmetoder"]
|
||||
draft: false
|
||||
showToc: true
|
||||
---
|
||||
|
||||
## Introduksjon
|
||||
|
||||
I faget DAT109, **_"Systemutvikling"_**, har vi gått igjennom temaer rundt det å utvikle systemer/applikasjoner, bruken av diverse utviklingsmetoder, og viktigheten av objekt-orientert analyse, utforming og programmering.
|
||||
|
||||
Her er en kort beskrivelse av faget:
|
||||
|
||||
> Emnet skal gi studentene en innføring i prinsipper fra flere programvareutviklingsmetoder for utvikling av større programvaresystemer, samt. få erfaring i praktisk systemutvikling gjennom et større prosjektarbeid.
|
||||
> Sentralt er ulike utviklingsmetoder og modelleringsteknikker, modeller og notasjon.
|
||||
|
||||
Nå som det nærmer seg eksamen i dette faget har jeg valgt å gå igjennom hvert tema og skrive en bloggpost om disse for å få en bedre forståelse av disse. Mesteparten av infoen er hentet fra forelesningsnotater og slides..
|
||||
|
||||
Jeg har valgt å dele denne bloggposten opp i 6 deler, der jeg skal først introdusere litt om teamet først for så å gå igennom nøkkeltemaene **_Agile Unified Process (AUP)_**, **_Scrum_**, **_Test-drevet utvikling (TDD)_**, og **_DevOps_** med **_kontinuerlig integrasjon (CI)_** og **_kontinuerlig leveranse (CD)_**.
|
||||
|
||||

|
||||
[_Systemutvikling2_ (🖼️ - **webstep.no**)](https://www.webstep.no/vare-tjenester/systemutvikling/)
|
||||
|
||||
## Utviklingsmetoder
|
||||
|
||||
I dagens hurtigskiftende teknologiske landskap er det viktigere enn noensinne for et utviklingsteam å implementere effektive metoder og arbeidsprosesser for å levere kvalitetsprogram i tide.
|
||||
|
||||
Her kommer **smidige utviklingsmetoder** inn i bildet. At en utviklingsmetode er smidig (agil) betyr at **_den følger et sett med prinsipper og verdier som fremmer fleksibilitet, tilpasningsevne og samarbeid i programvareutviklingsprosessen_**.
|
||||
|
||||
Grunnen til at disse smidige metodene har overtatt som utviklingsmetoder for programvareutvikling er nettopp fordi de legger større vekt på fleksibilitet, tilpasningsevne og samarbeid for å håndtere endringer og usikkerhet mer effektivt.
|
||||
Gjennom de korte utviklingssyklusene og kontinuerlige leveringene av funksjonalitet kan man tilpasse seg kundenes behov raskt og levere verdi tidlig i prosessen.
|
||||
I tillegg til dette så resulterer smidige metoder i **høyere kundetilfredshet** og **bedre tilpasning av løsninger**, ettersom det er større fokus på et tett samarbeid med kunder og interessenter, samt. at det reduserer risiko og kostnad gjennom tidlig feiloppdagelse.
|
||||
|
||||

|
||||
[_AUP_ (🖼️ - **krasamo.no**)](https://www.krasamo.com/agile-development-process/)
|
||||
|
||||
## Agile Unified Process (AUP)
|
||||
|
||||
Agile Unified Process (AUP) er en **mer smidigere versjon** av _Rational Unified Process (RUP)_. Den bygger videre på RUPs grunnleggende struktur og filosofi, men bruker en mer moderne tilnærming med iterative og inkrementelle metoder.
|
||||
AUP har et **sterkere fokus på prinsippene og verdiene til smidig utvikling** gjennom hele prosessen. Her blir det lagt større vekt på samarbeid, fleksibilitet og evnen til å tilpasse seg endringer i krav og behov underveis i prosjektet.
|
||||
|
||||
AUP tilbyr fleksibilitet ved å tillate justeringer underveis basert på tilbakemeldinger og endrede krav. Man følger **_5 faser_** igjennom hele prosessen, der fasene kan gjentas eller kombineres etter behov for å oppnå ønskede resultater. Dette gir teamet muligheten til å **tilpasse seg endringer** underveis og kontinuerlig forbedre programvaren. Under ser vi de ulike fasene, med en kort forklaring på hva hver fase innebærer.
|
||||
|
||||
- **_Oppstartsfase:_** I denne fasen identifiserer man interessenter, definerer systemets omfang og krav, og lager en overordnet plan for prosjektet.
|
||||
|
||||
- **_Iterasjonsplanlegging:_** Her identifiseres og prioriteres brukerens krav, og deles opp i mindre enheter som kalles iterasjoner.
|
||||
|
||||
- **_Utviklingsfasen:_** I denne fasen skjer selve utviklingen av programvaren.
|
||||
|
||||
- **_Testfasen:_** Etter hver iterasjon utføres det tester, og her vil feil og mangler identifiseres og rettes opp.
|
||||
|
||||
- **_Leveransefasen:_** Programvaren settes sammen og blir deretter levert til sluttbrukerne / kundene.
|
||||
|
||||

|
||||
[_Scrum_ (🖼️ - **freepik.com**)](https://img.freepik.com/free-vector/scrum-infographic_23-2148582396.jpg?w=2000)
|
||||
|
||||
## Scrum
|
||||
|
||||
Scrum er en annen populær smidig utviklingsmetode som går ut på å organisere arbeidet i korte, tidsbegrensede perioder kalt **sprints**. Teamet jobber her i tverrfunksjonelle enheter og har klart, definerte roller, deriblant _Scrum Master_, _produktansvarlig_ og _utviklere_.
|
||||
Scrum er anerkjent som en smidig (agil) utviklingsmetode av flere grunner, deriblant at den **fremmer samarbeid, transparens og hyppige tilbakemeldinger gjennom daglige stand-up møter og sprintgjennomganger**.
|
||||
|
||||
Denne kombinasjonen av fleksibilitet, tilpasningsevne, teamdynamikk og kontinuerlig forbedring gjør Scrum til en smidig (agil) metode som er egnet for prosjekter der kravene er uklare eller kan endre seg over tid.
|
||||
|
||||
Et verktøy som er kjent for å bli brukt mye i Scrum er **Kanban board**. Dette er ofte til å visualisere oppgavene i sprint backlogen og arbeidsflyten gjennom sprinten, som for eksempel "To Do", "Under arbeid" og "Fullført". Dette gir teamet og interessentene en tydelig oversikt over oppgavene og fremdriften.
|
||||
|
||||
### ⤷ Agile Scrum
|
||||
|
||||
AUP og Scrum kan kombineres for å danne en ny utviklingsmetode, kalt **_Agile Scrum_** eller "_Scrum med Agile Unified Process (AUP)_".
|
||||
|
||||
Agile Scrum har noen likheter med ren Scrum, for eksempel bruk av sprinter, backlog, daglige stand-up-møter og retrospektiver. Men det kan også ta med noen elementer fra AUP, som bruk av modelleringsaktiviteter, iterativ design og inkrementell utvikling.
|
||||
|
||||
Ved å kombinere AgileUP og Scrum tar man det beste fra begge tilnærmingene og skaper **en tilpasningsdyktig og effektiv utviklingsmetode** som er egnet for smidige prosjekter, og som legger vekt på fleksibilitet, iterasjon og kontinuerlig forbedring.
|
||||
|
||||

|
||||
[_TDD_ (🖼️ - **kaizenko.com**)](https://www.kaizenko.com/what-is-test-driven-development-tdd/)
|
||||
|
||||
## Test-drevet utvikling (TDD)
|
||||
|
||||
Test-drevet utvikling (TDD) er en praksis der testene skrives før koden, hvor det legges stor vekt på å sikre at koden oppfyller de spesifiserte kravene.
|
||||
Utviklerne skriver først en test som beskriver ønsket funksjonalitet og deretter implementerer de koden som passerer testen.
|
||||
|
||||
**Fordelene med TDD** er at det bidrar til å forbedre kodekvaliteten ved økt dokumentasjon, øker tilliten til at systemet fungerer som forventet, og det fremmer modularitet og god designpraksis.
|
||||
|
||||
**Ulempene med TDD** er at implementeringen kan kreve mer tid og ressurser, fokuset på testingen kan bli overdrevet, og det er mindre egnet for situasjoner der det oppstår små/raske endringer.
|
||||
|
||||
Test-drevet utvikling blir benyttet flere steder i utviklingssyklusene i både Scrum og DevOps, en av disse er _planleggingsdelen_.
|
||||
Innenfor **Scrum** skjer dette **under sprintplanleggingen** der teamet identifiserer oppgavene som skal utføres i sprinten. Ved hjelp av TDD-metoden kan utviklerne planlegge å implementere funksjoner/deler av koden som trenger utvikling.
|
||||
Innenfor **DevOps** skjer dette **i starten av DevOps-syklusen**, når kravene spesifiseres og planleggingen gjøres. Her kan TDD brukes til å definere testbare krav.
|
||||
|
||||

|
||||
[_DevOps_ (🖼️ - **fra forelesningslides**)]()
|
||||
|
||||
## DevOps
|
||||
|
||||
Kort sagt så handler DevOps om å forene utviklings- og driftsteamene for å oppnå kontinuerlig samarbeid og integrasjon mellom dem.
|
||||
Denne metodikken fremmer en **samarbeidsorientert kultur, automatisering og felles ansvar for å oppnå raskere og mer pålitelig programvareleveranse**. Dette gjøres ved å _"bygge en bro"_ mellom utvikling og drift, slik at teamet kan oppnå kortere utviklingssykluser, raskere feilretting og bedre responstid på kundens behov.
|
||||
|
||||
DevOps legger stor vekt på **overvåking av programvare** i produksjon for å kunne oppdage problemer og ytelsesproblemer raskt, samtidig som det blir tatt høyde for å **skalere opp** infrastrukturen og ressursene etter behov.
|
||||
|
||||
**Kontinuerlig integrasjon og kontinuerlig levering** er også to prinsipper som blir lagt stor vekt på. Under skal jeg forklare litt mer om disse, men kort sagt så innebærer det å integrere og teste kodeendringer kontinuerlig for å oppdage feil tidlig, samtidig som man automatiserer utrulling av programvaren til produksjonsmiljøet på en pålitelig og rask måte.
|
||||
|
||||
### ⤷ Kontinuerlig integrasjon (CI)
|
||||
|
||||
To spørsmål som ofte blir stilt rundt kontinuerlig integrasjon er `hvordan det fungerer eller benyttes i et utviklingsprosjekt`, og `hvordan det kan kombineres med Scrum`. La meg prøve å svare på disse to kort og enkelt.
|
||||
|
||||
I et utviklingsprosjekt betyr kontinuerlig integrasjon at i stedet for å vente til alt er ferdig før man sjekker om det fungerer, så kombinerer man kodene fra forskjellige utviklere flere ganger om dagen. På den måten kan man finne feil og problemer tidlig og fikse dem raskt.
|
||||
|
||||
Ser vi over på hvordan kontinuerlig integrasjon kan kombineres med Scrum, så vet vi jo at Scrum er som et lagarbeid der et team jobber sammen for å bygge programvare.
|
||||
Her vil kontinuerlig integrasjon handle om å bygge og sjekke delene av programvaren ofte, i stedet for å vente til alt er ferdig. Man vil kombinere og teste delene regelmessig for å se om de passer sammen og fungerer bra. På denne måten kan man oppdage feil tidlig og rette dem raskt.
|
||||
|
||||
Ved å bruke CI kan teamet redusere risikoen for feil og konflikter, og oppnå en jevnere utviklingsflyt.
|
||||
|
||||
### ⤷ Kontinuerlig leveranse (CD)
|
||||
|
||||
Slik som ved kontinuerlig integrasjon, er det også spørsmål om `hvordan kontinuerlig leveranse fungerer eller benyttes i et enkelt utviklingsprosjekt`. Kontinuerlig leveranse handler jo om å automatisere utrullingen av programvareendringer til produksjonsmiljøet, og i et enkelt utviklingsprosjekt vil utviklerne bygge programvaren og levere små deler av den jevnlig for å teste og se om alt fungerer som det skal.
|
||||
|
||||
Dette betyr at teamet kan oppdage eventuelle problemer tidligere og fikse dem raskt. Det er som når man baker en kake, der man trinn for trinn må sørge for at hvert trinn smaker og ser bra ut før man går videre.
|
||||
|
||||
På denne måten kan kontinuerlig levering hjelpe teamet ditt med å levere fungerende programvare jevnlig, og sikre at det er klart til å brukes når som helst. Teamet vil kjenne at de oppnår økt hastighet, kvalitet og pålitelighet i utrullingsprosessen ved bruken av CD.
|
||||
|
||||
## Konklusjon
|
||||
|
||||
**AUP, Scrum, Test-drevet utvikling, DevOps, CI og CD** er alle moderne utviklingsmetoder som har vist seg å være svært effektive for å levere kvalitetsprogramvare på en smidig og effektiv måte. Disse metodene **fremmer** blant annet **_samarbeid, inkrementell utvikling, automatisering og kontinuerlig forbedring_**. Ved å kombinere disse metodene kan utviklingsteam oppnå bedre produktivitet, kvalitet og leveringstid, og tilpasse seg de stadig skiftende kravene i dagens teknologiske landskap.
|
||||
|
||||
Det finnes ikke en "one-size-fits-all" tilnærming, og det kan være nødvendig å tilpasse disse metodene etter prosjektets behov. Ved å eksperimentere og tilpasse seg kan utviklingsteamene finne den ideelle kombinasjonen som fungerer best for dem.
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "💾 tech"
|
||||
date: true
|
||||
draft: false
|
||||
---
|
||||
Posts I've written about technology and so on.
|
|
@ -1,59 +0,0 @@
|
|||
---
|
||||
title: "Breathing new life into my old GameBoy Color!"
|
||||
date: 2022-11-30T08:03:57+02:00
|
||||
description: "The pinnacle of Nostalgia."
|
||||
tags: ["EN", "Technology", "Nostalgia"]
|
||||
showToc: true
|
||||
draft: false
|
||||
---
|
||||
|
||||
### The Idea
|
||||
|
||||
During the summer of 2022 I got hooked on watching YouTube videos about modding retro consoles, all from the GameBoy Color to the Nintendo Wii. It was like injecting pure dopamine in to my brain one video at a time lmao.
|
||||
|
||||
But one video, by [Macho Nacho Productions](https://www.youtube.com/watch?v=yqnrEpcaans), really stood out to me. Basically he made a "Super" GameBoy Color, where he crammed like 4 mods into it. I immediately wanted to try something like it myself, so I took my dusty, old, purple GameBoy Color with me back to Bergen, where I study.
|
||||
|
||||

|
||||
[_GameBoy Color CGI by Alexander Gueres_](https://www.behance.net/gallery/38279981/Game-Boy-Color-1998-Full-CGI)
|
||||
|
||||
---
|
||||
|
||||
### Products
|
||||
|
||||
As soon as I got to Bergen I ordered a GameBoy Color 2.0 Q5 IPS Laminated Backlight Kit, a white GameBoy Color 2.0 Laminated Q5 IPS Ready Shell and some purple buttons/pads from [FunnyPlaying](https://retrogamerepairshop.com/), and waited excitedly for them to arrive..
|
||||
|
||||

|
||||
_Photo of my old GameBoy Color and the products from FunnyPlaying_
|
||||
|
||||
---
|
||||
|
||||
### Modding process
|
||||
|
||||
The first step of the project was to disassemble the old GameBoy and clean the circuit board. This process was fairly easy as it only involved rubbing some q-tips, dipped in isopropyl alcohol, around the board to remove dirt and dust.
|
||||
|
||||

|
||||
_Cleaning the circuit board with some isopropyl alcohol_
|
||||
|
||||
---
|
||||
|
||||
The soldering part of the project wasn't something you needed to do, unless you wanted the ability to change the color of the logo and/or change the screens x- and y-position.
|
||||
|
||||
**Long story short**, it didn't go exactly as planned hehe.. I managed to break one circuit board by fucking up somehow with the soldering of the start and select buttons, so had to buy a whole new GameBoy for it..
|
||||
|
||||
I still haven't soldered on the new board (that's why the logo is kinda scuffed lol). I'm kinda scared to do it, but one day I will try again!
|
||||
| | |
|
||||
|- | - |
|
||||
|| |
|
||||
|
||||
_Photo of me trying to solder.. For a noob it was pretty good!_
|
||||
|
||||
---
|
||||
|
||||
### End result
|
||||
|
||||
Here is the "finished" product. I'm very satisfied with the outcome as this was my first console mod, like ever. The games look so good and I will definitely enjoy taking this with me on trips forward!
|
||||
I recommend trying this out if you want to bust out your old GameBoy Color again and play some good old games like Pokémon!
|
||||
| | |
|
||||
|- | - |
|
||||
|
|
||||
_Pokémon Yellow & Blades of Steel 1991_
|
|
@ -1,90 +0,0 @@
|
|||
---
|
||||
title: "Why you should get the Nintendo Wii in 2023"
|
||||
date: 2023-02-06T10:03:57+02:00
|
||||
description: "Reason 1: Funky Kong."
|
||||
tags: ["EN", "Technology", "Nostalgia"]
|
||||
image: https://www.turn-on.de/media/webp/media/cache/article_image_slider/media/cms/2015/06/wii.webp?356188
|
||||
showToc: true
|
||||
draft: false
|
||||
---
|
||||
|
||||
### Introduction
|
||||
|
||||
Before you start, yes I know the Switch is the handheld/home console go-to for most people when it comes to Nintendo. It's the handheld/home console hybrid that is the name in gaming at the moment, but let me show you why exactly the Wii is the better choice!
|
||||
But first, let's give the Wii an introduction!
|
||||
|
||||
> The Nintendo Wii was released in 2006 and is one of the most popular and influential video game consoles of all time.
|
||||
> Despite it being over a decade old, the Wii remains a highly sought after gaming system, even in the 2020s!
|
||||
> It was notable for its innovative use of motion control, allowing players to control games using physical gestures and movements, instead of traditional buttons and joysticks. This unique feature made the Wii incredibly popular, particularly among casual gamers, and helped to expand the gaming demographic.
|
||||
|
||||
So why is it that the Nintendo Wii still remains so sought after? Well let me list a few reasons why.
|
||||
|
||||

|
||||
[_The Nintendo Wii!_ (🖼️ - **turn-on.de**)](https://www.turn-on.de/article/die-nintendo-wii-u-ist-am-ende-5-gruende-fuer-ihr-scheitern-69517)
|
||||
|
||||
### Huge library of games
|
||||
|
||||
First of all, the huge library of games. The Wii has an extensive library of classic games that are still beloved by players today.
|
||||
|
||||
These popluar franchises, like "**Mario**" and "**Zelda**", and the cult favorites, like "**WarioWare**" and "**MadWorld**", are just some of the games the Wii has to offer. They still hold up today, provide hours of fun and entertainment and are for all players of any age.
|
||||
|
||||
A good example of one of the perfect games on the Wii is of course **Mario Kart**.
|
||||
It has many good maps, exclusive vehicles (which other games doesn't have), many good characters, great gameplay (including really fun and sometimes even satisfying/epic moments), good bots that are though to beat and much more!
|
||||
Also (almost) everyone knows about **Mario Kart** and have most likely played it atleast once, so it's perfect for get-togethers!
|
||||
|
||||

|
||||
[_WarioWare!_ (🖼️ - **gamespot.com**)](https://www.gamespot.com/reviews/warioware-smooth-moves-review/1900-6164180/)
|
||||
|
||||
### Modding
|
||||
|
||||
Secondly, the Wii has such a huge modding community. Why this is a reason alone to buy the Wii?
|
||||
Well since the 20th of May in 2014 the Nintendo Wi-Fi Connection Service was discontinued. This meant that the online functionality of the Nintendo Wii was gone. But thanks to the modding community players can now play online again!
|
||||
|
||||
For those of you who couldn't care less about playing online, well I got two words for you.
|
||||
|
||||
> **Free**. **Games**.
|
||||
|
||||
As the Wii has USB and SD card support you can, after homebrewing your Wii, load up games via these mediums. The games iso's you can find all over the internet so I won't link anything, but it's quite easy to find!
|
||||
|
||||
Also another perk is just getting the possibility to fully customize your Wii to your liking with themes and so on.
|
||||
|
||||
> **Note:** Not all Wiis are NOT the same! For example, a Wii Mini is more difficult to mod and have fewer functions than other Wiis.
|
||||
|
||||

|
||||
[_the homebrew channel! (trash quality i know)_ (🖼️ - **nintendo.fandom.com**)](https://nintendo.fandom.com/wiki/Homebrew_Channel)
|
||||
|
||||
### Affordable
|
||||
|
||||
Another reason to get it is because of how affordable it is!
|
||||
Compared to newer gaming systems, the Wii is relatively affordable, making it a great option for families or individuals on a budget.
|
||||
|
||||
Since the Wii has been around for over a decade, there are plenty of used systems available for even less than 50$. It also still hasn't become one of those collectible consoles yet so that's good!
|
||||
|
||||
The cheapest I've found was a Mario 25th anniversary red Wii for 20 dollars, and it included two games and one controller.
|
||||
|
||||

|
||||
[_some pack I found on ebay!_ (🖼️ - **ebay.com**)](https://www.ebay.com/sch/i.html?_from=R40&_nkw=Nintendo+Wii+Console&_sacat=0&LH_TitleDesc=0&_sop=15)
|
||||
|
||||
### Easy to use / Family-friendly
|
||||
|
||||
The Wii is also so easy to use because of its unique motion controls! This makes the Wii a great family-friendly console, which will bring fun for the whole family with plenty of games for all ages.
|
||||
|
||||
Because of the Wii's unique motion controls it makes it accessible to people of all ages and skill levels, and also makes the experience much more intuitive and immersive!
|
||||
|
||||
> Anyways, who doesn't want do beat their whole family in Mario Kart?!
|
||||
|
||||

|
||||
[_In-game screenshot of Mario Kart_ (🖼️ - **nintendolife.com**)](https://www.nintendolife.com/games/wii/mario_kart_wii/screenshots)
|
||||
|
||||
### Conclusion
|
||||
|
||||
In conclusion, the Nintendo Wii is (in my opinion) a must-have gaming console, still in 2023!
|
||||
|
||||
Yeah yeah, you already know that the Switch is great, but if you're looking for a Nintendo experience outside the mainstream, the Wii is your choice.
|
||||
|
||||
With such a large library of classic games, a big modding scene, affordable prices, easy-to-use motion controls, and much more, the Wii offers a unique and enjoyable gaming experience that you won't find on any other console.
|
||||
|
||||
> **On a finishing note,** how can you resist not going back to play as this sexy, funky ass gorilla?
|
||||
|
||||

|
||||
[_In-game screenshot of Funky Kong by crf17_ (🖼️ - **crf17 - Mario Kart Wii YouTube**)](https://www.youtube.com/watch?v=NQFdmu7ZhY8)
|
|
@ -1,100 +0,0 @@
|
|||
---
|
||||
title: "Resume📜"
|
||||
showToc: true
|
||||
draft: false
|
||||
---
|
||||
|
||||
## Sindre Kjelsrud
|
||||
|
||||
| 📍Skedsmokorset, Viken | [📧Email](mailto:kjelsrudsindre@gmail.com) | [@LinkedIn](https://www.linkedin.com/in/sindre-kjelsrud-345583218/) | [@GitHub](https://github.com/SindreKjelsrud) |
|
||||
| ---------------------- | ------------------------------------------ | ------------------------------------------------------------------- | -------------------------------------------- |
|
||||
|
||||
### Experience
|
||||
|
||||
**Operator, Manpower, Coop Main Warehouse, Loading-Department**
|
||||
_2022_
|
||||
|
||||
> The main tasks consist of helping the truckdrivers with loading, localisation/retrieving of products and pallets using a forklift, and acquiring necessary papers before departure, as well as the use of Witronsoftware and general maintenance of the area.
|
||||
|
||||
**Lifeguard, Lillestrom municipality, Nebbursvollen Open-air swimming pool**
|
||||
_2019 - 2021_
|
||||
|
||||
> Responsible for safety, well-being and maintenance at Nebbursvollen Open-air swimming pool during the summer seasons 2019, 2020 and 2021.
|
||||
|
||||
**Catering employee, Select Service Partner, Oslo Airport**
|
||||
_2018_
|
||||
|
||||
> The main tasks were to produce and pack food for various airlines, and for our internal customers at the airport, as well as to keep trackof the premises.
|
||||
|
||||
---
|
||||
|
||||
### Education
|
||||
|
||||
2021 - present
|
||||
: **Bachelor, Information Technology**; Western Norway University of Applied Sciences, in Bergen
|
||||
|
||||
2020 - 2021
|
||||
: **Primary school teacher class 5-10**; NLA University College, in Bergen
|
||||
|
||||
2019 - 2020
|
||||
: **One-year programme, IT & Information systems**; University of South-Eastern Norway, Campus Bø
|
||||
|
||||
2018 - 2019
|
||||
: **Multisport Bali**; Rodde Folk High-School, in Trondheim
|
||||
|
||||
---
|
||||
|
||||
### Extracurricular activity
|
||||
|
||||
**Member, [friByte](https://fribyte.no) student organization**
|
||||
_Sep. 2022 - present_
|
||||
|
||||
> Member of the student organization friByte in Bergen. friByte is an independent student organization that supplies secure and stable data services to other student organizations in Bergen.
|
||||
> As a member I've learned how to work in teams, operate in linux servers from the terminal, set up docker images/containers, use Git and much more. I've also created Wordpress website for one of our customers.
|
||||
|
||||
**Leader, [friByte](https://fribyte.no) student organization**
|
||||
_1. semester of 2023_
|
||||
|
||||
> As a leader my responsibilities were to mostly do administrative tasks, convene meetings, acquire new customers & members, and delegate assignments to the other members.
|
||||
> During my leadership we aquired two more members & three new clients, and successfully hosted an Capture The Flag event.
|
||||
|
||||
---
|
||||
|
||||
### Projects
|
||||
|
||||
**[sidBot | Python / JavaScript](https://github.com/SindreKjelsrud/sidBot)**
|
||||
A Discord bot that responds to messages & commands with pictures and special answers depending on the message/command.
|
||||
|
||||
**[My Personal Website | Hugo Framework](https://github.com/SindreKjelsrud/sindrekjelsrud.github.io)**
|
||||
A personal website that gets updated during my education.
|
||||
|
||||
**[Wordle | Java](https://github.com/SindreKjelsrud/Wordle)**
|
||||
A clone of the game Wordle. (Has some bugs)
|
||||
|
||||
---
|
||||
|
||||
### Extra Section
|
||||
|
||||
IT-skills
|
||||
: **Programming Languages:** Java, HTML/CSS, postgreSQL, and basic knowledge of Python, JavaScript & C#.
|
||||
**Libraries & Frameworks:** Spring, Hugo, Zola and basic knowledge of .NET.
|
||||
**Technologies:** Git, Office 365, and basic knowledge of Docker & Wordpress.
|
||||
|
||||
<br><br>
|
||||
|
||||
Certificates & Courses
|
||||
: Driver Licence (class B)
|
||||
First Aid course
|
||||
Forklift licence (class T1)
|
||||
|
||||
<br><br>
|
||||
|
||||
Language
|
||||
: Norwegian ⋅ Native
|
||||
English ⋅ Fluent
|
||||
|
||||
---
|
||||
|
||||
### References
|
||||
|
||||
Provided on request.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
title: "Logs"
|
||||
date: true
|
||||
draft: false
|
||||
---
|
||||
All my logs where I keep track of movies/TV-shows I've watched and books I've read.
|
||||
|
||||
I don’t use any third-party services for my logs, I store everything in a JSON-format for this website.
|
|
@ -1,9 +0,0 @@
|
|||
---
|
||||
title: "📚donde, está, la biblioteca."
|
||||
date: true
|
||||
draft: false
|
||||
layout: biblioteca
|
||||
---
|
||||
|
||||
Books I've read. Not a complete list, since I started logging it in JSON in 2023.
|
||||
**Currently reading:** `Barack Obama: A Promised Land`
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: "📺TV Time"
|
||||
date: true
|
||||
draft: false
|
||||
layout: single_tv
|
||||
---
|
||||
|
||||
Movies and TV shows that I’ve watched. Not a complete list, since I started logging it in JSON in 2023.
|
||||
|
||||
```js
|
||||
Currently watching:
|
||||
- "Formula 1: Drive to Survive S05E07"
|
||||
- "One Piece E840"
|
||||
- "Dragon Ball E103"
|
||||
On hold:
|
||||
- "Greys Anatomy S08E06"
|
||||
```
|
|
@ -1,66 +0,0 @@
|
|||
---
|
||||
title: "Projects👨💻"
|
||||
showToc: true
|
||||
draft: false
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
# Coding Projects
|
||||
|
||||
### 🤖 sidBot | A Discord bot
|
||||
|
||||
_Dec. 2021 - Mar. 2022, Python_
|
||||
_Dec. 2022 - Now, JavaScript_
|
||||
|
||||
> Github Repo: <https://github.com/SindreKjelsrud/sidBot>
|
||||
|
||||
- A Discord bot that responds to messages & commands with pictures and special answers depending on the message/command.
|
||||
- I've made two versions, one in Python and one in JavaScript.
|
||||
- Some commands get information from APIs.
|
||||
- For example, the command "!plsdog" uses this [API](https://dog.ceo/api) to show the user some cute pictures of dogs across the internet.
|
||||
|
||||
---
|
||||
|
||||
### My Personal Website
|
||||
|
||||
_Sep. 2022 - Now, Hugo Framework_
|
||||
|
||||
> Github Repo: <https://github.com/SindreKjelsrud/sindrekjelsrud.github.io>
|
||||
|
||||
- This website uses [PaperMod](https://github.com/adityatelange/hugo-PaperMod) theme and is based on Hugo.
|
||||
- Is a WIP, as I will continue to add small stuff and posts!
|
||||
|
||||
---
|
||||
|
||||
### Wordle 🔠
|
||||
|
||||
_Oct. 2022 - Nov. 2022, Java_
|
||||
|
||||
> Github Repo: <https://github.com/SindreKjelsrud/Wordle>
|
||||
|
||||
- A recreation of the popular game [Wordle](https://www.nytimes.com/games/wordle/index.html) by Josh Wardle/The New York Times, written in Java.
|
||||
- Still needs some finishing touches.. (bug fixes, cleaning up code etc.)
|
||||
|
||||
---
|
||||
|
||||
### 🍪 Cookie Clicker
|
||||
|
||||
_Nov. 2021 - Dec. 2021, Java_
|
||||
|
||||
> Github Repo: <https://github.com/SindreKjelsrud/old-projects/tree/main/CookieClicker>
|
||||
|
||||
- A game where you collect _cookies_ by clicking on a cookie.
|
||||
- Written purely in Java.
|
||||
- Had some help from YouTube (hehe)
|
||||
|
||||
---
|
||||
|
||||
# Hobby Projects
|
||||
|
||||
### Gameboy Color mod
|
||||
|
||||
_Sep. 2022 - Nov. 2022_
|
||||
|
||||
> Blog Post: https://sindrekjelsrud.github.io/blog-posts/tech/gameboy_color/
|
||||
> 
|
|
@ -1,121 +0,0 @@
|
|||
[
|
||||
{
|
||||
"isbn": "9780140455526",
|
||||
"title": "The Art of War",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "12",
|
||||
"string": "2023-07-12"
|
||||
},
|
||||
"type": "book",
|
||||
"description": "Classic book of military strategy based on Chinese warfare and military thought, which can be adapted for use in politics, business and everyday life.",
|
||||
"my_rating": 4,
|
||||
"genres": [
|
||||
"Classic", "Business", "History", "Leadership", "Politics"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9781506727592",
|
||||
"title": "Mob Psycho 100: Vol. 7",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "16",
|
||||
"string": "2023-06-16"
|
||||
},
|
||||
"type": "manga",
|
||||
"description": "A story about a young middle schooler, Shigeo Kageyama (nicknamed Mob), who has strong psychic powers and his struggles to find happiness while avoiding the power getting out of control.",
|
||||
"my_rating": 3,
|
||||
"genres": [
|
||||
"Fantasy", "Supernatural", "Comedy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9781529392401",
|
||||
"title": "Will Artificial Intelligence Outsmart Us?",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "13",
|
||||
"string": "2023-06-13"
|
||||
},
|
||||
"type": "book",
|
||||
"description": "Will Artificial Intelligense Outsmart Us?, by Stephen Hawking, considers the threat of artificial superintelligence - as well as the likelihood of intelligent life beyond our planet.",
|
||||
"my_rating": 3,
|
||||
"genres": [
|
||||
"Popular science", "Technology", "Artificial Intelligence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9788269259346",
|
||||
"title": "Magnus",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "01",
|
||||
"string": "2023-06-01"
|
||||
},
|
||||
"type": "book",
|
||||
"description": "The biography of Magnus Midtbø, Norways best sportsclimber. It follows his life from childhood, through ups- and downs, and how he became a successful YouTuber.",
|
||||
"my_rating": 5,
|
||||
"genres": [
|
||||
"Biography", "Sports"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9788234713538",
|
||||
"title": "Hjertet i to: Seks måneder med Karpe",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "28",
|
||||
"string": "2023-05-28"
|
||||
},
|
||||
"type": "book",
|
||||
"description": "A pure tribute to Karpe. The book gives a sneak peek into the path to Spektrumx10. Fun to read and Yohan Shanmugaratnam is good with words and emotions!",
|
||||
"my_rating": 5,
|
||||
"genres": [
|
||||
"Biography", "Nonfiction", "Music", "Art"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9781421578798",
|
||||
"title": "JoJo's Bizarre Adventure: Phantom Blood Vol. 1",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "22",
|
||||
"string": "2023-05-22"
|
||||
},
|
||||
"type": "manga",
|
||||
"description": "A supernatural action manga about a multigenerational tale of the heroic Joestar family and their never-ending battle against evil!",
|
||||
"my_rating": 3,
|
||||
"genres": [
|
||||
"Action-Adventure", "Fantasy", "Supernatural"
|
||||
]
|
||||
},
|
||||
{
|
||||
"isbn": "9788202410445",
|
||||
"title": "Steve Jobs",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "15",
|
||||
"string": "2023-05-15"
|
||||
},
|
||||
"type": "book",
|
||||
"description": "The biography of Steve Jobs, one of the world's foremost innovators. A deep and comprehensive portrait of a complex man.",
|
||||
"my_rating": 4,
|
||||
"genres": [
|
||||
"Biography", "Technology", "Leadership", "Innovation", "Inspirational"
|
||||
]
|
||||
}
|
||||
]
|
278
data/movies.json
278
data/movies.json
|
@ -1,278 +0,0 @@
|
|||
[
|
||||
{
|
||||
"title": "Blade Runner 2049",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "17",
|
||||
"string": "2023-07-17"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Insurgent",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "16",
|
||||
"string": "2023-07-16"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Divergent",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "15",
|
||||
"string": "2023-07-15"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Bridget Jones's Baby",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "01",
|
||||
"string": "2023-07-01"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Spider-Man: Across the Spider-Verse",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "27",
|
||||
"string": "2023-06-27"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "2001: A Space Odyssey",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "13",
|
||||
"string": "2023-06-13"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Stone Locals: Rediscovering the Soul of Climbing",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "29",
|
||||
"string": "2023-05-29"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Fishpeople | Lives Transformed by the Sea",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "29",
|
||||
"string": "2023-05-29"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Surfs Up",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "26",
|
||||
"string": "2023-05-26"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Encanto",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "20",
|
||||
"string": "2023-05-20"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Shang-Chi and the Legend of the Ten Rings",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "19",
|
||||
"string": "2023-05-19"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Whiplash",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "16",
|
||||
"string": "2023-05-16"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "The Terminal",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "10",
|
||||
"string": "2023-04-10"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "The Whole Nine Yards",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "09",
|
||||
"string": "2023-04-09"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Murder Mystery 2",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "08",
|
||||
"string": "2023-04-08"
|
||||
},
|
||||
"my_rating": 2
|
||||
},
|
||||
{
|
||||
"title": "The Wind Rises",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "03",
|
||||
"string": "2023-04-03"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Ant-Man and the Wasp: Quantumania",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "29",
|
||||
"string": "2023-03-29"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Black Panther: Wakanda Forever",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "24",
|
||||
"string": "2023-03-24"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Schumacher",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "21",
|
||||
"string": "2023-03-21"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Nightcrawler",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "21",
|
||||
"string": "2023-03-21"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Fantastic Beasts and Where to Find Them",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "02",
|
||||
"day": "17",
|
||||
"string": "2023-02-17"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Avatar: The Way of Water",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "01",
|
||||
"day": "28",
|
||||
"string": "2023-01-28"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "TRON: Legacy",
|
||||
"type": "movie",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "01",
|
||||
"day": "11",
|
||||
"string": "2023-01-11"
|
||||
},
|
||||
"my_rating": 4
|
||||
}
|
||||
]
|
206
data/series.json
206
data/series.json
|
@ -1,206 +0,0 @@
|
|||
[
|
||||
{
|
||||
"title": "Demon Slayer S03",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "03",
|
||||
"string": "2023-07-03"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Vinland Saga S02",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "07",
|
||||
"day": "03",
|
||||
"string": "2023-07-03"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Dr. Stone S03",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "06",
|
||||
"day": "24",
|
||||
"string": "2023-06-24"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "S.W.A.T. S06",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "22",
|
||||
"string": "2023-05-22"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Star Wars: Visions S02",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "05",
|
||||
"day": "11",
|
||||
"string": "2023-05-11"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "The Last of Us S01",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "23",
|
||||
"string": "2023-04-23"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "The Mandalorian S03",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "23",
|
||||
"string": "2023-04-23"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "A girl and an astronaut",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "04",
|
||||
"day": "16",
|
||||
"string": "2023-04-16"
|
||||
},
|
||||
"my_rating": 1
|
||||
},
|
||||
{
|
||||
"title": "My Hero Academia S06",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "24",
|
||||
"string": "2023-03-24"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Rick and Morty S06",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "24",
|
||||
"string": "2023-03-24"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "How to Sell Drugs Online (Fast) S03",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "20",
|
||||
"string": "2023-03-20"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Outer Banks S03",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "15",
|
||||
"string": "2023-03-15"
|
||||
},
|
||||
"my_rating": 4
|
||||
},
|
||||
{
|
||||
"title": "Community S01-S06",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "15",
|
||||
"string": "2023-03-15"
|
||||
},
|
||||
"my_rating": 5
|
||||
},
|
||||
{
|
||||
"title": "Free! S01-S03",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "03",
|
||||
"day": "08",
|
||||
"string": "2023-03-08"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "Kaleidoscope",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "02",
|
||||
"day": "02",
|
||||
"string": "2023-02-02"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "The Recruit S01",
|
||||
"type": "series",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "01",
|
||||
"day": "30",
|
||||
"string": "2023-01-30"
|
||||
},
|
||||
"my_rating": 3
|
||||
},
|
||||
{
|
||||
"title": "The Way of the Househusband S02",
|
||||
"type": "anime",
|
||||
"date":
|
||||
{
|
||||
"year": "2023",
|
||||
"month": "01",
|
||||
"day": "23",
|
||||
"string": "2023-01-23"
|
||||
},
|
||||
"my_rating": 3
|
||||
}
|
||||
]
|
|
@ -1,11 +0,0 @@
|
|||
{{- define "main" }}
|
||||
|
||||
<div class="not-found">
|
||||
<iframe src="https://giphy.com/embed/xTiIzJSKB4l7xTouE8" width="480" height="208" frameBorder="0" class="giphy-embed" allowFullScreen></iframe>
|
||||
</div>
|
||||
|
||||
<div class="not-found">
|
||||
<h1 class="not-found-text">404</h1>
|
||||
</div>
|
||||
|
||||
{{- end }}{{/* end main */ -}}
|
|
@ -1,83 +0,0 @@
|
|||
{{- define "main" }}
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
{{ partial "breadcrumbs.html" . }}
|
||||
<h1 class="post-title">
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
{{- partial "translation_list.html" . -}}
|
||||
{{- partial "edit_post.html" . -}}
|
||||
{{- partial "post_canonical.html" . -}}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- $isHidden := .Params.cover.hidden | default site.Params.cover.hiddenInSingle | default site.Params.cover.hidden }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" false "isHidden" $isHidden) }}
|
||||
{{- if (.Param "ShowToc") }}
|
||||
{{- partial "toc.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>Rating System</summary>
|
||||
<dl class=review__rating>
|
||||
<dt aria-label="1 out of 5 stars">★☆☆☆☆<dd>Awful.
|
||||
<dt aria-label="2 out of 5 stars">★★☆☆☆<dd>Waste of time..
|
||||
<dt aria-label="3 out of 5 stars">★★★☆☆<dd>Fine, could've managed without it lol
|
||||
<dt aria-label="4 out of 5 stars">★★★★☆<dd>Definitely worth a read.
|
||||
<dt aria-label="5 out of 5 stars">★★★★★<dd>Must read!</dl>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<table>
|
||||
<h3 style="border-bottom: 3px solid#918DED; height: 4vh;">Books & Manga</h3>
|
||||
{{ range .Site.Data.biblioteca }}
|
||||
<tr style="border-bottom: 1px solid;" onmouseover="this.style.backgroundColor='#131313';" onmouseout="this.style.backgroundColor='';">
|
||||
<td style="width: 20%;">{{.title}}</td>
|
||||
<td style="width: 15%; height: 5vh; text-align: center;">{{.my_rating}} stars</td>
|
||||
<td style="width: 15%; text-align: center;">{{.date.day}}.{{.date.month}}.{{.date.year}}</td>
|
||||
<td style="width: 50%; text-align: center;">{{.description}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</table>
|
||||
|
||||
{{- end }}
|
||||
|
||||
<footer class="post-footer">
|
||||
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
|
||||
<ul class="post-tags">
|
||||
{{- range ($.GetTerms $tags) }}
|
||||
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- if (.Param "ShowPostNavLinks") }}
|
||||
{{- partial "post_nav_links.html" . }}
|
||||
{{- end }}
|
||||
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
|
||||
{{- partial "share_icons.html" . -}}
|
||||
{{- end }}
|
||||
</footer>
|
||||
|
||||
{{- if (.Param "comments") }}
|
||||
{{- partial "comments.html" . }}
|
||||
{{- end }}
|
||||
</article>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
|
@ -1,112 +0,0 @@
|
|||
{{- define "main" }}
|
||||
|
||||
{{- if (and site.Params.profileMode.enabled .IsHome) }}
|
||||
{{- partial "index_profile.html" . }}
|
||||
{{- else }} {{/* if not profileMode */}}
|
||||
|
||||
{{- if not .IsHome | and .Title }}
|
||||
<header class="page-header">
|
||||
{{- partial "breadcrumbs.html" . }}
|
||||
<h1>
|
||||
{{ .Title }}
|
||||
{{- if and (or (eq .Kind `term`) (eq .Kind `section`)) (.Param "ShowRssButtonInSectionTermList") }}
|
||||
<a href="index.xml" title="RSS" aria-label="RSS">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" height="23">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description | markdownify }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
{{- $pages := union .RegularPages .Sections }}
|
||||
|
||||
{{- if .IsHome }}
|
||||
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
|
||||
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
|
||||
{{- end }}
|
||||
|
||||
{{- $paginator := .Paginate $pages }}
|
||||
|
||||
{{- if and .IsHome site.Params.homeInfoParams (eq $paginator.PageNumber 1) }}
|
||||
{{- partial "home_info.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- $term := .Data.Term }}
|
||||
{{- range $index, $page := $paginator.Pages }}
|
||||
|
||||
{{- $class := "post-entry" }}
|
||||
|
||||
{{- $user_preferred := or site.Params.disableSpecial1stPost site.Params.homeInfoParams }}
|
||||
{{- if (and $.IsHome (eq $paginator.PageNumber 1) (eq $index 0) (not $user_preferred)) }}
|
||||
{{- $class = "first-entry" }}
|
||||
{{- else if $term }}
|
||||
{{- $class = "post-entry tag-entry" }}
|
||||
{{- end }}
|
||||
|
||||
<article class="{{ $class }}">
|
||||
{{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" true "isHidden" $isHidden) }}
|
||||
<header class="entry-header">
|
||||
<h2>
|
||||
{{- .Title }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h2>
|
||||
</header>
|
||||
{{- if (ne (.Param "hideSummary") false) }}
|
||||
<div class="entry-content">
|
||||
<p>{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}</p>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<footer class="entry-footer">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
</footer>
|
||||
{{- end }}
|
||||
<a class="entry-link" aria-label="post link to {{ .Title | plainify }}" href="{{ .Permalink }}"></a>
|
||||
</article>
|
||||
{{- end }}
|
||||
|
||||
{{- if gt $paginator.TotalPages 1 }}
|
||||
<footer class="page-footer">
|
||||
<nav class="pagination">
|
||||
{{- if $paginator.HasPrev }}
|
||||
<a class="prev" href="{{ $paginator.Prev.URL | absURL }}">
|
||||
« {{ i18n "prev_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- sub $paginator.PageNumber 1 }}/{{ $paginator.TotalPages }}
|
||||
{{- end }}
|
||||
</a>
|
||||
{{- end }}
|
||||
{{- if $paginator.HasNext }}
|
||||
<a class="next" href="{{ $paginator.Next.URL | absURL }}">
|
||||
{{- i18n "next_page" }}
|
||||
{{- if (.Param "ShowPageNums") }}
|
||||
{{- add 1 $paginator.PageNumber }}/{{ $paginator.TotalPages }}
|
||||
{{- end }} »
|
||||
</a>
|
||||
{{- end }}
|
||||
</nav>
|
||||
</footer>
|
||||
{{- end }}
|
||||
|
||||
{{- end }}{{/* end profileMode */}}
|
||||
|
||||
{{- end }}{{- /* end main */ -}}
|
|
@ -1,98 +0,0 @@
|
|||
{{- define "main" }}
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
{{ partial "breadcrumbs.html" . }}
|
||||
<h1 class="post-title">
|
||||
{{ .Title }}
|
||||
{{- if .Draft }}<sup><span class="entry-isdraft"> [draft]</span></sup>{{- end }}
|
||||
</h1>
|
||||
{{- if .Description }}
|
||||
<div class="post-description">
|
||||
{{ .Description }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not (.Param "hideMeta") }}
|
||||
<div class="post-meta">
|
||||
{{- partial "post_meta.html" . -}}
|
||||
{{- partial "translation_list.html" . -}}
|
||||
{{- partial "edit_post.html" . -}}
|
||||
{{- partial "post_canonical.html" . -}}
|
||||
</div>
|
||||
{{- end }}
|
||||
</header>
|
||||
{{- $isHidden := .Params.cover.hidden | default site.Params.cover.hiddenInSingle | default site.Params.cover.hidden }}
|
||||
{{- partial "cover.html" (dict "cxt" . "IsHome" false "isHidden" $isHidden) }}
|
||||
{{- if (.Param "ShowToc") }}
|
||||
{{- partial "toc.html" . }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Content }}
|
||||
<div class="post-content">
|
||||
{{- if not (.Param "disableAnchoredHeadings") }}
|
||||
{{- partial "anchored_headings.html" .Content -}}
|
||||
{{- else }}{{ .Content }}{{ end }}
|
||||
</div>
|
||||
<details>
|
||||
<summary>Rating System</summary>
|
||||
<dl class=review__rating>
|
||||
<dt aria-label="1 out of 5 stars">★☆☆☆☆<dd>Awful.
|
||||
<dt aria-label="2 out of 5 stars">★★☆☆☆<dd>Waste of time..
|
||||
<dt aria-label="3 out of 5 stars">★★★☆☆<dd>Fine, could've managed without it lol
|
||||
<dt aria-label="4 out of 5 stars">★★★★☆<dd>Definitely worth a watch.
|
||||
<dt aria-label="5 out of 5 stars">★★★★★<dd>Must watch!</dl>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<table>
|
||||
<h3 style="border-bottom: 3px solid#918DED; height: 4vh;">Movies</h3>
|
||||
{{ range .Site.Data.movies }}
|
||||
{{ if .date.year }}
|
||||
<tr style="border-bottom: 1px solid;" onmouseover="this.style.backgroundColor='#131313';" onmouseout="this.style.backgroundColor='';">
|
||||
<td style="width: 50%;">{{.title}}</td>
|
||||
<td style="width: 100%; height: 5vh; text-align: center;">{{.my_rating}} stars</td>
|
||||
<td style="width: 100%; text-align: center;">{{.date.day}}.{{.date.month}}.{{.date.year}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</table>
|
||||
|
||||
<br>
|
||||
|
||||
<table>
|
||||
<h3 style="border-bottom: 3px solid#918DED; height: 4vh;">Series</h3>
|
||||
{{ range .Site.Data.series }}
|
||||
{{ if .date.year }}
|
||||
<tr style="border-bottom: 1px solid;" onmouseover="this.style.backgroundColor='#131313';" onmouseout="this.style.backgroundColor='';">
|
||||
<td style="width: 50%;">{{.title}}</td>
|
||||
<td style="width: 100%; height: 5vh; text-align: center;">{{.my_rating}} stars</td>
|
||||
<td style="width: 100%; text-align: center;">{{.date.day}}.{{.date.month}}.{{.date.year}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</table>
|
||||
|
||||
{{- end }}
|
||||
|
||||
<footer class="post-footer">
|
||||
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
|
||||
<ul class="post-tags">
|
||||
{{- range ($.GetTerms $tags) }}
|
||||
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- if (.Param "ShowPostNavLinks") }}
|
||||
{{- partial "post_nav_links.html" . }}
|
||||
{{- end }}
|
||||
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
|
||||
{{- partial "share_icons.html" . -}}
|
||||
{{- end }}
|
||||
</footer>
|
||||
|
||||
{{- if (.Param "comments") }}
|
||||
{{- partial "comments.html" . }}
|
||||
{{- end }}
|
||||
</article>
|
||||
|
||||
{{- end }}{{/* end main */}}
|
|
@ -1,130 +0,0 @@
|
|||
{{- if not (.Param "hideFooter") }}
|
||||
<footer class="footer">
|
||||
{{- if site.Copyright }}
|
||||
<span>{{ site.Copyright | markdownify }}</span>
|
||||
{{- else }}
|
||||
<span>{{ now.Year }} © <a href="{{ "" | absLangURL }}">Sindre Kjelsrud</a></span>
|
||||
{{- end }}
|
||||
</footer>
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
|
||||
{{- partial "extend_footer.html" . }}
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }}
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
// td containing LineNos
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
// table containing LineNos and code
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
// code blocks not having highlight as parent class
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{{- end }}
|
|
@ -1,170 +0,0 @@
|
|||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") | and (ne .Params.robotsNoIndex true) }}
|
||||
<meta name="robots" content="index, follow">
|
||||
{{- else }}
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
{{- end }}
|
||||
|
||||
{{- /* Title */}}
|
||||
<title>{{ if .IsHome }}{{ else }}{{ if .Title }}{{ .Title }} | {{ end }}{{ end }}{{ site.Title }}</title>
|
||||
|
||||
{{- /* Meta */}}
|
||||
{{- if .IsHome }}
|
||||
{{ with site.Params.keywords -}}<meta name="keywords" content="{{- range $i, $e := . }}{{ if $i }}, {{ end }}{{ $e }}{{ end }}">{{ end }}
|
||||
{{- else }}
|
||||
<meta name="keywords" content="{{ if .Params.keywords -}}
|
||||
{{- range $i, $e := .Params.keywords }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- else }}
|
||||
{{- range $i, $e := .Params.tags }}{{ if $i }}, {{ end }}{{ $e }}{{ end }} {{- end -}}">
|
||||
{{- end }}
|
||||
<meta name="description" content="{{- with .Description }}{{ . }}{{- else }}{{- if or .IsPage .IsSection}}
|
||||
{{- .Summary | default (printf "%s - %s" .Title site.Title) }}{{- else }}
|
||||
{{- with site.Params.description }}{{ . }}{{- end }}{{- end }}{{- end -}}">
|
||||
<meta name="author" content="{{ (partial "author.html" . ) }}">
|
||||
<link rel="canonical" href="{{ if .Params.canonicalURL -}} {{ trim .Params.canonicalURL " " }} {{- else -}} {{ .Permalink }} {{- end }}">
|
||||
{{- if site.Params.analytics.google.SiteVerificationTag }}
|
||||
<meta name="google-site-verification" content="{{ site.Params.analytics.google.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.yandex.SiteVerificationTag }}
|
||||
<meta name="yandex-verification" content="{{ site.Params.analytics.yandex.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.bing.SiteVerificationTag }}
|
||||
<meta name="msvalidate.01" content="{{ site.Params.analytics.bing.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
{{- if site.Params.analytics.naver.SiteVerificationTag }}
|
||||
<meta name="naver-site-verification" content="{{ site.Params.analytics.naver.SiteVerificationTag }}">
|
||||
{{- end }}
|
||||
|
||||
{{- /* Styles */}}
|
||||
|
||||
{{- /* includes */}}
|
||||
{{- $includes := slice }}
|
||||
{{- $includes = $includes | append (" " | resources.FromString "assets/css/includes-blank.css")}}
|
||||
|
||||
{{- if not (eq site.Params.assets.disableScrollBarStyle true) }}
|
||||
{{- $ScrollStyle := (resources.Get "css/includes/scroll-bar.css") }}
|
||||
{{- $includes = (append $ScrollStyle $includes) }}
|
||||
{{- end }}
|
||||
|
||||
{{- $includes_all := $includes | resources.Concat "assets/css/includes.css" }}
|
||||
|
||||
{{- $theme_vars := (resources.Get "css/core/theme-vars.css") }}
|
||||
{{- $reset := (resources.Get "css/core/reset.css") }}
|
||||
{{- $media := (resources.Get "css/core/zmedia.css") }}
|
||||
{{- $license_css := (resources.Get "css/core/license.css") }}
|
||||
{{- $common := (resources.Match "css/common/*.css") | resources.Concat "assets/css/common.css" }}
|
||||
|
||||
{{- /* include `an-old-hope` if hljs is on */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default false) }}
|
||||
{{- $hljs := (cond ($isHLJSdisabled) (".chroma { background-color: unset !important;}" | resources.FromString "assets/css/hljs-blank.css") (resources.Get "css/hljs/an-old-hope.min.css")) }}
|
||||
|
||||
{{- /* order is important */}}
|
||||
{{- $core := (slice $theme_vars $reset $common $hljs $includes_all $media) | resources.Concat "assets/css/core.css" | resources.Minify }}
|
||||
{{- $extended := (resources.Match "css/extended/*.css") | resources.Concat "assets/css/extended.css" | resources.Minify }}
|
||||
|
||||
{{- /* bundle all required css */}}
|
||||
{{- /* Add extended css after theme style */ -}}
|
||||
{{- $stylesheet := (slice $license_css $core $extended) | resources.Concat "assets/css/stylesheet.css" }}
|
||||
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $stylesheet := $stylesheet | fingerprint }}
|
||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" integrity="{{ $stylesheet.Data.Integrity }}" rel="preload stylesheet" as="style">
|
||||
{{- else }}
|
||||
<link crossorigin="anonymous" href="{{ $stylesheet.RelPermalink }}" rel="preload stylesheet" as="style">
|
||||
{{- end }}
|
||||
|
||||
{{- /* Search */}}
|
||||
{{- if (eq .Layout `search`) -}}
|
||||
<link crossorigin="anonymous" rel="preload" as="fetch" href="../index.json">
|
||||
{{- $fastsearch := resources.Get "js/fastsearch.js" | js.Build (dict "params" (dict "fuseOpts" site.Params.fuseOpts)) | resources.Minify }}
|
||||
{{- $fusejs := resources.Get "js/fuse.basic.min.js" }}
|
||||
{{- $license_js := resources.Get "js/license.js" }}
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $search := (slice $fusejs $license_js $fastsearch ) | resources.Concat "assets/js/search.js" | fingerprint }}
|
||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}" integrity="{{ $search.Data.Integrity }}"></script>
|
||||
{{- else }}
|
||||
{{- $search := (slice $fusejs $fastsearch ) | resources.Concat "assets/js/search.js" }}
|
||||
<script defer crossorigin="anonymous" src="{{ $search.RelPermalink }}"></script>
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- /* Highlight.js */}}
|
||||
{{- $isHLJSdisabled := (site.Params.assets.disableHLJS | default .Params.disableHLJS ) }}
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (not $isHLJSdisabled)) }}
|
||||
{{- if not site.Params.assets.disableFingerprinting }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" | fingerprint }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" integrity="{{ $highlight.Data.Integrity }}"
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- else }}
|
||||
{{- $highlight := slice (resources.Get "js/highlight.min.js") | resources.Concat "assets/js/highlight.js" }}
|
||||
<script defer crossorigin="anonymous" src="{{ $highlight.RelPermalink }}" onload="hljs.initHighlightingOnLoad();"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- /* Favicons */}}
|
||||
<link rel="icon" href="{{ site.Params.assets.favicon | default "favicon.ico" | absURL }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ site.Params.assets.favicon16x16 | default "favicon-16x16.png" | absURL }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ site.Params.assets.favicon32x32 | default "favicon-32x32.png" | absURL }}">
|
||||
<link rel="apple-touch-icon" href="{{ site.Params.assets.apple_touch_icon | default "apple-touch-icon.png" | absURL }}">
|
||||
<link rel="mask-icon" href="{{ site.Params.assets.safari_pinned_tab | default "safari-pinned-tab.svg" | absURL }}">
|
||||
<meta name="theme-color" content="{{ site.Params.assets.theme_color | default "#2e2e33" }}">
|
||||
<meta name="msapplication-TileColor" content="{{ site.Params.assets.msapplication_TileColor | default "#2e2e33" }}">
|
||||
|
||||
{{- /* RSS */}}
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type | html }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end -}}
|
||||
{{- range .AllTranslations -}}
|
||||
<link rel="alternate" hreflang="{{ .Lang }}" href="{{ .Permalink }}">
|
||||
{{ end -}}
|
||||
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
{{- if (and (ne site.Params.defaultTheme "light") (ne site.Params.defaultTheme "dark")) }}
|
||||
<style>
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--theme: rgb(29, 30, 32);
|
||||
--entry: rgb(46, 46, 51);
|
||||
--primary: rgb(218, 218, 219);
|
||||
--secondary: rgb(155, 156, 157);
|
||||
--tertiary: rgb(65, 66, 68);
|
||||
--content: rgb(196, 196, 197);
|
||||
--hljs-bg: rgb(46, 46, 51);
|
||||
--code-bg: rgb(55, 56, 62);
|
||||
--border: rgb(51, 51, 51);
|
||||
}
|
||||
|
||||
.list {
|
||||
background: var(--theme);
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-track {
|
||||
background: 0 0;
|
||||
}
|
||||
|
||||
.list:not(.dark)::-webkit-scrollbar-thumb {
|
||||
border-color: var(--theme);
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
{{- end }}
|
||||
</noscript>
|
||||
|
||||
{{- partial "extend_head.html" . -}}
|
||||
|
||||
{{- /* Misc */}}
|
||||
{{- if hugo.IsProduction | or (eq site.Params.env "production") }}
|
||||
{{- template "_internal/google_analytics.html" . }}
|
||||
{{- template "partials/templates/opengraph.html" . }}
|
||||
{{- template "partials/templates/twitter_cards.html" . }}
|
||||
{{- template "partials/templates/schema_json.html" . }}
|
||||
{{- end -}}
|
|
@ -1,154 +0,0 @@
|
|||
{{- $headers := findRE "<h[1-6].*?>(.|\n])+?</h[1-6]>" .Content -}}
|
||||
{{- $has_headers := ge (len $headers) 1 -}}
|
||||
{{- if $has_headers -}}
|
||||
<aside id="toc-container" class="toc-container wide">
|
||||
<div class="toc">
|
||||
<details {{if (.Param "TocOpen") }} open{{ end }}>
|
||||
<summary accesskey="c" title="(Alt + C)">
|
||||
<span class="details">{{- i18n "toc" | default "Table of Contents" }}</span>
|
||||
</summary>
|
||||
|
||||
<div class="inner">
|
||||
{{- $largest := 6 -}}
|
||||
{{- range $headers -}}
|
||||
{{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}}
|
||||
{{- $headerLevel := len (seq $headerLevel) -}}
|
||||
{{- if lt $headerLevel $largest -}}
|
||||
{{- $largest = $headerLevel -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}}
|
||||
|
||||
{{- $.Scratch.Set "bareul" slice -}}
|
||||
<ul>
|
||||
{{- range seq (sub $firstHeaderLevel $largest) -}}
|
||||
<ul>
|
||||
{{- $.Scratch.Add "bareul" (sub (add $largest .) 1) -}}
|
||||
{{- end -}}
|
||||
{{- range $i, $header := $headers -}}
|
||||
{{- $headerLevel := index (findRE "[1-6]" . 1) 0 -}}
|
||||
{{- $headerLevel := len (seq $headerLevel) -}}
|
||||
|
||||
{{/* get id="xyz" */}}
|
||||
{{- $id := index (findRE "(id=\"(.*?)\")" $header 9) 0 }}
|
||||
|
||||
{{- /* strip id="" to leave xyz, no way to get regex capturing groups in hugo */ -}}
|
||||
{{- $cleanedID := replace (replace $id "id=\"" "") "\"" "" }}
|
||||
{{- $header := replaceRE "<h[1-6].*?>((.|\n])+?)</h[1-6]>" "$1" $header -}}
|
||||
|
||||
{{- if ne $i 0 -}}
|
||||
{{- $prevHeaderLevel := index (findRE "[1-6]" (index $headers (sub $i 1)) 1) 0 -}}
|
||||
{{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}}
|
||||
{{- if gt $headerLevel $prevHeaderLevel -}}
|
||||
{{- range seq $prevHeaderLevel (sub $headerLevel 1) -}}
|
||||
<ul>
|
||||
{{/* the first should not be recorded */}}
|
||||
{{- if ne $prevHeaderLevel . -}}
|
||||
{{- $.Scratch.Add "bareul" . -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
</li>
|
||||
{{- if lt $headerLevel $prevHeaderLevel -}}
|
||||
{{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}}
|
||||
{{- if in ($.Scratch.Get "bareul") . -}}
|
||||
</ul>
|
||||
{{/* manually do pop item */}}
|
||||
{{- $tmp := $.Scratch.Get "bareul" -}}
|
||||
{{- $.Scratch.Delete "bareul" -}}
|
||||
{{- $.Scratch.Set "bareul" slice}}
|
||||
{{- range seq (sub (len $tmp) 1) -}}
|
||||
{{- $.Scratch.Add "bareul" (index $tmp (sub . 1)) -}}
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
<li>
|
||||
<a href="#{{- $cleanedID -}}" aria-label="{{- $header | plainify -}}">{{- $header | safeHTML -}}</a>
|
||||
{{- else }}
|
||||
<li>
|
||||
<a href="#{{- $cleanedID -}}" aria-label="{{- $header | plainify -}}">{{- $header | safeHTML -}}</a>
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
<!-- {{- $firstHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers 0) 1) 0)) -}} -->
|
||||
{{- $firstHeaderLevel := $largest }}
|
||||
{{- $lastHeaderLevel := len (seq (index (findRE "[1-6]" (index $headers (sub (len $headers) 1)) 1) 0)) }}
|
||||
</li>
|
||||
{{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}}
|
||||
{{- if in ($.Scratch.Get "bareul") (add . $firstHeaderLevel) }}
|
||||
</ul>
|
||||
{{- else }}
|
||||
</ul>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
</aside>
|
||||
<script>
|
||||
let activeElement;
|
||||
let elements;
|
||||
window.addEventListener('DOMContentLoaded', function (event) {
|
||||
checkTocPosition();
|
||||
|
||||
elements = document.querySelectorAll('h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]');
|
||||
// Make the first header active
|
||||
activeElement = elements[0];
|
||||
const id = encodeURI(activeElement.getAttribute('id')).toLowerCase();
|
||||
document.querySelector(`.inner ul li a[href="#${id}"]`).classList.add('active');
|
||||
}, false);
|
||||
|
||||
window.addEventListener('resize', function(event) {
|
||||
checkTocPosition();
|
||||
}, false);
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
// Check if there is an object in the top half of the screen or keep the last item active
|
||||
activeElement = Array.from(elements).find((element) => {
|
||||
if ((getOffsetTop(element) - window.pageYOffset) > 0 &&
|
||||
(getOffsetTop(element) - window.pageYOffset) < window.innerHeight/2) {
|
||||
return element;
|
||||
}
|
||||
}) || activeElement
|
||||
|
||||
elements.forEach(element => {
|
||||
const id = encodeURI(element.getAttribute('id')).toLowerCase();
|
||||
if (element === activeElement){
|
||||
document.querySelector(`.inner ul li a[href="#${id}"]`).classList.add('active');
|
||||
} else {
|
||||
document.querySelector(`.inner ul li a[href="#${id}"]`).classList.remove('active');
|
||||
}
|
||||
})
|
||||
}, false);
|
||||
|
||||
const main = parseInt(getComputedStyle(document.body).getPropertyValue('--article-width'), 10);
|
||||
const toc = parseInt(getComputedStyle(document.body).getPropertyValue('--toc-width'), 10);
|
||||
const gap = parseInt(getComputedStyle(document.body).getPropertyValue('--gap'), 10);
|
||||
|
||||
function checkTocPosition() {
|
||||
const width = document.body.scrollWidth;
|
||||
|
||||
if (width - main - (toc * 2) - (gap * 4) > 0) {
|
||||
document.getElementById("toc-container").classList.add("wide");
|
||||
} else {
|
||||
document.getElementById("toc-container").classList.remove("wide");
|
||||
}
|
||||
}
|
||||
|
||||
function getOffsetTop(element) {
|
||||
if (!element.getClientRects().length) {
|
||||
return 0;
|
||||
}
|
||||
let rect = element.getBoundingClientRect();
|
||||
let win = element.ownerDocument.defaultView;
|
||||
return rect.top + win.pageYOffset;
|
||||
}
|
||||
</script>
|
||||
{{- end }}
|
1
node_modules/.bin/acorn
generated
vendored
Symbolic link
1
node_modules/.bin/acorn
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../acorn/bin/acorn
|
1
node_modules/.bin/astring
generated
vendored
Symbolic link
1
node_modules/.bin/astring
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../astring/bin/astring
|
1
node_modules/.bin/astro
generated
vendored
Symbolic link
1
node_modules/.bin/astro
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../astro/astro.js
|
1
node_modules/.bin/astro-ls
generated
vendored
Symbolic link
1
node_modules/.bin/astro-ls
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../@astrojs/language-server/bin/nodeServer.js
|
1
node_modules/.bin/browserslist
generated
vendored
Symbolic link
1
node_modules/.bin/browserslist
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../browserslist/cli.js
|
1
node_modules/.bin/esbuild
generated
vendored
Symbolic link
1
node_modules/.bin/esbuild
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../esbuild/bin/esbuild
|
1
node_modules/.bin/esparse
generated
vendored
Symbolic link
1
node_modules/.bin/esparse
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../esprima/bin/esparse.js
|
1
node_modules/.bin/esvalidate
generated
vendored
Symbolic link
1
node_modules/.bin/esvalidate
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../esprima/bin/esvalidate.js
|
1
node_modules/.bin/fxparser
generated
vendored
Symbolic link
1
node_modules/.bin/fxparser
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../fast-xml-parser/src/cli/cli.js
|
1
node_modules/.bin/installServerIntoExtension
generated
vendored
Symbolic link
1
node_modules/.bin/installServerIntoExtension
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../vscode-languageserver/bin/installServerIntoExtension
|
1
node_modules/.bin/is-docker
generated
vendored
Symbolic link
1
node_modules/.bin/is-docker
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../is-docker/cli.js
|
1
node_modules/.bin/is-inside-container
generated
vendored
Symbolic link
1
node_modules/.bin/is-inside-container
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../is-inside-container/cli.js
|
1
node_modules/.bin/js-yaml
generated
vendored
Symbolic link
1
node_modules/.bin/js-yaml
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../astro/node_modules/js-yaml/bin/js-yaml.js
|
1
node_modules/.bin/jsesc
generated
vendored
Symbolic link
1
node_modules/.bin/jsesc
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../jsesc/bin/jsesc
|
1
node_modules/.bin/json5
generated
vendored
Symbolic link
1
node_modules/.bin/json5
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../json5/lib/cli.js
|
1
node_modules/.bin/mime
generated
vendored
Symbolic link
1
node_modules/.bin/mime
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../mime/cli.js
|
1
node_modules/.bin/nanoid
generated
vendored
Symbolic link
1
node_modules/.bin/nanoid
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../nanoid/bin/nanoid.cjs
|
1
node_modules/.bin/node-which
generated
vendored
Symbolic link
1
node_modules/.bin/node-which
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../which/bin/node-which
|
1
node_modules/.bin/parser
generated
vendored
Symbolic link
1
node_modules/.bin/parser
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../@babel/parser/bin/babel-parser.js
|
1
node_modules/.bin/prettier
generated
vendored
Symbolic link
1
node_modules/.bin/prettier
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../prettier/bin-prettier.js
|
1
node_modules/.bin/resolve
generated
vendored
Symbolic link
1
node_modules/.bin/resolve
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../resolve/bin/resolve
|
1
node_modules/.bin/rollup
generated
vendored
Symbolic link
1
node_modules/.bin/rollup
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../rollup/dist/bin/rollup
|
1
node_modules/.bin/semver
generated
vendored
Symbolic link
1
node_modules/.bin/semver
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../astro/node_modules/semver/bin/semver.js
|
1
node_modules/.bin/sitemap
generated
vendored
Symbolic link
1
node_modules/.bin/sitemap
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../sitemap/dist/cli.js
|
1
node_modules/.bin/tsc
generated
vendored
Symbolic link
1
node_modules/.bin/tsc
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../typescript/bin/tsc
|
1
node_modules/.bin/tsserver
generated
vendored
Symbolic link
1
node_modules/.bin/tsserver
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../typescript/bin/tsserver
|
1
node_modules/.bin/update-browserslist-db
generated
vendored
Symbolic link
1
node_modules/.bin/update-browserslist-db
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../update-browserslist-db/cli.js
|
1
node_modules/.bin/uvu
generated
vendored
Symbolic link
1
node_modules/.bin/uvu
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../uvu/bin.js
|
1
node_modules/.bin/vite
generated
vendored
Symbolic link
1
node_modules/.bin/vite
generated
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../vite/bin/vite.js
|
603
node_modules/.yarn-integrity
generated
vendored
Normal file
603
node_modules/.yarn-integrity
generated
vendored
Normal file
|
@ -0,0 +1,603 @@
|
|||
{
|
||||
"systemParams": "linux-x64-115",
|
||||
"modulesFolders": [
|
||||
"node_modules"
|
||||
],
|
||||
"flags": [],
|
||||
"linkedModules": [],
|
||||
"topLevelPatterns": [
|
||||
"@astrojs/mdx@^0.19.7",
|
||||
"@astrojs/rss@^2.4.3",
|
||||
"@astrojs/sitemap@^2.0.0",
|
||||
"astro@^2.8.5"
|
||||
],
|
||||
"lockfileEntries": {
|
||||
"@ampproject/remapping@^2.2.0": "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630",
|
||||
"@astrojs/compiler@^1.0.1": "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-1.6.0.tgz#4ecbed48cbe11e5c2c93e0dc8668fb2394ab56d9",
|
||||
"@astrojs/compiler@^1.4.2": "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-1.6.0.tgz#4ecbed48cbe11e5c2c93e0dc8668fb2394ab56d9",
|
||||
"@astrojs/compiler@^1.5.3": "https://registry.yarnpkg.com/@astrojs/compiler/-/compiler-1.6.0.tgz#4ecbed48cbe11e5c2c93e0dc8668fb2394ab56d9",
|
||||
"@astrojs/internal-helpers@^0.1.1": "https://registry.yarnpkg.com/@astrojs/internal-helpers/-/internal-helpers-0.1.1.tgz#97fbe1d845753ab492ee2c967d44c8add34f1f9c",
|
||||
"@astrojs/language-server@^1.0.0": "https://registry.yarnpkg.com/@astrojs/language-server/-/language-server-1.0.8.tgz#5ee09e917e30dd54ecca30a8ef853b5147f008fe",
|
||||
"@astrojs/markdown-remark@^2.2.1": "https://registry.yarnpkg.com/@astrojs/markdown-remark/-/markdown-remark-2.2.1.tgz#ab063b8ae7ee526e1c3fe65b407b44fb4dee860c",
|
||||
"@astrojs/mdx@^0.19.7": "https://registry.yarnpkg.com/@astrojs/mdx/-/mdx-0.19.7.tgz#8a2ff3dc2613ef6aaff86ea039dfa76f864ecdd6",
|
||||
"@astrojs/prism@^2.1.2": "https://registry.yarnpkg.com/@astrojs/prism/-/prism-2.1.2.tgz#7486cb886ba3354e38ef4e58cbbe72f31337689e",
|
||||
"@astrojs/rss@^2.4.3": "https://registry.yarnpkg.com/@astrojs/rss/-/rss-2.4.3.tgz#fa743fcbbbd65c59b51ba8050e5cdaed65ea6821",
|
||||
"@astrojs/sitemap@^2.0.0": "https://registry.yarnpkg.com/@astrojs/sitemap/-/sitemap-2.0.0.tgz#a3576535a8c924360d3fb468b163b88ee24a5928",
|
||||
"@astrojs/telemetry@^2.1.1": "https://registry.yarnpkg.com/@astrojs/telemetry/-/telemetry-2.1.1.tgz#e371ce343fd70313334219cf36365c04b3a65fb6",
|
||||
"@astrojs/webapi@^2.2.0": "https://registry.yarnpkg.com/@astrojs/webapi/-/webapi-2.2.0.tgz#fd142a468d5d690bc5ab884b532ef4db44f090b2",
|
||||
"@babel/code-frame@^7.22.5": "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658",
|
||||
"@babel/compat-data@^7.22.9": "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730",
|
||||
"@babel/core@^7.22.5": "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f",
|
||||
"@babel/generator@^7.22.5": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d",
|
||||
"@babel/generator@^7.22.7": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d",
|
||||
"@babel/generator@^7.22.9": "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d",
|
||||
"@babel/helper-annotate-as-pure@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882",
|
||||
"@babel/helper-compilation-targets@^7.22.9": "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892",
|
||||
"@babel/helper-environment-visitor@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98",
|
||||
"@babel/helper-function-name@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be",
|
||||
"@babel/helper-hoist-variables@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb",
|
||||
"@babel/helper-module-imports@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c",
|
||||
"@babel/helper-module-transforms@^7.22.9": "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129",
|
||||
"@babel/helper-plugin-utils@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295",
|
||||
"@babel/helper-simple-access@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de",
|
||||
"@babel/helper-split-export-declaration@^7.22.6": "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c",
|
||||
"@babel/helper-string-parser@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f",
|
||||
"@babel/helper-validator-identifier@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193",
|
||||
"@babel/helper-validator-option@^7.22.5": "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac",
|
||||
"@babel/helpers@^7.22.6": "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd",
|
||||
"@babel/highlight@^7.22.5": "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031",
|
||||
"@babel/parser@^7.1.0": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae",
|
||||
"@babel/parser@^7.20.7": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae",
|
||||
"@babel/parser@^7.22.5": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae",
|
||||
"@babel/parser@^7.22.7": "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae",
|
||||
"@babel/plugin-syntax-jsx@^7.22.5": "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918",
|
||||
"@babel/plugin-transform-react-jsx@^7.22.5": "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416",
|
||||
"@babel/template@^7.22.5": "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec",
|
||||
"@babel/traverse@^7.22.5": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e",
|
||||
"@babel/traverse@^7.22.6": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e",
|
||||
"@babel/traverse@^7.22.8": "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e",
|
||||
"@babel/types@^7.0.0": "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe",
|
||||
"@babel/types@^7.20.7": "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe",
|
||||
"@babel/types@^7.22.5": "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe",
|
||||
"@emmetio/abbreviation@^2.3.3": "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz#ed2b88fe37b972292d6026c7c540aaf887cecb6e",
|
||||
"@emmetio/css-abbreviation@^2.1.8": "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz#b785313486eba6cb7eb623ad39378c4e1063dc00",
|
||||
"@emmetio/scanner@^1.0.4": "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.4.tgz#e9cdc67194fd91f8b7eb141014be4f2d086c15f1",
|
||||
"@esbuild/android-arm64@0.17.19": "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd",
|
||||
"@esbuild/android-arm64@0.18.14": "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.14.tgz#d86197e6ff965a187b2ea2704915f596a040ed4b",
|
||||
"@esbuild/android-arm@0.17.19": "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d",
|
||||
"@esbuild/android-arm@0.18.14": "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.14.tgz#ed59310c0e6ec6df8b17e363d33a954ecf870f4f",
|
||||
"@esbuild/android-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1",
|
||||
"@esbuild/android-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.14.tgz#e01b387f1db3dd2596a44e8c577aa2609750bc82",
|
||||
"@esbuild/darwin-arm64@0.17.19": "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276",
|
||||
"@esbuild/darwin-arm64@0.18.14": "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.14.tgz#e92fbdeb9ff209a762cf107df3026c1b3e04ab85",
|
||||
"@esbuild/darwin-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb",
|
||||
"@esbuild/darwin-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.14.tgz#bc1884d9f812647e2078fa4c46e4bffec53c7c09",
|
||||
"@esbuild/freebsd-arm64@0.17.19": "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2",
|
||||
"@esbuild/freebsd-arm64@0.18.14": "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.14.tgz#1fa876f627536b5037f4aed90545ccc330fd509b",
|
||||
"@esbuild/freebsd-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4",
|
||||
"@esbuild/freebsd-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.14.tgz#effaa4c5d7bab695b5e6fae459eaf49121fbc7c3",
|
||||
"@esbuild/linux-arm64@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb",
|
||||
"@esbuild/linux-arm64@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.14.tgz#24bb4b1836fe7900e1ffda78aa6875a4eb500e3a",
|
||||
"@esbuild/linux-arm@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a",
|
||||
"@esbuild/linux-arm@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.14.tgz#7f3490320a4627f4c850a8613385bdf3ffb82285",
|
||||
"@esbuild/linux-ia32@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a",
|
||||
"@esbuild/linux-ia32@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.14.tgz#91f1e82f92ffaff8d72f9d90a0f209022529031a",
|
||||
"@esbuild/linux-loong64@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72",
|
||||
"@esbuild/linux-loong64@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.14.tgz#cd5cb806af6361578800af79919c5cfd53401a17",
|
||||
"@esbuild/linux-mips64el@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289",
|
||||
"@esbuild/linux-mips64el@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.14.tgz#c635b6c0b8b4f9b4bff3aaafad59fa8cc07b354a",
|
||||
"@esbuild/linux-ppc64@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7",
|
||||
"@esbuild/linux-ppc64@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.14.tgz#9b2bb80b7e30667a81ffbcddb74ad8e79330cc94",
|
||||
"@esbuild/linux-riscv64@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09",
|
||||
"@esbuild/linux-riscv64@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.14.tgz#9520d34a4ecbf404e56f4cebdcc686c83b66babc",
|
||||
"@esbuild/linux-s390x@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829",
|
||||
"@esbuild/linux-s390x@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.14.tgz#3987e30f807b8faf20815b2b2f0a4919084d4e7c",
|
||||
"@esbuild/linux-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4",
|
||||
"@esbuild/linux-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.14.tgz#51c727dc7045c47ab8c08fe6c09cda3e170d99f3",
|
||||
"@esbuild/netbsd-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462",
|
||||
"@esbuild/netbsd-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.14.tgz#4677bf88b489d5ffe1b5f0abbb85812996455479",
|
||||
"@esbuild/openbsd-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691",
|
||||
"@esbuild/openbsd-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.14.tgz#939902897e533162450f69266f32ef1325ba98fd",
|
||||
"@esbuild/sunos-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273",
|
||||
"@esbuild/sunos-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.14.tgz#a50721d47b93586249bd63250bd4b7496fc9957b",
|
||||
"@esbuild/win32-arm64@0.17.19": "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f",
|
||||
"@esbuild/win32-arm64@0.18.14": "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.14.tgz#d8531d370e6fd0e0e40f40e016f996bbe4fd5ebf",
|
||||
"@esbuild/win32-ia32@0.17.19": "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03",
|
||||
"@esbuild/win32-ia32@0.18.14": "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.14.tgz#dcbf75e4e65d2921cd4be14ed67cec7360440e46",
|
||||
"@esbuild/win32-x64@0.17.19": "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061",
|
||||
"@esbuild/win32-x64@0.18.14": "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.14.tgz#43f66032e0f189b6f394d4dbc903a188bb0c969f",
|
||||
"@jridgewell/gen-mapping@^0.3.0": "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098",
|
||||
"@jridgewell/gen-mapping@^0.3.2": "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098",
|
||||
"@jridgewell/resolve-uri@3.1.0": "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78",
|
||||
"@jridgewell/set-array@^1.0.1": "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72",
|
||||
"@jridgewell/sourcemap-codec@1.4.14": "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24",
|
||||
"@jridgewell/sourcemap-codec@^1.4.10": "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32",
|
||||
"@jridgewell/sourcemap-codec@^1.4.13": "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32",
|
||||
"@jridgewell/trace-mapping@^0.3.14": "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6",
|
||||
"@jridgewell/trace-mapping@^0.3.17": "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6",
|
||||
"@jridgewell/trace-mapping@^0.3.9": "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6",
|
||||
"@mdx-js/mdx@^2.3.0": "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.3.0.tgz#d65d8c3c28f3f46bb0e7cb3bf7613b39980671a9",
|
||||
"@nodelib/fs.scandir@2.1.5": "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5",
|
||||
"@nodelib/fs.stat@2.0.5": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b",
|
||||
"@nodelib/fs.stat@^2.0.2": "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b",
|
||||
"@nodelib/fs.walk@^1.2.3": "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a",
|
||||
"@pkgr/utils@^2.3.1": "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc",
|
||||
"@types/acorn@^4.0.0": "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22",
|
||||
"@types/babel__core@^7.20.1": "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b",
|
||||
"@types/babel__generator@*": "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7",
|
||||
"@types/babel__template@*": "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969",
|
||||
"@types/babel__traverse@*": "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf",
|
||||
"@types/debug@^4.0.0": "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317",
|
||||
"@types/estree-jsx@^1.0.0": "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1",
|
||||
"@types/estree@*": "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194",
|
||||
"@types/estree@^1.0.0": "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194",
|
||||
"@types/hast@^2.0.0": "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.5.tgz#08caac88b44d0fdd04dc17a19142355f43bd8a7a",
|
||||
"@types/json5@^0.0.30": "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818",
|
||||
"@types/mdast@^3.0.0": "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.12.tgz#beeb511b977c875a5b0cc92eab6fcac2f0895514",
|
||||
"@types/mdx@^2.0.0": "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1",
|
||||
"@types/ms@*": "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197",
|
||||
"@types/nlcst@^1.0.0": "https://registry.yarnpkg.com/@types/nlcst/-/nlcst-1.0.1.tgz#b40b978e8f0a14e97056663f9e9226f34e1a5fb3",
|
||||
"@types/node@*": "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9",
|
||||
"@types/node@^17.0.5": "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190",
|
||||
"@types/parse5@^6.0.0": "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb",
|
||||
"@types/resolve@^1.17.0": "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975",
|
||||
"@types/sax@^1.2.1": "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.4.tgz#8221affa7f4f3cb21abd22f244cfabfa63e6a69e",
|
||||
"@types/unist@^2": "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.7.tgz#5b06ad6894b236a1d2bd6b2f07850ca5c59cf4d6",
|
||||
"@types/unist@^2.0.0": "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.7.tgz#5b06ad6894b236a1d2bd6b2f07850ca5c59cf4d6",
|
||||
"@types/yargs-parser@^21.0.0": "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b",
|
||||
"@vscode/emmet-helper@^2.8.4": "https://registry.yarnpkg.com/@vscode/emmet-helper/-/emmet-helper-2.9.2.tgz#cd5d1e64e7138ad76300e8cba5fd84f1c03e13ee",
|
||||
"@vscode/l10n@^0.0.14": "https://registry.yarnpkg.com/@vscode/l10n/-/l10n-0.0.14.tgz#431e5814c35c3cb11ee21873bc70a4b0fbf90fcf",
|
||||
"acorn-jsx@^5.0.0": "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937",
|
||||
"acorn@^8.0.0": "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5",
|
||||
"acorn@^8.8.0": "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5",
|
||||
"acorn@^8.9.0": "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5",
|
||||
"ansi-align@^3.0.1": "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59",
|
||||
"ansi-regex@^5.0.1": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304",
|
||||
"ansi-regex@^6.0.1": "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a",
|
||||
"ansi-sequence-parser@^1.1.0": "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz#4d790f31236ac20366b23b3916b789e1bde39aed",
|
||||
"ansi-styles@^3.2.1": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d",
|
||||
"ansi-styles@^4.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937",
|
||||
"ansi-styles@^6.1.0": "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5",
|
||||
"anymatch@~3.1.2": "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e",
|
||||
"arg@^5.0.0": "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c",
|
||||
"argparse@^1.0.7": "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911",
|
||||
"argparse@^2.0.1": "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38",
|
||||
"array-iterate@^2.0.0": "https://registry.yarnpkg.com/array-iterate/-/array-iterate-2.0.1.tgz#6efd43f8295b3fee06251d3d62ead4bd9805dd24",
|
||||
"astring@^1.8.0": "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731",
|
||||
"astro@^2.8.5": "https://registry.yarnpkg.com/astro/-/astro-2.8.5.tgz#61af374ff50d16003880602656560391663b012c",
|
||||
"bail@^2.0.0": "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d",
|
||||
"base64-js@^1.3.1": "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a",
|
||||
"big-integer@^1.6.44": "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686",
|
||||
"binary-extensions@^2.0.0": "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d",
|
||||
"bl@^5.0.0": "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273",
|
||||
"boxen@^6.2.1": "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d",
|
||||
"bplist-parser@^0.2.0": "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e",
|
||||
"braces@^3.0.2": "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107",
|
||||
"braces@~3.0.2": "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107",
|
||||
"browserslist@^4.21.9": "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635",
|
||||
"buffer@^6.0.3": "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6",
|
||||
"bundle-name@^3.0.0": "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a",
|
||||
"busboy@^1.6.0": "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893",
|
||||
"camelcase@^6.2.0": "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a",
|
||||
"caniuse-lite@^1.0.30001503": "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8",
|
||||
"ccount@^2.0.0": "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5",
|
||||
"chalk@^2.0.0": "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424",
|
||||
"chalk@^4.1.2": "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01",
|
||||
"chalk@^5.0.0": "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385",
|
||||
"character-entities-html4@^2.0.0": "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b",
|
||||
"character-entities-legacy@^3.0.0": "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b",
|
||||
"character-entities@^2.0.0": "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22",
|
||||
"character-reference-invalid@^2.0.0": "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9",
|
||||
"chokidar@^3.5.3": "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd",
|
||||
"ci-info@^3.3.1": "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91",
|
||||
"ci-info@^3.8.0": "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91",
|
||||
"cli-boxes@^3.0.0": "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145",
|
||||
"cli-cursor@^4.0.0": "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea",
|
||||
"cli-spinners@^2.6.1": "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db",
|
||||
"clone@^1.0.2": "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e",
|
||||
"color-convert@^1.9.0": "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8",
|
||||
"color-convert@^2.0.1": "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3",
|
||||
"color-name@1.1.3": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25",
|
||||
"color-name@~1.1.4": "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2",
|
||||
"comma-separated-tokens@^2.0.0": "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee",
|
||||
"common-ancestor-path@^1.0.1": "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7",
|
||||
"convert-source-map@^1.7.0": "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f",
|
||||
"cookie@^0.5.0": "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b",
|
||||
"cross-spawn@^7.0.3": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6",
|
||||
"debug@^4.0.0": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
|
||||
"debug@^4.1.0": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
|
||||
"debug@^4.3.4": "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865",
|
||||
"decode-named-character-reference@^1.0.0": "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e",
|
||||
"deepmerge-ts@^4.3.0": "https://registry.yarnpkg.com/deepmerge-ts/-/deepmerge-ts-4.3.0.tgz#432aff3cd09f947e36cdb3772a43960bf45327fe",
|
||||
"default-browser-id@^3.0.0": "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c",
|
||||
"default-browser@^4.0.0": "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da",
|
||||
"defaults@^1.0.3": "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a",
|
||||
"define-lazy-prop@^3.0.0": "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f",
|
||||
"dequal@^2.0.0": "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be",
|
||||
"devalue@^4.3.2": "https://registry.yarnpkg.com/devalue/-/devalue-4.3.2.tgz#cc44e4cf3872ac5a78229fbce3b77e57032727b5",
|
||||
"diff@^5.0.0": "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40",
|
||||
"diff@^5.1.0": "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40",
|
||||
"dlv@^1.1.3": "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79",
|
||||
"dset@^3.1.2": "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a",
|
||||
"eastasianwidth@^0.2.0": "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb",
|
||||
"electron-to-chromium@^1.4.431": "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.465.tgz#8f7a47a2a45b9b9e9a706967e47098e4d472d237",
|
||||
"emmet@^2.4.3": "https://registry.yarnpkg.com/emmet/-/emmet-2.4.5.tgz#abe996c86c05e6adb7cef31e7eb8dfd9170e0744",
|
||||
"emoji-regex@^8.0.0": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37",
|
||||
"emoji-regex@^9.2.2": "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72",
|
||||
"es-module-lexer@^1.1.1": "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f",
|
||||
"es-module-lexer@^1.3.0": "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f",
|
||||
"esbuild@^0.17.19": "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.19.tgz#087a727e98299f0462a3d0bcdd9cd7ff100bd955",
|
||||
"esbuild@^0.18.10": "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.14.tgz#3df4cfef66c55176583359d79fd416ffeb3cdf7e",
|
||||
"escalade@^3.1.1": "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40",
|
||||
"escape-string-regexp@^1.0.5": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
|
||||
"escape-string-regexp@^5.0.0": "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8",
|
||||
"esprima@^4.0.0": "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71",
|
||||
"estree-util-attach-comments@^2.0.0": "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz#ee44f4ff6890ee7dfb3237ac7810154c94c63f84",
|
||||
"estree-util-build-jsx@^2.0.0": "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz#32f8a239fb40dc3f3dca75bb5dcf77a831e4e47b",
|
||||
"estree-util-is-identifier-name@^2.0.0": "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz#fb70a432dcb19045e77b05c8e732f1364b4b49b2",
|
||||
"estree-util-to-js@^1.1.0": "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz#0f80d42443e3b13bd32f7012fffa6f93603f4a36",
|
||||
"estree-util-visit@^1.0.0": "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz#8bc2bc09f25b00827294703835aabee1cc9ec69d",
|
||||
"estree-util-visit@^1.2.0": "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz#8bc2bc09f25b00827294703835aabee1cc9ec69d",
|
||||
"estree-walker@3.0.0": "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.0.tgz#ca4b284de9dffb255288c76a44870b360faf14f9",
|
||||
"estree-walker@^3.0.0": "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d",
|
||||
"events@^3.3.0": "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400",
|
||||
"execa@^5.0.0": "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd",
|
||||
"execa@^6.1.0": "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20",
|
||||
"execa@^7.1.1": "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43",
|
||||
"extend-shallow@^2.0.1": "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f",
|
||||
"extend@^3.0.0": "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa",
|
||||
"fast-glob@^3.2.12": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0",
|
||||
"fast-glob@^3.3.0": "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0",
|
||||
"fast-xml-parser@^4.0.8": "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.6.tgz#30ad37b014c16e31eec0e01fbf90a85cedb4eacf",
|
||||
"fastq@^1.6.0": "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a",
|
||||
"fault@^2.0.0": "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c",
|
||||
"fill-range@^7.0.1": "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40",
|
||||
"find-up@^4.0.0": "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19",
|
||||
"find-up@^5.0.0": "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc",
|
||||
"find-yarn-workspace-root2@1.2.16": "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9",
|
||||
"format@^0.2.0": "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b",
|
||||
"fsevents@~2.3.2": "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a",
|
||||
"function-bind@^1.1.1": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d",
|
||||
"gensync@^1.0.0-beta.2": "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0",
|
||||
"get-stream@^6.0.0": "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7",
|
||||
"get-stream@^6.0.1": "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7",
|
||||
"github-slugger@^1.4.0": "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d",
|
||||
"github-slugger@^2.0.0": "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a",
|
||||
"glob-parent@^5.1.2": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4",
|
||||
"glob-parent@~5.1.2": "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4",
|
||||
"globals@^11.1.0": "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e",
|
||||
"graceful-fs@^4.1.5": "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3",
|
||||
"gray-matter@^4.0.3": "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798",
|
||||
"has-flag@^3.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd",
|
||||
"has-flag@^4.0.0": "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b",
|
||||
"has@^1.0.3": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796",
|
||||
"hast-util-from-parse5@^7.0.0": "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0",
|
||||
"hast-util-parse-selector@^3.0.0": "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2",
|
||||
"hast-util-raw@^7.0.0": "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99",
|
||||
"hast-util-raw@^7.2.0": "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99",
|
||||
"hast-util-to-estree@^2.0.0": "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz#da60142ffe19a6296923ec222aba73339c8bf470",
|
||||
"hast-util-to-html@^8.0.0": "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz#0269ef33fa3f6599b260a8dc94f733b8e39e41fc",
|
||||
"hast-util-to-html@^8.0.4": "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz#0269ef33fa3f6599b260a8dc94f733b8e39e41fc",
|
||||
"hast-util-to-parse5@^7.0.0": "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz#c49391bf8f151973e0c9adcd116b561e8daf29f3",
|
||||
"hast-util-whitespace@^2.0.0": "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557",
|
||||
"hastscript@^7.0.0": "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b",
|
||||
"html-escaper@^3.0.3": "https://registry.yarnpkg.com/html-escaper/-/html-escaper-3.0.3.tgz#4d336674652beb1dcbc29ef6b6ba7f6be6fdfed6",
|
||||
"html-void-elements@^2.0.0": "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f",
|
||||
"human-signals@^2.1.0": "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0",
|
||||
"human-signals@^3.0.1": "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5",
|
||||
"human-signals@^4.3.0": "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2",
|
||||
"ieee754@^1.2.1": "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352",
|
||||
"import-meta-resolve@^2.1.0": "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz#75237301e72d1f0fbd74dbc6cca9324b164c2cc9",
|
||||
"inherits@^2.0.3": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c",
|
||||
"inherits@^2.0.4": "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c",
|
||||
"inline-style-parser@0.1.1": "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1",
|
||||
"is-alphabetical@^2.0.0": "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b",
|
||||
"is-alphanumerical@^2.0.0": "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875",
|
||||
"is-binary-path@~2.1.0": "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09",
|
||||
"is-buffer@^2.0.0": "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191",
|
||||
"is-core-module@^2.11.0": "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd",
|
||||
"is-decimal@^2.0.0": "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7",
|
||||
"is-docker@^2.0.0": "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa",
|
||||
"is-docker@^3.0.0": "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200",
|
||||
"is-extendable@^0.1.0": "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89",
|
||||
"is-extglob@^2.1.1": "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2",
|
||||
"is-fullwidth-code-point@^3.0.0": "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d",
|
||||
"is-glob@^4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084",
|
||||
"is-glob@^4.0.3": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084",
|
||||
"is-glob@~4.0.1": "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084",
|
||||
"is-hexadecimal@^2.0.0": "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027",
|
||||
"is-inside-container@^1.0.0": "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4",
|
||||
"is-interactive@^2.0.0": "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90",
|
||||
"is-number@^7.0.0": "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b",
|
||||
"is-plain-obj@^4.0.0": "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0",
|
||||
"is-reference@^3.0.0": "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831",
|
||||
"is-stream@^2.0.0": "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077",
|
||||
"is-stream@^3.0.0": "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac",
|
||||
"is-unicode-supported@^1.1.0": "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714",
|
||||
"is-wsl@^2.2.0": "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271",
|
||||
"isexe@^2.0.0": "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
|
||||
"js-tokens@^4.0.0": "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499",
|
||||
"js-yaml@^3.13.0": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537",
|
||||
"js-yaml@^3.13.1": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537",
|
||||
"js-yaml@^4.1.0": "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602",
|
||||
"jsesc@^2.5.1": "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4",
|
||||
"json5@^2.1.3": "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283",
|
||||
"json5@^2.2.2": "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283",
|
||||
"jsonc-parser@^2.3.0": "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342",
|
||||
"jsonc-parser@^3.2.0": "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76",
|
||||
"kind-of@^6.0.0": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd",
|
||||
"kind-of@^6.0.2": "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd",
|
||||
"kleur@^3.0.3": "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e",
|
||||
"kleur@^4.0.3": "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780",
|
||||
"kleur@^4.1.4": "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780",
|
||||
"kleur@^4.1.5": "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780",
|
||||
"load-yaml-file@^0.2.0": "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d",
|
||||
"locate-path@^5.0.0": "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0",
|
||||
"locate-path@^6.0.0": "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286",
|
||||
"log-symbols@^5.1.0": "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93",
|
||||
"longest-streak@^3.0.0": "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4",
|
||||
"lru-cache@^5.1.1": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920",
|
||||
"lru-cache@^6.0.0": "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94",
|
||||
"magic-string@^0.27.0": "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3",
|
||||
"markdown-extensions@^1.0.0": "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3",
|
||||
"markdown-table@^3.0.0": "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd",
|
||||
"mdast-util-definitions@^5.0.0": "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7",
|
||||
"mdast-util-find-and-replace@^2.0.0": "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1",
|
||||
"mdast-util-from-markdown@^1.0.0": "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0",
|
||||
"mdast-util-from-markdown@^1.1.0": "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0",
|
||||
"mdast-util-frontmatter@^1.0.0": "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz#79c46d7414eb9d3acabe801ee4a70a70b75e5af1",
|
||||
"mdast-util-gfm-autolink-literal@^1.0.0": "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06",
|
||||
"mdast-util-gfm-footnote@^1.0.0": "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e",
|
||||
"mdast-util-gfm-strikethrough@^1.0.0": "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7",
|
||||
"mdast-util-gfm-table@^1.0.0": "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46",
|
||||
"mdast-util-gfm-task-list-item@^1.0.0": "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b",
|
||||
"mdast-util-gfm@^2.0.0": "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6",
|
||||
"mdast-util-mdx-expression@^1.0.0": "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz#d027789e67524d541d6de543f36d51ae2586f220",
|
||||
"mdast-util-mdx-jsx@^2.0.0": "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz#7c1f07f10751a78963cfabee38017cbc8b7786d1",
|
||||
"mdast-util-mdx@^2.0.0": "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz#49b6e70819b99bb615d7223c088d295e53bb810f",
|
||||
"mdast-util-mdxjs-esm@^1.0.0": "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz#645d02cd607a227b49721d146fd81796b2e2d15b",
|
||||
"mdast-util-phrasing@^3.0.0": "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463",
|
||||
"mdast-util-to-hast@^12.1.0": "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49",
|
||||
"mdast-util-to-markdown@^1.0.0": "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6",
|
||||
"mdast-util-to-markdown@^1.3.0": "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6",
|
||||
"mdast-util-to-string@^3.0.0": "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789",
|
||||
"mdast-util-to-string@^3.1.0": "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789",
|
||||
"merge-stream@^2.0.0": "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60",
|
||||
"merge2@^1.3.0": "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae",
|
||||
"micromark-core-commonmark@^1.0.0": "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8",
|
||||
"micromark-core-commonmark@^1.0.1": "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8",
|
||||
"micromark-extension-frontmatter@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz#2946643938e491374145d0c9aacc3249e38a865f",
|
||||
"micromark-extension-gfm-autolink-literal@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7",
|
||||
"micromark-extension-gfm-footnote@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e",
|
||||
"micromark-extension-gfm-strikethrough@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af",
|
||||
"micromark-extension-gfm-table@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008",
|
||||
"micromark-extension-gfm-tagfilter@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7",
|
||||
"micromark-extension-gfm-task-list-item@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4",
|
||||
"micromark-extension-gfm@^2.0.0": "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf",
|
||||
"micromark-extension-mdx-expression@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz#5bc1f5fd90388e8293b3ef4f7c6f06c24aff6314",
|
||||
"micromark-extension-mdx-jsx@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz#e72d24b7754a30d20fb797ece11e2c4e2cae9e82",
|
||||
"micromark-extension-mdx-md@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz#595d4b2f692b134080dca92c12272ab5b74c6d1a",
|
||||
"micromark-extension-mdxjs-esm@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz#e4f8be9c14c324a80833d8d3a227419e2b25dec1",
|
||||
"micromark-extension-mdxjs@^1.0.0": "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz#f78d4671678d16395efeda85170c520ee795ded8",
|
||||
"micromark-factory-destination@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f",
|
||||
"micromark-factory-label@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68",
|
||||
"micromark-factory-mdx-expression@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz#57ba4571b69a867a1530f34741011c71c73a4976",
|
||||
"micromark-factory-space@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf",
|
||||
"micromark-factory-title@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1",
|
||||
"micromark-factory-whitespace@^1.0.0": "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705",
|
||||
"micromark-util-character@^1.0.0": "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc",
|
||||
"micromark-util-chunked@^1.0.0": "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b",
|
||||
"micromark-util-classify-character@^1.0.0": "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d",
|
||||
"micromark-util-combine-extensions@^1.0.0": "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84",
|
||||
"micromark-util-decode-numeric-character-reference@^1.0.0": "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6",
|
||||
"micromark-util-decode-string@^1.0.0": "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c",
|
||||
"micromark-util-encode@^1.0.0": "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5",
|
||||
"micromark-util-events-to-acorn@^1.0.0": "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz#a4ab157f57a380e646670e49ddee97a72b58b557",
|
||||
"micromark-util-html-tag-name@^1.0.0": "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588",
|
||||
"micromark-util-normalize-identifier@^1.0.0": "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7",
|
||||
"micromark-util-resolve-all@^1.0.0": "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188",
|
||||
"micromark-util-sanitize-uri@^1.0.0": "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d",
|
||||
"micromark-util-sanitize-uri@^1.1.0": "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d",
|
||||
"micromark-util-subtokenize@^1.0.0": "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1",
|
||||
"micromark-util-symbol@^1.0.0": "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142",
|
||||
"micromark-util-types@^1.0.0": "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283",
|
||||
"micromark-util-types@^1.0.1": "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283",
|
||||
"micromark@^3.0.0": "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9",
|
||||
"micromatch@^4.0.2": "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6",
|
||||
"micromatch@^4.0.4": "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6",
|
||||
"mime@^3.0.0": "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7",
|
||||
"mimic-fn@^2.1.0": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b",
|
||||
"mimic-fn@^4.0.0": "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc",
|
||||
"mri@^1.1.0": "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b",
|
||||
"ms@2.1.2": "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009",
|
||||
"nanoid@^3.3.6": "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c",
|
||||
"nlcst-to-string@^3.0.0": "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-3.1.1.tgz#83b90f2e1ee2081e14701317efc26d3bbadc806e",
|
||||
"node-releases@^2.0.12": "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d",
|
||||
"normalize-path@^3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65",
|
||||
"normalize-path@~3.0.0": "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65",
|
||||
"npm-run-path@^4.0.1": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea",
|
||||
"npm-run-path@^5.1.0": "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00",
|
||||
"onetime@^5.1.0": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e",
|
||||
"onetime@^5.1.2": "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e",
|
||||
"onetime@^6.0.0": "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4",
|
||||
"open@^9.1.0": "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6",
|
||||
"ora@^6.3.1": "https://registry.yarnpkg.com/ora/-/ora-6.3.1.tgz#a4e9e5c2cf5ee73c259e8b410273e706a2ad3ed6",
|
||||
"p-limit@^2.2.0": "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1",
|
||||
"p-limit@^3.0.2": "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b",
|
||||
"p-limit@^4.0.0": "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644",
|
||||
"p-locate@^4.1.0": "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07",
|
||||
"p-locate@^5.0.0": "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834",
|
||||
"p-try@^2.0.0": "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6",
|
||||
"parse-entities@^4.0.0": "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e",
|
||||
"parse-latin@^5.0.0": "https://registry.yarnpkg.com/parse-latin/-/parse-latin-5.0.1.tgz#f3b4fac54d06f6a0501cf8b8ecfafa4cbb4f2f47",
|
||||
"parse5@^6.0.0": "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b",
|
||||
"path-exists@^4.0.0": "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3",
|
||||
"path-key@^3.0.0": "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375",
|
||||
"path-key@^3.1.0": "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375",
|
||||
"path-key@^4.0.0": "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18",
|
||||
"path-parse@^1.0.7": "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735",
|
||||
"path-to-regexp@^6.2.1": "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5",
|
||||
"periscopic@^3.0.0": "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a",
|
||||
"picocolors@^1.0.0": "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c",
|
||||
"picomatch@^2.0.4": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42",
|
||||
"picomatch@^2.2.1": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42",
|
||||
"picomatch@^2.3.1": "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42",
|
||||
"pify@^4.0.1": "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231",
|
||||
"pkg-dir@^4.2.0": "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3",
|
||||
"postcss@^8.4.25": "https://registry.yarnpkg.com/postcss/-/postcss-8.4.26.tgz#1bc62ab19f8e1e5463d98cf74af39702a00a9e94",
|
||||
"preferred-pm@^3.0.3": "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6",
|
||||
"prettier-plugin-astro@^0.9.1": "https://registry.yarnpkg.com/prettier-plugin-astro/-/prettier-plugin-astro-0.9.1.tgz#237d2f536d66501c3a351614c43c2372baca7411",
|
||||
"prettier@^2.8.3": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da",
|
||||
"prettier@^2.8.8": "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da",
|
||||
"prismjs@^1.28.0": "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12",
|
||||
"prompts@^2.4.2": "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069",
|
||||
"property-information@^6.0.0": "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d",
|
||||
"queue-microtask@^1.2.2": "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243",
|
||||
"readable-stream@^3.4.0": "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967",
|
||||
"readdirp@~3.6.0": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7",
|
||||
"rehype-parse@^8.0.0": "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-8.0.4.tgz#3d17c9ff16ddfef6bbcc8e6a25a99467b482d688",
|
||||
"rehype-raw@^6.1.1": "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-6.1.1.tgz#81bbef3793bd7abacc6bf8335879d1b6c868c9d4",
|
||||
"rehype-stringify@^9.0.0": "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz#70e3bd6d4d29e7acf36b802deed350305d2c3c17",
|
||||
"rehype-stringify@^9.0.3": "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.3.tgz#70e3bd6d4d29e7acf36b802deed350305d2c3c17",
|
||||
"rehype@^12.0.1": "https://registry.yarnpkg.com/rehype/-/rehype-12.0.1.tgz#68a317662576dcaa2565a3952e149d6900096bf6",
|
||||
"remark-frontmatter@^4.0.1": "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz#84560f7ccef114ef076d3d3735be6d69f8922309",
|
||||
"remark-gfm@^3.0.1": "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f",
|
||||
"remark-mdx@^2.0.0": "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.3.0.tgz#efe678025a8c2726681bde8bf111af4a93943db4",
|
||||
"remark-parse@^10.0.0": "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262",
|
||||
"remark-parse@^10.0.1": "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262",
|
||||
"remark-rehype@^10.0.0": "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279",
|
||||
"remark-rehype@^10.1.0": "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279",
|
||||
"remark-smartypants@^2.0.0": "https://registry.yarnpkg.com/remark-smartypants/-/remark-smartypants-2.0.0.tgz#836cff43ec139b2e5ec9e488d80596ed677d1cb2",
|
||||
"resolve@^1.17.0": "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f",
|
||||
"restore-cursor@^4.0.0": "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9",
|
||||
"retext-latin@^3.0.0": "https://registry.yarnpkg.com/retext-latin/-/retext-latin-3.1.0.tgz#72b0176af2c69a373fd0d37eadd3924418bb3a89",
|
||||
"retext-smartypants@^5.1.0": "https://registry.yarnpkg.com/retext-smartypants/-/retext-smartypants-5.2.0.tgz#da9cb79cc60f36aa33a20a462dfc663bec0068b4",
|
||||
"retext-stringify@^3.0.0": "https://registry.yarnpkg.com/retext-stringify/-/retext-stringify-3.1.0.tgz#46ed45e077bfc4a8334977f6c2d6611e1d36263a",
|
||||
"retext@^8.1.0": "https://registry.yarnpkg.com/retext/-/retext-8.1.0.tgz#c43437fb84cd46285ad240a9279142e239bada8d",
|
||||
"reusify@^1.0.4": "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76",
|
||||
"rollup@^3.25.2": "https://registry.yarnpkg.com/rollup/-/rollup-3.26.3.tgz#bbc8818cadd0aebca348dbb3d68d296d220967b8",
|
||||
"run-applescript@^5.0.0": "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c",
|
||||
"run-parallel@^1.1.9": "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee",
|
||||
"s.color@0.0.15": "https://registry.yarnpkg.com/s.color/-/s.color-0.0.15.tgz#6b32cd22d8dba95703a5122ddede2020a1560186",
|
||||
"sade@^1.7.3": "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701",
|
||||
"safe-buffer@~5.2.0": "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6",
|
||||
"sass-formatter@^0.7.5": "https://registry.yarnpkg.com/sass-formatter/-/sass-formatter-0.7.6.tgz#aa64b4120c375b71b8b7e18ff60b5f3e17081e3e",
|
||||
"sax@^1.2.4": "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9",
|
||||
"section-matter@^1.0.0": "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167",
|
||||
"semver@^6.3.1": "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4",
|
||||
"semver@^7.5.3": "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e",
|
||||
"server-destroy@^1.0.1": "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd",
|
||||
"shebang-command@^2.0.0": "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea",
|
||||
"shebang-regex@^3.0.0": "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172",
|
||||
"shiki@^0.14.1": "https://registry.yarnpkg.com/shiki/-/shiki-0.14.3.tgz#d1a93c463942bdafb9866d74d619a4347d0bbf64",
|
||||
"signal-exit@^3.0.2": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9",
|
||||
"signal-exit@^3.0.3": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9",
|
||||
"signal-exit@^3.0.7": "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9",
|
||||
"sisteransi@^1.0.5": "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed",
|
||||
"sitemap@^7.1.1": "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.1.tgz#eeed9ad6d95499161a3eadc60f8c6dce4bea2bef",
|
||||
"source-map-js@^1.0.2": "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c",
|
||||
"source-map@^0.7.0": "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656",
|
||||
"source-map@^0.7.4": "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656",
|
||||
"space-separated-tokens@^2.0.0": "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f",
|
||||
"sprintf-js@~1.0.2": "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c",
|
||||
"stdin-discarder@^0.1.0": "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.1.0.tgz#22b3e400393a8e28ebf53f9958f3880622efde21",
|
||||
"streamsearch@^1.1.0": "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764",
|
||||
"string-width@^4.1.0": "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010",
|
||||
"string-width@^5.0.1": "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794",
|
||||
"string-width@^5.1.2": "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794",
|
||||
"string_decoder@^1.1.1": "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e",
|
||||
"stringify-entities@^4.0.0": "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8",
|
||||
"strip-ansi@^6.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9",
|
||||
"strip-ansi@^7.0.1": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45",
|
||||
"strip-ansi@^7.1.0": "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45",
|
||||
"strip-bom-string@^1.0.0": "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92",
|
||||
"strip-bom@^3.0.0": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
|
||||
"strip-bom@^4.0.0": "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878",
|
||||
"strip-final-newline@^2.0.0": "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad",
|
||||
"strip-final-newline@^3.0.0": "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd",
|
||||
"strnum@^1.0.5": "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db",
|
||||
"style-to-object@^0.4.1": "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37",
|
||||
"suf-log@^2.5.3": "https://registry.yarnpkg.com/suf-log/-/suf-log-2.5.3.tgz#0919a7fceea532a99b578c97814c4e335b2d64d1",
|
||||
"supports-color@^5.3.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f",
|
||||
"supports-color@^7.1.0": "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da",
|
||||
"supports-preserve-symlinks-flag@^1.0.0": "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09",
|
||||
"synckit@^0.8.4": "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3",
|
||||
"titleize@^3.0.0": "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53",
|
||||
"to-fast-properties@^2.0.0": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e",
|
||||
"to-regex-range@^5.0.1": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4",
|
||||
"trim-lines@^3.0.0": "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338",
|
||||
"trough@^2.0.0": "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876",
|
||||
"tsconfig-resolver@^3.0.1": "https://registry.yarnpkg.com/tsconfig-resolver/-/tsconfig-resolver-3.0.1.tgz#c9e62e328ecfbeaae4a4f1131a92cdbed12350c4",
|
||||
"tslib@^2.5.0": "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3",
|
||||
"tslib@^2.6.0": "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3",
|
||||
"type-fest@^0.13.1": "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934",
|
||||
"type-fest@^2.5.0": "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b",
|
||||
"typescript@*": "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274",
|
||||
"undici@^5.22.0": "https://registry.yarnpkg.com/undici/-/undici-5.22.1.tgz#877d512effef2ac8be65e695f3586922e1a57d7b",
|
||||
"unherit@^3.0.0": "https://registry.yarnpkg.com/unherit/-/unherit-3.0.1.tgz#65b98bb7cb58cee755d7ec699a49e9e8ff172e23",
|
||||
"unified@^10.0.0": "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df",
|
||||
"unified@^10.1.2": "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df",
|
||||
"unist-util-generated@^2.0.0": "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae",
|
||||
"unist-util-is@^5.0.0": "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9",
|
||||
"unist-util-modify-children@^3.0.0": "https://registry.yarnpkg.com/unist-util-modify-children/-/unist-util-modify-children-3.1.1.tgz#c4018b86441aa3b54b3edff1151d0aa062384c82",
|
||||
"unist-util-position-from-estree@^1.0.0": "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz#8ac2480027229de76512079e377afbcabcfcce22",
|
||||
"unist-util-position-from-estree@^1.1.0": "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz#8ac2480027229de76512079e377afbcabcfcce22",
|
||||
"unist-util-position@^4.0.0": "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037",
|
||||
"unist-util-remove-position@^4.0.0": "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz#a89be6ea72e23b1a402350832b02a91f6a9afe51",
|
||||
"unist-util-stringify-position@^3.0.0": "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d",
|
||||
"unist-util-visit-children@^2.0.0": "https://registry.yarnpkg.com/unist-util-visit-children/-/unist-util-visit-children-2.0.2.tgz#0f00a5caff567074568da2d89c54b5ee4a8c5440",
|
||||
"unist-util-visit-parents@^5.0.0": "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb",
|
||||
"unist-util-visit-parents@^5.1.1": "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb",
|
||||
"unist-util-visit@^4.0.0": "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2",
|
||||
"unist-util-visit@^4.1.0": "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2",
|
||||
"unist-util-visit@^4.1.2": "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2",
|
||||
"untildify@^4.0.0": "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b",
|
||||
"update-browserslist-db@^1.0.11": "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940",
|
||||
"util-deprecate@^1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf",
|
||||
"uvu@^0.5.0": "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df",
|
||||
"vfile-location@^4.0.0": "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0",
|
||||
"vfile-message@^3.0.0": "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea",
|
||||
"vfile@^5.0.0": "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7",
|
||||
"vfile@^5.3.2": "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7",
|
||||
"vfile@^5.3.7": "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7",
|
||||
"vite@^4.3.9": "https://registry.yarnpkg.com/vite/-/vite-4.4.4.tgz#b76e6049c0e080cb54e735ad2d18287753752118",
|
||||
"vitefu@^0.2.4": "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.4.tgz#212dc1a9d0254afe65e579351bed4e25d81e0b35",
|
||||
"vscode-css-languageservice@^6.2.1": "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-6.2.6.tgz#bc26c2abaaa2eb117b143fdb9387ee1701d9661a",
|
||||
"vscode-html-languageservice@^5.0.0": "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-5.0.6.tgz#e7a7f78e9f98d0f5341c5518dd9305e3cc438bb6",
|
||||
"vscode-jsonrpc@8.1.0": "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz#cb9989c65e219e18533cc38e767611272d274c94",
|
||||
"vscode-languageserver-protocol@3.17.3": "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz#6d0d54da093f0c0ee3060b81612cce0f11060d57",
|
||||
"vscode-languageserver-protocol@^3.17.1": "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz#6d0d54da093f0c0ee3060b81612cce0f11060d57",
|
||||
"vscode-languageserver-textdocument@^1.0.1": "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0",
|
||||
"vscode-languageserver-textdocument@^1.0.4": "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0",
|
||||
"vscode-languageserver-textdocument@^1.0.8": "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0",
|
||||
"vscode-languageserver-types@3.17.3": "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64",
|
||||
"vscode-languageserver-types@^3.15.1": "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64",
|
||||
"vscode-languageserver-types@^3.17.1": "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64",
|
||||
"vscode-languageserver-types@^3.17.3": "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64",
|
||||
"vscode-languageserver@^8.0.1": "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz#5024253718915d84576ce6662dd46a791498d827",
|
||||
"vscode-oniguruma@^1.7.0": "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b",
|
||||
"vscode-textmate@^8.0.0": "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d",
|
||||
"vscode-uri@^2.1.2": "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c",
|
||||
"vscode-uri@^3.0.3": "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8",
|
||||
"vscode-uri@^3.0.7": "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8",
|
||||
"wcwidth@^1.0.1": "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8",
|
||||
"web-namespaces@^2.0.0": "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692",
|
||||
"which-pm-runs@^1.1.0": "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.1.0.tgz#35ccf7b1a0fce87bd8b92a478c9d045785d3bf35",
|
||||
"which-pm@2.0.0": "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae",
|
||||
"which-pm@^2.0.0": "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae",
|
||||
"which@^2.0.1": "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1",
|
||||
"widest-line@^4.0.1": "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2",
|
||||
"wrap-ansi@^8.0.1": "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214",
|
||||
"yallist@^3.0.2": "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd",
|
||||
"yallist@^4.0.0": "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72",
|
||||
"yargs-parser@^21.1.1": "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35",
|
||||
"yocto-queue@^0.1.0": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b",
|
||||
"yocto-queue@^1.0.0": "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251",
|
||||
"zod@^3.17.3": "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db",
|
||||
"zod@^3.20.6": "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db",
|
||||
"zwitch@^2.0.0": "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7",
|
||||
"zwitch@^2.0.4": "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7"
|
||||
},
|
||||
"files": [],
|
||||
"artifacts": {}
|
||||
}
|
202
node_modules/@ampproject/remapping/LICENSE
generated
vendored
Normal file
202
node_modules/@ampproject/remapping/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
218
node_modules/@ampproject/remapping/README.md
generated
vendored
Normal file
218
node_modules/@ampproject/remapping/README.md
generated
vendored
Normal file
|
@ -0,0 +1,218 @@
|
|||
# @ampproject/remapping
|
||||
|
||||
> Remap sequential sourcemaps through transformations to point at the original source code
|
||||
|
||||
Remapping allows you to take the sourcemaps generated through transforming your code and "remap"
|
||||
them to the original source locations. Think "my minified code, transformed with babel and bundled
|
||||
with webpack", all pointing to the correct location in your original source code.
|
||||
|
||||
With remapping, none of your source code transformations need to be aware of the input's sourcemap,
|
||||
they only need to generate an output sourcemap. This greatly simplifies building custom
|
||||
transformations (think a find-and-replace).
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install @ampproject/remapping
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```typescript
|
||||
function remapping(
|
||||
map: SourceMap | SourceMap[],
|
||||
loader: (file: string, ctx: LoaderContext) => (SourceMap | null | undefined),
|
||||
options?: { excludeContent: boolean, decodedMappings: boolean }
|
||||
): SourceMap;
|
||||
|
||||
// LoaderContext gives the loader the importing sourcemap, tree depth, the ability to override the
|
||||
// "source" location (where child sources are resolved relative to, or the location of original
|
||||
// source), and the ability to override the "content" of an original source for inclusion in the
|
||||
// output sourcemap.
|
||||
type LoaderContext = {
|
||||
readonly importer: string;
|
||||
readonly depth: number;
|
||||
source: string;
|
||||
content: string | null | undefined;
|
||||
}
|
||||
```
|
||||
|
||||
`remapping` takes the final output sourcemap, and a `loader` function. For every source file pointer
|
||||
in the sourcemap, the `loader` will be called with the resolved path. If the path itself represents
|
||||
a transformed file (it has a sourcmap associated with it), then the `loader` should return that
|
||||
sourcemap. If not, the path will be treated as an original, untransformed source code.
|
||||
|
||||
```js
|
||||
// Babel transformed "helloworld.js" into "transformed.js"
|
||||
const transformedMap = JSON.stringify({
|
||||
file: 'transformed.js',
|
||||
// 1st column of 2nd line of output file translates into the 1st source
|
||||
// file, line 3, column 2
|
||||
mappings: ';CAEE',
|
||||
sources: ['helloworld.js'],
|
||||
version: 3,
|
||||
});
|
||||
|
||||
// Uglify minified "transformed.js" into "transformed.min.js"
|
||||
const minifiedTransformedMap = JSON.stringify({
|
||||
file: 'transformed.min.js',
|
||||
// 0th column of 1st line of output file translates into the 1st source
|
||||
// file, line 2, column 1.
|
||||
mappings: 'AACC',
|
||||
names: [],
|
||||
sources: ['transformed.js'],
|
||||
version: 3,
|
||||
});
|
||||
|
||||
const remapped = remapping(
|
||||
minifiedTransformedMap,
|
||||
(file, ctx) => {
|
||||
|
||||
// The "transformed.js" file is an transformed file.
|
||||
if (file === 'transformed.js') {
|
||||
// The root importer is empty.
|
||||
console.assert(ctx.importer === '');
|
||||
// The depth in the sourcemap tree we're currently loading.
|
||||
// The root `minifiedTransformedMap` is depth 0, and its source children are depth 1, etc.
|
||||
console.assert(ctx.depth === 1);
|
||||
|
||||
return transformedMap;
|
||||
}
|
||||
|
||||
// Loader will be called to load transformedMap's source file pointers as well.
|
||||
console.assert(file === 'helloworld.js');
|
||||
// `transformed.js`'s sourcemap points into `helloworld.js`.
|
||||
console.assert(ctx.importer === 'transformed.js');
|
||||
// This is a source child of `transformed`, which is a source child of `minifiedTransformedMap`.
|
||||
console.assert(ctx.depth === 2);
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
console.log(remapped);
|
||||
// {
|
||||
// file: 'transpiled.min.js',
|
||||
// mappings: 'AAEE',
|
||||
// sources: ['helloworld.js'],
|
||||
// version: 3,
|
||||
// };
|
||||
```
|
||||
|
||||
In this example, `loader` will be called twice:
|
||||
|
||||
1. `"transformed.js"`, the first source file pointer in the `minifiedTransformedMap`. We return the
|
||||
associated sourcemap for it (its a transformed file, after all) so that sourcemap locations can
|
||||
be traced through it into the source files it represents.
|
||||
2. `"helloworld.js"`, our original, unmodified source code. This file does not have a sourcemap, so
|
||||
we return `null`.
|
||||
|
||||
The `remapped` sourcemap now points from `transformed.min.js` into locations in `helloworld.js`. If
|
||||
you were to read the `mappings`, it says "0th column of the first line output line points to the 1st
|
||||
column of the 2nd line of the file `helloworld.js`".
|
||||
|
||||
### Multiple transformations of a file
|
||||
|
||||
As a convenience, if you have multiple single-source transformations of a file, you may pass an
|
||||
array of sourcemap files in the order of most-recent transformation sourcemap first. Note that this
|
||||
changes the `importer` and `depth` of each call to our loader. So our above example could have been
|
||||
written as:
|
||||
|
||||
```js
|
||||
const remapped = remapping(
|
||||
[minifiedTransformedMap, transformedMap],
|
||||
() => null
|
||||
);
|
||||
|
||||
console.log(remapped);
|
||||
// {
|
||||
// file: 'transpiled.min.js',
|
||||
// mappings: 'AAEE',
|
||||
// sources: ['helloworld.js'],
|
||||
// version: 3,
|
||||
// };
|
||||
```
|
||||
|
||||
### Advanced control of the loading graph
|
||||
|
||||
#### `source`
|
||||
|
||||
The `source` property can overridden to any value to change the location of the current load. Eg,
|
||||
for an original source file, it allows us to change the location to the original source regardless
|
||||
of what the sourcemap source entry says. And for transformed files, it allows us to change the
|
||||
relative resolving location for child sources of the loaded sourcemap.
|
||||
|
||||
```js
|
||||
const remapped = remapping(
|
||||
minifiedTransformedMap,
|
||||
(file, ctx) => {
|
||||
|
||||
if (file === 'transformed.js') {
|
||||
// We pretend the transformed.js file actually exists in the 'src/' directory. When the nested
|
||||
// source files are loaded, they will now be relative to `src/`.
|
||||
ctx.source = 'src/transformed.js';
|
||||
return transformedMap;
|
||||
}
|
||||
|
||||
console.assert(file === 'src/helloworld.js');
|
||||
// We could futher change the source of this original file, eg, to be inside a nested directory
|
||||
// itself. This will be reflected in the remapped sourcemap.
|
||||
ctx.source = 'src/nested/transformed.js';
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
console.log(remapped);
|
||||
// {
|
||||
// …,
|
||||
// sources: ['src/nested/helloworld.js'],
|
||||
// };
|
||||
```
|
||||
|
||||
|
||||
#### `content`
|
||||
|
||||
The `content` property can be overridden when we encounter an original source file. Eg, this allows
|
||||
you to manually provide the source content of the original file regardless of whether the
|
||||
`sourcesContent` field is present in the parent sourcemap. It can also be set to `null` to remove
|
||||
the source content.
|
||||
|
||||
```js
|
||||
const remapped = remapping(
|
||||
minifiedTransformedMap,
|
||||
(file, ctx) => {
|
||||
|
||||
if (file === 'transformed.js') {
|
||||
// transformedMap does not include a `sourcesContent` field, so usually the remapped sourcemap
|
||||
// would not include any `sourcesContent` values.
|
||||
return transformedMap;
|
||||
}
|
||||
|
||||
console.assert(file === 'helloworld.js');
|
||||
// We can read the file to provide the source content.
|
||||
ctx.content = fs.readFileSync(file, 'utf8');
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
console.log(remapped);
|
||||
// {
|
||||
// …,
|
||||
// sourcesContent: [
|
||||
// 'console.log("Hello world!")',
|
||||
// ],
|
||||
// };
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
#### excludeContent
|
||||
|
||||
By default, `excludeContent` is `false`. Passing `{ excludeContent: true }` will exclude the
|
||||
`sourcesContent` field from the returned sourcemap. This is mainly useful when you want to reduce
|
||||
the size out the sourcemap.
|
||||
|
||||
#### decodedMappings
|
||||
|
||||
By default, `decodedMappings` is `false`. Passing `{ decodedMappings: true }` will leave the
|
||||
`mappings` field in a [decoded state](https://github.com/rich-harris/sourcemap-codec) instead of
|
||||
encoding into a VLQ string.
|
191
node_modules/@ampproject/remapping/dist/remapping.mjs
generated
vendored
Normal file
191
node_modules/@ampproject/remapping/dist/remapping.mjs
generated
vendored
Normal file
|
@ -0,0 +1,191 @@
|
|||
import { decodedMappings, traceSegment, TraceMap } from '@jridgewell/trace-mapping';
|
||||
import { GenMapping, maybeAddSegment, setSourceContent, toDecodedMap, toEncodedMap } from '@jridgewell/gen-mapping';
|
||||
|
||||
const SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null);
|
||||
const EMPTY_SOURCES = [];
|
||||
function SegmentObject(source, line, column, name, content) {
|
||||
return { source, line, column, name, content };
|
||||
}
|
||||
function Source(map, sources, source, content) {
|
||||
return {
|
||||
map,
|
||||
sources,
|
||||
source,
|
||||
content,
|
||||
};
|
||||
}
|
||||
/**
|
||||
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
|
||||
* (which may themselves be SourceMapTrees).
|
||||
*/
|
||||
function MapSource(map, sources) {
|
||||
return Source(map, sources, '', null);
|
||||
}
|
||||
/**
|
||||
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
|
||||
* segment tracing ends at the `OriginalSource`.
|
||||
*/
|
||||
function OriginalSource(source, content) {
|
||||
return Source(null, EMPTY_SOURCES, source, content);
|
||||
}
|
||||
/**
|
||||
* traceMappings is only called on the root level SourceMapTree, and begins the process of
|
||||
* resolving each mapping in terms of the original source files.
|
||||
*/
|
||||
function traceMappings(tree) {
|
||||
// TODO: Eventually support sourceRoot, which has to be removed because the sources are already
|
||||
// fully resolved. We'll need to make sources relative to the sourceRoot before adding them.
|
||||
const gen = new GenMapping({ file: tree.map.file });
|
||||
const { sources: rootSources, map } = tree;
|
||||
const rootNames = map.names;
|
||||
const rootMappings = decodedMappings(map);
|
||||
for (let i = 0; i < rootMappings.length; i++) {
|
||||
const segments = rootMappings[i];
|
||||
for (let j = 0; j < segments.length; j++) {
|
||||
const segment = segments[j];
|
||||
const genCol = segment[0];
|
||||
let traced = SOURCELESS_MAPPING;
|
||||
// 1-length segments only move the current generated column, there's no source information
|
||||
// to gather from it.
|
||||
if (segment.length !== 1) {
|
||||
const source = rootSources[segment[1]];
|
||||
traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');
|
||||
// If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a
|
||||
// respective segment into an original source.
|
||||
if (traced == null)
|
||||
continue;
|
||||
}
|
||||
const { column, line, name, content, source } = traced;
|
||||
maybeAddSegment(gen, i, genCol, source, line, column, name);
|
||||
if (source && content != null)
|
||||
setSourceContent(gen, source, content);
|
||||
}
|
||||
}
|
||||
return gen;
|
||||
}
|
||||
/**
|
||||
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
|
||||
* child SourceMapTrees, until we find the original source map.
|
||||
*/
|
||||
function originalPositionFor(source, line, column, name) {
|
||||
if (!source.map) {
|
||||
return SegmentObject(source.source, line, column, name, source.content);
|
||||
}
|
||||
const segment = traceSegment(source.map, line, column);
|
||||
// If we couldn't find a segment, then this doesn't exist in the sourcemap.
|
||||
if (segment == null)
|
||||
return null;
|
||||
// 1-length segments only move the current generated column, there's no source information
|
||||
// to gather from it.
|
||||
if (segment.length === 1)
|
||||
return SOURCELESS_MAPPING;
|
||||
return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name);
|
||||
}
|
||||
|
||||
function asArray(value) {
|
||||
if (Array.isArray(value))
|
||||
return value;
|
||||
return [value];
|
||||
}
|
||||
/**
|
||||
* Recursively builds a tree structure out of sourcemap files, with each node
|
||||
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
|
||||
* `OriginalSource`s and `SourceMapTree`s.
|
||||
*
|
||||
* Every sourcemap is composed of a collection of source files and mappings
|
||||
* into locations of those source files. When we generate a `SourceMapTree` for
|
||||
* the sourcemap, we attempt to load each source file's own sourcemap. If it
|
||||
* does not have an associated sourcemap, it is considered an original,
|
||||
* unmodified source file.
|
||||
*/
|
||||
function buildSourceMapTree(input, loader) {
|
||||
const maps = asArray(input).map((m) => new TraceMap(m, ''));
|
||||
const map = maps.pop();
|
||||
for (let i = 0; i < maps.length; i++) {
|
||||
if (maps[i].sources.length > 1) {
|
||||
throw new Error(`Transformation map ${i} must have exactly one source file.\n` +
|
||||
'Did you specify these with the most recent transformation maps first?');
|
||||
}
|
||||
}
|
||||
let tree = build(map, loader, '', 0);
|
||||
for (let i = maps.length - 1; i >= 0; i--) {
|
||||
tree = MapSource(maps[i], [tree]);
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
function build(map, loader, importer, importerDepth) {
|
||||
const { resolvedSources, sourcesContent } = map;
|
||||
const depth = importerDepth + 1;
|
||||
const children = resolvedSources.map((sourceFile, i) => {
|
||||
// The loading context gives the loader more information about why this file is being loaded
|
||||
// (eg, from which importer). It also allows the loader to override the location of the loaded
|
||||
// sourcemap/original source, or to override the content in the sourcesContent field if it's
|
||||
// an unmodified source file.
|
||||
const ctx = {
|
||||
importer,
|
||||
depth,
|
||||
source: sourceFile || '',
|
||||
content: undefined,
|
||||
};
|
||||
// Use the provided loader callback to retrieve the file's sourcemap.
|
||||
// TODO: We should eventually support async loading of sourcemap files.
|
||||
const sourceMap = loader(ctx.source, ctx);
|
||||
const { source, content } = ctx;
|
||||
// If there is a sourcemap, then we need to recurse into it to load its source files.
|
||||
if (sourceMap)
|
||||
return build(new TraceMap(sourceMap, source), loader, source, depth);
|
||||
// Else, it's an an unmodified source file.
|
||||
// The contents of this unmodified source file can be overridden via the loader context,
|
||||
// allowing it to be explicitly null or a string. If it remains undefined, we fall back to
|
||||
// the importing sourcemap's `sourcesContent` field.
|
||||
const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;
|
||||
return OriginalSource(source, sourceContent);
|
||||
});
|
||||
return MapSource(map, children);
|
||||
}
|
||||
|
||||
/**
|
||||
* A SourceMap v3 compatible sourcemap, which only includes fields that were
|
||||
* provided to it.
|
||||
*/
|
||||
class SourceMap {
|
||||
constructor(map, options) {
|
||||
const out = options.decodedMappings ? toDecodedMap(map) : toEncodedMap(map);
|
||||
this.version = out.version; // SourceMap spec says this should be first.
|
||||
this.file = out.file;
|
||||
this.mappings = out.mappings;
|
||||
this.names = out.names;
|
||||
this.sourceRoot = out.sourceRoot;
|
||||
this.sources = out.sources;
|
||||
if (!options.excludeContent) {
|
||||
this.sourcesContent = out.sourcesContent;
|
||||
}
|
||||
}
|
||||
toString() {
|
||||
return JSON.stringify(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traces through all the mappings in the root sourcemap, through the sources
|
||||
* (and their sourcemaps), all the way back to the original source location.
|
||||
*
|
||||
* `loader` will be called every time we encounter a source file. If it returns
|
||||
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
|
||||
* it returns a falsey value, that source file is treated as an original,
|
||||
* unmodified source file.
|
||||
*
|
||||
* Pass `excludeContent` to exclude any self-containing source file content
|
||||
* from the output sourcemap.
|
||||
*
|
||||
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
|
||||
* VLQ encoded) mappings.
|
||||
*/
|
||||
function remapping(input, loader, options) {
|
||||
const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };
|
||||
const tree = buildSourceMapTree(input, loader);
|
||||
return new SourceMap(traceMappings(tree), opts);
|
||||
}
|
||||
|
||||
export { remapping as default };
|
||||
//# sourceMappingURL=remapping.mjs.map
|
1
node_modules/@ampproject/remapping/dist/remapping.mjs.map
generated
vendored
Normal file
1
node_modules/@ampproject/remapping/dist/remapping.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
196
node_modules/@ampproject/remapping/dist/remapping.umd.js
generated
vendored
Normal file
196
node_modules/@ampproject/remapping/dist/remapping.umd.js
generated
vendored
Normal file
|
@ -0,0 +1,196 @@
|
|||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@jridgewell/trace-mapping'), require('@jridgewell/gen-mapping')) :
|
||||
typeof define === 'function' && define.amd ? define(['@jridgewell/trace-mapping', '@jridgewell/gen-mapping'], factory) :
|
||||
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.remapping = factory(global.traceMapping, global.genMapping));
|
||||
})(this, (function (traceMapping, genMapping) { 'use strict';
|
||||
|
||||
const SOURCELESS_MAPPING = /* #__PURE__ */ SegmentObject('', -1, -1, '', null);
|
||||
const EMPTY_SOURCES = [];
|
||||
function SegmentObject(source, line, column, name, content) {
|
||||
return { source, line, column, name, content };
|
||||
}
|
||||
function Source(map, sources, source, content) {
|
||||
return {
|
||||
map,
|
||||
sources,
|
||||
source,
|
||||
content,
|
||||
};
|
||||
}
|
||||
/**
|
||||
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
|
||||
* (which may themselves be SourceMapTrees).
|
||||
*/
|
||||
function MapSource(map, sources) {
|
||||
return Source(map, sources, '', null);
|
||||
}
|
||||
/**
|
||||
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
|
||||
* segment tracing ends at the `OriginalSource`.
|
||||
*/
|
||||
function OriginalSource(source, content) {
|
||||
return Source(null, EMPTY_SOURCES, source, content);
|
||||
}
|
||||
/**
|
||||
* traceMappings is only called on the root level SourceMapTree, and begins the process of
|
||||
* resolving each mapping in terms of the original source files.
|
||||
*/
|
||||
function traceMappings(tree) {
|
||||
// TODO: Eventually support sourceRoot, which has to be removed because the sources are already
|
||||
// fully resolved. We'll need to make sources relative to the sourceRoot before adding them.
|
||||
const gen = new genMapping.GenMapping({ file: tree.map.file });
|
||||
const { sources: rootSources, map } = tree;
|
||||
const rootNames = map.names;
|
||||
const rootMappings = traceMapping.decodedMappings(map);
|
||||
for (let i = 0; i < rootMappings.length; i++) {
|
||||
const segments = rootMappings[i];
|
||||
for (let j = 0; j < segments.length; j++) {
|
||||
const segment = segments[j];
|
||||
const genCol = segment[0];
|
||||
let traced = SOURCELESS_MAPPING;
|
||||
// 1-length segments only move the current generated column, there's no source information
|
||||
// to gather from it.
|
||||
if (segment.length !== 1) {
|
||||
const source = rootSources[segment[1]];
|
||||
traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');
|
||||
// If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a
|
||||
// respective segment into an original source.
|
||||
if (traced == null)
|
||||
continue;
|
||||
}
|
||||
const { column, line, name, content, source } = traced;
|
||||
genMapping.maybeAddSegment(gen, i, genCol, source, line, column, name);
|
||||
if (source && content != null)
|
||||
genMapping.setSourceContent(gen, source, content);
|
||||
}
|
||||
}
|
||||
return gen;
|
||||
}
|
||||
/**
|
||||
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
|
||||
* child SourceMapTrees, until we find the original source map.
|
||||
*/
|
||||
function originalPositionFor(source, line, column, name) {
|
||||
if (!source.map) {
|
||||
return SegmentObject(source.source, line, column, name, source.content);
|
||||
}
|
||||
const segment = traceMapping.traceSegment(source.map, line, column);
|
||||
// If we couldn't find a segment, then this doesn't exist in the sourcemap.
|
||||
if (segment == null)
|
||||
return null;
|
||||
// 1-length segments only move the current generated column, there's no source information
|
||||
// to gather from it.
|
||||
if (segment.length === 1)
|
||||
return SOURCELESS_MAPPING;
|
||||
return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name);
|
||||
}
|
||||
|
||||
function asArray(value) {
|
||||
if (Array.isArray(value))
|
||||
return value;
|
||||
return [value];
|
||||
}
|
||||
/**
|
||||
* Recursively builds a tree structure out of sourcemap files, with each node
|
||||
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
|
||||
* `OriginalSource`s and `SourceMapTree`s.
|
||||
*
|
||||
* Every sourcemap is composed of a collection of source files and mappings
|
||||
* into locations of those source files. When we generate a `SourceMapTree` for
|
||||
* the sourcemap, we attempt to load each source file's own sourcemap. If it
|
||||
* does not have an associated sourcemap, it is considered an original,
|
||||
* unmodified source file.
|
||||
*/
|
||||
function buildSourceMapTree(input, loader) {
|
||||
const maps = asArray(input).map((m) => new traceMapping.TraceMap(m, ''));
|
||||
const map = maps.pop();
|
||||
for (let i = 0; i < maps.length; i++) {
|
||||
if (maps[i].sources.length > 1) {
|
||||
throw new Error(`Transformation map ${i} must have exactly one source file.\n` +
|
||||
'Did you specify these with the most recent transformation maps first?');
|
||||
}
|
||||
}
|
||||
let tree = build(map, loader, '', 0);
|
||||
for (let i = maps.length - 1; i >= 0; i--) {
|
||||
tree = MapSource(maps[i], [tree]);
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
function build(map, loader, importer, importerDepth) {
|
||||
const { resolvedSources, sourcesContent } = map;
|
||||
const depth = importerDepth + 1;
|
||||
const children = resolvedSources.map((sourceFile, i) => {
|
||||
// The loading context gives the loader more information about why this file is being loaded
|
||||
// (eg, from which importer). It also allows the loader to override the location of the loaded
|
||||
// sourcemap/original source, or to override the content in the sourcesContent field if it's
|
||||
// an unmodified source file.
|
||||
const ctx = {
|
||||
importer,
|
||||
depth,
|
||||
source: sourceFile || '',
|
||||
content: undefined,
|
||||
};
|
||||
// Use the provided loader callback to retrieve the file's sourcemap.
|
||||
// TODO: We should eventually support async loading of sourcemap files.
|
||||
const sourceMap = loader(ctx.source, ctx);
|
||||
const { source, content } = ctx;
|
||||
// If there is a sourcemap, then we need to recurse into it to load its source files.
|
||||
if (sourceMap)
|
||||
return build(new traceMapping.TraceMap(sourceMap, source), loader, source, depth);
|
||||
// Else, it's an an unmodified source file.
|
||||
// The contents of this unmodified source file can be overridden via the loader context,
|
||||
// allowing it to be explicitly null or a string. If it remains undefined, we fall back to
|
||||
// the importing sourcemap's `sourcesContent` field.
|
||||
const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;
|
||||
return OriginalSource(source, sourceContent);
|
||||
});
|
||||
return MapSource(map, children);
|
||||
}
|
||||
|
||||
/**
|
||||
* A SourceMap v3 compatible sourcemap, which only includes fields that were
|
||||
* provided to it.
|
||||
*/
|
||||
class SourceMap {
|
||||
constructor(map, options) {
|
||||
const out = options.decodedMappings ? genMapping.toDecodedMap(map) : genMapping.toEncodedMap(map);
|
||||
this.version = out.version; // SourceMap spec says this should be first.
|
||||
this.file = out.file;
|
||||
this.mappings = out.mappings;
|
||||
this.names = out.names;
|
||||
this.sourceRoot = out.sourceRoot;
|
||||
this.sources = out.sources;
|
||||
if (!options.excludeContent) {
|
||||
this.sourcesContent = out.sourcesContent;
|
||||
}
|
||||
}
|
||||
toString() {
|
||||
return JSON.stringify(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traces through all the mappings in the root sourcemap, through the sources
|
||||
* (and their sourcemaps), all the way back to the original source location.
|
||||
*
|
||||
* `loader` will be called every time we encounter a source file. If it returns
|
||||
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
|
||||
* it returns a falsey value, that source file is treated as an original,
|
||||
* unmodified source file.
|
||||
*
|
||||
* Pass `excludeContent` to exclude any self-containing source file content
|
||||
* from the output sourcemap.
|
||||
*
|
||||
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
|
||||
* VLQ encoded) mappings.
|
||||
*/
|
||||
function remapping(input, loader, options) {
|
||||
const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };
|
||||
const tree = buildSourceMapTree(input, loader);
|
||||
return new SourceMap(traceMappings(tree), opts);
|
||||
}
|
||||
|
||||
return remapping;
|
||||
|
||||
}));
|
||||
//# sourceMappingURL=remapping.umd.js.map
|
1
node_modules/@ampproject/remapping/dist/remapping.umd.js.map
generated
vendored
Normal file
1
node_modules/@ampproject/remapping/dist/remapping.umd.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
14
node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts
generated
vendored
Normal file
14
node_modules/@ampproject/remapping/dist/types/build-source-map-tree.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
import type { MapSource as MapSourceType } from './source-map-tree';
|
||||
import type { SourceMapInput, SourceMapLoader } from './types';
|
||||
/**
|
||||
* Recursively builds a tree structure out of sourcemap files, with each node
|
||||
* being either an `OriginalSource` "leaf" or a `SourceMapTree` composed of
|
||||
* `OriginalSource`s and `SourceMapTree`s.
|
||||
*
|
||||
* Every sourcemap is composed of a collection of source files and mappings
|
||||
* into locations of those source files. When we generate a `SourceMapTree` for
|
||||
* the sourcemap, we attempt to load each source file's own sourcemap. If it
|
||||
* does not have an associated sourcemap, it is considered an original,
|
||||
* unmodified source file.
|
||||
*/
|
||||
export default function buildSourceMapTree(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader): MapSourceType;
|
19
node_modules/@ampproject/remapping/dist/types/remapping.d.ts
generated
vendored
Normal file
19
node_modules/@ampproject/remapping/dist/types/remapping.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
import SourceMap from './source-map';
|
||||
import type { SourceMapInput, SourceMapLoader, Options } from './types';
|
||||
export type { SourceMapSegment, EncodedSourceMap, EncodedSourceMap as RawSourceMap, DecodedSourceMap, SourceMapInput, SourceMapLoader, LoaderContext, Options, } from './types';
|
||||
/**
|
||||
* Traces through all the mappings in the root sourcemap, through the sources
|
||||
* (and their sourcemaps), all the way back to the original source location.
|
||||
*
|
||||
* `loader` will be called every time we encounter a source file. If it returns
|
||||
* a sourcemap, we will recurse into that sourcemap to continue the trace. If
|
||||
* it returns a falsey value, that source file is treated as an original,
|
||||
* unmodified source file.
|
||||
*
|
||||
* Pass `excludeContent` to exclude any self-containing source file content
|
||||
* from the output sourcemap.
|
||||
*
|
||||
* Pass `decodedMappings` to receive a SourceMap with decoded (instead of
|
||||
* VLQ encoded) mappings.
|
||||
*/
|
||||
export default function remapping(input: SourceMapInput | SourceMapInput[], loader: SourceMapLoader, options?: boolean | Options): SourceMap;
|
42
node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts
generated
vendored
Normal file
42
node_modules/@ampproject/remapping/dist/types/source-map-tree.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
import { GenMapping } from '@jridgewell/gen-mapping';
|
||||
import type { TraceMap } from '@jridgewell/trace-mapping';
|
||||
export declare type SourceMapSegmentObject = {
|
||||
column: number;
|
||||
line: number;
|
||||
name: string;
|
||||
source: string;
|
||||
content: string | null;
|
||||
};
|
||||
export declare type OriginalSource = {
|
||||
map: null;
|
||||
sources: Sources[];
|
||||
source: string;
|
||||
content: string | null;
|
||||
};
|
||||
export declare type MapSource = {
|
||||
map: TraceMap;
|
||||
sources: Sources[];
|
||||
source: string;
|
||||
content: null;
|
||||
};
|
||||
export declare type Sources = OriginalSource | MapSource;
|
||||
/**
|
||||
* MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes
|
||||
* (which may themselves be SourceMapTrees).
|
||||
*/
|
||||
export declare function MapSource(map: TraceMap, sources: Sources[]): MapSource;
|
||||
/**
|
||||
* A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive
|
||||
* segment tracing ends at the `OriginalSource`.
|
||||
*/
|
||||
export declare function OriginalSource(source: string, content: string | null): OriginalSource;
|
||||
/**
|
||||
* traceMappings is only called on the root level SourceMapTree, and begins the process of
|
||||
* resolving each mapping in terms of the original source files.
|
||||
*/
|
||||
export declare function traceMappings(tree: MapSource): GenMapping;
|
||||
/**
|
||||
* originalPositionFor is only called on children SourceMapTrees. It recurses down into its own
|
||||
* child SourceMapTrees, until we find the original source map.
|
||||
*/
|
||||
export declare function originalPositionFor(source: Sources, line: number, column: number, name: string): SourceMapSegmentObject | null;
|
17
node_modules/@ampproject/remapping/dist/types/source-map.d.ts
generated
vendored
Normal file
17
node_modules/@ampproject/remapping/dist/types/source-map.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
import type { GenMapping } from '@jridgewell/gen-mapping';
|
||||
import type { DecodedSourceMap, EncodedSourceMap, Options } from './types';
|
||||
/**
|
||||
* A SourceMap v3 compatible sourcemap, which only includes fields that were
|
||||
* provided to it.
|
||||
*/
|
||||
export default class SourceMap {
|
||||
file?: string | null;
|
||||
mappings: EncodedSourceMap['mappings'] | DecodedSourceMap['mappings'];
|
||||
sourceRoot?: string;
|
||||
names: string[];
|
||||
sources: (string | null)[];
|
||||
sourcesContent?: (string | null)[];
|
||||
version: 3;
|
||||
constructor(map: GenMapping, options: Options);
|
||||
toString(): string;
|
||||
}
|
14
node_modules/@ampproject/remapping/dist/types/types.d.ts
generated
vendored
Normal file
14
node_modules/@ampproject/remapping/dist/types/types.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
import type { SourceMapInput } from '@jridgewell/trace-mapping';
|
||||
export type { SourceMapSegment, DecodedSourceMap, EncodedSourceMap, } from '@jridgewell/trace-mapping';
|
||||
export type { SourceMapInput };
|
||||
export declare type LoaderContext = {
|
||||
readonly importer: string;
|
||||
readonly depth: number;
|
||||
source: string;
|
||||
content: string | null | undefined;
|
||||
};
|
||||
export declare type SourceMapLoader = (file: string, ctx: LoaderContext) => SourceMapInput | null | undefined | void;
|
||||
export declare type Options = {
|
||||
excludeContent?: boolean;
|
||||
decodedMappings?: boolean;
|
||||
};
|
75
node_modules/@ampproject/remapping/package.json
generated
vendored
Normal file
75
node_modules/@ampproject/remapping/package.json
generated
vendored
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"name": "@ampproject/remapping",
|
||||
"version": "2.2.1",
|
||||
"description": "Remap sequential sourcemaps through transformations to point at the original source code",
|
||||
"keywords": [
|
||||
"source",
|
||||
"map",
|
||||
"remap"
|
||||
],
|
||||
"main": "dist/remapping.umd.js",
|
||||
"module": "dist/remapping.mjs",
|
||||
"types": "dist/types/remapping.d.ts",
|
||||
"exports": {
|
||||
".": [
|
||||
{
|
||||
"types": "./dist/types/remapping.d.ts",
|
||||
"browser": "./dist/remapping.umd.js",
|
||||
"require": "./dist/remapping.umd.js",
|
||||
"import": "./dist/remapping.mjs"
|
||||
},
|
||||
"./dist/remapping.umd.js"
|
||||
],
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"author": "Justin Ridgewell <jridgewell@google.com>",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/ampproject/remapping.git"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "run-s -n build:*",
|
||||
"build:rollup": "rollup -c rollup.config.js",
|
||||
"build:ts": "tsc --project tsconfig.build.json",
|
||||
"lint": "run-s -n lint:*",
|
||||
"lint:prettier": "npm run test:lint:prettier -- --write",
|
||||
"lint:ts": "npm run test:lint:ts -- --fix",
|
||||
"prebuild": "rm -rf dist",
|
||||
"prepublishOnly": "npm run preversion",
|
||||
"preversion": "run-s test build",
|
||||
"test": "run-s -n test:lint test:only",
|
||||
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
|
||||
"test:lint": "run-s -n test:lint:*",
|
||||
"test:lint:prettier": "prettier --check '{src,test}/**/*.ts'",
|
||||
"test:lint:ts": "eslint '{src,test}/**/*.ts'",
|
||||
"test:only": "jest --coverage",
|
||||
"test:watch": "jest --coverage --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rollup/plugin-typescript": "8.3.2",
|
||||
"@types/jest": "27.4.1",
|
||||
"@typescript-eslint/eslint-plugin": "5.20.0",
|
||||
"@typescript-eslint/parser": "5.20.0",
|
||||
"eslint": "8.14.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"jest": "27.5.1",
|
||||
"jest-config": "27.5.1",
|
||||
"npm-run-all": "4.1.5",
|
||||
"prettier": "2.6.2",
|
||||
"rollup": "2.70.2",
|
||||
"ts-jest": "27.1.4",
|
||||
"tslib": "2.4.0",
|
||||
"typescript": "4.6.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@jridgewell/gen-mapping": "^0.3.0",
|
||||
"@jridgewell/trace-mapping": "^0.3.9"
|
||||
}
|
||||
}
|
53
node_modules/@astrojs/compiler/LICENSE
generated
vendored
Normal file
53
node_modules/@astrojs/compiler/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2021 [Astro contributors](https://github.com/withastro/compiler/graphs/contributors)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
"""
|
||||
This license applies to parts of the `internal/` subdirectory originating from
|
||||
the https://cs.opensource.google/go/x/net/+/master:html/ repository:
|
||||
|
||||
Copyright (c) 2009 The Go Authors. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
66
node_modules/@astrojs/compiler/README.md
generated
vendored
Normal file
66
node_modules/@astrojs/compiler/README.md
generated
vendored
Normal file
|
@ -0,0 +1,66 @@
|
|||
# Astro Compiler
|
||||
|
||||
Astro’s [Go](https://golang.org/) + WASM compiler.
|
||||
|
||||
## Install
|
||||
|
||||
```
|
||||
npm install @astrojs/compiler
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
#### Transform `.astro` to valid TypeScript
|
||||
|
||||
The Astro compiler can convert `.astro` syntax to a TypeScript Module whose default export generates HTML.
|
||||
|
||||
**Some notes**...
|
||||
|
||||
- TypeScript is valid `.astro` syntax! The output code may need an additional post-processing step to generate valid JavaScript.
|
||||
- `.astro` files rely on a server implementation exposed as `astro/runtime/server/index.js` in the Node ecosystem. Other runtimes currently need to bring their own rendering implementation and reference it via `internalURL`. This is a pain point we're looking into fixing.
|
||||
|
||||
```js
|
||||
import { transform } from '@astrojs/compiler';
|
||||
|
||||
const result = await transform(source, {
|
||||
filename: '/Users/astro/Code/project/src/pages/index.astro',
|
||||
sourcemap: 'both',
|
||||
internalURL: 'astro/runtime/server/index.js',
|
||||
});
|
||||
```
|
||||
|
||||
#### Parse `.astro` and return an AST
|
||||
|
||||
The Astro compiler can emit an AST using the `parse` method.
|
||||
|
||||
**Some notes**...
|
||||
|
||||
- Position data is currently incomplete and in some cases incorrect. We're working on it!
|
||||
- A `TextNode` can represent both HTML `text` and JavaScript/TypeScript source code.
|
||||
- The `@astrojs/compiler/utils` entrypoint exposes a `walk` function that can be used to traverse the AST. It also exposes the `is` helper which can be used as guards to derive the proper types for each `node`.
|
||||
|
||||
```js
|
||||
import { parse } from '@astrojs/compiler';
|
||||
import { walk, is } from '@astrojs/compiler/utils';
|
||||
|
||||
const result = await parse(source, {
|
||||
position: false, // defaults to `true`
|
||||
});
|
||||
|
||||
walk(result.ast, (node) => {
|
||||
// `tag` nodes are `element` | `custom-element` | `component`
|
||||
if (is.tag(node)) {
|
||||
console.log(node.name);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Develop
|
||||
|
||||
### VSCode / CodeSpaces
|
||||
|
||||
A `devcontainer` configuration is available for use with VSCode's [Remote Development extension pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) and GitHub CodeSpaces.
|
||||
|
||||
## Contributing
|
||||
|
||||
[CONTRIBUTING.md](/CONTRIBUTING.md)
|
BIN
node_modules/@astrojs/compiler/dist/astro.wasm
generated
vendored
Normal file
BIN
node_modules/@astrojs/compiler/dist/astro.wasm
generated
vendored
Normal file
Binary file not shown.
2
node_modules/@astrojs/compiler/dist/browser/index.cjs
generated
vendored
Normal file
2
node_modules/@astrojs/compiler/dist/browser/index.cjs
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
11
node_modules/@astrojs/compiler/dist/browser/index.d.ts
generated
vendored
Normal file
11
node_modules/@astrojs/compiler/dist/browser/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { transform as transform$1, parse as parse$1, convertToTSX as convertToTSX$1, teardown as teardown$1, initialize as initialize$1 } from '../shared/types.js';
|
||||
import '../shared/ast.js';
|
||||
import '../shared/diagnostics.js';
|
||||
|
||||
declare const transform: typeof transform$1;
|
||||
declare const parse: typeof parse$1;
|
||||
declare const convertToTSX: typeof convertToTSX$1;
|
||||
declare const teardown: typeof teardown$1;
|
||||
declare const initialize: typeof initialize$1;
|
||||
|
||||
export { convertToTSX, initialize, parse, teardown, transform };
|
1
node_modules/@astrojs/compiler/dist/browser/index.js
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/browser/index.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{a as f}from"../chunk-XZNZIE5X.js";var u=(t,e)=>p().transform(t,e),S=(t,e)=>p().parse(t,e),v=(t,e)=>p().convertToTSX(t,e),a,i,h=()=>{a=void 0,i=void 0,globalThis["@astrojs/compiler"]=void 0},T=async t=>{let e=t.wasmURL;if(!e)throw new Error('Must provide the "wasmURL" option');e+="",a||(a=m(e).catch(n=>{throw a=void 0,n})),i=i||await a},p=()=>{if(!a)throw new Error('You need to call "initialize" before calling this');if(!i)throw new Error('You need to wait for the promise returned from "initialize" to be resolved before calling this');return i},y=async(t,e)=>{let n;return WebAssembly.instantiateStreaming?n=await WebAssembly.instantiateStreaming(fetch(t),e):n=await(async()=>{let s=await fetch(t).then(o=>o.arrayBuffer());return WebAssembly.instantiate(s,e)})(),n},m=async t=>{let e=new f,n=await y(t,e.importObject);e.run(n.instance);let c=globalThis["@astrojs/compiler"];return{transform:(s,o)=>new Promise(r=>r(c.transform(s,o||{}))),convertToTSX:(s,o)=>new Promise(r=>r(c.convertToTSX(s,o||{}))).then(r=>({...r,map:JSON.parse(r.map)})),parse:(s,o)=>new Promise(r=>r(c.parse(s,o||{}))).then(r=>({...r,ast:JSON.parse(r.ast)}))}};export{v as convertToTSX,T as initialize,S as parse,h as teardown,u as transform};
|
3
node_modules/@astrojs/compiler/dist/browser/utils.cjs
generated
vendored
Normal file
3
node_modules/@astrojs/compiler/dist/browser/utils.cjs
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
"use strict";var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var u=(o,e)=>{for(var t in e)l(o,t,{get:e[t],enumerable:!0})},f=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!N.call(o,r)&&r!==t&&l(o,r,{get:()=>e[r],enumerable:!(n=d(e,r))||n.enumerable});return o};var h=o=>f(l({},"__esModule",{value:!0}),o);var v={};u(v,{is:()=>s,serialize:()=>g,walk:()=>y});module.exports=h(v);function i(o){return e=>e.type===o}var s={parent(o){return Array.isArray(o.children)},literal(o){return typeof o.value=="string"},tag(o){return o.type==="element"||o.type==="custom-element"||o.type==="component"||o.type==="fragment"},whitespace(o){return o.type==="text"&&o.value.trim().length===0},root:i("root"),element:i("element"),customElement:i("custom-element"),component:i("component"),fragment:i("fragment"),expression:i("expression"),text:i("text"),doctype:i("doctype"),comment:i("comment"),frontmatter:i("frontmatter")},m=class{constructor(e){this.callback=e}async visit(e,t,n){if(await this.callback(e,t,n),s.parent(e)){let r=[];for(let a=0;a<e.children.length;a++){let c=e.children[a];r.push(this.callback(c,e,a))}await Promise.all(r)}}};function y(o,e){new m(e).visit(o)}function x(o){let e="";for(let t of o.attributes)switch(e+=" ",t.kind){case"empty":{e+=`${t.name}`;break}case"expression":{e+=`${t.name}={${t.value}}`;break}case"quoted":{e+=`${t.name}=${t.raw}`;break}case"template-literal":{e+=`${t.name}=\`${t.value}\``;break}case"shorthand":{e+=`{${t.name}}`;break}case"spread":{e+=`{...${t.value}}`;break}}return e}function g(o,e={selfClose:!0}){let t="";function n(r){s.root(r)?r.children.forEach(a=>n(a)):s.frontmatter(r)?t+=`---${r.value}---
|
||||
|
||||
`:s.comment(r)?t+=`<!--${r.value}-->`:s.expression(r)?(t+="{",r.children.forEach(a=>n(a)),t+="}"):s.literal(r)?t+=r.value:s.tag(r)&&(t+=`<${r.name}`,t+=x(r),r.children.length==0&&e.selfClose?t+=" />":(t+=">",r.children.forEach(a=>n(a)),t+=`</${r.name}>`))}return n(o),t}0&&(module.exports={is,serialize,walk});
|
30
node_modules/@astrojs/compiler/dist/browser/utils.d.ts
generated
vendored
Normal file
30
node_modules/@astrojs/compiler/dist/browser/utils.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { Node, ParentNode, LiteralNode, TagLikeNode, TextNode, RootNode, ElementNode, CustomElementNode, ComponentNode, FragmentNode, ExpressionNode, DoctypeNode, CommentNode, FrontmatterNode } from '../shared/ast.js';
|
||||
|
||||
interface Visitor {
|
||||
(node: Node, parent?: ParentNode, index?: number): void | Promise<void>;
|
||||
}
|
||||
declare const is: {
|
||||
parent(node: Node): node is ParentNode;
|
||||
literal(node: Node): node is LiteralNode;
|
||||
tag(node: Node): node is TagLikeNode;
|
||||
whitespace(node: Node): node is TextNode;
|
||||
root: (node: Node) => node is RootNode;
|
||||
element: (node: Node) => node is ElementNode;
|
||||
customElement: (node: Node) => node is CustomElementNode;
|
||||
component: (node: Node) => node is ComponentNode;
|
||||
fragment: (node: Node) => node is FragmentNode;
|
||||
expression: (node: Node) => node is ExpressionNode;
|
||||
text: (node: Node) => node is TextNode;
|
||||
doctype: (node: Node) => node is DoctypeNode;
|
||||
comment: (node: Node) => node is CommentNode;
|
||||
frontmatter: (node: Node) => node is FrontmatterNode;
|
||||
};
|
||||
declare function walk(node: ParentNode, callback: Visitor): void;
|
||||
interface SerializeOptions {
|
||||
selfClose: boolean;
|
||||
}
|
||||
/** @deprecated Please use `SerializeOptions` */
|
||||
type SerializeOtions = SerializeOptions;
|
||||
declare function serialize(root: Node, opts?: SerializeOptions): string;
|
||||
|
||||
export { SerializeOptions, SerializeOtions, Visitor, is, serialize, walk };
|
3
node_modules/@astrojs/compiler/dist/browser/utils.js
generated
vendored
Normal file
3
node_modules/@astrojs/compiler/dist/browser/utils.js
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
function i(o){return t=>t.type===o}var n={parent(o){return Array.isArray(o.children)},literal(o){return typeof o.value=="string"},tag(o){return o.type==="element"||o.type==="custom-element"||o.type==="component"||o.type==="fragment"},whitespace(o){return o.type==="text"&&o.value.trim().length===0},root:i("root"),element:i("element"),customElement:i("custom-element"),component:i("component"),fragment:i("fragment"),expression:i("expression"),text:i("text"),doctype:i("doctype"),comment:i("comment"),frontmatter:i("frontmatter")},l=class{constructor(t){this.callback=t}async visit(t,e,s){if(await this.callback(t,e,s),n.parent(t)){let r=[];for(let a=0;a<t.children.length;a++){let m=t.children[a];r.push(this.callback(m,t,a))}await Promise.all(r)}}};function N(o,t){new l(t).visit(o)}function c(o){let t="";for(let e of o.attributes)switch(t+=" ",e.kind){case"empty":{t+=`${e.name}`;break}case"expression":{t+=`${e.name}={${e.value}}`;break}case"quoted":{t+=`${e.name}=${e.raw}`;break}case"template-literal":{t+=`${e.name}=\`${e.value}\``;break}case"shorthand":{t+=`{${e.name}}`;break}case"spread":{t+=`{...${e.value}}`;break}}return t}function u(o,t={selfClose:!0}){let e="";function s(r){n.root(r)?r.children.forEach(a=>s(a)):n.frontmatter(r)?e+=`---${r.value}---
|
||||
|
||||
`:n.comment(r)?e+=`<!--${r.value}-->`:n.expression(r)?(e+="{",r.children.forEach(a=>s(a)),e+="}"):n.literal(r)?e+=r.value:n.tag(r)&&(e+=`<${r.name}`,e+=c(r),r.children.length==0&&t.selfClose?e+=" />":(e+=">",r.children.forEach(a=>s(a)),e+=`</${r.name}>`))}return s(o),e}export{n as is,u as serialize,N as walk};
|
2
node_modules/@astrojs/compiler/dist/browser/wasm_exec.cjs
generated
vendored
Normal file
2
node_modules/@astrojs/compiler/dist/browser/wasm_exec.cjs
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
37
node_modules/@astrojs/compiler/dist/browser/wasm_exec.d.ts
generated
vendored
Normal file
37
node_modules/@astrojs/compiler/dist/browser/wasm_exec.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
declare class Go {
|
||||
importObject: {
|
||||
go: {
|
||||
'runtime.wasmExit': (sp: any) => void;
|
||||
'runtime.wasmWrite': (sp: any) => void;
|
||||
'runtime.resetMemoryDataView': (sp: any) => void;
|
||||
'runtime.nanotime1': (sp: any) => void;
|
||||
'runtime.walltime': (sp: any) => void;
|
||||
'runtime.scheduleTimeoutEvent': (sp: any) => void;
|
||||
'runtime.clearTimeoutEvent': (sp: any) => void;
|
||||
'runtime.getRandomData': (sp: any) => void;
|
||||
'syscall/js.finalizeRef': (sp: any) => void;
|
||||
'syscall/js.stringVal': (sp: any) => void;
|
||||
'syscall/js.valueGet': (sp: any) => void;
|
||||
'syscall/js.valueSet': (sp: any) => void;
|
||||
'syscall/js.valueDelete': (sp: any) => void;
|
||||
'syscall/js.valueIndex': (sp: any) => void;
|
||||
'syscall/js.valueSetIndex': (sp: any) => void;
|
||||
'syscall/js.valueCall': (sp: any) => void;
|
||||
'syscall/js.valueInvoke': (sp: any) => void;
|
||||
'syscall/js.valueNew': (sp: any) => void;
|
||||
'syscall/js.valueLength': (sp: any) => void;
|
||||
'syscall/js.valuePrepareString': (sp: any) => void;
|
||||
'syscall/js.valueLoadString': (sp: any) => void;
|
||||
'syscall/js.valueInstanceOf': (sp: any) => void;
|
||||
'syscall/js.copyBytesToGo': (sp: any) => void;
|
||||
'syscall/js.copyBytesToJS': (sp: any) => void;
|
||||
debug: (value: any) => void;
|
||||
};
|
||||
};
|
||||
constructor();
|
||||
run(instance: any): Promise<void>;
|
||||
private _resume;
|
||||
private _makeFuncWrapper;
|
||||
}
|
||||
|
||||
export { Go as default };
|
1
node_modules/@astrojs/compiler/dist/browser/wasm_exec.js
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/browser/wasm_exec.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{a}from"../chunk-XZNZIE5X.js";export{a as default};
|
1
node_modules/@astrojs/compiler/dist/chunk-GFDH6LQW.js
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/chunk-GFDH6LQW.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
node_modules/@astrojs/compiler/dist/chunk-XZNZIE5X.js
generated
vendored
Normal file
2
node_modules/@astrojs/compiler/dist/chunk-XZNZIE5X.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
node_modules/@astrojs/compiler/dist/node/index.cjs
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/node/index.cjs
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12
node_modules/@astrojs/compiler/dist/node/index.d.ts
generated
vendored
Normal file
12
node_modules/@astrojs/compiler/dist/node/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { transform as transform$1, parse as parse$1, convertToTSX as convertToTSX$1, teardown as teardown$1 } from '../shared/types.js';
|
||||
export { HoistedScript, ParseOptions, ParseResult, PreprocessorResult, TransformOptions, TransformResult } from '../shared/types.js';
|
||||
import '../shared/ast.js';
|
||||
import '../shared/diagnostics.js';
|
||||
|
||||
declare const transform: typeof transform$1;
|
||||
declare const parse: typeof parse$1;
|
||||
declare const convertToTSX: typeof convertToTSX$1;
|
||||
declare const compile: (template: string) => Promise<string>;
|
||||
declare const teardown: typeof teardown$1;
|
||||
|
||||
export { compile, convertToTSX, parse, teardown, transform };
|
1
node_modules/@astrojs/compiler/dist/node/index.js
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/node/index.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{a as c}from"../chunk-GFDH6LQW.js";import{promises as m}from"fs";import{fileURLToPath as f}from"url";var l=async(t,s)=>i().then(r=>r.transform(t,s)),w=async(t,s)=>i().then(r=>r.parse(t,s)),b=async(t,s)=>i().then(r=>r.convertToTSX(t,s)),P=async t=>{let{default:s}=await import(`data:text/javascript;charset=utf-8;base64,${Buffer.from(t).toString("base64")}`);return s},n,g=()=>{n=void 0,globalThis["@astrojs/compiler"]=void 0},i=()=>(n||(n=d().catch(t=>{throw n=void 0,t})),n),y=async(t,s)=>{let r;return r=await(async()=>{let o=await m.readFile(t).then(e=>e.buffer);return WebAssembly.instantiate(new Uint8Array(o),s)})(),r},d=async()=>{let t=new c,s=await y(f(new URL("../astro.wasm",import.meta.url)),t.importObject);t.run(s.instance);let r=globalThis["@astrojs/compiler"];return{transform:(a,o)=>new Promise(e=>{try{e(r.transform(a,o||{}))}catch(p){throw n=void 0,p}}),parse:(a,o)=>new Promise(e=>e(r.parse(a,o||{}))).catch(e=>{throw n=void 0,e}).then(e=>({...e,ast:JSON.parse(e.ast)})),convertToTSX:(a,o)=>new Promise(e=>e(r.convertToTSX(a,o||{}))).catch(e=>{throw n=void 0,e}).then(e=>({...e,map:JSON.parse(e.map)}))}};export{P as compile,b as convertToTSX,w as parse,g as teardown,l as transform};
|
1
node_modules/@astrojs/compiler/dist/node/sync.cjs
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/node/sync.cjs
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
16
node_modules/@astrojs/compiler/dist/node/sync.d.ts
generated
vendored
Normal file
16
node_modules/@astrojs/compiler/dist/node/sync.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { TransformOptions, TransformResult, ParseOptions, ParseResult, ConvertToTSXOptions, TSXResult, transform as transform$1, parse as parse$1, convertToTSX as convertToTSX$1 } from '../shared/types.js';
|
||||
import '../shared/ast.js';
|
||||
import '../shared/diagnostics.js';
|
||||
|
||||
type UnwrappedPromise<T> = T extends (...params: any) => Promise<infer Return> ? (...params: Parameters<T>) => Return : T;
|
||||
interface Service {
|
||||
transform: UnwrappedPromise<typeof transform$1>;
|
||||
parse: UnwrappedPromise<typeof parse$1>;
|
||||
convertToTSX: UnwrappedPromise<typeof convertToTSX$1>;
|
||||
}
|
||||
declare const transform: (input: string, options: TransformOptions | undefined) => TransformResult;
|
||||
declare const parse: (input: string, options: ParseOptions | undefined) => ParseResult;
|
||||
declare const convertToTSX: (input: string, options: ConvertToTSXOptions | undefined) => TSXResult;
|
||||
declare function startRunningService(): Service;
|
||||
|
||||
export { convertToTSX, parse, startRunningService, transform };
|
1
node_modules/@astrojs/compiler/dist/node/sync.js
generated
vendored
Normal file
1
node_modules/@astrojs/compiler/dist/node/sync.js
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
import{a as c}from"../chunk-GFDH6LQW.js";import{readFileSync as p}from"fs";import{fileURLToPath as m}from"url";function i(){return s||(s=f()),s}var s,l=(e,t)=>i().transform(e,t),w=(e,t)=>i().parse(e,t),h=(e,t)=>i().convertToTSX(e,t);function f(){let e=new c,t=v(m(new URL("../astro.wasm",import.meta.url)),e.importObject);e.run(t);let o=globalThis["@astrojs/compiler"];return{transform:(n,a)=>{try{return o.transform(n,a||{})}catch(r){throw s=void 0,r}},parse:(n,a)=>{try{let r=o.parse(n,a||{});return{...r,ast:JSON.parse(r.ast)}}catch(r){throw s=void 0,r}},convertToTSX:(n,a)=>{try{let r=o.convertToTSX(n,a||{});return{...r,map:JSON.parse(r.map)}}catch(r){throw s=void 0,r}}}}function v(e,t){let o=p(e);return new WebAssembly.Instance(new WebAssembly.Module(o),t)}export{h as convertToTSX,w as parse,f as startRunningService,l as transform};
|
3
node_modules/@astrojs/compiler/dist/node/utils.cjs
generated
vendored
Normal file
3
node_modules/@astrojs/compiler/dist/node/utils.cjs
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
"use strict";var l=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var u=(o,e)=>{for(var t in e)l(o,t,{get:e[t],enumerable:!0})},f=(o,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of p(e))!N.call(o,r)&&r!==t&&l(o,r,{get:()=>e[r],enumerable:!(n=d(e,r))||n.enumerable});return o};var h=o=>f(l({},"__esModule",{value:!0}),o);var k={};u(k,{is:()=>s,serialize:()=>g,walk:()=>y});module.exports=h(k);function i(o){return e=>e.type===o}var s={parent(o){return Array.isArray(o.children)},literal(o){return typeof o.value=="string"},tag(o){return o.type==="element"||o.type==="custom-element"||o.type==="component"||o.type==="fragment"},whitespace(o){return o.type==="text"&&o.value.trim().length===0},root:i("root"),element:i("element"),customElement:i("custom-element"),component:i("component"),fragment:i("fragment"),expression:i("expression"),text:i("text"),doctype:i("doctype"),comment:i("comment"),frontmatter:i("frontmatter")},m=class{constructor(e){this.callback=e}async visit(e,t,n){if(await this.callback(e,t,n),s.parent(e)){let r=[];for(let a=0;a<e.children.length;a++){let c=e.children[a];r.push(this.callback(c,e,a))}await Promise.all(r)}}};function y(o,e){new m(e).visit(o)}function x(o){let e="";for(let t of o.attributes)switch(e+=" ",t.kind){case"empty":{e+=`${t.name}`;break}case"expression":{e+=`${t.name}={${t.value}}`;break}case"quoted":{e+=`${t.name}=${t.raw}`;break}case"template-literal":{e+=`${t.name}=\`${t.value}\``;break}case"shorthand":{e+=`{${t.name}}`;break}case"spread":{e+=`{...${t.name}}`;break}}return e}function g(o,e={selfClose:!0}){let t="";function n(r){s.root(r)?r.children.forEach(a=>n(a)):s.frontmatter(r)?t+=`---${r.value}---
|
||||
|
||||
`:s.comment(r)?t+=`<!--${r.value}-->`:s.expression(r)?(t+="{",r.children.forEach(a=>n(a)),t+="}"):s.literal(r)?t+=r.value:s.tag(r)&&(t+=`<${r.name}`,t+=x(r),r.children.length==0&&e.selfClose?t+=" />":(t+=">",r.children.forEach(a=>n(a)),t+=`</${r.name}>`))}return n(o),t}0&&(module.exports={is,serialize,walk});
|
30
node_modules/@astrojs/compiler/dist/node/utils.d.ts
generated
vendored
Normal file
30
node_modules/@astrojs/compiler/dist/node/utils.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { Node, ParentNode, LiteralNode, TagLikeNode, TextNode, RootNode, ElementNode, CustomElementNode, ComponentNode, FragmentNode, ExpressionNode, DoctypeNode, CommentNode, FrontmatterNode } from '../shared/ast.js';
|
||||
|
||||
interface Visitor {
|
||||
(node: Node, parent?: ParentNode, index?: number): void | Promise<void>;
|
||||
}
|
||||
declare const is: {
|
||||
parent(node: Node): node is ParentNode;
|
||||
literal(node: Node): node is LiteralNode;
|
||||
tag(node: Node): node is TagLikeNode;
|
||||
whitespace(node: Node): node is TextNode;
|
||||
root: (node: Node) => node is RootNode;
|
||||
element: (node: Node) => node is ElementNode;
|
||||
customElement: (node: Node) => node is CustomElementNode;
|
||||
component: (node: Node) => node is ComponentNode;
|
||||
fragment: (node: Node) => node is FragmentNode;
|
||||
expression: (node: Node) => node is ExpressionNode;
|
||||
text: (node: Node) => node is TextNode;
|
||||
doctype: (node: Node) => node is DoctypeNode;
|
||||
comment: (node: Node) => node is CommentNode;
|
||||
frontmatter: (node: Node) => node is FrontmatterNode;
|
||||
};
|
||||
declare function walk(node: ParentNode, callback: Visitor): void;
|
||||
interface SerializeOptions {
|
||||
selfClose: boolean;
|
||||
}
|
||||
/** @deprecated Please use `SerializeOptions` */
|
||||
type SerializeOtions = SerializeOptions;
|
||||
declare function serialize(root: Node, opts?: SerializeOptions): string;
|
||||
|
||||
export { SerializeOptions, SerializeOtions, Visitor, is, serialize, walk };
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue