rabbit
Korbs 2023-07-24 03:25:46 -04:00
parent b271548e56
commit 01762defe0
Signed by: Korbs
SSH Key Fingerprint: SHA256:TEBbhATU3FQEUOUBPvmNxuzw3QDSzMSp4jZzPaV29ss
20 changed files with 31 additions and 1929 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1,18 +0,0 @@
kind: pipeline
type: exec
name: Build on macOS
platform:
os: linux
arch: amd64
steps:
- name: Build
commands:
- sudo chmod -R 777 ./*
- yarn add glob && yarn && sudo bundle install
- ./bin/bridgetown deploy
- sudo mv ./output/ ./master/
- sudo rm -R /sudovanilla/nginx/sites/sudovanilla/master/
- sudo cp -R ./master/ /sudovanilla/nginx/sites/sudovanilla/master/
- sudo rm -R ./master/

34
.gitignore vendored
View File

@ -1,3 +1,31 @@
.bridgetown-cache
node_modules
output
# build output
output/
output/*
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# lock
package-lock.json
yarn.lock
pnpm-lock.json
# environment variables
.env
.env.production
# Front Matter Setup
.frontmatter
frontmatter.json
# macOS-specific files
.DS_Store

33
Gemfile
View File

@ -1,33 +0,0 @@
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
####
# Welcome to your project's Gemfile, used by Rubygems & Bundler.
#
# To install a plugin, run:
#
# bundle add new-plugin-name -g bridgetown_plugins
#
# This will ensure the plugin is added to the correct Bundler group.
#
# When you run Bridgetown commands, we recommend using a binstub like so:
#
# bin/bridgetown start (or console, etc.)
#
# This will help ensure the proper Bridgetown version is running.
####
# If you need to upgrade/switch Bridgetown versions, change the line below
# and then run `bundle update bridgetown`
gem "bridgetown", "~> 1.2.0"
# Uncomment to add file-based dynamic routing to your project:
# gem "bridgetown-routes", "~> 1.2.0"
# Uncomment to use the Inspectors API to manipulate the output
# of your HTML or XML resources:
# gem "nokogiri", "~> 1.13"
# Puma is a Rack-compatible server used by Bridgetown
# (you can optionally limit this to the "development" group)
gem "puma", "~> 5.6"

View File

@ -1,49 +0,0 @@
require "bridgetown"
Bridgetown.load_tasks
# Run rake without specifying any command to execute a deploy build by default.
task default: :deploy
#
# Standard set of tasks, which you can customize if you wish:
#
desc "Build the Bridgetown site for deployment"
task :deploy => [:clean, "frontend:build"] do
Bridgetown::Commands::Build.start
end
desc "Build the site in a test environment"
task :test do
ENV["BRIDGETOWN_ENV"] = "test"
Bridgetown::Commands::Build.start
end
desc "Runs the clean command"
task :clean do
Bridgetown::Commands::Clean.start
end
namespace :frontend do
desc "Build the frontend with esbuild for deployment"
task :build do
sh "yarn run esbuild"
end
desc "Watch the frontend with esbuild during development"
task :dev do
sh "yarn run esbuild-dev"
rescue Interrupt
end
end
#
# Add your own Rake tasks here! You can use `environment` as a prerequisite
# in order to write automations or other commands requiring a loaded site.
#
# task :my_task => :environment do
# puts site.root_dir
# automation do
# say_status :rake, "I'm a Rake tast =) #{site.config.url}"
# end
# end

View File

@ -1,29 +0,0 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'bridgetown' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require "pathname"
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
Pathname.new(__FILE__).realpath)
bundle_binstub = File.expand_path("../bundle", __FILE__)
if File.file?(bundle_binstub)
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
load(bundle_binstub)
else
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
end
end
require "rubygems"
require "bundler/setup"
load Gem.bin_path("bridgetown-core", "bridgetown")

View File

@ -1,34 +0,0 @@
# Welcome to Bridgetown!
#
# This config file is for settings that affect your whole site, values
# which you are expected to set up once and rarely edit after that.
#
# A list of all available configuration options can be found here:
# https://www.bridgetownrb.com/docs/configuration/options
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `bin/bridgetown start`. If you change this file, please restart the server process.
#
# For reloadable site metadata like title, SEO description, social media
# handles, etc., take a look at `src/_data/site_metadata.yml`
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
url: "" # the base hostname & protocol for your site, e.g. https://example.com
permalink: pretty
template_engine: liquid
# Other options you might want to investigate:
#
# base_path: "/" # the subpath of your site, e.g. /blog. If you set this option,
# ensure you use the `relative_url` helper for all links and assets in your HTML.
# If you're using esbuild for frontend assets, edit `esbuild.config.js` to
# update `publicPath`.
# timezone: America/Los_Angeles
# pagination:
# enabled: true

View File

@ -1,7 +0,0 @@
# This file is used by Rack-based servers during the Bridgetown boot process.
require "bridgetown-core/rack/boot"
Bridgetown::Rack.boot
run RodaApp.freeze.app # see server/roda_app.rb

View File

@ -1,300 +0,0 @@
// This file is created and managed by Bridgetown.
// Instead of editing this file, add your overrides to `esbuild.config.js`
//
// To update this file to the latest version provided by Bridgetown,
// run `bridgetown esbuild update`. Any changes to this file will be overwritten
// when an update is applied hence we strongly recommend adding overrides to
// `esbuild.config.js` instead of editing this file.
//
// Shipped with Bridgetown v1.2.0
const path = require("path")
const fsLib = require("fs")
const fs = fsLib.promises
const { pathToFileURL, fileURLToPath } = require("url")
const glob = require("glob")
const postcss = require("postcss")
const postCssImport = require("postcss-import")
const readCache = require("read-cache")
// Detect if an NPM package is available
const moduleAvailable = name => {
try {
require.resolve(name)
return true
} catch (e) { }
return false
}
// Generate a Source Map URL (used by the Sass plugin)
const generateSourceMappingURL = sourceMap => {
const data = Buffer.from(JSON.stringify(sourceMap), "utf-8").toString("base64")
return `/*# sourceMappingURL=data:application/json;charset=utf-8;base64,${data} */`
}
// Import Sass if available
let sass
if (moduleAvailable("sass")) {
sass = require("sass")
}
// Glob plugin derived from:
// https://github.com/thomaschaaf/esbuild-plugin-import-glob
// https://github.com/xiaohui-zhangxh/jsbundling-rails/commit/b15025dcc20f664b2b0eb238915991afdbc7cb58
const importGlobPlugin = () => ({
name: "import-glob",
setup: (build) => {
build.onResolve({ filter: /\*/ }, async (args) => {
if (args.resolveDir === "") {
return; // Ignore unresolvable paths
}
const adjustedPath = args.path.replace(/^bridgetownComponents\//, "../../src/_components/")
return {
path: adjustedPath,
namespace: "import-glob",
pluginData: {
path: adjustedPath,
resolveDir: args.resolveDir,
},
}
})
build.onLoad({ filter: /.*/, namespace: "import-glob" }, async (args) => {
const files = glob.sync(args.pluginData.path, {
cwd: args.pluginData.resolveDir,
}).sort()
const importerCode = `
${files
.map((module, index) => `import * as module${index} from '${module}'`)
.join(';')}
const modules = {${files
.map((module, index) => `
"${module.replace("../../src/_components/", "")}": module${index},`)
.join("")}
};
export default modules;
`
return { contents: importerCode, resolveDir: args.pluginData.resolveDir }
})
},
})
// Plugin for PostCSS
const importPostCssPlugin = (options, configuration) => ({
name: "postcss",
async setup(build) {
// Process .css files with PostCSS
build.onLoad({ filter: (configuration.filter || /\.css$/) }, async (args) => {
const additionalFilePaths = []
const css = await fs.readFile(args.path, "utf8")
// Configure import plugin so PostCSS can properly resolve `@import`ed CSS files
const importPlugin = postCssImport({
filter: itemPath => !itemPath.startsWith("/"), // ensure it doesn't try to import source-relative paths
load: async filename => {
let contents = await readCache(filename, "utf-8")
const filedir = path.dirname(filename)
// We'll want to track any imports later when in watch mode:
additionalFilePaths.push(filename)
// We need to transform `url(...)` in imported CSS so the filepaths are properly
// relative to the entrypoint. Seems icky to have to hack this! C'est la vie...
contents = contents.replace(/url\(['"]?\.\/(.*?)['"]?\)/g, (_match, p1) => {
const relpath = path.relative(args.path, path.resolve(filedir, p1)).replace(/^\.\.\//, "")
return `url("${relpath}")`
})
return contents
}
})
// Process the file through PostCSS
const result = await postcss([importPlugin, ...options.plugins]).process(css, {
map: true,
...options.options,
from: args.path,
});
return {
contents: result.css,
loader: "css",
watchFiles: [args.path, ...additionalFilePaths],
}
})
},
})
// Plugin for Sass
const sassPlugin = (options) => ({
name: "sass",
async setup(build) {
// Process .scss and .sass files with Sass
build.onLoad({ filter: /\.(sass|scss)$/ }, async (args) => {
if (!sass) {
console.error("error: Sass is not installed. Try running `yarn add sass` and then building again.")
return
}
const modulesFolder = pathToFileURL("node_modules/")
const localOptions = {
importers: [{
// An importer that redirects relative URLs starting with "~" to
// `node_modules`.
findFileUrl(url) {
if (!url.startsWith('~')) return null
return new URL(url.substring(1), modulesFolder)
}
}],
sourceMap: true,
...options
}
const result = sass.compile(args.path, localOptions)
const watchPaths = result.loadedUrls
.filter((x) => x.protocol === "file:" && !x.pathname.startsWith(modulesFolder.pathname))
.map((x) => x.pathname)
let cssOutput = result.css.toString()
if (result.sourceMap) {
const basedir = process.cwd()
const sourceMap = result.sourceMap
const promises = sourceMap.sources.map(async source => {
const sourceFile = await fs.readFile(fileURLToPath(source), "utf8")
return sourceFile
})
sourceMap.sourcesContent = await Promise.all(promises)
sourceMap.sources = sourceMap.sources.map(source => {
return path.relative(basedir, fileURLToPath(source))
})
cssOutput += '\n' + generateSourceMappingURL(sourceMap)
}
return {
contents: cssOutput,
loader: "css",
watchFiles: [args.path, ...watchPaths],
}
})
},
})
// Set up defaults and generate frontend bundling manifest file
const bridgetownPreset = (outputFolder) => ({
name: "bridgetownPreset",
async setup(build) {
// Ensure any imports anywhere starting with `/` are left verbatim
// so they can be used in-browser for actual `src` repo files
build.onResolve({ filter: /^\// }, args => {
return { path: args.path, external: true }
})
build.onStart(() => {
console.log("esbuild: frontend bundling started...")
})
// Generate the final output manifest
build.onEnd(async (result) => {
if (!result.metafile) {
console.warn("esbuild: build process error, cannot write manifest")
return
}
const manifest = {}
const entrypoints = []
// We don't need `frontend/` cluttering up everything
const stripPrefix = (str) => str.replace(/^frontend\//, "")
// For calculating the file size of bundle output
const fileSize = (path) => {
const { size } = fsLib.statSync(path)
const i = Math.floor(Math.log(size) / Math.log(1024))
return (size / Math.pow(1024, i)).toFixed(2) * 1 + ['B', 'KB', 'MB', 'GB', 'TB'][i]
}
// Let's loop through all the various outputs
for (const key in result.metafile.outputs) {
const value = result.metafile.outputs[key]
const inputs = Object.keys(value.inputs)
const pathShortener = new RegExp(`^${outputFolder}\\/_bridgetown\\/static\\/`, "g")
const outputPath = key.replace(pathShortener, "")
if (value.entryPoint) {
// We have an entrypoint!
manifest[stripPrefix(value.entryPoint)] = outputPath
entrypoints.push([outputPath, fileSize(key)])
} else if (key.match(/index(\.js)?\.[^-.]*\.css/) && inputs.find(item => item.match(/frontend.*\.(s?css|sass)$/))) {
// Special treatment for index.css
const input = inputs.find(item => item.match(/frontend.*\.(s?css|sass)$/))
manifest[stripPrefix(input)] = outputPath
entrypoints.push([outputPath, fileSize(key)])
} else if (inputs.length > 0) {
// Naive implementation, we'll just grab the first input and hope it's accurate
manifest[stripPrefix(inputs[0])] = outputPath
}
}
const manifestFolder = path.join(process.cwd(), ".bridgetown-cache", "frontend-bundling")
await fs.mkdir(manifestFolder, { recursive: true })
await fs.writeFile(path.join(manifestFolder, "manifest.json"), JSON.stringify(manifest))
console.log("esbuild: frontend bundling complete!")
console.log("esbuild: entrypoints processed:")
entrypoints.forEach(entrypoint => {
const [entrypointName, entrypointSize] = entrypoint
console.log(` - ${entrypointName}: ${entrypointSize}`)
})
})
}
})
// Load the PostCSS config from postcss.config.js or whatever else is a supported location/format
const postcssrc = require("postcss-load-config")
module.exports = async (outputFolder, esbuildOptions) => {
esbuildOptions.plugins = esbuildOptions.plugins || []
// Add the PostCSS & glob plugins to the top of the plugin stack
const postCssConfig = await postcssrc()
esbuildOptions.plugins.unshift(importPostCssPlugin(postCssConfig, esbuildOptions.postCssPluginConfig || {}))
if (esbuildOptions.postCssPluginConfig) delete esbuildOptions.postCssPluginConfig
esbuildOptions.plugins.unshift(importGlobPlugin())
// Add the Sass plugin
esbuildOptions.plugins.push(sassPlugin(esbuildOptions.sassOptions || {}))
// Add the Bridgetown preset
esbuildOptions.plugins.push(bridgetownPreset(outputFolder))
// esbuild, take it away!
require("esbuild").build({
bundle: true,
loader: {
".jpg": "file",
".png": "file",
".gif": "file",
".svg": "file",
".woff": "file",
".woff2": "file",
".ttf": "file",
".eot": "file",
},
resolveExtensions: [".tsx", ".ts", ".jsx", ".js", ".css", ".scss", ".sass", ".json", ".js.rb"],
nodePaths: ["frontend/javascript", "frontend/styles"],
watch: process.argv.includes("--watch"),
minify: process.argv.includes("--minify"),
sourcemap: true,
target: "es2016",
entryPoints: ["./frontend/javascript/index.js"],
entryNames: "[dir]/[name].[hash]",
outdir: path.join(process.cwd(), `${outputFolder}/_bridgetown/static`),
publicPath: "/_bridgetown/static",
metafile: true,
...esbuildOptions,
}).catch(() => process.exit(1))
}

View File

@ -1,43 +0,0 @@
Bridgetown.configure do |config|
# You can configure aspects of your Bridgetown site here instead of using
# `bridgetown.config.yml`. For example:
#
# permalink "simple"
# timezone "America/Los_Angeles"
#
# You can also modify options on the configuration object directly, like so:
#
# config.autoload_paths << "models"
#
# You can use `init` to initialize various Bridgetown features or plugin gems.
# For example, you can use the Dotenv gem to load environment variables from
# `.env`. Just `bundle add dotenv` and then uncomment this:
#
# init :dotenv
#
# Uncomment to use Bridgetown SSR (aka dynamic rendering of content via Roda):
#
# init :ssr
#
# Uncomment to use file-based dynamic template routing via Roda (make sure you
# uncomment the gem dependency in your `Gemfile` as well):
#
# init :"bridgetown-routes"
#
# We also recommend that if you're using Roda routes you include this plugin
# so you can get a generated routes list in `.routes.json`. You can then run
# `bin/bridgetown roda:routes` to print the routes. (This will require you to
# comment your route blocks. See example in `server/routes/hello.rb.sample`.)
#
# only :server do
# init :parse_routes
# end
#
# For more documentation on how to configure your site using this initializers file,
# visit: https://edge.bridgetownrb.com/docs/configuration/initializers/
end

View File

@ -1,31 +0,0 @@
# Puma is a fast, concurrent web server for Ruby & Rack
#
# Learn more at: https://puma.io
# Bridgetown configuration documentation:
# https://edge.bridgetownrb.com/docs/configuration/puma
# This port number can be overriden by a bind configuration option
#
port ENV.fetch("BRIDGETOWN_PORT") { 4000 }
# You can adjust the number of workers (separate processes) and threads
# (per process) based on your production system
#
if ENV["BRIDGETOWN_ENV"] == "production"
workers ENV.fetch("BRIDGETOWN_CONCURRENCY") { 4 }
end
max_threads_count = ENV.fetch("BRIDGETOWN_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("BRIDGETOWN_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
# Preload the application for maximum performance
#
preload_app!
# Use the Bridgetown logger format
#
require "bridgetown-core/rack/logger"
log_formatter do |msg|
Bridgetown::Rack::Logger.message_with_prefix msg
end

View File

@ -1,36 +0,0 @@
const build = require("./config/esbuild.defaults.js")
// Update this if you need to configure a destination folder other than `output`
const outputFolder = "output"
// You can customize this as you wish, perhaps to add new esbuild plugins.
//
// ```
// const path = require("path")
// const esbuildCopy = require('esbuild-plugin-copy').default
// const esbuildOptions = {
// plugins: [
// esbuildCopy({
// assets: {
// from: [path.resolve(__dirname, 'node_modules/somepackage/files/*')],
// to: [path.resolve(__dirname, 'output/_bridgetown/somepackage/files')],
// },
// verbose: false
// }),
// ]
// }
// ```
//
// You can also support custom base_path deployments via changing `publicPath`.
//
// ```
// const esbuildOptions = { publicPath: "/my_subfolder/_bridgetown/static" }
// ```
/**
* @typedef { import("esbuild").BuildOptions } BuildOptions
* @type {BuildOptions}
*/
const esbuildOptions = {}
build(outputFolder, esbuildOptions)

