├── public ├── resource.txt ├── robots.txt ├── favicon.ico ├── 7 Segment LED.jpg ├── 7 Segment Sch.jpg ├── contact-rainbow.png ├── Clearpoint-logo_nov19.png ├── OpenDyslexicMono-Regular.otf ├── package.svg ├── twitter.svg ├── github.svg ├── link.svg ├── index.html ├── contact-energy.svg ├── clearpoint-logo.svg ├── logo.svg ├── logo-turbulence.svg └── logo-x-static.svg ├── .gitignore ├── README.md ├── .prettierrc ├── src ├── contents │ ├── slides │ │ ├── other-things │ │ │ ├── index.ts │ │ │ ├── determinism.tsx │ │ │ └── performance.tsx │ │ ├── bits-and-bobs │ │ │ ├── index.ts │ │ │ ├── iterable.tsx │ │ │ ├── union.tsx │ │ │ └── union.2.tsx │ │ ├── bring-your-own │ │ │ ├── index.ts │ │ │ ├── conventions.tsx │ │ │ ├── domain-language.tsx │ │ │ └── architecture.tsx │ │ ├── closing │ │ │ ├── index.ts │ │ │ ├── thanks.tsx │ │ │ ├── contribute.tsx │ │ │ ├── examples.tsx │ │ │ └── links.tsx │ │ ├── introduction │ │ │ ├── index.ts │ │ │ ├── hook.tsx │ │ │ ├── support.tsx │ │ │ ├── order.tsx │ │ │ ├── first.tsx │ │ │ └── history.tsx │ │ ├── first-take │ │ │ ├── 2.math.tsx │ │ │ ├── 3.logic.tsx │ │ │ ├── 0.intro.tsx │ │ │ ├── 5.objects.tsx │ │ │ ├── 6.arrays.tsx │ │ │ ├── 7.loops.tsx │ │ │ ├── 10.iterators.tsx │ │ │ ├── 8.promises.tsx │ │ │ ├── 11.async-iterators.tsx │ │ │ ├── 12.iterator-loops.tsx │ │ │ ├── 4.functions.tsx │ │ │ ├── 9.async-functions.tsx │ │ │ ├── 13.clock-diagram.tsx │ │ │ └── 1.primitives.tsx │ │ ├── consume │ │ │ ├── index.ts │ │ │ ├── individual.2.tsx │ │ │ ├── individual.1.tsx │ │ │ ├── individual.3.tsx │ │ │ ├── individual.4.tsx │ │ │ ├── individual.tsx │ │ │ └── logging.tsx │ │ ├── additional-points │ │ │ ├── jquery.tsx │ │ │ ├── index.ts │ │ │ ├── esm.tsx │ │ │ ├── tokens.tsx │ │ │ ├── javascript-first.tsx │ │ │ ├── types-children.tsx │ │ │ ├── types-scalars.tsx │ │ │ ├── deno.tsx │ │ │ ├── tokens.3.tsx │ │ │ └── tokens.2.tsx │ │ ├── produce │ │ │ ├── classes.tsx │ │ │ ├── functions.tsx │ │ │ ├── generators.tsx │ │ │ ├── functions.1.tsx │ │ │ ├── functions.2.tsx │ │ │ ├── async-functions.tsx │ │ │ ├── instant-classes.tsx │ │ │ ├── async-generators.tsx │ │ │ ├── class-children-options.tsx │ │ │ ├── class-children-options.1.tsx │ │ │ ├── promises.tsx │ │ │ ├── index.ts │ │ │ ├── shared-classes.tsx │ │ │ ├── shared-classes-async.tsx │ │ │ └── just-in-time.tsx │ │ ├── slide.ts │ │ └── index.tsx │ └── index.tsx ├── site.tsx ├── types │ ├── global.ts │ └── jsx.ts ├── unbound.tsx ├── h.ts ├── context.ts ├── template.ts ├── index.tsx └── index.css ├── netlify.toml ├── Notes.md ├── scripts ├── jsdom.js └── prerender.js ├── snowpack.config.js ├── package.json ├── tsconfig.json └── yarn.lock /public/resource.txt: -------------------------------------------------------------------------------- 1 | This is a resource 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .snowpack 2 | build 3 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [virtualstate.dev](https://virtualstate.dev) 2 | 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all" 4 | } 5 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/contents/slides/other-things/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./determinism"; 2 | export * from "./performance"; 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/favicon.ico -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | base = "/" 3 | publish = "/build/" 4 | 5 | [[redirects]] 6 | from = "/*" 7 | to = "/" 8 | -------------------------------------------------------------------------------- /public/7 Segment LED.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/7 Segment LED.jpg -------------------------------------------------------------------------------- /public/7 Segment Sch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/7 Segment Sch.jpg -------------------------------------------------------------------------------- /public/contact-rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/contact-rainbow.png -------------------------------------------------------------------------------- /src/contents/slides/bits-and-bobs/index.ts: -------------------------------------------------------------------------------- 1 | // export * from "./iterable"; 2 | export * from "./union"; 3 | export * from "./union.2"; 4 | -------------------------------------------------------------------------------- /src/site.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "./h"; 2 | import { SiteContents } from "./contents"; 3 | 4 | export const SiteBody = SiteContents 5 | -------------------------------------------------------------------------------- /public/Clearpoint-logo_nov19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/Clearpoint-logo_nov19.png -------------------------------------------------------------------------------- /public/OpenDyslexicMono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualstate/nzjs.2021.slides.virtualstate.dev/main/public/OpenDyslexicMono-Regular.otf -------------------------------------------------------------------------------- /src/contents/slides/bring-your-own/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./conventions"; 2 | export * from "./domain-language"; 3 | export * from "./architecture"; 4 | -------------------------------------------------------------------------------- /src/contents/slides/closing/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./examples"; 2 | export * from "./links"; 3 | export * from "./contribute"; 4 | export * from "./thanks"; 5 | -------------------------------------------------------------------------------- /src/types/global.ts: -------------------------------------------------------------------------------- 1 | declare global { 2 | 3 | interface Window { 4 | proposalSiteRender?: Promise; 5 | } 6 | 7 | } 8 | 9 | export {}; 10 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./first"; 2 | export * from "./hook"; 3 | // export * from "./history"; 4 | // export * from "./support"; 5 | export * from "./order"; 6 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/2.math.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Math

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/3.logic.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Logic

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/0.intro.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

A fresh take on jsx

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/consume/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./individual"; 2 | export * from "./individual.1"; 3 | export * from "./individual.2"; 4 | export * from "./individual.3"; 5 | export * from "./individual.4"; 6 | // export * from "./logging"; 7 | -------------------------------------------------------------------------------- /src/contents/index.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../h"; 2 | import Slides from "./slides"; 3 | 4 | export { default as Slides, AllSlides } from "./slides"; 5 | 6 | export const SiteContents = ( 7 |
8 | {Slides} 9 |
10 | ); 11 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/hook.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const IntroductionHook = ( 5 | 6 |

JSX as a value

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/jquery.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const Additional_jQuery = ( 5 | 6 |

jQuery

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/closing/thanks.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ClosingThanks = ( 5 | 6 |

Thanks 😃

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/other-things/determinism.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const OtherDeterminism = ( 5 | 6 |

Determinism

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/other-things/performance.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const OtherPerformance = ( 5 | 6 |

Performance

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /Notes.md: -------------------------------------------------------------------------------- 1 | - 100% chance of a measurement 2 | - Universal 3 | - Converges, No longer in an unknown state 4 | - Common tooling, common interface 5 | - Complete customisation 6 | - Type assertions 7 | - Structure assertions 8 | - Complete type coverage 9 | - Both lazy and eager 10 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/5.objects.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Objects

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/6.arrays.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Arrays

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/7.loops.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Loops

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/10.iterators.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Iterators

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/8.promises.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Promises

7 | 8 |
9 | 10 |
11 |
12 | ) 13 | -------------------------------------------------------------------------------- /src/contents/slides/bring-your-own/conventions.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const BringYourConventions = ( 5 | 6 |

Bring Your Own Conventions

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/bring-your-own/domain-language.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const BringYourDomainLanguage = ( 5 | 6 |

Bring Your Own Domain

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/bring-your-own/architecture.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const BringYourArchitecture = ( 5 | 6 |

Bring Your Own Architecture

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/closing/contribute.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ClosingContribute = ( 5 | 6 |

Contribute to OSS! 🖥️

7 |
8 | ) 9 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/11.async-iterators.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Async Iterators

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/12.iterator-loops.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Iterator Loops

7 |
8 | 9 |
10 |
11 | ) 12 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/support.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const IntroductionSupport = ( 5 | 6 |

Browsers, Node, Deno

7 |

Others?

8 |
9 | ) 10 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/order.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const IntroductionOrder = ( 5 | 6 |

Consumption

7 |

8 |

Production

9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/index.ts: -------------------------------------------------------------------------------- 1 | 2 | export * from "./esm"; 3 | export * from "./javascript-first"; 4 | export * from "./deno"; 5 | 6 | export * from "./types-scalars"; 7 | export * from "./types-children"; 8 | 9 | export * from "./tokens"; 10 | export * from "./tokens.2"; 11 | export * from "./tokens.3"; 12 | 13 | -------------------------------------------------------------------------------- /public/package.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/esm.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const AdditionalESM = ( 5 | 6 |
 7 |       {`
 8 | {
 9 |   "name": "@virtualstate/x",
10 |   "type": "module"
11 | }`.trim()}
12 |     
13 |
14 | ) 15 | -------------------------------------------------------------------------------- /src/contents/slides/produce/classes.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _401_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceClasses = ( 6 | 7 |

Class

8 |
{_401_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/functions.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _201_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceFunctions = ( 6 | 7 |

Functions

8 |
{_201_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/generators.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _203_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceGenerators = ( 6 | 7 |

Generators

8 |
{_203_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/bits-and-bobs/iterable.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | import { _802_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const BitsIterable = ( 6 | 7 |

Iterable

8 |
{_802_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/functions.1.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _206_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceFunctions1 = ( 6 | 7 |

Functions - Options

8 |
{_206_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/functions.2.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _207_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceFunctions2 = ( 6 | 7 |

Functions - Children

8 |
{_207_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/tokens.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | import { _701_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const AdditionalTokens = ( 6 | 7 |

Tokens

8 |
{_701_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/async-functions.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _202_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceAsyncFunctions = ( 6 | 7 |

Async Functions

8 |
{_202_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/instant-classes.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _401_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceClassInstant = ( 6 | 7 |

Class - Instance

8 |
{_401_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/async-generators.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _204_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceAsyncGenerators = ( 6 | 7 |

Async Generators

8 |
{_204_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/javascript-first.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export const AdditionalTypeScript = ( 5 | 6 |
 7 |       {`
 8 | {
 9 |   "name": "@virtualstate/x",
10 |   "type": "module",
11 |   "devDependencies": {
12 |     "typescript": "^4.2.3",
13 |   }
14 | }`.trim()}
15 |     
16 |
17 | ) 18 | -------------------------------------------------------------------------------- /src/contents/slides/produce/class-children-options.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _402_ExampleInformation, _403_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceClassChildrenOptions = ( 6 | 7 |

Class - Options

8 |
{_402_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/produce/class-children-options.1.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _402_ExampleInformation, _403_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceClassChildrenOptions1 = ( 6 | 7 |

Class - Children

8 |
{_403_ExampleInformation.cleanerSource}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/types-children.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _602_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const AdditionalTypesChildren = ( 6 | 7 |

Types - Children

8 |
{_602_ExampleInformation.cleanerSource.split("\n").slice(0, -1).join("\n").trim()}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/types-scalars.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | import { _601_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const AdditionalTypesScalars = ( 6 | 7 |

Types - Scalars

8 |
{_601_ExampleInformation.cleanerSource.split("\n").slice(0, -1).join("\n").trim()}
9 |
10 | ) 11 | -------------------------------------------------------------------------------- /src/contents/slides/slide.ts: -------------------------------------------------------------------------------- 1 | import { createToken, TokenVNodeFn, TokenVNode } from '@virtualstate/x'; 2 | 3 | export interface SlideOptions { 4 | index: number; 5 | id: string; 6 | template?: false; 7 | class?: string; 8 | } 9 | export const SlideSymbol = Symbol("Slide"); 10 | export type SlideTokenVNode = TokenVNode; 11 | export type SlideTokenVNodeFn = TokenVNodeFn; 12 | export const Slide: SlideTokenVNodeFn = createToken(SlideSymbol); 13 | -------------------------------------------------------------------------------- /scripts/jsdom.js: -------------------------------------------------------------------------------- 1 | import JSDOM from "jsdom"; 2 | 3 | const dom = new JSDOM.JSDOM(); 4 | 5 | // https://github.com/jsdom/jsdom/wiki/Don't-stuff-jsdom-globals-onto-the-Node-global 6 | // Don't do this 7 | global.window = dom.window; 8 | global.document = dom.window.document; 9 | global.Node = dom.window.Node; 10 | 11 | const KNOWN_USAGE = [ 12 | "HTMLTemplateElement" 13 | ]; 14 | 15 | for (const knownUsedKey of KNOWN_USAGE) { 16 | global[knownUsedKey] = dom.window[knownUsedKey]; 17 | } 18 | 19 | export default dom; 20 | -------------------------------------------------------------------------------- /src/contents/slides/produce/promises.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _301_ExampleInformation, _302_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProducePromises = ( 6 | 7 |

Promises

8 |
9 |
{_301_ExampleInformation.cleanerSource}
10 |
{_302_ExampleInformation.cleanerSource}
11 |
12 |
13 | ) 14 | -------------------------------------------------------------------------------- /src/contents/slides/consume/individual.2.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ConsumeIndividual2 = ( 5 | 6 |
7 |
 8 |         {`
 9 | const product = (
10 |   
14 |     
17 |   
18 | );
19 | `.trim()}
20 |       
21 |
22 |
23 | ) 24 | -------------------------------------------------------------------------------- /src/contents/slides/produce/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./async-functions"; 2 | export * from "./async-generators"; 3 | export * from "./classes"; 4 | export * from "./class-children-options"; 5 | export * from "./class-children-options.1"; 6 | export * from "./functions"; 7 | export * from "./functions.1"; 8 | export * from "./functions.2"; 9 | export * from "./generators"; 10 | export * from "./instant-classes"; 11 | export * from "./just-in-time"; 12 | export * from "./promises"; 13 | export * from "./shared-classes"; 14 | export * from "./shared-classes-async"; 15 | -------------------------------------------------------------------------------- /public/twitter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/first.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const IntroductionFirst = ( 5 | 6 |

A fresh take on JSX

7 |
8 |

Fabian Cook

9 |

Axiom Applied Technologies and Development

10 |
11 | 12 | 13 |
14 |
15 |
16 | nz.js(con); 2021 17 |
18 |
19 | ) 20 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/deno.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export const ProduceDeno = ( 5 | 6 |
 7 |       {`
 8 | deno run \\
 9 |   --import-map=https://cdn.skypack.dev/@virtualstate/deno/import-map.json \\
10 |   https://cdn.skypack.dev/@virtualstate/deno/lib/example-no-net.js
11 | `.trim()}
12 |     
13 |
14 |       {`
15 | deno run \\
16 |   --import-map=https://cdn.skypack.dev/@virtualstate/deno/import-map.json \\
17 |   --allow-net \\
18 |   https://cdn.skypack.dev/@virtualstate/deno/lib/example.js
19 | `.trim()}
20 |     
21 |
22 | ) 23 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/4.functions.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Functions

7 |
8 |
9 |

Sync

10 |
{
11 |           `function Sum({ a, b }) {
12 |   return a + b
13 | }
14 | 
15 | console.log(Sum())
16 | `
17 |         }
18 |
19 | 20 |
Output
21 |
22 |
23 |
24 |
25 | ) 26 | 27 | function Sum({ a, b }: Record) { 28 | return a + b 29 | } 30 | -------------------------------------------------------------------------------- /src/contents/slides/produce/shared-classes.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _405_ExampleInformation } from '@virtualstate/examples'; 4 | import { padLines } from '../additional-points'; 5 | 6 | export const ProduceClassShared = ( 7 | 8 |
9 |
{_405_ExampleInformation.cleanerSource.split("\n").slice(2).join("\n").trim()}
10 |
11 |
12 |           {padLines(`
13 | <>
14 |   Iteration 1 🐸
15 |   Iteration 2 🐸
16 |   Iteration 3 🐸
17 | 
18 |           `.trim())}
19 |         
20 |
21 |
22 |
23 | ) 24 | -------------------------------------------------------------------------------- /src/contents/slides/closing/examples.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ClosingLinksExample = ( 5 | 6 | 7 |

8 | 9 | @virtualstate/examples 10 |

11 |
12 | 13 |

14 | 15 | github.com/virtualstate/x 16 |

17 |
18 |
19 | ) 20 | -------------------------------------------------------------------------------- /src/contents/slides/consume/individual.1.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ConsumeIndividual1 = ( 5 | 6 |
7 |
 8 |         {`
 9 | 
13 | `.trim()}
14 |       
15 |
16 |         {`
17 | `.trim()}
20 |       
21 |
22 |         {`
23 | 
27 |   
30 | 
31 | `.trim()}
32 |       
33 |
34 |
35 | ) 36 | -------------------------------------------------------------------------------- /src/contents/slides/produce/shared-classes-async.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _406_ExampleInformation } from '@virtualstate/examples'; 4 | import { padLines } from '../additional-points'; 5 | 6 | export const ProduceClassSharedAsync = ( 7 | 8 |
9 |
{_406_ExampleInformation.cleanerSource.split("\n").slice(2).join("\n").trim()}
10 |
11 |
12 |           {padLines(`
13 | <>
14 |   Iteration 1 🕊
15 |   Iteration 2 🕊
16 |   Iteration 3 🕊
17 | 
18 |           `.trim())}
19 |         
20 |
21 |
22 |
23 | ) 24 | -------------------------------------------------------------------------------- /public/github.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /snowpack.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import("snowpack").SnowpackUserConfig } */ 2 | export default { 3 | mount: { 4 | /* ... */ 5 | "src": "/", 6 | "public": "/" 7 | }, 8 | exclude: [ 9 | "**/node_modules/**/*", 10 | ], 11 | plugins: [ 12 | /* ... */ 13 | ], 14 | routes: [ 15 | /* Enable an SPA Fallback in development: */ 16 | {"match": "routes", "src": ".*", "dest": "/index.html"}, 17 | ], 18 | optimize: { 19 | /* Example: Bundle your final build: */ 20 | bundle: true, 21 | minify: true, 22 | target: "es2018", 23 | entrypoints: [ 24 | "index.html" 25 | ] 26 | }, 27 | packageOptions: { 28 | /* ... */ 29 | }, 30 | devOptions: { 31 | /* ... */ 32 | }, 33 | buildOptions: { 34 | /* ... */ 35 | jsxFactory: "h", 36 | jsxFragment: "createFragment" 37 | }, 38 | env: { 39 | 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/9.async-functions.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Async Functions

7 |
8 |
9 |

Async

10 |
{
11 |           `async function GetExample() {
12 |     const response = await fetch("/resource.txt");
13 |     return response.text();
14 |   }
15 |   
16 |   console.log(await GetExample())
17 |   `
18 |         }
19 |
20 | 21 |
Output
22 |
23 |
24 |
25 |
26 | ) 27 | 28 | async function GetExample() { 29 | if (typeof fetch === "undefined") return ""; 30 | const response = await fetch("/resource.txt"); 31 | return response.text(); 32 | } 33 | -------------------------------------------------------------------------------- /src/contents/slides/consume/individual.3.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ConsumeIndividual3 = ( 5 | 6 |
7 |
 8 |         {`
 9 | const product = (
10 |   
14 |     
17 |   
18 | );
19 | `.trim()}
20 |       
21 |
22 |         {`
23 | console.log({ product })
24 |       `.trim()}
25 |
26 |
27 |
28 |         {`
29 | {
30 |   product: {
31 |     source: "product",
32 |     options: {
33 |       name: "🐦 The bird",
34 |       sku: "🐦"
35 |     },
36 |     children: AsyncIterable
37 |   }
38 | }
39 |       `.trim()}
40 |
41 |
42 | ) 43 | -------------------------------------------------------------------------------- /src/contents/slides/bits-and-bobs/union.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _804_ExampleInformation } from '@virtualstate/examples'; 4 | import { padLines } from '../additional-points'; 5 | 6 | export const BitsUnion = ( 7 | 8 |
9 |
{_804_ExampleInformation.cleanerSource.split("\n").slice(3, 18).join("\n").trim()}
10 |
{_804_ExampleInformation.cleanerSource.split("\n").slice(18).join("\n").trim()}
11 |
12 |
13 |
14 |
15 |           {padLines(`
16 | { horse: '🐴' }
17 | { horse: '🐴', bird: '🐦' }
18 | { horse: '💪', bird: '🐦', robot: '🤖' }
19 | { horse: '💪', bird: '❤️', robot: '🤖' }
20 | { horse: '💪', bird: '❤️', robot: '🤳' }
21 |         `.trim())}
22 |       
23 |
24 |
25 |
26 | ) 27 | -------------------------------------------------------------------------------- /src/contents/slides/consume/individual.4.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ConsumeIndividual4 = ( 5 | 6 |
7 |
 8 |         {`
 9 | const product = (
10 |   
14 |     
17 |   
18 | );
19 | `.trim()}
20 |       
21 |
22 |         {`
23 | for await (const children of product.children) {
24 |   console.log({ children });
25 | }
26 |       `.trim()}
27 |
28 |
29 |
30 |         {`
31 | {
32 |   children: [
33 |     {
34 |       source: "brand",
35 |       options: {
36 |         name: "🔮 Magic hairstyles"
37 |       }
38 |     }
39 |   ]
40 | }
41 |       `.trim()}
42 | 43 |
44 |
45 | ) 46 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nzjs.2021.slides.virtualstate.dev", 3 | "private": true, 4 | "license": "MIT", 5 | "type": "module", 6 | "scripts": { 7 | "start": "snowpack dev", 8 | "build": "snowpack build && node scripts/prerender.js", 9 | "test": "echo \"This template does not include a test runner by default.\" && exit 1" 10 | }, 11 | "devDependencies": { 12 | "@types/jest": "^26.0.21", 13 | "@types/node": "^14.14.35", 14 | "jsdom": "^16.5.3", 15 | "snowpack": "^3.3.5", 16 | "typescript": "^4.2.3" 17 | }, 18 | "dependencies": { 19 | "@virtualstate/dom": "^2.14.5", 20 | "@virtualstate/examples": "^2.14.7", 21 | "@virtualstate/fringe": "^2.14.5", 22 | "@virtualstate/hooks": "^2.14.5", 23 | "@virtualstate/hooks-extended": "^2.14.5", 24 | "@virtualstate/union": "^2.14.5", 25 | "@virtualstate/x": "^2.14.5", 26 | "classnames": "^2.3.1", 27 | "fp-ts": "^2.10.4", 28 | "io-ts": "^2.2.16", 29 | "iterable": "^5.7.0", 30 | "microtask-collector": "^3.1.0" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | VSX - Virtual State X 10 | 11 | 12 |
13 | 14 | 15 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/contents/slides/consume/individual.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ConsumeIndividual = ( 5 | 6 |
7 |
 8 |         {``}
 9 |       
10 |
11 |         {
12 |           `
13 | 
14 |  
15 | 
16 |           `.trim()}
17 |       
18 |
19 |         {
20 |           `
21 | <>
22 |  
23 |  
24 | 
25 |           `.trim()}
26 |       
27 |
28 |         {
29 |           `
30 | 
31 |  {1}
32 |  {true}
33 |  {[1, 2, 3]}
34 |  {"Hello! 👋"}
35 | 
36 |           `.trim()}
37 |       
38 |
39 |         {
40 |           `
41 | 
42 |  
43 |  {[1, 2, 3]}
44 |  
45 |  {"Hello! 👋"}
46 |  
47 | 
48 |           `.trim()}
49 |       
50 |
51 |
52 | ) 53 | -------------------------------------------------------------------------------- /src/contents/slides/closing/links.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const ClosingLinks = ( 5 | 6 | 7 |

8 | 9 | virtualstate.dev 10 |

11 |
12 | 13 |

14 | 15 | @virtualstate/x 16 |

17 |
18 | 19 |

20 | 21 | github.com/virtualstate 22 |

23 |
24 | 25 |

26 | 27 | @virtualstatex 28 |

29 |
30 |
31 | ) 32 | -------------------------------------------------------------------------------- /src/contents/slides/introduction/history.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const IntroductionHistory = ( 5 | 6 |

Some history

7 |
    8 | {/* The concept, not the implementation, https://github.com/opennetwork */} 9 |
  • Open Network
  • 10 | {/* The standard, https://github.com/solid/ */} 11 |
  • Solid
  • 12 | {/* The concept, not the data, https://rdf.js.org/ */} 13 |
  • RDF
  • 14 | {/* 2D Data, https://github.com/opennetwork/iterable */} 15 |
  • Iterables
  • 16 | {/* 3D Data, https://github.com/opennetwork/rdf-data-model */} 17 |
  • RDF Data Models
  • 18 | {/* VNode, https://github.com/opennetwork/vnode */} 19 |
  • Foundational Work
  • 20 | {/* Batching by Microtask, https://github.com/opennetwork/microtask-collector */} 21 |
  • Microtasks
  • 22 | {/* https://fabiancook.dev/2021/05/18/concurrent-unions */} 23 |
  • Concurrent Unions
  • 24 | {/* https://virtualstate.dev */} 25 |
  • Now
  • 26 |
27 |
28 | ) 29 | -------------------------------------------------------------------------------- /src/unbound.tsx: -------------------------------------------------------------------------------- 1 | import { SourceReference, VNode } from '@virtualstate/x'; 2 | import { assertElement, NativeOptionsVNode, render } from '@virtualstate/dom'; 3 | import { h } from '@virtualstate/x'; 4 | 5 | export interface UnboundOptions { 6 | reference?: SourceReference; 7 | source?: string; 8 | onComplete?(): void; 9 | onError?(error: unknown): void; 10 | } 11 | 12 | export function Unbound(options: UnboundOptions, child: VNode): NativeOptionsVNode { 13 | const bound = Symbol("Bound"); 14 | 15 | let rendering: Promise 16 | 17 | return { 18 | reference: options.reference ?? Symbol("Unbound"), 19 | source: options.source ?? "div", 20 | options: { 21 | type: "Element", 22 | onBeforeRender(root) { 23 | assertElement(root); 24 | rendering = rendering || ( 25 | createRender(root).then(noop) 26 | ); 27 | } 28 | } 29 | } 30 | 31 | async function createRender(root: Element) { 32 | try { 33 | root.append(document.createElement("span")); 34 | await render(, root); 35 | options.onComplete?.(); 36 | } catch (error) { 37 | options.onError?.(error); 38 | } 39 | } 40 | 41 | function Bound() { 42 | return child; 43 | } 44 | } 45 | 46 | function noop() { 47 | return undefined; 48 | } 49 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/tokens.3.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _702_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const AdditionalTokens3 = ( 6 | 7 |
8 |
 9 |         {`
10 | 
11 |     
15 |         
16 |     
17 |     
21 |         
22 |     
23 |     
27 |         
28 |     
29 | 
30 |         `.trim()
31 |         }
32 |       
33 |
34 |           {`
35 | 
39 |     
40 |         
41 |     
42 |     
45 |     
46 |         
47 |     
48 | `.trim()}
49 |         
50 |
51 |
52 | ) 53 | -------------------------------------------------------------------------------- /src/contents/slides/bits-and-bobs/union.2.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _804_ExampleInformation } from '@virtualstate/examples'; 4 | import { padLines } from '../additional-points'; 5 | 6 | export const BitsUnion2 = ( 7 | 8 |
9 |
10 |         {`
11 | <>
12 |   
13 |   
14 |   
15 | 
16 |         `.trim()}
17 |       
18 |
19 |
20 |
21 |         {`
22 | <>
23 |   🐴
24 | 
25 |         `.trim()}
26 |         
27 |
28 |           {padLines(`
29 | <>
30 |   🐴 
31 |   🐦
32 | 
33 |         `.trim())}
34 |         
35 |
36 |           {padLines(`
37 | <>
38 |   💪
39 |   🐦
40 |   🤖
41 | 
42 |         `.trim())}
43 |         
44 |
45 |
46 |           {padLines(`
47 | <>
48 |   💪
49 |   ❤️
50 |   🤖
51 | 
52 |         `.trim())}
53 |       
54 |
55 |           {padLines(`
56 | <>
57 |   💪
58 |   ❤️
59 |   🤳
60 | 
61 |         `.trim())}
62 |       
63 |
64 |
65 |
66 |
67 | ) 68 | -------------------------------------------------------------------------------- /src/contents/slides/consume/logging.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide, SlideTokenVNode } from '../slide'; 3 | 4 | export const Logging = ( 5 | 6 |
7 |
 8 |         {`
 9 | const product = (
10 |   
14 |     
17 |   
18 | );
19 | `.trim()}
20 |       
21 |
22 | {
23 |   `
24 | async function * read(node) {
25 |   for await (const children of node) {
26 |     yield * children;
27 |     for (const child of children) {
28 |       yield * read(child);
29 |     }
30 |   }
31 | }
32 | 
33 | for await (const node of read(<>{product})) {
34 |   console.log({ node });
35 | }
36 | `.trim()
37 | }
38 |     
39 |
40 |
41 |
42 |
43 |       {`
44 | {
45 |   node: {
46 |     source: "product",
47 |     options: {
48 |       name: "🪕 The banjo cut",
49 |       sku: "🪕"
50 |     },
51 |     children: AsyncIterable
52 |   }
53 | }
54 |       `.trim()}
55 |       
56 |
57 |       {`
58 | {
59 |   node: {
60 |     source: "brand",
61 |     options: {
62 |       name: "🔮 Magic Hairstyles"
63 |     }
64 |   }
65 | }
66 |       `.trim()}
67 |       
68 |
69 |
70 | ) 71 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/13.clock-diagram.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

7 Segment Digit

7 |
8 |
9 |

Schematic

10 | Schematic for 7 segment digit 11 |
12 |
13 |

Working Example

14 | Implementation of 7 segment digit 15 |
16 |
17 |

BASIC Code Snipped

18 |
19 | {`Data 0  ,(%11101110)
20 | Data 1  ,(%10001000)
21 | Data 2  ,(%11000111)
22 | Data 3  ,(%11001101)
23 | Data 4  ,(%10101001)
24 | Data 5  ,(%01101101)
25 | Data 6  ,(%01101111)
26 | Data 7  ,(%11001000)
27 | Data 8  ,(%11101111)
28 | Data 9  ,(%11101001)
29 | 
30 | loopa:
31 | 
32 | for b2 = 0 to 9
33 | 
34 | Decode:
35 | read b2,b0
36 | b1 = b0 / 16
37 | b0 = b0 * 16
38 | b0 = b0 / 16
39 | bit4  = bit3
40 | bit3  = 0
41 | bit12 = bit11
42 | bit11 = 0
43 | 
44 | b10 = b0     'dirs
45 | b11 = b0    'pins
46 | b12 = b1    'dirs
47 | b1  = not b1'pins
48 | bit8 = 0
49 | b13 = b1
50 | 
51 | nap 7
52 | 
53 | for b3 = 0 to 255
54 | dirs = b10
55 | pins = b11
56 | dirs = b12
57 | pins = b13
58 | next b3
59 | 
60 | pins = 0
61 | dirs = 0
62 | next b2
63 | 
64 | goto loopa`}
65 |       
66 |
67 |
68 |
69 | ) 70 | -------------------------------------------------------------------------------- /src/contents/slides/first-take/1.primitives.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | 4 | export default ( 5 | 6 |

Primitive Data Types

7 |
8 |
9 |

Numbers

10 |
11 |         1
12 |       
13 |
14 |         2
15 |       
16 |
17 |         3
18 |       
19 |
20 |
21 |

Big Integers

22 |
23 |         100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n
24 |       
25 |
26 |         200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n
27 |       
28 |
29 |         300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n
30 |       
31 |
32 |
33 |

Strings

34 |
35 |         "Hello World!"
36 |       
37 |
{`\`
38 | 1. Write this list
39 | 2. Cross items of list
40 | 3. Finish list
41 | \``}
42 |
43 |
44 |

Booleans

45 |
46 |         true
47 |       
48 |
49 |         false
50 |       
51 |
52 |
53 |
54 | ) 55 | -------------------------------------------------------------------------------- /src/contents/slides/produce/just-in-time.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _208_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export const ProduceJustInTime = ( 6 | 7 |
8 |
{_208_ExampleInformation.cleanerSource.replace(/\\n/g, "")}
9 |
10 |
11 |

Log

12 |   13 |

Component

14 |   15 |

Both

16 |
17 |
18 |
19 |
{`
20 | 🎾
21 |       `.trim()}
22 |
{`
23 | ⏭️
24 |       `.trim()}
25 |
{`
26 | ⏭️
27 | 
28 |       `.trim()}
29 |
{`
30 | 🛑
31 |       `.trim()}
32 |
33 |   34 |
35 |
{`
36 | 🐸
37 | 💿
38 |       `.trim()}
39 |
{`
40 | 💎
41 | 🔑
42 | 
43 |       `.trim()}
44 |
{`
45 | 💡
46 | 
47 |       `.trim()}
48 |
49 |   50 |
51 | 52 |
{`
53 | 🎾
54 | 
55 | 🐸
56 | 💿
57 | 
58 | ⏭️
59 | 
60 | 💎
61 | 🔑
62 | 
63 | ⏭️
64 | 
65 | 💡
66 | 
67 | 🛑
68 |       `.trim()}
69 |
70 |
71 |
72 |
73 |
74 | ) 75 | -------------------------------------------------------------------------------- /src/contents/slides/additional-points/tokens.2.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../../h"; 2 | import { Slide } from '../slide'; 3 | import { _702_ExampleInformation } from '@virtualstate/examples'; 4 | 5 | export function padLines(text: string): string { 6 | const lines = text.split("\n"); 7 | const max = lines.reduce((max, line) => Math.max(max, line.length), 0); 8 | return lines.map(line => line.padEnd(max, " ")).join("\n"); 9 | } 10 | 11 | const definitions = _702_ExampleInformation.cleanerSource.split("\n").slice(0, 22).join("\n").trim().split("\n"); 12 | const symbolLines = definitions.filter(line => line.includes("Symbol = Symbol(\"")) 13 | const symbols = symbolLines 14 | .reverse() 15 | .map(line => { 16 | const [definition, statement] = line 17 | .replace(";", "") 18 | .split("=").map(value => value.trim()); 19 | const name = definition.split(" ")[1]; 20 | return [name, statement]; 21 | }) 22 | const withoutSymbols = definitions 23 | .filter(line => !symbolLines.includes(line)) 24 | .map(line => symbols.reduce( 25 | (line, [name, statement]) => line.replace(name, statement.replace(/Symbol\(("[^"]+")\)/, "$1")), 26 | line 27 | )); 28 | 29 | export const AdditionalTokens2 = ( 30 | 31 |

Tokens

32 |
33 |
{withoutSymbols.join("\n").trim()}
34 |
{_702_ExampleInformation.cleanerSource.split("\n").slice(23).join("\n").trim()}
35 |
36 |
37 |         {
38 |           padLines(`
39 | <📦>
40 |   📜
41 |   🧪 
42 |   🧵
43 |   <📦>
44 |     🌵
45 |     <🎁>
46 |       💣
47 |     
48 |   
49 | 
50 | `.trim())
51 |         }
52 |       
53 |
54 |
55 |
56 | ) 57 | -------------------------------------------------------------------------------- /src/h.ts: -------------------------------------------------------------------------------- 1 | import { createNode, Source, VNode, VNodeRepresentationSource, Fragment } from "@virtualstate/x"; 2 | import { 3 | isGetDocumentNodeOptions, 4 | isNativeOptions, 5 | NativeOptions, 6 | isOnBeforeRenderOptions, 7 | isAttributesOptions 8 | } from "@virtualstate/dom"; 9 | 10 | export function h(source: Source, options?: Record, ...children: VNodeRepresentationSource[]): VNode { 11 | if (source === "fragment") { 12 | return h(Fragment, options, ...children); 13 | } 14 | 15 | if (typeof source === "string" && options && !isNativeOptions(options)) { 16 | // Please if you have a solution to do this without any, please let me know 17 | const resultingOptions: Partial = { 18 | type: "Element", 19 | attributes: {}, 20 | }; 21 | 22 | const toJSON = () => ({ 23 | attributes: resultingOptions.attributes 24 | }); 25 | 26 | Object.defineProperty(resultingOptions, "toJSON", { 27 | value: toJSON, 28 | enumerable: false 29 | }); 30 | 31 | let remainingOptions: object = options; 32 | 33 | if (isGetDocumentNodeOptions(remainingOptions)) { 34 | const { getDocumentNode, ...nextRemainingOptions } = remainingOptions; 35 | remainingOptions = nextRemainingOptions; 36 | resultingOptions.getDocumentNode = getDocumentNode; 37 | } 38 | 39 | if (isOnBeforeRenderOptions(remainingOptions)) { 40 | const { onBeforeRender, ...nextRemainingOptions } = remainingOptions; 41 | remainingOptions = nextRemainingOptions; 42 | resultingOptions.onBeforeRender = onBeforeRender; 43 | } 44 | 45 | const finalOptions = { 46 | attributes: remainingOptions 47 | }; 48 | 49 | if (isAttributesOptions(finalOptions)) { 50 | resultingOptions.attributes = finalOptions.attributes; 51 | } 52 | 53 | return h(source, resultingOptions, ...children); 54 | } 55 | 56 | return createNode(source, options || {}, ...children); 57 | } 58 | -------------------------------------------------------------------------------- /scripts/prerender.js: -------------------------------------------------------------------------------- 1 | import "./jsdom.js"; 2 | import { promises as fs } from "node:fs"; 3 | import { dirname, join } from 'node:path'; 4 | import JSDOM from "jsdom"; 5 | 6 | window.prerender = true; 7 | 8 | // Create a new root element 9 | const root = document.createElement("div"); 10 | root.id = "root"; 11 | 12 | // No harm in appending our root to the document body 13 | document.body.append(root); 14 | 15 | // This will initialise our sites render 16 | await import("../build/index.js"); 17 | 18 | // The bundler does not have top level await support, so we must utilise the global 19 | // the above import sets 20 | await window.proposalSiteRender; 21 | 22 | const directory = dirname(new URL(import.meta.url).pathname); 23 | 24 | const indexPath = join(directory, "../build/index.html"); 25 | const index = await fs.readFile(indexPath, "utf8"); 26 | 27 | // Create a new page that can be requested, this won't be prerendered 28 | await fs.writeFile(join(directory, "../build/all.html"), index); 29 | 30 | const target = new JSDOM.JSDOM(index); 31 | 32 | // Copy over generated templates 33 | const template = document.createElement("template"); 34 | const foundTemplates = document.body.querySelectorAll("template[id]"); 35 | 36 | // Remove any existing versions of the template found 37 | for (const foundTemplate of foundTemplates) { 38 | const existing = target.window.document.getElementById(foundTemplate.id); 39 | if (existing) { 40 | existing.parentElement.removeChild(existing); 41 | } 42 | template.content.append(foundTemplate); 43 | } 44 | 45 | // Create a template in our target DOM and then copy over using an HTML string 46 | // then append these to the targets body using the target templates DocumentFragment 47 | const targetTemplate = target.window.document.createElement("template"); 48 | targetTemplate.innerHTML = template.innerHTML; 49 | target.window.document.body.append(targetTemplate.content); 50 | 51 | // Write to disk 52 | await fs.writeFile( 53 | indexPath, 54 | target.serialize() 55 | ) 56 | -------------------------------------------------------------------------------- /src/context.ts: -------------------------------------------------------------------------------- 1 | import { asyncHooks, source, asyncExtendedIterable, ExtendedAsyncIterable } from "iterable"; 2 | import { Is } from "io-ts"; 3 | 4 | export function createContext(defaultValue: T, name?: string, is?: Is, onRetrieveFailure?: (error?: unknown) => void, onStoreFailure?: (value: T, error?: unknown) => void): [() => ExtendedAsyncIterable, (value: T) => void] { 5 | let currentValue: T = defaultValue; 6 | 7 | // If `name` isn't provided, we aren't using storage 8 | // If `is` isn't provided, we are write only 9 | if (name && is) { 10 | try { 11 | const storedValue = localStorage.getItem(name); 12 | if (storedValue) { 13 | const parsedValue = JSON.parse(storedValue); 14 | if (is(parsedValue)) { 15 | currentValue = parsedValue; 16 | } 17 | } 18 | } catch (e) { 19 | // Silently continue, could not retrieve 20 | if (onRetrieveFailure) { 21 | onRetrieveFailure(e); 22 | } 23 | } 24 | } 25 | 26 | const preference = source(); 27 | const preferenceTriggered = new WeakMap(); 28 | const preferenceTrigger = asyncHooks({ 29 | next: async (iterator: AsyncIterator): Promise> => { 30 | if (preferenceTriggered.has(iterator)) { 31 | return iterator.next(); 32 | } 33 | preferenceTriggered.set(iterator, true); 34 | return { 35 | done: false, 36 | value: currentValue 37 | }; 38 | } 39 | }); 40 | 41 | return [ 42 | () => { 43 | return asyncExtendedIterable(preferenceTrigger(preference)); 44 | }, 45 | (value) => { 46 | currentValue = value; 47 | preference.push(value); 48 | if (name) { 49 | try { 50 | localStorage.setItem(name, JSON.stringify(value)); 51 | } catch (e) { 52 | // Silently continue, could not store 53 | if (onStoreFailure) { 54 | onStoreFailure(value, e); 55 | } 56 | } 57 | } 58 | } 59 | ]; 60 | } 61 | -------------------------------------------------------------------------------- /src/template.ts: -------------------------------------------------------------------------------- 1 | import { VNode } from '@virtualstate/x'; 2 | import { isElement, NativeOptionsVNode, render } from '@virtualstate/dom'; 3 | 4 | export interface TemplateOptions { 5 | id: string; 6 | } 7 | 8 | export async function Template({ id }: TemplateOptions, child: VNode): Promise { 9 | let createTemplatePromise: Promise | undefined; 10 | 11 | return { 12 | reference: Symbol("Templated Document Node"), 13 | children: { 14 | async *[Symbol.asyncIterator]() { 15 | yield * instance() 16 | } 17 | } 18 | } 19 | 20 | async function *instance(): AsyncIterable { 21 | const template = await getTemplate(document); 22 | yield Array.from(template.content.cloneNode(true).childNodes).map((node, index): NativeOptionsVNode => { 23 | return { 24 | reference: Symbol(["template", id, index].join(", ")), 25 | source: "template", 26 | options: { 27 | type: "Node", 28 | instance: node 29 | } 30 | } 31 | }); 32 | } 33 | 34 | async function getTemplate(document: Document): Promise { 35 | const existing = document.querySelector(`template#${id}`); 36 | if (isHTMLTemplateElement(existing)) { 37 | return existing; 38 | } 39 | return await (createTemplatePromise = createTemplatePromise || createTemplate(document)); 40 | 41 | function isHTMLTemplateElement(value: unknown): value is HTMLTemplateElement { 42 | return isElement(value) && value.tagName.toUpperCase() === "TEMPLATE"; 43 | } 44 | } 45 | 46 | async function createTemplate(document: Document): Promise { 47 | const template = document.createElement("template"); 48 | const root = document.createElement("div"); 49 | root.id = "template-root"; 50 | await render(child, root); 51 | template.content.append(...Array.from(root.childNodes)); 52 | template.id = id; 53 | document.body.append(template); 54 | createTemplatePromise = undefined; 55 | return template; 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import { render, DOMVContext, createTimeline, Timeline } from '@virtualstate/dom'; 2 | import { SiteBody } from './site'; 3 | import { h } from "./h"; 4 | import { isVNode } from '@virtualstate/fringe'; 5 | import { AllSlides } from './contents'; 6 | import { Slide } from './contents/slides/slide'; 7 | import ClassNames from 'classnames'; 8 | 9 | async function run() { 10 | 11 | const root = document.getElementById("root"); 12 | 13 | if (!root) { 14 | throw new Error("Expected root"); 15 | } 16 | 17 | // const timelinePromise = createTimeline( 18 | // context, 19 | // reportTimeline 20 | // ); 21 | 22 | if (!isVNode(SiteBody)) { 23 | throw new Error("Expected SiteBody to be a VNode"); 24 | } 25 | 26 | if (typeof window.location !== "undefined" && window.location.pathname === "/all") { 27 | const elements = await Promise.all( 28 | AllSlides 29 | .slice() 30 | .sort((a, b) => { 31 | return a.options.index < b.options.index ? -1 : 1 32 | }) 33 | .map(async (slide, index) => { 34 | const slideRoot = document.createElement("div"); 35 | const id = `slide__${index}_${slide.options.id}` 36 | const node = ( 37 |
38 |
39 |
40 | {slide} 41 |
42 |
43 |
44 | ); 45 | if (!isVNode(node)) throw new Error("Hmm"); 46 | await render( 47 | node, 48 | root 49 | ); 50 | return slideRoot; 51 | }) 52 | ); 53 | root.append(...elements); 54 | } else { 55 | await render( 56 | SiteBody, 57 | root 58 | ); 59 | } 60 | 61 | console.log("Completed rendering"); 62 | 63 | // await reportTimeline(await timelinePromise); 64 | } 65 | 66 | async function reportTimeline(timeline: Timeline) { 67 | // console.log(timeline[timeline.length - 1]); 68 | } 69 | 70 | window.proposalSiteRender = run(); 71 | window.proposalSiteRender.catch(error => { 72 | throw error; 73 | }); 74 | 75 | -------------------------------------------------------------------------------- /public/contact-energy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /public/clearpoint-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 10 | 11 | 14 | 16 | 20 | 26 | 31 | 34 | 39 | 44 | 48 | 49 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /public/logo-turbulence.svg: -------------------------------------------------------------------------------- 1 | 2 | 133 | 134 | 136 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /src/types/jsx.ts: -------------------------------------------------------------------------------- 1 | import { Source } from '@virtualstate/x'; 2 | 3 | export default 1; 4 | 5 | type BaseDocumentNode = Element | Text; 6 | 7 | declare global { 8 | 9 | namespace JSX { 10 | 11 | type Element = Source 12 | 13 | type DocumentNode = BaseDocumentNode; 14 | 15 | type Attributes = Record; 16 | 17 | type BooleanAttribute = boolean | ""; 18 | 19 | interface HTMLAriaAttributes { 20 | role?: string; 21 | "aria-controls"?: string; 22 | "aria-selected"?: string | BooleanAttribute; 23 | } 24 | 25 | interface HTMLElementAttributes extends HTMLAriaAttributes, Attributes { 26 | onBeforeRender?(node: DocumentNode): void | Promise; 27 | class?: string; 28 | accesskey?: string; 29 | contenteditable?: BooleanAttribute; 30 | contextmenu?: string; 31 | dir?: "rtl" | "ltr" | "auto"; 32 | draggable?: string; 33 | dropzone?: string; 34 | hidden?: string | boolean; 35 | id?: string; 36 | itemprop?: string; 37 | lang?: string; 38 | slot?: string; 39 | spellcheck?: string; 40 | style?: string; 41 | tabindex?: string | number; 42 | title?: string; 43 | translate?: string; 44 | } 45 | 46 | interface HTMLImageAttributes extends HTMLElementAttributes { 47 | 48 | } 49 | 50 | interface HTMLAnchorAttributes extends HTMLElementAttributes { 51 | 52 | } 53 | 54 | interface HTMLButtonAttributes extends HTMLElementAttributes { 55 | type: "submit" | "button"; 56 | } 57 | 58 | interface HTMLLinkAttributes extends HTMLElementAttributes { 59 | 60 | } 61 | 62 | interface HTMLMetaAttributes extends HTMLElementAttributes { 63 | 64 | } 65 | 66 | interface HTMLSlotAttributes extends HTMLElementAttributes { 67 | 68 | } 69 | 70 | interface HTMLScriptAttributes extends HTMLElementAttributes { 71 | src?: string; 72 | type?: string; 73 | } 74 | 75 | interface HTMLOptionAttributes extends HTMLElementAttributes { 76 | value?: string; 77 | disabled?: BooleanAttribute; 78 | } 79 | 80 | interface DOMElements { 81 | html: HTMLElementAttributes; 82 | body: HTMLElementAttributes; 83 | head: HTMLElementAttributes; 84 | title: HTMLElementAttributes; 85 | header: HTMLElementAttributes; 86 | footer: HTMLElementAttributes; 87 | article: HTMLElementAttributes; 88 | section: HTMLElementAttributes; 89 | div: HTMLElementAttributes; 90 | span: HTMLElementAttributes; 91 | img: HTMLImageAttributes; 92 | aside: HTMLElementAttributes; 93 | audio: HTMLElementAttributes; 94 | canvas: HTMLElementAttributes; 95 | datalist: HTMLElementAttributes; 96 | details: HTMLElementAttributes; 97 | embed: HTMLElementAttributes; 98 | nav: HTMLElementAttributes; 99 | output: HTMLElementAttributes; 100 | progress: HTMLElementAttributes; 101 | video: HTMLElementAttributes; 102 | ul: HTMLElementAttributes; 103 | li: HTMLElementAttributes; 104 | ol: HTMLElementAttributes; 105 | a: HTMLAnchorAttributes; 106 | p: HTMLElementAttributes; 107 | button: HTMLButtonAttributes; 108 | table: HTMLElementAttributes; 109 | thead: HTMLElementAttributes; 110 | tbody: HTMLElementAttributes; 111 | tr: HTMLElementAttributes; 112 | td: HTMLElementAttributes; 113 | th: HTMLElementAttributes; 114 | link: HTMLLinkAttributes; 115 | meta: HTMLMetaAttributes; 116 | marquee: HTMLElementAttributes; 117 | slot: HTMLSlotAttributes; 118 | h1: HTMLElementAttributes; 119 | h2: HTMLElementAttributes; 120 | h3: HTMLElementAttributes; 121 | h4: HTMLElementAttributes; 122 | h5: HTMLElementAttributes; 123 | h6: HTMLElementAttributes; 124 | script: HTMLScriptAttributes; 125 | pre: HTMLElementAttributes; 126 | code: HTMLElementAttributes; 127 | br: HTMLElementAttributes; 128 | hr: HTMLElementAttributes; 129 | main: HTMLElementAttributes; 130 | label: HTMLElementAttributes; 131 | em: HTMLElementAttributes; 132 | option: HTMLOptionAttributes; 133 | figure: HTMLElementAttributes; 134 | figcaption: HTMLElementAttributes; 135 | } 136 | 137 | interface IntrinsicElements extends DOMElements, Record { 138 | fragment: Attributes; 139 | } 140 | 141 | } 142 | 143 | } 144 | -------------------------------------------------------------------------------- /src/contents/slides/index.tsx: -------------------------------------------------------------------------------- 1 | import { h } from "../../h"; 2 | import { VNode } from '@virtualstate/x'; 3 | import { Slide, SlideTokenVNode } from './slide'; 4 | import * as Introduction from "./introduction"; 5 | import * as Consume from "./consume"; 6 | import * as Produce from "./produce"; 7 | import * as Additional from "./additional-points"; 8 | import * as Bring from "./bring-your-own"; 9 | import * as Other from "./other-things"; 10 | import * as Bits from "./bits-and-bobs"; 11 | import * as Closing from "./closing"; 12 | import { Collector } from 'microtask-collector'; 13 | import { Template } from "../../template"; 14 | import ClassNames from "classnames"; 15 | 16 | export const SlideMap = { 17 | ...Introduction, 18 | ...Consume, 19 | ...Produce, 20 | ...Additional, 21 | ...Bring, 22 | // ...Other, 23 | ...Bits, 24 | ...Closing 25 | } 26 | export const AllSlides = Object.values(SlideMap) 27 | .filter(Slide.is); 28 | 29 | export default ( 30 | 31 | {...AllSlides} 32 | 33 | ) 34 | 35 | async function last(iterable: AsyncIterable): Promise { 36 | const iterator = iterable[Symbol.asyncIterator](); 37 | let result; 38 | let value: T | undefined = undefined; 39 | do { 40 | result = await iterator.next(); 41 | value = result.done ? value : result.value; 42 | } while (!result.done); 43 | return value; 44 | } 45 | 46 | declare global { 47 | 48 | interface Window { 49 | prerender?: boolean; 50 | } 51 | } 52 | 53 | 54 | async function *Slides(options: unknown, child?: VNode) { 55 | if (!child?.children) { 56 | throw new Error("Expected slides"); 57 | } 58 | const slides = await last(child.children); 59 | assertSlides(slides); 60 | 61 | const indexedSlides = slides 62 | .slice() 63 | .sort((a, b) => a.options.index < b.options.index ? -1 : 1); 64 | 65 | let index = 0; 66 | 67 | const sessionKey = "Slides.index"; 68 | const sessionIndex = typeof sessionStorage === "undefined" ? undefined : sessionStorage.getItem(sessionKey); 69 | if (sessionIndex && /^\d+$/.test(sessionIndex)) { 70 | index = +sessionIndex; 71 | } 72 | 73 | const changeCollector = new Collector(); 74 | const changeIterator = changeCollector[Symbol.asyncIterator](); 75 | 76 | listen(); 77 | 78 | 79 | 80 | let nextChange; 81 | do { 82 | const id = `slide__${index}_${indexedSlides[index].options.id}` 83 | const slide = ( 84 |
85 |
86 | {indexedSlides[index]} 87 |
88 |
89 | ); 90 | if (indexedSlides[index].options.template === false) { 91 | yield slide; 92 | } else { 93 | yield ( 94 | 97 | ); 98 | } 99 | 100 | if (typeof window === "undefined" || window.prerender) { 101 | index += 1; 102 | if (!indexedSlides[index]) { 103 | break; 104 | } else { 105 | // Cycle through the slides to create templates 106 | continue; 107 | } 108 | } 109 | 110 | nextChange = await changeIterator.next(); 111 | 112 | if (nextChange.done || !nextChange.value?.length) { 113 | break; 114 | } 115 | 116 | index = nextChange.value.reduce( 117 | (index, change) => index + change, 118 | index 119 | ); 120 | 121 | if (index < 0) { 122 | index = 0; 123 | } else if (!indexedSlides[index]) { 124 | index = indexedSlides.length - 1; 125 | } 126 | 127 | if (typeof sessionStorage !== "undefined") { 128 | sessionStorage.setItem(sessionKey, index.toString()); 129 | } 130 | 131 | } while (!nextChange?.done); 132 | 133 | function assertSlides(slides?: ReadonlyArray): asserts slides is SlideTokenVNode[] { 134 | if (!slides?.length) throw new Error("Expected at least one slide"); 135 | for (const slide of slides) { 136 | Slide.assert(slide); 137 | } 138 | } 139 | 140 | function listen() { 141 | if (typeof window === "undefined") return; 142 | window.addEventListener("keydown", (event: KeyboardEvent) => { 143 | if (event.defaultPrevented) { 144 | return; // Do nothing if the event was already processed 145 | } 146 | console.log(event.key); 147 | switch (event.key) { 148 | case "Left": 149 | case "ArrowLeft": 150 | changeCollector.add(-1); 151 | break; 152 | case "Right": 153 | case "ArrowRight": 154 | changeCollector.add(1); 155 | break; 156 | } 157 | }); 158 | } 159 | } 160 | -------------------------------------------------------------------------------- /public/logo-x-static.svg: -------------------------------------------------------------------------------- 1 | 2 | 146 | 147 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ 5 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ 6 | "lib": [ 7 | "dom", 8 | "es2020", 9 | "esnext" 10 | ], /* Specify library files to be included in the compilation. */ 11 | // "allowJs": true, /* Allow javascript files to be compiled. */ 12 | // "checkJs": true, /* Report errors in .js files. */ 13 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 14 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 15 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 16 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 17 | // "outFile": "./", /* Concatenate and emit output to single file. */ 18 | // "outDir": "./", /* Redirect output structure to the directory. */ 19 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 20 | // "composite": true, /* Enable project compilation */ 21 | // "removeComments": true, /* Do not emit comments to output. */ 22 | // "noEmit": true, /* Do not emit outputs. */ 23 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 24 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 25 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 26 | 27 | /* Strict Type-Checking Options */ 28 | "strict": true, /* Enable all strict type-checking options. */ 29 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 30 | // "strictNullChecks": true, /* Enable strict null checks. */ 31 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 32 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 33 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 34 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 35 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 36 | 37 | /* Additional Checks */ 38 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 39 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 40 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 41 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 42 | 43 | /* Module Resolution Options */ 44 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 45 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 46 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 47 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 48 | "typeRoots": [ 49 | "src/types" 50 | ], /* List of folders to include type definitions from. */ 51 | // "types": [], /* Type declaration files to be included in compilation. */ 52 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 53 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 54 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 55 | 56 | /* Source Map Options */ 57 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 58 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 59 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 60 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 61 | 62 | /* Experimental Options */ 63 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 64 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */, 65 | "jsx": "react", 66 | "jsxFactory": "h", 67 | "jsxFragmentFactory": "createFragment" 68 | }, 69 | "include": [ 70 | "src", 71 | "src/index.tsx", 72 | "src/types" 73 | ], 74 | "exclude": [ 75 | "dist", 76 | "build" 77 | ] 78 | } 79 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --cube-size: 150px; 3 | --cube-size-face-z: -75px; 4 | } 5 | 6 | @page { 7 | size: auto; 8 | margin: 25mm 25mm 25mm 25mm; 9 | } 10 | 11 | @font-face { 12 | font-family: "OpenDyslexicMono"; 13 | src: url("/OpenDyslexicMono-Regular.otf"); 14 | } 15 | 16 | html { 17 | background: rgba(107, 43, 226, 0.75); 18 | } 19 | 20 | body { 21 | cursor: none; 22 | font-family: "OpenDyslexicMono", "Comic Sans MS", Arial, sans-serif; 23 | color: black; 24 | margin: 0; 25 | background: white; 26 | height: 100%; 27 | min-height: 100vh; 28 | font-size: 1.5em; 29 | background: 30 | linear-gradient(60deg, rgba(95, 224, 236, 0.2) 10%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%), 31 | linear-gradient(9deg, rgba(95, 224, 236, 0.3) 25%, rgba(95, 224, 236, 0.35) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%); 32 | } 33 | 34 | #slide__0_intro { 35 | /*background: rgba(199, 43, 226, 0.10);*/ 36 | /*background:*/ 37 | /* linear-gradient(60deg, rgba(95, 224, 236, 0.2) 10%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%),*/ 38 | /* linear-gradient(9deg, rgba(95, 224, 236, 0.3) 25%, rgba(95, 224, 236, 0.35) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%);*/ 39 | } 40 | 41 | p { 42 | line-height: 1.3em; 43 | } 44 | 45 | .quote, 46 | .example-output, 47 | pre { 48 | border-radius: 4px; 49 | padding: 1em; 50 | break-inside: avoid; 51 | background: white; 52 | } 53 | 54 | .quote { 55 | background-color: rgba(0, 0, 0, .05); 56 | } 57 | 58 | .code, 59 | pre { 60 | padding: 1em; 61 | border-radius: 4px; 62 | overflow-x: auto; 63 | overflow-y: hidden; 64 | border: 1px solid rgba(0, 0, 0, 0.2); 65 | background-color: rgba(242, 188, 255, 0.25); 66 | } 67 | 68 | span.code { 69 | border: none; 70 | padding: 0 0.25em; 71 | box-sizing: content-box; 72 | background-color: rgba(242, 188, 255, 0.25); 73 | } 74 | 75 | .example-output { 76 | border-radius: 4px; 77 | padding: 10px; 78 | border: 1px dashed #222222; 79 | } 80 | 81 | main { 82 | max-width: 0; 83 | padding: 0; 84 | display: flex; 85 | flex-direction: column; 86 | justify-items: flex-start; 87 | align-items: flex-start; 88 | } 89 | 90 | button { 91 | padding: 15px 10px; 92 | font-size: inherit; 93 | } 94 | 95 | a, button { 96 | min-height: 48px; 97 | min-width: 48px; 98 | cursor: pointer; 99 | } 100 | 101 | .esm-warning { 102 | margin: 0 auto; 103 | max-width: 40rem; 104 | } 105 | 106 | .slide { 107 | display: flex; 108 | flex-direction: column; 109 | min-height: 100vh; 110 | width: 100vw; 111 | align-items: center; 112 | justify-content: center; 113 | } 114 | 115 | .slide .examples { 116 | 117 | } 118 | 119 | .example-group { 120 | display: flex; 121 | flex-direction: column; 122 | align-items: stretch; 123 | border-radius: 1em; 124 | padding: 1em; 125 | margin: 1em; 126 | min-width: 15vw; 127 | border: 1px solid rgba(0, 0, 0, 0.1); 128 | background: white; 129 | } 130 | 131 | .example-group .example-output { 132 | width: 100%; 133 | } 134 | 135 | .example-group img { 136 | width: 30vw; 137 | object-fit: contain; 138 | object-position: center; 139 | } 140 | 141 | .example-group figure { 142 | position: relative; 143 | min-width: 100%; 144 | box-sizing: border-box; 145 | padding: 1em; 146 | margin: 0; 147 | } 148 | 149 | .example-group figcaption { 150 | position: absolute; 151 | top: -0.5em; 152 | left: 0.5em; 153 | background-color: white; 154 | padding: 0 .5em; 155 | } 156 | 157 | .author { 158 | margin-top: 3em; 159 | padding-top: 3em; 160 | border-top: 1px solid black; 161 | display: flex; 162 | flex-direction: column; 163 | justify-content: space-around; 164 | align-items: center; 165 | } 166 | 167 | .logos { 168 | display: flex; 169 | flex-direction: row; 170 | justify-content: space-around; 171 | align-items: center; 172 | } 173 | 174 | .logos img { 175 | margin: 2em 4em 4.5em; 176 | object-position: center; 177 | object-fit: contain; 178 | } 179 | 180 | #slide__0_intro h2 + h3 { 181 | margin-top: -2em; 182 | margin-bottom: 1em; 183 | display: block; 184 | padding-top: 1em; 185 | padding-bottom: 1em; 186 | font-size: .7em; 187 | } 188 | 189 | .row { 190 | display: flex; 191 | flex-direction: row; 192 | justify-content: center; 193 | align-items: flex-start; 194 | } 195 | 196 | .row.center { 197 | justify-content: center; 198 | align-items: center; 199 | } 200 | 201 | .row > pre { 202 | margin: .5em; 203 | } 204 | 205 | hr { 206 | min-width: 50vw; 207 | border-top: 0; 208 | border-color: rgba(0, 0, 0, 0.4); 209 | margin: 0; 210 | margin-top: 0.5em; 211 | } 212 | 213 | h1 { 214 | text-align: center; 215 | } 216 | 217 | .code.lines { 218 | text-decoration: underline; 219 | text-underline-offset: 0.5em; 220 | text-decoration-style: dotted; 221 | line-height: 1.75em; 222 | font-weight: bold; 223 | } 224 | 225 | .state-output { 226 | margin: .5em; 227 | padding: 2em; 228 | border: 2px dashed black; 229 | border-radius: 1em; 230 | background: linear-gradient(104deg, rgba(95, 224, 236, 0.1) 10%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%), 231 | linear-gradient(-9deg, rgba(95, 224, 236, 0.3) 25%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%); 232 | } 233 | 234 | .author { 235 | position: relative; 236 | transform-origin: center; 237 | transform: scale(.8); 238 | } 239 | 240 | .author:before { 241 | border-radius: 1em; 242 | position: absolute; 243 | top: 0; 244 | left: 0; 245 | content: ' '; 246 | display: block; 247 | width: 100%; 248 | height: 100%; 249 | /*background-color: rgba(10, 12, 157, 1);*/ 250 | z-index: -1; 251 | } 252 | 253 | .column { 254 | display: flex; 255 | flex-direction: column; 256 | justify-content: center; 257 | align-items: center; 258 | } 259 | 260 | .state-output:not(.author) h1, 261 | .state-output:not(.author) h2, 262 | .state-output:not(.author) h3 { 263 | font-size: .75em; 264 | } 265 | 266 | .row.stretch > * { 267 | flex: 1; 268 | } 269 | 270 | .closing-links > div { 271 | display: flex; 272 | flex-direction: column; 273 | } 274 | 275 | .closing-links h1 { 276 | display: flex; 277 | flex-direction: row; 278 | justify-content: flex-start; 279 | align-items: center; 280 | } 281 | 282 | .closing-links h1 span { 283 | margin-left: 2em; 284 | } 285 | 286 | .closing-links h1 img { 287 | width: 1.4em; 288 | height: 1.4em; 289 | } 290 | 291 | .closing-links a { 292 | text-decoration: none; 293 | color: inherit !important; 294 | cursor: pointer; 295 | } 296 | 297 | main { 298 | page-break-inside: avoid; 299 | } 300 | 301 | main + main { 302 | border-top: 5px dashed black; 303 | } 304 | 305 | .branded-x { 306 | color: transparent; 307 | position: relative; 308 | display: inline-block; 309 | width: 1.5em; 310 | height: 1em; 311 | padding: 0; 312 | margin: 0; 313 | margin-left: -0.25em; 314 | } 315 | .branded-x:before, 316 | .branded-x:after { 317 | position: absolute; 318 | left: 0; 319 | top: 0; 320 | content: ' '; 321 | background-image: url("/logo.svg"); 322 | background-size: 1em 1em; 323 | background-position: center; 324 | background-repeat: no-repeat; 325 | width: 1em; 326 | height: 1em; 327 | display: inline-block; 328 | } 329 | 330 | .branded-x:after { 331 | animation-name: logo-b; 332 | animation-duration: 10000ms; 333 | animation-iteration-count: infinite; 334 | animation-direction: alternate; 335 | background-image: url("/logo-turbulence.svg"); 336 | transform: rotate(180deg); 337 | transform-origin: center; 338 | } 339 | 340 | @keyframes logo-b { 341 | 0% { 342 | opacity: 0; } 343 | 40% { 344 | opacity: 1; } 345 | 60% { 346 | opacity: 1; } 347 | 100% { 348 | opacity: 0; } 349 | } 350 | 351 | .closing, 352 | .closing-links { 353 | background: 354 | linear-gradient(90deg, rgba(95, 224, 236, 0.1) 10%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%), 355 | linear-gradient(-9deg, rgba(95, 224, 236, 0.3) 25%, rgba(95, 224, 236, 0.1) 20%, rgba(95, 224, 236, 0.3) 50%, rgba(95, 224, 236, 0.2) 100%); 356 | } 357 | 358 | .nzjscon { 359 | display: block; 360 | position: absolute; 361 | bottom: 3em; 362 | right: 3em; 363 | background: #f0db4f; 364 | border-radius: .5em; 365 | padding: 1em; 366 | } 367 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@jest/types@^26.6.2": 6 | version "26.6.2" 7 | resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" 8 | integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== 9 | dependencies: 10 | "@types/istanbul-lib-coverage" "^2.0.0" 11 | "@types/istanbul-reports" "^3.0.0" 12 | "@types/node" "*" 13 | "@types/yargs" "^15.0.0" 14 | chalk "^4.0.0" 15 | 16 | "@npmcli/git@^2.0.1": 17 | version "2.0.9" 18 | resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.0.9.tgz#915bbfe66300e67b4da5ef765a4475ffb2ca5b6b" 19 | integrity sha512-hTMbMryvOqGLwnmMBKs5usbPsJtyEsMsgXwJbmNrsEuQQh1LAIMDU77IoOrwkCg+NgQWl+ySlarJASwM3SutCA== 20 | dependencies: 21 | "@npmcli/promise-spawn" "^1.3.2" 22 | lru-cache "^6.0.0" 23 | mkdirp "^1.0.4" 24 | npm-pick-manifest "^6.1.1" 25 | promise-inflight "^1.0.1" 26 | promise-retry "^2.0.1" 27 | semver "^7.3.5" 28 | which "^2.0.2" 29 | 30 | "@npmcli/installed-package-contents@^1.0.6": 31 | version "1.0.7" 32 | resolved "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" 33 | integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== 34 | dependencies: 35 | npm-bundled "^1.1.1" 36 | npm-normalize-package-bin "^1.0.1" 37 | 38 | "@npmcli/move-file@^1.0.1": 39 | version "1.1.2" 40 | resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" 41 | integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== 42 | dependencies: 43 | mkdirp "^1.0.4" 44 | rimraf "^3.0.2" 45 | 46 | "@npmcli/node-gyp@^1.0.2": 47 | version "1.0.2" 48 | resolved "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede" 49 | integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg== 50 | 51 | "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": 52 | version "1.3.2" 53 | resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" 54 | integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== 55 | dependencies: 56 | infer-owner "^1.0.4" 57 | 58 | "@npmcli/run-script@^1.8.2": 59 | version "1.8.5" 60 | resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz#f250a0c5e1a08a792d775a315d0ff42fc3a51e1d" 61 | integrity sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A== 62 | dependencies: 63 | "@npmcli/node-gyp" "^1.0.2" 64 | "@npmcli/promise-spawn" "^1.3.2" 65 | infer-owner "^1.0.4" 66 | node-gyp "^7.1.0" 67 | read-package-json-fast "^2.0.1" 68 | 69 | "@opennetwork/linked-list@^4.0.0": 70 | version "4.0.0" 71 | resolved "https://registry.npmjs.org/@opennetwork/linked-list/-/linked-list-4.0.0.tgz#69e25d0b00387f00da91faea2a5b77897d920712" 72 | integrity sha512-aMEXPA0y3FZd5IlPPNVLHf5jxwNE9bo6d+5OgCsqZhRilftUuaytEnAS+7ggjiPekAtVDFl2okYROqtL3f02+g== 73 | 74 | "@tootallnate/once@1": 75 | version "1.1.2" 76 | resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" 77 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 78 | 79 | "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": 80 | version "2.0.3" 81 | resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" 82 | integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== 83 | 84 | "@types/istanbul-lib-report@*": 85 | version "3.0.0" 86 | resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" 87 | integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== 88 | dependencies: 89 | "@types/istanbul-lib-coverage" "*" 90 | 91 | "@types/istanbul-reports@^3.0.0": 92 | version "3.0.1" 93 | resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" 94 | integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== 95 | dependencies: 96 | "@types/istanbul-lib-report" "*" 97 | 98 | "@types/jest@^26.0.21": 99 | version "26.0.23" 100 | resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz#a1b7eab3c503b80451d019efb588ec63522ee4e7" 101 | integrity sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA== 102 | dependencies: 103 | jest-diff "^26.0.0" 104 | pretty-format "^26.0.0" 105 | 106 | "@types/node@*": 107 | version "15.12.2" 108 | resolved "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" 109 | integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== 110 | 111 | "@types/node@^14.14.35": 112 | version "14.17.3" 113 | resolved "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz#6d327abaa4be34a74e421ed6409a0ae2f47f4c3d" 114 | integrity sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw== 115 | 116 | "@types/yargs-parser@*": 117 | version "20.2.0" 118 | resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" 119 | integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== 120 | 121 | "@types/yargs@^15.0.0": 122 | version "15.0.13" 123 | resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" 124 | integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== 125 | dependencies: 126 | "@types/yargs-parser" "*" 127 | 128 | "@virtualstate/dom@^2.14.5": 129 | version "2.14.5" 130 | resolved "https://registry.npmjs.org/@virtualstate/dom/-/dom-2.14.5.tgz#d444a59df87af6421f1ae4a630b0060a29aa1922" 131 | integrity sha512-qlI6llOv5cNZN+QXy7ShcjbGV0767Rw+CRqMRasodsgaBFkL0k8m5VKur6l7p8n7pNROW0FgAcPDe5zu0Qp88w== 132 | dependencies: 133 | "@virtualstate/fringe" "^2.14.5" 134 | "@virtualstate/hooks" "^2.14.5" 135 | "@virtualstate/union" "^2.14.5" 136 | "@virtualstate/x" "^2.14.5" 137 | iterable "^5.6.0" 138 | microtask-collector "^3.1.0" 139 | 140 | "@virtualstate/examples@^2.14.7": 141 | version "2.14.7" 142 | resolved "https://registry.npmjs.org/@virtualstate/examples/-/examples-2.14.7.tgz#8c781c93885b9985a4ca3484255b270294d29788" 143 | integrity sha512-daxL9cgC+1A6GbzafqR84Gpj27cQZijMIVOP9lVMAALfL+mw6zugZxGtpZyWfabagxTTbIw1e1T3m4ghMogdaw== 144 | dependencies: 145 | "@virtualstate/fringe" "^2.14.5" 146 | "@virtualstate/hooks" "^2.14.5" 147 | "@virtualstate/union" "^2.14.5" 148 | "@virtualstate/x" "^2.14.5" 149 | iterable "^5.6.0" 150 | microtask-collector "^3.1.0" 151 | 152 | "@virtualstate/fringe@^2.14.5": 153 | version "2.14.5" 154 | resolved "https://registry.npmjs.org/@virtualstate/fringe/-/fringe-2.14.5.tgz#77786220370a271831e55a0e32b72b0dc37d8147" 155 | integrity sha512-pDBYFXCGGoRPdvZkph+P6GyRuuSs0ZlM3mJ7c9dLrV6K/hKqH8JtLQlB5b+8fN81yyAQZ4mpQ6xRLQsgZd8uzQ== 156 | 157 | "@virtualstate/hooks-extended@^2.14.5": 158 | version "2.14.5" 159 | resolved "https://registry.npmjs.org/@virtualstate/hooks-extended/-/hooks-extended-2.14.5.tgz#2e1a5fdc5d83bbfe7c4e3cdac424803bb70c8ba2" 160 | integrity sha512-by0oEBoCl+G1ZdMHSbn6yrmiZn0g20+eCSfvIaG3VBkJLixuioEjW14prt7L9p3ReORCq+PBKZtVQ5kLXNMXfw== 161 | 162 | "@virtualstate/hooks@^2.14.5": 163 | version "2.14.5" 164 | resolved "https://registry.npmjs.org/@virtualstate/hooks/-/hooks-2.14.5.tgz#5e5b5303e668aa676cb1a4c13b154d47e05c7594" 165 | integrity sha512-QknE9tjoC/tZJdwIrCDiMpL9vpadT41hMpUiTpG7hOt5OZyI2jmCy/qnhCs+zB0qeRwckF5ovlhQacRAk/H4HA== 166 | 167 | "@virtualstate/union@^2.14.5": 168 | version "2.14.5" 169 | resolved "https://registry.npmjs.org/@virtualstate/union/-/union-2.14.5.tgz#b22fd416648b82889fb28d23726dccb7629e0c62" 170 | integrity sha512-Skd6vLYrzUiTLQI+VIxS4kRUCS8Pcb17rqa4UQrZk5PwSDSGj0tU42tIha/zyCAnMN7vg5zdm3bJI2iGD1cH4Q== 171 | 172 | "@virtualstate/x@^2.14.5": 173 | version "2.14.5" 174 | resolved "https://registry.npmjs.org/@virtualstate/x/-/x-2.14.5.tgz#248a28744f4f6094e671f2d7ed228825c60b67c8" 175 | integrity sha512-j/BJ+ZwAZpYpAPVvjLigEDKiWcpp/UJ+hHIClKt4IDar1NQhntZzwEpsTfSJFm+yFxt35UN0YY6+s4x7I+ycrg== 176 | dependencies: 177 | "@virtualstate/fringe" "^2.14.5" 178 | "@virtualstate/hooks" "^2.14.5" 179 | "@virtualstate/union" "^2.14.5" 180 | iterable "^5.6.0" 181 | microtask-collector "^3.1.0" 182 | 183 | abab@^2.0.3, abab@^2.0.5: 184 | version "2.0.5" 185 | resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" 186 | integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== 187 | 188 | abbrev@1: 189 | version "1.1.1" 190 | resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 191 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 192 | 193 | acorn-globals@^6.0.0: 194 | version "6.0.0" 195 | resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" 196 | integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== 197 | dependencies: 198 | acorn "^7.1.1" 199 | acorn-walk "^7.1.1" 200 | 201 | acorn-walk@^7.1.1: 202 | version "7.2.0" 203 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" 204 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== 205 | 206 | acorn@^7.1.1: 207 | version "7.4.1" 208 | resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 209 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 210 | 211 | acorn@^8.2.4: 212 | version "8.4.0" 213 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz#af53266e698d7cffa416714b503066a82221be60" 214 | integrity sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w== 215 | 216 | agent-base@6: 217 | version "6.0.2" 218 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 219 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 220 | dependencies: 221 | debug "4" 222 | 223 | agentkeepalive@^4.1.3: 224 | version "4.1.4" 225 | resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b" 226 | integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ== 227 | dependencies: 228 | debug "^4.1.0" 229 | depd "^1.1.2" 230 | humanize-ms "^1.2.1" 231 | 232 | aggregate-error@^3.0.0: 233 | version "3.1.0" 234 | resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" 235 | integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== 236 | dependencies: 237 | clean-stack "^2.0.0" 238 | indent-string "^4.0.0" 239 | 240 | ajv@^6.12.3: 241 | version "6.12.6" 242 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 243 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 244 | dependencies: 245 | fast-deep-equal "^3.1.1" 246 | fast-json-stable-stringify "^2.0.0" 247 | json-schema-traverse "^0.4.1" 248 | uri-js "^4.2.2" 249 | 250 | ansi-regex@^2.0.0: 251 | version "2.1.1" 252 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 253 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 254 | 255 | ansi-regex@^3.0.0: 256 | version "3.0.0" 257 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 258 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 259 | 260 | ansi-regex@^5.0.0: 261 | version "5.0.0" 262 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 263 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 264 | 265 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 266 | version "4.3.0" 267 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 268 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 269 | dependencies: 270 | color-convert "^2.0.1" 271 | 272 | aproba@^1.0.3: 273 | version "1.2.0" 274 | resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 275 | integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 276 | 277 | are-we-there-yet@~1.1.2: 278 | version "1.1.5" 279 | resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 280 | integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== 281 | dependencies: 282 | delegates "^1.0.0" 283 | readable-stream "^2.0.6" 284 | 285 | asn1@~0.2.3: 286 | version "0.2.4" 287 | resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" 288 | integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== 289 | dependencies: 290 | safer-buffer "~2.1.0" 291 | 292 | assert-plus@1.0.0, assert-plus@^1.0.0: 293 | version "1.0.0" 294 | resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 295 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 296 | 297 | asynckit@^0.4.0: 298 | version "0.4.0" 299 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 300 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 301 | 302 | aws-sign2@~0.7.0: 303 | version "0.7.0" 304 | resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 305 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 306 | 307 | aws4@^1.8.0: 308 | version "1.11.0" 309 | resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" 310 | integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== 311 | 312 | balanced-match@^1.0.0: 313 | version "1.0.2" 314 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 315 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 316 | 317 | bcrypt-pbkdf@^1.0.0: 318 | version "1.0.2" 319 | resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 320 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 321 | dependencies: 322 | tweetnacl "^0.14.3" 323 | 324 | big-integer@^1.6.7: 325 | version "1.6.48" 326 | resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" 327 | integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== 328 | 329 | bplist-parser@^0.1.0: 330 | version "0.1.1" 331 | resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6" 332 | integrity sha1-1g1dzCDLptx+HymbNdPh+V2vuuY= 333 | dependencies: 334 | big-integer "^1.6.7" 335 | 336 | brace-expansion@^1.1.7: 337 | version "1.1.11" 338 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 339 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 340 | dependencies: 341 | balanced-match "^1.0.0" 342 | concat-map "0.0.1" 343 | 344 | browser-process-hrtime@^1.0.0: 345 | version "1.0.0" 346 | resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" 347 | integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== 348 | 349 | builtins@^1.0.3: 350 | version "1.0.3" 351 | resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" 352 | integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= 353 | 354 | cacache@^15.0.5, cacache@^15.2.0: 355 | version "15.2.0" 356 | resolved "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" 357 | integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== 358 | dependencies: 359 | "@npmcli/move-file" "^1.0.1" 360 | chownr "^2.0.0" 361 | fs-minipass "^2.0.0" 362 | glob "^7.1.4" 363 | infer-owner "^1.0.4" 364 | lru-cache "^6.0.0" 365 | minipass "^3.1.1" 366 | minipass-collect "^1.0.2" 367 | minipass-flush "^1.0.5" 368 | minipass-pipeline "^1.2.2" 369 | mkdirp "^1.0.3" 370 | p-map "^4.0.0" 371 | promise-inflight "^1.0.1" 372 | rimraf "^3.0.2" 373 | ssri "^8.0.1" 374 | tar "^6.0.2" 375 | unique-filename "^1.1.1" 376 | 377 | caseless@~0.12.0: 378 | version "0.12.0" 379 | resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 380 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 381 | 382 | chalk@^4.0.0: 383 | version "4.1.1" 384 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" 385 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 386 | dependencies: 387 | ansi-styles "^4.1.0" 388 | supports-color "^7.1.0" 389 | 390 | chownr@^2.0.0: 391 | version "2.0.0" 392 | resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" 393 | integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== 394 | 395 | classnames@^2.3.1: 396 | version "2.3.1" 397 | resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" 398 | integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== 399 | 400 | clean-stack@^2.0.0: 401 | version "2.2.0" 402 | resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 403 | integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 404 | 405 | cli-spinners@^2.5.0: 406 | version "2.6.0" 407 | resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" 408 | integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== 409 | 410 | code-point-at@^1.0.0: 411 | version "1.1.0" 412 | resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 413 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 414 | 415 | color-convert@^2.0.1: 416 | version "2.0.1" 417 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 418 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 419 | dependencies: 420 | color-name "~1.1.4" 421 | 422 | color-name@~1.1.4: 423 | version "1.1.4" 424 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 425 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 426 | 427 | combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: 428 | version "1.0.8" 429 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 430 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 431 | dependencies: 432 | delayed-stream "~1.0.0" 433 | 434 | concat-map@0.0.1: 435 | version "0.0.1" 436 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 437 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 438 | 439 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 440 | version "1.1.0" 441 | resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 442 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 443 | 444 | core-util-is@1.0.2, core-util-is@~1.0.0: 445 | version "1.0.2" 446 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 447 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 448 | 449 | cssom@^0.4.4: 450 | version "0.4.4" 451 | resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" 452 | integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== 453 | 454 | cssom@~0.3.6: 455 | version "0.3.8" 456 | resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" 457 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== 458 | 459 | cssstyle@^2.3.0: 460 | version "2.3.0" 461 | resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" 462 | integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== 463 | dependencies: 464 | cssom "~0.3.6" 465 | 466 | dashdash@^1.12.0: 467 | version "1.14.1" 468 | resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 469 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 470 | dependencies: 471 | assert-plus "^1.0.0" 472 | 473 | data-urls@^2.0.0: 474 | version "2.0.0" 475 | resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" 476 | integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== 477 | dependencies: 478 | abab "^2.0.3" 479 | whatwg-mimetype "^2.3.0" 480 | whatwg-url "^8.0.0" 481 | 482 | debug@4, debug@^4.1.0: 483 | version "4.3.1" 484 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 485 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 486 | dependencies: 487 | ms "2.1.2" 488 | 489 | decimal.js@^10.2.1: 490 | version "10.2.1" 491 | resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" 492 | integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== 493 | 494 | deep-is@~0.1.3: 495 | version "0.1.3" 496 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 497 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 498 | 499 | default-browser-id@^2.0.0: 500 | version "2.0.0" 501 | resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-2.0.0.tgz#01ecce371a71e85f15a17177e7863047e73dbe7d" 502 | integrity sha1-AezONxpx6F8VoXF354YwR+c9vn0= 503 | dependencies: 504 | bplist-parser "^0.1.0" 505 | pify "^2.3.0" 506 | untildify "^2.0.0" 507 | 508 | delayed-stream@~1.0.0: 509 | version "1.0.0" 510 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 511 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 512 | 513 | delegates@^1.0.0: 514 | version "1.0.0" 515 | resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 516 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 517 | 518 | depd@^1.1.2: 519 | version "1.1.2" 520 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 521 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 522 | 523 | diff-sequences@^26.6.2: 524 | version "26.6.2" 525 | resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" 526 | integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== 527 | 528 | domexception@^2.0.1: 529 | version "2.0.1" 530 | resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" 531 | integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== 532 | dependencies: 533 | webidl-conversions "^5.0.0" 534 | 535 | ecc-jsbn@~0.1.1: 536 | version "0.1.2" 537 | resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 538 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 539 | dependencies: 540 | jsbn "~0.1.0" 541 | safer-buffer "^2.1.0" 542 | 543 | encoding@^0.1.12: 544 | version "0.1.13" 545 | resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" 546 | integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== 547 | dependencies: 548 | iconv-lite "^0.6.2" 549 | 550 | env-paths@^2.2.0: 551 | version "2.2.1" 552 | resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" 553 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 554 | 555 | err-code@^2.0.2: 556 | version "2.0.3" 557 | resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" 558 | integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== 559 | 560 | esbuild@^0.9.3: 561 | version "0.9.7" 562 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.9.7.tgz#ea0d639cbe4b88ec25fbed4d6ff00c8d788ef70b" 563 | integrity sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg== 564 | 565 | escodegen@^2.0.0: 566 | version "2.0.0" 567 | resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" 568 | integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== 569 | dependencies: 570 | esprima "^4.0.1" 571 | estraverse "^5.2.0" 572 | esutils "^2.0.2" 573 | optionator "^0.8.1" 574 | optionalDependencies: 575 | source-map "~0.6.1" 576 | 577 | esprima@^4.0.1: 578 | version "4.0.1" 579 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 580 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 581 | 582 | estraverse@^5.2.0: 583 | version "5.2.0" 584 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 585 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 586 | 587 | esutils@^2.0.2: 588 | version "2.0.3" 589 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 590 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 591 | 592 | extend@~3.0.2: 593 | version "3.0.2" 594 | resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 595 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 596 | 597 | extsprintf@1.3.0: 598 | version "1.3.0" 599 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 600 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 601 | 602 | extsprintf@^1.2.0: 603 | version "1.4.0" 604 | resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 605 | integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= 606 | 607 | fast-deep-equal@^3.1.1: 608 | version "3.1.3" 609 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 610 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 611 | 612 | fast-json-stable-stringify@^2.0.0: 613 | version "2.1.0" 614 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 615 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 616 | 617 | fast-levenshtein@~2.0.6: 618 | version "2.0.6" 619 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 620 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 621 | 622 | fdir@^5.0.0: 623 | version "5.1.0" 624 | resolved "https://registry.npmjs.org/fdir/-/fdir-5.1.0.tgz#973e4934e6a3666b59ebdfc56f60bb8e9b16acb8" 625 | integrity sha512-IgTtZwL52tx2wqWeuGDzXYTnNsEjNLahZpJw30hCQDyVnoHXwY5acNDnjGImTTL1R0z1PCyLw20VAbE5qLic3Q== 626 | 627 | forever-agent@~0.6.1: 628 | version "0.6.1" 629 | resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 630 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 631 | 632 | form-data@^3.0.0: 633 | version "3.0.1" 634 | resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" 635 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== 636 | dependencies: 637 | asynckit "^0.4.0" 638 | combined-stream "^1.0.8" 639 | mime-types "^2.1.12" 640 | 641 | form-data@~2.3.2: 642 | version "2.3.3" 643 | resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 644 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 645 | dependencies: 646 | asynckit "^0.4.0" 647 | combined-stream "^1.0.6" 648 | mime-types "^2.1.12" 649 | 650 | fp-ts@^2.10.4: 651 | version "2.10.5" 652 | resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-2.10.5.tgz#7c77868fe8bd9b229743303c1bec505b959f631b" 653 | integrity sha512-X2KfTIV0cxIk3d7/2Pvp/pxL/xr2MV1WooyEzKtTWYSc1+52VF4YzjBTXqeOlSiZsPCxIBpDGfT9Dyo7WEY0DQ== 654 | 655 | fs-minipass@^2.0.0, fs-minipass@^2.1.0: 656 | version "2.1.0" 657 | resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" 658 | integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== 659 | dependencies: 660 | minipass "^3.0.0" 661 | 662 | fs.realpath@^1.0.0: 663 | version "1.0.0" 664 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 665 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 666 | 667 | fsevents@^2.2.0: 668 | version "2.3.2" 669 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 670 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 671 | 672 | fsevents@~2.1.2: 673 | version "2.1.3" 674 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" 675 | integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== 676 | 677 | function-bind@^1.1.1: 678 | version "1.1.1" 679 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 680 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 681 | 682 | gauge@~2.7.3: 683 | version "2.7.4" 684 | resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 685 | integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= 686 | dependencies: 687 | aproba "^1.0.3" 688 | console-control-strings "^1.0.0" 689 | has-unicode "^2.0.0" 690 | object-assign "^4.1.0" 691 | signal-exit "^3.0.0" 692 | string-width "^1.0.1" 693 | strip-ansi "^3.0.1" 694 | wide-align "^1.1.0" 695 | 696 | getpass@^0.1.1: 697 | version "0.1.7" 698 | resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 699 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 700 | dependencies: 701 | assert-plus "^1.0.0" 702 | 703 | glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: 704 | version "7.1.7" 705 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 706 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 707 | dependencies: 708 | fs.realpath "^1.0.0" 709 | inflight "^1.0.4" 710 | inherits "2" 711 | minimatch "^3.0.4" 712 | once "^1.3.0" 713 | path-is-absolute "^1.0.0" 714 | 715 | graceful-fs@^4.2.3: 716 | version "4.2.6" 717 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 718 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 719 | 720 | har-schema@^2.0.0: 721 | version "2.0.0" 722 | resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 723 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 724 | 725 | har-validator@~5.1.3: 726 | version "5.1.5" 727 | resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" 728 | integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== 729 | dependencies: 730 | ajv "^6.12.3" 731 | har-schema "^2.0.0" 732 | 733 | has-flag@^4.0.0: 734 | version "4.0.0" 735 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 736 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 737 | 738 | has-unicode@^2.0.0: 739 | version "2.0.1" 740 | resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 741 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 742 | 743 | has@^1.0.3: 744 | version "1.0.3" 745 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 746 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 747 | dependencies: 748 | function-bind "^1.1.1" 749 | 750 | hosted-git-info@^4.0.1: 751 | version "4.0.2" 752 | resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" 753 | integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== 754 | dependencies: 755 | lru-cache "^6.0.0" 756 | 757 | html-encoding-sniffer@^2.0.1: 758 | version "2.0.1" 759 | resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" 760 | integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== 761 | dependencies: 762 | whatwg-encoding "^1.0.5" 763 | 764 | http-cache-semantics@^4.1.0: 765 | version "4.1.0" 766 | resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 767 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 768 | 769 | http-proxy-agent@^4.0.1: 770 | version "4.0.1" 771 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" 772 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 773 | dependencies: 774 | "@tootallnate/once" "1" 775 | agent-base "6" 776 | debug "4" 777 | 778 | http-signature@~1.2.0: 779 | version "1.2.0" 780 | resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 781 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 782 | dependencies: 783 | assert-plus "^1.0.0" 784 | jsprim "^1.2.2" 785 | sshpk "^1.7.0" 786 | 787 | https-proxy-agent@^5.0.0: 788 | version "5.0.0" 789 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 790 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 791 | dependencies: 792 | agent-base "6" 793 | debug "4" 794 | 795 | humanize-ms@^1.2.1: 796 | version "1.2.1" 797 | resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 798 | integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= 799 | dependencies: 800 | ms "^2.0.0" 801 | 802 | iconv-lite@0.4.24: 803 | version "0.4.24" 804 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 805 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 806 | dependencies: 807 | safer-buffer ">= 2.1.2 < 3" 808 | 809 | iconv-lite@^0.6.2: 810 | version "0.6.3" 811 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" 812 | integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== 813 | dependencies: 814 | safer-buffer ">= 2.1.2 < 3.0.0" 815 | 816 | ignore-walk@^3.0.3: 817 | version "3.0.4" 818 | resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" 819 | integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== 820 | dependencies: 821 | minimatch "^3.0.4" 822 | 823 | imurmurhash@^0.1.4: 824 | version "0.1.4" 825 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 826 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 827 | 828 | indent-string@^4.0.0: 829 | version "4.0.0" 830 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 831 | integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 832 | 833 | infer-owner@^1.0.4: 834 | version "1.0.4" 835 | resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" 836 | integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== 837 | 838 | inflight@^1.0.4: 839 | version "1.0.6" 840 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 841 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 842 | dependencies: 843 | once "^1.3.0" 844 | wrappy "1" 845 | 846 | inherits@2, inherits@~2.0.3: 847 | version "2.0.4" 848 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 849 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 850 | 851 | io-ts@^2.2.16: 852 | version "2.2.16" 853 | resolved "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz#597dffa03db1913fc318c9c6df6931cb4ed808b2" 854 | integrity sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q== 855 | 856 | ip@^1.1.5: 857 | version "1.1.5" 858 | resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 859 | integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= 860 | 861 | is-core-module@^2.2.0: 862 | version "2.4.0" 863 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" 864 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== 865 | dependencies: 866 | has "^1.0.3" 867 | 868 | is-docker@^2.0.0: 869 | version "2.2.1" 870 | resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" 871 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== 872 | 873 | is-fullwidth-code-point@^1.0.0: 874 | version "1.0.0" 875 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 876 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 877 | dependencies: 878 | number-is-nan "^1.0.0" 879 | 880 | is-fullwidth-code-point@^2.0.0: 881 | version "2.0.0" 882 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 883 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 884 | 885 | is-lambda@^1.0.1: 886 | version "1.0.1" 887 | resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" 888 | integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= 889 | 890 | is-potential-custom-element-name@^1.0.1: 891 | version "1.0.1" 892 | resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" 893 | integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== 894 | 895 | is-typedarray@~1.0.0: 896 | version "1.0.0" 897 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 898 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 899 | 900 | is-wsl@^2.1.1: 901 | version "2.2.0" 902 | resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 903 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 904 | dependencies: 905 | is-docker "^2.0.0" 906 | 907 | isarray@~1.0.0: 908 | version "1.0.0" 909 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 910 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 911 | 912 | isexe@^2.0.0: 913 | version "2.0.0" 914 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 915 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 916 | 917 | isstream@~0.1.2: 918 | version "0.1.2" 919 | resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 920 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 921 | 922 | iterable@^5.6.0, iterable@^5.7.0: 923 | version "5.7.0" 924 | resolved "https://registry.npmjs.org/iterable/-/iterable-5.7.0.tgz#6937296d3380c227f55fd5ca299e41a821d573f7" 925 | integrity sha512-xLERMG+ha4eAxSkms2iaJbjFW5V2uB8vFZVq6Kh+YwPax29IwMTdOIOoieeXOu6+nV0+xe82i2H346RLvsyigA== 926 | 927 | jest-diff@^26.0.0: 928 | version "26.6.2" 929 | resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" 930 | integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== 931 | dependencies: 932 | chalk "^4.0.0" 933 | diff-sequences "^26.6.2" 934 | jest-get-type "^26.3.0" 935 | pretty-format "^26.6.2" 936 | 937 | jest-get-type@^26.3.0: 938 | version "26.3.0" 939 | resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" 940 | integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== 941 | 942 | jsbn@~0.1.0: 943 | version "0.1.1" 944 | resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 945 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 946 | 947 | jsdom@^16.5.3: 948 | version "16.6.0" 949 | resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" 950 | integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== 951 | dependencies: 952 | abab "^2.0.5" 953 | acorn "^8.2.4" 954 | acorn-globals "^6.0.0" 955 | cssom "^0.4.4" 956 | cssstyle "^2.3.0" 957 | data-urls "^2.0.0" 958 | decimal.js "^10.2.1" 959 | domexception "^2.0.1" 960 | escodegen "^2.0.0" 961 | form-data "^3.0.0" 962 | html-encoding-sniffer "^2.0.1" 963 | http-proxy-agent "^4.0.1" 964 | https-proxy-agent "^5.0.0" 965 | is-potential-custom-element-name "^1.0.1" 966 | nwsapi "^2.2.0" 967 | parse5 "6.0.1" 968 | saxes "^5.0.1" 969 | symbol-tree "^3.2.4" 970 | tough-cookie "^4.0.0" 971 | w3c-hr-time "^1.0.2" 972 | w3c-xmlserializer "^2.0.0" 973 | webidl-conversions "^6.1.0" 974 | whatwg-encoding "^1.0.5" 975 | whatwg-mimetype "^2.3.0" 976 | whatwg-url "^8.5.0" 977 | ws "^7.4.5" 978 | xml-name-validator "^3.0.0" 979 | 980 | json-parse-even-better-errors@^2.3.0: 981 | version "2.3.1" 982 | resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 983 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 984 | 985 | json-schema-traverse@^0.4.1: 986 | version "0.4.1" 987 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 988 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 989 | 990 | json-schema@0.2.3: 991 | version "0.2.3" 992 | resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 993 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 994 | 995 | json-stringify-safe@~5.0.1: 996 | version "5.0.1" 997 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 998 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 999 | 1000 | jsonparse@^1.3.1: 1001 | version "1.3.1" 1002 | resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" 1003 | integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= 1004 | 1005 | jsprim@^1.2.2: 1006 | version "1.4.1" 1007 | resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1008 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 1009 | dependencies: 1010 | assert-plus "1.0.0" 1011 | extsprintf "1.3.0" 1012 | json-schema "0.2.3" 1013 | verror "1.10.0" 1014 | 1015 | levn@~0.3.0: 1016 | version "0.3.0" 1017 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1018 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1019 | dependencies: 1020 | prelude-ls "~1.1.2" 1021 | type-check "~0.3.2" 1022 | 1023 | lodash@^4.7.0: 1024 | version "4.17.21" 1025 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1026 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1027 | 1028 | lru-cache@^6.0.0: 1029 | version "6.0.0" 1030 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1031 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1032 | dependencies: 1033 | yallist "^4.0.0" 1034 | 1035 | make-fetch-happen@^9.0.1: 1036 | version "9.0.2" 1037 | resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.2.tgz#aa8c0e4a5e3a5f2be86c54d3abed44fe5a32ad5d" 1038 | integrity sha512-UkAWAuXPXSSlVviTjH2We20mtj1NnZW2Qq/oTY2dyMbRQ5CR3Xed3akCDMnM7j6axrMY80lhgM7loNE132PfAw== 1039 | dependencies: 1040 | agentkeepalive "^4.1.3" 1041 | cacache "^15.2.0" 1042 | http-cache-semantics "^4.1.0" 1043 | http-proxy-agent "^4.0.1" 1044 | https-proxy-agent "^5.0.0" 1045 | is-lambda "^1.0.1" 1046 | lru-cache "^6.0.0" 1047 | minipass "^3.1.3" 1048 | minipass-collect "^1.0.2" 1049 | minipass-fetch "^1.3.2" 1050 | minipass-flush "^1.0.5" 1051 | minipass-pipeline "^1.2.4" 1052 | negotiator "^0.6.2" 1053 | promise-retry "^2.0.1" 1054 | socks-proxy-agent "^5.0.0" 1055 | ssri "^8.0.0" 1056 | 1057 | microtask-collector@^3.1.0: 1058 | version "3.1.0" 1059 | resolved "https://registry.npmjs.org/microtask-collector/-/microtask-collector-3.1.0.tgz#a2ab49c1d5ea436ecaed027373b8a19a53b84f79" 1060 | integrity sha512-hqriS8rmSdcrnyxY8c1yA7Zb1PKLEQxxm1A5d53ZzxaMSpOWbW98zdKnjtJU6BCSANCu5C3rfcyxldXcTUQS9w== 1061 | dependencies: 1062 | "@opennetwork/linked-list" "^4.0.0" 1063 | 1064 | mime-db@1.48.0: 1065 | version "1.48.0" 1066 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" 1067 | integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== 1068 | 1069 | mime-types@^2.1.12, mime-types@~2.1.19: 1070 | version "2.1.31" 1071 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" 1072 | integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== 1073 | dependencies: 1074 | mime-db "1.48.0" 1075 | 1076 | minimatch@^3.0.4: 1077 | version "3.0.4" 1078 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1079 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1080 | dependencies: 1081 | brace-expansion "^1.1.7" 1082 | 1083 | minipass-collect@^1.0.2: 1084 | version "1.0.2" 1085 | resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" 1086 | integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== 1087 | dependencies: 1088 | minipass "^3.0.0" 1089 | 1090 | minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: 1091 | version "1.3.3" 1092 | resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" 1093 | integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== 1094 | dependencies: 1095 | minipass "^3.1.0" 1096 | minipass-sized "^1.0.3" 1097 | minizlib "^2.0.0" 1098 | optionalDependencies: 1099 | encoding "^0.1.12" 1100 | 1101 | minipass-flush@^1.0.5: 1102 | version "1.0.5" 1103 | resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" 1104 | integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== 1105 | dependencies: 1106 | minipass "^3.0.0" 1107 | 1108 | minipass-json-stream@^1.0.1: 1109 | version "1.0.1" 1110 | resolved "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" 1111 | integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== 1112 | dependencies: 1113 | jsonparse "^1.3.1" 1114 | minipass "^3.0.0" 1115 | 1116 | minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: 1117 | version "1.2.4" 1118 | resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" 1119 | integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== 1120 | dependencies: 1121 | minipass "^3.0.0" 1122 | 1123 | minipass-sized@^1.0.3: 1124 | version "1.0.3" 1125 | resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" 1126 | integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== 1127 | dependencies: 1128 | minipass "^3.0.0" 1129 | 1130 | minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: 1131 | version "3.1.3" 1132 | resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" 1133 | integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== 1134 | dependencies: 1135 | yallist "^4.0.0" 1136 | 1137 | minizlib@^2.0.0, minizlib@^2.1.1: 1138 | version "2.1.2" 1139 | resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" 1140 | integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== 1141 | dependencies: 1142 | minipass "^3.0.0" 1143 | yallist "^4.0.0" 1144 | 1145 | mkdirp@^1.0.3, mkdirp@^1.0.4: 1146 | version "1.0.4" 1147 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 1148 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 1149 | 1150 | ms@2.1.2: 1151 | version "2.1.2" 1152 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1153 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1154 | 1155 | ms@^2.0.0: 1156 | version "2.1.3" 1157 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1158 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1159 | 1160 | negotiator@^0.6.2: 1161 | version "0.6.2" 1162 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1163 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1164 | 1165 | node-gyp@^7.1.0: 1166 | version "7.1.2" 1167 | resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" 1168 | integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== 1169 | dependencies: 1170 | env-paths "^2.2.0" 1171 | glob "^7.1.4" 1172 | graceful-fs "^4.2.3" 1173 | nopt "^5.0.0" 1174 | npmlog "^4.1.2" 1175 | request "^2.88.2" 1176 | rimraf "^3.0.2" 1177 | semver "^7.3.2" 1178 | tar "^6.0.2" 1179 | which "^2.0.2" 1180 | 1181 | nopt@^5.0.0: 1182 | version "5.0.0" 1183 | resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" 1184 | integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== 1185 | dependencies: 1186 | abbrev "1" 1187 | 1188 | npm-bundled@^1.1.1: 1189 | version "1.1.2" 1190 | resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" 1191 | integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== 1192 | dependencies: 1193 | npm-normalize-package-bin "^1.0.1" 1194 | 1195 | npm-install-checks@^4.0.0: 1196 | version "4.0.0" 1197 | resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" 1198 | integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== 1199 | dependencies: 1200 | semver "^7.1.1" 1201 | 1202 | npm-normalize-package-bin@^1.0.1: 1203 | version "1.0.1" 1204 | resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" 1205 | integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== 1206 | 1207 | npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.2: 1208 | version "8.1.4" 1209 | resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.4.tgz#8001cdbc4363997b8ef6c6cf7aaf543c5805879d" 1210 | integrity sha512-xLokoCFqj/rPdr3LvcdDL6Kj6ipXGEDHD/QGpzwU6/pibYUOXmp5DBmg76yukFyx4ZDbrXNOTn+BPyd8TD4Jlw== 1211 | dependencies: 1212 | hosted-git-info "^4.0.1" 1213 | semver "^7.3.4" 1214 | validate-npm-package-name "^3.0.0" 1215 | 1216 | npm-packlist@^2.1.4: 1217 | version "2.2.2" 1218 | resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8" 1219 | integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg== 1220 | dependencies: 1221 | glob "^7.1.6" 1222 | ignore-walk "^3.0.3" 1223 | npm-bundled "^1.1.1" 1224 | npm-normalize-package-bin "^1.0.1" 1225 | 1226 | npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: 1227 | version "6.1.1" 1228 | resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" 1229 | integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== 1230 | dependencies: 1231 | npm-install-checks "^4.0.0" 1232 | npm-normalize-package-bin "^1.0.1" 1233 | npm-package-arg "^8.1.2" 1234 | semver "^7.3.4" 1235 | 1236 | npm-registry-fetch@^11.0.0: 1237 | version "11.0.0" 1238 | resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" 1239 | integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== 1240 | dependencies: 1241 | make-fetch-happen "^9.0.1" 1242 | minipass "^3.1.3" 1243 | minipass-fetch "^1.3.0" 1244 | minipass-json-stream "^1.0.1" 1245 | minizlib "^2.0.0" 1246 | npm-package-arg "^8.0.0" 1247 | 1248 | npmlog@^4.1.2: 1249 | version "4.1.2" 1250 | resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1251 | integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== 1252 | dependencies: 1253 | are-we-there-yet "~1.1.2" 1254 | console-control-strings "~1.1.0" 1255 | gauge "~2.7.3" 1256 | set-blocking "~2.0.0" 1257 | 1258 | number-is-nan@^1.0.0: 1259 | version "1.0.1" 1260 | resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1261 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1262 | 1263 | nwsapi@^2.2.0: 1264 | version "2.2.0" 1265 | resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" 1266 | integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== 1267 | 1268 | oauth-sign@~0.9.0: 1269 | version "0.9.0" 1270 | resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 1271 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 1272 | 1273 | object-assign@^4.1.0: 1274 | version "4.1.1" 1275 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1276 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1277 | 1278 | once@^1.3.0: 1279 | version "1.4.0" 1280 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1281 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1282 | dependencies: 1283 | wrappy "1" 1284 | 1285 | open@^7.0.4: 1286 | version "7.4.2" 1287 | resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" 1288 | integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== 1289 | dependencies: 1290 | is-docker "^2.0.0" 1291 | is-wsl "^2.1.1" 1292 | 1293 | optionator@^0.8.1: 1294 | version "0.8.3" 1295 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 1296 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 1297 | dependencies: 1298 | deep-is "~0.1.3" 1299 | fast-levenshtein "~2.0.6" 1300 | levn "~0.3.0" 1301 | prelude-ls "~1.1.2" 1302 | type-check "~0.3.2" 1303 | word-wrap "~1.2.3" 1304 | 1305 | os-homedir@^1.0.0: 1306 | version "1.0.2" 1307 | resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1308 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 1309 | 1310 | p-map@^4.0.0: 1311 | version "4.0.0" 1312 | resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" 1313 | integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== 1314 | dependencies: 1315 | aggregate-error "^3.0.0" 1316 | 1317 | pacote@^11.3.1: 1318 | version "11.3.4" 1319 | resolved "https://registry.npmjs.org/pacote/-/pacote-11.3.4.tgz#c290b790a5cee3082bb8fa223f3f3e2fdf3d0bfc" 1320 | integrity sha512-RfahPCunM9GI7ryJV/zY0bWQiokZyLqaSNHXtbNSoLb7bwTvBbJBEyCJ01KWs4j1Gj7GmX8crYXQ1sNX6P2VKA== 1321 | dependencies: 1322 | "@npmcli/git" "^2.0.1" 1323 | "@npmcli/installed-package-contents" "^1.0.6" 1324 | "@npmcli/promise-spawn" "^1.2.0" 1325 | "@npmcli/run-script" "^1.8.2" 1326 | cacache "^15.0.5" 1327 | chownr "^2.0.0" 1328 | fs-minipass "^2.1.0" 1329 | infer-owner "^1.0.4" 1330 | minipass "^3.1.3" 1331 | mkdirp "^1.0.3" 1332 | npm-package-arg "^8.0.1" 1333 | npm-packlist "^2.1.4" 1334 | npm-pick-manifest "^6.0.0" 1335 | npm-registry-fetch "^11.0.0" 1336 | promise-retry "^2.0.1" 1337 | read-package-json-fast "^2.0.1" 1338 | rimraf "^3.0.2" 1339 | ssri "^8.0.1" 1340 | tar "^6.1.0" 1341 | 1342 | parse5@6.0.1: 1343 | version "6.0.1" 1344 | resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 1345 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 1346 | 1347 | path-is-absolute@^1.0.0: 1348 | version "1.0.1" 1349 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1350 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1351 | 1352 | path-parse@^1.0.6: 1353 | version "1.0.7" 1354 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1355 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1356 | 1357 | performance-now@^2.1.0: 1358 | version "2.1.0" 1359 | resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1360 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 1361 | 1362 | picomatch@^2.2.2: 1363 | version "2.3.0" 1364 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1365 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1366 | 1367 | pify@^2.3.0: 1368 | version "2.3.0" 1369 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1370 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1371 | 1372 | prelude-ls@~1.1.2: 1373 | version "1.1.2" 1374 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1375 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1376 | 1377 | pretty-format@^26.0.0, pretty-format@^26.6.2: 1378 | version "26.6.2" 1379 | resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" 1380 | integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== 1381 | dependencies: 1382 | "@jest/types" "^26.6.2" 1383 | ansi-regex "^5.0.0" 1384 | ansi-styles "^4.0.0" 1385 | react-is "^17.0.1" 1386 | 1387 | process-nextick-args@~2.0.0: 1388 | version "2.0.1" 1389 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 1390 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1391 | 1392 | promise-inflight@^1.0.1: 1393 | version "1.0.1" 1394 | resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" 1395 | integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= 1396 | 1397 | promise-retry@^2.0.1: 1398 | version "2.0.1" 1399 | resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" 1400 | integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== 1401 | dependencies: 1402 | err-code "^2.0.2" 1403 | retry "^0.12.0" 1404 | 1405 | psl@^1.1.28, psl@^1.1.33: 1406 | version "1.8.0" 1407 | resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 1408 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 1409 | 1410 | punycode@^2.1.0, punycode@^2.1.1: 1411 | version "2.1.1" 1412 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1413 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1414 | 1415 | qs@~6.5.2: 1416 | version "6.5.2" 1417 | resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 1418 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 1419 | 1420 | react-is@^17.0.1: 1421 | version "17.0.2" 1422 | resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" 1423 | integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== 1424 | 1425 | read-package-json-fast@^2.0.1: 1426 | version "2.0.2" 1427 | resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz#2dcb24d9e8dd50fb322042c8c35a954e6cc7ac9e" 1428 | integrity sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ== 1429 | dependencies: 1430 | json-parse-even-better-errors "^2.3.0" 1431 | npm-normalize-package-bin "^1.0.1" 1432 | 1433 | readable-stream@^2.0.6: 1434 | version "2.3.7" 1435 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 1436 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 1437 | dependencies: 1438 | core-util-is "~1.0.0" 1439 | inherits "~2.0.3" 1440 | isarray "~1.0.0" 1441 | process-nextick-args "~2.0.0" 1442 | safe-buffer "~5.1.1" 1443 | string_decoder "~1.1.1" 1444 | util-deprecate "~1.0.1" 1445 | 1446 | request@^2.88.2: 1447 | version "2.88.2" 1448 | resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" 1449 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 1450 | dependencies: 1451 | aws-sign2 "~0.7.0" 1452 | aws4 "^1.8.0" 1453 | caseless "~0.12.0" 1454 | combined-stream "~1.0.6" 1455 | extend "~3.0.2" 1456 | forever-agent "~0.6.1" 1457 | form-data "~2.3.2" 1458 | har-validator "~5.1.3" 1459 | http-signature "~1.2.0" 1460 | is-typedarray "~1.0.0" 1461 | isstream "~0.1.2" 1462 | json-stringify-safe "~5.0.1" 1463 | mime-types "~2.1.19" 1464 | oauth-sign "~0.9.0" 1465 | performance-now "^2.1.0" 1466 | qs "~6.5.2" 1467 | safe-buffer "^5.1.2" 1468 | tough-cookie "~2.5.0" 1469 | tunnel-agent "^0.6.0" 1470 | uuid "^3.3.2" 1471 | 1472 | resolve@^1.20.0: 1473 | version "1.20.0" 1474 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1475 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1476 | dependencies: 1477 | is-core-module "^2.2.0" 1478 | path-parse "^1.0.6" 1479 | 1480 | retry@^0.12.0: 1481 | version "0.12.0" 1482 | resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" 1483 | integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= 1484 | 1485 | rimraf@^3.0.2: 1486 | version "3.0.2" 1487 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1488 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1489 | dependencies: 1490 | glob "^7.1.3" 1491 | 1492 | rollup@~2.37.1: 1493 | version "2.37.1" 1494 | resolved "https://registry.npmjs.org/rollup/-/rollup-2.37.1.tgz#aa7aadffd75c80393f9314f9857e851b0ffd34e7" 1495 | integrity sha512-V3ojEeyGeSdrMSuhP3diBb06P+qV4gKQeanbDv+Qh/BZbhdZ7kHV0xAt8Yjk4GFshq/WjO7R4c7DFM20AwTFVQ== 1496 | optionalDependencies: 1497 | fsevents "~2.1.2" 1498 | 1499 | safe-buffer@^5.0.1, safe-buffer@^5.1.2: 1500 | version "5.2.1" 1501 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1502 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1503 | 1504 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1505 | version "5.1.2" 1506 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1507 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1508 | 1509 | "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 1510 | version "2.1.2" 1511 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1512 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1513 | 1514 | saxes@^5.0.1: 1515 | version "5.0.1" 1516 | resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" 1517 | integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== 1518 | dependencies: 1519 | xmlchars "^2.2.0" 1520 | 1521 | semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: 1522 | version "7.3.5" 1523 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 1524 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 1525 | dependencies: 1526 | lru-cache "^6.0.0" 1527 | 1528 | set-blocking@~2.0.0: 1529 | version "2.0.0" 1530 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1531 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1532 | 1533 | signal-exit@^3.0.0: 1534 | version "3.0.3" 1535 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 1536 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 1537 | 1538 | smart-buffer@^4.1.0: 1539 | version "4.1.0" 1540 | resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" 1541 | integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== 1542 | 1543 | snowpack@^3.3.5: 1544 | version "3.5.7" 1545 | resolved "https://registry.npmjs.org/snowpack/-/snowpack-3.5.7.tgz#1d56a273c97e6f8fe23800f4d3c641eefb65f356" 1546 | integrity sha512-mMdbG9vSs7JL69/Zk2VtpduBnbfzCCCXvhJeX4GzPg4aYyKtfs0s6MA5VoQbN9HL6lZpKRy/knaigKcC4E29GA== 1547 | dependencies: 1548 | cli-spinners "^2.5.0" 1549 | default-browser-id "^2.0.0" 1550 | esbuild "^0.9.3" 1551 | fdir "^5.0.0" 1552 | open "^7.0.4" 1553 | pacote "^11.3.1" 1554 | picomatch "^2.2.2" 1555 | resolve "^1.20.0" 1556 | rollup "~2.37.1" 1557 | optionalDependencies: 1558 | fsevents "^2.2.0" 1559 | 1560 | socks-proxy-agent@^5.0.0: 1561 | version "5.0.0" 1562 | resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" 1563 | integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== 1564 | dependencies: 1565 | agent-base "6" 1566 | debug "4" 1567 | socks "^2.3.3" 1568 | 1569 | socks@^2.3.3: 1570 | version "2.6.1" 1571 | resolved "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" 1572 | integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== 1573 | dependencies: 1574 | ip "^1.1.5" 1575 | smart-buffer "^4.1.0" 1576 | 1577 | source-map@~0.6.1: 1578 | version "0.6.1" 1579 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1580 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1581 | 1582 | sshpk@^1.7.0: 1583 | version "1.16.1" 1584 | resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 1585 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 1586 | dependencies: 1587 | asn1 "~0.2.3" 1588 | assert-plus "^1.0.0" 1589 | bcrypt-pbkdf "^1.0.0" 1590 | dashdash "^1.12.0" 1591 | ecc-jsbn "~0.1.1" 1592 | getpass "^0.1.1" 1593 | jsbn "~0.1.0" 1594 | safer-buffer "^2.0.2" 1595 | tweetnacl "~0.14.0" 1596 | 1597 | ssri@^8.0.0, ssri@^8.0.1: 1598 | version "8.0.1" 1599 | resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" 1600 | integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== 1601 | dependencies: 1602 | minipass "^3.1.1" 1603 | 1604 | string-width@^1.0.1: 1605 | version "1.0.2" 1606 | resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1607 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1608 | dependencies: 1609 | code-point-at "^1.0.0" 1610 | is-fullwidth-code-point "^1.0.0" 1611 | strip-ansi "^3.0.0" 1612 | 1613 | "string-width@^1.0.2 || 2": 1614 | version "2.1.1" 1615 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1616 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1617 | dependencies: 1618 | is-fullwidth-code-point "^2.0.0" 1619 | strip-ansi "^4.0.0" 1620 | 1621 | string_decoder@~1.1.1: 1622 | version "1.1.1" 1623 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1624 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1625 | dependencies: 1626 | safe-buffer "~5.1.0" 1627 | 1628 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1629 | version "3.0.1" 1630 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1631 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1632 | dependencies: 1633 | ansi-regex "^2.0.0" 1634 | 1635 | strip-ansi@^4.0.0: 1636 | version "4.0.0" 1637 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1638 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1639 | dependencies: 1640 | ansi-regex "^3.0.0" 1641 | 1642 | supports-color@^7.1.0: 1643 | version "7.2.0" 1644 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1645 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1646 | dependencies: 1647 | has-flag "^4.0.0" 1648 | 1649 | symbol-tree@^3.2.4: 1650 | version "3.2.4" 1651 | resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" 1652 | integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== 1653 | 1654 | tar@^6.0.2, tar@^6.1.0: 1655 | version "6.1.0" 1656 | resolved "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" 1657 | integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== 1658 | dependencies: 1659 | chownr "^2.0.0" 1660 | fs-minipass "^2.0.0" 1661 | minipass "^3.0.0" 1662 | minizlib "^2.1.1" 1663 | mkdirp "^1.0.3" 1664 | yallist "^4.0.0" 1665 | 1666 | tough-cookie@^4.0.0: 1667 | version "4.0.0" 1668 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" 1669 | integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== 1670 | dependencies: 1671 | psl "^1.1.33" 1672 | punycode "^2.1.1" 1673 | universalify "^0.1.2" 1674 | 1675 | tough-cookie@~2.5.0: 1676 | version "2.5.0" 1677 | resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" 1678 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 1679 | dependencies: 1680 | psl "^1.1.28" 1681 | punycode "^2.1.1" 1682 | 1683 | tr46@^2.1.0: 1684 | version "2.1.0" 1685 | resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" 1686 | integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== 1687 | dependencies: 1688 | punycode "^2.1.1" 1689 | 1690 | tunnel-agent@^0.6.0: 1691 | version "0.6.0" 1692 | resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1693 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 1694 | dependencies: 1695 | safe-buffer "^5.0.1" 1696 | 1697 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1698 | version "0.14.5" 1699 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1700 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 1701 | 1702 | type-check@~0.3.2: 1703 | version "0.3.2" 1704 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1705 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1706 | dependencies: 1707 | prelude-ls "~1.1.2" 1708 | 1709 | typescript@^4.2.3: 1710 | version "4.3.2" 1711 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" 1712 | integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== 1713 | 1714 | unique-filename@^1.1.1: 1715 | version "1.1.1" 1716 | resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" 1717 | integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== 1718 | dependencies: 1719 | unique-slug "^2.0.0" 1720 | 1721 | unique-slug@^2.0.0: 1722 | version "2.0.2" 1723 | resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" 1724 | integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== 1725 | dependencies: 1726 | imurmurhash "^0.1.4" 1727 | 1728 | universalify@^0.1.2: 1729 | version "0.1.2" 1730 | resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 1731 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 1732 | 1733 | untildify@^2.0.0: 1734 | version "2.1.0" 1735 | resolved "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" 1736 | integrity sha1-F+soB5h/dpUunASF/DEdBqgmouA= 1737 | dependencies: 1738 | os-homedir "^1.0.0" 1739 | 1740 | uri-js@^4.2.2: 1741 | version "4.4.1" 1742 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1743 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1744 | dependencies: 1745 | punycode "^2.1.0" 1746 | 1747 | util-deprecate@~1.0.1: 1748 | version "1.0.2" 1749 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1750 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1751 | 1752 | uuid@^3.3.2: 1753 | version "3.4.0" 1754 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 1755 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 1756 | 1757 | validate-npm-package-name@^3.0.0: 1758 | version "3.0.0" 1759 | resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" 1760 | integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= 1761 | dependencies: 1762 | builtins "^1.0.3" 1763 | 1764 | verror@1.10.0: 1765 | version "1.10.0" 1766 | resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1767 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 1768 | dependencies: 1769 | assert-plus "^1.0.0" 1770 | core-util-is "1.0.2" 1771 | extsprintf "^1.2.0" 1772 | 1773 | w3c-hr-time@^1.0.2: 1774 | version "1.0.2" 1775 | resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" 1776 | integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== 1777 | dependencies: 1778 | browser-process-hrtime "^1.0.0" 1779 | 1780 | w3c-xmlserializer@^2.0.0: 1781 | version "2.0.0" 1782 | resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" 1783 | integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== 1784 | dependencies: 1785 | xml-name-validator "^3.0.0" 1786 | 1787 | webidl-conversions@^5.0.0: 1788 | version "5.0.0" 1789 | resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" 1790 | integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== 1791 | 1792 | webidl-conversions@^6.1.0: 1793 | version "6.1.0" 1794 | resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" 1795 | integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== 1796 | 1797 | whatwg-encoding@^1.0.5: 1798 | version "1.0.5" 1799 | resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" 1800 | integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== 1801 | dependencies: 1802 | iconv-lite "0.4.24" 1803 | 1804 | whatwg-mimetype@^2.3.0: 1805 | version "2.3.0" 1806 | resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" 1807 | integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== 1808 | 1809 | whatwg-url@^8.0.0, whatwg-url@^8.5.0: 1810 | version "8.6.0" 1811 | resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.6.0.tgz#27c0205a4902084b872aecb97cf0f2a7a3011f4c" 1812 | integrity sha512-os0KkeeqUOl7ccdDT1qqUcS4KH4tcBTSKK5Nl5WKb2lyxInIZ/CpjkqKa1Ss12mjfdcRX9mHmPPs7/SxG1Hbdw== 1813 | dependencies: 1814 | lodash "^4.7.0" 1815 | tr46 "^2.1.0" 1816 | webidl-conversions "^6.1.0" 1817 | 1818 | which@^2.0.2: 1819 | version "2.0.2" 1820 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1821 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1822 | dependencies: 1823 | isexe "^2.0.0" 1824 | 1825 | wide-align@^1.1.0: 1826 | version "1.1.3" 1827 | resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 1828 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 1829 | dependencies: 1830 | string-width "^1.0.2 || 2" 1831 | 1832 | word-wrap@~1.2.3: 1833 | version "1.2.3" 1834 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 1835 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 1836 | 1837 | wrappy@1: 1838 | version "1.0.2" 1839 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1840 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1841 | 1842 | ws@^7.4.5: 1843 | version "7.4.6" 1844 | resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" 1845 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 1846 | 1847 | xml-name-validator@^3.0.0: 1848 | version "3.0.0" 1849 | resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 1850 | integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== 1851 | 1852 | xmlchars@^2.2.0: 1853 | version "2.2.0" 1854 | resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" 1855 | integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== 1856 | 1857 | yallist@^4.0.0: 1858 | version "4.0.0" 1859 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1860 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1861 | --------------------------------------------------------------------------------