├── .gitignore
├── README.md
├── package-lock.json
├── package.json
├── packages
├── ajax-with-axios-and-botpoison
│ └── index.html
├── ajax-with-axios-and-recaptcha-v2
│ └── index.html
├── ajax-with-axios
│ └── index.html
├── ajax-with-fetch-and-recaptcha-v2
│ └── index.html
├── ajax-with-fetch
│ └── index.html
├── ajax-with-javascript-xhr
│ └── index.html
├── ajax-with-jquery
│ └── index.html
├── alpinejs-with-fetch
│ └── index.html
├── gatsby
│ ├── package-lock.json
│ ├── package.json
│ └── src
│ │ └── pages
│ │ └── index.jsx
├── gridsome
│ ├── package-lock.json
│ ├── package.json
│ └── src
│ │ └── pages
│ │ └── Index.vue
├── html-with-botpoison
│ └── index.html
├── hugo
│ ├── config.toml
│ ├── content
│ │ └── _index.md
│ ├── docker-compose.yml
│ └── layouts
│ │ └── index.html
├── java-with-retrofit
│ └── FormsparkService.java
├── jekyll
│ ├── _config.yml
│ ├── _layouts
│ │ └── default.html
│ ├── docker-compose.yml
│ └── index.html
├── kotlin-with-retrofit
│ └── FormsparkService.kt
├── nextjs-with-fetch
│ ├── package-lock.json
│ ├── package.json
│ └── pages
│ │ └── index.jsx
├── nextjs-with-use-formspark
│ ├── package-lock.json
│ ├── package.json
│ └── pages
│ │ └── index.jsx
├── nuxtjs-with-fetch
│ ├── package-lock.json
│ ├── package.json
│ └── pages
│ │ └── index.vue
├── objective-c
│ └── Submit.m
├── react-native-with-fetch
│ └── ContactScreen.jsx
├── react-native-with-use-formspark
│ └── ContactScreen.jsx
├── react-with-fetch
│ ├── index.html
│ ├── index.jsx
│ ├── package-lock.json
│ └── package.json
├── react-with-use-formspark
│ ├── index.html
│ ├── index.jsx
│ ├── package-lock.json
│ └── package.json
├── svelte-with-fetch
│ ├── package-lock.json
│ ├── package.json
│ ├── rollup.config.js
│ └── src
│ │ ├── App.svelte
│ │ └── main.js
├── vue-with-fetch
│ └── ContactScreen.vue
├── vue-with-petite-vue-and-fetch
│ └── index.html
├── vue-with-vue-use-formspark
│ └── ContactScreen.vue
└── webflow
│ └── custom-footer-code.html
└── scripts
├── execute.sh
└── format.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .cache
3 | .idea
4 | .jekyll-cache
5 | .next
6 | .nuxt
7 | .temp
8 | dist
9 | node_modules
10 | packages/jekyll/_site
11 | public
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Formspark examples
2 |
3 | - [AJAX with Axios](/packages/ajax-with-axios)
4 | - [AJAX with Axios and Botpoison](/packages/ajax-with-axios-and-botpoison)
5 | - [AJAX with Axios and reCAPTCHA v2](/packages/ajax-with-axios-and-recaptcha-v2)
6 | - [AJAX with Fetch](/packages/ajax-with-fetch)
7 | - [AJAX with Fetch and reCAPTCHA v2](/packages/ajax-with-fetch-and-recaptcha-v2)
8 | - [AJAX with Javascript XHR](/packages/ajax-with-javascript-xhr)
9 | - [AJAX with jQuery](/packages/ajax-with-jquery)
10 | - [Alpine.js with Fetch](/packages/alpinejs-with-fetch)
11 | - [Gatsby](/packages/gatsby)
12 | - [Gridsome](/packages/gridsome)
13 | - [HTML with Botpoison](/packages/html-with-botpoison)
14 | - [Hugo](/packages/hugo)
15 | - [Java with Retrofit](/packages/java-with-retrofit)
16 | - [Jekyll](/packages/jekyll)
17 | - [Kotlin with Retrofit](/packages/kotlin-with-retrofit)
18 | - [Next.js with Fetch](/packages/nextjs-with-fetch)
19 | - [Next.js with use-formspark](/packages/nextjs-with-use-formspark)
20 | - [Nuxt.js with Fetch](/packages/nuxtjs-with-fetch)
21 | - [Objective-C](/packages/objective-c)
22 | - [React with Fetch](/packages/react-with-fetch)
23 | - [React with use-formspark](/packages/react-with-use-formspark)
24 | - [React Native with Fetch](/packages/react-native-with-fetch)
25 | - [React Native with use-formspark](/packages/react-native-with-use-formspark)
26 | - [Svelte with Fetch](/packages/svelte-with-fetch)
27 | - [Vue with Fetch](/packages/vue-with-fetch)
28 | - [Vue with petite-vue and Fetch](/packages/vue-with-petite-vue-and-fetch)
29 | - [Vue with vue-use-formspark](/packages/vue-with-vue-use-formspark)
30 | - [Webflow](/packages/webflow)
31 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@formspark/examples",
3 | "version": "0.0.1",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "@formspark/examples",
9 | "version": "0.0.1",
10 | "devDependencies": {
11 | "prettier": "^2.5.1"
12 | }
13 | },
14 | "node_modules/prettier": {
15 | "version": "2.5.1",
16 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
17 | "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
18 | "dev": true,
19 | "bin": {
20 | "prettier": "bin-prettier.js"
21 | },
22 | "engines": {
23 | "node": ">=10.13.0"
24 | }
25 | }
26 | },
27 | "dependencies": {
28 | "prettier": {
29 | "version": "2.5.1",
30 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
31 | "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
32 | "dev": true
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@formspark/examples",
3 | "private": true,
4 | "version": "0.0.1",
5 | "scripts": {
6 | "execute": "sh scripts/execute.sh",
7 | "format": "sh scripts/format.sh"
8 | },
9 | "devDependencies": {
10 | "prettier": "^2.5.1"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/ajax-with-axios-and-botpoison/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Axios and Botpoison
6 |
7 |
8 |
9 |
10 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/packages/ajax-with-axios-and-recaptcha-v2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Axios and reCAPTCHA v2
6 |
7 |
8 |
9 |
10 |
11 |
12 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/packages/ajax-with-axios/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Axios
6 |
7 |
8 |
9 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/packages/ajax-with-fetch-and-recaptcha-v2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Fetch and reCAPTCHA v2
6 |
7 |
8 |
9 |
10 |
11 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/packages/ajax-with-fetch/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Fetch
6 |
7 |
8 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/packages/ajax-with-javascript-xhr/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with Javascript XHR
6 |
7 |
8 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/packages/ajax-with-jquery/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | AJAX with jQuery
6 |
7 |
8 |
9 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/packages/alpinejs-with-fetch/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | Alpine.js with Fetch
6 |
10 |
11 |
12 |
21 |
22 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/packages/gatsby/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "gatsby develop",
4 | "build": "gatsby build"
5 | },
6 | "dependencies": {
7 | "gatsby": "^4.3.0",
8 | "react": "^17.0.2",
9 | "react-dom": "^17.0.2"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/gatsby/src/pages/index.jsx:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | const FORMSPARK_ACTION_URL = "https://submit-form.com/your-form-id";
4 |
5 | export default function HomePage() {
6 | return (
7 |
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/packages/gridsome/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "gridsome develop",
4 | "build": "gridsome build"
5 | },
6 | "dependencies": {
7 | "gridsome": "^0.7.23"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/gridsome/src/pages/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
20 |
--------------------------------------------------------------------------------
/packages/html-with-botpoison/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | HTML with Botpoison
6 |
7 |
8 |
9 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/hugo/config.toml:
--------------------------------------------------------------------------------
1 | title = "Formspark | Hugo"
2 |
3 | [params]
4 | formspark_form_id = "your-form-id"
--------------------------------------------------------------------------------
/packages/hugo/content/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Contact
3 | ---
4 |
--------------------------------------------------------------------------------
/packages/hugo/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 |
3 | services:
4 | hugo:
5 | image: klakegg/hugo:latest
6 | command: server
7 | ports:
8 | - "1313:1313"
9 | volumes:
10 | - ".:/src"
11 |
--------------------------------------------------------------------------------
/packages/hugo/layouts/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ .Title }}
4 |
5 |
6 | {{ .Title }}
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/java-with-retrofit/FormsparkService.java:
--------------------------------------------------------------------------------
1 | private class ContactModel {
2 | private String name;
3 | private String message;
4 |
5 | public String getName() {
6 | return name;
7 | }
8 |
9 | public String getMessage() {
10 | return message;
11 | }
12 |
13 | public void setName(String name) {
14 | this.name = name;
15 | }
16 |
17 | public void setMessage(String message) {
18 | this.message = message;
19 | }
20 | }
21 |
22 |
23 | private interface FormsparkApi {
24 |
25 | @Headers({"Content-Type: application/json", "Accept: application/json"})
26 | @POST("your-form-id")
27 | Call contact(@Body ContactModel contactModel);
28 |
29 | }
30 |
31 | public class FormsparkService {
32 |
33 | private void submit() {
34 | Gson gson = new GsonBuilder()
35 | .setLenient()
36 | .create();
37 |
38 | OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
39 | .connectTimeout(1000, TimeUnit.SECONDS)
40 | .readTimeout(1000, TimeUnit.SECONDS)
41 | .writeTimeout(1000, TimeUnit.SECONDS)
42 | .build();
43 |
44 |
45 | Retrofit retrofit = new Retrofit.Builder()
46 | .baseUrl("https://submit-form.com/")
47 | .client(okHttpClient)
48 | .addConverterFactory(GsonConverterFactory.create(gson))
49 | .build();
50 |
51 |
52 | RetrofitApi retrofitApi = retrofit.create(FormsparkApi.class);
53 |
54 | ContactModel contactModel = new ContactModel();
55 | contactModel.setName("your-name");
56 | contactModel.setMessage("your-message");
57 |
58 | call = retrofitApi.contactUs(contactModel);
59 |
60 | call.enqueue(new Callback() {
61 | @Override
62 | public void onResponse(Call call, Response response) {
63 | progressBar.setVisibility(View.GONE);
64 | runningService = false;
65 | if (response.isSuccessful()) {
66 | // Request succesful
67 |
68 | } else {
69 | // request not succesful
70 | }
71 |
72 | }
73 |
74 | @Override
75 | public void onFailure(Call call, Throwable t) {
76 | if (call.isCanceled()) {
77 | // Request canceled
78 | } else {
79 | // Request failed
80 | }
81 | }
82 | });
83 | }
84 |
85 | }
--------------------------------------------------------------------------------
/packages/jekyll/_config.yml:
--------------------------------------------------------------------------------
1 | title: Formspark | Jekyll
2 | formspark_form_id: your-form-id
3 | exclude: [docker-compose.yml]
4 |
--------------------------------------------------------------------------------
/packages/jekyll/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ site.title }}}
5 |
6 |
7 | {{ content }}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/jekyll/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 |
3 | services:
4 | jekyll:
5 | image: jekyll/jekyll:latest
6 | command: jekyll serve --watch --force_polling --verbose
7 | ports:
8 | - 4000:4000
9 | volumes:
10 | - .:/srv/jekyll
11 |
--------------------------------------------------------------------------------
/packages/jekyll/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
9 |
--------------------------------------------------------------------------------
/packages/kotlin-with-retrofit/FormsparkService.kt:
--------------------------------------------------------------------------------
1 | data class ContactResponse(val name: String, val message: String)
2 |
3 | interface ApiService {
4 |
5 | @POST("your-form-id")
6 | fun contact(@Body data: HashMap): Single
7 |
8 | }
9 |
10 | class FormsparkService {
11 |
12 | companion object {
13 | private var instance: ServiceBuilder? = null
14 | private var retrofit: ApiService? = null
15 | private var context: Context? = null
16 |
17 | private const val baseURL = "https://submit-form.com/"
18 |
19 | fun initialize(context: Context) {
20 | if (instance == null) {
21 | instance = ServiceBuilder()
22 | Companion.context = context
23 | instance!!.initializeRetro()
24 | }
25 | }
26 |
27 | fun get(): ApiService {
28 | return retrofit
29 | ?: throw IllegalStateException("FormsparkService must be initialized first.")
30 | }
31 | }
32 |
33 | private fun initializeRetro() {
34 | retrofit = Retrofit.Builder()
35 | .baseUrl(baseURL)
36 | .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
37 | .addConverterFactory(GsonConverterFactory.create(GsonBuilder().setLenient().create()))
38 | .client(getOkHttpClient())
39 | .build()
40 | .create(ApiService::class.java)
41 | }
42 |
43 | private fun getOkHttpClient(): OkHttpClient {
44 | return OkHttpClient
45 | .Builder()
46 | .connectTimeout(1000, TimeUnit.SECONDS)
47 | .writeTimeout(1000, TimeUnit.SECONDS)
48 | .readTimeout(1000, TimeUnit.SECONDS)
49 | .addInterceptor { chain ->
50 | val requestBuilder: Request.Builder = chain.request().newBuilder()
51 | requestBuilder.header("Content-Type", "application/json")
52 | requestBuilder.header("Accept", "application/json")
53 | chain.proceed(requestBuilder.build())
54 | }.build()
55 | }
56 |
57 | }
58 |
59 | // Then call: FormsparkService.get().contact(data)
--------------------------------------------------------------------------------
/packages/nextjs-with-fetch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "next build",
4 | "dev": "next dev",
5 | "start": "next start"
6 | },
7 | "dependencies": {
8 | "next": "^12.0.7",
9 | "react": "^17.0.2",
10 | "react-dom": "^17.0.2"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/nextjs-with-fetch/pages/index.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 |
3 | const FORMSPARK_ACTION_URL = "https://submit-form.com/your-form-id";
4 |
5 | function ContactPage() {
6 | const [message, setMessage] = useState("");
7 |
8 | const onSubmit = async (e) => {
9 | e.preventDefault();
10 | await fetch(FORMSPARK_ACTION_URL, {
11 | method: "POST",
12 | headers: {
13 | "Content-Type": "application/json",
14 | Accept: "application/json",
15 | },
16 | body: JSON.stringify({
17 | message,
18 | }),
19 | });
20 | alert("Form submitted");
21 | };
22 |
23 | return (
24 |
28 | );
29 | }
30 |
31 | export default ContactPage;
32 |
--------------------------------------------------------------------------------
/packages/nextjs-with-use-formspark/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "next build",
4 | "dev": "next dev",
5 | "start": "next start"
6 | },
7 | "dependencies": {
8 | "@formspark/use-formspark": "^0.1.38",
9 | "next": "^12.0.7",
10 | "react": "^17.0.2",
11 | "react-dom": "^17.0.2"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/nextjs-with-use-formspark/pages/index.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import { useFormspark } from "@formspark/use-formspark";
3 |
4 | const FORMSPARK_FORM_ID = "your-form-id";
5 |
6 | function ContactPage() {
7 | const [submit, submitting] = useFormspark({
8 | formId: FORMSPARK_FORM_ID,
9 | });
10 |
11 | const [message, setMessage] = useState("");
12 |
13 | const onSubmit = async (e) => {
14 | e.preventDefault();
15 | await submit({ message });
16 | alert("Form submitted");
17 | };
18 |
19 | return (
20 |
26 | );
27 | }
28 |
29 | export default ContactPage;
30 |
--------------------------------------------------------------------------------
/packages/nuxtjs-with-fetch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "nuxt build",
4 | "dev": "nuxt",
5 | "start": "nuxt start"
6 | },
7 | "dependencies": {
8 | "nuxt": "^2.15.8"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/nuxtjs-with-fetch/pages/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
37 |
--------------------------------------------------------------------------------
/packages/objective-c/Submit.m:
--------------------------------------------------------------------------------
1 | -(void)submit{
2 | NSString *formsparkActionUrl = @"https://submit-form.com/your-form-id";
3 | NSDictionary *jsonBodyDictionary = @{@"name":_txtName.text, @"message":_txtMessage.text};
4 | NSData *jsonBodyData = [NSJSONSerialization dataWithJSONObject:jsonBodyDictionary options:kNilOptions error:nil];
5 |
6 | NSMutableURLRequest *request = [NSMutableURLRequest new];
7 | request.HTTPMethod = @"POST";
8 |
9 | [request setURL:[NSURL URLWithString:formsparkActionUrl]];
10 | [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
11 | [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
12 | [request setHTTPBody:jsonBodyData];
13 |
14 |
15 | NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
16 | NSURLSession *session = [NSURLSession sessionWithConfiguration:config
17 | delegate:nil
18 | delegateQueue:[NSOperationQueue mainQueue]];
19 | NSURLSessionDataTask *task = [session dataTaskWithRequest:request
20 | completionHandler:^(NSData * _Nullable data,
21 | NSURLResponse * _Nullable response,
22 | NSError * _Nullable error) {
23 |
24 | NSHTTPURLResponse *asHTTPResponse = (NSHTTPURLResponse *) response;
25 | }];
26 | }
--------------------------------------------------------------------------------
/packages/react-native-with-fetch/ContactScreen.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import { Alert, Button, Text, TextInput, View } from "react-native";
3 |
4 | const FORMSPARK_ACTION_URL = "https://submit-form.com/your-form-id";
5 |
6 | function ContactScreen() {
7 | const [message, setMessage] = useState("");
8 |
9 | const onPress = async () => {
10 | await fetch(FORMSPARK_ACTION_URL, {
11 | method: "POST",
12 | headers: {
13 | "Content-Type": "application/json",
14 | Accept: "application/json",
15 | },
16 | body: JSON.stringify({
17 | message,
18 | }),
19 | });
20 | Alert.alert("Form submitted");
21 | };
22 |
23 | return (
24 |
25 |
26 | Message
27 | setMessage(message)}
30 | multiline={true}
31 | />
32 |
33 |
34 |
35 |
36 |
37 | );
38 | }
39 |
40 | export default ContactScreen;
41 |
--------------------------------------------------------------------------------
/packages/react-native-with-use-formspark/ContactScreen.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import { Alert, Button, Text, TextInput, View } from "react-native";
3 | import { useFormspark } from "@formspark/use-formspark";
4 |
5 | const FORMSPARK_FORM_ID = "your-form-id";
6 |
7 | function ContactScreen() {
8 | const [submit, submitting] = useFormspark({
9 | formId: FORMSPARK_FORM_ID,
10 | });
11 |
12 | const [message, setMessage] = useState("");
13 |
14 | const onPress = async () => {
15 | await submit({ message });
16 | Alert.alert("Form submitted");
17 | };
18 |
19 | return (
20 |
21 |
22 | Message
23 | setMessage(message)}
26 | multiline={true}
27 | />
28 |
29 |
30 |
31 |
32 |
33 | );
34 | }
35 |
36 | export default ContactScreen;
37 |
--------------------------------------------------------------------------------
/packages/react-with-fetch/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | React with Fetch
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/react-with-fetch/index.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import ReactDOM from "react-dom";
3 |
4 | const FORMSPARK_ACTION_URL = "https://submit-form.com/your-form-id";
5 |
6 | const Application = () => {
7 | const [message, setMessage] = useState("");
8 |
9 | const onSubmit = async (e) => {
10 | e.preventDefault();
11 | await fetch(FORMSPARK_ACTION_URL, {
12 | method: "POST",
13 | headers: {
14 | "Content-Type": "application/json",
15 | Accept: "application/json",
16 | },
17 | body: JSON.stringify({
18 | message,
19 | }),
20 | });
21 | alert("Form submitted");
22 | };
23 |
24 | return (
25 |
29 | );
30 | };
31 |
32 | ReactDOM.render(, document.getElementById("root"));
33 |
--------------------------------------------------------------------------------
/packages/react-with-fetch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "parcel index.jsx",
4 | "dev": "parcel index.html"
5 | },
6 | "browserslist": [
7 | "last 1 Chrome versions"
8 | ],
9 | "dependencies": {
10 | "react": "^17.0.2",
11 | "react-dom": "^17.0.2"
12 | },
13 | "devDependencies": {
14 | "parcel-bundler": "^1.12.5"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/react-with-use-formspark/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | React with use-formspark
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/react-with-use-formspark/index.jsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import ReactDOM from "react-dom";
3 | import { useFormspark } from "@formspark/use-formspark";
4 |
5 | const FORMSPARK_FORM_ID = "your-form-id";
6 |
7 | const Application = () => {
8 | const [submit, submitting] = useFormspark({
9 | formId: FORMSPARK_FORM_ID,
10 | });
11 |
12 | const [message, setMessage] = useState("");
13 |
14 | const onSubmit = async (e) => {
15 | e.preventDefault();
16 | await submit({ message });
17 | alert("Form submitted");
18 | };
19 |
20 | return (
21 |
27 | );
28 | };
29 |
30 | ReactDOM.render(, document.getElementById("root"));
31 |
--------------------------------------------------------------------------------
/packages/react-with-use-formspark/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "parcel index.jsx",
4 | "dev": "parcel index.html"
5 | },
6 | "browserslist": [
7 | "last 1 Chrome versions"
8 | ],
9 | "dependencies": {
10 | "@formspark/use-formspark": "^0.1.38",
11 | "react": "^17.0.2",
12 | "react-dom": "^17.0.2"
13 | },
14 | "devDependencies": {
15 | "parcel-bundler": "^1.12.5"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/svelte-with-fetch/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-with-fetch",
3 | "lockfileVersion": 2,
4 | "requires": true,
5 | "packages": {
6 | "": {
7 | "dependencies": {
8 | "sirv-cli": "^1.0.14"
9 | },
10 | "devDependencies": {
11 | "@rollup/plugin-commonjs": "^21.0.1",
12 | "@rollup/plugin-node-resolve": "^13.0.6",
13 | "rollup": "^2.60.2",
14 | "rollup-plugin-css-only": "^3.1.0",
15 | "rollup-plugin-livereload": "^2.0.5",
16 | "rollup-plugin-svelte": "^7.1.0",
17 | "rollup-plugin-terser": "^7.0.2",
18 | "svelte": "^3.44.2"
19 | }
20 | },
21 | "node_modules/@babel/code-frame": {
22 | "version": "7.16.0",
23 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
24 | "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==",
25 | "dev": true,
26 | "dependencies": {
27 | "@babel/highlight": "^7.16.0"
28 | },
29 | "engines": {
30 | "node": ">=6.9.0"
31 | }
32 | },
33 | "node_modules/@babel/helper-validator-identifier": {
34 | "version": "7.15.7",
35 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
36 | "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
37 | "dev": true,
38 | "engines": {
39 | "node": ">=6.9.0"
40 | }
41 | },
42 | "node_modules/@babel/highlight": {
43 | "version": "7.16.0",
44 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
45 | "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
46 | "dev": true,
47 | "dependencies": {
48 | "@babel/helper-validator-identifier": "^7.15.7",
49 | "chalk": "^2.0.0",
50 | "js-tokens": "^4.0.0"
51 | },
52 | "engines": {
53 | "node": ">=6.9.0"
54 | }
55 | },
56 | "node_modules/@polka/url": {
57 | "version": "1.0.0-next.21",
58 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
59 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
60 | },
61 | "node_modules/@rollup/plugin-commonjs": {
62 | "version": "21.0.1",
63 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz",
64 | "integrity": "sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==",
65 | "dev": true,
66 | "dependencies": {
67 | "@rollup/pluginutils": "^3.1.0",
68 | "commondir": "^1.0.1",
69 | "estree-walker": "^2.0.1",
70 | "glob": "^7.1.6",
71 | "is-reference": "^1.2.1",
72 | "magic-string": "^0.25.7",
73 | "resolve": "^1.17.0"
74 | },
75 | "engines": {
76 | "node": ">= 8.0.0"
77 | },
78 | "peerDependencies": {
79 | "rollup": "^2.38.3"
80 | }
81 | },
82 | "node_modules/@rollup/plugin-node-resolve": {
83 | "version": "13.0.6",
84 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz",
85 | "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==",
86 | "dev": true,
87 | "dependencies": {
88 | "@rollup/pluginutils": "^3.1.0",
89 | "@types/resolve": "1.17.1",
90 | "builtin-modules": "^3.1.0",
91 | "deepmerge": "^4.2.2",
92 | "is-module": "^1.0.0",
93 | "resolve": "^1.19.0"
94 | },
95 | "engines": {
96 | "node": ">= 10.0.0"
97 | },
98 | "peerDependencies": {
99 | "rollup": "^2.42.0"
100 | }
101 | },
102 | "node_modules/@rollup/pluginutils": {
103 | "version": "3.1.0",
104 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
105 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
106 | "dev": true,
107 | "dependencies": {
108 | "@types/estree": "0.0.39",
109 | "estree-walker": "^1.0.1",
110 | "picomatch": "^2.2.2"
111 | },
112 | "engines": {
113 | "node": ">= 8.0.0"
114 | },
115 | "peerDependencies": {
116 | "rollup": "^1.20.0||^2.0.0"
117 | }
118 | },
119 | "node_modules/@rollup/pluginutils/node_modules/estree-walker": {
120 | "version": "1.0.1",
121 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
122 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
123 | "dev": true
124 | },
125 | "node_modules/@types/estree": {
126 | "version": "0.0.39",
127 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
128 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
129 | "dev": true
130 | },
131 | "node_modules/@types/node": {
132 | "version": "16.11.12",
133 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz",
134 | "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==",
135 | "dev": true
136 | },
137 | "node_modules/@types/resolve": {
138 | "version": "1.17.1",
139 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
140 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
141 | "dev": true,
142 | "dependencies": {
143 | "@types/node": "*"
144 | }
145 | },
146 | "node_modules/ansi-styles": {
147 | "version": "3.2.1",
148 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
149 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
150 | "dev": true,
151 | "dependencies": {
152 | "color-convert": "^1.9.0"
153 | },
154 | "engines": {
155 | "node": ">=4"
156 | }
157 | },
158 | "node_modules/anymatch": {
159 | "version": "3.1.2",
160 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
161 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
162 | "dev": true,
163 | "dependencies": {
164 | "normalize-path": "^3.0.0",
165 | "picomatch": "^2.0.4"
166 | },
167 | "engines": {
168 | "node": ">= 8"
169 | }
170 | },
171 | "node_modules/balanced-match": {
172 | "version": "1.0.2",
173 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
174 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
175 | "dev": true
176 | },
177 | "node_modules/binary-extensions": {
178 | "version": "2.2.0",
179 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
180 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
181 | "dev": true,
182 | "engines": {
183 | "node": ">=8"
184 | }
185 | },
186 | "node_modules/brace-expansion": {
187 | "version": "1.1.11",
188 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
189 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
190 | "dev": true,
191 | "dependencies": {
192 | "balanced-match": "^1.0.0",
193 | "concat-map": "0.0.1"
194 | }
195 | },
196 | "node_modules/braces": {
197 | "version": "3.0.2",
198 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
199 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
200 | "dev": true,
201 | "dependencies": {
202 | "fill-range": "^7.0.1"
203 | },
204 | "engines": {
205 | "node": ">=8"
206 | }
207 | },
208 | "node_modules/buffer-from": {
209 | "version": "1.1.2",
210 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
211 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
212 | "dev": true
213 | },
214 | "node_modules/builtin-modules": {
215 | "version": "3.2.0",
216 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
217 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
218 | "dev": true,
219 | "engines": {
220 | "node": ">=6"
221 | },
222 | "funding": {
223 | "url": "https://github.com/sponsors/sindresorhus"
224 | }
225 | },
226 | "node_modules/chalk": {
227 | "version": "2.4.2",
228 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
229 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
230 | "dev": true,
231 | "dependencies": {
232 | "ansi-styles": "^3.2.1",
233 | "escape-string-regexp": "^1.0.5",
234 | "supports-color": "^5.3.0"
235 | },
236 | "engines": {
237 | "node": ">=4"
238 | }
239 | },
240 | "node_modules/chokidar": {
241 | "version": "3.5.2",
242 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
243 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
244 | "dev": true,
245 | "dependencies": {
246 | "anymatch": "~3.1.2",
247 | "braces": "~3.0.2",
248 | "glob-parent": "~5.1.2",
249 | "is-binary-path": "~2.1.0",
250 | "is-glob": "~4.0.1",
251 | "normalize-path": "~3.0.0",
252 | "readdirp": "~3.6.0"
253 | },
254 | "engines": {
255 | "node": ">= 8.10.0"
256 | },
257 | "optionalDependencies": {
258 | "fsevents": "~2.3.2"
259 | }
260 | },
261 | "node_modules/color-convert": {
262 | "version": "1.9.3",
263 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
264 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
265 | "dev": true,
266 | "dependencies": {
267 | "color-name": "1.1.3"
268 | }
269 | },
270 | "node_modules/color-name": {
271 | "version": "1.1.3",
272 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
273 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
274 | "dev": true
275 | },
276 | "node_modules/commander": {
277 | "version": "2.20.3",
278 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
279 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
280 | "dev": true
281 | },
282 | "node_modules/commondir": {
283 | "version": "1.0.1",
284 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
285 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
286 | "dev": true
287 | },
288 | "node_modules/concat-map": {
289 | "version": "0.0.1",
290 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
291 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
292 | "dev": true
293 | },
294 | "node_modules/console-clear": {
295 | "version": "1.1.1",
296 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz",
297 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==",
298 | "engines": {
299 | "node": ">=4"
300 | }
301 | },
302 | "node_modules/deepmerge": {
303 | "version": "4.2.2",
304 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
305 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
306 | "dev": true,
307 | "engines": {
308 | "node": ">=0.10.0"
309 | }
310 | },
311 | "node_modules/escape-string-regexp": {
312 | "version": "1.0.5",
313 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
314 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
315 | "dev": true,
316 | "engines": {
317 | "node": ">=0.8.0"
318 | }
319 | },
320 | "node_modules/estree-walker": {
321 | "version": "2.0.2",
322 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
323 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
324 | "dev": true
325 | },
326 | "node_modules/fill-range": {
327 | "version": "7.0.1",
328 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
329 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
330 | "dev": true,
331 | "dependencies": {
332 | "to-regex-range": "^5.0.1"
333 | },
334 | "engines": {
335 | "node": ">=8"
336 | }
337 | },
338 | "node_modules/fs.realpath": {
339 | "version": "1.0.0",
340 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
341 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
342 | "dev": true
343 | },
344 | "node_modules/fsevents": {
345 | "version": "2.3.2",
346 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
347 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
348 | "dev": true,
349 | "hasInstallScript": true,
350 | "optional": true,
351 | "os": [
352 | "darwin"
353 | ],
354 | "engines": {
355 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
356 | }
357 | },
358 | "node_modules/function-bind": {
359 | "version": "1.1.1",
360 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
361 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
362 | "dev": true
363 | },
364 | "node_modules/get-port": {
365 | "version": "3.2.0",
366 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
367 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
368 | "engines": {
369 | "node": ">=4"
370 | }
371 | },
372 | "node_modules/glob": {
373 | "version": "7.2.0",
374 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
375 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
376 | "dev": true,
377 | "dependencies": {
378 | "fs.realpath": "^1.0.0",
379 | "inflight": "^1.0.4",
380 | "inherits": "2",
381 | "minimatch": "^3.0.4",
382 | "once": "^1.3.0",
383 | "path-is-absolute": "^1.0.0"
384 | },
385 | "engines": {
386 | "node": "*"
387 | },
388 | "funding": {
389 | "url": "https://github.com/sponsors/isaacs"
390 | }
391 | },
392 | "node_modules/glob-parent": {
393 | "version": "5.1.2",
394 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
395 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
396 | "dev": true,
397 | "dependencies": {
398 | "is-glob": "^4.0.1"
399 | },
400 | "engines": {
401 | "node": ">= 6"
402 | }
403 | },
404 | "node_modules/has": {
405 | "version": "1.0.3",
406 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
407 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
408 | "dev": true,
409 | "dependencies": {
410 | "function-bind": "^1.1.1"
411 | },
412 | "engines": {
413 | "node": ">= 0.4.0"
414 | }
415 | },
416 | "node_modules/has-flag": {
417 | "version": "3.0.0",
418 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
419 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
420 | "dev": true,
421 | "engines": {
422 | "node": ">=4"
423 | }
424 | },
425 | "node_modules/inflight": {
426 | "version": "1.0.6",
427 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
428 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
429 | "dev": true,
430 | "dependencies": {
431 | "once": "^1.3.0",
432 | "wrappy": "1"
433 | }
434 | },
435 | "node_modules/inherits": {
436 | "version": "2.0.4",
437 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
438 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
439 | "dev": true
440 | },
441 | "node_modules/is-binary-path": {
442 | "version": "2.1.0",
443 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
444 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
445 | "dev": true,
446 | "dependencies": {
447 | "binary-extensions": "^2.0.0"
448 | },
449 | "engines": {
450 | "node": ">=8"
451 | }
452 | },
453 | "node_modules/is-core-module": {
454 | "version": "2.8.0",
455 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
456 | "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
457 | "dev": true,
458 | "dependencies": {
459 | "has": "^1.0.3"
460 | },
461 | "funding": {
462 | "url": "https://github.com/sponsors/ljharb"
463 | }
464 | },
465 | "node_modules/is-extglob": {
466 | "version": "2.1.1",
467 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
468 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
469 | "dev": true,
470 | "engines": {
471 | "node": ">=0.10.0"
472 | }
473 | },
474 | "node_modules/is-glob": {
475 | "version": "4.0.3",
476 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
477 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
478 | "dev": true,
479 | "dependencies": {
480 | "is-extglob": "^2.1.1"
481 | },
482 | "engines": {
483 | "node": ">=0.10.0"
484 | }
485 | },
486 | "node_modules/is-module": {
487 | "version": "1.0.0",
488 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
489 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
490 | "dev": true
491 | },
492 | "node_modules/is-number": {
493 | "version": "7.0.0",
494 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
495 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
496 | "dev": true,
497 | "engines": {
498 | "node": ">=0.12.0"
499 | }
500 | },
501 | "node_modules/is-reference": {
502 | "version": "1.2.1",
503 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
504 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
505 | "dev": true,
506 | "dependencies": {
507 | "@types/estree": "*"
508 | }
509 | },
510 | "node_modules/jest-worker": {
511 | "version": "26.6.2",
512 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
513 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
514 | "dev": true,
515 | "dependencies": {
516 | "@types/node": "*",
517 | "merge-stream": "^2.0.0",
518 | "supports-color": "^7.0.0"
519 | },
520 | "engines": {
521 | "node": ">= 10.13.0"
522 | }
523 | },
524 | "node_modules/jest-worker/node_modules/has-flag": {
525 | "version": "4.0.0",
526 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
527 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
528 | "dev": true,
529 | "engines": {
530 | "node": ">=8"
531 | }
532 | },
533 | "node_modules/jest-worker/node_modules/supports-color": {
534 | "version": "7.2.0",
535 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
536 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
537 | "dev": true,
538 | "dependencies": {
539 | "has-flag": "^4.0.0"
540 | },
541 | "engines": {
542 | "node": ">=8"
543 | }
544 | },
545 | "node_modules/js-tokens": {
546 | "version": "4.0.0",
547 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
548 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
549 | "dev": true
550 | },
551 | "node_modules/kleur": {
552 | "version": "3.0.3",
553 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
554 | "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
555 | "engines": {
556 | "node": ">=6"
557 | }
558 | },
559 | "node_modules/livereload": {
560 | "version": "0.9.3",
561 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
562 | "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==",
563 | "dev": true,
564 | "dependencies": {
565 | "chokidar": "^3.5.0",
566 | "livereload-js": "^3.3.1",
567 | "opts": ">= 1.2.0",
568 | "ws": "^7.4.3"
569 | },
570 | "bin": {
571 | "livereload": "bin/livereload.js"
572 | },
573 | "engines": {
574 | "node": ">=8.0.0"
575 | }
576 | },
577 | "node_modules/livereload-js": {
578 | "version": "3.3.2",
579 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz",
580 | "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==",
581 | "dev": true
582 | },
583 | "node_modules/local-access": {
584 | "version": "1.1.0",
585 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz",
586 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw==",
587 | "engines": {
588 | "node": ">=6"
589 | }
590 | },
591 | "node_modules/magic-string": {
592 | "version": "0.25.7",
593 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
594 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
595 | "dev": true,
596 | "dependencies": {
597 | "sourcemap-codec": "^1.4.4"
598 | }
599 | },
600 | "node_modules/merge-stream": {
601 | "version": "2.0.0",
602 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
603 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
604 | "dev": true
605 | },
606 | "node_modules/minimatch": {
607 | "version": "3.0.4",
608 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
609 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
610 | "dev": true,
611 | "dependencies": {
612 | "brace-expansion": "^1.1.7"
613 | },
614 | "engines": {
615 | "node": "*"
616 | }
617 | },
618 | "node_modules/mri": {
619 | "version": "1.2.0",
620 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
621 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
622 | "engines": {
623 | "node": ">=4"
624 | }
625 | },
626 | "node_modules/mrmime": {
627 | "version": "1.0.0",
628 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz",
629 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==",
630 | "engines": {
631 | "node": ">=10"
632 | }
633 | },
634 | "node_modules/normalize-path": {
635 | "version": "3.0.0",
636 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
637 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
638 | "dev": true,
639 | "engines": {
640 | "node": ">=0.10.0"
641 | }
642 | },
643 | "node_modules/once": {
644 | "version": "1.4.0",
645 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
646 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
647 | "dev": true,
648 | "dependencies": {
649 | "wrappy": "1"
650 | }
651 | },
652 | "node_modules/opts": {
653 | "version": "2.0.2",
654 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
655 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==",
656 | "dev": true
657 | },
658 | "node_modules/path-is-absolute": {
659 | "version": "1.0.1",
660 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
661 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
662 | "dev": true,
663 | "engines": {
664 | "node": ">=0.10.0"
665 | }
666 | },
667 | "node_modules/path-parse": {
668 | "version": "1.0.7",
669 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
670 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
671 | "dev": true
672 | },
673 | "node_modules/picomatch": {
674 | "version": "2.3.0",
675 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
676 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
677 | "dev": true,
678 | "engines": {
679 | "node": ">=8.6"
680 | },
681 | "funding": {
682 | "url": "https://github.com/sponsors/jonschlinkert"
683 | }
684 | },
685 | "node_modules/randombytes": {
686 | "version": "2.1.0",
687 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
688 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
689 | "dev": true,
690 | "dependencies": {
691 | "safe-buffer": "^5.1.0"
692 | }
693 | },
694 | "node_modules/readdirp": {
695 | "version": "3.6.0",
696 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
697 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
698 | "dev": true,
699 | "dependencies": {
700 | "picomatch": "^2.2.1"
701 | },
702 | "engines": {
703 | "node": ">=8.10.0"
704 | }
705 | },
706 | "node_modules/require-relative": {
707 | "version": "0.8.7",
708 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
709 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
710 | "dev": true
711 | },
712 | "node_modules/resolve": {
713 | "version": "1.20.0",
714 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
715 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
716 | "dev": true,
717 | "dependencies": {
718 | "is-core-module": "^2.2.0",
719 | "path-parse": "^1.0.6"
720 | },
721 | "funding": {
722 | "url": "https://github.com/sponsors/ljharb"
723 | }
724 | },
725 | "node_modules/rollup": {
726 | "version": "2.60.2",
727 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz",
728 | "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==",
729 | "dev": true,
730 | "bin": {
731 | "rollup": "dist/bin/rollup"
732 | },
733 | "engines": {
734 | "node": ">=10.0.0"
735 | },
736 | "optionalDependencies": {
737 | "fsevents": "~2.3.2"
738 | }
739 | },
740 | "node_modules/rollup-plugin-css-only": {
741 | "version": "3.1.0",
742 | "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
743 | "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==",
744 | "dev": true,
745 | "dependencies": {
746 | "@rollup/pluginutils": "4"
747 | },
748 | "engines": {
749 | "node": ">=10.12.0"
750 | },
751 | "peerDependencies": {
752 | "rollup": "1 || 2"
753 | }
754 | },
755 | "node_modules/rollup-plugin-css-only/node_modules/@rollup/pluginutils": {
756 | "version": "4.1.1",
757 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
758 | "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==",
759 | "dev": true,
760 | "dependencies": {
761 | "estree-walker": "^2.0.1",
762 | "picomatch": "^2.2.2"
763 | },
764 | "engines": {
765 | "node": ">= 8.0.0"
766 | }
767 | },
768 | "node_modules/rollup-plugin-livereload": {
769 | "version": "2.0.5",
770 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz",
771 | "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==",
772 | "dev": true,
773 | "dependencies": {
774 | "livereload": "^0.9.1"
775 | },
776 | "engines": {
777 | "node": ">=8.3"
778 | }
779 | },
780 | "node_modules/rollup-plugin-svelte": {
781 | "version": "7.1.0",
782 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz",
783 | "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==",
784 | "dev": true,
785 | "dependencies": {
786 | "require-relative": "^0.8.7",
787 | "rollup-pluginutils": "^2.8.2"
788 | },
789 | "engines": {
790 | "node": ">=10"
791 | },
792 | "peerDependencies": {
793 | "rollup": ">=2.0.0",
794 | "svelte": ">=3.5.0"
795 | }
796 | },
797 | "node_modules/rollup-plugin-terser": {
798 | "version": "7.0.2",
799 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
800 | "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
801 | "dev": true,
802 | "dependencies": {
803 | "@babel/code-frame": "^7.10.4",
804 | "jest-worker": "^26.2.1",
805 | "serialize-javascript": "^4.0.0",
806 | "terser": "^5.0.0"
807 | },
808 | "peerDependencies": {
809 | "rollup": "^2.0.0"
810 | }
811 | },
812 | "node_modules/rollup-pluginutils": {
813 | "version": "2.8.2",
814 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
815 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
816 | "dev": true,
817 | "dependencies": {
818 | "estree-walker": "^0.6.1"
819 | }
820 | },
821 | "node_modules/rollup-pluginutils/node_modules/estree-walker": {
822 | "version": "0.6.1",
823 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
824 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
825 | "dev": true
826 | },
827 | "node_modules/sade": {
828 | "version": "1.7.4",
829 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
830 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
831 | "dependencies": {
832 | "mri": "^1.1.0"
833 | },
834 | "engines": {
835 | "node": ">= 6"
836 | }
837 | },
838 | "node_modules/safe-buffer": {
839 | "version": "5.2.1",
840 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
841 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
842 | "dev": true,
843 | "funding": [
844 | {
845 | "type": "github",
846 | "url": "https://github.com/sponsors/feross"
847 | },
848 | {
849 | "type": "patreon",
850 | "url": "https://www.patreon.com/feross"
851 | },
852 | {
853 | "type": "consulting",
854 | "url": "https://feross.org/support"
855 | }
856 | ]
857 | },
858 | "node_modules/semiver": {
859 | "version": "1.1.0",
860 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
861 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==",
862 | "engines": {
863 | "node": ">=6"
864 | }
865 | },
866 | "node_modules/serialize-javascript": {
867 | "version": "4.0.0",
868 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
869 | "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
870 | "dev": true,
871 | "dependencies": {
872 | "randombytes": "^2.1.0"
873 | }
874 | },
875 | "node_modules/sirv": {
876 | "version": "1.0.19",
877 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz",
878 | "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==",
879 | "dependencies": {
880 | "@polka/url": "^1.0.0-next.20",
881 | "mrmime": "^1.0.0",
882 | "totalist": "^1.0.0"
883 | },
884 | "engines": {
885 | "node": ">= 10"
886 | }
887 | },
888 | "node_modules/sirv-cli": {
889 | "version": "1.0.14",
890 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.14.tgz",
891 | "integrity": "sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==",
892 | "dependencies": {
893 | "console-clear": "^1.1.0",
894 | "get-port": "^3.2.0",
895 | "kleur": "^3.0.0",
896 | "local-access": "^1.0.1",
897 | "sade": "^1.6.0",
898 | "semiver": "^1.0.0",
899 | "sirv": "^1.0.13",
900 | "tinydate": "^1.0.0"
901 | },
902 | "bin": {
903 | "sirv": "bin.js"
904 | },
905 | "engines": {
906 | "node": ">= 10"
907 | }
908 | },
909 | "node_modules/source-map": {
910 | "version": "0.7.3",
911 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
912 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
913 | "dev": true,
914 | "engines": {
915 | "node": ">= 8"
916 | }
917 | },
918 | "node_modules/source-map-support": {
919 | "version": "0.5.21",
920 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
921 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
922 | "dev": true,
923 | "dependencies": {
924 | "buffer-from": "^1.0.0",
925 | "source-map": "^0.6.0"
926 | }
927 | },
928 | "node_modules/source-map-support/node_modules/source-map": {
929 | "version": "0.6.1",
930 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
931 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
932 | "dev": true,
933 | "engines": {
934 | "node": ">=0.10.0"
935 | }
936 | },
937 | "node_modules/sourcemap-codec": {
938 | "version": "1.4.8",
939 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
940 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
941 | "dev": true
942 | },
943 | "node_modules/supports-color": {
944 | "version": "5.5.0",
945 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
946 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
947 | "dev": true,
948 | "dependencies": {
949 | "has-flag": "^3.0.0"
950 | },
951 | "engines": {
952 | "node": ">=4"
953 | }
954 | },
955 | "node_modules/svelte": {
956 | "version": "3.44.2",
957 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz",
958 | "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==",
959 | "dev": true,
960 | "engines": {
961 | "node": ">= 8"
962 | }
963 | },
964 | "node_modules/terser": {
965 | "version": "5.10.0",
966 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
967 | "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
968 | "dev": true,
969 | "dependencies": {
970 | "commander": "^2.20.0",
971 | "source-map": "~0.7.2",
972 | "source-map-support": "~0.5.20"
973 | },
974 | "bin": {
975 | "terser": "bin/terser"
976 | },
977 | "engines": {
978 | "node": ">=10"
979 | },
980 | "peerDependencies": {
981 | "acorn": "^8.5.0"
982 | },
983 | "peerDependenciesMeta": {
984 | "acorn": {
985 | "optional": true
986 | }
987 | }
988 | },
989 | "node_modules/tinydate": {
990 | "version": "1.3.0",
991 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz",
992 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w==",
993 | "engines": {
994 | "node": ">=4"
995 | }
996 | },
997 | "node_modules/to-regex-range": {
998 | "version": "5.0.1",
999 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1000 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1001 | "dev": true,
1002 | "dependencies": {
1003 | "is-number": "^7.0.0"
1004 | },
1005 | "engines": {
1006 | "node": ">=8.0"
1007 | }
1008 | },
1009 | "node_modules/totalist": {
1010 | "version": "1.1.0",
1011 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
1012 | "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==",
1013 | "engines": {
1014 | "node": ">=6"
1015 | }
1016 | },
1017 | "node_modules/wrappy": {
1018 | "version": "1.0.2",
1019 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1020 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1021 | "dev": true
1022 | },
1023 | "node_modules/ws": {
1024 | "version": "7.5.6",
1025 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
1026 | "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
1027 | "dev": true,
1028 | "engines": {
1029 | "node": ">=8.3.0"
1030 | },
1031 | "peerDependencies": {
1032 | "bufferutil": "^4.0.1",
1033 | "utf-8-validate": "^5.0.2"
1034 | },
1035 | "peerDependenciesMeta": {
1036 | "bufferutil": {
1037 | "optional": true
1038 | },
1039 | "utf-8-validate": {
1040 | "optional": true
1041 | }
1042 | }
1043 | }
1044 | },
1045 | "dependencies": {
1046 | "@babel/code-frame": {
1047 | "version": "7.16.0",
1048 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz",
1049 | "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==",
1050 | "dev": true,
1051 | "requires": {
1052 | "@babel/highlight": "^7.16.0"
1053 | }
1054 | },
1055 | "@babel/helper-validator-identifier": {
1056 | "version": "7.15.7",
1057 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz",
1058 | "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==",
1059 | "dev": true
1060 | },
1061 | "@babel/highlight": {
1062 | "version": "7.16.0",
1063 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz",
1064 | "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==",
1065 | "dev": true,
1066 | "requires": {
1067 | "@babel/helper-validator-identifier": "^7.15.7",
1068 | "chalk": "^2.0.0",
1069 | "js-tokens": "^4.0.0"
1070 | }
1071 | },
1072 | "@polka/url": {
1073 | "version": "1.0.0-next.21",
1074 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
1075 | "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
1076 | },
1077 | "@rollup/plugin-commonjs": {
1078 | "version": "21.0.1",
1079 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.1.tgz",
1080 | "integrity": "sha512-EA+g22lbNJ8p5kuZJUYyhhDK7WgJckW5g4pNN7n4mAFUM96VuwUnNT3xr2Db2iCZPI1pJPbGyfT5mS9T1dHfMg==",
1081 | "dev": true,
1082 | "requires": {
1083 | "@rollup/pluginutils": "^3.1.0",
1084 | "commondir": "^1.0.1",
1085 | "estree-walker": "^2.0.1",
1086 | "glob": "^7.1.6",
1087 | "is-reference": "^1.2.1",
1088 | "magic-string": "^0.25.7",
1089 | "resolve": "^1.17.0"
1090 | }
1091 | },
1092 | "@rollup/plugin-node-resolve": {
1093 | "version": "13.0.6",
1094 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.6.tgz",
1095 | "integrity": "sha512-sFsPDMPd4gMqnh2gS0uIxELnoRUp5kBl5knxD2EO0778G1oOJv4G1vyT2cpWz75OU2jDVcXhjVUuTAczGyFNKA==",
1096 | "dev": true,
1097 | "requires": {
1098 | "@rollup/pluginutils": "^3.1.0",
1099 | "@types/resolve": "1.17.1",
1100 | "builtin-modules": "^3.1.0",
1101 | "deepmerge": "^4.2.2",
1102 | "is-module": "^1.0.0",
1103 | "resolve": "^1.19.0"
1104 | }
1105 | },
1106 | "@rollup/pluginutils": {
1107 | "version": "3.1.0",
1108 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
1109 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
1110 | "dev": true,
1111 | "requires": {
1112 | "@types/estree": "0.0.39",
1113 | "estree-walker": "^1.0.1",
1114 | "picomatch": "^2.2.2"
1115 | },
1116 | "dependencies": {
1117 | "estree-walker": {
1118 | "version": "1.0.1",
1119 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
1120 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
1121 | "dev": true
1122 | }
1123 | }
1124 | },
1125 | "@types/estree": {
1126 | "version": "0.0.39",
1127 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
1128 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
1129 | "dev": true
1130 | },
1131 | "@types/node": {
1132 | "version": "16.11.12",
1133 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz",
1134 | "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==",
1135 | "dev": true
1136 | },
1137 | "@types/resolve": {
1138 | "version": "1.17.1",
1139 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
1140 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
1141 | "dev": true,
1142 | "requires": {
1143 | "@types/node": "*"
1144 | }
1145 | },
1146 | "ansi-styles": {
1147 | "version": "3.2.1",
1148 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1149 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1150 | "dev": true,
1151 | "requires": {
1152 | "color-convert": "^1.9.0"
1153 | }
1154 | },
1155 | "anymatch": {
1156 | "version": "3.1.2",
1157 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
1158 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
1159 | "dev": true,
1160 | "requires": {
1161 | "normalize-path": "^3.0.0",
1162 | "picomatch": "^2.0.4"
1163 | }
1164 | },
1165 | "balanced-match": {
1166 | "version": "1.0.2",
1167 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1168 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1169 | "dev": true
1170 | },
1171 | "binary-extensions": {
1172 | "version": "2.2.0",
1173 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
1174 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
1175 | "dev": true
1176 | },
1177 | "brace-expansion": {
1178 | "version": "1.1.11",
1179 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1180 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1181 | "dev": true,
1182 | "requires": {
1183 | "balanced-match": "^1.0.0",
1184 | "concat-map": "0.0.1"
1185 | }
1186 | },
1187 | "braces": {
1188 | "version": "3.0.2",
1189 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1190 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1191 | "dev": true,
1192 | "requires": {
1193 | "fill-range": "^7.0.1"
1194 | }
1195 | },
1196 | "buffer-from": {
1197 | "version": "1.1.2",
1198 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
1199 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
1200 | "dev": true
1201 | },
1202 | "builtin-modules": {
1203 | "version": "3.2.0",
1204 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
1205 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
1206 | "dev": true
1207 | },
1208 | "chalk": {
1209 | "version": "2.4.2",
1210 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1211 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1212 | "dev": true,
1213 | "requires": {
1214 | "ansi-styles": "^3.2.1",
1215 | "escape-string-regexp": "^1.0.5",
1216 | "supports-color": "^5.3.0"
1217 | }
1218 | },
1219 | "chokidar": {
1220 | "version": "3.5.2",
1221 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
1222 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
1223 | "dev": true,
1224 | "requires": {
1225 | "anymatch": "~3.1.2",
1226 | "braces": "~3.0.2",
1227 | "fsevents": "~2.3.2",
1228 | "glob-parent": "~5.1.2",
1229 | "is-binary-path": "~2.1.0",
1230 | "is-glob": "~4.0.1",
1231 | "normalize-path": "~3.0.0",
1232 | "readdirp": "~3.6.0"
1233 | }
1234 | },
1235 | "color-convert": {
1236 | "version": "1.9.3",
1237 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1238 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1239 | "dev": true,
1240 | "requires": {
1241 | "color-name": "1.1.3"
1242 | }
1243 | },
1244 | "color-name": {
1245 | "version": "1.1.3",
1246 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1247 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1248 | "dev": true
1249 | },
1250 | "commander": {
1251 | "version": "2.20.3",
1252 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1253 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1254 | "dev": true
1255 | },
1256 | "commondir": {
1257 | "version": "1.0.1",
1258 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1259 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
1260 | "dev": true
1261 | },
1262 | "concat-map": {
1263 | "version": "0.0.1",
1264 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1265 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1266 | "dev": true
1267 | },
1268 | "console-clear": {
1269 | "version": "1.1.1",
1270 | "resolved": "https://registry.npmjs.org/console-clear/-/console-clear-1.1.1.tgz",
1271 | "integrity": "sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ=="
1272 | },
1273 | "deepmerge": {
1274 | "version": "4.2.2",
1275 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
1276 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
1277 | "dev": true
1278 | },
1279 | "escape-string-regexp": {
1280 | "version": "1.0.5",
1281 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1282 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1283 | "dev": true
1284 | },
1285 | "estree-walker": {
1286 | "version": "2.0.2",
1287 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1288 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
1289 | "dev": true
1290 | },
1291 | "fill-range": {
1292 | "version": "7.0.1",
1293 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1294 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1295 | "dev": true,
1296 | "requires": {
1297 | "to-regex-range": "^5.0.1"
1298 | }
1299 | },
1300 | "fs.realpath": {
1301 | "version": "1.0.0",
1302 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1303 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1304 | "dev": true
1305 | },
1306 | "fsevents": {
1307 | "version": "2.3.2",
1308 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1309 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1310 | "dev": true,
1311 | "optional": true
1312 | },
1313 | "function-bind": {
1314 | "version": "1.1.1",
1315 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1316 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1317 | "dev": true
1318 | },
1319 | "get-port": {
1320 | "version": "3.2.0",
1321 | "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
1322 | "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw="
1323 | },
1324 | "glob": {
1325 | "version": "7.2.0",
1326 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
1327 | "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
1328 | "dev": true,
1329 | "requires": {
1330 | "fs.realpath": "^1.0.0",
1331 | "inflight": "^1.0.4",
1332 | "inherits": "2",
1333 | "minimatch": "^3.0.4",
1334 | "once": "^1.3.0",
1335 | "path-is-absolute": "^1.0.0"
1336 | }
1337 | },
1338 | "glob-parent": {
1339 | "version": "5.1.2",
1340 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1341 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1342 | "dev": true,
1343 | "requires": {
1344 | "is-glob": "^4.0.1"
1345 | }
1346 | },
1347 | "has": {
1348 | "version": "1.0.3",
1349 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1350 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1351 | "dev": true,
1352 | "requires": {
1353 | "function-bind": "^1.1.1"
1354 | }
1355 | },
1356 | "has-flag": {
1357 | "version": "3.0.0",
1358 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1359 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1360 | "dev": true
1361 | },
1362 | "inflight": {
1363 | "version": "1.0.6",
1364 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1365 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1366 | "dev": true,
1367 | "requires": {
1368 | "once": "^1.3.0",
1369 | "wrappy": "1"
1370 | }
1371 | },
1372 | "inherits": {
1373 | "version": "2.0.4",
1374 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1375 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1376 | "dev": true
1377 | },
1378 | "is-binary-path": {
1379 | "version": "2.1.0",
1380 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1381 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1382 | "dev": true,
1383 | "requires": {
1384 | "binary-extensions": "^2.0.0"
1385 | }
1386 | },
1387 | "is-core-module": {
1388 | "version": "2.8.0",
1389 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
1390 | "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==",
1391 | "dev": true,
1392 | "requires": {
1393 | "has": "^1.0.3"
1394 | }
1395 | },
1396 | "is-extglob": {
1397 | "version": "2.1.1",
1398 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1399 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1400 | "dev": true
1401 | },
1402 | "is-glob": {
1403 | "version": "4.0.3",
1404 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1405 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1406 | "dev": true,
1407 | "requires": {
1408 | "is-extglob": "^2.1.1"
1409 | }
1410 | },
1411 | "is-module": {
1412 | "version": "1.0.0",
1413 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1414 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
1415 | "dev": true
1416 | },
1417 | "is-number": {
1418 | "version": "7.0.0",
1419 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1420 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1421 | "dev": true
1422 | },
1423 | "is-reference": {
1424 | "version": "1.2.1",
1425 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
1426 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
1427 | "dev": true,
1428 | "requires": {
1429 | "@types/estree": "*"
1430 | }
1431 | },
1432 | "jest-worker": {
1433 | "version": "26.6.2",
1434 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
1435 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
1436 | "dev": true,
1437 | "requires": {
1438 | "@types/node": "*",
1439 | "merge-stream": "^2.0.0",
1440 | "supports-color": "^7.0.0"
1441 | },
1442 | "dependencies": {
1443 | "has-flag": {
1444 | "version": "4.0.0",
1445 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1446 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1447 | "dev": true
1448 | },
1449 | "supports-color": {
1450 | "version": "7.2.0",
1451 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1452 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1453 | "dev": true,
1454 | "requires": {
1455 | "has-flag": "^4.0.0"
1456 | }
1457 | }
1458 | }
1459 | },
1460 | "js-tokens": {
1461 | "version": "4.0.0",
1462 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1463 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1464 | "dev": true
1465 | },
1466 | "kleur": {
1467 | "version": "3.0.3",
1468 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
1469 | "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
1470 | },
1471 | "livereload": {
1472 | "version": "0.9.3",
1473 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.3.tgz",
1474 | "integrity": "sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==",
1475 | "dev": true,
1476 | "requires": {
1477 | "chokidar": "^3.5.0",
1478 | "livereload-js": "^3.3.1",
1479 | "opts": ">= 1.2.0",
1480 | "ws": "^7.4.3"
1481 | }
1482 | },
1483 | "livereload-js": {
1484 | "version": "3.3.2",
1485 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz",
1486 | "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==",
1487 | "dev": true
1488 | },
1489 | "local-access": {
1490 | "version": "1.1.0",
1491 | "resolved": "https://registry.npmjs.org/local-access/-/local-access-1.1.0.tgz",
1492 | "integrity": "sha512-XfegD5pyTAfb+GY6chk283Ox5z8WexG56OvM06RWLpAc/UHozO8X6xAxEkIitZOtsSMM1Yr3DkHgW5W+onLhCw=="
1493 | },
1494 | "magic-string": {
1495 | "version": "0.25.7",
1496 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
1497 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
1498 | "dev": true,
1499 | "requires": {
1500 | "sourcemap-codec": "^1.4.4"
1501 | }
1502 | },
1503 | "merge-stream": {
1504 | "version": "2.0.0",
1505 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1506 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1507 | "dev": true
1508 | },
1509 | "minimatch": {
1510 | "version": "3.0.4",
1511 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1512 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1513 | "dev": true,
1514 | "requires": {
1515 | "brace-expansion": "^1.1.7"
1516 | }
1517 | },
1518 | "mri": {
1519 | "version": "1.2.0",
1520 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1521 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
1522 | },
1523 | "mrmime": {
1524 | "version": "1.0.0",
1525 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz",
1526 | "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ=="
1527 | },
1528 | "normalize-path": {
1529 | "version": "3.0.0",
1530 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1531 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1532 | "dev": true
1533 | },
1534 | "once": {
1535 | "version": "1.4.0",
1536 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1537 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1538 | "dev": true,
1539 | "requires": {
1540 | "wrappy": "1"
1541 | }
1542 | },
1543 | "opts": {
1544 | "version": "2.0.2",
1545 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz",
1546 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==",
1547 | "dev": true
1548 | },
1549 | "path-is-absolute": {
1550 | "version": "1.0.1",
1551 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1552 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1553 | "dev": true
1554 | },
1555 | "path-parse": {
1556 | "version": "1.0.7",
1557 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1558 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1559 | "dev": true
1560 | },
1561 | "picomatch": {
1562 | "version": "2.3.0",
1563 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
1564 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
1565 | "dev": true
1566 | },
1567 | "randombytes": {
1568 | "version": "2.1.0",
1569 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1570 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1571 | "dev": true,
1572 | "requires": {
1573 | "safe-buffer": "^5.1.0"
1574 | }
1575 | },
1576 | "readdirp": {
1577 | "version": "3.6.0",
1578 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1579 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1580 | "dev": true,
1581 | "requires": {
1582 | "picomatch": "^2.2.1"
1583 | }
1584 | },
1585 | "require-relative": {
1586 | "version": "0.8.7",
1587 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
1588 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
1589 | "dev": true
1590 | },
1591 | "resolve": {
1592 | "version": "1.20.0",
1593 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
1594 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
1595 | "dev": true,
1596 | "requires": {
1597 | "is-core-module": "^2.2.0",
1598 | "path-parse": "^1.0.6"
1599 | }
1600 | },
1601 | "rollup": {
1602 | "version": "2.60.2",
1603 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.60.2.tgz",
1604 | "integrity": "sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==",
1605 | "dev": true,
1606 | "requires": {
1607 | "fsevents": "~2.3.2"
1608 | }
1609 | },
1610 | "rollup-plugin-css-only": {
1611 | "version": "3.1.0",
1612 | "resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
1613 | "integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==",
1614 | "dev": true,
1615 | "requires": {
1616 | "@rollup/pluginutils": "4"
1617 | },
1618 | "dependencies": {
1619 | "@rollup/pluginutils": {
1620 | "version": "4.1.1",
1621 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.1.tgz",
1622 | "integrity": "sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==",
1623 | "dev": true,
1624 | "requires": {
1625 | "estree-walker": "^2.0.1",
1626 | "picomatch": "^2.2.2"
1627 | }
1628 | }
1629 | }
1630 | },
1631 | "rollup-plugin-livereload": {
1632 | "version": "2.0.5",
1633 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.5.tgz",
1634 | "integrity": "sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==",
1635 | "dev": true,
1636 | "requires": {
1637 | "livereload": "^0.9.1"
1638 | }
1639 | },
1640 | "rollup-plugin-svelte": {
1641 | "version": "7.1.0",
1642 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz",
1643 | "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==",
1644 | "dev": true,
1645 | "requires": {
1646 | "require-relative": "^0.8.7",
1647 | "rollup-pluginutils": "^2.8.2"
1648 | }
1649 | },
1650 | "rollup-plugin-terser": {
1651 | "version": "7.0.2",
1652 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
1653 | "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
1654 | "dev": true,
1655 | "requires": {
1656 | "@babel/code-frame": "^7.10.4",
1657 | "jest-worker": "^26.2.1",
1658 | "serialize-javascript": "^4.0.0",
1659 | "terser": "^5.0.0"
1660 | }
1661 | },
1662 | "rollup-pluginutils": {
1663 | "version": "2.8.2",
1664 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
1665 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
1666 | "dev": true,
1667 | "requires": {
1668 | "estree-walker": "^0.6.1"
1669 | },
1670 | "dependencies": {
1671 | "estree-walker": {
1672 | "version": "0.6.1",
1673 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
1674 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
1675 | "dev": true
1676 | }
1677 | }
1678 | },
1679 | "sade": {
1680 | "version": "1.7.4",
1681 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",
1682 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==",
1683 | "requires": {
1684 | "mri": "^1.1.0"
1685 | }
1686 | },
1687 | "safe-buffer": {
1688 | "version": "5.2.1",
1689 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1690 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1691 | "dev": true
1692 | },
1693 | "semiver": {
1694 | "version": "1.1.0",
1695 | "resolved": "https://registry.npmjs.org/semiver/-/semiver-1.1.0.tgz",
1696 | "integrity": "sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg=="
1697 | },
1698 | "serialize-javascript": {
1699 | "version": "4.0.0",
1700 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
1701 | "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
1702 | "dev": true,
1703 | "requires": {
1704 | "randombytes": "^2.1.0"
1705 | }
1706 | },
1707 | "sirv": {
1708 | "version": "1.0.19",
1709 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz",
1710 | "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==",
1711 | "requires": {
1712 | "@polka/url": "^1.0.0-next.20",
1713 | "mrmime": "^1.0.0",
1714 | "totalist": "^1.0.0"
1715 | }
1716 | },
1717 | "sirv-cli": {
1718 | "version": "1.0.14",
1719 | "resolved": "https://registry.npmjs.org/sirv-cli/-/sirv-cli-1.0.14.tgz",
1720 | "integrity": "sha512-yyUTNr984ANKDloqepkYbBSqvx3buwYg2sQKPWjSU+IBia5loaoka2If8N9CMwt8AfP179cdEl7kYJ//iWJHjQ==",
1721 | "requires": {
1722 | "console-clear": "^1.1.0",
1723 | "get-port": "^3.2.0",
1724 | "kleur": "^3.0.0",
1725 | "local-access": "^1.0.1",
1726 | "sade": "^1.6.0",
1727 | "semiver": "^1.0.0",
1728 | "sirv": "^1.0.13",
1729 | "tinydate": "^1.0.0"
1730 | }
1731 | },
1732 | "source-map": {
1733 | "version": "0.7.3",
1734 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
1735 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
1736 | "dev": true
1737 | },
1738 | "source-map-support": {
1739 | "version": "0.5.21",
1740 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
1741 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
1742 | "dev": true,
1743 | "requires": {
1744 | "buffer-from": "^1.0.0",
1745 | "source-map": "^0.6.0"
1746 | },
1747 | "dependencies": {
1748 | "source-map": {
1749 | "version": "0.6.1",
1750 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1751 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1752 | "dev": true
1753 | }
1754 | }
1755 | },
1756 | "sourcemap-codec": {
1757 | "version": "1.4.8",
1758 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1759 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
1760 | "dev": true
1761 | },
1762 | "supports-color": {
1763 | "version": "5.5.0",
1764 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1765 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1766 | "dev": true,
1767 | "requires": {
1768 | "has-flag": "^3.0.0"
1769 | }
1770 | },
1771 | "svelte": {
1772 | "version": "3.44.2",
1773 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.44.2.tgz",
1774 | "integrity": "sha512-jrZhZtmH3ZMweXg1Q15onb8QlWD+a5T5Oca4C1jYvSURp2oD35h4A5TV6t6MEa93K4LlX6BkafZPdQoFjw/ylA==",
1775 | "dev": true
1776 | },
1777 | "terser": {
1778 | "version": "5.10.0",
1779 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
1780 | "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
1781 | "dev": true,
1782 | "requires": {
1783 | "commander": "^2.20.0",
1784 | "source-map": "~0.7.2",
1785 | "source-map-support": "~0.5.20"
1786 | }
1787 | },
1788 | "tinydate": {
1789 | "version": "1.3.0",
1790 | "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz",
1791 | "integrity": "sha512-7cR8rLy2QhYHpsBDBVYnnWXm8uRTr38RoZakFSW7Bs7PzfMPNZthuMLkwqZv7MTu8lhQ91cOFYS5a7iFj2oR3w=="
1792 | },
1793 | "to-regex-range": {
1794 | "version": "5.0.1",
1795 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1796 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1797 | "dev": true,
1798 | "requires": {
1799 | "is-number": "^7.0.0"
1800 | }
1801 | },
1802 | "totalist": {
1803 | "version": "1.1.0",
1804 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz",
1805 | "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g=="
1806 | },
1807 | "wrappy": {
1808 | "version": "1.0.2",
1809 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1810 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1811 | "dev": true
1812 | },
1813 | "ws": {
1814 | "version": "7.5.6",
1815 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
1816 | "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
1817 | "dev": true,
1818 | "requires": {}
1819 | }
1820 | }
1821 | }
1822 |
--------------------------------------------------------------------------------
/packages/svelte-with-fetch/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "build": "rollup -c",
4 | "dev": "rollup -c -w",
5 | "start": "sirv public"
6 | },
7 | "dependencies": {
8 | "sirv-cli": "^1.0.14"
9 | },
10 | "devDependencies": {
11 | "@rollup/plugin-commonjs": "^21.0.1",
12 | "@rollup/plugin-node-resolve": "^13.0.6",
13 | "rollup": "^2.60.2",
14 | "rollup-plugin-css-only": "^3.1.0",
15 | "rollup-plugin-livereload": "^2.0.5",
16 | "rollup-plugin-svelte": "^7.1.0",
17 | "rollup-plugin-terser": "^7.0.2",
18 | "svelte": "^3.44.2"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/svelte-with-fetch/rollup.config.js:
--------------------------------------------------------------------------------
1 | import svelte from "rollup-plugin-svelte";
2 | import commonjs from "@rollup/plugin-commonjs";
3 | import resolve from "@rollup/plugin-node-resolve";
4 | import livereload from "rollup-plugin-livereload";
5 | import { terser } from "rollup-plugin-terser";
6 | import css from "rollup-plugin-css-only";
7 |
8 | const production = !process.env.ROLLUP_WATCH;
9 |
10 | function serve() {
11 | let server;
12 |
13 | function toExit() {
14 | if (server) server.kill(0);
15 | }
16 |
17 | return {
18 | writeBundle() {
19 | if (server) return;
20 | server = require("child_process").spawn(
21 | "npm",
22 | ["run", "start", "--", "--dev"],
23 | {
24 | stdio: ["ignore", "inherit", "inherit"],
25 | shell: true,
26 | }
27 | );
28 | process.on("SIGTERM", toExit);
29 | process.on("exit", toExit);
30 | },
31 | };
32 | }
33 |
34 | export default {
35 | input: "src/main.js",
36 | output: {
37 | sourcemap: true,
38 | format: "iife",
39 | name: "app",
40 | file: "public/build/bundle.js",
41 | },
42 | plugins: [
43 | svelte({
44 | compilerOptions: {
45 | // enable run-time checks when not in production
46 | dev: !production,
47 | },
48 | }),
49 | css({ output: "bundle.css" }),
50 | resolve({
51 | browser: true,
52 | dedupe: ["svelte"],
53 | }),
54 | commonjs(),
55 | !production && serve(),
56 | !production && livereload("public"),
57 | production && terser(),
58 | ],
59 | watch: {
60 | clearScreen: false,
61 | },
62 | };
63 |
--------------------------------------------------------------------------------
/packages/svelte-with-fetch/src/App.svelte:
--------------------------------------------------------------------------------
1 |
27 |
28 |
--------------------------------------------------------------------------------
/packages/svelte-with-fetch/src/main.js:
--------------------------------------------------------------------------------
1 | import App from "./App.svelte";
2 |
3 | const app = new App({
4 | target: document.body,
5 | });
6 |
7 | export default app;
8 |
--------------------------------------------------------------------------------
/packages/vue-with-fetch/ContactScreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
37 |
--------------------------------------------------------------------------------
/packages/vue-with-petite-vue-and-fetch/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Formspark | Vue with petite-vue and Fetch
6 |
7 |
8 |
9 |
16 |
17 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/packages/vue-with-vue-use-formspark/ContactScreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
38 |
--------------------------------------------------------------------------------
/packages/webflow/custom-footer-code.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
31 |
--------------------------------------------------------------------------------
/scripts/execute.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | if [ $# -eq 0 ]; then
6 | echo Enter a command to execute:
7 | read -r COMMAND
8 | else
9 | COMMAND=$1
10 | fi
11 |
12 | SECONDS=0
13 |
14 | echo "execute started"
15 |
16 | DIRECTORIES=("." "packages/gatsby" "packages/gridsome" "packages/nextjs-with-fetch" "packages/nextjs-with-use-formspark" "packages/nuxtjs-with-fetch" "packages/react-with-fetch" "packages/react-with-use-formspark" "packages/svelte-with-fetch")
17 |
18 | for i in "${DIRECTORIES[@]}"; do
19 | echo "Executing '$COMMAND' in $i"
20 | (cd "$i" && eval "$COMMAND")
21 | done
22 |
23 | duration=$SECONDS
24 |
25 | echo "execute finished ($duration seconds)"
26 |
--------------------------------------------------------------------------------
/scripts/format.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | node_modules/.bin/prettier --write . --ignore-path .gitignore
--------------------------------------------------------------------------------