View File

@ -1,6 +0,0 @@
import "index.scss"
// Import all JavaScript & CSS files from src/_components
import components from "bridgetownComponents/**/*.{js,jsx,js.rb,css}"
console.info("Bridgetown is loaded!")

View File

@ -1,434 +0,0 @@
@import url(https://fonts.bunny.net/css?family=poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i|raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i|red-hat-text:300,300i,400,400i,500,500i,600,600i,700,700i);
body {
background: #4E4E73;
color: white;
font-family: 'Poppins', sans-serif;
max-width: 1200px;
margin: 0 auto;
overflow-x: hidden;
* {
outline: none;
cursor: default;
}
a {
color: white;
cursor: pointer;
}
}
::selection {color: inherit; background: rgba(255, 255, 255, 0.25);}
::-webkit-scrollbar {width: 0px}
form {
display: grid;
input, textarea {
margin-bottom: 24px;
background: #3d3d5b;
border: none;
padding: 6px 12px;
border-radius: 4px;
color: white;
}
textarea {
height: 120px;
}
button[type="submit"] {
background: #6d6d95;
color: white;
border: none;
border-radius: 4px;
padding: 12px;
width: fit-content;
justify-self: right;
}
}
svg.svg-inline--fa {
min-width: 18px;
display: inline-block;
}
p.boxl a {
text-decoration: none;
background: rgb(255 255 255 / 10%);
border-radius: 6px;
display: block;
padding: 16px 24px;
border: 1px rgb(255 255 255 / 10%) solid;
}
a#button {
background: white;
color: black;
text-decoration: none;
padding: 6px 12px;
border-radius: 6px;
font-size: 14px;
}
.broadcast {
text-decoration: none;
background: rgb(255 255 255 / 10%);
padding: 6px 16px;
border-bottom: 1px white solid;
font-size: 14px;
z-index: 10;
* {cursor: pointer}
a {
text-decoration: none;
}
p {
font-size: 14px !important;
margin: 0px;
}
svg {
margin: 0px 8px 0px 4px;
}
}
.article {
img {
width: 100%;
border-radius: 10px;
}
}
header {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 160px;
background: #3D3D5B;
text-align: center;
.header-content {
display: grid;
grid-auto-flow: column;
align-items: center;
height: 160px;
max-width: 1200px;
position: absolute;
left: 50%;
transform: translate(-50%);
width: inherit;
.header-start {
display: flex;
h1 {
cursor: pointer;
span#h-sudo {
font-family: 'Raleway';
cursor: pointer;
font-weight: normal;
margin-right: -6px;
}
span#h-vanilla {
font-family: 'Red Hat Text';
cursor: pointer;
}
}
img {
height: 78px;
margin-right: 44px;
cursor: pointer;
}
a {
cursor: pointer;
display: flex;
text-decoration: none;
}
}
.header-end {
.header-end-desktop {
display: inline-flex;
align-items: center;
float: right;
a {
text-decoration: none;
margin-left: 32px;
}
svg {
cursor: pointer;
}
}
.header-end-mobile {
display: none
button {
color: white;
background: transparent;
border: none;
aspect-ratio: 1;
font-size: 42px;
}
.header-end-menu-mobile {
position: fixed;
z-index: 10;
top: 0px;
background: rgb(61 61 91 / 90%);
backdrop-filter: blur(4px);
width: 100%;
left: 50%;
display: none;
font-size: 24px;
grid-gap: 40px;
padding: 60px;
transform: translate(-50%);
border-bottom: 2px rgb(255 255 255 / 25%) solid;
}
}
}
}
}
body > header > div.header-content > div.header-end > div.header-end-mobile > button {
color: white;
background: #4e4e73;
border: none;
padding: 6px 12px;
border-radius: 6px;
font-weight: bold;
font-size: 14px;
display: none;
}
footer {
margin-top: 24px;
font-size: 14px !important;
.footer-content {
display: grid;
grid-auto-flow: column;
align-items: center;
.footer-start {
font-size: 14px !important;
}
.footer-end {
text-align: right;
a {
margin-left: 32px;
text-decoration: none;
}
}
}
}
.page-content {
margin-top: 210px;
p {
font-size: 14px;
margin: 4px 0px;
}
}
.hero {
.hero-wb {
position: absolute;
background: #3d3d5b;
width: 100%;
height: 610px;
left: 50%;
transform: translate(-50%);
z-index: -1;
}
.hero-content {
display: grid;
grid-auto-flow: column;
align-items: center;
background: #3d3d5a;
margin: -50px 0px 130px 0px;
height: 610px;
.hero-start {
margin-top: -170px;
}
}
}
.timeline {
.timeline-content {
display: grid;
grid-auto-flow: column;
align-items: center;
.timeline-start {
display: grid;
grid-auto-flow: column;
align-items: center;
height: 100%;
.timeline-when h1 {
font-size: 20px;
}
.timelime-line-begin {
background: white;
height: 50%;
width: 4px;
display: flex;
align-self: end;
}
.timelime-line-normal {
background: white;
height: 100%;
width: 4px;
display: flex;
}
.timelime-line-end {
background: white;
height: 50%;
width: 4px;
display: flex;
align-self: start;
}
}
.timeline-end {
text-align: right;
img {
border-radius: 6px;
box-shadow: 0px 4px 60px 0px rgb(0 0 0 / 25%);
transform: scale(0.8);
transition: 1s transform;
}
}
.timeline-end img:hover {
transform: scale(0.9);
transition: 1s transform;
}
}
}
.project {
border-radius: 10px;
background-size: cover;
background-repeat: no-repeat;
display: grid;
grid-template-columns: 50% 50%;
align-items: center;
height: 400px;
padding-left: 92px;
border: 2px rgb(255 255 255 / 25%) solid;
margin-bottom: 16px;
* {cursor: pointer}
a {text-decoration: none}
#p-date {
font-size: 16px;
font-weight: bold;
margin: -12px 0px 12px 0px;
}
}
a.nr-card {
display: grid;
grid-template-columns: 25% 75%;
grid-gap: 64px;
text-decoration: none;
* {
cursor: pointer;
}
h2 {
font-size: 24px;
font-family: 'Red Hat Text';
}
h3 {
font-weight: normal;
font-size: 14px;
font-family: 'Red Hat Text';
}
img {
width: 100%;
border-radius: 6px;
border: 2px rgb(255 255 255 / 10%) solid;
aspect-ratio: 16/9;
}
}
// Doc
.doc {
display: grid;
grid-template-columns: 200px calc(100% - 200px);
grid-gap: 32px;
.sidebar-doc {
ul {
padding: 0px;
display: grid;
grid-gap: 6px;
a {
line-height: 18px;
margin-bottom: 6px;
text-decoration: none;
padding: 6px 0px 6px 12px;
border-radius: 4px;
}
}
}
.doc-content {
code.highlighter-rouge {
background: #6d6d95;
color: white;
border-radius: 4px;
font-family: monospace;
}
pre {
background: #6d6d95;
color: white;
border-radius: 4px;
padding: 6px;
font-family: monospace;
}
blockquote {
width: max-content;
background: #6d6d95;
border-left: 2px white solid;
margin: 0px 0px 24px 0px;
padding: 6px 12px;
border-radius: 0px 4px 4px 0px;
}
}
}
//
@media only screen and (max-width:1300px) {
body, .header-content {
max-width: calc(100% - 100px) !important;
}
}
@media only screen and (max-width: 920px) {
header {
height: 200px !important;
}
.header-content {
grid-auto-flow: row !important;
height: 150px !important;
place-items: center !important;
}
}
@media only screen and (max-width: 650px) {
body > header > div.header-content > div.header-end > div.header-end-mobile > button {
display: inherit !important;
}
.header-end-desktop {
display: none !important;
}
a.nr-card {
grid-auto-flow: row !important;
grid-template-columns: inherit !important;
grid-gap: 0px !important;
}
a.nr-card h3 {
font-size: 12px !important;
margin: 0px 0px -12px 0px !important;
}
.project {
background-position: -300px 0px !important;
padding: 0px 0px 0px 50px !important;
grid-template-columns: 90% !important;
}
.hero-end, .timelime-line-normal, .timelime-line-end, .timelime-line-begin {
display: none !important;
}
.timeline-content {
grid-auto-flow: row !important;
}
.timeline img {
width: 100%;
}
.timeline-when h1 {
text-align: center;
}
}

View File

View File

@ -1,4 +0,0 @@
class SiteBuilder < Bridgetown::Builder
# write builders which subclass SiteBuilder in plugins/builders
end

View File

@ -1,11 +0,0 @@
module.exports = {
plugins: {
'postcss-flexbugs-fixes': {},
'postcss-preset-env': {
autoprefixer: {
flexbox: 'no-2009'
},
stage: 3
}
}
}

View File

@ -1,15 +0,0 @@
# Roda is a simple Rack-based framework with a flexible architecture based
# on the concept of a routing tree. Bridgetown uses it for its development
# server, but you can also run it in production for fast, dynamic applications.
#
# Learn more at: http://roda.jeremyevans.net
class RodaApp < Bridgetown::Rack::Roda
# Some Roda configuration is handled in the `config/initializers.rb` file.
# But you can also add additional Roda configuration here if needed.
route do |r|
# Load Roda routes in server/routes (and src/_routes via `bridgetown-routes`)
r.bridgetown
end
end

View File

@ -1,10 +0,0 @@
# Rename this file to hello.rb to try it out
class Routes::Hello < Bridgetown::Rack::Routes
route do |r|
# route: GET /hello/:name
r.get "hello", String do |name|
{ hello: "friend #{name}" }
end
end
end

866
yarn.lock
View File

@ -1,866 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@csstools/postcss-cascade-layers@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz#8a997edf97d34071dd2e37ea6022447dd9e795ad"
integrity sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==
dependencies:
"@csstools/selector-specificity" "^2.0.2"
postcss-selector-parser "^6.0.10"
"@csstools/postcss-color-function@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz#2bd36ab34f82d0497cfacdc9b18d34b5e6f64b6b"
integrity sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==
dependencies:
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
postcss-value-parser "^4.2.0"
"@csstools/postcss-font-format-keywords@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz#677b34e9e88ae997a67283311657973150e8b16a"
integrity sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-hwb-function@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz#ab54a9fce0ac102c754854769962f2422ae8aa8b"
integrity sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-ic-unit@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz#28237d812a124d1a16a5acc5c3832b040b303e58"
integrity sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==
dependencies:
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
postcss-value-parser "^4.2.0"
"@csstools/postcss-is-pseudo-class@^2.0.7":
version "2.0.7"
resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz#846ae6c0d5a1eaa878fce352c544f9c295509cd1"
integrity sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==
dependencies:
"@csstools/selector-specificity" "^2.0.0"
postcss-selector-parser "^6.0.10"
"@csstools/postcss-nested-calc@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz#d7e9d1d0d3d15cf5ac891b16028af2a1044d0c26"
integrity sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-normalize-display-values@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz#15da54a36e867b3ac5163ee12c1d7f82d4d612c3"
integrity sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-oklab-function@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz#88cee0fbc8d6df27079ebd2fa016ee261eecf844"
integrity sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==
dependencies:
"@csstools/postcss-progressive-custom-properties" "^1.1.0"
postcss-value-parser "^4.2.0"
"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz#542292558384361776b45c85226b9a3a34f276fa"
integrity sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-stepped-value-functions@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz#f8772c3681cc2befed695e2b0b1d68e22f08c4f4"
integrity sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-text-decoration-shorthand@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz#ea96cfbc87d921eca914d3ad29340d9bcc4c953f"
integrity sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-trigonometric-functions@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz#94d3e4774c36d35dcdc88ce091336cb770d32756"
integrity sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==
dependencies:
postcss-value-parser "^4.2.0"
"@csstools/postcss-unset-value@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz#c99bb70e2cdc7312948d1eb41df2412330b81f77"
integrity sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==
"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz#c9c61d9fe5ca5ac664e1153bb0aa0eba1c6d6308"
integrity sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==
"@esbuild/android-arm@0.15.18":
version "0.15.18"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80"
integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==
"@esbuild/linux-loong64@0.15.18":
version "0.15.18"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239"
integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==
anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
autoprefixer@^10.4.13:
version "10.4.13"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
dependencies:
browserslist "^4.21.4"
caniuse-lite "^1.0.30001426"
fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
brace-expansion@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
browserslist@^4.21.4:
version "4.21.5"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
dependencies:
caniuse-lite "^1.0.30001449"
electron-to-chromium "^1.4.284"
node-releases "^2.0.8"
update-browserslist-db "^1.0.10"
caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001449:
version "1.0.30001462"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe"
integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==
"chokidar@>=3.0.0 <4.0.0":
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
dependencies:
anymatch "~3.1.2"
braces "~3.0.2"
glob-parent "~5.1.2"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.6.0"
optionalDependencies:
fsevents "~2.3.2"
css-blank-pseudo@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561"
integrity sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==
dependencies:
postcss-selector-parser "^6.0.9"
css-has-pseudo@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73"
integrity sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==
dependencies:
postcss-selector-parser "^6.0.9"
css-prefers-color-scheme@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz#ca8a22e5992c10a5b9d315155e7caee625903349"
integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==
cssdb@^7.1.0:
version "7.4.1"
resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-7.4.1.tgz#61d55c0173126689922a219e15e131e4b5caf422"
integrity sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ==
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
electron-to-chromium@^1.4.284:
version "1.4.325"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.325.tgz#7b97238a61192d85d055d97f3149832b3617d37b"
integrity sha512-K1C03NT4I7BuzsRdCU5RWkgZxtswnKDYM6/eMhkEXqKu4e5T+ck610x3FPzu1y7HVFSiQKZqP16gnJzPpji1TQ==
esbuild-android-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5"
integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==
esbuild-android-arm64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04"
integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==
esbuild-darwin-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410"
integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==
esbuild-darwin-arm64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337"
integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==
esbuild-freebsd-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2"
integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==
esbuild-freebsd-arm64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635"
integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==
esbuild-linux-32@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce"
integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==
esbuild-linux-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c"
integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==
esbuild-linux-arm64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d"
integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==
esbuild-linux-arm@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc"
integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==
esbuild-linux-mips64le@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb"
integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==
esbuild-linux-ppc64le@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507"
integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==
esbuild-linux-riscv64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6"
integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==
esbuild-linux-s390x@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb"
integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==
esbuild-netbsd-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998"
integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==
esbuild-openbsd-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8"
integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==
esbuild-sunos-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971"
integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==
esbuild-windows-32@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3"
integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==
esbuild-windows-64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0"
integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==
esbuild-windows-arm64@0.15.18:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7"
integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==
esbuild@^0.15.12:
version "0.15.18"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d"
integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==
optionalDependencies:
"@esbuild/android-arm" "0.15.18"
"@esbuild/linux-loong64" "0.15.18"
esbuild-android-64 "0.15.18"
esbuild-android-arm64 "0.15.18"
esbuild-darwin-64 "0.15.18"
esbuild-darwin-arm64 "0.15.18"
esbuild-freebsd-64 "0.15.18"
esbuild-freebsd-arm64 "0.15.18"
esbuild-linux-32 "0.15.18"
esbuild-linux-64 "0.15.18"
esbuild-linux-arm "0.15.18"
esbuild-linux-arm64 "0.15.18"
esbuild-linux-mips64le "0.15.18"
esbuild-linux-ppc64le "0.15.18"
esbuild-linux-riscv64 "0.15.18"
esbuild-linux-s390x "0.15.18"
esbuild-netbsd-64 "0.15.18"
esbuild-openbsd-64 "0.15.18"
esbuild-sunos-64 "0.15.18"
esbuild-windows-32 "0.15.18"
esbuild-windows-64 "0.15.18"
esbuild-windows-arm64 "0.15.18"
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
dependencies:
to-regex-range "^5.0.1"
fraction.js@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob@^9.3.4:
version "9.3.4"
resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.4.tgz#e75dee24891a80c25cc7ee1dd327e126b98679af"
integrity sha512-qaSc49hojMOv1EPM4EuyITjDSgSKI0rthoHnvE81tcOi1SCVndHko7auqxdQ14eiQG2NDBJBE86+2xIrbIvrbA==
dependencies:
fs.realpath "^1.0.0"
minimatch "^8.0.2"
minipass "^4.2.4"
path-scurry "^1.6.1"
has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
immutable@^4.0.0:
version "4.2.4"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a"
integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==
is-binary-path@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
binary-extensions "^2.0.0"
is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
dependencies:
has "^1.0.3"
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
lilconfig@^2.0.5:
version "2.1.0"
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==