From 41ebbcc82f04b932ad4a99e90a23602684953861 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Tue, 26 Jan 2021 21:45:18 -0800 Subject: [PATCH 01/27] added NPM packages --- pkg/npm/README.md | 1 + pkg/npm/api/.eslintrc.js | 3 + pkg/npm/api/contacts/index.d.ts | 85 + pkg/npm/api/contacts/index.ts | 83 + pkg/npm/api/graph/index.d.ts | 47 + pkg/npm/api/graph/index.ts | 364 ++ pkg/npm/api/groups/index.d.ts | 177 + pkg/npm/api/groups/index.ts | 108 + pkg/npm/api/hark/index.d.ts | 78 + pkg/npm/api/hark/index.ts | 0 pkg/npm/api/index.d.ts | 67 + pkg/npm/api/index.js | 5 + pkg/npm/api/invite/index.d.ts | 85 + pkg/npm/api/invite/index.ts | 28 + pkg/npm/api/lib/BigIntOrderedMap.ts | 233 + pkg/npm/api/lib/util.ts | 211 + pkg/npm/api/metadata/index.d.ts | 55 + pkg/npm/api/metadata/index.ts | 55 + pkg/npm/api/package-lock.json | 31 + pkg/npm/api/package.json | 18 + pkg/npm/api/tsconfig.json | 27 + pkg/npm/eslint-config/index.js | 186 + pkg/npm/eslint-config/package-lock.json | 5 + pkg/npm/eslint-config/package.json | 14 + pkg/npm/http-api/.github/workflows/main.yml | 42 + pkg/npm/http-api/.gitignore | 0 pkg/npm/http-api/.vscode/settings.json | 5 + pkg/npm/http-api/LICENSE | 21 + pkg/npm/http-api/README.md | 21 + pkg/npm/http-api/example/browser.js | 17 + pkg/npm/http-api/example/index.html | 98 + pkg/npm/http-api/example/node.js | 17 + pkg/npm/http-api/index.js | 2 + pkg/npm/http-api/package-lock.json | 5591 +++++++++++++++++++ pkg/npm/http-api/package.json | 64 + pkg/npm/http-api/src/app/base.ts | 40 + pkg/npm/http-api/src/example/browser.js | 3 + pkg/npm/http-api/src/example/node.js | 14 + pkg/npm/http-api/src/index.ts | 456 ++ pkg/npm/http-api/src/types/index.d.ts | 45 + pkg/npm/http-api/src/utils.ts | 82 + pkg/npm/http-api/test/default.test.ts | 8 + pkg/npm/http-api/tsconfig-cjs.json | 7 + pkg/npm/http-api/tsconfig.json | 18 + pkg/npm/http-api/webpack.prod.js | 109 + 45 files changed, 8626 insertions(+) create mode 100644 pkg/npm/README.md create mode 100644 pkg/npm/api/.eslintrc.js create mode 100644 pkg/npm/api/contacts/index.d.ts create mode 100644 pkg/npm/api/contacts/index.ts create mode 100644 pkg/npm/api/graph/index.d.ts create mode 100644 pkg/npm/api/graph/index.ts create mode 100644 pkg/npm/api/groups/index.d.ts create mode 100644 pkg/npm/api/groups/index.ts create mode 100644 pkg/npm/api/hark/index.d.ts create mode 100644 pkg/npm/api/hark/index.ts create mode 100644 pkg/npm/api/index.d.ts create mode 100644 pkg/npm/api/index.js create mode 100644 pkg/npm/api/invite/index.d.ts create mode 100644 pkg/npm/api/invite/index.ts create mode 100644 pkg/npm/api/lib/BigIntOrderedMap.ts create mode 100644 pkg/npm/api/lib/util.ts create mode 100644 pkg/npm/api/metadata/index.d.ts create mode 100644 pkg/npm/api/metadata/index.ts create mode 100644 pkg/npm/api/package-lock.json create mode 100644 pkg/npm/api/package.json create mode 100644 pkg/npm/api/tsconfig.json create mode 100644 pkg/npm/eslint-config/index.js create mode 100644 pkg/npm/eslint-config/package-lock.json create mode 100644 pkg/npm/eslint-config/package.json create mode 100644 pkg/npm/http-api/.github/workflows/main.yml create mode 100644 pkg/npm/http-api/.gitignore create mode 100644 pkg/npm/http-api/.vscode/settings.json create mode 100644 pkg/npm/http-api/LICENSE create mode 100644 pkg/npm/http-api/README.md create mode 100644 pkg/npm/http-api/example/browser.js create mode 100644 pkg/npm/http-api/example/index.html create mode 100644 pkg/npm/http-api/example/node.js create mode 100644 pkg/npm/http-api/index.js create mode 100644 pkg/npm/http-api/package-lock.json create mode 100644 pkg/npm/http-api/package.json create mode 100644 pkg/npm/http-api/src/app/base.ts create mode 100644 pkg/npm/http-api/src/example/browser.js create mode 100644 pkg/npm/http-api/src/example/node.js create mode 100644 pkg/npm/http-api/src/index.ts create mode 100644 pkg/npm/http-api/src/types/index.d.ts create mode 100644 pkg/npm/http-api/src/utils.ts create mode 100644 pkg/npm/http-api/test/default.test.ts create mode 100644 pkg/npm/http-api/tsconfig-cjs.json create mode 100644 pkg/npm/http-api/tsconfig.json create mode 100644 pkg/npm/http-api/webpack.prod.js diff --git a/pkg/npm/README.md b/pkg/npm/README.md new file mode 100644 index 0000000000..ba1f6d01a1 --- /dev/null +++ b/pkg/npm/README.md @@ -0,0 +1 @@ +Each one of the folders in this directory is published at `@urbit/{folder name}` \ No newline at end of file diff --git a/pkg/npm/api/.eslintrc.js b/pkg/npm/api/.eslintrc.js new file mode 100644 index 0000000000..fba1ccabcc --- /dev/null +++ b/pkg/npm/api/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: "@urbit" +}; \ No newline at end of file diff --git a/pkg/npm/api/contacts/index.d.ts b/pkg/npm/api/contacts/index.d.ts new file mode 100644 index 0000000000..d29331be83 --- /dev/null +++ b/pkg/npm/api/contacts/index.d.ts @@ -0,0 +1,85 @@ +import { Path, Patp } from ".."; + +export type ContactUpdate = + | ContactUpdateCreate + | ContactUpdateDelete + | ContactUpdateAdd + | ContactUpdateRemove + | ContactUpdateEdit + | ContactUpdateInitial + | ContactUpdateContacts; + +interface ContactUpdateCreate { + create: Path; +} + +interface ContactUpdateDelete { + delete: Path; +} + +interface ContactUpdateAdd { + add: { + path: Path; + ship: Patp; + contact: Contact; + }; +} + +interface ContactUpdateRemove { + remove: { + path: Path; + ship: Patp; + }; +} + +interface ContactUpdateEdit { + edit: { + path: Path; + ship: Patp; + "edit-field": ContactEdit; + }; +} + +interface ContactUpdateInitial { + initial: Rolodex; +} + +interface ContactUpdateContacts { + contacts: { + path: Path; + contacts: Contacts; + }; +} + +// + +type ContactAvatar = ContactAvatarUrl | ContactAvatarOcts; + +export type Rolodex = { + [p in Path]: Contacts; +}; + +export type Contacts = { + [p in Patp]: Contact; +}; + +interface ContactAvatarUrl { + url: string; +} + +interface ContactAvatarOcts { + octs: string; +} +export interface Contact { + nickname: string; + email: string; + phone: string; + website: string; + notes: string; + color: string; + avatar: string | null; +} + +export type ContactEdit = { + [k in keyof Contact]: Contact[k]; +}; diff --git a/pkg/npm/api/contacts/index.ts b/pkg/npm/api/contacts/index.ts new file mode 100644 index 0000000000..f952fffaac --- /dev/null +++ b/pkg/npm/api/contacts/index.ts @@ -0,0 +1,83 @@ +import { Enc, Path, Patp, Poke } from ".."; +import { Contact, ContactEdit, ContactUpdateCreate, ContactUpdateEdit, ContactUpdateRemove } from "./index.d"; +import { GroupPolicy, Resource } from "../groups/index.d" + +export const viewAction = <T>(data: T): Poke<T> => ({ + app: 'contact-view', + mark: 'json', + json: data +}); + +export const hookAction = <T>(data: T): Poke<T> => ({ + app: 'contact-hook', + mark: 'contact-action', + json: data +}); + +export const create = ( + name: string, + policy: Enc<GroupPolicy>, + title: string, + description: string +): Poke<ContactUpdateCreate> => viewAction({ // TODO which type is correct? + create: { + name, + policy, + title, + description + } +}); + +export const share = ( + recipient: Patp, + path: Patp, + ship: Patp, + contact: Contact +): Poke<any> => viewAction({ // TODO type + share: { + recipient, + path, + ship, + contact + } +}); + +export const remove = ( + path: Path, + ship: Patp +): Poke<ContactUpdateRemove> => viewAction({ + remove: { + path, + ship + } +}); + +export const edit = ( + path: Path, + ship: Patp, + editField: ContactEdit +): Poke<ContactUpdateEdit> => hookAction({ + edit: { + path, + ship, + 'edit-field': editField + } +}); + +export const invite = ( + resource: Resource, + ship: Patp, + text: string = '' +): Poke<any> => viewAction({ // TODO type + invite: { + resource, + ship, + text + } +}); + +export const join = ( + resource: Resource +): Poke<any> => viewAction({ // TODO type + join: resource +}); \ No newline at end of file diff --git a/pkg/npm/api/graph/index.d.ts b/pkg/npm/api/graph/index.d.ts new file mode 100644 index 0000000000..17abee3cb4 --- /dev/null +++ b/pkg/npm/api/graph/index.d.ts @@ -0,0 +1,47 @@ +import { Patp } from ".."; +import BigIntOrderedMap from "../lib/BigIntOrderedMap"; + +export interface TextContent { + text: string; +} +export interface UrlContent { + url: string; +} +export interface CodeContent { + code: { + expresssion: string; + output: string | undefined; + } +} + +export interface ReferenceContent { + uid: string; +} +export interface MentionContent { + mention: string; +} +export type Content = + | TextContent + | UrlContent + | CodeContent + | ReferenceContent + | MentionContent; + +export interface Post { + author: Patp; + contents: Content[]; + hash: string | null; + index: string; + pending?: boolean; + signatures: string[]; + "time-sent": number; +} + +export interface GraphNode { + children: Graph; + post: Post; +} + +export type Graph = BigIntOrderedMap<GraphNode>; + +export type Graphs = { [rid: string]: Graph }; diff --git a/pkg/npm/api/graph/index.ts b/pkg/npm/api/graph/index.ts new file mode 100644 index 0000000000..cbadbb3f6b --- /dev/null +++ b/pkg/npm/api/graph/index.ts @@ -0,0 +1,364 @@ +import _ from 'lodash'; +import { PatpNoSig, Patp, Poke, Thread, Path, Enc } from '..'; +import { Content, GraphNode, Post } from './index.d'; +import { deSig, unixToDa } from '../lib/util'; +import { makeResource, resourceFromPath } from '../groups/index'; +import { GroupPolicy } from '../groups'; + +export const createBlankNodeWithChildPost = ( + ship: PatpNoSig, + parentIndex: string = '', + childIndex: string = '', + contents: Content[] +): GraphNode => { + const date = unixToDa(Date.now()).toString(); + const nodeIndex = parentIndex + '/' + date; + + const childGraph = {}; + childGraph[childIndex] = { + post: { + author: `~${ship}`, + index: nodeIndex + '/' + childIndex, + 'time-sent': Date.now(), + contents, + hash: null, + signatures: [] + }, + children: null + }; + + return { + post: { + author: `~${ship}`, + index: nodeIndex, + 'time-sent': Date.now(), + contents: [], + hash: null, + signatures: [] + }, + children: childGraph + }; +}; + +function markPending(nodes: any) { + _.forEach(nodes, node => { + node.post.author = deSig(node.post.author); + node.post.pending = true; + markPending(node.children || {}); + }); +} + +export const createPost = ( + ship: PatpNoSig, + contents: Content[], + parentIndex: string = '', + childIndex:string = 'DATE_PLACEHOLDER' +): Post => { + if (childIndex === 'DATE_PLACEHOLDER') { + childIndex = unixToDa(Date.now()).toString(); + } + return { + author: `~${ship}`, + index: parentIndex + '/' + childIndex, + 'time-sent': Date.now(), + contents, + hash: null, + signatures: [] + }; +}; + +function moduleToMark(mod: string): string | undefined { + if(mod === 'link') { + return 'graph-validator-link'; + } + if(mod === 'publish') { + return 'graph-validator-publish'; + } + if(mod === 'chat') { + return 'graph-validator-chat'; + } + return undefined; +} + +export const storeAction = <T>(data: T): Poke<T> => ({ + app: 'graph-store', + mark: 'graph-update', + json: data +}); + +export const viewAction = <T>(threadName: string, action: T): Thread<T> => ({ + inputMark: 'graph-view-action', + outputMark: 'json', + threadName, + body: action +}); + +export const hookAction = <T>(data: T): Poke<T> => ({ + app: 'graph-push-hook', + mark: 'graph-update', + json: data +}); + + +export const createManagedGraph = ( + ship: PatpNoSig, + name: string, + title: string, + description: string, + group: Path, + mod: string +): Thread<any> => { + const associated = { group: resourceFromPath(group) }; + const resource = makeResource(`~${ship}`, name); + + return viewAction('graph-create', { + create: { + resource, + title, + description, + associated, + module: mod, + mark: moduleToMark(mod) + } + }); +} + +export const createUnmanagedGraph = ( + ship: PatpNoSig, + name: string, + title: string, + description: string, + policy: Enc<GroupPolicy>, + mod: string +): Thread<any> => { + const resource = makeResource(`~${ship}`, name); + + return viewAction('graph-create', { + create: { + resource, + title, + description, + associated: { policy }, + module: mod, + mark: moduleToMark(mod) + } + }); +} + +export const joinGraph = ( + ship: Patp, + name: string +): Thread<any> => { + const resource = makeResource(ship, name); + return viewAction('graph-join', { + join: { + resource, + ship, + } + }); +} + +export const deleteGraph = ( + ship: PatpNoSig, + name: string +): Thread<any> => { + const resource = makeResource(`~${ship}`, name); + return viewAction('graph-delete', { + "delete": { + resource + } + }); +} + +export const leaveGraph = ( + ship: Patp, + name: string +): Thread<any> => { + const resource = makeResource(ship, name); + return viewAction('graph-leave', { + "leave": { + resource + } + }); +} + +export const groupifyGraph = ( + ship: Patp, + name: string, + toPath?: string +): Thread<any> => { + const resource = makeResource(ship, name); + const to = toPath && resourceFromPath(toPath); + + return viewAction('graph-groupify', { + groupify: { + resource, + to + } + }); +} + +export const evalCord = ( + cord: string +): Thread<any> => { + return ({ + inputMark: 'graph-view-action', + outputMark: 'tang', + threadName: 'graph-eval', + body: { + eval: cord + } + }); +} + +export const addGraph = ( + ship: Patp, + name: string, + graph: any, + mark: any +): Poke<any> => { + return storeAction({ + 'add-graph': { + resource: { ship, name }, + graph, + mark + } + }); +} + +export const addPost = ( + ship: Patp, + name: string, + post: Post +) => { + let nodes = {}; + nodes[post.index] = { + post, + children: null + }; + return addNodes(ship, name, nodes); +} + +export const addNode = ( + ship: Patp, + name: string, + node: GraphNode +) => { + let nodes = {}; + nodes[node.post.index] = node; + + return this.addNodes(ship, name, nodes); +} + +export const addNodes = ( + ship: Patp, + name: string, + nodes: Object +): Poke<any> => { + const action = { + 'add-nodes': { + resource: { ship, name }, + nodes + } + }; + + markPending(action['add-nodes'].nodes); + action['add-nodes'].resource.ship = action['add-nodes'].resource.ship.slice(1); + // this.store.handleEvent({ data: { 'graph-update': action } });// TODO address this.store + return hookAction(action); +} + +export const removeNodes = ( + ship: Patp, + name: string, + indices: string[] +): Poke<any> => { + return hookAction({ + 'remove-nodes': { + resource: { ship, name }, + indices + } + }); +} + +// TODO these abominations +// getKeys() { +// return this.scry<any>('graph-store', '/keys') +// .then((keys) => { +// this.store.handleEvent({ +// data: keys +// }); +// }); +// } + +// getTags() { +// return this.scry<any>('graph-store', '/tags') +// .then((tags) => { +// this.store.handleEvent({ +// data: tags +// }); +// }); +// } + +// getTagQueries() { +// return this.scry<any>('graph-store', '/tag-queries') +// .then((tagQueries) => { +// this.store.handleEvent({ +// data: tagQueries +// }); +// }); +// } + +// getGraph(ship: string, resource: string) { +// return this.scry<any>('graph-store', `/graph/${ship}/${resource}`) +// .then((graph) => { +// this.store.handleEvent({ +// data: graph +// }); +// }); +// } + +// async getNewest(ship: string, resource: string, count: number, index = '') { +// const data = await this.scry<any>('graph-store', `/newest/${ship}/${resource}/${count}${index}`); +// this.store.handleEvent({ data }); +// } + +// async getOlderSiblings(ship: string, resource: string, count: number, index = '') { +// const idx = index.split('/').map(decToUd).join('/'); +// const data = await this.scry<any>('graph-store', +// `/node-siblings/older/${ship}/${resource}/${count}${idx}` +// ); +// this.store.handleEvent({ data }); +// } + +// async getYoungerSiblings(ship: string, resource: string, count: number, index = '') { +// const idx = index.split('/').map(decToUd).join('/'); +// const data = await this.scry<any>('graph-store', +// `/node-siblings/younger/${ship}/${resource}/${count}${idx}` +// ); +// this.store.handleEvent({ data }); +// } + + +// getGraphSubset(ship: string, resource: string, start: string, end: string) { +// return this.scry<any>( +// 'graph-store', +// `/graph-subset/${ship}/${resource}/${end}/${start}` +// ).then((subset) => { +// this.store.handleEvent({ +// data: subset +// }); +// }); +// } + +// getNode(ship: string, resource: string, index: string) { +// const idx = index.split('/').map(numToUd).join('/'); +// return this.scry<any>( +// 'graph-store', +// `/node/${ship}/${resource}${idx}` +// ).then((node) => { +// this.store.handleEvent({ +// data: node +// }); +// }); +// } \ No newline at end of file diff --git a/pkg/npm/api/groups/index.d.ts b/pkg/npm/api/groups/index.d.ts new file mode 100644 index 0000000000..f4c0486dea --- /dev/null +++ b/pkg/npm/api/groups/index.d.ts @@ -0,0 +1,177 @@ +import { PatpNoSig, Path, Jug, ShipRank, Enc } from '..'; + +export interface RoleTag { + tag: 'admin' | 'moderator' | 'janitor'; +} + +export interface AppTag { + app: string; + tag: string; +} + +export type Tag = AppTag | RoleTag; + +export interface InvitePolicy { + invite: { + pending: Set<PatpNoSig>; + }; +} + +export interface OpenPolicy { + open: { + banned: Set<PatpNoSig>; + banRanks: Set<ShipRank>; + }; +} + +export interface Resource { + name: string; + ship: PatpNoSig; // TODO different declaration than in metadata? +} + +export type OpenPolicyDiff = + | AllowRanksDiff + | BanRanksDiff + | AllowShipsDiff + | BanShipsDiff; + +export interface AllowRanksDiff { + allowRanks: ShipRank[]; +} + +export interface BanRanksDiff { + banRanks: ShipRank[]; +} + +export interface AllowShipsDiff { + allowShips: PatpNoSig[]; +} + +export interface BanShipsDiff { + banShips: PatpNoSig[]; +} + +export type InvitePolicyDiff = AddInvitesDiff | RemoveInvitesDiff; + +export interface AddInvitesDiff { + addInvites: PatpNoSig[]; +} + +export interface RemoveInvitesDiff { + removeInvites: PatpNoSig[]; +} + +export interface ReplacePolicyDiff { + replace: GroupPolicy; +} + +export type GroupPolicyDiff = + | { open: OpenPolicyDiff } + | { invite: InvitePolicyDiff } + | ReplacePolicyDiff; + +export type GroupPolicy = OpenPolicy | InvitePolicy; + +export interface TaggedShips { + [tag: string]: Set<PatpNoSig>; +} + +export interface Tags { + role: TaggedShips; + [app: string]: TaggedShips; +} + +export interface Group { + members: Set<PatpNoSig>; + tags: Tags; + policy: GroupPolicy; + hidden: boolean; +} + +export type Groups = { + [p in Path]: Group; +}; + +export interface GroupUpdateInitial { + initial: Enc<Groups>; +} + +export interface GroupUpdateAddGroup { + addGroup: { + resource: Resource; + policy: Enc<GroupPolicy>; + hidden: boolean; + }; +} + +export interface GroupUpdateAddMembers { + addMembers: { + ships: PatpNoSig[]; + resource: Resource; + }; +} + +export interface GroupUpdateRemoveMembers { + removeMembers: { + ships: PatpNoSig[]; + resource: Resource; + }; +} + +export interface GroupUpdateAddTag { + addTag: { + tag: Tag; + resource: Resource; + ships: PatpNoSig[]; + }; +} + +export interface GroupUpdateRemoveTag { + removeTag: { + tag: Tag; + resource: Resource; + ships: PatpNoSig[]; + }; +} + +export interface GroupUpdateChangePolicy { + changePolicy: { resource: Resource; diff: GroupPolicyDiff }; +} + +export interface GroupUpdateRemoveGroup { + removeGroup: { + resource: Resource; + }; +} + +export interface GroupUpdateExpose { + expose: { + resource: Resource; + }; +} + +export interface GroupUpdateInitialGroup { + initialGroup: { + resource: Resource; + group: Enc<Group>; + }; +} + +export type GroupUpdate = + | GroupUpdateInitial + | GroupUpdateAddGroup + | GroupUpdateAddMembers + | GroupUpdateRemoveMembers + | GroupUpdateAddTag + | GroupUpdateRemoveTag + | GroupUpdateChangePolicy + | GroupUpdateRemoveGroup + | GroupUpdateExpose + | GroupUpdateInitialGroup; + +export type GroupAction = Omit<GroupUpdate, 'initialGroup' | 'initial'>; + +export const groupBunts = { + group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), + policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) +}; diff --git a/pkg/npm/api/groups/index.ts b/pkg/npm/api/groups/index.ts new file mode 100644 index 0000000000..03ea4e2894 --- /dev/null +++ b/pkg/npm/api/groups/index.ts @@ -0,0 +1,108 @@ +import { Enc, Path, Patp, PatpNoSig, Poke } from ".."; +import { + Group, + GroupAction, + GroupPolicyDiff, + GroupUpdateAddMembers, + GroupUpdateAddTag, + GroupUpdateChangePolicy, + GroupUpdateRemoveGroup, + GroupUpdateRemoveMembers, + GroupUpdateRemoveTag, + Resource, + Tag +} from "./index.d"; + +export const proxyAction = <T>(data: T): Poke<T> => ({ + app: 'group-push-hook', + mark: 'group-update', + json: data +}); + +export const storeAction = <T>(data: T): Poke<T> => ({ + app: 'group-store', + mark: 'group-update', + json: data +}); + +export const remove = ( + resource: Resource, + ships: PatpNoSig[] +): Poke<GroupUpdateRemoveMembers> => proxyAction({ + removeMembers: { + resource, + ships + } +}); + +export const addTag = ( + resource: Resource, + tag: Tag, + ships: Patp[] +): Poke<GroupUpdateAddTag> => proxyAction({ + addTag: { + resource, + tag, + ships + } +}); + +export const removeTag = ( + tag: Tag, + resource: Resource, + ships: PatpNoSig[] +): Poke<GroupUpdateRemoveTag> => proxyAction({ + removeTag: { + tag, + resource, + ships + } +}); + +export const add = ( + resource: Resource, + ships: PatpNoSig[] +): Poke<GroupUpdateAddMembers> => proxyAction({ + addMembers: { + resource, + ships + } +}); + +export const removeGroup = ( + resource: Resource +): Poke<GroupUpdateRemoveGroup> => storeAction({ + removeGroup: { + resource + } +}); + +export const changePolicy = ( + resource: Resource, + diff: GroupPolicyDiff +): Poke<GroupUpdateChangePolicy> => proxyAction({ + changePolicy: { + resource, + diff + } +}); + +const roleTags = ['janitor', 'moderator', 'admin']; +// TODO make this type better? + +export function roleForShip(group: Group, ship: PatpNoSig): string | undefined { + return roleTags.reduce((currRole, role) => { + const roleShips = group?.tags?.role?.[role]; + return roleShips && roleShips.has(ship) ? role : currRole; + }, undefined as string | undefined); +} + +export function resourceFromPath(path: Path): Resource { + const [, , ship, name] = path.split('/'); + return { ship, name } +} + +export function makeResource(ship: string, name:string) { + return { ship, name }; +} + diff --git a/pkg/npm/api/hark/index.d.ts b/pkg/npm/api/hark/index.d.ts new file mode 100644 index 0000000000..7759d9bae7 --- /dev/null +++ b/pkg/npm/api/hark/index.d.ts @@ -0,0 +1,78 @@ +import { Content, Post } from "../graph/index.d"; +import { GroupUpdate } from "../groups/index.d"; +import BigIntOrderedMap from "../lib/BigIntOrderedMap"; + +export type GraphNotifDescription = "link" | "comment" | "note" | "mention"; + +export interface UnreadStats { + unreads: Set<string> | number; + notifications: number; + last: number; +} + +export interface GraphNotifIndex { + graph: string; + group: string; + description: GraphNotifDescription; + module: string; + index: string; +} + +export interface GroupNotifIndex { + group: string; + description: string; +} + +export interface ChatNotifIndex { + chat: string; + mention: boolean; +} + +export type NotifIndex = + | { graph: GraphNotifIndex } + | { group: GroupNotifIndex } + | { chat: ChatNotifIndex }; + +export type GraphNotificationContents = Post[]; + +export type GroupNotificationContents = GroupUpdate[]; + +export type ChatNotificationContents = Content[]; + +export type NotificationContents = + | { graph: GraphNotificationContents } + | { group: GroupNotificationContents } + | { chat: ChatNotificationContents }; + +export interface Notification { + read: boolean; + time: number; + contents: NotificationContents; +} + +export interface IndexedNotification { + index: NotifIndex; + notification: Notification; +} + +export type Timebox = IndexedNotification[]; + +export type Notifications = BigIntOrderedMap<Timebox>; + +export interface NotificationGraphConfig { + watchOnSelf: boolean; + mentions: boolean; + watching: WatchedIndex[] +} + +export interface Unreads { + chat: Record<string, UnreadStats>; + graph: Record<string, Record<string, UnreadStats>>; + group: Record<string, UnreadStats>; +} + +interface WatchedIndex { + graph: string; + index: string; +} +export type GroupNotificationsConfig = string[]; diff --git a/pkg/npm/api/hark/index.ts b/pkg/npm/api/hark/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pkg/npm/api/index.d.ts b/pkg/npm/api/index.d.ts new file mode 100644 index 0000000000..d92065375a --- /dev/null +++ b/pkg/npm/api/index.d.ts @@ -0,0 +1,67 @@ +/** + * Martian embassy + */ + +// an urbit style path rendered as string +export type Path = string; + +// patp including leading sig +export type Patp = string; + +// patp excluding leading sig +export type PatpNoSig = string; + +// @uvH encoded string +export type Serial = string; + +// jug from hoon +export type Jug<K,V> = Map<K,Set<V>>; + +// name of app +export type AppName = 'chat' | 'link' | 'contacts' | 'publish' | 'graph'; + +export function getTagFromFrond<O>(frond: O): keyof O { + const tags = Object.keys(frond) as Array<keyof O>; + const tag = tags[0]; + if(!tag) { + throw new Error("bad frond"); + } + return tag; +} + +export type ShipRank = 'czar' | 'king' | 'duke' | 'earl' | 'pawn'; + +export type Action = 'poke' | 'subscribe' | 'ack' | 'unsubscribe' | 'delete'; + + +export type SetElement<S> = S extends Set<(infer T)> ? T : never; +export type MapKey<M> = M extends Map<(infer K), any> ? K : never; +export type MapValue<M> = M extends Map<any, (infer V)> ? V : never; + +/** + * Turns sets into arrays and maps into objects so we can send them over the wire + */ +export type Enc<S> = + S extends Set<any> ? + Enc<SetElement<S>>[] : + S extends Map<string, any> ? + { [s: string]: Enc<MapValue<S>> } : + S extends object ? + { [K in keyof S]: Enc<S[K]> } : + S; + +export type Mark = string; + +export interface Poke<Action> { + ship?: string; // This should be handled by the http library, but is part of the spec + app: string; + mark: Mark; + json: Action; +} + +export interface Thread<Action> { + inputMark: string; + outputMark: string; + threadName: string; + body: Action; +} \ No newline at end of file diff --git a/pkg/npm/api/index.js b/pkg/npm/api/index.js new file mode 100644 index 0000000000..b8ddcbc8a2 --- /dev/null +++ b/pkg/npm/api/index.js @@ -0,0 +1,5 @@ +import BigIntOrderedMap from './lib/BigIntOrderedMap'; + +export { + BigIntOrderedMap +}; \ No newline at end of file diff --git a/pkg/npm/api/invite/index.d.ts b/pkg/npm/api/invite/index.d.ts new file mode 100644 index 0000000000..91b986aa5b --- /dev/null +++ b/pkg/npm/api/invite/index.d.ts @@ -0,0 +1,85 @@ +import { Serial, PatpNoSig, Path } from '..'; + +export type InviteUpdate = + InviteUpdateInitial +| InviteUpdateCreate +| InviteUpdateDelete +| InviteUpdateInvite +| InviteUpdateAccepted +| InviteUpdateDecline; + +export interface InviteUpdateInitial { + initial: Invites; +} + +export interface InviteUpdateCreate { + create: { + path: Path; + }; +} + +export interface InviteUpdateDelete { + delete: { + path: Path; + }; +} + +export interface InviteUpdateInvite { + invite: { + path: Path; + uid: Serial; + invite: Invite; + }; +} + +export interface InviteUpdateAccepted { + accepted: { + path: Path; + uid: Serial; + }; +} + +export interface InviteUpdateDecline { + decline: { + path: Path; + uid: Serial; + }; +} + +export type InviteAction = + InviteActionAccept +| InviteActionDecline; + +export interface InviteActionAccept { + accept: { + term: string, + uid: Serial + } +} + +export interface InviteActionDecline { + decline: { + term: string, + uid: Serial + } +} + + +// actual datastructures + + +export type Invites = { + [p in Path]: AppInvites; +}; + +export type AppInvites = { + [s in Serial]: Invite; +}; + +export interface Invite { + app: string; + path: Path; + recipient: PatpNoSig; + ship: PatpNoSig; + text: string; +} diff --git a/pkg/npm/api/invite/index.ts b/pkg/npm/api/invite/index.ts new file mode 100644 index 0000000000..4960073842 --- /dev/null +++ b/pkg/npm/api/invite/index.ts @@ -0,0 +1,28 @@ +import { InviteAction, InviteActionAccept, InviteActionDecline } from "./index.d"; +import { Poke, Serial } from ".."; + +export const action = <T>(data: T): Poke<T> => ({ + app: 'invite-store', + mark: 'invite-action', + json: data +}); + +export const accept = ( + app: string, + uid: Serial +): Poke<InviteActionAccept> => action({ + accept: { + term: app, + uid + } +}); + +export const decline = ( + app: string, + uid: Serial +): Poke<InviteActionDecline> => action({ + decline: { + term: app, + uid + } +}); \ No newline at end of file diff --git a/pkg/npm/api/lib/BigIntOrderedMap.ts b/pkg/npm/api/lib/BigIntOrderedMap.ts new file mode 100644 index 0000000000..e13ee45da3 --- /dev/null +++ b/pkg/npm/api/lib/BigIntOrderedMap.ts @@ -0,0 +1,233 @@ +import { BigInteger } from "big-integer"; + +interface NonemptyNode<V> { + n: [BigInteger, V]; + l: MapNode<V>; + r: MapNode<V>; +} + +type MapNode<V> = NonemptyNode<V> | null; + +/** + * An implementation of ordered maps for JS + * Plagiarised wholesale from sys/zuse + */ +export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { + private root: MapNode<V> = null; + size: number = 0; + + constructor(initial: [BigInteger, V][] = []) { + initial.forEach(([key, val]) => { + this.set(key, val); + }); + } + + /** + * Retrieve an value for a key + */ + get(key: BigInteger): V | null { + const inner = (node: MapNode<V>) => { + if (!node) { + return node; + } + const [k, v] = node.n; + if (key.eq(k)) { + return v; + } + if (key.gt(k)) { + return inner(node.l); + } else { + return inner(node.r); + } + }; + + return inner(this.root); + } + + /** + * Put an item by a key + */ + set(key: BigInteger, value: V): void { + + const inner = (node: MapNode<V>) => { + if (!node) { + return { + n: [key, value], + l: null, + r: null, + }; + } + const [k] = node.n; + if (key.eq(k)) { + this.size--; + return { + ...node, + n: [k, value], + }; + } + if (key.gt(k)) { + const l = inner(node.l); + if (!l) { + throw new Error("invariant violation"); + } + return { + ...node, + l, + }; + } + const r = inner(node.r); + if (!r) { + throw new Error("invariant violation"); + } + + return { ...node, r }; + }; + this.size++; + this.root = inner(this.root); + } + + /** + * Remove all entries + */ + clear() { + this.root = null; + } + + /** + * Predicate testing if map contains key + */ + has(key: BigInteger): boolean { + const inner = (node: MapNode<V>) => { + if (!node) { + return false; + } + const [k] = node.n; + + if (k.eq(key)) { + return true; + } + if (key.gt(k)) { + return inner(node.l); + } + return inner(node.r); + }; + return inner(this.root); + } + + /** + * Remove value associated with key, returning whether that key + * existed in the first place + */ + delete(key: BigInteger) { + const inner = (node: MapNode<V>): [boolean, MapNode<V>] => { + if (!node) { + return [false, null]; + } + const [k] = node.n; + if (k.eq(key)) { + return [true, this.nip(node)]; + } + if (key.gt(k)) { + const [bool, l] = inner(node.l); + return [ + bool, + { + ...node, + l, + }, + ]; + } + + const [bool, r] = inner(node.r); + return [ + bool, + { + ...node, + r, + }, + ]; + }; + const [ret, newRoot] = inner(this.root); + if(ret) { + this.size--; + } + this.root = newRoot; + return ret; + } + + private nip(nod: NonemptyNode<V>): MapNode<V> { + const inner = (node: NonemptyNode<V>) => { + if (!node.l) { + return node.r; + } + if (!node.r) { + return node.l; + } + return { + ...node.l, + r: inner(node.r), + }; + }; + return inner(nod); + } + + peekLargest(): [BigInteger, V] | undefined { + const inner = (node: MapNode<V>) => { + if(!node) { + return undefined; + } + if(node.l) { + return inner(node.l); + } + return node.n; + } + return inner(this.root); + } + + peekSmallest(): [BigInteger, V] | undefined { + const inner = (node: MapNode<V>) => { + if(!node) { + return undefined; + } + if(node.r) { + return inner(node.r); + } + return node.n; + } + return inner(this.root); + } + + keys(): BigInteger[] { + const list = Array.from(this); + return list.map(([key]) => key); + } + + forEach(f: (value: V, key: BigInteger) => void) { + const list = Array.from(this); + return list.forEach(([k,v]) => f(v,k)); + } + + [Symbol.iterator](): IterableIterator<[BigInteger, V]> { + let result: [BigInteger, V][] = []; + const inner = (node: MapNode<V>) => { + if (!node) { + return; + } + inner(node.l); + result.push(node.n); + inner(node.r); + }; + inner(this.root); + + let idx = 0; + return { + [Symbol.iterator]: this[Symbol.iterator], + next: (): IteratorResult<[BigInteger, V]> => { + if (idx < result.length) { + return { value: result[idx++], done: false }; + } + return { done: true, value: null }; + }, + }; + } +} diff --git a/pkg/npm/api/lib/util.ts b/pkg/npm/api/lib/util.ts new file mode 100644 index 0000000000..2a6ba82261 --- /dev/null +++ b/pkg/npm/api/lib/util.ts @@ -0,0 +1,211 @@ +import _ from "lodash"; +import f from "lodash/fp"; +import bigInt, { BigInteger } from "big-integer"; +import { Resource } from "../groups/index.d"; + +const DA_UNIX_EPOCH = bigInt("170141184475152167957503069145530368000"); // `@ud` ~1970.1.1 + +const DA_SECOND = bigInt("18446744073709551616"); // `@ud` ~s1 + +/** + * Returns true if an app uses a graph backend + * + * @param {string} app The name of the app + * + * @return {boolean} Whether or not it uses a graph backend + */ +export function appIsGraph(app: string): boolean { + return app === 'publish' || app == 'link'; +} + +/** + * Given a bigint representing an urbit date, returns a unix timestamp. + * + * @param {BigInteger} da The urbit date + * + * @return {number} The unix timestamp + */ +export function daToUnix(da: BigInteger): number { + // ported from +time:enjs:format in hoon.hoon + const offset = DA_SECOND.divide(bigInt(2000)); + const epochAdjusted = offset.add(da.subtract(DA_UNIX_EPOCH)); + + return Math.round( + epochAdjusted.multiply(bigInt(1000)).divide(DA_SECOND).toJSNumber() + ); +} + +/** + * Given a unix timestamp, returns a bigint representing an urbit date + * + * @param {number} unix The unix timestamp + * + * @return {BigInteger} The urbit date + */ +export function unixToDa(unix: number): BigInteger { + const timeSinceEpoch = bigInt(unix).multiply(DA_SECOND).divide(bigInt(1000)); + return DA_UNIX_EPOCH.add(timeSinceEpoch); +} + + +export function makePatDa(patda: string): BigInteger { + return bigInt(udToDec(patda)); +} + +export function udToDec(ud: string): string { + return ud.replace(/\./g, ""); +} + +export function decToUd(str: string): string { + return _.trimStart( + f.flow( + f.split(""), + f.reverse, + f.chunk(3), + f.map(f.flow(f.reverse, f.join(""))), + f.reverse, + f.join(".") + )(str), + "0." + ); +} + +export function resourceAsPath(resource: Resource): string { + const { name, ship } = resource; + return `/ship/~${ship}/${name}`; +} + +export function uuid(): string { + let str = "0v"; + str += Math.ceil(Math.random() * 8) + "."; + for (let i = 0; i < 5; i++) { + let _str = Math.ceil(Math.random() * 10000000).toString(32); + _str = ("00000" + _str).substr(-5, 5); + str += _str + "."; + } + + return str.slice(0, -1); +} + +/* + Goes from: + ~2018.7.17..23.15.09..5be5 // urbit @da + To: + (javascript Date object) +*/ +export function daToDate(st: string): Date { + const dub = function (n: string) { + return parseInt(n) < 10 ? "0" + parseInt(n) : n.toString(); + }; + const da = st.split(".."); + const bigEnd = da[0].split("."); + const lilEnd = da[1].split("."); + const ds = `${bigEnd[0].slice(1)}-${dub(bigEnd[1])}-${dub(bigEnd[2])}T${dub( + lilEnd[0] + )}:${dub(lilEnd[1])}:${dub(lilEnd[2])}Z`; + return new Date(ds); +} + +/* + Goes from: + (javascript Date object) + To: + ~2018.7.17..23.15.09..5be5 // urbit @da +*/ + +export function dateToDa(d: Date, mil: boolean = false): string { + const fil = function (n: number) { + return n >= 10 ? n : "0" + n; + }; + return ( + `~${d.getUTCFullYear()}.` + + `${d.getUTCMonth() + 1}.` + + `${fil(d.getUTCDate())}..` + + `${fil(d.getUTCHours())}.` + + `${fil(d.getUTCMinutes())}.` + + `${fil(d.getUTCSeconds())}` + + `${mil ? "..0000" : ""}` + ); +} + +export function deSig(ship: string): string | null { + if (!ship) { + return null; + } + return ship.replace("~", ""); +} + +// trim patps to match dojo, chat-cli +export function cite(ship: string): string { + let patp = ship, + shortened = ""; + if (patp === null || patp === "") { + return null; + } + if (patp.startsWith("~")) { + patp = patp.substr(1); + } + // comet + if (patp.length === 56) { + shortened = "~" + patp.slice(0, 6) + "_" + patp.slice(50, 56); + return shortened; + } + // moon + if (patp.length === 27) { + shortened = "~" + patp.slice(14, 20) + "^" + patp.slice(21, 27); + return shortened; + } + return `~${patp}`; +} + +// encode the string into @ta-safe format, using logic from +wood. +// for example, 'some Chars!' becomes '~.some.~43.hars~21.' +// +export function stringToTa(str: string): string { + let out = ""; + for (let i = 0; i < str.length; i++) { + const char = str[i]; + let add = ""; + switch (char) { + case " ": + add = "."; + break; + case ".": + add = "~."; + break; + case "~": + add = "~~"; + break; + default: + const charCode = str.charCodeAt(i); + if ( + (charCode >= 97 && charCode <= 122) || // a-z + (charCode >= 48 && charCode <= 57) || // 0-9 + char === "-" + ) { + add = char; + } else { + // TODO behavior for unicode doesn't match +wood's, + // but we can probably get away with that for now. + add = "~" + charCode.toString(16) + "."; + } + } + out = out + add; + } + return "~." + out; +} + + +/** + * Formats a numbers as a `@ud` inserting dot where needed + */ +export function numToUd(num: number): string { + return f.flow( + f.split(''), + f.reverse, + f.chunk(3), + f.reverse, + f.map(s => s.join('')), + f.join('.') + )(num.toString()) +} \ No newline at end of file diff --git a/pkg/npm/api/metadata/index.d.ts b/pkg/npm/api/metadata/index.d.ts new file mode 100644 index 0000000000..7fccfb979e --- /dev/null +++ b/pkg/npm/api/metadata/index.d.ts @@ -0,0 +1,55 @@ +import { AppName, Path, Patp } from '..'; + + +export type MetadataUpdate = + MetadataUpdateInitial +| MetadataUpdateAdd +| MetadataUpdateUpdate +| MetadataUpdateRemove; + +export interface MetadataUpdateInitial { + associations: ResourceAssociations; +} + +export type ResourceAssociations = { + [p in Path]: Association; +} + +export type MetadataUpdateAdd = { + add: Association; +} + +export type MetadataUpdateUpdate = { + update: Association; +} + +export type MetadataUpdateRemove = { + remove: Resource & { + 'group-path': Path; + } +} + +export type Associations = Record<AppName, AppAssociations>; + +export type AppAssociations = { + [p in Path]: Association; +} + +export interface Resource { + 'app-path': Path; + 'app-name': AppName; +} + +export type Association = Resource & { + 'group-path': Path; + metadata: Metadata; +}; + +export interface Metadata { + color: string; + creator: Patp; + 'date-created': string; + description: string; + title: string; + module: string; +} diff --git a/pkg/npm/api/metadata/index.ts b/pkg/npm/api/metadata/index.ts new file mode 100644 index 0000000000..126c48e0cc --- /dev/null +++ b/pkg/npm/api/metadata/index.ts @@ -0,0 +1,55 @@ +import { AppName, Path, PatpNoSig, Poke } from ".."; +import { Association, Metadata, MetadataUpdateAdd, MetadataUpdateUpdate } from './index.d'; + +export const action = <T>(data: T): Poke<T> => ({ + app: 'metadata-hook', + mark: 'metadata-action', + json: data +}); + +export const add = ( + ship: PatpNoSig, + appName: AppName, + appPath: Path, + groupPath: Path, + title: string, + description: string, + dateCreated: string, + color: string, + moduleName: string +): Poke<MetadataUpdateAdd> => { + const creator = `~${ship}`; + return action({ + add: { + 'group-path': groupPath, + resource: { + 'app-path': appPath, + 'app-name': appName + }, + metadata: { + title, + description, + color, + 'date-created': dateCreated, + creator, + 'module': moduleName + } + } + }); +} + +export const update = ( + association: Association, + newMetadata: Partial<Metadata> +): Poke<MetadataUpdateUpdate> => { + return action({ + add: { + 'group-path': association['group-path'], + resource: { + 'app-path': association['app-path'], + 'app-name': association['app-name'], + }, + metadata: {...association.metadata, ...newMetadata } + } + }); +} \ No newline at end of file diff --git a/pkg/npm/api/package-lock.json b/pkg/npm/api/package-lock.json new file mode 100644 index 0000000000..e4855e4ecb --- /dev/null +++ b/pkg/npm/api/package-lock.json @@ -0,0 +1,31 @@ +{ + "name": "@urbit/api", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } +} diff --git a/pkg/npm/api/package.json b/pkg/npm/api/package.json new file mode 100644 index 0000000000..368c1d2e5e --- /dev/null +++ b/pkg/npm/api/package.json @@ -0,0 +1,18 @@ +{ + "name": "@urbit/api", + "version": "1.0.0", + "description": "", + "main": "index.js", + "types": "index.d.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Tyler Brown Cifu Shuster", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@urbit/eslint-config": "^1.0.0", + "big-integer": "^1.6.48", + "lodash": "^4.17.20" + } +} diff --git a/pkg/npm/api/tsconfig.json b/pkg/npm/api/tsconfig.json new file mode 100644 index 0000000000..ca67462754 --- /dev/null +++ b/pkg/npm/api/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "noFallthroughCasesInSwitch": true, + "noUnusedParameters": false, + "noImplicitReturns": true, + "moduleResolution": "node", + "esModuleInterop": true, + "noUnusedLocals": false, + "noImplicitAny": false, + "noEmit": true, + "target": "es2015", + "module": "es2015", + "strict": true, + "jsx": "react", + "baseUrl": ".", + "paths": { + "~/*": ["src/*"] + } + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + ] +} diff --git a/pkg/npm/eslint-config/index.js b/pkg/npm/eslint-config/index.js new file mode 100644 index 0000000000..0f63724ca8 --- /dev/null +++ b/pkg/npm/eslint-config/index.js @@ -0,0 +1,186 @@ +const env = { + "browser": true, + "es6": true, + "node": true +}; + +const rules = { + "array-bracket-spacing": ["error", "never"], + "arrow-parens": [ + "error", + "as-needed", + { + "requireForBlockBody": true + } + ], + "arrow-spacing": "error", + "block-spacing": ["error", "always"], + "brace-style": ["error", "1tbs"], + "camelcase": [ + "error", + { + "properties": "never" + } + ], + "comma-dangle": ["error", "never"], + "eol-last": ["error", "always"], + "func-name-matching": "error", + "indent": [ + "off", + 2, + { + "ArrayExpression": "off", + "SwitchCase": 1, + "CallExpression": { + "arguments": "off" + }, + "FunctionDeclaration": { + "parameters": "off" + }, + "FunctionExpression": { + "parameters": "off" + }, + "MemberExpression": "off", + "ObjectExpression": "off", + "ImportDeclaration": "off" + } + ], + "handle-callback-err": "off", + "linebreak-style": ["error", "unix"], + "max-lines": [ + "error", + { + "max": 300, + "skipBlankLines": true, + "skipComments": true + } + ], + "max-lines-per-function": [ + "warn", + { + "skipBlankLines": true, + "skipComments": true + } + ], + "max-statements-per-line": [ + "error", + { + "max": 1 + } + ], + "new-cap": [ + "error", + { + "newIsCap": true, + "capIsNew": false + } + ], + "new-parens": "error", + "no-buffer-constructor": "error", + "no-console": "off", + "no-extra-semi": "off", + "no-fallthrough": "off", + "no-func-assign": "off", + "no-implicit-coercion": "error", + "no-multi-assign": "error", + "no-multiple-empty-lines": [ + "error", + { + "max": 1 + } + ], + "no-nested-ternary": "error", + "no-param-reassign": "off", + "no-return-assign": "error", + "no-return-await": "off", + "no-shadow-restricted-names": "error", + "no-tabs": "error", + "no-trailing-spaces": "error", + "no-unused-vars": [ + "error", + { + "vars": "all", + "args": "none", + "ignoreRestSiblings": false + } + ], + "no-use-before-define": [ + "error", + { + "functions": false, + "classes": false + } + ], + "no-useless-escape": "off", + "no-var": "error", + "nonblock-statement-body-position": ["error", "below"], + "object-curly-spacing": ["error", "always"], + "padded-blocks": ["error", "never"], + "prefer-arrow-callback": "error", + "prefer-const": [ + "error", + { + "destructuring": "all", + "ignoreReadBeforeAssign": true + } + ], + "prefer-template": "off", + "quotes": ["error", "single"], + "semi": ["error", "always"], + "spaced-comment": [ + "error", + "always", + { + "exceptions": ["!"] + } + ], + "space-before-blocks": "error", + "unicode-bom": ["error", "never"], + "valid-jsdoc": "error", + "wrap-iife": ["error", "inside"], + "react/jsx-closing-bracket-location": 1, + "react/jsx-tag-spacing": 1, + "react/jsx-max-props-per-line": ["error", { "maximum": 2, "when": "multiline" }], + "react/prop-types": 0 +}; + +module.exports = { + "env": env, + "extends": [ + "plugin:react/recommended", + "eslint:recommended", + ], + "settings": { + "react": { + "version": "^16.5.2" + } + }, + "parser": "babel-eslint", + "parserOptions": { + "ecmaVersion": 10, + "requireConfigFile": false, + "sourceType": "module" + }, + "root": true, + "rules": rules, + "overrides": [ + { + "files": ["**/*.ts", "**/*.tsx"], + "env": env, + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { "jsx": true }, + "ecmaVersion": 10, + "requireConfigFile": false, + "sourceType": "module" + }, + "plugins": ["@typescript-eslint"], + "rules": rules + } + ] +}; diff --git a/pkg/npm/eslint-config/package-lock.json b/pkg/npm/eslint-config/package-lock.json new file mode 100644 index 0000000000..0fe4c446f9 --- /dev/null +++ b/pkg/npm/eslint-config/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "@urbit/eslint-config", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/pkg/npm/eslint-config/package.json b/pkg/npm/eslint-config/package.json new file mode 100644 index 0000000000..4df8fac798 --- /dev/null +++ b/pkg/npm/eslint-config/package.json @@ -0,0 +1,14 @@ +{ + "name": "@urbit/eslint-config", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Tyler Brown Cifu Shuster", + "license": "MIT", + "peerDependencies": { + "eslint": ">= 3" + } +} diff --git a/pkg/npm/http-api/.github/workflows/main.yml b/pkg/npm/http-api/.github/workflows/main.yml new file mode 100644 index 0000000000..11023c28f5 --- /dev/null +++ b/pkg/npm/http-api/.github/workflows/main.yml @@ -0,0 +1,42 @@ +name: CI +on: [push] +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Begin CI... + uses: actions/checkout@v2 + + - name: Use Node 12 + uses: actions/setup-node@v1 + with: + node-version: 12.x + + - name: Use cached node_modules + uses: actions/cache@v1 + with: + path: node_modules + key: nodeModules-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + nodeModules- + + - name: Install dependencies + run: yarn install --frozen-lockfile + env: + CI: true + + - name: Lint + run: yarn lint + env: + CI: true + + - name: Test + run: yarn test --ci --coverage --maxWorkers=2 + env: + CI: true + + - name: Build + run: yarn build + env: + CI: true diff --git a/pkg/npm/http-api/.gitignore b/pkg/npm/http-api/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pkg/npm/http-api/.vscode/settings.json b/pkg/npm/http-api/.vscode/settings.json new file mode 100644 index 0000000000..cd44658026 --- /dev/null +++ b/pkg/npm/http-api/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.watcherExclude": { + "**/node_modules/**": false + } +} \ No newline at end of file diff --git a/pkg/npm/http-api/LICENSE b/pkg/npm/http-api/LICENSE new file mode 100644 index 0000000000..a079e905ad --- /dev/null +++ b/pkg/npm/http-api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Tyler Brown Cifu Shuster + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/pkg/npm/http-api/README.md b/pkg/npm/http-api/README.md new file mode 100644 index 0000000000..f82185bbc8 --- /dev/null +++ b/pkg/npm/http-api/README.md @@ -0,0 +1,21 @@ +# Urbit Connector + +This project allows you to connect to an [Urbit](https://urbit.org) ship via a JavaScript application. + +## Example + +Check out the `example` directory for examples of how to use this code. + +1. Open `example/index.html` in your browser and follow the instructions there, or +2. With a ship running in the same fashion as indicated in the file above, run `node example/index.js` + +The code for either of these can be found in `src/example/browser.js` or `src/example/node.js`, depending on your context. + +## Design + +This library is designed to be useful for node applications that communicate with an urbit running either on the local computer or on a remote one. + +The majority of its methods are asynchronous and return Promises. This is due to the non-blocking nature of JavaScript. If used in a React app, response handlers should be bound with `this` to `setState` after a message is received. + +## NOTE +You must enable CORS requests on your urbit for this library to work in browser context. Use `+cors-registry` to see domains which have made requests to your urbit, and then approve the needed one, e.g. `|cors-approve http://zod.arvo.network`. diff --git a/pkg/npm/http-api/example/browser.js b/pkg/npm/http-api/example/browser.js new file mode 100644 index 0000000000..9ec2eea57f --- /dev/null +++ b/pkg/npm/http-api/example/browser.js @@ -0,0 +1,17 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is not neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/*!********************************!*\ + !*** ./src/example/browser.js ***! + \********************************/ +/*! unknown exports (runtime-defined) */ +/*! runtime requirements: */ +eval("// import Urbit from '../../dist/browser';\n// window.Urbit = Urbit;\n\n//# sourceURL=webpack://@urbit/http-api/./src/example/browser.js?"); +/******/ })() +; \ No newline at end of file diff --git a/pkg/npm/http-api/example/index.html b/pkg/npm/http-api/example/index.html new file mode 100644 index 0000000000..cbe00460ff --- /dev/null +++ b/pkg/npm/http-api/example/index.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Demo</title> + <script src="browser.js"></script> + <style> + @import url("https://rsms.me/inter/inter.css"); + @font-face { + font-family: "Source Code Pro"; + src: url("https://storage.googleapis.com/media.urbit.org/fonts/scp-regular.woff"); + font-weight: 400; + } + body { + margin: 0 auto; + max-width: 70ch; + padding: 2ch; + font-family: 'Inter', sans-serif; + } + #mylog { + white-space: pre-wrap; + padding: 2ch; + background: black; + color: white; + font-family: 'Source Code Pro', monospace; + } + #mylog div { + margin-bottom: 1rem; + } + .chunk { + border-bottom: 1px dashed currentColor; + } + </style> +</head> +<body> + <details> + <summary>Show instructions</summary> + <p>Assuming you are running a fakezod on port 8080, run</p> + <code id="instructions">|cors-approve '{window.location.origin}'</code> + <p>in its dojo.</p> + <p>Press the button to run the code below. Output will be logged. You should see <code>< ~zod: opening airlock</code> in your dojo.</code> Create a chat and send a message to see the events logged.</p> + <pre>window.airlock = await Urbit.authenticate({ + ship: 'zod', + url: 'localhost:8080', + code: 'lidlut-tabwed-pillex-ridrup', + verbose: true +}); +window.airlock.subscribe('chat-view', '/primary', { event: console.log });</pre> + </details> + + <button id="blastoff" onclick="blastOff()">Blast Off</button> + <pre id="mylog"> + + </pre> +</body> +<script> + var baseLogFunction = console.log; + console.log = function(){ + baseLogFunction.apply(console, arguments); + var chunk = document.createElement('div'); + chunk.className = 'chunk'; + + var args = Array.prototype.slice.call(arguments); + for(var i=0;i<args.length;i++){ + const val = typeof args[i] === 'string' ? args[i] : JSON.stringify(args[i]); + var node = createLogNode(val); + chunk.appendChild(node); + } + document.querySelector("#mylog").insertBefore(chunk, document.querySelector("#mylog").firstChild); + } + + function createLogNode(message){ + var node = document.createElement("div"); + node.className = 'message'; + var textNode = document.createTextNode(message); + node.appendChild(textNode); + return node; + } + + window.onerror = function(message, url, linenumber) { + console.log("JavaScript error: " + message + " on line " + + linenumber + " for " + url); + } + const instructions = document.getElementById('instructions'); + instructions.innerText = instructions.innerText.replace('{window.location.origin}', window.location.origin); + async function blastOff() { + window.airlock = await Urbit.authenticate({ + ship: 'zod', + url: 'localhost:8080', + code: 'lidlut-tabwed-pillex-ridrup', + verbose: true + }); + window.airlock.subscribe('chat-view', '/primary', { event: console.log }); + document.body.removeChild(document.getElementById('blastoff')) + } +</script> +</html> \ No newline at end of file diff --git a/pkg/npm/http-api/example/node.js b/pkg/npm/http-api/example/node.js new file mode 100644 index 0000000000..4dc1b5b034 --- /dev/null +++ b/pkg/npm/http-api/example/node.js @@ -0,0 +1,17 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is not neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/*!*****************************!*\ + !*** ./src/example/node.js ***! + \*****************************/ +/*! unknown exports (runtime-defined) */ +/*! runtime requirements: */ +eval("// import Urbit from '../../dist/index';\n// async function blastOff() {\n// const airlock = await Urbit.authenticate({\n// ship: 'zod',\n// url: 'localhost:8080',\n// code: 'lidlut-tabwed-pillex-ridrup',\n// verbose: true\n// });\n// airlock.subscribe('chat-view', '/primary');\n// }\n// blastOff();\n\n//# sourceURL=webpack://@urbit/http-api/./src/example/node.js?"); +/******/ })() +; \ No newline at end of file diff --git a/pkg/npm/http-api/index.js b/pkg/npm/http-api/index.js new file mode 100644 index 0000000000..351a32475c --- /dev/null +++ b/pkg/npm/http-api/index.js @@ -0,0 +1,2 @@ +import Urbit from './dist'; +export { Urbit as default, Urbit }; \ No newline at end of file diff --git a/pkg/npm/http-api/package-lock.json b/pkg/npm/http-api/package-lock.json new file mode 100644 index 0000000000..0b03dfdd46 --- /dev/null +++ b/pkg/npm/http-api/package-lock.json @@ -0,0 +1,5591 @@ +{ + "name": "@urbit/http-api", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", + "dev": true + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", + "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", + "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.12.1" + } + }, + "@babel/preset-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", + "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", + "dev": true + }, + "@types/browser-or-node": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/browser-or-node/-/browser-or-node-1.2.0.tgz", + "integrity": "sha512-hLn4jvpZ804yQDu71YW7qNQDm045XmODoEOZohkH4jWb23AaPodhVM5qztG+XM54Oqw8X1dA4A7z49iNFGbrxA==", + "dev": true + }, + "@types/eslint": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.4.tgz", + "integrity": "sha512-YCY4kzHMsHoyKspQH+nwSe+70Kep7Vjt2X+dZe5Vs2vkRudqtoFoUIv1RlJmZB8Hbp7McneupoZij4PadxsK5Q==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.45", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", + "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", + "dev": true + }, + "@types/eventsource": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.5.tgz", + "integrity": "sha512-BA9q9uC2PAMkUS7DunHTxWZZaVpeNzDG8lkBxcKwzKJClfDQ4Z59/Csx7HSH/SIqFN2JWh0tAKAM6k/wRR0OZg==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", + "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", + "dev": true + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", + "dev": true + }, + "@types/react": { + "version": "16.9.56", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz", + "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz", + "integrity": "sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.22", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz", + "integrity": "sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==", + "dev": true, + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz", + "integrity": "sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz", + "integrity": "sha512-li9aiSVBBd7kU5VlQlT1AqP0uWGDK6JYKUQ9cVDnOg34VNnd9t4jr0Yqc/bKxJr/tDCPDaB4KzoSFN9fgVxe/Q==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.7.0", + "@typescript-eslint/scope-manager": "4.7.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.7.0.tgz", + "integrity": "sha512-cymzovXAiD4EF+YoHAB5Oh02MpnXjvyaOb+v+BdpY7lsJXZQN34oIETeUwVT2XfV9rSNpXaIcknDLfupO/tUoA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.7.0", + "@typescript-eslint/types": "4.7.0", + "@typescript-eslint/typescript-estree": "4.7.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.7.0.tgz", + "integrity": "sha512-+meGV8bMP1sJHBI2AFq1GeTwofcGiur8LoIr6v+rEmD9knyCqDlrQcFHR0KDDfldHIFDU/enZ53fla6ReF4wRw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.7.0", + "@typescript-eslint/types": "4.7.0", + "@typescript-eslint/typescript-estree": "4.7.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.7.0.tgz", + "integrity": "sha512-ILITvqwDJYbcDCROj6+Ob0oCKNg3SH46iWcNcTIT9B5aiVssoTYkhKjxOMNzR1F7WSJkik4zmuqve5MdnA0DyA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.7.0", + "@typescript-eslint/visitor-keys": "4.7.0" + } + }, + "@typescript-eslint/types": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.7.0.tgz", + "integrity": "sha512-uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz", + "integrity": "sha512-5XZRQznD1MfUmxu1t8/j2Af4OxbA7EFU2rbo0No7meb46eHgGkSieFdfV6omiC/DGIBhH9H9gXn7okBbVOm8jw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.7.0", + "@typescript-eslint/visitor-keys": "4.7.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz", + "integrity": "sha512-aDJDWuCRsf1lXOtignlfiPODkzSxxop7D0rZ91L6ZuMlcMCSh0YyK+gAfo5zN/ih6WxMwhoXgJWC3cWQdaKC+A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.7.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", + "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==", + "dev": true + }, + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "requires": { + "array-filter": "^1.0.0" + } + }, + "babel-loader": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz", + "integrity": "sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.0.tgz", + "integrity": "sha512-Jrdy04F2EKcNggUDfubMUPNAZg2vMquLQSm8sKLYJvz40ClFL1S8GKyDshGkNsbNNE5Z+fQavzU7nSK1I9JUGA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browser-or-node": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", + "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.14.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", + "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001157", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.591", + "escalade": "^3.1.1", + "node-releases": "^1.1.66" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001157", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz", + "integrity": "sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "dev": true, + "requires": { + "@types/webpack": "^4.4.31", + "del": "^4.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "csstype": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", + "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.592", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.592.tgz", + "integrity": "sha512-kGNowksvqQiPb1pUSQKpd8JFoGPLxYOwduNRCqCxGh/2Q1qE2JdmwouCW41lUzDxOb/2RIV4lR0tVIfboWlO9A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "requires": { + "original": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + }, + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-generator-function": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", + "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "requires": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "loader-runner": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz", + "integrity": "sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-releases": { + "version": "1.1.66", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", + "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", + "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", + "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz", + "integrity": "sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==", + "dev": true, + "requires": { + "jest-worker": "^26.6.1", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.8" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "watchpack": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz", + "integrity": "sha512-vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.4.0.tgz", + "integrity": "sha512-udpYTyqz8toTTdaOsL2QKPLeZLt2IEm9qY7yTXuFEQhKu5bk0yQD9BtAdVQksmz4jFbbWOiWmm3NHarO0zr/ng==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.45", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^8.0.4", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.3.1", + "eslint-scope": "^5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "pkg-dir": "^4.2.0", + "schema-utils": "^3.0.0", + "tapable": "^2.0.0", + "terser-webpack-plugin": "^5.0.3", + "watchpack": "^2.0.0", + "webpack-sources": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "enhanced-resolve": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", + "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "tapable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz", + "integrity": "sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "dev": true, + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "which-typed-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", + "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", + "requires": { + "available-typed-arrays": "^1.0.2", + "es-abstract": "^1.17.5", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xmlhttprequest-ssl": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.0.tgz", + "integrity": "sha512-z59ztoKPjoFdK6uki5DRiMwPCYtHgp42vCamEpirB9j6zqnbNYBp/2GfrTEOG6IcS9OoMWmIiauU6d2RQNcdbA==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/pkg/npm/http-api/package.json b/pkg/npm/http-api/package.json new file mode 100644 index 0000000000..3d963dd76e --- /dev/null +++ b/pkg/npm/http-api/package.json @@ -0,0 +1,64 @@ +{ + "name": "@urbit/http-api", + "version": "1.1.0", + "license": "MIT", + "description": "Library to interact with an Urbit ship over HTTP", + "repository": "github:tylershuster/urbit", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "browser": "dist/esm/index.js", + "types": "dist/esm/index.d.ts", + "files": [ + "dist", + "src" + ], + "engines": { + "node": ">=13" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "npm run clean && webpack --config webpack.prod.js && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json", + "clean": "rm -rf dist/*" + }, + "peerDependencies": {}, + "prettier": { + "printWidth": 80, + "semi": true, + "singleQuote": true, + "trailingComma": "es5" + }, + "author": "Tyler Brown Cifu Shuster", + "devDependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/preset-typescript": "^7.12.1", + "@types/eventsource": "^1.1.5", + "@types/react": "^16.9.56", + "@typescript-eslint/eslint-plugin": "^4.7.0", + "@typescript-eslint/parser": "^4.7.0", + "@types/browser-or-node": "^1.2.0", + "babel-loader": "^8.2.1", + "clean-webpack-plugin": "^3.0.0", + "tslib": "^2.0.3", + "typescript": "^3.9.7", + "webpack": "^5.4.0", + "webpack-cli": "^3.3.12", + "webpack-dev-server": "^3.11.0" + }, + "dependencies": { + "@babel/runtime": "^7.12.5", + "browser-or-node": "^1.3.0", + "browserify-zlib": "^0.2.0", + "buffer": "^5.7.1", + "encoding": "^0.1.13", + "eventsource": "^1.0.7", + "node-fetch": "^2.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.1.1", + "util": "^0.12.3", + "xmlhttprequest": "^1.8.0", + "xmlhttprequest-ssl": "^1.6.0" + } +} diff --git a/pkg/npm/http-api/src/app/base.ts b/pkg/npm/http-api/src/app/base.ts new file mode 100644 index 0000000000..9324004653 --- /dev/null +++ b/pkg/npm/http-api/src/app/base.ts @@ -0,0 +1,40 @@ +import Urbit from '..'; + +export interface UrbitAppInterface { + airlock: Urbit; + app: string; +} + +export default class UrbitApp implements UrbitAppInterface { + airlock: Urbit; + + get app(): string { + throw new Error('Access app property on base UrbitApp'); + } + + constructor(airlock: Urbit) { + this.airlock = airlock; + } + + /** + * Getter that barfs if no ship has been passed + */ + get ship(): string { + if (!this.airlock.ship) { + throw new Error('No ship specified'); + } + return this.airlock.ship; + } + + /** + * Helper to allow any app to handle subscriptions. + * + * @param path Path on app to subscribe to + */ + subscribe(path: string) { + const ship = this.ship; + const app = this.app; + return this.airlock.subscribe(app, path); + } + // TODO handle methods that don't exist +} diff --git a/pkg/npm/http-api/src/example/browser.js b/pkg/npm/http-api/src/example/browser.js new file mode 100644 index 0000000000..2dfc71410a --- /dev/null +++ b/pkg/npm/http-api/src/example/browser.js @@ -0,0 +1,3 @@ +// import Urbit from '../../dist/browser'; + +// window.Urbit = Urbit; \ No newline at end of file diff --git a/pkg/npm/http-api/src/example/node.js b/pkg/npm/http-api/src/example/node.js new file mode 100644 index 0000000000..bbceb0c7b5 --- /dev/null +++ b/pkg/npm/http-api/src/example/node.js @@ -0,0 +1,14 @@ +// import Urbit from '../../dist/index'; + +// async function blastOff() { +// const airlock = await Urbit.authenticate({ +// ship: 'zod', +// url: 'localhost:8080', +// code: 'lidlut-tabwed-pillex-ridrup', +// verbose: true +// }); + +// airlock.subscribe('chat-view', '/primary'); +// } + +// blastOff(); diff --git a/pkg/npm/http-api/src/index.ts b/pkg/npm/http-api/src/index.ts new file mode 100644 index 0000000000..44c490c699 --- /dev/null +++ b/pkg/npm/http-api/src/index.ts @@ -0,0 +1,456 @@ +import { isBrowser, isNode } from 'browser-or-node'; +import { Action, Thread } from '../../api'; + +import { AuthenticationInterface, SubscriptionInterface, CustomEventHandler, PokeInterface, SubscriptionRequestInterface, headers, UrbitInterface, SSEOptions, ThreadInterface } from './types'; +import UrbitApp from './app/base'; +import { uncamelize, hexString } from './utils'; + +/** + * A class for interacting with an urbit ship, given its URL and code + */ +export class Urbit implements UrbitInterface { + /** + * UID will be used for the channel: The current unix time plus a random hex string + */ + uid: string = `${Math.floor(Date.now() / 1000)}-${hexString(6)}`; + + /** + * Last Event ID is an auto-updated index of which events have been sent over this channel + */ + lastEventId: number = 0; + + lastAcknowledgedEventId: number = 0; + + /** + * SSE Client is null for now; we don't want to start polling until it the channel exists + */ + sseClient: EventSource | null = null; + + /** + * Cookie gets set when we log in. + */ + cookie?: string | undefined; + + /** + * A registry of requestId to successFunc/failureFunc + * + * These functions are registered during a +poke and are executed + * in the onServerEvent()/onServerError() callbacks. Only one of + * the functions will be called, and the outstanding poke will be + * removed after calling the success or failure function. + */ + + outstandingPokes: Map<number, object> = new Map(); + + /** + * A registry of requestId to subscription functions. + * + * These functions are registered during a +subscribe and are + * executed in the onServerEvent()/onServerError() callbacks. The + * event function will be called whenever a new piece of data on this + * subscription is available, which may be 0, 1, or many times. The + * disconnect function may be called exactly once. + */ + + outstandingSubscriptions: Map<number, SubscriptionInterface> = new Map(); + + /** + * Ship can be set, in which case we can do some magic stuff like send chats + */ + ship?: string | null; + + /** + * If verbose, logs output eagerly. + */ + verbose?: boolean; + + /** + * All registered apps, keyed by name + */ + static apps: Map<string, typeof UrbitApp> = new Map(); + + /** This is basic interpolation to get the channel URL of an instantiated Urbit connection. */ + get channelUrl(): string { + return `${this.url}/~/channel/${this.uid}`; + } + + get fetchOptions(): any { + const headers: headers = { + 'Content-Type': 'application/json', + }; + if (!isBrowser) { + headers.Cookie = this.cookie; + } + return { + credentials: 'include', + headers + }; + } + + /** + * Constructs a new Urbit connection. + * + * @param url The URL (with protocol and port) of the ship to be accessed + * @param code The access code for the ship at that address + */ + constructor( + public url: string, + public code: string + ) { + return this; + // We return a proxy so we can set dynamic properties like `Urbit.onChatHook` + return new Proxy(this, { + get(target: Urbit, property: string) { + // First check if this is a regular property + if (property in target) { + return (target as any)[property]; + } + + // Then check if it's a registered app + const app = Urbit.apps.get(uncamelize(property)); + if (app) { + return new app(target); + } + + // Then check to see if we're trying to register an EventSource watcher + if (property.startsWith('on')) { + const on = uncamelize(property.replace('on', '')).toLowerCase(); + return ((action: CustomEventHandler) => { + target.eventSource().addEventListener('message', (event: MessageEvent) => { + if (target.verbose) { + console.log(`Received SSE from ${on}: `, event); + } + if (event.data && JSON.parse(event.data)) { + const data: any = JSON.parse(event.data); + if (data.json.hasOwnProperty(on)) { + action(data.json[on], data.json.response); + } + } + }); + }); + } + + return undefined; + } + }) + } + + /** + * All-in-one hook-me-up. + * + * Given a ship, url, and code, this returns an airlock connection + * that is ready to go. It `|hi`s itself to create the channel, + * then opens the channel via EventSource. + * + * @param AuthenticationInterface + */ + static async authenticate({ ship, url, code, verbose = false }: AuthenticationInterface) { + const airlock = new Urbit(`http://${url}`, code); + airlock.verbose = verbose; + airlock.ship = ship; + await airlock.connect(); + await airlock.poke({ app: 'hood', mark: 'helm-hi', json: 'opening airlock' }); + await airlock.eventSource(); + return airlock; + } + + /** + * Connects to the Urbit ship. Nothing can be done until this is called. + * That's why we roll it into this.authenticate + */ + async connect(): Promise<void> { + if (this.verbose) { + console.log(`password=${this.code} `, isBrowser ? "Connecting in browser context at " + `${this.url}/~/login` : "Connecting from node context"); + } + return fetch(`${this.url}/~/login`, { + method: 'post', + body: `password=${this.code}`, + credentials: 'include', + }).then(response => { + if (this.verbose) { + console.log('Received authentication response', response); + } + const cookie = response.headers.get('set-cookie'); + if (!this.ship) { + this.ship = new RegExp(/urbauth-~([\w-]+)/).exec(cookie)[1]; + } + if (!isBrowser) { + this.cookie = cookie; + } + }).catch(error => { + console.log(XMLHttpRequest); + console.log('errored') + console.log(error); + }); + } + + + /** + * Returns (and initializes, if necessary) the SSE pipe for the appropriate channel. + */ + eventSource(): EventSource { + if (!this.sseClient || this.sseClient.readyState === this.sseClient.CLOSED) { + const sseOptions: SSEOptions = { + headers: {} + }; + if (isBrowser) { + sseOptions.withCredentials = true; + } else if (isNode) { + sseOptions.headers.Cookie = this.cookie; + } + this.sseClient = new EventSource(this.channelUrl, { + withCredentials: true + }); + this.sseClient!.addEventListener('message', (event: MessageEvent) => { + if (this.verbose) { + console.log('Received SSE: ', event); + } + this.ack(Number(event.lastEventId)); + if (event.data && JSON.parse(event.data)) { + const data: any = JSON.parse(event.data); + if (data.response === 'poke' && this.outstandingPokes.has(data.id)) { + const funcs = this.outstandingPokes.get(data.id); + if (data.hasOwnProperty('ok')) { + funcs.success(); + } else if (data.hasOwnProperty('err')) { + funcs.fail(data.err); + } else { + console.error('Invalid poke response', data); + } + this.outstandingPokes.delete(data.id); + } else if (data.response === 'subscribe' || + (data.response === 'poke' && this.outstandingSubscriptions.has(data.id))) { + const funcs = this.outstandingSubscriptions.get(data.id); + if (data.hasOwnProperty('err')) { + funcs.err(data.err); + this.outstandingSubscriptions.delete(data.id); + } + } else if (data.response === 'diff' && this.outstandingSubscriptions.has(data.id)) { + const funcs = this.outstandingSubscriptions.get(data.id); + funcs.event(data.json); + } else if (data.response === 'quit' && this.outstandingSubscriptions.has(data.id)) { + const funcs = this.outstandingSubscriptions.get(data.id); + funcs.quit(data); + this.outstandingSubscriptions.delete(data.id); + } else { + console.log('Unrecognized response', data); + } + // An incoming message, for example: + // { + // id: 10, + // json: { + // 'chat-update' : { // This is where we hook our "on" handlers like "onChatUpdate" + // message: { + // envelope: { + // author: 'zod', + // letter: { + // text: 'hi' + // }, + // number: 10, + // uid: 'saludhafhsdf', + // when: 124459 + // }, + // path: '/~zod/mailbox' + // } + // } + // } + // } + } + }); + this.sseClient!.addEventListener('error', function(event: Event) { + console.error('pipe error', event); + }); + + } + return this.sseClient; + } + + addEventListener(callback: (data: any) => void) { + return this.eventSource().addEventListener('message', (event: MessageEvent) => { + if (event.data && JSON.parse(event.data)) { + callback(JSON.parse(event.data)); + } + }); + } + + /** + * Autoincrements the next event ID for the appropriate channel. + */ + getEventId(): number { + this.lastEventId = Number(this.lastEventId) + 1; + return this.lastEventId; + } + + /** + * Acknowledges an event. + * + * @param eventId The event to acknowledge. + */ + ack(eventId: number): Promise<void | number> { + return this.sendMessage('ack', { 'event-id': eventId }); + } + + /** + * This is a wrapper method that can be used to send any action with data. + * + * Every message sent has some common parameters, like method, headers, and data + * structure, so this method exists to prevent duplication. + * + * @param action The action to send + * @param data The data to send with the action + * + * @returns void | number If successful, returns the number of the message that was sent + */ + async sendMessage(action: Action, data?: object): Promise<void | number> { + + const id = this.getEventId(); + if (this.verbose) { + console.log(`Sending message ${id}:`, action, data,); + } + let response: Response | undefined; + try { + response = await fetch(this.channelUrl, { + ...this.fetchOptions, + method: 'put', + body: JSON.stringify([{ + id, + action, + ...data, + }]), + }); + } catch (error) { + console.error('message error', error); + response = undefined; + } + if (this.verbose) { + console.log(`Received from message ${id}: `, response); + } + return id; + } + + /** + * Pokes a ship with data. + * + * @param app The app to poke + * @param mark The mark of the data being sent + * @param json The data to send + */ + poke(params: PokeInterface): Promise<void | number> { + const { app, mark, json, onSuccess, onError } = {onSuccess: () => {}, onError: () => {}, ...params}; + return new Promise((resolve, reject) => { + this + .sendMessage('poke', { ship: this.ship, app, mark, json }) + .then(pokeId => { + if (!pokeId) { + return reject('Poke failed'); + } + if (!this.sseClient) resolve(pokeId); // A poke may occur before a listener has been opened + this.outstandingPokes.set(pokeId, { + success: () => { + onSuccess(); + resolve(pokeId); + }, + fail: (event) => { + onError(); + reject(event.err); + } + }); + }).catch(error => { + console.error(error); + }); + }); + } + + /** + * Subscribes to a path on an app on a ship. + * + * @param app The app to subsribe to + * @param path The path to which to subscribe + * @param handlers Handlers to deal with various events of the subscription + */ + async subscribe(params: SubscriptionRequestInterface): Promise<void | number> { + const { app, path, err, event, quit } = { err: () => {}, event: () => {}, quit: () => {}, ...params }; + + const subscriptionId = await this.sendMessage('subscribe', { ship: this.ship, app, path }); + console.log('subscribed', subscriptionId); + + if (!subscriptionId) return; + + this.outstandingSubscriptions.set(subscriptionId, { + err, event, quit + }); + + return subscriptionId; + } + + /** + * Unsubscribes to a given subscription. + * + * @param subscription + */ + unsubscribe(subscription: string): Promise<void | number> { + return this.sendMessage('unsubscribe', { subscription }); + } + + /** + * Deletes the connection to a channel. + */ + delete(): Promise<void | number> { + return this.sendMessage('delete'); + } + + /** + * + * @param app The app into which to scry + * @param path The path at which to scry + */ + async scry(app: string, path: string): Promise<void | any> { + const response = await fetch(`/~/scry/${app}${path}.json`, this.fetchOptions); + return await response.json(); + } + + /** + * + * @param inputMark The mark of the data being sent + * @param outputMark The mark of the data being returned + * @param threadName The thread to run + * @param body The data to send to the thread + */ + async spider<T>(params: Thread<T>): Promise<T> { + const { inputMark, outputMark, threadName, body } = params; + const res = await fetch(`/spider/${inputMark}/${threadName}/${outputMark}.json`, { + ...this.fetchOptions, + method: 'POST', + body: JSON.stringify(body) + }); + + return res.json(); + } + + app(appName: string): UrbitApp { + const appClass = Urbit.apps.get(appName); + if (!appClass) { + throw new Error(`App ${appName} not found`); + } + return new appClass(this); + } + + /** + * Utility function to connect to a ship that has its *.arvo.network domain configured. + * + * @param name Name of the ship e.g. zod + * @param code Code to log in + */ + static async onArvoNetwork(ship: string, code: string): Promise<Urbit> { + const url = `https://${ship}.arvo.network`; + return await Urbit.authenticate({ ship, url, code }); + } + + static extend(appClass: any): void { + Urbit.apps.set(appClass.app, appClass); + } +} + + + +export default Urbit; diff --git a/pkg/npm/http-api/src/types/index.d.ts b/pkg/npm/http-api/src/types/index.d.ts new file mode 100644 index 0000000000..36b63c1733 --- /dev/null +++ b/pkg/npm/http-api/src/types/index.d.ts @@ -0,0 +1,45 @@ +import { Action, Mark, Poke } from '../../../api/index'; + +export interface PokeInterface extends Poke<Mark, any> { + onSuccess?: () => void; + onError?: () => void; +} + + +export interface AuthenticationInterface { + ship: string; + url: string; + code: string; + verbose?: boolean; +} + +export interface SubscriptionInterface { + err?(error: any): void; + event?(data: any): void; + quit?(data: any): void; +} + +export type SubscriptionRequestInterface = SubscriptionInterface & { + app: string; + path: string; +} + +export interface headers { + 'Content-Type': string; + Cookie?: string; +} + +export interface UrbitInterface { + connect(): void; +} + +export interface CustomEventHandler { + (data: any, response: string): void; +} + +export interface SSEOptions { + headers?: { + Cookie?: string + }; + withCredentials?: boolean; +} \ No newline at end of file diff --git a/pkg/npm/http-api/src/utils.ts b/pkg/npm/http-api/src/utils.ts new file mode 100644 index 0000000000..94c0998cb0 --- /dev/null +++ b/pkg/npm/http-api/src/utils.ts @@ -0,0 +1,82 @@ +import * as http from 'http'; + +interface HttpResponse { + req: http.ClientRequest; + res: http.IncomingMessage; + data: string; +} + +export function request( + url: string, + options: http.ClientRequestArgs, + body?: string +): Promise<HttpResponse> { + return new Promise<HttpResponse>((resolve, reject) => { + const req = http.request(url, options, res => { + let data = ""; + res.on("data", chunk => { + data += chunk; + }); + res.on("end", () => { + resolve({ req, res, data }); + }); + res.on("error", e => { + reject(e); + }); + }); + if (body) { + req.write(body); + } + req.end(); + }); +} + +export function camelize(str: string) { + return str + .replace(/\s(.)/g, function($1: string) { return $1.toUpperCase(); }) + .replace(/\s/g, '') + .replace(/^(.)/, function($1: string) { return $1.toLowerCase(); }); +} + +export function uncamelize(str: string, separator = '-') { + // Replace all capital letters by separator followed by lowercase one + var str = str.replace(/[A-Z]/g, function (letter: string) { + return separator + letter.toLowerCase(); + }); + return str.replace(new RegExp('^' + separator), ''); +} + +/** + * Returns a hex string of given length. + * + * Poached from StackOverflow. + * + * @param len Length of hex string to return. + */ +export function hexString(len: number): string { + const maxlen = 8; + const min = Math.pow(16, Math.min(len, maxlen) - 1); + const max = Math.pow(16, Math.min(len, maxlen)) - 1; + const n = Math.floor(Math.random() * (max - min + 1)) + min; + let r = n.toString(16); + while (r.length < len) { + r = r + hexString(len - maxlen); + } + return r; +} + +/** + * Generates a random UID. + * + * Copied from https://github.com/urbit/urbit/blob/137e4428f617c13f28ed31e520eff98d251ed3e9/pkg/interface/src/lib/util.js#L3 + */ +export function uid(): string { + let str = '0v'; + str += Math.ceil(Math.random() * 8) + '.'; + for (let i = 0; i < 5; i++) { + let _str = Math.ceil(Math.random() * 10000000).toString(32); + _str = ('00000' + _str).substr(-5, 5); + str += _str + '.'; + } + return str.slice(0, -1); +} \ No newline at end of file diff --git a/pkg/npm/http-api/test/default.test.ts b/pkg/npm/http-api/test/default.test.ts new file mode 100644 index 0000000000..719f10efbe --- /dev/null +++ b/pkg/npm/http-api/test/default.test.ts @@ -0,0 +1,8 @@ +import Urbit from '../src'; + +describe('blah', () => { + it('works', () => { + const connection = new Urbit('~sampel-palnet', '+code'); + expect(connection).toEqual(2); + }); +}); diff --git a/pkg/npm/http-api/tsconfig-cjs.json b/pkg/npm/http-api/tsconfig-cjs.json new file mode 100644 index 0000000000..ec2ee62835 --- /dev/null +++ b/pkg/npm/http-api/tsconfig-cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "CommonJS", + "outDir": "./dist/cjs" + }, +} \ No newline at end of file diff --git a/pkg/npm/http-api/tsconfig.json b/pkg/npm/http-api/tsconfig.json new file mode 100644 index 0000000000..b5703e6ed0 --- /dev/null +++ b/pkg/npm/http-api/tsconfig.json @@ -0,0 +1,18 @@ +{ + "include": ["src/**/*.ts"], + "exclude": ["node_modules", "dist", "@types"], + "compilerOptions": { + "outDir": "./dist/esm", + "module": "ES2020", + "noImplicitAny": true, + "target": "ES2020", + "pretty": true, + "moduleResolution": "node", + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "declaration": true, + "sourceMap": true, + "strict": false + // "lib": ["ES2020"], + } +} \ No newline at end of file diff --git a/pkg/npm/http-api/webpack.prod.js b/pkg/npm/http-api/webpack.prod.js new file mode 100644 index 0000000000..aab72b662f --- /dev/null +++ b/pkg/npm/http-api/webpack.prod.js @@ -0,0 +1,109 @@ +const path = require('path'); +const webpack = require('webpack'); + +const shared = { + mode: 'production', + entry: { + app: './src/index.ts' + }, + module: { + rules: [ + { + test: /\.(j|t)s$/, + use: { + loader: 'babel-loader', + options: { + presets: ['@babel/typescript'], + plugins: [ + '@babel/plugin-proposal-class-properties', + '@babel/plugin-proposal-object-rest-spread', + '@babel/plugin-proposal-optional-chaining', + ], + } + }, + exclude: /node_modules/ + } + ] + }, + resolve: { + extensions: ['.js', '.ts', '.ts'], + fallback: { + fs: false, + child_process: false, + util: require.resolve("util/"), + buffer: require.resolve('buffer/'), + assert: false, + http: require.resolve('stream-http'), + https: require.resolve('stream-http'), + stream: require.resolve('stream-browserify'), + zlib: require.resolve("browserify-zlib"), + } + }, + + optimization: { + minimize: false, + usedExports: true + } +}; + +const serverConfig = { + ...shared, + target: 'node', + output: { + filename: 'index.js', + path: path.resolve(__dirname, 'dist'), + library: 'Urbit', + libraryExport: 'default' + }, + plugins: [ + new webpack.ProvidePlugin({ + XMLHttpRequest: ['xmlhttprequest-ssl', 'XMLHttpRequest'], + EventSource: 'eventsource', + fetch: ['node-fetch', 'default'], + }), + ], +}; + +const browserConfig = { + ...shared, + target: 'web', + output: { + filename: 'browser.js', + path: path.resolve(__dirname, 'dist'), + library: 'Urbit', + libraryExport: 'default' + }, + plugins: [ + new webpack.ProvidePlugin({ + Buffer: 'buffer', + }), + ], +}; + + +const exampleBrowserConfig = { + ...shared, + mode: 'development', + entry: { + app: './src/example/browser.js' + }, + output: { + filename: 'browser.js', + path: path.resolve(__dirname, 'example'), + } +}; + +const exampleNodeConfig = { + ...shared, + mode: 'development', + target: 'node', + entry: { + app: './src/example/node.js' + }, + output: { + filename: 'node.js', + path: path.resolve(__dirname, 'example'), + } +}; + +module.exports = [ serverConfig, browserConfig, exampleBrowserConfig, exampleNodeConfig ]; \ No newline at end of file From 1b19a95fea42627a1006b3bd9271eeee42625f61 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Sun, 14 Feb 2021 14:11:27 -0800 Subject: [PATCH 02/27] interface: cleaning up imports --- pkg/interface/src/logic/api/base.ts | 18 +- pkg/interface/src/logic/api/contacts.ts | 11 +- pkg/interface/src/logic/api/global.ts | 4 +- pkg/interface/src/logic/api/graph.ts | 42 ++-- pkg/interface/src/logic/api/groups.ts | 12 +- pkg/interface/src/logic/api/hark.ts | 43 ++--- pkg/interface/src/logic/api/invite.ts | 6 +- pkg/interface/src/logic/api/launch.ts | 4 +- pkg/interface/src/logic/api/local.ts | 7 +- pkg/interface/src/logic/api/metadata.ts | 22 +-- pkg/interface/src/logic/api/s3.ts | 5 +- pkg/interface/src/logic/api/settings.ts | 56 +++--- .../src/logic/lib/BigIntOrderedMap.ts | 35 ++-- pkg/interface/src/logic/lib/OrderedMap.ts | 3 +- pkg/interface/src/logic/lib/bigInt.ts | 2 +- pkg/interface/src/logic/lib/group.ts | 22 +-- pkg/interface/src/logic/lib/hark.ts | 10 +- pkg/interface/src/logic/lib/notification.ts | 18 +- pkg/interface/src/logic/lib/post.ts | 4 +- pkg/interface/src/logic/lib/publish.ts | 47 +++-- .../src/logic/lib/relativePosition.tsx | 18 +- pkg/interface/src/logic/lib/tutorialModal.ts | 136 ++++++------- pkg/interface/src/logic/lib/useDrag.ts | 10 +- pkg/interface/src/logic/lib/useDropdown.ts | 14 +- pkg/interface/src/logic/lib/useHashLink.ts | 6 +- pkg/interface/src/logic/lib/useLazyScroll.ts | 12 +- .../src/logic/lib/useLocalStorageState.ts | 4 +- pkg/interface/src/logic/lib/useModal.tsx | 22 +-- .../src/logic/lib/useOutsideClick.ts | 15 +- .../src/logic/lib/usePreviousValue.ts | 6 +- pkg/interface/src/logic/lib/useQuery.ts | 6 +- pkg/interface/src/logic/lib/useS3.ts | 27 ++- .../logic/lib/useStatelessAsyncClickable.ts | 16 +- .../src/logic/lib/useWaitForProps.ts | 7 +- pkg/interface/src/logic/lib/util.ts | 172 +++++++++-------- pkg/interface/src/logic/lib/workspace.ts | 16 +- .../src/logic/reducers/contact-update.ts | 9 +- .../src/logic/reducers/group-update.ts | 13 +- .../src/logic/reducers/group-view.ts | 11 +- .../src/logic/reducers/hark-update.ts | 90 +++++---- .../src/logic/reducers/invite-update.ts | 5 +- .../src/logic/reducers/launch-update.ts | 3 +- .../src/logic/reducers/metadata-update.ts | 38 ++-- .../src/logic/reducers/settings-update.ts | 22 +-- pkg/interface/src/logic/state/local.tsx | 27 ++- pkg/interface/src/logic/store/base.ts | 4 +- pkg/interface/src/logic/store/store.ts | 15 +- pkg/interface/src/logic/store/type.ts | 17 +- pkg/interface/src/logic/subscription/base.ts | 16 +- .../src/logic/subscription/global.ts | 5 +- pkg/interface/src/types/cage.ts | 24 +-- pkg/interface/src/types/connection.ts | 1 - pkg/interface/src/types/contact-update.ts | 85 --------- pkg/interface/src/types/global.ts | 2 +- pkg/interface/src/types/graph-update.ts | 47 ----- pkg/interface/src/types/group-update.ts | 180 ------------------ pkg/interface/src/types/group-view.ts | 11 -- pkg/interface/src/types/hark-update.ts | 68 ------- pkg/interface/src/types/index.ts | 8 - pkg/interface/src/types/invite-update.ts | 68 ------- pkg/interface/src/types/launch-update.ts | 2 - pkg/interface/src/types/metadata-update.ts | 68 ------- pkg/interface/src/types/noun.ts | 49 ----- pkg/interface/src/types/s3-update.ts | 5 +- pkg/interface/src/types/settings.ts | 55 ------ pkg/interface/src/types/util.ts | 2 +- pkg/interface/src/types/workspace.ts | 2 - .../src/views/apps/chat/ChatResource.tsx | 20 +- .../views/apps/chat/components/ChatInput.tsx | 18 +- .../apps/chat/components/ChatMessage.tsx | 14 +- .../views/apps/chat/components/ChatWindow.tsx | 53 +++--- .../views/apps/launch/components/Groups.tsx | 26 ++- .../apps/launch/components/ModalButton.tsx | 9 +- .../src/views/apps/links/LinkResource.tsx | 37 ++-- .../src/views/apps/links/LinkWindow.tsx | 36 ++-- .../views/apps/links/components/LinkItem.tsx | 26 +-- .../apps/links/components/LinkSubmit.tsx | 30 +-- .../src/views/apps/notifications/graph.tsx | 123 ++++++------ .../src/views/apps/notifications/group.tsx | 44 ++--- .../src/views/apps/notifications/header.tsx | 34 ++-- .../src/views/apps/notifications/inbox.tsx | 76 ++++---- .../src/views/apps/notifications/invites.tsx | 71 ++----- .../src/views/apps/notifications/joining.tsx | 27 ++- .../src/views/apps/notifications/metadata.tsx | 32 ++-- .../views/apps/notifications/notification.tsx | 40 ++-- .../apps/notifications/notifications.tsx | 47 ++--- .../views/apps/notifications/preferences.tsx | 25 ++- .../apps/profile/components/EditProfile.tsx | 49 ++--- .../views/apps/profile/components/Profile.tsx | 53 +++--- .../apps/profile/components/SetStatus.tsx | 14 +- .../apps/profile/components/ViewProfile.tsx | 39 ++-- .../src/views/apps/profile/profile.tsx | 22 +-- .../views/apps/publish/PublishResource.tsx | 16 +- .../apps/publish/components/EditPost.tsx | 30 +-- .../publish/components/MarkdownEditor.tsx | 38 ++-- .../apps/publish/components/MarkdownField.tsx | 18 +- .../apps/publish/components/MetadataForm.tsx | 4 +- .../views/apps/publish/components/Note.tsx | 37 ++-- .../apps/publish/components/NoteForm.tsx | 13 +- .../publish/components/NoteNavigation.tsx | 30 +-- .../apps/publish/components/NotePreview.tsx | 10 +- .../apps/publish/components/NoteRoutes.tsx | 25 +-- .../apps/publish/components/Notebook.tsx | 19 +- .../apps/publish/components/NotebookPosts.tsx | 8 +- .../publish/components/NotebookRoutes.tsx | 26 ++- .../views/apps/publish/components/Writers.js | 4 +- .../apps/publish/components/new-post.tsx | 32 ++-- .../components/lib/BackgroundPicker.tsx | 30 ++- .../settings/components/lib/BucketList.tsx | 19 +- .../settings/components/lib/DisplayForm.tsx | 2 +- .../settings/components/lib/RemoteContent.tsx | 22 +-- .../apps/settings/components/lib/S3Form.tsx | 20 +- .../apps/settings/components/lib/Security.tsx | 6 +- .../src/views/apps/settings/settings.tsx | 25 ++- .../src/views/components/AsyncButton.tsx | 16 +- pkg/interface/src/views/components/Author.tsx | 14 +- pkg/interface/src/views/components/Body.tsx | 6 +- .../src/views/components/ChipInput.tsx | 38 ++-- .../src/views/components/ColorInput.tsx | 22 +-- .../src/views/components/CommentInput.tsx | 22 +-- .../src/views/components/CommentItem.tsx | 23 +-- .../src/views/components/Comments.tsx | 4 +- .../src/views/components/Dropdown.tsx | 29 +-- .../src/views/components/DropdownSearch.tsx | 45 ++--- .../src/views/components/ErrorBoundary.tsx | 4 +- .../src/views/components/FormError.tsx | 12 +- .../src/views/components/FormSubmit.tsx | 11 +- .../src/views/components/FormikOnBlur.tsx | 6 +- .../src/views/components/GroupLink.tsx | 24 +-- .../src/views/components/GroupSearch.tsx | 26 +-- .../src/views/components/HoverBox.tsx | 14 +- .../src/views/components/IconRadio.tsx | 71 +++---- .../src/views/components/ImageInput.tsx | 23 +-- .../src/views/components/Invite/Group.tsx | 20 +- .../components/Invite/InviteSkeleton.tsx | 10 +- .../views/components/Invite/JoinSkeleton.tsx | 11 +- .../src/views/components/Invite/index.tsx | 46 +++-- .../src/views/components/Loading.tsx | 8 +- .../src/views/components/MentionText.tsx | 2 +- .../src/views/components/ModalOverlay.tsx | 12 +- .../src/views/components/OverlaySigil.tsx | 4 +- pkg/interface/src/views/components/Portal.tsx | 8 +- .../src/views/components/ProfileOverlay.tsx | 9 +- .../src/views/components/RemoteContent.tsx | 14 +- .../src/views/components/ShipSearch.tsx | 55 +++--- .../views/components/StatelessAsyncAction.tsx | 21 +- .../views/components/StatelessAsyncButton.tsx | 27 ++- .../views/components/StatelessAsyncToggle.tsx | 21 +- .../src/views/components/StatusBarItem.tsx | 6 +- .../src/views/components/SubmitDragger.tsx | 11 +- pkg/interface/src/views/components/Tab.tsx | 8 +- .../src/views/components/Triangle.tsx | 36 ++-- .../src/views/components/UnjoinedResource.tsx | 30 +-- .../src/views/components/VirtualScroller.tsx | 48 +++-- .../src/views/components/leap/Omnibox.tsx | 53 +++--- .../src/views/components/useTutorialModal.tsx | 8 +- pkg/interface/src/views/components/withS3.tsx | 6 +- .../ChannelPermissions.tsx | 82 ++++---- .../ChannelPopoverRoutes/Details.tsx | 33 ++-- .../ChannelPopoverRoutes/Notifications.tsx | 19 +- .../ChannelPopoverRoutes/Sidebar.tsx | 21 +- .../components/ChannelPopoverRoutes/index.tsx | 42 ++-- .../components/ChannelWritePerms.tsx | 16 +- .../landscape/components/DeleteGroup.tsx | 36 ++-- .../components/GroupSettings/Admin.tsx | 48 +++-- .../components/GroupSettings/Channels.tsx | 24 +-- .../GroupSettings/GroupSettings.tsx | 29 +-- .../components/GroupSettings/Personal.tsx | 33 +--- .../landscape/components/GroupSummary.tsx | 22 ++- .../landscape/components/GroupSwitcher.tsx | 9 +- .../landscape/components/GroupifyForm.tsx | 23 +-- .../views/landscape/components/GroupsPane.tsx | 73 ++++--- .../landscape/components/InvitePopover.tsx | 37 ++-- .../views/landscape/components/JoinGroup.tsx | 71 ++++--- .../landscape/components/MetadataIcon.tsx | 10 +- .../views/landscape/components/NewChannel.tsx | 15 +- .../views/landscape/components/NewGroup.tsx | 43 +++-- .../landscape/components/Participants.tsx | 16 +- .../landscape/components/PopoverRoutes.tsx | 65 +++---- .../views/landscape/components/Resource.tsx | 43 ++--- .../landscape/components/ResourceSkeleton.tsx | 59 +++--- .../landscape/components/Sidebar/Apps.tsx | 11 +- .../landscape/components/Sidebar/Sidebar.tsx | 8 +- .../components/Sidebar/SidebarItem.tsx | 62 +++--- .../components/Sidebar/SidebarList.tsx | 24 +-- .../components/Sidebar/SidebarListHeader.tsx | 55 +++--- .../landscape/components/Sidebar/types.ts | 14 +- .../landscape/components/SidebarItem.tsx | 14 +- .../views/landscape/components/Skeleton.tsx | 19 +- .../landscape/components/TutorialModal.tsx | 67 ++++--- pkg/interface/src/views/landscape/index.tsx | 38 ++-- 191 files changed, 2245 insertions(+), 3029 deletions(-) delete mode 100644 pkg/interface/src/types/contact-update.ts delete mode 100644 pkg/interface/src/types/graph-update.ts delete mode 100644 pkg/interface/src/types/group-update.ts delete mode 100644 pkg/interface/src/types/group-view.ts delete mode 100644 pkg/interface/src/types/hark-update.ts delete mode 100644 pkg/interface/src/types/invite-update.ts delete mode 100644 pkg/interface/src/types/metadata-update.ts delete mode 100644 pkg/interface/src/types/noun.ts delete mode 100644 pkg/interface/src/types/settings.ts diff --git a/pkg/interface/src/logic/api/base.ts b/pkg/interface/src/logic/api/base.ts index 085c4cc326..01b70fabc2 100644 --- a/pkg/interface/src/logic/api/base.ts +++ b/pkg/interface/src/logic/api/base.ts @@ -1,6 +1,5 @@ -import _ from "lodash"; -import { uuid } from "../lib/util"; -import { Patp, Path } from "~/types/noun"; +import _ from 'lodash'; +import { Patp, Path } from '@urbit/api'; import BaseStore from '../store/base'; export default class BaseApi<S extends object = {}> { @@ -26,8 +25,8 @@ export default class BaseApi<S extends object = {}> { data: event, from: { ship, - path, - }, + path + } }); }, (qui) => { @@ -50,8 +49,12 @@ export default class BaseApi<S extends object = {}> { appl, mark, data, - (json) => { resolve(json); }, - (err) => { reject(err); } + (json) => { + resolve(json); +}, + (err) => { + reject(err); +} ); }); } @@ -69,5 +72,4 @@ export default class BaseApi<S extends object = {}> { return res.json(); } - } diff --git a/pkg/interface/src/logic/api/contacts.ts b/pkg/interface/src/logic/api/contacts.ts index ca1f0a338a..ae6a6972a0 100644 --- a/pkg/interface/src/logic/api/contacts.ts +++ b/pkg/interface/src/logic/api/contacts.ts @@ -1,8 +1,7 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import { Patp, Path, Enc } from '~/types/noun'; -import { Contact, ContactEdit } from '~/types/contact-update'; -import { GroupPolicy, Resource } from '~/types/group-update'; +import { Patp } from '@urbit/api'; +import { ContactEdit } from '@urbit/api/contacts'; export default class ContactsApi extends BaseApi<StoreState> { add(ship: Patp, contact: any) { @@ -31,7 +30,7 @@ export default class ContactsApi extends BaseApi<StoreState> { ship, 'edit-field': editField, timestamp: Date.now() - }, + } }); } @@ -62,7 +61,7 @@ export default class ContactsApi extends BaseApi<StoreState> { return this.action( 'contact-push-hook', 'contact-share', - { share: recipient }, + { share: recipient } ); } @@ -85,7 +84,7 @@ export default class ContactsApi extends BaseApi<StoreState> { } private storeAction(action: any): Promise<any> { - return this.action('contact-store', 'contact-update', action) + return this.action('contact-store', 'contact-update', action); } private viewAction(threadName: string, action: any) { diff --git a/pkg/interface/src/logic/api/global.ts b/pkg/interface/src/logic/api/global.ts index 8ed02020b4..cc7c1291c3 100644 --- a/pkg/interface/src/logic/api/global.ts +++ b/pkg/interface/src/logic/api/global.ts @@ -1,4 +1,4 @@ -import { Patp } from '~/types/noun'; +import { Patp } from '@urbit/api'; import BaseApi from './base'; import { StoreState } from '../store/type'; import GlobalStore from '../store/store'; @@ -10,7 +10,7 @@ import GroupsApi from './groups'; import LaunchApi from './launch'; import GraphApi from './graph'; import S3Api from './s3'; -import {HarkApi} from './hark'; +import { HarkApi } from './hark'; import SettingsApi from './settings'; export default class GlobalApi extends BaseApi<StoreState> { diff --git a/pkg/interface/src/logic/api/graph.ts b/pkg/interface/src/logic/api/graph.ts index 0606a2c1e8..58b330da1e 100644 --- a/pkg/interface/src/logic/api/graph.ts +++ b/pkg/interface/src/logic/api/graph.ts @@ -1,14 +1,14 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import { Patp, Path, PatpNoSig } from '~/types/noun'; +import { Patp, Path } from '@urbit/api'; import _ from 'lodash'; -import {makeResource, resourceFromPath} from '../lib/group'; -import {GroupPolicy, Enc, Post, NodeMap, Content, Resource} from '~/types'; +import { makeResource, resourceFromPath } from '../lib/group'; +import { GroupPolicy, Enc, Post, Content } from '@urbit/api'; import { numToUd, unixToDa, decToUd, deSig, resourceAsPath } from '~/logic/lib/util'; export const createBlankNodeWithChildPost = ( - parentIndex: string = '', - childIndex: string = '', + parentIndex = '', + childIndex = '', contents: Content[] ) => { const date = unixToDa(Date.now()).toString(); @@ -37,11 +37,11 @@ export const createBlankNodeWithChildPost = ( signatures: [] }, children: childGraph - }; + }; }; function markPending(nodes: any) { - _.forEach(nodes, node => { + _.forEach(nodes, (node) => { node.post.author = deSig(node.post.author); node.post.pending = true; markPending(node.children || {}); @@ -50,8 +50,8 @@ function markPending(nodes: any) { export const createPost = ( contents: Content[], - parentIndex: string = '', - childIndex:string = 'DATE_PLACEHOLDER' + parentIndex = '', + childIndex = 'DATE_PLACEHOLDER' ) => { if (childIndex === 'DATE_PLACEHOLDER') { childIndex = unixToDa(Date.now()).toString(); @@ -80,11 +80,10 @@ function moduleToMark(mod: string): string | undefined { } export default class GraphApi extends BaseApi<StoreState> { - joiningGraphs = new Set<string>(); private storeAction(action: any): Promise<any> { - return this.action('graph-store', 'graph-update', action) + return this.action('graph-store', 'graph-update', action); } private viewAction(threadName: string, action: any) { @@ -106,12 +105,12 @@ export default class GraphApi extends BaseApi<StoreState> { const resource = makeResource(`~${window.ship}`, name); return this.viewAction('graph-create', { - "create": { + 'create': { resource, title, description, associated, - "module": mod, + 'module': mod, mark: moduleToMark(mod) } }); @@ -127,12 +126,12 @@ export default class GraphApi extends BaseApi<StoreState> { const resource = makeResource(`~${window.ship}`, name); return this.viewAction('graph-create', { - "create": { + 'create': { resource, title, description, associated: { policy }, - "module": mod, + 'module': mod, mark: moduleToMark(mod) } }); @@ -148,9 +147,9 @@ export default class GraphApi extends BaseApi<StoreState> { return this.viewAction('graph-join', { join: { resource, - ship, + ship } - }).then(res => { + }).then((res) => { this.joiningGraphs.delete(rid); return res; }); @@ -159,7 +158,7 @@ export default class GraphApi extends BaseApi<StoreState> { deleteGraph(name: string) { const resource = makeResource(`~${window.ship}`, name); return this.viewAction('graph-delete', { - "delete": { + 'delete': { resource } }); @@ -168,7 +167,7 @@ export default class GraphApi extends BaseApi<StoreState> { leaveGraph(ship: Patp, name: string) { const resource = makeResource(ship, name); return this.viewAction('graph-leave', { - "leave": { + 'leave': { resource } }); @@ -203,7 +202,7 @@ export default class GraphApi extends BaseApi<StoreState> { } addPost(ship: Patp, name: string, post: Post) { - let nodes = {}; + const nodes = {}; nodes[post.index] = { post, children: null @@ -212,7 +211,7 @@ export default class GraphApi extends BaseApi<StoreState> { } addNode(ship: Patp, name: string, node: Object) { - let nodes = {}; + const nodes = {}; nodes[node.post.index] = node; return this.addNodes(ship, name, nodes); @@ -300,7 +299,6 @@ export default class GraphApi extends BaseApi<StoreState> { this.store.handleEvent({ data }); } - getGraphSubset(ship: string, resource: string, start: string, end: string) { return this.scry<any>( 'graph-store', diff --git a/pkg/interface/src/logic/api/groups.ts b/pkg/interface/src/logic/api/groups.ts index de2f4b488f..f0bab91f0b 100644 --- a/pkg/interface/src/logic/api/groups.ts +++ b/pkg/interface/src/logic/api/groups.ts @@ -1,14 +1,14 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import { Path, Patp, Enc } from '~/types/noun'; +import { Path, Patp, Enc } from '@urbit/api'; import { GroupAction, GroupPolicy, Resource, Tag, - GroupPolicyDiff, -} from '~/types/group-update'; -import {makeResource} from '../lib/group'; + GroupPolicyDiff +} from '@urbit/api/groups'; +import { makeResource } from '../lib/group'; export default class GroupsApi extends BaseApi<StoreState> { remove(resource: Resource, ships: Patp[]) { @@ -38,7 +38,7 @@ export default class GroupsApi extends BaseApi<StoreState> { join(ship: string, name: string) { const resource = makeResource(ship, name); - return this.viewAction({ join: { resource, ship }}); + return this.viewAction({ join: { resource, ship } }); } create(name: string, policy: Enc<GroupPolicy>, title: string, description: string) { @@ -76,7 +76,6 @@ export default class GroupsApi extends BaseApi<StoreState> { description } }); - } private proxyAction(action: GroupAction) { @@ -93,6 +92,5 @@ export default class GroupsApi extends BaseApi<StoreState> { private viewAction(action: any) { return this.action('group-view', 'group-view-action', action); - } } diff --git a/pkg/interface/src/logic/api/hark.ts b/pkg/interface/src/logic/api/hark.ts index 4dadeb1690..b807201a1a 100644 --- a/pkg/interface/src/logic/api/hark.ts +++ b/pkg/interface/src/logic/api/hark.ts @@ -1,24 +1,23 @@ -import BaseApi from "./base"; -import { StoreState } from "../store/type"; -import { dateToDa, decToUd } from "../lib/util"; -import {NotifIndex, IndexedNotification, Association, GraphNotifDescription} from "~/types"; +import BaseApi from './base'; +import { StoreState } from '../store/type'; +import { dateToDa, decToUd } from '../lib/util'; +import { NotifIndex, IndexedNotification, Association, GraphNotifDescription } from '@urbit/api'; import { BigInteger } from 'big-integer'; -import {getParentIndex} from "../lib/notification"; +import { getParentIndex } from '../lib/notification'; export class HarkApi extends BaseApi<StoreState> { private harkAction(action: any): Promise<any> { - return this.action("hark-store", "hark-action", action); + return this.action('hark-store', 'hark-action', action); } private graphHookAction(action: any) { - return this.action("hark-graph-hook", "hark-graph-hook-action", action); + return this.action('hark-graph-hook', 'hark-graph-hook-action', action); } private groupHookAction(action: any) { - return this.action("hark-group-hook", "hark-group-hook-action", action); + return this.action('hark-group-hook', 'hark-group-hook-action', action); } - private actOnNotification(frond: string, intTime: BigInteger, index: NotifIndex) { const time = decToUd(intTime.toString()); return this.harkAction({ @@ -74,12 +73,10 @@ export class HarkApi extends BaseApi<StoreState> { module: association.metadata.module, description, index: parent - } }, + } } }); } - - markEachAsRead(association: Association, parent: string, child: string, description: GraphNotifDescription, mod: string) { return this.harkAction({ 'read-each': { @@ -116,7 +113,7 @@ export class HarkApi extends BaseApi<StoreState> { mute(notif: IndexedNotification) { if('graph' in notif.index && 'graph' in notif.notification.contents) { const { index } = notif; - const parentIndex = getParentIndex(index.graph, notif.notification.contents.graph) + const parentIndex = getParentIndex(index.graph, notif.notification.contents.graph); if(!parentIndex) { return Promise.resolve(); } @@ -132,7 +129,7 @@ export class HarkApi extends BaseApi<StoreState> { unmute(notif: IndexedNotification) { if('graph' in notif.index && 'graph' in notif.notification.contents) { const { index } = notif; - const parentIndex = getParentIndex(index.graph, notif.notification.contents.graph) + const parentIndex = getParentIndex(index.graph, notif.notification.contents.graph); if(!parentIndex) { return Promise.resolve(); } @@ -147,7 +144,7 @@ export class HarkApi extends BaseApi<StoreState> { ignoreGroup(group: string) { return this.groupHookAction({ ignore: group - }) + }); } ignoreGraph(graph: string, index: string) { @@ -156,13 +153,13 @@ export class HarkApi extends BaseApi<StoreState> { graph, index } - }) + }); } listenGroup(group: string) { return this.groupHookAction({ listen: group - }) + }); } listenGraph(graph: string, index: string) { @@ -171,7 +168,7 @@ export class HarkApi extends BaseApi<StoreState> { graph, index } - }) + }); } async getMore(): Promise<boolean> { @@ -183,16 +180,16 @@ export class HarkApi extends BaseApi<StoreState> { async getSubset(offset:number, count:number, isArchive: boolean) { const where = isArchive ? 'archive' : 'inbox'; - const data = await this.scry("hark-store", `/recent/${where}/${offset}/${count}`); + const data = await this.scry('hark-store', `/recent/${where}/${offset}/${count}`); this.store.handleEvent({ data }); } async getTimeSubset(start?: Date, end?: Date) { - const s = start ? dateToDa(start) : "-"; - const e = end ? dateToDa(end) : "-"; - const result = await this.scry("hark-hook", `/recent/${s}/${e}`); + const s = start ? dateToDa(start) : '-'; + const e = end ? dateToDa(end) : '-'; + const result = await this.scry('hark-hook', `/recent/${s}/${e}`); this.store.handleEvent({ - data: result, + data: result }); } } diff --git a/pkg/interface/src/logic/api/invite.ts b/pkg/interface/src/logic/api/invite.ts index 89a7307688..dc390d12d1 100644 --- a/pkg/interface/src/logic/api/invite.ts +++ b/pkg/interface/src/logic/api/invite.ts @@ -1,6 +1,6 @@ -import BaseApi from "./base"; -import { StoreState } from "../store/type"; -import { Serial, Path } from "~/types/noun"; +import BaseApi from './base'; +import { StoreState } from '../store/type'; +import { Serial, Path } from '@urbit/api'; export default class InviteApi extends BaseApi<StoreState> { accept(app: string, uid: Serial) { diff --git a/pkg/interface/src/logic/api/launch.ts b/pkg/interface/src/logic/api/launch.ts index ce0a09a1c0..3bba3b3cc0 100644 --- a/pkg/interface/src/logic/api/launch.ts +++ b/pkg/interface/src/logic/api/launch.ts @@ -2,7 +2,7 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; export default class LaunchApi extends BaseApi<StoreState> { - add(name: string, tile = { basic : { title: '', linkedUrl: '', iconUrl: '' }}) { + add(name: string, tile = { basic : { title: '', linkedUrl: '', iconUrl: '' } }) { return this.launchAction({ add: { name, tile } }); } @@ -15,7 +15,7 @@ export default class LaunchApi extends BaseApi<StoreState> { } changeIsShown(name: string, isShown = true) { - return this.launchAction({ 'change-is-shown': { name, isShown }}); + return this.launchAction({ 'change-is-shown': { name, isShown } }); } weather(location: string) { diff --git a/pkg/interface/src/logic/api/local.ts b/pkg/interface/src/logic/api/local.ts index 8446f27ce3..e5bad49a3f 100644 --- a/pkg/interface/src/logic/api/local.ts +++ b/pkg/interface/src/logic/api/local.ts @@ -1,9 +1,9 @@ -import BaseApi from "./base"; -import { StoreState } from "../store/type"; +import BaseApi from './base'; +import { StoreState } from '../store/type'; export default class LocalApi extends BaseApi<StoreState> { getBaseHash() { - this.scry<string>('file-server', '/clay/base/hash').then(baseHash => { + this.scry<string>('file-server', '/clay/base/hash').then((baseHash) => { this.store.handleEvent({ data: { local: { baseHash } } }); }); } @@ -11,5 +11,4 @@ export default class LocalApi extends BaseApi<StoreState> { dehydrate() { this.store.dehydrate(); } - } diff --git a/pkg/interface/src/logic/api/metadata.ts b/pkg/interface/src/logic/api/metadata.ts index c4e20ae2f1..c2d388dfc3 100644 --- a/pkg/interface/src/logic/api/metadata.ts +++ b/pkg/interface/src/logic/api/metadata.ts @@ -1,12 +1,10 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import { Path, Patp, Association, Metadata, MetadataUpdatePreview } from '~/types'; -import {uxToHex} from '../lib/util'; +import { Path, Patp, Association, Metadata, MetadataUpdatePreview } from '@urbit/api'; +import { uxToHex } from '../lib/util'; export default class MetadataApi extends BaseApi<StoreState> { - - metadataAdd(appName: string, resource: Path, group: Path, title: string, description: string, dateCreated: string, color: string, moduleName: string) { const creator = `~${this.ship}`; return this.metadataAction({ @@ -44,9 +42,9 @@ export default class MetadataApi extends BaseApi<StoreState> { } update(association: Association, newMetadata: Partial<Metadata>) { - const metadata = {...association.metadata, ...newMetadata }; + const metadata = { ...association.metadata, ...newMetadata }; metadata.color = uxToHex(metadata.color); - return this.metadataAction({ + return this.metadataAction({ add: { group: association.group, resource: { @@ -69,10 +67,10 @@ export default class MetadataApi extends BaseApi<StoreState> { } done = true; tempChannel.delete(); - reject(new Error("offline")) + reject(new Error('offline')); }, 15000); - tempChannel.subscribe(window.ship, "metadata-pull-hook", `/preview${group}`, + tempChannel.subscribe(window.ship, 'metadata-pull-hook', `/preview${group}`, (err) => { console.error(err); reject(err); @@ -88,24 +86,22 @@ export default class MetadataApi extends BaseApi<StoreState> { } else { done = true; tempChannel.delete(); - reject(new Error("no-permissions")); + reject(new Error('no-permissions')); } }, (quit) => { tempChannel.delete(); if(!done) { - reject(new Error("offline")) + reject(new Error('offline')); } }, (a) => { console.log(a); } ); - }) + }); } - - private metadataAction(data) { return this.action('metadata-push-hook', 'metadata-update', data); } diff --git a/pkg/interface/src/logic/api/s3.ts b/pkg/interface/src/logic/api/s3.ts index 834cc6ffe1..1d775ef775 100644 --- a/pkg/interface/src/logic/api/s3.ts +++ b/pkg/interface/src/logic/api/s3.ts @@ -1,10 +1,8 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import {S3Update} from '../../types/s3-update'; - +import { S3Update } from '../../types/s3-update'; export default class S3Api extends BaseApi<StoreState> { - setCurrentBucket(bucket: string) { return this.s3Action({ 'set-current-bucket': bucket }); } @@ -32,6 +30,5 @@ export default class S3Api extends BaseApi<StoreState> { private s3Action(data: any) { return this.action('s3-store', 's3-action', data); } - } diff --git a/pkg/interface/src/logic/api/settings.ts b/pkg/interface/src/logic/api/settings.ts index cd0cd736ff..3f98d801ca 100644 --- a/pkg/interface/src/logic/api/settings.ts +++ b/pkg/interface/src/logic/api/settings.ts @@ -1,13 +1,9 @@ import BaseApi from './base'; import { StoreState } from '../store/type'; -import { - SettingsUpdate, - SettingsData, - Key, +import { Key, Value, - Bucket, -} from '~/types/settings'; - + Bucket +} from '@urbit/api/settings'; export default class SettingsApi extends BaseApi<StoreState> { private storeAction(action: SettingsEvent): Promise<any> { @@ -16,59 +12,59 @@ export default class SettingsApi extends BaseApi<StoreState> { putBucket(key: Key, bucket: Bucket) { this.storeAction({ - "put-bucket": { - "bucket-key": key, - "bucket": bucket, + 'put-bucket': { + 'bucket-key': key, + 'bucket': bucket } }); } delBucket(key: Key) { this.storeAction({ - "del-bucket": { - "bucket-key": key, + 'del-bucket': { + 'bucket-key': key } }); } putEntry(buc: Key, key: Key, val: Value) { return this.storeAction({ - "put-entry": { - "bucket-key": buc, - "entry-key": key, - "value": val, + 'put-entry': { + 'bucket-key': buc, + 'entry-key': key, + 'value': val } }); } delEntry(buc: Key, key: Key) { this.storeAction({ - "put-entry": { - "bucket-key": buc, - "entry-key": key, + 'put-entry': { + 'bucket-key': buc, + 'entry-key': key } }); } async getAll() { - const data = await this.scry("settings-store", "/all"); - this.store.handleEvent({data: {"settings-data": data.all}}); + const data = await this.scry('settings-store', '/all'); + this.store.handleEvent({ data: { 'settings-data': data.all } }); } async getBucket(bucket: Key) { const data = await this.scry('settings-store', `/bucket/${bucket}`); - this.store.handleEvent({data: {"settings-data": { - "bucket-key": bucket, - "bucket": data.bucket, - }}}); + this.store.handleEvent({ data: { 'settings-data': { + 'bucket-key': bucket, + 'bucket': data.bucket + } } }); } async getEntry(bucket: Key, entry: Key) { const data = await this.scry('settings-store', `/entry/${bucket}/${entry}`); - this.store.handleEvent({data: {"settings-data": { - "bucket-key": bucket, - "entry-key": entry, - "entry": data.entry, - }}}); + this.store.handleEvent({ data: { 'settings-data': { + 'bucket-key': bucket, + 'entry-key': entry, + 'entry': data.entry + } } }); } } diff --git a/pkg/interface/src/logic/lib/BigIntOrderedMap.ts b/pkg/interface/src/logic/lib/BigIntOrderedMap.ts index 069d520020..21fc1c8cac 100644 --- a/pkg/interface/src/logic/lib/BigIntOrderedMap.ts +++ b/pkg/interface/src/logic/lib/BigIntOrderedMap.ts @@ -1,4 +1,4 @@ -import bigInt, { BigInteger } from "big-integer"; +import bigInt, { BigInteger } from 'big-integer'; interface NonemptyNode<V> { n: [BigInteger, V]; @@ -14,7 +14,7 @@ type MapNode<V> = NonemptyNode<V> | null; */ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { private root: MapNode<V> = null; - size: number = 0; + size = 0; constructor(initial: [BigInteger, V][] = []) { initial.forEach(([key, val]) => { @@ -48,13 +48,12 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { * Put an item by a key */ set(key: BigInteger, value: V): void { - const inner = (node: MapNode<V>) => { if (!node) { return { n: [key, value], l: null, - r: null, + r: null }; } const [k] = node.n; @@ -62,22 +61,22 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { this.size--; return { ...node, - n: [k, value], + n: [k, value] }; } if (key.gt(k)) { const l = inner(node.l); if (!l) { - throw new Error("invariant violation"); + throw new Error('invariant violation'); } return { ...node, - l, + l }; } const r = inner(node.r); if (!r) { - throw new Error("invariant violation"); + throw new Error('invariant violation'); } return { ...node, r }; @@ -133,8 +132,8 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { bool, { ...node, - l, - }, + l + } ]; } @@ -143,8 +142,8 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { bool, { ...node, - r, - }, + r + } ]; }; const [ret, newRoot] = inner(this.root); @@ -165,12 +164,12 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { } return { ...node.l, - r: inner(node.r), + r: inner(node.r) }; }; return inner(nod); } - + peekLargest(): [BigInteger, V] | undefined { const inner = (node: MapNode<V>) => { if(!node) { @@ -180,7 +179,7 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { return inner(node.l); } return node.n; - } + }; return inner(this.root); } @@ -193,7 +192,7 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { return inner(node.r); } return node.n; - } + }; return inner(this.root); } @@ -208,7 +207,7 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { } [Symbol.iterator](): IterableIterator<[BigInteger, V]> { - let result: [BigInteger, V][] = []; + const result: [BigInteger, V][] = []; const inner = (node: MapNode<V>) => { if (!node) { return; @@ -227,7 +226,7 @@ export class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { return { value: result[idx++], done: false }; } return { done: true, value: null }; - }, + } }; } } diff --git a/pkg/interface/src/logic/lib/OrderedMap.ts b/pkg/interface/src/logic/lib/OrderedMap.ts index d66346ff61..91ec52b783 100644 --- a/pkg/interface/src/logic/lib/OrderedMap.ts +++ b/pkg/interface/src/logic/lib/OrderedMap.ts @@ -1,7 +1,6 @@ export class OrderedMap<V> extends Map<number, V> implements Iterable<[number, V]> { - [Symbol.iterator](): IterableIterator<[number, V]> { const sorted = Array.from(super[Symbol.iterator]()).sort( ([a], [b]) => b - a @@ -15,7 +14,7 @@ export class OrderedMap<V> extends Map<number, V> } else { return { done: true, value: null }; } - }, + } }; } } diff --git a/pkg/interface/src/logic/lib/bigInt.ts b/pkg/interface/src/logic/lib/bigInt.ts index ecc6dda0af..01da28b455 100644 --- a/pkg/interface/src/logic/lib/bigInt.ts +++ b/pkg/interface/src/logic/lib/bigInt.ts @@ -1,4 +1,4 @@ -import bigInt, { BigInteger } from "big-integer"; +import bigInt, { BigInteger } from 'big-integer'; export function max(a: BigInteger, b: BigInteger) { return a.gt(b) ? a : b; diff --git a/pkg/interface/src/logic/lib/group.ts b/pkg/interface/src/logic/lib/group.ts index edc525d89b..2eb81e015b 100644 --- a/pkg/interface/src/logic/lib/group.ts +++ b/pkg/interface/src/logic/lib/group.ts @@ -1,7 +1,7 @@ -import _ from "lodash"; -import { roleTags, RoleTags, Group, Resource } from "~/types/group-update"; -import { PatpNoSig, Path } from "~/types/noun"; -import {deSig} from "./util"; +import _ from 'lodash'; +import { roleTags, RoleTags, Group, Resource } from '@urbit/api/groups'; +import { PatpNoSig, Path } from '@urbit/api'; +import { deSig } from './util'; export function roleForShip( group: Group, @@ -14,7 +14,7 @@ export function roleForShip( } export function resourceFromPath(path: Path): Resource { - const [, , ship, name] = path.split("/"); + const [, , ship, name] = path.split('/'); return { ship, name }; } @@ -25,7 +25,7 @@ export function makeResource(ship: string, name: string) { export function isWriter(group: Group, resource: string) { const writers: Set<string> | undefined = _.get( group, - ["tags", "graph", resource, "writers"], + ['tags', 'graph', resource, 'writers'], undefined ); const admins = group?.tags?.role?.admin ?? new Set(); @@ -36,18 +36,18 @@ export function isWriter(group: Group, resource: string) { } } -export function isChannelAdmin(group: Group, resource: string, ship: string = `~${window.ship}`) { +export function isChannelAdmin(group: Group, resource: string, ship = `~${window.ship}`) { const role = roleForShip(group, ship.slice(1)); return ( isHost(resource, ship) || - role === "admin" || - role === "moderator" + role === 'admin' || + role === 'moderator' ); } -export function isHost(resource: string, ship: string = `~${window.ship}`) { - const [, , host] = resource.split("/"); +export function isHost(resource: string, ship = `~${window.ship}`) { + const [, , host] = resource.split('/'); return ship === host; } diff --git a/pkg/interface/src/logic/lib/hark.ts b/pkg/interface/src/logic/lib/hark.ts index ee5ecd7618..b65a09603d 100644 --- a/pkg/interface/src/logic/lib/hark.ts +++ b/pkg/interface/src/logic/lib/hark.ts @@ -1,6 +1,6 @@ -import bigInt, { BigInteger } from "big-integer"; -import f from "lodash/fp"; -import { Unreads } from "~/types"; +import bigInt, { BigInteger } from 'big-integer'; +import f from 'lodash/fp'; +import { Unreads } from '@urbit/api'; export function getLastSeen( unreads: Unreads, @@ -8,10 +8,10 @@ export function getLastSeen( index: string ): BigInteger | undefined { const lastSeenIdx = unreads.graph?.[path]?.[index]?.unreads; - if (!(typeof lastSeenIdx === "string")) { + if (!(typeof lastSeenIdx === 'string')) { return bigInt.zero; } - return f.flow(f.split("/"), f.last, (x) => (!!x ? bigInt(x) : undefined))( + return f.flow(f.split('/'), f.last, x => (x ? bigInt(x) : undefined))( lastSeenIdx ); } diff --git a/pkg/interface/src/logic/lib/notification.ts b/pkg/interface/src/logic/lib/notification.ts index 87288d83d2..bd2979f409 100644 --- a/pkg/interface/src/logic/lib/notification.ts +++ b/pkg/interface/src/logic/lib/notification.ts @@ -1,19 +1,19 @@ -import { GraphNotifIndex, GraphNotificationContents } from "~/types"; +import { GraphNotifIndex, GraphNotificationContents } from '@urbit/api'; export function getParentIndex( idx: GraphNotifIndex, contents: GraphNotificationContents ) { - const origIndex = contents[0].index.slice(1).split("/"); - const ret = (i: string[]) => `/${i.join("/")}`; + const origIndex = contents[0].index.slice(1).split('/'); + const ret = (i: string[]) => `/${i.join('/')}`; switch (idx.description) { - case "link": - return "/"; - case "comment": + case 'link': + return '/'; + case 'comment': return ret(origIndex.slice(0, 1)); - case "note": - return "/"; - case "mention": + case 'note': + return '/'; + case 'mention': return undefined; default: return undefined; diff --git a/pkg/interface/src/logic/lib/post.ts b/pkg/interface/src/logic/lib/post.ts index 1a311de55c..397563283a 100644 --- a/pkg/interface/src/logic/lib/post.ts +++ b/pkg/interface/src/logic/lib/post.ts @@ -1,4 +1,4 @@ -import { Post, GraphNode } from "~/types"; +import { Post, GraphNode } from '@urbit/api'; export const buntPost = (): Post => ({ author: '', @@ -10,7 +10,7 @@ export const buntPost = (): Post => ({ }); export function makeNodeMap(posts: Post[]): Record<string, GraphNode> { - let nodes = {}; + const nodes = {}; posts.forEach((p) => { nodes[p.index] = { children: { empty: null }, post: p }; }); diff --git a/pkg/interface/src/logic/lib/publish.ts b/pkg/interface/src/logic/lib/publish.ts index 10c64aecf3..ce616b3cf5 100644 --- a/pkg/interface/src/logic/lib/publish.ts +++ b/pkg/interface/src/logic/lib/publish.ts @@ -1,8 +1,8 @@ -import { Post, GraphNode, TextContent, Graph, NodeMap } from "~/types"; +import { Post, GraphNode, TextContent, Graph, NodeMap } from '@urbit/api'; import { buntPost } from '~/logic/lib/post'; -import { unixToDa } from "~/logic/lib/util"; -import {BigIntOrderedMap} from "./BigIntOrderedMap"; -import bigInt, {BigInteger} from 'big-integer'; +import { unixToDa } from '~/logic/lib/util'; +import { BigIntOrderedMap } from './BigIntOrderedMap'; +import bigInt, { BigInteger } from 'big-integer'; export function newPost( title: string, @@ -12,20 +12,20 @@ export function newPost( const nowDa = unixToDa(now); const root: Post = { author: `~${window.ship}`, - index: "/" + nowDa.toString(), - "time-sent": now, + index: '/' + nowDa.toString(), + 'time-sent': now, contents: [], hash: null, - signatures: [], + signatures: [] }; - const revContainer: Post = { ...root, index: root.index + "/1" }; - const commentsContainer = { ...root, index: root.index + "/2" }; + const revContainer: Post = { ...root, index: root.index + '/1' }; + const commentsContainer = { ...root, index: root.index + '/2' }; const firstRevision: Post = { ...revContainer, - index: revContainer.index + "/1", - contents: [{ text: title }, { text: body }], + index: revContainer.index + '/1', + contents: [{ text: title }, { text: body }] }; const nodes = { @@ -37,16 +37,16 @@ export function newPost( children: { 1: { post: firstRevision, - children: null, - }, - }, + children: null + } + } }, 2: { post: commentsContainer, children: null - }, - }, - }, + } + } + } }; return [nowDa, nodes]; @@ -57,15 +57,15 @@ export function editPost(rev: number, noteId: BigInteger, title: string, body: s const newRev: Post = { author: `~${window.ship}`, index: `/${noteId.toString()}/1/${rev}`, - "time-sent": now, + 'time-sent': now, contents: [{ text: title }, { text: body }], hash: null, - signatures: [], + signatures: [] }; const nodes = { [newRev.index]: { post: newRev, - children: null + children: null } }; @@ -74,7 +74,7 @@ export function editPost(rev: number, noteId: BigInteger, title: string, body: s export function getLatestRevision(node: GraphNode): [number, string, string, Post] { const revs = node.children.get(bigInt(1)); - const empty = [1, "", "", buntPost()] as [number, string, string, Post]; + const empty = [1, '', '', buntPost()] as [number, string, string, Post]; if(!revs) { return empty; } @@ -98,17 +98,16 @@ export function getLatestCommentRevision(node: GraphNode): [number, Post] { return [revNum.toJSNumber(), rev.post]; } - export function getComments(node: GraphNode): GraphNode { const comments = node.children.get(bigInt(2)); if(!comments) { - return { post: buntPost(), children: new BigIntOrderedMap() } + return { post: buntPost(), children: new BigIntOrderedMap() }; } return comments; } export function getSnippet(body: string) { const start = body.slice(0, body.indexOf('\n', 2)); - return (start === body || start.startsWith("![")) ? start : `${start}...`; + return (start === body || start.startsWith('![')) ? start : `${start}...`; } diff --git a/pkg/interface/src/logic/lib/relativePosition.tsx b/pkg/interface/src/logic/lib/relativePosition.tsx index 8ad1618e53..b2c4b751e5 100644 --- a/pkg/interface/src/logic/lib/relativePosition.tsx +++ b/pkg/interface/src/logic/lib/relativePosition.tsx @@ -1,16 +1,16 @@ -import _ from "lodash"; +import _ from 'lodash'; -export const alignY = ["top", "bottom"] as const; +export const alignY = ['top', 'bottom'] as const; export type AlignY = typeof alignY[number]; -export const alignX = ["left", "right"] as const; +export const alignX = ['left', 'right'] as const; export type AlignX = typeof alignX[number]; export function getRelativePosition( relativeTo: HTMLElement | null, alignX: AlignX | AlignX[], alignY: AlignY | AlignY[], - offsetX: number = 0, - offsetY: number = 0 + offsetX = 0, + offsetY = 0 ) { const rect = relativeTo?.getBoundingClientRect(); if (!rect) { @@ -20,7 +20,7 @@ export function getRelativePosition( top: rect.top - offsetY, left: rect.left - offsetX, bottom: document.documentElement.clientHeight - rect.bottom - offsetY, - right: document.documentElement.clientWidth - rect.right - offsetX, + right: document.documentElement.clientWidth - rect.right - offsetX }; const alignXArr = _.isArray(alignX) ? alignX : [alignX]; const alignYArr = _.isArray(alignY) ? alignY : [alignY]; @@ -34,7 +34,7 @@ export function getRelativePosition( [...Array(idx), `${bounds[a]}px`], acc[a] || [], (a, b) => a || b || null - ), + ) }), {} ), @@ -46,10 +46,10 @@ export function getRelativePosition( [...Array(idx), `${bounds[a]}px`], acc[a] || [], (a, b) => a || b || null - ), + ) }), {} - ), + ) } as Record<AlignY | AlignX, string[]>; } diff --git a/pkg/interface/src/logic/lib/tutorialModal.ts b/pkg/interface/src/logic/lib/tutorialModal.ts index ef1d753b1e..53e759838a 100644 --- a/pkg/interface/src/logic/lib/tutorialModal.ts +++ b/pkg/interface/src/logic/lib/tutorialModal.ts @@ -1,6 +1,6 @@ -import { TutorialProgress, Associations } from "~/types"; -import { AlignX, AlignY } from "~/logic/lib/relativePosition"; -import { Direction } from "~/views/components/Triangle"; +import { TutorialProgress, Associations } from '@urbit/api'; +import { AlignX, AlignY } from '~/logic/lib/relativePosition'; +import { Direction } from '~/views/components/Triangle'; export const MODAL_WIDTH = 256; export const MODAL_HEIGHT = 256; @@ -43,7 +43,7 @@ export const getTrianglePosition = (dir: Direction) => { return { top: midY, left: '-32px' - } + }; case 'North': return { top: '-32px', @@ -55,117 +55,117 @@ export const getTrianglePosition = (dir: Direction) => { left: midX }; } -} +}; export const progressDetails: Record<TutorialProgress, StepDetail> = { hidden: {} as any, exit: {} as any, done: { - title: "End", + title: 'End', description: - "This tutorial is finished. Would you like to leave Beginner Island?", - url: "/", - alignX: "right", - alignY: "top", + 'This tutorial is finished. Would you like to leave Beginner Island?', + url: '/', + alignX: 'right', + alignY: 'top', offsetX: MODAL_WIDTH + 8, - offsetY: 0, + offsetY: 0 }, start: { - title: "New Group added", + title: 'New Group added', description: - "We just added you to the Beginner island group to show you around. This group is public, but other groups can be private", - url: "/", - alignX: "right", - alignY: "top", - arrow: "West", + 'We just added you to the Beginner island group to show you around. This group is public, but other groups can be private', + url: '/', + alignX: 'right', + alignY: 'top', + arrow: 'West', offsetX: MODAL_WIDTH + 24, - offsetY: 64, + offsetY: 64 }, - "group-desc": { - title: "What's a group", + 'group-desc': { + title: 'What\'s a group', description: - "A group contains members and tends to be centered around a topic or multiple topics.", + 'A group contains members and tends to be centered around a topic or multiple topics.', url: `/~landscape/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}`, - alignX: "left", - alignY: "top", - arrow: "East", + alignX: 'left', + alignY: 'top', + arrow: 'East', offsetX: MODAL_WIDTH + 24, - offsetY: MODAL_HEIGHT / 2 - 8, + offsetY: MODAL_HEIGHT / 2 - 8 }, channels: { - title: "Channels", + title: 'Channels', description: - "Inside a group you have three types of Channels: Chat, Collection, or Notebook. Mix and match these depending on your group context!", + 'Inside a group you have three types of Channels: Chat, Collection, or Notebook. Mix and match these depending on your group context!', url: `/~landscape/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}`, - alignY: "top", - alignX: "right", - arrow: "West", + alignY: 'top', + alignX: 'right', + arrow: 'West', offsetX: MODAL_WIDTH + 24, - offsetY: -8, + offsetY: -8 }, chat: { - title: "Chat", + title: 'Chat', description: - "Chat channels are for messaging within your group. Direct Messages are also supported, and are accessible from the “DMs” tile on the homescreen", + 'Chat channels are for messaging within your group. Direct Messages are also supported, and are accessible from the “DMs” tile on the homescreen', url: `/~landscape/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}/resource/chat/ship/${TUTORIAL_HOST}/${TUTORIAL_CHAT}`, - alignY: "top", - arrow: "North", - alignX: "right", + alignY: 'top', + arrow: 'North', + alignX: 'right', offsetY: -56, - offsetX: -8, + offsetX: -8 }, link: { - title: "Collection", + title: 'Collection', description: - "A collection is where you can share and view links, images, and other media within your group. Every item in a Collection can have it’s own comment thread.", + 'A collection is where you can share and view links, images, and other media within your group. Every item in a Collection can have it’s own comment thread.', url: `/~landscape/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}/resource/link/ship/${TUTORIAL_HOST}/${TUTORIAL_LINKS}`, - alignY: "top", - alignX: "right", - arrow: "North", + alignY: 'top', + alignX: 'right', + arrow: 'North', offsetX: -8, - offsetY: -56, + offsetY: -56 }, publish: { - title: "Notebook", + title: 'Notebook', description: - "Notebooks are for creating long-form content within your group. Use markdown to create rich posts with headers, lists and images.", + 'Notebooks are for creating long-form content within your group. Use markdown to create rich posts with headers, lists and images.', url: `/~landscape/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}/resource/publish/ship/${TUTORIAL_HOST}/${TUTORIAL_BOOK}`, - alignY: "top", - alignX: "right", - arrow: "North", + alignY: 'top', + alignX: 'right', + arrow: 'North', offsetX: -8, - offsetY: -56, + offsetY: -56 }, notifications: { - title: "Notifications", - description: "You will get updates from subscribed channels and mentions here. You can access Notifications through Leap.", + title: 'Notifications', + description: 'You will get updates from subscribed channels and mentions here. You can access Notifications through Leap.', url: '/~notifications', - alignY: "top", - alignX: "left", - arrow: "North", + alignY: 'top', + alignX: 'left', + arrow: 'North', offsetX: (MODAL_WIDTH / 2) - 16, - offsetY: -48, + offsetY: -48 }, profile: { - title: "Profile", + title: 'Profile', description: - "Your profile is customizable and can be shared with other ships. Enter as much or as little information as you’d like.", + 'Your profile is customizable and can be shared with other ships. Enter as much or as little information as you’d like.', url: `/~profile/~${window.ship}`, - alignY: "top", - alignX: "right", - arrow: "South", + alignY: 'top', + alignX: 'right', + arrow: 'South', offsetX: -300 + MODAL_WIDTH / 2, - offsetY: -120 + MODAL_HEIGHT / 2, + offsetY: -120 + MODAL_HEIGHT / 2 }, leap: { - title: "Leap", + title: 'Leap', description: - "Leap allows you to go to a specific channel, message, collection, profile or group simply by typing in a command or selecting a shortcut from the dropdown menu.", + 'Leap allows you to go to a specific channel, message, collection, profile or group simply by typing in a command or selecting a shortcut from the dropdown menu.', url: `/~profile/~${window.ship}`, - alignY: "top", - alignX: "left", - arrow: "North", + alignY: 'top', + alignX: 'left', + arrow: 'North', offsetX: 0.3 *MODAL_HEIGHT, - offsetY: -48, - }, + offsetY: -48 + } }; diff --git a/pkg/interface/src/logic/lib/useDrag.ts b/pkg/interface/src/logic/lib/useDrag.ts index e2aa496a88..fb17928e96 100644 --- a/pkg/interface/src/logic/lib/useDrag.ts +++ b/pkg/interface/src/logic/lib/useDrag.ts @@ -1,4 +1,4 @@ -import { useState, useCallback, useMemo, useEffect } from "react"; +import { useState, useCallback, useMemo, useEffect } from 'react'; function validateDragEvent(e: DragEvent): FileList | File[] | true | null { const files: File[] = []; @@ -8,8 +8,8 @@ function validateDragEvent(e: DragEvent): FileList | File[] | true | null { } if (e.dataTransfer?.items) { Array.from(e.dataTransfer.items || []) - .filter((i) => i.kind === 'file') - .forEach(f => { + .filter(i => i.kind === 'file') + .forEach((f) => { valid = true; // Valid if file exists, but on DragOver, won't reveal its contents for security const data = f.getAsFile(); if (data) { @@ -89,14 +89,14 @@ export function useFileDrag(dragged: (f: FileList | File[], e: DragEvent) => voi document.body.addEventListener('mouseout', mouseleave); return () => { document.body.removeEventListener('mouseout', mouseleave); - } + }; }, []); const bind = { onDragLeave, onDragOver, onDrop, - onDragEnter, + onDragEnter }; return { bind, dragging }; diff --git a/pkg/interface/src/logic/lib/useDropdown.ts b/pkg/interface/src/logic/lib/useDropdown.ts index 0e0b37e0dc..98a7359f32 100644 --- a/pkg/interface/src/logic/lib/useDropdown.ts +++ b/pkg/interface/src/logic/lib/useDropdown.ts @@ -1,4 +1,4 @@ -import { useState, useEffect, useMemo, useCallback } from "react"; +import { useState, useEffect, useMemo, useCallback } from 'react'; export function useDropdown<C>( candidates: C[], @@ -12,10 +12,10 @@ export function useDropdown<C>( (s: string) => { const exactMatch = isExact(s); const exact = exactMatch ? [exactMatch] : []; - const opts = [...new Set([...exact, ...candidates.filter((c) => searchPred(s, c))])]; + const opts = [...new Set([...exact, ...candidates.filter(c => searchPred(s, c))])]; setOptions(opts); if (selected) { - const idx = opts.findIndex((c) => key(c) === key(selected)); + const idx = opts.findIndex(c => key(c) === key(selected)); if (idx < 0) { setSelected(undefined); } @@ -29,9 +29,11 @@ export function useDropdown<C>( const select = (idx: number) => { setSelected(options[idx]); }; - if(!selected) { select(0); return false; } + if(!selected) { + select(0); return false; +} - const idx = options.findIndex((c) => key(c) === key(selected)); + const idx = options.findIndex(c => key(c) === key(selected)); if ( idx === -1 || (options.length - 1 <= idx && !backward) @@ -55,6 +57,6 @@ export function useDropdown<C>( back, search, selected, - options, + options }; } diff --git a/pkg/interface/src/logic/lib/useHashLink.ts b/pkg/interface/src/logic/lib/useHashLink.ts index 77c91be2e2..7d93ce5d42 100644 --- a/pkg/interface/src/logic/lib/useHashLink.ts +++ b/pkg/interface/src/logic/lib/useHashLink.ts @@ -1,6 +1,5 @@ import { useEffect } from 'react'; -import {useLocation} from "react-router-dom"; - +import { useLocation } from 'react-router-dom'; export function useHashLink() { const location = useLocation(); @@ -10,8 +9,5 @@ export function useHashLink() { return; } document.querySelector(location.hash)?.scrollIntoView({ behavior: 'smooth', block: 'start' }); - }, [location.hash]); - - } diff --git a/pkg/interface/src/logic/lib/useLazyScroll.ts b/pkg/interface/src/logic/lib/useLazyScroll.ts index bd1c31a328..03a3ce432d 100644 --- a/pkg/interface/src/logic/lib/useLazyScroll.ts +++ b/pkg/interface/src/logic/lib/useLazyScroll.ts @@ -1,6 +1,6 @@ -import { useEffect, RefObject, useRef, useState } from "react"; -import _ from "lodash"; -import usePreviousValue from "./usePreviousValue"; +import { useEffect, RefObject, useRef, useState } from 'react'; +import _ from 'lodash'; +import usePreviousValue from './usePreviousValue'; export function distanceToBottom(el: HTMLElement) { const { scrollTop, scrollHeight, clientHeight } = el; @@ -40,7 +40,6 @@ export function useLazyScroll( } }, [count]); - useEffect(() => { if (!ref.current) { return; @@ -54,13 +53,12 @@ export function useLazyScroll( loadUntil(el); }; - ref.current.addEventListener("scroll", onScroll, { passive: true }); + ref.current.addEventListener('scroll', onScroll, { passive: true }); return () => { - ref.current?.removeEventListener("scroll", onScroll); + ref.current?.removeEventListener('scroll', onScroll); }; }, [ref?.current, count]); - return { isDone, isLoading }; } diff --git a/pkg/interface/src/logic/lib/useLocalStorageState.ts b/pkg/interface/src/logic/lib/useLocalStorageState.ts index b81214a677..13de71afe3 100644 --- a/pkg/interface/src/logic/lib/useLocalStorageState.ts +++ b/pkg/interface/src/logic/lib/useLocalStorageState.ts @@ -1,4 +1,4 @@ -import { useState, useCallback, useEffect } from "react"; +import { useState, useCallback, useEffect } from 'react'; function retrieve<T>(key: string, initial: T): T { const s = localStorage.getItem(key); @@ -25,7 +25,7 @@ export function useLocalStorageState<T>(key: string, initial: T) { const setState = useCallback( (s: SetState<T>) => { - const updated = typeof s === "function" ? s(state) : s; + const updated = typeof s === 'function' ? s(state) : s; _setState(updated); localStorage.setItem(key, JSON.stringify(updated)); }, diff --git a/pkg/interface/src/logic/lib/useModal.tsx b/pkg/interface/src/logic/lib/useModal.tsx index c7cb9be7d4..3d19343cd7 100644 --- a/pkg/interface/src/logic/lib/useModal.tsx +++ b/pkg/interface/src/logic/lib/useModal.tsx @@ -5,15 +5,15 @@ import React, { SyntheticEvent, useMemo, useEffect, - useRef, -} from "react"; + useRef +} from 'react'; -import { Box } from "@tlon/indigo-react"; -import { useOutsideClick } from "./useOutsideClick"; -import { ModalOverlay } from "~/views/components/ModalOverlay"; -import {Portal} from "~/views/components/Portal"; -import {ModalPortal} from "~/views/components/ModalPortal"; -import {PropFunc} from "~/types"; +import { Box } from '@tlon/indigo-react'; +import { useOutsideClick } from './useOutsideClick'; +import { ModalOverlay } from '~/views/components/ModalOverlay'; +import { Portal } from '~/views/components/Portal'; +import { ModalPortal } from '~/views/components/ModalPortal'; +import { PropFunc } from '@urbit/api'; type ModalFunc = (dismiss: () => void) => JSX.Element; interface UseModalProps { @@ -42,7 +42,7 @@ export function useModal(props: UseModalProps & PropFunc<typeof Box>): UseModalR () => !modalShown ? null - : typeof modal === "function" + : typeof modal === 'function' ? modal(dismiss) : modal, [modalShown, modal, dismiss] @@ -59,7 +59,7 @@ export function useModal(props: UseModalProps & PropFunc<typeof Box>): UseModalR bg="white" borderRadius={2} border={[0, 1]} - borderColor={["washedGray", "washedGray"]} + borderColor={['washedGray', 'washedGray']} display="flex" alignItems="stretch" flexDirection="column" @@ -76,6 +76,6 @@ export function useModal(props: UseModalProps & PropFunc<typeof Box>): UseModalR return { showModal, - modal: modalComponent, + modal: modalComponent }; } diff --git a/pkg/interface/src/logic/lib/useOutsideClick.ts b/pkg/interface/src/logic/lib/useOutsideClick.ts index 4d4f95ca6a..481fa2a904 100644 --- a/pkg/interface/src/logic/lib/useOutsideClick.ts +++ b/pkg/interface/src/logic/lib/useOutsideClick.ts @@ -1,8 +1,8 @@ -import { useEffect, RefObject } from "react"; +import { useEffect, RefObject } from 'react'; export function useOutsideClick( ref: RefObject<HTMLElement | null | undefined>, - onClick: () => void, + onClick: () => void ) { useEffect(() => { function handleClick(event: MouseEvent) { @@ -16,17 +16,16 @@ export function useOutsideClick( } function handleKeyDown(ev) { - if(ev.key === "Escape") { + if(ev.key === 'Escape') { onClick(); - } } - document.addEventListener("mousedown", handleClick); - document.addEventListener("keydown", handleKeyDown); + document.addEventListener('mousedown', handleClick); + document.addEventListener('keydown', handleKeyDown); return () => { - document.removeEventListener("mousedown", handleClick); - document.removeEventListener("keydown", handleKeyDown); + document.removeEventListener('mousedown', handleClick); + document.removeEventListener('keydown', handleKeyDown); }; }, [ref.current, onClick]); } diff --git a/pkg/interface/src/logic/lib/usePreviousValue.ts b/pkg/interface/src/logic/lib/usePreviousValue.ts index e240978108..109f9ffa86 100644 --- a/pkg/interface/src/logic/lib/usePreviousValue.ts +++ b/pkg/interface/src/logic/lib/usePreviousValue.ts @@ -1,7 +1,5 @@ -import { useRef } from "react"; -import { Primitive } from "~/types"; - - +import { useRef } from 'react'; +import { Primitive } from '@urbit/api'; export default function usePreviousValue<T extends Primitive>(value: T): T { const prev = useRef<T | null>(null); diff --git a/pkg/interface/src/logic/lib/useQuery.ts b/pkg/interface/src/logic/lib/useQuery.ts index 0957ca0988..735060a2da 100644 --- a/pkg/interface/src/logic/lib/useQuery.ts +++ b/pkg/interface/src/logic/lib/useQuery.ts @@ -1,5 +1,5 @@ -import { useMemo, useCallback } from "react"; -import { useLocation } from "react-router-dom"; +import { useMemo, useCallback } from 'react'; +import { useLocation } from 'react-router-dom'; import _ from 'lodash'; export function useQuery() { @@ -25,6 +25,6 @@ export function useQuery() { return { query, - appendQuery, + appendQuery }; } diff --git a/pkg/interface/src/logic/lib/useS3.ts b/pkg/interface/src/logic/lib/useS3.ts index 0717d52f7f..418e4594fa 100644 --- a/pkg/interface/src/logic/lib/useS3.ts +++ b/pkg/interface/src/logic/lib/useS3.ts @@ -1,7 +1,7 @@ -import { useCallback, useMemo, useEffect, useRef, useState } from "react"; -import { S3State } from "../../types/s3-update"; -import S3 from "aws-sdk/clients/s3"; -import { dateToDa, deSig } from "./util"; +import { useCallback, useMemo, useEffect, useRef, useState } from 'react'; +import { S3State } from '../../types/s3-update'; +import S3 from 'aws-sdk/clients/s3'; +import { dateToDa, deSig } from './util'; export interface IuseS3 { canUpload: boolean; @@ -28,14 +28,14 @@ const useS3 = (s3: S3State, { accept = '*' } = { accept: '*' }): IuseS3 => { const canUpload = useMemo( () => - (client && s3.credentials && s3.configuration.currentBucket !== "") || false, + (client && s3.credentials && s3.configuration.currentBucket !== '') || false, [s3.credentials, s3.configuration.currentBucket, client] ); const upload = useCallback( async (file: File, bucket: string) => { if (!client.current) { - throw new Error("S3 not ready"); + throw new Error('S3 not ready'); } const fileParts = file.name.split('.'); @@ -47,8 +47,8 @@ const useS3 = (s3: S3State, { accept = '*' } = { accept: '*' }): IuseS3 => { Bucket: bucket, Key: `${window.ship}/${timestamp}-${fileName}.${fileExtension}`, Body: file, - ACL: "public-read", - ContentType: file.type, + ACL: 'public-read', + ContentType: file.type }; setUploading(true); @@ -63,8 +63,8 @@ const useS3 = (s3: S3State, { accept = '*' } = { accept: '*' }): IuseS3 => { ); const uploadDefault = useCallback(async (file: File) => { - if (s3.configuration.currentBucket === "") { - throw new Error("current bucket not set"); + if (s3.configuration.currentBucket === '') { + throw new Error('current bucket not set'); } return upload(file, s3.configuration.currentBucket); }, [s3]); @@ -84,11 +84,10 @@ const useS3 = (s3: S3State, { accept = '*' } = { accept: '*' }): IuseS3 => { } uploadDefault(files[0]).then(resolve); document.body.removeChild(fileSelector); - }) + }); document.body.appendChild(fileSelector); fileSelector.click(); - }) - + }); }, [uploadDefault] ); @@ -96,4 +95,4 @@ const useS3 = (s3: S3State, { accept = '*' } = { accept: '*' }): IuseS3 => { return { canUpload, upload, uploadDefault, uploading, promptUpload }; }; -export default useS3; \ No newline at end of file +export default useS3; diff --git a/pkg/interface/src/logic/lib/useStatelessAsyncClickable.ts b/pkg/interface/src/logic/lib/useStatelessAsyncClickable.ts index b92fdaa03c..154f903baa 100644 --- a/pkg/interface/src/logic/lib/useStatelessAsyncClickable.ts +++ b/pkg/interface/src/logic/lib/useStatelessAsyncClickable.ts @@ -1,23 +1,23 @@ -import { MouseEvent, useCallback, useState, useEffect } from "react"; -export type AsyncClickableState = "waiting" | "error" | "loading" | "success"; +import { MouseEvent, useCallback, useState, useEffect } from 'react'; +export type AsyncClickableState = 'waiting' | 'error' | 'loading' | 'success'; export function useStatelessAsyncClickable( onClick: (e: MouseEvent) => Promise<void>, name: string ) { - const [state, setState] = useState<ButtonState>("waiting"); + const [state, setState] = useState<ButtonState>('waiting'); const handleClick = useCallback( async (e: MouseEvent) => { try { - setState("loading"); + setState('loading'); await onClick(e); - setState("success"); + setState('success'); } catch (e) { console.error(e); - setState("error"); + setState('error'); } finally { setTimeout(() => { - setState("waiting"); + setState('waiting'); }, 3000); } }, @@ -26,7 +26,7 @@ export function useStatelessAsyncClickable( // When name changes, reset button useEffect(() => { - setState("waiting"); + setState('waiting'); }, [name]); return { buttonState: state, onClick: handleClick }; diff --git a/pkg/interface/src/logic/lib/useWaitForProps.ts b/pkg/interface/src/logic/lib/useWaitForProps.ts index 80e92e92a8..8a81b0b0ae 100644 --- a/pkg/interface/src/logic/lib/useWaitForProps.ts +++ b/pkg/interface/src/logic/lib/useWaitForProps.ts @@ -1,12 +1,11 @@ import { useState, useEffect, useCallback } from 'react'; - -export function useWaitForProps<P>(props: P, timeout: number = 0) { +export function useWaitForProps<P>(props: P, timeout = 0) { const [resolve, setResolve] = useState<() => void>(() => () => {}); const [ready, setReady] = useState<(p: P) => boolean | undefined>(); useEffect(() => { - if (typeof ready === "function" && ready(props)) { + if (typeof ready === 'function' && ready(props)) { resolve(); } }, [props, ready, resolve]); @@ -26,7 +25,7 @@ export function useWaitForProps<P>(props: P, timeout: number = 0) { setResolve(() => resolve); if(timeout > 0) { setTimeout(() => { - reject(new Error("Timed out")); + reject(new Error('Timed out')); }, timeout); } }); diff --git a/pkg/interface/src/logic/lib/util.ts b/pkg/interface/src/logic/lib/util.ts index 670c83d430..8cc6969d9e 100644 --- a/pkg/interface/src/logic/lib/util.ts +++ b/pkg/interface/src/logic/lib/util.ts @@ -1,27 +1,27 @@ import { useEffect, useState } from 'react'; -import _ from "lodash"; -import f, { memoize } from "lodash/fp"; -import bigInt, { BigInteger } from "big-integer"; -import { Contact } from '~/types'; +import _ from 'lodash'; +import f, { memoize } from 'lodash/fp'; +import bigInt, { BigInteger } from 'big-integer'; +import { Contact } from '@urbit/api'; import useLocalState from '../state/local'; export const MOBILE_BROWSER_REGEX = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i; export const MOMENT_CALENDAR_DATE = { - sameDay: "[Today]", - nextDay: "[Tomorrow]", - nextWeek: "dddd", - lastDay: "[Yesterday]", - lastWeek: "[Last] dddd", - sameElse: "~YYYY.M.D", + sameDay: '[Today]', + nextDay: '[Tomorrow]', + nextWeek: 'dddd', + lastDay: '[Yesterday]', + lastWeek: '[Last] dddd', + sameElse: '~YYYY.M.D' }; export const getModuleIcon = (mod: string) => { - if (mod === "link") { - return "Collection"; + if (mod === 'link') { + return 'Collection'; } return _.capitalize(mod); -} +}; export function wait(ms: number) { return new Promise((resolve, reject) => { @@ -37,8 +37,8 @@ export function parentPath(path: string) { return _.dropRight(path.split('/'), 1).join('/'); } -const DA_UNIX_EPOCH = bigInt("170141184475152167957503069145530368000"); // `@ud` ~1970.1.1 -const DA_SECOND = bigInt("18446744073709551616"); // `@ud` ~s1 +const DA_UNIX_EPOCH = bigInt('170141184475152167957503069145530368000'); // `@ud` ~1970.1.1 +const DA_SECOND = bigInt('18446744073709551616'); // `@ud` ~s1 export function daToUnix(da: BigInteger) { // ported from +time:enjs:format in hoon.hoon const offset = DA_SECOND.divide(bigInt(2000)); @@ -59,20 +59,20 @@ export function makePatDa(patda: string) { } export function udToDec(ud: string): string { - return ud.replace(/\./g, ""); + return ud.replace(/\./g, ''); } export function decToUd(str: string): string { return _.trimStart( f.flow( - f.split(""), + f.split(''), f.reverse, f.chunk(3), - f.map(f.flow(f.reverse, f.join(""))), + f.map(f.flow(f.reverse, f.join(''))), f.reverse, - f.join(".") + f.join('.') )(str), - "0." + '0.' ); } @@ -86,12 +86,12 @@ export function clamp(x: number, min: number, max: number) { // color is a #000000 color export function adjustHex(color: string, amount: number): string { return f.flow( - f.split(""), + f.split(''), f.chunk(2), // get RGB channels - f.map((c) => parseInt(c.join(""), 16)), // as hex - f.map((c) => clamp(c + amount, 0, 255).toString(16)), // adjust - f.join(""), - (res) => `#${res}` //format + f.map(c => parseInt(c.join(''), 16)), // as hex + f.map(c => clamp(c + amount, 0, 255).toString(16)), // adjust + f.join(''), + res => `#${res}` // format )(color.slice(1)); } @@ -101,12 +101,12 @@ export function resourceAsPath(resource: any) { } export function uuid() { - let str = "0v"; - str += Math.ceil(Math.random() * 8) + "."; + let str = '0v'; + str += Math.ceil(Math.random() * 8) + '.'; for (let i = 0; i < 5; i++) { let _str = Math.ceil(Math.random() * 10000000).toString(32); - _str = ("00000" + _str).substr(-5, 5); - str += _str + "."; + _str = ('00000' + _str).substr(-5, 5); + str += _str + '.'; } return str.slice(0, -1); @@ -120,11 +120,11 @@ export function uuid() { */ export function daToDate(st: string) { const dub = function (n: string) { - return parseInt(n) < 10 ? "0" + parseInt(n) : n.toString(); + return parseInt(n) < 10 ? '0' + parseInt(n) : n.toString(); }; - const da = st.split(".."); - const bigEnd = da[0].split("."); - const lilEnd = da[1].split("."); + const da = st.split('..'); + const bigEnd = da[0].split('.'); + const lilEnd = da[1].split('.'); const ds = `${bigEnd[0].slice(1)}-${dub(bigEnd[1])}-${dub(bigEnd[2])}T${dub( lilEnd[0] )}:${dub(lilEnd[1])}:${dub(lilEnd[2])}Z`; @@ -138,9 +138,9 @@ export function daToDate(st: string) { ~2018.7.17..23.15.09..5be5 // urbit @da */ -export function dateToDa(d: Date, mil: boolean = false) { +export function dateToDa(d: Date, mil = false) { const fil = function (n: number) { - return n >= 10 ? n : "0" + n; + return n >= 10 ? n : '0' + n; }; return ( `~${d.getUTCFullYear()}.` + @@ -149,7 +149,7 @@ export function dateToDa(d: Date, mil: boolean = false) { `${fil(d.getUTCHours())}.` + `${fil(d.getUTCMinutes())}.` + `${fil(d.getUTCSeconds())}` + - `${mil ? "..0000" : ""}` + `${mil ? '..0000' : ''}` ); } @@ -157,16 +157,16 @@ export function deSig(ship: string) { if (!ship) { return null; } - return ship.replace("~", ""); + return ship.replace('~', ''); } export function uxToHex(ux: string) { - if (ux.length > 2 && ux.substr(0, 2) === "0x") { - const value = ux.substr(2).replace(".", "").padStart(6, "0"); + if (ux.length > 2 && ux.substr(0, 2) === '0x') { + const value = ux.substr(2).replace('.', '').padStart(6, '0'); return value; } - const value = ux.replace(".", "").padStart(6, "0"); + const value = ux.replace('.', '').padStart(6, '0'); return value; } @@ -187,13 +187,13 @@ export function writeText(str: string) { let success = false; function listener(e) { - e.clipboardData.setData("text/plain", str); + e.clipboardData.setData('text/plain', str); e.preventDefault(); success = true; } - document.addEventListener("copy", listener); - document.execCommand("copy"); - document.removeEventListener("copy", listener); + document.addEventListener('copy', listener); + document.execCommand('copy'); + document.removeEventListener('copy', listener); document?.getSelection()?.removeAllRanges(); @@ -206,21 +206,21 @@ export function writeText(str: string) { // trim patps to match dojo, chat-cli export function cite(ship: string) { let patp = ship, - shortened = ""; - if (patp === null || patp === "") { + shortened = ''; + if (patp === null || patp === '') { return null; } - if (patp.startsWith("~")) { + if (patp.startsWith('~')) { patp = patp.substr(1); } // comet if (patp.length === 56) { - shortened = "~" + patp.slice(0, 6) + "_" + patp.slice(50, 56); + shortened = '~' + patp.slice(0, 6) + '_' + patp.slice(50, 56); return shortened; } // moon if (patp.length === 27) { - shortened = "~" + patp.slice(14, 20) + "^" + patp.slice(21, 27); + shortened = '~' + patp.slice(14, 20) + '^' + patp.slice(21, 27); return shortened; } return `~${patp}`; @@ -232,7 +232,6 @@ export function alphabeticalOrder(a: string, b: string) { export function lengthOrder(a: string, b: string) { return b.length - a.length; - } // TODO: deprecated @@ -244,13 +243,13 @@ export function alphabetiseAssociations(associations: any) { let bName = b.substr(1); if (associations[a].metadata && associations[a].metadata.title) { aName = - associations[a].metadata.title !== "" + associations[a].metadata.title !== '' ? associations[a].metadata.title : a.substr(1); } if (associations[b].metadata && associations[b].metadata.title) { bName = - associations[b].metadata.title !== "" + associations[b].metadata.title !== '' ? associations[b].metadata.title : b.substr(1); } @@ -266,41 +265,42 @@ export function alphabetiseAssociations(associations: any) { // for example, 'some Chars!' becomes '~.some.~43.hars~21.' // export function stringToTa(str: string) { - let out = ""; + let out = ''; for (let i = 0; i < str.length; i++) { const char = str[i]; - let add = ""; + let add = ''; switch (char) { - case " ": - add = "."; + case ' ': + add = '.'; break; - case ".": - add = "~."; + case '.': + add = '~.'; break; - case "~": - add = "~~"; + case '~': + add = '~~'; break; default: const charCode = str.charCodeAt(i); if ( (charCode >= 97 && charCode <= 122) || // a-z (charCode >= 48 && charCode <= 57) || // 0-9 - char === "-" + char === '-' ) { add = char; } else { // TODO behavior for unicode doesn't match +wood's, // but we can probably get away with that for now. - add = "~" + charCode.toString(16) + "."; + add = '~' + charCode.toString(16) + '.'; } } out = out + add; } - return "~." + out; + return '~.' + out; } export function amOwnerOfGroup(groupPath: string) { - if (!groupPath) return false; + if (!groupPath) +return false; const groupOwner = /(\/~)?\/~([a-z-]{3,})\/.*/.exec(groupPath)?.[2]; return window.ship === groupOwner; } @@ -308,18 +308,18 @@ export function amOwnerOfGroup(groupPath: string) { export function getContactDetails(contact: any) { const member = !contact; contact = contact || { - nickname: "", + nickname: '', avatar: null, - color: "0x0", + color: '0x0' }; - const nickname = contact.nickname || ""; - const color = uxToHex(contact.color || "0x0"); + const nickname = contact.nickname || ''; + const color = uxToHex(contact.color || '0x0'); const avatar = contact.avatar || null; return { nickname, color, member, avatar }; } export function stringToSymbol(str: string) { - let result = ""; + let result = ''; for (let i = 0; i < str.length; i++) { const n = str.charCodeAt(i); if ((n >= 97 && n <= 122) || (n >= 48 && n <= 57)) { @@ -327,19 +327,17 @@ export function stringToSymbol(str: string) { } else if (n >= 65 && n <= 90) { result += String.fromCharCode(n + 32); } else { - result += "-"; + result += '-'; } } - result = result.replace(/^[\-\d]+|\-+/g, "-"); - result = result.replace(/^\-+|\-+$/g, ""); - if (result === "") { + result = result.replace(/^[\-\d]+|\-+/g, '-'); + result = result.replace(/^\-+|\-+$/g, ''); + if (result === '') { return dateToDa(new Date()); } return result; } - - /** * Formats a numbers as a `@ud` inserting dot where needed */ @@ -351,23 +349,24 @@ export function numToUd(num: number) { f.reverse, f.map(s => s.join('')), f.join('.') - )(num.toString()) + )(num.toString()); } -export function usePreventWindowUnload(shouldPreventDefault: boolean, message = "You have unsaved changes. Are you sure you want to exit?") { +export function usePreventWindowUnload(shouldPreventDefault: boolean, message = 'You have unsaved changes. Are you sure you want to exit?') { useEffect(() => { - if (!shouldPreventDefault) return; - const handleBeforeUnload = event => { + if (!shouldPreventDefault) +return; + const handleBeforeUnload = (event) => { event.preventDefault(); return message; - } - window.addEventListener("beforeunload", handleBeforeUnload); + }; + window.addEventListener('beforeunload', handleBeforeUnload); window.onbeforeunload = handleBeforeUnload; return () => { - window.removeEventListener("beforeunload", handleBeforeUnload); + window.removeEventListener('beforeunload', handleBeforeUnload); // @ts-ignore window.onbeforeunload = undefined; - } + }; }, [shouldPreventDefault]); } @@ -378,7 +377,7 @@ export function pluralize(text: string, isPlural = false, vowel = false) { // Hide is an optional second parameter for when this function is used in class components export function useShowNickname(contact: Contact | null, hide?: boolean): boolean { const hideNicknames = typeof hide !== 'undefined' ? hide : useLocalState(state => state.hideNicknames); - return !!(contact && contact.nickname && !hideNicknames); + return Boolean(contact && contact.nickname && !hideNicknames); } interface useHoveringInterface { @@ -406,7 +405,6 @@ export function getItemTitle(association: Association) { return cite(`~${name.slice(4)}`); } return cite(ship); - } - return association.metadata.title || association.resource -}; + return association.metadata.title || association.resource; +} diff --git a/pkg/interface/src/logic/lib/workspace.ts b/pkg/interface/src/logic/lib/workspace.ts index e17b81e7ba..f13df61956 100644 --- a/pkg/interface/src/logic/lib/workspace.ts +++ b/pkg/interface/src/logic/lib/workspace.ts @@ -1,24 +1,24 @@ -import { Associations, Workspace } from "~/types"; +import { Associations, Workspace } from '@urbit/api'; export function getTitleFromWorkspace( associations: Associations, workspace: Workspace ) { switch (workspace.type) { - case "home": - return "My Channels"; - case "messages": - return "Messages"; - case "group": + case 'home': + return 'My Channels'; + case 'messages': + return 'Messages'; + case 'group': const association = associations.groups[workspace.group]; - return association?.metadata?.title || ""; + return association?.metadata?.title || ''; } } export function getGroupFromWorkspace( workspace: Workspace ): string | undefined { - if (workspace.type === "group") { + if (workspace.type === 'group') { return workspace.group; } diff --git a/pkg/interface/src/logic/reducers/contact-update.ts b/pkg/interface/src/logic/reducers/contact-update.ts index 44cbc6cfb0..1d2e45e35b 100644 --- a/pkg/interface/src/logic/reducers/contact-update.ts +++ b/pkg/interface/src/logic/reducers/contact-update.ts @@ -1,8 +1,8 @@ import _ from 'lodash'; import { StoreState } from '../../store/type'; import { Cage } from '~/types/cage'; -import { ContactUpdate } from '~/types/contact-update'; -import {resourceAsPath} from '../lib/util'; +import { ContactUpdate } from '@urbit/api/contacts'; +import { resourceAsPath } from '../lib/util'; type ContactState = Pick<StoreState, 'contacts'>; @@ -62,9 +62,9 @@ const edit = (json: ContactUpdate, state: S) => { const contact = state.contacts?.[ship]; const value = data['edit-field'][field]; if(!contact) { - return; + return; } - + if(field === 'add-group') { contact.groups.push(value); } else if (field === 'remove-group') { @@ -80,4 +80,3 @@ const setPublic = (json: ContactUpdate, state: S) => { state.isContactPublic = data; }; - diff --git a/pkg/interface/src/logic/reducers/group-update.ts b/pkg/interface/src/logic/reducers/group-update.ts index 169b30d56c..c4aeddb0ac 100644 --- a/pkg/interface/src/logic/reducers/group-update.ts +++ b/pkg/interface/src/logic/reducers/group-update.ts @@ -10,9 +10,9 @@ import { OpenPolicyDiff, OpenPolicy, InvitePolicyDiff, - InvitePolicy, -} from '~/types/group-update'; -import { Enc, PatpNoSig } from '~/types/noun'; + InvitePolicy +} from '@urbit/api/groups'; +import { Enc, PatpNoSig } from '@urbit/api'; import { resourceAsPath } from '../lib/util'; type GroupState = Pick<StoreState, 'groups' | 'groupKeys'>; @@ -23,7 +23,7 @@ function decodeGroup(group: Enc<Group>): Group { ...group, members, tags: decodeTags(group.tags), - policy: decodePolicy(group.policy), + policy: decodePolicy(group.policy) }; return res; } @@ -35,7 +35,7 @@ function decodePolicy(policy: Enc<GroupPolicy>): GroupPolicy { } else { const { open } = policy; return { - open: { banned: new Set(open.banned), banRanks: new Set(open.banRanks) }, + open: { banned: new Set(open.banned), banRanks: new Set(open.banRanks) } }; } } @@ -98,7 +98,7 @@ export default class GroupReducer<S extends GroupState> { members: new Set(), tags: { role: { admin: new Set([window.ship]) } }, policy: decodePolicy(policy), - hidden, + hidden }; } } @@ -189,7 +189,6 @@ export default class GroupReducer<S extends GroupState> { } } - private inviteChangePolicy(diff: InvitePolicyDiff, policy: InvitePolicy) { if ('addInvites' in diff) { const { addInvites } = diff; diff --git a/pkg/interface/src/logic/reducers/group-view.ts b/pkg/interface/src/logic/reducers/group-view.ts index 92be7c0f5f..dd8763c6d6 100644 --- a/pkg/interface/src/logic/reducers/group-view.ts +++ b/pkg/interface/src/logic/reducers/group-view.ts @@ -1,25 +1,24 @@ -import { resourceAsPath } from "~/logic/lib/util"; - +import { resourceAsPath } from '~/logic/lib/util'; const initial = (json: any, state: any) => { const data = json.initial; if(data) { state.pendingJoin = data; } -} +}; const progress = (json: any, state: any) => { const data = json.progress; if(data) { const { progress, resource } = data; - state.pendingJoin = {...state.pendingJoin, [resource]: progress }; + state.pendingJoin = { ...state.pendingJoin, [resource]: progress }; if(progress === 'done') { setTimeout(() => { delete state.pendingJoin[resource]; }, 10000); } } -} +}; export const GroupViewReducer = (json: any, state: any) => { const data = json['group-view-update']; @@ -27,4 +26,4 @@ export const GroupViewReducer = (json: any, state: any) => { progress(data, state); initial(data, state); } -} +}; diff --git a/pkg/interface/src/logic/reducers/hark-update.ts b/pkg/interface/src/logic/reducers/hark-update.ts index 6928e4508b..288b3bed5c 100644 --- a/pkg/interface/src/logic/reducers/hark-update.ts +++ b/pkg/interface/src/logic/reducers/hark-update.ts @@ -3,22 +3,21 @@ import { NotifIndex, NotificationGraphConfig, GroupNotificationsConfig, - UnreadStats, -} from "~/types"; -import { makePatDa } from "~/logic/lib/util"; -import _ from "lodash"; -import {StoreState} from "../store/type"; + UnreadStats +} from '@urbit/api'; +import { makePatDa } from '~/logic/lib/util'; +import _ from 'lodash'; +import { StoreState } from '../store/type'; import { BigIntOrderedMap } from '../lib/BigIntOrderedMap'; -type HarkState = Pick<StoreState, "notifications" | "notificationsGraphConfig" | "notificationsGroupConfig" | "unreads" >; - +type HarkState = Pick<StoreState, 'notifications' | 'notificationsGraphConfig' | 'notificationsGroupConfig' | 'unreads' >; export const HarkReducer = (json: any, state: HarkState) => { - const data = _.get(json, "harkUpdate", false); + const data = _.get(json, 'harkUpdate', false); if (data) { reduce(data, state); } - const graphHookData = _.get(json, "hark-graph-hook-update", false); + const graphHookData = _.get(json, 'hark-graph-hook-update', false); if (graphHookData) { graphInitial(graphHookData, state); graphIgnore(graphHookData, state); @@ -26,7 +25,7 @@ export const HarkReducer = (json: any, state: HarkState) => { graphWatchSelf(graphHookData, state); graphMentions(graphHookData, state); } - const groupHookData = _.get(json, "hark-group-hook-update", false); + const groupHookData = _.get(json, 'hark-group-hook-update', false); if (groupHookData) { groupInitial(groupHookData, state); groupListen(groupHookData, state); @@ -35,31 +34,31 @@ export const HarkReducer = (json: any, state: HarkState) => { }; function groupInitial(json: any, state: HarkState) { - const data = _.get(json, "initial", false); + const data = _.get(json, 'initial', false); if (data) { state.notificationsGroupConfig = data; } } function graphInitial(json: any, state: HarkState) { - const data = _.get(json, "initial", false); + const data = _.get(json, 'initial', false); if (data) { state.notificationsGraphConfig = data; } } function graphListen(json: any, state: HarkState) { - const data = _.get(json, "listen", false); + const data = _.get(json, 'listen', false); if (data) { state.notificationsGraphConfig.watching = [ ...state.notificationsGraphConfig.watching, - data, + data ]; } } function graphIgnore(json: any, state: HarkState) { - const data = _.get(json, "ignore", false); + const data = _.get(json, 'ignore', false); if (data) { state.notificationsGraphConfig.watching = state.notificationsGraphConfig.watching.filter( ({ graph, index }) => !(graph === data.graph && index === data.index) @@ -68,30 +67,30 @@ function graphIgnore(json: any, state: HarkState) { } function groupListen(json: any, state: HarkState) { - const data = _.get(json, "listen", false); + const data = _.get(json, 'listen', false); if (data) { state.notificationsGroupConfig = [...state.notificationsGroupConfig, data]; } } function groupIgnore(json: any, state: HarkState) { - const data = _.get(json, "ignore", false); + const data = _.get(json, 'ignore', false); if (data) { state.notificationsGroupConfig = state.notificationsGroupConfig.filter( - (n) => n !== data + n => n !== data ); } } function graphMentions(json: any, state: HarkState) { - const data = _.get(json, "set-mentions", undefined); + const data = _.get(json, 'set-mentions', undefined); if (!_.isUndefined(data)) { state.notificationsGraphConfig.mentions = data; } } function graphWatchSelf(json: any, state: HarkState) { - const data = _.get(json, "set-watch-on-self", undefined); + const data = _.get(json, 'set-watch-on-self', undefined); if (!_.isUndefined(data)) { state.notificationsGraphConfig.watchOnSelf = data; } @@ -131,14 +130,14 @@ function seenIndex(json: any, state: HarkState) { function readEach(json: any, state: HarkState) { const data = _.get(json, 'read-each'); if(data) { - updateUnreads(state, data.index, u => u.delete(data.target)) + updateUnreads(state, data.index, u => u.delete(data.target)); } } function readSince(json: any, state: HarkState) { const data = _.get(json, 'read-count'); if(data) { - updateUnreadCount(state, data, () => 0) + updateUnreadCount(state, data, () => 0); } } @@ -152,7 +151,7 @@ function unreadSince(json: any, state: HarkState) { function unreadEach(json: any, state: HarkState) { const data = _.get(json, 'unread-each'); if(data) { - updateUnreads(state, data.index, us => us.add(data.target)) + updateUnreads(state, data.index, us => us.add(data.target)); } } @@ -175,15 +174,15 @@ function unreads(json: any, state: HarkState) { } } -function clearState(state){ - let initialState = { +function clearState(state) { + const initialState = { notifications: new BigIntOrderedMap<Timebox>(), archivedNotifications: new BigIntOrderedMap<Timebox>(), notificationsGroupConfig: [], notificationsGraphConfig: { watchOnSelf: false, mentions: false, - watching: [], + watching: [] }, unreads: { graph: {}, @@ -192,7 +191,7 @@ function clearState(state){ notificationsCount: 0 }; - Object.keys(initialState).forEach(key => { + Object.keys(initialState).forEach((key) => { state[key] = initialState[key]; }); } @@ -203,7 +202,7 @@ function updateUnreadCount(state: HarkState, index: NotifIndex, count: (c: numbe } const property = [index.graph.graph, index.graph.index, 'unreads']; const curr = _.get(state.unreads.graph, property, 0); - const newCount = count(curr) + const newCount = count(curr); _.set(state.unreads.graph, property, newCount); } @@ -218,7 +217,6 @@ function updateUnreads(state: HarkState, index: NotifIndex, f: (us: Set<string>) _.set(state.unreads.graph, [index.graph.graph, index.graph.index, 'unreads'], unreads); } - function updateNotificationStats(state: HarkState, index: NotifIndex, statField: 'notifications' | 'unreads' | 'last', f: (x: number) => number) { if(statField === 'notifications') { state.notificationsCount = f(state.notificationsCount); @@ -233,13 +231,13 @@ function updateNotificationStats(state: HarkState, index: NotifIndex, statField: } function added(json: any, state: HarkState) { - const data = _.get(json, "added", false); + const data = _.get(json, 'added', false); if (data) { const { index, notification } = data; const time = makePatDa(data.time); const timebox = state.notifications.get(time) || []; - const arrIdx = timebox.findIndex((idxNotif) => + const arrIdx = timebox.findIndex(idxNotif => notifIdxEqual(index, idxNotif.index) ); if (arrIdx !== -1) { @@ -256,14 +254,14 @@ function added(json: any, state: HarkState) { } const dnd = (json: any, state: HarkState) => { - const data = _.get(json, "set-dnd", undefined); + const data = _.get(json, 'set-dnd', undefined); if (!_.isUndefined(data)) { state.doNotDisturb = data; } }; const timebox = (json: any, state: HarkState) => { - const data = _.get(json, "timebox", false); + const data = _.get(json, 'timebox', false); if (data) { const time = makePatDa(data.time); if (!data.archive) { @@ -273,21 +271,21 @@ const timebox = (json: any, state: HarkState) => { }; function more(json: any, state: HarkState) { - const data = _.get(json, "more", false); + const data = _.get(json, 'more', false); if (data) { - _.forEach(data, (d) => reduce(d, state)); + _.forEach(data, d => reduce(d, state)); } } function notifIdxEqual(a: NotifIndex, b: NotifIndex) { - if ("graph" in a && "graph" in b) { + if ('graph' in a && 'graph' in b) { return ( a.graph.graph === b.graph.graph && a.graph.group === b.graph.group && a.graph.module === b.graph.module && a.graph.description === b.graph.description ); - } else if ("group" in a && "group" in b) { + } else if ('group' in a && 'group' in b) { return ( a.group.group === b.group.group && a.group.description === b.group.description @@ -305,14 +303,14 @@ function setRead( const patDa = makePatDa(time); const timebox = state.notifications.get(patDa); if (_.isNull(timebox)) { - console.warn("Modifying nonexistent timebox"); + console.warn('Modifying nonexistent timebox'); return; } - const arrIdx = timebox.findIndex((idxNotif) => + const arrIdx = timebox.findIndex(idxNotif => notifIdxEqual(index, idxNotif.index) ); if (arrIdx === -1) { - console.warn("Modifying nonexistent index"); + console.warn('Modifying nonexistent index'); return; } timebox[arrIdx].notification.read = read; @@ -320,7 +318,7 @@ function setRead( } function read(json: any, state: HarkState) { - const data = _.get(json, "read-note", false); + const data = _.get(json, 'read-note', false); if (data) { const { time, index } = data; updateNotificationStats(state, index, 'notifications', x => x-1); @@ -329,7 +327,7 @@ function read(json: any, state: HarkState) { } function unread(json: any, state: HarkState) { - const data = _.get(json, "unread-note", false); + const data = _.get(json, 'unread-note', false); if (data) { const { time, index } = data; updateNotificationStats(state, index, 'notifications', x => x+1); @@ -338,16 +336,16 @@ function unread(json: any, state: HarkState) { } function archive(json: any, state: HarkState) { - const data = _.get(json, "archive", false); + const data = _.get(json, 'archive', false); if (data) { const { index } = data; const time = makePatDa(data.time); const timebox = state.notifications.get(time); if (!timebox) { - console.warn("Modifying nonexistent timebox"); + console.warn('Modifying nonexistent timebox'); return; } - const [archived, unarchived] = _.partition(timebox, (idxNotif) => + const [archived, unarchived] = _.partition(timebox, idxNotif => notifIdxEqual(index, idxNotif.index) ); if(unarchived.length === 0) { @@ -357,6 +355,6 @@ function archive(json: any, state: HarkState) { state.notifications.set(time, unarchived); } const newlyRead = archived.filter(x => !x.notification.read).length; - updateNotificationStats(state, index, 'notifications', (x) => x - newlyRead); + updateNotificationStats(state, index, 'notifications', x => x - newlyRead); } } diff --git a/pkg/interface/src/logic/reducers/invite-update.ts b/pkg/interface/src/logic/reducers/invite-update.ts index 30fb61042b..c4f472be08 100644 --- a/pkg/interface/src/logic/reducers/invite-update.ts +++ b/pkg/interface/src/logic/reducers/invite-update.ts @@ -1,10 +1,9 @@ import _ from 'lodash'; import { StoreState } from '../../store/type'; import { Cage } from '~/types/cage'; -import { InviteUpdate } from '~/types/invite-update'; - -type InviteState = Pick<StoreState, "invites">; +import { InviteUpdate } from '@urbit/api/invite'; +type InviteState = Pick<StoreState, 'invites'>; export default class InviteReducer<S extends InviteState> { reduce(json: Cage, state: S) { diff --git a/pkg/interface/src/logic/reducers/launch-update.ts b/pkg/interface/src/logic/reducers/launch-update.ts index d05145d788..56a00efcea 100644 --- a/pkg/interface/src/logic/reducers/launch-update.ts +++ b/pkg/interface/src/logic/reducers/launch-update.ts @@ -51,12 +51,11 @@ export default class LaunchReducer<S extends LaunchState> { changeIsShown(json: LaunchUpdate, state: S) { const data = _.get(json, 'changeIsShown', false); if (data) { - let tile = state.launch.tiles[data.name]; + const tile = state.launch.tiles[data.name]; console.log(tile); if (tile) { tile.isShown = data.isShown; } } } - } diff --git a/pkg/interface/src/logic/reducers/metadata-update.ts b/pkg/interface/src/logic/reducers/metadata-update.ts index 00070b87e3..41e6d79855 100644 --- a/pkg/interface/src/logic/reducers/metadata-update.ts +++ b/pkg/interface/src/logic/reducers/metadata-update.ts @@ -2,14 +2,14 @@ import _ from 'lodash'; import { StoreState } from '../../store/type'; -import { MetadataUpdate } from '~/types/metadata-update'; +import { MetadataUpdate } from '@urbit/api/metadata'; import { Cage } from '~/types/cage'; type MetadataState = Pick<StoreState, 'associations'>; export default class MetadataReducer<S extends MetadataState> { reduce(json: Cage, state: S) { - let data = json['metadata-update'] + const data = json['metadata-update']; if (data) { console.log(data); this.associations(data, state); @@ -29,13 +29,13 @@ export default class MetadataReducer<S extends MetadataState> { } associations(json: MetadataUpdate, state: S) { - let data = _.get(json, 'associations', false); + const data = _.get(json, 'associations', false); if (data) { - let metadata = state.associations; + const metadata = state.associations; Object.keys(data).forEach((key) => { - let val = data[key]; - let appName = val['app-name']; - let rid = val.resource; + const val = data[key]; + const appName = val['app-name']; + const rid = val.resource; if (!(appName in metadata)) { metadata[appName] = {}; } @@ -50,11 +50,11 @@ export default class MetadataReducer<S extends MetadataState> { } add(json: MetadataUpdate, state: S) { - let data = _.get(json, 'add', false); + const data = _.get(json, 'add', false); if (data) { - let metadata = state.associations; - let appName = data['app-name']; - let appPath = data.resource; + const metadata = state.associations; + const appName = data['app-name']; + const appPath = data.resource; if (!(appName in metadata)) { metadata[appName] = {}; @@ -69,11 +69,11 @@ export default class MetadataReducer<S extends MetadataState> { } update(json: MetadataUpdate, state: S) { - let data = _.get(json, 'update-metadata', false); + const data = _.get(json, 'update-metadata', false); if (data) { - let metadata = state.associations; - let appName = data['app-name']; - let rid = data.resource; + const metadata = state.associations; + const appName = data['app-name']; + const rid = data.resource; if (!(appName in metadata)) { metadata[appName] = {}; @@ -88,11 +88,11 @@ export default class MetadataReducer<S extends MetadataState> { } remove(json: MetadataUpdate, state: S) { - let data = _.get(json, 'remove', false); + const data = _.get(json, 'remove', false); if (data) { - let metadata = state.associations; - let appName = data['app-name']; - let rid = data.resource; + const metadata = state.associations; + const appName = data['app-name']; + const rid = data.resource; if (appName in metadata && rid in metadata[appName]) { delete metadata[appName][rid]; diff --git a/pkg/interface/src/logic/reducers/settings-update.ts b/pkg/interface/src/logic/reducers/settings-update.ts index 9716cbb85c..7afef84ec6 100644 --- a/pkg/interface/src/logic/reducers/settings-update.ts +++ b/pkg/interface/src/logic/reducers/settings-update.ts @@ -1,21 +1,21 @@ import _ from 'lodash'; import { StoreState } from '../../store/type'; import { - SettingsUpdate, -} from '~/types/settings'; + SettingsUpdate +} from '@urbit/api/settings'; type SettingsState = Pick<StoreState, 'settings'>; -export default class SettingsReducer<S extends SettingsState>{ +export default class SettingsReducer<S extends SettingsState> { reduce(json: Cage, state: S) { - let data = json["settings-event"]; + let data = json['settings-event']; if (data) { this.putBucket(data, state); this.delBucket(data, state); this.putEntry(data, state); this.delEntry(data, state); } - data = json["settings-data"]; + data = json['settings-data']; if (data) { this.getAll(data, state); this.getBucket(data, state); @@ -26,31 +26,31 @@ export default class SettingsReducer<S extends SettingsState>{ putBucket(json: SettingsUpdate, state: S) { const data = _.get(json, 'put-bucket', false); if (data) { - state.settings[data["bucket-key"]] = data.bucket; + state.settings[data['bucket-key']] = data.bucket; } } delBucket(json: SettingsUpdate, state: S) { const data = _.get(json, 'del-bucket', false); if (data) { - delete state.settings[data["bucket-key"]]; + delete state.settings[data['bucket-key']]; } } putEntry(json: SettingsUpdate, state: S) { const data = _.get(json, 'put-entry', false); if (data) { - if (!state.settings[data["bucket-key"]]) { - state.settings[data["bucket-key"]] = {}; + if (!state.settings[data['bucket-key']]) { + state.settings[data['bucket-key']] = {}; } - state.settings[data["bucket-key"]][data["entry-key"]] = data.value; + state.settings[data['bucket-key']][data['entry-key']] = data.value; } } delEntry(json: SettingsUpdate, state: S) { const data = _.get(json, 'del-entry', false); if (data) { - delete state.settings[data["bucket-key"]][data["entry-key"]]; + delete state.settings[data['bucket-key']][data['entry-key']]; } } diff --git a/pkg/interface/src/logic/state/local.tsx b/pkg/interface/src/logic/state/local.tsx index 64e68a0ca2..70e76c4687 100644 --- a/pkg/interface/src/logic/state/local.tsx +++ b/pkg/interface/src/logic/state/local.tsx @@ -1,10 +1,9 @@ -import React, { ReactNode } from "react"; +import React, { ReactNode } from 'react'; import f from 'lodash/fp'; import create, { State } from 'zustand'; import { persist } from 'zustand/middleware'; import produce from 'immer'; -import { BackgroundConfig, RemoteContentPolicy, TutorialProgress, tutorialProgress } from "~/types/local-update"; - +import { BackgroundConfig, RemoteContentPolicy, TutorialProgress, tutorialProgress } from '~/types/local-update'; export interface LocalState extends State { hideAvatars: boolean; @@ -22,8 +21,8 @@ export interface LocalState extends State { suspendedFocus?: HTMLElement; toggleOmnibox: () => void; set: (fn: (state: LocalState) => void) => void -}; -export const selectLocalState = +} +export const selectLocalState = <K extends keyof LocalState>(keys: K[]) => f.pick<LocalState, K>(keys); const useLocalState = create<LocalState>(persist((set, get) => ({ @@ -33,21 +32,21 @@ const useLocalState = create<LocalState>(persist((set, get) => ({ hideNicknames: false, tutorialProgress: 'hidden', tutorialRef: null, - setTutorialRef: (el: HTMLElement | null) => set(produce(state => { + setTutorialRef: (el: HTMLElement | null) => set(produce((state) => { state.tutorialRef = el; })), - hideTutorial: () => set(produce(state => { + hideTutorial: () => set(produce((state) => { state.tutorialProgress = 'hidden'; state.tutorialRef = null; })), - nextTutStep: () => set(produce(state => { - const currIdx = tutorialProgress.findIndex(p => p === state.tutorialProgress) + nextTutStep: () => set(produce((state) => { + const currIdx = tutorialProgress.findIndex(p => p === state.tutorialProgress); if(currIdx < tutorialProgress.length) { state.tutorialProgress = tutorialProgress[currIdx + 1]; } })), - prevTutStep: () => set(produce(state => { - const currIdx = tutorialProgress.findIndex(p => p === state.tutorialProgress) + prevTutStep: () => set(produce((state) => { + const currIdx = tutorialProgress.findIndex(p => p === state.tutorialProgress); if(currIdx > 0) { state.tutorialProgress = tutorialProgress[currIdx - 1]; } @@ -56,11 +55,11 @@ const useLocalState = create<LocalState>(persist((set, get) => ({ imageShown: true, audioShown: true, videoShown: true, - oembedShown: true, + oembedShown: true }, omniboxShown: false, suspendedFocus: undefined, - toggleOmnibox: () => set(produce(state => { + toggleOmnibox: () => set(produce((state) => { state.omniboxShown = !state.omniboxShown; if (typeof state.suspendedFocus?.focus === 'function') { state.suspendedFocus.focus(); @@ -86,7 +85,7 @@ function withLocalState<P, S extends keyof LocalState>(Component: any, stateMemb (object, key) => ({ ...object, [key]: state[key] }), {} ) ): useLocalState(); - return <Component ref={ref} {...localState} {...props} /> + return <Component ref={ref} {...localState} {...props} />; }); } diff --git a/pkg/interface/src/logic/store/base.ts b/pkg/interface/src/logic/store/base.ts index 9a48ebd80e..faeacca1e9 100644 --- a/pkg/interface/src/logic/store/base.ts +++ b/pkg/interface/src/logic/store/base.ts @@ -19,7 +19,7 @@ export default class BaseStore<S extends object> { clear() { this.handleEvent({ - data: { clear: true }, + data: { clear: true } }); } @@ -30,7 +30,7 @@ export default class BaseStore<S extends object> { return; } - if ("clear" in json && json.clear) { + if ('clear' in json && json.clear) { this.setState(this.initialState()); return; } diff --git a/pkg/interface/src/logic/store/store.ts b/pkg/interface/src/logic/store/store.ts index b2ab60c6c8..e56723ace9 100644 --- a/pkg/interface/src/logic/store/store.ts +++ b/pkg/interface/src/logic/store/store.ts @@ -6,7 +6,7 @@ import MetadataReducer from '../reducers/metadata-update'; import LocalReducer from '../reducers/local'; import { StoreState } from './type'; -import { Timebox } from '~/types'; +import { Timebox } from '@urbit/api'; import { Cage } from '~/types/cage'; import S3Reducer from '../reducers/s3-update'; import { GraphReducer } from '../reducers/graph-update'; @@ -16,10 +16,9 @@ import GroupReducer from '../reducers/group-update'; import LaunchReducer from '../reducers/launch-update'; import ConnectionReducer from '../reducers/connection'; import SettingsReducer from '../reducers/settings-update'; -import {OrderedMap} from '../lib/OrderedMap'; +import { OrderedMap } from '../lib/OrderedMap'; import { BigIntOrderedMap } from '../lib/BigIntOrderedMap'; -import {GroupViewReducer} from '../reducers/group-view'; - +import { GroupViewReducer } from '../reducers/group-view'; export default class GlobalStore extends BaseStore<StoreState> { inviteReducer = new InviteReducer(); @@ -58,7 +57,7 @@ export default class GlobalStore extends BaseStore<StoreState> { invites: {}, associations: { groups: {}, - graph: {}, + graph: {} }, groups: {}, groupKeys: new Set(), @@ -67,7 +66,7 @@ export default class GlobalStore extends BaseStore<StoreState> { launch: { firstTime: false, tileOrdering: [], - tiles: {}, + tiles: {} }, weather: {}, userLocation: null, @@ -87,7 +86,7 @@ export default class GlobalStore extends BaseStore<StoreState> { notificationsGraphConfig: { watchOnSelf: false, mentions: false, - watching: [], + watching: [] }, unreads: { graph: {}, @@ -95,7 +94,7 @@ export default class GlobalStore extends BaseStore<StoreState> { }, notificationsCount: 0, settings: {}, - pendingJoin: {}, + pendingJoin: {} }; } diff --git a/pkg/interface/src/logic/store/type.ts b/pkg/interface/src/logic/store/type.ts index 96b68f8a2d..2348aedf95 100644 --- a/pkg/interface/src/logic/store/type.ts +++ b/pkg/interface/src/logic/store/type.ts @@ -1,20 +1,20 @@ -import { Path } from '~/types/noun'; -import { Invites } from '~/types/invite-update'; -import { Associations } from '~/types/metadata-update'; -import { Rolodex } from '~/types/contact-update'; -import { Groups } from '~/types/group-update'; +import { Path } from '@urbit/api'; +import { Invites } from '@urbit/api/invite'; +import { Associations } from '@urbit/api/metadata'; +import { Rolodex } from '@urbit/api/contacts'; +import { Groups } from '@urbit/api/groups'; import { S3State } from '~/types/s3-update'; import { LaunchState, WeatherState } from '~/types/launch-update'; import { ConnectionStatus } from '~/types/connection'; -import {Graphs} from '~/types/graph-update'; +import { Graphs } from '@urbit/api/graph'; import { Notifications, - NotificationGraphConfig, + NotificationGraphConfig, GroupNotificationsConfig, Unreads, JoinRequests, Patp -} from "~/types"; +} from '@urbit/api'; export interface StoreState { // local state @@ -35,7 +35,6 @@ export interface StoreState { graphs: Graphs; graphKeys: Set<string>; - // App specific states // launch state launch: LaunchState; diff --git a/pkg/interface/src/logic/subscription/base.ts b/pkg/interface/src/logic/subscription/base.ts index eb4b3b3afa..debf665415 100644 --- a/pkg/interface/src/logic/subscription/base.ts +++ b/pkg/interface/src/logic/subscription/base.ts @@ -1,6 +1,6 @@ -import BaseStore from "../store/base"; -import BaseApi from "../api/base"; -import { Path } from "~/types/noun"; +import BaseStore from '../store/base'; +import BaseApi from '../api/base'; +import { Path } from '@urbit/api'; export default class BaseSubscription<S extends object> { private errorCount = 0; @@ -19,24 +19,24 @@ export default class BaseSubscription<S extends object> { // Exists to allow subclasses to hook restart() { - this.handleEvent({ data: { connection: 'reconnecting' }}); + this.handleEvent({ data: { connection: 'reconnecting' } }); this.start(); } onChannelOpen(e: any) { this.errorCount = 0; - this.handleEvent({ data: { connection: 'connected' }}); + this.handleEvent({ data: { connection: 'connected' } }); } onChannelError(err) { console.error('event source error: ', err); this.errorCount++; if(this.errorCount >= 5) { - console.error("bailing out, too many retries"); - this.handleEvent({ data: { connection: 'disconnected' }}); + console.error('bailing out, too many retries'); + this.handleEvent({ data: { connection: 'disconnected' } }); return; } - this.handleEvent({ data: { connection: 'reconnecting' }}); + this.handleEvent({ data: { connection: 'reconnecting' } }); setTimeout(() => { this.restart(); }, Math.pow(2,this.errorCount - 1) * 750); diff --git a/pkg/interface/src/logic/subscription/global.ts b/pkg/interface/src/logic/subscription/global.ts index a434c41e00..5b444f06df 100644 --- a/pkg/interface/src/logic/subscription/global.ts +++ b/pkg/interface/src/logic/subscription/global.ts @@ -1,9 +1,8 @@ import BaseSubscription from './base'; import { StoreState } from '../store/type'; -import { Path } from '~/types/noun'; +import { Path } from '@urbit/api'; import _ from 'lodash'; - /** * Path to subscribe on and app to subscribe to */ @@ -68,7 +67,7 @@ export default class GlobalSubscription extends BaseSubscription<StoreState> { } stopApp(app: AppName) { - this.openSubscriptions[app].map(id => this.unsubscribe(id)) + this.openSubscriptions[app].map(id => this.unsubscribe(id)); this.openSubscriptions[app] = []; } } diff --git a/pkg/interface/src/types/cage.ts b/pkg/interface/src/types/cage.ts index 266188543f..044fb46212 100644 --- a/pkg/interface/src/types/cage.ts +++ b/pkg/interface/src/types/cage.ts @@ -1,21 +1,17 @@ -import { ContactUpdate } from "./contact-update"; -import { InviteUpdate } from "./invite-update"; -import { LocalUpdate } from "./local-update"; -import { MetadataUpdate } from "./metadata-update"; -import { GroupUpdate } from "./group-update"; -import { LaunchUpdate, WeatherState } from "./launch-update"; -import { ConnectionStatus } from "./connection"; -import { SettingsUpdate } from "./settings"; +import { LocalUpdate } from './local-update'; +import { LaunchUpdate, WeatherState } from './launch-update'; +import { ConnectionStatus } from './connection'; +import { ContactUpdate, GroupUpdate, InviteUpdate, MetadataUpdate } from '@urbit/api'; +import { SettingsUpdate } from '@urbit/api/settings'; interface MarksToTypes { readonly json: any; - readonly "contact-update": ContactUpdate; - readonly "invite-update": InviteUpdate; - readonly "metadata-update": MetadataUpdate; + readonly 'contact-update': ContactUpdate; + readonly 'invite-update': InviteUpdate; + readonly 'metadata-update': MetadataUpdate; readonly groupUpdate: GroupUpdate; - readonly "launch-update": LaunchUpdate; - readonly "link-listen-update": LinkListenUpdate; - readonly "settings-event": SettingsUpdate; + readonly 'launch-update': LaunchUpdate; + readonly 'settings-event': SettingsUpdate; // not really marks but w/e readonly 'local': LocalUpdate; readonly 'weather': WeatherState | {}; diff --git a/pkg/interface/src/types/connection.ts b/pkg/interface/src/types/connection.ts index 6f624238e8..38b06b09aa 100644 --- a/pkg/interface/src/types/connection.ts +++ b/pkg/interface/src/types/connection.ts @@ -1,2 +1 @@ - export type ConnectionStatus = 'reconnecting' | 'disconnected' | 'connected'; diff --git a/pkg/interface/src/types/contact-update.ts b/pkg/interface/src/types/contact-update.ts deleted file mode 100644 index e48afc739c..0000000000 --- a/pkg/interface/src/types/contact-update.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Path, Patp } from "./noun"; - -export type ContactUpdate = - | ContactUpdateCreate - | ContactUpdateDelete - | ContactUpdateAdd - | ContactUpdateRemove - | ContactUpdateEdit - | ContactUpdateInitial - | ContactUpdateContacts; - -interface ContactUpdateCreate { - create: Path; -} - -interface ContactUpdateDelete { - delete: Path; -} - -interface ContactUpdateAdd { - add: { - path: Path; - ship: Patp; - contact: Contact; - }; -} - -interface ContactUpdateRemove { - remove: { - path: Path; - ship: Patp; - }; -} - -interface ContactUpdateEdit { - edit: { - path: Path; - ship: Patp; - "edit-field": ContactEdit; - }; -} - -interface ContactUpdateInitial { - initial: Rolodex; -} - -interface ContactUpdateContacts { - contacts: { - path: Path; - contacts: Contacts; - }; -} - -// - -type ContactAvatar = ContactAvatarUrl | ContactAvatarOcts; - -export type Rolodex = { - [p in Path]: Contacts; -}; - -export type Contacts = { - [p in Patp]: Contact; -}; - -interface ContactAvatarUrl { - url: string; -} - -interface ContactAvatarOcts { - octs: string; -} -export interface Contact { - nickname: string; - email: string; - phone: string; - website: string; - notes: string; - color: string; - avatar: string | null; -} - -export type ContactEdit = { - [k in keyof Contact]: Contact[k]; -}; diff --git a/pkg/interface/src/types/global.ts b/pkg/interface/src/types/global.ts index d43a77b1b7..4294f574f2 100644 --- a/pkg/interface/src/types/global.ts +++ b/pkg/interface/src/types/global.ts @@ -1,4 +1,4 @@ -import { PatpNoSig } from "./noun"; +import { PatpNoSig } from '@urbit/api'; declare global { interface Window { diff --git a/pkg/interface/src/types/graph-update.ts b/pkg/interface/src/types/graph-update.ts deleted file mode 100644 index ad071b97d2..0000000000 --- a/pkg/interface/src/types/graph-update.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Patp } from "./noun"; -import { BigIntOrderedMap } from "~/logic/lib/BigIntOrderedMap"; - -export interface TextContent { - text: string; -} -export interface UrlContent { - url: string; -} -export interface CodeContent { - code: { - expresssion: string; - output: string | undefined; - } -} - -export interface ReferenceContent { - uid: string; -} -export interface MentionContent { - mention: string; -} -export type Content = - | TextContent - | UrlContent - | CodeContent - | ReferenceContent - | MentionContent; - -export interface Post { - author: Patp; - contents: Content[]; - hash: string | null; - index: string; - pending?: boolean; - signatures: string[]; - "time-sent": number; -} - -export interface GraphNode { - children: Graph; - post: Post; -} - -export type Graph = BigIntOrderedMap<GraphNode>; - -export type Graphs = { [rid: string]: Graph }; diff --git a/pkg/interface/src/types/group-update.ts b/pkg/interface/src/types/group-update.ts deleted file mode 100644 index ad7c35004e..0000000000 --- a/pkg/interface/src/types/group-update.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { PatpNoSig, Path, Jug, ShipRank, Enc } from './noun'; - -export const roleTags = ['janitor', 'moderator', 'admin'] as const; -export type RoleTags = typeof roleTags[number]; -interface RoleTag { - tag: 'admin' | 'moderator' | 'janitor'; -} - -interface AppTag { - app: string; - resource: string; - tag: string; -} - -export type Tag = AppTag | RoleTag; - -export interface InvitePolicy { - invite: { - pending: Set<PatpNoSig>; - }; -} - -export interface OpenPolicy { - open: { - banned: Set<PatpNoSig>; - banRanks: Set<ShipRank>; - }; -} - -export interface Resource { - name: string; - ship: PatpNoSig; -} - -export type OpenPolicyDiff = - | AllowRanksDiff - | BanRanksDiff - | AllowShipsDiff - | BanShipsDiff; - -interface AllowRanksDiff { - allowRanks: ShipRank[]; -} - -interface BanRanksDiff { - banRanks: ShipRank[]; -} - -interface AllowShipsDiff { - allowShips: PatpNoSig[]; -} - -interface BanShipsDiff { - banShips: PatpNoSig[]; -} - -export type InvitePolicyDiff = AddInvitesDiff | RemoveInvitesDiff; - -interface AddInvitesDiff { - addInvites: PatpNoSig[]; -} - -interface RemoveInvitesDiff { - removeInvites: PatpNoSig[]; -} - -interface ReplacePolicyDiff { - replace: GroupPolicy; -} - -export type GroupPolicyDiff = - | { open: OpenPolicyDiff } - | { invite: InvitePolicyDiff } - | ReplacePolicyDiff; - -export type GroupPolicy = OpenPolicy | InvitePolicy; - -interface TaggedShips { - [tag: string]: Set<PatpNoSig>; -} - -export interface Tags { - role: TaggedShips; - [app: string]: TaggedShips; -} - -export interface Group { - members: Set<PatpNoSig>; - tags: Tags; - policy: GroupPolicy; - hidden: boolean; -} - -export type Groups = { - [p in Path]: Group; -}; - -interface GroupUpdateInitial { - initial: Enc<Groups>; -} - -interface GroupUpdateAddGroup { - addGroup: { - resource: Resource; - policy: Enc<GroupPolicy>; - hidden: boolean; - }; -} - -interface GroupUpdateAddMembers { - addMembers: { - ships: PatpNoSig[]; - resource: Resource; - }; -} - -interface GroupUpdateRemoveMembers { - removeMembers: { - ships: PatpNoSig[]; - resource: Resource; - }; -} - -interface GroupUpdateAddTag { - addTag: { - tag: Tag; - resource: Resource; - ships: PatpNoSig[]; - }; -} - -interface GroupUpdateRemoveTag { - removeTag: { - tag: Tag; - resource: Resource; - ships: PatpNoSig; - }; -} - -interface GroupUpdateChangePolicy { - changePolicy: { resource: Resource; diff: GroupPolicyDiff }; -} - -interface GroupUpdateRemoveGroup { - removeGroup: { - resource: Resource; - }; -} - -interface GroupUpdateExpose { - expose: { - resource: Resource; - }; -} - -interface GroupUpdateInitialGroup { - initialGroup: { - resource: Resource; - group: Enc<Group>; - }; -} - -export type GroupUpdate = - | GroupUpdateInitial - | GroupUpdateAddGroup - | GroupUpdateAddMembers - | GroupUpdateRemoveMembers - | GroupUpdateAddTag - | GroupUpdateRemoveTag - | GroupUpdateChangePolicy - | GroupUpdateRemoveGroup - | GroupUpdateExpose - | GroupUpdateInitialGroup; - -export type GroupAction = Omit<GroupUpdate, 'initialGroup' | 'initial'>; - -export const groupBunts = { - group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), - policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) -}; diff --git a/pkg/interface/src/types/group-view.ts b/pkg/interface/src/types/group-view.ts deleted file mode 100644 index 635a2954a3..0000000000 --- a/pkg/interface/src/types/group-view.ts +++ /dev/null @@ -1,11 +0,0 @@ -export const joinError = ['no-perms', 'strange'] as const; -export type JoinError = typeof joinError[number]; -export const joinResult = ['done', ...joinError] as const; -export type JoinResult = typeof joinResult[number]; - -export const joinProgress = ['start', 'added', ...joinResult] as const; -export type JoinProgress = typeof joinProgress[number]; - -export interface JoinRequests { - [rid: string]: JoinProgress; -} diff --git a/pkg/interface/src/types/hark-update.ts b/pkg/interface/src/types/hark-update.ts deleted file mode 100644 index 156f96b66c..0000000000 --- a/pkg/interface/src/types/hark-update.ts +++ /dev/null @@ -1,68 +0,0 @@ -import _ from "lodash"; -import { Post } from "./graph-update"; -import { GroupUpdate } from "./group-update"; -import { BigIntOrderedMap } from "~/logic/lib/BigIntOrderedMap"; - -export type GraphNotifDescription = "link" | "comment" | "note" | "mention"; - -export interface UnreadStats { - unreads: Set<string> | number; - notifications: number; - last: number; -} - -export interface GraphNotifIndex { - graph: string; - group: string; - description: GraphNotifDescription; - module: string; - index: string; -} - -export interface GroupNotifIndex { - group: string; - description: string; -} - -export type NotifIndex = - | { graph: GraphNotifIndex } - | { group: GroupNotifIndex }; - -export type GraphNotificationContents = Post[]; - -export type GroupNotificationContents = GroupUpdate[]; - -export type NotificationContents = - | { graph: GraphNotificationContents } - | { group: GroupNotificationContents }; -export interface Notification { - read: boolean; - time: number; - contents: NotificationContents; -} - -export interface IndexedNotification { - index: NotifIndex; - notification: Notification; -} - -export type Timebox = IndexedNotification[]; - -export type Notifications = BigIntOrderedMap<Timebox>; - -export interface NotificationGraphConfig { - watchOnSelf: boolean; - mentions: boolean; - watching: WatchedIndex[] -} - -export interface Unreads { - graph: Record<string, Record<string, UnreadStats>>; - group: Record<string, UnreadStats>; -} - -interface WatchedIndex { - graph: string; - index: string; -} -export type GroupNotificationsConfig = string[]; diff --git a/pkg/interface/src/types/index.ts b/pkg/interface/src/types/index.ts index 5c1d81b0b9..c4abcba640 100644 --- a/pkg/interface/src/types/index.ts +++ b/pkg/interface/src/types/index.ts @@ -1,16 +1,8 @@ export * from './cage'; export * from './connection'; -export * from './contact-update'; export * from './global'; -export * from './group-update'; -export * from './group-view'; -export * from './graph-update'; -export * from './hark-update'; -export * from './invite-update'; export * from './launch-update'; export * from './local-update'; -export * from './metadata-update'; -export * from './noun'; export * from './s3-update'; export * from './workspace'; export * from './util'; diff --git a/pkg/interface/src/types/invite-update.ts b/pkg/interface/src/types/invite-update.ts deleted file mode 100644 index b897687a45..0000000000 --- a/pkg/interface/src/types/invite-update.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Serial, PatpNoSig, Path } from './noun'; -import {Resource} from './group-update'; - -export type InviteUpdate = - InviteUpdateInitial -| InviteUpdateCreate -| InviteUpdateDelete -| InviteUpdateInvite -| InviteUpdateAccepted -| InviteUpdateDecline; - - -interface InviteUpdateInitial { - initial: Invites; -} - -interface InviteUpdateCreate { - create: { - path: Path; - }; -} - -interface InviteUpdateDelete { - delete: { - path: Path; - }; -} - -interface InviteUpdateInvite { - invite: { - path: Path; - uid: Serial; - invite: Invite; - }; -} - -interface InviteUpdateAccepted { - accepted: { - path: Path; - uid: Serial; - }; -} - -interface InviteUpdateDecline { - decline: { - path: Path; - uid: Serial; - }; -} - -// actual datastructures - - -export type Invites = { - [p in Path]: AppInvites; -}; - -export type AppInvites = { - [s in Serial]: Invite; -}; - -export interface Invite { - app: string; - recipient: PatpNoSig; - resource: Resource; - ship: PatpNoSig; - text: string; -} diff --git a/pkg/interface/src/types/launch-update.ts b/pkg/interface/src/types/launch-update.ts index 0999878455..879c3620b7 100644 --- a/pkg/interface/src/types/launch-update.ts +++ b/pkg/interface/src/types/launch-update.ts @@ -1,11 +1,9 @@ - export type LaunchUpdate = LaunchUpdateInitial | LaunchUpdateFirstTime | LaunchUpdateOrder | LaunchUpdateIsShown; - interface LaunchUpdateInitial { initial: LaunchState; } diff --git a/pkg/interface/src/types/metadata-update.ts b/pkg/interface/src/types/metadata-update.ts deleted file mode 100644 index 640bd5a9b4..0000000000 --- a/pkg/interface/src/types/metadata-update.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { AppName, Path, Patp } from './noun'; - - -export type MetadataUpdate = - MetadataUpdateInitial -| MetadataUpdateAdd -| MetadataUpdateUpdate -| MetadataUpdateRemove; - -interface MetadataUpdateInitial { - associations: ResourceAssociations; -} - -type ResourceAssociations = { - [p in Path]: Association; -} - -type MetadataUpdateAdd = { - add: Association; -} - -type MetadataUpdateUpdate = { - update: Association; -} - -type MetadataUpdateRemove = { - remove: Resource & { - group: Path; - } -} - -export interface MetadataUpdatePreview { - group: string; - channels: Associations; - "channel-count": number; - members: number; - metadata: Metadata; -} - -export type Associations = Record<AppName, AppAssociations>; - -export type AppAssociations = { - [p in Path]: Association; -} - -interface Resource { - resource: Path; - 'app-name': AppName; -} - -export type Association = Resource & { - group: Path; - metadata: Metadata; -}; - -export interface Metadata { - color: string; - creator: Patp; - 'date-created': string; - description: string; - title: string; - module: string; - picture: string; - preview: boolean; - vip: PermVariation; -} - -export type PermVariation = '' | 'reader-comments' | 'member-metadata'; diff --git a/pkg/interface/src/types/noun.ts b/pkg/interface/src/types/noun.ts deleted file mode 100644 index f566f02403..0000000000 --- a/pkg/interface/src/types/noun.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Martian embassy - */ - -// an urbit style path rendered as string -export type Path = string; - -// patp including leading sig -export type Patp = string; - -// patp excluding leading sig -export type PatpNoSig = string; - -// @uvH encoded string -export type Serial = string; - -// jug from hoon -export type Jug<K,V> = Map<K,Set<V>>; - -// name of app -export type AppName = 'contacts' | 'groups' | 'graph'; - -export function getTagFromFrond<O>(frond: O): keyof O { - const tags = Object.keys(frond) as Array<keyof O>; - const tag = tags[0]; - if(!tag) { - throw new Error("bad frond"); - } - return tag; -} - -export type ShipRank = 'czar' | 'king' | 'duke' | 'earl' | 'pawn'; - - -export type SetElement<S> = S extends Set<(infer T)> ? T : never; -export type MapKey<M> = M extends Map<(infer K), any> ? K : never; -export type MapValue<M> = M extends Map<any, (infer V)> ? V : never; - -/** - * Turns sets into arrays and maps into objects so we can send them over the wire - */ -export type Enc<S> = - S extends Set<any> ? - Enc<SetElement<S>>[] : - S extends Map<string, any> ? - { [s: string]: Enc<MapValue<S>> } : - S extends object ? - { [K in keyof S]: Enc<S[K]> } : - S; diff --git a/pkg/interface/src/types/s3-update.ts b/pkg/interface/src/types/s3-update.ts index 3dfa516229..88763b7d66 100644 --- a/pkg/interface/src/types/s3-update.ts +++ b/pkg/interface/src/types/s3-update.ts @@ -1,6 +1,4 @@ - - - export interface S3Credentials { +export interface S3Credentials { endpoint: string; accessKeyId: string; secretAccessKey: string; @@ -51,7 +49,6 @@ interface S3UpdateSecretAccessKey { setSecretAccessKey: string; } - export type S3Update = S3UpdateCredentials | S3UpdateConfiguration diff --git a/pkg/interface/src/types/settings.ts b/pkg/interface/src/types/settings.ts deleted file mode 100644 index f0f50df491..0000000000 --- a/pkg/interface/src/types/settings.ts +++ /dev/null @@ -1,55 +0,0 @@ -export type Key = string; -export type Value = string | boolean | number; -export type Bucket = Map<string, Value>; -export type Settings = Map<string, Bucket>; - -interface PutBucket { - "put-bucket": { - "bucket-key": Key; - "bucket": Bucket; - }; -} - -interface DelBucket { - "del-bucket": { - "bucket-key": Key; - }; -} - -interface PutEntry { - "put-entry": { - "bucket-key": Key; - "entry-key": Key; - "value": Value; - }; -} - -interface DelEntry { - "del-entry": { - "bucket-key": Key; - "entry-key": Key; - }; -} - -interface AllData { - "all": Settings; -} - -interface BucketData { - "bucket": Bucket; -} - -interface EntryData { - "entry": Value; -} - -export type SettingsUpdate = - | PutBucket - | DelBucket - | PutEntry - | DelEntry; - -export type SettingsData = - | AllData - | BucketData - | EntryData; diff --git a/pkg/interface/src/types/util.ts b/pkg/interface/src/types/util.ts index 2f3d390e5d..f247978caf 100644 --- a/pkg/interface/src/types/util.ts +++ b/pkg/interface/src/types/util.ts @@ -1,4 +1,4 @@ -import { Icon } from "@tlon/indigo-react"; +import { Icon } from '@tlon/indigo-react'; export type PropFunc<T extends (...args: any[]) => any> = Parameters<T>[0]; export type Primitive = string | number | undefined | symbol | null | boolean; diff --git a/pkg/interface/src/types/workspace.ts b/pkg/interface/src/types/workspace.ts index 69da82ed3f..e8238e7251 100644 --- a/pkg/interface/src/types/workspace.ts +++ b/pkg/interface/src/types/workspace.ts @@ -1,5 +1,3 @@ - - interface GroupWorkspace { type: 'group'; group: string; diff --git a/pkg/interface/src/views/apps/chat/ChatResource.tsx b/pkg/interface/src/views/apps/chat/ChatResource.tsx index 5e8a35e95b..03a887a88e 100644 --- a/pkg/interface/src/views/apps/chat/ChatResource.tsx +++ b/pkg/interface/src/views/apps/chat/ChatResource.tsx @@ -3,7 +3,7 @@ import { RouteComponentProps } from 'react-router-dom'; import { Col } from '@tlon/indigo-react'; import _ from 'lodash'; -import { Association } from '~/types/metadata-update'; +import { Association } from '@urbit/api/metadata'; import { StoreState } from '~/logic/store/type'; import { useFileDrag } from '~/logic/lib/useDrag'; import ChatWindow from './components/ChatWindow'; @@ -86,12 +86,16 @@ export function ChatResource(props: ChatResourceProps) { useEffect(() => { (async () => { - if (!res) { return; } - if (!group) { return; } + if (!res) { + return; +} + if (!group) { + return; +} if (group.hidden) { const members = _.compact(await Promise.all( Array.from(group.members) - .map(s => { + .map((s) => { const ship = `~${s}`; if(s === window.ship) { return Promise.resolve(null); @@ -101,7 +105,7 @@ export function ChatResource(props: ChatResourceProps) { 'personal', ship, true - ).then(isAllowed => { + ).then((isAllowed) => { return isAllowed ? null : ship; }); }) @@ -113,7 +117,6 @@ export function ChatResource(props: ChatResourceProps) { } else { setShowBanner(false); } - } else { const groupShared = await props.api.contacts.fetchIsAllowed( `~${window.ship}`, @@ -124,14 +127,13 @@ export function ChatResource(props: ChatResourceProps) { setShowBanner(!groupShared); } })(); - }, [groupPath]); if(!graph) { return <Loading />; } - var modifiedContacts = { ...contacts }; + const modifiedContacts = { ...contacts }; delete modifiedContacts[`~${window.ship}`]; return ( @@ -145,7 +147,7 @@ export function ChatResource(props: ChatResourceProps) { setShowBanner={setShowBanner} group={group} groupPath={groupPath} - /> + /> {dragging && <SubmitDragger />} <ChatWindow history={props.history} diff --git a/pkg/interface/src/views/apps/chat/components/ChatInput.tsx b/pkg/interface/src/views/apps/chat/components/ChatInput.tsx index 664e4e9ac5..393b2087b3 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatInput.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatInput.tsx @@ -7,7 +7,7 @@ import { createPost } from '~/logic/api/graph'; import tokenizeMessage, { isUrl } from '~/logic/lib/tokenizeMessage'; import GlobalApi from '~/logic/api/global'; import { Envelope } from '~/types/chat-update'; -import { Contacts, Content } from '~/types'; +import { Contacts, Content } from '@urbit/api'; import { Row, BaseImage, Box, Icon, LoadingSpinner } from '@tlon/indigo-react'; import withS3 from '~/views/components/withS3'; import { withLocalState } from '~/logic/state/local'; @@ -15,12 +15,12 @@ import { withLocalState } from '~/logic/state/local'; type ChatInputProps = IuseS3 & { api: GlobalApi; numMsgs: number; - station: any; - ourContact: any; + station: unknown; + ourContact: unknown; envelopes: Envelope[]; contacts: Contacts; onUnmount(msg: string): void; - s3: any; + s3: unknown; placeholder: string; message: string; deleteMessage(): void; @@ -67,14 +67,14 @@ class ChatInput extends Component<ChatInputProps, ChatInputState> { inCodeMode: false }, async () => { const output = await props.api.graph.eval(text); - const contents: Content[] = [{ code: { output, expression: text }}]; + const contents: Content[] = [{ code: { output, expression: text } }]; const post = createPost(contents); props.api.graph.addPost(ship, name, post); }); return; } - const post = createPost(tokenizeMessage((text))) + const post = createPost(tokenizeMessage((text))); props.deleteMessage(); @@ -110,7 +110,7 @@ class ChatInput extends Component<ChatInputProps, ChatInputState> { if (!this.props.canUpload) { return; } - Array.from(files).forEach(file => { + Array.from(files).forEach((file) => { this.props.uploadDefault(file) .then(this.uploadSuccess) .catch(this.uploadError); @@ -178,7 +178,7 @@ class ChatInput extends Component<ChatInputProps, ChatInputState> { width="16" height="16" onClick={() => this.props.promptUpload().then(this.uploadSuccess)} - /> + /> : null } </Box> @@ -200,4 +200,4 @@ class ChatInput extends Component<ChatInputProps, ChatInputState> { } } -export default withLocalState(withS3(ChatInput, {accept: 'image/*'}), ['hideAvatars']); +export default withLocalState(withS3(ChatInput, { accept: 'image/*' }), ['hideAvatars']); diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 6252383ddb..7f7cca0a37 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -17,7 +17,7 @@ import { useShowNickname, useHovering } from '~/logic/lib/util'; -import { Group, Association, Contacts, Post, Groups, Associations } from '~/types'; +import { Group, Association, Contacts, Post, Groups, Associations } from '@urbit/api'; import TextContent from './content/text'; import CodeContent from './content/code'; import RemoteContent from '~/views/components/RemoteContent'; @@ -66,12 +66,12 @@ interface ChatMessageProps { contacts: Contacts; className?: string; isPending: boolean; - style?: any; + style?: unknown; scrollWindow: HTMLDivElement; isLastMessage?: boolean; unreadMarkerRef: React.RefObject<HTMLDivElement>; - history: any; - api: any; + history: unknown; + api: GlobalApi; highlighted?: boolean; } @@ -149,7 +149,7 @@ export default class ChatMessage extends Component<ChatMessageProps> { highlighted, fontSize, associations, - groups, + groups }; const unreadContainerStyle = { @@ -230,7 +230,7 @@ export const MessageWithSigil = (props) => { fontSize } = props; - const dark = useLocalState((state) => state.dark); + const dark = useLocalState(state => state.dark); const datestamp = moment .unix(msg['time-sent'] / 1000) @@ -255,7 +255,7 @@ export const MessageWithSigil = (props) => { const [showOverlay, setShowOverlay] = useState(false); const toggleOverlay = () => { - setShowOverlay((value) => !value); + setShowOverlay(value => !value); }; const showCopyNotice = () => { diff --git a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx index 8db2935a50..54d10b9d1f 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx @@ -1,22 +1,17 @@ -import React, { Component } from "react"; -import { RouteComponentProps } from "react-router-dom"; -import _ from "lodash"; +import React, { Component } from 'react'; +import { RouteComponentProps } from 'react-router-dom'; +import _ from 'lodash'; import bigInt, { BigInteger } from 'big-integer'; import { Col } from '@tlon/indigo-react'; +import { Patp, Contacts, Association, Associations, Group, Groups, Graph } from '@urbit/api'; -import GlobalApi from "~/logic/api/global"; -import { Patp, Path } from "~/types/noun"; -import { Contacts } from "~/types/contact-update"; -import { Association, Associations } from "~/types/metadata-update"; -import { Group, Groups } from "~/types/group-update"; -import { Envelope, IMessage } from "~/types/chat-update"; -import { Graph } from "~/types"; +import GlobalApi from '~/logic/api/global'; -import VirtualScroller from "~/views/components/VirtualScroller"; +import VirtualScroller from '~/views/components/VirtualScroller'; import ChatMessage, { MessagePlaceholder } from './ChatMessage'; -import { UnreadNotice } from "./unread-notice"; +import { UnreadNotice } from './unread-notice'; const INITIAL_LOAD = 20; const DEFAULT_BACKLOG_SIZE = 100; @@ -66,8 +61,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta unreadIndex: bigInt.zero }; - - this.dismissUnread = this.dismissUnread.bind(this); this.scrollToUnread = this.scrollToUnread.bind(this); this.handleWindowBlur = this.handleWindowBlur.bind(this); @@ -110,7 +103,7 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta } this.setState({ unreadIndex - }) + }); } handleWindowBlur() { @@ -135,7 +128,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta this.calculateUnreadIndex(); } - if(this.prevSize !== graph.size) { if(this.state.unreadIndex.eq(bigInt.zero)) { this.calculateUnreadIndex(); @@ -170,8 +162,10 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta dismissUnread() { const { association } = this.props; - if (this.state.fetchPending) return; - if (this.props.unreadCount === 0) return; + if (this.state.fetchPending) +return; + if (this.props.unreadCount === 0) +return; this.props.api.hark.markCountAsRead(association, '/', 'message'); this.props.api.hark.markCountAsRead(association, '/', 'mention'); } @@ -189,14 +183,14 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta const currSize = graph.size; if(newer && !this.loadedNewest) { const [index] = graph.peekLargest()!; - await api.graph.getYoungerSiblings(ship,name, 20, `/${index.toString()}`) + await api.graph.getYoungerSiblings(ship,name, 20, `/${index.toString()}`); if(currSize === graph.size) { console.log('loaded all newest'); this.loadedNewest = true; } } else if(!newer && !this.loadedOldest) { const [index] = graph.peekSmallest()!; - await api.graph.getOlderSiblings(ship,name, 20, `/${index.toString()}`) + await api.graph.getOlderSiblings(ship,name, 20, `/${index.toString()}`); this.calculateUnreadIndex(); if(currSize === graph.size) { console.log('loaded all oldest'); @@ -204,7 +198,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta } } this.setState({ fetchPending: false }); - } onScroll({ scrollTop, scrollHeight, windowHeight }) { @@ -216,10 +209,13 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta } dismissIfLineVisible() { - if (this.props.unreadCount === 0) return; - if (!this.unreadMarkerRef.current || !this.virtualList?.window) return; + if (this.props.unreadCount === 0) +return; + if (!this.unreadMarkerRef.current || !this.virtualList?.window) +return; const parent = this.unreadMarkerRef.current.parentElement?.parentElement; - if (!parent) return; + if (!parent) +return; const { scrollTop, scrollHeight, offsetHeight } = this.virtualList.window; if ( (scrollHeight - parent.offsetTop > scrollTop) @@ -246,7 +242,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta const unreadMarkerRef = this.unreadMarkerRef; - const messageProps = { association, group, contacts, unreadMarkerRef, history, api, groups, associations }; const keys = graph.keys().reverse(); @@ -262,7 +257,9 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta onClick={this.scrollToUnread} /> <VirtualScroller - ref={list => {this.virtualList = list}} + ref={(list) => { + this.virtualList = list; +}} origin="bottom" style={{ height: '100%' }} onStartReached={() => { @@ -274,7 +271,8 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta size={graph.size} renderer={({ index, measure, scrollWindow }) => { const msg = graph.get(index)?.post; - if (!msg) return null; + if (!msg) +return null; if (!this.state.initialized) { return <MessagePlaceholder key={index.toString()} height="64px" index={index} />; } @@ -285,7 +283,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta const prevIdx = keys[graphIdx+1]; const nextIdx = keys[graphIdx-1]; - const isLastRead: boolean = this.state.unreadIndex.eq(index); const props = { measure, highlighted, scrollWindow, isPending, isLastRead, isLastMessage, msg, ...messageProps }; return ( diff --git a/pkg/interface/src/views/apps/launch/components/Groups.tsx b/pkg/interface/src/views/apps/launch/components/Groups.tsx index 229536ec38..04eac11109 100644 --- a/pkg/interface/src/views/apps/launch/components/Groups.tsx +++ b/pkg/interface/src/views/apps/launch/components/Groups.tsx @@ -1,14 +1,14 @@ -import React, {useRef} from "react"; -import { Box, Text, Col } from "@tlon/indigo-react"; -import f from "lodash/fp"; -import _ from "lodash"; +import React, { useRef } from 'react'; +import { Box, Text, Col } from '@tlon/indigo-react'; +import f from 'lodash/fp'; +import _ from 'lodash'; -import { Associations, Association, Unreads, UnreadStats } from "~/types"; -import { alphabeticalOrder } from "~/logic/lib/util"; -import { getUnreadCount, getNotificationCount } from "~/logic/lib/hark"; -import Tile from "../components/tiles/tile"; -import { useTutorialModal } from "~/views/components/useTutorialModal"; -import {TUTORIAL_HOST, TUTORIAL_GROUP} from "~/logic/lib/tutorialModal"; +import { Associations, Association, Unreads, UnreadStats } from '@urbit/api'; +import { alphabeticalOrder } from '~/logic/lib/util'; +import { getUnreadCount, getNotificationCount } from '~/logic/lib/hark'; +import Tile from '../components/tiles/tile'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; +import { TUTORIAL_HOST, TUTORIAL_GROUP } from '~/logic/lib/tutorialModal'; interface GroupsProps { associations: Associations; @@ -17,7 +17,6 @@ interface GroupsProps { const sortGroupsAlph = (a: Association, b: Association) => alphabeticalOrder(a.metadata.title, b.metadata.title); - const getGraphUnreads = (associations: Associations, unreads: Unreads) => (path: string) => f.flow( f.pickBy((a: Association) => a.group === path), @@ -34,12 +33,11 @@ const getGraphNotifications = (associations: Associations, unreads: Unreads) => f.reduce(f.add, 0) )(associations.graph); - export default function Groups(props: GroupsProps & Parameters<typeof Box>[0]) { const { associations, unreads, inbox, ...boxProps } = props; const groups = Object.values(associations?.groups || {}) - .filter((e) => e?.group in props.groups) + .filter(e => e?.group in props.groups) .sort(sortGroupsAlph); const graphUnreads = getGraphUnreads(associations || {}, unreads); const graphNotifications = getGraphNotifications(associations || {}, unreads); @@ -48,7 +46,7 @@ export default function Groups(props: GroupsProps & Parameters<typeof Box>[0]) { <> {groups.map((group, index) => { const path = group?.group; - const unreadCount = graphUnreads(path) + const unreadCount = graphUnreads(path); const notCount = graphNotifications(path); return ( diff --git a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx index eea2d3b6e7..15b223e17c 100644 --- a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx +++ b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx @@ -1,6 +1,6 @@ -import React from "react" -import { Box, Button, Icon, Text } from "@tlon/indigo-react" -import {useModal} from "~/logic/lib/useModal"; +import React from 'react'; +import { Box, Button, Icon, Text } from '@tlon/indigo-react'; +import { useModal } from '~/logic/lib/useModal'; const ModalButton = (props) => { const { @@ -13,7 +13,6 @@ const ModalButton = (props) => { } = props; const { modal, showModal } = useModal({ modal: props.children }); - return ( <> {modal} @@ -33,6 +32,6 @@ const ModalButton = (props) => { </Button> </> ); -} +}; export default ModalButton; diff --git a/pkg/interface/src/views/apps/links/LinkResource.tsx b/pkg/interface/src/views/apps/links/LinkResource.tsx index d85a2d7706..0f61a7bf88 100644 --- a/pkg/interface/src/views/apps/links/LinkResource.tsx +++ b/pkg/interface/src/views/apps/links/LinkResource.tsx @@ -1,19 +1,18 @@ -import React, { useEffect, useCallback } from "react"; -import { Box, Row, Col, Center, LoadingSpinner, Text } from "@tlon/indigo-react"; -import { Switch, Route, Link } from "react-router-dom"; +import React, { useEffect } from 'react'; +import { Box, Col, Center, LoadingSpinner, Text } from '@tlon/indigo-react'; +import { Switch, Route, Link } from 'react-router-dom'; import bigInt from 'big-integer'; -import GlobalApi from "~/logic/api/global"; -import { StoreState } from "~/logic/store/type"; -import { uxToHex } from '~/logic/lib/util'; -import { RouteComponentProps } from "react-router-dom"; +import GlobalApi from '~/logic/api/global'; +import { StoreState } from '~/logic/store/type'; +import { RouteComponentProps } from 'react-router-dom'; -import { LinkItem } from "./components/LinkItem"; -import { LinkPreview } from "./components/link-preview"; -import { LinkWindow } from "./LinkWindow"; -import { Comments } from "~/views/components/Comments"; +import { LinkItem } from './components/LinkItem'; +import { LinkWindow } from './LinkWindow'; +import { Comments } from '~/views/components/Comments'; -import "./css/custom.css"; +import './css/custom.css'; +import { Association } from '@urbit/api/metadata'; const emptyMeasure = () => {}; @@ -38,11 +37,11 @@ export function LinkResource(props: LinkResourceProps) { history } = props; - const rid = association.resource; + const rid = association.resource; const relativePath = (p: string) => `${baseUrl}/resource/link${rid}${p}`; - const [, , ship, name] = rid.split("/"); + const [, , ship, name] = rid.split('/'); const resourcePath = `${ship.slice(1)}/${name}`; const resource = associations.graph[rid] ? associations.graph[rid] @@ -58,7 +57,7 @@ export function LinkResource(props: LinkResourceProps) { const resourceUrl = `${baseUrl}/resource/link${rid}`; if (!graph) { - return <Center width='100%' height='100%'><LoadingSpinner/></Center>; + return <Center width='100%' height='100%'><LoadingSpinner /></Center>; } return ( @@ -66,7 +65,7 @@ export function LinkResource(props: LinkResourceProps) { <Switch> <Route exact - path={relativePath("")} + path={relativePath('')} render={(props) => { return ( <LinkWindow @@ -86,7 +85,7 @@ export function LinkResource(props: LinkResourceProps) { }} /> <Route - path={relativePath("/:index(\\d+)/:commentId?")} + path={relativePath('/:index(\\d+)/:commentId?')} render={(props) => { const index = bigInt(props.match.params.index); const editCommentId = props.match.params.commentId || null; @@ -95,7 +94,7 @@ export function LinkResource(props: LinkResourceProps) { return <div>Malformed URL</div>; } - const node = !!graph ? graph.get(index) : null; + const node = graph ? graph.get(index) : null; if (!node) { return <Box>Not found</Box>; @@ -106,7 +105,7 @@ export function LinkResource(props: LinkResourceProps) { return ( <Col alignItems="center" overflowY="auto" width="100%"> <Col width="100%" p={3} maxWidth="768px"> - <Link to={resourceUrl}><Text px={3} bold>{"<- Back"}</Text></Link> + <Link to={resourceUrl}><Text px={3} bold>{'<- Back'}</Text></Link> <LinkItem contacts={contacts} key={node.post.index} diff --git a/pkg/interface/src/views/apps/links/LinkWindow.tsx b/pkg/interface/src/views/apps/links/LinkWindow.tsx index 2e7da9aa9b..01ebbdbc2b 100644 --- a/pkg/interface/src/views/apps/links/LinkWindow.tsx +++ b/pkg/interface/src/views/apps/links/LinkWindow.tsx @@ -1,5 +1,5 @@ -import React, { useRef, useCallback, useEffect, useMemo } from "react"; -import { Col } from "@tlon/indigo-react"; +import React, { useRef, useCallback, useEffect, useMemo } from 'react'; +import { Col } from '@tlon/indigo-react'; import bigInt from 'big-integer'; import { Association, @@ -9,13 +9,13 @@ import { LocalUpdateRemoteContentPolicy, Group, Rolodex, - S3State, -} from "~/types"; -import GlobalApi from "~/logic/api/global"; -import VirtualScroller from "~/views/components/VirtualScroller"; -import { LinkItem } from "./components/LinkItem"; -import LinkSubmit from "./components/LinkSubmit"; -import {isWriter} from "~/logic/lib/group"; + S3State +} from '@urbit/api'; +import GlobalApi from '~/logic/api/global'; +import VirtualScroller from '~/views/components/VirtualScroller'; +import { LinkItem } from './components/LinkItem'; +import LinkSubmit from './components/LinkSubmit'; +import { isWriter } from '~/logic/lib/group'; interface LinkWindowProps { association: Association; @@ -44,18 +44,19 @@ export function LinkWindow(props: LinkWindowProps) { useEffect(() => { const list = virtualList?.current; - if(!list) return; + if(!list) +return; list.calculateVisibleItems(); }, [graph.size]); const first = graph.peekLargest()?.[0]; const [,,ship, name] = association.resource.split('/'); - const canWrite = isWriter(props.group, association.resource) + const canWrite = isWriter(props.group, association.resource); const style = useMemo(() => ({ - height: "100%", - width: "100%", + height: '100%', + width: '100%', display: 'flex', flexDirection: 'column', alignItems: 'center' @@ -76,7 +77,7 @@ export function LinkWindow(props: LinkWindowProps) { return ( <VirtualScroller - ref={(l) => (virtualList.current = l ?? undefined)} + ref={l => (virtualList.current = l ?? undefined)} origin="top" style={style} onStartReached={() => {}} @@ -86,11 +87,12 @@ export function LinkWindow(props: LinkWindowProps) { renderer={({ index, measure, scrollWindow }) => { const node = graph.get(index); const post = node?.post; - if (!node || !post) return null; + if (!node || !post) +return null; const linkProps = { ...props, node, - measure, + measure }; if(canWrite && index.eq(first ?? bigInt.zero)) { return ( @@ -100,7 +102,7 @@ export function LinkWindow(props: LinkWindowProps) { </Col> <LinkItem {...linkProps} /> </React.Fragment> - ) + ); } return <LinkItem key={index.toString()} {...linkProps} />; }} diff --git a/pkg/interface/src/views/apps/links/components/LinkItem.tsx b/pkg/interface/src/views/apps/links/components/LinkItem.tsx index 8149fc580d..4e02ae8b94 100644 --- a/pkg/interface/src/views/apps/links/components/LinkItem.tsx +++ b/pkg/interface/src/views/apps/links/components/LinkItem.tsx @@ -1,12 +1,12 @@ -import React, { useState, useEffect, useRef, useCallback } from 'react'; +import React, { useState, useEffect, useRef, useCallback, ReactElement } from 'react'; import { Link } from 'react-router-dom'; + import { Row, Col, Anchor, Box, Text, Icon, Action } from '@tlon/indigo-react'; +import { GraphNode, Group, Rolodex, Unreads } from '@urbit/api'; import { writeText } from '~/logic/lib/util'; import Author from '~/views/components/Author'; - import { roleForShip } from '~/logic/lib/group'; -import { Contacts, GraphNode, Group, Rolodex, Unreads } from '~/types'; import GlobalApi from '~/logic/api/global'; import { Dropdown } from '~/views/components/Dropdown'; import RemoteContent from '~/views/components/RemoteContent'; @@ -22,7 +22,7 @@ interface LinkItemProps { measure: (el: any) => void; } -export const LinkItem = (props: LinkItemProps) => { +export const LinkItem = (props: LinkItemProps): ReactElement => { const { node, resource, @@ -46,7 +46,7 @@ export const LinkItem = (props: LinkItemProps) => { // FF will only update on next tick setTimeout(() => { console.log(remoteRef.current); - if(document.activeElement instanceof HTMLIFrameElement + if(document.activeElement instanceof HTMLIFrameElement && remoteRef?.current?.containerRef?.contains(document.activeElement)) { markRead(); } @@ -55,8 +55,7 @@ export const LinkItem = (props: LinkItemProps) => { window.addEventListener('blur', onBlur); return () => { window.removeEventListener('blur', onBlur); - } - + }; }, [markRead]); const URLparser = new RegExp( @@ -94,11 +93,9 @@ export const LinkItem = (props: LinkItemProps) => { const commColor = (props.unreads.graph?.[appPath]?.[`/${index}`]?.unreads ?? 0) > 0 ? 'blue' : 'gray'; const isUnread = props.unreads.graph?.[appPath]?.['/']?.unreads?.has(node.post.index); - - const onMeasure = useCallback(() => { ref.current && measure(ref.current); - }, [ref.current, measure]) + }, [ref.current, measure]); useEffect(() => { onMeasure(); @@ -120,7 +117,9 @@ export const LinkItem = (props: LinkItemProps) => { onClick={markRead} > <RemoteContent - ref={r => { remoteRef.current = r}} + ref={(r) => { + remoteRef.current = r; +}} url={contents[1].url} text={contents[0].text} unfold={true} @@ -143,7 +142,8 @@ export const LinkItem = (props: LinkItemProps) => { alignSelf: 'center', style: { textOverflow: 'ellipsis', whiteSpace: 'pre', width: '100%' }, p: 2 - }} /> + }} + /> <Text color="gray" p={2} flexShrink={0}> <Anchor target="_blank" rel="noopener noreferrer" style={{ textDecoration: 'none' }} href={contents[1].url}> <Box display='flex'> @@ -189,7 +189,7 @@ export const LinkItem = (props: LinkItemProps) => { } </Col> } - > + > <Icon ml="2" display="block" icon="Ellipsis" color="gray" /> </Dropdown> diff --git a/pkg/interface/src/views/apps/links/components/LinkSubmit.tsx b/pkg/interface/src/views/apps/links/components/LinkSubmit.tsx index 2eaba45559..c9679062ab 100644 --- a/pkg/interface/src/views/apps/links/components/LinkSubmit.tsx +++ b/pkg/interface/src/views/apps/links/components/LinkSubmit.tsx @@ -1,22 +1,22 @@ -import { BaseInput, Box, Button, LoadingSpinner, Text } from "@tlon/indigo-react"; -import React, { useCallback, useState } from "react"; -import GlobalApi from "~/logic/api/global"; -import { useFileDrag } from "~/logic/lib/useDrag"; -import useS3 from "~/logic/lib/useS3"; -import { S3State } from "~/types"; -import SubmitDragger from "~/views/components/SubmitDragger"; -import { createPost } from "~/logic/api/graph"; -import { hasProvider } from "oembed-parser"; +import { BaseInput, Box, Button, LoadingSpinner, Text } from '@tlon/indigo-react'; +import React, { useCallback, useState } from 'react'; +import GlobalApi from '~/logic/api/global'; +import { useFileDrag } from '~/logic/lib/useDrag'; +import useS3 from '~/logic/lib/useS3'; +import { S3State } from '@urbit/api'; +import SubmitDragger from '~/views/components/SubmitDragger'; +import { createPost } from '~/logic/api/graph'; +import { hasProvider } from 'oembed-parser'; interface LinkSubmitProps { api: GlobalApi; s3: S3State; name: string; ship: string; -}; +} const LinkSubmit = (props: LinkSubmitProps) => { - let { canUpload, uploadDefault, uploading, promptUpload } = useS3(props.s3); + const { canUpload, uploadDefault, uploading, promptUpload } = useS3(props.s3); const [submitFocused, setSubmitFocused] = useState(false); const [urlFocused, setUrlFocused] = useState(false); @@ -100,7 +100,7 @@ const LinkSubmit = (props: LinkSubmitProps) => { const onLinkChange = (linkValue: string) => { setLinkValueHook(linkValue); - const link = validateLink(linkValue) + const link = validateLink(linkValue); setLinkValid(link); }; @@ -133,7 +133,7 @@ const LinkSubmit = (props: LinkSubmitProps) => { px={2} pt={2} style={{ pointerEvents: 'none' }} - >{canUpload + >{canUpload ? <> Drop or{' '} <Text @@ -169,7 +169,7 @@ const LinkSubmit = (props: LinkSubmitProps) => { zIndex={9} alignItems="center" justifyContent="center" - > + > <LoadingSpinner /> </Box>} {dragging && <SubmitDragger />} @@ -223,4 +223,4 @@ const LinkSubmit = (props: LinkSubmitProps) => { ); }; -export default LinkSubmit; \ No newline at end of file +export default LinkSubmit; diff --git a/pkg/interface/src/views/apps/notifications/graph.tsx b/pkg/interface/src/views/apps/notifications/graph.tsx index 7517b0b505..f289f366c9 100644 --- a/pkg/interface/src/views/apps/notifications/graph.tsx +++ b/pkg/interface/src/views/apps/notifications/graph.tsx @@ -1,31 +1,29 @@ -import React, { ReactNode, useCallback } from "react"; -import moment from "moment"; -import { Row, Box, Col, Text, Anchor, Icon, Action } from "@tlon/indigo-react"; -import { Link, useHistory } from "react-router-dom"; -import _ from "lodash"; +import React, { ReactElement, useCallback } from 'react'; +import moment from 'moment'; +import _ from 'lodash'; +import { useHistory } from 'react-router-dom'; +import styled from 'styled-components'; + +import { Row, Box, Col, Text, Anchor, Icon, Action } from '@tlon/indigo-react'; import { - Post, GraphNotifIndex, GraphNotificationContents, Associations, - Content, Rolodex, - Groups, -} from "~/types"; -import { Header } from "./header"; -import { cite, deSig, pluralize } from "~/logic/lib/util"; -import { Sigil } from "~/logic/lib/sigil"; -import RichText from "~/views/components/RichText"; -import GlobalApi from "~/logic/api/global"; -import ReactMarkdown from "react-markdown"; -import { getSnippet } from "~/logic/lib/publish"; -import styled from "styled-components"; -import {MentionText} from "~/views/components/MentionText"; -import ChatMessage, {MessageWithoutSigil} from "../chat/components/ChatMessage"; + Groups +} from '@urbit/api'; -function getGraphModuleIcon(module: string) { - if (module === "link") { - return "Collection"; +import { Header } from './header'; +import { cite, deSig, pluralize } from '~/logic/lib/util'; +import { Sigil } from '~/logic/lib/sigil'; +import GlobalApi from '~/logic/api/global'; +import { getSnippet } from '~/logic/lib/publish'; +import { MentionText } from '~/views/components/MentionText'; +import { MessageWithoutSigil } from '../chat/components/ChatMessage'; + +function getGraphModuleIcon(module: string): string { + if (module === 'link') { + return 'Collection'; } return _.capitalize(module); } @@ -34,32 +32,32 @@ const FilterBox = styled(Box)` background: linear-gradient( to bottom, transparent, - ${(p) => p.theme.colors.white} + ${p => p.theme.colors.white} ); `; -function describeNotification(description: string, plural: boolean) { +function describeNotification(description: string, plural: boolean): string { switch (description) { - case "link": - return `added ${pluralize("new link", plural)} to`; - case "comment": - return `left ${pluralize("comment", plural)} on`; - case "edit-comment": - return `updated ${pluralize("comment", plural)} on`; - case "note": - return `posted ${pluralize("note", plural)} to`; - case "edit-note": - return `updated ${pluralize("note", plural)} in`; - case "mention": - return "mentioned you on"; - case "message": - return `sent ${pluralize("message", plural)} to`; + case 'link': + return `added ${pluralize('new link', plural)} to`; + case 'comment': + return `left ${pluralize('comment', plural)} on`; + case 'edit-comment': + return `updated ${pluralize('comment', plural)} on`; + case 'note': + return `posted ${pluralize('note', plural)} to`; + case 'edit-note': + return `updated ${pluralize('note', plural)} in`; + case 'mention': + return 'mentioned you on'; + case 'message': + return `sent ${pluralize('message', plural)} to`; default: return description; } } -const GraphUrl = ({ url, title }) => ( +const GraphUrl = ({ url, title }): ReactElement => ( <Box borderRadius="2" p="2" bg="scales.black05"> <Anchor underline={false} target="_blank" color="black" href={url}> <Icon verticalAlign="bottom" mr="2" icon="ArrowExternal" /> @@ -68,10 +66,10 @@ const GraphUrl = ({ url, title }) => ( </Box> ); -const GraphNodeContent = ({ group, post, contacts, mod, description, index, remoteContentPolicy }) => { +const GraphNodeContent = ({ group, post, contacts, mod, index }): ReactElement => { const { contents } = post; - const idx = index.slice(1).split("/"); - if (mod === "link") { + const idx = index.slice(1).split('/'); + if (mod === 'link') { if (idx.length === 1) { const [{ text }, { url }] = contents; return <GraphUrl title={text} url={url} />; @@ -80,20 +78,20 @@ const GraphNodeContent = ({ group, post, contacts, mod, description, index, remo content={contents} contacts={contacts} group={group} - /> + />; } return null; } - if (mod === "publish") { - if (idx[1] === "2") { + if (mod === 'publish') { + if (idx[1] === '2') { return <MentionText content={contents} group={group} contacts={contacts} fontSize='14px' lineHeight="tall" - /> - } else if (idx[1] === "1") { + />; + } else if (idx[1] === '1') { const [{ text: header }, { text: body }] = contents; const snippet = getSnippet(body); return ( @@ -123,42 +121,41 @@ const GraphNodeContent = ({ group, post, contacts, mod, description, index, remo flexShrink={0} flexGrow={1} flexWrap="wrap" - > + > <MessageWithoutSigil containerClass="items-top cf hide-child" measure={() => {}} group={group} contacts={contacts} groups={{}} - associations={{ graph: {}, groups: {}}} + associations={{ graph: {}, groups: {} }} msg={post} fontSize='0' pt='2' /> </Row>); - } return null; }; -function getNodeUrl(mod: string, hidden: boolean, groupPath: string, graph: string, index: string) { +function getNodeUrl(mod: string, hidden: boolean, groupPath: string, graph: string, index: string): string { if (hidden && mod === 'chat') { groupPath = '/messages'; } else if (hidden) { groupPath = '/home'; } const graphUrl = `/~landscape${groupPath}/resource/${mod}${graph}`; - const idx = index.slice(1).split("/"); - if (mod === "publish") { + const idx = index.slice(1).split('/'); + if (mod === 'publish') { const [noteId] = idx; return `${graphUrl}/note/${noteId}`; - } else if (mod === "link") { + } else if (mod === 'link') { const [linkId] = idx; return `${graphUrl}/${linkId}`; } else if (mod === 'chat') { return graphUrl; } - return ""; + return ''; } const GraphNode = ({ post, @@ -174,9 +171,7 @@ const GraphNode = ({ read, onRead, showContact = false, - remoteContentPolicy -}) => { - const { contents } = post; +}): ReactElement => { author = deSig(author); const history = useHistory(); @@ -185,7 +180,7 @@ const GraphNode = ({ ship={`~${author}`} size={16} icon - color={`#000000`} + color={'#000000'} classes="mix-blend-diff" padding={2} /> @@ -212,12 +207,12 @@ const GraphNode = ({ alignItems="center" p="1" backgroundColor="white" - > + > <Text mono title={author}> {cite(author)} </Text> <Text ml="2" gray> - {moment(time).format("HH:mm")} + {moment(time).format('HH:mm')} </Text> </Row>} <Row width="100%" p="1" flexDirection="column"> @@ -249,7 +244,7 @@ export function GraphNotification(props: { }) { const { contents, index, read, time, api, timebox, groups } = props; - const authors = _.map(contents, "author"); + const authors = _.map(contents, 'author'); const { graph, group } = index; const icon = getGraphModuleIcon(index.module); const desc = describeNotification(index.description, contents.length !== 1); @@ -259,7 +254,7 @@ export function GraphNotification(props: { return; } - return api.hark["read"](timebox, { graph: index }); + return api.hark['read'](timebox, { graph: index }); }, [api, timebox, index, read]); return ( @@ -284,7 +279,7 @@ return ( author={content.author} contacts={props.contacts} mod={index.module} - time={content?.["time-sent"]} + time={content?.['time-sent']} description={index.description} index={content.index} graph={graph} diff --git a/pkg/interface/src/views/apps/notifications/group.tsx b/pkg/interface/src/views/apps/notifications/group.tsx index 2b5a66f8dc..782069508d 100644 --- a/pkg/interface/src/views/apps/notifications/group.tsx +++ b/pkg/interface/src/views/apps/notifications/group.tsx @@ -1,44 +1,34 @@ -import React, { ReactNode, useCallback } from "react"; -import moment from "moment"; -import { Row, Box, Col, Text, Anchor, Icon, Action } from "@tlon/indigo-react"; -import _ from "lodash"; -import { NotificationProps } from "./types"; +import React, { ReactElement, useCallback } from 'react'; +import _ from 'lodash'; + +import { Col } from '@tlon/indigo-react'; import { - Post, - GraphNotifIndex, - GraphNotificationContents, Associations, - Content, - IndexedNotification, GroupNotificationContents, GroupNotifIndex, GroupUpdate, - Rolodex, -} from "~/types"; -import { Header } from "./header"; -import { cite, deSig } from "~/logic/lib/util"; -import { Sigil } from "~/logic/lib/sigil"; -import RichText from "~/views/components/RichText"; -import GlobalApi from "~/logic/api/global"; -import { StatelessAsyncAction } from "~/views/components/StatelessAsyncAction"; + Rolodex +} from '@urbit/api'; +import { Header } from './header'; +import GlobalApi from '~/logic/api/global'; function describeNotification(description: string, plural: boolean) { switch (description) { - case "add-members": - return "joined"; - case "remove-members": - return "left"; + case 'add-members': + return 'joined'; + case 'remove-members': + return 'left'; default: return description; } } -function getGroupUpdateParticipants(update: GroupUpdate) { - if ("addMembers" in update) { +function getGroupUpdateParticipants(update: GroupUpdate): string[] { + if ('addMembers' in update) { return update.addMembers.ships; } - if ("removeMembers" in update) { + if ('removeMembers' in update) { return update.removeMembers.ships; } return []; @@ -56,7 +46,7 @@ interface GroupNotificationProps { api: GlobalApi; } -export function GroupNotification(props: GroupNotificationProps) { +export function GroupNotification(props: GroupNotificationProps): ReactElement { const { contents, index, read, time, api, timebox, associations } = props; const authors = _.flatten(_.map(contents, getGroupUpdateParticipants)); @@ -68,7 +58,7 @@ export function GroupNotification(props: GroupNotificationProps) { if (props.archived) { return; } - const func = read ? "unread" : "read"; + const func = read ? 'unread' : 'read'; return api.hark[func](timebox, { group: index }); }, [api, timebox, index, read]); diff --git a/pkg/interface/src/views/apps/notifications/header.tsx b/pkg/interface/src/views/apps/notifications/header.tsx index 7d7644b1a7..528460f13d 100644 --- a/pkg/interface/src/views/apps/notifications/header.tsx +++ b/pkg/interface/src/views/apps/notifications/header.tsx @@ -1,17 +1,19 @@ -import React from "react"; -import { Text as NormalText, Row, Icon, Rule, Box } from "@tlon/indigo-react"; -import f from "lodash/fp"; -import _ from "lodash"; -import moment from "moment"; -import { PropFunc } from "~/types/util"; -import { getContactDetails, useShowNickname } from "~/logic/lib/util"; -import { Associations, Contact, Contacts, Rolodex } from "~/types"; +import React, { ReactElement } from 'react'; +import f from 'lodash/fp'; +import _ from 'lodash'; +import moment from 'moment'; + +import { Text as NormalText, Row, Icon, Rule } from '@tlon/indigo-react'; +import { Associations, Contact, Contacts, Rolodex } from '@urbit/api'; + +import { PropFunc } from '~/types/util'; +import { useShowNickname } from '~/logic/lib/util'; const Text = (props: PropFunc<typeof Text>) => ( <NormalText fontWeight="500" {...props} /> ); -function Author(props: { patp: string; contacts: Contacts; last?: boolean }) { +function Author(props: { patp: string; contacts: Contacts; last?: boolean }): ReactElement { const contact: Contact | undefined = props.contacts?.[props.patp]; const showNickname = useShowNickname(contact); @@ -20,7 +22,7 @@ function Author(props: { patp: string; contacts: Contacts; last?: boolean }) { return ( <Text mono={!showNickname}> {name} - {!props.last && ", "} + {!props.last && ', '} </Text> ); } @@ -36,7 +38,7 @@ export function Header(props: { time: number; read: boolean; associations: Associations; -} & PropFunc<typeof Row> ) { +} & PropFunc<typeof Row> ): ReactElement { const { description, channel, group, moduleIcon, read } = props; const contacts = props.contacts[group] || {}; @@ -50,17 +52,17 @@ export function Header(props: { const last = lent - 1 === parseInt(idx, 10); return <Author key={idx} contacts={contacts} patp={p} last={last} />; }), - (auths) => ( + auths => ( <React.Fragment> {auths} {authors.length > 3 && - ` and ${authors.length - 3} other${authors.length === 4 ? "" : "s"}`} + ` and ${authors.length - 3} other${authors.length === 4 ? '' : 's'}`} </React.Fragment> ) )(authors); - const time = moment(props.time).format("HH:mm"); + const time = moment(props.time).format('HH:mm'); const groupTitle = props.associations.groups?.[props.group]?.metadata?.title; @@ -84,8 +86,8 @@ export function Header(props: { {authorDesc} </Text> <Text mr="1">{description}</Text> - {!!moduleIcon && <Icon icon={moduleIcon as any} mr={1} />} - {!!channel && <Text fontWeight="500" mr={1}>{channelTitle}</Text>} + {Boolean(moduleIcon) && <Icon icon={moduleIcon as any} mr={1} />} + {Boolean(channel) && <Text fontWeight="500" mr={1}>{channelTitle}</Text>} <Rule vertical height="12px" mr={1} /> {groupTitle && <> diff --git a/pkg/interface/src/views/apps/notifications/inbox.tsx b/pkg/interface/src/views/apps/notifications/inbox.tsx index a5d5cf3822..2f05b736e8 100644 --- a/pkg/interface/src/views/apps/notifications/inbox.tsx +++ b/pkg/interface/src/views/apps/notifications/inbox.tsx @@ -1,22 +1,28 @@ -import React, { useEffect, useCallback, useRef, useState } from "react"; -import f from "lodash/fp"; -import _ from "lodash"; -import { Icon, Col, Center, Row, Box, Text, Anchor, Rule, LoadingSpinner } from "@tlon/indigo-react"; -import moment from "moment"; -import { Notifications, Rolodex, Timebox, IndexedNotification, Groups, joinProgress, JoinRequests, GroupNotificationsConfig, NotificationGraphConfig } from "~/types"; -import { MOMENT_CALENDAR_DATE, daToUnix, resourceAsPath } from "~/logic/lib/util"; -import { BigInteger } from "big-integer"; -import GlobalApi from "~/logic/api/global"; -import { Notification } from "./notification"; -import { Associations } from "~/types"; -import { InviteItem } from '~/views/components/Invite'; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import { useHistory } from "react-router-dom"; -import {useModal} from "~/logic/lib/useModal"; -import {JoinGroup} from "~/views/landscape/components/JoinGroup"; -import {JoiningStatus} from "./joining"; -import {Invites} from "./invites"; -import {useLazyScroll} from "~/logic/lib/useLazyScroll"; +import React, { useEffect, useCallback, useRef } from 'react'; +import f from 'lodash/fp'; +import _ from 'lodash'; +import moment from 'moment'; +import { BigInteger } from 'big-integer'; + +import { Col, Center, Box, Text, LoadingSpinner } from '@tlon/indigo-react'; +import { + Associations, + Notifications, + Rolodex, + Timebox, + IndexedNotification, + Groups, + JoinRequests, + GroupNotificationsConfig, + NotificationGraphConfig, + Invites as InviteType +} from '@urbit/api'; + +import { MOMENT_CALENDAR_DATE, daToUnix } from '~/logic/lib/util'; +import GlobalApi from '~/logic/api/global'; +import { Notification } from './notification'; +import { Invites } from './invites'; +import { useLazyScroll } from '~/logic/lib/useLazyScroll'; type DatedTimebox = [BigInteger, Timebox]; @@ -25,12 +31,12 @@ function filterNotification(associations: Associations, groups: string[]) { return () => true; } return (n: IndexedNotification) => { - if ("graph" in n.index) { + if ('graph' in n.index) { const { group } = n.index.graph; - return groups.findIndex((g) => group === g) !== -1; - } else if ("group" in n.index) { + return groups.findIndex(g => group === g) !== -1; + } else if ('group' in n.index) { const { group } = n.index.group; - return groups.findIndex((g) => group === g) !== -1; + return groups.findIndex(g => group === g) !== -1; } return true; }; @@ -46,7 +52,7 @@ export default function Inbox(props: { associations: Associations; contacts: Rolodex; filter: string[]; - invites: any; + invites: InviteType; pendingJoin: JoinRequests; notificationsGroupConfig: GroupNotificationsConfig; notificationsGraphConfig: NotificationGraphConfig; @@ -70,30 +76,30 @@ export default function Inbox(props: { const calendar = { ...MOMENT_CALENDAR_DATE, sameDay: function (now) { if (this.subtract(6, 'hours').isBefore(now)) { - return "[Earlier Today]"; + return '[Earlier Today]'; } else { return MOMENT_CALENDAR_DATE.sameDay; } } }; - let notificationsByDay = f.flow( + const notificationsByDay = f.flow( f.map<DatedTimebox, DatedTimebox>(([date, nots]) => [ date, - nots.filter(filterNotification(associations, props.filter)), + nots.filter(filterNotification(associations, props.filter)) ]), f.groupBy<DatedTimebox>(([d]) => { const date = moment(daToUnix(d)); if (moment().subtract(6, 'hours').isBefore(date)) { return 'latest'; } else { - return date.format("YYYYMMDD"); + return date.format('YYYYMMDD'); } - }), + }) )(notifications); const notificationsByDayMap = new Map<string, DatedTimebox[]>( - Object.keys(notificationsByDay).map(timebox => { + Object.keys(notificationsByDay).map((timebox) => { return [timebox, notificationsByDay[timebox]]; }) ); @@ -105,13 +111,12 @@ export default function Inbox(props: { }, [api]); const { isDone, isLoading } = useLazyScroll( - scrollRef, + scrollRef, 0.2, _.flatten(notifications).length, loadMore ); - return ( <Col ref={scrollRef} position="relative" height="100%" overflowY="auto"> <Invites groups={props.groups} pendingJoin={props.pendingJoin} invites={invites} api={api} associations={associations} /> @@ -123,7 +128,7 @@ export default function Inbox(props: { label={day === 'latest' ? 'Today' : moment(day).calendar(null, calendar)} timeboxes={timeboxes} contacts={props.contacts} - archive={!!props.showArchive} + archive={Boolean(props.showArchive)} associations={props.associations} api={api} groups={props.groups} @@ -142,7 +147,7 @@ export default function Inbox(props: { <LoadingSpinner /> </Center> )} - + </Col> ); } @@ -167,9 +172,8 @@ function DaySection({ associations, api, groupConfig, - graphConfig, + graphConfig }) { - const lent = timeboxes.map(([,nots]) => nots.length).reduce(f.add, 0); if (lent === 0 || timeboxes.length === 0) { return null; diff --git a/pkg/interface/src/views/apps/notifications/invites.tsx b/pkg/interface/src/views/apps/notifications/invites.tsx index a856af68d5..829a383bc7 100644 --- a/pkg/interface/src/views/apps/notifications/invites.tsx +++ b/pkg/interface/src/views/apps/notifications/invites.tsx @@ -1,15 +1,12 @@ -import React, { useCallback, useState } from "react"; +import React, { ReactElement } from 'react'; import _ from 'lodash'; -import { Box, Row, Col } from "@tlon/indigo-react"; -import GlobalApi from "~/logic/api/global"; -import { Invites as IInvites, Associations, Invite, JoinRequests, Groups, Contacts, AppInvites, JoinProgress } from "~/types"; -import { resourceAsPath, alphabeticalOrder } from "~/logic/lib/util"; -import { useHistory } from "react-router-dom"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import InviteItem from "~/views/components/Invite"; -import {JoiningStatus} from "./joining"; -import {useModal} from "~/logic/lib/useModal"; -import {JoinGroup} from "~/views/landscape/components/JoinGroup"; + +import { Col } from '@tlon/indigo-react'; +import { Invites as IInvites, Associations, Invite, JoinRequests, Groups, Contacts, AppInvites, JoinProgress } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; +import { resourceAsPath, alphabeticalOrder } from '~/logic/lib/util'; +import InviteItem from '~/views/components/Invite'; interface InvitesProps { api: GlobalApi; @@ -26,50 +23,18 @@ interface InviteRef { invite: Invite; } -export function Invites(props: InvitesProps) { +export function Invites(props: InvitesProps): ReactElement { const { api, invites, pendingJoin } = props; - const [selected, setSelected] = useState<[string, string, Invite] | undefined>() - - const acceptInvite = ( - app: string, - uid: string, - invite: Invite - ) => async () => { - setSelected([app, uid, invite]); - showModal(); - }; - - const declineInvite = useCallback( - (app: string, uid: string) => () => api.invite.decline(app, uid), - [api] - ); - - const { modal, showModal } = useModal({ modal: () => { - const [app, uid, invite] = selected!; - const autojoin = `~${invite.resource.ship}/${invite.resource.name}`; - return ( - <JoinGroup - groups={props.groups} - associations={props.associations} - api={api} - autojoin={autojoin} - inviteUid={uid} - inviteApp={app} - /> - )}}); const inviteArr: InviteRef[] = _.reduce(invites, (acc: InviteRef[], val: AppInvites, app: string) => { const appInvites = _.reduce(val, (invs: InviteRef[], invite: Invite, uid: string) => { return [...invs, { invite, uid, app }]; - }, []); return [...acc, ...appInvites]; }, []); - const invitesAndStatus: { [rid: string]: JoinProgress | InviteRef } = - {..._.keyBy(inviteArr, ({ invite }) => resourceAsPath(invite.resource)), ...props.pendingJoin }; - - + const invitesAndStatus: { [rid: string]: JoinProgress | InviteRef } = + { ..._.keyBy(inviteArr, ({ invite }) => resourceAsPath(invite.resource)), ...props.pendingJoin }; return ( <Col @@ -83,7 +48,7 @@ export function Invites(props: InvitesProps) { { Object .keys(invitesAndStatus) .sort(alphabeticalOrder) - .map(resource => { + .map((resource) => { const inviteOrStatus = invitesAndStatus[resource]; if(typeof inviteOrStatus === 'string') { return ( @@ -93,10 +58,10 @@ export function Invites(props: InvitesProps) { groups={props.groups} associations={props.associations} resource={resource} - pendingJoin={pendingJoin} - api={api} /> - ) - + pendingJoin={pendingJoin} + api={api} + /> + ); } else { const { app, uid, invite } = inviteOrStatus; console.log(inviteOrStatus); @@ -107,13 +72,13 @@ export function Invites(props: InvitesProps) { invite={invite} app={app} uid={uid} - pendingJoin={pendingJoin} + pendingJoin={pendingJoin} resource={resource} contacts={props.contacts} groups={props.groups} associations={props.associations} /> - ) + ); } })} </Col> diff --git a/pkg/interface/src/views/apps/notifications/joining.tsx b/pkg/interface/src/views/apps/notifications/joining.tsx index 7b2295fb20..5763712055 100644 --- a/pkg/interface/src/views/apps/notifications/joining.tsx +++ b/pkg/interface/src/views/apps/notifications/joining.tsx @@ -1,35 +1,32 @@ -import React, { useState, useEffect } from "react"; -import { Col, Row, Text, SegmentedProgressBar, Box } from "@tlon/indigo-react"; -import GlobalApi from "~/logic/api/global"; +import React from 'react'; +import { Row, Text, SegmentedProgressBar, Box } from '@tlon/indigo-react'; import { JoinProgress, joinProgress, - MetadataUpdatePreview, - joinError, -} from "~/types"; -import { clamp } from "~/logic/lib/util"; + joinError +} from '@urbit/api'; interface JoiningStatusProps { status: JoinProgress; } const description: string[] = [ - "Attempting to contact host", - "Retrieving data", - "Finished join", - "Unable to join, you do not have the correct permissions", - "Internal error, please file an issue", + 'Attempting to contact host', + 'Retrieving data', + 'Finished join', + 'Unable to join, you do not have the correct permissions', + 'Internal error, please file an issue' ]; export function JoiningStatus(props: JoiningStatusProps) { const { status } = props; const current = joinProgress.indexOf(status); - const desc = description?.[current] || ""; + const desc = description?.[current] || ''; const isError = joinError.indexOf(status as any) !== -1; return ( <Row - display={["flex-column", "flex"]} + display={['flex-column', 'flex']} alignItems="center" px="4" gapX="4" @@ -37,7 +34,7 @@ export function JoiningStatus(props: JoiningStatusProps) { <Box flexGrow={1} maxWidth="400px"> <SegmentedProgressBar current={current + 1} segments={3} /> </Box> - <Text display="block" flexShrink={0} color={isError ? "red" : "gray"}> + <Text display="block" flexShrink={0} color={isError ? 'red' : 'gray'}> {desc} </Text> </Row> diff --git a/pkg/interface/src/views/apps/notifications/metadata.tsx b/pkg/interface/src/views/apps/notifications/metadata.tsx index b5643f3591..20d5ac0dcf 100644 --- a/pkg/interface/src/views/apps/notifications/metadata.tsx +++ b/pkg/interface/src/views/apps/notifications/metadata.tsx @@ -1,8 +1,8 @@ -import React from "react"; -import { Box } from "@tlon/indigo-react"; +import React from 'react'; +import { Box } from '@tlon/indigo-react'; -import { MetadataBody, NotificationProps } from "./types"; -import { Header } from "./header"; +import { MetadataBody, NotificationProps } from './types'; +import { Header } from './header'; function getInvolvedUsers(body: MetadataBody) { return []; @@ -10,22 +10,22 @@ function getInvolvedUsers(body: MetadataBody) { function getDescription(body: MetadataBody) { const b = body.metadata; - if ("new" in b) { - return "created"; - } else if ("changedTitle" in b) { - return "changed the title to"; - } else if ("changedDescription" in b) { - return "changed the description to"; - } else if ("changedColor" in b) { - return "changed the color to"; - } else if ("deleted" in b) { - return "deleted"; + if ('new' in b) { + return 'created'; + } else if ('changedTitle' in b) { + return 'changed the title to'; + } else if ('changedDescription' in b) { + return 'changed the description to'; + } else if ('changedColor' in b) { + return 'changed the color to'; + } else if ('deleted' in b) { + return 'deleted'; } else { - throw new Error("bad metadata frond"); + throw new Error('bad metadata frond'); } } -export function MetadataNotification(props: NotificationProps<"metadata">) { +export function MetadataNotification(props: NotificationProps<'metadata'>) { const { unread } = props; const description = getDescription(unread.unreads[0].body); diff --git a/pkg/interface/src/views/apps/notifications/notification.tsx b/pkg/interface/src/views/apps/notifications/notification.tsx index cc55d38145..8c550257d1 100644 --- a/pkg/interface/src/views/apps/notifications/notification.tsx +++ b/pkg/interface/src/views/apps/notifications/notification.tsx @@ -1,6 +1,6 @@ -import React, { ReactNode, useCallback, useMemo, useState } from "react"; -import { Row, Box } from "@tlon/indigo-react"; -import _ from "lodash"; +import React, { ReactNode, useCallback, useMemo, useState } from 'react'; +import { Row, Box } from '@tlon/indigo-react'; +import _ from 'lodash'; import { GraphNotificationContents, IndexedNotification, @@ -9,15 +9,15 @@ import { GroupNotificationsConfig, Groups, Associations, - Contacts, -} from "~/types"; -import GlobalApi from "~/logic/api/global"; -import { getParentIndex } from "~/logic/lib/notification"; -import { StatelessAsyncAction } from "~/views/components/StatelessAsyncAction"; -import { GroupNotification } from "./group"; -import { GraphNotification } from "./graph"; -import { BigInteger } from "big-integer"; -import { useHovering } from "~/logic/lib/util"; + Contacts +} from '@urbit/api'; +import GlobalApi from '~/logic/api/global'; +import { getParentIndex } from '~/logic/lib/notification'; +import { StatelessAsyncAction } from '~/views/components/StatelessAsyncAction'; +import { GroupNotification } from './group'; +import { GraphNotification } from './graph'; +import { BigInteger } from 'big-integer'; +import { useHovering } from '~/logic/lib/util'; interface NotificationProps { notification: IndexedNotification; @@ -37,7 +37,7 @@ function getMuted( graphs: NotificationGraphConfig ) { const { index, notification } = idxNotif; - if ("graph" in idxNotif.index) { + if ('graph' in idxNotif.index) { const { graph } = idxNotif.index.graph; if(!('graph' in notification.contents)) { throw new Error(); @@ -46,11 +46,11 @@ function getMuted( return _.findIndex( graphs?.watching || [], - (g) => g.graph === graph && g.index === parent + g => g.graph === graph && g.index === parent ) === -1; } - if ("group" in index) { - return _.findIndex(groups || [], (g) => g === index.group.group) === -1; + if ('group' in index) { + return _.findIndex(groups || [], g => g === index.group.group) === -1; } return false; } @@ -77,13 +77,13 @@ function NotificationWrapper(props: { ); const onChangeMute = useCallback(async () => { - const func = isMuted ? "unmute" : "mute"; + const func = isMuted ? 'unmute' : 'mute'; return api.hark[func](notif); }, [notif, api, isMuted]); const { hovering, bind } = useHovering(); - const changeMuteDesc = isMuted ? "Unmute" : "Mute"; + const changeMuteDesc = isMuted ? 'Unmute' : 'Mute'; return ( <Box width="100%" @@ -126,7 +126,7 @@ export function Notification(props: NotificationProps) { </NotificationWrapper> ); - if ("graph" in notification.index) { + if ('graph' in notification.index) { const index = notification.index.graph; const c: GraphNotificationContents = (contents as any).graph; @@ -147,7 +147,7 @@ export function Notification(props: NotificationProps) { </Wrapper> ); } - if ("group" in notification.index) { + if ('group' in notification.index) { const index = notification.index.group; const c: GroupNotificationContents = (contents as any).group; return ( diff --git a/pkg/interface/src/views/apps/notifications/notifications.tsx b/pkg/interface/src/views/apps/notifications/notifications.tsx index 87e5764c25..3f9bd75558 100644 --- a/pkg/interface/src/views/apps/notifications/notifications.tsx +++ b/pkg/interface/src/views/apps/notifications/notifications.tsx @@ -1,25 +1,25 @@ -import React, { useCallback, useState, useRef } from "react"; +import React, { useCallback, useState, useRef, ReactElement } from 'react'; import _ from 'lodash'; -import { Box, Col, Text, Row } from "@tlon/indigo-react"; -import { Link, Switch, Route } from "react-router-dom"; -import Helmet from "react-helmet"; +import { Link, Switch, Route } from 'react-router-dom'; +import Helmet from 'react-helmet'; -import { Body } from "~/views/components/Body"; -import { PropFunc } from "~/types/util"; -import Inbox from "./inbox"; -import NotificationPreferences from "./preferences"; -import { Dropdown } from "~/views/components/Dropdown"; -import { Formik } from "formik"; -import { FormikOnBlur } from "~/views/components/FormikOnBlur"; -import GroupSearch from "~/views/components/GroupSearch"; -import {useTutorialModal} from "~/views/components/useTutorialModal"; +import { Box, Col, Text, Row } from '@tlon/indigo-react'; -const baseUrl = "/~notifications"; +import { Body } from '~/views/components/Body'; +import { PropFunc } from '~/types/util'; +import Inbox from './inbox'; +import NotificationPreferences from './preferences'; +import { Dropdown } from '~/views/components/Dropdown'; +import { FormikOnBlur } from '~/views/components/FormikOnBlur'; +import GroupSearch from '~/views/components/GroupSearch'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; + +const baseUrl = '/~notifications'; const HeaderLink = React.forwardRef(( props: PropFunc<typeof Text> & { view?: string; current: string }, ref -) => { +): ReactElement => { const { current, view, ...textProps } = props; const to = view ? `${baseUrl}/${view}` : baseUrl; const active = view ? current === view : !current; @@ -35,7 +35,7 @@ interface NotificationFilter { groups: string[]; } -export default function NotificationsScreen(props: any) { +export default function NotificationsScreen(props: any): ReactElement { const relativePath = (p: string) => baseUrl + p; const [filter, setFilter] = useState<NotificationFilter>({ groups: [] }); @@ -43,20 +43,20 @@ export default function NotificationsScreen(props: any) { setFilter({ groups }); }; const onReadAll = useCallback(() => { - props.api.hark.readAll() + props.api.hark.readAll(); }, []); const groupFilterDesc = filter.groups.length === 0 - ? "All" + ? 'All' : filter.groups - .map((g) => props.associations?.groups?.[g]?.metadata?.title) - .join(", "); + .map(g => props.associations?.groups?.[g]?.metadata?.title) + .join(', '); const anchorRef = useRef<HTMLElement | null>(null); useTutorialModal('notifications', true, anchorRef.current); return ( <Switch> <Route - path={[relativePath("/:view"), relativePath("")]} + path={[relativePath('/:view'), relativePath('')]} render={(routeProps) => { const { view } = routeProps.match.params; return ( @@ -89,7 +89,8 @@ export default function NotificationsScreen(props: any) { </Box> </Row> <Row - justifyContent="space-between"> + justifyContent="space-between" + > <Box mr="1" overflow="hidden" @@ -136,7 +137,7 @@ export default function NotificationsScreen(props: any) { </Dropdown> </Row> </Row> - {view === "preferences" && ( + {view === 'preferences' && ( <NotificationPreferences graphConfig={props.notificationsGraphConfig} api={props.api} diff --git a/pkg/interface/src/views/apps/notifications/preferences.tsx b/pkg/interface/src/views/apps/notifications/preferences.tsx index 8d3f900b43..b7f8278cde 100644 --- a/pkg/interface/src/views/apps/notifications/preferences.tsx +++ b/pkg/interface/src/views/apps/notifications/preferences.tsx @@ -1,13 +1,12 @@ -import React, { useCallback } from "react"; +import React, { ReactElement, useCallback } from 'react'; +import { Form, FormikHelpers } from 'formik'; +import _ from 'lodash'; -import { Box, Col, ManagedCheckboxField as Checkbox } from "@tlon/indigo-react"; -import { Formik, Form, FormikHelpers } from "formik"; -import * as Yup from "yup"; -import _ from "lodash"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import { FormikOnBlur } from "~/views/components/FormikOnBlur"; -import { NotificationGraphConfig } from "~/types"; -import GlobalApi from "~/logic/api/global"; +import { Col, ManagedCheckboxField as Checkbox } from '@tlon/indigo-react'; +import { NotificationGraphConfig } from '@urbit/api'; + +import { FormikOnBlur } from '~/views/components/FormikOnBlur'; +import GlobalApi from '~/logic/api/global'; interface FormSchema { mentions: boolean; @@ -24,21 +23,21 @@ interface NotificationPreferencesProps { export default function NotificationPreferences( props: NotificationPreferencesProps -) { +): ReactElement { const { graphConfig, api, dnd } = props; const initialValues: FormSchema = { mentions: graphConfig.mentions, watchOnSelf: graphConfig.watchOnSelf, dnd, - watching: graphConfig.watching, + watching: graphConfig.watching }; const onSubmit = useCallback( async (values: FormSchema, actions: FormikHelpers<FormSchema>) => { console.log(values); try { - let promises: Promise<any>[] = []; + const promises: Promise<any>[] = []; if (values.mentions !== graphConfig.mentions) { promises.push(api.hark.setMentions(values.mentions)); } @@ -46,7 +45,7 @@ export default function NotificationPreferences( promises.push(api.hark.setWatchOnSelf(values.watchOnSelf)); } if (values.dnd !== dnd && !_.isUndefined(values.dnd)) { - promises.push(api.hark.setDoNotDisturb(values.dnd)) + promises.push(api.hark.setDoNotDisturb(values.dnd)); } await Promise.all(promises); diff --git a/pkg/interface/src/views/apps/profile/components/EditProfile.tsx b/pkg/interface/src/views/apps/profile/components/EditProfile.tsx index d43cfbaad2..e22f01b29b 100644 --- a/pkg/interface/src/views/apps/profile/components/EditProfile.tsx +++ b/pkg/interface/src/views/apps/profile/components/EditProfile.tsx @@ -1,30 +1,25 @@ -import React from "react"; -import * as Yup from "yup"; +import React, { ReactElement } from 'react'; +import * as Yup from 'yup'; import _ from 'lodash'; +import { Formik } from 'formik'; +import { useHistory } from 'react-router-dom'; import { ManagedForm as Form, ManagedTextInputField as Input, ManagedCheckboxField as Checkbox, - Center, Col, - Box, Text, Row, - Button, -} from "@tlon/indigo-react"; -import { Formik, FormikHelpers } from "formik"; -import { useHistory } from "react-router-dom"; - -import { uxToHex } from "~/logic/lib/util"; -import { Sigil } from "~/logic/lib/sigil"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import { ColorInput } from "~/views/components/ColorInput"; -import { ImageInput } from "~/views/components/ImageInput"; -import { MarkdownField } from "~/views/apps/publish/components/MarkdownField"; -import { resourceFromPath } from "~/logic/lib/group"; -import GroupSearch from "~/views/components/GroupSearch"; +} from '@tlon/indigo-react'; +import { uxToHex } from '~/logic/lib/util'; +import { AsyncButton } from '~/views/components/AsyncButton'; +import { ColorInput } from '~/views/components/ColorInput'; +import { ImageInput } from '~/views/components/ImageInput'; +import { MarkdownField } from '~/views/apps/publish/components/MarkdownField'; +import { resourceFromPath } from '~/logic/lib/group'; +import GroupSearch from '~/views/components/GroupSearch'; const formSchema = Yup.object({ nickname: Yup.string(), @@ -45,8 +40,7 @@ const emptyContact = { isPublic: false }; - -export function EditProfile(props: any) { +export function EditProfile(props: any): ReactElement { const { contact, ship, api, isPublic } = props; const history = useHistory(); if (contact) { @@ -58,10 +52,10 @@ export function EditProfile(props: any) { try { await Object.keys(values).reduce((acc, key) => { console.log(key); - const newValue = key !== "color" ? values[key] : uxToHex(values[key]); + const newValue = key !== 'color' ? values[key] : uxToHex(values[key]); if (newValue !== contact[key]) { - if (key === "isPublic") { + if (key === 'isPublic') { return acc.then(() => api.contacts.setPublic(newValue) ); @@ -70,23 +64,22 @@ export function EditProfile(props: any) { console.log(toRemove); const toAdd: string[] = _.difference(newValue, contact?.groups || []); console.log(toAdd); - let promises: Promise<any>[] = []; + const promises: Promise<any>[] = []; promises.concat( toRemove.map(e => - api.contacts.edit(ship, {'remove-group': resourceFromPath(e) }) + api.contacts.edit(ship, { 'remove-group': resourceFromPath(e) }) ) ); promises.concat( toAdd.map(e => - api.contacts.edit(ship, {'add-group': resourceFromPath(e) }) + api.contacts.edit(ship, { 'add-group': resourceFromPath(e) }) ) ); return acc.then(() => Promise.all(promises)); - } else if ( - key !== "last-updated" && - key !== "isPublic" + key !== 'last-updated' && + key !== 'isPublic' ) { return acc.then(() => api.contacts.edit(ship, { [key]: newValue }) @@ -95,7 +88,7 @@ export function EditProfile(props: any) { } return acc; }, Promise.resolve()); - //actions.setStatus({ success: null }); + // actions.setStatus({ success: null }); history.push(`/~profile/${ship}`); } catch (e) { console.error(e); diff --git a/pkg/interface/src/views/apps/profile/components/Profile.tsx b/pkg/interface/src/views/apps/profile/components/Profile.tsx index 77b3bc0d1c..eccf1ce727 100644 --- a/pkg/interface/src/views/apps/profile/components/Profile.tsx +++ b/pkg/interface/src/views/apps/profile/components/Profile.tsx @@ -1,25 +1,23 @@ -import React, { useEffect, useRef, useState } from "react"; -import { Sigil } from "~/logic/lib/sigil"; -import { ViewProfile } from './ViewProfile'; -import { EditProfile } from './EditProfile'; -import { SetStatusBarModal } from '~/views/components/SetStatusBarModal'; +import React, { ReactElement, useEffect, useRef, useState } from 'react'; +import { useHistory } from 'react-router-dom'; -import { uxToHex } from "~/logic/lib/util"; import { Center, Box, Row, BaseImage, - StatelessTextInput as Input, - Button, Text -} from "@tlon/indigo-react"; -import useLocalState from "~/logic/state/local"; -import { useHistory } from "react-router-dom"; -import {useTutorialModal} from "~/views/components/useTutorialModal"; +} from '@tlon/indigo-react'; +import { Sigil } from '~/logic/lib/sigil'; +import { ViewProfile } from './ViewProfile'; +import { EditProfile } from './EditProfile'; +import { SetStatusBarModal } from '~/views/components/SetStatusBarModal'; +import { uxToHex } from '~/logic/lib/util'; +import useLocalState from '~/logic/state/local'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; -export function Profile(props: any) { +export function Profile(props: any): ReactElement { const { hideAvatars } = useLocalState(({ hideAvatars }) => ({ hideAvatars })); @@ -31,17 +29,13 @@ export function Profile(props: any) { const { contact, nackedContacts, hasLoaded, isPublic, isEdit, ship } = props; const nacked = nackedContacts.has(ship); - const [statusModal, showStatusModal] = useState(false); - - useEffect(() => { if(hasLoaded && !contact && !nacked) { props.api.contacts.retrieve(ship); } - }, [hasLoaded, contact]) + }, [hasLoaded, contact]); - - const hexColor = contact?.color ? `#${uxToHex(contact.color)}` : "#000000"; + const hexColor = contact?.color ? `#${uxToHex(contact.color)}` : '#000000'; const cover = (contact?.cover) ? <BaseImage src={contact.cover} width='100%' height='100%' style={{ objectFit: 'cover' }} /> : <Box display="block" width='100%' height='100%' backgroundColor='washedGray' />; @@ -58,19 +52,24 @@ export function Profile(props: any) { <Center p={[0,4]} height="100%" - width="100%"> + width="100%" + > <Box ref={anchorRef} maxWidth="600px" - width="100%"> + width="100%" + > <Row alignItems="center" justifyContent="space-between"> {ship === `~${window.ship}` ? ( <Row> <Text py='2' cursor='pointer' - onClick={() => { history.push(`/~profile/${ship}/edit`) }}> + onClick={() => { + history.push(`/~profile/${ship}/edit`); +}} + > Edit Profile </Text> <SetStatusBarModal @@ -82,9 +81,12 @@ export function Profile(props: any) { /> </Row> ) : null} - <Text maxWidth='18rem' overflowX='hidden' textOverflow="ellipsis" + <Text maxWidth='18rem' overflowX='hidden' +textOverflow="ellipsis" whiteSpace="nowrap" - overflow="hidden" display="inline-block" verticalAlign="middle">{contact?.status ?? ""}</Text> + overflow="hidden" display="inline-block" +verticalAlign="middle" + >{contact?.status ?? ''}</Text> </Row> <Row width="100%" height="300px"> {cover} @@ -108,7 +110,8 @@ export function Profile(props: any) { api={props.api} groups={props.groups} associations={props.associations} - isPublic={isPublic}/> + isPublic={isPublic} + /> ) : ( <ViewProfile api={props.api} diff --git a/pkg/interface/src/views/apps/profile/components/SetStatus.tsx b/pkg/interface/src/views/apps/profile/components/SetStatus.tsx index 3795727880..e894ccb192 100644 --- a/pkg/interface/src/views/apps/profile/components/SetStatus.tsx +++ b/pkg/interface/src/views/apps/profile/components/SetStatus.tsx @@ -3,14 +3,13 @@ import React, { useCallback, useEffect, ChangeEvent -} from "react"; +} from 'react'; import { Row, Button, - StatelessTextInput as Input, -} from "@tlon/indigo-react"; - + StatelessTextInput as Input +} from '@tlon/indigo-react'; export function SetStatus(props: any) { const { contact, ship, api, callback } = props; @@ -23,11 +22,11 @@ export function SetStatus(props: any) { ); useEffect(() => { - setStatus(!!contact ? contact.status : ''); + setStatus(contact ? contact.status : ''); }, [contact]); const editStatus = () => { - api.contacts.edit(ship, {status: _status}); + api.contacts.edit(ship, { status: _status }); if (callback) { callback(); @@ -53,7 +52,8 @@ export function SetStatus(props: any) { color="white" ml={2} width="25%" - onClick={editStatus}> + onClick={editStatus} + > Set Status </Button> </Row> diff --git a/pkg/interface/src/views/apps/profile/components/ViewProfile.tsx b/pkg/interface/src/views/apps/profile/components/ViewProfile.tsx index cd639b1354..939d8aab7b 100644 --- a/pkg/interface/src/views/apps/profile/components/ViewProfile.tsx +++ b/pkg/interface/src/views/apps/profile/components/ViewProfile.tsx @@ -1,28 +1,21 @@ -import React, {useEffect, useState} from "react"; +import React from 'react'; import _ from 'lodash'; -import { Sigil } from "~/logic/lib/sigil"; +import { useHistory } from 'react-router-dom'; import { Center, Box, Text, Row, - Button, Col, - LoadingSpinner -} from "@tlon/indigo-react"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import RichText from "~/views/components/RichText"; -import { useHistory } from "react-router-dom"; -import {GroupSummary} from "~/views/landscape/components/GroupSummary"; -import {MetadataUpdatePreview} from "~/types"; -import {GroupLink} from "~/views/components/GroupLink"; -import {lengthOrder} from "~/logic/lib/util"; -import useLocalState from "~/logic/state/local"; +} from '@tlon/indigo-react'; +import RichText from '~/views/components/RichText'; +import { GroupLink } from '~/views/components/GroupLink'; +import { lengthOrder } from '~/logic/lib/util'; +import useLocalState from '~/logic/state/local'; -export function ViewProfile(props: any) { - const history = useHistory(); +export function ViewProfile(props: any): ReactElement { const { hideNicknames } = useLocalState(({ hideNicknames }) => ({ hideNicknames })); @@ -33,17 +26,19 @@ export function ViewProfile(props: any) { <Row pb={2} alignItems="center" - width="100%"> + width="100%" + > <Center width="100%"> <Text> - {((!hideNicknames && contact?.nickname) ? contact.nickname : "")} + {((!hideNicknames && contact?.nickname) ? contact.nickname : '')} </Text> </Center> </Row> <Row pb={2} alignItems="center" - width="100%"> + width="100%" + > <Center width="100%"> <Text mono color="darkGray">{ship}</Text> </Center> @@ -52,10 +47,11 @@ export function ViewProfile(props: any) { pb={2} alignItems="center" justifyContent="center" - width="100%"> + width="100%" + > <Center flexDirection="column" maxWidth='32rem'> <RichText width='100%' disableRemoteContent> - {(contact?.bio ? contact.bio : "")} + {(contact?.bio ? contact.bio : '')} </RichText> </Center> </Col> @@ -82,7 +78,8 @@ export function ViewProfile(props: any) { borderRadius={1} bg="white" border={1} - borderColor="washedGray"> + borderColor="washedGray" + > <Center height="100%"> <Text mono pr={1} color="gray">{ship}</Text> <Text color="gray">remains private</Text> diff --git a/pkg/interface/src/views/apps/profile/profile.tsx b/pkg/interface/src/views/apps/profile/profile.tsx index 977a0975e6..ea99e7ecea 100644 --- a/pkg/interface/src/views/apps/profile/profile.tsx +++ b/pkg/interface/src/views/apps/profile/profile.tsx @@ -1,34 +1,24 @@ -import React from "react"; -import { Route, Link } from "react-router-dom"; +import React from 'react'; +import { Route, Link } from 'react-router-dom'; import Helmet from 'react-helmet'; -import { Box, Text, Row, Col, Icon, BaseImage } from "@tlon/indigo-react"; +import { Box } from '@tlon/indigo-react'; -import { uxToHex } from "~/logic/lib/util"; - -import { Profile } from "./components/Profile"; -import useLocalState from "~/logic/state/local"; +import { Profile } from './components/Profile'; export default function ProfileScreen(props: any) { - const { dark } = props; - const hideAvatars = useLocalState(state => state.hideAvatars); return ( <> <Helmet defer={false}> <title>{ props.notificationsCount ? `(${String(props.notificationsCount) }) `: '' }Landscape - Profile</title> </Helmet> <Route - path={"/~profile/:ship/:edit?"} - render={({ match, history }) => { + path={'/~profile/:ship/:edit?'} + render={({ match }) => { const ship = match.params.ship; const isEdit = match.url.includes('edit'); const isPublic = props.isContactPublic; const contact = props.contacts?.[ship]; - const sigilColor = contact?.color - ? `#${uxToHex(contact.color)}` - : dark - ? "#FFFFFF" - : "#000000"; return ( <Box height="100%" px={[0, 3]} pb={[0, 3]} borderRadius={1}> diff --git a/pkg/interface/src/views/apps/publish/PublishResource.tsx b/pkg/interface/src/views/apps/publish/PublishResource.tsx index cd9f077c1c..38aa2a07d9 100644 --- a/pkg/interface/src/views/apps/publish/PublishResource.tsx +++ b/pkg/interface/src/views/apps/publish/PublishResource.tsx @@ -1,11 +1,11 @@ -import React from "react"; -import { Box } from "@tlon/indigo-react"; +import React from 'react'; +import { Box } from '@tlon/indigo-react'; -import GlobalApi from "~/logic/api/global"; -import { StoreState } from "~/logic/store/type"; -import { Association } from "~/types"; -import { RouteComponentProps } from "react-router-dom"; -import { NotebookRoutes } from "./components/NotebookRoutes"; +import GlobalApi from '~/logic/api/global'; +import { StoreState } from '~/logic/store/type'; +import { Association } from '@urbit/api'; +import { RouteComponentProps } from 'react-router-dom'; +import { NotebookRoutes } from './components/NotebookRoutes'; type PublishResourceProps = StoreState & { association: Association; @@ -16,7 +16,7 @@ type PublishResourceProps = StoreState & { export function PublishResource(props: PublishResourceProps) { const { association, api, baseUrl, notebooks } = props; const rid = association.resource; - const [, , ship, book] = rid.split("/"); + const [, , ship, book] = rid.split('/'); const notebookContacts = props.contacts[association.group]; return ( diff --git a/pkg/interface/src/views/apps/publish/components/EditPost.tsx b/pkg/interface/src/views/apps/publish/components/EditPost.tsx index 0f6ed4dcc0..cb7ab51cf1 100644 --- a/pkg/interface/src/views/apps/publish/components/EditPost.tsx +++ b/pkg/interface/src/views/apps/publish/components/EditPost.tsx @@ -1,12 +1,16 @@ -import React from "react"; +import React, { ReactElement } from 'react'; import _ from 'lodash'; -import { PostFormSchema, PostForm } from "./NoteForm"; -import { FormikHelpers } from "formik"; -import GlobalApi from "~/logic/api/global"; -import { RouteComponentProps, useLocation } from "react-router-dom"; -import { GraphNode, TextContent, Association, S3State } from "~/types"; -import { getLatestRevision, editPost } from "~/logic/lib/publish"; -import {useWaitForProps} from "~/logic/lib/useWaitForProps"; +import { FormikHelpers } from 'formik'; +import { RouteComponentProps, useLocation } from 'react-router-dom'; + +import { GraphNode } from '@urbit/api'; + +import { PostFormSchema, PostForm } from './NoteForm'; +import GlobalApi from '~/logic/api/global'; +import { getLatestRevision, editPost } from '~/logic/lib/publish'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; +import { S3State } from '~/types'; + interface EditPostProps { ship: string; noteId: number; @@ -16,7 +20,7 @@ interface EditPostProps { s3: S3State; } -export function EditPost(props: EditPostProps & RouteComponentProps) { +export function EditPost(props: EditPostProps & RouteComponentProps): ReactElement { const { note, book, noteId, api, ship, history, s3 } = props; const [revNum, title, body] = getLatestRevision(note); const location = useLocation(); @@ -24,19 +28,19 @@ export function EditPost(props: EditPostProps & RouteComponentProps) { const waiter = useWaitForProps(props); const initial: PostFormSchema = { title, - body, + body }; const onSubmit = async ( values: PostFormSchema, actions: FormikHelpers<PostFormSchema> - ) => { + ): Promise<void> => { const { title, body } = values; try { const newRev = revNum + 1; const nodes = editPost(newRev, noteId, title, body); await api.graph.addNodes(ship, book, nodes); - await waiter(p => { + await waiter((p) => { const [rev] = getLatestRevision(p.note); return rev === newRev; }); @@ -44,7 +48,7 @@ export function EditPost(props: EditPostProps & RouteComponentProps) { history.push(noteUrl); } catch (e) { console.error(e); - actions.setStatus({ error: "Failed to edit notebook" }); + actions.setStatus({ error: 'Failed to edit notebook' }); } }; diff --git a/pkg/interface/src/views/apps/publish/components/MarkdownEditor.tsx b/pkg/interface/src/views/apps/publish/components/MarkdownEditor.tsx index 32f372f5d8..4f917084ff 100644 --- a/pkg/interface/src/views/apps/publish/components/MarkdownEditor.tsx +++ b/pkg/interface/src/views/apps/publish/components/MarkdownEditor.tsx @@ -1,26 +1,26 @@ -import React, { createRef, useCallback, useRef } from "react"; -import { IUnControlledCodeMirror, UnControlled as CodeEditor } from "react-codemirror2"; +import React, { createRef, useCallback, useRef } from 'react'; +import { IUnControlledCodeMirror, UnControlled as CodeEditor } from 'react-codemirror2'; import { useFormikContext } from 'formik'; import { Prompt } from 'react-router-dom'; import { Editor } from 'codemirror'; -import { MOBILE_BROWSER_REGEX, usePreventWindowUnload } from "~/logic/lib/util"; -import { PropFunc } from "~/types/util"; -import CodeMirror from "codemirror"; +import { MOBILE_BROWSER_REGEX, usePreventWindowUnload } from '~/logic/lib/util'; +import { PropFunc } from '~/types/util'; +import CodeMirror from 'codemirror'; -import "codemirror/mode/markdown/markdown"; -import "codemirror/addon/display/placeholder"; -import "codemirror/addon/edit/continuelist"; +import 'codemirror/mode/markdown/markdown'; +import 'codemirror/addon/display/placeholder'; +import 'codemirror/addon/edit/continuelist'; -import "codemirror/lib/codemirror.css"; -import { Box } from "@tlon/indigo-react"; -import { useFileDrag } from "~/logic/lib/useDrag"; -import SubmitDragger from "~/views/components/SubmitDragger"; -import useS3 from "~/logic/lib/useS3"; -import { S3State } from "~/types"; +import 'codemirror/lib/codemirror.css'; +import { Box } from '@tlon/indigo-react'; +import { useFileDrag } from '~/logic/lib/useDrag'; +import SubmitDragger from '~/views/components/SubmitDragger'; +import useS3 from '~/logic/lib/useS3'; +import { S3State } from '@urbit/api'; const MARKDOWN_CONFIG = { - name: "markdown", + name: 'markdown' }; interface MarkdownEditorProps { @@ -49,12 +49,12 @@ export function MarkdownEditor( const options = { mode: MARKDOWN_CONFIG, - theme: "tlon", + theme: 'tlon', lineNumbers: false, lineWrapping: true, - scrollbarStyle: "native", + scrollbarStyle: 'native', // cursorHeight: 0.85, - placeholder: placeholder || "", + placeholder: placeholder || '', extraKeys: { 'Enter': 'newlineAndIndentContinueMarkdownList' } }; @@ -84,7 +84,7 @@ export function MarkdownEditor( const codeMirror: Editor = editor.current.editor; const doc = codeMirror.getDoc(); - Array.from(files).forEach(async file => { + Array.from(files).forEach(async (file) => { const placeholder = `![Uploading ${file.name}](...)`; doc.setValue(doc.getValue() + placeholder); const url = await uploadDefault(file); diff --git a/pkg/interface/src/views/apps/publish/components/MarkdownField.tsx b/pkg/interface/src/views/apps/publish/components/MarkdownField.tsx index 750a649784..e96aec733b 100644 --- a/pkg/interface/src/views/apps/publish/components/MarkdownField.tsx +++ b/pkg/interface/src/views/apps/publish/components/MarkdownField.tsx @@ -1,8 +1,8 @@ -import React, { useCallback } from "react"; -import _ from "lodash"; -import { Box, ErrorLabel } from "@tlon/indigo-react"; -import { useField } from "formik"; -import { MarkdownEditor } from "./MarkdownEditor"; +import React, { useCallback } from 'react'; +import _ from 'lodash'; +import { Box, ErrorLabel } from '@tlon/indigo-react'; +import { useField } from 'formik'; +import { MarkdownEditor } from './MarkdownEditor'; export const MarkdownField = ({ id, @@ -13,13 +13,13 @@ export const MarkdownField = ({ const handleBlur = useCallback( (e: any) => { - _.set(e, "target.id", id); + _.set(e, 'target.id', id); onBlur && onBlur(e); }, [onBlur, id] ); - const hasError = !!(error && touched); + const hasError = Boolean(error && touched); return ( <Box @@ -31,13 +31,13 @@ export const MarkdownField = ({ {...rest} > <MarkdownEditor - borderColor={hasError ? "red" : "lightGray"} + borderColor={hasError ? 'red' : 'lightGray'} onBlur={handleBlur} value={value} onChange={setValue} s3={s3} /> - <ErrorLabel mt="2" hasError={!!(error && touched)}> + <ErrorLabel mt="2" hasError={Boolean(error && touched)}> {error} </ErrorLabel> </Box> diff --git a/pkg/interface/src/views/apps/publish/components/MetadataForm.tsx b/pkg/interface/src/views/apps/publish/components/MetadataForm.tsx index c586321a11..7a3bb39ae4 100644 --- a/pkg/interface/src/views/apps/publish/components/MetadataForm.tsx +++ b/pkg/interface/src/views/apps/publish/components/MetadataForm.tsx @@ -12,10 +12,10 @@ import { import { Formik, Form, useFormikContext, FormikHelpers } from "formik"; import GlobalApi from "~/logic/api/global"; import { Notebook } from "~/types/publish-update"; -import { Contacts } from "~/types/contact-update"; +import { Contacts } from "@urbit/api/contacts"; import { FormError } from "~/views/components/FormError"; import { RouteComponentProps, useHistory } from "react-router-dom"; -import {Association} from "~/types"; +import {Association} from "@urbit/api"; import { uxToHex } from "~/logic/lib/util"; interface MetadataFormProps { diff --git a/pkg/interface/src/views/apps/publish/components/Note.tsx b/pkg/interface/src/views/apps/publish/components/Note.tsx index d336650fa0..2bb8e77e01 100644 --- a/pkg/interface/src/views/apps/publish/components/Note.tsx +++ b/pkg/interface/src/views/apps/publish/components/Note.tsx @@ -1,16 +1,16 @@ -import React, { useState, useEffect } from "react"; -import { Box, Text, Col } from "@tlon/indigo-react"; -import ReactMarkdown from "react-markdown"; +import React, { useState, useEffect } from 'react'; +import { Box, Text, Col } from '@tlon/indigo-react'; +import ReactMarkdown from 'react-markdown'; import bigInt from 'big-integer'; -import { Link, RouteComponentProps } from "react-router-dom"; -import { Spinner } from "~/views/components/Spinner"; -import { Comments } from "~/views/components/Comments"; -import { NoteNavigation } from "./NoteNavigation"; -import GlobalApi from "~/logic/api/global"; +import { Link, RouteComponentProps } from 'react-router-dom'; +import { Spinner } from '~/views/components/Spinner'; +import { Comments } from '~/views/components/Comments'; +import { NoteNavigation } from './NoteNavigation'; +import GlobalApi from '~/logic/api/global'; import { getLatestRevision, getComments } from '~/logic/lib/publish'; -import Author from "~/views/components/Author"; -import { Contacts, GraphNode, Graph, Association, Unreads, Group } from "~/types"; +import Author from '~/views/components/Author'; +import { Contacts, GraphNode, Graph, Association, Unreads, Group } from '@urbit/api'; interface NoteProps { ship: string; @@ -34,12 +34,11 @@ export function Note(props: NoteProps & RouteComponentProps) { const deletePost = async () => { setDeleting(true); - const indices = [note.post.index] + const indices = [note.post.index]; await api.graph.removeNodes(ship, book, indices); props.history.push(rootUrl); }; - const comments = getComments(note); const [revNum, title, body, post] = getLatestRevision(note); const index = note.post.index.split('/'); @@ -49,8 +48,6 @@ export function Note(props: NoteProps & RouteComponentProps) { api.hark.markEachAsRead(props.association, '/',`/${index[1]}/1/1`, 'note', 'publish'); }, [props.association, props.note]); - - let adminLinks: JSX.Element | null = null; if (window.ship === note?.post?.author) { adminLinks = ( @@ -67,7 +64,7 @@ export function Note(props: NoteProps & RouteComponentProps) { color="red" ml={2} onClick={deletePost} - style={{ cursor: "pointer" }} + style={{ cursor: 'pointer' }} > Delete </Text> @@ -96,21 +93,21 @@ export function Note(props: NoteProps & RouteComponentProps) { ref={windowRef} > <Link to={rootUrl}> - <Text>{"<- Notebook Index"}</Text> + <Text>{'<- Notebook Index'}</Text> </Link> <Col> - <Text display="block" mb={2}>{title || ""}</Text> + <Text display="block" mb={2}>{title || ''}</Text> <Box display="flex"> <Author ship={post?.author} contacts={contacts} - date={post?.["time-sent"]} + date={post?.['time-sent']} /> <Text ml={2}>{adminLinks}</Text> </Box> </Col> - <Box color="black" className="md" style={{ overflowWrap: "break-word", overflow: "hidden" }}> - <ReactMarkdown source={body} linkTarget={"_blank"} /> + <Box color="black" className="md" style={{ overflowWrap: 'break-word', overflow: 'hidden' }}> + <ReactMarkdown source={body} linkTarget={'_blank'} /> </Box> <NoteNavigation notebook={notebook} diff --git a/pkg/interface/src/views/apps/publish/components/NoteForm.tsx b/pkg/interface/src/views/apps/publish/components/NoteForm.tsx index 6fbaaee20a..9aa203af12 100644 --- a/pkg/interface/src/views/apps/publish/components/NoteForm.tsx +++ b/pkg/interface/src/views/apps/publish/components/NoteForm.tsx @@ -5,11 +5,11 @@ import { Row, Col, Button -} from "@tlon/indigo-react"; -import { AsyncButton } from "../../../components/AsyncButton"; -import { Formik, Form, FormikHelpers } from "formik"; -import { MarkdownField } from "./MarkdownField"; -import { S3State } from "~/types"; +} from '@tlon/indigo-react'; +import { AsyncButton } from '../../../components/AsyncButton'; +import { Formik, Form, FormikHelpers } from 'formik'; +import { MarkdownField } from './MarkdownField'; +import { S3State } from '@urbit/api'; interface PostFormProps { initial: PostFormSchema; @@ -63,7 +63,8 @@ export function PostForm(props: PostFormProps) { onClick={() => { history.goBack(); }} - type="button">Cancel</Button>} + type="button" + >Cancel</Button>} </Row> </Row> <MarkdownField flexGrow={1} id="body" s3={s3} /> diff --git a/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx b/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx index b3633df3fd..0a0d345fbc 100644 --- a/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx +++ b/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx @@ -1,29 +1,31 @@ -import React, { Component } from "react"; -import moment from "moment"; -import { Box } from "@tlon/indigo-react"; -import { Link } from "react-router-dom"; -import { Graph, GraphNode } from "~/types"; -import { getLatestRevision } from "~/logic/lib/publish"; -import { BigInteger } from "big-integer"; +import React, { ReactElement } from 'react'; +import moment from 'moment'; +import { Link } from 'react-router-dom'; +import { BigInteger } from 'big-integer'; + +import { Box } from '@tlon/indigo-react'; +import { Graph } from '@urbit/api'; + +import { getLatestRevision } from '~/logic/lib/publish'; function NavigationItem(props: { url: string; title: string; date: number; prev?: boolean; -}) { +}): ReactElement { const date = moment(props.date).fromNow(); return ( <Box - justifySelf={props.prev ? "start" : "end"} + justifySelf={props.prev ? 'start' : 'end'} display="flex" flexDirection="column" justifyContent="flex-end" - textAlign={props.prev ? "left" : "right"} + textAlign={props.prev ? 'left' : 'right'} > <Link to={props.url}> <Box color="gray" mb={2}> - {props.prev ? "Previous" : "Next"} + {props.prev ? 'Previous' : 'Next'} </Box> <Box mb={1}>{props.title}</Box> <Box color="gray">{date}</Box> @@ -53,7 +55,7 @@ interface NoteNavigationProps { baseUrl: string; } -export function NoteNavigation(props: NoteNavigationProps) { +export function NoteNavigation(props: NoteNavigationProps): ReactElement { let nextComponent = <Box />; let prevComponent = <Box />; const { noteId, notebook } = props; @@ -72,13 +74,13 @@ export function NoteNavigation(props: NoteNavigationProps) { if (next && nextId) { const nextUrl = makeNoteUrl(nextId); const [, title, , post] = getLatestRevision(next); - const date = post["time-sent"]; + const date = post['time-sent']; nextComponent = <NavigationItem title={title} date={date} url={nextUrl} />; } if (prev && prevId) { const prevUrl = makeNoteUrl(prevId); const [, title, , post] = getLatestRevision(prev); - const date = post["time-sent"]; + const date = post['time-sent']; prevComponent = ( <NavigationItem title={title} date={date} url={prevUrl} prev /> ); diff --git a/pkg/interface/src/views/apps/publish/components/NotePreview.tsx b/pkg/interface/src/views/apps/publish/components/NotePreview.tsx index 1820188c46..becefc7e36 100644 --- a/pkg/interface/src/views/apps/publish/components/NotePreview.tsx +++ b/pkg/interface/src/views/apps/publish/components/NotePreview.tsx @@ -4,14 +4,14 @@ import styled from 'styled-components'; import { Col, Row, Box, Text, Icon, Image } from '@tlon/indigo-react'; import Author from '~/views/components/Author'; -import { GraphNode } from '~/types/graph-update'; -import { Contacts, Group } from '~/types'; +import { GraphNode } from '@urbit/api/graph'; +import { Contacts, Group } from '@urbit/api'; import { getComments, getLatestRevision, - getSnippet, -} from "~/logic/lib/publish"; -import {Unreads} from "~/types"; + getSnippet +} from '~/logic/lib/publish'; +import { Unreads } from '@urbit/api'; import GlobalApi from '~/logic/api/global'; import ReactMarkdown from 'react-markdown'; diff --git a/pkg/interface/src/views/apps/publish/components/NoteRoutes.tsx b/pkg/interface/src/views/apps/publish/components/NoteRoutes.tsx index 916347038a..9ac272b83e 100644 --- a/pkg/interface/src/views/apps/publish/components/NoteRoutes.tsx +++ b/pkg/interface/src/views/apps/publish/components/NoteRoutes.tsx @@ -1,12 +1,12 @@ -import React from "react"; -import { Route, Switch } from "react-router-dom"; +import React from 'react'; +import { Route, Switch } from 'react-router-dom'; -import GlobalApi from "~/logic/api/global"; -import { RouteComponentProps } from "react-router-dom"; -import Note from "./Note"; -import { EditPost } from "./EditPost"; +import GlobalApi from '~/logic/api/global'; +import { RouteComponentProps } from 'react-router-dom'; +import Note from './Note'; +import { EditPost } from './EditPost'; -import { GraphNode, Graph, Contacts, Association, S3State, Group } from "~/types"; +import { GraphNode, Graph, Contacts, Association, S3State, Group } from '@urbit/api'; interface NoteRoutesProps { ship: string; @@ -32,17 +32,18 @@ export function NoteRoutes(props: NoteRoutesProps & RouteComponentProps) { <Switch> <Route exact - path={relativePath("/edit")} - render={(routeProps) => <EditPost {...routeProps} {...props} />} + path={relativePath('/edit')} + render={routeProps => <EditPost {...routeProps} {...props} />} /> <Route - path={relativePath("/:commentId?")} - render={(routeProps) => + path={relativePath('/:commentId?')} + render={routeProps => <Note baseUrl={baseUrl} {...props} {...routeProps} - rootUrl={rootUrl} /> + rootUrl={rootUrl} + /> } /> </Switch> diff --git a/pkg/interface/src/views/apps/publish/components/Notebook.tsx b/pkg/interface/src/views/apps/publish/components/Notebook.tsx index 2063497234..f689297c76 100644 --- a/pkg/interface/src/views/apps/publish/components/Notebook.tsx +++ b/pkg/interface/src/views/apps/publish/components/Notebook.tsx @@ -1,10 +1,12 @@ -import React from "react"; -import { RouteComponentProps, Link } from "react-router-dom"; -import { NotebookPosts } from "./NotebookPosts"; -import { Col, Box, Text, Button, Row } from "@tlon/indigo-react"; -import GlobalApi from "~/logic/api/global"; -import { Contacts, Rolodex, Groups, Associations, Graph, Association, Unreads } from "~/types"; -import { useShowNickname } from "~/logic/lib/util"; +import React, { ReactElement } from 'react'; +import { RouteComponentProps } from 'react-router-dom'; + +import { Col, Box, Text, Row } from '@tlon/indigo-react'; +import { Contacts, Rolodex, Groups, Associations, Graph, Association, Unreads } from '@urbit/api'; + +import { NotebookPosts } from './NotebookPosts'; +import GlobalApi from '~/logic/api/global'; +import { useShowNickname } from '~/logic/lib/util'; interface NotebookProps { api: GlobalApi; @@ -21,7 +23,7 @@ interface NotebookProps { unreads: Unreads; } -export function Notebook(props: NotebookProps & RouteComponentProps) { +export function Notebook(props: NotebookProps & RouteComponentProps): ReactElement { const { ship, book, @@ -36,7 +38,6 @@ export function Notebook(props: NotebookProps & RouteComponentProps) { return null; // Waiting on groups to populate } - const relativePath = (p: string) => props.baseUrl + p; const contact = notebookContacts?.[ship]; diff --git a/pkg/interface/src/views/apps/publish/components/NotebookPosts.tsx b/pkg/interface/src/views/apps/publish/components/NotebookPosts.tsx index 639cf5330c..8cd94f68bb 100644 --- a/pkg/interface/src/views/apps/publish/components/NotebookPosts.tsx +++ b/pkg/interface/src/views/apps/publish/components/NotebookPosts.tsx @@ -1,7 +1,7 @@ -import React, { Component } from "react"; -import { Col } from "@tlon/indigo-react"; -import { NotePreview } from "./NotePreview"; -import { Contacts, Graph, Unreads, Group } from "~/types"; +import React, { Component } from 'react'; +import { Col } from '@tlon/indigo-react'; +import { NotePreview } from './NotePreview'; +import { Contacts, Graph, Unreads, Group } from '@urbit/api'; interface NotebookPostsProps { contacts: Contacts; diff --git a/pkg/interface/src/views/apps/publish/components/NotebookRoutes.tsx b/pkg/interface/src/views/apps/publish/components/NotebookRoutes.tsx index a3d1f5474f..a4c8e1e7e1 100644 --- a/pkg/interface/src/views/apps/publish/components/NotebookRoutes.tsx +++ b/pkg/interface/src/views/apps/publish/components/NotebookRoutes.tsx @@ -1,6 +1,6 @@ -import React, { useEffect } from "react"; -import { RouteComponentProps, Route, Switch } from "react-router-dom"; -import GlobalApi from "~/logic/api/global"; +import React, { useEffect } from 'react'; +import { RouteComponentProps, Route, Switch } from 'react-router-dom'; +import GlobalApi from '~/logic/api/global'; import { Association, Associations, @@ -10,16 +10,14 @@ import { Rolodex, Unreads, S3State -} from "~/types"; -import { Center, LoadingSpinner } from "@tlon/indigo-react"; +} from '@urbit/api'; +import { Center, LoadingSpinner } from '@tlon/indigo-react'; import bigInt from 'big-integer'; -import Notebook from "./Notebook"; -import NewPost from "./new-post"; +import Notebook from './Notebook'; +import NewPost from './new-post'; import { NoteRoutes } from './NoteRoutes'; - - interface NotebookRoutesProps { api: GlobalApi; ship: string; @@ -49,7 +47,6 @@ export function NotebookRoutes( const group = groups?.[props.association?.group]; - const relativePath = (path: string) => `${baseUrl}${path}`; return ( <Switch> @@ -66,12 +63,13 @@ export function NotebookRoutes( contacts={notebookContacts} association={props.association} rootUrl={rootUrl} - baseUrl={baseUrl} />; + baseUrl={baseUrl} + />; }} /> <Route - path={relativePath("/new")} - render={(routeProps) => ( + path={relativePath('/new')} + render={routeProps => ( <NewPost {...routeProps} api={api} @@ -85,7 +83,7 @@ export function NotebookRoutes( )} /> <Route - path={relativePath("/note/:noteId")} + path={relativePath('/note/:noteId')} render={(routeProps) => { const { noteId } = routeProps.match.params; const noteIdNum = bigInt(noteId); diff --git a/pkg/interface/src/views/apps/publish/components/Writers.js b/pkg/interface/src/views/apps/publish/components/Writers.js index b6be6c1597..e8ff547af0 100644 --- a/pkg/interface/src/views/apps/publish/components/Writers.js +++ b/pkg/interface/src/views/apps/publish/components/Writers.js @@ -1,16 +1,14 @@ import React, { Component } from 'react'; import { Box, Text } from '@tlon/indigo-react'; import { ShipSearch } from '~/views/components/ShipSearch'; -import { Formik, Form, FormikHelpers } from 'formik'; +import { Formik, Form } from 'formik'; import { resourceFromPath } from '~/logic/lib/group'; import { AsyncButton } from '~/views/components/AsyncButton'; -import { cite } from '~/logic/lib/util'; export class Writers extends Component { render() { const { association, groups, contacts, api } = this.props; - const [,,,name] = association?.resource.split('/'); const resource = resourceFromPath(association?.group); const onSubmit = async (values, actions) => { diff --git a/pkg/interface/src/views/apps/publish/components/new-post.tsx b/pkg/interface/src/views/apps/publish/components/new-post.tsx index 2b0dd366a2..3dea28bfb7 100644 --- a/pkg/interface/src/views/apps/publish/components/new-post.tsx +++ b/pkg/interface/src/views/apps/publish/components/new-post.tsx @@ -1,13 +1,13 @@ -import React from "react"; -import { FormikHelpers } from "formik"; -import GlobalApi from "~/logic/api/global"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import { RouteComponentProps } from "react-router-dom"; -import { PostForm, PostFormSchema } from "./NoteForm"; -import {createPost} from "~/logic/api/graph"; -import {Graph} from "~/types/graph-update"; -import {Association, S3State} from "~/types"; -import {newPost} from "~/logic/lib/publish"; +import React from 'react'; +import { FormikHelpers } from 'formik'; +import GlobalApi from '~/logic/api/global'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; +import { RouteComponentProps } from 'react-router-dom'; +import { PostForm, PostFormSchema } from './NoteForm'; +import { createPost } from '~/logic/api/graph'; +import { Graph } from '@urbit/api/graph'; +import { Association, S3State } from '@urbit/api'; +import { newPost } from '~/logic/lib/publish'; interface NewPostProps { api: GlobalApi; @@ -30,21 +30,21 @@ export default function NewPost(props: NewPostProps & RouteComponentProps) { ) => { const { title, body } = values; try { - const [noteId, nodes] = newPost(title, body) - await api.graph.addNodes(ship, book, nodes) - await waiter(p => + const [noteId, nodes] = newPost(title, body); + await api.graph.addNodes(ship, book, nodes); + await waiter(p => p.graph.has(noteId) && !p.graph.get(noteId)?.post?.pending ); history.push(`${props.baseUrl}/note/${noteId}`); } catch (e) { console.error(e); - actions.setStatus({ error: "Posting note failed" }); + actions.setStatus({ error: 'Posting note failed' }); } }; const initialValues: PostFormSchema = { - title: "", - body: "", + title: '', + body: '' }; return ( diff --git a/pkg/interface/src/views/apps/settings/components/lib/BackgroundPicker.tsx b/pkg/interface/src/views/apps/settings/components/lib/BackgroundPicker.tsx index 53aed1b3e9..deae6d4786 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/BackgroundPicker.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/BackgroundPicker.tsx @@ -1,32 +1,30 @@ -import React from "react"; +import React, { ReactElement } from 'react'; + import { - Box, Row, Label, Col, ManagedRadioButtonField as Radio, - ManagedTextInputField as Input, -} from "@tlon/indigo-react"; +} from '@tlon/indigo-react'; -import GlobalApi from "~/logic/api/global"; -import { S3State } from "~/types"; -import { ImageInput } from "~/views/components/ImageInput"; -import {ColorInput} from "~/views/components/ColorInput"; +import GlobalApi from '~/logic/api/global'; +import { ImageInput } from '~/views/components/ImageInput'; +import { ColorInput } from '~/views/components/ColorInput'; +import { S3State } from '~/types/s3-update'; -export type BgType = "none" | "url" | "color"; +export type BgType = 'none' | 'url' | 'color'; export function BackgroundPicker({ bgType, bgUrl, api, - s3, + s3 }: { bgType: BgType; bgUrl?: string; api: GlobalApi; s3: S3State; -}) { - +}): ReactElement { const rowSpace = { my: 0, alignItems: 'center' }; const radioProps = { my: 4, mr: 4, name: 'bgType' }; return ( @@ -34,7 +32,7 @@ export function BackgroundPicker({ <Label mb="2">Landscape Background</Label> <Row flexWrap="wrap" {...rowSpace}> <Radio {...radioProps} label="Image" id="url" /> - {bgType === "url" && ( + {bgType === 'url' && ( <ImageInput ml="3" api={api} @@ -42,14 +40,14 @@ export function BackgroundPicker({ id="bgUrl" name="bgUrl" label="URL" - url={bgUrl || ""} + url={bgUrl || ''} /> )} </Row> <Row {...rowSpace}> <Radio label="Color" id="color" {...radioProps} /> - {bgType === "color" && ( - <ColorInput id="bgColor" label="Color" /> + {bgType === 'color' && ( + <ColorInput id="bgColor" label="Color" /> )} </Row> <Radio label="None" id="none" {...radioProps} /> diff --git a/pkg/interface/src/views/apps/settings/components/lib/BucketList.tsx b/pkg/interface/src/views/apps/settings/components/lib/BucketList.tsx index 5ffdc270a0..931f230b03 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/BucketList.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/BucketList.tsx @@ -1,30 +1,29 @@ -import React, { useCallback } from "react"; +import React, { ReactElement, useCallback } from 'react'; +import { Formik } from 'formik'; import { ManagedTextInputField as Input, ManagedForm as Form, Box, Button, - Col, Text, Menu, MenuButton, MenuList, - MenuItem, -} from "@tlon/indigo-react"; -import { Formik } from "formik"; + MenuItem +} from '@tlon/indigo-react'; -import GlobalApi from "~/logic/api/global"; +import GlobalApi from '~/logic/api/global'; export function BucketList({ buckets, selected, - api, + api }: { buckets: Set<string>; selected: string; api: GlobalApi; -}) { +}): ReactElement { const _buckets = Array.from(buckets); const onSubmit = useCallback( @@ -53,14 +52,14 @@ export function BucketList({ ); return ( - <Formik initialValues={{ newBucket: "" }} onSubmit={onSubmit}> + <Formik initialValues={{ newBucket: '' }} onSubmit={onSubmit}> <Form display="grid" gridTemplateColumns="100%" gridAutoRows="auto" gridRowGap={2} > - {_buckets.map((bucket) => ( + {_buckets.map(bucket => ( <Box key={bucket} display="flex" diff --git a/pkg/interface/src/views/apps/settings/components/lib/DisplayForm.tsx b/pkg/interface/src/views/apps/settings/components/lib/DisplayForm.tsx index 1fcc3a1204..31b8f9bf86 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/DisplayForm.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/DisplayForm.tsx @@ -10,7 +10,7 @@ import * as Yup from 'yup'; import GlobalApi from '~/logic/api/global'; import { uxToHex } from '~/logic/lib/util'; -import { S3State, BackgroundConfig } from '~/types'; +import { S3State, BackgroundConfig } from '@urbit/api'; import { BackgroundPicker, BgType } from './BackgroundPicker'; import useLocalState, { LocalState } from '~/logic/state/local'; diff --git a/pkg/interface/src/views/apps/settings/components/lib/RemoteContent.tsx b/pkg/interface/src/views/apps/settings/components/lib/RemoteContent.tsx index 168a441505..6d57395689 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/RemoteContent.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/RemoteContent.tsx @@ -1,20 +1,20 @@ -import React from "react"; +import React from 'react'; import { Box, Button, - ManagedCheckboxField as Checkbox, -} from "@tlon/indigo-react"; -import { Formik, Form } from "formik"; -import * as Yup from "yup"; + ManagedCheckboxField as Checkbox +} from '@tlon/indigo-react'; +import { Formik, Form } from 'formik'; +import * as Yup from 'yup'; -import GlobalApi from "~/logic/api/global"; -import useLocalState from "~/logic/state/local"; +import GlobalApi from '~/logic/api/global'; +import useLocalState from '~/logic/state/local'; const formSchema = Yup.object().shape({ imageShown: Yup.boolean(), audioShown: Yup.boolean(), videoShown: Yup.boolean(), - oembedShown: Yup.boolean(), + oembedShown: Yup.boolean() }); interface FormSchema { @@ -44,17 +44,17 @@ export default function RemoteContentForm(props: RemoteContentFormProps) { imageShown, audioShown, videoShown, - oembedShown, + oembedShown } as FormSchema } onSubmit={(values, actions) => { - setRemoteContentPolicy(state => { + setRemoteContentPolicy((state) => { Object.assign(state.remoteContentPolicy, values); }); actions.setSubmitting(false); }} > - {(props) => ( + {props => ( <Form> <Box display="grid" diff --git a/pkg/interface/src/views/apps/settings/components/lib/S3Form.tsx b/pkg/interface/src/views/apps/settings/components/lib/S3Form.tsx index 963e2feb1d..3e8331a1de 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/S3Form.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/S3Form.tsx @@ -1,19 +1,17 @@ -import React, { useCallback } from "react"; +import React, { ReactElement, useCallback } from 'react'; +import { Formik } from 'formik'; import { ManagedTextInputField as Input, ManagedForm as Form, Box, Button, - Col, - Text, - Menu, -} from "@tlon/indigo-react"; + Col +} from '@tlon/indigo-react'; -import { Formik } from "formik"; -import GlobalApi from "../../../../api/global"; -import { BucketList } from "./BucketList"; -import { S3State } from "../../../../types"; +import { BucketList } from './BucketList'; +import GlobalApi from '~/logic/api/global'; +import { S3State } from '~/types/s3-update'; interface FormSchema { s3bucket: string; @@ -28,7 +26,7 @@ interface S3FormProps { s3: S3State; } -export default function S3Form(props: S3FormProps) { +export default function S3Form(props: S3FormProps): ReactElement { const { api, s3 } = props; const onSubmit = useCallback( @@ -57,7 +55,7 @@ export default function S3Form(props: S3FormProps) { s3buckets: Array.from(s3.configuration.buckets), s3endpoint: s3.credentials?.endpoint, s3accessKeyId: s3.credentials?.accessKeyId, - s3secretAccessKey: s3.credentials?.secretAccessKey, + s3secretAccessKey: s3.credentials?.secretAccessKey } as FormSchema } onSubmit={onSubmit} diff --git a/pkg/interface/src/views/apps/settings/components/lib/Security.tsx b/pkg/interface/src/views/apps/settings/components/lib/Security.tsx index fe87319065..26c73f51d6 100644 --- a/pkg/interface/src/views/apps/settings/components/lib/Security.tsx +++ b/pkg/interface/src/views/apps/settings/components/lib/Security.tsx @@ -1,7 +1,7 @@ -import React from "react"; -import { Box, Button } from "@tlon/indigo-react"; +import React from 'react'; +import { Box, Button } from '@tlon/indigo-react'; -import GlobalApi from "../../../../api/global"; +import GlobalApi from '../../../../api/global'; interface SecuritySettingsProps { api: GlobalApi; diff --git a/pkg/interface/src/views/apps/settings/settings.tsx b/pkg/interface/src/views/apps/settings/settings.tsx index bfe331ecd3..409d06cf3b 100644 --- a/pkg/interface/src/views/apps/settings/settings.tsx +++ b/pkg/interface/src/views/apps/settings/settings.tsx @@ -1,35 +1,34 @@ -import React from "react"; -import { Route, Link, Switch } from "react-router-dom"; +import React, { ReactElement } from 'react'; +import { Route } from 'react-router-dom'; import Helmet from 'react-helmet'; -import { Box, Text, Row, Col, Icon, BaseImage } from "@tlon/indigo-react"; +import { Box } from '@tlon/indigo-react'; -import Settings from "./components/settings"; -import useLocalState from "~/logic/state/local"; +import Settings from './components/settings'; +import useLocalState from '~/logic/state/local'; -export default function SettingsScreen(props: any) { - const { ship, dark } = props; - const hideAvatars = useLocalState(state => state.hideAvatars); +export default function SettingsScreen(props: any): ReactElement { return ( <> <Helmet defer={false}> <title>Landscape - Settings</title> </Helmet> <Route - path={["/~settings"]} - render={({ match, history }) => { + path={['/~settings']} + render={() => { return ( <Box height="100%" width="100%" px={[0, 3]} pb={[0, 3]} - borderRadius={1}> + borderRadius={1} + > <Box height="100%" width="100%" display="grid" - gridTemplateColumns={["100%", "400px 1fr"]} - gridTemplateRows={["48px 1fr", "1fr"]} + gridTemplateColumns={['100%', '400px 1fr']} + gridTemplateRows={['48px 1fr', '1fr']} borderRadius={1} bg="white" border={1} diff --git a/pkg/interface/src/views/components/AsyncButton.tsx b/pkg/interface/src/views/components/AsyncButton.tsx index a181ef7842..bc1120b12e 100644 --- a/pkg/interface/src/views/components/AsyncButton.tsx +++ b/pkg/interface/src/views/components/AsyncButton.tsx @@ -1,8 +1,8 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect } from 'react'; -import { Button, LoadingSpinner } from "@tlon/indigo-react"; +import { Button, LoadingSpinner } from '@tlon/indigo-react'; -import { useFormikContext } from "formik"; +import { useFormikContext } from 'formik'; export function AsyncButton<T = any>({ children, @@ -15,11 +15,11 @@ export function AsyncButton<T = any>({ useEffect(() => { const s = status || {}; let done = false; - if ("success" in s) { + if ('success' in s) { setSuccess(true); onSuccess(); done = true; - } else if ("error" in s) { + } else if ('error' in s) { setSuccess(false); done = true; } @@ -40,13 +40,13 @@ export function AsyncButton<T = any>({ > {isSubmitting ? ( <LoadingSpinner - foreground={rest.primary ? "white" : "black"} + foreground={rest.primary ? 'white' : 'black'} background="gray" /> ) : success === true ? ( - "Done" + 'Done' ) : success === false ? ( - "Errored" + 'Errored' ) : ( children )} diff --git a/pkg/interface/src/views/components/Author.tsx b/pkg/interface/src/views/components/Author.tsx index 8428121e4b..1a3a8b56cf 100644 --- a/pkg/interface/src/views/components/Author.tsx +++ b/pkg/interface/src/views/components/Author.tsx @@ -1,13 +1,15 @@ -import React, { ReactNode, useState, useRef } from 'react'; +import React, { ReactElement, ReactNode, useState } from 'react'; import moment from 'moment'; +import { useHistory } from 'react-router-dom'; + import { Row, Box, BaseImage } from '@tlon/indigo-react'; +import { Contacts } from '@urbit/api/contacts'; +import { Group } from '@urbit/api'; + import { uxToHex, cite, useShowNickname } from '~/logic/lib/util'; -import { Contacts } from '~/types/contact-update'; import OverlaySigil from './OverlaySigil'; import { Sigil } from '~/logic/lib/sigil'; -import { Group } from '~/types'; import GlobalApi from '~/logic/api/global'; -import { useHistory } from 'react-router-dom'; interface AuthorProps { contacts: Contacts; @@ -21,7 +23,7 @@ interface AuthorProps { } // eslint-disable-next-line max-lines-per-function -export default function Author(props: AuthorProps) { +export default function Author(props: AuthorProps): ReactElement { const { contacts, ship = '', date, showImage, group } = props; const history = useHistory(); let contact; @@ -36,7 +38,7 @@ export default function Author(props: AuthorProps) { const [showOverlay, setShowOverlay] = useState(false); const toggleOverlay = () => { - setShowOverlay((value) => !value); + setShowOverlay(value => !value); }; const img = diff --git a/pkg/interface/src/views/components/Body.tsx b/pkg/interface/src/views/components/Body.tsx index 7449689fd0..4e2e64203f 100644 --- a/pkg/interface/src/views/components/Body.tsx +++ b/pkg/interface/src/views/components/Body.tsx @@ -1,6 +1,6 @@ -import React, { ReactNode } from "react"; +import React, { ReactNode } from 'react'; -import { Box } from "@tlon/indigo-react"; +import { Box } from '@tlon/indigo-react'; export function Body( props: { children: ReactNode } & Parameters<typeof Box>[0] @@ -14,7 +14,7 @@ export function Body( width="100%" borderRadius={2} border={[0, 1]} - borderColor={["washedGray", "washedGray"]} + borderColor={['washedGray', 'washedGray']} {...boxProps} > {props.children} diff --git a/pkg/interface/src/views/components/ChipInput.tsx b/pkg/interface/src/views/components/ChipInput.tsx index e75934fffb..02471d817d 100644 --- a/pkg/interface/src/views/components/ChipInput.tsx +++ b/pkg/interface/src/views/components/ChipInput.tsx @@ -2,23 +2,23 @@ import React, { useCallback, useState, ReactNode, - SyntheticEvent, useEffect, useRef, -} from "react"; + ReactElement +} from 'react'; +import { useField } from 'formik'; +import Mousetrap from 'mousetrap'; + import { - Box, Label, Row, Col, StatelessTextInput as Input, ErrorLabel -} from "@tlon/indigo-react"; -import { useField } from "formik"; -import Mousetrap from "mousetrap"; -import * as Yup from "yup"; +} from '@tlon/indigo-react'; -function Chip(props: { children: ReactNode }) { + +function Chip(props: { children: ReactNode }): ReactElement { return ( <Row alignItems="center" @@ -42,12 +42,12 @@ interface ChipInputProps { breakOnSpace?: boolean; } -export function ChipInput(props: ChipInputProps) { +export function ChipInput(props: ChipInputProps): ReactElement { const { id, label, caption, placeholder } = props; - const [{ onBlur, value }, meta, { setError, setValue }] = useField<string[]>( + const [{ onBlur, value }, meta, { setValue }] = useField<string[]>( id ); - const [newChip, setNextChip] = useState(""); + const [newChip, setNextChip] = useState(''); const onChange = useCallback( (e: any) => { setNextChip(e.target.value); @@ -57,7 +57,7 @@ export function ChipInput(props: ChipInputProps) { const addNewChip = useCallback(() => { setValue([...value, newChip]); - setNextChip(""); + setNextChip(''); }, [setValue, value, newChip, setNextChip]); const removeLastChip = useCallback(() => { @@ -70,18 +70,18 @@ export function ChipInput(props: ChipInputProps) { return () => {}; } const mousetrap = Mousetrap(inputRef.current); - mousetrap.bind("backspace", (e) => { + mousetrap.bind('backspace', (e) => { if (newChip.length === 0) { removeLastChip(); return false; } return true; }); - mousetrap.bind("tab", (e) => { + mousetrap.bind('tab', (e) => { addNewChip(); return false; }); - mousetrap.bind("space", (e) => { + mousetrap.bind('space', (e) => { if (props.breakOnSpace) { addNewChip(); return false; @@ -89,9 +89,9 @@ export function ChipInput(props: ChipInputProps) { return true; }); return () => { - mousetrap.unbind("tab"); - mousetrap.unbind("backspace"); - mousetrap.unbind("space"); + mousetrap.unbind('tab'); + mousetrap.unbind('backspace'); + mousetrap.unbind('space'); }; }, [inputRef.current, addNewChip, newChip]); @@ -128,7 +128,7 @@ export function ChipInput(props: ChipInputProps) { py="1" /> </Row> - <ErrorLabel mt="2" hasError={!!(meta.touched && meta.error)}> + <ErrorLabel mt="2" hasError={Boolean(meta.touched && meta.error)}> {meta.error} </ErrorLabel> diff --git a/pkg/interface/src/views/components/ColorInput.tsx b/pkg/interface/src/views/components/ColorInput.tsx index 0ee279db14..8ef2b9d00c 100644 --- a/pkg/interface/src/views/components/ColorInput.tsx +++ b/pkg/interface/src/views/components/ColorInput.tsx @@ -1,15 +1,16 @@ -import React from "react"; -import { useField } from "formik"; +import React, { FormEvent, ReactElement } from 'react'; +import { useField } from 'formik'; + import { Col, Label, Row, Box, ErrorLabel, - StatelessTextInput as Input, -} from "@tlon/indigo-react"; + StatelessTextInput as Input +} from '@tlon/indigo-react'; -import { uxToHex, hexToUx } from "~/logic/lib/util"; +import { hexToUx } from '~/logic/lib/util'; type ColorInputProps = Parameters<typeof Col>[0] & { id: string; @@ -17,14 +18,14 @@ type ColorInputProps = Parameters<typeof Col>[0] & { disabled?: boolean; }; -export function ColorInput(props: ColorInputProps) { +export function ColorInput(props: ColorInputProps): ReactElement { const { id, label, caption, disabled, ...rest } = props; const [{ value, onBlur }, meta, { setValue }] = useField(id); - const hex = value.replace('#', '').replace("0x","").replace(".", ""); - const padded = hex.padStart(6, "0"); + const hex = value.replace('#', '').replace('0x','').replace('.', ''); + const padded = hex.padStart(6, '0'); - const onChange = (e: any) => { + const onChange = (e: FormEvent<HTMLInputElement>) => { let { value: newValue } = e.target as HTMLInputElement; newValue = newValue.replace('#', ''); const valid = newValue.match(/^(\d|[a-f]|[A-F]){0,6}$/); @@ -36,7 +37,6 @@ export function ColorInput(props: ColorInputProps) { setValue(result); }; - return ( <Box display="flex" flexDirection="column" {...rest}> <Label htmlFor={id}>{label}</Label> @@ -78,7 +78,7 @@ export function ColorInput(props: ColorInputProps) { /> </Box> </Row> - <ErrorLabel mt="2" hasError={!!(meta.touched && meta.error)}> + <ErrorLabel mt="2" hasError={Boolean(meta.touched && meta.error)}> {meta.error} </ErrorLabel> </Box> diff --git a/pkg/interface/src/views/components/CommentInput.tsx b/pkg/interface/src/views/components/CommentInput.tsx index 99189efb7f..9c669bbd5d 100644 --- a/pkg/interface/src/views/components/CommentInput.tsx +++ b/pkg/interface/src/views/components/CommentInput.tsx @@ -1,15 +1,15 @@ -import React from "react"; -import * as Yup from "yup"; -import { Formik, FormikHelpers, Form, useFormikContext } from "formik"; -import { AsyncButton } from "./AsyncButton"; -import { ManagedTextAreaField as TextArea } from "@tlon/indigo-react"; +import React from 'react'; +import * as Yup from 'yup'; +import { Formik, FormikHelpers, Form, useFormikContext } from 'formik'; +import { AsyncButton } from './AsyncButton'; +import { ManagedTextAreaField as TextArea } from '@tlon/indigo-react'; interface FormSchema { comment: string; } const formSchema = Yup.object({ - comment: Yup.string().required("Comment can't be empty"), + comment: Yup.string().required('Comment can\'t be empty') }); interface CommentInputProps { @@ -25,7 +25,7 @@ interface CommentInputProps { const SubmitTextArea = (props) => { const { submitForm } = useFormikContext<FormSchema>(); const onKeyDown = (e: KeyboardEvent) => { - if ((e.getModifierState("Control") || e.metaKey) && e.key === "Enter") { + if ((e.getModifierState('Control') || e.metaKey) && e.key === 'Enter') { submitForm(); } }; @@ -33,9 +33,9 @@ const SubmitTextArea = (props) => { }; export default function CommentInput(props: CommentInputProps) { - const initialValues: FormSchema = { comment: props.initial || "" }; - const label = props.label || "Add Comment"; - const loading = props.loadingText || "Commenting..."; + const initialValues: FormSchema = { comment: props.initial || '' }; + const label = props.label || 'Add Comment'; + const loading = props.loadingText || 'Commenting...'; return ( <Formik @@ -46,7 +46,7 @@ export default function CommentInput(props: CommentInputProps) { <Form> <SubmitTextArea id="comment" - placeholder={props.placeholder || ""} + placeholder={props.placeholder || ''} /> <AsyncButton mt={2} loadingText={loading} border type="submit"> {label} diff --git a/pkg/interface/src/views/components/CommentItem.tsx b/pkg/interface/src/views/components/CommentItem.tsx index 4bd76a8ebe..a18905c7a8 100644 --- a/pkg/interface/src/views/components/CommentItem.tsx +++ b/pkg/interface/src/views/components/CommentItem.tsx @@ -1,13 +1,14 @@ -import React, { useState } from 'react'; -import { Link } from "react-router-dom"; -import { Contacts } from '~/types/contact-update'; -import GlobalApi from '~/logic/api/global'; -import { Box, Row, Text } from '@tlon/indigo-react'; +import React from 'react'; +import { Link } from 'react-router-dom'; import styled from 'styled-components'; + +import { Box, Row, Text } from '@tlon/indigo-react'; +import { Contacts } from '@urbit/api/contacts'; +import { GraphNode } from '@urbit/api/graph'; +import { Group } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; import Author from '~/views/components/Author'; -import { GraphNode, TextContent } from '~/types/graph-update'; -import tokenizeMessage from '~/logic/lib/tokenizeMessage'; -import { Group } from '~/types'; import { MentionText } from '~/views/components/MentionText'; import { getLatestCommentRevision } from '~/logic/lib/publish'; @@ -28,9 +29,9 @@ interface CommentItemProps { group: Group; } -export function CommentItem(props: CommentItemProps) { +export function CommentItem(props: CommentItemProps): ReactElement { const { ship, contacts, name, api, comment, group } = props; - const [revNum, post] = getLatestCommentRevision(comment); + const [, post] = getLatestCommentRevision(comment); const disabled = props.pending || window.ship !== post?.author; const onDelete = async () => { @@ -39,7 +40,7 @@ export function CommentItem(props: CommentItemProps) { const commentIndexArray = (comment.post?.index || '/').split('/'); const commentIndex = commentIndexArray[commentIndexArray.length - 1]; - const updateUrl = `${props.baseUrl}/${commentIndex}` + const updateUrl = `${props.baseUrl}/${commentIndex}`; return ( <Box mb={4} opacity={post?.pending ? '60%' : '100%'}> diff --git a/pkg/interface/src/views/components/Comments.tsx b/pkg/interface/src/views/components/Comments.tsx index 51297020bb..6c6d135133 100644 --- a/pkg/interface/src/views/components/Comments.tsx +++ b/pkg/interface/src/views/components/Comments.tsx @@ -3,10 +3,10 @@ import bigInt from 'big-integer'; import { Col } from '@tlon/indigo-react'; import { CommentItem } from './CommentItem'; import CommentInput from './CommentInput'; -import { Contacts } from '~/types/contact-update'; +import { Contacts } from '@urbit/api/contacts'; import GlobalApi from '~/logic/api/global'; import { FormikHelpers } from 'formik'; -import { Group, GraphNode, Association } from '~/types'; +import { Group, GraphNode, Association } from '@urbit/api'; import { createPost, createBlankNodeWithChildPost } from '~/logic/api/graph'; import { getLatestCommentRevision } from '~/logic/lib/publish'; import tokenizeMessage from '~/logic/lib/tokenizeMessage'; diff --git a/pkg/interface/src/views/components/Dropdown.tsx b/pkg/interface/src/views/components/Dropdown.tsx index 7e2a1fb2c3..352973905c 100644 --- a/pkg/interface/src/views/components/Dropdown.tsx +++ b/pkg/interface/src/views/components/Dropdown.tsx @@ -4,14 +4,17 @@ import React, { useRef, useEffect, useCallback, -} from "react"; -import styled from "styled-components"; -import _ from "lodash"; -import { Box, Col } from "@tlon/indigo-react"; -import { useOutsideClick } from "~/logic/lib/useOutsideClick"; -import { useLocation } from "react-router-dom"; -import { Portal } from "./Portal"; -import { getRelativePosition, AlignY, AlignX } from "~/logic/lib/relativePosition"; + ReactElement +} from 'react'; +import styled from 'styled-components'; +import _ from 'lodash'; +import { useLocation } from 'react-router-dom'; + +import { Box } from '@tlon/indigo-react'; + +import { useOutsideClick } from '~/logic/lib/useOutsideClick'; +import { Portal } from './Portal'; +import { getRelativePosition, AlignY, AlignX } from '~/logic/lib/relativePosition'; interface DropdownProps { children: ReactNode; @@ -33,7 +36,7 @@ const DropdownOptions = styled(Box)` transition-timing-function: ease; `; -export function Dropdown(props: DropdownProps) { +export function Dropdown(props: DropdownProps): ReactElement { const { children, options } = props; const dropdownRef = useRef<HTMLElement>(null); const anchorRef = useRef<HTMLElement>(null); @@ -75,14 +78,14 @@ export function Dropdown(props: DropdownProps) { }); return ( - <Box flexShrink={props?.flexShrink ? props.flexShrink : 1} position={open ? "relative" : "static"} minWidth='0' width={props?.width ? props.width : 'auto'}> + <Box flexShrink={props?.flexShrink ? props.flexShrink : 1} position={open ? 'relative' : 'static'} minWidth='0' width={props?.width ? props.width : 'auto'}> <ClickBox width='100%' ref={anchorRef} onClick={onOpen}> {children} </ClickBox> {open && ( <Portal> <DropdownOptions - width={props?.dropWidth || "max-content"} + width={props?.dropWidth || 'max-content'} {...coords} ref={dropdownRef} > @@ -95,6 +98,6 @@ export function Dropdown(props: DropdownProps) { } Dropdown.defaultProps = { - alignX: "left", - alignY: "bottom", + alignX: 'left', + alignY: 'bottom' }; diff --git a/pkg/interface/src/views/components/DropdownSearch.tsx b/pkg/interface/src/views/components/DropdownSearch.tsx index 5860af19e5..962423eb3f 100644 --- a/pkg/interface/src/views/components/DropdownSearch.tsx +++ b/pkg/interface/src/views/components/DropdownSearch.tsx @@ -5,17 +5,18 @@ import React, { useCallback, useEffect, ChangeEvent, -} from "react"; -import _ from "lodash"; -import Mousetrap from "mousetrap"; + ReactElement +} from 'react'; +import _ from 'lodash'; +import Mousetrap from 'mousetrap'; + import { Box, - Label, - ErrorLabel, - StatelessTextInput as Input, -} from "@tlon/indigo-react"; -import { useDropdown } from "~/logic/lib/useDropdown"; -import { PropFunc } from "~/types/util"; + StatelessTextInput as Input +} from '@tlon/indigo-react'; + +import { useDropdown } from '~/logic/lib/useDropdown'; +import { PropFunc } from '~/types/util'; interface DropdownSearchExtraProps<C> { // check if entry is exact match @@ -36,14 +37,14 @@ interface DropdownSearchExtraProps<C> { disabled?: boolean; placeholder?: string; onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void; - onBlur?: (e: any) => void; + onBlur?: (e: FocusEvent) => void; onFocus?: (e: FocusEvent) => void; } type DropdownSearchProps<C> = PropFunc<typeof Box> & DropdownSearchExtraProps<C>; -export function DropdownSearch<C>(props: DropdownSearchProps<C>) { +export function DropdownSearch<C>(props: DropdownSearchProps<C>): ReactElement { const textarea = useRef<HTMLTextAreaElement>(); const { candidates, @@ -54,13 +55,13 @@ export function DropdownSearch<C>(props: DropdownSearchProps<C>) { renderCandidate, disabled, placeholder, - onFocus = () => {}, - onChange = () => {}, - onBlur = () => {}, + onFocus = (): void => {}, + onChange = (): void => {}, + onBlur = (): void => {}, ...rest } = props; - const [query, setQuery] = useState(""); + const [query, setQuery] = useState(''); const exact = useCallback( (s: string) => { return isExact ? isExact(s) : undefined; @@ -77,7 +78,7 @@ export function DropdownSearch<C>(props: DropdownSearchProps<C>) { const handleSelect = useCallback( (c: C) => { - setQuery(""); + setQuery(''); onSelect(c); }, [setQuery, onSelect] @@ -96,14 +97,14 @@ export function DropdownSearch<C>(props: DropdownSearchProps<C>) { } const mousetrap = Mousetrap(textarea.current); - mousetrap.bind(["down", "tab"], next); - mousetrap.bind(["up", "shift+tab"], back); - mousetrap.bind("enter", onEnter); + mousetrap.bind(['down', 'tab'], next); + mousetrap.bind(['up', 'shift+tab'], back); + mousetrap.bind('enter', onEnter); return () => { - mousetrap.unbind(["down", "tab"]); - mousetrap.unbind(["up", "shift+tab"]); - mousetrap.unbind("enter"); + mousetrap.unbind(['down', 'tab']); + mousetrap.unbind(['up', 'shift+tab']); + mousetrap.unbind('enter'); }; }, [textarea.current, next, back, onEnter]); diff --git a/pkg/interface/src/views/components/ErrorBoundary.tsx b/pkg/interface/src/views/components/ErrorBoundary.tsx index 5d36f7ab99..c166dfe6b9 100644 --- a/pkg/interface/src/views/components/ErrorBoundary.tsx +++ b/pkg/interface/src/views/components/ErrorBoundary.tsx @@ -13,7 +13,7 @@ class ErrorBoundary extends Component< history.listen((location, action) => { if (this.state.error) { this.setState({ - error: undefined, + error: undefined }); } }); @@ -26,7 +26,7 @@ class ErrorBoundary extends Component< render() { if (this.state.error) { - return (<ErrorComponent error={this.state.error} />) + return (<ErrorComponent error={this.state.error} />); } return this.props.children; } diff --git a/pkg/interface/src/views/components/FormError.tsx b/pkg/interface/src/views/components/FormError.tsx index 6aa5cca1c4..ed10100a86 100644 --- a/pkg/interface/src/views/components/FormError.tsx +++ b/pkg/interface/src/views/components/FormError.tsx @@ -1,16 +1,16 @@ -import React from "react"; -import { useFormikContext } from "formik"; -import { ErrorLabel } from "@tlon/indigo-react"; -import {PropFunc} from "~/types/util"; +import React from 'react'; +import { useFormikContext } from 'formik'; +import { ErrorLabel } from '@tlon/indigo-react'; +import { PropFunc } from '~/types/util'; export function FormError(props: { message?: string } & PropFunc<typeof ErrorLabel>) { const { status } = useFormikContext(); const { message, ...rest } = props; - let s = status || {}; + const s = status || {}; const contents = message || s?.error; return ( - <ErrorLabel {...rest} hasError={"error" in s}>{contents}</ErrorLabel> + <ErrorLabel {...rest} hasError={'error' in s}>{contents}</ErrorLabel> ); } diff --git a/pkg/interface/src/views/components/FormSubmit.tsx b/pkg/interface/src/views/components/FormSubmit.tsx index ae481de856..6851c8618d 100644 --- a/pkg/interface/src/views/components/FormSubmit.tsx +++ b/pkg/interface/src/views/components/FormSubmit.tsx @@ -1,13 +1,13 @@ -import React, { useCallback, ReactNode } from "react"; -import { useFormikContext } from "formik"; -import { Row, Button } from "@tlon/indigo-react"; -import { AsyncButton } from "./AsyncButton"; +import React, { useCallback, ReactNode, ReactElement } from 'react'; +import { useFormikContext } from 'formik'; +import { Row, Button } from '@tlon/indigo-react'; +import { AsyncButton } from './AsyncButton'; interface FormSubmitProps { children?: ReactNode; } -export function FormSubmit<T = any>(props: FormSubmitProps) { +export function FormSubmit<T = unknown>(props: FormSubmitProps): ReactElement { const { children } = props; const { initialValues, values, dirty, resetForm, isSubmitting } = useFormikContext<T>(); @@ -19,7 +19,6 @@ export function FormSubmit<T = any>(props: FormSubmitProps) { resetForm({ errors: {}, touched: {}, values: initialValues, status: {} }); }, [resetForm, initialValues]); - return ( <Row p="2" diff --git a/pkg/interface/src/views/components/FormikOnBlur.tsx b/pkg/interface/src/views/components/FormikOnBlur.tsx index 2b54062c96..6b444b1b90 100644 --- a/pkg/interface/src/views/components/FormikOnBlur.tsx +++ b/pkg/interface/src/views/components/FormikOnBlur.tsx @@ -1,5 +1,5 @@ -import React, { useImperativeHandle, useEffect } from "react"; -import { FormikValues, useFormik, FormikProvider, FormikConfig } from "formik"; +import React, { useImperativeHandle, useEffect } from 'react'; +import { FormikValues, useFormik, FormikProvider, FormikConfig } from 'formik'; export function FormikOnBlur< Values extends FormikValues = FormikValues, @@ -22,7 +22,7 @@ export function FormikOnBlur< formikBag.errors, formikBag.touched, formikBag.submitForm, - formikBag.values, + formikBag.values ]); const { children, innerRef } = props; diff --git a/pkg/interface/src/views/components/GroupLink.tsx b/pkg/interface/src/views/components/GroupLink.tsx index e25fb6578d..6672fd8236 100644 --- a/pkg/interface/src/views/components/GroupLink.tsx +++ b/pkg/interface/src/views/components/GroupLink.tsx @@ -1,12 +1,14 @@ -import React, { useEffect, useState, useLayoutEffect } from "react"; +import React, { useEffect, useState, useLayoutEffect, ReactElement } from 'react'; -import { Box, Text, Row, Col, Button, Action } from "@tlon/indigo-react"; -import GlobalApi from "~/logic/api/global"; -import { Associations, Groups, PropFunc } from "~/types"; -import { MetadataIcon } from "../landscape/components/MetadataIcon"; -import { JoinGroup } from "../landscape/components/JoinGroup"; -import { useModal } from "~/logic/lib/useModal"; -import { GroupSummary } from "../landscape/components/GroupSummary"; +import { Box, Text, Row, Col } from '@tlon/indigo-react'; +import { Associations, Groups } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; +import { MetadataIcon } from '../landscape/components/MetadataIcon'; +import { JoinGroup } from '../landscape/components/JoinGroup'; +import { useModal } from '~/logic/lib/useModal'; +import { GroupSummary } from '../landscape/components/GroupSummary'; +import { PropFunc } from '~/types'; export function GroupLink( props: { @@ -17,7 +19,7 @@ export function GroupLink( measure: () => void; detailed?: boolean; } & PropFunc<typeof Row> -) { +): ReactElement { const { resource, api, associations, groups, measure, ...rest } = props; const name = resource.slice(6); const [preview, setPreview] = useState<MetadataUpdatePreview | null>(null); @@ -31,7 +33,7 @@ export function GroupLink( <GroupSummary metadata={preview.metadata} memberCount={preview.members} - channelCount={preview?.["channel-count"]} + channelCount={preview?.['channel-count']} /> </Box> ) : ( @@ -41,7 +43,7 @@ export function GroupLink( api={api} autojoin={name} /> - ), + ) }); useEffect(() => { diff --git a/pkg/interface/src/views/components/GroupSearch.tsx b/pkg/interface/src/views/components/GroupSearch.tsx index 4cc75b781d..d9bc2f6e8c 100644 --- a/pkg/interface/src/views/components/GroupSearch.tsx +++ b/pkg/interface/src/views/components/GroupSearch.tsx @@ -1,4 +1,8 @@ -import React, { useMemo, useState } from 'react'; +import React, { ReactElement, useMemo, useState } from 'react'; +import { useFormikContext, FieldArray } from 'formik'; +import _ from 'lodash'; +import styled from 'styled-components'; + import { Box, Text, @@ -8,15 +12,12 @@ import { Icon, ErrorLabel } from '@tlon/indigo-react'; -import _ from 'lodash'; -import { useField, useFormikContext, FieldArray } from 'formik'; -import styled from 'styled-components'; +import { Groups } from '@urbit/api'; +import { Associations, Association } from '@urbit/api/metadata'; + import { roleForShip } from '~/logic/lib/group'; - import { DropdownSearch } from './DropdownSearch'; -import { Groups } from '~/types'; -import { Associations, Association } from '~/types/metadata-update'; interface GroupSearchProps<I extends string> { disabled?: boolean; @@ -36,7 +37,7 @@ const CandidateBox = styled(Box)<{ selected: boolean }>` } `; -const Candidate = ({ title, selected, onClick }) => ( +const Candidate = ({ title, selected, onClick }): ReactElement => ( <CandidateBox onClick={onClick} selected={selected} @@ -54,7 +55,7 @@ function renderCandidate( a: Association, selected: boolean, onSelect: (a: Association) => void -) { +): ReactElement { const { title } = a.metadata; const onClick = () => { @@ -68,7 +69,7 @@ type FormValues<I extends string> = { [id in I]: string[]; }; -export function GroupSearch<I extends string, V extends FormValues<I>>(props: GroupSearchProps<I>) { +export function GroupSearch<I extends string, V extends FormValues<I>>(props: GroupSearchProps<I>): ReactElement { const { id, caption, label } = props; const { values, @@ -76,7 +77,7 @@ export function GroupSearch<I extends string, V extends FormValues<I>>(props: Gr errors, initialValues, setFieldValue, - setFieldTouched, + setFieldTouched } = useFormikContext<V>(); const [inputIdx, setInputIdx] = useState(initialValues[id].length); const name = `${id}[${inputIdx}]`; @@ -177,7 +178,8 @@ export function GroupSearch<I extends string, V extends FormValues<I>>(props: Gr </ErrorLabel> </Col> ); - }} /> + }} + /> ); } diff --git a/pkg/interface/src/views/components/HoverBox.tsx b/pkg/interface/src/views/components/HoverBox.tsx index d678c1e4d2..8159a68e3b 100644 --- a/pkg/interface/src/views/components/HoverBox.tsx +++ b/pkg/interface/src/views/components/HoverBox.tsx @@ -1,19 +1,19 @@ -import React from "react"; -import { Link } from "react-router-dom"; -import styled from "styled-components"; -import { Box } from "@tlon/indigo-react"; -import { PropFunc } from "~/types/util"; +import React from 'react'; +import { Link } from 'react-router-dom'; +import styled from 'styled-components'; +import { Box } from '@tlon/indigo-react'; +import { PropFunc } from '~/types/util'; interface HoverBoxProps { selected: boolean; bg: string; bgActive: string; } export const HoverBox = styled(Box)<HoverBoxProps>` - background-color: ${(p) => + background-color: ${p => p.selected ? p.theme.colors[p.bgActive] : p.theme.colors[p.bg]}; pointer: cursor; &:hover { - background-color: ${(p) => p.theme.colors[p.bgActive]}; + background-color: ${p => p.theme.colors[p.bgActive]}; } `; diff --git a/pkg/interface/src/views/components/IconRadio.tsx b/pkg/interface/src/views/components/IconRadio.tsx index 912329e8f3..e58e76a803 100644 --- a/pkg/interface/src/views/components/IconRadio.tsx +++ b/pkg/interface/src/views/components/IconRadio.tsx @@ -1,15 +1,15 @@ -import React, { useCallback, useMemo } from "react"; -import styled from "styled-components"; +import React, { useCallback, useMemo } from 'react'; +import styled from 'styled-components'; +import { useField } from 'formik'; + import { Icon, Box, Row, BaseLabel, - Indicator, Col, - Label, -} from "@tlon/indigo-react"; -import { useField } from "formik"; + Label +} from '@tlon/indigo-react'; type IconRadioProps = Parameters<typeof Row>[0] & { id: string; @@ -40,45 +40,50 @@ type IconIndicatorProps = Parameters<typeof Box> & { const indicator = { state: { on: { - //"*": { fill: "white" }, - backgroundColor: "blue", - borderColor: "blue", + // "*": { fill: "white" }, + backgroundColor: 'blue', + borderColor: 'blue' }, off: { - //"*": { fill: "transparent" }, - backgroundColor: "white", - borderColor: "lightGray", + // "*": { fill: "transparent" }, + backgroundColor: 'white', + borderColor: 'lightGray' }, onError: { - //"*": { fill: "white" }, - backgroundColor: "red", - borderColor: "red", + // "*": { fill: "white" }, + backgroundColor: 'red', + borderColor: 'red' }, offError: { // "*": { fill: "transparent" }, - backgroundColor: "washedRed", - borderColor: "red", + backgroundColor: 'washedRed', + borderColor: 'red' }, offDisabled: { - //"*": { fill: "transparent" }, - backgroundColor: "washedGray", - borderColor: "lightGray", + // "*": { fill: "transparent" }, + backgroundColor: 'washedGray', + borderColor: 'lightGray' }, onDisabled: { - //"*": { fill: "lightGray" }, - backgroundColor: "washedGray", - borderColor: "lightGray", - }, - }, + // "*": { fill: "lightGray" }, + backgroundColor: 'washedGray', + borderColor: 'lightGray' + } + } }; const IconIndicator = ({ disabled, selected, hasError, children, ...rest }) => { const style = useMemo(() => { - if (selected && disabled) return indicator.state.onDisabled; - if (selected && hasError) return indicator.state.onError; - if (selected) return indicator.state.on; - if (disabled) return indicator.state.offDisabled; - if (hasError) return indicator.state.offError; + if (selected && disabled) +return indicator.state.onDisabled; + if (selected && hasError) +return indicator.state.onError; + if (selected) +return indicator.state.on; + if (disabled) +return indicator.state.offDisabled; + if (hasError) +return indicator.state.offError; return indicator.state.off; }, [selected, disabled, hasError]); @@ -95,7 +100,7 @@ export function IconRadio(props: IconRadioProps) { name, id, value: id, - type: "radio", + type: 'radio' }); const onChange = useCallback( @@ -122,12 +127,12 @@ export function IconRadio(props: IconRadioProps) { > <Icon m="2" - color={field.checked ? "white" : "black"} + color={field.checked ? 'white' : 'black'} icon={icon as any} /> </IconIndicator> <Col justifyContent="space-around"> - <Label color={field.checked ? "blue" : "black"}>{label}</Label> + <Label color={field.checked ? 'blue' : 'black'}>{label}</Label> {caption ? ( <Label gray mt="2"> {caption} diff --git a/pkg/interface/src/views/components/ImageInput.tsx b/pkg/interface/src/views/components/ImageInput.tsx index d234462b13..325b022546 100644 --- a/pkg/interface/src/views/components/ImageInput.tsx +++ b/pkg/interface/src/views/components/ImageInput.tsx @@ -1,4 +1,5 @@ -import React, { useRef, useCallback, useState } from "react"; +import React, { useRef, useCallback, ReactElement } from 'react'; +import { useField } from 'formik'; import { Box, @@ -8,10 +9,10 @@ import { Label, ErrorLabel, BaseInput -} from "@tlon/indigo-react"; -import { useField } from "formik"; -import { S3State } from "~/types/s3-update"; -import useS3 from "~/logic/lib/useS3"; +} from '@tlon/indigo-react'; + +import { S3State } from '~/types/s3-update'; +import useS3 from '~/logic/lib/useS3'; type ImageInputProps = Parameters<typeof Box>[0] & { id: string; @@ -20,8 +21,8 @@ type ImageInputProps = Parameters<typeof Box>[0] & { placeholder?: string; }; -export function ImageInput(props: ImageInputProps) { - const { id, label, s3, caption, placeholder, ...rest } = props; +export function ImageInput(props: ImageInputProps): ReactElement { + const { id, label, s3, caption, placeholder } = props; const { uploadDefault, canUpload, uploading } = useS3(s3); @@ -57,7 +58,7 @@ export function ImageInput(props: ImageInputProps) { ) : null} <Row mt="2" alignItems="flex-end"> <Input - type={"text"} + type={'text'} hasError={meta.touched && meta.error !== undefined} placeholder={placeholder} {...field} @@ -72,10 +73,10 @@ export function ImageInput(props: ImageInputProps) { onClick={onClick} flexShrink={0} > - {uploading ? "Uploading" : "Upload"} + {uploading ? 'Uploading' : 'Upload'} </Button> <BaseInput - style={{ display: "none" }} + style={{ display: 'none' }} type="file" id="fileElement" ref={ref} @@ -85,7 +86,7 @@ export function ImageInput(props: ImageInputProps) { </> )} </Row> - <ErrorLabel mt="2" hasError={!!(meta.touched && meta.error)}> + <ErrorLabel mt="2" hasError={Boolean(meta.touched && meta.error)}> {meta.error} </ErrorLabel> </Box> diff --git a/pkg/interface/src/views/components/Invite/Group.tsx b/pkg/interface/src/views/components/Invite/Group.tsx index ea5c37b989..9345d1c78c 100644 --- a/pkg/interface/src/views/components/Invite/Group.tsx +++ b/pkg/interface/src/views/components/Invite/Group.tsx @@ -1,11 +1,11 @@ -import React, { ReactNode } from "react"; -import { Text, Box, Button, Icon, Row, Rule, Col } from "@tlon/indigo-react"; +import React, { ReactElement, ReactNode } from 'react'; +import { Text, Box, Icon, Row } from '@tlon/indigo-react'; -import { cite } from "~/logic/lib/util"; -import { MetadataUpdatePreview, JoinProgress, Invite } from "~/types"; -import { GroupSummary } from "~/views/landscape/components/GroupSummary"; -import { InviteSkeleton } from "./InviteSkeleton"; -import { JoinSkeleton } from "./JoinSkeleton"; +import { cite } from '~/logic/lib/util'; +import { MetadataUpdatePreview, JoinProgress, Invite } from '@urbit/api'; +import { GroupSummary } from '~/views/landscape/components/GroupSummary'; +import { InviteSkeleton } from './InviteSkeleton'; +import { JoinSkeleton } from './JoinSkeleton'; interface GroupInviteProps { preview: MetadataUpdatePreview; @@ -15,12 +15,12 @@ interface GroupInviteProps { onDecline: () => Promise<any>; } -export function GroupInvite(props: GroupInviteProps) { +export function GroupInvite(props: GroupInviteProps): ReactElement { const { preview, invite, status, onAccept, onDecline } = props; const { metadata, members } = props.preview; let inner: ReactNode = null; - let Outer: (p: { children: ReactNode }) => JSX.Element = (p) => ( + let Outer: (p: { children: ReactNode }) => JSX.Element = p => ( <>{p.children}</> ); @@ -68,7 +68,7 @@ export function GroupInvite(props: GroupInviteProps) { gray metadata={metadata} memberCount={members} - channelCount={preview?.["channel-count"]} + channelCount={preview?.['channel-count']} /> </Box> </Outer> diff --git a/pkg/interface/src/views/components/Invite/InviteSkeleton.tsx b/pkg/interface/src/views/components/Invite/InviteSkeleton.tsx index c1b4d3899b..bcf773f68e 100644 --- a/pkg/interface/src/views/components/Invite/InviteSkeleton.tsx +++ b/pkg/interface/src/views/components/Invite/InviteSkeleton.tsx @@ -1,8 +1,8 @@ -import React, { ReactNode } from "react"; -import { Text, Box, Button, Icon, Row, Rule, Col } from "@tlon/indigo-react"; +import React, { ReactElement, ReactNode } from 'react'; +import { Row, Rule, Col } from '@tlon/indigo-react'; -import { StatelessAsyncAction } from "~/views/components/StatelessAsyncAction"; -import { PropFunc } from "~/types"; +import { StatelessAsyncAction } from '~/views/components/StatelessAsyncAction'; +import { PropFunc } from '~/types'; export interface InviteSkeletonProps { onAccept: () => Promise<any>; @@ -14,7 +14,7 @@ export interface InviteSkeletonProps { export function InviteSkeleton( props: InviteSkeletonProps & PropFunc<typeof Col> -) { +): ReactElement { const { children, acceptDesc, diff --git a/pkg/interface/src/views/components/Invite/JoinSkeleton.tsx b/pkg/interface/src/views/components/Invite/JoinSkeleton.tsx index c3e39bd63f..c3e6874f3b 100644 --- a/pkg/interface/src/views/components/Invite/JoinSkeleton.tsx +++ b/pkg/interface/src/views/components/Invite/JoinSkeleton.tsx @@ -1,14 +1,15 @@ -import React, { ReactNode } from "react"; -import { Col, Row, SegmentedProgressBar, Text, Rule } from "@tlon/indigo-react"; -import { JoiningStatus } from "~/views/apps/notifications/joining"; -import { JoinProgress, PropFunc } from "~/types"; +import React, { ReactElement, ReactNode } from 'react'; +import { Col, Rule } from '@tlon/indigo-react'; +import { JoiningStatus } from '~/views/apps/notifications/joining'; +import { JoinProgress } from '@urbit/api'; +import { PropFunc } from '~/types/util'; type JoinSkeletonProps = { children: ReactNode; status: JoinProgress; } & PropFunc<typeof Col>; -export function JoinSkeleton(props: JoinSkeletonProps) { +export function JoinSkeleton(props: JoinSkeletonProps): ReactElement { const { children, status, ...rest } = props; return ( <> diff --git a/pkg/interface/src/views/components/Invite/index.tsx b/pkg/interface/src/views/components/Invite/index.tsx index fc6e9b1924..d198e430eb 100644 --- a/pkg/interface/src/views/components/Invite/index.tsx +++ b/pkg/interface/src/views/components/Invite/index.tsx @@ -1,25 +1,23 @@ -import React, { Component, useState, useEffect, useCallback, useMemo } from "react"; -import { Invite } from "~/types/invite-update"; -import { Text, Box, Button, Icon, Row, Rule, Col } from "@tlon/indigo-react"; -import { StatelessAsyncAction } from "~/views/components/StatelessAsyncAction"; -import { cite } from "~/logic/lib/util"; +import React, { useState, useEffect, useCallback } from 'react'; +import { useHistory } from 'react-router-dom'; + import { MetadataUpdatePreview, Contacts, JoinRequests, - JoinProgress, Groups, - Associations, -} from "~/types"; -import GlobalApi from "~/logic/api/global"; -import { GroupSummary } from "~/views/landscape/components/GroupSummary"; -import { JoiningStatus } from "~/views/apps/notifications/joining"; -import { resourceFromPath } from "~/logic/lib/group"; -import { GroupInvite } from "./Group"; -import { InviteSkeleton } from "./InviteSkeleton"; -import { JoinSkeleton } from "./JoinSkeleton"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import { useHistory } from "react-router-dom"; + Associations +} from '@urbit/api'; +import { Invite } from '@urbit/api/invite'; +import { Text, Icon, Row } from '@tlon/indigo-react'; + +import { cite } from '~/logic/lib/util'; +import GlobalApi from '~/logic/api/global'; +import { resourceFromPath } from '~/logic/lib/group'; +import { GroupInvite } from './Group'; +import { InviteSkeleton } from './InviteSkeleton'; +import { JoinSkeleton } from './JoinSkeleton'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; interface InviteItemProps { invite?: Invite; @@ -61,7 +59,7 @@ export function InviteItem(props: InviteItemProps) { if (props.groups?.[resource]?.hidden) { const { metadata } = associations.graph[resource]; - if (name.startsWith("dm--")) { + if (name.startsWith('dm--')) { history.push(`/~landscape/messages/resource/${metadata.module}${resource}`); } else { history.push(`/~landscape/home/resource/${metadata.module}${resource}`); @@ -78,10 +76,10 @@ export function InviteItem(props: InviteItemProps) { await api.invite.decline(app, uid); }, [app, uid]); - const handlers = { onAccept: inviteAccept, onDecline: inviteDecline } + const handlers = { onAccept: inviteAccept, onDecline: inviteDecline }; useEffect(() => { - if (!app || app === "groups") { + if (!app || app === 'groups') { (async () => { setPreview(await api.metadata.preview(resource)); })(); @@ -102,7 +100,7 @@ export function InviteItem(props: InviteItemProps) { {...handlers} /> ); - } else if (invite && name.startsWith("dm--")) { + } else if (invite && name.startsWith('dm--')) { return ( <InviteSkeleton gapY="3" @@ -119,14 +117,14 @@ export function InviteItem(props: InviteItemProps) { </Row> </InviteSkeleton> ); - } else if (status && name.startsWith("dm--")) { + } else if (status && name.startsWith('dm--')) { return ( <JoinSkeleton status={status} gapY="3"> <Row py="1" alignItems="center"> <Icon display="block" color="blue" icon="Bullet" mr="2" /> <Text mr="1">You are joining a DM with</Text> <Text mr="1" mono> - {cite("~hastuc-dibtux")} + {cite('~hastuc-dibtux')} </Text> </Row> </JoinSkeleton> @@ -151,7 +149,7 @@ export function InviteItem(props: InviteItemProps) { </InviteSkeleton> ); } else if (status) { - const [, , ship, name] = resource.split("/"); + const [, , ship, name] = resource.split('/'); return ( <JoinSkeleton status={status}> <Row py="1" alignItems="center"> diff --git a/pkg/interface/src/views/components/Loading.tsx b/pkg/interface/src/views/components/Loading.tsx index a11f5e09c8..78822673e9 100644 --- a/pkg/interface/src/views/components/Loading.tsx +++ b/pkg/interface/src/views/components/Loading.tsx @@ -1,7 +1,7 @@ -import React from "react"; -import { Text, Center, LoadingSpinner } from "@tlon/indigo-react"; +import React from 'react'; +import { Text, Center, LoadingSpinner } from '@tlon/indigo-react'; -import { Body } from "./Body"; +import { Body } from './Body'; interface LoadingProps { text?: string; @@ -11,7 +11,7 @@ export function Loading({ text }: LoadingProps) { <Body> <Center height="100%"> <LoadingSpinner /> - {!!text && <Text>{text}</Text>} + {Boolean(text) && <Text>{text}</Text>} </Center> </Body> ); diff --git a/pkg/interface/src/views/components/MentionText.tsx b/pkg/interface/src/views/components/MentionText.tsx index 02bdf0c220..96187d94cb 100644 --- a/pkg/interface/src/views/components/MentionText.tsx +++ b/pkg/interface/src/views/components/MentionText.tsx @@ -1,7 +1,7 @@ import React, { useState, useCallback } from 'react'; import _ from 'lodash'; import { Text, Box } from '@tlon/indigo-react'; -import { Contact, Contacts, Content, Group } from '~/types'; +import { Contact, Contacts, Content, Group } from '@urbit/api'; import RichText from '~/views/components/RichText'; import { cite, useShowNickname, uxToHex } from '~/logic/lib/util'; import OverlaySigil from '~/views/components/OverlaySigil'; diff --git a/pkg/interface/src/views/components/ModalOverlay.tsx b/pkg/interface/src/views/components/ModalOverlay.tsx index fee8c578e8..9838fe1ad1 100644 --- a/pkg/interface/src/views/components/ModalOverlay.tsx +++ b/pkg/interface/src/views/components/ModalOverlay.tsx @@ -1,9 +1,9 @@ -import React, { useCallback, UIEvent, MouseEvent, useRef } from "react"; -import { Box } from "@tlon/indigo-react"; -import { PropFunc } from "~/types/util"; +import React, { useCallback, UIEvent, MouseEvent, useRef } from 'react'; +import { Box } from '@tlon/indigo-react'; +import { PropFunc } from '~/types/util'; interface ModalOverlayProps { - spacing: PropFunc<typeof Box>["m"]; + spacing: PropFunc<typeof Box>['m']; dismiss: () => void; } type Props = ModalOverlayProps & PropFunc<typeof Box>; @@ -22,7 +22,7 @@ export const ModalOverlay = (props: Props) => { const onKeyDown = useCallback( (e: any) => { - if (e.key === "Escape") { + if (e.key === 'Escape') { props.dismiss(); e.stopPropagation(); } @@ -49,4 +49,4 @@ export const ModalOverlay = (props: Props) => { <Box ref={ref} {...rest} /> </Box> ); -} +}; diff --git a/pkg/interface/src/views/components/OverlaySigil.tsx b/pkg/interface/src/views/components/OverlaySigil.tsx index f2d031feb8..066e1de7d6 100644 --- a/pkg/interface/src/views/components/OverlaySigil.tsx +++ b/pkg/interface/src/views/components/OverlaySigil.tsx @@ -1,5 +1,5 @@ -import React, { useState, useRef, useEffect, PureComponent } from 'react'; -import { Contact, Group } from '~/types'; +import React, { useState, useRef, useEffect } from 'react'; +import { Contact, Group } from '@urbit/api'; import ProfileOverlay, { OVERLAY_HEIGHT } from './ProfileOverlay'; import { Box, ColProps } from '@tlon/indigo-react'; diff --git a/pkg/interface/src/views/components/Portal.tsx b/pkg/interface/src/views/components/Portal.tsx index 7bc5d51b6e..297168e901 100644 --- a/pkg/interface/src/views/components/Portal.tsx +++ b/pkg/interface/src/views/components/Portal.tsx @@ -1,10 +1,10 @@ -import { useEffect, ReactNode, useMemo } from "react"; -import { createPortal } from "react-dom"; +import { useEffect, ReactNode, useMemo } from 'react'; +import { createPortal } from 'react-dom'; export function Portal(props: { children: ReactNode }) { - const root = document.getElementById("portal-root"); + const root = document.getElementById('portal-root'); - const el = useMemo(() => document.createElement("div"), []); + const el = useMemo(() => document.createElement('div'), []); useEffect(() => { root?.appendChild(el); diff --git a/pkg/interface/src/views/components/ProfileOverlay.tsx b/pkg/interface/src/views/components/ProfileOverlay.tsx index 367d81186a..df1fec01c8 100644 --- a/pkg/interface/src/views/components/ProfileOverlay.tsx +++ b/pkg/interface/src/views/components/ProfileOverlay.tsx @@ -1,6 +1,6 @@ import React, { PureComponent } from 'react'; -import { Contact, Group } from '~/types'; +import { Contact, Group } from '@urbit/api'; import { cite, useShowNickname } from '~/logic/lib/util'; import { Sigil } from '~/logic/lib/sigil'; @@ -33,7 +33,7 @@ type ProfileOverlayProps = ColProps & { api: any; }; -class ProfileOverlay extends PureComponent<ProfileOverlayProps, {}> { +class ProfileOverlay extends PureComponent<ProfileOverlayProps, Record<string, never>> { public popoverRef: React.Ref<typeof Col>; constructor(props) { @@ -123,13 +123,14 @@ class ProfileOverlay extends PureComponent<ProfileOverlayProps, {}> { > <Row color='black' width='100%' height="3rem"> {(!isOwn) && ( - <Icon icon="Chat" size={16} onClick={() => history.push(`/~landscape/dm/${ship}`)}/> + <Icon icon="Chat" size={16} onClick={() => history.push(`/~landscape/dm/${ship}`)} /> )} </Row> <Box alignSelf="center" height="72px" - onClick={() => history.push(`/~profile/~${ship}`)}> + onClick={() => history.push(`/~profile/~${ship}`)} + > {img} </Box> <Col alignItems="end" justifyContent="flex-end" overflow="hidden"> diff --git a/pkg/interface/src/views/components/RemoteContent.tsx b/pkg/interface/src/views/components/RemoteContent.tsx index c6f16c658b..b490a3d2d5 100644 --- a/pkg/interface/src/views/components/RemoteContent.tsx +++ b/pkg/interface/src/views/components/RemoteContent.tsx @@ -66,7 +66,8 @@ class RemoteContent extends PureComponent<RemoteContentProps, RemoteContentState .then((result) => { this.setState({ embed: result }); }).catch((error) => { - if (error.name === 'AbortError') return; + if (error.name === 'AbortError') +return; this.setState({ embed: 'error' }); }); } @@ -81,7 +82,7 @@ class RemoteContent extends PureComponent<RemoteContentProps, RemoteContentState target="_blank" width="100%" rel="noopener noreferrer" - > + > {contents} </BaseAnchor>); } @@ -171,7 +172,7 @@ class RemoteContent extends PureComponent<RemoteContentProps, RemoteContentState onClick={this.unfoldEmbed} flexShrink={0} style={{ cursor: 'pointer' }} - > + > {this.state.unfold ? 'collapse' : 'expand'} </Button> : null} <Box @@ -188,8 +189,11 @@ class RemoteContent extends PureComponent<RemoteContentProps, RemoteContentState > {this.state.embed && this.state.embed.html && this.state.unfold ? <EmbedContainer markup={this.state.embed.html}> - <div className="embed-container" ref={el => { this.containerRef = el; }} - dangerouslySetInnerHTML={{__html: this.state.embed.html}}></div> + <div className="embed-container" ref={(el) => { + this.containerRef = el; +}} + dangerouslySetInnerHTML={{ __html: this.state.embed.html }} + ></div> </EmbedContainer> : null} </Box> diff --git a/pkg/interface/src/views/components/ShipSearch.tsx b/pkg/interface/src/views/components/ShipSearch.tsx index e4e6c4566d..5a04334956 100644 --- a/pkg/interface/src/views/components/ShipSearch.tsx +++ b/pkg/interface/src/views/components/ShipSearch.tsx @@ -2,33 +2,28 @@ import React, { useMemo, useCallback, ChangeEvent, - useState, - SyntheticEvent, - useEffect, useRef, -} from "react"; + ReactElement +} from 'react'; +import _ from 'lodash'; +import ob from 'urbit-ob'; +import * as Yup from 'yup'; +import { FieldArray, useFormikContext } from 'formik'; + import { - Box, Label, Icon, Text, Row, Col, - ErrorLabel, -} from "@tlon/indigo-react"; -import _ from "lodash"; -import ob from "urbit-ob"; -import * as Yup from "yup"; -import { useField, FieldArray, useFormikContext } from "formik"; -import styled from "styled-components"; + ErrorLabel +} from '@tlon/indigo-react'; +import { Rolodex, Groups } from '@urbit/api'; -import { DropdownSearch } from "./DropdownSearch"; -import { Associations, Association } from "~/types/metadata-update"; -import { cite, deSig } from "~/logic/lib/util"; -import { Rolodex, Groups } from "~/types"; -import { HoverBox } from "./HoverBox"; -const INVALID_SHIP_ERR = "Invalid ship"; +import { DropdownSearch } from './DropdownSearch'; +import { cite, deSig } from '~/logic/lib/util'; +import { HoverBox } from './HoverBox'; interface InviteSearchProps<I extends string> { autoFocus?: boolean; @@ -42,7 +37,7 @@ interface InviteSearchProps<I extends string> { maxLength?: number; } -const getNicknameForShips = (groups: Groups, contacts: Rolodex) => { +const getNicknameForShips = (groups: Groups, contacts: Rolodex): readonly [string[], Map<string, string[]>] => { const peerSet = new Set<string>(); const nicknames = new Map<string, string[]>(); _.forEach(groups, (group, path) => { @@ -71,7 +66,7 @@ const getNicknameForShips = (groups: Groups, contacts: Rolodex) => { return [Array.from(peerSet), nicknames] as const; }; -const Candidate = ({ title, detail, selected, onClick }) => ( +const Candidate = ({ title, detail, selected, onClick }): ReactElement => ( <HoverBox display="flex" justifyContent="space-between" @@ -96,26 +91,26 @@ type Value<I extends string> = { }; const shipItemSchema = Yup.string().test( - "is-patp", - "${value} is not a valid @p", + 'is-patp', + '${value} is not a valid @p', x => ob.isValidPatp(`~${x}`) ); export const shipSearchSchema = Yup.array(shipItemSchema).compact(); export const shipSearchSchemaInGroup = (members: string[]) => - Yup.array(shipItemSchema.oneOf(members, "${value} not a member of this group")).compact(); + Yup.array(shipItemSchema.oneOf(members, '${value} not a member of this group')).compact(); export function ShipSearch<I extends string, V extends Value<I>>( props: InviteSearchProps<I> -) { +): ReactElement { const { id, label, caption } = props; const { values, touched, errors, initialValues, - setFieldValue, + setFieldValue } = useFormikContext<V>(); const inputIdx = useRef(initialValues[id].length); @@ -133,7 +128,7 @@ export function ShipSearch<I extends string, V extends Value<I>>( const renderCandidate = useCallback( (s: string, selected: boolean, onSelect: (s: string) => void) => { - const detail = _.uniq(nicknames.get(s)).join(", "); + const detail = _.uniq(nicknames.get(s)).join(', '); const onClick = () => { onSelect(s); }; @@ -152,7 +147,7 @@ export function ShipSearch<I extends string, V extends Value<I>>( const onChange = (e: ChangeEvent<HTMLTextAreaElement>) => { const newValue = - e.target.value?.length > 0 ? `~${deSig(e.target.value)}` : ""; + e.target.value?.length > 0 ? `~${deSig(e.target.value)}` : ''; setFieldValue(name(), newValue); }; @@ -165,7 +160,7 @@ export function ShipSearch<I extends string, V extends Value<I>>( const onAdd = (ship: string) => { setFieldValue(name(), ship); inputIdx.current += 1; - arrayHelpers.push(""); + arrayHelpers.push(''); }; const onRemove = (idx: number) => { @@ -196,7 +191,7 @@ export function ShipSearch<I extends string, V extends Value<I>>( props.maxLength ? selected.length >= props.maxLength : false } search={(s: string, t: string) => - (t || "").toLowerCase().startsWith(s.toLowerCase()) + (t || '').toLowerCase().startsWith(s.toLowerCase()) } getKey={(s: string) => s} onChange={onChange} @@ -227,7 +222,7 @@ export function ShipSearch<I extends string, V extends Value<I>>( ))} </Row> <ErrorLabel mt="3" hasError={error.length > 0}> - {error.join(", ")} + {error.join(', ')} </ErrorLabel> </Col> ); diff --git a/pkg/interface/src/views/components/StatelessAsyncAction.tsx b/pkg/interface/src/views/components/StatelessAsyncAction.tsx index be46d4de13..68ab25f63a 100644 --- a/pkg/interface/src/views/components/StatelessAsyncAction.tsx +++ b/pkg/interface/src/views/components/StatelessAsyncAction.tsx @@ -1,7 +1,7 @@ -import React, { ReactNode } from "react"; +import React, { ReactNode } from 'react'; import { useStatelessAsyncClickable } from '~/logic/lib/useStatelessAsyncClickable'; -import { LoadingSpinner, Action } from "@tlon/indigo-react"; +import { LoadingSpinner, Action } from '@tlon/indigo-react'; interface AsyncActionProps { children: ReactNode; @@ -19,7 +19,7 @@ export function StatelessAsyncAction({ }: AsyncActionProps & Parameters<typeof Action>[0]) { const { onClick: handleClick, - buttonState: state, + buttonState: state } = useStatelessAsyncClickable(onClick, name); return ( @@ -27,16 +27,17 @@ export function StatelessAsyncAction({ height="18px" hideDisabled={!disabled} disabled={disabled || state === 'loading'} - onClick={handleClick} {...rest}> - {state === "error" ? ( - "Error" - ) : state === "loading" ? ( + onClick={handleClick} {...rest} + > + {state === 'error' ? ( + 'Error' + ) : state === 'loading' ? ( <LoadingSpinner - foreground={rest.destructive ? "red" : "black"} + foreground={rest.destructive ? 'red' : 'black'} background="transparent" /> - ) : state === "success" ? ( - "Done" + ) : state === 'success' ? ( + 'Done' ) : ( children )} diff --git a/pkg/interface/src/views/components/StatelessAsyncButton.tsx b/pkg/interface/src/views/components/StatelessAsyncButton.tsx index faf933ed34..68c27d2263 100644 --- a/pkg/interface/src/views/components/StatelessAsyncButton.tsx +++ b/pkg/interface/src/views/components/StatelessAsyncButton.tsx @@ -1,9 +1,8 @@ -import React, { ReactNode, useState, useEffect, useCallback } from "react"; +import React, { ReactElement, ReactNode } from 'react'; -import { Button, LoadingSpinner } from "@tlon/indigo-react"; -import { useFormikContext } from "formik"; +import { Button, LoadingSpinner } from '@tlon/indigo-react'; -import { useStatelessAsyncClickable } from "~/logic/lib/useStatelessAsyncClickable"; +import { useStatelessAsyncClickable } from '~/logic/lib/useStatelessAsyncClickable'; interface AsyncButtonProps { children: ReactNode; @@ -14,33 +13,33 @@ interface AsyncButtonProps { export function StatelessAsyncButton({ children, onClick, - name = "", + name = '', disabled = false, ...rest -}: AsyncButtonProps & Parameters<typeof Button>[0]) { +}: AsyncButtonProps & Parameters<typeof Button>[0]): ReactElement { const { onClick: handleClick, - buttonState: state, + buttonState: state } = useStatelessAsyncClickable(onClick, name); return ( - <Button + <Button hideDisabled={!disabled} disabled={disabled || state === 'loading'} onClick={handleClick} {...rest} > - {state === "error" ? ( - "Error" - ) : state === "loading" ? ( + {state === 'error' ? ( + 'Error' + ) : state === 'loading' ? ( <LoadingSpinner foreground={ - rest.primary ? "white" : rest.destructive ? "red" : "black" + rest.primary ? 'white' : rest.destructive ? 'red' : 'black' } background="gray" /> - ) : state === "success" ? ( - "Done" + ) : state === 'success' ? ( + 'Done' ) : ( children )} diff --git a/pkg/interface/src/views/components/StatelessAsyncToggle.tsx b/pkg/interface/src/views/components/StatelessAsyncToggle.tsx index 71e4f9da6d..6d1d5937a6 100644 --- a/pkg/interface/src/views/components/StatelessAsyncToggle.tsx +++ b/pkg/interface/src/views/components/StatelessAsyncToggle.tsx @@ -1,13 +1,12 @@ -import React, { ReactNode, useState, useEffect, useCallback } from "react"; +import React, { ReactElement } from 'react'; import { StatelessToggleSwitchField as Toggle, LoadingSpinner, Text -} from "@tlon/indigo-react"; -import { useFormikContext } from "formik"; +} from '@tlon/indigo-react'; -import { useStatelessAsyncClickable } from "~/logic/lib/useStatelessAsyncClickable"; +import { useStatelessAsyncClickable } from '~/logic/lib/useStatelessAsyncClickable'; interface AsyncToggleProps { name?: string; @@ -16,19 +15,19 @@ interface AsyncToggleProps { export function StatelessAsyncToggle({ onClick, - name = "", + name = '', ...rest -}: AsyncToggleProps & Parameters<typeof Toggle>[0]) { +}: AsyncToggleProps & Parameters<typeof Toggle>[0]): ReactElement { const { onClick: handleClick, - buttonState: state, + buttonState: state } = useStatelessAsyncClickable(onClick, name); - return state === "error" ? ( + return state === 'error' ? ( <Text mr="2">Error</Text> - ) : state === "loading" ? ( - <LoadingSpinner mr="2" foreground={"white"} background="gray" /> - ) : state === "success" ? ( + ) : state === 'loading' ? ( + <LoadingSpinner mr="2" foreground={'white'} background="gray" /> + ) : state === 'success' ? ( <Text mr="2">Done</Text> ) : ( <Toggle onClick={handleClick} {...rest} /> diff --git a/pkg/interface/src/views/components/StatusBarItem.tsx b/pkg/interface/src/views/components/StatusBarItem.tsx index 5577b02858..92beabbcfe 100644 --- a/pkg/interface/src/views/components/StatusBarItem.tsx +++ b/pkg/interface/src/views/components/StatusBarItem.tsx @@ -1,6 +1,6 @@ -import React, { ReactNode } from "react"; -import { Row as _Row, Icon, Button } from "@tlon/indigo-react"; -import styled from "styled-components"; +import React, { ReactNode } from 'react'; +import { Row as _Row, Icon, Button } from '@tlon/indigo-react'; +import styled from 'styled-components'; const Row = styled(_Row)` cursor: pointer; diff --git a/pkg/interface/src/views/components/SubmitDragger.tsx b/pkg/interface/src/views/components/SubmitDragger.tsx index 7bece2aafd..986314636d 100644 --- a/pkg/interface/src/views/components/SubmitDragger.tsx +++ b/pkg/interface/src/views/components/SubmitDragger.tsx @@ -1,9 +1,8 @@ -import { BaseInput, Box, Icon, LoadingSpinner, Text } from "@tlon/indigo-react"; -import React, { useCallback } from "react"; -import useS3 from "~/logic/lib/useS3"; -import { S3State } from "~/types"; +import React, { ReactElement } from 'react'; -const SubmitDragger = () => ( +import { Box, Text } from '@tlon/indigo-react'; + +const SubmitDragger = (): ReactElement => ( <Box top='0' bottom='0' @@ -24,4 +23,4 @@ const SubmitDragger = () => ( </Box> ); -export default SubmitDragger; \ No newline at end of file +export default SubmitDragger; diff --git a/pkg/interface/src/views/components/Tab.tsx b/pkg/interface/src/views/components/Tab.tsx index 869c923c14..185cddb4fd 100644 --- a/pkg/interface/src/views/components/Tab.tsx +++ b/pkg/interface/src/views/components/Tab.tsx @@ -1,11 +1,11 @@ -import React from "react"; -import { Box, Text, Row } from "@tlon/indigo-react"; +import React from 'react'; +import { Box, Text, Row } from '@tlon/indigo-react'; export const Tab = ({ selected, id, label, setSelected }) => ( <Box py={2} borderBottom={1} - borderBottomColor={selected === id ? "black" : "washedGray"} + borderBottomColor={selected === id ? 'black' : 'washedGray'} px={2} cursor='pointer' flexGrow={1} @@ -14,7 +14,7 @@ export const Tab = ({ selected, id, label, setSelected }) => ( justifyContent="center" onClick={() => setSelected(id)} > - <Text color={selected === id ? "black" : "gray"}>{label}</Text> + <Text color={selected === id ? 'black' : 'gray'}>{label}</Text> </Box> ); diff --git a/pkg/interface/src/views/components/Triangle.tsx b/pkg/interface/src/views/components/Triangle.tsx index 214f82abb9..52d04fabf0 100644 --- a/pkg/interface/src/views/components/Triangle.tsx +++ b/pkg/interface/src/views/components/Triangle.tsx @@ -1,41 +1,41 @@ -import React from "react"; -import _ from "lodash"; -import { Box } from "@tlon/indigo-react"; -import { PropFunc } from "~/types"; +import React from 'react'; +import _ from 'lodash'; +import { Box } from '@tlon/indigo-react'; +import { PropFunc } from '@urbit/api'; -export type Direction = "East" | "South" | "West" | "North"; +export type Direction = 'East' | 'South' | 'West' | 'North'; type TriangleProps = PropFunc<typeof Box> & { direction: Direction; color: string; size: number; }; -const borders = ["Top", "Bottom", "Left", "Right"] as const; +const borders = ['Top', 'Bottom', 'Left', 'Right'] as const; const directionToBorder = (dir: Direction): typeof borders[number] => { switch (dir) { - case "East": - return "Left"; - case "West": - return "Right"; - case "North": - return "Bottom"; - case "South": - return "Top"; + case 'East': + return 'Left'; + case 'West': + return 'Right'; + case 'North': + return 'Bottom'; + case 'South': + return 'Top'; } }; const getBorders = (dir: Direction, height: number, color: string) => { const solidBorder = directionToBorder(dir); - const transparent = borders.filter((x) => x !== solidBorder); + const transparent = borders.filter(x => x !== solidBorder); return { [`border${solidBorder}`]: `${height}px solid`, [`border${solidBorder}Color`]: color, ..._.mapValues( - _.keyBy(transparent, (border) => `border${border}`), - () => "16px solid transparent" - ), + _.keyBy(transparent, border => `border${border}`), + () => '16px solid transparent' + ) }; }; diff --git a/pkg/interface/src/views/components/UnjoinedResource.tsx b/pkg/interface/src/views/components/UnjoinedResource.tsx index c47b751371..6782cd365e 100644 --- a/pkg/interface/src/views/components/UnjoinedResource.tsx +++ b/pkg/interface/src/views/components/UnjoinedResource.tsx @@ -1,15 +1,15 @@ -import React, { useEffect, useMemo } from "react"; -import { Association } from "~/types/metadata-update"; -import { Box, Text, Button, Col, Center } from "@tlon/indigo-react"; -import RichText from "~/views/components/RichText"; -import { Link, useHistory } from "react-router-dom"; -import GlobalApi from "~/logic/api/global"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; +import React, { useEffect, useMemo } from 'react'; +import { Association } from '@urbit/api/metadata'; +import { Box, Text, Button, Col, Center } from '@tlon/indigo-react'; +import RichText from '~/views/components/RichText'; +import { Link, useHistory } from 'react-router-dom'; +import GlobalApi from '~/logic/api/global'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; import { StatelessAsyncButton as AsyncButton, - StatelessAsyncButton, -} from "./StatelessAsyncButton"; -import { Notebooks, Graphs, Inbox } from "~/types"; + StatelessAsyncButton +} from './StatelessAsyncButton'; +import { Notebooks, Graphs, Inbox } from '@urbit/api'; interface UnjoinedResourceProps { association: Association; @@ -22,24 +22,24 @@ interface UnjoinedResourceProps { function isJoined(path: string) { return function ( - props: Pick<UnjoinedResourceProps, "graphKeys"> + props: Pick<UnjoinedResourceProps, 'graphKeys'> ) { const graphKey = path.substr(7); return props.graphKeys.has(graphKey); - } + }; } export function UnjoinedResource(props: UnjoinedResourceProps) { const { api, notebooks, graphKeys, inbox } = props; const history = useHistory(); - const rid = props.association.resource; - const appName = props.association["app-name"]; + const rid = props.association.resource; + const appName = props.association['app-name']; const { title, description, module } = props.association.metadata; const waiter = useWaitForProps(props); const app = useMemo(() => module || appName, [props.association]); const onJoin = async () => { - const [, , ship, name] = rid.split("/"); + const [, , ship, name] = rid.split('/'); await api.graph.joinGraph(ship, name); await waiter(isJoined(rid)); history.push(`${props.baseUrl}/resource/${app}${rid}`); diff --git a/pkg/interface/src/views/components/VirtualScroller.tsx b/pkg/interface/src/views/components/VirtualScroller.tsx index 3dd67700dc..8b40a42cc8 100644 --- a/pkg/interface/src/views/components/VirtualScroller.tsx +++ b/pkg/interface/src/views/components/VirtualScroller.tsx @@ -1,10 +1,10 @@ -import React, { PureComponent, Component } from 'react'; +import React, { Component } from 'react'; import _ from 'lodash'; -import { BigIntOrderedMap } from "~/logic/lib/BigIntOrderedMap"; import normalizeWheel from 'normalize-wheel'; -import { Box } from '@tlon/indigo-react'; import bigInt, { BigInteger } from 'big-integer'; -import * as bigIntUtils from '~/logic/lib/bigInt'; + +import { Box } from '@tlon/indigo-react'; +import BigIntOrderedMap from '@urbit/api/lib/BigIntOrderedMap'; interface RendererProps { index: BigInteger; @@ -90,7 +90,9 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir scrollToData(targetIndex: BigInteger): Promise<void> { if (!this.window) { - return new Promise((resolve, reject) => {reject()}); + return new Promise((resolve, reject) => { + reject(); +}); } const { offsetHeight } = this.window; let scrollTop = 0; @@ -119,8 +121,9 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir } estimateIndexFromScrollTop(targetScrollTop: number): BigInteger | undefined { - if (!this.window) return undefined; - let index = bigInt(this.props.size); + if (!this.window) +return undefined; + const index = bigInt(this.props.size); const { averageHeight } = this.state; let height = 0; while (height < targetScrollTop) { @@ -136,15 +139,15 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir } calculateVisibleItems() { - if (!this.window) return; + if (!this.window) +return; let startgap = 0, heightShown = 0, endgap = 0; let startGapFilled = false; - let visibleItems = new BigIntOrderedMap<any>(); + const visibleItems = new BigIntOrderedMap<any>(); const { scrollTop, offsetHeight: windowHeight } = this.window; const { averageHeight, totalHeight } = this.state; const { data, size: totalSize, onCalculateVisibleItems } = this.props; - [...data].forEach(([index, datum]) => { const height = this.heightOf(index); if (startgap < (scrollTop - this.overscan) && !startGapFilled) { @@ -153,7 +156,7 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir startGapFilled = true; visibleItems.set(index, datum); heightShown += height; - } + } }); endgap = totalHeight - heightShown - startgap; @@ -176,7 +179,7 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir this.setState({ startgap: Number(startgap.toFixed()), visibleItems, - endgap: Number(endgap.toFixed()), + endgap: Number(endgap.toFixed()) }); } @@ -215,7 +218,8 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir } setWindow(element) { - if (!element) return; + if (!element) +return; if (this.window) { if (this.window.isSameNode(element)) { return; @@ -241,11 +245,14 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir } resetScroll(): Promise<void> { - if (!this.window) return new Promise((resolve, reject) => {reject()}); + if (!this.window) +return new Promise((resolve, reject) => { + reject(); +}); return this.setScrollTop(0); } - setScrollTop(distance: number, delay: number = 100): Promise<void> { + setScrollTop(distance: number, delay = 100): Promise<void> { return new Promise((resolve, reject) => { setTimeout(() => { if (!this.window) { @@ -259,9 +266,10 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir } onScroll(event) { - if (!this.window) return; + if (!this.window) +return; const { onStartReached, onEndReached, onScroll } = this.props; - const windowHeight = this.window.offsetHeight + const windowHeight = this.window.offsetHeight; const { scrollTop, scrollHeight } = this.window; if (scrollTop !== scrollHeight) { this.setState({ scrollTop }); @@ -270,9 +278,11 @@ export default class VirtualScroller extends Component<VirtualScrollerProps, Vir this.calculateVisibleItems(); onScroll ? onScroll({ scrollTop, scrollHeight, windowHeight }) : null; if (scrollTop === 0) { - if (onStartReached) onStartReached(); + if (onStartReached) +onStartReached(); } else if (scrollTop + windowHeight >= scrollHeight) { - if (onEndReached) onEndReached(); + if (onEndReached) +onEndReached(); } } diff --git a/pkg/interface/src/views/components/leap/Omnibox.tsx b/pkg/interface/src/views/components/leap/Omnibox.tsx index 24385f6137..9256df90bf 100644 --- a/pkg/interface/src/views/components/leap/Omnibox.tsx +++ b/pkg/interface/src/views/components/leap/Omnibox.tsx @@ -1,18 +1,21 @@ import React, { useMemo, useRef, useCallback, useEffect, useState } from 'react'; -import { withRouter, useLocation, useHistory } from 'react-router-dom'; -import { Box, Row, Rule, Text } from '@tlon/indigo-react'; +import { useLocation, useHistory } from 'react-router-dom'; import * as ob from 'urbit-ob'; -import makeIndex from '~/logic/lib/omnibox'; import Mousetrap from 'mousetrap'; + +import { Box, Row, Text } from '@tlon/indigo-react'; +import { Associations, Contacts, Groups, Invites } from '@urbit/api'; + +import makeIndex from '~/logic/lib/omnibox'; import OmniboxInput from './OmniboxInput'; import OmniboxResult from './OmniboxResult'; import { withLocalState } from '~/logic/state/local'; import { deSig } from '~/logic/lib/util'; import defaultApps from '~/logic/lib/default-apps'; -import {Associations, Contacts, Groups, Tile, Invites} from '~/types'; -import {useOutsideClick} from '~/logic/lib/useOutsideClick'; -import {Portal} from '../Portal'; +import { useOutsideClick } from '~/logic/lib/useOutsideClick'; +import { Portal } from '../Portal'; +import { Tile } from '~/types'; interface OmniboxProps { associations: Associations; @@ -32,22 +35,22 @@ const SEARCHED_CATEGORIES = ['ships', 'other', 'commands', 'groups', 'subscripti export function Omnibox(props: OmniboxProps) { const location = useLocation(); const history = useHistory(); - const omniboxRef = useRef<HTMLDivElement | null>(null) + const omniboxRef = useRef<HTMLDivElement | null>(null); const inputRef = useRef<HTMLInputElement | null>(null); const [query, setQuery] = useState(''); - const [selected, setSelected] = useState<[] | [string, string]>([]) + const [selected, setSelected] = useState<[] | [string, string]>([]); const contacts = useMemo(() => { const maybeShip = `~${deSig(query)}`; - return ob.isValidPatp(maybeShip) - ? {...props.contacts, [maybeShip]: {} } + return ob.isValidPatp(maybeShip) + ? { ...props.contacts, [maybeShip]: {} } : props.contacts; }, [props.contacts, query]); const index = useMemo(() => { - const selectedGroup = location.pathname.startsWith('/~landscape/ship/') - ? '/' + location.pathname.split('/').slice(2,5).join('/') + const selectedGroup = location.pathname.startsWith('/~landscape/ship/') + ? '/' + location.pathname.split('/').slice(2,5).join('/') : null; return makeIndex( contacts, @@ -59,10 +62,10 @@ export function Omnibox(props: OmniboxProps) { }, [location.pathname, contacts, props.associations, props.groups, props.tiles]); const onOutsideClick = useCallback(() => { - props.show && props.toggle() + props.show && props.toggle(); }, [props.show, props.toggle]); - useOutsideClick(omniboxRef, onOutsideClick) + useOutsideClick(omniboxRef, onOutsideClick); // handle omnibox show useEffect(() => { @@ -93,7 +96,7 @@ export function Omnibox(props: OmniboxProps) { return initialResults; } const q = query.toLowerCase(); - let resultsMap = new Map(); + const resultsMap = new Map(); SEARCHED_CATEGORIES.map((category) => { const categoryIndex = index.get(category); resultsMap.set(category, @@ -117,8 +120,7 @@ export function Omnibox(props: OmniboxProps) { || app === 'Links' || app === 'Terminal' || app === 'home' - || app === 'inbox') - { + || app === 'inbox') { history.push(link); } else { window.location.href = link; @@ -149,7 +151,7 @@ export function Omnibox(props: OmniboxProps) { const setNextSelected = useCallback(() => { const flattenedResults = Array.from(results.values()).flat(); - if (selected.length){ + if (selected.length) { const currentIndex = flattenedResults.indexOf( ...flattenedResults.filter((e) => { return e.link === selected[1]; @@ -177,7 +179,7 @@ export function Omnibox(props: OmniboxProps) { props.toggle(); return; } - }; + } if ( evt.key === 'ArrowUp' || (evt.shiftKey && evt.key === 'Tab')) { @@ -228,7 +230,7 @@ export function Omnibox(props: OmniboxProps) { const renderResults = useCallback(() => { return <Box - maxHeight={['200px', "400px"]} + maxHeight={['200px', '400px']} overflowY="auto" overflowX="hidden" borderBottomLeftRadius='2' @@ -274,7 +276,8 @@ export function Omnibox(props: OmniboxProps) { top='0' right='0' zIndex={11} - display={props.show ? 'block' : 'none'}> + display={props.show ? 'block' : 'none'} + > <Row justifyContent='center'> <Box mt={['10vh', '20vh']} @@ -282,10 +285,14 @@ export function Omnibox(props: OmniboxProps) { maxWidth='600px' borderRadius='2' backgroundColor='white' - ref={(el) => { omniboxRef.current = el; }} + ref={(el) => { + omniboxRef.current = el; +}} > <OmniboxInput - ref={(el) => { inputRef.current = el; }} + ref={(el) => { + inputRef.current = el; +}} control={e => control(e)} search={search} query={query} diff --git a/pkg/interface/src/views/components/useTutorialModal.tsx b/pkg/interface/src/views/components/useTutorialModal.tsx index 7457e102ab..1568b8a795 100644 --- a/pkg/interface/src/views/components/useTutorialModal.tsx +++ b/pkg/interface/src/views/components/useTutorialModal.tsx @@ -1,8 +1,8 @@ -import { useEffect } from "react"; -import { TutorialProgress } from "~/types"; -import useLocalState, { selectLocalState } from "~/logic/state/local"; +import { useEffect } from 'react'; +import { TutorialProgress } from '@urbit/api'; +import useLocalState, { selectLocalState } from '~/logic/state/local'; -const localSelector = selectLocalState(["tutorialProgress", "setTutorialRef"]); +const localSelector = selectLocalState(['tutorialProgress', 'setTutorialRef']); export function useTutorialModal( onProgress: TutorialProgress, diff --git a/pkg/interface/src/views/components/withS3.tsx b/pkg/interface/src/views/components/withS3.tsx index 5bb9bae475..177e190950 100644 --- a/pkg/interface/src/views/components/withS3.tsx +++ b/pkg/interface/src/views/components/withS3.tsx @@ -1,5 +1,5 @@ -import React from "react"; -import useS3 from "~/logic/lib/useS3"; +import React from 'react'; +import useS3 from '~/logic/lib/useS3'; const withS3 = (Component, params = {}) => { return React.forwardRef((props: any, ref) => { @@ -9,4 +9,4 @@ const withS3 = (Component, params = {}) => { }); }; -export default withS3; \ No newline at end of file +export default withS3; diff --git a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/ChannelPermissions.tsx b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/ChannelPermissions.tsx index 1ad15338da..5ccccd4067 100644 --- a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/ChannelPermissions.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/ChannelPermissions.tsx @@ -1,20 +1,20 @@ -import React from "react"; -import _ from "lodash"; -import * as Yup from "yup"; +import React from 'react'; +import _ from 'lodash'; +import * as Yup from 'yup'; import { Label, ManagedToggleSwitchField as Checkbox, Box, Col, - Text, -} from "@tlon/indigo-react"; -import { Formik, Form } from "formik"; -import { PermVariation, Association, Group, Groups, Rolodex } from "~/types"; -import { shipSearchSchemaInGroup, } from "~/views/components/ShipSearch"; -import GlobalApi from "~/logic/api/global"; -import { resourceFromPath } from "~/logic/lib/group"; -import { FormSubmit } from "~/views/components/FormSubmit"; -import { ChannelWritePerms } from "../ChannelWritePerms"; + Text +} from '@tlon/indigo-react'; +import { Formik, Form } from 'formik'; +import { PermVariation, Association, Group, Groups, Rolodex } from '@urbit/api'; +import { shipSearchSchemaInGroup } from '~/views/components/ShipSearch'; +import GlobalApi from '~/logic/api/global'; +import { resourceFromPath } from '~/logic/lib/group'; +import { FormSubmit } from '~/views/components/FormSubmit'; +import { ChannelWritePerms } from '../ChannelWritePerms'; function PermissionsSummary(props: { writersSize: number; @@ -24,15 +24,15 @@ function PermissionsSummary(props: { const description = writersSize === 0 - ? "Currently, all members of the group can write to this channel" + ? 'Currently, all members of the group can write to this channel' : `Currently, only ${writersSize} ship${ - writersSize > 1 ? "s" : "" + writersSize > 1 ? 's' : '' } can write to this channel`; const vipDescription = - vip === "reader-comments" && writersSize !== 0 - ? ". All ships may comment" - : ""; + vip === 'reader-comments' && writersSize !== 0 + ? '. All ships may comment' + : ''; return ( <Box @@ -59,7 +59,7 @@ interface GraphPermissionsProps { } interface FormSchema { - writePerms: "self" | "everyone" | "subset"; + writePerms: 'self' | 'everyone' | 'subset'; writers: string[]; readerComments: boolean; } @@ -68,7 +68,7 @@ const formSchema = (members: string[]) => { return Yup.object({ writePerms: Yup.string(), writers: shipSearchSchemaInGroup(members), - readerComments: Yup.boolean(), + readerComments: Yup.boolean() }); }; @@ -77,70 +77,70 @@ export function GraphPermissions(props: GraphPermissionsProps) { const writers = _.get( group?.tags, - ["graph", association.resource, "writers"], + ['graph', association.resource, 'writers'], new Set() ); - let [, , hostShip] = association.resource.split("/"); + let [, , hostShip] = association.resource.split('/'); hostShip = hostShip.slice(1); const writePerms = writers.size === 0 - ? ("everyone" as const) + ? ('everyone' as const) : writers.size === 1 && writers.has(hostShip) - ? ("self" as const) - : ("subset" as const); + ? ('self' as const) + : ('subset' as const); - const readerComments = association.metadata.vip === "reader-comments"; + const readerComments = association.metadata.vip === 'reader-comments'; const initialValues = { writePerms, writers: Array.from(writers) - .filter((x) => x !== hostShip), - readerComments: association.metadata.vip === "reader-comments", + .filter(x => x !== hostShip), + readerComments: association.metadata.vip === 'reader-comments' }; const onSubmit = async (values: FormSchema, actions) => { values.writers = _.map(_.compact(values.writers), x => `~${x}`); const resource = resourceFromPath(association.group); const tag = { - app: "graph", + app: 'graph', resource: association.resource, - tag: "writers", + tag: 'writers' }; - const allWriters = Array.from(writers).map((w) => `~${w}`); + const allWriters = Array.from(writers).map(w => `~${w}`); if (values.readerComments !== readerComments) { await api.metadata.update(association, { - vip: values.readerComments ? "reader-comments" : "", + vip: values.readerComments ? 'reader-comments' : '' }); } - if (values.writePerms === "everyone") { - if (writePerms === "everyone") { + if (values.writePerms === 'everyone') { + if (writePerms === 'everyone') { actions.setStatus({ success: null }); return; } await api.groups.removeTag(resource, tag, allWriters); - } else if (values.writePerms === "self") { - if (writePerms === "self") { + } else if (values.writePerms === 'self') { + if (writePerms === 'self') { actions.setStatus({ success: null }); return; } - let promises: Promise<any>[] = []; + const promises: Promise<any>[] = []; allWriters.length > 0 && promises.push(api.groups.removeTag(resource, tag, allWriters)); promises.push(api.groups.addTag(resource, tag, [`~${hostShip}`])); await Promise.all(promises); actions.setStatus({ success: null }); - } else if (values.writePerms === "subset") { + } else if (values.writePerms === 'subset') { const toRemove = _.difference(allWriters, values.writers); const toAdd = [ ..._.difference(values.writers, allWriters), - `~${hostShip}`, + `~${hostShip}` ]; - let promises: Promise<any>[] = []; + const promises: Promise<any>[] = []; toRemove.length > 0 && promises.push(api.groups.removeTag(resource, tag, toRemove)); toAdd.length > 0 && @@ -159,7 +159,7 @@ export function GraphPermissions(props: GraphPermissionsProps) { initialValues={initialValues} onSubmit={onSubmit} > - <Form style={{ display: "contents" }}> + <Form style={{ display: 'contents' }}> <Col mt="4" flexShrink={0} gapY="5"> <Col gapY="1"> <Text id="permissions" fontWeight="bold" fontSize="2"> @@ -178,7 +178,7 @@ export function GraphPermissions(props: GraphPermissionsProps) { /> </Col> <ChannelWritePerms contacts={props.contacts} groups={props.groups} /> - {association.metadata.module !== "chat" && ( + {association.metadata.module !== 'chat' && ( <Checkbox id="readerComments" label="Allow readers to comment" diff --git a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Details.tsx b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Details.tsx index 20d0d70dae..9aa4409381 100644 --- a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Details.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Details.tsx @@ -1,22 +1,19 @@ -import React from "react"; +import React from 'react'; +import { Formik, Form } from 'formik'; + import { - Box, ManagedTextInputField as Input, - ManagedCheckboxField as Checkbox, Col, Label, - Text, - Row, -} from "@tlon/indigo-react"; -import { Formik, Form } from "formik"; + Text +} from '@tlon/indigo-react'; +import { Association } from '@urbit/api'; -import { FormError } from "~/views/components/FormError"; -import { ColorInput } from "~/views/components/ColorInput"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import { uxToHex, wait } from "~/logic/lib/util"; -import GlobalApi from "~/logic/api/global"; -import { Association } from "~/types"; -import { FormSubmit } from "~/views/components/FormSubmit"; +import { FormError } from '~/views/components/FormError'; +import { ColorInput } from '~/views/components/ColorInput'; +import { uxToHex } from '~/logic/lib/util'; +import GlobalApi from '~/logic/api/global'; +import { FormSubmit } from '~/views/components/FormSubmit'; interface FormSchema { title: string; @@ -33,9 +30,9 @@ export function ChannelDetails(props: ChannelDetailsProps) { const { association, api } = props; const { metadata } = association; const initialValues: FormSchema = { - title: metadata?.title || "", - description: metadata?.description || "", - color: metadata?.color || "0x0", + title: metadata?.title || '', + description: metadata?.description || '', + color: metadata?.color || '0x0' }; const onSubmit = async (values: FormSchema, actions) => { @@ -47,7 +44,7 @@ export function ChannelDetails(props: ChannelDetailsProps) { return ( <Formik initialValues={initialValues} onSubmit={onSubmit}> - <Form style={{ display: "contents" }}> + <Form style={{ display: 'contents' }}> <Col mb="4" flexShrink={0} gapY="4"> <Col mb={3}> <Text id="details" fontSize="2" fontWeight="bold"> diff --git a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Notifications.tsx b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Notifications.tsx index da0f6963e7..8f4eec9127 100644 --- a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Notifications.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Notifications.tsx @@ -1,8 +1,8 @@ -import React, {useRef} from "react"; -import { Col, Text, BaseLabel, Label } from "@tlon/indigo-react"; -import GlobalApi from "~/logic/api/global"; -import { Association, NotificationGraphConfig } from "~/types"; -import { StatelessAsyncToggle } from "~/views/components/StatelessAsyncToggle"; +import React, { useRef } from 'react'; +import { Col, Text, BaseLabel, Label } from '@tlon/indigo-react'; +import GlobalApi from '~/logic/api/global'; +import { Association, NotificationGraphConfig } from '@urbit/api'; +import { StatelessAsyncToggle } from '~/views/components/StatelessAsyncToggle'; interface ChannelNotificationsProps { api: GlobalApi; @@ -16,16 +16,15 @@ export function ChannelNotifications(props: ChannelNotificationsProps) { const isMuted = props.notificationsGraphConfig.watching.findIndex( - (a) => a.graph === rid && a.index === "/" + a => a.graph === rid && a.index === '/' ) === -1; const onChangeMute = async () => { - const func = isMuted ? "listenGraph" : "ignoreGraph"; - await api.hark[func](rid, "/"); + const func = isMuted ? 'listenGraph' : 'ignoreGraph'; + await api.hark[func](rid, '/'); }; - const anchorRef = useRef<HTMLElement | null>(null) - + const anchorRef = useRef<HTMLElement | null>(null); return ( <Col mb="6" gapY="4" flexShrink={0}> diff --git a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Sidebar.tsx b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Sidebar.tsx index 801fd7a1fc..e2e6593879 100644 --- a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Sidebar.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/Sidebar.tsx @@ -1,7 +1,6 @@ -import React from "react"; -import { Text, Col } from "@tlon/indigo-react"; -import { SidebarItem } from "../SidebarItem"; -import { isChannelAdmin } from "~/logic/lib/group"; +import React from 'react'; +import { Text, Col } from '@tlon/indigo-react'; +import { SidebarItem } from '../SidebarItem'; export function ChannelPopoverRoutesSidebar(props: { baseUrl: string; @@ -14,7 +13,7 @@ export function ChannelPopoverRoutesSidebar(props: { return ( <Col - display={["none", "flex-column"]} + display={['none', 'flex-column']} minWidth="200px" borderRight="1" borderRightColor="washedGray" @@ -30,14 +29,14 @@ export function ChannelPopoverRoutesSidebar(props: { <SidebarItem icon="Inbox" text="Notifications" - to={relativePath("/settings#notifications")} + to={relativePath('/settings#notifications')} /> {!isOwner && ( <SidebarItem icon="SignOut" text="Unsubscribe" color="red" - to={relativePath("/settings#unsubscribe")} + to={relativePath('/settings#unsubscribe')} /> )} {isAdmin && ( @@ -48,25 +47,25 @@ export function ChannelPopoverRoutesSidebar(props: { <SidebarItem icon="Boot" text="Channel Details" - to={relativePath("/settings#details")} + to={relativePath('/settings#details')} /> <SidebarItem icon="Keyfile" text="Permissions" - to={relativePath("/settings#permissions")} + to={relativePath('/settings#permissions')} /> { isOwner ? ( <SidebarItem icon="TrashCan" text="Archive Channel" - to={relativePath("/settings#archive")} + to={relativePath('/settings#archive')} color="red" /> ) : ( <SidebarItem icon="TrashCan" text="Archive Channel" - to={relativePath("/settings#remove")} + to={relativePath('/settings#remove')} color="red" /> )} diff --git a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/index.tsx b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/index.tsx index d0ab244cd0..8a919fc4cf 100644 --- a/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/index.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelPopoverRoutes/index.tsx @@ -1,24 +1,24 @@ -import React, { useRef, useCallback } from "react"; -import { ModalOverlay } from "~/views/components/ModalOverlay"; -import { Col, Box, Text, Row } from "@tlon/indigo-react"; -import { ChannelPopoverRoutesSidebar } from "./Sidebar"; -import { ChannelDetails } from "./Details"; -import { GraphPermissions } from "./ChannelPermissions"; +import React, { useRef, useCallback } from 'react'; + +import { Col, Box, Text, Row } from '@tlon/indigo-react'; import { Association, Groups, Group, Rolodex, - NotificationGraphConfig, -} from "~/types"; -import GlobalApi from "~/logic/api/global"; -import { useHashLink } from "~/logic/lib/useHashLink"; -import { useOutsideClick } from "~/logic/lib/useOutsideClick"; -import { useHistory, Link } from "react-router-dom"; -import { ChannelNotifications } from "./Notifications"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import { wait } from "~/logic/lib/util"; -import { isChannelAdmin, isHost } from "~/logic/lib/group"; + NotificationGraphConfig +} from '@urbit/api'; + +import { ModalOverlay } from '~/views/components/ModalOverlay'; +import { GraphPermissions } from './ChannelPermissions'; +import { ChannelPopoverRoutesSidebar } from './Sidebar'; +import { ChannelDetails } from './Details'; +import GlobalApi from '~/logic/api/global'; +import { useHashLink } from '~/logic/lib/useHashLink'; +import { useHistory, Link } from 'react-router-dom'; +import { ChannelNotifications } from './Notifications'; +import { StatelessAsyncButton } from '~/views/components/StatelessAsyncButton'; +import { isChannelAdmin, isHost } from '~/logic/lib/group'; interface ChannelPopoverRoutesProps { baseUrl: string; @@ -68,16 +68,16 @@ export function ChannelPopoverRoutes(props: ChannelPopoverRoutesProps) { dismiss={onDismiss} > <Row - flexDirection={["column", "row"]} + flexDirection={['column', 'row']} border="1" borderColor="lightGray" borderRadius="2" bg="white" height="100%" > - <Box pt="4" px="4" display={["block", "none"]}> + <Box pt="4" px="4" display={['block', 'none']}> <Link to={props.baseUrl}> - <Text fontSize="1">{"<- Back"}</Text> + <Text fontSize="1">{'<- Back'}</Text> </Link> </Box> <ChannelPopoverRoutesSidebar @@ -123,7 +123,7 @@ export function ChannelPopoverRoutes(props: ChannelPopoverRoutesProps) { Archive {props.association.metadata.title} </StatelessAsyncButton> </Row> - </Col> + </Col> ) : ( <Col mt="5" mb="6"> @@ -140,7 +140,7 @@ export function ChannelPopoverRoutes(props: ChannelPopoverRoutesProps) { Remove {props.association.metadata.title} </StatelessAsyncButton> </Row> - </Col> + </Col> )} </> diff --git a/pkg/interface/src/views/landscape/components/ChannelWritePerms.tsx b/pkg/interface/src/views/landscape/components/ChannelWritePerms.tsx index be12fcf603..80517aab15 100644 --- a/pkg/interface/src/views/landscape/components/ChannelWritePerms.tsx +++ b/pkg/interface/src/views/landscape/components/ChannelWritePerms.tsx @@ -1,15 +1,15 @@ -import React from "react"; +import React from 'react'; import { Label, Box, ManagedRadioButtonField as Radio, - Col, -} from "@tlon/indigo-react"; -import { useFormikContext } from "formik"; -import { Groups, Rolodex } from "~/types"; -import { ShipSearch } from "~/views/components/ShipSearch"; + Col +} from '@tlon/indigo-react'; +import { useFormikContext } from 'formik'; +import { Groups, Rolodex } from '@urbit/api'; +import { ShipSearch } from '~/views/components/ShipSearch'; -export type WritePerms = "everyone" | "subset" | "self"; +export type WritePerms = 'everyone' | 'subset' | 'self'; export interface ChannelWriteFieldSchema { writePerms: WritePerms; writers: string[]; @@ -31,7 +31,7 @@ export function ChannelWritePerms< <Radio name="writePerms" id="everyone" label="All group members" /> <Radio name="writePerms" id="self" label="Only host" /> <Radio name="writePerms" id="subset" label="Host and selected ships" /> - {values.writePerms === "subset" && ( + {values.writePerms === 'subset' && ( <ShipSearch groups={props.groups} contacts={props.contacts} diff --git a/pkg/interface/src/views/landscape/components/DeleteGroup.tsx b/pkg/interface/src/views/landscape/components/DeleteGroup.tsx index 1f51f96be1..5ef30d7407 100644 --- a/pkg/interface/src/views/landscape/components/DeleteGroup.tsx +++ b/pkg/interface/src/views/landscape/components/DeleteGroup.tsx @@ -1,14 +1,13 @@ -import React from "react"; -import { Icon, Text, Col, Label, Row, Button, Action } from "@tlon/indigo-react"; -import { useHistory } from "react-router-dom"; +import React from 'react'; +import { Icon, Text, Col, Label, Row, Button } from '@tlon/indigo-react'; +import { useHistory } from 'react-router-dom'; -import GlobalApi from "~/logic/api/global"; -import { Association } from "~/types"; -import { resourceFromPath } from "~/logic/lib/group"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import ModalButton from "~/views/apps/launch/components/ModalButton"; -import {useModal} from "~/logic/lib/useModal"; -import {SidebarItem} from "./Sidebar/SidebarItem"; +import { Association } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; +import { resourceFromPath } from '~/logic/lib/group'; +import { StatelessAsyncButton } from '~/views/components/StatelessAsyncButton'; +import { useModal } from '~/logic/lib/useModal'; export function DeleteGroup(props: { owner: boolean; @@ -21,23 +20,24 @@ export function DeleteGroup(props: { if (props.owner) { const shouldDelete = prompt(`To confirm deleting this group, type ${name}`) === name; - if (!shouldDelete) return; + if (!shouldDelete) +return; } if(props.owner) { await props.api.groups.deleteGroup(ship, name); } else { await props.api.groups.leaveGroup(ship, name); } - history.push("/"); + history.push('/'); }; - const action = props.owner ? "Archive" : "Leave"; + const action = props.owner ? 'Archive' : 'Leave'; const description = props.owner - ? "Permanently delete this group. (All current members will no longer see this group.)" - : "You can rejoin if it is an open group, or if you are reinvited"; + ? 'Permanently delete this group. (All current members will no longer see this group.)' + : 'You can rejoin if it is an open group, or if you are reinvited'; - const icon = props.owner ? "X" : "SignOut"; - const { modal, showModal } = useModal({ modal: + const icon = props.owner ? 'X' : 'SignOut'; + const { modal, showModal } = useModal({ modal: (dismiss: () => void) => { const onCancel = (e) => { e.stopPropagation(); @@ -63,7 +63,7 @@ export function DeleteGroup(props: { </Row> </Col> ); - }}); + } }); return ( <Row px="3" py="1" onClick={showModal} cursor="pointer"> {modal} diff --git a/pkg/interface/src/views/landscape/components/GroupSettings/Admin.tsx b/pkg/interface/src/views/landscape/components/GroupSettings/Admin.tsx index 34fc6f9abf..0ca00fcc35 100644 --- a/pkg/interface/src/views/landscape/components/GroupSettings/Admin.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSettings/Admin.tsx @@ -1,29 +1,26 @@ -import React, { useEffect } from "react"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import * as Yup from "yup"; +import React from 'react'; +import { Formik, Form, FormikHelpers } from 'formik'; +import * as Yup from 'yup'; + import { Box, ManagedTextInputField as Input, ManagedToggleSwitchField as Checkbox, - Col, - Label, - Button, - Text, -} from "@tlon/indigo-react"; -import { Formik, Form, useFormikContext, FormikHelpers } from "formik"; -import { FormError } from "~/views/components/FormError"; -import { Group, GroupPolicy } from "~/types/group-update"; -import { Enc } from "~/types/noun"; -import { Association } from "~/types/metadata-update"; -import GlobalApi from "~/logic/api/global"; -import { resourceFromPath, roleForShip } from "~/logic/lib/group"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import { ColorInput } from "~/views/components/ColorInput"; -import { useHistory } from "react-router-dom"; + Col +} from '@tlon/indigo-react'; +import { Enc } from '@urbit/api'; +import { Group, GroupPolicy } from '@urbit/api/groups'; +import { Association } from '@urbit/api/metadata'; -import { uxToHex } from "~/logic/lib/util"; -import {S3State} from "~/types"; -import {ImageInput} from "~/views/components/ImageInput"; +import { AsyncButton } from '~/views/components/AsyncButton'; +import { FormError } from '~/views/components/FormError'; +import GlobalApi from '~/logic/api/global'; +import { resourceFromPath, roleForShip } from '~/logic/lib/group'; +import { ColorInput } from '~/views/components/ColorInput'; +import { useHistory } from 'react-router-dom'; +import { uxToHex } from '~/logic/lib/util'; +import { ImageInput } from '~/views/components/ImageInput'; +import { S3State } from '~/types/s3-update'; interface FormSchema { title: string; @@ -35,7 +32,7 @@ interface FormSchema { } const formSchema = Yup.object({ - title: Yup.string().required("Group must have a name"), + title: Yup.string().required('Group must have a name'), description: Yup.string(), color: Yup.string(), isPrivate: Yup.boolean(), @@ -53,7 +50,7 @@ export function GroupAdminSettings(props: GroupAdminSettingsProps) { const { group, association, s3 } = props; const { metadata } = association; const history = useHistory(); - const currentPrivate = "invite" in props.group.policy; + const currentPrivate = 'invite' in props.group.policy; const initialValues: FormSchema = { title: metadata?.title, description: metadata?.description, @@ -96,8 +93,9 @@ export function GroupAdminSettings(props: GroupAdminSettingsProps) { const disabled = resourceFromPath(association.group).ship.slice(1) !== window.ship && - roleForShip(group, window.ship) !== "admin"; - if(disabled) return null; + roleForShip(group, window.ship) !== 'admin'; + if(disabled) +return null; return ( <Formik diff --git a/pkg/interface/src/views/landscape/components/GroupSettings/Channels.tsx b/pkg/interface/src/views/landscape/components/GroupSettings/Channels.tsx index b2a3cb34f1..c2831d96b5 100644 --- a/pkg/interface/src/views/landscape/components/GroupSettings/Channels.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSettings/Channels.tsx @@ -1,12 +1,12 @@ -import React, { useCallback } from "react"; -import { Icon, Text, Row, Col } from "@tlon/indigo-react"; -import { Formik } from "formik"; -import { Association, Associations, Group } from "~/types"; -import GlobalApi from "~/logic/api/global"; -import { StatelessAsyncAction } from "~/views/components/StatelessAsyncAction"; -import { getModuleIcon } from "~/logic/lib/util"; -import { Dropdown } from "~/views/components/Dropdown"; -import { resourceFromPath, roleForShip } from "~/logic/lib/group"; +import React, { useCallback } from 'react'; +import { Icon, Text, Row, Col } from '@tlon/indigo-react'; +import { Formik } from 'formik'; +import { Association, Associations, Group } from '@urbit/api'; +import GlobalApi from '~/logic/api/global'; +import { StatelessAsyncAction } from '~/views/components/StatelessAsyncAction'; +import { getModuleIcon } from '~/logic/lib/util'; +import { Dropdown } from '~/views/components/Dropdown'; +import { resourceFromPath, roleForShip } from '~/logic/lib/group'; interface GroupChannelSettingsProps { group: Group; @@ -30,14 +30,14 @@ export function GroupChannelSettings(props: GroupChannelSettingsProps) { const onRemove = useCallback( async (resource: string) => { - return api.metadata.remove("graph", resource, association.group); + return api.metadata.remove('graph', resource, association.group); }, [api, association] ); const disabled = resourceFromPath(association.group).ship.slice(1) !== window.ship && - roleForShip(group, window.ship) !== "admin"; + roleForShip(group, window.ship) !== 'admin'; return ( <Col maxWidth="384px" width="100%"> @@ -69,7 +69,7 @@ export function GroupChannelSettings(props: GroupChannelSettingsProps) { name={`pin-${resource}`} onClick={() => onChange(resource, !metadata.preview)} > - {metadata.preview ? "Unpin" : "Pin"} + {metadata.preview ? 'Unpin' : 'Pin'} </StatelessAsyncAction> <StatelessAsyncAction bg="transparent" diff --git a/pkg/interface/src/views/landscape/components/GroupSettings/GroupSettings.tsx b/pkg/interface/src/views/landscape/components/GroupSettings/GroupSettings.tsx index 62e3800377..1bbcd7eb4d 100644 --- a/pkg/interface/src/views/landscape/components/GroupSettings/GroupSettings.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSettings/GroupSettings.tsx @@ -1,15 +1,17 @@ -import React, { useEffect, useCallback } from "react"; -import { Box, Col, Button, Text } from "@tlon/indigo-react"; -import { Group } from "~/types/group-update"; -import { Association, Associations } from "~/types/metadata-update"; -import GlobalApi from "~/logic/api/global"; +import React, { useCallback } from 'react'; -import { GroupAdminSettings } from "./Admin"; -import { GroupPersonalSettings } from "./Personal"; -import { GroupNotificationsConfig, S3State } from "~/types"; -import { GroupChannelSettings } from "./Channels"; -import { useHistory } from "react-router-dom"; -import {resourceFromPath, roleForShip} from "~/logic/lib/group"; +import { Box, Col, Button, Text } from '@tlon/indigo-react'; +import { Group } from '@urbit/api/groups'; +import { Association, Associations } from '@urbit/api/metadata'; +import { GroupNotificationsConfig } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; +import { GroupAdminSettings } from './Admin'; +import { GroupPersonalSettings } from './Personal'; +import { GroupChannelSettings } from './Channels'; +import { useHistory } from 'react-router-dom'; +import { resourceFromPath, roleForShip } from '~/logic/lib/group'; +import { S3State } from '~/types'; const Section = ({ children }) => ( <Box boxShadow="inset 0px 1px 0px rgba(0, 0, 0, 0.2)">{children}</Box> @@ -35,8 +37,7 @@ export function GroupSettings(props: GroupSettingsProps) { const isAdmin = resourceFromPath(props.association.group).ship.slice(1) === window.ship || - roleForShip(props.group, window.ship) === "admin"; - + roleForShip(props.group, window.ship) === 'admin'; return ( <Box height="100%" overflowY="auto"> @@ -48,7 +49,7 @@ export function GroupSettings(props: GroupSettingsProps) { Participants </Text> <Text gray>View list of all group participants and statuses</Text> - <Button primary mt="4" onClick={linkRelative("/participants")}>View List</Button> + <Button primary mt="4" onClick={linkRelative('/participants')}>View List</Button> </Col> </Section> { isAdmin && ( diff --git a/pkg/interface/src/views/landscape/components/GroupSettings/Personal.tsx b/pkg/interface/src/views/landscape/components/GroupSettings/Personal.tsx index 5d262d6b28..8f14a4ba64 100644 --- a/pkg/interface/src/views/landscape/components/GroupSettings/Personal.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSettings/Personal.tsx @@ -1,41 +1,22 @@ -import React, { useCallback } from "react"; +import React from 'react'; -import { AsyncButton } from "~/views/components/AsyncButton"; -import * as Yup from "yup"; import { - Box, - ManagedTextInputField as Input, - ManagedToggleSwitchField as Toggle, Col, Label, - Button, - LoadingSpinner, BaseLabel, - Anchor, BaseAnchor -} from "@tlon/indigo-react"; -import { Group, GroupPolicy } from "~/types/group-update"; -import { Enc } from "~/types/noun"; -import { Association } from "~/types/metadata-update"; -import GlobalApi from "~/logic/api/global"; -import { resourceFromPath, roleForShip } from "~/logic/lib/group"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import { ColorInput } from "~/views/components/ColorInput"; -import { useHistory } from "react-router-dom"; - -import { uxToHex } from "~/logic/lib/util"; -import { FormikOnBlur } from "~/views/components/FormikOnBlur"; -import {GroupNotificationsConfig} from "~/types"; -import {StatelessAsyncToggle} from "~/views/components/StatelessAsyncToggle"; - +} from '@tlon/indigo-react'; +import { GroupNotificationsConfig } from '@urbit/api'; +import { Association } from '@urbit/api/metadata'; +import GlobalApi from '~/logic/api/global'; +import { StatelessAsyncToggle } from '~/views/components/StatelessAsyncToggle'; export function GroupPersonalSettings(props: { api: GlobalApi; association: Association; notificationsGroupConfig: GroupNotificationsConfig; }) { - const groupPath = props.association.group; const watching = props.notificationsGroupConfig.findIndex(g => g === groupPath) !== -1; @@ -48,7 +29,7 @@ export function GroupPersonalSettings(props: { return ( <Col px="4" pb="4" gapY="4"> <BaseAnchor pt="4" fontWeight="600" id="notifications" fontSize="2">Group Notifications</BaseAnchor> - <BaseLabel + <BaseLabel htmlFor="asyncToggle" display="flex" cursor="pointer" diff --git a/pkg/interface/src/views/landscape/components/GroupSummary.tsx b/pkg/interface/src/views/landscape/components/GroupSummary.tsx index 6ea0259ccf..30c4e3c27e 100644 --- a/pkg/interface/src/views/landscape/components/GroupSummary.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSummary.tsx @@ -1,9 +1,9 @@ -import React, { ReactNode, useRef } from "react"; -import { Metadata, PropFunc } from "~/types"; -import { Col, Row, Text } from "@tlon/indigo-react"; -import { MetadataIcon } from "./MetadataIcon"; -import { useTutorialModal } from "~/views/components/useTutorialModal"; -import {TUTORIAL_HOST, TUTORIAL_GROUP} from "~/logic/lib/tutorialModal"; +import React, { ReactElement, ReactNode, useRef } from 'react'; +import { Metadata, PropFunc } from '@urbit/api'; +import { Col, Row, Text } from '@tlon/indigo-react'; +import { MetadataIcon } from './MetadataIcon'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; +import { TUTORIAL_HOST, TUTORIAL_GROUP } from '~/logic/lib/tutorialModal'; interface GroupSummaryProps { metadata: Metadata; @@ -14,11 +14,11 @@ interface GroupSummaryProps { gray?: boolean; } -export function GroupSummary(props: GroupSummaryProps & PropFunc<typeof Col>) { +export function GroupSummary(props: GroupSummaryProps & PropFunc<typeof Col>): ReactElement { const { channelCount, memberCount, metadata, resource, children, ...rest } = props; const anchorRef = useRef<HTMLElement | null>(null); useTutorialModal( - "group-desc", + 'group-desc', resource === `/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}`, anchorRef.current ); @@ -39,7 +39,8 @@ export function GroupSummary(props: GroupSummaryProps & PropFunc<typeof Col>) { fontSize="1" textOverflow="ellipsis" whiteSpace="nowrap" - overflow="hidden">{metadata.title}</Text> + overflow="hidden" + >{metadata.title}</Text> <Row gapX="4" > <Text fontSize="1" gray> {memberCount} participants @@ -57,7 +58,8 @@ export function GroupSummary(props: GroupSummaryProps & PropFunc<typeof Col>) { width="100%" fontSize="1" textOverflow="ellipsis" - overflow="hidden"> + overflow="hidden" + > {metadata.description} </Text> } diff --git a/pkg/interface/src/views/landscape/components/GroupSwitcher.tsx b/pkg/interface/src/views/landscape/components/GroupSwitcher.tsx index 769963f984..91926e00fd 100644 --- a/pkg/interface/src/views/landscape/components/GroupSwitcher.tsx +++ b/pkg/interface/src/views/landscape/components/GroupSwitcher.tsx @@ -9,11 +9,11 @@ import { import { uxToHex } from '~/logic/lib/util'; import { Link } from 'react-router-dom'; -import { Associations } from '~/types/metadata-update'; +import { Associations } from '@urbit/api/metadata'; import { Dropdown } from '~/views/components/Dropdown'; -import { Workspace } from '~/types'; import { getTitleFromWorkspace } from '~/logic/lib/workspace'; -import {MetadataIcon} from './MetadataIcon'; +import { MetadataIcon } from './MetadataIcon'; +import { Workspace } from '~/types/workspace'; const GroupSwitcherItem = ({ to, children, bottom = false, ...rest }) => ( <Link to={to}> @@ -93,7 +93,8 @@ export function GroupSwitcher(props: { top="0px" pl='3' borderBottom='1px solid' - borderColor='washedGray'> + borderColor='washedGray' + > <Col bg="white" width="100%" diff --git a/pkg/interface/src/views/landscape/components/GroupifyForm.tsx b/pkg/interface/src/views/landscape/components/GroupifyForm.tsx index 6e8424a2b4..7fa3bc5a0b 100644 --- a/pkg/interface/src/views/landscape/components/GroupifyForm.tsx +++ b/pkg/interface/src/views/landscape/components/GroupifyForm.tsx @@ -1,16 +1,17 @@ -import React, { useEffect } from "react"; -import { Box, Col, Text } from "@tlon/indigo-react"; -import * as Yup from "yup"; -import GlobalApi from "~/logic/api/global"; +import React from 'react'; +import { Box, Col, Text } from '@tlon/indigo-react'; +import * as Yup from 'yup'; +import { Formik, FormikHelpers, Form } from 'formik'; +import { useHistory } from 'react-router-dom'; -import { Groups, Associations, Association } from "~/types"; -import { Formik, FormikHelpers, Form } from "formik"; -import GroupSearch from "~/views/components/GroupSearch"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import {useHistory} from "react-router-dom"; +import { Groups, Associations, Association } from '@urbit/api'; + +import GlobalApi from '~/logic/api/global'; +import GroupSearch from '~/views/components/GroupSearch'; +import { AsyncButton } from '~/views/components/AsyncButton'; const formSchema = Yup.object({ - group: Yup.string().nullable(), + group: Yup.string().nullable() }); interface FormSchema { @@ -58,7 +59,7 @@ export function GroupifyForm(props: GroupifyFormProps) { } const initialValues: FormSchema = { - group: null, + group: null }; return ( diff --git a/pkg/interface/src/views/landscape/components/GroupsPane.tsx b/pkg/interface/src/views/landscape/components/GroupsPane.tsx index 7cddafc5c2..ba49fa7356 100644 --- a/pkg/interface/src/views/landscape/components/GroupsPane.tsx +++ b/pkg/interface/src/views/landscape/components/GroupsPane.tsx @@ -1,33 +1,32 @@ -import React, { useState, useEffect, ReactNode } from "react"; +import React, { useEffect, ReactNode } from 'react'; import { Switch, Route, - useLocation, - RouteComponentProps, -} from "react-router-dom"; -import { Col, Box, Text } from "@tlon/indigo-react"; -import _ from "lodash"; + RouteComponentProps +} from 'react-router-dom'; +import { Col, Box, Text } from '@tlon/indigo-react'; +import _ from 'lodash'; import Helmet from 'react-helmet'; -import { Resource } from "./Resource"; -import { PopoverRoutes } from "./PopoverRoutes"; -import { Skeleton } from "./Skeleton"; -import { InvitePopover } from "./InvitePopover"; -import { NewChannel } from "./NewChannel"; +import { AppName } from '@urbit/api'; -import { appIsGraph } from "~/logic/lib/util"; -import { AppName } from "~/types/noun"; -import GlobalApi from "~/logic/api/global"; -import { StoreState } from "~/logic/store/type"; -import { UnjoinedResource } from "~/views/components/UnjoinedResource"; -import { useLocalStorageState } from "~/logic/lib/useLocalStorageState"; +import { Resource } from './Resource'; +import { PopoverRoutes } from './PopoverRoutes'; +import { Skeleton } from './Skeleton'; +import { InvitePopover } from './InvitePopover'; +import { NewChannel } from './NewChannel'; + +import GlobalApi from '~/logic/api/global'; +import { StoreState } from '~/logic/store/type'; +import { UnjoinedResource } from '~/views/components/UnjoinedResource'; +import { useLocalStorageState } from '~/logic/lib/useLocalStorageState'; import { Loading } from '~/views/components/Loading'; -import "~/views/apps/links/css/custom.css"; -import "~/views/apps/publish/css/custom.css"; -import { Workspace } from "~/types"; -import { getGroupFromWorkspace } from "~/logic/lib/workspace"; -import {GroupSummary} from "./GroupSummary"; +import '~/views/apps/links/css/custom.css'; +import '~/views/apps/publish/css/custom.css'; +import { getGroupFromWorkspace } from '~/logic/lib/workspace'; +import { GroupSummary } from './GroupSummary'; +import { Workspace } from '~/types/workspace'; type GroupsPaneProps = StoreState & { baseUrl: string; @@ -41,20 +40,20 @@ export function GroupsPane(props: GroupsPaneProps) { const groupPath = getGroupFromWorkspace(workspace); const groupContacts = (groupPath && contacts[groupPath]) || undefined; - const rootIdentity = contacts?.["/~/default"]?.[window.ship]; + const rootIdentity = contacts?.['/~/default']?.[window.ship]; const groupAssociation = (groupPath && associations.groups[groupPath]) || undefined; const group = (groupPath && groups[groupPath]) || undefined; const [recentGroups, setRecentGroups] = useLocalStorageState<string[]>( - "recent-groups", + 'recent-groups', [] ); useEffect(() => { - if (workspace.type !== "group") { + if (workspace.type !== 'group') { return; } - setRecentGroups((gs) => _.uniq([workspace.group, ...gs])); + setRecentGroups(gs => _.uniq([workspace.group, ...gs])); }, [workspace]); if (!(associations && (groupPath ? groupPath in groups : true))) { @@ -75,7 +74,7 @@ export function GroupsPane(props: GroupsPaneProps) { {...routeProps} baseUrl={baseUrl} - />)} + />)} <InvitePopover api={api} association={groupAssociation!} @@ -85,12 +84,12 @@ export function GroupsPane(props: GroupsPaneProps) { workspace={workspace} /> </> - ) + ); return ( <Switch> <Route - path={[relativePath("/resource/:app/(ship)?/:host/:name")]} + path={[relativePath('/resource/:app/(ship)?/:host/:name')]} render={(routeProps) => { const { app, host, name } = routeProps.match.params as Record< string, @@ -100,7 +99,7 @@ export function GroupsPane(props: GroupsPaneProps) { const appName = app as AppName; const resource = `/ship/${host}/${name}`; - const association = associations.graph[resource] + const association = associations.graph[resource]; const resourceUrl = `${baseUrl}/resource/${app}${resource}`; if (!association) { @@ -128,7 +127,7 @@ export function GroupsPane(props: GroupsPaneProps) { }} /> <Route - path={relativePath("/join/:app/(ship)?/:host/:name")} + path={relativePath('/join/:app/(ship)?/:host/:name')} render={(routeProps) => { const { app, host, name } = routeProps.match.params; const appPath = `/ship/${host}/${name}`; @@ -168,7 +167,7 @@ export function GroupsPane(props: GroupsPaneProps) { }} /> <Route - path={relativePath("/new")} + path={relativePath('/new')} render={(routeProps) => { const newUrl = `${baseUrl}/new`; return ( @@ -189,10 +188,10 @@ export function GroupsPane(props: GroupsPaneProps) { }} /> <Route - path={relativePath("")} + path={relativePath('')} render={(routeProps) => { const hasDescription = groupAssociation?.metadata?.description; - const channelCount = Object.keys(props?.associations?.graph ?? {}).filter(e => { + const channelCount = Object.keys(props?.associations?.graph ?? {}).filter((e) => { return props?.associations?.graph?.[e]?.['group'] === groupPath; }).length; let summary: ReactNode; @@ -203,13 +202,11 @@ export function GroupsPane(props: GroupsPaneProps) { channelCount={channelCount} metadata={groupAssociation.metadata} resource={groupAssociation.group} - /> + />; } else { summary = (<Box p="4"><Text fontSize="0" color='gray'> Create or select a channel to get started </Text></Box>); - - } const title = groupAssociation?.metadata?.title ?? 'Landscape'; return ( @@ -221,7 +218,7 @@ export function GroupsPane(props: GroupsPaneProps) { <Col alignItems="center" justifyContent="center" - display={["none", "flex"]} + display={['none', 'flex']} p='4' > {summary} diff --git a/pkg/interface/src/views/landscape/components/InvitePopover.tsx b/pkg/interface/src/views/landscape/components/InvitePopover.tsx index 72dc13d93b..de02b7588e 100644 --- a/pkg/interface/src/views/landscape/components/InvitePopover.tsx +++ b/pkg/interface/src/views/landscape/components/InvitePopover.tsx @@ -1,26 +1,26 @@ -import React, { useCallback, useRef, useMemo } from "react"; +import React, { useCallback, useRef } from 'react'; import _ from 'lodash'; -import { Switch, Route, useHistory } from "react-router-dom"; -import { Formik, Form } from "formik"; +import { Switch, Route, useHistory } from 'react-router-dom'; +import { Formik, Form } from 'formik'; import * as Yup from 'yup'; import { ManagedTextInputField as Input, Box, Text, Col, - Button, Row -} from "@tlon/indigo-react"; +} from '@tlon/indigo-react'; -import { ShipSearch } from "~/views/components/ShipSearch"; -import { Association } from "~/types/metadata-update"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import { useOutsideClick } from "~/logic/lib/useOutsideClick"; -import { FormError } from "~/views/components/FormError"; -import { resourceFromPath } from "~/logic/lib/group"; -import GlobalApi from "~/logic/api/global"; -import { Groups, Rolodex, Workspace } from "~/types"; -import { deSig } from "~/logic/lib/util"; +import { ShipSearch } from '~/views/components/ShipSearch'; +import { Association } from '@urbit/api/metadata'; +import { AsyncButton } from '~/views/components/AsyncButton'; +import { useOutsideClick } from '~/logic/lib/useOutsideClick'; +import { FormError } from '~/views/components/FormError'; +import { resourceFromPath } from '~/logic/lib/group'; +import GlobalApi from '~/logic/api/global'; +import { Groups, Rolodex } from '@urbit/api'; +import { deSig } from '~/logic/lib/util'; +import { Workspace } from '~/types/workspace'; interface InvitePopoverProps { baseUrl: string; @@ -38,15 +38,15 @@ interface FormSchema { } const formSchema = Yup.object({ - emails: Yup.array(Yup.string().email("Invalid email")), - ships: Yup.array(Yup.string()).min(1, "Must invite at least one ship") + emails: Yup.array(Yup.string().email('Invalid email')), + ships: Yup.array(Yup.string()).min(1, 'Must invite at least one ship') }); export function InvitePopover(props: InvitePopoverProps) { const { baseUrl, api, association } = props; const relativePath = (p: string) => baseUrl + p; - const { title } = association?.metadata || ""; + const { title } = association?.metadata || ''; const innerRef = useRef(null); const history = useHistory(); @@ -75,10 +75,9 @@ export function InvitePopover(props: InvitePopoverProps) { const initialValues: FormSchema = { ships: [], emails: [], description: '' }; - return ( <Switch> - <Route path={[relativePath("/invites")]}> + <Route path={[relativePath('/invites')]}> <Box display="flex" justifyContent="center" diff --git a/pkg/interface/src/views/landscape/components/JoinGroup.tsx b/pkg/interface/src/views/landscape/components/JoinGroup.tsx index 9337caa2b3..bc0450c839 100644 --- a/pkg/interface/src/views/landscape/components/JoinGroup.tsx +++ b/pkg/interface/src/views/landscape/components/JoinGroup.tsx @@ -1,40 +1,38 @@ -import React, { useState, useCallback, useEffect } from "react"; +import React, { useState, useCallback, useEffect, ReactElement } from 'react'; import _ from 'lodash'; -import { Body } from "~/views/components/Body"; +import { Formik, Form, FormikHelpers, useFormikContext } from 'formik'; +import * as Yup from 'yup'; +import { useHistory } from 'react-router-dom'; +import urbitOb from 'urbit-ob'; + import { Col, Row, Icon, Box, Text, - ManagedTextInputField as Input, - LoadingSpinner, -} from "@tlon/indigo-react"; -import { Formik, Form, FormikHelpers, useFormikContext } from "formik"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import * as Yup from "yup"; -import { Groups, Rolodex, MetadataUpdatePreview, Associations } from "~/types"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import GlobalApi from "~/logic/api/global"; -import { RouteComponentProps, useHistory } from "react-router-dom"; -import urbitOb from "urbit-ob"; -import { resourceFromPath } from "~/logic/lib/group"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import { uxToHex, getModuleIcon } from "~/logic/lib/util"; -import { FormError } from "~/views/components/FormError"; -import { MetadataIcon } from "./MetadataIcon"; -import { GroupSummary } from "./GroupSummary"; + ManagedTextInputField as Input +} from '@tlon/indigo-react'; +import { Groups, MetadataUpdatePreview, Associations } from '@urbit/api'; + +import { AsyncButton } from '~/views/components/AsyncButton'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; +import GlobalApi from '~/logic/api/global'; +import { StatelessAsyncButton } from '~/views/components/StatelessAsyncButton'; +import { getModuleIcon } from '~/logic/lib/util'; +import { FormError } from '~/views/components/FormError'; +import { GroupSummary } from './GroupSummary'; const formSchema = Yup.object({ group: Yup.string() - .required("Must provide group to join") - .test("is-valid", "Invalid group", (group: string | null | undefined) => { + .required('Must provide group to join') + .test('is-valid', 'Invalid group', (group: string | null | undefined) => { if (!group) { return false; } - const [patp, name] = group.split("/"); + const [patp, name] = group.split('/'); return urbitOb.isValidPatp(patp) && name.length > 0; - }), + }) }); interface FormSchema { @@ -60,17 +58,16 @@ function Autojoin(props: { autojoin: string | null }) { return null; } -export function JoinGroup(props: JoinGroupProps) { +export function JoinGroup(props: JoinGroupProps): ReactElement { const { api, autojoin, associations, groups } = props; const history = useHistory(); const initialValues: FormSchema = { - group: autojoin || "", + group: autojoin || '' }; const [preview, setPreview] = useState< MetadataUpdatePreview | string | null >(null); - const waiter = useWaitForProps(props, _.isString(preview) ? 1 : 5000); const onConfirm = useCallback(async (group: string) => { @@ -78,9 +75,9 @@ export function JoinGroup(props: JoinGroupProps) { await api.groups.join(ship, name); try { await waiter((p: JoinGroupProps) => { - return group in p.groups && + return group in p.groups && (group in (p.associations?.graph ?? {}) - || group in (p.associations?.groups ?? {})) + || group in (p.associations?.groups ?? {})); }); if(props.groups?.[group]?.hidden) { @@ -98,7 +95,7 @@ export function JoinGroup(props: JoinGroupProps) { const onSubmit = useCallback( async (values: FormSchema, actions: FormikHelpers<FormSchema>) => { - const [ship, name] = values.group.split("/"); + const [ship, name] = values.group.split('/'); const path = `/ship/${ship}/${name}`; // skip if it's unmanaged try { @@ -107,13 +104,13 @@ export function JoinGroup(props: JoinGroupProps) { setPreview(prev); } catch (e) { if (!(e instanceof Error)) { - actions.setStatus({ error: "Unknown error" }); - } else if (e.message === "no-permissions") { + actions.setStatus({ error: 'Unknown error' }); + } else if (e.message === 'no-permissions') { actions.setStatus({ error: - "Unable to join group, you do not have the correct permissions", + 'Unable to join group, you do not have the correct permissions' }); - } else if (e.message === "offline") { + } else if (e.message === 'offline') { setPreview(path); } } @@ -131,8 +128,8 @@ export function JoinGroup(props: JoinGroupProps) { {_.isString(preview) ? ( <Col width="100%" gapY="4"> <Text>The host appears to be offline. Join anyway?</Text> - <StatelessAsyncButton - primary + <StatelessAsyncButton + primary name="join" onClick={() => onConfirm(preview)} > @@ -173,7 +170,7 @@ export function JoinGroup(props: JoinGroupProps) { </Box> </Col> )} - <StatelessAsyncButton + <StatelessAsyncButton primary name="join" onClick={() => onConfirm(preview.group)} @@ -188,7 +185,7 @@ export function JoinGroup(props: JoinGroupProps) { initialValues={initialValues} onSubmit={onSubmit} > - <Form style={{ display: "contents" }}> + <Form style={{ display: 'contents' }}> <Autojoin autojoin={autojoin ?? null} /> <Input id="group" diff --git a/pkg/interface/src/views/landscape/components/MetadataIcon.tsx b/pkg/interface/src/views/landscape/components/MetadataIcon.tsx index 3d2be2081e..0d78a66e02 100644 --- a/pkg/interface/src/views/landscape/components/MetadataIcon.tsx +++ b/pkg/interface/src/views/landscape/components/MetadataIcon.tsx @@ -1,9 +1,9 @@ -import React from "react"; -import { Box, Image } from "@tlon/indigo-react"; +import React from 'react'; +import { Box, Image } from '@tlon/indigo-react'; -import { uxToHex } from "~/logic/lib/util"; -import { Metadata } from "~/types"; -import { PropFunc } from "~/types/util"; +import { uxToHex } from '~/logic/lib/util'; +import { Metadata } from '@urbit/api'; +import { PropFunc } from '~/types/util'; type MetadataIconProps = PropFunc<typeof Box> & { metadata: Metadata; diff --git a/pkg/interface/src/views/landscape/components/NewChannel.tsx b/pkg/interface/src/views/landscape/components/NewChannel.tsx index deff848358..4560299102 100644 --- a/pkg/interface/src/views/landscape/components/NewChannel.tsx +++ b/pkg/interface/src/views/landscape/components/NewChannel.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactElement } from 'react'; import { Box, ManagedTextInputField as Input, @@ -14,13 +14,14 @@ import { FormError } from '~/views/components/FormError'; import { RouteComponentProps } from 'react-router-dom'; import { stringToSymbol, parentPath, deSig } from '~/logic/lib/util'; import { resourceFromPath } from '~/logic/lib/group'; -import { Associations } from '~/types/metadata-update'; +import { Associations } from '@urbit/api/metadata'; import { useWaitForProps } from '~/logic/lib/useWaitForProps'; -import { Groups } from '~/types/group-update'; +import { Groups } from '@urbit/api/groups'; import { ShipSearch, shipSearchSchemaInGroup, shipSearchSchema } from '~/views/components/ShipSearch'; -import { Rolodex, Workspace } from '~/types'; +import { Rolodex } from '@urbit/api'; import { IconRadio } from '~/views/components/IconRadio'; import { ChannelWriteFieldSchema, ChannelWritePerms } from './ChannelWritePerms'; +import { Workspace } from '~/types/workspace'; type FormSchema = { name: string; @@ -47,7 +48,7 @@ interface NewChannelProps { workspace: Workspace; } -export function NewChannel(props: NewChannelProps & RouteComponentProps) { +export function NewChannel(props: NewChannelProps & RouteComponentProps): ReactElement { const { history, api, group, workspace, groups } = props; const waiter = useWaitForProps(props, 5000); @@ -59,7 +60,7 @@ export function NewChannel(props: NewChannelProps & RouteComponentProps) { : ''); try { let { description, moduleType, ships, writers } = values; - ships = ships.filter(e => e !== ""); + ships = ships.filter(e => e !== ''); if (workspace?.type === 'messages' && ships.length === 1) { return history.push(`/~landscape/dm/${deSig(ships[0])}`); } @@ -138,7 +139,7 @@ export function NewChannel(props: NewChannelProps & RouteComponentProps) { maxWidth="348px" gapY="4" > - <Col pt={4} gapY="2" display={(workspace?.type === "messages") ? 'none' : 'flex'}> + <Col pt={4} gapY="2" display={(workspace?.type === 'messages') ? 'none' : 'flex'}> <Box fontSize="1" color="black" mb={2}>Channel Type</Box> <IconRadio display={!(workspace?.type === 'home') ? 'flex' : 'none'} diff --git a/pkg/interface/src/views/landscape/components/NewGroup.tsx b/pkg/interface/src/views/landscape/components/NewGroup.tsx index b7a45bfde2..9b932e7435 100644 --- a/pkg/interface/src/views/landscape/components/NewGroup.tsx +++ b/pkg/interface/src/views/landscape/components/NewGroup.tsx @@ -1,25 +1,26 @@ -import React, { useState, useCallback } from "react"; -import { Body } from "~/views/components/Body"; +import React, { ReactElement, useCallback } from 'react'; +import { Formik, Form, FormikHelpers } from 'formik'; +import * as Yup from 'yup'; +import { RouteComponentProps } from 'react-router-dom'; + import { Col, Box, Text, ManagedTextInputField as Input, ManagedCheckboxField as Checkbox -} from "@tlon/indigo-react"; -import { Formik, Form, FormikHelpers } from "formik"; -import { AsyncButton } from "~/views/components/AsyncButton"; -import * as Yup from "yup"; -import { Groups, Rolodex, GroupPolicy, Enc, Associations } from "~/types"; -import { useWaitForProps } from "~/logic/lib/useWaitForProps"; -import GlobalApi from "~/logic/api/global"; -import { stringToSymbol } from "~/logic/lib/util"; -import {RouteComponentProps} from "react-router-dom"; +} from '@tlon/indigo-react'; +import { Groups, Rolodex, GroupPolicy, Enc, Associations } from '@urbit/api'; + +import { AsyncButton } from '~/views/components/AsyncButton'; +import { useWaitForProps } from '~/logic/lib/useWaitForProps'; +import GlobalApi from '~/logic/api/global'; +import { stringToSymbol } from '~/logic/lib/util'; const formSchema = Yup.object({ - title: Yup.string().required("Group must have a name"), + title: Yup.string().required('Group must have a name'), description: Yup.string(), - isPrivate: Yup.boolean(), + isPrivate: Yup.boolean() }); interface FormSchema { @@ -35,12 +36,12 @@ interface NewGroupProps { api: GlobalApi; } -export function NewGroup(props: NewGroupProps & RouteComponentProps) { +export function NewGroup(props: NewGroupProps & RouteComponentProps): ReactElement { const { api, history } = props; const initialValues: FormSchema = { - title: "", - description: "", - isPrivate: false, + title: '', + description: '', + isPrivate: false }; const waiter = useWaitForProps(props); @@ -53,14 +54,14 @@ export function NewGroup(props: NewGroupProps & RouteComponentProps) { const policy: Enc<GroupPolicy> = isPrivate ? { invite: { - pending: [], - }, + pending: [] + } } : { open: { banRanks: [], - banned: [], - }, + banned: [] + } }; await api.groups.create(name, policy, title, description); const path = `/ship/~${window.ship}/${name}`; diff --git a/pkg/interface/src/views/landscape/components/Participants.tsx b/pkg/interface/src/views/landscape/components/Participants.tsx index dabea1845b..d39a8bace1 100644 --- a/pkg/interface/src/views/landscape/components/Participants.tsx +++ b/pkg/interface/src/views/landscape/components/Participants.tsx @@ -2,7 +2,6 @@ import React, { useState, useMemo, useCallback, - SyntheticEvent, ChangeEvent } from 'react'; import { @@ -11,26 +10,25 @@ import { Row, Text, Icon, - Center, - Button, Action, StatelessTextInput as Input } from '@tlon/indigo-react'; import _ from 'lodash'; import f from 'lodash/fp'; import VisibilitySensor from 'react-visibility-sensor'; +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; + +import { Contact, Contacts } from '@urbit/api/contacts'; +import { Group, RoleTags } from '@urbit/api/groups'; +import { Association } from '@urbit/api/metadata'; -import { Contact, Contacts } from '~/types/contact-update'; import { Sigil } from '~/logic/lib/sigil'; import { cite, uxToHex } from '~/logic/lib/util'; -import { Group, RoleTags } from '~/types/group-update'; import { roleForShip, resourceFromPath } from '~/logic/lib/group'; -import { Association } from '~/types/metadata-update'; -import { useHistory, Link } from 'react-router-dom'; import { Dropdown } from '~/views/components/Dropdown'; import GlobalApi from '~/logic/api/global'; import { StatelessAsyncAction } from '~/views/components/StatelessAsyncAction'; -import styled from 'styled-components'; import useLocalState from '~/logic/state/local'; const TruncText = styled(Box)` @@ -105,7 +103,7 @@ export function Participants(props: { group: Group; association: Association; api: GlobalApi; -}) { +}): ReactElement { const { api } = props; const tabFilters: Record< ParticipantsTabId, diff --git a/pkg/interface/src/views/landscape/components/PopoverRoutes.tsx b/pkg/interface/src/views/landscape/components/PopoverRoutes.tsx index 4c18d93c0d..f457428bdb 100644 --- a/pkg/interface/src/views/landscape/components/PopoverRoutes.tsx +++ b/pkg/interface/src/views/landscape/components/PopoverRoutes.tsx @@ -1,20 +1,21 @@ -import React, { useRef, useCallback } from "react"; -import { Route, Switch, RouteComponentProps, Link } from "react-router-dom"; -import { Box, Row, Col, Icon, Text } from "@tlon/indigo-react"; -import { HoverBoxLink } from "~/views/components/HoverBox"; -import { Contacts, Contact } from "~/types/contact-update"; -import { Group } from "~/types/group-update"; -import { Association } from "~/types/metadata-update"; -import GlobalApi from "~/logic/api/global"; -import { GroupNotificationsConfig, S3State, Associations } from "~/types"; +import React, { useRef, useCallback, ReactElement } from 'react'; +import { Route, Switch, RouteComponentProps, Link } from 'react-router-dom'; +import { Box, Col, Text } from '@tlon/indigo-react'; -import { GroupSettings } from "./GroupSettings/GroupSettings"; -import { Participants } from "./Participants"; -import {useHashLink} from "~/logic/lib/useHashLink"; -import {DeleteGroup} from "./DeleteGroup"; -import {resourceFromPath} from "~/logic/lib/group"; -import {ModalOverlay} from "~/views/components/ModalOverlay"; -import { SidebarItem } from "~/views/landscape/components/SidebarItem"; +import { GroupNotificationsConfig, Associations } from '@urbit/api'; +import { Contacts, Contact } from '@urbit/api/contacts'; +import { Group } from '@urbit/api/groups'; +import { Association } from '@urbit/api/metadata'; + +import GlobalApi from '~/logic/api/global'; +import { GroupSettings } from './GroupSettings/GroupSettings'; +import { Participants } from './Participants'; +import { useHashLink } from '~/logic/lib/useHashLink'; +import { DeleteGroup } from './DeleteGroup'; +import { resourceFromPath } from '~/logic/lib/group'; +import { ModalOverlay } from '~/views/components/ModalOverlay'; +import { SidebarItem } from '~/views/landscape/components/SidebarItem'; +import { S3State } from '~/types'; export function PopoverRoutes( props: { @@ -28,7 +29,7 @@ export function PopoverRoutes( notificationsGroupConfig: GroupNotificationsConfig; rootIdentity: Contact; } & RouteComponentProps -) { +): ReactElement { const relativeUrl = (url: string) => `${props.baseUrl}/popover${url}`; const innerRef = useRef(null); @@ -47,7 +48,7 @@ export function PopoverRoutes( return ( <Switch> <Route - path={[relativeUrl("/:view"), relativeUrl("")]} + path={[relativeUrl('/:view'), relativeUrl('')]} render={(routeProps) => { const { view } = routeProps.match.params; return ( @@ -64,13 +65,13 @@ export function PopoverRoutes( > <Box display="grid" - gridTemplateRows={["32px 1fr", "100%"]} - gridTemplateColumns={["100%", "250px 1fr"]} + gridTemplateRows={['32px 1fr', '100%']} + gridTemplateColumns={['100%', '250px 1fr']} height="100%" width="100%" > <Col - display={!!view ? ["none", "flex"] : "flex"} + display={view ? ['none', 'flex'] : 'flex'} borderRight={1} borderRightColor="washedGray" > @@ -79,14 +80,14 @@ export function PopoverRoutes( <Text my="1" mx="3" gray>Group</Text> <SidebarItem icon="Inbox" - to={relativeUrl("/settings#notifications")} + to={relativeUrl('/settings#notifications')} text="Notifications" /> <SidebarItem icon="Users" - to={relativeUrl("/participants")} + to={relativeUrl('/participants')} text="Participants" - selected={view === "participants"} + selected={view === 'participants'} ><Text gray>{groupSize}</Text> </SidebarItem> { admin && ( @@ -96,12 +97,12 @@ export function PopoverRoutes( </Box> <SidebarItem icon="Groups" - to={relativeUrl("/settings#group-details")} + to={relativeUrl('/settings#group-details')} text="Group Details" /> <SidebarItem icon="Spaces" - to={relativeUrl("/settings#channels")} + to={relativeUrl('/settings#channels')} text="Channel Management" /> </> @@ -110,16 +111,16 @@ export function PopoverRoutes( </Col> </Col> <Box - gridArea={"1 / 1 / 2 / 2"} + gridArea={'1 / 1 / 2 / 2'} p={2} - display={["auto", "none"]} + display={['auto', 'none']} > - <Link to={!!view ? relativeUrl("") : props.baseUrl}> - <Text>{"<- Back"}</Text> + <Link to={view ? relativeUrl('') : props.baseUrl}> + <Text>{'<- Back'}</Text> </Link> </Box> <Box overflow="hidden"> - {view === "settings" && ( + {view === 'settings' && ( <GroupSettings baseUrl={`${props.baseUrl}/popover`} group={props.group} @@ -130,7 +131,7 @@ export function PopoverRoutes( s3={props.s3} /> )} - {view === "participants" && ( + {view === 'participants' && ( <Participants group={props.group} contacts={props.contacts} diff --git a/pkg/interface/src/views/landscape/components/Resource.tsx b/pkg/interface/src/views/landscape/components/Resource.tsx index f48fba96ae..41fc642eaf 100644 --- a/pkg/interface/src/views/landscape/components/Resource.tsx +++ b/pkg/interface/src/views/landscape/components/Resource.tsx @@ -1,25 +1,16 @@ -import React, { useCallback } from "react"; -import { Row, Box, Col } from "@tlon/indigo-react"; -import styled from "styled-components"; +import React, { ReactElement } from 'react'; import Helmet from 'react-helmet'; +import { RouteComponentProps, Route, Switch } from 'react-router-dom'; -import { ChatResource } from "~/views/apps/chat/ChatResource"; -import { PublishResource } from "~/views/apps/publish/PublishResource"; -import { LinkResource } from "~/views/apps/links/LinkResource"; +import { Association } from '@urbit/api/metadata'; -import { Association } from "~/types/metadata-update"; -import { StoreState } from "~/logic/store/type"; -import GlobalApi from "~/logic/api/global"; -import { RouteComponentProps, Route, Switch } from "react-router-dom"; -import { ChannelSettings } from "./ChannelSettings"; -import { ResourceSkeleton } from "./ResourceSkeleton"; -import {ChannelPopoverRoutes} from "./ChannelPopoverRoutes"; - -const TruncatedBox = styled(Box)` - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -`; +import { ChatResource } from '~/views/apps/chat/ChatResource'; +import { PublishResource } from '~/views/apps/publish/PublishResource'; +import { LinkResource } from '~/views/apps/links/LinkResource'; +import { StoreState } from '~/logic/store/type'; +import GlobalApi from '~/logic/api/global'; +import { ResourceSkeleton } from './ResourceSkeleton'; +import { ChannelPopoverRoutes } from './ChannelPopoverRoutes'; type ResourceProps = StoreState & { association: Association; @@ -27,9 +18,9 @@ type ResourceProps = StoreState & { baseUrl: string; } & RouteComponentProps; -export function Resource(props: ResourceProps) { +export function Resource(props: ResourceProps): ReactElement { const { association, api, notificationsGraphConfig, groups, contacts } = props; - const app = association.metadata.module || association["app-name"]; + const app = association.metadata.module || association['app-name']; const rid = association.resource; const selectedGroup = association.group; const relativePath = (p: string) => @@ -48,11 +39,11 @@ export function Resource(props: ResourceProps) { </Helmet> <ResourceSkeleton {...skelProps} - baseUrl={relativePath("")} + baseUrl={relativePath('')} > - {app === "chat" ? ( + {app === 'chat' ? ( <ChatResource {...props} /> - ) : app === "publish" ? ( + ) : app === 'publish' ? ( <PublishResource {...props} /> ) : ( <LinkResource {...props} /> @@ -60,7 +51,7 @@ export function Resource(props: ResourceProps) { </ResourceSkeleton> <Switch> <Route - path={relativePath("/settings")} + path={relativePath('/settings')} render={(routeProps) => { return ( <ChannelPopoverRoutes @@ -69,7 +60,7 @@ export function Resource(props: ResourceProps) { groups={props.groups} contacts={props.contacts} api={props.api} - baseUrl={relativePath("")} + baseUrl={relativePath('')} rootUrl={props.baseUrl} notificationsGraphConfig={notificationsGraphConfig} /> diff --git a/pkg/interface/src/views/landscape/components/ResourceSkeleton.tsx b/pkg/interface/src/views/landscape/components/ResourceSkeleton.tsx index 63bc35f86a..43750dd5d6 100644 --- a/pkg/interface/src/views/landscape/components/ResourceSkeleton.tsx +++ b/pkg/interface/src/views/landscape/components/ResourceSkeleton.tsx @@ -1,21 +1,15 @@ -import React, { ReactNode } from "react"; -import { Row, Icon, Box, Col, Text } from "@tlon/indigo-react"; -import styled from "styled-components"; -import { Link } from "react-router-dom"; - -import { ChatResource } from "~/views/apps/chat/ChatResource"; -import { PublishResource } from "~/views/apps/publish/PublishResource"; - -import RichText from "~/views/components/RichText"; - -import { Association } from "~/types/metadata-update"; -import GlobalApi from "~/logic/api/global"; -import { RouteComponentProps, Route, Switch } from "react-router-dom"; -import { ChannelSettings } from "./ChannelSettings"; -import { ChannelMenu } from "./ChannelMenu"; -import { NotificationGraphConfig, Groups } from "~/types"; -import {isWriter} from "~/logic/lib/group"; +import React, { ReactElement, ReactNode } from 'react'; +import { Icon, Box, Col, Text } from '@tlon/indigo-react'; +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; import urbitOb from 'urbit-ob'; + +import { Association } from '@urbit/api/metadata'; +import { Groups, Rolodex } from '@urbit/api'; + +import RichText from '~/views/components/RichText'; +import GlobalApi from '~/logic/api/global'; +import { isWriter } from '~/logic/lib/group'; import { getItemTitle } from '~/logic/lib/util'; const TruncatedBox = styled(Box)` @@ -26,7 +20,7 @@ const TruncatedBox = styled(Box)` type ResourceSkeletonProps = { groups: Groups; - contacts: any; + contacts: Rolodex; association: Association; api: GlobalApi; baseUrl: string; @@ -35,20 +29,20 @@ type ResourceSkeletonProps = { groupTags?: any; }; -export function ResourceSkeleton(props: ResourceSkeletonProps) { - const { association, api, baseUrl, children, atRoot, groups } = props; - const app = association?.metadata?.module || association["app-name"]; +export function ResourceSkeleton(props: ResourceSkeletonProps): ReactElement { + const { association, baseUrl, children, groups } = props; + const app = association?.metadata?.module || association['app-name']; const rid = association.resource; const group = groups[association.group]; let workspace = association.group; - if (group?.hidden && app === "chat") { - workspace = "/messages"; + if (group?.hidden && app === 'chat') { + workspace = '/messages'; } else if (group?.hidden) { - workspace = "/home"; + workspace = '/home'; } - let title = (workspace === "/messages") + let title = (workspace === '/messages') ? getItemTitle(association) : association?.metadata?.title; @@ -59,7 +53,7 @@ export function ResourceSkeleton(props: ResourceSkeletonProps) { title = (props.contacts?.[title]?.nickname) ? props.contacts[title].nickname : title; } - const [, , ship, resource] = rid.split("/"); + const [, , ship, resource] = rid.split('/'); const resourcePath = (p: string) => baseUrl + p; @@ -89,10 +83,10 @@ export function ResourceSkeleton(props: ResourceSkeletonProps) { fontSize='1' mr={3} my="1" - display={["block", "none"]} + display={['block', 'none']} flexShrink={0} > - <Link to={`/~landscape${workspace}`}> {"<- Back"}</Link> + <Link to={`/~landscape${workspace}`}> {'<- Back'}</Link> </Box> <Box px={1} mr={2} minWidth={0} display="flex"> <Text @@ -104,12 +98,13 @@ export function ResourceSkeleton(props: ResourceSkeletonProps) { textOverflow="ellipsis" overflow="hidden" whiteSpace="pre" - minWidth={0}> + minWidth={0} + > {title} </Text> </Box> <TruncatedBox - display={["none", "block"]} + display={['none', 'block']} verticalAlign="middle" maxWidth='60%' flexShrink={1} @@ -117,13 +112,13 @@ export function ResourceSkeleton(props: ResourceSkeletonProps) { color="gray" > <RichText - display={(workspace === '/messages' && (urbitOb.isValidPatp(title))) ? "none" : "inline-block"} + display={(workspace === '/messages' && (urbitOb.isValidPatp(title))) ? 'none' : 'inline-block'} mono={(workspace === '/messages' && !(urbitOb.isValidPatp(title)))} color="gray" mb="0" disableRemoteContent > - {(workspace === "/messages") ? recipient : association?.metadata?.description} + {(workspace === '/messages') ? recipient : association?.metadata?.description} </RichText> </TruncatedBox> <Box flexGrow={1} /> diff --git a/pkg/interface/src/views/landscape/components/Sidebar/Apps.tsx b/pkg/interface/src/views/landscape/components/Sidebar/Apps.tsx index d56236ad00..fd32f998ad 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/Apps.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/Apps.tsx @@ -1,8 +1,8 @@ -import { useEffect, useCallback } from "react"; -import { Graphs, UnreadStats } from "~/types"; -import { SidebarItemStatus, SidebarAppConfig } from "./types"; +import { useCallback } from 'react'; +import { Graphs, UnreadStats } from '@urbit/api'; +import { SidebarAppConfig } from './types'; export function useGraphModule( graphKeys: Set<string>, @@ -11,10 +11,10 @@ export function useGraphModule( ): SidebarAppConfig { const getStatus = useCallback( (s: string) => { - const [, , host, name] = s.split("/"); + const [, , host, name] = s.split('/'); const graphKey = `${host.slice(1)}/${name}`; if (!graphKeys.has(graphKey)) { - return "unsubscribed"; + return 'unsubscribed'; } const unreads = graphUnreads?.[s]?.['/']?.unreads; @@ -38,7 +38,6 @@ export function useGraphModule( return 0; } return 1; - }, [getStatus, graphUnreads]); return { getStatus, lastUpdated }; diff --git a/pkg/interface/src/views/landscape/components/Sidebar/Sidebar.tsx b/pkg/interface/src/views/landscape/components/Sidebar/Sidebar.tsx index 7cd0e2dcb2..1ec0a32344 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/Sidebar.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/Sidebar.tsx @@ -1,4 +1,4 @@ -import React, { ReactNode, useRef } from 'react'; +import React, { ReactElement, ReactNode, useRef } from 'react'; import styled from 'styled-components'; import { Col @@ -12,14 +12,14 @@ import { Groups, Invites, Rolodex -} from '~/types'; +} from '@urbit/api'; import { SidebarListHeader } from './SidebarListHeader'; import { useLocalStorageState } from '~/logic/lib/useLocalStorageState'; import { getGroupFromWorkspace } from '~/logic/lib/workspace'; import { SidebarAppConfigs } from './types'; import { SidebarList } from './SidebarList'; import { roleForShip } from '~/logic/lib/group'; -import {useTutorialModal} from '~/views/components/useTutorialModal'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; const ScrollbarLessCol = styled(Col)` scrollbar-width: none !important; @@ -46,7 +46,7 @@ interface SidebarProps { workspace: Workspace; } -export function Sidebar(props: SidebarProps) { +export function Sidebar(props: SidebarProps): ReactElement { const { associations, selected, workspace } = props; const groupPath = getGroupFromWorkspace(workspace); const display = props.mobileHide ? ['none', 'flex'] : 'flex'; diff --git a/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx b/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx index b42b345bb7..6557edd75e 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx @@ -1,26 +1,26 @@ -import React, {useRef} from "react"; -import _ from 'lodash'; - -import { Icon, Row, Box, Text, BaseImage } from "@tlon/indigo-react"; - -import { SidebarAppConfigs, SidebarItemStatus } from "./Sidebar"; -import { HoverBoxLink } from "~/views/components/HoverBox"; -import { Groups, Association } from "~/types"; -import { Sigil } from '~/logic/lib/sigil'; +import React, { ReactElement, useRef } from 'react'; import urbitOb from 'urbit-ob'; -import { getModuleIcon, getItemTitle, uxToHex } from "~/logic/lib/util"; -import {useTutorialModal} from "~/views/components/useTutorialModal"; -import {TUTORIAL_HOST, TUTORIAL_GROUP} from "~/logic/lib/tutorialModal"; + +import { Icon, Row, Box, Text, BaseImage } from '@tlon/indigo-react'; +import { Groups, Association, Rolodex } from '@urbit/api'; + +import { HoverBoxLink } from '~/views/components/HoverBox'; +import { Sigil } from '~/logic/lib/sigil'; +import { getModuleIcon, getItemTitle, uxToHex } from '~/logic/lib/util'; +import { useTutorialModal } from '~/views/components/useTutorialModal'; +import { TUTORIAL_HOST, TUTORIAL_GROUP } from '~/logic/lib/tutorialModal'; +import { SidebarAppConfigs, SidebarItemStatus } from './types'; +import { Workspace } from '~/types/workspace'; function SidebarItemIndicator(props: { status?: SidebarItemStatus }) { switch (props.status) { - case "disconnected": + case 'disconnected': return <Icon ml={2} fill="red" icon="X" />; - case "unsubscribed": + case 'unsubscribed': return <Icon ml={2} icon="Circle" fill="gray" />; - case "mention": + case 'mention': return <Icon ml={2} icon="Circle" />; - case "loading": + case 'loading': return <Icon ml={2} icon="Bullet" />; default: return null; @@ -30,20 +30,20 @@ function SidebarItemIndicator(props: { status?: SidebarItemStatus }) { export function SidebarItem(props: { hideUnjoined: boolean; association: Association; - contacts: any; + contacts: Rolodex; groups: Groups; path: string; selected: boolean; apps: SidebarAppConfigs; workspace: Workspace; -}) { +}): ReactElement { const { association, path, selected, apps, groups } = props; let title = getItemTitle(association); - const appName = association?.["app-name"]; + const appName = association?.['app-name']; const mod = association?.metadata?.module || appName; - const rid = association?.resource + const rid = association?.resource; const groupPath = association?.group; - const anchorRef = useRef<HTMLElement | null>(null) + const anchorRef = useRef<HTMLElement | null>(null); useTutorialModal( mod as any, groupPath === `/ship/${TUTORIAL_HOST}/${TUTORIAL_GROUP}`, @@ -54,11 +54,11 @@ export function SidebarItem(props: { if (!app) { return null; } - const DM = (isUnmanaged && props.workspace?.type === "messages"); + const DM = (isUnmanaged && props.workspace?.type === 'messages'); const itemStatus = app.getStatus(path); - const hasUnread = itemStatus === "unread" || itemStatus === "mention"; + const hasUnread = itemStatus === 'unread' || itemStatus === 'mention'; - const isSynced = itemStatus !== "unsubscribed"; + const isSynced = itemStatus !== 'unsubscribed'; let baseUrl = `/~landscape${groupPath}`; @@ -72,7 +72,7 @@ export function SidebarItem(props: { ? `${baseUrl}/resource/${mod}${rid}` : `${baseUrl}/join/${mod}${rid}`; - const color = selected ? "black" : isSynced ? "gray" : "lightGray"; + const color = selected ? 'black' : isSynced ? 'gray' : 'lightGray'; if (props.hideUnjoined && !isSynced) { return null; @@ -82,15 +82,15 @@ export function SidebarItem(props: { if (urbitOb.isValidPatp(title)) { if (props.contacts?.[title] && props.contacts[title].avatar) { - img = <BaseImage src={props.contacts[title].avatar} width='16px' height='16px' borderRadius={2}/>; + img = <BaseImage src={props.contacts[title].avatar} width='16px' height='16px' borderRadius={2} />; } else { - img = <Sigil ship={title} color={`#${uxToHex(props.contacts?.[title]?.color || '0x0')}`} icon padding={2} size={16}/> + img = <Sigil ship={title} color={`#${uxToHex(props.contacts?.[title]?.color || '0x0')}`} icon padding={2} size={16} />; } if (props.contacts?.[title] && props.contacts[title].nickname) { title = props.contacts[title].nickname; } } else { - img = <Box flexShrink={0} height={16} width={16} borderRadius={2} backgroundColor={`#${uxToHex(props?.association?.metadata?.color)}` || "#000000"}/> + img = <Box flexShrink={0} height={16} width={16} borderRadius={2} backgroundColor={`#${uxToHex(props?.association?.metadata?.color)}` || '#000000'} />; } return ( @@ -125,9 +125,9 @@ export function SidebarItem(props: { overflow='hidden' width='100%' mono={urbitOb.isValidPatp(title)} - fontWeight={hasUnread ? "bold" : "regular"} - color={selected || isSynced ? "black" : "lightGray"} - style={{ textOverflow: 'ellipsis', whiteSpace: 'pre'}} + fontWeight={hasUnread ? 'bold' : 'regular'} + color={selected || isSynced ? 'black' : 'lightGray'} + style={{ textOverflow: 'ellipsis', whiteSpace: 'pre' }} > {title} </Text> diff --git a/pkg/interface/src/views/landscape/components/Sidebar/SidebarList.tsx b/pkg/interface/src/views/landscape/components/Sidebar/SidebarList.tsx index 25af63bff7..8264b5d303 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/SidebarList.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/SidebarList.tsx @@ -1,8 +1,10 @@ -import React, { useMemo } from "react"; -import { alphabeticalOrder } from "~/logic/lib/util"; -import { Associations, AppAssociations, Workspace, Groups } from "~/types"; -import { SidebarAppConfigs, SidebarListConfig, SidebarSort } from "./types"; -import { SidebarItem } from "./SidebarItem"; +import React, { ReactElement } from 'react'; +import { Associations, AppAssociations, Groups, Rolodex } from '@urbit/api'; + +import { alphabeticalOrder } from '~/logic/lib/util'; +import { SidebarAppConfigs, SidebarListConfig, SidebarSort } from './types'; +import { SidebarItem } from './SidebarItem'; +import { Workspace } from '~/types/workspace'; function sidebarSort( associations: AppAssociations, @@ -20,8 +22,8 @@ function sidebarSort( const lastUpdated = (a: string, b: string) => { const aAssoc = associations[a]; const bAssoc = associations[b]; - const aAppName = aAssoc?.["app-name"]; - const bAppName = bAssoc?.["app-name"]; + const aAppName = aAssoc?.['app-name']; + const bAppName = bAssoc?.['app-name']; const aUpdated = apps[aAppName]?.lastUpdated(a) || 0; const bUpdated = apps[bAppName]?.lastUpdated(b) || 0; @@ -37,7 +39,7 @@ function sidebarSort( export function SidebarList(props: { apps: SidebarAppConfigs; - contacts: any; + contacts: Rolodex; config: SidebarListConfig; associations: Associations; groups: Groups; @@ -45,7 +47,7 @@ export function SidebarList(props: { group?: string; selected?: string; workspace: Workspace; -}) { +}): ReactElement { const { selected, group, config, workspace } = props; const associations = { ...props.associations.graph }; @@ -53,11 +55,11 @@ export function SidebarList(props: { .filter((a) => { const assoc = associations[a]; if (workspace?.type === 'messages') { - return (!(assoc.group in props.associations.groups) && assoc.metadata.module === "chat"); + return (!(assoc.group in props.associations.groups) && assoc.metadata.module === 'chat'); } else { return group ? assoc.group === group - : (!(assoc.group in props.associations.groups) && assoc.metadata.module !== "chat"); + : (!(assoc.group in props.associations.groups) && assoc.metadata.module !== 'chat'); } }) .sort(sidebarSort(associations, props.apps)[config.sortBy]); diff --git a/pkg/interface/src/views/landscape/components/Sidebar/SidebarListHeader.tsx b/pkg/interface/src/views/landscape/components/Sidebar/SidebarListHeader.tsx index 66364ac663..d548ff4848 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/SidebarListHeader.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/SidebarListHeader.tsx @@ -1,5 +1,7 @@ -import React, { useCallback } from "react"; -import * as Yup from "yup"; +import React, { ReactElement, useCallback } from 'react'; +import { FormikHelpers } from 'formik'; +import { Link } from 'react-router-dom'; + import { Row, Box, @@ -7,18 +9,18 @@ import { ManagedRadioButtonField as Radio, ManagedCheckboxField as Checkbox, Col, - Text, -} from "@tlon/indigo-react"; -import { FormikOnBlur } from "~/views/components/FormikOnBlur"; -import { Dropdown } from "~/views/components/Dropdown"; -import { FormikHelpers } from "formik"; -import { SidebarListConfig, Workspace } from "./types"; -import { Link, useHistory } from 'react-router-dom'; -import { getGroupFromWorkspace } from "~/logic/lib/workspace"; -import { roleForShip } from "~/logic/lib/group"; -import {Groups, Rolodex, Associations} from "~/types"; -import { NewChannel } from "~/views/landscape/components/NewChannel"; -import GlobalApi from "~/logic/api/global"; + Text +} from '@tlon/indigo-react'; +import { Groups, Rolodex, Associations } from '@urbit/api'; + +import { FormikOnBlur } from '~/views/components/FormikOnBlur'; +import { Dropdown } from '~/views/components/Dropdown'; +import { SidebarListConfig } from './types'; +import { getGroupFromWorkspace } from '~/logic/lib/workspace'; +import { roleForShip } from '~/logic/lib/group'; +import { NewChannel } from '~/views/landscape/components/NewChannel'; +import GlobalApi from '~/logic/api/global'; +import { Workspace } from '~/types/workspace'; export function SidebarListHeader(props: { api: GlobalApi; @@ -30,9 +32,7 @@ export function SidebarListHeader(props: { selected: string; workspace: Workspace; handleSubmit: (c: SidebarListConfig) => void; -}) { - - const history = useHistory(); +}): ReactElement { const onSubmit = useCallback( (values: SidebarListConfig, actions: FormikHelpers<SidebarListConfig>) => { props.handleSubmit(values); @@ -46,9 +46,9 @@ export function SidebarListHeader(props: { const memberMetadata = groupPath ? props.associations.contacts?.[groupPath].metadata.vip === 'member-metadata' : false; - const isAdmin = memberMetadata || (role === "admin") || (props.workspace?.type === 'home') || (props.workspace?.type === "messages"); + const isAdmin = memberMetadata || (role === 'admin') || (props.workspace?.type === 'home') || (props.workspace?.type === 'messages'); - const noun = (props.workspace?.type === "messages") ? "Messages" : "Channels"; + const noun = (props.workspace?.type === 'messages') ? 'Messages' : 'Channels'; return ( <Row @@ -69,14 +69,14 @@ export function SidebarListHeader(props: { display='flex' alignItems='center' > - {props.workspace?.type === "messages" + {props.workspace?.type === 'messages' ? ( <Dropdown flexShrink={0} dropWidth="300px" width="auto" alignY="top" - alignX={["right", "left"]} + alignX={['right', 'left']} options={ <Col background="white" @@ -94,16 +94,17 @@ export function SidebarListHeader(props: { </Col> } > - <Icon icon="Plus" color="gray" pr='12px'/> + <Icon icon="Plus" color="gray" pr='12px' /> </Dropdown> ) : ( <Link style={{ - display: isAdmin ? "inline-block" : "none" }} - to={!!groupPath + display: isAdmin ? 'inline-block' : 'none' }} + to={groupPath ? `/~landscape${groupPath}/new` - : `/~landscape/${props.workspace?.type}/new`}> - <Icon icon="Plus" color="gray" pr='12px'/> + : `/~landscape/${props.workspace?.type}/new`} + > + <Icon icon="Plus" color="gray" pr='12px' /> </Link> ) } @@ -111,7 +112,7 @@ export function SidebarListHeader(props: { flexShrink='0' width="auto" alignY="top" - alignX={["right", "left"]} + alignX={['right', 'left']} options={ <FormikOnBlur initialValues={props.initialValues} onSubmit={onSubmit}> <Col bg="white" borderRadius={1} border={1} borderColor="lightGray"> diff --git a/pkg/interface/src/views/landscape/components/Sidebar/types.ts b/pkg/interface/src/views/landscape/components/Sidebar/types.ts index 7cdc970e08..56ecda5512 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/types.ts +++ b/pkg/interface/src/views/landscape/components/Sidebar/types.ts @@ -1,11 +1,11 @@ export type SidebarItemStatus = - | "unread" - | "mention" - | "unsubscribed" - | "disconnected" - | "loading"; + | 'unread' + | 'mention' + | 'unsubscribed' + | 'disconnected' + | 'loading'; -export type SidebarSort = "asc" | "lastUpdated"; +export type SidebarSort = 'asc' | 'lastUpdated'; export interface SidebarListConfig { sortBy: SidebarSort; @@ -18,5 +18,5 @@ export interface SidebarAppConfig { } export type SidebarAppConfigs = { - [a in "chat" | "link" | "publish"]: SidebarAppConfig; + [a in 'chat' | 'link' | 'publish']: SidebarAppConfig; }; diff --git a/pkg/interface/src/views/landscape/components/SidebarItem.tsx b/pkg/interface/src/views/landscape/components/SidebarItem.tsx index 798d31e3eb..71aea2a020 100644 --- a/pkg/interface/src/views/landscape/components/SidebarItem.tsx +++ b/pkg/interface/src/views/landscape/components/SidebarItem.tsx @@ -1,8 +1,8 @@ -import React from "react"; -import { Row, Icon, Text } from "@tlon/indigo-react"; +import React from 'react'; +import { Row, Icon, Text } from '@tlon/indigo-react'; -import { IconRef, PropFunc } from "~/types/util"; -import { HoverBoxLink } from "~/views/components/HoverBox"; +import { IconRef, PropFunc } from '~/types/util'; +import { HoverBoxLink } from '~/views/components/HoverBox'; interface SidebarItemProps { selected?: boolean; @@ -11,17 +11,17 @@ interface SidebarItemProps { to: string; color?: string; children?: JSX.Element; -} +} export const SidebarItem = ({ icon, text, to, selected = false, - color = "black", + color = 'black', children, ...rest -}: SidebarItemProps & PropFunc<typeof HoverBoxLink>) => { +}: SidebarItemProps & PropFunc<typeof HoverBoxLink>): ReactElement => { return ( <HoverBoxLink to={to} diff --git a/pkg/interface/src/views/landscape/components/Skeleton.tsx b/pkg/interface/src/views/landscape/components/Skeleton.tsx index 9b494a2d0c..ddfb5b0880 100644 --- a/pkg/interface/src/views/landscape/components/Skeleton.tsx +++ b/pkg/interface/src/views/landscape/components/Skeleton.tsx @@ -1,17 +1,14 @@ -import React, { ReactNode, useEffect, useMemo } from 'react'; -import { Box, Text } from '@tlon/indigo-react'; -import { Link } from 'react-router-dom'; +import React, { ReactElement, ReactNode, useMemo } from 'react'; + +import { Groups, Graphs, Invites, Rolodex, Path, AppName } from '@urbit/api'; +import { Associations } from '@urbit/api/metadata'; import { Sidebar } from './Sidebar/Sidebar'; -import { Associations } from '~/types/metadata-update'; -import { Notebooks } from '~/types/publish-update'; import GlobalApi from '~/logic/api/global'; -import { Path, AppName } from '~/types/noun'; -import { LinkCollections } from '~/types/link-update'; import GlobalSubscription from '~/logic/subscription/global'; -import { Workspace, Groups, Graphs, Invites, Rolodex } from '~/types'; import { useGraphModule } from './Sidebar/Apps'; import { Body } from '~/views/components/Body'; +import { Workspace } from '~/types/workspace'; interface SkeletonProps { contacts: Rolodex; @@ -22,8 +19,6 @@ interface SkeletonProps { graphKeys: Set<string>; graphs: Graphs; linkListening: Set<Path>; - links: LinkCollections; - notebooks: Notebooks; invites: Invites; selected?: string; selectedApp?: AppName; @@ -33,10 +28,10 @@ interface SkeletonProps { subscription: GlobalSubscription; includeUnmanaged: boolean; workspace: Workspace; - unreads: any; + unreads: unknown; } -export function Skeleton(props: SkeletonProps) { +export function Skeleton(props: SkeletonProps): ReactElement { const graphConfig = useGraphModule(props.graphKeys, props.graphs, props.unreads.graph); const config = useMemo( () => ({ diff --git a/pkg/interface/src/views/landscape/components/TutorialModal.tsx b/pkg/interface/src/views/landscape/components/TutorialModal.tsx index 350287fc80..aa1c67618d 100644 --- a/pkg/interface/src/views/landscape/components/TutorialModal.tsx +++ b/pkg/interface/src/views/landscape/components/TutorialModal.tsx @@ -1,11 +1,11 @@ -import React, { useState, useEffect, useCallback } from "react"; +import React, { useState, useEffect, useCallback } from 'react'; import _ from 'lodash'; -import { Box, Col, Row, Button, Text, Icon, Action } from "@tlon/indigo-react"; -import { useHistory } from "react-router-dom"; -import { TutorialProgress, tutorialProgress as progress } from "~/types"; +import { Box, Col, Row, Button, Text, Icon } from '@tlon/indigo-react'; +import { useHistory } from 'react-router-dom'; +import { TutorialProgress, tutorialProgress as progress } from '~/types'; -import { Portal } from "~/views/components/Portal"; -import useLocalState, { selectLocalState } from "~/logic/state/local"; +import { Portal } from '~/views/components/Portal'; +import useLocalState, { selectLocalState } from '~/logic/state/local'; import { progressDetails, MODAL_HEIGHT_PX, @@ -14,21 +14,21 @@ import { MODAL_HEIGHT, TUTORIAL_HOST, TUTORIAL_GROUP, - getTrianglePosition, -} from "~/logic/lib/tutorialModal"; -import { getRelativePosition } from "~/logic/lib/relativePosition"; -import { StatelessAsyncButton } from "~/views/components/StatelessAsyncButton"; -import GlobalApi from "~/logic/api/global"; -import {Triangle} from "~/views/components/Triangle"; -import {ModalOverlay} from "~/views/components/ModalOverlay"; + getTrianglePosition +} from '~/logic/lib/tutorialModal'; +import { getRelativePosition } from '~/logic/lib/relativePosition'; +import { StatelessAsyncButton } from '~/views/components/StatelessAsyncButton'; +import GlobalApi from '~/logic/api/global'; +import { Triangle } from '~/views/components/Triangle'; +import { ModalOverlay } from '~/views/components/ModalOverlay'; const localSelector = selectLocalState([ - "tutorialProgress", - "nextTutStep", - "prevTutStep", - "tutorialRef", - "hideTutorial", - "set" + 'tutorialProgress', + 'nextTutStep', + 'prevTutStep', + 'tutorialRef', + 'hideTutorial', + 'set' ]); export function TutorialModal(props: { api: GlobalApi }) { @@ -47,7 +47,7 @@ export function TutorialModal(props: { api: GlobalApi }) { alignX, alignY, offsetX, - offsetY, + offsetY } = progressDetails[tutorialProgress]; const [coords, setCoords] = useState({}); @@ -56,7 +56,7 @@ export function TutorialModal(props: { api: GlobalApi }) { const history = useHistory(); const next = useCallback( () => { - const idx = progress.findIndex((p) => p === tutorialProgress); + const idx = progress.findIndex(p => p === tutorialProgress); const { url } = progressDetails[progress[idx + 1]]; nextTutStep(); history.push(url); @@ -64,7 +64,7 @@ export function TutorialModal(props: { api: GlobalApi }) { [nextTutStep, history, tutorialProgress, setCoords] ); const prev = useCallback(() => { - const idx = progress.findIndex((p) => p === tutorialProgress); + const idx = progress.findIndex(p => p === tutorialProgress); prevTutStep(); history.push(progressDetails[progress[idx - 1]].url); }, [prevTutStep, history, tutorialProgress]); @@ -94,7 +94,6 @@ export function TutorialModal(props: { api: GlobalApi }) { setCoords(withMobile); } else { setCoords({}); - } }, [tutorialRef]); @@ -115,12 +114,12 @@ export function TutorialModal(props: { api: GlobalApi }) { await props.api.groups.leaveGroup(TUTORIAL_HOST, TUTORIAL_GROUP); }, [props.api]); - const progressIdx = progress.findIndex((p) => p === tutorialProgress); + const progressIdx = progress.findIndex(p => p === tutorialProgress); useEffect(() => { if ( - tutorialProgress !== "hidden" && - tutorialProgress !== "done" && + tutorialProgress !== 'hidden' && + tutorialProgress !== 'done' && tutorialRef ) { const interval = setInterval(updatePos, 100); @@ -164,7 +163,7 @@ export function TutorialModal(props: { api: GlobalApi }) { ); } - if (tutorialProgress === "hidden") { + if (tutorialProgress === 'hidden') { return null; } @@ -191,11 +190,9 @@ export function TutorialModal(props: { api: GlobalApi }) { </Col> </ModalOverlay> - ) - + ); } - if(Object.keys(coords).length === 0) { return null; } @@ -208,7 +205,7 @@ export function TutorialModal(props: { api: GlobalApi }) { bg="white" zIndex={50} height={MODAL_HEIGHT_PX} - width={["100%", MODAL_WIDTH_PX]} + width={['100%', MODAL_WIDTH_PX]} borderRadius="2" > <Col @@ -219,9 +216,9 @@ export function TutorialModal(props: { api: GlobalApi }) { borderRadius="2" p="2" bg="lightBlue" - + > - <Triangle + <Triangle {...triPos} position="absolute" size={16} @@ -230,7 +227,7 @@ export function TutorialModal(props: { api: GlobalApi }) { height="0px" width="0px" /> - + <Box right="8px" top="8px" @@ -248,7 +245,7 @@ export function TutorialModal(props: { api: GlobalApi }) { {progressIdx} of {progress.length - 2} </Text> </Col> - + <Text lineHeight="tall">{description}</Text> <Row gapX="2" mt="2" justifyContent="flex-end"> { progressIdx > 1 && ( diff --git a/pkg/interface/src/views/landscape/index.tsx b/pkg/interface/src/views/landscape/index.tsx index b04e3892dc..92e7aeade4 100644 --- a/pkg/interface/src/views/landscape/index.tsx +++ b/pkg/interface/src/views/landscape/index.tsx @@ -1,14 +1,13 @@ -import React, { Component, useEffect, useCallback } from 'react'; +import React, { Component, useEffect, useCallback, ReactElement } from 'react'; import { Route, Switch, RouteComponentProps } from 'react-router-dom'; import Helmet from 'react-helmet'; import './css/custom.css'; -import { PatpNoSig } from '~/types/noun'; +import { PatpNoSig } from '@urbit/api'; import GlobalApi from '~/logic/api/global'; import { StoreState } from '~/logic/store/type'; import { GroupsPane } from './components/GroupsPane'; -import { Workspace } from '~/types'; import { NewGroup } from './components/NewGroup'; import { JoinGroup } from './components/JoinGroup'; @@ -16,7 +15,8 @@ import { cite } from '~/logic/lib/util'; import { Body } from '../components/Body'; import { Box } from '@tlon/indigo-react'; import { Loading } from '../components/Loading'; - +import { Workspace } from '~/types/workspace'; +import GlobalSubscription from '~/logic/subscription/global'; type LandscapeProps = StoreState & { ship: PatpNoSig; @@ -24,7 +24,7 @@ type LandscapeProps = StoreState & { subscription: GlobalSubscription; } -export function DMRedirect(props: LandscapeProps & RouteComponentProps & { ship: string; }) { +export function DMRedirect(props: LandscapeProps & RouteComponentProps & { ship: string; }): ReactElement { const { ship, api, history, graphKeys } = props; const goToGraph = useCallback((graph: string) => { history.push(`/~landscape/messages/resource/chat/ship/~${graph}`); @@ -47,7 +47,6 @@ export function DMRedirect(props: LandscapeProps & RouteComponentProps & { ship: const aud = ship !== window.ship ? [`~${ship}`] : []; const title = `${cite(window.ship)} <-> ${cite(ship)}`; - api.graph.createUnmanagedGraph( `dm--${ship}`, title, @@ -57,22 +56,20 @@ export function DMRedirect(props: LandscapeProps & RouteComponentProps & { ship: ).then(() => { goToGraph(station); }); - }, []); return ( <Loading text="Creating DM" /> ); - } -export default class Landscape extends Component<LandscapeProps, {}> { - componentDidMount() { +export default class Landscape extends Component<LandscapeProps, Record<string, never>> { + componentDidMount(): void { this.props.subscription.startApp('groups'); this.props.subscription.startApp('graph'); } - render() { + render(): ReactElement { const { props } = this; return ( @@ -82,7 +79,7 @@ export default class Landscape extends Component<LandscapeProps, {}> { </Helmet> <Switch> <Route path="/~landscape/ship/:host/:name" - render={routeProps => { + render={(routeProps) => { const { host, name @@ -93,10 +90,11 @@ export default class Landscape extends Component<LandscapeProps, {}> { return ( <GroupsPane workspace={ws} baseUrl={baseUrl} {...props} /> - ) - }}/> + ); + }} + /> <Route path="/~landscape/home" - render={routeProps => { + render={() => { const ws: Workspace = { type: 'home' }; return ( <GroupsPane workspace={ws} baseUrl="/~landscape/home" {...props} /> @@ -104,7 +102,7 @@ export default class Landscape extends Component<LandscapeProps, {}> { }} /> <Route path="/~landscape/messages" - render={routeProps => { + render={() => { const ws: Workspace = { type: 'messages' }; return ( <GroupsPane workspace={ws} baseUrl="/~landscape/messages" {...props} /> @@ -112,7 +110,7 @@ export default class Landscape extends Component<LandscapeProps, {}> { }} /> <Route path="/~landscape/new" - render={routeProps=> { + render={(routeProps) => { return ( <Body> <Box maxWidth="300px"> @@ -128,13 +126,13 @@ export default class Landscape extends Component<LandscapeProps, {}> { }} /> <Route path='/~landscape/dm/:ship?' - render={routeProps => { + render={(routeProps) => { const { ship } = routeProps.match.params; - return <DMRedirect {...routeProps} {...props} ship={ship} /> + return <DMRedirect {...routeProps} {...props} ship={ship} />; }} /> <Route path="/~landscape/join/:ship?/:name?" - render={routeProps=> { + render={(routeProps) => { const { ship, name } = routeProps.match.params; const autojoin = ship && name ? `${ship}/${name}` : null; return ( From 8362f22cd782fc74d5aa569ea0a6871002ad1d78 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Sun, 14 Feb 2021 14:15:43 -0800 Subject: [PATCH 03/27] interface: updated npm packages --- pkg/interface/.eslintrc.js | 187 +--- pkg/interface/package-lock.json | 916 +++++++++-------- pkg/interface/package.json | 7 +- pkg/npm/api/graph/index.ts | 12 +- pkg/npm/api/groups/index.d.ts | 179 +--- pkg/npm/api/groups/index.ts | 5 +- pkg/npm/api/groups/update.d.ts | 180 ++++ pkg/npm/api/groups/view.d.ts | 12 + pkg/npm/api/hark/index.d.ts | 19 +- pkg/npm/api/index.d.ts | 74 +- pkg/npm/api/index.js | 11 +- pkg/npm/api/invite/index.d.ts | 35 +- pkg/npm/api/lib/index.d.ts | 67 ++ pkg/npm/api/metadata/index.d.ts | 32 +- pkg/npm/api/package.json | 7 +- pkg/npm/api/settings/index.d.ts | 55 + pkg/npm/api/settings/index.ts | 0 pkg/npm/eslint-config/index.js | 6 +- pkg/npm/eslint-config/package-lock.json | 1015 ++++++++++++++++++- pkg/npm/eslint-config/package.json | 14 +- pkg/npm/http-api/.github/workflows/main.yml | 42 - pkg/npm/http-api/.vscode/settings.json | 5 - pkg/npm/http-api/LICENSE | 21 - pkg/npm/http-api/package.json | 8 +- 24 files changed, 1896 insertions(+), 1013 deletions(-) create mode 100644 pkg/npm/api/groups/update.d.ts create mode 100644 pkg/npm/api/groups/view.d.ts create mode 100644 pkg/npm/api/lib/index.d.ts create mode 100644 pkg/npm/api/settings/index.d.ts create mode 100644 pkg/npm/api/settings/index.ts delete mode 100644 pkg/npm/http-api/.github/workflows/main.yml delete mode 100644 pkg/npm/http-api/.vscode/settings.json delete mode 100644 pkg/npm/http-api/LICENSE diff --git a/pkg/interface/.eslintrc.js b/pkg/interface/.eslintrc.js index 0f63724ca8..fba1ccabcc 100644 --- a/pkg/interface/.eslintrc.js +++ b/pkg/interface/.eslintrc.js @@ -1,186 +1,3 @@ -const env = { - "browser": true, - "es6": true, - "node": true -}; - -const rules = { - "array-bracket-spacing": ["error", "never"], - "arrow-parens": [ - "error", - "as-needed", - { - "requireForBlockBody": true - } - ], - "arrow-spacing": "error", - "block-spacing": ["error", "always"], - "brace-style": ["error", "1tbs"], - "camelcase": [ - "error", - { - "properties": "never" - } - ], - "comma-dangle": ["error", "never"], - "eol-last": ["error", "always"], - "func-name-matching": "error", - "indent": [ - "off", - 2, - { - "ArrayExpression": "off", - "SwitchCase": 1, - "CallExpression": { - "arguments": "off" - }, - "FunctionDeclaration": { - "parameters": "off" - }, - "FunctionExpression": { - "parameters": "off" - }, - "MemberExpression": "off", - "ObjectExpression": "off", - "ImportDeclaration": "off" - } - ], - "handle-callback-err": "off", - "linebreak-style": ["error", "unix"], - "max-lines": [ - "error", - { - "max": 300, - "skipBlankLines": true, - "skipComments": true - } - ], - "max-lines-per-function": [ - "warn", - { - "skipBlankLines": true, - "skipComments": true - } - ], - "max-statements-per-line": [ - "error", - { - "max": 1 - } - ], - "new-cap": [ - "error", - { - "newIsCap": true, - "capIsNew": false - } - ], - "new-parens": "error", - "no-buffer-constructor": "error", - "no-console": "off", - "no-extra-semi": "off", - "no-fallthrough": "off", - "no-func-assign": "off", - "no-implicit-coercion": "error", - "no-multi-assign": "error", - "no-multiple-empty-lines": [ - "error", - { - "max": 1 - } - ], - "no-nested-ternary": "error", - "no-param-reassign": "off", - "no-return-assign": "error", - "no-return-await": "off", - "no-shadow-restricted-names": "error", - "no-tabs": "error", - "no-trailing-spaces": "error", - "no-unused-vars": [ - "error", - { - "vars": "all", - "args": "none", - "ignoreRestSiblings": false - } - ], - "no-use-before-define": [ - "error", - { - "functions": false, - "classes": false - } - ], - "no-useless-escape": "off", - "no-var": "error", - "nonblock-statement-body-position": ["error", "below"], - "object-curly-spacing": ["error", "always"], - "padded-blocks": ["error", "never"], - "prefer-arrow-callback": "error", - "prefer-const": [ - "error", - { - "destructuring": "all", - "ignoreReadBeforeAssign": true - } - ], - "prefer-template": "off", - "quotes": ["error", "single"], - "semi": ["error", "always"], - "spaced-comment": [ - "error", - "always", - { - "exceptions": ["!"] - } - ], - "space-before-blocks": "error", - "unicode-bom": ["error", "never"], - "valid-jsdoc": "error", - "wrap-iife": ["error", "inside"], - "react/jsx-closing-bracket-location": 1, - "react/jsx-tag-spacing": 1, - "react/jsx-max-props-per-line": ["error", { "maximum": 2, "when": "multiline" }], - "react/prop-types": 0 -}; - module.exports = { - "env": env, - "extends": [ - "plugin:react/recommended", - "eslint:recommended", - ], - "settings": { - "react": { - "version": "^16.5.2" - } - }, - "parser": "babel-eslint", - "parserOptions": { - "ecmaVersion": 10, - "requireConfigFile": false, - "sourceType": "module" - }, - "root": true, - "rules": rules, - "overrides": [ - { - "files": ["**/*.ts", "**/*.tsx"], - "env": env, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaFeatures": { "jsx": true }, - "ecmaVersion": 10, - "requireConfigFile": false, - "sourceType": "module" - }, - "plugins": ["@typescript-eslint"], - "rules": rules - } - ] -}; + extends: "@urbit" +}; \ No newline at end of file diff --git a/pkg/interface/package-lock.json b/pkg/interface/package-lock.json index d4a06d132a..a562d5080b 100644 --- a/pkg/interface/package-lock.json +++ b/pkg/interface/package-lock.json @@ -1165,6 +1165,67 @@ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" }, + "@eslint/eslintrc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, "@reach/auto-id": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@reach/auto-id/-/auto-id-0.10.5.tgz", @@ -1403,12 +1464,6 @@ "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", "dev": true }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -1596,14 +1651,16 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz", - "integrity": "sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.0.tgz", + "integrity": "sha512-DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "3.10.1", + "@typescript-eslint/experimental-utils": "4.15.0", + "@typescript-eslint/scope-manager": "4.15.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" @@ -1621,53 +1678,70 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", - "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.0.tgz", + "integrity": "sha512-V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", + "@typescript-eslint/scope-manager": "4.15.0", + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/typescript-estree": "4.15.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, - "@typescript-eslint/parser": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz", - "integrity": "sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==", + "@typescript-eslint/scope-manager": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz", + "integrity": "sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==", "dev": true, "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.10.1", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/visitor-keys": "4.15.0" } }, "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", - "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz", + "integrity": "sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", - "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz", + "integrity": "sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==", "dev": true, "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/visitor-keys": "4.15.0", "debug": "^4.1.1", - "glob": "^7.1.6", + "globby": "^11.0.1", "is-glob": "^4.0.1", - "lodash": "^4.17.15", "semver": "^7.3.2", "tsutils": "^3.17.1" }, "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -1680,14 +1754,64 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", - "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz", + "integrity": "sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "4.15.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } } }, + "@urbit/api": { + "version": "file:../npm/api", + "requires": { + "@babel/runtime": "^7.12.5", + "@urbit/eslint-config": "^1.0.0", + "big-integer": "^1.6.48", + "lodash": "^4.17.20" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@urbit/eslint-config": { + "version": "1.0.0" + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } + }, + "@urbit/eslint-config": { + "version": "file:../npm/eslint-config", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -1925,23 +2049,6 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -2103,9 +2210,9 @@ "dev": true }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -2804,12 +2911,6 @@ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", @@ -2906,21 +3007,6 @@ "del": "^4.1.1" } }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -3583,6 +3669,15 @@ "randombytes": "^2.0.0" } }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -3609,9 +3704,9 @@ } }, "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { "esutils": "^2.0.2" @@ -3839,6 +3934,23 @@ } } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + } + } + }, "entities": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", @@ -3904,80 +4016,99 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", + "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "file-entry-cache": "^6.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash": "^4.17.20", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "color-convert": "^2.0.1" } }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", @@ -3987,40 +4118,43 @@ "type-fest": "^0.8.1" } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "lru-cache": "^6.0.0" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "isexe": "^2.0.0" + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -4042,17 +4176,6 @@ "prop-types": "^15.7.2", "resolve": "^1.18.1", "string.prototype.matchall": "^4.0.2" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - } } }, "eslint-scope": { @@ -4081,14 +4204,14 @@ "dev": true }, "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" } }, "esprima": { @@ -4098,9 +4221,9 @@ "dev": true }, "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" @@ -4396,17 +4519,6 @@ } } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -4483,6 +4595,32 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4494,6 +4632,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", + "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "faye-websocket": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", @@ -4509,22 +4656,13 @@ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-loader": { @@ -4657,20 +4795,19 @@ } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" }, "dependencies": { "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" @@ -4679,9 +4816,9 @@ } }, "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "flush-write-stream": { @@ -5375,9 +5512,9 @@ "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, "immer": { @@ -5488,87 +5625,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -5580,33 +5636,25 @@ } }, "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "es-abstract": "^1.17.0-next.1", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", - "side-channel": "^1.0.2" + "side-channel": "^1.0.4" }, "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { - "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "has-symbols": "^1.0.1" } } } @@ -5979,13 +6027,13 @@ } }, "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, "loader-runner": { @@ -6181,6 +6229,12 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -6329,12 +6383,6 @@ "mime-db": "1.45.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -6486,12 +6534,6 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", @@ -6861,15 +6903,6 @@ "wrappy": "1" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -6880,17 +6913,17 @@ } }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, "original": { @@ -6908,12 +6941,6 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -7132,6 +7159,12 @@ } } }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "pbkdf2": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", @@ -7273,9 +7306,9 @@ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "pretty-error": { @@ -7418,6 +7451,12 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", + "dev": true + }, "ramda": { "version": "0.27.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", @@ -7920,6 +7959,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -8010,16 +8055,6 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -8032,6 +8067,12 @@ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -8051,11 +8092,14 @@ "inherits": "^2.0.1" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } }, "run-queue": { "version": "1.0.3", @@ -8066,23 +8110,6 @@ "aproba": "^1.1.1" } }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -8405,20 +8432,38 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true } } @@ -9017,39 +9062,34 @@ "integrity": "sha512-H1XoH1URcBOa/rZZWxLxHCtOdVUEev+9vo5YdYhC9tCY4wnybX+VQrCYuy9ubkg69fCBxCONJOSLGfw0DWMffQ==" }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" }, "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "ajv": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.1.0.tgz", + "integrity": "sha512-svS9uILze/cXbH0z2myCK2Brqprx/+JJYK5pHicT/GQiBfzzhUVAIT6MwqJg8y4xV/zoGsUeuPuwtoiKSGE15g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true } } }, @@ -9184,12 +9224,6 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -9251,15 +9285,6 @@ "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -9338,9 +9363,9 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "tsutils": { - "version": "3.19.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz", - "integrity": "sha512-GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==", + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", + "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", "dev": true, "requires": { "tslib": "^1.8.1" @@ -9361,12 +9386,12 @@ "dev": true }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-fest": { @@ -10458,15 +10483,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", diff --git a/pkg/interface/package.json b/pkg/interface/package.json index a65578c438..d4d35e33c0 100644 --- a/pkg/interface/package.json +++ b/pkg/interface/package.json @@ -12,6 +12,7 @@ "@tlon/indigo-light": "^1.0.6", "@tlon/indigo-react": "1.2.17", "@tlon/sigil-js": "^1.4.3", + "@urbit/api": "file:../npm/api", "aws-sdk": "^2.830.0", "big-integer": "^1.6.48", "classnames": "^2.2.6", @@ -63,15 +64,15 @@ "@types/styled-components": "^5.1.7", "@types/styled-system": "^5.1.10", "@types/yup": "^0.29.11", - "@typescript-eslint/eslint-plugin": "^3.10.1", - "@typescript-eslint/parser": "^3.10.1", + "@typescript-eslint/eslint-plugin": "^4.15.0", + "@urbit/eslint-config": "file:../npm/eslint-config", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.2", "babel-plugin-lodash": "^3.3.4", "babel-plugin-root-import": "^6.6.0", "clean-webpack-plugin": "^3.0.0", "cross-env": "^7.0.3", - "eslint": "^6.8.0", + "eslint": "^7.19.0", "eslint-plugin-react": "^7.22.0", "file-loader": "^6.2.0", "html-webpack-plugin": "^4.5.1", diff --git a/pkg/npm/api/graph/index.ts b/pkg/npm/api/graph/index.ts index cbadbb3f6b..a12edb6510 100644 --- a/pkg/npm/api/graph/index.ts +++ b/pkg/npm/api/graph/index.ts @@ -80,25 +80,31 @@ function moduleToMark(mod: string): string | undefined { return undefined; } -export const storeAction = <T>(data: T): Poke<T> => ({ +const storeAction = <T>(data: T): Poke<T> => ({ app: 'graph-store', mark: 'graph-update', json: data }); -export const viewAction = <T>(threadName: string, action: T): Thread<T> => ({ +export { storeAction as graphStoreAction }; + +const viewAction = <T>(threadName: string, action: T): Thread<T> => ({ inputMark: 'graph-view-action', outputMark: 'json', threadName, body: action }); -export const hookAction = <T>(data: T): Poke<T> => ({ +export { viewAction as graphViewAction }; + +const hookAction = <T>(data: T): Poke<T> => ({ app: 'graph-push-hook', mark: 'graph-update', json: data }); +export { hookAction as graphHookAction }; + export const createManagedGraph = ( ship: PatpNoSig, diff --git a/pkg/npm/api/groups/index.d.ts b/pkg/npm/api/groups/index.d.ts index f4c0486dea..76567715c9 100644 --- a/pkg/npm/api/groups/index.d.ts +++ b/pkg/npm/api/groups/index.d.ts @@ -1,177 +1,2 @@ -import { PatpNoSig, Path, Jug, ShipRank, Enc } from '..'; - -export interface RoleTag { - tag: 'admin' | 'moderator' | 'janitor'; -} - -export interface AppTag { - app: string; - tag: string; -} - -export type Tag = AppTag | RoleTag; - -export interface InvitePolicy { - invite: { - pending: Set<PatpNoSig>; - }; -} - -export interface OpenPolicy { - open: { - banned: Set<PatpNoSig>; - banRanks: Set<ShipRank>; - }; -} - -export interface Resource { - name: string; - ship: PatpNoSig; // TODO different declaration than in metadata? -} - -export type OpenPolicyDiff = - | AllowRanksDiff - | BanRanksDiff - | AllowShipsDiff - | BanShipsDiff; - -export interface AllowRanksDiff { - allowRanks: ShipRank[]; -} - -export interface BanRanksDiff { - banRanks: ShipRank[]; -} - -export interface AllowShipsDiff { - allowShips: PatpNoSig[]; -} - -export interface BanShipsDiff { - banShips: PatpNoSig[]; -} - -export type InvitePolicyDiff = AddInvitesDiff | RemoveInvitesDiff; - -export interface AddInvitesDiff { - addInvites: PatpNoSig[]; -} - -export interface RemoveInvitesDiff { - removeInvites: PatpNoSig[]; -} - -export interface ReplacePolicyDiff { - replace: GroupPolicy; -} - -export type GroupPolicyDiff = - | { open: OpenPolicyDiff } - | { invite: InvitePolicyDiff } - | ReplacePolicyDiff; - -export type GroupPolicy = OpenPolicy | InvitePolicy; - -export interface TaggedShips { - [tag: string]: Set<PatpNoSig>; -} - -export interface Tags { - role: TaggedShips; - [app: string]: TaggedShips; -} - -export interface Group { - members: Set<PatpNoSig>; - tags: Tags; - policy: GroupPolicy; - hidden: boolean; -} - -export type Groups = { - [p in Path]: Group; -}; - -export interface GroupUpdateInitial { - initial: Enc<Groups>; -} - -export interface GroupUpdateAddGroup { - addGroup: { - resource: Resource; - policy: Enc<GroupPolicy>; - hidden: boolean; - }; -} - -export interface GroupUpdateAddMembers { - addMembers: { - ships: PatpNoSig[]; - resource: Resource; - }; -} - -export interface GroupUpdateRemoveMembers { - removeMembers: { - ships: PatpNoSig[]; - resource: Resource; - }; -} - -export interface GroupUpdateAddTag { - addTag: { - tag: Tag; - resource: Resource; - ships: PatpNoSig[]; - }; -} - -export interface GroupUpdateRemoveTag { - removeTag: { - tag: Tag; - resource: Resource; - ships: PatpNoSig[]; - }; -} - -export interface GroupUpdateChangePolicy { - changePolicy: { resource: Resource; diff: GroupPolicyDiff }; -} - -export interface GroupUpdateRemoveGroup { - removeGroup: { - resource: Resource; - }; -} - -export interface GroupUpdateExpose { - expose: { - resource: Resource; - }; -} - -export interface GroupUpdateInitialGroup { - initialGroup: { - resource: Resource; - group: Enc<Group>; - }; -} - -export type GroupUpdate = - | GroupUpdateInitial - | GroupUpdateAddGroup - | GroupUpdateAddMembers - | GroupUpdateRemoveMembers - | GroupUpdateAddTag - | GroupUpdateRemoveTag - | GroupUpdateChangePolicy - | GroupUpdateRemoveGroup - | GroupUpdateExpose - | GroupUpdateInitialGroup; - -export type GroupAction = Omit<GroupUpdate, 'initialGroup' | 'initial'>; - -export const groupBunts = { - group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), - policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) -}; +export * from './update.d'; +export * from './view.d'; \ No newline at end of file diff --git a/pkg/npm/api/groups/index.ts b/pkg/npm/api/groups/index.ts index 03ea4e2894..8679c6d7e2 100644 --- a/pkg/npm/api/groups/index.ts +++ b/pkg/npm/api/groups/index.ts @@ -87,7 +87,7 @@ export const changePolicy = ( } }); -const roleTags = ['janitor', 'moderator', 'admin']; +export const roleTags = ['janitor', 'moderator', 'admin']; // TODO make this type better? export function roleForShip(group: Group, ship: PatpNoSig): string | undefined { @@ -106,3 +106,6 @@ export function makeResource(ship: string, name:string) { return { ship, name }; } +export const joinError = ['no-perms', 'strange'] as const; +export const joinResult = ['done', ...joinError] as const; +export const joinProgress = ['start', 'added', ...joinResult] as const; \ No newline at end of file diff --git a/pkg/npm/api/groups/update.d.ts b/pkg/npm/api/groups/update.d.ts new file mode 100644 index 0000000000..7788fdd83b --- /dev/null +++ b/pkg/npm/api/groups/update.d.ts @@ -0,0 +1,180 @@ +import { PatpNoSig, Path, Jug, ShipRank, Enc } from '..'; +import { roleTags } from './index'; + +export type RoleTags = typeof roleTags[number]; +interface RoleTag { + tag: 'admin' | 'moderator' | 'janitor'; +} + +interface AppTag { + app: string; + resource: string; + tag: string; +} + +export type Tag = AppTag | RoleTag; + +export interface InvitePolicy { + invite: { + pending: Set<PatpNoSig>; + }; +} + +export interface OpenPolicy { + open: { + banned: Set<PatpNoSig>; + banRanks: Set<ShipRank>; + }; +} + +export interface Resource { + name: string; + ship: PatpNoSig; +} + +export type OpenPolicyDiff = + | AllowRanksDiff + | BanRanksDiff + | AllowShipsDiff + | BanShipsDiff; + +interface AllowRanksDiff { + allowRanks: ShipRank[]; +} + +interface BanRanksDiff { + banRanks: ShipRank[]; +} + +interface AllowShipsDiff { + allowShips: PatpNoSig[]; +} + +interface BanShipsDiff { + banShips: PatpNoSig[]; +} + +export type InvitePolicyDiff = AddInvitesDiff | RemoveInvitesDiff; + +interface AddInvitesDiff { + addInvites: PatpNoSig[]; +} + +interface RemoveInvitesDiff { + removeInvites: PatpNoSig[]; +} + +interface ReplacePolicyDiff { + replace: GroupPolicy; +} + +export type GroupPolicyDiff = + | { open: OpenPolicyDiff } + | { invite: InvitePolicyDiff } + | ReplacePolicyDiff; + +export type GroupPolicy = OpenPolicy | InvitePolicy; + +interface TaggedShips { + [tag: string]: Set<PatpNoSig>; +} + +export interface Tags { + role: TaggedShips; + [app: string]: TaggedShips; +} + +export interface Group { + members: Set<PatpNoSig>; + tags: Tags; + policy: GroupPolicy; + hidden: boolean; +} + +export type Groups = { + [p in Path]: Group; +}; + +interface GroupUpdateInitial { + initial: Enc<Groups>; +} + +interface GroupUpdateAddGroup { + addGroup: { + resource: Resource; + policy: Enc<GroupPolicy>; + hidden: boolean; + }; +} + +interface GroupUpdateAddMembers { + addMembers: { + ships: PatpNoSig[]; + resource: Resource; + }; +} + +interface GroupUpdateRemoveMembers { + removeMembers: { + ships: PatpNoSig[]; + resource: Resource; + }; +} + +interface GroupUpdateAddTag { + addTag: { + tag: Tag; + resource: Resource; + ships: PatpNoSig[]; + }; +} + +interface GroupUpdateRemoveTag { + removeTag: { + tag: Tag; + resource: Resource; + ships: PatpNoSig; + }; +} + +interface GroupUpdateChangePolicy { + changePolicy: { resource: Resource; diff: GroupPolicyDiff }; +} + +interface GroupUpdateRemoveGroup { + removeGroup: { + resource: Resource; + }; +} + +interface GroupUpdateExpose { + expose: { + resource: Resource; + }; +} + +interface GroupUpdateInitialGroup { + initialGroup: { + resource: Resource; + group: Enc<Group>; + }; +} + +export type GroupUpdate = + | GroupUpdateInitial + | GroupUpdateAddGroup + | GroupUpdateAddMembers + | GroupUpdateRemoveMembers + | GroupUpdateAddTag + | GroupUpdateRemoveTag + | GroupUpdateChangePolicy + | GroupUpdateRemoveGroup + | GroupUpdateExpose + | GroupUpdateInitialGroup; + +export type GroupAction = Omit<GroupUpdate, 'initialGroup' | 'initial'>; + +export const groupBunts = { + group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), + policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) +}; diff --git a/pkg/npm/api/groups/view.d.ts b/pkg/npm/api/groups/view.d.ts new file mode 100644 index 0000000000..e85e5adb51 --- /dev/null +++ b/pkg/npm/api/groups/view.d.ts @@ -0,0 +1,12 @@ +import { joinError, joinProgress, joinResult } from "."; + +export type JoinError = typeof joinError[number]; + +export type JoinResult = typeof joinResult[number]; + + +export type JoinProgress = typeof joinProgress[number]; + +export interface JoinRequests { + [rid: string]: JoinProgress; +} diff --git a/pkg/npm/api/hark/index.d.ts b/pkg/npm/api/hark/index.d.ts index 7759d9bae7..1aee7bab7f 100644 --- a/pkg/npm/api/hark/index.d.ts +++ b/pkg/npm/api/hark/index.d.ts @@ -1,6 +1,6 @@ -import { Content, Post } from "../graph/index.d"; +import { Post } from "../graph/index.d"; import { GroupUpdate } from "../groups/index.d"; -import BigIntOrderedMap from "../lib/BigIntOrderedMap"; +import { BigIntOrderedMap } from "~/logic/lib/BigIntOrderedMap"; export type GraphNotifDescription = "link" | "comment" | "note" | "mention"; @@ -23,27 +23,17 @@ export interface GroupNotifIndex { description: string; } -export interface ChatNotifIndex { - chat: string; - mention: boolean; -} - export type NotifIndex = | { graph: GraphNotifIndex } - | { group: GroupNotifIndex } - | { chat: ChatNotifIndex }; + | { group: GroupNotifIndex }; export type GraphNotificationContents = Post[]; export type GroupNotificationContents = GroupUpdate[]; -export type ChatNotificationContents = Content[]; - export type NotificationContents = | { graph: GraphNotificationContents } - | { group: GroupNotificationContents } - | { chat: ChatNotificationContents }; - + | { group: GroupNotificationContents }; export interface Notification { read: boolean; time: number; @@ -66,7 +56,6 @@ export interface NotificationGraphConfig { } export interface Unreads { - chat: Record<string, UnreadStats>; graph: Record<string, Record<string, UnreadStats>>; group: Record<string, UnreadStats>; } diff --git a/pkg/npm/api/index.d.ts b/pkg/npm/api/index.d.ts index d92065375a..eecb669f3a 100644 --- a/pkg/npm/api/index.d.ts +++ b/pkg/npm/api/index.d.ts @@ -1,67 +1,7 @@ -/** - * Martian embassy - */ - -// an urbit style path rendered as string -export type Path = string; - -// patp including leading sig -export type Patp = string; - -// patp excluding leading sig -export type PatpNoSig = string; - -// @uvH encoded string -export type Serial = string; - -// jug from hoon -export type Jug<K,V> = Map<K,Set<V>>; - -// name of app -export type AppName = 'chat' | 'link' | 'contacts' | 'publish' | 'graph'; - -export function getTagFromFrond<O>(frond: O): keyof O { - const tags = Object.keys(frond) as Array<keyof O>; - const tag = tags[0]; - if(!tag) { - throw new Error("bad frond"); - } - return tag; -} - -export type ShipRank = 'czar' | 'king' | 'duke' | 'earl' | 'pawn'; - -export type Action = 'poke' | 'subscribe' | 'ack' | 'unsubscribe' | 'delete'; - - -export type SetElement<S> = S extends Set<(infer T)> ? T : never; -export type MapKey<M> = M extends Map<(infer K), any> ? K : never; -export type MapValue<M> = M extends Map<any, (infer V)> ? V : never; - -/** - * Turns sets into arrays and maps into objects so we can send them over the wire - */ -export type Enc<S> = - S extends Set<any> ? - Enc<SetElement<S>>[] : - S extends Map<string, any> ? - { [s: string]: Enc<MapValue<S>> } : - S extends object ? - { [K in keyof S]: Enc<S[K]> } : - S; - -export type Mark = string; - -export interface Poke<Action> { - ship?: string; // This should be handled by the http library, but is part of the spec - app: string; - mark: Mark; - json: Action; -} - -export interface Thread<Action> { - inputMark: string; - outputMark: string; - threadName: string; - body: Action; -} \ No newline at end of file +export * from './contacts/index.d' +export * from './graph/index.d'; +export * from './groups/index.d'; +export * from './hark/index.d'; +export * from './invite/index.d'; +export * from './lib/index.d'; +export * from './metadata/index.d'; \ No newline at end of file diff --git a/pkg/npm/api/index.js b/pkg/npm/api/index.js index b8ddcbc8a2..0c6904283e 100644 --- a/pkg/npm/api/index.js +++ b/pkg/npm/api/index.js @@ -2,4 +2,13 @@ import BigIntOrderedMap from './lib/BigIntOrderedMap'; export { BigIntOrderedMap -}; \ No newline at end of file +}; + +export * from './contacts'; +export * from './graph'; +export * from './groups'; +export * from './hark'; +export * from './invite'; +export * from './metadata'; +export * from './settings'; +export * from './index.d'; \ No newline at end of file diff --git a/pkg/npm/api/invite/index.d.ts b/pkg/npm/api/invite/index.d.ts index 91b986aa5b..01f080ef5f 100644 --- a/pkg/npm/api/invite/index.d.ts +++ b/pkg/npm/api/invite/index.d.ts @@ -1,4 +1,5 @@ import { Serial, PatpNoSig, Path } from '..'; +import { Resource } from '../groups'; export type InviteUpdate = InviteUpdateInitial @@ -8,23 +9,24 @@ export type InviteUpdate = | InviteUpdateAccepted | InviteUpdateDecline; -export interface InviteUpdateInitial { + +interface InviteUpdateInitial { initial: Invites; } -export interface InviteUpdateCreate { +interface InviteUpdateCreate { create: { path: Path; }; } -export interface InviteUpdateDelete { +interface InviteUpdateDelete { delete: { path: Path; }; } -export interface InviteUpdateInvite { +interface InviteUpdateInvite { invite: { path: Path; uid: Serial; @@ -32,39 +34,20 @@ export interface InviteUpdateInvite { }; } -export interface InviteUpdateAccepted { +interface InviteUpdateAccepted { accepted: { path: Path; uid: Serial; }; } -export interface InviteUpdateDecline { +interface InviteUpdateDecline { decline: { path: Path; uid: Serial; }; } -export type InviteAction = - InviteActionAccept -| InviteActionDecline; - -export interface InviteActionAccept { - accept: { - term: string, - uid: Serial - } -} - -export interface InviteActionDecline { - decline: { - term: string, - uid: Serial - } -} - - // actual datastructures @@ -78,8 +61,8 @@ export type AppInvites = { export interface Invite { app: string; - path: Path; recipient: PatpNoSig; + resource: Resource; ship: PatpNoSig; text: string; } diff --git a/pkg/npm/api/lib/index.d.ts b/pkg/npm/api/lib/index.d.ts new file mode 100644 index 0000000000..d92065375a --- /dev/null +++ b/pkg/npm/api/lib/index.d.ts @@ -0,0 +1,67 @@ +/** + * Martian embassy + */ + +// an urbit style path rendered as string +export type Path = string; + +// patp including leading sig +export type Patp = string; + +// patp excluding leading sig +export type PatpNoSig = string; + +// @uvH encoded string +export type Serial = string; + +// jug from hoon +export type Jug<K,V> = Map<K,Set<V>>; + +// name of app +export type AppName = 'chat' | 'link' | 'contacts' | 'publish' | 'graph'; + +export function getTagFromFrond<O>(frond: O): keyof O { + const tags = Object.keys(frond) as Array<keyof O>; + const tag = tags[0]; + if(!tag) { + throw new Error("bad frond"); + } + return tag; +} + +export type ShipRank = 'czar' | 'king' | 'duke' | 'earl' | 'pawn'; + +export type Action = 'poke' | 'subscribe' | 'ack' | 'unsubscribe' | 'delete'; + + +export type SetElement<S> = S extends Set<(infer T)> ? T : never; +export type MapKey<M> = M extends Map<(infer K), any> ? K : never; +export type MapValue<M> = M extends Map<any, (infer V)> ? V : never; + +/** + * Turns sets into arrays and maps into objects so we can send them over the wire + */ +export type Enc<S> = + S extends Set<any> ? + Enc<SetElement<S>>[] : + S extends Map<string, any> ? + { [s: string]: Enc<MapValue<S>> } : + S extends object ? + { [K in keyof S]: Enc<S[K]> } : + S; + +export type Mark = string; + +export interface Poke<Action> { + ship?: string; // This should be handled by the http library, but is part of the spec + app: string; + mark: Mark; + json: Action; +} + +export interface Thread<Action> { + inputMark: string; + outputMark: string; + threadName: string; + body: Action; +} \ No newline at end of file diff --git a/pkg/npm/api/metadata/index.d.ts b/pkg/npm/api/metadata/index.d.ts index 7fccfb979e..fca5f1e7bc 100644 --- a/pkg/npm/api/metadata/index.d.ts +++ b/pkg/npm/api/metadata/index.d.ts @@ -1,47 +1,54 @@ import { AppName, Path, Patp } from '..'; - export type MetadataUpdate = MetadataUpdateInitial | MetadataUpdateAdd | MetadataUpdateUpdate | MetadataUpdateRemove; -export interface MetadataUpdateInitial { +interface MetadataUpdateInitial { associations: ResourceAssociations; } -export type ResourceAssociations = { +type ResourceAssociations = { [p in Path]: Association; } -export type MetadataUpdateAdd = { +type MetadataUpdateAdd = { add: Association; } -export type MetadataUpdateUpdate = { +type MetadataUpdateUpdate = { update: Association; } -export type MetadataUpdateRemove = { +type MetadataUpdateRemove = { remove: Resource & { - 'group-path': Path; + group: Path; } } +export interface MetadataUpdatePreview { + group: string; + channels: Associations; + "channel-count": number; + members: number; + metadata: Metadata; +} + export type Associations = Record<AppName, AppAssociations>; export type AppAssociations = { [p in Path]: Association; } -export interface Resource { - 'app-path': Path; +interface Resource { + resource: Path; 'app-name': AppName; } export type Association = Resource & { - 'group-path': Path; + group: Path; metadata: Metadata; }; @@ -52,4 +59,9 @@ export interface Metadata { description: string; title: string; module: string; + picture: string; + preview: boolean; + vip: PermVariation; } + +export type PermVariation = '' | 'reader-comments' | 'member-metadata'; diff --git a/pkg/npm/api/package.json b/pkg/npm/api/package.json index 368c1d2e5e..e9e9eefe44 100644 --- a/pkg/npm/api/package.json +++ b/pkg/npm/api/package.json @@ -2,12 +2,17 @@ "name": "@urbit/api", "version": "1.0.0", "description": "", + "repository" : { + "type" : "git", + "url": "ssh://git@github.com/urbit/urbit.git", + "directory": "pkg/npm/api" + }, "main": "index.js", "types": "index.d.ts", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "Tyler Brown Cifu Shuster", + "author": "", "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", diff --git a/pkg/npm/api/settings/index.d.ts b/pkg/npm/api/settings/index.d.ts new file mode 100644 index 0000000000..f0f50df491 --- /dev/null +++ b/pkg/npm/api/settings/index.d.ts @@ -0,0 +1,55 @@ +export type Key = string; +export type Value = string | boolean | number; +export type Bucket = Map<string, Value>; +export type Settings = Map<string, Bucket>; + +interface PutBucket { + "put-bucket": { + "bucket-key": Key; + "bucket": Bucket; + }; +} + +interface DelBucket { + "del-bucket": { + "bucket-key": Key; + }; +} + +interface PutEntry { + "put-entry": { + "bucket-key": Key; + "entry-key": Key; + "value": Value; + }; +} + +interface DelEntry { + "del-entry": { + "bucket-key": Key; + "entry-key": Key; + }; +} + +interface AllData { + "all": Settings; +} + +interface BucketData { + "bucket": Bucket; +} + +interface EntryData { + "entry": Value; +} + +export type SettingsUpdate = + | PutBucket + | DelBucket + | PutEntry + | DelEntry; + +export type SettingsData = + | AllData + | BucketData + | EntryData; diff --git a/pkg/npm/api/settings/index.ts b/pkg/npm/api/settings/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pkg/npm/eslint-config/index.js b/pkg/npm/eslint-config/index.js index 0f63724ca8..b94e161dbf 100644 --- a/pkg/npm/eslint-config/index.js +++ b/pkg/npm/eslint-config/index.js @@ -96,7 +96,8 @@ const rules = { "no-shadow-restricted-names": "error", "no-tabs": "error", "no-trailing-spaces": "error", - "no-unused-vars": [ + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ "error", { "vars": "all", @@ -104,7 +105,8 @@ const rules = { "ignoreRestSiblings": false } ], - "no-use-before-define": [ + "no-use-before-define": "off", + "@typescript-eslint/no-use-before-define": [ "error", { "functions": false, diff --git a/pkg/npm/eslint-config/package-lock.json b/pkg/npm/eslint-config/package-lock.json index 0fe4c446f9..49230650eb 100644 --- a/pkg/npm/eslint-config/package-lock.json +++ b/pkg/npm/eslint-config/package-lock.json @@ -1,5 +1,1018 @@ { "name": "@urbit/eslint-config", "version": "1.0.0", - "lockfileVersion": 1 + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.12.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", + "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", + "dev": true + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.0.tgz", + "integrity": "sha512-DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.15.0", + "@typescript-eslint/scope-manager": "4.15.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.0.tgz", + "integrity": "sha512-V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.15.0", + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/typescript-estree": "4.15.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.0.tgz", + "integrity": "sha512-L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.15.0", + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/typescript-estree": "4.15.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz", + "integrity": "sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/visitor-keys": "4.15.0" + } + }, + "@typescript-eslint/types": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz", + "integrity": "sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz", + "integrity": "sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.15.0", + "@typescript-eslint/visitor-keys": "4.15.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz", + "integrity": "sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.15.0", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + } + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-includes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz", + "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.18.1", + "string.prototype.matchall": "^4.0.2" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fastq": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", + "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz", + "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", + "dev": true + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "string.prototype.matchall": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", + "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", + "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "typescript": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", + "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } } diff --git a/pkg/npm/eslint-config/package.json b/pkg/npm/eslint-config/package.json index 4df8fac798..1036e8ff1f 100644 --- a/pkg/npm/eslint-config/package.json +++ b/pkg/npm/eslint-config/package.json @@ -2,13 +2,25 @@ "name": "@urbit/eslint-config", "version": "1.0.0", "description": "", + "repository": { + "type": "git", + "url": "ssh://git@github.com/urbit/urbit.git", + "directory": "pkg/npm/eslint-config" + }, "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "author": "Tyler Brown Cifu Shuster", + "author": "", "license": "MIT", "peerDependencies": { "eslint": ">= 3" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^4.15.0", + "@typescript-eslint/parser": "^4.15.0", + "babel-eslint": "^10.1.0", + "eslint-plugin-react": "^7.22.0", + "typescript": "^4.1.5" } } diff --git a/pkg/npm/http-api/.github/workflows/main.yml b/pkg/npm/http-api/.github/workflows/main.yml deleted file mode 100644 index 11023c28f5..0000000000 --- a/pkg/npm/http-api/.github/workflows/main.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: CI -on: [push] -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Begin CI... - uses: actions/checkout@v2 - - - name: Use Node 12 - uses: actions/setup-node@v1 - with: - node-version: 12.x - - - name: Use cached node_modules - uses: actions/cache@v1 - with: - path: node_modules - key: nodeModules-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - nodeModules- - - - name: Install dependencies - run: yarn install --frozen-lockfile - env: - CI: true - - - name: Lint - run: yarn lint - env: - CI: true - - - name: Test - run: yarn test --ci --coverage --maxWorkers=2 - env: - CI: true - - - name: Build - run: yarn build - env: - CI: true diff --git a/pkg/npm/http-api/.vscode/settings.json b/pkg/npm/http-api/.vscode/settings.json deleted file mode 100644 index cd44658026..0000000000 --- a/pkg/npm/http-api/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.watcherExclude": { - "**/node_modules/**": false - } -} \ No newline at end of file diff --git a/pkg/npm/http-api/LICENSE b/pkg/npm/http-api/LICENSE deleted file mode 100644 index a079e905ad..0000000000 --- a/pkg/npm/http-api/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Tyler Brown Cifu Shuster - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/pkg/npm/http-api/package.json b/pkg/npm/http-api/package.json index 3d963dd76e..eb7ac9cd32 100644 --- a/pkg/npm/http-api/package.json +++ b/pkg/npm/http-api/package.json @@ -3,7 +3,11 @@ "version": "1.1.0", "license": "MIT", "description": "Library to interact with an Urbit ship over HTTP", - "repository": "github:tylershuster/urbit", + "repository" : { + "type" : "git", + "url": "ssh://git@github.com/urbit/urbit.git", + "directory": "pkg/npm/http-api" + }, "main": "dist/cjs/index.js", "module": "dist/esm/index.js", "browser": "dist/esm/index.js", @@ -27,7 +31,7 @@ "singleQuote": true, "trailingComma": "es5" }, - "author": "Tyler Brown Cifu Shuster", + "author": "", "devDependencies": { "@babel/core": "^7.12.3", "@babel/plugin-proposal-class-properties": "^7.12.1", From 7b48d3d3e15e25c23e3a46d4db98f9445f21aac4 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Sun, 14 Feb 2021 14:18:32 -0800 Subject: [PATCH 04/27] interface: ignore plain js files when linting --- pkg/interface/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/interface/package.json b/pkg/interface/package.json index d4d35e33c0..bf58224c49 100644 --- a/pkg/interface/package.json +++ b/pkg/interface/package.json @@ -86,7 +86,7 @@ "webpack-dev-server": "^3.11.2" }, "scripts": { - "lint": "eslint ./src/**/*.{js,ts,tsx}", + "lint": "eslint ./src/**/*.{ts,tsx}", "lint-file": "eslint", "tsc": "tsc", "tsc:watch": "tsc --watch", From c272cdfff86ebe2fde6984e01a49325cf481e6da Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Mon, 15 Feb 2021 16:00:22 -0500 Subject: [PATCH 05/27] landscape: sets ModalButton label to nowrap Fixes urbit/landscape#435 --- .../apps/launch/components/ModalButton.tsx | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx index eea2d3b6e7..bb9618c8ae 100644 --- a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx +++ b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx @@ -1,38 +1,33 @@ -import React from "react" -import { Box, Button, Icon, Text } from "@tlon/indigo-react" -import {useModal} from "~/logic/lib/useModal"; +import React from 'react'; +import { Box, Button, Icon, Text } from '@tlon/indigo-react'; +import { useModal } from '~/logic/lib/useModal'; const ModalButton = (props) => { - const { - children, - icon, - text, - bg, - color, - ...rest - } = props; + const { children, icon, text, bg, color, ...rest } = props; const { modal, showModal } = useModal({ modal: props.children }); - return ( <> {modal} <Button onClick={showModal} - display="flex" - alignItems="center" - cursor="pointer" + display='flex' + alignItems='center' + cursor='pointer' bg={bg} p={2} borderRadius={2} - boxShadow="0 0 0px 1px inset" - color="scales.black20" + boxShadow='0 0 0px 1px inset' + color='scales.black20' {...rest} > - <Icon icon={props.icon} mr={2} color={color}></Icon><Text color={color}>{props.text}</Text> + <Icon icon={props.icon} mr={2} color={color}></Icon> + <Text color={color} className='nowrap'> + {props.text} + </Text> </Button> </> ); -} +}; export default ModalButton; From 5d2e7bf35b6004bb54bb0b032d6194d504f8ed96 Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Tue, 16 Feb 2021 08:46:45 -0500 Subject: [PATCH 06/27] chat: applies consistent padding and margin rules Fixes urbit/landscape#357 Fixes urbit/landscape#355 --- .../apps/chat/components/ChatMessage.tsx | 383 ++++++++---------- .../views/apps/chat/components/ChatWindow.tsx | 133 +++--- .../apps/chat/components/content/text.js | 88 ++-- .../src/views/apps/notifications/graph.tsx | 242 ++++++----- .../src/views/components/MentionText.tsx | 14 +- 5 files changed, 437 insertions(+), 423 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 6252383ddb..8bddbdeb4c 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -1,3 +1,4 @@ +/* eslint-disable max-lines-per-function */ import React, { useState, useEffect, @@ -17,7 +18,14 @@ import { useShowNickname, useHovering } from '~/logic/lib/util'; -import { Group, Association, Contacts, Post, Groups, Associations } from '~/types'; +import { + Group, + Association, + Contacts, + Post, + Groups, + Associations +} from '~/types'; import TextContent from './content/text'; import CodeContent from './content/code'; import RemoteContent from '~/views/components/RemoteContent'; @@ -27,34 +35,34 @@ import useLocalState from '~/logic/state/local'; export const DATESTAMP_FORMAT = '[~]YYYY.M.D'; -export const UnreadMarker = React.forwardRef(({ dayBreak, when }, ref) => ( - <Row - flexShrink={0} - ref={ref} - color='blue' - alignItems='center' - fontSize='0' - position='absolute' - width='100%' - py='2' - > - <Rule borderColor='blue' display={['none', 'block']} m='0' width='2rem' /> - <Text flexShrink='0' display='block' zIndex='2' mx='4' color='blue'> - New messages below - </Text> - <Rule borderColor='blue' flexGrow='1' m='0' /> - <Rule style={{ width: 'calc(50% - 48px)' }} borderColor='blue' m='0' /> - </Row> -)); - export const DayBreak = ({ when }) => ( - <Row pb='3' alignItems='center' justifyContent='center' width='100%'> - <Text gray> + <Row px={2} mt='-16px' height={5} justifyContent='center' alignItems='center'> + <Rule borderColor='lightGray' /> + <Text gray flexShrink='0' fontSize={0} px={2}> {moment(when).calendar(null, { sameElse: DATESTAMP_FORMAT })} </Text> + <Rule borderColor='lightGray' /> </Row> ); +export const UnreadMarker = React.forwardRef(({ dayBreak, when }, ref) => ( + <Row + position='absolute' + ref={ref} + px={2} + height={5} + justifyContent='center' + alignItems='center' + width='100%' + > + <Rule borderColor='lightBlue' /> + <Text color='blue' fontSize={0} flexShrink='0' px={2}> + New messages below + </Text> + <Rule borderColor='lightBlue' /> + </Row> +)); + interface ChatMessageProps { measure(element): void; msg: Post; @@ -73,6 +81,7 @@ interface ChatMessageProps { history: any; api: any; highlighted?: boolean; + renderSigil?: boolean; } export default class ChatMessage extends Component<ChatMessageProps> { @@ -113,21 +122,26 @@ export default class ChatMessage extends Component<ChatMessageProps> { associations } = this.props; - const renderSigil = Boolean( - (nextMsg && msg.author !== nextMsg.author) || !nextMsg || msg.number === 1 - ); + let { renderSigil } = this.props; + + if (renderSigil === undefined) { + renderSigil = Boolean( + (nextMsg && msg.author !== nextMsg.author) || + !nextMsg || + msg.number === 1 + ); + } + const dayBreak = nextMsg && new Date(msg['time-sent']).getDate() !== new Date(nextMsg['time-sent']).getDate(); - const containerClass = `${ - renderSigil ? 'cf pl2 lh-copy' : 'items-top cf hide-child' - } ${isPending ? 'o-40' : ''} ${className}`; + const containerClass = `${isPending ? 'o-40' : ''} ${className}`; const timestamp = moment .unix(msg['time-sent'] / 1000) - .format(renderSigil ? 'hh:mm a' : 'hh:mm'); + .format(renderSigil ? 'h:mm A' : 'h:mm'); const reboundMeasure = (event) => { return measure(this.divRef.current); @@ -149,7 +163,7 @@ export default class ChatMessage extends Component<ChatMessageProps> { highlighted, fontSize, associations, - groups, + groups }; const unreadContainerStyle = { @@ -158,34 +172,22 @@ export default class ChatMessage extends Component<ChatMessageProps> { return ( <Box - bg={highlighted ? 'washedBlue' : 'white'} - flexShrink={0} - width='100%' - display='flex' - flexWrap='wrap' - pt={this.props.pt ? this.props.pt : renderSigil ? 3 : 0} - pr={3} - pb={isLastMessage ? 3 : 0} ref={this.divRef} + pt={renderSigil ? 2 : 0} + pb={2} className={containerClass} style={style} - mb={1} - position='relative' > {dayBreak && !isLastRead ? <DayBreak when={msg['time-sent']} /> : null} {renderSigil ? ( - <MessageWithSigil {...messageProps} /> + <> + <MessageAuthor pb={'2px'} {...messageProps} /> + <Message pl={5} pr={3} {...messageProps} /> + </> ) : ( - <MessageWithoutSigil {...messageProps} /> + <Message pl={5} pr={3} timestampHover {...messageProps} /> )} - <Box - flexShrink={0} - fontSize={0} - position='relative' - width='100%' - overflow='visible' - style={unreadContainerStyle} - > + <Box style={unreadContainerStyle}> {isLastRead ? ( <UnreadMarker dayBreak={dayBreak} @@ -199,43 +201,25 @@ export default class ChatMessage extends Component<ChatMessageProps> { } } -interface MessageProps { - msg: Post; - timestamp: string; - group: Group; - association: Association; - contacts: Contacts; - containerClass: string; - isPending: boolean; - style: any; - measure(element): void; - scrollWindow: HTMLDivElement; - associations: Associations; - groups: Groups; -} - -export const MessageWithSigil = (props) => { - const { - msg, - timestamp, - contacts, - association, - associations, - groups, - group, - measure, - api, - history, - scrollWindow, - fontSize - } = props; - +export const MessageAuthor = ({ + timestamp, + contacts, + msg, + measure, + group, + api, + associations, + groups, + scrollWindow, + ...rest +}) => { const dark = useLocalState((state) => state.dark); const datestamp = moment .unix(msg['time-sent'] / 1000) .format(DATESTAMP_FORMAT); - const contact = `~${msg.author}` in contacts ? contacts[`~${msg.author}`] : false; + const contact = + `~${msg.author}` in contacts ? contacts[`~${msg.author}`] : false; const showNickname = useShowNickname(contact); const shipName = showNickname ? contact.nickname : cite(msg.author); const copyNotice = 'Copied'; @@ -290,17 +274,16 @@ export const MessageWithSigil = (props) => { padding={2} /> ); - return ( - <> + <Box display='flex' alignItems='center' {...rest}> <Box onClick={() => { setShowOverlay(true); }} - className='fl v-top pt1' height={16} - pr={3} + pr={2} pl={2} + cursor='pointer' position='relative' > {showOverlay && ( @@ -329,11 +312,11 @@ export const MessageWithSigil = (props) => { > <Text fontSize={0} - mr={3} + mr={2} flexShrink={0} mono={nameMono} fontWeight={nameMono ? '400' : '500'} - className={'mw5 db truncate pointer'} + className={'pointer'} onClick={() => { writeText(`~${msg.author}`); showCopyNotice(); @@ -342,48 +325,25 @@ export const MessageWithSigil = (props) => { > {displayName} </Text> - <Text flexShrink={0} fontSize={0} gray mono> + <Text flexShrink={0} fontSize={0} gray> {timestamp} </Text> <Text flexShrink={0} fontSize={0} gray - mono ml={2} display={['none', hovering ? 'block' : 'none']} > {datestamp} </Text> </Box> - <ContentBox flexShrink={0} fontSize={fontSize ? fontSize : '14px'}> - {msg.contents.map((c, i) => ( - <MessageContent - key={i} - contacts={contacts} - content={c} - measure={measure} - scrollWindow={scrollWindow} - fontSize={fontSize} - group={group} - api={api} - associations={associations} - groups={groups} - /> - ))} - </ContentBox> </Box> - </> + </Box> ); }; -const ContentBox = styled(Box)` - & > :first-child { - margin-left: 0px; - } -`; - -export const MessageWithoutSigil = ({ +export const Message = ({ timestamp, contacts, msg, @@ -392,119 +352,94 @@ export const MessageWithoutSigil = ({ api, associations, groups, - scrollWindow + scrollWindow, + timestampHover, + ...rest }) => { const { hovering, bind } = useHovering(); return ( - <> - <Text - flexShrink={0} - mono - gray - display={hovering ? 'block' : 'none'} - pt='2px' - lineHeight='tall' - fontSize={0} - position='absolute' - left={1} - > - {timestamp} - </Text> - <ContentBox - flexShrink={0} - fontSize='14px' - className='clamp-message' - style={{ flexGrow: 1 }} - {...bind} - pl={6} - > - {msg.contents.map((c, i) => ( - <MessageContent - key={i} - contacts={contacts} - content={c} - group={group} - measure={measure} - scrollWindow={scrollWindow} - groups={groups} - associations={associations} - api={api} - /> - ))} - </ContentBox> - </> - ); -}; - -export const MessageContent = ({ - content, - contacts, - api, - associations, - groups, - measure, - scrollWindow, - fontSize, - group -}) => { - if ('code' in content) { - return <CodeContent content={content} />; - } else if ('url' in content) { - return ( - <Box - mx='2px' - flexShrink={0} - fontSize={fontSize ? fontSize : '14px'} - lineHeight='tall' - color='black' - > - <RemoteContent - url={content.url} - onLoad={measure} - imageProps={{ - style: { - maxWidth: 'min(100%,18rem)', - display: 'block' - } - }} - videoProps={{ - style: { - maxWidth: '18rem', - display: 'block' - } - }} - textProps={{ - style: { - fontSize: 'inherit', - borderBottom: '1px solid', - textDecoration: 'none' - } - }} - /> + <Box position='relative' {...rest}> + {timestampHover ? ( + <Text + display={hovering ? 'block' : 'none'} + position='absolute' + left='0' + top='3px' + fontSize={0} + gray + > + {timestamp} + </Text> + ) : ( + <></> + )} + <Box {...bind}> + {msg.contents.map((content, i) => { + switch (Object.keys(content)[0]) { + case 'text': + return ( + <TextContent + associations={associations} + groups={groups} + measure={measure} + api={api} + fontSize={1} + lineHeight={'20px'} + content={content} + /> + ); + case 'code': + return <CodeContent content={content} />; + case 'url': + return ( + <Box + flexShrink={0} + fontSize={1} + my={2} + lineHeight='20px' + color='black' + > + <RemoteContent + url={content.url} + onLoad={measure} + imageProps={{ + style: { + maxWidth: 'min(100%,18rem)', + display: 'inline-block' + } + }} + videoProps={{ + style: { + maxWidth: '18rem', + display: 'block' + } + }} + textProps={{ + style: { + fontSize: 'inherit', + borderBottom: '1px solid', + textDecoration: 'none' + } + }} + /> + </Box> + ); + case 'mention': + return ( + <Mention + group={group} + scrollWindow={scrollWindow} + ship={content.mention} + contact={contacts?.[`~${content.mention}`]} + /> + ); + default: + return null; + } + })} </Box> - ); - } else if ('text' in content) { - return ( - <TextContent - associations={associations} - groups={groups} - measure={measure} - api={api} - fontSize={fontSize} - content={content} - />); - } else if ('mention' in content) { - return ( - <Mention - group={group} - scrollWindow={scrollWindow} - ship={content.mention} - contact={contacts?.[`~${content.mention}`]} - /> - ); - } else { - return null; - } + </Box> + ); }; export const MessagePlaceholder = ({ diff --git a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx index 8db2935a50..98c0ac2bc5 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx @@ -1,22 +1,22 @@ -import React, { Component } from "react"; -import { RouteComponentProps } from "react-router-dom"; -import _ from "lodash"; +import React, { Component } from 'react'; +import { RouteComponentProps } from 'react-router-dom'; +import _ from 'lodash'; import bigInt, { BigInteger } from 'big-integer'; import { Col } from '@tlon/indigo-react'; -import GlobalApi from "~/logic/api/global"; -import { Patp, Path } from "~/types/noun"; -import { Contacts } from "~/types/contact-update"; -import { Association, Associations } from "~/types/metadata-update"; -import { Group, Groups } from "~/types/group-update"; -import { Envelope, IMessage } from "~/types/chat-update"; -import { Graph } from "~/types"; +import GlobalApi from '~/logic/api/global'; +import { Patp, Path } from '~/types/noun'; +import { Contacts } from '~/types/contact-update'; +import { Association, Associations } from '~/types/metadata-update'; +import { Group, Groups } from '~/types/group-update'; +import { Envelope, IMessage } from '~/types/chat-update'; +import { Graph } from '~/types'; -import VirtualScroller from "~/views/components/VirtualScroller"; +import VirtualScroller from '~/views/components/VirtualScroller'; import ChatMessage, { MessagePlaceholder } from './ChatMessage'; -import { UnreadNotice } from "./unread-notice"; +import { UnreadNotice } from './unread-notice'; const INITIAL_LOAD = 20; const DEFAULT_BACKLOG_SIZE = 100; @@ -38,7 +38,7 @@ type ChatWindowProps = RouteComponentProps<{ scrollTo?: number; associations: Associations; groups: Groups; -} +}; interface ChatWindowState { fetchPending: boolean; @@ -47,7 +47,10 @@ interface ChatWindowState { unreadIndex: BigInteger; } -export default class ChatWindow extends Component<ChatWindowProps, ChatWindowState> { +export default class ChatWindow extends Component< + ChatWindowProps, + ChatWindowState +> { private virtualList: VirtualScroller | null; private unreadMarkerRef: React.RefObject<HTMLDivElement>; private prevSize = 0; @@ -66,8 +69,6 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta unreadIndex: bigInt.zero }; - - this.dismissUnread = this.dismissUnread.bind(this); this.scrollToUnread = this.scrollToUnread.bind(this); this.handleWindowBlur = this.handleWindowBlur.bind(this); @@ -86,7 +87,7 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta window.addEventListener('blur', this.handleWindowBlur); window.addEventListener('focus', this.handleWindowFocus); setTimeout(() => { - if(this.props.scrollTo) { + if (this.props.scrollTo) { this.scrollToUnread(); } @@ -102,7 +103,7 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta calculateUnreadIndex() { const { graph, unreadCount } = this.props; const unreadIndex = graph.keys()[unreadCount]; - if(!unreadIndex || unreadCount === 0) { + if (!unreadIndex || unreadCount === 0) { this.setState({ unreadIndex: bigInt.zero }); @@ -110,7 +111,7 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta } this.setState({ unreadIndex - }) + }); } handleWindowBlur() { @@ -135,9 +136,8 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta this.calculateUnreadIndex(); } - - if(this.prevSize !== graph.size) { - if(this.state.unreadIndex.eq(bigInt.zero)) { + if (this.prevSize !== graph.size) { + if (this.state.unreadIndex.eq(bigInt.zero)) { this.calculateUnreadIndex(); this.scrollToUnread(); } @@ -161,7 +161,7 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta scrollToUnread() { const { unreadIndex } = this.state; - if(unreadIndex.eq(bigInt.zero)) { + if (unreadIndex.eq(bigInt.zero)) { return; } @@ -179,32 +179,36 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta async fetchMessages(newer: boolean, force = false): Promise<void> { const { api, station, graph } = this.props; - if ( this.state.fetchPending && !force) { - return new Promise((resolve, reject) => {}); + if (this.state.fetchPending && !force) { + return new Promise((resolve, reject) => {}); } this.setState({ fetchPending: true }); - const [,, ship, name] = station.split('/'); + const [, , ship, name] = station.split('/'); const currSize = graph.size; - if(newer && !this.loadedNewest) { + if (newer && !this.loadedNewest) { const [index] = graph.peekLargest()!; - await api.graph.getYoungerSiblings(ship,name, 20, `/${index.toString()}`) - if(currSize === graph.size) { + await api.graph.getYoungerSiblings( + ship, + name, + 20, + `/${index.toString()}` + ); + if (currSize === graph.size) { console.log('loaded all newest'); this.loadedNewest = true; } - } else if(!newer && !this.loadedOldest) { + } else if (!newer && !this.loadedOldest) { const [index] = graph.peekSmallest()!; - await api.graph.getOlderSiblings(ship,name, 20, `/${index.toString()}`) + await api.graph.getOlderSiblings(ship, name, 20, `/${index.toString()}`); this.calculateUnreadIndex(); - if(currSize === graph.size) { + if (currSize === graph.size) { console.log('loaded all oldest'); this.loadedOldest = true; } } this.setState({ fetchPending: false }); - } onScroll({ scrollTop, scrollHeight, windowHeight }) { @@ -222,8 +226,8 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta if (!parent) return; const { scrollTop, scrollHeight, offsetHeight } = this.virtualList.window; if ( - (scrollHeight - parent.offsetTop > scrollTop) - && (scrollHeight - parent.offsetTop < scrollTop + offsetHeight) + scrollHeight - parent.offsetTop > scrollTop && + scrollHeight - parent.offsetTop < scrollTop + offsetHeight ) { this.dismissUnread(); } @@ -246,24 +250,40 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta const unreadMarkerRef = this.unreadMarkerRef; - - const messageProps = { association, group, contacts, unreadMarkerRef, history, api, groups, associations }; + const messageProps = { + association, + group, + contacts, + unreadMarkerRef, + history, + api, + groups, + associations + }; const keys = graph.keys().reverse(); const unreadIndex = graph.keys()[this.props.unreadCount]; const unreadMsg = unreadIndex && graph.get(unreadIndex); return ( - <Col height='100%' overflow='hidden' position="relative"> + <Col height='100%' overflow='hidden' position='relative'> <UnreadNotice unreadCount={unreadCount} - unreadMsg={unreadCount === 1 && unreadMsg && unreadMsg?.post.author === window.ship ? false : unreadMsg} + unreadMsg={ + unreadCount === 1 && + unreadMsg && + unreadMsg?.post.author === window.ship + ? false + : unreadMsg + } dismissUnread={this.dismissUnread} onClick={this.scrollToUnread} /> <VirtualScroller - ref={list => {this.virtualList = list}} - origin="bottom" + ref={(list) => { + this.virtualList = list; + }} + origin='bottom' style={{ height: '100%' }} onStartReached={() => { this.setState({ idle: false }); @@ -276,18 +296,34 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta const msg = graph.get(index)?.post; if (!msg) return null; if (!this.state.initialized) { - return <MessagePlaceholder key={index.toString()} height="64px" index={index} />; + return ( + <MessagePlaceholder + key={index.toString()} + height='64px' + index={index} + /> + ); } const isPending: boolean = 'pending' in msg && Boolean(msg.pending); - const isLastMessage = index.eq(graph.peekLargest()?.[0] ?? bigInt.zero); + const isLastMessage = index.eq( + graph.peekLargest()?.[0] ?? bigInt.zero + ); const highlighted = bigInt(this.props.scrollTo || -1).eq(index); - const graphIdx = keys.findIndex(idx => idx.eq(index)); - const prevIdx = keys[graphIdx+1]; - const nextIdx = keys[graphIdx-1]; - + const graphIdx = keys.findIndex((idx) => idx.eq(index)); + const prevIdx = keys[graphIdx + 1]; + const nextIdx = keys[graphIdx - 1]; const isLastRead: boolean = this.state.unreadIndex.eq(index); - const props = { measure, highlighted, scrollWindow, isPending, isLastRead, isLastMessage, msg, ...messageProps }; + const props = { + measure, + highlighted, + scrollWindow, + isPending, + isLastRead, + isLastMessage, + msg, + ...messageProps + }; return ( <ChatMessage key={index.toString()} @@ -305,4 +341,3 @@ export default class ChatWindow extends Component<ChatWindowProps, ChatWindowSta ); } } - diff --git a/pkg/interface/src/views/apps/chat/components/content/text.js b/pkg/interface/src/views/apps/chat/components/content/text.js index ae7a5afd9d..03c4336c43 100644 --- a/pkg/interface/src/views/apps/chat/components/content/text.js +++ b/pkg/interface/src/views/apps/chat/components/content/text.js @@ -5,7 +5,7 @@ import RemarkDisableTokenizers from 'remark-disable-tokenizers'; import RemarkBreaks from 'remark-breaks'; import urbitOb from 'urbit-ob'; import { Text } from '@tlon/indigo-react'; -import { GroupLink } from "~/views/components/GroupLink"; +import { GroupLink } from '~/views/components/GroupLink'; const DISABLED_BLOCK_TOKENS = [ 'indentedCode', @@ -27,29 +27,46 @@ const DISABLED_INLINE_TOKENS = [ ]; const renderers = { - inlineCode: ({language, value}) => { - return <Text mono p='1' backgroundColor='washedGray' fontSize='0' style={{ whiteSpace: 'preWrap'}}>{value}</Text> + inlineCode: ({ language, value }) => { + return ( + <Text + mono + p='1' + backgroundColor='washedGray' + fontSize='0' + style={{ whiteSpace: 'preWrap' }} + > + {value} + </Text> + ); }, paragraph: ({ children }) => { - return (<Text fontSize="1">{children}</Text>); + return ( + <Text fontSize='1' lineHeight={'20px'}> + {children} + </Text> + ); }, - code: ({language, value}) => { - return <Text - p='1' - className='clamp-message' - display='block' - borderRadius='1' - mono - fontSize='0' - backgroundColor='washedGray' - overflowX='auto' - style={{ whiteSpace: 'pre'}}> - {value} - </Text> + code: ({ language, value }) => { + return ( + <Text + p='1' + className='clamp-message' + display='block' + borderRadius='1' + mono + fontSize='0' + backgroundColor='washedGray' + overflowX='auto' + style={{ whiteSpace: 'pre' }} + > + {value} + </Text> + ); } }; -const MessageMarkdown = React.memo(props => ( +const MessageMarkdown = React.memo((props) => ( <ReactMarkdown {...props} unwrapDisallowed={true} @@ -59,19 +76,21 @@ const MessageMarkdown = React.memo(props => ( disallowedTypes={['heading', 'list', 'listItem', 'link']} allowNode={(node, index, parent) => { if ( - node.type === 'blockquote' - && parent.type === 'root' - && node.children.length - && node.children[0].type === 'paragraph' - && node.children[0].position.start.offset < 2 + node.type === 'blockquote' && + parent.type === 'root' && + node.children.length && + node.children[0].type === 'paragraph' && + node.children[0].position.start.offset < 2 ) { - node.children[0].children[0].value = '>' + node.children[0].children[0].value; + node.children[0].children[0].value = + '>' + node.children[0].children[0].value; return false; } return true; }} - plugins={[RemarkBreaks]} /> + plugins={[RemarkBreaks]} + /> )); export default function TextContent(props) { @@ -80,12 +99,13 @@ export default function TextContent(props) { const group = content.text.match( /([~][/])?(~[a-z]{3,6})(-[a-z]{6})?([/])(([a-z0-9-])+([/-])?)+/ ); - const isGroupLink = ((group !== null) // matched possible chatroom - && (group[2].length > 2) // possible ship? - && (urbitOb.isValidPatp(group[2]) // valid patp? - && (group[0] === content.text))) // entire message is room name? + const isGroupLink = + group !== null && // matched possible chatroom + group[2].length > 2 && // possible ship? + urbitOb.isValidPatp(group[2]) && // valid patp? + group[0] === content.text; // entire message is room name? - if(isGroupLink) { + if (isGroupLink) { const resource = `/ship/${content.text}`; return ( <GroupLink @@ -102,7 +122,13 @@ export default function TextContent(props) { ); } else { return ( - <Text mx="2px" flexShrink={0} color='black' fontSize={props.fontSize ? props.fontSize : '14px'} lineHeight="tall" style={{ overflowWrap: 'break-word' }}> + <Text + flexShrink={0} + color='black' + fontSize={props.fontSize ? props.fontSize : '14px'} + lineHeight={props.lineHeight ? props.lineHeight : '20px'} + style={{ overflowWrap: 'break-word' }} + > <MessageMarkdown source={content.text} /> </Text> ); diff --git a/pkg/interface/src/views/apps/notifications/graph.tsx b/pkg/interface/src/views/apps/notifications/graph.tsx index 7517b0b505..9fe909a1fd 100644 --- a/pkg/interface/src/views/apps/notifications/graph.tsx +++ b/pkg/interface/src/views/apps/notifications/graph.tsx @@ -1,8 +1,8 @@ -import React, { ReactNode, useCallback } from "react"; -import moment from "moment"; -import { Row, Box, Col, Text, Anchor, Icon, Action } from "@tlon/indigo-react"; -import { Link, useHistory } from "react-router-dom"; -import _ from "lodash"; +import React, { ReactNode, useCallback } from 'react'; +import moment from 'moment'; +import { Row, Box, Col, Text, Anchor, Icon, Action } from '@tlon/indigo-react'; +import { Link, useHistory } from 'react-router-dom'; +import _ from 'lodash'; import { Post, GraphNotifIndex, @@ -10,22 +10,22 @@ import { Associations, Content, Rolodex, - Groups, -} from "~/types"; -import { Header } from "./header"; -import { cite, deSig, pluralize } from "~/logic/lib/util"; -import { Sigil } from "~/logic/lib/sigil"; -import RichText from "~/views/components/RichText"; -import GlobalApi from "~/logic/api/global"; -import ReactMarkdown from "react-markdown"; -import { getSnippet } from "~/logic/lib/publish"; -import styled from "styled-components"; -import {MentionText} from "~/views/components/MentionText"; -import ChatMessage, {MessageWithoutSigil} from "../chat/components/ChatMessage"; + Groups +} from '~/types'; +import { Header } from './header'; +import { cite, deSig, pluralize } from '~/logic/lib/util'; +import { Sigil } from '~/logic/lib/sigil'; +import RichText from '~/views/components/RichText'; +import GlobalApi from '~/logic/api/global'; +import ReactMarkdown from 'react-markdown'; +import { getSnippet } from '~/logic/lib/publish'; +import styled from 'styled-components'; +import { MentionText } from '~/views/components/MentionText'; +import ChatMessage from '../chat/components/ChatMessage'; function getGraphModuleIcon(module: string) { - if (module === "link") { - return "Collection"; + if (module === 'link') { + return 'Collection'; } return _.capitalize(module); } @@ -40,75 +40,83 @@ const FilterBox = styled(Box)` function describeNotification(description: string, plural: boolean) { switch (description) { - case "link": - return `added ${pluralize("new link", plural)} to`; - case "comment": - return `left ${pluralize("comment", plural)} on`; - case "edit-comment": - return `updated ${pluralize("comment", plural)} on`; - case "note": - return `posted ${pluralize("note", plural)} to`; - case "edit-note": - return `updated ${pluralize("note", plural)} in`; - case "mention": - return "mentioned you on"; - case "message": - return `sent ${pluralize("message", plural)} to`; + case 'link': + return `added ${pluralize('new link', plural)} to`; + case 'comment': + return `left ${pluralize('comment', plural)} on`; + case 'edit-comment': + return `updated ${pluralize('comment', plural)} on`; + case 'note': + return `posted ${pluralize('note', plural)} to`; + case 'edit-note': + return `updated ${pluralize('note', plural)} in`; + case 'mention': + return 'mentioned you on'; + case 'message': + return `sent ${pluralize('message', plural)} to`; default: return description; } } const GraphUrl = ({ url, title }) => ( - <Box borderRadius="2" p="2" bg="scales.black05"> - <Anchor underline={false} target="_blank" color="black" href={url}> - <Icon verticalAlign="bottom" mr="2" icon="ArrowExternal" /> + <Box borderRadius='2' p='2' bg='scales.black05'> + <Anchor underline={false} target='_blank' color='black' href={url}> + <Icon verticalAlign='bottom' mr='2' icon='ArrowExternal' /> {title} </Anchor> </Box> ); -const GraphNodeContent = ({ group, post, contacts, mod, description, index, remoteContentPolicy }) => { +const GraphNodeContent = ({ + group, + post, + contacts, + mod, + description, + index, + remoteContentPolicy +}) => { const { contents } = post; - const idx = index.slice(1).split("/"); - if (mod === "link") { + const idx = index.slice(1).split('/'); + if (mod === 'link') { if (idx.length === 1) { const [{ text }, { url }] = contents; return <GraphUrl title={text} url={url} />; } else if (idx.length === 3) { - return <MentionText - content={contents} - contacts={contacts} - group={group} - /> + return ( + <MentionText content={contents} contacts={contacts} group={group} /> + ); } return null; } - if (mod === "publish") { - if (idx[1] === "2") { - return <MentionText - content={contents} - group={group} - contacts={contacts} - fontSize='14px' - lineHeight="tall" - /> - } else if (idx[1] === "1") { + if (mod === 'publish') { + if (idx[1] === '2') { + return ( + <MentionText + content={contents} + group={group} + contacts={contacts} + fontSize='14px' + lineHeight='tall' + /> + ); + } else if (idx[1] === '1') { const [{ text: header }, { text: body }] = contents; const snippet = getSnippet(body); return ( <Col> - <Box mb="2" fontWeight="500"> + <Box mb='2' fontWeight='500'> <Text>{header}</Text> </Box> - <Box overflow="hidden" maxHeight="400px" position="relative"> - <Text lineHeight="tall">{snippet}</Text> + <Box overflow='hidden' maxHeight='400px' position='relative'> + <Text lineHeight='tall'>{snippet}</Text> <FilterBox - width="100%" - zIndex="1" - height="calc(100% - 2em)" - bottom="-4px" - position="absolute" + width='100%' + zIndex='1' + height='calc(100% - 2em)' + bottom='-4px' + position='absolute' /> </Box> </Col> @@ -116,49 +124,57 @@ const GraphNodeContent = ({ group, post, contacts, mod, description, index, remo } } - if(mod === 'chat') { + if (mod === 'chat') { return ( <Row - width="100%" - flexShrink={0} - flexGrow={1} - flexWrap="wrap" - > - <MessageWithoutSigil - containerClass="items-top cf hide-child" - measure={() => {}} - group={group} - contacts={contacts} - groups={{}} - associations={{ graph: {}, groups: {}}} - msg={post} - fontSize='0' - pt='2' - /> - </Row>); - + width='100%' + flexShrink={0} + flexGrow={1} + flexWrap='wrap' + marginLeft='-32px' + > + <ChatMessage + renderSigil={false} + containerClass='items-top cf hide-child' + measure={() => {}} + group={group} + contacts={contacts} + groups={{}} + associations={{ graph: {}, groups: {} }} + msg={post} + fontSize='0' + pt='2' + /> + </Row> + ); } return null; }; -function getNodeUrl(mod: string, hidden: boolean, groupPath: string, graph: string, index: string) { +function getNodeUrl( + mod: string, + hidden: boolean, + groupPath: string, + graph: string, + index: string +) { if (hidden && mod === 'chat') { groupPath = '/messages'; } else if (hidden) { groupPath = '/home'; } const graphUrl = `/~landscape${groupPath}/resource/${mod}${graph}`; - const idx = index.slice(1).split("/"); - if (mod === "publish") { + const idx = index.slice(1).split('/'); + if (mod === 'publish') { const [noteId] = idx; return `${graphUrl}/note/${noteId}`; - } else if (mod === "link") { + } else if (mod === 'link') { const [linkId] = idx; return `${graphUrl}/${linkId}`; } else if (mod === 'chat') { return graphUrl; } - return ""; + return ''; } const GraphNode = ({ post, @@ -186,41 +202,45 @@ const GraphNode = ({ size={16} icon color={`#000000`} - classes="mix-blend-diff" + classes='mix-blend-diff' padding={2} /> - ) : <Box style={{ width: '16px' }}></Box>; + ) : ( + <Box style={{ width: '16px' }}></Box> + ); const groupContacts = contacts[groupPath] ?? {}; const nodeUrl = getNodeUrl(mod, group?.hidden, groupPath, graph, index); const onClick = useCallback(() => { - if(!read) { + if (!read) { onRead(); } history.push(nodeUrl); }, [read, onRead]); return ( - <Row onClick={onClick} gapX="2" pt={showContact ? 2 : 0}> + <Row onClick={onClick} gapX='2' pt={showContact ? 2 : 0}> <Col>{img}</Col> - <Col flexGrow={1} alignItems="flex-start"> - {showContact && <Row - mb="2" - height="16px" - alignItems="center" - p="1" - backgroundColor="white" - > - <Text mono title={author}> - {cite(author)} - </Text> - <Text ml="2" gray> - {moment(time).format("HH:mm")} - </Text> - </Row>} - <Row width="100%" p="1" flexDirection="column"> + <Col flexGrow={1} alignItems='flex-start'> + {showContact && ( + <Row + mb='2' + height='16px' + alignItems='center' + p='1' + backgroundColor='white' + > + <Text mono title={author}> + {cite(author)} + </Text> + <Text ml='2' gray> + {moment(time).format('HH:mm')} + </Text> + </Row> + )} + <Row width='100%' p='1' flexDirection='column'> <GraphNodeContent contacts={groupContacts} post={post} @@ -249,7 +269,7 @@ export function GraphNotification(props: { }) { const { contents, index, read, time, api, timebox, groups } = props; - const authors = _.map(contents, "author"); + const authors = _.map(contents, 'author'); const { graph, group } = index; const icon = getGraphModuleIcon(index.module); const desc = describeNotification(index.description, contents.length !== 1); @@ -259,10 +279,10 @@ export function GraphNotification(props: { return; } - return api.hark["read"](timebox, { graph: index }); + return api.hark['read'](timebox, { graph: index }); }, [api, timebox, index, read]); -return ( + return ( <> <Header onClick={onClick} @@ -277,14 +297,14 @@ return ( description={desc} associations={props.associations} /> - <Box flexGrow={1} width="100%" pl={5} gridArea="main"> + <Box flexGrow={1} width='100%' pl={5} gridArea='main'> {_.map(contents, (content, idx) => ( <GraphNode post={content} author={content.author} contacts={props.contacts} mod={index.module} - time={content?.["time-sent"]} + time={content?.['time-sent']} description={index.description} index={content.index} graph={graph} diff --git a/pkg/interface/src/views/components/MentionText.tsx b/pkg/interface/src/views/components/MentionText.tsx index 02bdf0c220..b72837ddfe 100644 --- a/pkg/interface/src/views/components/MentionText.tsx +++ b/pkg/interface/src/views/components/MentionText.tsx @@ -48,21 +48,19 @@ export function Mention(props: { const group = props.group ?? { hidden: true }; const [showOverlay, setShowOverlay] = useState(false); - const toggleOverlay = useCallback( - () => { - setShowOverlay(value => !value); - }, - [showOverlay] - ); + const toggleOverlay = useCallback(() => { + setShowOverlay((value) => !value); + }, [showOverlay]); return ( <Box position='relative' display='inline-block' cursor='pointer'> <Text onClick={() => toggleOverlay()} - mx='2px' - px='2px' + mx={1} + px={1} bg='washedBlue' color='blue' + fontSize={showNickname ? 1 : 0} mono={!showNickname} > {name} From c90857db59281382a24f7ea98f7d96092f6f9531 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Tue, 16 Feb 2021 07:20:57 -0800 Subject: [PATCH 07/27] npm: removed lock files --- pkg/npm/api/package-lock.json | 31 - pkg/npm/eslint-config/package-lock.json | 1018 ----- pkg/npm/http-api/package-lock.json | 5591 ----------------------- 3 files changed, 6640 deletions(-) delete mode 100644 pkg/npm/api/package-lock.json delete mode 100644 pkg/npm/eslint-config/package-lock.json delete mode 100644 pkg/npm/http-api/package-lock.json diff --git a/pkg/npm/api/package-lock.json b/pkg/npm/api/package-lock.json deleted file mode 100644 index e4855e4ecb..0000000000 --- a/pkg/npm/api/package-lock.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@urbit/api", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - } - } -} diff --git a/pkg/npm/eslint-config/package-lock.json b/pkg/npm/eslint-config/package-lock.json deleted file mode 100644 index 49230650eb..0000000000 --- a/pkg/npm/eslint-config/package-lock.json +++ /dev/null @@ -1,1018 +0,0 @@ -{ - "name": "@urbit/eslint-config", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", - "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", - "dev": true - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.0.tgz", - "integrity": "sha512-DJgdGZW+8CFUTz5C/dnn4ONcUm2h2T0itWD85Ob5/V27Ndie8hUoX5HKyGssvR8sUMkAIlUc/AMK67Lqa3kBIQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.15.0", - "@typescript-eslint/scope-manager": "4.15.0", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.15", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.0.tgz", - "integrity": "sha512-V4vaDWvxA2zgesg4KPgEGiomWEBpJXvY4ZX34Y3qxK8LUm5I87L+qGIOTd9tHZOARXNRt9pLbblSKiYBlGMawg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.15.0", - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/typescript-estree": "4.15.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.0.tgz", - "integrity": "sha512-L6Dtbq8Bc7g2aZwnIBETpmUa9XDKCMzKVwAArnGp5Mn7PRNFjf3mUzq8UeBjL3K8t311hvevnyqXAMSmxO8Gpg==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.15.0", - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/typescript-estree": "4.15.0", - "debug": "^4.1.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.0.tgz", - "integrity": "sha512-CSNBZnCC2jEA/a+pR9Ljh8Y+5TY5qgbPz7ICEk9WCpSEgT6Pi7H2RIjxfrrbUXvotd6ta+i27sssKEH8Azm75g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0" - } - }, - "@typescript-eslint/types": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.0.tgz", - "integrity": "sha512-su4RHkJhS+iFwyqyXHcS8EGPlUVoC+XREfy5daivjLur9JP8GhvTmDipuRpcujtGC4M+GYhUOJCPDE3rC5NJrg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.0.tgz", - "integrity": "sha512-jG6xTmcNbi6xzZq0SdWh7wQ9cMb2pqXaUp6bUZOMsIlu5aOlxGxgE/t6L/gPybybQGvdguajXGkZKSndZJpksA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.15.0", - "@typescript-eslint/visitor-keys": "4.15.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.0.tgz", - "integrity": "sha512-RnDtJwOwFucWFAMjG3ghCG/ikImFJFEg20DI7mn4pHEx3vC48lIAoyjhffvfHmErRDboUPC7p9Z2il4CLb7qxA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.15.0", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - } - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" - } - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-plugin-react": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz", - "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flatmap": "^1.2.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "object.entries": "^1.1.2", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.18.1", - "string.prototype.matchall": "^4.0.2" - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fastq": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", - "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", - "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz", - "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - } - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", - "dev": true - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "string.prototype.matchall": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", - "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3" - } - }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } -} diff --git a/pkg/npm/http-api/package-lock.json b/pkg/npm/http-api/package-lock.json deleted file mode 100644 index 0b03dfdd46..0000000000 --- a/pkg/npm/http-api/package-lock.json +++ /dev/null @@ -1,5591 +0,0 @@ -{ - "name": "@urbit/http-api", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/core": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", - "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.1", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.1", - "@babel/parser": "^7.12.3", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", - "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", - "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", - "dev": true - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", - "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", - "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", - "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-typescript": "^7.12.1" - } - }, - "@babel/preset-typescript": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", - "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-typescript": "^7.12.1" - } - }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/traverse": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", - "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.5", - "@babel/types": "^7.12.5", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.12.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", - "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - } - }, - "@types/anymatch": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", - "dev": true - }, - "@types/browser-or-node": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/browser-or-node/-/browser-or-node-1.2.0.tgz", - "integrity": "sha512-hLn4jvpZ804yQDu71YW7qNQDm045XmODoEOZohkH4jWb23AaPodhVM5qztG+XM54Oqw8X1dA4A7z49iNFGbrxA==", - "dev": true - }, - "@types/eslint": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.4.tgz", - "integrity": "sha512-YCY4kzHMsHoyKspQH+nwSe+70Kep7Vjt2X+dZe5Vs2vkRudqtoFoUIv1RlJmZB8Hbp7McneupoZij4PadxsK5Q==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", - "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.45", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", - "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", - "dev": true - }, - "@types/eventsource": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.5.tgz", - "integrity": "sha512-BA9q9uC2PAMkUS7DunHTxWZZaVpeNzDG8lkBxcKwzKJClfDQ4Z59/Csx7HSH/SIqFN2JWh0tAKAM6k/wRR0OZg==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "14.0.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.14.tgz", - "integrity": "sha512-syUgf67ZQpaJj01/tRTknkMNoBBLWJOBODF0Zm4NrXmiSuxjymFrxnTu1QVYRubhVkRcZLYZG8STTwJRdVm/WQ==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", - "dev": true - }, - "@types/react": { - "version": "16.9.56", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz", - "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz", - "integrity": "sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "@types/webpack": { - "version": "4.41.22", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz", - "integrity": "sha512-JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==", - "dev": true, - "requires": { - "@types/anymatch": "*", - "@types/node": "*", - "@types/tapable": "*", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "source-map": "^0.6.0" - } - }, - "@types/webpack-sources": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz", - "integrity": "sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz", - "integrity": "sha512-li9aiSVBBd7kU5VlQlT1AqP0uWGDK6JYKUQ9cVDnOg34VNnd9t4jr0Yqc/bKxJr/tDCPDaB4KzoSFN9fgVxe/Q==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.7.0", - "@typescript-eslint/scope-manager": "4.7.0", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.7.0.tgz", - "integrity": "sha512-cymzovXAiD4EF+YoHAB5Oh02MpnXjvyaOb+v+BdpY7lsJXZQN34oIETeUwVT2XfV9rSNpXaIcknDLfupO/tUoA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.7.0", - "@typescript-eslint/types": "4.7.0", - "@typescript-eslint/typescript-estree": "4.7.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.7.0.tgz", - "integrity": "sha512-+meGV8bMP1sJHBI2AFq1GeTwofcGiur8LoIr6v+rEmD9knyCqDlrQcFHR0KDDfldHIFDU/enZ53fla6ReF4wRw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.7.0", - "@typescript-eslint/types": "4.7.0", - "@typescript-eslint/typescript-estree": "4.7.0", - "debug": "^4.1.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.7.0.tgz", - "integrity": "sha512-ILITvqwDJYbcDCROj6+Ob0oCKNg3SH46iWcNcTIT9B5aiVssoTYkhKjxOMNzR1F7WSJkik4zmuqve5MdnA0DyA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.7.0", - "@typescript-eslint/visitor-keys": "4.7.0" - } - }, - "@typescript-eslint/types": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.7.0.tgz", - "integrity": "sha512-uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz", - "integrity": "sha512-5XZRQznD1MfUmxu1t8/j2Af4OxbA7EFU2rbo0No7meb46eHgGkSieFdfV6omiC/DGIBhH9H9gXn7okBbVOm8jw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.7.0", - "@typescript-eslint/visitor-keys": "4.7.0", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz", - "integrity": "sha512-aDJDWuCRsf1lXOtignlfiPODkzSxxop7D0rZ91L6ZuMlcMCSh0YyK+gAfo5zN/ih6WxMwhoXgJWC3cWQdaKC+A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.7.0", - "eslint-visitor-keys": "^2.0.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", - "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==", - "dev": true - }, - "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "requires": { - "array-filter": "^1.0.0" - } - }, - "babel-loader": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.1.tgz", - "integrity": "sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.0.tgz", - "integrity": "sha512-Jrdy04F2EKcNggUDfubMUPNAZg2vMquLQSm8sKLYJvz40ClFL1S8GKyDshGkNsbNNE5Z+fQavzU7nSK1I9JUGA==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browser-or-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz", - "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==" - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001157", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", - "escalade": "^3.1.1", - "node-releases": "^1.1.66" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001157", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz", - "integrity": "sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - } - } - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", - "dev": true, - "requires": { - "@types/webpack": "^4.4.31", - "del": "^4.1.1" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "csstype": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", - "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - } - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.592", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.592.tgz", - "integrity": "sha512-kGNowksvqQiPb1pUSQKpd8JFoGPLxYOwduNRCqCxGh/2Q1qE2JdmwouCW41lUzDxOb/2RIV4lR0tVIfboWlO9A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "dev": true, - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", - "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", - "dev": true - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-generator-function": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", - "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", - "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", - "requires": { - "available-typed-arrays": "^1.0.0", - "es-abstract": "^1.17.4", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "loader-runner": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz", - "integrity": "sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", - "dev": true - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-releases": { - "version": "1.1.66", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz", - "integrity": "sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - }, - "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - } - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "terser": { - "version": "5.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", - "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==", - "dev": true, - "requires": { - "jest-worker": "^26.6.1", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.8" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "p-limit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", - "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", - "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "watchpack": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz", - "integrity": "sha512-vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.4.0.tgz", - "integrity": "sha512-udpYTyqz8toTTdaOsL2QKPLeZLt2IEm9qY7yTXuFEQhKu5bk0yQD9BtAdVQksmz4jFbbWOiWmm3NHarO0zr/ng==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.45", - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^8.0.4", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.3.1", - "eslint-scope": "^5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.1.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "pkg-dir": "^4.2.0", - "schema-utils": "^3.0.0", - "tapable": "^2.0.0", - "terser-webpack-plugin": "^5.0.3", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "enhanced-resolve": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", - "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "tapable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz", - "integrity": "sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==", - "dev": true - } - } - }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", - "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", - "requires": { - "available-typed-arrays": "^1.0.2", - "es-abstract": "^1.17.5", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - }, - "xmlhttprequest-ssl": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.0.tgz", - "integrity": "sha512-z59ztoKPjoFdK6uki5DRiMwPCYtHgp42vCamEpirB9j6zqnbNYBp/2GfrTEOG6IcS9OoMWmIiauU6d2RQNcdbA==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} From a52a6c3cd924db7a7fae61d165057288390fa699 Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Tue, 16 Feb 2021 17:22:38 -0500 Subject: [PATCH 08/27] landscape: use styled-system prop instead of tachyons class Fixes urbit/landscape#435 --- pkg/interface/src/views/apps/launch/components/ModalButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx index bb9618c8ae..fc4ff338f0 100644 --- a/pkg/interface/src/views/apps/launch/components/ModalButton.tsx +++ b/pkg/interface/src/views/apps/launch/components/ModalButton.tsx @@ -22,7 +22,7 @@ const ModalButton = (props) => { {...rest} > <Icon icon={props.icon} mr={2} color={color}></Icon> - <Text color={color} className='nowrap'> + <Text color={color} whiteSpace='nowrap'> {props.text} </Text> </Button> From 0761df261e32d7547c55f2782e44e4ea4e85c9f1 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Tue, 16 Feb 2021 15:11:16 -0800 Subject: [PATCH 09/27] interfaced: added missing import --- pkg/interface/src/views/apps/links/LinkWindow.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkg/interface/src/views/apps/links/LinkWindow.tsx b/pkg/interface/src/views/apps/links/LinkWindow.tsx index 01ebbdbc2b..7f28b79808 100644 --- a/pkg/interface/src/views/apps/links/LinkWindow.tsx +++ b/pkg/interface/src/views/apps/links/LinkWindow.tsx @@ -1,21 +1,21 @@ import React, { useRef, useCallback, useEffect, useMemo } from 'react'; -import { Col } from '@tlon/indigo-react'; + +import { Col, Text } from '@tlon/indigo-react'; import bigInt from 'big-integer'; import { Association, Graph, - Contacts, Unreads, - LocalUpdateRemoteContentPolicy, Group, Rolodex, - S3State } from '@urbit/api'; + import GlobalApi from '~/logic/api/global'; import VirtualScroller from '~/views/components/VirtualScroller'; import { LinkItem } from './components/LinkItem'; import LinkSubmit from './components/LinkSubmit'; import { isWriter } from '~/logic/lib/group'; +import { S3State } from '~/types/s3-update'; interface LinkWindowProps { association: Association; @@ -33,8 +33,6 @@ interface LinkWindowProps { } export function LinkWindow(props: LinkWindowProps) { const { graph, api, association } = props; - const loadedNewest = useRef(true); - const loadedOldest = useRef(false); const virtualList = useRef<VirtualScroller>(); const fetchLinks = useCallback( async (newer: boolean) => { From 9d8be26fead865ac596d8cd1ad13b62320b2672a Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald <liam.fitzgerald@tlon.io> Date: Wed, 17 Feb 2021 12:22:07 +1000 Subject: [PATCH 10/27] meta: add .gitignore for npm --- pkg/npm/.gitignore | 1 + pkg/npm/api/package.json | 4 ++-- pkg/npm/http-api/package.json | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 pkg/npm/.gitignore diff --git a/pkg/npm/.gitignore b/pkg/npm/.gitignore new file mode 100644 index 0000000000..d8b83df9cd --- /dev/null +++ b/pkg/npm/.gitignore @@ -0,0 +1 @@ +package-lock.json diff --git a/pkg/npm/api/package.json b/pkg/npm/api/package.json index e9e9eefe44..55e8e273db 100644 --- a/pkg/npm/api/package.json +++ b/pkg/npm/api/package.json @@ -2,8 +2,8 @@ "name": "@urbit/api", "version": "1.0.0", "description": "", - "repository" : { - "type" : "git", + "repository": { + "type": "git", "url": "ssh://git@github.com/urbit/urbit.git", "directory": "pkg/npm/api" }, diff --git a/pkg/npm/http-api/package.json b/pkg/npm/http-api/package.json index eb7ac9cd32..25d701a284 100644 --- a/pkg/npm/http-api/package.json +++ b/pkg/npm/http-api/package.json @@ -3,8 +3,8 @@ "version": "1.1.0", "license": "MIT", "description": "Library to interact with an Urbit ship over HTTP", - "repository" : { - "type" : "git", + "repository": { + "type": "git", "url": "ssh://git@github.com/urbit/urbit.git", "directory": "pkg/npm/http-api" }, From ad035b54f1fa58d09acc4741e331957821a20526 Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald <liam.fitzgerald@tlon.io> Date: Wed, 17 Feb 2021 12:23:49 +1000 Subject: [PATCH 11/27] urbit/api: bring inline with current userspace --- pkg/npm/api/contacts/index.d.ts | 77 +++++++++++------------ pkg/npm/api/contacts/index.ts | 107 +++++++++++--------------------- pkg/npm/api/graph/index.d.ts | 9 +++ pkg/npm/api/graph/index.ts | 12 ++-- pkg/npm/api/groups/index.ts | 8 ++- pkg/npm/api/groups/update.d.ts | 7 +-- pkg/npm/api/hark/index.d.ts | 2 +- pkg/npm/api/invite/index.d.ts | 19 ++++-- pkg/npm/api/invite/index.ts | 10 +-- pkg/npm/api/lib/index.d.ts | 15 ++--- pkg/npm/api/lib/util.ts | 4 +- pkg/npm/api/metadata/index.d.ts | 16 +++-- pkg/npm/api/metadata/index.ts | 36 ++++------- pkg/npm/api/tsconfig.json | 6 +- 14 files changed, 147 insertions(+), 181 deletions(-) diff --git a/pkg/npm/api/contacts/index.d.ts b/pkg/npm/api/contacts/index.d.ts index d29331be83..e03e1f4402 100644 --- a/pkg/npm/api/contacts/index.d.ts +++ b/pkg/npm/api/contacts/index.d.ts @@ -1,25 +1,14 @@ import { Path, Patp } from ".."; +import {Resource} from "groups/update"; export type ContactUpdate = - | ContactUpdateCreate - | ContactUpdateDelete | ContactUpdateAdd | ContactUpdateRemove | ContactUpdateEdit | ContactUpdateInitial - | ContactUpdateContacts; - -interface ContactUpdateCreate { - create: Path; -} - -interface ContactUpdateDelete { - delete: Path; -} interface ContactUpdateAdd { add: { - path: Path; ship: Patp; contact: Contact; }; @@ -27,7 +16,6 @@ interface ContactUpdateAdd { interface ContactUpdateRemove { remove: { - path: Path; ship: Patp; }; } @@ -36,50 +24,55 @@ interface ContactUpdateEdit { edit: { path: Path; ship: Patp; - "edit-field": ContactEdit; + "edit-field": ContactEditField; + timestamp: number; }; } +interface ContactUpdateAllowShips { + allow: { + ships: Patp[]; + } +} + +interface ContactUpdateAllowGroup { + allow: { + group: Path; + } +} + +interface ContactUpdateSetPublic { + 'set-public': boolean; +} + +export interface ContactShare { + share: Patp; +} + interface ContactUpdateInitial { initial: Rolodex; } -interface ContactUpdateContacts { - contacts: { - path: Path; - contacts: Contacts; - }; -} - -// - -type ContactAvatar = ContactAvatarUrl | ContactAvatarOcts; - export type Rolodex = { - [p in Path]: Contacts; -}; - -export type Contacts = { [p in Patp]: Contact; }; -interface ContactAvatarUrl { - url: string; -} - -interface ContactAvatarOcts { - octs: string; -} export interface Contact { nickname: string; - email: string; - phone: string; - website: string; - notes: string; + bio: string; + status: string; color: string; avatar: string | null; + cover: string | null; + groups: Path[]; + 'last-updated': number; } -export type ContactEdit = { - [k in keyof Contact]: Contact[k]; +type ContactKeys = keyof Contact; + +export type ContactEditFieldPrim = Exclude<ContactKeys, "groups" | "last-updated">; + +export type ContactEditField = Partial<Pick<Contact, ContactEditFieldPrim>> & { + 'add-group'?: Resource; + 'remove-group'?: Resource; }; diff --git a/pkg/npm/api/contacts/index.ts b/pkg/npm/api/contacts/index.ts index f952fffaac..ca5ba9d015 100644 --- a/pkg/npm/api/contacts/index.ts +++ b/pkg/npm/api/contacts/index.ts @@ -1,83 +1,50 @@ import { Enc, Path, Patp, Poke } from ".."; -import { Contact, ContactEdit, ContactUpdateCreate, ContactUpdateEdit, ContactUpdateRemove } from "./index.d"; -import { GroupPolicy, Resource } from "../groups/index.d" +import { + Contact, + ContactUpdateAdd, + ContactUpdateEdit, + ContactUpdateRemove, + ContactEditField, + ContactShare, + ContactUpdate, +} from "./index.d"; -export const viewAction = <T>(data: T): Poke<T> => ({ - app: 'contact-view', - mark: 'json', - json: data +export const storeAction = <T extends ContactUpdate>(data: T): Poke<T> => ({ + app: "contact-store", + mark: "contact-action", + json: data, }); -export const hookAction = <T>(data: T): Poke<T> => ({ - app: 'contact-hook', - mark: 'contact-action', - json: data -}); +export const add = (ship: Patp, contact: Contact): Poke<ContactUpdateAdd> => { + contact["last-updated"] = Date.now(); -export const create = ( - name: string, - policy: Enc<GroupPolicy>, - title: string, - description: string -): Poke<ContactUpdateCreate> => viewAction({ // TODO which type is correct? - create: { - name, - policy, - title, - description - } -}); + return storeAction({ + add: { ship, contact }, + }); +}; -export const share = ( - recipient: Patp, - path: Patp, - ship: Patp, - contact: Contact -): Poke<any> => viewAction({ // TODO type - share: { - recipient, - path, - ship, - contact - } -}); +export const remove = (ship: Patp): Poke<ContactUpdateRemove> => + storeAction({ + remove: { ship }, + }); -export const remove = ( - path: Path, - ship: Patp -): Poke<ContactUpdateRemove> => viewAction({ - remove: { - path, - ship - } +export const share = (recipient: Patp): Poke<ContactShare> => ({ + app: "contact-push-hook", + mark: "contact-action", + json: { share: recipient }, }); export const edit = ( path: Path, ship: Patp, - editField: ContactEdit -): Poke<ContactUpdateEdit> => hookAction({ - edit: { - path, - ship, - 'edit-field': editField - } -}); + editField: ContactEditField +): Poke<ContactUpdateEdit> => + storeAction({ + edit: { + path, + ship, + "edit-field": editField, + timestamp: Date.now(), + }, + }); -export const invite = ( - resource: Resource, - ship: Patp, - text: string = '' -): Poke<any> => viewAction({ // TODO type - invite: { - resource, - ship, - text - } -}); - -export const join = ( - resource: Resource -): Poke<any> => viewAction({ // TODO type - join: resource -}); \ No newline at end of file diff --git a/pkg/npm/api/graph/index.d.ts b/pkg/npm/api/graph/index.d.ts index 17abee3cb4..b98872e813 100644 --- a/pkg/npm/api/graph/index.d.ts +++ b/pkg/npm/api/graph/index.d.ts @@ -37,6 +37,15 @@ export interface Post { "time-sent": number; } +export interface GraphNodePoke { + post: Post; + children: GraphChildrenPoke | null; +} + +export interface GraphChildrenPoke { + [k: string]: GraphNodePoke; +} + export interface GraphNode { children: Graph; post: Post; diff --git a/pkg/npm/api/graph/index.ts b/pkg/npm/api/graph/index.ts index a12edb6510..82d4cc986e 100644 --- a/pkg/npm/api/graph/index.ts +++ b/pkg/npm/api/graph/index.ts @@ -1,20 +1,20 @@ import _ from 'lodash'; import { PatpNoSig, Patp, Poke, Thread, Path, Enc } from '..'; -import { Content, GraphNode, Post } from './index.d'; +import { Content, GraphNode, Post, GraphNodePoke, GraphChildrenPoke } from './index.d'; import { deSig, unixToDa } from '../lib/util'; import { makeResource, resourceFromPath } from '../groups/index'; -import { GroupPolicy } from '../groups'; +import { GroupPolicy } from '../groups/update.d'; export const createBlankNodeWithChildPost = ( ship: PatpNoSig, parentIndex: string = '', childIndex: string = '', contents: Content[] -): GraphNode => { +): GraphNodePoke => { const date = unixToDa(Date.now()).toString(); const nodeIndex = parentIndex + '/' + date; - const childGraph = {}; + const childGraph: GraphChildrenPoke = {}; childGraph[childIndex] = { post: { author: `~${ship}`, @@ -253,7 +253,7 @@ export const addNode = ( let nodes = {}; nodes[node.post.index] = node; - return this.addNodes(ship, name, nodes); + return addNodes(ship, name, nodes); } export const addNodes = ( @@ -367,4 +367,4 @@ export const removeNodes = ( // data: node // }); // }); -// } \ No newline at end of file +// } diff --git a/pkg/npm/api/groups/index.ts b/pkg/npm/api/groups/index.ts index 8679c6d7e2..02122d3e56 100644 --- a/pkg/npm/api/groups/index.ts +++ b/pkg/npm/api/groups/index.ts @@ -12,6 +12,7 @@ import { Resource, Tag } from "./index.d"; +import { GroupPolicy } from "./update"; export const proxyAction = <T>(data: T): Poke<T> => ({ app: 'group-push-hook', @@ -106,6 +107,11 @@ export function makeResource(ship: string, name:string) { return { ship, name }; } +export const groupBunts = { + group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), + policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) +}; + export const joinError = ['no-perms', 'strange'] as const; export const joinResult = ['done', ...joinError] as const; -export const joinProgress = ['start', 'added', ...joinResult] as const; \ No newline at end of file +export const joinProgress = ['start', 'added', ...joinResult] as const; diff --git a/pkg/npm/api/groups/update.d.ts b/pkg/npm/api/groups/update.d.ts index 7788fdd83b..00d3ac340b 100644 --- a/pkg/npm/api/groups/update.d.ts +++ b/pkg/npm/api/groups/update.d.ts @@ -133,7 +133,7 @@ interface GroupUpdateRemoveTag { removeTag: { tag: Tag; resource: Resource; - ships: PatpNoSig; + ships: PatpNoSig[]; }; } @@ -174,7 +174,4 @@ export type GroupUpdate = export type GroupAction = Omit<GroupUpdate, 'initialGroup' | 'initial'>; -export const groupBunts = { - group: (): Group => ({ members: new Set(), tags: { role: {} }, hidden: false, policy: groupBunts.policy() }), - policy: (): GroupPolicy => ({ open: { banned: new Set(), banRanks: new Set() } }) -}; + diff --git a/pkg/npm/api/hark/index.d.ts b/pkg/npm/api/hark/index.d.ts index 1aee7bab7f..eaa92db40b 100644 --- a/pkg/npm/api/hark/index.d.ts +++ b/pkg/npm/api/hark/index.d.ts @@ -1,6 +1,6 @@ import { Post } from "../graph/index.d"; import { GroupUpdate } from "../groups/index.d"; -import { BigIntOrderedMap } from "~/logic/lib/BigIntOrderedMap"; +import BigIntOrderedMap from "../lib/BigIntOrderedMap"; export type GraphNotifDescription = "link" | "comment" | "note" | "mention"; diff --git a/pkg/npm/api/invite/index.d.ts b/pkg/npm/api/invite/index.d.ts index 01f080ef5f..05b43ce8a5 100644 --- a/pkg/npm/api/invite/index.d.ts +++ b/pkg/npm/api/invite/index.d.ts @@ -1,14 +1,21 @@ import { Serial, PatpNoSig, Path } from '..'; -import { Resource } from '../groups'; +import { Resource } from "../groups/update.d"; export type InviteUpdate = InviteUpdateInitial | InviteUpdateCreate | InviteUpdateDelete | InviteUpdateInvite +| InviteUpdateAccept | InviteUpdateAccepted | InviteUpdateDecline; +interface InviteUpdateAccept { + accept: { + term: string; + uid: Serial; + } +} interface InviteUpdateInitial { initial: Invites; @@ -16,19 +23,19 @@ interface InviteUpdateInitial { interface InviteUpdateCreate { create: { - path: Path; + term: string; }; } interface InviteUpdateDelete { delete: { - path: Path; + term: string; }; } interface InviteUpdateInvite { invite: { - path: Path; + term: string; uid: Serial; invite: Invite; }; @@ -36,14 +43,14 @@ interface InviteUpdateInvite { interface InviteUpdateAccepted { accepted: { - path: Path; + term: string; uid: Serial; }; } interface InviteUpdateDecline { decline: { - path: Path; + term: string; uid: Serial; }; } diff --git a/pkg/npm/api/invite/index.ts b/pkg/npm/api/invite/index.ts index 4960073842..51e6ab5fb9 100644 --- a/pkg/npm/api/invite/index.ts +++ b/pkg/npm/api/invite/index.ts @@ -1,7 +1,7 @@ -import { InviteAction, InviteActionAccept, InviteActionDecline } from "./index.d"; +import { InviteUpdate, InviteUpdateAccept, InviteUpdateDecline } from "./index.d"; import { Poke, Serial } from ".."; -export const action = <T>(data: T): Poke<T> => ({ +export const action = <T extends InviteUpdate>(data: T): Poke<T> => ({ app: 'invite-store', mark: 'invite-action', json: data @@ -10,7 +10,7 @@ export const action = <T>(data: T): Poke<T> => ({ export const accept = ( app: string, uid: Serial -): Poke<InviteActionAccept> => action({ +): Poke<InviteUpdateAccept> => action({ accept: { term: app, uid @@ -20,9 +20,9 @@ export const accept = ( export const decline = ( app: string, uid: Serial -): Poke<InviteActionDecline> => action({ +): Poke<InviteUpdateDecline> => action({ decline: { term: app, uid } -}); \ No newline at end of file +}); diff --git a/pkg/npm/api/lib/index.d.ts b/pkg/npm/api/lib/index.d.ts index d92065375a..f8f94ce66d 100644 --- a/pkg/npm/api/lib/index.d.ts +++ b/pkg/npm/api/lib/index.d.ts @@ -2,6 +2,8 @@ * Martian embassy */ +import BigIntOrderedMap from "./BigIntOrderedMap"; + // an urbit style path rendered as string export type Path = string; @@ -20,15 +22,6 @@ export type Jug<K,V> = Map<K,Set<V>>; // name of app export type AppName = 'chat' | 'link' | 'contacts' | 'publish' | 'graph'; -export function getTagFromFrond<O>(frond: O): keyof O { - const tags = Object.keys(frond) as Array<keyof O>; - const tag = tags[0]; - if(!tag) { - throw new Error("bad frond"); - } - return tag; -} - export type ShipRank = 'czar' | 'king' | 'duke' | 'earl' | 'pawn'; export type Action = 'poke' | 'subscribe' | 'ack' | 'unsubscribe' | 'delete'; @@ -48,6 +41,8 @@ export type Enc<S> = { [s: string]: Enc<MapValue<S>> } : S extends object ? { [K in keyof S]: Enc<S[K]> } : + S extends BigIntOrderedMap<infer T> ? + { [index: string]: T } : S; export type Mark = string; @@ -64,4 +59,4 @@ export interface Thread<Action> { outputMark: string; threadName: string; body: Action; -} \ No newline at end of file +} diff --git a/pkg/npm/api/lib/util.ts b/pkg/npm/api/lib/util.ts index 2a6ba82261..c646c3a8a1 100644 --- a/pkg/npm/api/lib/util.ts +++ b/pkg/npm/api/lib/util.ts @@ -140,7 +140,7 @@ export function cite(ship: string): string { let patp = ship, shortened = ""; if (patp === null || patp === "") { - return null; + return ""; } if (patp.startsWith("~")) { patp = patp.substr(1); @@ -208,4 +208,4 @@ export function numToUd(num: number): string { f.map(s => s.join('')), f.join('.') )(num.toString()) -} \ No newline at end of file +} diff --git a/pkg/npm/api/metadata/index.d.ts b/pkg/npm/api/metadata/index.d.ts index fca5f1e7bc..c0a12075d0 100644 --- a/pkg/npm/api/metadata/index.d.ts +++ b/pkg/npm/api/metadata/index.d.ts @@ -15,15 +15,15 @@ type ResourceAssociations = { } type MetadataUpdateAdd = { - add: Association; + add: AssociationPoke; } type MetadataUpdateUpdate = { - update: Association; + update: AssociationPoke; } type MetadataUpdateRemove = { - remove: Resource & { + remove: MdResource & { group: Path; } } @@ -42,16 +42,22 @@ export type AppAssociations = { [p in Path]: Association; } -interface Resource { +interface MdResource { resource: Path; 'app-name': AppName; } -export type Association = Resource & { +export type Association = MdResource & { group: Path; metadata: Metadata; }; +export interface AssociationPoke { + group: Path; + resource: MdResource; + metadata: Metadata; +} + export interface Metadata { color: string; creator: Patp; diff --git a/pkg/npm/api/metadata/index.ts b/pkg/npm/api/metadata/index.ts index 126c48e0cc..e880f1c9d5 100644 --- a/pkg/npm/api/metadata/index.ts +++ b/pkg/npm/api/metadata/index.ts @@ -8,32 +8,19 @@ export const action = <T>(data: T): Poke<T> => ({ }); export const add = ( - ship: PatpNoSig, appName: AppName, - appPath: Path, - groupPath: Path, - title: string, - description: string, - dateCreated: string, - color: string, - moduleName: string + resource: string, + group: string, + metadata: Metadata, ): Poke<MetadataUpdateAdd> => { - const creator = `~${ship}`; return action({ add: { - 'group-path': groupPath, + group, resource: { - 'app-path': appPath, + resource, 'app-name': appName }, - metadata: { - title, - description, - color, - 'date-created': dateCreated, - creator, - 'module': moduleName - } + metadata } }); } @@ -41,15 +28,16 @@ export const add = ( export const update = ( association: Association, newMetadata: Partial<Metadata> -): Poke<MetadataUpdateUpdate> => { +): Poke<MetadataUpdateAdd> => { + const { resource, metadata, group } = association; return action({ add: { - 'group-path': association['group-path'], + group, resource: { - 'app-path': association['app-path'], + resource, 'app-name': association['app-name'], }, - metadata: {...association.metadata, ...newMetadata } + metadata: {...metadata, ...newMetadata } } }); -} \ No newline at end of file +} diff --git a/pkg/npm/api/tsconfig.json b/pkg/npm/api/tsconfig.json index ca67462754..1d5a91a976 100644 --- a/pkg/npm/api/tsconfig.json +++ b/pkg/npm/api/tsconfig.json @@ -19,9 +19,7 @@ } }, "include": [ - "src/**/*" + "**/*" ], - "exclude": [ - "node_modules", - ] + "exclude": [ "node_modules" ] } From 14da6b9bd111e047fa2de3544d06118e49c80e20 Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald <liam.fitzgerald@tlon.io> Date: Wed, 17 Feb 2021 12:35:28 +1000 Subject: [PATCH 12/27] npm: make packages typecheck --- pkg/npm/api/contacts/index.d.ts | 2 +- pkg/npm/api/lib/BigIntOrderedMap.ts | 18 +++++++++--------- pkg/npm/http-api/src/app/base.ts | 1 + pkg/npm/http-api/src/index.ts | 17 +++++++++-------- pkg/npm/http-api/src/types/index.d.ts | 8 +++++--- 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/pkg/npm/api/contacts/index.d.ts b/pkg/npm/api/contacts/index.d.ts index e03e1f4402..bbb037c89b 100644 --- a/pkg/npm/api/contacts/index.d.ts +++ b/pkg/npm/api/contacts/index.d.ts @@ -1,5 +1,5 @@ import { Path, Patp } from ".."; -import {Resource} from "groups/update"; +import {Resource} from "../groups/update.d"; export type ContactUpdate = | ContactUpdateAdd diff --git a/pkg/npm/api/lib/BigIntOrderedMap.ts b/pkg/npm/api/lib/BigIntOrderedMap.ts index e13ee45da3..6f42da526c 100644 --- a/pkg/npm/api/lib/BigIntOrderedMap.ts +++ b/pkg/npm/api/lib/BigIntOrderedMap.ts @@ -26,9 +26,9 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { * Retrieve an value for a key */ get(key: BigInteger): V | null { - const inner = (node: MapNode<V>) => { + const inner = (node: MapNode<V>): V | null => { if (!node) { - return node; + return null; } const [k, v] = node.n; if (key.eq(k)) { @@ -48,8 +48,8 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { * Put an item by a key */ set(key: BigInteger, value: V): void { - - const inner = (node: MapNode<V>) => { + + const inner = (node: MapNode<V>): MapNode<V> => { if (!node) { return { n: [key, value], @@ -97,7 +97,7 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { * Predicate testing if map contains key */ has(key: BigInteger): boolean { - const inner = (node: MapNode<V>) => { + const inner = (node: MapNode<V>): boolean => { if (!node) { return false; } @@ -156,7 +156,7 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { } private nip(nod: NonemptyNode<V>): MapNode<V> { - const inner = (node: NonemptyNode<V>) => { + const inner = (node: NonemptyNode<V>): MapNode<V> => { if (!node.l) { return node.r; } @@ -170,9 +170,9 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { }; return inner(nod); } - + peekLargest(): [BigInteger, V] | undefined { - const inner = (node: MapNode<V>) => { + const inner = (node: MapNode<V>): [BigInteger, V] | undefined => { if(!node) { return undefined; } @@ -185,7 +185,7 @@ export default class BigIntOrderedMap<V> implements Iterable<[BigInteger, V]> { } peekSmallest(): [BigInteger, V] | undefined { - const inner = (node: MapNode<V>) => { + const inner = (node: MapNode<V>): [BigInteger, V] | undefined => { if(!node) { return undefined; } diff --git a/pkg/npm/http-api/src/app/base.ts b/pkg/npm/http-api/src/app/base.ts index 9324004653..715886b515 100644 --- a/pkg/npm/http-api/src/app/base.ts +++ b/pkg/npm/http-api/src/app/base.ts @@ -34,6 +34,7 @@ export default class UrbitApp implements UrbitAppInterface { subscribe(path: string) { const ship = this.ship; const app = this.app; + // @ts-ignore return this.airlock.subscribe(app, path); } // TODO handle methods that don't exist diff --git a/pkg/npm/http-api/src/index.ts b/pkg/npm/http-api/src/index.ts index 44c490c699..b08f46e532 100644 --- a/pkg/npm/http-api/src/index.ts +++ b/pkg/npm/http-api/src/index.ts @@ -1,7 +1,7 @@ import { isBrowser, isNode } from 'browser-or-node'; import { Action, Thread } from '../../api'; -import { AuthenticationInterface, SubscriptionInterface, CustomEventHandler, PokeInterface, SubscriptionRequestInterface, headers, UrbitInterface, SSEOptions, ThreadInterface } from './types'; +import { AuthenticationInterface, SubscriptionInterface, CustomEventHandler, PokeInterface, SubscriptionRequestInterface, headers, UrbitInterface, SSEOptions, PokeHandlers } from './types'; import UrbitApp from './app/base'; import { uncamelize, hexString } from './utils'; @@ -40,7 +40,7 @@ export class Urbit implements UrbitInterface { * removed after calling the success or failure function. */ - outstandingPokes: Map<number, object> = new Map(); + outstandingPokes: Map<number, PokeHandlers> = new Map(); /** * A registry of requestId to subscription functions. @@ -99,6 +99,7 @@ export class Urbit implements UrbitInterface { ) { return this; // We return a proxy so we can set dynamic properties like `Urbit.onChatHook` + // @ts-ignore return new Proxy(this, { get(target: Urbit, property: string) { // First check if this is a regular property @@ -211,9 +212,9 @@ export class Urbit implements UrbitInterface { if (data.response === 'poke' && this.outstandingPokes.has(data.id)) { const funcs = this.outstandingPokes.get(data.id); if (data.hasOwnProperty('ok')) { - funcs.success(); + funcs.onSuccess(); } else if (data.hasOwnProperty('err')) { - funcs.fail(data.err); + funcs.onError(data.err); } else { console.error('Invalid poke response', data); } @@ -335,7 +336,7 @@ export class Urbit implements UrbitInterface { * @param mark The mark of the data being sent * @param json The data to send */ - poke(params: PokeInterface): Promise<void | number> { + poke<T>(params: PokeInterface<T>): Promise<void | number> { const { app, mark, json, onSuccess, onError } = {onSuccess: () => {}, onError: () => {}, ...params}; return new Promise((resolve, reject) => { this @@ -346,12 +347,12 @@ export class Urbit implements UrbitInterface { } if (!this.sseClient) resolve(pokeId); // A poke may occur before a listener has been opened this.outstandingPokes.set(pokeId, { - success: () => { + onSuccess: () => { onSuccess(); resolve(pokeId); }, - fail: (event) => { - onError(); + onError: (event) => { + onError(event); reject(event.err); } }); diff --git a/pkg/npm/http-api/src/types/index.d.ts b/pkg/npm/http-api/src/types/index.d.ts index 36b63c1733..57d095f769 100644 --- a/pkg/npm/http-api/src/types/index.d.ts +++ b/pkg/npm/http-api/src/types/index.d.ts @@ -1,10 +1,12 @@ import { Action, Mark, Poke } from '../../../api/index'; -export interface PokeInterface extends Poke<Mark, any> { +export interface PokeHandlers { onSuccess?: () => void; - onError?: () => void; + onError?: (e: any) => void; } +export type PokeInterface<T> = PokeHandlers & Poke<T>; + export interface AuthenticationInterface { ship: string; @@ -42,4 +44,4 @@ export interface SSEOptions { Cookie?: string }; withCredentials?: boolean; -} \ No newline at end of file +} From 24f0ae5b792a7536ac3004ac1e31c37e70b45083 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Wed, 17 Feb 2021 08:46:45 -0800 Subject: [PATCH 13/27] interface: upgraded SourceCodePro --- .../landscape/fonts/sourcecodepro-bold.woff2 | Bin 0 -> 77628 bytes .../fonts/sourcecodepro-extralight.woff2 | Bin 76588 -> 71812 bytes .../landscape/fonts/sourcecodepro-light.woff2 | Bin 80792 -> 75744 bytes .../fonts/sourcecodepro-medium.woff2 | Bin 82268 -> 77400 bytes .../fonts/sourcecodepro-regular.woff2 | Bin 82304 -> 76848 bytes .../fonts/sourcecodepro-semibold.woff2 | Bin 82624 -> 77380 bytes .../landscape/fonts/sourcecodeprop-bold.woff2 | Bin 82452 -> 0 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2 delete mode 100644 pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2 diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4efbf2991d993cd1301bf5cfd2ba03918760fc99 GIT binary patch literal 77628 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%0D<5N) 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 literal 0 HcmV?d00001 diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-extralight.woff2 index 1c2a3929056901e57c5cc37df1aa79ae36c6c9cf..4af3968e0eb2eff8070d3e7eca44158d924c1e2b 100644 GIT binary patch literal 71812 zcmZU(Q?M{htSz{0+qP}nwr$({+qP}nwr$(C?fK80s(Yqt)>FDF$wODNRw~`@@?uQ# zDk|~-fEd95umAu6fcFaj*-QXHke&aX{(ry}gAG}P#|nYME_cJ}lmasVI5h)g10n%V z7XkqTE#v|x&^EYBfd69~-Oam=H&i8{GFR;!J-^jA8L}i(nM9AqXuCpIU|(hPe_N~v zE|yN-B0scCNhJ`tzW)1v;eYUWv`}#emz?z{P0$cJ0D~+elZ7UviXwz+MVA0atyt9@ z9&Q&%`3W)fFJg##nsJHpv{ubT4qbz)3#yt>h%3ZFD5boS$uPvO)n)ARw>}I13x0XD z<qFm8a6HLXw{0sKvMc#?`r~!m)ix_8yCJWH2HNau`Wi{Dvg=M#Bp#Yk+o^K4BG$*Y z$94*EgCk{z(J|XDWMOMmZLnP@!T=#Xfm<tVfENn=_<Kc|ffWArZT^+|(7}BS3=z?h z7!k0{42_Qv5zst&ul~(@dH5qSBLf{N1=Ubg15s`C-ej$1Rf}6G^NF`|R<C6>4!L6H zYv|IQ@+8dcY1f9bBsta0d5^f;KSTaI=<Dq86(K-A86zn+Y(Kyk0bO`TL}Gs&vLg}P z{V+G4^OsbrH7W#Q$mOz?D3RjXsCDW<^i$vjWKaiH5+8r{6InkaL(-3k$Vi$<&cUc& z=8y0J^FF~ZH+09fPC@JsZWQAv{z^4M5JsJpEc7@T4*hrVrOfZ6Hvt$bnuM%`Bk^?B zf-@z9p1LescpRUJ<~-+H-I9=t!EXKsCrAX}N-nC2sEG6;f4VDV2^dAn+S;hk|9;y< z9SURx+!}E>iB@KQ;{f6Wgx)myA~+X>%*0Ac*&y3(*n(Xt+LX2%!n`JNX#DJ;WguXh zyg9y)vG-}cRo~=Cb~oz@QTfpL+yis(k9hmFJ$_(pE$(M$+jgop7}at=<5^}76OUdj z3+3tCC^egAEXCO3!_|Oj4LsUpB9*u!*QbDhtKxD1540y8=HBM%4}R?E!Gi}65iu^@ zLr92-h=_!Qh=hrVXf%9$JUruwi^w>db2Q!gG<%KnEZce3+-!E5(|q<n`-to8b2g)m zvu^FGv&OY&*KY4a3%c&5Q=G-T=>SL%S#Y=~T@oRIK&|LGj|)D}`uJ;OKah)xQVkW% zfd^XHLbQcv1#7LJ|Hn7~E!$gvH3kT;A=><~iVj;Nyb#wuf=Yw-?`QOrr{Y)IgUGTJ zpnc3c*fxYgwN}jS_s@UnZx3cxB<y=&|F-kgVCKi;#rMs!Y3n(K%-%ZYK{8q}5Cri* zq=koz#1LA+Fh)usAR2avhzLP24r3TsH>?(0W|nUF-nhRW<uuKaxNlDJ$AxvD^&a2N zMxauo6<@EwHjhUpe#|}f@%sbVcjPwVt2<^Kg9#)w%U-^H4>WXZ2##gH=(qHK7iA6B z!FZ(g#B;|Zo&^t(@7HR(;a6hF5vOx%ZShOlqlFBMl@GrY0D8Vy^J+?n|2b#0@>-q( zBgRDEZUJPKp;Exh8|witESs{)in{F;Q`ac!S1xkV<z)1%Sf*5Tj2DrE#WX5ws_PTl ztnia>zyj_#p6a*xQyXpJdvitatin}&px;w?gi|3A`azb~nZ<Hxz8S#yZ*E4NQ7yLt z$uH2JrkoccLGK=*3RfY?IH!YF_;`ix@6f)lA-{+9xu5MQLH7g268~Dajs{a|mt*W< zY(72PzBbOcdCvHmW|@bs`6ikFRu>`-QV~Yx<ueAK5c(N~7dnC>iemsifLrN^6un0f z2?i3w$#Td3ckhsW1hEnbnkI;d2^c~U(&5rFtas5M7u%E{V&QCnSki4|6bu{!DYWaR zmH2H!M1&yUe`nTDf24ZTKV_rqduNe#3*P<zN{PX;C<IB@MPiVQk`2~K#bA*{NCI^w zqbmp~r^q735D*%aQYpeEC`Adeh(IFN^I1SasQ^JhP&2wTO7t!#6}*|bt{~OA&g5;R z8>10~sv)963+R{}Xz|;?FdZUb9l@H;#yij7rQRCe)i%RG@ve0`4x=ZKnlou6&o9<S zzkSb;Y`H2NviD08fmxFvBwuyCef;3Iq!*vl`2b)LmRTw=8QBT9j|uV_+dg`(OW}e~ zWr<6?*r8+aEJT0KJ~prUUn0G$^l$vme#UNw+6dcf9j_<E&5UtM<+k{?D3NUu$VuRe zl^!9~90oC|LlKO&LJ44tm3Dj4!X+FakO+qngd8k{U}BnQEy!9}HOqGCv=vO4K3b=M z9Rf!V9HA&|C4jmYW1fH2c;u>3>+?bG-(U7v`c$0WWOaXPs#M`z_MtOyQc}sQ8SFLY zuA;ro$s>iY0k}clXIEaYy?f^tQeFAuSR5?;+d$p$lj*R56d;_m!=MRzf0GM~NQ!U? z85IjD#00>}nYw4}G*eO01Qkfge&0-%@StSnS9W&rORF67Z-ZsOPpD0BMktPtd8i9m zCYy<82WL^Hh&=tS9+rh5Cm;w>vKbS_D2nyg@{fa?dSAP1#~@k<RxyP@1fz@G>}!vE zk|*5$mIlCFxeBHxC{XSG;nx2JBD6*fHd7QHU2%Q=d8=04`2Gna@tp`r;0ma}aT<s> z7I8RQPZcP0d`UWH{dU~}zu)ox8~y{Z+z(0|ke3Ahr-J$}*&*5Qh8(YxYLh0Ns7tx& z99zlVWhI2hSBwO?L5J8(t>6Ya>4qzfOX(fBOgOqCqgQ%;LSw#>^+Mx@`^ZG=)|5M9 z#`wkAg!P;ED>QZodDB!6LP+VW(+_}#KwbOtRZ6yEIVNQvO>zyC@%pDJDbHQ2r7uev zqngDj29Am`OvSU8YH1%fMkGPTHTxr+6XVPc?TxD9#r#^9wCM4ESFipyBb)aeHlQ%8 z)Q?6vCY_bW_dEww3Pe{50m@>~quI~(FEs4#4*L)CIOp6fVz}4lZH;eN&hRLs3~;pT zZ_lshmiy_>D0SLy3(3PHnwqVvojmPTGATYZO{UaDi$GivD2#Cphsq~c&N$RCg6;+x zsv)(!W8UmQ6iBs{L8x7wcQrWB0=hKIW!5)DK^V~4z1mbos`4KaY|d*W;_>R9&YHiO zdm?8SfE8+TUUOE80T4**NJD|r#CurTH|^QL3YyzzNOpKw(!7_FVhv-}YAIhh_(tM~ zp-fF_45Qo0nuWLI5nld(An>~PI4byS?V3@POC*^f`H)q!*9Y1ZzR)*Ghzk#92qwfG zbb(+C=e66~^80G;-Wig$_O@LjNnaGz%M6Dxa(YW!ga<@;kN}6H_!tP>WiI0dP<d?` z0Ak=L)oX+DhnD9>{-u5A>FNj2N3Rs?&kwGlxRe<OLQzz5#@s@U$?7(5b@4Hxjh-)R zzcKw$7IA>Ny7Imo^a#3h{LYi68;beEC(&hCZ4Z07rL2y#IP8NdIlMzufK(9ZCp6jL z5V9hV`H_jGaERP$0>T;%>SJg~JfTvn(nMD;EU>paI!1;p6e;Ukp22(Wc4r*P5Ll!v z%~3?#I8!xXBuJW*ZK5D$`N+0)|omD)!B&h)s6!E6|npK1|ph7%dOGjr~il`ch= zHD?&HzP;3V4EiS%>7tV*d92U{R2x#{H2gUli6BdoI(-O11L%O0Ld@1?O{K3Xg88ty z`0BI>rXC|ZK}Th)!ddO+qGaV|7?oP^VA)Zl#d3~>hKnzY-V#G|!|6(FqAH~~)!%Cz zMZ|V9QL(w^d}!~;sfue%{l}!^U_?|^-!1n<g_!VPXvoW?Hi&9m_{=yR4fH69DO&Q{ z%bO1jo-lqJ9Q`eyCqI|QCQrNjuhIGE@b%>B?7~vQL`u!jQ<vxt1L-1ALj=VIqp2ul zG#L#P8y{|{%tuBLNy02;V}rtYo`40343HBS8`4^MTCuI!)p!Z1qNFFQF0glLtwvhB zvg`i(a)^MK=G6S)uD%s7GZXaW6^orJXSbS;m7L=bS&ERgD5;qVdg==~5g%<^F&E?L z5m|IJh-7CT*izj&p;zGO(wzktuk=N8c<KTa)FRiWP~8%oSJ+^4*z1CzRSDc@;;bS+ zWcFGL<shA|%ak!HD@;mRnLXGNVWY=C-oRm`iyIst@WSuKSZ{4Pw=Q}2_XYAi?;UA- zr;{q(yWytUu6H=`T$j%c^zGNxv_SBhEE`W%N(nBnP_xum94<#YK^-yCwdIg6*(ICQ zv!3!9BgBB@?8ef7gou_JXLdMI5i49WGs3Wha~pNgb0gw#I9V$|gK?UINxOZ`u~3`P z8naB&YO^cKprt_J5yH~BU?d7!3KbjxZ4Mcvz%_Fm%#CS5GIS^2w?~!~1i~Tls4O?I zj8Yt$oB0HzQORV>_;|#^G3iXQE0{kDL}U|<r`7St>UpZ_-N10yfW*=OUT1WnRnlV> zTn;u@!g$41rsn#$KOM(~cNXy8OzYhH%(^-pJ!(4EvUa~Dse+b5B<4owsZV6Yyi{$a zoOJngBM7C?6OVeV%<=uJ$!XOUmj)Ey++mzhGDc9R90HqkrE{Blap!<69>7AlsK5~U z!E_{6ukiHf2?4@`c?U_0jcrJ8$~pyUUt5=21d_Urn}O!&7E4o*)cBR{VmTz~==tD6 zdI=69w3PFxjCCL}SQZqHbAmA>h2{Z)pcoA2eFVdT{#bAm^+Xp_sxBw8w_ypz(jh+e z4FcH^;LmI%V(An<X*yu_ugmfvE@kyAJ6_u2%#k!bLs%=lmcz+v#~Ena#&@Nu+WJQ; z>yZnKVkk^5f`EY#45{-$j8rNpMcHHz%}Wa+4c!JMlL^K04v2|IlnRxqmN5vkYoh!R zLbUY}$XZ>-(^Al@*X@USX7%VU<IzT1@LVi*`>77~48>A9Kur`SVd6~?Sz?)E4ag*u zM5X!WL6KNgc1tusL!vRMbRyqS;TIGtZP7{<URKqtpjxkG$g({59PHie{3?9M?TWMQ zXFq(mXGn8BubCPytCMNm-bt{mYsX1gc+Ul+1-40*+Ld}qaat6+BAF8{ST0(nR;eE| zT^EgITiDH|l-sM7$trl6tS*xx)zG-?`rq#WTXET(CYKpCQ!-H0f0)xl5IhhC|Nf^a zG*NxK<Y*!`6P1?d*;t<9g1a+oLwf$^AdSd*5+Y-WM`iTglMJt9^V&wnF{9e14=~Ub z3}ds1ks7bs$`O_O>P1bY{8ar>dlNP>T4Jw04q99q7WQ&->S}MysK0t9JZW^T;7+^X zPsIiCiYbh^qBR{=0xgXwZ4#C>5DOzn=3_v}{DvG=Vl_?-PeShAFJ7x-T8*)}o3y=; z=2t30UV6CU^K>!$n47v=yuWQ+tQ?L1uHDM-F1wQGIJRHMrSZ{<urr*jIXJZ-?5|I( z!+!Rerqwo!PQLUVwu!^C@Hq7DJKub)M1_>}WY=1O%Th&#ZP%03oy+MRD4F0-?@Z=0 zQ^iE)`Xoi*fk}814^{6GAj;O0G)y5k1vs`iS*K}hY)Ko}t*q=e9Gd88f*0+MHj{(j z2DH8yv3siylf04{xqqUWEO`$#Xix7@6@`(~35KPw+s8WkoQg1{^Njz~;1p7tl~ths zvUvTMrE>!YQSxpaoH53Hw1D{&kF4?{2XQ?wfa5+&uV)_~xT-IMl<2DOqhS9hM4a}3 zNYt9H@cgY~zT}O&Bj5Zak;m0IKD}CwZ|2DZSNbIxsi~xQQoiJcK9ie>w_t9n$$j;V zB(c0Kf;4p%{UI+oX0N<8E@*-0JyD7-0n9oS4WhP%ar8U)1|8m3zK*=Xq~XT$iHcA8 z^RVT#wqOg-EW1Kphf%`nj)wNa&L6nzwqctM=G;-;Qh0<$q(Sf6z6s1tKvF7gL}vKR zDfR3<oBrmB{5kCGdoern$-QLOy)?BwST)lYvUP3GRB=<AAi^XTmwPGC_pkp}0le;W z(%Q-2Hw8k+Vc5OT^$wF!2gJs5qI2uFI*#9}_B1?z%A^s>--)dvYHFqA!cy(G+!eX3 zA4$(?^ug8V$93tnJtHI~CP$@~p{d?$N9R_T##x3L;LcsdluBK4!hvUZhas>`a1aNh z*chgAbkNNpUq!DWS5u=!5<@L|cL5wl40VKS#liLz94@EEw|x{zoiqdx`bC2G8ZgK} z#|E>#@re?Q-_b)GKMxb@SZ}BHS;q>Cob3`4Jp0%@=>bOgp|-s{JNELu)Vja)1o<ms zT7_AuW1eM*Vfx`Zw~V*O`1k&4G&(suP;;$t)u>cHW?tXF<WzxTG;d8X%o)OA!hGkK zi$9c-Y~+sUd*-H6mBJHS>GCt>B`MzW@7Pv3v_T?M6&$Lbn6%8`bk5ruA?(#)bbs7% zWc2PAGDpCpmXe`z+H>5`w;0C8fOCnPQbRd}p&(lO0QEtkqIo9+P$XR;b#I}$VUj!a zwYr%T`)me>U@(|TTEcWw8vv1P8%fF1*c}a^sHEP9P&~jkY01+@iP)dc)49W^3E>kK z3=A!@$lZg(QxR3u{$>3Uc;#)Lz|bd0xyxB=B+^K+I#RZQdXWeph1^<=CQ`K(^27mh z1{m%nHVpJ7^s-Hh5d~FX1IQF_89kHw3)*90;BM&Z6idgx9j<mw_XNw##e+bDL`*@T z28}FB;TjzbXK&`}cBo6GCd@dKe8#HcTdfYh1~p&J6H#-7-2AmM?8T_8q)EJmWN30> zls)Q*_a1((oiXQknD8q^*!JRRfgzWVb?bO=adO3<!oF7fmyo0nvh4tNYHi<7*!_Ke zU0fy9{^6cyx2FrN>F$&+E9kv5ngYxIbk%TG{mBiXHm~v;4r(WP|M3b)1_;$bk|qRG z{bC<gGU#D+!ue_d?6hX7_(qd8#8^eRYt3*EAu-VtQZr3eb8Ry`e3w-da}BINge_+* zO<Ian!$PsJnF%DYAr8z(DZ(pK(Jd-}`aMRxmp*OxmX#oHd)S>WM;y(x<h^jAiyu+S zM$6u;EM3$t(g$bK&-`&)3KJkmQ6c?ec6MN2*Q{XJqg2#KGJyg;O}%Cr7z9}crD+QO zT@G|05CVC!owRsy^fnrRNQUAlHC_t4iy0vNf9gPp%JzEJ^!eTdFkJHlDc+_Ipuq|D z01U#~7P)EjtbGsW{}TcDzY!?^QzLee70nI&sDS?ciU5r0P(~*L)2L1aCqT{zCb;+C zr$R(LraoUU)CuhM&UnklzIfA!H+->gbaRkqv(nk1#)A^S4Cd01l@@{pT7v_vclYHD zRS<yOehz`F9Lo~TJwNlieuBoQ;u`(%BnT8BK!6AkAX0z`;X<=f#L+a6fYjeg$OVZY zf|8wy)UV67Q`Krhw1)1h$v=?#d9a1fEGB1$@F{VKh72>kD4&l=cYf}0g%xt!ho|u* zyYvUEin(@2t=iE$^u*l!XTI9EXY2{}618UtzHtHseq*pXblxbR*AHgTO$0ugM{lM* zZIjP}zHxz){k^~@00>n12mllyQV{v)@J{{g2CK41eh@GH2dXdBFc@Jc5?Y2K$Tb!r zsB#<&k&cK6LL33>$tJMq%mNU}0sw#rLZrb0R+nT*M1xob@zf|Xa~KFfqzD24!3vOs z@tK_w!Qu5{F0c46jbK5>*n6hrN<@kY0<xC*^0YGqYG-Y^Lml1&`}-CyR2~pyrL4PD zp8yevFaN-@rWZq5CO=(uB8Ey55Zsc)G+M%4#UA&=>BC@pcW6SXX^_1FKPSB7Uk`V0 zJ9{&RcL=G7QMG^(3ktiP>eMWFlmG<#M9ar4`2L+Da#}IkK|&fV`)CC?lX|V^s5*pC zrTP~r6X`eT$BmhSadXfXIiBB2#6?zxW@1CRZ3`nN>sD-a9u>q`ixNwxZ%u3|Y@&K* zbj*Q*5r}E+J?@y$@vzT^>8J#;%9_Z6RUC1C;eU=Xf#~zWu?IJur{fZC_|We^RvxSp zx-<~KKU*543T;!d0Vvjv6AvXZ$T({&`AKt7xC>DpQ;`;P&g$AKH_N-TwMeuzb09?R z{<M>@R|JH+^qjTSCWPuY7EYG%8HEd+v5C9kjO^-`5Bx58BKxHdNWKBDIYQ0`p!cS` zCxnJ8N2sO4WAlv>V@_oVbd^ZZRkYjad>Grx3qWO4dVZHgsz_<Ia(jh&2SI>rU6B@d zQf0n6=g5BnP2=UDSyE#R#|qQ(x6`0h&W0%3h9js@ur+3kGF)62dQ^TUhgcEo{5J=F zrip|kQ)s=;&YV<c3&`SCGX%?>pAM89&=`6RLk%&&3^@!TVhGm2O1DeTM(b*ovk7I3 zY~?Tt5EU=Nj&;T}krwIA)gI_wEwmWUYZ|}oH-_FP2#yLk(DE?3?3CBSu8b2yK>Q0A zfI!>Uh~WwR2M`V+GQ-2<Za5eWQhc$waEcR_2MV+w3aYhUJjl;5sLiQFi6J^WcMeR# z_8}LnY+&jZ^nXbL2JnAL0_cBR9^?PEJU8;c|LZLC|8WNXU+4d$A^(RTxc^5*k{zWb zN@8|20sd2)QCh+jw%5VQ3!qCn4Ms+89WIsnFaP|}y4k=U{)QBUXf=R^v<I-?FX}(z z32Ah#bzZV7Lh0rhcU^bPus%L%7%H7yN#tEEt7Jp2-7H-h{<Akh^)Ihc$pkfR;aThG zVfSY&qbW?e#SgI$!F&KjVICGr4mV~7&g*hyIm(w%v$SX|afl)cM(1oH9}vp2M6S$_ ze|%t=C)O29s<XwzIB}Pcq}0`~!r<9%+q!?xD$G>ZvA4Aar(B;dK$9acdg7nTZJ+Ka zw+d=f7pAS0qLs1a#V4#4xhni^?UqgXA}&0Xn{T<T-pej9vbt0lnx+RD9F#N^bzAM8 zE}rhKo{5hS(~5I>eqZ}XuOrevvi&jefTYT?^Uvu4^8o|>gocm-(c*G*`ddqFTKuv> zcP8bOZ+*!=^L<4{{#IXJ=IU!ZRw060O&0buJ8YdetvWAIp~Y8Q^CixJ;z+vvh+Ej= zj>|fywmmuK-K!aEy(0x{ytmCw^t~ei;yE6pplw}|o}u1Qgt<Sy864D?e@kzF{*Pgy ze`l9{w{haX*7yFlpUNNpx>+2?Mv8}|capmYc^$jwf1zX8yY|C-{#UfM^V^5KYxkN; zKij>X@6~>@4stNV?%n+rJf;aq_Q#>u&f6Tk$4y6?{L@E#&b%RbJ}a_ZUV(>%ey=OL zUMXQL#c>-j=<IiUfGst-yU)+w7pXmyS6I3#H?@*st}X@GzTUsB_Vr84D<Kv%^Yy|@ zA>EOs*t|tEBD8dc$lzzTrr(J*=C-OhBrNL(2glu^H*zy~@ybnfIY}l-;;c8MDKuD$ zD5grJFNs2+6P=F9VT|k)IAZ%Q@sR5UiuJE8Uzo4ev^S%>tX<uI7A~g)Ne7!71@*VQ zJ#Tt>ciumZSv785<}vI`YGXaN4L^1{>)S8U?7n1#WwwWdnbD!W&XTIaTbQ;^v1f<d z+2lbmoR1z!vp(~LVwnfSe^&$*7-dj3rPE^PH{-*nb79>u$RQA9uGuPB2O4W-Xd8)? z(CfE#pOp(7ks7xjKD)o4J`%u!z{yI(6o!H8eiBlclT#%0)Id?EpdnybuH7Y%n!lmH zbt=_+yQ*6EKYq0N{PCA^k4=p;DLBc@0E<Fup0K_7{U~EUc^6WLdq^H~>A|V7#b-;E zFWBAbh_&Qp-9JZi*;<1~6<p<Ap?7~<X{}oss$B;{`V(ckj&a@Z2QC~DtDyp~-A+$_ z<BarwxEX}C#a;`wy$6O+*9opN=2Sy|G-izZlm;Ixb{?pdF}wp^19gp2FZbmR7+<G| zL}2&W(-GT5im&j=h;$D4X^JtkroO#s^OBn|5c@f%Abz6M%b0k&U04vBx$+R<&NBk* z_N^w_tqimd#p@A+8~F_$OiaL%g@Y2H%0~7o?9|bFrhr6}jSmf%B!F>NBcE)_<BL9l zK++SSh3{)xBA!1cAr~Gauem6S`#d4fXrV+FQz0R9|Kj!X2#1QiI(vKwLn6Z~;eUs| zf*Va<HLe+YHX$10cFp95gjgVl4AU5ZJ^t7MF3BtAYKiP%ne*tD@d8QWEZ6K{^S1%x zdrL&s^@n|4+#*AJW|bus!e7xVaS%845vY1^4zEb;UwwQ1a86(XH?piAcSDe^*wo(& zv-KE!$G)xEmq5a7bTCHBL*1Gh2PY_pQul@zaE54^usBYRFvDMz;2&z66^B7hhpnZ= z_O;gW4}C0H(Qgj-*?Dn?^vUs79U+9WuDK>~C}|`)m5es0pKm@Q-alzJeNtV)2o5(& zf@(&>P1+=F23Y`k93NllW%ik|BMyvv<kBDGgYUC?b8AuIBF?h=EyVelErR>t(x1Pt z<0F|1g%TQ_FlurqVOT-AFN6{nQ?IJ5%E|5KLg&j8bRGU1P7;J<k84>umv=UTQ%a3J zI;vu-GT`o%YXuKNIV2ZtI`O|O3*{~eFNYtf>X|)T5!TX1=#-V!FX73`jjz^;QYu>p zWYmj;Bu28$q1ezeTQb3Z_>!|kW52RU#@4Ia?6o<62z7^h4Y;_f{;A;}eYH8gXkTzm zB)vrGe=jU|c6YYcc2vlrGl+_b&E{g4LZ2<;(5RUvbvyEw9F82^0>#G-vZz(5%G9?p zFfTu-=H??8YoK8tU~;L}PIK6D6N4atV>YaV<(T0yZ0Aq3=<d`caq;Td#W(U=T7nyv zVVWi5=FVHY(>CZUseS>ubyqiCT}^Rc#22*6u3JI%pQ|_pgm=cxtZoZE<hhudx&vSz zLAhP1=v}^k+1f>on3-e5?SxtA)tpYIXk1UC%2roO6;%{YXwDc0B+Wv`sV46P4bGbW zjz&V{A2{RwrLwO7QB6#Y<J6U7C*eYlhTJZYd&70>&hWESY5?YD5HnwgO#j&{7>0ge zjS|?{Gf^0q4?<n0p^ms0*C!T*?+Zb7awTv5uqTo9C-$}wkMjeVg<(PaB`~@Dd|I(R zasvX8az2R+rWInTdzk{e7$RA~gy3*dt(mO3FBDd~m@x_BYO$&-C{@%{W?5y}6+w$S z0l!5M6&n*bJ{a)`S1omLO*mqqHfx-9p{hbtTDATw<e|m@+5+yTwZ5OfNC7zu1}A&R zW*}OIwfqH@w^JQoDUl;GKpMo280P*9KHeJ96@?A2oa`xxAF*cBt`;kr!xA_ilp4r0 zM%q`GdV&PffH;pvpi#($WV%L$11x*bc1KbY1c4^zt!7xnJq*aEajo*8cN4!~q7I?y zXhMzPo8f&+lWkw1f(SmktUWkdi|uykc5y|lNpvDC3<u3<5kSq>PWV!MkAwjoz+rTG zy6m?{)pn@XN9F4MI{XF?IZXhw=tI5MVI6N)#)N&jb6@n|P+%?$44P{mm)sv7bI0Yh zC+j6T!z6z4zI7~hDl8e;1)7-nNxKb3{Jx~3UCO{0H^xNxeue=cQMGt)4&mQ*YQ&kI zV9uP{*ZS(u2Tq7Vm-Sl5sqrI4Rdn}Pq7_!Bx*3G2(SVnAPeoC9=ss8eO{BT4lp;qC zRVzn#g{iK|O6KB@+OJ4iKF$Puuq2E^YYv%V>nU>n#|Nj@K8f=d!c!Ly*FeO;g7VcQ z6`Kd`JP=k4Y4TXpk=M<4)!v{at6mZ?>Z`bC>aoeGBn5#s2Z@+a!l}IGBva5do|0)0 zEZBio-%X|42LWmp{g!js)i)IVtw%L)Q;fNoT`iQ#)Tb~GnpZ1N`NFqX2KuZY=Tufx zdVWzGu@}Y;{zkNr9R|&V7615bi*%J@kOia;g;$I6-9Z-i)!}!L0z+~KrkVP77}HIF zU=s-;Ww16`$}@sQf%GtTB-V!*N6k}as!nz2TQR?2^iO5h=bAbl;AJr8MVA(EDEo}i z<u^!-dHFxuWFh>y!eO$?<Pke*A13BmVjq{r7-h96lN?p}p_`OQJ-hi{Yx?*{L}~B4 zdFDcx*{8QsF->d25`)>U=vXrPNcS&D5RtP%XNThsA{b7XOIQ;-X%D|(B^WN+TopoL z%&R#dzDIRsl<?9?(EV|ug{xyTd2UB60^?ib0D_p4hHZWD19a>vC%iwDfZbtF=K%t? zwXTsF!!Q_vKAGbPDR6`gtv$S;@ge_<1ynx01#y9WAq1gz9Gvq3ar!hYt(G~ht~#H{ z?D%iJIEp^Y#Ckm1t>S!w(gJhgf<n)Iv%1}@QL=24KY8+G@+62mfbmT;^PN`G;Cciy zR}PjQ2NG2v*8ew+rtzF*f{q6$Q@+ko3DI+!M@gN8v`km3R^FQF+RFWVJK>D`Sp}$I z03N(PnK##TDk}Yr5E`%2^SD!d`6WOOHzX@z)AVG*HcJKOq7n?CfuN0Ld}1!Cb~Q7) zd-R7^8D`2O8ne#v*-=q6Z%Y<X=Vhmf8LqOeM@C;G1#vEnS^7l=m}&=z>gL1%YH^-; z5TAN4=OdD9N%N`gOZGGbvU3n>cWye%pEjf*-;(}!v7x<YqSIC9E9*~rh<L(JIT8Ye zg|SuXV2U|tV+@bVz9d2Grd-ey={d;`rCe1r;q3Lp7B94610!neRvcH8sk=_J4}E^7 z(%V|1-tX9%zVs7S@J>1Knl>T~w+(*JOu430vr5_aC3f>nHULQZdoVg4YX3N8ujR#M z69LF7{+kP#$5+ZMDw;B*uONPFzIi#5z()q&6k0(o<Pp{2T3S4ES2Cgn25xf!jCuXh zt$qz$(v6Mg`?G3&w42BD<aNx+m`!n*n3&tmehE)sBfR|S^^(O&<gyfJQW_MkqLjja z0RUGDh_)bHRr~{1ttAJoeA#?%1pXT=u`+lj<Q9^zQ@KQ?o*^8UmLMORHP#5-%kR{f zC+5z&Q7%<ex7M(E0t|{>!@Js{m$xIdeDlI4oRIHavscBsA^<4B3y&kcA}HwJ@N|z! zXoyOcL$ZeXk&aL8v$(!0mIap&w;MXpM`R?FJdDc_O^v5FTc$LFVY=J^Q`O$x%jb_8 z{g6ftjBG?&p)aB@$XiMkBH`^}tpK>U+`saTiUqf<u!z7td!^-_nr8F2`GLudWz|c8 z&-MkQ3yVPo%=606Ajx}wYSL`*;BAMyWXIkg*eGo%VCv(0B*-t_Eq8M=`vYZs7Y_MM z2&%1V$fy}_SsY(+a!fPP$eI@LQgcKdz(cIl3}_hwhenZqToaEz^8NNN8Z>Iy#;=<` z=TevDK&fdfpu^AXP+xmx!Zt|f+ZjNckF5@@_J6BDVWQ@TSRbCw7l))jCN<!wQOALk zj$u?2$0uOdMb&JS*I0PYoVg1Yr&&u|fS-{TuQp_xcH0r$O-R;pCTzEFktV7w^KO*> z$#DV2%;#-p<NoaG?3s{M;BMj+11{ke%22|Rw*Cjt8$Gx9zT^b*;$yZyU?PW#bw{ZD zKUAXG>@j#_%t}Wc#-Ym={C&sz58H8vA92!qwIoag7B5x1Xy)$j(!=G7f}-}?;JPpw zs%AgXz7NRC5~1?S2F7(UwrrtXVp(tUvAW)p$ohJJ&PnYyv`gZ(Q;|G%d-hLE(KC|_ zcvbj<InNv<+wZ@LhCvhIj>e|S%o8%*T1kj&B%&kk4pB!;On(o%W8?AmRSUi(e2Vix z*`)Re&fG|K9MsqVT10X_CYh2AcTzD?_PnZUN%Sv@hAL*dsb`)(d|6{g4I4CQaWm*S zqx^6S1K=zDj2Vc)W}pn@N05)P9PRgCdvS_<(V&T=kr!EjD$}_&Qf$SB_FJ|#z`eCy z<?tsOf?G$k-XLs_UZVv*9W;Rji#O0gmR!;b*}LRx3NSU}srXcT{Ve&h%GPfyI`|%D z)8FhE%nkKV6?U1|!5ZSs6PufopLqTqQA{mKl)JfDU~AD4@#rI|7AySvh)eMam%~ZR zywCk67H~bYyBZ)cD-l3H$$g$*&Zx4hWS=>-`PV(e!$3TWYMvMmrz>49-sPH>Lrl6# zG!x73N>S_@*$;5|&t9*ESW#G!ZdU}`R`I^rOsM=B;)!*&r<3N<v#;L>JK-3dJl2QS z>=NWLRN@9Y)ZeaqqB!Q6jNUE2u({vc4<oE9!%A((8OZl@V_;yR^Jv%*w&yojA)v8_ z{HMLYTXAKma(0Yk!LoN0fnqD+)iLCl7;vMkeRP)<xqNeL8KXm_RW74eR=YwkzMJKd z1~oEIDxas6;#oQxFsxTGY)z#hY<Q>j0(3lhxhG_UX=4lGReZNRLbR&sD9!zSEs|r; z_x{Fgvia*Kd>l?~Ml^VQa>6lKwRK#{vGp#Sp%5a?u1AhhZ*Ru3404kLi*6>{tTJ37 zX_(CmkcNvl)H}-DN30dX35#Oh#D~`J<-~$g_R{|1F17{iYSss*X+;g^Oe@^22O;7@ zFqcxDJfPS7UZ#)G>wBpjFZ%;WBmwj+)ezCv65od-6J2gq5DffA*J2GR_F!|(zS+CL z@|`}?a<U3M?7(r_q*l-Ag}m#+(<vr(m~!t$%U{%E2q%7ZpxiRcR_9trk>+bm?=N&i zk^MEJ7ZyX!?=*aJJeHJMFb(IfYTXdm3o-VL$kBDcoeyvEc)`yOZb9Op;_}{q;%FP- zek@lwKc!?JHJ7JrZ&!Tl*J@hR!)jXyD@E>Sd;5AY?j+$~C+61|O@1X;!hYc8m@U?~ zT`1D{S<k}wIa#m6o+R2Xm8&lsnG@}*d*~Mti=+B}JL}HPjq+us(aH%uVUZN4x*x;> z65zn_=93~hE0~I|LLxrokA~tvyY4-BkL!JaNV0Sblq=;tpe)O@A*%%Gx-zCosO%vi z+5Q0z15XLvEdA>`0`qo)QpL`<r|cY|NIs&=9{zH{%&DAMHOzXURb&>cIgrVm4B|x{ zooQjl$E(mqMY0)I-uk}d#d;MLAI-O8Ngxdi%PK}v4Lad{xT83o{XO94I%~S@?HvGp zf*A>o2HBwL=Zw9k3OL#n$FC-kYuuM#T#1QJ8}9F4+3z182~i#P_5AdBm6(cuPX`?Z zU|^H)WVHG6;dz@neudrIsoLXe_)WX@tbaJd!qT8|_w$w~YMR=fcHy>mZZt339@;rr z_l^I+?iHZ0mup2h<mj$`yNp(1R}-*qK~-FPt~$JjO2oIS;EuW())M*&S&d~0nqHz_ z*a=iysnD730+oi$SDE-Cv2fUR{}eoL{YgYI9oi>}dnE`Gw5JC%{Bq>O9Gzgx4Q<Al zqSH%kauA)4uWro5lC;Mkt!x3I#Su8bXpsBI*Cb6cBKlpXGv29Hr@1aL1aX%?s^<9l zrrw>03r9J!Ur4wV>FHKc_$#4zq5jgw_`h!+`p@odVy?fkdvZ(&CtF$SelRLPoERvC zX7+x$9w>v6skSCD)(SED{IlAB08o^zcYiO%id1!x>%~GtKj&Z;w!YC*dRr*8$K$A8 zs7eI&Bcfl?(PsVDL!xhYA1)FohW(V)u9cIM%a236EA4(A@wqe*aU}<ds8Y<eu(`ST ztUO)yT)lhH0u&c}+u@2@k#YT0tbp&1vF0lFkBrTcL62sX=?DoCgUadZ1!5^oH=i$G zQ;o}^R)QsorL(7qJ5WXV+RwGa1h`9?1p1@5@nOH25)|_DF-`C~XvM4R2o8E>OKuWR zVvy75Ldng|2WQ5ru(dA{7xP=pG#*D5;Lze0jv833T57;tvCUduXaY|<Quw;Ij2gDe z<_=rG=5LVG_j?5TkK6jR5Eb7#ihD+@zJFUomeS6N+zbfPyJfsxiVZ!#{fpqQ>S&!N zt18~BPL%z`(3U)29mGO}eEAd#jZ&FhxOR4TdwXLk-W)?`OB<$Cjz&One7}m4uSs<E zK&(!0VDN&opKTO(cfYI*(4ZG>>a^r|)zv<R1oIpvF=g@OHeV-;Xe7-hV#5CW%X&gw zj>_OYM|@gOZ};jjeXxK&Ad~t?Vix-wZ~Xd|yb+ZC)6-{Q)~HYvp9RdI9@!Tr-9U&T z`KA4WQFFghOsx<Rhxr{=eEU9ljCyJD?14XO3EME7<WSVoI#s@8PqMp4!YXC;G!vbb zkhVO%NT!xMVud{CVXo|B>}+bAJF#tSu5bYXutt`WI~N$4liy9Xe`+ATtU$STNgc}q zMoeZjDSwu*@d-~T=|4a0I6yF#5$M%3QCzl>`+S5k;cQ0rITj)jX@2yG0Uu};T=@Y( zo?FfB`INR-)@<wVq;>EHt~$*TWfMn9U+uH<wNle%tB-1r-%@YFkHn}Q3?4HiuA7;J zt5)x0-V|3<n90s75N5OgF>hEJn2BsJ=`ugYL~`JZy&lgB5)5sCYCGaTMzSvBz)Y%+ z-x!F&dVqm1$87o4r8K1GI7e{kixaA}eeI+(Id_8AG|zJ8eS)%vj#<YaCH-M`x<-xR zOIK1gC(bTYZl3`f(pQ6j6R?1CxgfAvq(-)rKc?BFUbyb*M^I+Yat=fu*_jA0m*|<D zNBi%~PJ_!DDNa!)<EO?YuaOebh7$Jmosd<1ckx>_?Vvp<!30QqjI8(wM!!%iCkR83 z?^&yK7Mf2i#HyZ@z$f2h!l&Ft4jd^GcpWx?i%$$$JeQA~6`K*<H7AF>3%C4T|EbMB zMLTd#Mp3o<V=qX^?CR8FA%^7UiR(>6$4X~w0I<k799w6)IWsDksJ&lm=e+QR7tc+` zu&bbKpV~6uIGpcVK0lCPT)*&UabP0zow(Re^?V67EI_u(Up7g^Tdtdn;NOp}Z)tDy zC$42<=aDj~e#&c)w<8zi*5yjb*IOzwUYYh_37qK1e~(V}6%XRkPAB_)G9%_GqeIK+ zP!LG0NnKU1CmQ|7o8Fgp5^Y4-pu-)0{jOo!SA{J8$Nq$WfKxA9%V1WCas241-Tp-{ z#uCbIv@x9tv?hpFcqRoZDmA??)`qhKsKVel|9tVceO`559G@pnk{cIqw2lTB75FY* zGhTS%EPiBr4bf6@+_`kihXEs7U0_`XI%d#-M4X0V|I&lCY7Dy}W8w^CI6BN1anq18 zQFOzV#TewK7x-YDgxEGid1&b=N})3xTkq)!$Zts-@r-<;GWXjTAG6``b0`ViH3jpx zaSqEviToQeb3&fuw^bxc#9b9bOE-Jhht7+x4>`m-xa<$TDoojlsabJM__bn!86Z(X z5|%k6X(=rf{i*mGBv@(R(t>C$K&~{O*tIWlSXgnO{Dum*4H>A$=1XWReY%NFLk62^ z{|$Nz+6Uvt)|Tq?B@u0(+jGI-os^*cz>&z$O4+BhsdaD8HyX(0(aHdk1?dpbx0X{z zi!G{Xi?uWLO9)epQw*6E4Ll|@z@)o|Bu(-8*A2<vH3#H)lA!~aQJ~UmMMo+_3)-2Z z8S(>dGX1Q{Kx4_SA^dPi1si6}H|4`?#O!==IJlX}PsQl_dDp(&G!&5X<EXGyfs68( z&Gr3e?WyW%>ef_$-ifE-(h0eAXGhT};m$4Jq^Pp4vZ>8TyyOlKXSd0br&T4-$(hz< zNRyRQ1X|N57%_X(6dfNH;t7FnE&4nSawa~f?;#bX(lr5i|CL3AA%y!rOUT=02==1_ zC$U<o)UMT*>ga~+ud2m3;eY3lVe)_M^Y@XcJ(Ei`y8oqoG`(q=*soy24Ptt+J>DPp zzMuN6peu||ol^HA_c90h{+OSeo{HtfpfwWtyI4(fO){*;mXg_r;mbP7=}``++$r|v zrPCM>v~}Rv5pMTeD(8onnYxK`)Cj(Fomj8TeYy1}@<25h<;9;*Lz)3dPIKfTFK?Xi zZg}DyE!TwMbIYRde`kNWr}OGj>9AzpmI;dz(5h_c$<j(QD1yuSZcG7LwR^@bZA7_| z1QsU#_Bt~-t@iRq^AX4pbn7}GV!!LYAaD;CIK&PexV!Q%(Qn)Fqizt}{CTGSHA*s2 zC$JEQ_fejSI|h{5Oa90a=D*%X)*0?xB;hhPD+8O-ufVMi>B~WEB!mh@7Z17ptH%3r zH|dw3?6AhFg@Jdv9vfmqxFa9bN*f97PFu>Af2E$_X=z7`6F)an<AD`n7(9+HJUTa8 zQI>Ij5r6oBL}R`@zgynPo0NNZtf1RQPqbQxPxu;o1;9R@KN$fMw9Q8ZPUaIJR<weH zPOeI4dAYRDfk1zM!TmHZA-vpdnyKUaZ%;Qg@K&misz)gqhE@?uvS-KMLkP)&=H!NZ z!mg#aQHV6D(%zN0Ea@#>QDxIo>x;P8K$LVIA$<hTS_hI$EeQtf9RP4~2MST|&q5pw z5^EN}l*69a*$!oEZ5{@nf)=pI)1(bNCRaxw!({~&zvd$f<j1P2EFsVW^62w)n9%(Q z<|_&7>ywj58zkP@NNB7+Vn)iJ?f(W}l#6;jHz4mp#{c>_YX{`5<h1vk1d{#}ELTyS z$>$*a<K%$qx2BLxZo+X61;KCw-A<nZNhTI+f&pgcm4erZljv6P^-V&R4s@m8;HJF~ zT{>$r5@5B>p4h*3a6U$}ZXgXh02lS)(r`OFV+=b&Z`)M+2=LuQ*R%XXP#(T5F7u2k zKf<a^&I_f=L^d#*m!bocYETXziuO&sqnoWV)<1;gJ0{)wsE@lZcd@;&pFnO7#=O(C zhVm{IQ}ft)ELizkA&wlEkZC_+ewVyBTZ{#UHhB>ihFx>?=hkn}?<rP0;cr}EW+NkB z#~PUOg3e7Zj0nBKbFQEmCfDlG4+5pvn<k*_$O;pXU=M0kI2u*gn~K7SGO|Gv`6Z-j z(q-o#ei2xAT%F>&5}*=n1*_0jJx<OtE)c|WPHdBE4G8~2F4_?M<%2raPB31-HwHcg zG)T(Yc?6fiC?hSRe{nR-PW+XnvJDjZJYAGET2wEQM8n14*fdY1seb<QrPvE!t!v$Y zeemezuM`fQS*Y1asRqbw8v`qcG7IFkkbVV3!sS(=j=9~#R0#8;4Ti0rPE(0rsa54P zJmV~Dz;eg@eQ@)}&|!wHypcWKIz<9{k);~xeCO`J62dU(>Z<N6iMvp}&+k?YqPa(X zE1F<4uXHRs^5cbNQ363y-u2dN>g40nNnctTWLAItV_n*%fU^EB7kd^Bt}rHn8F5cJ zET!p2(bBDww^_2<%6@@JxQ}h@byEvL8BSU(iXa_VH!qnzaCQnw+{RZQ57Fq*Ifpb@ z8%|0ALNd54Y*B4EqhVG*0p-eL*H%3oBeu*Db%%t*jjD?vzC#Yigy%BS>L4aM)DrJ! zF?%pCxVi70VB;4($6#avQqyj)?!x6m(CP8>ZnLtG**S#zv{@B?U!w)&*Leu~zR7W5 zH4!_sxfaElca)ohuk#I%IIJ#pSIhQ^!XUh-Q5Ami8(gS|k}K+wFV?Vp6qIT5s^$5J zA?z_O!j7hM4QY(@*M<alSBX8--dLB+P$$N13lX%EK@|owMx|2Tw`{|s=AWZ*V85_+ z6Zwz-ukKfeStdtU0zht*Kf;p!&nHo7V|hGkoXj`Z1O!^s>wt0oe7-h{nYbF!->|L4 zll5q|u)3M1Mn{Y`MM-{S<iwi{ps9~2HLfHX87PLZYY)WvMy3Q=?cHehBM37xTUddP zj(dfWjAg#3Vqvr%t^ayBq01&ovvRhi-Xv(jG`ND0DTB#S2T80yx?S+J|LUG`qrWaQ zha#7MK2Lfn^}<#BAiH#!IJk=zs0XbB+m#0#>eO?ZOx6vot6gG(159d2h`WJ2GlDFO z^smO**grO0{dq9PS@Rrl1Jz4oKGxRq_yPAREAPXvgTKy#V#$ZQFg?1ka{oxq*v7qs z$iPj9HjH?XqO^a_@R+i42@}&~_xyMwV4boKh-R9G8FfIvR$~We2l15{`clY1P{5%3 zji=t6D5qKy+>I3{Q0z^ZH}W|Myd#3-`<Pc3j|h@A`$MnLxJwLzm<Hla7RRj8$#CF( zO_O3_IXpSUL7cA9_1YoW$A^@zk@+-<pxUdt8E%SW;;k>-QQMuuQ>JJGf9l0QYwCuU zP{E+=r{c3$Stwi+ARuqam@uW<8oPOL!)j$JwR95Qpp1iUqkO^xz$F?@Xq3^>+sbWZ z5QE<a)>D|Md}uHhi_Qs^El0V>){?^{&vu~B)EoOC$6pxi_wG+<u?!NPaau(c6)L95 zz*PBVk!CP@e^Rp>Y24ZTIk;_fy6z{S<bmM^vkh^`6|11mjeb@BerI@by%QP(ucOC= zznF8^wt5~S#B&|mIj1ZGj|#TQ;Y`uI4tk+Zqs$TQ-j|uJuRlVY^jk#idk?d%Wj);q z7Z6C|2kVR)P&<&R9`+Ghs^A|u0>lVCMOdPJKGrqd$-f?jTkRJE|8ivTf?Dywf(mJi ze`x5<|A+;tIlyZ85P^J$T+Yjdv7gL?=(3^20Ubgq=r2pT_jz`9=B4A%NCHhA=Gb8N zjTnNbp1ClJ+u#XsVx0#V9`uGd?1GVj+a$hgEVm)eVQv#9Kt=jBcZ5i?uSlok=R!ew zV9*}Yf%3uwzW`1LOLT^iPVB-1s5=8$dEnJS^^{(uuULZFS-K5_$k2`hR~(qd*VIh_ z8tfRd*5rUhfF+PP0D$L_ia~@0#0>zY0>S}u`T^$YX<%F+VFm;caO>~;VPpa^3={I% z&!M9_!LRF^0ii&q^EoV_GK13dF)6^*0x1A^fpzD>Q$HjCtD&laqYPFEP^-Z>`mOk( z0&xw&uD^J_`hlClY!B*!)b82y&F|Uq|Dk<H{X;Qe(11(*$BN+ouAUa|dvF0(4!9Z= zV*tuSECDwMk{Ez;KP|{a0XPSx)!!5VdVdYQc+kP`jQ2h?X6FEG+&|ur9SvSIz`+2> zcai*e@VE*9gj)HG!C*cl*9}uLscLxyIjrPKe<a0lfU-D46xIzzRnv)uZM{<QwVq@h zjl=7=Sewn_`q}#=5Ktd7XoqD=5n5u8KKsx1Xz?W0ETvVc$rg7L`{w8u-<|#qey0uk zD_B27Wq@Y6fv;zsK7GcVIwKa>Af#Fa=dttcYHNh!0i991IWokkV!cOX|K1pU1}GQ} z9IVCRTyARm$4RSqyQPv%v8MD{(sa-Bi%zF$=n^|Fw{7N_bj#)@oh!DICSogC&1A(+ zAsLYkwq1}zLzFRiHE1f|BaJg%R3&qJ&MVzxW5jiOh|4s%%ZGzw9L@$C6Q4j~k`QDl z$fY9+lLadPne~vW_RCqa{Q#CfX=(O7d-bDcunn%xeMhqnt)*7~!7GIky{uzSS^+D) zTF@ZTfoL=HIqjcJ$tI;}f}TokarcN}1HGRSH$^=J!joLZ3HvRXU@T^kd0&Gm$moZr z*YKIV?mxWlg;KH4P4oEyAbhVjX8$=puBly<h{Zh_))g(;m8h#d>Yl+&T{@3FsfEd( z;+5B{l-!G~Bleu8Hnh40wo~tR@VLQ*7oFzAjCLiKa7x1?%ISu|84Xc9@AilbjY#Qs z*V&}P=vD-I-b`iO7Gz;Q+7OpeDtjNbc}}F^^AYC3cBXHS3G-}skJB{Hs92uHyB^uJ zFa`_#@(%Td<&gdno*aAT+|~=Mu)T(C(z5johtmh$Hb?i)YU?iVZAf;Pwh7I<hPUQ5 z^0CFlD5VK!r?_tdX48i3cv~>2Win9;*`3-<6hY9+33^NQwa@U|^PNsf`AZ3R&`0oJ zzq}{fzN@|yYCmP8)8+=*z3MCwWrItg(0x}0lw}ZcR$UL?ZvroD+=$wUxiRiT$!?si z2HdU*|A{Tg++O**GW`<ISHdpxzRbFrpzpJ7dO1|VhthL;{ABk@Z0d3kR8{XPPgcE; zmm#fH{i|8CRU5lnn_fBkwz93QF7%yRyJgoGa=Om9TY7pwhlhw9b@~t6PDAyn+81ei z-Os;9|5u*wZ-lKz_x;B&@Dy&EJ8wudRQ9q!6ty?+ub`hSlpf^<j}^ch0f+s#3bwhb zlLb%w@0XxQ_5TMsK*qn%J>WypN?6&QKgvJYxn^K8M9>KxL3g10&_{@a_CN-7f;{*V zd>{S;Z^9mOJpu{j6!HXVAU-ld`bc7K=Tqo^^f45m+5BVvJtH$UvvV<5=s(OK`+@z$ z{$h2kg;CfP%VAaQ(<NN*;NSQ!{2!j<PvJ3fJMo(kh)=iX6009d#%kWRiQ41R&RSPZ zsh_Q%DN~h28v%{1@vkw~+#>64?r$Dw-qFmhm#t~*uk{`IH%X9hkrXMC78z3$s!$u% zqQ=yN5~(|~ucUw4rC*~FTBHLy0wVxANC1H=D1tJ80R{+A2Q5GY76?EFHt;|IB5+mC z0;nJXTLxzqGiQF8J93A)Z!s!kuus??`=9p<`<SC~NA5}>fC2`15WxTo*8DBr{GJc^ z-T8k0&!>uzOrRA4g)Q-^_*#4?#)&!NFUd%d1WU2ft5UO!WKw=5o6CFUHQ7<_C<02T ze4u_&b@e`VNZo2q%hRsZ2K1>Otv{=eb#FaEPu2_d7QIck^Z^+WMwF3j9GWsS%sZy8 zIWueb!R__dWy`c2Yq>4AP%E^Ceo!m*5qnu{`e3)S(L2}D749at=vLf^Xz4BNM$5M< ztM;DlZuPBB)Tz4nx|!cW!S28hcK$wv%l>3|U;kP}&Uep8Yc6q<=o>YKI-ZH=;wVny zjm;I!mCc%FQ?t4GYCEu<x2tyBSw4K|-0B3~b6x6QV49e&uGZDNmEHgEvEKUDW3Aqv z)*I+G$*R#LVY1EApX4QXk|BlkOj{&%_4ivD>t6=%2ansGgU<)fK|VM&s$r3#>~J`I zV7M{dWjV9A8EqDprDWw<XV&D(6LNX3l`FZH8@Zi(d6>8JS)QFQ<?ZO=Xg>n?`3u$y z+s?1&kBnsu9-+thJaOJS|M`jAlQ&PpGxPkWi(z`@RrON5+FlP|{Hj~X`$)6Tb0oXC zIpLf!H=YBzfAR<ORe5v%be_&{@`r^e9kXz+@TTBWNEaU{x|hzCtV<u1Z<OWBN6JUb zRpqCZxP%Rrw-w`xyJA+t%D%E$Wv@0=JF5LvqH0!W)hUQtpA88>GDr)ZfZl;A_7Ly` z_&v-A>);?9!0*HR2xbr<%!mxqi73bsIYN=WLX;JiMLSRzs-q!#M0c?B7#k*n>9I!4 zgtcH6>^^=LSHO?s{@O#ej@o?f|GKVg)R*f!_5Fru!{2zfN!N63E;o-_yITIOx7*m^ zwDy~JMEjG@<4$OY??~PIy6WBDZm&D+PKY-|9PxFJulEs2OXgA!Q@^9V=x-Pw=5IF0 zZgO%Q$KR5EnD66l;hZ2TlnUj-VWC}!3m=FS85*%k42T<XTe=`|OQ)sRWw2U~kTdy6 z*{|GDNlY8myQ-o(rmCv1zM=lsGBr`nss*&2PGU~hmGmaPR}b}*A#8LTd4n>1BQozd zz09HczIEQZWL>coEsN!|Ub7DS&-K3^s1F7P_TbYYMfR?t%`iB8X+&{OKk6C9qyKEB z?QI+O&kk~4=*T%n$Kv!mvU6}IogL?=%XHtneC~kzt#`q5@{*qKh2F2@ljGClxBa7_ zC-@|6iJpyj#=GOQ@wbU*vPh9F$_CqFZQD|%v@sn_+4PlkI^9f<09=>~u7W4v8DIl^ zpa_(JYS03DKn*lNYhRgf@|rii=O4d9V6YHjj!SSk3Mhkwi3Cd+Mi5b?uz)peWhir! z%1BPah%J4&L009gb8U5@j(WPR6PnUr+r*?DO|Xv5?7U6eW&4et>|!^2_`pZr_|i=e zJ@s3C(|<wnC3ePG#N$$|N2kPev&>Bvvz%;pb62MG^ZeGhpw1=LyvA#xHtJOWld_41 z+(TT*?fswhf7!C7K}ApzRZtzZP!|o*7;U2+w2Su81;Imz5EcpF5dQ9xVtX(X+c9uu z;G2Q{fe7tE0GQwccmO_tI-r3Aa<B<R5Q076feCWB7Y4in-$MqvFoicl2Toyx&+x>> zpW_m4<0-y|w{Q`+@Bp9U7*66IzTTn;1mY&DM3*=bRe~c@;#y)&7(_!ZWRh)iPJYM% zxr@}u37Js`si3;lg=$bPwM_ApN9`z|+R;1x(LZ!XKS;kuSM+Qua}Q=MQ)U3;F)4G+ z!o9_85FFWqtj>1XbqFjHUSchFrNK!q=QeXVM{^42aS1mSk<c*l$QfLDu5&y77XN>t z+G(Zj1X;+%!+#cy*owzQP1Nf(?#18RcyH4^+gDHjI=&~X$JyiSx!QBTd-Py5GuO1t zk$A2Q59$XGpZh;b+vmr%+;|s}pG1B;`7}C5FOA(GE%BWOX;c|K0U~avw20)HL4hnI zpwuv?4`-!DRnh)hT8<1M+R4=ugczc@HL0q#O_A)?>M`i3DH6c&iql-V5(_rEjnJmM zGx3>`&(KY8JE<tp(P4Q0Q$_eI7|sa!X4b8-T_&`=$T&af2Hakthy?p7c65uK^oLCK zg6{o`BVHC%|IpcoIl^~fd`K3qvKDj9u;4vn%N&lU9DB6FI`)s(E4D^{bOSnj<BOXL zKAc-$zB+=`cfJD?$52Cj>|31*!VU+V{9@egwEsxOXH519MAk{$gsW%kX>pvH=tXw? zBqNfu9{96J*suQU^trBzA)^+1)#eY8i%b?F&p;4^u|DcZMRu<46+g$qTN%*i;*K;e ze^DsrFDhC7dIh-*rsYw*p}#$oqdjfS7J*BMA?<$keTA%xC`&^W+B*O6#1x@@USX*s z?a+Oe#9InVg&SH$9$NE_%8G#CK-y@nKY9CeQNFs-BQX_7pSj4jvVf6^LkS)U3NmjY z#~bj1VkUD)w=uiJlbN1|$1$}YTk<bV)k87uqZLk_GQmHJ1gL~`dWLSr91%_qKa|ze z8~-7@=VMZ!kwtu0Vs*-*nylp~1CfSEC1$p(nnh%pP6Dy?fN(RZ3$!bT_F5)`?7pcq z%bmx#`F(hTZqdz_@}|a!-iZI3J8SpO3Gr)^xa%aPe$Q0G`23#4gn=_mS>?b2^n0lx zyi_;9E^ZGdp+y1-%rIGcsuUC7qHGL{iv(Ahle}`}LOzQa{;npyi5D!I8~pC~l&^LS zRmzj){k6_Em#D9scQzMhZe4y14J#P1w9=Ot9VrtRsJUeUQ|J9EAvfjRNK0c|72i>C zdVu0)8ikGWn~gCw$@^(J+d$p+$^Dx_%+X!Y$2VXr(gKA=itecK$sJ$6;d%Gqx)jGe z=pMDHy{V2OOM5&5cpPHO$%2U7eL<JGrH_Gq0;eC(ag!Q&8NYT0@g5f)XlU9U;bqcS z$kwwt&DI;so>V9bOLH#vm@`OP2u)r;^+<Lpst#44as1$I*=J|N5W-fUv#R=K;>B!- zdo+K?;vSxqy^okq-m|jB$(0BFeWkssd<NV&|0COO-NyGEbj`Mrf5CkUy|M?%tDT-) z9$FAurqIoaopNf+J6lCTI^*NevEslG;$abB1jZeHR869tHy16P9k}W6P^Hj;YAhp7 z9{QZOW;Xq>40JK|klTo!t1Anw`};m_oG4ys#q-}TJpie@ZNwAt+~*^OF|xGWz1(uH z>)hmP1@w|^1KklU)SY<n3l@&$a<A2?yksUAAhnp;N$g-?&4sGe8pRfAS7T~|fM6zp z407cg{Ef}bT3|r{wP1Dh(S?ZVShCOxI7lzQCb620m_!EkGwb1#c{Q&Anom|9@je@3 zDslQB%_{5AEA!BcO1g64$gy3G$L`t8?D+RXUu=6J5;?dgM@;7Vcg64gqC&M)eD)S| z!Y497^-;3T?~(Mk3)@`22l;77o*#W*KV=ku@((B`<@&1r>SU6uT5hKc)Prt1vHS&j zGJk^b&3k-Nd!p)U27@NWV%RJkg)I`|#{fcj%-m%b_{PDvUwQTINO*tuqGwZ^5)-wf z`$_}TxWDM+EURAejz?-+0P@rYBw_Ep_<}r`ZwOE*L8$+nPsjl|b&$AdtTU|$=3g_Q zxd}E3VDAe;pVHitkxc8BGco;mB-sfB?+$OQzL)GjHg-K}44XUuBb!#WF5-#Pnx?gS z-*A$uB@qEOy`z>Vmq}r0ep^kz8$|67t4+=GvJX%8`IDw-)e2;#rFpChCVRm~k!!sA z!fqEj^IpY)(J$F|fp_Bxs<Hv+(b;_7c3GP_KalCX02R*Geo8&h+ZxmxkH#(gN_ThV z+ULy;xe+}+<`;Y{84D7s%AzKnylu*6d3Hr%v)0~G*)tT;NWswX31O~uHKSdb0&rGO zS**6N1v_Xkp=`Eyi8}53)e#2HNhCPycawPMkJRsBMK6DMRJJ%;7T09cKE<Xr*t~_v zQNwu3-Np`Zs)xOa-EX_8?O2Fvfghui4sb0;MC@mK3nwHOIYjyp^ZQgUcfQCVpg=5j z+ssk{H7(+4RFrJt4J94_OWnFUk~lhga-2{}-ES$s(8-<Vi;MKL@3QC>77WI+C|gXc z1yE8vo<`!O5|(+^@C+<R$m`il@&*<^(T<)<rJMZ)Z*DsJ?o^7F24z*p#%#fAZV?wU z)Bok2Ce$f~P<Fxhb{rzES!Dw&x|>DlOBgG%dgooTNiA959?@>ix%c<#+PzipK41QB z_<$4Gw|S#$OTnVW4dsnzV=FgAjwP0kE<}K+H}V#F(#tt_h<J%dz|nXcYi=H(2G-*i zSxmP+ZfWBR5a|KRI0`NatPDD5meL9IdIUlXRZEP!X7@ky^#-|mX}_2ACj<IP@0o%F z4xU?MJuLeuCcmeV6HG57AK$@8`Z<jumO&ok=s3u1pEz%-DlUqWepprXeQ{|X4Acdp zE(Xn-VS$l-FrT0prIsg`<e<n`m8k!NLM=?)x~$CGNCsd>T)<plJhgK%qt(|d;(*SI z6dI*Ail&|$zB6`|vbKq6P0w_x1ZPlJ<Zr$KdR?)EpkWP(!J*ZFSDM{COm|muoQB5c z2;|UF1oDj4i*@n}Y7L7~jRwd0Ne!DhPm8tvNJeJ)@*xBVZxTY2H`%2%J|W1{VOHT- zZgOurd7&;ReDy@B;FYX8k-T*oMxIn2Z9SvMS-c>*23zg`JsYQd(YAWx`NF|P_nA#= zkZ7mp|E_l~!@d!b76)LF5dUX!vX*C{OmpTCd}UX(LMa$-!esoSF+Jfp=x~G6DGV{P z-Z;Z|Y;ZbZ^j128VJ~s%1!n@g4b&jHEX8FyAs{J<&V(QnBi@Sw_C-J>2y|rJBcUpc z>qpNsz&5f6CRlBN@T`er2R5f607{q{rz~5;8$BC6a4}*c03R#2Nvy60pa;JFIaJnM za#?{4*_+39m#$`!s&9R^NVDDkxwkV1LoHgp9qi0usp4srQ;oT8`Zj<IbT>dLYx}WB zkOqSn|22!?CT1?o^uRRIY-Baxm{`^GIw^(Hlez!$MHDJ&zOLjGM0*NVE$;9!#Rzx? zsF>h_@HJ_!Gdt}!x!SjA)dBXHk8-v3Uh&uOuD3klVxTjBfO6I<1-p!4zB^WCAMra) zw_eL}#ARS+R)-Z%eV0lWG@LC>z_y+J)w#6nb{YtY#=0sV$*(_pQg{=NehC=r{?h`s z>zV`6^WhbbYt^#STQ^1}_R>&QYoqd@Dpa^IA@xxp^RbL-32p*!q#2SknQy;>Px8Jt zqR|c3U9e}_;&j_@`o62IO~3<t)kksmdFt&t6X7>Gizp&FCeRg-R}({3+~M#TsT#)y zulG?F0#>$cAnJOXx7teb_>~2yToe>o0kH%GLV{(L^h%fHftSHS5;jo4m*iRSyhk3< zzGG?aHL3A2Wo_6?m|#=kiWcvzjyR2V*l+R9!jLcaE$!+hopH?(4|c?jR1SoM%o*Q+ zd?WG=_zgw9FA)m6z(ArjL|eNWt=zrFXUfnZ`kgXkJ}tM%f+v__3e$^oCWOQB8jcWI z;IcG)JgF;N6>DItA0$2n&k$=m+180wCM=AvJ};JUACOmvYF?Z@zs|=Mp@ZzNUpi=m zcRP0(tnSCD+NNz+H4C|spM=Gtkzha*p>}9aA_<~!M(6*s|0tpIBzuh4te-$+n^Z?D zI8MQZYWfo|kZkyF##_>VV_91PNrTIzjugyr*qo^7-E{uxSCvCHUv}b>Iw8h#JuT`C z<2hyoW(z;oW+w5lCu*)h^*|+0#{{CfNi}f~&gkrns&@}=6uR};rgXin>9mspC6L@> zg9$nrq(;&Mc?|Wmb)1L0DgeaIfVfy$$FT_b2c9N|-X}qE<JmIPW~D%+!Q%%u`13z2 z+cex?#T>&eJ4Kn?XT1?Q7(EUqeKZYv_gvecN!|&Bg>dS1N`UJ)2x(!ceq9hFzJ4{G z-O$Y)F{P$lR0nllRMpBoYkY<bHSJVcyG)BB%B;udyPo`O)>$ogBM?CwsC{(u(y+md z|L;haL@1_Hxl@UQkX$<ZbneI#BWFBVr1!oS5x~AgEa<^OWGP-a_SMhl2MZR3qgH}> z`%9OdC=i^XnP$mz_<6wdq`xd#$q(<c-XPga)P=4v?nJzT)@RMm-o_ppr$DS@PPA|^ z#$-B}#)a+gXD18H^BQ}<=!#Li;P!Bv@VB$u;0w)1+acz*(S~1qAQJo_DQVC~L3)EU zzo<n00?~oO;U|}Mn~{7z0$!qOaaMV9Tt*0a0osm%mIw0@wm$9tYM`@}h9hp_Tws_b z4K%$Y8UX$WUF@McT{Iz7v<7PXeUk#}d>65Ifr6MrbgQdq{h;m(Y{QlTUnhT*@XJ=A z+dX=DW^3KiR*3G6;up>Oexcnz@RxVstIrGuQXXEN&{mgYMl96g^DtI4wSwN-Y{6&d zcqzL<jU}kz^-=HEMW@5pxek6%gFjkE<M}@~ReJ}x>kRMeP3wSg!5Q7^0L>^mYqAse zHZrA+J7u^eph6gN42l1QnM4noFZ#;ztKQniW%MBMQdyl@Z6lt@VdssowS+BYYrb#V zGD0N5XCN2vdyo;z(Ssu&5xzYvsEhjWe!WaIMr0J_DBuwr8M_Y4_cCt&jH^h~V#t;_ zb;^q5^OU;AFD7W3*|F<O)K9Q0P-s87ti#*NfR5a)Ay`_4D_YHpUJA)W>iGfAlP=tv z-EbSK)U%izYhtmlPUpU;?ZG*$nKuj{)OAjs7&26Z#GCad*Q(C;#0K?@%$hopRFm-f z`wBm5hb068{ojONwz;7<&AvSiRsP|Ain)sA-(>XAZG8{Ts>^n|zi&8s2bP}vNhg!M zSDcG>4*^EGK7}ANN^k+F-UB}ufkLTkpvE9Wjn{}tU{4z6P6vt!8LV|T)i^;J>U0%e zXId1i%&Ixpi#AjjJ<!QRha5g!g_@oWQcRZbs;=N44c;-QFJN!DE{l*wS4??$=1S|} zfem4bDboS6JX>8`{y~9Yp^FV`d_MNENDycM5^9wR=!>6a!jky6!aV+6KJAwt(T^T# zq2RF_L(qv?^hiLD8A(yA*Gvbf`z%T`0>@)+lj5%@d;NPzAdGG(!Ie$)K#divE2QjM zq<SkTcB$gzG+76y%~|Q9Mb>r1qKR`+HwAYv$0^HZlevB7>TdoOyoEVPQCGXWph0Jg zXVYWXBoh-^D@@;)o>Vt_C~_DT0T3(M3f3)VsM|5Mn8jbSb{kmR&_a@Qg!V!TDP(4n z31#aWKMO5|bS_w`nzdFXxa__1_i$pVT7PpSyp=i^jHK_xMz({kI!A@Os&nZh^?J5S zrd36~D(tR!Vw)z>*j69LWDqBr>cu89pCJ65X&4;{TCA=tqSi3yqe7G-LK@~Bw#FvI zv|soag~kn2Y2ja0s;|?|Xl7|1=XFsk9g%U(YJA-L9m#SeOV;Vix0{NRhJl>`SJn(K z;kUw?nSx`<H5%sR%7fjK(zCbZYDEgjHYi|+ak5qNePkk~V?}EUg{d@Und4-I#VKWu z(<tS~jk)Gy3y99f$LH+!EKV#dN3jbDC1aAIms532BtY4=s9MZhzOx?OezwM+!GQ4K z=<$=Q?gv=G-b$?lt7s)hBtO<gfzQe|D8L*ZJr0?v1Q<d6Db~GZW1S;PyHpX}TtRm{ zjP)#nb4;B+*avMDRIo!#e3SFJH>!!n?kf|N#o*{njn1Y`*_x<&m%J2&lA>f6Ay)X} zJHq5ku*xsKW8!Q3XKVcB2wPX}&VOmpxS|DZr*2&N_)z%sTI<qu0q;>anutA}-rdeW z)lnhd6G>8FL1!D(;v2rmbO95x1KRx)VsJ)$qtizZ*2pT*)Kz?*zIvwkJsv8~DlROz zBMtpWGNS1Z`U-(Dl@U?#6U$I|>3Tdh_60V2;c=~pg&EcAn7WRnS-3U1XqI{C!Yg!h z%f~woes~YW#KK?2AfKaKm%LPjk}ajV6!whjY%F#?3?=Cbon5V3?0QuLGg+8Cp3tkc z=Xru{=fhglrjzYpn}re8HHU_(g{C)MNIYQDtoxIyNCDJ2<fv*uEEeckf3iEo2K5Q= zNJmA6F$pDoD&<vaIzCT(UVmjv0RrAJ6+TJHpB~RWRJUvQJ$hpqkt3!Ed=mn5U8@(w z_tI2vp%#sMTLS4NDSey^8q}s`*i`)bLWbd)Ay)qgUyH96I}yDYE9-w1G{j#00UG@3 z=^tA5jOwMJSSHR6YLdKQlp(f(FuV{^sdi3)GiWTllv?LOwWN=7R+!yo$YQxLlIPMc z!m|=AVPYEt%xbKhnyQ-WMJrGiHo$dHOniQz;nyF9sltN4_`Q%=U;g(0d%1E?c+sP^ zRV5VR(Ef-c9>Pljn2~l`g`FNa!fcYPKoN^_=TLPQU0W9&)Oo@S)K!jG@tOo;1F*u* zN%~I<HRh$>OcOS%<7=t=&VOCuQ^xJ?DiQ!4J=H_AfLHZ{D*ji0N0_~GiHOS(FyzvU zvPypqVCFoi)*Q{E8m+bc^4^<sAGNP0dfXmCJHiIBr#sYZqe&1OTvT2FwQS8M5CE(_ zXk6DKgK>SeU|KhKF|+iy!SNjKw^`JE6PIXa18^Idp2}cSo+vHK6L^Xrt#I0v2|J>Q zK}UQYR@EYk5B5=Fr-bbuLWGk-DDNwTLYVIZ-IWP2xvG14i{CPmXV$OSsIr52*LC}; zIB-R*>`}yuSlOe9#UA^x+BF>Ip8h$_5;CPkDN%k=N|X}i7o|k`rE;~*?}VB<R)XDj zCIqSV^l6WmYdw7c{73<S|BA`Z-KU+cT_2mH0`W}UH#Opq#ZDbGIp-0@ItR^esZ;El zpnIk?C{vUMg|19d=*pBE3;*SJc2`s72v|zV2fdk(tH*9WnqRk0Ol+-_saDiU^F=ey zIB7*Pz1okCQ@&-hrvwRo%)G)b6y4$WI3o&fx&tzr#ezR^vc!-ydn3Qer<c9-#{TTy zB}E!Uc)eO=$_|7|`NBhC7|93%iptx42ypo=1=Y!NH5=68{~=r{3i{m?gA^=L<P*W3 z?aU4s5`Z(jfbC#(H-WNKdIRYu>F9}Ge+YMy#SquFA&}5LOmP;iIi-)C#sTlDVu*le zLTHxN-h4>~cz_2rtvl!*I$9T&fvGvK_f=sgTe&|K^&uE=oE7;FU45SHTxus?0Bsym zV3vSRqVA(i@=XY=pZG<0;*L+VlM9CfM1B|9Sq5Mh4v^reSW^@?{B3e_1^h1fl<SX_ zD0-F!-~*3@ltA855!~nB>f(C)73a?;9k&|7UE)#%fb~)NAW@>b$gpC7#kb<6mjW11 z1O+(6T)(|g)z0)kUVH6Y+N8$k&^r1d3#ueBk{~lORJ9On_QV!oXFLsM^y6@)Kk<MH z|DA>o>#qU>GfQ)0o}WIfg!h8b{r}4;Ru;MA%ZC*HILPe#5?6wDA;9M(2{7SLV|^J+ zwnOb{HhFoHft>^^rmR$6#b`-}Y7a8iZzr<xdAP8BS9CQ<X37#$Z>o??i)u@Of?NRD zHCEbfZSwx+9o{6;7N~Py%8H{d47M(&`X*u8XAxPa6SN&gS9ex*6svNGZ48&N*tevf z*t%`sb<N=x$Hr;~bHXidlU0yI6`%Z?e1rx!joE1C;0R!>=cQbGxMYVk9}8nmZKN8z zyd!$O%&fkrvXPTvHTEF0<}qN~RRlbmQ1%9Fz*CQA_2v5Mgu=5?bq@NRZJPGD`yh+Q z;#o-t9BSL!s9-i%4_$GEYwS#0^{#Y5YyI??Cyz^94T3uLQw<KBsw^oJYS3*fzv^eO z{J|A0fKcY(i*91=i-9T?Z@P-?rc5{pmMGXJQe*BlX7(tmhF6-GN(H|R=4B(s^r_@? zqzftxn=@yr(Wm(eeMoHU*9ar-1~*riDG_x0VzIlDzxU&hiy}`xOSgc1FS?0^9e)ES z{MC~>m8>);0u}I=UFL)#ULHv|g`ElCHIEZPNP-a2y%cy{-!<!ggJ)Gm<g2hO9arSN z^k%=odHEjS&f+4WYu>Y0OtG?O>WBrz8#cq3{{P1COLA6NSO!He>=JK@9WS*uQiY>^ zltO$}<Y*UZ=7&B<+ik~79gto}a}zFgonva5N85~AKE$G-Xk<fP8A)F^08J7X=>=CZ zT6||s9ho{8;pg1LM^P=*U3~gtGobM@vKjC=|A)F-y}MrJ5RS$%IpB;o_(tR#(A<bs z<a&wV#EatntxYv56PFD0(#+F1#FTV?^=FSB@F+ed&^jEZ$nyd<c!I2rpv6$mT<IA3 zt_Yi&Yr4>L=4j`2ua`35po`{V3cTX&jm)hY=(mW=%gb!Kndxenwq*V9mZ?1hJ*g*h zMVYOeyN7G~YY~3M0PT(DwsXEb*y*uuG#%;?5uc2sbFLKF>S}77$hMSwY-xj~8d9%( z;ss>A96^f+*+&h{@8~sUM&)xG!tKjvrKcD8Oz*+c2=zRik?zqJ7O8?ghjFVhjqZ#g zvapuH`5hoTidy09_iWbupR`&7cf}Hb!0g6BkZ~b3s+C+4QaBW~kl|#`2S59pALK$p z12yo8f+O*UdqM82ci`6Zs6}MO_iw-gVUSj}2C9!!1jYj@wU=h6!OYnAOb>-x1$Tt+ zfeoi(Jafrem)K{U$xHM-@zup!=XPXPBt=)23VPtVW(W98IP2S=RkvxnWi+(sEnY|K zw^uQ=;yC1!{@;&prFL716h=wM1Biu`$+m9g^>5BTapQ%1A_w)95@Ilj&b;{&z+f8F z`5C>sn6J)Yio6(QncV;?5K=n^5fppVRsnUtLh{|O+;3ddrub#n{Zmcd94cMD6nF;k z?pw_BlRoV`^y5hy57YL}Ua8uGpnmb`x1Hs4$J4$HKUv5;l-Fziy=0rZSoX%krC#&G zaLgD9+h<FD!uT?42LOX+8A~m^nRkBhRTu1u2P=JfhR{BdgH5%ibfm>+TqN}LP-@v1 z3wVWWukCwx|3B_o3LX{3dJ=U1lesfE<jg?CJQp4k$81eXWhwdL3A&eR^pN$53@qS^ z1Y*Yb{Srp~*$~KdN;ap>62&RAiVwV3-4K~`9(Dg1e=xZoZt;UX6j6|0ltH*5DEpdk zhG8y8rO=fy$YDcJemEa{Yp%dHE>ky()vdYi8GctmwOdPmn@F*F%J-v5Ru1NU!bm-R z6)Mc>8II8gi+ffcc|1LKtx^6e9Z>YD@OPt1AZlr(6Ns7AAm{aoK1#|_$YCqqL#iLO z6<?*mN}X4tFhE613aQa%Qn4dhtArog)65z$TS7h!8a}EP+qm%;*QmgiL?s1J%?~w* z1ASy5K~{nWlPOz=1XSD5jfPiNl$GX)<hZRK=qz(-u9amEWC$d(cbnDRVW}DOw)^*_ zzLU3~B@3hNo9$J;<K1<JZ|#N+z#L5f`XpEN>#Sh-h-%h5DbS@j2Qg``R{ic@bWDI< z>zs2%vQypUz&XYYUv&l3k*7r85XA-7(Il~v?O<a$wl8liSL-~+d!&$Pq44D$ILCR6 z0g7XqIHrkX`6A-EjIp4C)RKItwaF1}#?ZyMbVF$JY=ofQiDDSl$-n1dt|RFGP4yi` zn&0iwbd)G7qc$-(`ME|dCMz4?ZhW`#9)ods?%T`WTk@5j8XY+`y7C6X41b<`dLQq2 zkyaQV@tobm507ZAfdWu_DAO3N8yGIXuULHqu2K}Kb}v$yR-*ij;5M-Y?|idA<)_Wb z#JBtbA<rLo?9eOq8MT-UNzya3&M>XVv}>hCLDur%(kfT%_m6WlgezZoRz$~(xBbEH z>U%>%cX19}D2jZqABP{qK^5+bhf*%OVXAP{V)TpUcMF2RE}h9F2OOg7F<+&flOi;r zIfts%J(3AY3iKkC7ZB6UdlK1XJ^Ah%u)a9E>7gs(U)H}GyOv`5lo+RLN^b|yF!FW4 z0`umtkvE{6i0IyR5hR`{+s3Iw=grTr{nGirEvv6@IJAC$*gd>q;Cs;!Tsa+a_~RrE z-&43?MB<YI=JxUhfy+izKg2}@I_M(zMI9A>S$cRd;{GkQKpEx^*T`hVPXCSoe2FaB zvQ}&5C}}Oz&=o9e{YC_~JR)CAx&H|hc9uM?v+nHr@TUlF<1q7LaC%uqzR7fM@22q1 z(!h^Zwa<M}(Bq_fRN(*jAhL)zS@DLsOqXnsL))b$1Z1_VfIrLdXXo$+(`I{TX&_Sd z4pDxNBhIyMD4sKg;ZYov<KQ&kdit-GkqIxB;R>c~T%jRZ3tGd}aSkJK!Yg{@7CEJ# z*&F)K&>WK-cJ)Zpc6L#jwFf7*A59y!;|_nMiLkiA!X@%j5t7FrlIX88@08wE80bhE z`>JeFw513{{C$^d$6!Vhdipq8Mlo3PEA#uH?4T*LSAJ9?c=U;W03vCUsmjk9gd~-D z@Cf8$Nk`lH7I>rG9J<|a5jD<0Vw5rfpk@}nOD3+z#^gzq7tF7&I<~xEf#0$o0GgY$ z<z@QTCg=>&I#<+e7;E%rIX2(FQjk}@*RHoYZji4`-eO3E6Y3PjdE_>n7j?`4so=Qi z{Q68$uYHonh|*TqB)F27>L$G<A59$zH~<DAft0{OVonQLuRe}aQb5k-8*B#ztzW_t z1b7$=BDkbNym8Nx>P?;0%Ka8$%68Cz*OF9#Dcim<8<ldy&%cR3=hmZ=x|Vn?<SMU_ z!&m%?sc81r(o0>JA>g{ol~g>J_ulSfdrHuZFRSl9GJ*JU5b?KblaD2p8$@!~mPUTD ze1Z^vmcEi7`srG}A&ya5tFi^_43oW?u3*;Dx?Yz<A4r`|EmDA2^=4~%RdR+!YoZGy zjqBG`Zh@^>rXoBD|Do?IROp58a%p~5+B@3YJ3`Z$;~~Hg2me$*ysDniN8zOmxTzVb z@>q)3l2fR;{KY(?o>aU=&#Um<u}2?{rCD4a0SoXD#1OyKMpUBv`7?X>LC1idI_$@s zm&P*^wlol_lHwFuUva(RH|0N-7O5Tk01w!!vh8@jbVq50xZt{<MxH;H9q0|9@^ixU z<1u3do-7z08AV&HAZ|~4mkmay4?lG9s1v&yK+l;?i{2O<xYA;*K}V8+@zT711K#=O z!`F{<{?%Cm1Gz2R0Q*9LYGLZ)DZ|EnQTum`idiHId(!(`87hf30AbkOU6GD8T79RW zagE1X!QB5VY~KSJm{<Pk{kvZxkzdtf1=K<b?_avT>C^|mxVok08cMc;?3E?#D}&z* zSP>jrs$Dc8ok(4WPA${yrpDApBSjTRQ?k)xhYfg*FWtS7N3}@4)6m}$Stb)FzGhrs zb|c9}s&-z*kC`OYpA{<gK70c}P(-B0YZB%J)`1Du$Pnn9Tz`KqaZyQ`;ziFWb6h~Z z|9o>z*sfv~iQ;g`&6u8$64qRA3#_YMt&CmSj!}-jXQZJL8v<2P;RS#!7F_6qz%sut zLSy)(WpwtKb$egw>!--pP${US($+^V<hgN786MSJ-&C*{165dG?Bl0JIbyt03RCSt z(y<%ui-hd?N@D`^`qDFr<&IqEJbx*Hp!NJVR#KW67GKtU5OShlBS<hu`$290DqcIQ zd?XxK8s84w7O(SWk^u0Fa55o-pC{f;JzM@I;*LMrHdoG-uUy`IRri3ym2AS72c}ba z=1QBkN#V1h(iUw_lXQe1&RB7Egx1Y798pjq=TtXUqsN+ETx>pYGgyrbEPZ9*a5c4h zm%f%>o&>ausqc~;fGsUU{fjyRZ}Y1S7xV>~oZsv4pu=ZDV!HX935Kp#mz1KbQL*td z7?sj(x1hsYz`;E4pbuIc`jTZnddlM6+Xf9UTMSS&dW;Tj?Cf^7_O|i5Fz2F>L6f3O zUhxpP8gaLT`(i6yqe8e&117Cd=S!=vSG9hq#uGyjsi=z7O;S#@D;_dEJa!QXFoGfV zse`1iMi7H5BG>u>y)9n7Oz(PI<+CR{gGg-E<w*_YN0Whi0;&_f*|5bNre57fHUot$ zSEl2>Bhe)ya0cZSw3n%d^5K#<Kae#CKSn{0>W038-|Qo$8d=dFR@;)AVW|{k;k-8g zX6;TRL0?g8N51)};+aHklAdQs>F4T0xrd8gv-6bf+&jlr7ozqzIhyG+%ge`(z!~v+ zr81#<bmy8iK8-TAgzH19Y@P%RXCzl-Prq_$m5<9oD)OYE;7_r1Un!gM7D}f5I8SRC z4tu{p?-t5sSi{$3VCDKJ#$4VRLcn-n*?{W6Y_LYW6t<rB+e2^##2-j-efmUzLAbV& z!f%Ho+gnGPWVij*;E96PmT|;Q1l=j~*2}`J(x{zI{irGvBu`13m>Tz7h%Rv&4T=-N za#8VgL?K&S%Li{s{7%59$_4BO=Kb)~TY_n`+et^^3u9yP4>|{8*4C4_3TO33$_tk! z)@a=l7}3)is)_)010$q)uH3NVE_1-gM=T)G>T|{6lW%u^iGjCsXZX&)5UW9w<{tZ{ zTgRWIjgEGKh4|@@NSwgoN0^Sf2voJQ#3n@*N)hXtFG9yHfp}LLP<&M(tI?9Yf;8!J ziJqS3-|%eB$paazNzjr$1VVH?p6xulJi`r4_mX?nhWgNB!(<2`tReBTQhipd*jO%z zFAj=Xl8d;g>`Vd&C1F<z>%!Nx(%;_=S5%m_clooeI(SxwQem~a1|4PH+rIBapvMa_ z$@0_(3RZE*^s3l3|N2HGRAm@dZh&=674Cq2OsMC}**Bdnw1K53aMgi&9P-5>v*B%# zdY*ge;6OgDW07{lCG!jkVR0yoiDQyhv$D9zu)(aXD9?^-O7R7hbtLq?#tjTd5$cWj zQ3Q<<4GeG_sbc!>gjPRbfD8qXWGSZ$B<=ABr0O-v2h)1M<#YzzJKaCnE_8K;X_rK# z3ws;ux{Ofp@!8mwXUsVcWxQfLjuiMv$;TD<iU}^f91&`f5VBcDQD&PhxvPA1m}O{^ zSHfw68Cnpke0}h$ZD&U{LlVC&=jVE7V8{K&uDXJpx+aHU0<CAXefiU(*N<HpvIV_V zXl)I%-Uk;AY$>Z74s9VUtHq>~w2MQ-7gQUq=*RTN6U}f|TKpR%>ssVy7`|$iRt8t^ zaJlR3hqv0pCnw9xD_1#Hn)%GwN44bo%-UK(uDArZ%g0bTrDc=aQT8H?1p%w^`K>dz zikV8TD@4l0|0f;g48cGLsP@ucTa3O_J`#W2bsQHg!3!vFsTM?UaTW()ZGS1<f%%x= z#(qXNxu>L7Nd`AL4&P3EPqn_|c-DghY@(3B33GVZxM}{LlG^|F6bbfk!0yaQ2~gH0 zFo}Z(lMfH>B&)E8Dc&#Jx3;_paK|0T&>t3-zqW@Xh<Vs(LDZ;cqqvPHvQ-l138a59 zQ@ft`pl+i*inRcSL|^mT&B7v=%R{e8b@B|Rhk+rx7uL}Oab10T^25Q`>HR;R=7#=) z50i(av7!!R+zG-GUx0X1F`}utk<A!QRB^D_qGb?P(#D4?r}Ahhl6a(9Bq-|4^ROh} zS+Dz&m>p}kD9}L*I9i?<UV?yZ5zl*aw>P(OvrBEF0aEaDgmmJgGXPrGMf7r#S}`et zWjEJgY=B^1lX}_vakZlyaunrnSejStb402T7d%gCU*2U5YsZNs7#}{{f*U6+nF!dx z&b6YYBjY}^k_LdV{Um4vq!9#5i&(tpFNYa$=iC4RF=QobRpj4PhG7&3dYmmziBRYY zq5s;t|784ri8A0C)GoE7WkQD4hepITYb%|18y^Ay2KaAxKe&qYBHaO|kvbDlP5XyU zZ!=_K;GNeviIUzK0RX7!Ui&qb9u<<hjj?QzYCibr&@KX-7<)(nHmahp={D&GeuR;; zf-Mg~K!NlXxBbI2Pn~Q<2hCt#!I^<6c&}^`fobDBil^kMewV@FWWo6sxs1S0h<^MV zqKNypxm@<`)G-ZQ1Y??7i)3OTF*#B_zA&E5HLzo`6Y@YMCTViW%tVahmT1h@WkK@F z3O1f6Pmehv@0922*!HRuDf_~9ObxAIOm}(7%<3?AUFAq(#EqjLiXBmnD88n-p<Gs< zT7Uh9U+qlB!tQ73GMuQ)@C;_Pi1e-^Fnvq;#FF3Kmr8o<lx$pu`7}LbW?Ys+y+@$B z<l5>dzQ^)=d)<gCPH2F#j@rzF7U(-Ccv3PFW6-3Z^n<o-5yogWV~}K<*BW)rD&kMG za>K0gA^{<rv^opUY9<J&5OUe5-}nbgwTmW7nvvJW7R*=<uIbXdwiw*#uBcMOxP}g6 zm;viiWC#K|>y+7``Kr!CbJ%_R<+&J^edgL_|F!dp;o0nKtf~6y&9s@TC_AF~{x_V1 zD2-ciF~n^+q3$}CjU$M4<-cB@43&Hg!J+db1~K=LfuxzYh`Vj0vr~&OfG_B%i)F^0 zz{5V)O#&(9{^2wPvwhJE4EhIp51CWBAV-_FfMwO|hk^Qfy3J~5@egTb)`ElW%M099 zifij3%aE^DR3&^3Bb{I0-(9H{Rm^!l-c16DR__oCtFDFrn9*g6^Ye6}SshYxYHJ*E z{X^e-ovq*jjp&%7-QnzQV<oSP1}5oVJr%HO)tpV!Ml0dy@oK61*VdD)IiP8(Byh<9 z2wt@as7<3?mAYQe(cBgC=i9PGwXzb5CCU~}1Vo424qYj><F6eVJDY3z5Luyf*U=a^ zSsmfUBxg0Tbg~r~6VyIAB)cWGx2qMg2ht>_Bk7DvKk5sNRYl?*>d%8jC%)<*S@|#z z1nu^2vw?8nx|>K%!7G$RpbCMWq6o63abOA?BxZ@8%*V2aFrs!&b12QN+VJN0^bXUM zM-*tAf7IUUYJ-#GR4;onjY?FD#sfZu`QV=(_1k=XXqctrY+z@)@w+XYx-+$ou!xds z=uRnZL4ut86FD{Gj9bwjF~ES^`fnk@1nP_%6#LSw<y9&=B?VZ@mahy#MBQBE=RN&> z!gz;UXTqC7dCC}XnlQ=CxD$4Bj5&O>6;Xo?AAJ<R2G$PN7GD4HV2+(Jov4)1{~q8l zy^Q-U!wPQM{cspjvc|8wZvrxb8gPTqmu4+f1POU$AqY8r-VK~eP&j9hC2c#j!G%%H z?Rf~u#B%$gHDY9jnrGh}F||2c0Sz|9tcnEWk)<v)U?$Z4e*Y5g>k>H1e0+9>-{TSZ zA6q<5n}U85pDDOkjM14e8ZiQYt9)$s$ISZzpYQ@eXDrz0xJZA05&`d@7y^X;srF|k z7XY{iCGh$Hq7|Wa!6F{<f|x}iZ~dHr;Blh|BQrZt3-71EfB@+wjJ#gE{=1BD3=J4< zle00S-(WB@nz~Rki#WnvW4&t1>_=?HI*@DANGO-;m;Q*H%0yRgcrpupqBgoyw_@rJ z_p-paRWj1v(&{qU;hl*9$#d^-d;XvFo^dd^fOTOLgJZ?0(W7>u_mv1iC;y~UMpU6y ztG|)Ca8N(N|F|b(%Deo(wP)6mR_w(sW@``$p|H-zFIZ=zWJg3bYgwGElql&D-OyYx zrr7qk><@C(xRY@Z_0F^twss=k^>tkP($;>BYbW9xPuOB8n*@c7Ktzz7A(;)<sG|U9 zgf};OpQ9wuNZ!{8y=6ZV<2m(}R33gpERF1y$2>V|WXcG_I-5h*8Jp7I*@+@K+A+K9 zj14(LPo*Cosw#nHT&{Q#p^lU<)en{7%4f=#B-EjMIqa{P9m!gbgcn1r^ik~M+Spp{ zRckR3L)L>RbG7S?t;Cgh*HT-FlX&oqEk|;1xMy>Yuw54y$!tr@XxB1Mcda_Dg|=%4 zPiq;cgBk6kl-X|ZjDLmMMMgCPQw1y5{EIfn*5<^!MorY-+o8>j2j|3TE?Uk;?%A9n zha4qd^UIGChEYN<?{m{VDl6luY*i}M3T3NOp;U;iWoo>=3NqV_2_4@CTMi=qP0M^t z%UseGzC>H{n3lXm%Uq&mJ{HV;-*WN+2c5HzjlY2jF5n#1ei_lw=0>%-|J60NzxKfp z?eqWA=Khy9HwyQVSzX6uViGh{EUJ>(G~#pSUe0CYY>uXD@ppMR++AC?PgHqh#xQtX zlvCI4cO0_{6>@&|O8XPzCnWJ2d92pM<I+wwRHVkcs$KGrdKdnI(WaHR){&J^=0#Uj zw%ctl6SijB<fYCWTQe}y1B;VsDMIN1MBaq5@+g{)I%?OW(WX$~N*I82st)KZUsIz{ z`xL984Zd>|)nHerhZl(GUol)R#1c41k8GL=V|T_KCgPfi2YwR!x3${tDsuQeWj%|D zx&F(gs8WN)#s|<UMM1x7wqdYDG1xajo?^+qGH*NK6Ey-hcxHkOvAs#nvudjEp%=Ss zYM`qWgkgo?*zA7RTS^|qWFc7gW(>H?r8(4nnrAccUT8sXsSXjfz@&!8y+&Pe`n-WO zH@Wh*Pm%UKtJ20doZXI)YZLPFxV#=ow@CGmoMSv%bVRj}O1;*fn?TXWJc0bD-XiCw z>muz6l68$Q<TJ&yd0YmpSFsc8kcb=4)vvft=A8{04@iED)5_U%bk%OgjjD^XQADqc zP@)O4Q1{H%K4AA*<l+QKo~yqX3CX^Iv<ObZq=sKkEbuhrG{fNs3e|O8toB;96N{=v z?gQQ;p|Q85*+p|Wx(a(}GU;+N)0)4_rcgGrcahOyWA*d@eDQ!vGV&X?(t}s?nlYkH zXiway&*SZMMKL%_^S@DC>Lfbep##e2Ttg?z7IYw+r^Y5Ur|!cNhu=E6tdLGb_vO>^ zD7uJ#kK(UPS+=Gbm|SMjiT}FMbt0~usG_E592)v7Gty&J)OGqVyxZychjAQs!BHQa zdJo92W?+(CosgCD`%gV7hB;*qFl6f80tJK=y2%pc1Qzw~#;ib>bOffl?|2q!gsw3} zBBu)bz=59qUq?8dop)V<<UqP2ov*4t7yqg-K9D@#@ju(0<Y7jM&kuwdlJ#c4qq<cp zTV7@U><E{QL*hKKFeLPlF%_+r)C!l@5PvbA<qR67x;d0F&yg>U!o@LA2ELTK>OqVU z9%~gpouR@fyxOmm$d*!5h2X)BuTU;rh|#ifKmft$SmX_Cf9){|5Ai1R^w(MN%G)fZ z?ISNjn9bRZ7C}bu_h24UU9P}HP#Z`t9Zk;o>-(IVt;$FQDUbZw5df(FvU$x0Vfsz- zmtHU0%t(LuFYL^gn0#*@No;QhC%9mdsf+JoL*mWkJeZA)1FC40QoGDHFWW8yP6A8G zhoy;IMq`*<(qyAG9o%_l{C=0eV&gi4$*CEtlXXMtq81hyr4E1^n&F5JYX%!Wi!`YO zGsdWbIL0bdgfrGaGwpK-9G4CkG=~k7<U%P$@=@Htb>L>t9d|o2kUr4hfoEOdgi!2X z87Gf>J|h}pxyj?5PXWUY`)dGy8fhbt>~7zdz^{37XA;PHXg++<K$=OUrt&0Ucb9<A zhj^V~O525SHjMo<4>y;ZD|-K)n&!o(l~>e>&>U26BJRY#?Q-VwMiR8lx_;ph5EIwY zngUR{3X5YL;zkfYR0nYpo8B1<5CRjVPEf~wb2^ozB#0$2ER>EC=@!HqqdJ0eSowfs z1hY)gZ3-6QgwJLc>73<wt$ezNPNYVHSa7;j*(HGv1-Oc7=dAHyx3iD_qVCg{fBFI# z@PGk$r<3BQLZ3$V$}4LRO#o+Iox!y5DNI-4t14vX+zX$SaLE=ywzLg*Hplo+iQdM{ zMD>6f7z+IZK8VDd^Ir3w6!x;GIF_36Ws$yBJ_~)p{kr*Tc3V#aO%<TQ_7rdjWS(Ix ziuiLWE08&!I!0L=uxus{uK5J<t}thS=MN=-ROh<IC@Z#)ams0-)t=^==&rpef^U@G zE%>@4W5a_%ut1$sG35_VlKf`jrA_LrBl>8$^^-LiQ4i`Mi@*h+<-=jiR?7B#vT`(> zQwt@>zxE;1P0T`UFrrkp!6N{BAAx&8ZHWF?_~bzhMg}nP^85DytKz;SoO&~cL?G?> z=7D%lyvA_4Ub3sbu@F_fB=0B5>f6ZyIpCP+cW7aS4T3Rt4x{xNxn~agZY(%>A2M?W zpYRiIT#UuveSqjxmDV68rNpkIB6izUm9)U-$ym4z3(z<NI4FVDJ)k5T(^n$oKt8<K zSlsCxc=n^i<hla60ES&xJizc++Oxa?uZch6+(k$NjGVi0=L=qg1yUt}OzGeBwZrv) z+y57FQNN_#z5Vd3j!94Yavw)%v6Mq`Z}PV1bg(mhUG7Zv1n6*fV11uLO^M%9!|b2_ zw+-iD*3)x>qEtw+J1fvv1!QLIN}YuCCGmHr4Gy<-by-oO863#-4FzH4`K2W38c$3l zfvSQ8QWS}iSUN)TmGX41G&31hj6(Jh!n2TjhOuqL^=D-WGpoc+<FR@TsAd4s^wUXy zB(#SlsUYhjLZUVd7fK(dy&!@+KlAfO(b;~@4AcZ1QLR5;y1D;kh|Uy$GTZwNknCZ8 z#REh4>$(xL7+JL~o>|o2nK}3|{A`oz=x!?D%F1udjmYo(w5YcNy$3Plr`5T31dvp% z<D|t&7Y*Y-+mf*qB5*a-nK;R)=tz=28ys{any||TC@IU@<?MlBJH64(0UWvtC-Y9- zmCrM>K;&4A_XOr=lVB$aR9dV%!9fUeAb`MxMy8}}l9)vYx2I;EHC-F?Ha1L=tT*On zZ3i2j!}Mnj&TXxa!7-+*N0&j+E8}?!N0FbCIq!{pR>;8-A$;6Ah$LRC>bHE}@eoUt zs3I<Npe8IUU7!7*e}QD|#M|@AkwGkO$j(|tCh7=`5)eu%lKiqAaop%JWNae{PF3K1 z+xct6>-J=ZRI(5;Ys?TA+qmJ1@nv*|oMAhA*1hg~$3JavIn@eRZVRL_eh}Cp;2cid z!jj)n6r8>;hFbOOssLLNb&~X!kd@ysN(Pq?lSNQ~1u`%c`-0_?QY;gt!iwu#4asSI zK<h1IWJNgk_i~~g7x|34{SJvDWq@7B9>a!GY(>B8#0Vur%CSd(hTQaU$Bp>MYWQw& zHsH{b*9S5Gogj|cr^=PKYb7waupKm>ap>NLiR|SEBfU{t+4E{{5;^l;FzBj4k|LxN zZ)++6XH=$~dDQ~a1lqTKh-tfGQC+4=MY7i%jcn^UktjhdBGK5BKvOuN)Z7*wwQhS; z8A9k>y3vslbEypoIINo(C%8dusQd~XpBGVoz49j0!>4kx%HhB&Bt`$A8a;xE?to^g zo|to^D~AdpXialo_MH~`6HhiLzaX>an~{#@82@3TCec$Tj96!Hje)!q+Z{Vtyfk5S zA^f-Ttu)`R?Zt_Ar}Fbx(0u8z9YDsI-tEY7{UC__`7anp^`^i`!l`@Hn?Xb&WQ0=i z$wP=QtUu``4{8qyJdflXpO$n7Q3TtY07*c$ztC?grkM9|`M*_BC&k&usH*dIT$mff z_$kBZ8%ztp%VpQ^@Q`IG)nBg!IiNm1_|rd3)Sl!j7bDw!y|3|>2~@-kmF2azba<*K zb?@C@Mxr=>7l!P4`6kj$0LyM|-c_RtK=9nkcL`*ocG`j1If&0zg<ZO84D2htFPV** zeHCn0m^EIyuN0{gBR`~<D2wfS6>U`-r|Y7`&a^(dh?5MqT(Fgc+U_C+M8_KT)k}Au zTzeIyGM;66H<A>fp0ua6xIxs`q*dI-n<e&OuboSoEh4cA4&Gq6Z}br%Q~EmcXhB(7 zwC5T6x@u{0Bh?O$pI^s}R+|sdx6%%Mfwgk0MCT$p`vI7*aMu9PaMyHZp69biGs?AO z6BDaBXm#GD5r6Ev-(iahve%m^nUY^0$ugC!wDtQLNZ6+eX~o-`LV#6e(E3^~SSF-? z`%k1dR~~dmXcMtT<`FobvPtmd$mro~K`FUR6>cZd&|)H}N;Yxg2B>z1Fs(wz5_-_K ze}DCGJX#2IM)%n7Ij_I!W_XM*U+_FR+%o9AYeJ{9(CQ)3)h!l`MEvkd3B^6fBhEUN z{J*1L$A2DPG-cI=qwY#F;KZcE$^ZW1^Z1XKpF14oI#fgjXBF7qrv-$H#DTb>=I<zk z6aJ<mmp;Ohyo>Xnz4i${+M7m}4jXM^QA7yho+6cKt)b;jJ_eI=p;WGbCuubvJ~BRj z>Bzt34i27&WKXRwquY4`Zpm;5F?R6j8^CxtE%SmxCQ6I-(s~J7B)qQo6tE-^5^@#0 z6|fYfDsukP>9MY&LZXx_4#~;1x#91HJ3dGO$ty?&*Qr0E&Wb!M+Edgj1LUnpm?5u| zpZ~>lzzSC78v+R`+a6e^<85Gec1d$F6<ldbS!f|kVXUF;RX!$DsiYs(W8JYmKqRW* zWa1bfB)5D^gV(m|^VcoAp$uy+0GH=V-3}Ao4Qhg=Idb0%h4<Rzs5LYk62Uh5<Z>ST zE>;Z#dm~x!zLM+XYcz|HEMbHzZ$ROt@krc!0=hW#7yBKAxF;6}?_xH&P^{E*30!ZK zdbMZXU=N2KW0)QH7_ieZG6dbNpaGv=NF2@rv|`CzFsig)_^&HQsct5FMrbdM@S#JC zoIu*iAA?|fB2cZme#4HR3$9FKt0!|^Hpze~m0XZBeH^2K5JjS$(;_J|o{TNI(ViW? zT_A2M{t7yJc{%HFuC;8&Qaosap4!jb&Q98MR>pOZ==FRy>1a5H+hlm<ezTz?M6Zt< zt%f`II-NaeUp&ws9U5@K<F=E}o#Mr$C-IXcPn3fQFZs3wHrfenB)lo;$i5*~>CfHr z4?Z(J+3tL4{FL=dHJy?Ia?3W@HrUj*GU)x!J|G+UGV{j6LhSzK&wGuY^UBCCi|)S1 zqcJkArFG+zbbunu)H<cRRam4%&9+6%q~8v%iRv7GW&0`I(G!6_YJ7t4G@FryUdHch zN{`rcR*@!E-rs8-CtIdkgn*@FiCpw>wOvx|D8<Ge%D@IImgyW%lrnv!e0DbVhX|5d zC>{JadD3B0CYVhc7`Jz8Kt-CrTL(hVKCj0)4Ex%{DybhGm78y8OTqYv{x)2LsVAhg z+-#rJeHTWYfz|yr^&gs{#)YVrjiUl=|9%JpY?|Ig(ocD(`IXms`?QfPpiKi)AU!Z} zhN?cvcYBffDX2e~6WR|(pX9lLoOuA$AI#~T$qchk!$0EpGSvDXA9-|4`U0ch$A6nJ zUNt^ZxYd=$yew=EZdWqJyW)@Z9E3~{IfvwIiL(ZlgV$Vr)D;`|E%PqgvGcbQ|Dunq ztG>}QjGTS!FTuWtJZ==|8|0}q#29^&VjX}0>4gBGUHqO9Hl?T>fMKtpydB@{T9q;R zstB^{!<W@Ky5f*@dq|$b0DEuyJixng-ca07I?L}x7prDT0%uJbp!JNP6f71{HLlX1 zBw2Qcu5^<BS&rmM<j-)!y*#KS51G17r9maK{W{wMsVnk)@Bi}dW1PQlKP-Ei*|8=g z#F-tUt;p0(X<&BUx@ORq1IflqG#f`$WEYd?_i;~bGvW&5u^}TKugWt+kNO*@u-n~x zK0C%U+~esiK!gz5;y>J1r@zWiorf5Sg-hF?@o5cyh)6c7e3JnGVHZ$w$}nUca$r$0 ztqIaIGiEL#{P~+vBfB`~`!r=U*f2$qFlK8q<6+hR`mOD5;2dlkVga@UrlQpuKVH>Q zW}?GtEcU#uhA=~}9;${Ioav>+`Dl4hj~1Z@HMZqxW2?e~m1A~15RYEC?n*(>I+qd7 z$x1}Xig0U_Yw!e3TSxHrux7d09>09P?}JtbA1UyfSJa=RyY_@xahLG$dAqE#h0}Q_ z-K8*XEYm0ao}s?xcTXZO`<B*ixQY~dsq5j}FEBOhZuIZNKSRM)Hat+Gk|IH?T8EkK zXu)?Cd7eR11Iv#5Qk<gMCDw}(Y#KpFk&%auIUqg3VzlfT)+&PD26!Q4HE<q|VYl%v zl4Q_^bjtFi6jG&bHtXT8fApW}MikgoA708o+{34bAT7hydu2@Cim&yMR2viz7TOy+ zed$Z)E-XNzk>X6Fy^=b2<LjlM0?dPM9uAhSm+n7|C#5x$*Rd*U>ng%H7pUW&hV<Y+ zh%A<M^l%WM&RS-ajStU?bvOP`Ar*~lKuR4*2%r3)Iz~l^QOI&aN-;4?SO8Eh62@K9 zQGEN>CbnA4%QjZ*hEtLjmmWNGj)V{V&9_-YLqS!7opMKm4+=K;G;Si;fPm%#1tXD; zjTw{@^ud9$THgenVbi~wn|DoM0rB`~DAic32!aF>kiZN9GrKAUWABULwyl1dp+zwb z-LF|nxSaV{&#la8qWGPYvkXcjOvMFQQ%=~yzKjzCC*UHB_MK=xhQFM)eM^M#jsMfJ zhzIG;q+X&M<fOH%BC>T#wqw%P1#WYT55P{5OiOCw+xKJ2Oo&{SgNA5e=~ysLuz$P| z*((Zpr$4&x=<(2RxV^;Hnvs?Bt;kteXg8DF>ApT9e0qiSm4VFfw4%%Ej#RiwGT2`1 zA;3p}xDUkCnG*Fnkz4Pcx%O`J#=)%Tk`r$;D-0Sw)I=jTuz}5R<F7Dl84I_XIqC_N z;yVab^2B@Udhbg%qtl(MxTBOc`7tO*V9Z2+-!LBGYujEgR>X&+*i5@&TF@<2?)lsm zQi{RP3HI6hK~DYLwdLH+iqN~87X0(j1kqkq(3~;f+)6XV#0aLv6;$EJs}d58xD3UK zDTFh|=sBXSO|k}=t~?uGC{>`iVhXe5bqYyw-glm?Ew^Iwx5M$QoNq)nV9LPsOm?@b za$KiBNWH(Nfk6Ue;k76kd>I4?+poB8eHg849nn5AH=uyHk*g-VhO<N>MrS92+d{g3 z{cJynYDME3?xNwgsF+@`u)Zb^MYtTqDEq<Ey)r=Q9o29MdnF3Slo8-9CqoHPdSbvG z-fZ?Jz*;tAL;0uWW{@mpeIQHh5oo$^=#sc3v2^e1c7%2^4@D7-KF||4!SuB)BB583 z4to2?Xh%z1(M^chn*j_G5$4YTrM?FkLJpe`3($dKh`|hLCI+YW1@r6PlcA%i`H6)} zt2oCFvSVG5XV&dF;Ve0kP2CTdoJf!l>F#2z`<!5KRM8^6rR>jX+^}M{*Esz>#jRAw zz3Ig>VnDT|!$AmD3cAiI=Ylu9AUzp%$>a>ElZ4dy;)x%aM;B+TJ`f@(Fq^27<Mr0u z*zJPVf%52yWNXhIJgIbjQyEk5JXGl6h!XhcMx-eT6&ZGg8{$<tzYzEv`H;eSZYVfW zJy|C?Tw0vw#7`shlw6VUA9pBdiUYvXz5l}dF_Y0LGT_afZoC|PD(-GWxg~_y%Tqqt zlChge8Vm8^PP<&_NdM>Er4s-1?w^xDWbZojT~=8?a|Xh8irPuw(%zE}2gX@cD!6ms zz(5b8kFbr8a5!st$mv;WdItad8Mh`KkMw$zj|oG3Ci|Lmfi|!s@gBXW4!7wZ%4ERM zePhJKd7=pq$2gDFk|8*DAV!_1RktcFO8+etmZbF(!O=Oink_#`Beqb-KpnFj09o`> z6*X%<KsAP6(dw03I&I6?#!eQ>g(lDuE%seM#d+Xc>v(quh`JE5u&}O`2zoAJhW*yY zwKeI{FC72{Em9DEnFrD~8vI)L(ahIaM6#xUrZR1OGK_Z510##&z!fYLXXx7Ko%1Dj zT@>+}7$4VU*FzLHH^z<3Y7o{%d+CgO8rsiOP~8~6>0Ig2^i2w)bo@{vTSxiGZJCnG z>OUlFt4}b!0RPgyQa3B~Jx_uhx2nG97-VYHmw!co6A2bMru9RRUl$x5zDA2pO05p9 zVQs;$^^u15nOj!ZCTshzgIj{TGO7!YUv<x{T}}8=hMpG+TnjIJUodw|-mrN|8=KkW zQpoWCxNdmVvb0J6uc#;=a_(&aRNvuPSNd>IK}%Z__5B2<wnVm$){>8G5Lk?n1(0xQ zUq+to5s=3A8-M)?N~k@$hm!pk#2r^2KPdasBKLV8;oAj7JE>lQ{)fd09M8<TQPY=? z(XlCD>9zH`2flpR5E6DynN_^11JO54<Ni{7Av1&L%VTEsfCG-Rx4*Y(CUb}r8SL*F z;qmC6ugg=tUH2DH%FTRnQYaC9!a0`FcbS~^PJu(ig8mmWiTvKo$1x`VRJ|R|q7&A_ zI++Lf-D&YJj`(|R-+s<AZhsBgj|Kag%_bQYa`BT-8cV)IFuRjQy#!oQ;l2_~Dc0<R z`B<f00;sJI(<t8ZG0{S!7KAm}u#uX#{CqrAbS#AG&g!yFi0H2a+3G_(@9<mLl0+<> z&c2a}HzsCm<bTq^q6_ix>q{OJ|MU)EBwTg#!qqKet>CLw#kzgP^fzn4LG?SB^i9nD z{u7|S*K0N%zx41y=hn#PUjO>3gv?|WDSypD7FP!LN+4a5RaSn6X4siN12hpO5IsB{ za?lsZt4?7sk01W!El`dONy6)PStphbHP;M24zDH<kA}@1tRv_X0(TH7pBt!6RH=cJ z5~!x&Gnu%#e@<5S@Ck2CSX^<PBD3p4)GS0n@K4wG@Rdwxz5H!KAbCVKBdD(UK5hx9 zo?NbltCfYa$|_`ozx2!o7ZT^tn6ZtQ4vKju4k!e}uXh8rsLn7=!kM2%8<gQ9H;Cc+ zvqWluo7e9>4X{9BI<=TT;(-%=AY*z`Q#vz1O_0C_7(BQoXz<`6b>IP(^Cpx`xW{vV zOeB(2W~iF}m4AMsj!6mjjM9<81cyXzhH<b2-OU^Znt=+%g;-O(51)ttD(NE}J5Bp` zB%ew}r^(wZZ2-P0leR8o)9(ahk}ST%kzi@A9+9<Afhe^ON@rN@f6`GpG%%`gijv`d zbV3vqO<1~2q<2L5+lHG8@m<tv@}8V<ky8=atc*>6ch%%B`G?%a8OH9#G0ZeP-H~&y zmdpa_H0(&njb794y9j-q$gAm|c57+t*1OpVzfvfy;l$FC)A5K)$$N6viX4*TS&Z$> zGPAp}(JU;(Ux;tP-!!2N3<e>UQG4HP2kM^0G@+v8%*f*-u1d6QTg~UI$qaVKvSrwn zwV}eHv$77e_GIT4U&L&=j!zUo(`P9d6I<}tRA_e#8zoPQp-m&xk+xgqkoG(^WjqXU z;js49<6*dyA3N`WNn^8O%q5I67k`ZKR(>+;Vy_t{bGfK}SX`x5c%js2>#g@ak*uRc z7K3Edmei>#DL-1X&4y;qVSCwBV4r61$q5yC4@z*HdC8-}zcf?tFzJs(@2^E*N*3Go z#OD{MK&%t_v-nw>_iPN#x?vMNsIi)DqKP)oFg9R%BZDMwrB1lAXlkwp?t62JR2Uef zvdFOk2o<JH&V%Y-$MI}oLX_*|;zn*K5TG%{y<Z0-CiP7m6Dd+D5ErS~zg~oCejOVa zsNeH6|H&N4IQ}Y*yL(q0<=YiUBW9hoiMlobk%ZL+Nzr51anaM_k}n+^ht)mI8__ej zaYp%9sy$DIWK>dr-`k6gXVvVZtSjW{iaZms)81RrmCaj|ryBk;XkPE%yOyfdLTRgK zO(cei8Kc1+Dl1SVfV%pSW>@blX^4K6?I`~px}@$s?QP^RK6ZkqRjXOkI77P~LR0Qc zTiF)+E33WO<o06uUR|7fCz&BJ<pmZIP6eQcI(v|!8raduiNf*1Y>K)AhD##k8H;Sn z9rn>W8_@4__VvQ>o#qO}rvjtdp)Qi5>R7CE>r1cSGWQN)7-C_WYpsN5I4raw3B(^A z=o^F-d&e+gSc<Fap8Ov3cu|qO;``ngm#y*)k7bGJufEZ%QYlXUnt%981)}IP+c{o_ zTq8MSF`15NZhzRF+%}+oeYh`mN@;1``buGpVs~D}J{cWV*M9vfRp#oKJB=4>)5x}Z z!H{Tov(J3}xgvb@;*C3(`a^@+;Vdd(&D#sY_ioI4{NaG-y{7K#eWvpDHT!pjM!Yuf zbTL~@PhEPT=of<+><=4NSp=QjYN)++P0gQnC*bx%&!wx&bw$u`igS?H$3CIe&<F$} zb2(fPw<81KP&<LaPyonB{<~w5e*@V0C(if$%?UstN8?=Sb~`gNVs=i144M{a{Iy@I z*03VRN8HL{yPa9amztFwQgRgI7?P0yM)Gs*n?xNM94q@unL3kEiXnum+#7h+goBR9 za<sp&jh$WFJUm9bm#PNwoER-A!$;llMA#q36JEX;__+ZGHa6}crbMSIiZP^X7(b3r zpjG(Q;}WdRDFUQuvDNhamu*y-=n5zb=5ES;Ta`7`MASWn<<P>pNO|1a&Imm$X4CdW zvVmI{5q~GG^*MMM)27P*v$NIxjIk7?M`P54w0LVaE_jzYg80+4RlBnD1NIh--_Ni! z^igidL?gmLwN;ywP}xun#eG(5uP|?8Zg~*It!US<Tcde|4+!$pedBKL^dGPf>UW2Z z-fpb+eVe~@RDE0XEB)*I2efZ81!~=oouTR+@Dm~)$Wtbu`5h0z)rU({0!A>5-LJcH zy+8Q7V_k`U4rg7#sgVkl<I5`oGvm|nIXM9u^>>n`>I2Vj7<CnYr61-CM!)g&H|cRc z>b90^^@FIJ$c2D^{Vr0{20cI4^@ewQ<s{3Z;s$HpYpjATTN6ji+I!i*nC#8S;)kDq z#vbYip07CC*9pg%!<cH&n=H=-(sre)z^+<AaKP~{0KHlR<Z#F41k%;Ek(sK);HeEs zw(MhDn9&foy~38)wLPSr;Kpb2#(jh)&5yb!u?y(@ZtWABFcoG<@8cr_8#)Vk=>B$u zy_avAz7PBuFUGWxk)MX)ui}g;BLaf)T+L~#l8z-RrsKy(qw61dPVz4MpXo_Ei_0z2 z<FgNDPd9k-Cv`||AzkXe_0I$qsFbkHyZwo}K_YX+UmF^(GV!M~oIrwR1nR?canD9= zBlK6G47hP50k2Pe>(_IM%c;}<6B)YuxYe0Gaku0XSQN+Qp5=>(1!MeeqK^G^eMvDw z{eOSKAL0n^QE@g7gJ)5Su_^yvO;2Do_MxcHcDC$9a^Mm|TtA$SUw!}Y$cvLoEo`i# zZyFA7Y?!`T*h$nO0W+umwmPkTBOlfpdN@Df&1YUq9{TVtaC{{Hg!_`C9I5YrPj%mD z92gs$I(ueZ>E5HX@i3a^B_~e2^Qgb2`dq>SeG$OTgqS7-y-N~Qp-rZZ??I0>;F53K z?+>enjQqTPGIMue!R!RULB@T8bR>R_4{>x&L=$h|2V)qelr!@|?YUjrdW-X0OFxW@ z8v1BO5AX6ixkfpBYt}DV*iwP`leAmA;(joF3*JSltMh5@iB7QQlS)lbZ#b%lK6VVN z>gu8k<S*ZE81IL*qy-2Uz#L!uk%GV1xpCHu#9$6b492GO?4+fq@*FA7NLY`gh>XM4 z(y1kEdfW@4sYR^Y@moK?ej2B*0GJ`aw<i#bH=g<5<i-}YCY*Q9g1HIiQQOgeGiG4` z#lI-V^1QnM%u%6K#NChD?-sG!1@VflMJ*72d?~dwQ?rg2mt(7IyozQNi>*gv18jGJ z#4E~FwjCZ~ftAjFp`KVsjCiwq!82uo9df40-jGE2iwP=h_vb)hMX)N~z_w!une1O0 z20*2%<7)14uVi6l%DoP+zYnNFspwCvAJdJ?m~`DJZ}gQ2-_2PtHZM7F76h}`p48y+ zXMA4KJOg@#Nf}p5Fj&ZW!Sl^m5%wm8N5~ua+2r>u3(t(1?P?F1_&^(R??+m38G8** z(MSmHKkhO)TwMO*&8#nTH}4!dIRc|q!N_d$x#e+nbtNw~jXt@Si%P7y@J#8(@A#9x zBfo#ZA8{;>#n_=_{#Nc@vBYxDoeZeJTRiJlB}z_}fQ@v{=;5_8n2u>IWnGqOqTC!m z7cGkR`A}cWoFMwbprON*_xS!OG<l<~?%X$FbyL2MEqiU`jb&|I0M!t@_+<M^h}o#@ za5ne$Ml@%SJ}Z3tsB7VU+)kJglfKrcs&R9(Dm^E!%+uRBsNiBsKTJuw!rOCfFmC`` zsSD~Hj@%73m=X<W@CMG{pr8;AFAM>py<3P8ML2ilG683yjpA2eUjb&73vA50!4Ayl zbD?bX>m6`qc7+5~c(ujeItRum4NAL!*`?}k1K;+r)h1pSHzQxUpdN8U{fEb<eq>Xi zV5XT93TgtpPSpe;dYrESp`mdLJ&#<JB@{HazxvaaJ}JQb6v((z7<LkBSR;ZiDXYZj zMFMVf)~gr|K`GFr%EEj!)bH6d(dr2@dlN%t5zj@#91v0q_?-cl(SsiEVUXM=6Qh?q zI~yLt(V;ubmVyL|K8{yVG@$PGzGX62c9fdS(sy^<$AUfM9kCNZ$@nO<5}sxYH63-8 zs*<`$O-s&~@sgg0s$4AmKb9Ne6Kh`;wBR=OVZzcDYU7#4qJ<<)VJV9mdI`<arh!o) zz)gpCap63j@et^_<tfjV-R}a<0yrNWXcvR_EpU(pP~Ci1W8TnFEaan$@zHNc2;NYS zrQo)Pv`X-9-G&gQ3LISnLiQGCui65T#o#|Rhqa5bcB_q=CaPdzRcss;@wq!V!c9Cc z+%RLS`XZTy;KFeZvcT6~5Z_eo=gR^Y%KWNA#!MEQeDPEC_pz@Zn67NQnCGSqVtMZA zxtkw-(tg`?=iEgct6sCN6mY`(n}6mx{j;}%Oe>RBgr-J`pq*P=jXv3vx08COWHS;} z!k)o9ul||es$DD$3C`l5Q03m%PfX{}C2*peE^=aW`6X0#{Qh0j<A`FCpe{;TV~8z| z+l4;gyZ1fn%g<}?WT-mv(~S1o(w#%42dK%LYe}p+3tcAgy9tb>GE>JwY+Z|I0&m6M zVB2-0GGB><(%=H~upiqC(3RZvs>?g>+hL&veKjHKuK?=N-2_E0c6IFu6ZMWKkxw~n zE9bj<a!)RHO(v9bNvO*hjFgJL4W(I+SL>ShUeH6D*+Z!evx=}l3u8qrr_yDj7inQJ zj;<`S$SEh27iirnj$-mtpq?^4;Z{9yOzX~*Q`v0dfvtGFf=IVBby+XJ&JUNz4}pIU zk8pg994I;6S#vLD3%B@Dt9>c*F*fqhQ8*(xM@!ycxyTsj=yEG?79R<ez=ysnl+}(l zO)%(LLsiWIqQ}U+gqyrbsm$M}4n%6`JTq8UzijM+%*0Y9kXJ6*H(B5LNNie1h-r4b zsmMe>`Uh=#8<0ticb3-r(e(`L#vRm3M2Y4zW{;RneCFSXg21Yy8`6%IwgrM~7X)iC z8r0^7(QCyn!X2>xFZhfbd0i6JhQ{3dS4c=naSoyMyAR2NH;;NgHr-P0z4hT>5AZzP z+|yRX{#*n6BdOEJYAq0B*hBzGCG4=9zchGijm6#L`hUc;@REO51CMwwXT1=xS6q%$ z?U=ysb?A8PlE$_`4C8fJh*$JopRZ$gp?y#ar3v9#w6S2TYCnRUS2w0+*qsN$B3dMx z9VIat&mzM82DWEG=#DyuFI9Ysc9BvDwy$TAB|TFmtbCcMM-#D`bOP`ACg{E1qUg5t z-^RsQ;n@d+CoO%VF{xecb>NFMsh(ARpae}LBv>KLI)f6es&2yVZ$)IRF=%ulcODP% z;dY^n!4YB?ZxQwpGRPUv7Q{Jz_p|Y!D#Nl>i}Y9N%B<gQ;kerw{^oI<n%5+Bi_s9q zaNd|XB}GaN3sDiJ(ERMZp;FV{62@nRS{nv+%ojjyZaMl_QQQSC834*xbt}vD9ofmo zBz>zAPFcAz_OFTNdk$+ybEx;m_8CbAp91<#T0jt@wa@G2ctpcBVH*rE6{p)FcKpo$ zpTj-?E}Ow@XE*999^G43x*rYeXQq6Cs!6<7W+}^88w!!YLJqF2JLC+x0n_@~KCX*( zM;Hsz(c1+C$js{3-t`Y)gpl6Z9X!LsZ+iRia9c-TU)wxCpXm!;^PJHt8@m@-PKbLZ zTku#&JL(IDsDgDKH9dnFCl9Q4h}pSTlfmrJAt7buFdGk$4!Mqkf)B`mWfQsqYE;|C zAcNJr#RL`84FdyfBoCQbBRphaIzM+->6kcFoJWj=0Cyb=dmIghu#5?;+j<F{cdt1l zD$p@aZ|6`@h*LmfU3Qk1B~#{r+J_d{Kt!I!8>EcZU?Lc_S^RXe6{Mu;ygC@V)=;6C zF^6raAPHoqdwR4~n8mD8n>-;Sy(tYu6vZtm2t}@JV$=zh7`OA0IT{KqQ;HvyIe0dL zL<!CUL@F{7TjkHuIIAGSM~O}f!YPB!c{LJ<i>;~=jS{?e?)GQ@yo%gW#3FI_N|`}< z%vmMW3=4ixExuk1W*k-H?T``L`vT#Qdz0w2yH)BnC|t$VRO~UFXE;CObs7S9xKS-> z$RmhZH02Q&d$kzZNqB6j^|Tsq+=p6VKbScVEf@ol#dCgm!~pzfA06?C39KY=BXtxT zR^(a4Z|tF;oboelfuIS4!sTjC&rTB77X^{8@)opfl%ErsTBgHTLJ$)zqJB;`ymI4u z<s<jW)2D~&74$rPQd}^7o2qi%l9SjZ#OHZVkHM$EJTvs;jI1{@`31Z*?wD%jjJYX= z4dMEr+?{&@>4`Z_geClvY45kgcLG8K##hHZNZ^a<-F-%t;f7#tY)Yi@YQyTT=OSpc zfOjz{Q==+=w0&3qfStaCx2Sq!$A)<niwMby;PIa#$_hThii1sFDT-jcDiKaF0-A9O z`Xs_1)TMMUQj_!+t_<Lye(UMq$$%DyB9f>GXRU7Bi5yKFd>Tnc=Bv^DTT?5#<cO}g z;%N9l6VFWti;J6UTYQD=$a#2R*CA0I0-K{6&?aX#7y)9iM28Snv+`KUZ6wI=sfzq? zsU}6#K@xC$3vktp!4R3w=KO|pKMXqDXig%OsF(MVJq7Gds%P{oU|N-U$XKZSZW+$x z^tCyh)III=eYIRIuUh-$>XMiCsmo)vok}<@F13Q{s9zc$H9-M9ye%LwBx?8WD`mgA zdU<RnikPu)K}7)!OFBQwplwNDYf-2>0R@&*JA0Z>#2S8(<UH_k!?t^mO%L+#J$k6d z=7B)}@X+rMVn7dlIMV}>%tCbw?2D4q<%X8G(`HuUx0&DWhN+%AIxvnxWqs*ruK&bX zrMc?kvq~csF15effR--TD_z&9WpJMMf-KXJ^nPwbb3NK~yHXnjzla|nR?SuD*BAs{ zkB)WVzmLDQZG3XJ_9>%J7$lo%UU3=ggRZ}fwVHPcEn|5O56TfO+MPRtT6<p~HQk(u z@E2gy;iixW!&D)+f_`QfHT4_NWJyr3=HVvJ=43a!-_=@klPX(xG4I%Mqs~O9Z3o6e z&L4%BiW{rSWz{79l`SN$Xn<$%xFCO=M>|9!TG|f4l1ju~+gJeI=Q89vrH-^cw44{n zi3HOn8T5$+iVK{`?GM0XvOo#;tg_`(5MxWszX^5bJhT}fZB33TrAY8p5%e>p#zV}4 zFavQLUsWP>1#;*6$7lXU6a$i`8ipE(slStt|16SYg&?SD%gqNS``MctO=?Ubm>H=) z@WP<?vlo68sR}sq9lX}$dQ;i$Kbsz{yZvtYb<;FZ7J2sI8-vDed_VtDqwQLfDniTK zlrgrA(Cvs)4Tq-XhTag`)n2Jh^|Bqy49r@@UzWxj??Uu2Xe_!E8fiqmdx8a{XqUtK zRAu?WXxCh{&z3xCSS%JAX&N4cXMnCjrG*Ei3p{6;u^h}0iC!{j{OJ#(Ig~;p-5nY= zO{qrYz@v+HykM#>H!L*L-Jwy_Qt9<@XfF~LXxGD`-E%m!5j573AQ~@2%iTi0{nNQf zHj!>ZWxjF4zM_kHK4k#~?&4RNRXm#A-tz0pyyj^<uB}|ttcwc$O#pTR>H0}+u`z=V zeqmI##U5{;g+FVO$n_)BH3$d8=}YszSy){X_0HHuk^7L?3UKO)Qj--kFDHXI>8Wk9 z=&WiOxS+AO_v`B&7mC|k1L)YJH^ovve)Pr>-}n0a{Q<r$?u_wHx6ePH#PAH06sC^^ zC*lpB>YZ@oc|Gs0y>aK)<+!BOj_>+MZqIQZ8p9dIZuopYAD<_Yd<vg}Q%s!8toU5{ z9rlY;oniXdb0Be}anJzAeYNsU&sE|_@xq3OqCn&AI8pDILXK_Qg|;aXWcnUXAHliv zxrq3w1CwZ!?(ZiWudkoj?nzJ78}(b7G|F9YkNHN>4~63={jj|D>gMeBaO*f~vk{Zg z!}_Bc?E`Ia#?qsCYG30-8~RzKC+g{KHggLVdAiNpMaPTuRDFC4(_o_LsbkM{?LSm% zso#ssvT)tp_3QEZYw38+;lt|MN<>c`SCKlI@QoG^j84Y==%>%Ur@inlyQ*c@9xqqD z;whX~<H20wV<jIRUAVrnMosIx0N4qla2^`_{G*AOd}Ymf@m}1@mSfKN!KqlpsNu7* z<eygKgGMc_wvL){B=D|f#5R<#{^3@FQoJi|dd(w*f4Xrh-byoJcA9#psc~q8p|#0C zYn^dSL+bj?xa^jXvpD0yRr2B5yX%S{3z{AwnQ|$M@kUsY2wYgj_^6v`H&%vOxyTy3 zi>3LM)?`xo<QL~$0r|F_@3h!XwZT<eCl-)QA?oHqS`))c>TjwWOs?)?L=TEAELQ)v zRB_Vdj7T=3oO8=r9|w!`*A^nqKW#0XF-N$WRI^v9)@yZiUWU%EfOI-mXVMvvj?ucT zG@!*P0^zjo-~80fKPxy^is!?l9<=5IO=E2>`njh2_x;Pk!<#cuH8y4vjQH|MPQ!@v zVg|x?H-QbMQQItRdZ#|!lg`Jg%uRJDp3$BCmjGSg%#cDO7UEnrqSN}Nm**T$x^BdG zl)fF`#*NK8c7yHx_a~!v<3ylGn;F&Y-vr{>@q~Kwbtn7PF9V?&6#qVW^Lztp<FpiA zj0op{meO9FFP@dc%6Go33NOGDxu?2<Xuk#yrkT%}A*Dtgtv##{ZTIs1kKhX-wn@6$ zALcw*=411GKCUI6Twhg@Uf-X8a2zeklaEEI-?i|E7d3lZh)%MCW1CbvTkm-JI(gaV z)*I>Evg>-=aq8O*hWCp#V^cap-?S)4npySrwA?->LgSv<Lk&jkij5bB+*4?05r|7M zcQ?SP>GQV{)Yw)`+n&UDS8SGyt=Ea5ChaAa7<h8|Z?noN!589<ee5_k-@uByBKB?I zds=GB!m(KqU*-~6gIynB=0tjtm#xt;$KV&1nN5WJVNwwM&#wJc6;f1!Pcj}P_^6Ja zB$Bfk;xR+tvdLuY)SsyDY{-pgJ4zfg_L-g7Hnf%rbiU8K1+UCdfrK_Ma23|kKL9<; zm{vqq@=vuD*C?EY(urx?+;uFfKN2TsEem-BW{{{%7;89L6W%3adbgcsS00@zbo)nr zxq5aaeUx!Cx8D5UGmJs(_&G8~Sj!fMXwy5}UXk3NnfCNk;qb{GO<Kdc9=<LJw9d=y z$#~#nybcRm<*$qNH_mWuzyl$HeayBq8y#A^;nsz-y~Gx^hhBwk=vxLJ{dkrcEKb+g zDqvjZnSm~}b2HGL@SGZjLW+vfJjMeD-_*e|L^8e^qjwl@po5aAeJb__e#1LRpiyzB z-!3Wn&jPlj0c!sz9lSl~8W|8z#P7kg)L2)hb+4y+E{@%Pt0$|decBs<{`|uyTIYH~ zPUO2iZnP~Q#O-mMXoayU=h@iQ><5>*)(SS8YaJ>`97)roXZl?MIwG0TYbnCX!a7R} znN<v$4N1jr$SOhQu;=fMEV<^+t+C%0zT`hQzN1x#5>r5uHaDDrw;Mm2xtH?=-o5v< zql^0BuZRKlq{p<S^S^U)RPsl=qK_3p;XGoPQ4D~MZ3-(d!7=qj6eRl%gJNs>itl7^ z*LY_%;MWw(*;Y6?4m%-{VG<j!uywYrKd&V>KNRQMXPT}d;P`^V*d(%?S#NK0H01uw z;!5mOoin?zWoRt}PQw)Sp|!4_T2)|7(kDEk_FnJ@-7#MT?O{m?Zmp5pw71Pn3+H{U z29<pz!Dme*o8Ux_gmeW>Ii_lL3@*dBF<civ#sHe+er@$bL_Luo13f>()RDCb>}JO| z?oR)SpD^|PpLk!1?Bn$K>ZQq07=0psw*L6uTFvmJmfn^OzIP-#u0Z4se6n`=L09ed zJ3n>BW^Gt&lpNN@xHfEEVmN;wulm504&qbkM7gb-L9$4h%FWK1u75?F71+8QAvtFt z@8R8VoKjQ_?1K4`3po*S!4JM0{xl)Mk1$^s>S}mQ%#?rh$a6YINr!b*>PD1rH111- zw+?K{F=<ejh@EQNh}`g4SZ7bRU4eO5F3ilJ#()&-w(~;A?PHg&Qq~<wQ-r?%UD{)z zQSPP$<pl*?8r!C?M`IqrlwYq>RDw-;gj$?e9n{fdM!UoJuq0qc>+o=ETX%PBn4iy# zMQ?kGOuj<V!RXs<M>1r!+xjHpA?L<zu6vl}$s2XKaP7EaN6v$l0T_H~7#tJDV-+4c zEb0`UQg}S3<aQXI1CdCCIAYg=^4D2`B_pwkMlmsVMp;xP92wfqtFTSH-~Nx1Iab_# zt0{AhJj~%gs`RDbQpT)McaX+W6Hq&y<e0|f+FRHbLyBa+GQ?1}5Q%v4K=N5*BSqc2 z;zEWmWAb*CTBlm1@^Us2eLL(YeO@K3My&7t={dkSi91ZYOOK@jBD;B2lfqDutz!{2 zO(|oF#G-)dou()J4)Ojrwrox;f+?PGLiUA_*<iU{JPe1o-GDM=M}2A2RUTacLOwid z$b$^c`yQF;9Q{THcz53Eu`w#~pu68q<0qp9Mppj4KOn*PDt=Y>oP?tIen{<<G4(CZ zN#`@N0NE|K#N8Qvc00B8)AoKF9kjRXi;}YoAO8e2U*XU;vzbf{P})S$?2u^QR?JM3 zjR0A3jTTFw*upw}Rg>&=uH=dr%gy=-N-nIQuIBRla{-wtTJ+u#7{F{3Z6#LEEP%UJ zmf(2-*miH=r0Uur`Wy=X98o6m?#f6$6=r5cuc93j20dSr)Yk@fT<OHr&$$U*1cgRB z*#0)qcufEGFMZ9{9=jh=RbCOGmfTe1@Nww7Jecua{KrM$OJOi8L&b3FCf^;2JH`!; zN*x+%MOq7pJ2UBEq0q*w^qY1rGf6E#2lD=pDx1*$=UNjN8NfIsC*_|yIfm%uf~~vL zJ~g>oMsh2RpNYQtbZDq=2vP>Io_QoAYZSxQ-NBQg)48-N^TmuT_un7nRL`ZBbE6BC zhmSRuoV2s1=kD^ijhl1R3IWaC8Z=C5J)<~kQe=+(2k!JuPFvd<3;gkuzSG_4(2vF( zKzlNN?9Oyc2;-z%jI(M8?EOG}7ZU>MO@IJw>Zh*nX-2i?Z%8s#>#WzlP#em()*Cr= zVC3}h*)SP7%)7J`p%bBOoHhaVJWONl1;=a*+v3{K>PG6&=y)M=L_C-@+~{h|4rjx& z@Hh<dm)-rHofP$!`muy6?2yGrED9e6LH4$uAq}O071vFG!dMamyHADmVL!^Bpm#B3 zGit$M&mJD8Tt>AMQ2TBc<xk*3A9ZS>xPF+_dxkg!^|XTOcVI>vtbmwLfi7hlc@Ye{ zL#QS*2o7?v&>S3BMBI#!Q2qpGH|SueL)^_i-*yY2Gku7AldNht%-6uyhBjN^!X0%u zj?gvfioEG#Li@J@#P?lC+%ZnQKN}-wHbdOLpi6}NGDZqEOeaJ=iP52us~O_j;$Ga# zxt&=%0KQ1Bh?U>kweToGeMN$fd+UC-v`DC*D+-OWK|4m%v=|s!?WB~ZGGD$U*^KNp zn4%hHqbbT|d6=RbjI4ToRxU;<jD16+G^*bUG|~#Tf*NUbzf~BewT$eQG`e*!AZyYC zv6Omc8)#_|3pH#5iMJC?fTy_yG=c2N5DT>|hQtC{ueu^Zdo+7AF|-q&_AP}mBz8qE z|C{XHJAR)n7DWPK+0)H+F<H4TM@XMpmpGHfW{6ja20!<BW?rxLm%tI@rV>DS%c4=P z*Cb;WwT$#Q+q!FXt9k*kIV@SNV2(i+6H~^D(F$kzNBkSx&JM6{+uKWiYOnO^U+#M} z#ap$2e!raTcaKtu2S!eh&=0gJ{T!CrnUfCzG_yCP{W(B*Qr>>R?(C%b{F}Iqf7#t{ zw^Q5>p<K;6Zdn!u5WmOl8|Xk&n33|n?ztNM%nIXX!`H_)v!V_MECnWX?+DC0D4Tu~ zlpSseR;IF1?Rjm?Cua!Xe8^Y;nK2tU3^05Q6l5d*pHkk4{#Be;2#hC2ZzpZ$Y<J2v zH_EG1Xp<EzTU(*t4c`u_xp%cNHa(-@$JA%MpGGnm4`*YK5jM-Yz{YP-b@QE5C#+1U zRQ^;o-IZM6nALU550=%c<yyq2L6u)+Se2}5s?%qG%AQX8OH6X2RU@a~Yh3z-{rero zFFFV?PCLXgxP3O@OxRrT%<|PW6!m7y-^2#|KkZC>8RwNOWWg=L?mK{y@VV-`CsO=p z^D&0Kixrd@$|?|>fIJ&=mp$R1Ne@89khC)ReTcFcS?PIv4*Yn}?N0$eM>Th}`GOy6 z>Mk9=kPW${v(|kKc=yJ)f8+c-Pf?=lZ^xgQfmz3hrTX;~2apESWHxFY^WI|}339Tb zY=gv<w%^keqSx;R`&0U?R*DJQ9zoG6hA<Wzr-3jG6FYuW0>$sSd1D*=Iq|y;)%^@B zk<1qw#s3z?Qz*7AM;jOWS^O!E5$IrBjeVi(0>4eL(|K-j;9>ysnxmdoS+Cv<n3<#r zIz7ABAWYQpWa(WCebWRzx{Y*yj4=jcpb<1+)ANboETB22Ov1ASs<Vhx3p}_V)qOTj z9WoPGGKK+&n9;F*G6VBs2!jVBcoS7N8fUdD=bcmFRg=OV2tjX-^q>*Hm<x0jEp4}N zD8C}5)WzTRD0#6{@dRv_$jgVXV^Qgcekon;a%tY^<ocUMEXcoJQK=5GUa8T>C8!K$ zheAKb5CR`Yy8bm?a|>6|G;NjQobPF6&TgB75fd-|SW4@bOKGv?E78aG`HJc?x^)^@ zNg7{_Kk5l*3x81CbG`7k54NAq9JHfPu5-y!C6WbPf;Iy8(Y8Q>#XTh2wn}<ruH}e7 zl?|n##-tx{C7*1GotkE*m^OLGn0;>3Ek=A!rAxC%4n1CV9y*OGG^+4c7#mjyxMf{E zmS;<cXdaflgu1E(1y{Ds!O{+YTzoPeQa1HtxZxfjZV@@y6y6Q(1^*%DBaErq-B^fU zl#Q&%nWTF$T^YWOIx=BhP>V2-(S*bBa3Oe7p69PRg&RM&4s4g?x{jPwHxi#DP3Lju z$86nU4h&|FZfK@v**=U1V@xZljS{%|&A2ZPKy|S+eI3V~VJXlKMD_InY1}ZY@qyB- zXLw0JqGSzeRh-UenRZV~tjHlRjTh>uL3NgCQ8Gxe_D-L5NzEaWXv&04p&uu>q=XoI z8*EE@N#-m!<URXMys2eVKkU^fceVfY36APR&voXUxaXgxdrz$2wIfE|)qayiief17 z44AWEl9FxCU!+!TQl|2QW}Bl;%DnW4IRo)nJ`r>c3O{G$&sav82GMxT`84D|BX=U7 zh9X{LC&*cfC1KW;)n%O%Qrl?kJXhn=*OJ<N7yWIVp;HULOyv@&nEX;;mRxFF);4Rv z9)m(_JJ*5_jGAulwBcW_BjnBY<g>h_gnDdFJlTly83NMRA66)&-rjr${Rtn&yY#iI zVpa}}qr#8KB*oFam|RlaBaO021yr2H<dZ^xGD;27mx;>wyP|0H*Qn3LcFBjYb4;FW z{A^j=>?@>ab(6--`gR&1*$l_sF!Z&1m^j}4Ha4;-H^EkP7Z3w-2McToIn<D|x?4pU zR3WH>-K_SoIx}NX=}&C&=+_Ry2II6F+9nTtg+~I7O9K8b#{3HSQGz{RfCAylSPM~7 zsScMuiycZDb+~lECxM(xW%8J%e%3H2nw(>PPO0iUAa3WDftTc358ptLiaoHXH|;UM zMPZ_UP?~~(vv`b<o8th!x(XNy(ZZfB%nqE}k^g%|@j;ap<%%B(ag3C{m^kQ_9v7cw z2$zw?BVF<Yt0(x`3?LOI3U_4?X$1AfqytH&abK?UKQT}Qg@HnSv3)8Fws6v-E)clw z5*U&pl8VI>AT-^kkcmDjrl`&Wg$uXW!)MDTF32@{Ef^XajFj{9$OHmmGi)!cWutj1 za6=o(;F}y~B7mg{wA%*jYEweDWTIVgRG|vY-U+{QO;ahOn<f=3Q@ex}x_hhU4%-I^ zBxZ6#pIEi33Re7pfiU5OdC3gZp=~XGnj_uOyU|!&EeYoO-Y93l&eowJ=VF3YE-!Iy z02We900AN68B+xy5-1~K0WpNxa7Lgh^ELR&0xhxF$#fOs-6|g%$#Yz2ZGSu%+40JR z^1{99Q|D`cML%zKU&?O}mTVjK=gbqIUE5q>Q86=i2RBv8A3$RrnY~}~{LzJb_pZcm zr7vpVKFFV{JEkmyMiS=Ek~~|*{;kBi^1+q(3jFe5@vi-<lD$Z%{0PpA@L;yF+^+49 zU%qT@skr|jx}l_`Ou2LSva%ILJkpoN7nh>(bULb*RcO_fsOPx2tB4GiEryPucnbXS z*~8_F6mG1~LOCW%m>D(F!9K9~J9Y6E9=I=S82<@Au>T^CBTqW&1~E~4y?OC1l?7Yp zkr+aK1A|(JIoM<t2u2`;7yh*!1VpVcskJCM4P@F={uFHPSU|4R`r1$1(8bjSkpjq^ z*}hCCw0FT{E?A=dKdwzguU%lp6?n%ba&5sN#yNFGOdp{dqzT~3&egnJr*nwjX9I?P z)&VQ@-#mpeP8GzwN;OWJ7~DOt&}JVP=%RNe0o`$r(+7pKW-z&Lgqeyf_Z9|#C$K27 z&P!*Y!ax-6=#|1Zx>wu!|GGf7F9X$XjfUUnx&!iu44wtjQ#+N`g|ioIcUq@nu8!&Q zrGJl?FbrbS+l%syckLNFU22pP9QZNQsSDTTaGx)Sv5&Zn_yYT5b=ESleY&8LZE;AV zdM$0{o){35!0i_kVGfQ8Gj0Dr@s8>yb!9*CXN*10chSwbPha>*8;|&;KW4wL27-1V zZUDw2^Z$;5)F`}F!(&v?lNc{g)meoxZQNp_>WajqxS^XcSr*!sB8Q;~_XO_>s=*2w z3|w=`lSI_{1Hrq2TGpn&mup(B(rz#u?v*#P=JAs5rq4=xPirb0i;Zh7i!Y3cjCNeJ zbGiyP$gn864qq^gHd{eVnxRb%KVP%l(_M9a)oyKP{H^!GDJe$3&(uYQKOR;b(Z%1} zkmv8ZG*XLf&+vXZbv(#64X894Gby0S`t`Qu+Flyte0Qxiq;7eBWg?Y~=(lln7-0b) zcyv&+<d?F+Algz0qAVsx2}5HNn87o|u3x`G29ivzG1Y|y6*9tAc|2^`($r$Kc+JnG z<Z)HB>}=*Wt!P(;wh&*v6%$>z3@|VVx*%((*wkIuv&>hq=`neVy)bk|Ag)EaqpvAL z6nsICE-fX;zk$e3z!1mg<_)OF=tg`c!)BF9tVn$Jz#u|N*q?KL&_$nhEC!ZgK@Fpg zqJ8@YySga$1zonYmlh~Dt5;OZT7?=Oti-_SazzEHM37XCZPhUNOCj@Xw4B<!g>)W~ zYYcBMp?`*Ks~SeoE4zNuf;Q6W+~RFr20>I3KGlXv{c1PbkTZCA4QFY<@T>G7#cSF| z4YL|038QAQ47Z>yD+axiWKn1RMkt8NqY1^o=gE%yN}a?Fv`^iMv%v5@D*y5qvW6Hg zZPtt)7j}5tsWWnpVC$5+8UND0A!}po6vSMUMyhnxX8#4sU4B?$W?{b;A<E)gyv8xB zOJGPj5=1a<UGW*o8*iM_dfsFbeknn{dJ?WOxs~3agG%4UAlox0o5F`RqsQEgJ&3(} z+n9O_zuX+(7RQ9M;h^4@Qp3;e?sO24IXjmhbqEH}{fq~>xlA3=gM)?nK6<<(u?=+I z*xw?pO#$he>(VR_tv7PRxoaHJ9ep)dR%LqRp`2bY@hB}hKrmTfAO)Pxgoe!7xqPu$ z(|JDh^B~vB)Y<U{k?ZJsT~|Qe1gAsh?A$Q&LwB9-cV9qmD$^ruq!$;S<9N?#$02vM zhPQ<C;K&#(Vl~Bk7$T@MKj*oF3O!hh-3lT?92Dn#t{X({VkBl8kEceA&6eRn9%a=o z>T;a{8?B}xrYz_1yw;Q&ad2_oa=|nl>NmR?)V_6S)1WMU7WXkKM@duwHI%LglW|i| z0r<d8s02Q}iEvV6q#i&o!MFCdq7L`sD9nxqP?6q01nMiC+Di0r>TssI{Zl}{`&t?Z zmMo=zj|TuikKUQV%WQxPFcjC-DU0q-FeK|@wc=b|0JSN^=6WC$q`4mem8DWC<4WBa z=SYbdkP8w0L%7rWK3F>bcGC5nLqJmFn3%o}*!)Q14wm?iM_f@YwH#4dNBD}2rcOAZ zFqZ@XqXr?}xD_jFD<p6vt?0PYl31x6H)`s|0A;-{tMMx7JuYC!>&|y<)s~tTH;EE@ z<X(4>xTI=OuR=~&b-t*mY{HJDB_#}O)@6!y+4n}yCF0x@d<NArGE@5fgv7P9;P^vq zwd6JiZm+*>=Ee1EWLmu)FTT2LE5cRDWiJE2ms<9hXaD|Qj1n67RB&U$lONBF{WkIa zmxfN7J=nW)_N@%j>MBd=%CE`jdTxZT%Sc7s_sD^a<A!wVD;qb3k41A3Hw~$lIe{re zxrZ#cf^rX((A%6v*Qc1mOFil?I-mSHzJ2DXz~EPg-izqvBF@R&Xm^X&)$k-gdbd<7 zdTtYNBCaLRg0;Yj-<Rr!8m?}5s_y0M8RecV93$@8%T7;+O|}6`<7;c`s_%WgFWB#V zc$2vg^X?4VcERWux9?XBFY8I#`b^8LreD?$IaKn@QK-L$>c_|fKXHBU5v$I-^lI4+ zeo#JCav#@2f?8-H|9O;+b6vsN+_E*5En29D4=o#wdYH8Jnd3oC!|De9L?BA~C;HjS zac{;eQ&Vn?704(@%Y&FyV1Q!+5z!hPyiE5>gsNi?%qt@KaQv)Agdk2OF;MO;ONj*A zQ^V{c5ke*xd^Pb=nD1vBNxt}_ZQDH~4a_EvIlTBvGnRYqXETehwJgH=`qsgLh??!2 z(t2!0q{{(i&ByEKOqGipg2x9%@2njv-w0QAS>Q+#<6@xytQ9}^En3ve#jmMPL)j3p zERFy-K*+yNe?r!X`Wl7>9V1mxgdV{dt+U;?Zq!Iz&iOQbv1P^gcEgn)Fdo@WK2$8F zW9;*a-QQ;1^g+?;j>eiZA9Je6w>??|(V&%K+%_>q$MmY0-=-Jb{i{0*=-&2I2tO)A z1{4_RicpATq!K|jWIV%zd6S>tnZX?E%$Hx`u?-|JCxeH_X~>R{Zi1cUhoXr3?{HW{ z2Ack>kGI{ZbuY$yjV!(G><_VzccA~J{f7klza7gn-)4(EXsYQS=26GNth7o~J`7qJ zTw~n6d%>84O%;z9M75AtpJ|qB2+@E(yK=fPP5pOl(bI)!d1hB{G#Y(KOhmY}|HMH5 zjYIk`McnAeE8}yRF)?Q>6YK(e{O-^evnM}GIzI=8UzZ_z8u3VM-xmOph(rRKR6Kp? z0TGAFZi(0)ibTfm6qfZGbvmojfXHhH#6C`T<(x$IA3eMJ*AAY3l)|)e!?w&r&! zEF2eE`O4tYcts8zce&kNuCA|d;2yhusAmX4>|_6bf5ov>p1-rMj<Jj64p`7T4Ua4a zA}Al;Jx2X!YJQkQ7qZ)DXU1MmVKitw6Fh?6{BOi!iN?t91DI6@r2KS96yP$IFBP_} zYvQ|Q_%X@kvV&DNC47<bdfh`qVHaBA>KbxWWrg1P<Q1FZHvKztS9sH~r;)<H{_!%T z$i6)LmzMqgio)Hc1tf-#UiD7)t0|HHb>$yl{_+aC^|zOX`c~BKbfa6r2U}T{!g~h& z4~e7q08$)OR;7aF3P;H0fn|9PtJUVP+Kev07EOF!BDFKRGK)S9K6;oEQ#kR_Wd#g+ zW_DAD)D)Whox6X$yjT`YC0gCbP-tzB%BIQ|rPnd?E#jMI-_uzC%Dr}lHkrgvuG$`k zQlW=_EMV?cqjMm_H%g512{?H<jN@8X)E)F9qkLevV1!LkUGwV>y6Ly`&Ur#qOGe$x z5!I+1_-p}*s~Db4<pTrf?IU)2hFziFP0b%M1TFLoYoj`!;<)ct;H1xJnsEKU9?3{N zbRZ1y_zf|tS5jC2hrCb~O(p}{Z9cj&5MydI4Fs=fqLo*!anV>e8F>)t`4sWZXKjhA zTk8%*?vHktmPYSK4lQkp|J8&r_%da;%X7Z_j6Sh@+X>t0Eq(;h1L>a@bzyK`4bzx5 zc?ALI-LxRxV#5HF4EDne_3tf}_ZfR*F{$0`U?7uLqzB-iK0{Q6RbP4OcZ=)JWan65 z1SWq%87Z7G_zPkLcy`vh)C%g+ltq_AG)Gl@e+aNIi_j+*4uzvhXpCGBR|Hw~p6V*m zL(eZEanFFYa9ikp<=hCHw>zk-X<kOb1<z(45_Mq5`u~Uo6X?U+h|ZSy_$CZ?2lk1N z6PXv_H(gW>ee2v4v$vblMGuG)`!i(WdmKRxcz}Lm81&Ah>#NHx9ESB=euiwlPqGIM z7oH(+?_fjmagMl+POdxZmB9$~3*cvSaS=nXezE@ZQ%nsQoj)t-WK3}L<Hya-{r%11 z0i%P%w|TN_{eh2u&{F1XiBq|ZYrw_xhht;x<R4%7-;~0a9-S>7i=9d20?`OzKVNR2 zGqHbqJZV$mi@p(OYdzIxa)Fx(7gy}pv>Qw>w@%uW_IS$1&9>T8s$53QK-iu&W11<$ z3m^P1G9oVW6tTGg8;Co4&XUyYP+*x&R{M%E@ae<g)AA{BMnnBERHwn!4EjyY?IqP{ zR&Px>+BbMCEmFHCmE3V(%U3=;(#eZSZ8d-|V&a<;vmU^ZT?g~#gS2WUV3KJ(>k(h_ z*ZHe@a~#ZF68biE-Ff5!<jHHVFAtiU!x~=FsgYu1-KyQYWr}T{0woB$CgG!Hh-2ne z-oIa0`D-+MTZb9K%3dDidn5YEn@cjcaQ3!jB5H!Z>j^+m1K15gu-phX!P0|(2%B`& z4B+!90r#<y1jvDdm#k$UcxTSzC3&yh&7R3w{$Zni?`q$`*0HM&i=ov*K)mE?({t^{ zvJ`R7>vUy2)IjV;Yr6g`(`hMPP@<&{W4b=xD`)Oc8CA`GZ|ZMMDaL(Me}jspQBOi2 z1v9Y*gL}@)RS5krc$KuX%@7g0uZ1gD8ciYNQmNiM-D*1Gh#paroSmMkOvpQu<3gdv z>{WB5m?z_bMM`eTH!IxnvlMxkX&>}>THjq-JtdhW?XC5<zGzvvb@f(3%jsJMxBlKT zvDmr6`NfT^&Z|xS8#<@=`Cj~0N0NMMWWwJuVzG8~GA*N>UPKfB{N_nHIoBN+?-*{g zb~swiqjoQXt9k6CJ<$FDV~B=$@n@e(j^&PyPXrIQw2pRI5^iIP4%`NorvobbPjYbp zQuish-#gse-r;CrFqEXqCplMqK>Kien|Yzr{xt-m^yvJU5qt69uSxhoA3EvwBVp_y zMxpH1pFjJI;!DN@X>%)T__cq*#V9eT)<GGy`z$9=oWhZETfnpf0xWb=+>NLW<X_iZ zEPqoIuWJc1Po)LAU+%Kzy?Vj;Q=L_V3Qctwin@)JZpK-}sD1BYg^w4J7_jVEBcbk3 z!y+G?=@k(d(`VKwG5gL^w#?1&p50w4X4V5Td#jrUrSEmR-gHCj>+V6<+VOf-;dH+) z!M9A?#JgUK&GB!9X|OF@)i>+*-<62mlb4x(=@J-zC1%er+>>{Ed)M8La9=(k4^d+8 zSkzEy;xXUgCjYQd)YzlO@*#G?f!aEJ#~qxqO3`908=)W8>1+rsHC&v>M@JeuNK(_# z)<BYi;ED5Yq~gRjC~~X-B`kfD5Fsc$C}(bh2eCQ8q{<uAXFKRl0oOH>1KKy$eDjl( zx4wC8dKW4s!vL(!<*{Rt^c{F2S}8k+s@DETo7Hz-P5E%ufzoay)Zio!O~%J)8kDlU z;b6crWIN^TJADf6&12&MdTjut=U9{~D$BzJX@M=?7^}mDDdVFv4N9ZUmrPJ~JN+iB z&0#Y8x;$qFZvBY7WHYGE&I&KzCzh`?o^-`4#fC1hgCR2@CLD=h@rS!Gq&=@Ipo^HP zrI|dF$#Io3!01xUD3z@ZvTN5;Vw2jl&tnhE;8dMAXtPlB^_u;?8%7$sn5-a`=DKtG zQXxK<9lm@y5?)3X;!{QPx<k~gg*uME{g6+v%>rQd1f8vf)l>^yma5b8r(f2|K9Kr) z_CqVd3}~XCMqKp!r_HYRV|~m_m7L5ox|n*#JUbPDA+HowR=Dc0IuD=4uE?Odst4IT z!X^QjQz$-O&#GPy)x#i%EOrZWYr^mD)x0wCk+RjfrRL?%2w0Tk&y7+}#P?g5Z%YJ> z+?AeGK`pf9cVwvIl(#X}RV!|RsfJH-KKg{SEboGef-I*$Dc}Y)d=fbz5uMfpfi4(X zjMzN19$XFv!QQe)2i>bz#aHqm2deqh?5UN&Y>D;)S)ilO5!X#4rUDkY<Wh5jRl3C; z(rZ7UB2VJ&&kcF<p;v-3CMR#a{Kz7yJk`_LM`k~uK8d;TRJJcDwzw-+AJa9KAxT1l zn+`W52#(U+9AJ|Un23YkE&Ev)3^{bU8wMy}@Hxm4#^h$`iuk|q_&$nEom>gHC=vV! zAPtbs7zd5}<l5PH=c4|)g|xABJ6o3ZcTIJaHa<S{Zu3+tqX=}>obcrwU*lNzrgnLk z71A$mYWO_c*Z6qBhMJ$eZV7o6LKnOcyHSy@$~LDnqM*F6$=Q@%Ff*cXEj@iLGNK5G z#`dV-d0A|`Shv7ZpR+EOyr=!k!XoDF7iB>v)tc-D4Wb4}Qy_&OpM}AoS&0>(P7};+ zWbNXtb#D4hCM<zG_Q^ak_oN%tOdx07;cyH_lC4gqBF;EjLxZu2{PlyxbVzcgqesIA zFL!3N@ldBWiL$LspGx`O_%y=+pNJ#6cdnJ47#ZzR2WDTMHC<=87QdF@9kTajF3gw+ zp3G;OoT2Ayv8>heT^pZmrlQ|qs2pc|w4`#SQBLXw5PxZmknrJbX+vO#q|_Pf<rHEv ze@&t=MO9d4(fkED6f-_&OU;sALa7}Rc65tegJoa1-Hva2df@B<@*8YQQB;Qpkn``L z-@w>(;HG24IyHvVXUG=hRdFdFVu+!wnN7yv`P)N~Yc}12zcnHvc0$(=619&fx;~4Y zc62eF!q`|;h-8K)Oj`1kmUyD^Y&4&s$4PTjPUx=Yj>Y+(%yX<~-~EpR$N{CgMSwf4 z2li`ZEtkNM0~yWGk_8}u!eMZRt;B*e)Jjv7(eq(B!<*lDlV?_J@f!>F9_7&Qj<W>f z`wPx|>DX&YOz{?u_kasQrNo)=esG#QarK2lm><82Xt)Bq!3s3IOHs4V3>gV^g8IR) zX(i*korBI6q=8Tpz#@k6t8jh&>qNs%6d0^H<+v%sTJM{s9|@E8&$nNtqWzQ9oEwi} z$2qu|qE9NWjfuf9X$=I$);}@|b}hr~)-T;c@samA`MWurH-_n^N9h2o`~XmCp#QIs zqOI|$bD|w9rU7cItb@8zg`n65N`Nk=kV#2o@KKiP7c&sRaK%&-O0cF0fKX^YL#<>Y zB;mkwJSN_@jq3#v@uEDeJDdk)9iu)FVgVP<a)t%Y0ikWYtgbRpyt61%k}_w|6%9xr zSj>3lBRGL4>mt)Y4e9n6k#QVQHPI`Hl}y(Ig#uCV#98k4+mb2HJ+qkyLo9V2^_V~z zc~;`t+4=-5xXK{nJRs%;Qb#XPm%_SXUo3RbW+L>7`MlshpasN0uyhW(RS95ingTe1 zX-;=hy5hNs9{?ZpBJt{Eow*pN;of}GxU&ckV*HsQ%EXlCaD{ea1%S0bk4`cgkWjIa zAqfizj>9B+q*RjLVrK>zvQdawY0?={%*=UGY9{x^l*xcOE_FR$CF+IP<U)%|!zHV) z@h{HEKI9sQ_<%99W+&@?yEw7s3kv$_#Fng7B&ukd>WBr*YE-OlIB^8ReEwq>aO|<1 zV>Kk5MFbOdmEfXgCm4nt8dSP0K0I1UZWM1GJ2Yhi)l-{}@`%xHC~TfbJyjA`JP_y= zAsn!#xE$?Nk&uS@2{gn^+zx8uvZs~$#6uR&TJztC5s{c0R?+YQy)m-`0+_<+uwNzl zA*o|<;)DdD%o(#~I-`oPz+_pe(g=o1dxO^C76XnIf)415Nb!O&Xwq}HL??x7id-rV z*5El`;Q!MZZd9MjoA~?WFA{gptVY%O5~_xzRhFTWf8TkMnl$6Vo%ruujG2>CLQpIN zQ8603tBA~sZgNBQ*YV;#3G_(Qw)?iXTUIe`U2iQ+;c@pz7gxmC*5k0xNs7_tA~$%c zzeYc)?op#RX?1XqS5e3{*XD4gYrXbcSp4=-P;+cpH_{6USH0=A2wEuuhE)NY<$F9j z45h^MO3*qY!{pmE(xc}Dh7JSaoeM!qu~vgxbY!8eogFaNL!%4}mc_6r6jCT~Y;JHL zPa;AhG+d`+gRrRJC!SVaI2}})(*30*hYqXNDDCUe`-!bh2_o_up4Q8<Mv|qTm1jH` z&E8vAS%S8To1Ca)gPBPiP2ovj#m6T}??Y&+%aCOQ?paST_<8?20iGLj8RKES^AXHA zECM60G-pJ%&*i2#)L0TQTcr#$QNjf#NXhr*MZkD-F#2mRym0-PjA-2WwHWxZBBoxv zkTR=;Le^{~FT+Zml?bD<(n<Z*7Vndqnt%yeGAvie1fCd381o$|<7CCdnU7>dMH?|1 zVl$^`$7X6H353D^RSp}S_tn7O+y|zHkEt0NfkQApTDf@`Gj*x3u`9xFsSEvj<38Ab zH*;eCdNl#ZO(Z?mXiPehgk%wph0@_zBRQ%5aT+eB7G-nOEsk}r9kxwf>^qyoQ-b=X z>dxXdp&z-#4VKb!bA}0#bg`*DOLUX~(B`KWrJu25*9F1qxe(hcH^L-k9;>|QYk`pt z^Cn%bbV)0*#={^$==z|P5TsS(fX!oolm>|JWJVj=gxDzQ&z%Z$yh+tPtk}`rfqG=Y zYJoX#$1TLX(gl`A+4->46ffDL(Qu1(+)9YpPKX$hPvtY%jCD0*!I-)+rV@i<2=<rs z2|>17JSRFcUF#eSb`J8*_sn55i-o#l?U+zXO;gg;G*zXj6jc|v2EH+IwN9y1>r{Wm zU-1`p{FfTP+nIBaMZFEJG3c8lu57HopZI++FY3)VQNAo(K>UxSg3IcE#zkEB_6Yzd z4l{AJxu|y^^9jSefPm7ZKB%5&!Zu$l&yl{bs;snjxw&<{_L}-H_1|iLb%;7q*>S&x zEB_ej(nUHk^nX&Z|5BBO4?F7qBNZ$rUDG6OgOt6hveK%#xlur%{!9J0+Fu=_PE>YO zirDwqbG&qM66D<~RI%49FTBSe^dTvW1;I#dd)YF1Kbd_Lt=Q=e>daHu+lyJM2dr`? z6RNSLq-Dx!-5cS)AvUow<Vd3dH&&~OAhDuU7-g@VQ^B)_A?S#c!`w0{UI*KBFBupl zn7GO=Jt4Ylh?m*@^x0;MAaeZRe#f+Ct_LDCtyroAtm*DdyP~zS3Ll%i7Y%M~!APT& zi72ssIrFx>KMm?wN3yF##(vm4fsD+UeE+9qZbm`A?lYokWR8TqnnQA12<}-zo8Shz z(~@?@67CUn2lQfQFvgSdIxvx$*yAkTL%^t;Mh8Cg&xgkr<DOuO5z=XBeOq|KbIr6E zfD?4v)giy(;3?c4${=VnQl4xr0ciiaE*%895JoE2@k}MtPAhMV6mu~bQK8Q6q}0Ng z=pkCN@2pi;EG&y3e-<^tPtOkKhB+u|R;|UMf9|Zzc>GpeYO$a5j$1+uaF2kd&aT&A z0MC}N)GVdKRdqRaOHF3(zSP<Hn)dsGT;-k9>pt$@;a+qLI5fu-{02r~&KdVHx67S! zXY=VfHl}9(`Epq7AMeFoy7ST9OZTvk?!~YD7x#izy8s20M9EU66A;U`#{o|`;y5Q4 z53dHz&by@BM}~dn8-r#o+pz1SuYUJX-VmZd=epkgUPYT=;wfd5OMZoxS5=L**4;p3 z&Gg3!+h;=4Y}523C#<u*qsC9&cwmbGBPUE>=#z{V5ZTZ+^e&AnApJR!AsnKk$my^I zf}jaN#V2J#1)LrN1~wrXC?q@@E(s0)s^}b7`o5~BYhuxUcw@s(wOdXIw2COGIYta? z>+<Er@msqXBp%OA`=u)r%X`l!R(3D{TWBUU7(oQ&^qErxheE<6AR)K%+m&U|2;txG zah$}rct<=NIh{+tQ)hmW|K#jkNMV0Zf4`sha8LBV=R#E0WhEQ?ZLCu#(yUQ@F*w0y z*@#J2u=SK!0z>CJ8vc4QMH$Wwk0PPta|dr=QyJTuv0N*$)?2V4?YebIH#(+W<dO&c zbZepUosugH*J9mRFPFbYOJ4istcLSk;{m@($(T|`XF$N~M0fMdOV&)s8X1itWrn&5 zyu(zqL?o6#(Sna<KoDRf#1<xc9+n%jD_3mL;)o@Z)EM$elQnmx_uTY++MRBu_gv$c zQ?GZchg|2hb8mXssh8cB6?6pV5J3xT)g&v>KntOwr76%_f?PEoV-x3?-~e~7TXNvs za~It(=e}ca%-eD4d8X8)DFxKfj817rh>;*k#wi3386|eoY{JG!obE<90G66)zT(yI zKj_GhED_JzMUTb;HD{e<s$;z&;`4!9A4DQ*|va3R1@&?}Qf(~iho-Vl%czx{os zdE@^R^w&B1>#iM<0rH|gVlG=_jGV4VK#LbGe(^nlS<JF~)xY`Cd92k$V4!)xpW4$2 zh-(bq6q8a5luN>9zka2coKJd_0SeiT?FNP<83CynI9n3Z*zD}}CX7@+z0@$f!8bJ! z+TfRh^a%TON|M&Qv_nZ_FD<o6j0|Q;eh|I}yG%?CmlwTkZ!VQI_#2WbZsqOHk!KL> z@<<?#>^+4*O~Q|>guM4y5D+oS%Lodd7Qq-LIKD=fRoQE)Wwy-Y7I_VUriYnSBhe6j zlr}V^nmeTYSK$YREGny8T2hxi7p+#yWbv#9UX=jf6(1NQi39UFP1E<mMkf=ZaAUPV z&S0aLB>?@ww>0_hT%Y}vs@fdr#LMP08*~Tk^gA!bpIhq7iGzGuYWe2!gE3arA_a_I zwKOmT#(<LEwHJu8a#y)^DI1=Q<V*-YM(|EOQgxE@l6o5$jc9KablZU+*EG-tM}q}f z!!gtjZ#OdO(UBDPcpKpq*O1c@bt7KV!EXH3{kmy(h6E8Emm6J2reqY|(La*=XdN<% zjKfHpiBx%~G|oD_m}p=}l~SX=V2*GrDRz1_`v837g=7Q1Y0QtJ72!-2oHwx5B+#eV z`?$9s6<IFO58j~UTWSe)K&{RFj~7)l#5LJ{ADR%Ye5TNTFRsxZ?|4;%eRREu$cc17 zx$6_1sn;<#fIK12Cb7q<mE9KWh+n#s&6uYwdQvzLkds&lc)_;Ez}7awpxeDp5Qm6C zqBbHloqylVCo)_RI;4r86#-AW^pOveE#)X93rQYE=ynq4A}WM~Y1Qks(-XSZ&CwQT zYDp8c(-RV>;n-NeO+!@DrQkw#30};aMt9_8XwtiFG0n|cbWbT!3zu8g{pS@Y#Z~_E zA*iO^{uy#81~&%JeYp)D!wQz)&IZjgCNLc60NavWo!O81F|1O%VIKJ5r-_80wBj5c z_{qKpPt(LG^@h+PrU9(ziX@Di%uIj^U`c5A6B@27=yJ%*fzrz`<of`DNccpJ?zjCL z+3a|GJkl)|mD1PM0cw6xhD^2Ac)8v@;c-x)Bny&L&IntFccyaQI=S5D`vy*aTvp-d zVAelJwM7nzD}s3R6M|V2V<X2YtY277SXnG%y>Y*IQ+rf$dCRIU5W%vizbFZuu-4}Y zXzuoVvN$T1%2IexrBjk4obWwFvihqgd@%RriRs7Y=f0@U{P?}&W$@{BbDtuCyC&at z6ezx@Q7T?j5w4@y;MU!ZG}*L_3zH(18n?+@v=>4}Z&id-DsF=H?pL|}<oeOkk&)?d zpmU^SSLgZ;m1qi5!)ZmvM7Tf&V&4QFEE{eg*c*ArZl@vfs@^7cet}o4!dSG|U!{#I zbTDGcGzOW9XzxZK+Sg5aBqWA#EsY!8mWf8(8edZOqq;-aOFDDwn4tZ&sq*z4yY(*3 zLbwt>u0wsWp*%bWw;Ss~-=|TQ3(Mr=7I#gW!ld$Dq-)5fB!pUb<nf`j8M4Xvq@?Gf zzzcPAVc$IJRG*L^N$<7j`MD{+71Ua<TZeMb^=hi!>0ZrKPa<*rEHf<w>WOU-O|hd8 zB1Y{-!;QVNaY1qQoO&SZ168gq*Oox41Bz;S?Uy~%LKYK9WvNKjF^n#*RRLFhfZ<cw z2n|t9Y`&F^Q`WM%bUI#pL~S)Ft+bIe2Qy$3qe_B|pg<}%mp6RXTOR%Lc?gjg?`BAh zm4ic(j=WmG<M{nmYwM=gg&iL=X!`W(iW`X^E!1z&+Ye`}clu=yQ@3w4eB>QNi!`!* za%K9%T6_Cis`@7rYzhntXCQjFR$O43&H&^|jsHCc{M-fi?=kNxw00zSu9tQ#ay^^0 zGp0_%lswnqF#6F3bbD;Qb{Lrwh#<0zMxe5Rt%kEGVhiz%st{%Q>$&-mu@`)J7fBwx zg&3~aBwn9C1Pz;i=>O^K`&((Fo$vH>e{1I(V@D0v2-A6PZp7k=Vp=V+orsR8D#!{( zqImWr2C|iZq;%uPx?u{^VW!U!79Dj{!F{7he0|(}x2u_x@i*CaCK)w|e)6?ht(Hbe z8zQaCp}zA|mD+C}$Ii?d_k|(NY08g&;H$tTZexH*(yhpZ1`?}H9&B#tJzfRY6bajq zs2l>@$tM)eAB)T~LD301SYUN_jz6iGKY2oEziI<^pX<#xM<G0laaE8cB%wdAVBB%@ zmFwaC!)zwRS=k5QoJS9@7c|`An~Ol`Vwr8nV1~mhKmNF-9Juw1J|~OJVtlf_&jP81 zs4FU0HgD<QepJ78%`!iF7UV8HG`SNF`FKU}0=;^v1<5&l__VT`mHXe01fgnhQ!gsi zj=EUTW~_pU$BKTkzVZl)7jX+6(-~})Q@*xyPg|nyBbYqHX8j>m417>iwVqC5i$c%j zWmP!}W9$-jZB_Z30V`sQl%bYn)6gkKTXd>2Dx|XVPbyVu@XE}>@?g4adY=1W&0$t* zZ3dZc=-5m)2@ESwB*$lOPxFeT+dCIi%hqZ33fjg;rm_7Yo5H2>+RuwQrsgN_RbNnq zqTr$NA)4Xdz#bvXn%q}nI9vz$y}-3h39B3_%j4}*N}ZkSGE8(IwU0v{z#sgXbFZ=D z3LW5{{dYt_VHjAsOmM2R7~Sw@{LKBS54;StqoM!)k_&0M)*Bv@pWk#b{2|r5_)7*< z_OQb)fdTu%?V%GQixnCY!+95%3yPo#Mt4NJ_2|31i)%;}7jQ&Q<QANWq>-u}GEEJn zSj0}#hlf^tQQ9cH4vwo<1lF-+ogDM}VA)4JqLsLh&fnCiguh;4^ze<qNeHYbPH81p zT&l+x9Ngfbm~(DA*uHNN!O(Vd3jxzNZR?Yh2=o;L>1?HZNcD_TuT(0P(40O>N+hJ~ zm63E?khq_kwtUn^5<fQ9iWE+aeqqGa*+YLqV){?W*hrv{eGV|_<8Owl|NC<!l{?(5 zfa3#O+q*IV_8ZXtDrfx3?sz(+7Df8e0kZ<K$L;zv3;ILVOFvc>gxVpf69oFB_4m-- z6TfQ6>*eX*s_RIN240yd7?yZ<z_;e^h{}WRN4sNO?DQ2yS@(P)Q3)iCQsO}@b<8N) zuMObf{cZhh7pQLnTYKls9{uT}-XQ;n0%nOp7F=RhG`<MTxc#K5QAlP7;?L8vz<ft_ zQ$_VWoKqgw$_bN!$r-J<tfIw9jKH@__xg4p5rn#ii5jp#Z<E<gI+LbwskD09B5Fx? z-tJ{;coR5a4=2-9S9)V$hdQTp!?1(Pj&zMOu4r#l^0Xnx1J?CM_bAoTF?Wt+bd@A% zecE(6cBp7<H#J_WF(Kp4GI}d<4`ZE+ybbqgZKbP-?Or6_giAMvp_%yd4)bLxOK$$` z!Dr#Qu3(x6di5CXoN=8or$bNERk|nt?M3!JJ{Z$1hW!p-C@#?dX6k7^ONELIKmm>i zk|W7{+zZHnCoLm^*{PtyfCJwn9&E7tDV`3vVO6Fw+tPe1<w#Tsg`G<r88N=KV`<uP zh-5{an>|VctDEckej8CWc8U4Kx)f9jx(1VRF$c-eT`T-0%#9~uXXV00`Eo_UAyxQ5 zW9f!)$&uQ-!vTtFLyveHN>ii0(E-!@p)z}^&UIOp*DvSKb8Z!Iu+PxK6)b!-XLm}# zP(bm6VAphCZn1uHRCsdncrfC?ByTi`{MuDM6u|VK(=!wodJJ#&YMyk4O3@;PyFfOW z=0e2f@T$izE2Fi(#95j5%|7KA8hky}C@V96POr2fLt04JwoRt61?rYQKHmJLqx6!O zZ$RL91>20OZb?%BgOX%5LqeDhhG67#{wx?tG+(O{Tz>b%$ppRU==_yLBAb3a{$l`y zcivAK9<sus;+lITjUe`F*kn^B+-8&Pesf?DVeE%K-Ri9EJ+L5SxWd;T>h~dklpv!p zU-t>eiVXTgD}}_Xk<E>rV1jt2(?2yNln~5p4ISi>geft1pNm^mb>8o&no98J5)-x? z2^t%1`a<Z{C_#bT;0$}C1TzL~iP!f8e5b}gJj5IVf*2F$LRcKY2A<-9M^=A9R}zp= zV(ua9$=YS`hV0&D1`UP%g%p#r!Q`*aXX&Igmi6R<nW;UQ!%O*9VB!2y{Q=0Vhh93+ z?`5_(8dR4M*jRY+;n*9JBbt6E;gGlK`2do@o>FacGG2`$@2AVFr@$nSI1m$ZUV;0% z5o{2NPTB$?5d*vPU}%Pa{Y;OOIotCK4Z>v_a(4QcaAD8M8qB;hy(vFmp(vBhC_bH^ z9Sd@3ux{D$A{a1_j9SoI6Cizb{mS$Pb^J*D&b5fi7@{i*ft{n|4#9EL<!_C-Hs`d; z66n(^51u8TP2i+g-P*{@mg82t{DYodMCfqiOdviIPiNSz&__mj^&i8f=>RM^H1@}1 z6o>F3wx9yssxa_2c*YbGWs#&IBd@j+XBBoGE$HW}hS1;kSve9Ls=d6%(x9O#@37XV ziNPxpk0^!}Pu=*5-QA}@z<}xZ)7?A!=%5YsJW=-cBZEe7erMcR55c=>zPA@$3yzXp zSsAh;i7CxC*u9j63}ecQIbgnB4W%TP5HUkQ+)R1d8(QLA!?kb=9MiQ;z14OPL;g|j zi)ayg@fZ5*VxO##A~!Ltijr?66_%s2Ij}u}e3W|0b8h#>?=DW+EfIQ`4OA{Rj?};r z%VY%OlviGo4{8^c`->_YeI^AC%`4HY{ebGW;AB#|qx8?h@uN-h7|r9=QSGH>OZRU~ zl-&JM^RIt?$e@kVRfV8-xh%Rph4H!5eoSw9=b98XL#XbFusdt&og#%aFGZWY0ZoR} z7xxJtso-X{PlPZYRRNy%l8l`3U%i~}(57jBOHIo`_?$MtAyP1w$BHT!6ZA9LTNXu~ zY5a**koe4Z5nu8==zpKYuAb-d)+-Kp<Ma0|+Ac$)E%NqILs+}5h-W*&p^(F8g1HWh z!ifm+4UG*9<Tp~g=tyw?_ggwAlEf6~9&k=BVT9nY48pO5IXXcRiRuY87jhAcP53&G zGJ8$+Wqi|-$mpeS&!DaqUFrm_e@4r*^nVKKen*`4eA3jsq8q2mfm_CY1%DM3wU@XO zpeLdl2D>eJQsK3nS?%M5^0VfGc)IP~372P9wiQC=4c81YJ##SB40&nj(BNcJnPt1r z!b5i}0nK-TC`m3~q!mjTG;rV^Vch`{Jh>wxedKvy)C`SMjwckZuiuQcz251C+d5ZD zj?sblBh~nk|67Q3B)u{EJ4lit8GfIS!>i=DOf8`@wh+c+DAB_;dCB^`@bm!69Rz_; zdrupr6J8b;CzK@dHUUYn9TeJ-@e)WK{BuA`Gl-G-#J3z9(%d%d#kN%ltHpoXu*f#- z-AuhO9!rL!kKl?w73#qT(~9{BVPfo!I+@Hasuo{HI%Ed^^v##0+w=0~Y6h{x&J35A z-jfv_dJ+c^1;!5Du-`1GoFz-dfm(Kjq+M~-5Jgf;dfl;$pBLYY`x?zaO!0~&L0xgM zH2h53uMGC$c7$Z45)`T#i<^`zaTlN@nldGR6aB|MAexM`93ph$43mvW0y8XkN`xD^ zG3E8Fm<Kj`tJqFxyJ~B&+s5u1KKdJmw%r0NqvILJt9^lUI(lz7PCJ6BmtYlY@fb6I z;YwxwB8Qqyfo`KM5oUZ`&oX&4VXM<Zx8ook^evhU(#7$V8P>Jj)<Hh0eJm#|H$Em9 zz-*$kgI>vr+@4yVhVfyI!0AmN&QS22yUfUMWVkzFIv8|?M{uPYakQBdTjHd|`{~Id zJ&b%UpyzVFMzW`^;{Hl(O~DW%ClL~C^K*K<jo|L`PrCnr%AZ;}-9&ht9eM{~fmynU z*i90Bk0g2DlO#GS2DPX%ajxb6bv!Zctni_-DzXKBn!73Vuxeal5|(_SeYU_;-`FGM zNb1*tg;fR_HpnWst1Z6ksf0oTukz<5EaX33KOK}!e)_~7f_v%OskbfLnf(7tDkwe^ zj!IWynO4T=Z$SIotC#l>&=~}b5U@bN4uMEFQ=(j}0)Y+$ws7DJK{N!}5EMXA0YN<k zjS!46u*d+Bf!|%qU;in3h1w1wgj*v_0uUnW2}(qX2GO|EmAps5p+^CsCq2CCRk9Iq zh_gpZ5D=0H2q^~~(g+Ay1%&K+@W_K-egX=}Bmxel2ZV}xsI1apBRR^IA{uM_Tqfqq z5qEuVh+A{Z-MQ<*Jn(*KlS#T)Egajh;~##)BS~QtD32=5(M)Xu!s+%P&^p_9uE;=i zn>M%eqFp(<0zJfl*pEBZbOUmSQq8Cn@;*KC5j{$Kc(ej<fhaX-R2*7qQksHUCRRDP z-9p?P2WoJtr?OWfkXwHmihFpjB+9eSUW)E`&VWP*DoUM+ZD$+J(e|T**Z4ysGqoQ5 zJFgp}hOOxaU4_FufPbPQkWeUf-e|~M%-}7BSQ4e$u&%-5Jq;5l@y{sYNRlQKLsY4^ zI`S6pW%XbS*}KY<i#)<D1O^=ocikCHJjv2+?1aH#VB@`xA%PSbvhY7ir%Ql)?qu6~ zr+`p2Oq?P3U-eCj1msk-^h~V7{x6}M6esvqYt?VU!t%<O_VhC#2!W$xBJqasKegRK z2^j?yjXe5ceB-g!rav#NsQJ|=ATJ}T&tv3&PGUic1KYm3M7-xD1Cs(s2q5lgOaLo| zIMUX5kkPAc`66-}dKPwt+<by6)Sz%B{j)4h-E9b{8Mig)3~%m5+16)R(ZtYvsdoj+ zF9}93jpSd~-ZL9gHI3{DCCcqkVmd1dH>ZSsYD76-tYU^n34skM%IM(aMmH@gJ=q^$ zCurLk738unUXkd~zyB+bd3m5NXS)|re@yv#5@2%&um!RAW#18pTJTwcy-)j|yFUJ` z_j~tK|F=E9@Sm4{ivtl!?EN>vDe~4*<SA5Q^KMO~SEW|HCY9FzF*tWg(WB46mge?Y z>29Sp)(^v5#=nRZE{pO=lUG>w&*J0V&Q<K$r%S!Q6v4_sOKwo@l=^sS#4-C?a%3pl zopy4^fv&oV*$|b`yz^YY=2x}uCbcekkbphy(*+&zp2uQkSs+{K<8nwb;dUv-Q)y){ zwT!YHDW?}?ga%o@vqC+quL#ZA#N!S%rNRa_=2*RY$KO4OzBD6N@KzPopy2;pJhm8m zF+sfSMX(lRS2#T;$|x86=-M1MtCAN&eq#hYK@xKRuGvN5voJeOPu=!UhF!=`ro|u$ z1*I~fX6>PTZi|9tqvm9{m$FEp)N)4Dkt7fN9@3Q{`6Oq3Y(3j3s<cKj$jZB_mAjzo zRiVPMWkH732!n(mX(4q~a<Zw-ve|_!-d1nQ-c6oxft&c{&PB*VROJi^BH2_amLfTK zm5`D=>VO~+jugCI-U9|L1Q2-$wL;#AZZ5j*2{C|j__VYf0c9%HsMo}&Rfq20+oy(a z;Ghv>`V2SonKf_KmIK-Ho;5f94XX$Rd{Lc>Sm?)Kz|!J~h3;?&{F@!0pkM%Ljx)ij z!aGjsp`*E{TyUpuhE!Ogt_3J4SzM5_)pY~cazr0xyWX|brn=@3W(+hV<9NijTVwil z7fbmcQ|qURi|H`_f7YivD8h|y*yg45F&Cl&gi}pj$5#1994?nnOK#Rq7rhKHOgJb_ zFv$3k&mWBR(hW9HUxw~5%6vx}^X&}4pz_AY&=>MBBYz<BQOBGuxTTWo5-9=?vrepX zu)&Yc00S~5X>af;9yx7N7vqnV%O!V<>-SD0Ee*(`^pQ!73TUPi0kz_wo(F~#ZU~;k zDeXX)(HUe{xuzNG%)0I-0o&x`G|L`7?J_xDu8<mPTT6`XvS3yLsg{<qL7kkY>XeT; zKN$_R$}ZH6Qt1+2Fi2uigd16v9H@FZhD2Rv2ALUB?r)?}LM}lhFsKKV^4AXLZ!9;6 zTue|MWni_5U{+J~KClMK>zZP{_h9hG2wmY=+#u9ub?8@9Wb;O};<ba?8;#9IRvq>v z=@@Ccl0`m8pD-$-Lw`37FH1Dcdc%>@Ax-O00ku~h8f<JAOgS=9e&ke{VtFl7dL!>_ zhcsK==e;lcjyTlr&kF2)+V|Y`@n^l?yYG*|#KenrM2N2LM1X@j5ADx^;`fofi(M#P zh7B@tZN!shYox>HB+Xo4iXldsVwO3G?6SuJpZLO84*A9({(%7)1IB_0Al+mcrbw77 z(==J3kcnfX&4i@!J;RJL%Q{3h*kXr0KJl5O`ak~Xm>>LkFVQd<&DWb~lJwfNfKZ%k z#U{zETF~d6eF1?11ObYBLl%7rM}Ki}EC(+BK-O?cXC!7&p}Ge^;@fmVc&z=HtN<uR zD!XJjtmGg}PAL$Wos@P_VZ)AtrpiDrdn?Zl*FLaSI+$gD=`mIv09XtTGS(q<#pDU* zXG`@1A0yYVUWpf4RV$*ZHaMkShYwsGNmf)%H%!ZRI9+a!*Jp(p7gE7Mp-3#zH1-#} z`4vmmDtm)RaLUr30_Y`YJI~Ps<iRuXSmMD+fGP=HGKN%XSlBX<j9>jMe47YtA+nX& zcG(X4+!r2qg~PnY>&&sh5-S`?39>bd8l_gYdwlB*>+#&Pad{b!IG~puW#YW*<c3!E zp1qe~o{8>8;?X#=QEe|Nt4hYF+QFfsXAcI7D#9DPO2rksOU)9wH1?F1ANDSIkMUIW zlXR$R*oW#y=B?xF$Dkn%bI3d1t7c}@|1dynoi}~8nYb=!UwiDj8zP>pWZq8+Stsq( zC4o^6Nl$i=YZz3z#l%{Rd(Yd`q;^o)rN9R+?Ji2pTPXq#^DIAkL()un+j(j^-;cS6 z`+HDyRCIK7Omu8C8XX^<5S@6E9q&g?<Kr-JY&tI8Jz)ouT;0EV<Q01C_=%IJPM<k@ z?)=60AX~9&&ARz=T~k|E-|(Q4^lE?ZvDX-I5FkN;1_KrxcnA<KR*D=YYP9GPsOg#6 zx%ox9lnumr<B2yI!O*uzQl!a{B}bkDMTom6aH~|UeY#huu5WJd?w`1q_XbCAJoOgS z{e|z6qC|@kD^9!w`5#YClc!9bHkOE24J;fy0z{5gsmk$XWhXE2kBu2OVT|?l3DV^& zSFfEd)-<$q^t^BJ^fESa?5}$6Jr+Df$WWofgbf!yLL|yiphANVjzr7I%E>DnqNIDn zxPR^iTC8}9lBG(QDO;|5g^H3SQ=v+YI=ND9V{2#cNDx(H0|5Wbm*}wJBSwxIJ!b5< z@e?LmvMfcaH0k2WbWChqe8LblqWHu=b>In`a#nUuE*`!S0LT+ABehy|8!};b`PQdF zjCIw6_NX@y0!I&KQX}yQNyw>aL!Z)2tn8dzJbV#IYh^0csMn-bM|7vRK7&S#xoX;M zEaYl8ExGHSwf4AoDA0^f#lXVBCn8-aj%<UjmdC)%ra)m7C-xG4LFKB{YKZ2f-lkKJ zenUo$$7D*MF=x>&%U0Zv_0$1?VQ2_!+z_M<F&QNd9V1KRrw@lBZeFEADn|8F8lJIr zq*04@U3v|S;eg1D4U;MJZd+}SI*KgQKYLHPQ4)`cbSR$7@I=)lkAay@fx>IW-+m`r zLi~ctRjJjm-25#p^q_4z_2@Tb)cBZu?Zal;-5!VFQnM>vZun(*isJeV8ZqXoX|u}< zznmDio0hG%wY~!o)F6^}5}%lynvN-K$-6@_pO7l`TB0*$?=xt`n5(AE#zN|T)3VjJ z)(-%J8bsPb;t`UNQ_+S#{V=hzb8_+UjllCxp7CX*QjK~|T6HYC7bW@(8#is<EqBL* z=a)QjfWR;`1UBx8CkTL`-{XT>|M}2}5Ld8HZi<wY2p<OvBiPAk1R4z7fL_<#KS}G9 z`hcvu<F*^-U5|wXg1fG}=(MBu+ZhLwsQr3$YSXMiZ8T<Tty8T+NGUIO_>x&YT%7Ez zO!Q&SsK6kPnu3%FKg0<J0$gka8VnqGrd6bYy*%>3sylAS-DH&|H!YYo?W(bu%=9vD z)R2BXI<-YtvP-)bjp|gZ5Q@soC}jeCJY1a3{+ROsT^G0JK*2o7cUVLX;18P{iUAC8 zk!aqPNnMr@t4Dq4{V52kn4WZ5I`$Vp{zQV7FE8|f^NlT7!-I;_BizSb+{U8JGZ~R) za1~(;p$}bXTWd)aQ9xrN)i-jgazZ)2oZ=iujx~DO$xTVo+-Qx;$c@AZ4KK@O?p)%; zYJd*RgNou2?&GdqPBZMdl~NYXnK5bHXpAHogZgyq(5k7`8;sG#(I{&{(f>&Nc_NXP zL_d7(>(Y=m+G?l04s-+^QAg5|brc;{N3+rY17e6Nme}H$x*a!MjA27|qh7Q3d@c-m z1qG)tV8cU%3>A48u~I-0o=fDIgkKOqJSPe`P2j^;0cvP1_IEJER50qjo{pGV`G&ER zU7UN&-cG#7)s6^k7@NkClSuoNgi_R_3H@GQktbn=3!UgdJKE5S7Br)&qA^fkLmk~G z*Fp&xumh$uf!zNch)xx?w-nGr;gDp+@FOTpBpx9NITbBE6A;)_N)cVu0u_lQAXw>c z)F)UvjEq_{%qP4a@4Oqk^7WGO(`VAvg+QvF0ErF<CXBf>zpnPn)I+VKp;9Q+X&ydo z)||k`Er$cThexV)KRyaQJ}UaDP;B&(0~3|h<EoOXK~BiTV%we|bpu*X$SBJJRU(rA zzr#NV5zGV8)#oFJLebGr$kZ{p2Tcvq^^DK*`u#blPYAUSYn2&>rV-K@lW0m%lO#ei z>Zr1uL$R$Sq)NRGy~YfhwrbB23J_{M%YHVTB7QY$uyVXc6d=m>CO%WUF<HNOx#9^| zO%>vVL0<=xW_cE6caswNh9~m4{=D29vcf)>`aJ#&y+6L82f&T)@!)kzo1IH7ML}_b zI_eL=3N}W%Hx$0(pu3T`sKoTl?A-jqB8ZWVbR;9EgF<l-2E{`-lmJnO7N3|L8$X$4 zaJi&!-SE)#%Hh(O@9TRh|L1-Xa$HX;?VBKs;v~)TqO9ts?fR^qeLir(2V(8RNj@U6 zO0CiA^yXI97M2ftJ_wsaLc<<N@_snU*VfJuLoz~=C0CwoIXkf9!$53%IS4c_Ie7&| zC1n*=5E$C{_0s2E8$M&{15}1(JFbhal7ON$I#x;`7(z`$3k6{DL^9h%Q9x%3E3wUx zbb}l-<+@RxS@O+xlL9v@bc-UlDt4O^w=3<b7A<S~fKCzA$lRga92M?V=`K|}5YWj& zrrny&RpTDD?lsSS>fEp11FC&ei-)y(M4Ly=_m~Fl9@nU;uKuCLGlb%#A#ycIMF<*_ zXU`^O*j?BAmj{(<m@nz<BnPGRM>Wm{ogn-;%(c+<kWZ}Zw%6h3$`7@iWiGN7*_%FI zKZE>NLgAGDw+<&1KpvMjQ*2r%CpcZy*=9tX#pi=^DAR~v-1%7n3agvW3u?lbuoE!} zs^uwg6^Qgs0eXR(RU#M&TPdnQ;i~GINHhjVAW@c~<rf{Mw!0OEcAB2?Ou|I=Cs?&K zNtY9e1pZjO1Pk;@ju3+IUR3~;o6-j4Idi+F=64j+u`*EQxKg_XR`HmiZz%f~L5?Xq z3fyt*TR#Kf{-_$tPczcX+1nRv!=Alrk|W)_7y1U%FN-L9y8ZxmR_lY>KeZ#&29@82 z(cg#Ih8`&XOayc&l)}R6Nqj17L_xzul3I^Hd%TfoShA-n6M`^9*jZNmRKmF)|3dcr z0NJ;Dsoni>UbYQLrJT5K@$yfPJw4Nso~^gf*4O9iZ)sm>pf5Jqmm2EJE$b^S?~*1N z130Vf24pFzcRpl^#ZEY>nHLT-ZyJy^AW?9(1XKh~C~m6=qXo&9RSi7{FmMnfhcNL3 zW}d{tVUA(vI0c-*!AYF_nS-bZJc(<nZf=il8(U>ru2zz_(Jc8FdQLN;OTCQs(04)7 zTu6_C>uI2K<UzQM-wOY>*G(b{HlV4I2h^J<5M^w+3J+i=k5Pas;%!&+NP-=}M2U)x zf}%hWA_M*@$bFEpQlB)3XrFTacfMaRfPKj6_gg3{$klVB<$@x3Of{1hoQ&@FQ72g? zMYcH#G(@VkP$VKo`%^61$u{==E>CjL)ZJ$Gf1`I`?yc{ozSVCz*!t}@?6sX+Rhzn` zm)nQ#1c*fv<P*`N3F-lY@A7r~+qK|+xn<8j9$~OQC$fgc8L)VmSggTvwvpIQDtq~+ zeeGFjfKWI$J8y9^x4bAyG$n=tQ&36<0yeRkEgX0Rc^9UUKTyIM&hji?F49g1ot;|D ztb4N4E$uZD`b*ckvE3amBnN%I8}`S&zUo=_-kR6353Jq$<BjigFnO)-_1)F2bw~E* z&i8|M_MLMkGC4YY(d#Gn&ueY%`L^_b_UeA3Jzux}4)<a^Zlv5G`h82<)(dk-?t~pq zI__m<%7wJM2w;^TOd3ySclLGPcC`QZeaHK6Keit%YHt8-1^^<^ZL1t=`5Xd5l~K)` zyv+sr7-JD4+wAk5e>23{dZ0zB|He?KpUv<_hvo!%U<WbCmWZe;+zSPgfY3HlyX?gg zw52kus!%M|Kn8>$P#7G6(!2JZNUGhgi1_sE#zjp-V$yPo8ja7=2lEUL<}Y{-&*w#) z#HpO0`g<+6S+K<kkND7PrE2v$Z>v=Q+}9B^R%}-ki~s{z0E8tl5J3VZbg;pafr+^* z!q#OKlvOpf9O)XG>}oL<lL7>aC85Qst*kR;FE<Jn2uC=MGq{KjdYIvsgp|LP1|-yG z|C-%6eEzS&#L|9P`$W@s`(a<wd`qpi<%xb)_V@GW&!3p*^2}E|nZH-~fRw}(avgKh zi`vZ8TTdGwR}Qhx7JF%&<GJ?|g)nw0rq>&e3iWo6{fN|mG>+26#xO0sEYXv+GCv~P zoI|a~WcKxkVR)LMDY*2WN$gbOoP}+#8IzWkSJ)&dJT<eh#H&A2An5uAz6~1Ps4ebt z%~QVJR@K_gx~Z+0B|A)8wrweN(KJJaS%(JZxK-ix-}oKAqZcZL_*WwOhYnxo^*3B4 zHwjA4)I{3vZ`iz<|FW>V&2HSW@lVXe#kls7OXMMmx#7Y4-aF?J`R}9NysW<tlBU>V z0m7#$9GMBB|KT&rpRkd!@WNfR92zrR%8nm$PN#XkGI@63tbFN;vT>76uDd>%+^|j5 z-V(t$Fcypk0DWNV+Bp?d1PGnd#g~Jjy>pz(KcPkFEOeT5H@ETUCj@q1(YE}pKeA3X z-;~6yu&py&y^4p}&(kYB1Lw-1V>ZRrb|uH`^4=J@&T*Wb#CeFA%DF0HB9&^0QR1vd z@`(ZB`3k#xy@TjjsPg}U-jnv)dU`HleWZn?N2VIszHQqDj&<K!T=M{?m2t*;E&cxr zyHhm6a>MfSoSL}oS#HuDJ@;DLlS_44p#1Ub@u~Fv<i1UH%3Q4s(y#|PikwX#@KA|* zs7H!eYNBrlmCDJS?8M9WVuM+*wC^h4w!@jujL{Le6id_HA##U2YusLDuaYEBl`bSK zDiE9aZ{X9zdZiC&1)PlpWvAJ!e8rk6rA;EEv-ss51l)h8<P1K)aWSUW!k;{|0slBK zB<_pgS;ig{Q8_BGuXT6T+nB-CVgEjpzvSX4VI*ug`SnYF6z2CZcmwxQf|vn<xL8ER z3n!|}QSV;Vxe776@18S#*J`h5Pt4NE4)3sQd(aP7*RKAuZ;RO<J^j>nIfY(p$=3RL zkJ`D@^X!b(=mgQCLyy6E;3Cdde7716uC{mLw~BQ8+c!)0d8%ht_+&ME-x4B07{Vjc z2t4OXH(h+@Xlxcth!1+mEOXP+d$w18A~X99lUf_9T`6*4jsn=D0jX}0?l#%(lIae) z?osLy&0f&zCGB3*=@s>!F^`!=EG%PX6&w4wxFo<M5nhQ2NSbdFypsvgsB*G`l1ou& zO2ShSma>>MMW-PlT^}-(lzyiEbz3!SdAZ5WMq>e*3e;MV=7Mz=p{q!}#po`|P{{^M zGFG~&vdxrhwmfs?o3FrPMGk86r8Y;mdOYfLueZdmZ#i}<@<6N-Th!o_xcqD_RA{MU z%avHE)M{nKy2d(o1=#^H7tZK0i%DX7Sfc{bu4>3%U$KV!&_oMOHq~@9aoBHezNMC1 zX|<2pv~;b-e049L`gq%3rf7G$eeY7`mR0@@5%k-I?Mz+Cb7&;YBoGDEd|N)zxAhZy z5qa6S0~-U^8Tj<y<$G}U9^1Wpe7z+bEZePnYQtSKa@1Rh>Z~<%*zna>Ut`TN<HtH+ zG+#`WZK;q0IM~YMK#mS#b})-WSRKmdFisBV><BK7<mxDHj^^$d9*!lIk9It}6C8J< z0w+1)WDch|=~PaqdCKVuy8x_}x0jt9q5TF8w@9KJ<hxIy2NZkAG)6XYaEymT+??X$ z9KYb?g`^-NRgtNQN?mMP;?fqMj+Bg~W-Kieb-8OPL|dWS3)4}!{^Agd*Hg5SQjC^r zw|aXu*ssyYnjO~RS-)2V?*`&64M!({vy;HpDcqgL(;2*-#n(CfohQ%*f?XukCBj{% z+Z%elrQbUSy=NFLqv#k%&m;zZN%BuhVfKo0P@JQZoRsFQEEnaus?1YWUaIp}laJbb ztyONl3L90~tlCyJwyU*Molmv+R;No{uF2kAcE{PUk$^az^ar(2EBg#zp=>(S&c-n~ z&!H7-50Lq}Gq+3a-!Xy0VZwgU<<FPB?diyv>M4myEI;+vuq?lzu&B6pow_BZ^&50& zT6#uqUS?MP26f{SI^U(J>eYhEdmW9z_8)0zBrXlGIZf&*@mkhzpu%t7NKM$PSwgk` z@_*~F@c5vRX`gJtC27BCmMWRDM-)i)nXs{d)Yv3In%7D<ZMOwDNkBTB5g<L*7?5Gx z#6!lF3EK`bV+TMMoI4;ZHWH8xn+wQ}jR54>w)c?pS7^p0g;OL^Eef0;pcu{vP#otE zD1nU!lzdMZDfMei%+mzh37TU2K{IR@XpRd8w7@n4T8`5xt=8Z}(hdQ(8w|zvfnnGl zFdP>OScx|Stir|tR^wy=Yj9G4wKxgDy6vQ2@5%ZG!3G-)+i0W1YZE%MX0y#6*kX%p zTWu9?n{D!DJBlTO9mRbEJJ-cvmtBJFjy-9=*lVxd*@xm10Q-v_0SAgL0USKs@yWo{ zH##+F@Qy}}PHNI3T&q?`v_0)Z`{%CP!7@FFOfQo3K|o~&&|r{ZTxSH&8Rhqkk<2*L zq&xGAQEwL1Gj|KLTLjay#OGP&k1JnlNN<&tm+S2jN#6lc0`MMP0erZ+Nj|R6N00jj zTh9+)*LNfc_<=+LKcPYJ^OXVlW&LqvmOt}ny!sbLdoh2ne~&WyA5ae9f7A*Hp&<}H zYVT}9C<25a7Z-{Gkw769N&?}bku=l+BIB0ikGiP~Zc7>J15t5T>PJ1!1$R6V8UUT- zo~J?+pwm3^OlS>smKUB2ZGg`6(hH$2&_!N*DYOH+%qy>imOxi|=C#lh=sL{a2)%%A z!s4ya8|XHy-U)qx?!xB1Fc9cITs{cHfF2^?qc95SF(N(*V}PC_=Cd#f=sD892;+fX zBH^nr7U(rH^9Go=jQTE226~UIv|$Pm9dbjDq6}d=5F<)5g_%IisK^p#0I{MhTbKvL zj;0)8E)XXga)m`e+~~>^mI3i%C|_6t#E<?6V5;Em!4m?*3P09cw7^=?$3`r0Q#@<{ zlE6mEa0Ez-0Hq&Cu^>>{Z~{n<Amzg`AO(U|3}+xEB2*4%Ar&H34HqCaVpI?3APu6_ z4A&qnlGP4ZAsv#`4YwdY($x?5AOo^B3=be9ay1SQArta64UZr*@-+{SAqxt$3{N2| zinM-w#eybnxBZ_TXw!a=f<FiR;2c4ZPK$E}eY%7{Ay<0Gjl^;1x`7{>0)_2y@gIqg zlLLzSFaRhm>;_85!_x2uDx=blkGTpo6iNUML+wZy2Q-SfV__4}IJQoNC(tB?PK9UC zG{w$@=g=%A&h1fu^Ptp)@Df_2%=J(Mh{!d!LSLY5*xd`8f%dWUDD(jO4wJ{f*mFOC zo<BozpkGk=J5&ey!&U!=!$AK8m;c9Hf{QShQ7kZ5;5sbKBtgppm;&fVz?9k4e9Wu= z-_*jZ)it$gLo2pvbWGFr?3(7R4(L_DbVOeRrt{XfW4f&FU-~J4>Cyh0Tr-dkDeIbH zyj?e(j5L-t!E6!DHBW-aLP_t7ik=3{(x(-NS(avbeE%~m@UmsiV5Z@?|9hP9hLem2 z-m?yD#ECoC(<nJ|jFTr%APb90F1pAepH%~!LiZIZ^3b2Id!)imO{!GsR;?P;sPX)& zMZ?L??uj~edep1etU-fMHEQ&s`|ca>fd?keLljJ|QUJ@ke<2bYgW?4M*79H09p2w; zBZ5HS>#UVZy-I~zZK%<hYPIG%oh8^97#JHG+8G%+7#llTIJh{w`Eqyn@8O{}v?8&t zRH`pm8ECa81}3I6M=^{0KY%S&JOH-z;mh1?BaO1ksyyYupSDG#yjEH{Zh?<=*yKt% za#Y2Yt0LaKmGj}Fk}qGj{P-#6FOZ#J!JLE&<t$7XSK-2Ci;zxLrhH}!6mV3ikc%Rv zl9efwqg*>T9XiD6)Gr(XL7D*rG7TD%ZrHFaqsGLWG9}TB8M)@n$+KWVz9mZvtXYe~ zBgjtr?39;Ayb85+<<dk){?VdE@UlcJV8x0MYt|4OHiU%>hZ7-!h)9u0M2R9QRxC`M zIAY?(!%L7rT%tszk|dFkCJmW%=_F;yKrT}zDFq5pC{##Vi4v4bm6B1W43%=_WL2m@ ztx_d9HEPhPRZCuj1}8LXq@Yc^lR9)zG-8C3QKL>9Ge+5@NoP!%qGH;#vu4atHEY&6 zbLOa7x9&V5B6VA~T(E7Mh8;UD+O<p5C!bvM*=Je~9lAW<P-uhSOSi`;D0rf%<QW+3 zB^2r{4CXxoflfmMy`~msG#aaGT;r)5+~7qo?$h9xJcFD>3d=->H;5Wmhz9S|30OrZ z@d2HJ)pQyk(goN;7m<-}!B)DB9CQzM(S78h2e6YKA~!vP-Simw=n3qhr^rul;1In< zd3pzj={+hCEgUC0R3&;iK@6xyjBt{eP@P!e46&gWvBO#7KyBiLbHs%@#0}?(2aSjq zE)X9Y6F*!e0W={=xKC2(PV(@86flGo;SnieC@I5ZQo%4%g(swj;iL|)Ndx0Z6W)*( z#*;3*AU%vGWB5oWm_nxTiOevST;VghVLiFS7xKUc@`SJCg^lD5-^mA?DHQ%t7<N!N z{G|x&r%3omQAnU@_)js{0TP?o@Fp&CNoxv*c+&vGl#VAT14bwlPf`|)QZ}BV92lcq zJWY8pPWgC-3I<szOkvKZC`FlUG4LFfz!cZ{mBI5U3)7Ut3n&jWRKSa<2(wheOQ;NU zRKd%r3Tvo_Z%`f9QUl+jCaj|tzC&$TPaS-Zy0C$INQ?Tgkp@VIhOmi7NRP&_nI_19 zrm&Z0C`ohJM+=mqC0rr^?Fod-1fc`LaD@<bBowX^hE9aTH6qZNNVrZEx)2RFh(T9k z;TCb|Nj%&p0li3sJ0zhu$#9nx^dS}Qk%qpc540K>eN7B0wSX0552%AtR$UC~^)UMS z7`Pf>^bIlaHp1u|W604Ju#VP4N;kk3+78?9fSsuQ5bFWhg*pzjo`BtGsI>=bbn6^y z_f)N;qgGc}`wNXO06-%Us2K#(N+4(=619*>+5|!!B9VGGHw|+~8K@(#-^CQm{60GB zk`Ef1B1z~9BuiF|fnijN6fFp;k})x*Ns}f6OS%+nZ0SfF4C3G@#lsUbTT$$@_vyqd zV@PZlD_gdBIiW~0DJhNFWtS-`yS0uMMf&&A?OVp7qcds0{U($s@oCOt^%}l-AvyGt zkmGq7D_WGr>&b6#L~V*xg9f}VxIo@T7wPHHK|!ZW6kT?ivJZVoMUNgbdiBzFML$&o zKBaER5FMWzrs+#xhVHwMMk7a(B)P-DVuTba){#h?I5;+jhgBLxMDm!J*n5JRiznqX zcT52XuX~-FI&aI@;2qT(y{A~0E<GY;#t*;o&xvRRfIwrSM41GG`6WmYk|@y>8XAXW z$+S|X>c+%0j*acS3>k)OvdKA{ZRWMZ4naCPgB%<NoOIGjg-(U@J%YaRH7Y6>R%9d( zk+I=l7d{8%`#foxw8e$gRo(GnI#;<OMVeGZW!9o9s#B$!sLk5cMSZHC2EX;7NwW?u z(VA+tMSIqzBRW(4)rF4qUOi~ltY5!=1O!V445&9~&`%>q)Xgl4#^-OY)c1hDtwUM< zpL*K-LlE}3aOTW?4?J|oBab}w%rlR@@WK=Cy?5IupWO7t7dL$M)h$2$ifiu-C$4eT zTW=lp*=P6soqr$x`DDN1*4`I4-HB)W@(1y2gGBi4UnD*LE&rWJ@ChBPZ|xVv4dvIr z`9DBB`?tTqK5XEi-=BbesK7ygzW^oi@aI7sGt%&@BGGUnLHU0t`C{N*Pv1xTX0Eyn z{~uTk;=bGj2*|b%zbrdt8Xk1lY5c7=y)w2~mYZ8Cy+RdQ>|$5KDWK&Wjq`HBDQ6-H z2j)uPNpiZ9N4`AEm9ou&g*3_)Fv&dcbhBPPOf`>Ty^!&)liXB5WR?}jy23wN2EK}| z?^5lY<*%5k1gvm|&5c^PMhPJ;*qY<ImVZW};MPnB=Bsd**}?2Fur>LWb>Gu51Zfni zRUp9eM5PJR{5Uq`U0c&uZ2itJ7#=S4S4=7dtF9=nT98yT-i`;qua90{f0S;1-K6z1 zGqV1{9;GbTSw7nf2DYZYvQFm7FKhUqyOFK-*J?~kOFV9Rgl2=ROomZ-zK}g?sN;Ba z|I{#=3B<jZT)40-tVmv3LROkR6)Z565*;-|oH7@M&&<YE`xhyc$8no>*VLOV1Ti&$ zqXf^aWrbQ~bDf3cO4MAghua~RoE+Dr`XUS|yzvs3>K$k_sr&)%pVJ_%-;mZyr%*0G zJ$|IsA$AH{2Z?@*8-8-hi{)L1Djj)<or^}!E}&<|rCYuk$JV+4P9Z>muGpkz-MTyW zx|H5)8+7MAh1YnoOOxNRqQ1+2XV~#B!Q!wd>^wk~EV(iWNxLU{bx-dxW+Fcv9lxDq zr0s9){Go+}sj1C5dZHOoCgnX2Bd^M(BF)UXGPp~9o8V9G+<Ps7Cd|jGw1;wg?4g-W zsctGJ=q-Pt<f{nk&Zybe`3_Or!s-n7zT{aC&IQ^A#MU!O-Hx&D>GaW$xhgL_$d{Du z@9;Hws8fZ@hLx!&YP}vP1(L=gUZ^3qb8t>R<>oTwuqg55E;oOxVc9^>i2Bf0?0cu? z*UU^gMr$_EuPO}avP3*_Y<0&BA}cR*B5wlt6aS?{ivc~FRL}WFHD9*Mi)wS#bXj8S zfdUn}xiq#s)pkn7?1m3z8aG;2q_Bz1#}>{{{Y!yxs6V*S3u>npX)>s-@m9^ZYx8gV zb+;m?fZ@4a7BuKLAf*vs7#y$KV>exIzdDV%VPCR%lj|~!8c=W62zlp?GQF-i;A0=R z)>^d@4Qe&r_}j<sR^60$tUm;}C5w_l5wkp6AyOU|s-VAAkdl*ohSB`E@<#G*e{?J= zJnjaq;=U^HJ?4YFUC5~dcQ!7>+YDkfM&>#J6jJ-wZlsS@c0(!Yxfxq6OCu&a&QEp7 zJ;jj*UF(+fz5+@%CWQx{;G54HGR{n}HSa{GxKZV}M@hYLOicRafZ02If;7BZ)*UUV z1&#+JOTM>Hf#tp_#vSV#D;^jaeB8_$sJ3o4V=)X^w2ZN>Ox<%FIfc07-DlQENup)j z6GTBpxM5Lb*Co>VMT23EtEdl53j*$hwKTr&llOAZ*o~?f$QN{gy{-egmLXl5F%z%3 z<3r*!xRJXm_GOqw1{)#X*-qj8;Nl%H$|N|_EZVciC*HC0{saRki?!8cPal0qg@69- z({*rQ1DiJ`Nun8hfydD8(>e+kde$K2fZ3&U{x1HjWce@Qy)S#maM$DP!4QjE3ga}U z7X*0vEcT+ZUdw0kOac>al??fYSS>zhb6goGWwf#;IOR;`6}l*=0iggu)PxrbFoFOV z!6*PjDG+oL4U52VFb1G;69ITa5{nL^fWRc<0Ga#50Br)|fFe9h09esQY9ul4CQ7ul zGad{iaU6~X0M5@DPYTjBPY~Q<jKaK_F60<Z;c^p3yv#6$@CG7CbJ)g$`;0?U_>8yY z$xq`H_CN?g#qPZ!Kq7jdIz$10nEfV%f>nY5a{!D2ut-co0B!Ij8ghZ5ml)WI0NmkW zEI^KWqJVJpGY$}s8^i$7iZdRNtV-g5eDyE^;H{mcM!8P8iE>E`XG7d1z8v~wDga}f zzzZcAA_#CcBclNNRze71ZWT5fv<i$N8*_{6L;&%`m8Gl&AhUBx&+x)&1z<a;Y| zK)KH`0T3TFQlq=CaT6ty7RiB1btZ}9&4wl#_K$><e(Gs|XqIOI_Y%nnmz66**@!Gt zd#$uOm1K|}$3sYOlPMbu&z>axt%u4cB*U7?fBV!f;03m=rx#nqY*eCwzI|##&I+&x zj?EYEIKOsToVTGwM(;3#@62@wL1H@Hk*;ss!c@8BA{Gx@_Mp)i=^AXIi=37hni=X5 z&kQ!O1Q5`*1ZWy%5oN@@mPLmFWM*`>*%x`&gbN0};7L{@s>ylCkSc_k>$IiY0i<Q~ z!&@7YPp=zmKA)^k%s0{c-<$tM&aWcj(~<mlrOxLjBufD6|7hfRZhCd(0;$+jKN}<u zOZjs(Wb>2kN}at)Q4cr7IFpQ%xQWG|QfMBCyhh}KySlA6F!dHJ@<wiPMurtvJZFUq zs9q;dyrx$?OG1LZGstb9V2-@N@-?Kyu{>No<Td`zp^Se5OtY>3Byy>8)N#f-qr3Wl zjWk|*o_Q%D@1XbtBX-^-?hS){aCN3vJ~O^PO*gm}5P04Bu^P#IMQCk>c0E6(HPT3; ziJZeIn8>p7-bwVrsqGh7EZWIZ`13M^Vg5J_5^;n((j=ATV|2F2N~R=P5{Y+xEF^!2 z8(fOyViM<!tm?#*zHBBz8p*FFK-Ehx_~<$Cq=uI9YGq3EdWeIb^VR0M%PL30>A}P# zWXW;G@{cZldYde{4<yzDuan6?4J(bzaFUUz#yRV)=YvYz16<?-VK+*i(@ESfbSL`; z%H*BO9Nr0z((%Yxf38mDQsG*}^G_cllg{?-LZ}>;!YYQf0G>FSo_mbzB3)z0)Znk9 z_Q|=@vnM|=@!&z?Hh+Po@iJqx;AKE^4B}#pq(CZv@6MHrIOBaOfK|%&rtE}E*BN!3 zLne^AZi&P)U+n<QrIM%_<7v{-d37Ocl8meq)Xb<QRYj;BF+;8{;ycc$1{PtvasJ3v zl0zC0GEz}T%%2EysHyd>H1w{I>t){?`rf-ir#PeB9$zQavBLCX<NPy^e1yc~P*ek^ zVfpO%ZMfOGFP6qqh}g_gsEt@uQrjbi5{zt|bjCSaVzLn<PYi?hj1z4wj-`sEBiXQs zCd3jX(XQdYjGK7bTa;|iH;wbM#+KAap^VB(DrWM18>bnP)K+s5GGVqX!gi)n);%_p z(wOA{ck*dyAgkiWb~GYfy<(@MhNc`MdfSZNdy1U6a#g5$+RU8o6HPq!lr`e=O0JPy zbH@cem9qCKhN+C{BE*gwSBS{T#RjS3k-MYLt^>hOp8jh#L?(E)?6-}bPVBfkn>z~? zzVC>Ukob^pT&+U0j@2KNO!g6VZr7dzV`f*+Zr^FBLmK7eyLY)geLrnJc5SWDiej{D zqKxdh9g@s<+$U5j8MU~t68H``#XHL(RRsw#qfwRnCMlV122qOKIISXEjk-G9i^VwZ fo7Pv`&&Z7{W8XRMaHuNw-EW)VgEp_wMVBE0O;fKa literal 76588 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�_= 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 diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-light.woff2 index 8f7849083b7b65d7d9918f34a55014407968e4c8..289b6c97c5b83897675f26c794b4003ee76d99f2 100644 GIT binary patch literal 75744 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 J=#fJJ000_}_2K{k literal 80792 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
(VuMNS@!?v;PY$LEkM&FK4#mGx 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%0DiRfFj$R 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 SqWNVA=zhr;4tgeO0001x3fd(A diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-medium.woff2 index 7dfd91c5bb3ff9244f166e941f8b893ca18b5d9b..0cce5e955e2648ecdc3552ec7986447d6da41765 100644 GIT binary patch literal 77400 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 OGqaj9S6iMv?GON<%1^ie literal 82268 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 Yx1fybDNgsWDyp~R&bT_c+~}uD1N6{8_5c6? diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-regular.woff2 index c10f38d326da5655ef963e100e41cfa2a9e4edc7..aae63a9460e205160348fd8ce0cce6d3897bf521 100644 GIT binary patch literal 76848 zcmZU)W2`Vtu&udm+qP}nwr$(CZF|4lwr$(C?fK43a?d2U{#AOVlCDlasZLhA%Zo9| ztEk8W0Mal3zybgO0D;*608;M)06}*Cm;GOXDFz$*tBe(Dg<YY8(<udJ0B~vs$Oc3L zoFN1P23jZwPN3}vngmnGw7HZ1K=)<PSuH4{!dr9<Y&)}UZ*~sBHOi(Zp;d|P{ITKV zy$>9Pf?KfzM+8`kH~stf|HfVh%^;gOyUAYH6gY;W$X`^8pKYYT2!R7#qsk}(t}}2f zJQoDB9ADS+hD74Xjsl4Gx}E<5mR4>06QLqgt&Mc8Zd`(p-MV00m8wj{ZcUR!1YviI zO9|dr+g-v1<lPadcPDKr%JxC8KYaZ5`}4Mzw}6@1X<+kcR6S9(#9C<lNvYOIXt)SS z4o|YaN-D)l_k<6rqC{b*Tc3FgYz?mE>sb~*GI_Y04edV37qc6aQg;fHFma2&y-ljp zeYTeWYV93o8j}%GsedYMQl|Uz*Vpbr54&UMmor|>(o2aLD3wsi$2^qu!A&qPenquu zhVsLP)+RQHTnHl1q&k)E@H7k_mfW&-_>+LyHDjn+gj~))C#WG2lqN*!mt3b!1x(Sc ziFZ)@_VPUuId^FhQb_mmBcLYpq(nsg2!Y7;r2bwna{Hn5`6U_*yogyoagORxF^{2) z%nQ9}Gc!_tM8q7cGt2?Zkf^9kCVqu1hBjX0`B^;<=o6XLuz{H4V+Zm&@^Egm#`dm; z#hd0#Z$tXhrNXDV&gvnMWQS~`y7=k0kJa<IZHlFRDLX?28sy?=z8i3!IFqj-A2pen zm%F>8zDXTP!H%r@_=wP69hsamC#!0k{eHaCYtEY;e=Yc+&@z3)Ey8s}6VVOnjdf-J z^uUIx0+D8nt6}ID#_vB?Uf#3c=ZFC%h};;-EFp}N5MAokaa1tZyOkHuWt2CikBIJm z!{Bc~g~rjxZ77_;H}5Gr)u^ILv%a;swwU47#B0$0^h5d*T>-oZ<6mIhLzF9?<Uw|s zOMo4_zAU3(*Q_ze2%5~2KT$M*EP75bx+525y|Z4K&`Ruky}WX|tDoD8Or73V0%|wc z3_xX;jz{CTqA3^X(<TqU*}n~9_K8@c(EaoR+2AxKVI{nLdDTQL*J81i*r+Y$La=={ z9zAWy3k12E?JZSH{4R~FVosBDp+F@G%6$&9G{IIAO%bywTyi_9dV%w8Z@{9>x;AgS zJ@^9I<&N<bb3*_HU}Ct0Ev{7rOl=Slk+g^i0;&jLbT}Ml$I{bTom5Rux7uYETJ;Yr zQ)}(TZyTGh-k0C%zc+XMpD*JG+f;qcbW6}0qEZ4dU?L(Y2qU{)aZ}iz*5CYM4`S-x zt15j_8v{fkcwu;GjTD0#XpMbOS_emwPWTu6ww}{yFaSt_Zv!Ip6esU@IfaaN2);vS z*-bvkd=O})E!eG(zqzWXzXb$yYU6zM-}K*A(p6oqQMnPzkV}BTJO|1bBP$_GKxLTW z&lC{^aG*8?`fh0|(&p1JTJ6^3Fx!nJQtTtLDThc#%jfChu9NPnA3tVp7BjS`SJ~Er zG!^)N6GY)!6s_ZgnIaNz2_h2t{J3v@;9H-6SKjeve9A3X>0hFh=aNx~q#2CI0}+Tb z7)+xM<&13Wz_CGavk033kpvV31Q_6eqCu_m1Oz}v$f6=^13S*;L}XwV*|}VZU74sD zni#ROhG?6@>b5I)HCaYz*1!$_&i?#o|Nflr@&W<<Iq8j4SjAVjcWKoS0kifIi(1u^ zP_-2yc5k6n0?{CphNWSvzR;SElH)eMB2Hhq3zA~Uw9#4zR%rzg6xFr8&p4F!11%06 zeb^n|d1@e$2(|-mL})-l|Ng$SUX+C?yiDs{#cw;G{>s5{3sEh}sX{1*A2JY$5NgmC zMZ>@j{YRoJh|v&7h{Yl>GJh`dPuUOmMZ(%>rW&i$8C$;66Xrp!?2sSM>|En+)4iAI zW_Sq7C&sUU-W3Vcp78;sLA#f4!{8HyE3+86GFEpl)tIX9hoj*7HYkkJJ){?MOf_Fm z^#K4OE>SoRNA`PW{`?m&{uYtm^mf1DI6u1&W@3(>filj*t*`OY<CLY67fs7KOWnwC zhs#(4Hz6PuLqXbKJ>WSXo96gw*Z#`=O63|py>nMSgx{|IIbw)`CL;_7g;5|4n+pN$ z?hgoqHBcZW$GLMA;kr+U3BFBm`SSn%JvqN#*cUe4>R-j>(7TOoS8&ntsWFcjOGqUn z0HK1*C!h!J5e+Dx4){&L-ss;g=K)KZ^|3hJX}qFEv<Y07h1kXIkDPTZG{k9~00bPS zB<xuo%doaT-v~l?3rcA)bbzjcHYdBl+0u-j#itpxgxD}cqirnO*6T8Bh~%Adj(*`y zkp5|+jS<(d&z0TZyjKXbYz75vzw+A16;8M=h>Zs<n3;md#39y#PP$+I_R7@M{{4Vd zP6n+{5^bTd_yUw>>Iy90D%sxJOvW^ox18QS{^f^G{`sRSWP%1{YLcj`7Ko?>E*3TR z;}r<Z4obo*#T{~dwCXJx`xFW^hzfv7DD;r5#{p~!F1kdh$YaN`-nNU4b>Nb}Iw)Jm zGKN3l+<Nogu4s8&np34V(U<#`4^2goQ<%~kPwu7GJm`<qzT`glYD~#>oDJw`49i7W z(A^kghB$3xZXH7h#0g|zXr5n<sqA(4K~{~QW8_0i%2y16CY5mE#-C5Bsi<=(N~#=l z`e9E3TS=qRJYT+cUX$0Ks!_Kg2+doh=tg-W<^A@MzsS>pful13bUwE(BGX7!2I&Ny z)r~^Gj_qm%aNfH0-f&RTB}@-W!1q#m^p0xv{M^ltpfw~xBxa4g9%LiP>vg6YQ0^o| zglrQGlQpqqzSB~83UQ#wI;sr>Pl@ZkM8M0DEg{V_(43h_@H+|Sqrv1FxTN7s7=&v8 z8eo3WQ_uDJ7rhS3mZI_ysGZ9jHk$|lQ@?A!KJBq*As}$Rt{!QOLu~fm@%kCfwt?Uz z_lcE79H1oJ*fj(RcDH^1^(;9TN<DVgEvOu}M5v;gG0{7}&ZTi&YW`uZ#s&yr0+9&> z#Ei6q{^dd3kh*`wtyWf6W<~z{v|TsPNAr(2sk?`ihEOv}7=UBafP9>=i>Kz5+xy5; zRJyKpbp|=AC5W+O!FVH-@msP+%OkDJcc0t!S33l6vy5Gw(>p2eDxdS~xTrop4-Peb zPWAFlyrt}a5lZ#S5HRf-zozDh7$;A&Y$<}qe!f9n0zmR@;y%zmk;<A^t+u9@e(l8X z%h)?kD&JJsLL0~2gBob~9dEe(IJ=ugUOrWqucQ~49|Gz^NHij;q!X5fWl66KzWt<R znS?l!Wgc^~wryKOOy7CzceekzmhYXCB!xeBKsbzo!Uu{75F{c{ES~}37IeTcVM3`` z2n`V*AtNv$Lp2L_MG>S4ok@q39#Dj$QlYIy?1Mm(PgY-ASteW};Ekl5qwsc!PoPqS zyzndq4W1e%BP%ywo60Iz5K$4DcvRJjl7cv0rnOTlq*6Hm3^kU3$qNHPDTc79_qg^U zlHiFf`WHXE@L!=yCwR-WUFuj2cGuZMR&;zWr|psz^E&n`9%xv6Udu|<H9g<wVN2mF z+RSiSc~S>(z(FG8L?mEBXmLo;ST^0!c7aI2!lYs;a45WhP<e@28JV8XdXf~?1-3?G zDXHCmu3K)nS4ga6r4?qoS-RP7A)8=fr*!|^Zq+D>=vd3!y%Gx+8Bu{NF*#uy(O}{w z>6AOvq!k?ltG@>y(W+=@?awBO$!2uwH;JTax$R0RtLk{Im4(r<c`YweS9Sc4-z%HY zX*NBu_Z5v402D+=iAv;9GGJ(kn7G({Z9E{6!-Yx3Q{iASNL+M2OQuT@puhwR88vYD z0#Be&TTbF~0x5>bqoZvno`qp%YRpb+GgMW1tw)DTP-`|;-74f|W=ll1YbPO^Z@5}5 zrnsm?Nlnw2A?eZ+l&GuxUV#oANvYNDRFur@1cw?|slOmoQiX;hMIDfdgmPd!tynJR z$w6Rb5kaFF{U}ftk1OX(<dKok5K*D?>3o%#$Y>~h+gVp|b-`pa+KlE>D^g5dd3lW{ z*>0pKtE{jyG@7wUTo57z(WvIb5{rUT5vdg$T{bSK$m#~8q?Pn&VFf{;KN-@(ODaV` zRdh~NR9%-fV2GlXi!3fN>YpMB9#}kCb!BmxhOz<^>ku|Vuu<OTgAHX25wX|FMUZfy z@~B)lT`-S;NWo%7vXEpyC5YmwHZcrBjE{dP(uA8{uQFyYqwKC0EIi1xY1X#BY<q@| zIxe>_XT{1??r!D%8S4Nj#ZuT-KS0u`RhHAZoxqAxGN{<RY~eKgGNd)yr37<nJ}9I( z|1FI>9+~Mho2-<1w{jY6=dh-47oxdJkmTxIDxZ$jgUcC`>rX6s64sp-`vhY^XmUtV zuv{?o$HhaC5NT@B2oe??Es~p(xsB+S#3Vq(TSP>YNKA!fa7IsJx#iAV4~H~zUcHv6 zHpkLDGlXSYV3sN%wk&|$z_1)c5XbW_A>%j=OUiq8F5wwAKal0o&l}bOKno4fgoJ`6 zNdyaHVsT**0$^cDofn3}kytn&5Qv1;ffzcWED))cMENMvZjRJz7-vWtkxVES4e;&6 zBo&R5JXJS}hf%Gqn@;zA%v`imX4kkaUA%rqfu_>wcW8;p4dHwY38iWnCTnlpE>hR@ z9L$oYWStmcrfoDT!cEGSibSLlNM^~rm?o<ml9EtV24!7FqtL6i0*PW-D@@w9DpRUP zK&dNI%aPWy{Li)gNL9~fG#}~+qhs@0e7vgdeQlp;Vq3Rxj%STo0-iDkg)v|uGXgs` z&K#1<WUw7bV$FWFY1k4Zr{TDW>ax>fXg(_}r<1<$KrDBJb${?G8W1i;AvNpfID|)J zt4vv%WUy&2fMJ?kQ(|xNE&!q+0KoMiu&tOlG}Wr!RQqaK*>X5K`Ny_q#ci8XsnTOt z9QSoJ>}jqLz-EKz^qgAf`tyYAH;G#3KUVI#`@K8Yp9vx+5hC3zI1XHoiA*9GMdiyS zz=KqlGOODtlSCqKRU%Dh@;_$?t)^mo!L?}FUy)Ko8O?URk%nw>ft}S=p|wnzGDsPg zM3D?tq4ob!g0=C|bViwih^^Enb#tW{c}eI+DoZVH<z}8VtAJCh6ql<kI~pFh<9o7d zCZp*9=LufhXfTPox_6{yR4$X#e#lfCf11kH8fMS{W+ozL;9W+oT}8x2NJ+~~FKrui z$T(?ArFKP0MTnu?&M`U4K2CC}G4{xdk1>KqF0!c7xPNqr9%3xPG^K^cayIcP-ufmv zD({StY+499Qk2#LlLsW$_gXTB0V}QBv%cwXD2~BoI)xK5GeN;OEGFBstSw~%FaJFG z9<;udZ(8dP%Tm%e0Wi0>irKE4$%sc;x?^XwIU@j5sC_W*Q&Uf)W6V*BhftX*_)T)w zX@>N_I`jY4G1W4VF*zCMrj*4#Jq-)9LyT?elD!wf9}W!UrXIMHvpKLsGW=oRGhMdx zOu=b|dQPk%QTwvNd=8asZG8H5dtPu5GfT?#(KxYWPeqe3?0p~lPQc!4n-o+F;nT~Z zHuuF5rOXl~Nn0bo$j4ni6HDR6N+}t@H&H4d52g;ALCiA42=lZ#&F5iX9Z!~EA~bw6 zeGgeA_m{Z5wE1dKFeJ1rC8*lqA>Fy57yDVCFv8Zr;lDB6Ozaqms2Tokv?=0_6IoPk zHMp>0bWWT7XX?}%=;xrOtELG3YgJe^qk0&kp6DA>e4%cd@`giVA~d=5xADfl=UNdA zebf{E{p&S=*b5}y3H7zED%ng8gfCsT^X+}~bA`&T76BZtvwAQ#yJ}?Z?Q7|kk?wB0 z64Tblq=!oUZ0z#px>yE-!Du)dl#&w!NK95fTT4Dm=_+s$A0|b~K4m!TAmx)oFi&U> z1UHfa)TZ(dRC25og2!M)#5_i7d~)6dLzXx^Hk@Wn&yS4qb^e5lW=9h~5NyBZEU3U; z4!f<9LV5d%9M0|Qsax^8P^C+0sj<l6*sbT--}7D1j>mvf*O+{zrebQx#+p&&GiZ|_ zM;%6s_CM|HV2EZHZPT50|2DH0lad=Kpt`sj9^O<t_x{WEW{9Gk!|&qC5e`7^J$>zY zg3U0Z@l_xC>qalF-(L$xrK_#UhbVmw{%)Zi(jc*=aD%6jn4rW+Im6e4tzlDJyxDZj zV4z0-yK4nI5HprcnT37bf^N0DY8}POK_vkprU+{SnTl{FrOcuw#|S`(Dai1M1CwSN z6L709!ra@(2m*!}fQV{<NHQ`B2PFU@=7=Vs%rcyU1T0XH7#J3gpcW|Q)fy;kOzD%@ z)m<}JAI#7k6tH%U3BFQhd7;Ag-DoaKE(%pTekLuvvF%W=W@N+4j+q%nGrrK^qdB!= z_%C%a^Ten%c%D8sBrgy(EX}|+qJb3PAgL)CkFg`OyYDAdTew%#+un}V-lg46QXOk% zRk%wmDnuz{k&<P6vD(9S{9MQSlE)v)(Po^fGTKtUnL9c>-=z|=G_e&?yjY3ru{zqN z_M*Mx5yP~cilXx^_3#1wj)nb~vX;+b(&tJM+gpoeG@G;fWHUAI&COrXy+Qi{e&j-b z9WKq&4*Z7g8!^_xDOflyiZxr-<)vZ#+QGT)>ZU7(6x#-UWM%{Wc8l?_j+N>@vph$n zgZC^pK|rSSDGTLH6;=2~jEfcg(wpf4<6ujv)a2Ht6<%I2;?^RltvoG#04b`RBFfAN zdGW5Be7yixu$GS2^Wch_qEJAT7&ZVo5rXX3SpCnC(kUH;RN0Q_?#t`iO&n<Pbmo0w z1*E;cq)D0ivyTXEr*#)6hbT!0iXZQ$Rq}Rb6A(m5knpG5d3oT508O^swb?%M*@w+J zfMp2~0wRj;>F^FZC<Fp|vYoVKar8C@fJlboC@nz>yNekhf}t=*TZqc`dX|+dj|PCT zN(U(E29-dqmT()uu*TL%?F$bJSR_MXl$J1+&CMJL!B7aZEktE=J(p4-1k!XHNy*Zf zUmD2oo|52HNU$0wqC*I-M8|+GXDI#g`ZkKF25#@?fx8N8Tj}wFZ%$a`3ubKWDmJW5 z<-k!vKBL@E)Jk%EA&;WP)aGFH09jp8<aCSg^(S*Q6XW95*ZQk>Zj}ZnX#*G}M1TMQ zC@=s8Ado_FL!pMGMV05@Mqm|*1qtfLlIac_nTb>=Qi^E(Nl4k2kGDmiQ{2VXcD;fZ zDB?;<M}MXa-BVc3-GZOvA)zXvCQe8-Zk}E74UuuMp?90RnveFJI@>}3_~MeONFQ0d zl-=A9nK$3*)80$>7d<ppwyG<d{)`o6lz4|sy+61MAOeyC03d=85)j2?o1?%_sVR58 zG0F>e_KP~h{IpHAreP?nnx<(e>#Bw+uQP^*ac1GB&$mH}E<gwfiU2@JLI^+<*d|s9 z;Wc#Vy3f0`rtJT<5RLSQKSiy;@uHx=#`9HgP70?Ig7s-Bsl-zJ06+B*v^tqQ`w4tz z;Mmy9M|o+Tffl$^bPoHPaRSRE`M^aLvcE{bqtc|;=2GT7GZ)v~S9z$NU3wp2Dpoho z)_rAZpN~_wHBW=*E}7AxAOs;Lk=7wxbMXyQV4*{@EZzJgU42trHSB;U2vne;$2j$N zxZ`?8nsfATRlg>wBG^L<ziVo*R(MO5p=B}-i{VoW_NY#%(8}8pPsO#AJax0som-R~ z^2+cLDTRuN-oI&Xx6Pj;VYJXb3;L85p0x%JbjE}YoU+^CkM)lcx`ik|Zf#J`Wl}4_ zst?QIN6*0#6-$|d>KW5HnM0ZgCP3jZvKY${_XKfmRrGYfUKu~6#3@K;DD<kAazmTD zOJYfs)=b0cufIjcE?^t(aM;Ud9Ln{JRShchLQ+^m@)}0dIwf@LvguFR8JToydH&}F zYjVKyt|;Oopp!MmWK8W8atNI#iIEO$vxexRcoC!HTi<fE0MtUM^CK~bnnbkeWF7G> z0Hxr1KANCXFkRU8(-s;-Kd1H3DzVah=gmAe&10_1^jT*-p+Gna)eNS}lE*^#RcJFb zFM2%&6v*qqwrH%fuqd2+Pj}|Ee)oFdEkPLl;#O05JrrCAL~;Q}TaF+A(PifnhHjj3 zGziU$ZV;J8Th0IgF{s2M(^yElgGO4?oj3kK2wUT8tm3Sm$C~2aAO)_U3SxA1^w7E_ z0ssIUK`vmxED8d^0pK8nDQMV`A%b}IQsc+0@u}Ir7k~*H7!Z38U@Dws<d`sD^;y2@ zkDLe#Zd6|v_J3&r^1n2IAQ%i`vV*K_Zs0Z!_&?~7`TwB<^nb-L|0{O>U$G6~|8fKH z|8OJp0TS2}l+p_<T)L*3_Xm`<h8sF4Z(W}NqXwWT{{hbLQT^M5l>SL`nT2d=3`zM8 z&y31=t_{4S;QFOM7$+Uu(&3^#O_$1d)>z=Ip))7uhtU>elt;T4ey;&RsT8wzVF+?Z z2Uk!iR2EhC#G<N74-DHdXn`!tG|zUn<1BWMvT)hLCt_?U5F9Iz%a>=&=E89O(ugAH zAEV$*0uW{fMFCYuq_<V;K?tE}vf8yIl@+G~(}%Y<rOcr7scc*(hv`Mj82oHr-vO?( zV|uT1ozI!wO_495w!^(3K@lhvbbLryWH@fjlgTvC`fv+dP8!QuQdnkm>m6?T(%|Ar zGIQgT6G}{kbd^SxpNS7c%HZ$o*62?6r`kZ0uFh<53IF~|o8H$&-QNMaU1Hm<n~>s4 zZAcvU4VwC5V|&c!M^wr3wT+ynXnC-+WH>Ag4-zYv3_<{jbg(G~03c&%_Lhk$a7F5@ zOlE8UAI4WhEBp6kc3b72Cm{XMKCti1ZiBo(4j((OInNyLlK%L6)ShTxOWSXBuX^v9 z{`(&MLt>ZziNEWsxVpSMUN#P8Xq7?YFf_}3b$gzuRd-svQ!}a*_v`h{?a{yUrf%I% zxwWVw`#mUS%~#GnOZ_YF>n#TmG(+i~SI^rlcO3iffU5V!aZbX@oXA{;VlD1KC^WTy z8-f#N-etkFbKsZrVK>w{zU8?7H{8ejGx@(kxsZ9|;{?VG(6X6$Ou%GzN2Hd?$xduI z(URIO6^1%3yivtMR*E`WcI0T$^!j~j^@7D_!M@tK?qX9eGW1-h!^(Bu%;>xqlk6N1 z^Q7u(+-4l3MpmUoNdL~*lu2rBX2K*nLuZ~&7DGcbgnfj65s~l~xk|RWf1eIdV>8p) z?037X4W+|tFk1!rb*eSsLN9IR;n^zE9Wxi~grZGgVsK8VirqVdYdopX!dlJI{ZpI3 zCF74y1VK>B{d}F>%6a?LhABGfzI--{bLtWkWFMHN+mRqBfjSgj!CYJfc(oll^Fcd6 zw$D%wtaeg`&V*NN_;>fzWuX}tKJx@P<)aSd@>kw3Li#QJXh4^*n~)g{#W>oj!y&W= zQP7cD45-zCMcY-?LywuT7*Lax$48qCWCr(PXr=RO98E@Ufgie%<=V2otYTpMAW6@@ z%dRgjRg~RZ_nOf`?sC84y!PIi8Tk`ID3gjr2*-UipG{I>65X22$KU<eeafRp+`pv> z0U6@+DLk)r_cs#XcvU-_64-kPt0_&ZHlMkpHQl87Dm2ZIoYyQAuJ;RG=vo=mE_Nr` zubng71qUcOHCv-gyx2N?&-4tH>gtpzT2UC(nMUOZ=I8<cd4^ItKY-O#es$%@(e1lD zgM=kAofBqkRZoCvJ4OZU#RSv5??$osxVv}JRH;KeLTFS84@agMqsQrb(#6-{=kYgK z5AApVrJ0a%asIA=jCx+Osc)qn#=JAV5(>!U?ZBL&#bJ{tsAPxvS3Fb_GX23ct`~-y zjztv|ASa8E>2mLq2nI(cTz1Lytd{1!15s_Gmuq6=B$EaOy=wPcUZ&IpO6kgil{|u> z1eRWC=mqiobz@h4^dY}NbK+{U!HLDRn;*lL7wqfb$g7bZ*Q}Q+O78wpZKnU22-lt1 z9<hiqDDGe5GBh|WWnYq$|Nd#zLnof6qk+v%NeSL8q30e@qC*HGBMhCx5^@Wdx_o&d zHA{~M8CS~&U~kk^F=K&fxAq#@pglLMEx$6yltLX76|}ytfx}zrBi4M%deC{e!QfVr zF?3ON1X2tZPS(6B);vB;k^NZEq(+TMJiaUD#gBMsEmnt*al_$^T*UmIho6yR=?-5N zx7C4M^&vBY?fSo9j5+u~4pLX8UZpE`ioN#5|D1fSpoF0^rbxu#a?uZmKtb2v(PYnD zUo>d#<cw_JamOjJH-7>PfthJ$+O$IjlHMmM&{Ze|ODN2o67Xj@<=}SupmJ7GAm8g~ zP3~?L^M?p1J3BW84$X{S$>XD`Ugn$EssSXb-l~e~gJoE$_SulReu0BwnBC)_n`!pt z$DWq*clQPDagFrsmkQxIsGY_Pv0RvEwF=^|2^7YBrprRhZV_kux}N%tAyCn(z|qii zwL}1eXuE=dZ^m>VqLA!Wg=;pM+_6l_CV~V<y{YhZ2F-*_nVE(EsWWaOaC$7MmLE5S zIi`E@eQI1x3w?PF8C1)}G2(DNgmbfz2HyW{=Ek94snY*mqp*LQTjAP1i~cv<ma^kR zxrh)G1hDM@HB+3`|B!I0RN!bRaWqd7(jonYS(K3P+Y6Kp<UkQ?-bzFrdE`BnzT*vh zT%F#7l@Y+)_;Z8&lQ?M{k%rTN%e)=$>De9fkK&?6q~Sa5bsmsY_qA({=CF37T1qD? ztWmf2rr&tAw2ZAHV&{%FS@9{%=zMY!t)suD_$f>3#A@^HW7&~>Ga7iTffdZVw1lj% zvhY}i2<l4V5xd7$x9d)3IKf7vF^oFQGDlJOD7yfagf)1qy~M-|ijSnccxSA9i9n>3 zjZ5?U36s!~O%(s}F-?hHsMlSVwuWTGgTvO>pfwiwtYG7V!Ty-nDqovM+Df#mwHeF1 z|NA%01M;^U7VEbG5ejLdMQbVHSKBAo8mv}ca2^>OL$vY{ib2ji(pz&n=(^#jdn7Tm zf_l;P>-tah$sk(11-B<STz1qEM80UPADmT8?i_wgas^vo`^pi3LadahfQ9K{0P<uZ z((i<rOheK%$1q(+js6az70|@Xo7T0zjWH}8$N->2>0%F@i#?#7m(ZCp1~NCJHE{N& zV63+x-zegy4~9uX_nk_e1Npx`aqLKncMLSvd<F5K-Z@VtJ$JUO28(H6bz56#c&kw$ zFOKr0u{O}D%Sn1w=`nAM6CDGB7R#W|;X8A5gv^-P-{lD*PaABHWL8pE?D|(LZZ`cs zj+^^eGOJiO>Y51tPG6Xq60_l-AY1x&j9J8q*wHt+ih~hVSPLq%<<0~H2a}D!srX=Q zw$ev1GnmypoD<oEMW3kM=+mw;`$oV|ABCSFfE<Na=-WO`pR)L#+a^*@OYB8XV|ZO* zD1k`$0>Df;WI`M8uSGVAA*jRN2MlAO!Us=CuVT$?i8pIy3m4)z%Mj`KnGk1tf;_8V zsRTbgCrpG@2z(q4Oo53EDa>|3#GDB+=z%fYQ#q?Qu;Q)nG2Lqjzbeaq(mYJSiLY8; z;f_M!s3cU8vII@&tKdBeV+a%`D1fmSlyr_ynD+>*2cZN`_<$lM#vxz2nB->R4$rJQ zE4zs{xw_XD6NX$Dcs*yI=6_g=YWEwWytWF>S5w;;Ji9FIt_S^c6p1jsC-7Vaid1aq za{SnY6GyLBXlh{wUCf!bHTZZN1)s<gBlbO}SDI$ot#cRdsk~n`E(zes%L<x+&(v)$ zApR2AST?>SwetPZ?bJmQAJ*{9HcO*ar8fm_=#mYd+jh{dKf@S$e#WIVf${N4_=GXj zdaN4Jp!`q<YzM--I7LZCm9SjUyDox9LqwU4ymo7IKDDG~@tDPmr%MyHnhDKCM6&0z zTKS9yF_}r6ai=r^%0_K(E~?{$e}^#hW7@GCIe}JgQll4^!&`EBH<uB@6Pnzc=GnkZ zr4QB_jq;~9NdSqunEO+$HQB<k%d{2Fpjq62$wxzmiQALkuTht=T2Fd;uL;cZ*56@b zR`#K04>`(ZSRHZj9Udqx;JG{*E7t!pP3~EPft37S`=hIrF?c$C@sUhiPbWqx1gAeH z7qJk_kPgHo8_aT*O@et(iQkz6xHakj9Y7g>k~i6r_->J1h8Fyj<ljo=#=V0xShx51 z0$V~n(zfDu10JAwZvnG`(4#$@%_?d1`jB#Xrv$2BTwW6b$AS?0s#9L&>JBdsI1Xp< z`^h0#(X{NoV{Q~si-zw(HUD%BXKS;DTguK(4YUzSdYgc8$|@%NI+RAQuwsSfKSHcp z_=(dszi`?=#}^Mk&mrRaeMSb_YHhBzU(hlSunks|*_DFyK71w3ZNvXt@;mG=CE|6v z+{0+SERRV=w=02XQiDZEW}*IGbJL#(dD@mdBxXi2-JGn-`$klLkgNIyrT@NJE@7(~ z<g`3_C$C9wF=FiSHQj1J<5i-saZj9r2nIepj(Uudtf3Qy>r9!;oSs~hLeqn999nLG zneU$nSKiLeEDbhp2FwlRI|h8MFf<|NF^VBDZOAQZs+Fh)G22l%t!q}b+(%C??_Fs( z4aZ;|#a^ZAHbQ3-o6jwM#c9+}x|<L@f$<I-s3LAmn$lsWf^-qe>9&f6(tCzXb*`NA z>{<^ox64re9WdyX3_X1N$ntvDt`oo8i~qI>404-&Kv9AO9<X;O_&52P(x9TQ5?p#* zU;S2<e6#!6z)Iz@BratP1u8?XO0qRP08**8vtZA}xns4$;EfbGQc@cgAs8P3LNbpr zQMpot){Ic;hkD?;V3itXBw;4_%vnl=#)jr^Y6Uh1M_pfAIMJ^-AL~=5kKCrn>X1ra zshC1160Te#Jr?<L{UhD|()xAzyZ)HV>zdCnHKeepX@ZCVg`Dimp#0Wz@m?E*uC%@f zFUgowm6d3345WyPTHMWbkO|U$k2lwXgiNrGHR_dsIpWk46uobdlkoMCV~qyK2CgnA zGy(E&m<i>VwWWZt=0@7=ZdLR6#fcL%A6=T~ZpJ{@3EuZGnbnsnB9|OPl+R=O1nM0_ zJ>4II@F2?8i7AyT-5!6*%9f2bmLMp{%qZO)J8l(KKbJW7?#r=UnXWgv__q-tXMHB$ zL0S3dq}B?{(`WM#Ha9x0s)?rH7}_nZSSdeX4jO|g+|!wct5dSWD`?CV!)HqFE=R(L zTVOWK@#PW3ZC-+L+TJ|d?iPH%yyTjjez6@aJ@kfNupmwpHZMu}>rg!ELYTzY%!{c2 zDxyN`Wj0+=4QOTA%gHwdF^;#2WoB`c)^1gQ)OnRYM2LnhWQD@Yk+!4r5(Bm@7l5Cm z=@rm-rC$SnACI`k3Oe51xs6>p1d9TQ1E@X`(+ZkOffN;npBnc~-sffS1epQR*$*VL z$L7Zl(1%>Ue(h#b4Hq)7mhG4p6h6?c27MpHOIT)j8k+4dcXU{V+3~;0qwmv<&~^!| zhW6c_@J^$fjq+v<*P=LY_%0&l0eM8l8V_oFdB1`8a}piaf3v9Xd})<5!S~yQ5%piO zy63c+6ot|Cv<*6Q)Lpqe-@mpK_01>r?l#TJR0384N1Q|>nZlQBFOVNq^)5DFHiCI0 zZv>OqJYLm+Lm=L`v<Ir;>T8bSsuXRS*RzCZ`iS|y*XPOtA&!BtKU1tfW{j5(<5RZx zlg6n~@RkR8oE4TQY$-(~L_~>xb0J$c{D|{3p;!EEWk7VzB6>Sf>Bu^bfDNWhT@no_ z{RKrQ=PIPjL2mcy;D|)G0YboZd^S;xzNNs$b|s&yTaazJkwy3WfvNv2Lh~A2U5^<L zHzWb~;5_U2ii-#Cu82ejV~-fNSQ#?ggFweOCK9m}c3Qn?G{IFMPHH>hdo$}|31#h6 zx6R`#RROjl1C84F(777UoSW=rb25^uRTo<;trcT9<;ESiV0hQW+t0cGh&ZaELbjP- zAoHqnMl=&^lW>KL6+e#$zGJh+6BW&*4W-oD2Itub2OweSU;SRrBALGXHJa<i>)ekB z88(vQ{m%!lj>7qvj<spezM9f))V-gbpl4pBJp(^w`2X6u)*6#40KK+$YSQ2C(=2x# z%8FZdcQ@`Uu#qxC&cNmdyEsGigyRK+eHkm4^UM*GkdC2;cti@LzY6gKd<0Lba^iA9 zESz<{Bdmn~F_!P(1C$w$5Z8ayTFX~JRZhaC%9vKjb%KRmuU{emat2&Lv>24@KX0S? zb16d;Dl27HF(Ufmhn?F=fBG`NNP2iz*kU+*_K;Ng18m^bZj2!kCDflhlu-_GD(ss- zqvF3x{D738ZWQ2m9Mc&PxUaUFse;5rt;G48vwyd5rPbVPyOTfHWkgt3vQtJMU)vhZ zZc6s1E}>)ej5vh+4a;NAqD`ri9)qb9%-FlO+`|duc)Ie|RnX%Z=j)W|+d_^>tc>8D z<t!Yx+VpN~tlNIiAPS$nVn49fpCmQUh$B;m^oa3-d6bq(FufN=M_e6fEcSQEm_CCR znXo3H3tBw(sm(e5dd;^-Um|m%rH1WxSZ@Bew@NDd%}IK0LfdOoQopQjB787-%-&;H z=ec|n95z55M%rx*Pj(pBp(@EA<XA3udCvvLFU{sE4NeZ`a%W-`ojy@$Brq8DrD*G$ za7FEuxEYoA;LQCE!ofa@2&a-8yHFAc#o=*{@(PkzT^_hciRp)><fVH{Rcw}kns(MM z$*bW2<B1Pvy$96e%S<Zhtv}~9>LXjiy-oDe>z0g)h)BBVO~;o5d*;9-Ht#b-29x)Q z5C1pRx&DN3w|kb0$zbHq1##`nfWRnj^Y8gu>b69`;{+haEZLVu4pPGckGYFu+hrB= zbwTQAHHfe2(IVPqm4O}hreUKEGS{qmS@R}IIZ#d#d(8PxRLSdGqPN4qMul-X`$tgg zIa4Fd_jmTKSnmXh9PR4tN<igT?AMi5Y;q4Ru_jS75dI?HyX4la*sa2U+5(-m;GMZd zx?R2sew_Kh9U|yiKm0(OH!h@EX*3Hob#?A&-0c!ust}+HU#f~$|EcLCyCsu+WnoR@ z0?edW*=TJn`*V~<W_{(=?}Mc|Ye1jZ;_!Dl=*+A>#ebmNfBGT)j2U~p`PS7{$YwY2 zPUX`oS$5lixXye>T+qwLxy$I<OGnCrCSDtXlaYs`sAvR5_ogni*7Y9bi~6lOmIAkM zUEh991iJPiV{?j<XePwY0D|C%tdoZaR`>Virqv~}qTa~_jO-wcX>2NQ8dnb_TOwYI ziH97*0MQi;7Wu!9&s%rocHaSB?xHYTke}@tD9ve6_&k;|YIlco-H7QqMNRm=@T@$# z*C}+vUJf#tntcJ+y?UgcZR@Q5a_V)g$?8LAa|<a*a~$xYZlJA2MXpE2WU=n*`|dI* zwT~5Asc-s%c2_NEoc`2U=%aO%F2bm9+OI5OIuK5lNw!+z&Sr<X9{pqieSpX>jNA0L zEPr}2UV8s2iC>cV)+=nV+WY=_QN%cYRB`WULKtBY`T9mRDN%}jJw{aICHEDHrv{}& z#ijCZ?yn>k&AK$ogt!QI>>85Do{|CYSiE0A85H))TTTTXAFJtVAlly1i*{1G@cD!p zFl=0TbF+`O+B60BV#jvYIM~_P55Z*RLZkW2XjowIM*hGV3j6m>1GV)Xw9Ec>dSP8G z2ES2qt*HjsU8X;EgtyDZH1_#TN>a1=@61XZHfGK^*EhT~&bR}ScbCpXZUDNd5b_&% z%*TCji`fxo8soYJWr!*FTq9fu6i7iO>=_ijpJo@O?h@-GH<Zb|wg|^Cqcm>j;-1AC z7_%TB9^l;4)uO0)mr^sgZLU8Sz!PTJpxa}AjJZAZyL&3Y9L@%}i(=8?LosG5L=2h} zq#fhc$A0%$7;L;gtiU}aza|l_O$hCiB3jA*Bx@Xa2w@V|^MvH64Q;XCjQ17vykp}` zI4OEgngH+i1ywm6Y4MN@M*p>H0~@H8C$$-S$%9^7L(gKz^di}lA~Xfx7}OL(YIGGq zYB~bOdx_XMUY|=T%N)&|5)%4kUMLlLBv?gaIs!?>4Y>rB7a`I?-UiVO4}Ty_l6-AV zUN0ICzrPk$ZiVy3^tBf0Y3IT2TY+2!a23Gy3#cbHUD+g^0=2aAd#SLg6~JUpG0#V| z0XYP*>Bmzzcs}ED0VTy~?hH#VrLIgEE|-{Mbsvg-d&dz}*3(d)hBRNfZC?~Urv`il zoWSU+l%&jTaddAJhV<f|`MR0=*=GIc3vu$aMeNJGBwm`kt9O0B#=j^G)jai=(S?`! z{Wizukc}yGG(J*Jx2?ArS=Y)D)1xJ_ifz7RajYx6%!I{ob>4T!Ed@FM87PTx8}{s< zya*qdTG87$;kVy4Qb#8o*|R;&6%;xJqp_pecbBru(E;STX!h>cP&IABNbC-?zL}){ zGCLI;PN#!@Sh;mP+JtUqsv)sl<==HYkfe|z{t8RndLeC~L6zdgu)A2Wj~l(T8#WEz zyw$s=Ed9)VnIl0wWRISl+litjMiO9Lr~K#6dfNe^QG&15YYLQlc8VNzXe2C{$dRMm zYf>HK>SF|6%>HEzmZ8_sHUN--y9h2EHYml6rUl-<CSCi>O%thTgO@vI=M(odHizHm zaya?qN#gJE`(7*CH}%wmLTfXXPPQ}up;e2I7eu#9f35&jh@6sJ$1LqQW|ps6Q$-JU z(v@i$mo-V=&8nJQf>{*hyk&6AGg#3%E#q-aUkn+2BG-8#8@(@*nPWiH=l<v`7))x< z?zBo-H2MX=Ase6UkIjf2oDHH;;^iDsefR0~WdM4f@b(}M%SNiI2mC}8+f7|HJn(LA zsaA?F=hhaNo?=4``Ux#oqikKG@(kiVQ(Ju^2b`K4-^<LTtpA(A5W4R6I@&mow6UE2 z?%F2n{|JoQg&ZcFJ@KDu-SVV{o0p$@Y)({|ru#W&=M?<&aiJ;^blp5>M;Q>Dsn9gC z0v`~Cka;Jf*#ut$J}S>0gTmr{9>?_qev?^zqZ6PZP}+}p>w){k&X4??;CA+rCo|8{ z66WW230yIqJfNLS+XTrw?DAVKEV;CBT6-1WJpDXG`1ka@HG5%1^siI`a<6GTRsN-~ zxxoj#XnLa}ga-fGp$nKW>;megm?Q|H4HK}WhFko)!d<b;`)U=2#UWIxl5yhs#jg@K zxkN3gqz%Z+xbkZZ7`f7cU#P1KEMVn1P4n=SVd>4%v@Vtn->N5AE;T4-x@qZ*P%Y^j zmh@R_g%a^DYyM*wv6*ek>F0#Od&{ojJ|dj8FXd#&$3V(SDK|+}T`DTJHEB_~m3mXp zJTAe>kGK^r>x3VsN;Zfh`!S=24xZ}R!xSc)c4rnmFm(@+0vx}S(e$IUEsD(D`)vU3 zu^1$)zQkvQsN_zqbsM|Eq-%WI`eFCHf9pSYsad%spAyRTxZIy=3hftJ_NUTb?Mlbx zoL>P?e!w4`rewMNQzc3pzy6@7O$6BKkweqSjqq_V?ma`Y-n+k%C9YVN79_hr<k1cw z-j(8NKE*_G_is>=snZW`B)I$#ixJraLBoj3f!)05yXb0L9_sb5qBM{JRh;={aQkBo zuNxhL;YRIn1Fv29Qs{T*<Qek_bIRNS33Eh?@gLwF9jY291Z2e3o{1~CbdHPwOjg^+ z$K<{G3|HQ^&-Su?R}Br8wM9nZnS{XUT8w1Sf(NGnQGRtlb`oQs^rlOsc9pOu$(!HU z(wR=1@YUPtBD5rn29vxxg&|d2QvB=q0fh#Y%9Sd2AOIzNKs(H+76>@QSb4001*^cK zKOtLwilEhDB{}<}e_-MgiINh=#X83yM&gvBXeNL*(CUVGU%>sgo~Iw#u0d4FeCdzh zA>170-KtE#)1o4psz}QQ9TPXbPaeN?f5!DoF7AfkPv&0#NBzT!Z;&7^X=BflK#jW! zj-8&^W)IOf0h#}U>_i{5hHX!@sLa%egbIU%*)fY5*oLBGk`b%NT`BK~gkO8;8^jx> z5q$0Y{bqlj{`{bJZj4{h8t9d<8t}RMnPebJ+bQB(C!PA_Q%lIJl02@R|6V+Ice}e{ z?dOt`gAqLcjH2Z)lsYP`nnFU%a?jl_v6}A{lofoc9`7*BqG^Z1!D3S32^=Bpt&qV# z%>yebSt2#V_(rQ6z^X)~@e+68pHx1v7FMOv@d68u^ZH4C^{Qb$4NJ0|eM@dQ0TzRo zxqlXrT|R~|;Odbk$VqjyGP;64y{(?0+N~8T)V=gi9u=q@@tS+?(k&&kY>e5S-t9tn z$zCN(*|OlQ+^Y$VwoCMw9qqFB$T3u&WR{a?mW^5=a)Vd}|GCU1o827pdmypS=j}>@ zTlD;c#RoD14gynmV<7uB9L7cEcodmLky|b+DVXQ6k;S~ksV6bzK^22geTVP4)>_mg ztG$*fJIYS~d#y71lshmvMDLj(jS+648T6O$Ker5yA8@lO%kda+*_0z+bM>Jfrghzi z@0GtnK5U3c(X)_m47x=ZGF%u38zggC_b#?KBI*`y(58vEU!tJ2R<SV+`OU}jBcf?{ zP=2OUo|$S=PyTan_VQrJj5J2-77TK`pm0p3Ds6#OB7Ge*R!KiBkuxu$f*|i`Qew+B zUZQ;Lyzv*#t+!PHMfU6~gG0p$V*BB}jvlaRxT4V>zvDc0>GTy7?z6|BbmmG*ITog@ zV;^U>A>WHeiN1nm^$KYK8ySqMh!<rT89GKud<J3m2@@<6p=-qOIa$@~a2aU*?aS{_ z>*$0ZW(g?KO$?Bq;l(o?qNb*ep@aV?_+cpaa8=dJgNe-c3}a1GMR8p+baA93f$3`> z9Err^>m3Q^%*8|}Z5Y`oWB#reEPPp-OETr72@yjgR8{y6-d5ZYYUkN&{;bTwsL!8i zO8&SX+~p8oe0UO$<T*bpxTx?R*lA5ob)c%~^o%2X|Af81Xl4@KqP8O;tM2cVG3Rn^ ztH<uC{8b^AOf)CMdHq|DJ|Jccn1&L;^6w9D%CNHEfnDQ=Ty>9w^WEm(*2I~)D$6GV z%Rq(?&FXMii5P1JVMgut=%FBjKS0dK_Dzb=eXDZ9lFF8ovn89N{%XJTag3^21DZG_ zJrA}y8agBW8!ZRZ3pGm_%ajf)CGz7jTot;`#KFhs<q^cm*pe)Lgf)P&o2vX10?F!U zQoi2LscTz|T00DCcvRn&&Z54Ys`6u<t;4_v{D{WLg0jD$kO1}_0#pm1;zFqCWPrEh z-?5u?@=XbrOgNP?j=oCPlwDO>3hmhBUcQP}Q_fmXXfhWd1Cm*q>%+3q4<CXz0?D;p z`?h8yxM~|8b?jn7jdm=Ihf`w>frmUgGK7{Y@}t?Rv^V$7#(~3XL;H%EE+Z=MgkIYa z@i>hAcWB?~t`NLB-<px}aba05Ab-W%x@QTcjlr2oR*>rzkI(v%tmtRL=bTPTPO$P> zF#lROT5GpAYD*j3b}`m?K!!e1E{Ucf#G;YDvUS#r-@JBi93G$bnPQY@++)5-RihPp zv&`wxC^F>97glkW&_S9M1=Wh8wLE&ip<q=JT<Y(e3$Xa0Sll>`V!0l(Gxj-Bga($% z7MAbs_|le0DCgP&ZtYU7MBcNiLAMP%ihi$x7NZT1V-Y7xTsru-cw@<A^!YO$T@z{B zZUG0z7B3n)bIHXMSeUoqE0&?L*e?GZHlY$Nmo9(H$LDf!)is^wp0E8&T6H|!SmW5V zkSx)$zP8oc<OCnbyXq5l^U^0;q~O5cH955U?Q);>T)!Yg6bkfp_LVa9eW^jQcq2v} zQJ;oJz^LJws$th24FCR9XycYuXGaD8v)Vi{Rn1P~U26EB8p_m=f4t9lD>1_UI-zm+ z&3cj@d8;E(CvMJjuN@Qmzpar{dzY{JF4wCeJ-c_X@cKSi^Ppg!FG6L{w?N!e<c1@T zq+5`<hmkRvBmDuF-ybaUg?M)k=yD}S0CR>F_A>@?g_uxSj(AaMno*_$EC)<FkS?h7 zdXNBWjghy&Od{buR+_7pJ2V~nQa=Y|>wDPSfg6=haQ6nhvux7Oo|hRkV!Yn3_4W(A zp<n~~eMGho<7vdHL7j&0mRrhJ!%k15E9xC-kF?3%d!Vg1P(4HS;I;J@L;LzIBkX#u zZGWV3e`SdKi~``^AXElmK)^5n;LQLq;X-DI0<iNyItB<ZlOfDPZ694j1`PtUqASp3 z4O%0&bLgK)PI@l(hDI)6LeND5^v3}(&jcuHLlCdAHN;OuYrbJKOM8uQ(ZyZ_scU$k z!~VGpq95Gpgx?RmTmhh)f&dt(&7=WBb(8Tg0dFQW0YE52&NKs9<_(HpK&LLn6Cg4J zUN)o9YApmAHTWQc5E(#?C>JJL3)wPoXcIf%DwE7U1C0mSl$m@xk{Ch7&IXM51&naW zMpF3!_CDoyP>5L81sP~gC>NFi3}qSSB_!(__dW4^XGX%J;Q<T*;^gw#9kxN8Bk4=8 zc_yJ?nd(i!4^h${W&Scp=kO{>2x$S+$S?*^;RU$7UhE;Vn(p5mmkm(Jcs3w)h7ck1 zYt%R!t^{TKCp}2p+q5WXgQr&E2A$q@s}$&!nq!j70I#w(h#LX%g_REL;<IyO`}t4z zj<>nIpZ!be3$&_BFDIx|p33c7N!q$?(UU7s=Pt*8*T_YaP?>~?i~oHvK<MbRwP)oK zolJqfbKY(ZBG!mrq}2ifU;}|t_rG+xFAU3vJ|(gXzk45|^{$cosSWpjjPjNo)81}9 zT}GLn>u_Im{H6aah~?zYa~oBqN0K$RnBDz=ZP$sA%3R|Gdq_lvi_vPd8Vf@R;9W+$ z8Oy(K>C3m?ULVozjY$$Lsx-~?)=}z6YC_^|DLj3q-ZGD)ypMQzz<*fl_5XS3i~7C7 z#OxzH6fVR1^6)D4n*I%ZQtD@D)~Z^>YWd@qa6i&@kI#AQ8i4(S(tZ+mAwaNvO6N{w z`mnt#_mC=VOiE44x_+^3kYs)?s^m7jtgT(7G41yeI|VwuunOJN;VsQFX=}ukZiIEq zN?jLCGa$sSH;$X>&<Un?G<USLi)8MgV?UGRnQQxC+dKN{9&hu^)`x%@Kud#07Lu!g zj1Hp5qj3|_<dLM2xJwh6NWoIld@PAbNqBtp7sxfywwr3#Nv})gev~n!jzglB9Z{%N znf=e)U+HV5=qs=#BUD?nD7WgQrGCVszNgbDmA?wfYrJi<3^UWdih<SJ(cu#2*`&$3 zWoGrEAzdAa+A^!zPi2!lv&rh6E4x0&(Zv<H<bpIi-f?+*K<BtbcjQHP_0MkirfWX7 zn-&$Pdp!G|NpFO?Te9xZf7bs{|0UNTe}8A+#6!`;_xa@9>DgNc#Xlt{t$hMplI5pQ z^-PVks#nMN`|?ix%X(Jl>0ncPwN}gfax;DH_sacU*?-Ny%O9lz^&D&$R%D<jD0zT6 z$hwfLkXcB>BiOI)KK8(0JWH%LavPtQqm%yA&}MFZVEv~-vD^5&a2PI<#nJb$#)Q<9 z<iqX~#RATThX=4OR6g`hJWfQ8fWDBsfY<{2rU2fs%OJV|xt^~V*$?(^-<c?IJc5K# zdOLrYowju7**o)ZhGvo{4YJYOgj<tdd%9PEYy9Q7v_#;aNvIAHrxWj4va@rI4!OIQ zT>^6j?S8{D)<5x)$|V%(N)?$ZIYXD+vU50Jv?n|>d}sb8v$PD=vVmrdIK+_#^;c+a z1N?O!>iXnQSgh8W{|72S)xX}^2Y2H}+=?@~hdAX=n##lZvvybh6JE#`-UiMe&cDSI z{2Kyp(?U+TyLhd;;$ExxY_TJrE<P5YEge}BOG@c*>5URBA5{LTf>dDTWre746}6JD zoWeJ&o4x+Mx~Mv=s?tr8Cfz1I3C;&=KolTA0#m>NVt@b%a0ak|2ND1P0t48<1wQD4 zJ{W=+q#%>`l_N4ItFk3uBiH4Z5h@AFF-2EyRf<Zb_FsXvT2%YACf543rh0%%sI;o6 zx@xM9>Zy0tSJeONj{54lRll<Sn0A=9S-Y)qePelpY*3B+8%z2jdR6CiL6`M!^#yq| z^qb)()HIrB2Onv!j9~~h2K+|8j=$LMhBNIG!lCd5vyDWVgNP~8h&*E+)L5HG8=}Ll z(2A`!mSjy^Z`wI_&3@2cvKMw)$8>_u<<85_F^=Ns&ZLuYAgAP1-3?F*D#_jNu5&wX z(RFvN?&IE3bBE^Cxv9C=PZx&W4ZJ}%sD^2SbN<@-t9f$Xm_K=5oWE>5+<2I=YrN37 zvT)?WISXCWz9!hT&cvBcn``E+88+W%ZktEu+_IBpC(C?G!jiIFXDM3BmRGG$S!L^_ z)nVIa_f0GIsC{HV@7Tg|>bTZ1bWqOYoQiYoEI7})wsC#9&UD@9zQkQ|1NUp5T|Gy6 zfafI7s&`K>;l0ea$(Qw=;al^c;fMT;U-P^Ep8u4e4a)!*xE(kjK!E~HL!UucqbpGX zwb5(PD!PKEK{^P6M34$rgM3g5s=+jv51tW}f@gwJXs?hP+8VM$7l-Phhr&CD>98AK z6|RIY4&NWyGr~ub$j8{V7{o{{z$URNEQP%mt&e7-7h+q)7RT1aMzIlY!8`aVxQI9K z$B7+?DiISMf*?MMKNNqFJcaxvao<uVzNg02CMrtBsd5_93Obaopg*BE^rO3rF)}e` zKht5zT#f;I){V_#r`Z8J<wl&IOX66rm0RYP+?sp!X7e)Mz*~49U&pI_lfQh*giV4& za0`$i2m>K1q=i$0CFJ7H;vwQHQ5GF>R;-A1u_<=M6=`P)lP-}I=~4M7@&$QAxmK~2 z>(&2KcPgUZtxafxc7GB|&XabsC{Lw!N$pOZm||1a^rzDg(+_1X&(Ik*^Hz3`td;F# z>8zUlD0gS>hCGyS%)egn7nc>MN(V~sl%FhrU-_{5w(9PQ%;gtn74+x5uv#4N7M`$L zteMtqYj1u+(FAu_ewXbz=iAOnMX{nmTf41$VN`LTxWC}7^_7y3JhcmJ6B`&~oZaOe z7rDk0-SP{4==abfJiH*{V(j9duJp@G`D&JwwZtW@{(AX5jX01<5kta4*oXn))pxH$ zbx{AI@j&ClM%ff-u560UGnz}yN$Zdn(i*g+)|K|2ZL)n?`y{yy*_&KT0&+~!<O<1= z9$8Yn)IusvY1EKfrVpW4(x=mR(i&|rdom*?$-Kpqvt{fCC-Hw5rUg&9Q@m2zMw%wg zNN&j|p;A+NO2*{mm9i%5@<8^>j9igx@=zvaB(KRsIZ`SLSK^ezl_Qm700sykf(mGZ zNni&U5P=MOfB;R<1~jliRzMY|CaW!#P#INGRn=9WgWE%2ScML3!88=13D1LV$iTTK z(IjoHmeXAALan5Ucn~K<OhAB%DfobaM-gRI(ZK!qvam>jKDSfjS?usdmd?yzQ#Nbn zl<71n^NQ(PxTRP=mT5VbXDzgVHErdrv(}nb*aSPX5!<k@vzzu^cF)<uNq06m=Q<bB z-e?=r&@|#u5mitfHBkqxAOh7<12s_#DX5PY(x#6w%cnJGO?#q?OeLBSp@KB^<P#-9 zntFPxK8#wn>zWbgt+{WXX{WvD4)p!4{6oLvKXZ%gwCHob?WZ<}U_S^3sh|>!D~Ips zPnFl637lXAB^i*3uu;-aBy0+~l3z!)HY!xD*%K=^-}6oXd$Rn-yK3`m?rAG-d!M_+ z*q;F$a(E&FBm|7XqK6e8G*Cw~S?U}xM1^h6xKX1?CcQ$1h>|E(md5gnQC@w`wbt{X z94Lp}!!IWx4#kskG)~5~co-Y;`agsTO5RMiC3r$4>4Z$E<dzgp_34$Vl6F%!-S`*% z(PL|WsIP0*OomjoIg1mkRu&b-${2vy&%#Y~?-STQR{Vm?r7L1B7FxCmWLc}Ex%6Xi zy8)wMJM)&9xvxj1%@-h{R<UK9h@a$n1Tk$o$o2-{#OVSZe-9UeC=Uu?L}J0PHqr&` z3-Wy^$CIGLh0%vRi1;qTj02gpnn6#;--`+yp4LbV=bJ+8wF9}FPSb9-$zk@L#cV5` zaNfm3KQc-<cp!MxuWnJUNfz>A3gvxNFhss%ba*(YhsBV)x3N4(@Jy1L(4}g2q@hU% zYnlFuuO1>`x>yE`pZCNA2$N+ZV`E5Yq_*gQwAQ($j<<a=z3*y(2Hf{y;1Cx_^IyDr zCX+h2JxCw>UeO<O1JcGJCk`5!*|G-q*0D;=4IS)(gU+}(=(Tn!$cYM+A<;j`4^_h! zj`6Sg_d4abrkzy*%^%?dy<ar($ER$%V(qN{e0s3;7Tkxuhtoq+&!!KZr}J3I5Sss; zA1QuYB!#m(xEq4>X5GDKG1Z%~l{2=q6!be!A)k+?6%UyoClr1y_R(AiEub|-bL-Pg zyl_7u`%gvERu(W51s<?`MZ5FLFt?nuLtLoMZi$7~6<lnMb69UB-pa9?Gz~KSJoCCh zxl(W^<NV?6S@hA}($NJA4ytUDIjOJ2Xwwpevn&2Pa7^?i5v?d^rmAqY-rkQ}%*te| zJ&VXL=4J*(%psbo+4(rPf&T!t`3RlEo!~?L=wtGRuNLlb7(Tx?Zr~hT?oIbyJP+zE zqJ|s%kG%ZnW2Q^Q#L|PrtYWl2v_T<9xLW#((eY(m5TvqnB4^hGB8w0RGHg%4aUV~k zW%1?@dlPj@UB_5Ig}hFPiIr#V+(CxDaKQ&%1&PI$DWX=E*;$g1xG#5I-zahH;G4G3 z>%^shX62@ki7t@P>Z9W<c%v@0!I=B+;k}m-rT*6>(Uty;_Yda0dl;ihyj$=MhQ@JP z=4ZfKp(Y`6`>sxWJQ!7u;N0{9CxAI$OHSEh!~n<lloq{4@ro9xoOR5NsiGR1Q6xW7 zFf%A-d%YP=>2%*N`O1>>tB!)5d=C9+f{r(DmWcz#;Yd%5EsUq~y6hn$l^x0cgt-c^ z@;!Qe4m{$nqGTY4eJNT>Y3~3c*l?bAg@Ga5OICU55eUkMuOC7rDE-Iz<cgn}E2W&= zwPV7yajG||s+Nw7%#IFQfZR>-?yIBr!jq<of*b%>agPpPFkC4%j#(=B6*0165!Pt5 zcn_4d{(|WUQi_(l2|Xcd_tpgGqHOxqFWhCg2HY+x{}i`s{D`(yjTN%09A?$nE<sb& z+`sYw$NgBH$W8CGg<q;Ww^jyiN$Xlitm#=cKPJ7SPpG>#&eKt4dYW1zp}sF=%XbW7 z9#L}Y{*B|vUcbtv=LLKVJb2*q0vs$_Pmpkw=}kv<a`oS%?zy=KeP8N+?tbgG_fep( z!VE!6C=babh58ogxeeKU;9LOEMS@!%rRDt%{xrT=6xc7V2jlULJ9#yV<x?W`6Uhw} z7Mgl=OKcXR-wn2E8{7Jee&7&Eq{4T!zQU6F6_B%5fb@8aRzi`ZLGB`O#aS1<J<aLP z0-@Ws7<yh5(=MU`?ns^b4Xz8AAW|nLuN@vcs8K(6!51J@bH@HNOS+5{=GKyfKt8gO zVi#@X4++kzZ}ljUyVF2FS4G4AM0XBT#X0<+Yzc#mFw8lCN;w?l?8fX&g)Phzsvzrc z(QwG)$iCduvnlw{ep{VrnflR$-!p9vpCYyjZVO^wYvN;CWdECgZzEon%e(y?VF|yZ zhj3ff$f5{ei?1gIrThVmITtwe%)_<{u9k#COHKW&aM_f=q&f=+g_fkx{`S;ddKm>i z>YzQcTEsH;{^w~6DNk?}51mjA)^eE!K-xpN%^%-)cG=eZ6q^%GNo0!ye7?y_)Mmo7 z<(5b5#z(V<e=%$XGnC#23uw_U>PehyYx7#Ca9A~M<-6E9A0^(hUl$*z6>hYbf&QCK z$nVLc@gnvJQeF}JF_v|ksuah)vg+6}`iQjH^1C!dDjDU?rw7#Vt1sQq$7o+UQA`op z*C6<$!ws)nxFIuaIasf|+#tdAyMCY$se28kM{o)1{dT59h-n2PgP36vxt=xx^?ul+ z2<y%VhApfu8X%NQQs+HbW8E&37R7R-cMRsVvi8erwPQc283p=_rQe8J7r!~L2*{)x zd<sWL_DC`Hn6qDC17Vk;lH;mpQqCPk<yJKWxYvqXXy}MXA`V*-pQ0fq&QmgAD}jm! zy^931>)ix;l_@D74K<d`=d3;ihzL}^SS=e-{6TSv?U1(Z2>${N*dOBik&UIGL)<OE z8#X!3pvwP`<3N$AyR)(mbg>>WC@+w}N{D<;WDbKA!je{gxUqX6BwiiPZM<&yY)5wk zLF4GYc1gz<FYMaoKr*<&+zB5k&*5_6PYhmU;1TD-9srJxy0OA_l<EhFtTHW_EXmlG zZS$9Okf4oep(7wK3sAZi77)7^qUw7hHs7jadGsrj#ORwZ$)l89$%@M_b-sxX7SL)Z zOVDjW2|ZPDhw~4424JeIc^c6El~|pX&F3Tj2ISSDzu~x->C3Ywd`=dQ5r4>%UBRZY zKQPGV6qYHe-X)mG=%8WpQ)JaCy1lP=PRb~bBH{l`!qn_04v+XK5{Txmcs)WFXjlE_ zEM|gh)z1f;KThh)V(NIJV@$t2oY64UYzZN&tCYoC`TbtlQ>&N6_aqt<Xh{Iq=(gg+ z08v;qdxJ)i)e`Vsq`Bo&J^_@Q!gmqAdPr=!c=+M#hb;)?pjLEcgBTX;-#LaZiiqRb zkUeOzv(~1ENZD(+*@yZFRbN=C>mTMMQuq0!{m9`Yx0E2|3g5OOoL3a~Z1N4iV+OKa z)VDYZ2D6aIZnO(jWt-~kQy6;*JZO0Ad0eoZHtigS>GPc+rcQ2r;qQI6=@*96%WMtD zwkUjvSfZd%B6GmXhnzKvOu_j)7{!|+?xkJ*T_w~9)4<(`xhU~nL7p57-P|NeRg@La z>P1x6m(j~C2QV|5fqtpcdj$_5Xv>PyhKZM1wrd54I%+@sIh!CPhk^=nYIa4^Z<ssS zM}NGPvi9g`N|eQxszDi2Xf}<}rwRvc5p2_Hi>A0VM(#fX`W9#yjBNJN$|Mf|C_+$R zujzGBEr)P}I$qV}A?mkaVTi~R@kZUmsqHT!^3chO;yT9NcQe8ve>LlGJ`_LCD$)(D z5$Juf=LoL9!^hBz%qzbS`dNmihulkFM$B}rpJf!rEKLy;1wZ_IKY<xS$mOxwpDdIq zeONC$W_Ic;Lyr<VB~M&X4j@{o9BHEGS<YFHTzqFZ`ODKt7O06(^rh+lt|Kcm{oYkN zGF<q*(MPddD;D4Qg+ePT&mZbZLMlTO$ZKuBPQnyCNtPcG5<fmw_G5v<vza20{qZ6} z2QTQ$7(8Cc&t8Hx*)Om|3PYWm<_DO&3nIt$FEV?2ZPCL48oYEGyMau%x+{C6*hE18 zbSKf(NbEI#QYKr6haVN`UaO^y$`l)mw&{_wCLmb`r2Sm;=qVBY>meG4o9SBojk&TM z+td?B=G)0|5PAeHhK#kF4p=IB59m7h9UR+iDjzLg7mlLMpx1*1yrML$t+A&cdj@0s zk;~)EOGy}Sum0Ig2R}r7KuNwtro(4s)sWCAF@@m>EssDG^KI(IRW-VyHpF^Ykb;E< zfqv7mKO%B>^uyN=_vd*v7H%t|ya6$-e49`!9upUS6_OcM_r)VR&cA=3?oS-*5&f*? z*op{8!)EFx?%VJey{FpUD2P~Gcf2CEe8UunQ2>#`I@Az&wR)-%eH+0%<$P}C4GqY` z8h{WOhulPvIq7eoB=e-Xo%7)4^vzo7Fw4~a0xh89;)$;wz%X4b4dY*V;sM@M(Cdk= zd;$7{?n2Hksry)pf=d)(zB}8*JA_odx0FltTJFQ57rBz2@<I8s+q8q6i6XYPv(TS* zx-v<Lh;q*Cs6Sy{xQh1=5jVJB?Lp}8c}(Cl@}H#zy2NV8n{#!ZoKlJ8hsOd|r%{#n z-s)*iecd#-NV|XW<DFDN5nC}?>NP@!pvZBA5*{x9`xbG;ro4j4+OifZs%$HH;Oxza zojPT7-@XJWvYOFz31PP9a<n`#LWx}tGQWY%LW9d<Wn9_5x{sD!F+e$yU7cTUfVbQy zrYvqB-K3#g2Pub^98ylD+!gmbdOG;(Z^cq>_FfU0CmBP))eONgxHdSYPBC0Y{4F|{ z=B>CG;+bfGDCCN;7KuTAgh}t0C0gdl++R2jT8&KMdcB0t_z6DnF1-P`b|Si$amZ;Q zz320b_?^Mwf5Qp%uc04t5~m~itR3h(oZly5!=SSVC^`AGNqsf#B24(n5XP6sAEOUM zqb>=E5}Gt<OOVN~W`*ANCfmgK4P`{Hx14agN);~b!Gw&62f9EbbwB7RTqkilvoGVp zI!ItMD-B#gNtQj0vE33L#*d`(VnYc`@~Uk?lOeX3c)ZyVdl&K85#3nzui5E&{RQ>x zb(RoPrw{>oi(X|*d@>NSwwW?Xj8}r)(fW?Z2BSjY8+dMVlmFer&&T%%S|5u!@Ckgo zrqjEa7;BsmKiUd(lh|8t>v&9D6Rifl;RM^|X2gqShyBxMf2>m)F5>AOYL!gqD}ef& zUVgW*hSRhBu!B^wu73X}hu9>y|MSvCqxn%ogt?nQD%)|pG&5~x7cKEpeqf3M$FywO z1d6PqmuaMGN89*X`}C<`+12ZtYmA(?^3$E~LOeeOZ0a+N%Eow&qc~`#z~7h@1Pcdn zhxoSxdVCI6Iz*G|t%B4Z{vuOva6=_}sF>3w96a59`VslU_@KeIgvxI4%_@`zpP6v8 zjoFD(yTN2>iok7M{7>MSXj#Kr%5YMKh<{LGD3LjX>+{V%C2TVxhO-q%Go3wM)Bx@} zYr6#vN0m?>qMC=qo42&`aLA`^Z=<Pi#rpQ4q5)@Bby@ZlCJx}P0|tS{q<5=}DqRO0 zx^h{=Al;)W7x$MRPgmPRo84dibu{bmVnOV%F@^qRrRTjmpW7pz*Oj*hk)T5AST6q9 z$vE<Vh~W~Gvn8umc>NQz;H7%D?fdrkSzYm3OHM%(oZ<oplh^)f3cr?Kz<=&bNj4dZ z{^J;Vw=<H%z093}cV^Jqd7-YxHKt`sJ%j=i`9ibPwDU&*2tY27#3<b1`^+pjhrWg2 z0558ko}bp9p7&wAo;^{!d_ACc{ulspb@Nxi%vu4evg^KZy!pAww|M$y_Y{a&Uq|NK zb!PiGCpA@U(Rs>)mnk`6xJ{XPnP!C4%?1Yh(rF-}*<_hmZYwqtM(7g7VfsveT{L-6 z2YSc0jiI`ZYu4{;J1sdc8x*Qsp&{4ClPuk9W4DEdhg2MNlfm=+)mqlI>T|(4a-PrZ zct|8G?nWxytmXBsDgT+7(n;#N+OT$r_z&$DiJk4?x%?aRnanluMA9<DZKor0j4SJU z2@1^As|MWGmfk*Lr}9ljdL`x>7nwAU*s+AVZ)fywOQTm)FR@4FAgYwdanyF$w~Dw$ zTBs$IzP{rQG;1+N1K5g+s6*n8Wp(il=SBrci(M3@1POCcHK`@^MrG`X3y1tCes0t; zg$)sVdOFeuy4Nm8@l?A0GNzQuQu&{4%n~%>QG)^mm1PMGF4+7$B>~zU5Q1OeK)V>E zMo0oQ1OL~(;DFz!NKed!Xn+Srzlntl?EcN1p)B?F=SCzQ@6CK!i&y&W+XkiSoR<Hn z#>HV8&v1S{fY1~4qWzLOj<+~vdcLVlk1R6#ulP%lVeRrkN~OgL*O$-W6pQ0|&Mo<+ z;Y7o}S$gj}aP*pDW?>R-2T)X{B>*&oyo?B_r+QFOtU=?+MQTf}`bX<>DgH~KeD+wC z(MV(CG<_%s9KXhzWVq!ru?60FMMU`ISgehQ^7vdW+md?Fg?7{05aGGIH2wAPXzrrm z7#V9hr#@bt5_FQX&tPio?w9rQiz%z4zuPVmUM<T1mpsW(;a~uP1MGMqEJltO&m{-@ zGaD!y_xS*uD$o~@>{JY5xR2c>*b*Ld?xmP?t94GuJF`^Hk{-=bZ%fS)M8dkA4V~t| z>*E6i<?~krW!hgcKhSfmH+u)D*?acvXuhU5V;gAYSKNc}d{h^JYJ=Vdkgo@m!~?72 zIzHVEj5#E1x$9=p)>6=d7rqd=9j9>g(#|F@9cBr6MfzxQq%oS{C=O)3*$bm3d9(Md z74W^~*omFWQoIzLy7mtVDu(|WE*BPL8|u`P*nRu(<>C~<e^2#$f}C)}l2equ_G;M? z<jP*@CX7B&Ted`52Sr6-`9F$&F35o)!>BF+wFtoJ&SMQ-P*&0ND8UIucnK^;&f;FV z_bnk}o$%n4r}nNBUl|rp->$aHG_=y;JdNyyF`3Qrc3d`@8@0&?SlS@9=FZ8A?`pj^ zpCbQgqRA(i6xWPHrbzR=r>JCA=2}4aGbn8h4_MeNZbz<Q!Ji=~<IzQq7oHUa)FebO ze@u>K<k%0e!22D6QF8ZSfr*Rypbb9v(jtjfxcwasai;UbfSR{r*->j*6qntgP6&$t zAOQ#f32;O+k~kD7&FP%pG%^?FTz_vXgO{rrYB*L^V|gfpyOht3IQ)#DEx8P96JPC# znXzR&jj^re16uDzARKuk%tgpYi{>G%CTavYbYF`XK+;+Q#6ue_C2OI?E9Aj;e`e~B zz^5#T&UWUals)Y@$^YioRg<^7ak=(nsMqJH*QbWlx2cW-wP=o7IIu9EZB7M5xI-IM zC+_IH(<^e+%q8I19%_c8blIHy{9}I8^|&Gfbu<5EbMr*^urvN|%KzYJz*#Mt%3X=x z2Y<qj4x7P}o20G=p$QcGPX6i-%M~Np)LMbtB%iG`G0HJZM~PlhgjGLR{c6~$s!p!@ zx#|=Aa-!05bWg{NdR7emQn;tqlI&YfvKVmQTsvVm===-k)&-2xLx1kzY_hpWtO~hQ z3|q9rC+|-rO|@=*r1)u4;88fq!hyO#k<47~H*hk+OOa_orU2^5H`M8b&cI@aYn=v) z^cZfikFnyDdilXW{yV537<0?(l*&y|DEU|q`TgPt)`1@z95>z8#QlVftb3tXj6A8l z$$KwJ_{4F2xai9swX*%Q-(l>3*j5nOb_A9KDeXl-kD|mr4JfH{Bbz1~=x69bo(?4W zL=3g*4mjFV6;ghqAaf`HK9>C20W7CKzTa#n?N7=I0W>$5d8jv4xDvaUC~{)!?rHMP zTY}scB10Ak(EC8z$`XE@ipcA)@0-t_!)VKUH83f;@sDZy3YidnPC-U2D@x8%agm8; zOSB}s14D6WW8R|0-6i$lmqR8*tq9w7NdNj6TKb@x#_sg1JC>X=LUzZC3_dNS0>lA* z`{vA^Vx7o??-A%FM0skQLwpKjamS9IdIMw5i~Jx_@skKJn;8?AaJ_sryrmJ4qs49m zIdN6%#7@gUQ*Ok>4Be`P`-&EuTtSU~kG2l5|H9r-zQH=Qasv#{OEFOm#dMMpCr*`g zklkcda4bZ*ILgGP9F!~QDg(EkQ3#x#?)PbVi$3fwsP&wbNkybHNZMiJZQJb!_{oF% z0gJV)ypq@QE<QUg(*+sD^on%9!i2f^LQA4N*fio1%O^^5t>VJPKqnh%duPVCS0VaJ zk^r8#3scu38Syuj!K`vtq>lRDK|)^+WF?hhYKD64_*P!vG9>a({|e>)l<02&K8;od zYzb@Hju#}SzI>v)WR*&)0vxuET}V_XFLIe=)VIa#4V8y<LNZvSt;CDR#5J~sWQKU6 z(xLu)p*3|8w3b!*PQ@UG{SJ)fI~r*_=c&2hP|m&_Am~p+KS2TOwV8N5Zr+E$d%YO_ zMY%J|#o?vQvM1P^IiYR6z3rjFX8uHFva;gBt^A=j+7<}=PwrWCINKiBBKFD89Au?4 zd@W{N#z?84`t#MKXTVcWxq#E%MTNxSl_>hM2>b9nkw-O(h66rp7H50F2%5{sv7m@K zL^HKQb)2i1Q=qmwLSN*R2~w=PrY{Tra4w!p@68CNmWO!RE)l>&3DNu##V$UtV7WE5 zsMA77^|VmyhKCDVU;{$oy5UyHBkc~HB3@y>zrl8=Vj%k&0%fs_SD|x`5TTHgt2M=o z3+wZKu!KCny&B+!+VG3o&_i`kS8Y8)wm(Qv%s7OZ;ukI?G?}dQ4o#+Cf3oq0i6T7~ zm%<1m?tsVR4%oy79*+$?92<r4E1p!p)pqn<x4OQ^*z#cZ=8_!UnZRg+(w)r*EG|Le ztpz1#z~;+=&2+%lbiighU^mhMn=c2prUN!#4pQoJqW=?Hs{GjFL1^=Umph?H#c*EH zedkAZh~a4FP~~eOc~%nnI9KyGie~Pgdi$g9@X?1h->|p8gtJVnrboujnB-bOulxd( zs+ja3c=h^8-$7$Lr4Zh%e*HTft(t2?4JmuEx%kdX10x-4B21@j51K4JB^II$)9tiS z3D4R#{2tieZ7}IMf$fe8aS4e<K_TbCciJRCM_{jLz8FfXfLAP(oaWuyoguK~c5i(# zt%5P&c6?$}4iMCW{RGv(vj?fyS;_ux*`Q`51AI7q0ANdii)uJ@NnV8zWx2-@o=}jz zxuYlOaN|~zo0<IdZPMuLbyaR!%+~9ma-xQUvl-<vc5VAC@o=_9HKq_cQ?!3McqQKT zIhJ`9JPfa{p}}Mh*Pa}pJbIC7BQe#>k!0-<bYi?dcy<XNAetgigA9l-dcU{WW*o!g zAQRAVdQJ?%!!QOQS>k8+{79;Rk&MnK$&9KP7ngJ4=`(roe%I3$<HuIEf!?+`&0@BZ zx%()_EE;(f`7!0VDM+urr;Pp7Fi{y003$>;DQ!%a;XD$NpbUtXJ+goIF$n|7!wEbt z(&(;4mdo$Rp-RqbB@fiEZ|1HnBf!4&3)m5EtPa=$A`;t=i5V!}`#`q@+2g>wklI*x z_LVM>wpSU5UhK<QwQc)-p)7B??U7?JmUZ2vvb}q`d?>02#U=zj*yQCRY$s{ZpE1w> z(gm;?WYqcv<b+WGx=}$9MX=yfyf6{<x+8^iT?LWnZ%&2bYKhK_V5kd^VBQ2A$mWZ+ zy&?#72@yeby>1j+4M?^PfmMLiwd)a=3QG6qsO2A(OuP=a;C7_}*E-$ZF;oEoAu~LJ z{q1#xfAZ@Bpu(%Os?sx&vu^@X5tkw=%p>Ao-v!o%3}V@A;*iWmY+W(Qx~h_$r2@-h zQOBjuAsMn%ZS{-hu8e<;q4+wJ^jgLt^Hn`j^H8;5*nny$Ze?_*jS+uh>VLML=w%FU zXuvi&v$^UKmlUa;Wq6rJRnP+MxB==!S;SZt)9c?^D8_an_g9&3T=|b6fq7FS2^Hs6 z)#dgmvG}OZ(AP-zRN-g&pdd+T!NoCt3$=17gIfytrT0E|=Bi0c&1Gt&C!BroO3XZa z63Z;(GXp@aC!ynVpg)_@Twfoi!zed!m3@H;_MA#)7>pJS$vn_OtHqm)JFuRO4iMCe zMARw)9TfW&P*r<(G!GFG^mnz=W|PF@kX{c(BQbUy)b7YCLqGl60eC(~AJ|G*w4OEY zwqcb%(x@+}Y9%HR%63-5k5hR5sxB<)&rJ(ce75A(t>gQA@`|FhzH@;ZIK*Ky7s)TJ zz}V@Vy~b&j>jUzYslU;j&@fSimU9W!EFt)FB+xFJ_g?buXS4S&snuIK-s`E**POUz zoAuopIxy-q<TVt7Ir(ux9!zxo#)1wScH=*2gDr}L9~UbxU%F<t#YK5?S*;>BiazxT zxZ2)9R3X-7uB_?TG0MZm;+@uI(vJ&_a^>Yq$FlDZ&`^9U4}2WzsqOYQ#{3M%WVmMK z!mn3cv}GJy%*$SZ|BCfptjCKokBj@(RTkFMU^(Z&3O<)_<6DTo;kiI>S*BpgQ>RdS z5P>j?ly62lS)$fN28aUjW0YnN$qb%Z)q+yhoXASueP+~w#d*hgEOln;gsaH=&{VO7 zkvoU|*i2kk%W$<1(P+p)8SS{JaF~h`-Rj`aVhbncdthn+UOo~AM%E~MPa(N_h7aL> zIv26IRR8r-ts_lfmm6!!QW4}`V%hMY{FI1zP`48$Tj##K)i1+Y+riBI0;Aj$ixF2! zuJqi}-cFCKsxjJ%!lL6eD!>h;(t<QD;ecPyx&+8h4IOOD*C)fn48YENB%L(FviujH zFZkiO)b`Ye?WD%_y%Eow?YezDkE7pYvyZM#;hfFs45e@w9n2#nJOUn-hD;0h(p<>e zSpcj&AS)dxl?F7~`tCGA!Mc6AD;zQ!UO^c)LOC3TBizH0CW8anx`AS%`w547r#<2l zjuCXzK$j?yMgP~h3U0tPbhU?@tGi<s7r>!x<t(PLAV;a~LSVH3S!F<WDS}%SejwHp zwZfwIFZ9cWbh_~p)fR6?UW(>56vGjpSl*El<My_<rR}aTRk%XhOAJ{UYq6w7Mr?0S zE1<8;)66WY0gbfNUUDKrQ`CY`en^<x{rPG}^f}22eAVr4*~aZ8*d6lQTMgPft`?sm z$L%lrH?E5udOp4%8#w9n$H(#2P2nChF{vd+{HO=?n~CEMve-4z3eW=vP3&D`@A~v7 z&VKFYdB9tav?MfByL5KG(zCawUxQLwHvismKjDFamY$hg_mLzFe@oiiBYVQE$JCQo z)KVO`d@lX^O9>tRLw1*g^kW1WH*KZ0*z9cX@wdlK0NZk=c9a^q6vLIDmS14}_80iC zKJE`CRitCdc3_NC1@Qe4aX@H0Zo|k2j7Q%A!k2HiT}|Qv#RaD_E~H%=TJ*&f(6x5~ z|I{Ae*VH|YGv>rpvA1=*i7X@dyygeIrz{i{?vdh*NUa+Y3jq||%4)65z<}8LLr<kK zuh|vVgV-mqQD4(V;MPwfAr9fYV^Jf3W)$edeXE<J6~jl3Z1OzCbxvw^bBxqq%<f)! z$+C~FJPu_(UIvF@OpIt9A~{M2#`P|1XFORafR&m62yt+zN<Qz;=0O=j?k-SNF&xUr zwl~vCYJd8@Z4EMrWmk^PT+SKJ;xvm`A5Lrr-6S{5Niyh*uG0c`4Sk%CGvPEfqiq37 zxgDc3cL5r2C5eFLP=<X@Vr<t(j2aR5RxGd*3oUNPa!YsZFCKR{!$ZnNVC7Zt0LdMH z8A3v$j{-rgxIP>A4b?&!ftN6ENJH$j#b{-pf58FftMunv>1B+t-AqJtEMSRowdur- zVfq{TfE@~GVi7gIA0e13!+JBW04)}+bR<_JBkYbzZ;rQX+mnZL8GHdQMHM=VwA(+V zFG^Pckld{Js~PIn$r`8y#$9}zaiHl@phV}h)Jw}HLb(jtfvBL13Z?zthBL2!9It23 zxK^zLHsNKzY2)ue%>9Td-ch|MR2TJt?xq>UlM>tN>{nRPplbPdeGj1VVK;dr7?IRe zj3rh!L{^ywFQaC(4W%k9V2L<jR2%HrT1?;s`wU1%mK{fMoji=u2oyK|g*mpINNFbk z>Q_s4L|$T@lQC|nLp7^KeHLdK^PFHK#vAp}R$xm*qS)%}SXriQW<OkE@UvcmD5Lta zP!F=vRq2&BG29FP#HQl@@CbJ0$z)1HU<D1Vpdo7>hVbtfX#q+>gcdvU5CI27z%gOc zBPsofMq+fdKbw)v>%-=I$h7`CKk^42PG-XiC^8Z`y)1e>Ng%S@0J=`WpR(~nu2Z%o z_A=&}HC8NTNg*HS(91pXHhoQA0Z(e?S*Pe^##dwyBn28;TqCLMr1t3a06}e?0|d=Z z6n%*cz4v6IMxW?&pacNAZp_oC-xA`Mzs>;sl-8r4B4uh)1)}AX*$^@4o}R*;TB{tA zu?IeLwak>i!{@+{ty-p^|H$x_j#19Ul<(8LNq!l_FxWM)Ec|@03*e;>lMX{}6P~t+ za74Lit7~|-P!=$0n%?~BU*p>-iJYDM(90j~f1$!tZW9pRBM?+j&LGeruOH~jHE!ZK zcHVH=X~oIxnbS^(GDDaA&r9m~G&y9=+ZSc#ezWl3MT@5lNNkdx^s;10XF%TuQRA^> zpf)tuK_%XTk{1iSCv9ajb1wZ^0D*Y60xhJY4I`p)Sc~o;iy!&jd@*N+Q7)#}5nFK~ z{HYHYlOK-CcCT@(q)C(L%CC9N!NbdRKXvqvp^e;D6DHJ3Z%szL``$2p`>9zOrj^6! z3vV5aHFk9nP5({9?@KK#kmdl{z38LdKg+!RHmKEC<Yy5&{Qy}UCEaI{N;L2;diF@0 z|G)N93~#LUE2}7c#D^JBjwaKH4{1BqI7RyZ&!4-g&D|}nbbMMHw@nWYJl3=Y6Wv-3 ze_z1uFaD`!g2<oJp;Gr=9K%|U4tY!%9IWhcO%?%UbN6ERh#G3q&#e#*V^i1&F6FBE zri()=$<F8}4vs&wMYF!_Aj8%=9m4h&@fV(Fm};e^bj~T7&Zl0mYVmba@&^(&4?Z7P zR~M|I``edRfZ}craKC*&xrU9k8Dwa^LY8o?M22DVGNV%0u4X70c8Nfn0NIpLQgox# zc;3vj1(f9F8A;BQh>n|dt>XI`tgT&L(vMk5wK#TKp518nSe)(3$j;sRv<9|ryhr#t z8)~Xc%cidWSq=aBP`_Sv<n*62#%Xsmn{2H}z>Jy!81rKi?+$p|$FEMj9_ddm**sdJ zTJYmPzzd>Dzj2y?n?X&xL{E&sY3rMJwAnxbzHW{WCEk%dH0e0#fMPditUxT=Va2<d zV#`v>lFk2^y7pI4LK_t5FB5K8+14gqgqtmsp2yI{rIo#$x~Y&M5xe?XYX?FHG(yjT zbH#L**@#jXf<#Lt(KmK1X>UAX$BiS9YZvv7Y(wj0U`fHlP2EP))jlsrc|>^KgF6vX zDIlY?tH=CKi+=;_Zag%J?q@gUEG!$jkAAb@8B*JLIQ6u#3<KR(+)&}WVa@c7<}DJm zZYVf&-2nJN$J=XL0&OSg+cqf0uW(?Qqc{zn7vPE{*XzF4Zb#S@(`S$b+0S~Yh*7X! zs{@&luj$v1e{fKjj%~KDwSa`K*0rHnqE#rH2o<)$rB@N5+1F2764EpNpka1Hk{5j` zPF(gOwvzjNmenP8TdyT^_@APm)~AN5$QwNEeRo6Yh4C^t(Fv>kB91o?%5c%(y>nvh zj(mJMxfBjstti3?PVzJR-W6#GK#!Fr^R;u+gXw0ds2x6<=7*e6MkAV09qtS6+|!eh z8QSb)5EqATPg`*}E#i!0q}NpoFF0=mzxjtyyS2}_@1JBq0MuT1z=MJPoXnhy2Z`g8 zyF+^_kRnL|uN*yhp5tsyYu{hd)>7b~cXLahkz#a)TFAp-MHL_huroC)O*?JMgRK(i z!OW+P9={c}pb(kW!e^@1G1QGo<WN(pWF=20u)tDPNkLkzom;3CDwh)EU@PwYx^i<_ zsnNeso68g($axn=4<t1Pe&1|liBm*e>r)&5L@;GdfTPEu&i_1hXdG?{kA$OO#u<>A zF;iU*r^JtZv=bz?Zg7DotH#dEcSNapR*$y1gN>Ipya}Hy*tNbB$qh+U1bLX(Mf*3f zF9aU7)O+#PwLaS6&$gRrKL&e!=k8d9A{U454ZZWywB45QQ(gVF!b)xZCCP7TNh}xk znlpH{xFqT&$F5!|**aoT&rGArK2V#x%{7hUi=?DQdB;}t((#@PmyDP%Bh!g$-$D&| zzYq>4foixobkFO96pXjJ=cQ?fE#)VW(}j;3mTV|!Mn;)CuYM6zsOjr}OXUCuGX4tD zncT5D2JkB(Gk>ks3v5y~>|xi}^pca`dH0V$m0F{F3*xV3Ge!m6@uXqPqGAoRLW@TI zA44;vaIrhouR+r_HrGTcyrV@rd$#bzb_SoFxZFzf&3h#&j>0X5j~(H<LR0&XN@}yM z=3;`=P_yah_6C)CLpDo%d3OHlesjShZSc}llUHbt$x(f~8U+d2B5`TydFn^ljXLF_ ze9LihN%PPjk$)lBSX8$yWDLh?a-Tn7EV}<#OXdlK>Z?0g@^a{&+mFM`#oRK*;7Zn| zxZF*0<3xj-MmhxS2}bV~QE>o%jph9~*NNU9>lJmeX?cJw&Ypvr3{|@~nG-tr<LDPa z!*00YMOEr%b_AsqKuOC>hZj2vpY1OY57q*883YzdWy_$GFAY(N`%NOQawWaW$UB$2 z<&^D_h6E>A2l3-TdF*jb!o^RpFS~pwJVjs_s~!fCk_{H?Cv!$MHR-hK1NBemExUS# z6{5hDK`6QG-DYx7n-UyDQ!gh&kPz^G6!ufg9}a+bR=-(V7#kPX(k&8|fupXP=OcjA zZww^1Tncm@VBmZuQ!Gc17cLtth5oMUL<q&s2H_WRF99dT9nzjcW2VWruBU!@IUR7b z$k}_@nHy!<MfO51f8mzWLTZ*#pF`6Sh-C@p=S#CNzYMv4T~AsfZ{_THX0{NH+}y-i zUJ?M&Q<70wpz1kXkO}!3H}p25Ez2D6L&x$L6ev9+_A$8$-9}j?O0At6ECc_cj@?fm zPwT?%$J=h*2%phKMC0bC`?TvJXC-!F8q3N*ak*afA!U3RDK_L{=1yK<4i{ZMHF2g{ zdq48v9W2r{p{9s<5pbqEj!>KxzlN)|E=D&Drp31|%3$*VyvGFFVVH^y{GP{2l9I@s za;EFAGXJ<1s>MRmuOF}GZm=|&hcjIa!;6{h+};!Pwiv_9;37{)4`7?kI}$d^DUM|| z+sIOiZn<KfbSd!B;(>ZGM1y!f&ZTS-Z3KrgAdCbn>owFCU4ba7(N_GZ_fauTL6zj~ zcimWZ{0eR%VH`Ic561T&I)U)CT(jpas5M!yIEAs(t0UZ41}WY5Wwmc!yHV(XX^Fq3 zo5aFIgWk@f6Eaj;+!rP|gB#{t{9LX{q>9<jwOFCA#io=@=rGj!opYpnJ!0w@+(EN) zL?t=6^dRw1HfTL>%|oj^wH`Rz+Mn(!)T`{AbW%5z<{%|8=)IWUip@5veQ6cFc%f7K zZMuqSa9m0f5B~l)a5fV2YH(HllI3nQ3)ZdI^bg;GR>{HYjGHSD838`}0$hN{-Q(;P z8sg9^?l|bEF0rSRCWz7^L>@)9`Bg_#q9J#u?x`9vUNvunv)BozhQQW1vm`dI%z|KT zAG_Tnxj$}uiqYlt>&II;i`e%0NXRXF{d(=E*g6M{<is$$EGxY%tXZXK{GNrdiE5Ke zA8QKVXX0iSudQ^M8}>ez_js>RVA$Yl!9lw|9&c!vTSl)iW^RZ#*YOEkaM@R5I87T$ zxQQAP%AaZqqMnqb#`KM43CrFX>dqK))CV`YY5anQLajkL&+Igpmp3*T+%D&agO?~1 zyI^e$Jc6!gx^#zn<I2~S!!?*s9&gr|Tu3bJv)bkg=F@Jat__c}($tuq(c<S@?uqIb zKj#OP4DUR>v-T%;_=L@!=<TCRe{(5Ex@7+g^(#lJR3nL5->Xlt*vvBp6|82g#2+Ri z7d1#4w$pmDH;y~Q4-hkE3cNIQ+oZccKL%MC%$R#ji61~h4^2aZU&MQd`rT+6peM%D zAcJd|yMl?>7;l!m^^n=S#{~s?v4{9roW^~2{|KmgrcOVx_&O*SCxX~q*%WczWFisy zL*=I(I_#_EVM-^G`$fwi55o19b<+%x1<5Z2C8bg_Alk=SnHhAoF7ytQBkn_myj{l; zEY+!@;c{H|n!Uxc0j`ZSHf=||FuVzH_^yEga|(XfZtb*bA%s28aD?DtMZ|?iJW0#K z!!MGKe3hQeme~5G8pT~Df~EdKy<S@6oo(?6aWOrvo0?fDo9KEX8YIDiTM}Ci?hMw1 z;lgP1EJ%Ba+)y4H<V+dd9BXXagE-x#faYDl_L&8^z?Ob8K?~t1>2h=KAF8*zv13C| z=J-#1+1gLDp@BF^KHX@qQV;6+F`iI*U3#A8Oa8M@L)*!eOqxWO4Ejn4VVV}3gqf;V z!eOZFS!#@B`V`Gc))d7TS84W_LQ$OSA)eN7txaRY@Qw;?4MS<MO^XF%aUD5UScy0z zSrlC<&gnON@m=?^voy(SUQ6%>Uzszv78dE<8xR?IvN~dY&K-m!tt%uOHx?D@gQo00 z>~p+GT%4US5L;}kL6hu!vF_a$3o5rBMffHtY_Owmy7K+Xi&mcuhV*VfN53(+g_V$T z=FSyDivWh$f1l+3ee89gKZYE-De3n{>!WZ<`RE1kK;D~ob$1&HV2K7V*#dT_MMQH6 z0anonl%?(}b6DP`*l5Fve)?ji6t#+JRzbmDH;JGu+Z{w}od*Mu?X$uRWh)P_LDRu! zEP4?T<^kySz?NQI5(ibz#X;PIXw5)i?@@4fg^mbL)9@g&ofev@E|2L@)NBxultL?T zV~p1#t!!y?Q*k4k1Fxwk=b!-hZ7E;oV(y3<3G8(}oR`VuAyYrXv9f6`S$D3n_8Z%& zggSpNfn(NL=A-%Qnpb#nU;C`^bkydx_M$vJDM8PD=)h;|tcjhRQb3!(Z|yhDf(Ph3 za_1}!hrqYQp3iY#E>}Cc%3k^MgoN{*``cK1!B@KdgFOwW(Q}kDRL%Bs_?2*)XZ#1P ztbM@#Z#QdD^81my{aima|KR}XRsfI(m)JfPDERGt#g#lsa@N9hPAOelA$hIGAm3Fz zd-{I*;8}*fG*4x7Ay1n6pLVsvPr2=t9s=9S0aP%F;K4esyDkn<OTTOjuF8OdAaG~j z{c3Y!N8J$=F&!8$dRzpYdu!pVLSFEi%cvPs7-exf#*1Y-m3(e{rhsU2%P^ft{a2hC z8mJLVmS<c+0LAQA^;iwBY&DWduQpYx3`4m>)qPEY1E1k$+%S?}PIzIz*Uaa&g4-MK zs#aA?GW6t_{Xm{k`xUM&_+G<FpV(?d8Ogzs_bc8)z_kNC?bU2JtjXZ^8{8|ZNG^Im zEQgA|<B|P_gD44(Ff(9titP&$X0eX^VyjCz`E2{<vr@bns0m^`I~47DjN!>@v1FsO z<;UAnUQ}B7r16hSR!bOg(zR8Ii$k^t8UpZ#IqP3vk4R+4cry5IhrA9g1J8tqW~i_q z(ueFpUACU=&I*hLPA>twz&(YSm7Eeuy!5G%w5YCaCdY)POSr5x@z)A3$(2ZoPQ#1i zdIbaSkUiq({HT(ldV1tR1u|?!?G4iXvo%mq%%#~N;`9xir;I+F*p-01|K5#QPJo5X zQ*<UfkO`<8)5)iW#^$1xYvtSJig|0%V#V&=KS%iNK8S-(;^&i~QypDbW3Mr1)U3?2 zx^lfOD04={sb}{9@j#@&2Xag~ckst|)*nY`Kxasiby0eF;J3ek$dp*12!Hu>@l^xI zNf!+E9Y6Iqv|0w1=HK%KtkBDOICiY^VtN=A_Ph@F&A8epH1tB>^L`!X7SabmL7J8~ zz|Ak>@|4_^mP%Aj(To)TFWxCL8p@dl;ZlU${oC)r*=r$h0?vtBy3}QDS*hOJ+OrR> zk%Ns%rzY<i8(X`;2C(4nSNbCky9K}rJH#D6iRv<Ye%Zi{%J_|45aCx1i9u|q33`rp z5rxI&4O|uZ`kfltp!Z=O17Rii1Mr6S()jShwoY1_6#v!2$LC}0kaX1yVtceJt-a&B zfb9dSo0j60pAZ}_zOQi_d^!Hv9}P*@6IqR)4fNA-dC>LMy0$XNrGGwJUp<Ay429&v zDe?$c2reCaQkv1iTb0<gPKCiVR_g_RTk^LW+CWf&X4_1Hu#xmB!Rw1mE@DsQlx+HA z*5BUaqZBryMIja;9OW!kEB@sBs4=DLAB{hM{I?2ROzB*_Xto3qZoN_^@#ns$`F%dv zYxVZmv?FB=6pEXt$bf*Tt>YG;nNO;IiEjTm@GFY)$l+Vk@$I47F!YU%+|aNOYqF)i z{Ak)}^pUgl!FCZYYWI<V#`K#n+-USvVMYR+=&}Q;gMM}qC!Xc4F4NI>7J}5IX7-A) zsc6v{&$$Xh8;_i2>-*lmMmU(dBSQ<*HLvblLuGNn<96E$!x)`bC}sKPOuy(TgtMm* zIwSjL0y1g#{J1BCAAFs#2Pq*glVt_<RZk2$_jLRjQ&g%oQc_yEt43?VS83$590H!H z_0)_xDb0pfxg*~NLLPcU+8KmM0fnYTyA73v1&=xkmK%@bffY)3y|>N0;3$OirV#pt zMKgL9Sz~4>g<^-k)wXMc0RGtFg)a}gQ#5hC-6|#pc@Th2?-!-=LUNkPuL7J{?QH=R z7k&_`BG_LONZ1+^aywrDf2d2OdsDa<aO^_Eg&?tzg%=5l8+g|q4u{YxavnJ8GgKfm z{^;Su#&0B(D<-cTs6|swd<>t;_UaNf+xopN%5_Zd$Babf#M*iNh^CyX7h1?=h<s;4 z8oj8&$SF|5e`7y=W?2}IH#Y2*u}h!$D!u!}@Mi`3&G}9BDq|Bw6B!|jC=nV(wI@M1 z=fmj6*npp(`y?B|ll1=nH=vWa&j-4wV&uVGq~-$p5hrVqL2U5u64aF}3VRX9Veh)& zRCBm^hm2wN48t{bgsJWhd#T~i&zYaqmD$!^ws(M_EN(xXin6JD633~A&Zhidts@2; z?h`KyN)Vpd6EIkqa}KHj2kD`jK9eM#rF|Px6GOuhG6E^FE6clh<-|x~!NpzG2q_b^ zwth-M4-X4_Y=BTrygrG8P>-s%Nlic`O4*24*x*3J=;Xu+>&!gzFwACbR+8~#d<>hx ztn1W(ScI*#S8o>NB+^_OzRa5t*I!qd5h*oy_KGz)FGcOxlJL0dO^D|RQxYjjcoIGe zCZ?K#I;JPsj~oJ@vl*|j^H{_CQ|XP2Gc>-yOytxhjN!?Eg%E*9u;WgB_$~36IHgOl z<XbX!JHRf*f{nNoyTG01Iu#e1PHL0)#YaGm<yF6K$sv6xL#J?|zugsXp=axYXny`! z&%fbe-d)=@IF-ekL=gUbfjDw}Y@?ns)l)`zx}nCH>aMVQDlATA<0e_=58AH7TB@}} zJ9TK2zS=W*!dweQ6)UwC)mjlQ5UL5)avrMXB*lu9xf*Uk9bV8iaQV4wHgN0F&kA+L z<x4czs`^w_zbPEQNgbc69@?PlH>mnlRlj!3YIGrE>Z6|(s(Sg7_}yhY<OJ*#Cy-8= z1MJWoV51r6BVF4eCtz)IBJNr`B2Kb(u6~0P(UY;YYcQP1(f{N`^nbS2hAB^G7C^O5 zRqGPNXA)Jjs#e6Qb#ZE)s@7iGdRaF(y+na0Uze2LqZ}poT2HpN@<Mo0=pp8>qn^~K zT6fxW)1nl%lY-(U&C@aMx}_mbM{y|~wqD~HqJm;-2bxmaL2-yYEY3?c>561`zFe28 zbPc5jN5JQu-_lE<FlNK*0kZu7gg3^lE_7BmP^t&0uvs?tVWl4gMHT2NNTwV-#ENq> zVY~qgEL6X$_Nd_=jzlT-;&Ik8&@=!Ca_$A_g-Y#)gzr9BfKa>8?uHqH$WXlCp#QN# zY}egtP{t(VQXBT+I#lbp+Q!v35pKiPSjjqW7>FhoDcp-1X#lan0x;AI`T4T_E!z~H zhb|_F&Awc^@cDZ{07pQ$ze4n>gwI7QrBLLcx%HNPZt_BHw!$t;b%oXDu-a^>&DKO6 z=6%*VKv28cFC+qDugDw(3hyg^XT)oP0?`h=y?<;6W#T@eqzbbWA(^UmoF*-~-dnAX zm1m4gdLO9kiwu#Y;l0|G8I-k=^-;o4Pj5yX#-wN18+cH!(=_wg1aY?E;9LD*f}jW5 zv>`(85up-(jUguCp|w<cqt^#&HYMjiTNz)sD`jg}S+%8<jI^y*%Xid0t<8s5462+# zNYJ~)>-yJ)H|C&9OLB+$&V3=Mt=X#N5iwpTwI_Pk9Ygw~(YNSSuZ_4tReI+@hDYRq z9C2J>r)na_4ei|bPe7=2l_^B=ip~0HyufWzOff?=wmyjqTfo}Jqez$LL5+iW_Bw(| z&RmGo+J<kHdTh-S9#IzNX~2~F<<>Z3fqV2TATcZgmq1JS^TNDz28$CsIdTZu(cnZj z$Ym`v|CNUB;`s2fO0h)boB}1c%15o3;mPwxdfHzX8zY(QKyq}pZk9*l#Y<;j=>n<w z_P>hzK2SkcE=k7Tba4{Kq!v8QkFq|&_aGuNId1yIArW+FV<UILc0(p2rsq0PDqn(H zAf!h6W0RUdDJ>Dd*Q^2on`}i7Glz4Z^d1M}Ef}@L<T(_fyFnxJFMp_a;fo*Qj7|9R zhdsL(lCOREg|yn2f4ci8jUzCLCsWB}{tr&uumuF(<Fa{dvH^hLm&ZM?;ddV%K^5J& z$z(J8x*3<(Z!z}@a3Vvplh)D>5fG)Hr+r9%8KF<S;Zzs=ujGS>mb6t}%7G6Z9J3za zw1_?Uo90B?JBdhCsL*$~(Ggiv_-gc(c@)~ft>RpKDAy!eM(*@CIiRo2p;MkT|EXQ% zZJZ*F%s=@?1K!4;CWGiTkYMQEM`tGr&BGPzkZRv<TihbiF<SxFnVP$B-Lchzp4%7U zKel3MqW}JKsP=Qwu-CNbT(rH>Nl5MFsgjQCOo5u{DY2yE;ouO`zl7G1P8+`Iy;>FB zG1N#djrn6n*P73(DA-0McSIoiYADqdtD}KV-AY)dyTnChCLEcv6b*#i34U8nMK-C3 zxFbSpsdwP3nZWK2-Ab9oUFxDN3I2yf7WT3QJz}WOJMdX1KsiryH6ImpQ*+G{&>pxt z9LQX;-B9#EkrFZTn5gV70ss9+&*7m%ad8vpzo*uY^|TlM^WXF*;ZNkT`wQ@&Q$>L> z9SyWT3$4aceZ%H_0)(#URU_is(fy8{fuouaRE)QQNQA+6y1^U-GbIkISi4n%@orB$ z<T`>%m8WI~x?%48<0^hGlAo2^8J}wa=`ci5P`7+wEEu$b>UHDG3UIGSxXEVS=yV`- zq2+32MAz`^%|=Df>e$eaOvo!wHRMSTh>;5UWOE&nJWbjQ<HzGSi3d7$Lt2lBG!Nb+ zcpn;&nBa-XMq8Xem4dkpyK;#=2sblI^ps%{;k?*0C@7N|4#!LxV%Q<NJ9I}REXCEo zAw9naksi*&(*)sSj&X+MA%uzNYWUO1z6Nxb!1JQzk9a)ECt=dAc35y8K>L7*U;PB^ zAaK}#vLc`u%b23!jqi6QgPaJAWp*C#@jb#2TJu#)tMyk2<*;Q7#vvKUtD6i{U>g4F zapNyf54K6@9B(m>jO9sB$ivErB3n-m*do*X<q1eC7@b1dEwUSK!5E`iqK6?vJ=>pD z;5=})rMKm553L8&!)6%T3D+;`-!uf04&ml!9UWOCM98EEmiVr6X6q~%V#AFx*B5su z+yy~L;8>6u&-VWmG6yo@w;vykbk+~IUx1~X4B!mXHLw+1v36t2KtP&WAMp^XCZ~FX zJC61anP<DREol7sLl<aA!V<&HY(K2EKirtoX*K|L$>T4?ar&!5Gueu5*>GA|c;u$1 z1?201zYdfM^y|4xZANatQR}}h&$RWqJt$%ZFkZo3ILy|^xpUUI&y=r66s5yZiu&Px z4xu;Xad6{-GL=oBU`;hft%f#txaI(NSU|`V2{Bhs*w2n#Ct}aZ-~PULE&%pFy80@+ z>GR(W?9dUIYyKL}E9l-dfPn#OMJ0bnu=NqxK$Sfkk*l%gi#)fr7Y$dg(@Vt-<~4t) zF*Q=$*Q0-%3<bV;apAf<9;w9^TRCvYkD~>x3kUEL*qP#n3Tm#a1MGYCg;(pM;vRi{ zbLR~od*g{pAQ;reuxADpAcxS^MYqqc;|RK4eAO!HpD+35*%<Yw=oupzp>q<P;ejwH zcdMa<x8HZzO_h!9V832x6xn&=!FpEd;<0zhiE8sx^-q<%sqKk~T~AY+cw?=Z0LEg% z%N|@9fRgP_TRUOk%Evmf)0MFGHl3_4MNVbK7>RiY$pwk&M846{W3;X0jF|ZdSuY`6 zkdpP1bn^;F0#l=i!2VEMCcwR8D(O57_VB`wual=2txOWR5K9X*yOF~SK2$mUiEA#; z`#E%E?U%qVe94HE)TLBi+kfW=g1?tAM~xItt{yVUYtHN}EpW(iO}OuFxrK7u|AZG; z9<%1i4|rY=z2hc~cr0V*tc$28lIrXca9XOm^O>U`S6z7!nOs5GRU*K{xrxi)jMKsb zNM*KJ&|95hfI0hycwr{1&riZGPbJ~vx3=+d2!4PrcbF!C)20#Usf3V8&YrXx^T$Fv z?%&habNmojujO&Mgdc-wdQ?8>kbefb%tT)38d6HG<Q?ZeUlZ`xYOknq-M<+c?-o9Y zjdYl0<fVLaLv$AdxnSy~bB{WzGFvnVY)9Z!0mq+Si8;|VF7~<gCDf#8^_|V8US{(z zJJ)Y`y@!zZ`2qH*+PU$E<Zfzvd0M(~Ge|6Nc?DC)6p(un-%BIe4!`Kq6|XM}#+!1C z?5Wwg0B?!6j8vT?_jdrc-q$-e$jOJn^nVfgUP4>N1y2#a$xFXDES&}KZ8(FaBSoJ2 zNY7<UDUKX<&G%#V$qpeqeus`R6*xMyl(&Pcj@}tEKj+G>W+Q-OKSK-o*hbE0{8=MJ zXJG@!5nH^L9lYvk0k43wD>|NACO+%T)<NCnYLN`zKk+HCnZah`1MbuSEx;MS2!w-o zA+<R2fxkUt4Q-UUpyXJ#wRdDl2|uU=$I!8&XV2qG5Ue8SVKW{9YH>X5LgoDr@_*{< z%mo}YXUbA%8q~rOhI&PX_3IN8`~eCCR7=OVhU<B_mT#YW{KU)dV;m&f4xXH(+Owny zd`=CzzVus_zM%gbc1D!$G3(6t!yJwysBuyl2?F_KDuNf|E5Rm2;+gQ&h$D9kbP|xL zFjBG?XYhT_<{t#<>b$+P&Dm_y+%DLsK<}r^@yO(3gl`2plg_8`)@%2~H)PZ?`$61~ zVYAn{ETueeDF#)yOYJ$)aYqeabMuK7fAV69A?;YoJQ5*%dPyl^D`AAb1LtLxKr~1N z#DsSP=*9u#3P*gW_A-r023-IAEdKA6bvtY)>C{5$mS1WA3P<763nmKo0AwBzk7(9y zpG92M)(B^Zdpk6<?`_4}IU0_8X1uP_D))8(e>|+`qjQjZwWTQ~qjx_<U;OB6;Y@o? z=%(yfZ03O=&&Gfm*sSOJdFLg7Z(TZ0Q~HbjIcG??IeXSBEt^NrDPH9)u8tQ0^+wj9 z%gC0JeE)TeXB82{-MM1?iDXIt*#5TgU=zk;N=4VaUQDF_sHB~?%bnv?V#_|SHlL`T z@D4HOO3mGcKMxqV37qUD0%zAhn8CKIKxVDQ9jmU(ClK&iRh*3z8-P@=k`}CR<R;ez z$N$Veo;1e6Xw8}RyE!=}q~uiCn*=-KSQSHeC`mow^^d9qH%&WjyRbk_*OPJ${<{Rs z$hni2A5%~D9_#5bc-hK{TL#FflHk%~WkY~|_x1Pi)FGYs^KfVGRL{yMJWHC@u&_C7 zQVk%kGvh{CgZfPc_<poz(G&lXnrB*|KDTq=s7`jw;UG}1d@zT%@i#-&b27o?{dQRv zX6;r)%^YkxE}?}4#ge=uR}#kpHvc85Y^~4s-HO3SPfr8?cLHg$>wS330VWZ7QvleF z05hE|HQeZg+%boLL7#NB01yF;bM&9uIXd%XgxYFM)Nsl~wi7xkXmj-zB7yF|M$p~Q zf_C>VHQl^N4TGBdWUKQBN(GJO^m|&U?I`}7+SaaiZ_*rQi>RA+KCrJeK{oV7|J#dH zQhDjG2R?vpPENJXXEl~Amx=W-CL!25^ESiAl>7l8Gw+u34`XYizTcb=00*q4?dj9f zaSUVlyz#GVIm@4HrE0>5cRo6nW?LQt$QQTo!dZtG1G_ktsSI2qUM$@9Jz!6(q|`B? zVE|n?V8n97_v#N9CZ6~w6UbyKV9iCxgY!rUS16G%vP`rr0x%D#hqTtf55o+#Jz5;Q z!4IH>iV*gWso(=)h__ZCP_I4%pkp+El{#ZGDBmq`#U?82u#*G>NB(j-F)2~?NbhG6 zHD{{o3^>3P3~()+%!SfF=l1>a_^bbugG~5+%3t~Y=?^VKqgJ+<4jIW5;|da{{Fu|3 z(w{o?%(A@(JvFmVTAoJ}KpNh)467g1)OZVeaE$~syRhphMBnB?4@n}#pFEUCXvlyT z-ryCY=_u(&+*G|To+)zFBIc6~Tq3B@q!_s3LK6^fTyj{-SfpEZ(77%kpr?7dcqd@` zKWENf(w6U*)@|Pxe84#O)2801Cjsnz#~Cbduuo1K11dj78+8N|LU<v;m*7Qk<Z$3t zev_}@u;*6tGwr_%2Hf?D7}c}H#Xmi_LWYahaEpIk7_1)i1doDmO)=DZU&K{G(^aqu z-c}D!h5Rr0+Q#%ZZjoKHpQE{uXV7A%keYaLQ|s=^$w4-SI*yz3+m|3cI=>Mol?6!j ziDm_vhM3z#nAEyJRRZ*FB8E$+_$?LMbt#<c(<eldWw*=wn;5KiNhzNx$7GBK)??{y zC}EOpB$b`pNRk9O2E%#V(^Gt2|H%Bd)DodrtFHJv<N8Yc=4?li#_4D`xHA6o9W#*A z$BHZ6{kxLL>r;H%R)?s^SAeXeq~QqlOQh0YOFPuUEBa;=kC%>#!V;ieA(2DP`snar zT^J+{8WrdhF;c6hLNiqe7evC<bDX6VY@&<0(Y%2mj&dX&016}oJMC};?VN1Rv4l91 z$e?0b?RZ0I0$c&wvaZN&o`XOwYVXsQn(sm{9%uFwpdKi<<2=Ox_Fi2WV7bs{hj>oL zTIjQ3faXd_wu;O!OSUo=o0H|b@$5C<lY2S$*;Ts<^*$2tfZSJ^v1N&1kh;dj1lA7B zW~4_9c6mnt#-hmOi#=FuJ0RAtcT+g{1Aj9}*Mi<KN|TE6O)pLBM-DOm+)CWx-ZHjH z^FIXL{x)f`!O-a$;)F3{ooW@G?hbBQI?;AxY00W<)|Z(H%9@||0bwiP(G^9*CTbRq zp4WA4j<vK1OsQ+%xX(x+XcVr?%GpxheYhFQ&OIr5;HHT)@;38cTwSw!0#bu?-AlaP zq1iWaMTHI0h_by@mX<TJY(N)){Tz_5fz5?h@-W+*!9fAvS39_ikKi95PPrVx754^t zCp>b%<uL$W7+qt>5eEs}mVhbMgao5w!iKn~yU+Tao?c-l+nH|~j|;tv<`-FqOd4So z_oagev%Rz9aL?<$NYTTD{OCy&$p^RZLYfs_Rm1nJY8~qeO(ZLS9wMTwbofVrt8$hr z>7p-}!*B5M0QE!o;`;zKf|g8u{%AR%IveYL^z7>qGBha_efT7EsDsvYxo|NvvN=Y= zkt?!gu9@V#F1EeqPbMmEGdVuiAr$oD_@JnQJd@m*`n)``$x<(e-_07s5DSVDWF17c z%N>%2w9`HnAw!dJyB)&cy2aZrYVVCFFSEU7q4WALu1Ob_<W?|WZ`0gH+mCzL$|~3# zE!RzZ@$r&z%)dzCy;_f68*AbMEQ82NiLiJelwfbOgA2;Jk2%wthbMV#G7gt-93zC@ z%^SX4zopc5zWGJ1!z#j~c7!MU+Qmm2!NQE8rnD;_a+<ZiP^Kw!EZ>>xrwtz$ZeQl= zYo4dYttr$+lGHf0Tl+_)Xts7JyWV9FIxj1*#Ew=KY2K6oqyTSa+sDkuPKj_@0!2QR zI4ELJENcmX1PT=>X9&=&Eg5go8&Sprket$DdPcxI#tP>nO{OQ|87bNq$1f9jKa91e z{)(2#!K~u?)!QfD$9lE7zo0Ow-05%a9#w(lVVceG?fO}kkCBM@^^Ys6k|vROPP}u? zbTs}MKsy1(Hq=i1*J_T%hhFktAgRxxv3REFF98OYoZU*K^zHkfes=ipi>7V`{g@aO zmFI(gqjR<t<^@X#YjpnXt$~(A@CngOpvM6LJ1O9pzUSQ2U*9f?d&vQq+hi|NU!Xps z{S7O<T_L>OfylT5|3Nei&}io77ghJ>K>^XFc^rR-xvp*xLK5=gj_k?USMg}un?XEN zr>`eH3fxfad!Ck~KVINAl*bwx<`G^V-v&7PaFjFCFrmf(YtttVaok^d-v4V2ZMPj~ zyQZd}uVZ!D1+dId<&i+amsLaiqK26SVJn}O;C#~F4piZz>_4p|D5FS9TbVb$(vjO& z$Fd!xxtuG2VHA8U0?jzCGwGl=4E1xoeIfjLE?h(fn2v|-5OmQMqZOjU)XY)DSLk<e z-UsY0U~=CRj&Z!%E5oiYm!MJyY3;#zalO=Yr{_552_nc9m&YSfKRj{R<yrtd2I|ax zMeWgu9fLUrODR2iKi*KE;lIpvrFn4<?$z8m%T{i&DKkBaE?SvJ$V0L~fJ&fy?BH6Q z1=>F!a-_K-Kktt#`3%c2Q)Z9r*=0&h*89VT+RW8U`ukaz3fZs+gM_1;!RE9W%H9xs zvu`qZCQn~ad1SaDXUzhw<ff6U!1~u?PQBAySGSu^t%@u~kQ#{UXU<R1(7)+RPB78; zB&kveS0tUK>CmFskK*dm7Y@Xctk=bcCZV+d-P0pqxJz9S$L0<a2D3o;h@i;!nvXcI zi!?m9zSbaEF@cwnSKB32dEh1?+))ND2<P7Ae9IfNP#)vuAQTIMSyM1eRy!gItxYme zjcZE=&bJY;MNOoQCE1Y@lGzP6Iz1oZ5IKn)RLYM=SrJ|lYPI^onhs^j)`~qm?CLPQ zHWl?E8$Vt>PZBcZ4r$8A7rbp(V^6sV4cj-5KV^zf*)p^!UD+IIP<SSidso=lDjpQ7 zjL(ldNYlafynz+ILGFu6T#Y-Zd_l5hq@KxRe<qvMZfz)UZwzu{tIfB#IRKr11M*H6 z2<Apbw=Iboos%Ay<$3Jw?OV(-6MNZAX2J&#;9vphCw&co>eV`^=g;AFAJpGHkq!Na zhJNzc1gNfySKX`4m$^9_S+wwG3Buv=P$dX|shJ&jO)1Fgp;lxSk!+YCfL~ovNhA?} zh<r;6<iebMHJE@;huUpEaK1w_?jO}rW%$LVXe{v--WW-rSss~;qtZxp4g}U`Dihp7 z+ZSkx<b6Hd94^;Yn0cAusp;R)q(og^9^Tns`!npL?xm5q_l~@(ga}@G@0?93HhP%5 zeai9G{|5hYM3f8~`mfVv!Dl9vK^EjBi6jR-f?I!57A@8i_rWoQERX>NwLK|5bg3h) zFn&IStMS}~o~Byf=4^BQ$&Cd`+#Dfcv5IE*l4CE-M!AE6j^@sLF*kUii?)9(^RTs@ zo8$EXXgA9IKY_Jg3BUJ2J2Y`as#F-Bi~qJmXz0UiT5NEs#%mdRGv%$rpKsjBU`rCy zNK{Z>_Lz&8*y`$b(ikkZXDb;s&M!wPIqM+qw6t5A>z#w)fe)`6u1;CDQ&8f^?uu@_ zr8&rqfi>-|P;B3{%zQPwCz^HP{bV}j-503;TX)lgH%*+G$Kk_2jcEWW*;E7co>aB0 zoGcaGW2f=81H*o>li@-iiHL`NcU+pjioa0m>hW7Bue5vQ8=M@XR=D91MI4WW^@Y~r zh<v!tI(?pimyTQflkfLnT2Sy=0&&lCxPez(!!Z_HX3X@+bm$Kx#jip6U6w!P=ka47 ze&8RE))!P~u$9N$PjK`2GhJf0aumcSDe$&_vVNWXVNtV-NSKCDk;}elx4;*&uT%Hb zE*wqo@22gxo6%3v@Dd2&_xzT;ltlE-KOG`&SwAX);kldSBacgva72sy*-ytgzK}b3 z(c{GZF_$-<y-O~jRvp?kG0gt;kZN3Tp+j1GwVT-d(4^k7-5YN0ltW$eUCRRaZH!%T zh{xfFFGS4$CWR8du_I88XjAtO-DpbDr71D{H;6g%?+J=FeZF{jW3bnj7=mL<6V~!| zWNlqXspxU^J(8Ct@w#DO4GTthfYY>~)zm=5h<?HKqs77n=U9);KGJnB_8yxA%sr++ z7ePpdMz-#y7nwx>KGDwIJOAL^y&(vZ>}AtrSPj2ax{r0w|ML7d96qrs$T;B9L$wBN zUTm!|@-P;$5*)k7{M0Y#I3zsl#KS)EnM*lJW!j<3NAeLPIlr>maK!c#uPn$Xb*TJg zELOlWTa84&q;{R2lF~j_bB?{6Y<kudx5Q1^dh$zpd^~>gZEPxV(GcVsaM}PTlNX`x zG<&2@cUChwHCbgUU!?=qViGcP=&d`!cH~bT$-T6rp)VsOjN4I|8eIlan*PN(JGq+- zYL)gy_Z{zrubXscR9*c0_nTd@pdSUdOO8@aCkq}AVz&B@I-%D@_4{L??b~+=*9n3G zLF0kXJIWl-BOn0%tu0?;+5h$2p%jwqivOzcMUnx?Vq5Mx=s(zf2;qjh7)gaFI6qw9 zhIa3S(hOkQgm8Vr#$Gh0VITh<ZN|xWYlWpsY=$>ZtZJDi!p3%AT3s(1(xQ^-qj)_^ zg*>)~t9L+`6+@qEz?BG23AJYl7<FNuKpvr!rkq~jdVrHhb6nIW>KVd`vcH(CMi5X= z6?6~K={-rRZWyie<1J2PuhyQdq7!KQ7)^^WG7g5?0xW4n4>XF9;thlB%LVXfY9&Wn z<8TOfPQ~7`ivLM4M&+us%~Gk^vs`;))ev7=NgD!^Rc&HPh4^70fig9~no<}iD0O(< zYG{)!Df_f~)@ac^O;pNi#@#y<;%gveuo)3hav0r@QnF}EV3aA=RNvlk3^A0RH+hz5 zwGuo8s)&?`0lx?`KnI~m0Hf2~>55s5#ei-t0dXm1>ZGx`$>W^gHR+mxd!#^~pHM;| zg)>V#M{h$L6ku8Y!!12V($%l_;({auvAsUwo!*|7iJeFrq-o|gVzYjR=>~`(ZLGAH zr_CZHCf=G~fP!5`ozF7xga5cMKh|=p`J)pz6P_Op*YMUPPAjq1q){*+!^;{=-fJ1R z&nQP0vh-#%qEgdsu^MiYKX|QscIYFo*iOqJ{=Uviz(%Y9T?#*}AFuDfT9z4kQ3Id7 zCDrPTgELJhbh?J8-L}t!Xg&vrXdAxb5(2UB4z3{cnt!hT-(;Clrb6?TaPd6+Wf8Z* zm!s1*;UzGq#c?Z*C+bN_N=yTOmpz39ap%Ik&GAG-!yGsy0qUQIcHoiG^Ij019^v5P z(Cu~iB$X$wzn<IHHeLXmR>*zQ>aZu20Q|g$(J<d5Td%a*{xLqz4s?#ATLn<EUvdA+ z$tvsWQ#P<3up+ox1GC>q_!!27YkWrgyIrFmUc4hK*Hi$HKkWvti^imANeh_w;)oUT zB;?tddqbKDuXw82D+5SoFp-f((cycHJLE|Ye&Mr!zW5Etj86vK96WZ&<uU;tb9k*C z#~jAORs!Y~__IDejPImZCT*5V?Vc4+fG0_MEsjHBPB+LY(7R}LnagVwgUrPz-~e~z z0<ier+u%w9Hn-!DQVm!06ec63)E=j@Uc~oc{35+Pd5c71^RCtsm<ARMbonZW<%NS0 zU?3(v!XcVh-l%k7Ic!DIWvEU6<S@VD@mz4R46RMoCvVI=Y3g`=N~C#C`-mcH^@<%- zC}jvY2>eWkcF0l5_!@}Nk8V$eDG!O@i%HQIB--u-0xHx%SYtqk$>yeEY{STsYDjjS zid|Ke14Urkvr$md@?+w*$xw$6y?$R8FDzl(@*~jYX@}?M0g7Km&6Nlvz-L2k79Ze< ztCu9s3)xw*mxtbN-Rs-Y5+Zs=6)&qWmNnhsoY=YebOv7=fmtzBgCBIO(};{4McubY zhM`e-H>8vyGh3~f+F3M<Y#7>%0n(g0h)d<TLtt(zZ`B~zFqo;mzFxJA1%V|>8_;aT zb3^N1ZK>P`Nx%OrJq(XPDfrB3hs_7Lu%-YFP<mb(b`S%qr{A3(9uH;_ou`<Tb5MM! zXYSmh(9H%aCOj$}Y60knEw*066fuE5UzWo%|C6O{+aiaDMkXnntQ5;aE^a3b{WK`F zk6E%%VMc&KqndI@6`qyMJH4Blk?twQ`n?1+UN0($$j~FWKJ8yvOVqW9E2q?g%X6qd zbzshAfEQaLi#MT_1Q7kPk{)iGign3Z6ep45LqwvfQWQ#`!=%M%;$q32OKeD#Nf1;a zDcppV5=|0S-!$!>x3@DiYl<na2N1PwZKEN$mNeix$3SS&jqKc3o{0fX%g!R$^*zW> zYMco4Bm~zDtdYoa>af<px@?^|Rm53A=DQl01x1ikB|?s9ZOw?Rub4wdosi~2t?XZ} zs`^o6+zeK*G4|qsVECh1cxuLfe9+6Y5w9MOsc!Q9(VjJ5=$C5X$J;~{1*$X$p{$){ zKA!FQbn(g`6f57?T<fcM!ajaOA0r|nhKSu7t@awq`QdJ$U2DS}Yk(iKc3bOdgBd4H z7n<{#FavI;kHz~!u%J-mHUYY+x#P4pr2)(d4ykgWcWCBnur{S0j5b=ng`tH6uGZV( zl}}z}_eofB<$MNq>N9d<rbXv+!^)z*(DC~Qp(uZKqXq{fT7gCT&>h_Wk<aL|l$f_P z456sMU$n)a05MvVvv=Dx-w~C~w6k~vZV!r4X|BoE^uf!c9l$LjM@F9#D=3klAnBS# z`Knr_DpPal#!OwkQq!?DjUvY3UqHU-7lAeO6pld6sQCV=#z_+{Y)g&mGi;U-_j5Jn zOgbP$kA3*T)<n2&<?$in{KSHz!+Xqq=o|AixtJsG7(0pB>%utnJHVzeP)beJb+11$ z^SmlGD|__y-Lh~}?v48@fg)@j7@nH0-u=K2d%Hu}*jQAI+yh@f+!;FxZQlvwnj!DZ zx37WWj$72#DRHkTBT8M>AXiQMy7qx+8p&Dzqmsjx44&SGQCSyJ$BxPPb7&l4r)70_ zC7!W5c>nC~8hBaInS;bt^*=i*oD)qw2}nJ0%bdEALrj8lgu>HyOm5m&HT6Urb$Z$W zSEs<xh{FdT|4Et3z$wbJ*+vk6m*h*OG9>{sq+xNp_Q-kT_R;s6t|e(Ie#fSbQM(hd z(}=;MAs8CDL6WYPEd-R*?qf}0*wg|n$LoXQ*y((w6x(hoRGW%TbjHbKHl^1M`LFL2 zx5~~|YM{)2%6F!`>p`!vhb<kZ!I`s{?mqe8bM0Bi2ydQMmVcq}?jrwlS3UJ5k+{kQ zo_G9pW&Z(N7sVYd?JGsPVZ!`^lEuD3HN%OtOC+Mj;rMJJjTBG1KCXJka}z!?@kZFS zc;<ax$u!c{Vl5bmjS4S1?gPIA3hlYG`}D71LPV(R-o2_(62YdKOWn0tiw?t3&k7Ii zG1UFpa@AH<d|hS60`Rki9HGe2#0F5Vtvb5nUkCwE0t*bVI$))xoP61Ib72vk=?T&- zEp1?I%wDwNIl(ZLi#g6BT|L@DC_|S~4A`~_&A&uxMw!)%A4;tqh7Lu5V@oDGG&1_m zB9Ls?t(m#4P>$~#3)fD}(JUJ7Gj{SHXk{r_n)|*lz&PqZ`3Z{R&XAy>eIlr6A^4;8 z>p?~)<<S#EQkAsilq2Y1?Qq4tLL*PIQos$}1Dps#lMs|CBjSW#1RUUfV1s>rKF2Lv zR~fUSNW=)7O7MTBmw$>5&BJ{{(fq-_qvQWTt4hHN>wRCq3rSalnIPgi1WO05_KA3k zS5%j`bkR_s;<c_m_h9eW@@$pYZSb%B9RYr@4>-`qJm=^c(_9KULe^W~H@tMH&N;#i zqYN8_I!&^UJA-49DRA~q0$m!qD@Fq7kbsAVge)M!6}%;vfHiav5Ff-$L@4aUl|B*9 zP7J*%FKK^V>c;qw)md_>PYK<Z&U~u@nzazvpd7>ivQGcFYBB8GVS-~?$_?m9b)2mQ zBy-h*NiRDt)}#h^qGfWhwq2*IVsjzkMF*}!p{XBp>Z?Xd)Ph<~r3FbVeipZHrsGA} zHkW&564exv8%zVV@-JfL77MS3r0H@$Go%Eus$wZd4okN9isnEFdW6Cbrx?vYfEvnB zlbF=twPvn|x*#lp?necxV#_2mibuaDiE^#qjvd<&{9u3L_apS-p-Ri%C=1sN5hR0n zJqs-wT#U{zDsk8t{9hm)dj#Z;2~EF5=R-BWa~<v4s+n6h6R9<AgmRfBW5;F3b&Q&g zkbL#7QQ)ZsV#}$tN~)*`wrjoz>lAm;MF$t-Y?)621=`?zc*YdCa5_IPTopYj0q&ga zHV}?~STe9Y@9GnlFP?+65=-Ek+_JE^k}YmwvKd>?BsIE#Al1Vns>h4olC$XFG;)Cs zNm&zxA*s?H9$Xwb7EwwTQlrahr-|UGb~2UKkF8Uf@_{yUmEukgpZ`J0dCXzk=Vu%$ zcxI#~tMU1(vtL{=<rUn%N&(g^D{e?J)S)#dvgiC7O}TB&8oUu#Z)lMW6tD3Cv`uHT zvE&nP<}bw7EzX1)y4TRNsKOJ2)5{!xyAsf`CaT0Y{}!=`3H3JrU1B(P=Ar;4Iq@+} zp|Gdh>2&)IhJODr>*_je>%o!zr=4XOx;n8gnc=%^D@>!6cpG?N>`MF6O4U+;y|DVk zbC-W7XohnM+6kMVtOTeX6I!$F<9uIg>o$B=wADFLQepM9&4s1#hxT1P##@a-Pku3| zQP4570Brtdh*d~+YX}KiwNv-5HA8ZH=n$cZRFT(d(M8KY4$E{Vk9Rx&DH4S>O8mRw z;pR;sHd~3bjZO9im$^<ToIiNs`1s$^sv>xbj=c{{48E=EG2hdtaP5HE4?%ghsw=?1 zH6H*0j4?$~H%6{N`M9}$ioN4xzrz02j>2K`IkK169p^#T@SFI21~-hPFd!v2+mSta z7OF(drp3f{1@F!sqc&W9FUvoV=5KoZqLj>jm7zVLbM?>jCQT^LvS2}vAKr}(Gg!0H zPYutk8E0Ocqw;EHCb)IxOD(lIS;K@Te_h&RvP?zO@p&vk91kP$#&oJJFaND&lbQNa z`0Ni#;kHL?pCbSCPsQW65}BErYUaVZ$Dh0qG~)sOtN2ag=hP~b=9%`7_#;G?VBvAT zMM5CN8p>+_itAT|baHvN%ta|X2<Ti`549Us|AUzl@5LpMy6{<2M6OUkaMySu#I)$} zGfW0R$D<>0#eow5HvrCQ+yAkhlH=r3dDno&%&=PBAaepC)pP6c9L;r>SA86j4svFA zh1dw;>CdSTp2B{E{YDJG39xD9(d@U%(u5WHZm$JdGuX`$^qK@c-iH-2mmJ|M!t_a9 z3r4Eut@8vPGpOLc+R#Jy;}+DCnH&HW;Xh%P-ZZYAL;f|xq1Mt_-r#0(k!r%`6u**} zB=nYU!nf}5wlJ)fUbla%BzLf)m18%M#@YOIe0qI=kj0*uTLz0K!TMGDkOGdkp1S<f zHg%&P^R4lMC{E?@2M9~=UpfmAlPzc2F{EmEk8Lh=0B~ap?>B3-L^K<gHFnRVpR0~v ztTqs2jORDoSPwNnCJ7PQ?buoK*w}rqA2ptBf<|$h%eJ90h}wO>hQadpdfG9yTbrwQ zhuK)c)iH-WUnASmr=RkEGHSVaq;aS|6t$snYK&N@>>AR`tlG6M4}Y)svgke&xR4SN z@q0a5j92&$b=QUFs%oHRvHj9BRU}qTBa~g$jtU?gZo4s<yleWm9);?Dy#$>GGX5O5 zCv&H;hZ=#v1(%J>A0NUIRMA*|_wMAtD6dHc3q4Ba^lQ{{5#`ls;4~q>Nrd$%Wlvqh z{rgipz8>)NmicalQ}$?gooDz=-L1*WS+Qq%<>u-%5=5Y23{4s+gb9rCge0K0AZ<$; z<TXgF`CrI^BAmk+J}0wyJ0T5;oTdmA%)7wBGdDP(5T3nBM1}Jrh=_{M3j*p70VoIT z1_~%r;5Uhc<An&C5HIbkbUi>w2Z+-JwcC1K@W#9w-iIk~5}b!hgvfFpo+6M?1%tRC z|3ielUmr~H65(g)>@I^y8b3!UQLr!|s4Xz|!a-Z~eY+6;>}8o0Feg#mM_xLF9N-d| zxP=5Z3zSL=*s2QbkLNEFInSO#!u$^@7gd=Z26-hIdCB4ZaAMSdi3Ok+pg#~FVc$pV zAe*$QkFE&@1YsT*cwR!pM`+aStDT)?%jmqZqh^<B3CVzd(<&;GUn4;O=_K5QkjpCF zxtvR?GU2F{Bs<$H?MHwHK}RBT7HIEJYN=7kXJzgtwM52kbd-rdUv6y`ME)1o4J&UY z=pfzF2d1^_6c{ZeR^CON3&ok0zjttwwaW;GfeGpLSXW3A^cUBKoGwurIf&9TAYlSF z3pDuZ@C||nCSd0B(?B>3TqUlYpi9CqcLj$5^G5Vog-?HQ01U$w33`o$tKiBU0Q)ll zFc}u)H1^fSch*dfq%M_J4fdf}dtbb+iX4!8XovZ$K9QE=btn6Hoh0nmfQ8+s?bOO5 zSw?xeiv&IQ^xW0*LJH0p3bwA^(nK5O;tP?=s{N3?)KCz4<3)CT?oS0moWs7ToqSNb zonn>qpoO4cRejUh3iPWtZ#8eLl5L=Vda?mT(|u>M`!aj^?LRLkA|M1}UvZNA3+wLr zPyCn}p<h?oQ|9XYOY!FM6T`nN8w?%hUkJgRsXj0GxbLA{G^bV~p{91Y9_}^u^5nfC zSMJt*aw#=6z`f+WP(Y#@`P+4n3Egd6MXv~6jr=Xf6GEl-wRZfuwDJRMNk~QHfz5gK za$*o5PK@jC_5n_%B0>QnVBrBQdsM`Z0aS%LzO$0}EU3aUVhK6QW7wx@=XF>;nE+f> z(BI#gooe43HS2<ezheTNYDA2d{#OY($sU0J5+bxviMqd^c@2JvT%|(QUwR=6|AjLn z;}IG83s3&G=gi@;@oi#c{=3pd8T_{;npQmsgq4OSa~oW`_chUaoSY$I>yz5Du0%6; zqyw?JI3_uL5)pj#aSZ4Q(c)rG$`m(3-!7DHEHCNFfi4TBTO3VXdkC?0;R6<Z0g1$s z@5gX`t&1rwwxovcpciQY*ZWl5*_<>A!BJ4kO)j56YCK^7`1d`Q`-A#0JtUjszqo6l zkzJLpmpItiBjPctDUJo)C=lk^bBQ}kkB7m@ddqK8<zVF)4N3Q3wJs>S!0i&D;BI>L zfHtG>-?jfz48YE_R^@4kH!H7!effD`ImEYoY)qRtslkL6Eg!<?yQ%r5?dfLImFTH? zqk2E;&<2I!d5=>ZQ)*WU)h#JTBofccg|tb=yb@*SF2#(G36Vtyzl15?C#VQs@vgu* zCF1GI-peu1>7f3&54Ds-0)U0-Q>@e*MnC7Mv6Gw%HGS6yq@-7<uCX%HJAd^Ihe?4# z-gWj!lZbJw9q&HzG@p{=r83}@?41J^tBcjryjwfO9>+CKi?9kvJY;XNe?T9rGzCAS zk7f(baV(pjCQ5x!xf@V@jS03YvSb3RTCNF}z!83vH#+T!=}i#$;i<89B}CsYar%nc zd|K;bwTLa=tJ(46id058J$vVXm6k)j^{HXGJgBM_QDrT2SjZ%H3>INgnox=kt*>2| z9q@M?Q2BLH?f4^XCc59cqxs|iPaBKDBVunWs`!jmM3j^XJakDzbC)o<$U|1#eMN-& za{tq3vQ@UPFtb4Hwi=_qu0EXqMBRPTz_7t;g~Ym6wdG$#L^Tdl0V4$y%?_E9(8lM? z^JS38P^>A^w13f#e89A)q(Ds>knv<O4m7>62-kDY)#C0%!^DajMmGvnWPUVb6o~BF zh+-mV>M_Knu2!nEFfYrSfpy~!z`<<X!QmXpFB2_2(+Yd6&rTqD32ZqH_6G#wcIaci ze7Dn5Qh76MHr#;{(x59_n3NiNjv7ypjPD%3L!*F<(S};=QU_>2ej^y6BEUv^R)1Uf z-DgS!h#FE_nR&No_S&^tfy)A(N^sdA-;146mAL(KM0m0ewAFQqrO5)I8`>?6S+(gR ztaw5l%PF9My888}KMox!C`JvA{KQ%3Jap>aCy#6D`unS=UeteD?o#deoBEVS3rU;| zGRU$%=|X6XX7qRcTMhIWP0Hv0Rd`Fjeqn|WMk~CC6d1R;za7Nbf<~pG0#1zxX`;>z z3{1Hg*jL1R7yd?I;Q@LGN6A}j{tbJJyyVd$mApW-Fp}dR+i?hYY?65^zCB5;;P8h= z+Ud#mZi$_jW4M?|2p_7x@_f+pD&dXdhb3j;_`L}NK2Xe(RjnNAGPfa)@#+FQF2oO~ z^f6ZmnP#SADf)UEWD2miTH$n~O|BjY^v6-gU*P(#rn>#qu1K75299)1(wnS+Z*CYE zJ30a3^HCt#d{6vgMqq?xY#CGpO)$2y;3g%j3eYIx!*g5TZ%C^{o__(7+H8ARK+g-q zl1DWfa45uv6Sf>+E&lp`b7?>AKhs6;eRIi67}VlZL|`Om<^r}|!X*iZ>Hl0cS<4ir zazF0^lO3Tnui*?WX8NX=i;}?pQWK(D>2D6&ARQ<MzLl}Vz@I=hJZXXs+f*b0bO3gE zrr$PCUx$vUi(h`9ajEFc{$Mj6au$0tjgh>WD=GyI^^LvLD@BQGf3<+7K%ChEQ7cTo zv|1MA#wH9?6hs1ad4P+Al=3h=B$ttSklM*7V<-Q<^cT%F18U1gqFWRCJ2P<h*Vn%? z&pDqFQguGu<SXxIk%EWRVH<UHbyP*n$KV2fiw?Qmq<A!VvdiXf{=B!v1?^<ruYc!| zP|xCH0>CM>r$od$>*!vlaysO!!|p@;iMN;+q3=4Wf9iNnS0ECnLIaKf48m~D)2Bb& z{v}R}N8pcD^zmLk`%d2Oen+>iIr}mk=kNCsrug-M(J>DTyu{~C&#IN_b=G>4bYqjH z)7h21rfAfCj=Q}3@7st}paJu=P;Xm({Gh|RfFvM7<o;F7sVGvUI^3-j;1on+P=wVX zL98iGBl<S|^9uzD(9O6*uOZOkz~fYO%6Iyb`M-`7L%k5&HEw@1Z}YM_rL2aflUIZI zD2++O_Y-z13pN!KCc`c7i)BHFZAli;@m=eXsIo4*+2%h|bQrO+esx2v>I-IW+)$|X z8y$4=8gMO2i>q)}+@#fHWmaidr*r2w6@O}VCZ9@YN{vsVl}@lc_UihWkyLBtI{e%! zLgcg}%eYH7nAoFf4^%B$u1D2dZj`noEbuOP%lVcb#je$;94>W<<-|t^wS;&%sKTK< zk18rk+gd&AmaMWQyl(X2Y<~5mF)rFL-GQ!TK~Y=SW+m+9HHnBA7aD(1qps2>0Xt$M zb~qel8;VqkCp8MBZ9V~r0-kNO9t#d>r~eIa&qLMd+=kHL#91S9U^F~*&bUx_J~}IS zNa;7AN&SI6cMNsm?M;2^@*XhS(|<jI>H_<9!pA>3)3tCFcIl#@3F2A+(*eD=b!@G= zi~}!ziy7<D!*lQ2NlTqckx^)nV(k)et4_oS4kF2rm^4;7=KU6<%0_z1z0fFhCP$Tx zmugPk7MwR^eP0}N-rLWWwROD3Cm{8K8#+~D-cO17b@8?J2q;xHzJC%E;+XeSV)!0B zMFu{QJaCE(d|-H>Q_Q1kSJ}LYBs7Ipz94iHy7toG323*RXq0k0yqXHbhYHSwXcEqN zp5n$*$;GY)C;5FLlVNhyHca5B2d#n00~bw~|3~U$tAZawOGDI(1wTe<1|V<B5aO#A z>W2+odZ;Cv#$T1$Z(8Vnoxivn{tJCeOu@Wj-MRms9<T}s3cw*C;trfQ2gL4e@aY6> zW&a2*#!gQG34J>nA9yr`Ym#~EqI52PVA4(E#w}YA_*5p>!|Dgg(4G4%^WA(N{9D0j zpWQ|~ZBL;9aBYk#a-l9N;`_4y%7}+%Rs0$0G?ZVjsi;tw4FhjC^X7RyTy9OiH_fE$ z;PSRZW$@Ah{!PGvE3m@|d^E``M2q^tW)!h$%=t>T6K3hyDBC??Hjz`9rA{?6M}8Y{ zie_NKetW_xK+?qR3A4b$EamWDg{xjI!hrvD-LeEtJ7&Lvv{+21FiU&FEC@Nq-PExc zWa@)c%{qP%$H;U|%z_+dLAs8zQJwbn$Oj)Q<b(Cd2Nv?F69<5W1GEXpcSEH;_)#*C zw#<@^N}b}y{JAaA)D4C(^idJ{r(fzcai`7)(1ZED{-doCAB%EI6jCNUEpn$Xxd8pj z($0;Z7=rUJiW!~*oqG{IO`FdN7!RL4`S-1BM(SlqeOnZ%uo?|NFHM0Z$|)fA6qxg| zH{pcQ`ss(kyz1~2HFrFPc3L3!MrW%AMzrojfZmTM-PcqWG0$+AnEjSsnl)smNrnq8 zTCwC0t$NV}f@e81!G?8Qiy5}-miK(%@yQWwRiTJ+o&F${Rcdjp@n9bkm1)X)u7ZWC zg7a=vop18U-RSJ0>Oi%T2Xu}&kNqIKIr%IpJt1{ZQI>fcS(yv1Sj+Bn!mwod>VVYr zHhZMuEhfdToTrO>IU{PpstF;*-W8QoJrI=bS++D8a2Z{Ku#kJ`U3_9mfPPyyMv$C- zs2dA}Fcf5l;T9aeUXpeG`#Ea51=SUdnN0t<-8UWG6M<a{bQ>-0p3W%Bl5ZXA##lTM zqEe4WsgPPLksz5n>+TANIUmKHhIv;u>{iw6j*U*!8n$PmD2dsOyhpENI19=x<hx`C zdD}Y%@gOclf&Nm|PQp(}=5^y<M&sUus7u)>ATSK~u!w5}re~<$VUol!(pA-(E$dV^ zALF8p4XJFV3#XCSRy|a3asSw7G!zdPhqJ_4OR<yWnwx;p)d+$Y4&w_3`szmi&a|WZ z$1QChHlvRKtS;};@SL-kVjdq<3wE#)-oLNu5WP<gbkTzb4d(XWop0!BIKc~3?H*4k z?D2Mt$Gt{ZrY{XKVG%KRoNqrVse8A2fp|fLiv$or788hguu25s_6(WFY=%wETv${D zxF6jJ_xU-XI}45nCU(T(2EO$SP!M)r@;Se&#wHjatJLMua3DxnQn)Y(#~@fi8rjG= zl#k6aK90s1IOF0j1(HM$tF`Fh8LD(+-6oyg<6`OCyP1?0a=b6&cY6op)BI~Ey`@S) z5<3TigzTN78EgeD)8yVWjR5^tZ&^?CH4nQH%+1<{x|z^ISrMK_plN{&SdCZK&_`(j z3>ewhTlg!*((c&7nITw22mh>P^YYtyKRf84dN{SsA^~_j`*hk|uvihtdx+y-+iCKn z$1w`Ou*L3{rxu2O`KBeD&QcYpEE2H!@OltLVmEl3i`thxwxlHy3=aa`!LY)o&g*h( z@jl;ridQtyfaWHp_29zg^Y~0A4_~@yU7$fkkrW;jZty`iEz&S@KtY;c-G{bMX(~sn z(Of+sGz>vV#4Yn~%$lFouAKH|VH@&mHa7L@FGj>0DRDO1OJ7fiV%F<hRdC26ldSa4 z*5>V2+TO_oL+$kOvNC&1_jY=V5$sI97}R1UMXSZ;S|OUl^IB*PgE=%xNDKry@XItf z8pPLf(1-88tic)1wcPoT%*6}kv0-*xGcrh8(!m94MBIYkR8q7iO#6iJ2t)Dp2(4_l zec8-vO<^=Sbb86cv@c+323N}U>wF0ZTpBrcNkh^MlA%T<c)zcb;?!clkI0W6c*72d zglb}n4@Jx%GkDMnSG6n2WCxLexOrtx`3Vjx@D|WCb;z)f2MO=9HTg+!TD<<aI18Gu z9!SCD!gr}$BT7jvmV^)S<00O6?DS;sgCz(NbIFo3dTezd+4sPweHwZ091mCtJbD+B zw1x}ep^rl(wg!`k?JfLaetOH?Vj>WD9<yC3rjWI6$w*~&Vq^!BfNQgDmBiogeK1Av zarGiW7_48D_|m||Q#VpENF^zGr>|?E;zu!q%;LJ08>^g^?(86<i%TkV!gsN*V447I ze)>WHSijrvHN&I(+^z-iixTKBU{)NCo6v?@O^Dkd42s*ee7!_I8bmxlv=qlEDc}YH z>G%J7q>mEg-UICQ%Rm!PuM}V5Vs*d(zTWbZV8uOd&x6sn>BadY7q{i(mqo~yjILNk zjQ9<{eZT(75kRq#VJrp?41i+?<`#~_gW-eSYC>4a_^RKgK7ZNa!I7>0h{r{(7z&Tm zInI5Q_nh*)CZyB^TxF~4kC*D!+Sh+h41K-CSRS;a3(LVDw`4R4bLXd(YjY1E>6WJs z*k%$GD@9=1el;ln#s$XSdxtfo$m#oytO`<>tnuY#*n@S;y2~t3hRiY<-RmH&+j*mq z9x3xgT&lp)mn=pCoX>;80|NUv$d+H%DpqMrz7u6l?@L2jLvf*qE9j#8x8$09qTe@# z0K-u+o%nF?l^ZGpmG107ax}(38>F9O?}DiU!1<Wi=@s`d)RKPY0-fr-e}4;+2#PTo zgpkPf2fYF6Kvg0_Q`b%G)k@?!X2Dw<I{J~P?Q2n`4*j)H7ND#FPJKa&zz}wCrY$&% zerhev?a{arUn;IxD7op-25^d8-so<&!m*pSzuf!L%t4J?(vk?81*hD>l4C5B5B+Ti zQ#;UZ9oU^bHG2w%A(`emPCux%WHmY7c(50Vi`u%GD`#^Xt=0-L2)?@6cz?n_)1k*6 z9{Y6~y1`2Yfg+qYFjdlQqdUH;&c2561w)Y!fq+5-RXMwANJ$(mQgc=7zIXa}lsj_- zMHN>_Qb#M+L5qEEXq}^keHG(<W+9K2yYp0|DzA82{_Ypdc1*MjpFcxgk66rv6zAXC zOIvQ5$?uVS9bskgu>RMn&pj~r`-51vqOV-a>GIz9|8@W0=6zyrfot2DJY3k}Ho!jf z{@Z-t`}1pI-CdsEoqkiG0d*BUbch{VZ2eT(rS9&+qMDk*1*Ibwl;$E5F!HC~cZ;(4 zsGB_%sd<2>dMlpv&}qr90i%o+kJok`8o~zi*tt#SegP1w&cTHJHcb533$R`qvjlZX zTkVtdoxFdY&<t+am(5d>n09SC&rK4#>U(5b(NYP(qi;A~Uudwc8Y>+d`@_v2{!J+q zHZEvJQ-=aUe_)cPbh@aN1b_7wxocsH=L|8ygoQxh-%L22$H>DO@e`*<>y4GI#v=yA z=HYsYQx;*A3f;ap5~ju)w=P>plL6V~Gk0_G)R%|BG)>2#r;6}?tc0nWm?AJ$5w$`T zo{Hg`f#UawE~xXXv-M<WZfGJf@izPlhG-DUPlb3c$6?b+SUC=pq^m`ErRMBC^l6BQ zDnJg=M27b3t16Pp^0mbiVA*n`uLusD^#Jh4HSDYz56M#(9O1D3?D3#8h+v^+d_e;7 zrM=;q@m}fy`v}U)h3+huj%<aT#+}Y_759hHv^v0rJ^}fZ*)cb#4>&%%JBj$z15Wh0 zBa7nur{98BNSoj{<pEY=uJFqPYyj9g8jt&T(>=oe|3uWEt~0sh?HA^5^V@mDjts1* z#9--okN@O_Tm1VCJ%xKSc<DcrPq!D?(?1Rswk}TTUx0a56)YO508v1$zb?n#dR3LL z)!3`rTlWmqw~%2%NU(!^LX4ggZJt9dpr8L=Kv(nu_o;RT^#bA$=gBiw5?kv-Z?4oD zuZ5fD3BZ<cyTsP>TkQuOP@v_L2;)g~!X2z4la2tN*N8{>deQS2U+EUOm*2PlC^{qo zY}p?!%qL+w8`v2d49&iZ9u7Lj3!4Yt8#L?QrwDLLf6pzziFyPukn@Uuzi6{Wz>KHk z-rfAZ$f4|9)-QfN>vQ;F5uXg8y9Xj8u;4Ir+(cRu_KiFxnf&<O1L5auLv3oYv32nT zV{-*eRoOYL_2c=lAvBwvm3z30OSxOJBLFK81>7%S@AG!-5pe26Vo$ub&S8SjJzV-; z`LlLHx^JbR*{F-4{*x*Xb1}9Oh#T*<CaUwFW{Wksq4ysd$j}6BO>J;L%6n&voU91T z=t|`UgewMbp_9kmE<Jo|xW7CZWuz7o8<9{W;7Xn=PefP})M&l2r!lxMh`41;pu`nk zd*raK2mQOq*h)N4N-Ka@LC0;jLf~tK`c$qfMdx?VtN+^znr;Pl9`;1TPtiUzf=!W` z!L!asDsddvJD-w~JmVVSLpZ*0ZdO1Ar~^`3d7XHJx@6vj2Sb0{Fr73oLJn9`VknhL zPAMGs5)k+C?RHgMV52kDW!zvjO~-1HL&EDB2~PM>+L1^4dZ~=Wx`KR{?UmL-jI=Bo zwU0yi?$|5=(4xSh4~0<VSHr<mj`lbKW>+y#A8TbLV>Q4&`&~N67K(_qlH0yHDRK4U z-Euj+=m}{k+A#L4CWTV`a)3ag8gpcU`JL)nONULZ2#BW#39mxRQs)Fa!70DfR_9ES zk(}oNVlxo|f1p3%t1&O`kOV$20G0gpan+Kt8S(~>iHT$zADhl1+tDWaAny8*tubwk zCgGs2sRh36@;knXj)1!Ixs*u)zR(e>K%PhEp%tsL$dTG)ur8OQtF6iUe&><^$q!Be zD2bxPtakdv_A|i5pBFaKsscjDX)n+ZxZ(IqZtFa=Jy6b$Eu1u!xGlqOccq8^W*11V zt#h@?q5F`@1kAYT)We)l%k`5@XTPYk*;dkT%(};rxT$rk9Wg5uJ?lu}Y8*Hj?S;ln z->GXu;(CPtHpTt4%#0ayyxDa7mR6fHM)PZ^14Z@cj&-$yNO{hWnl~H9#C;a|2w8Y- z{^o@A;3F;nd9LF3k9y0v(5XLqtf^u|q_7o*^4ERUd}k>sh9f;8MR_|6-AL9*Da$E= zMJ)?Z`8UBslj*IN0@)qd8JPyJyf*{jwXH(jxDRQXd31-tluLMT@-O*GNC8vIZ^S;u zd**QCYu*Tsk*t&Z0u50;6v*^{ZN>16zO?1mrqT4;UslfTr%HyUjoG|4`R8mU4fL|T zq*u0Mf!IlNoWyrYJ21D=TmEAytl)m(D6-Z-Tq|N*jr`0ht_LqQYGBl5CFw&on-AM0 zpS*ez;}Z;^wP4)Jb{tP8BxWOB3P;%2p9)K9{j-t2-mT&sZ6TSSU63q^?Ap#}ZBv+i zZig31I_tXm)<`o=axfu3ml5CG=yXY~Cg-Laj-i5UCjo2UD*9%>t^LbXNB5YA*kkE~ z-$=0VJYbg(w$xJdj}vppneBdUZH8VxyWdo>OFcBeoSnX9^r?~|NkfJ{@^n@oqG2z* z$KMt^j@2b;FSi5dSz5$cCI}jyJq=TBld6B@f<GbFGr}>`YXe==U++;PRERWf0f3oQ zPmspF!b&6uLkGg@N<&^UI<4acM{{-`*QGMxUgPkT+!@j@x8Hem_E97ea?E<&FZZaC z$ER8dxX?>Ox=!}c=Ynbw8xkT^ei7EK!rB4o^vGb`L?e?U;Pkd#<w@!X!Ob5YsG<%- z+Di;+P!`D=C5VNQhMzN~32S6gq@GqywI7G+`x?z{qb*fbJzF;t_6+b+-s*a*!W$W3 z$F><bgDv+$s&O7>M-;>!*ywOetM6N%nN%q<s-Mc_aJ{qw8A>vMAhoUL>9ztgffxF; z!W^#|yc46!ezX^ELg}dp9?ij;@u2;ffO@D1WZ=)c&*_%<^KHp@IC7Q5H+?X2s?0?k z`O+h<9@Hf49F#k5+<m#nY<*Ky9zy4z7A+Mvj+BG~QHDlB<f$g?1w2&ETm>w4#`#X9 z;A+A_$)>BB2|S_Cx_Ekb^ck6#&}UkjeJZZf3UX(`!iYZZB;TTy(@HAkeEzh<=rt`X z!a=#1n?uGNVPP!@CAr^-v|Ot*P)V1`O4V(i9j%@tUD3v=bSGazEYW$|zi5{H?Dk>J z#!bk?KpCAdGLsXAiD|<8FXT^RGf8Zb{H4SjAMTn!^;BwZ;SQ;U+Fa?OW4U+Z=9rd% z%+X<Ge?@Vw*HAX^>c)8{&d$<#%azOD-ne?xn7ck;g|0~b!n+TwTEkf-D5l9GQetVb zvt+t>Z!gTmIJ-@Zdpe1Y^#v}3MaG$WHWK@7-rYd|^6mj|V#dW{>Y45*O_yi*3eN~7 zc`sr~pV$tN+;|e0{gk*@Ww9886FAOR)1Hx>2SSK?yhCqA`b?3b!mJ13n|dB1y=q|^ zEL-&1pr6KhN%x_M4wcw3SQn;L4-z@GjNokwZMMbBZ;`i7!{SIoLK${ei}e?hn0)?8 z3HXJYTP*Q^7+A<f=fv{%0$_RXh0SvIx{E>k{OLYys7@FZ8WD6#SP%)XAQE!r+KZBM zmFhM`dSXLD&!)#yd%1#=H<vQ<maZd3EVF2^_$Oz1v9+Gm)$NC|;{wWegGi$F2~gK+ zJgRe_J6){H!H$P@QKkM*7kXJo{9(4Uf;%Alp?#KC8*V;k9+4h)CAkp`vmL(`(jw`I zT>S{qO8SBs1R$OiMh_-D%IOduAUNf-D*&mOS5CVSP<&acqZf7k!jn3ij)h{FLcI<0 z%G#{Ei(O2hQIPyNv3oEtiMk|eh0dY<A#;RbePnV{!q$}i^l$3|Rh(_whaH1jzFQ@V z9k_Cs8_d7ozdI9hT~1XX)H(AT*XQE<ms>L0>Knz~+GNwgIg4vlKZo%ad()OcmG1Kl zin0B|@<e$YZJd*fv+yacQnwTD>cV~*fbQxdjW*c`ueeI*I7N9?r_x~y^)YJDok^Oe z%_)Ve3J0U=OTr9yd0XhjhaptY2n#_0<53ag$0$)GAw0;#Cv6%@n(-_gE-6%}YJF)R zKaO%k2qHlam0puoo3qDqc)(KL(A(_s#JWKn6-r|VLCx=e3_f{R3;bJ+)kz~82KP~l ze2`*x=}jPA9F!4{jPg&;%f3a(pwSLg#~BwX^M##S4U<G&naxS%-`L^$#S{Wgz-cuN z9)ttzTTr^o?z({O6jgoojTN$7L548O=;^0&8;W;|8M1Ro$;>b4C=`62A4T9^C5XBH z0pg%!unRQ<VvWma2NkeW|3a3$BzM@XNFPn?Dd|Py3t(3<PIlF<0y?P%XEqVwui^;V zi8AtL>7Y*UJd!tI(utM`w?LvgBZ{qy)f=0y$AP21?L`gZ;O<EXj?qi<96>dhA&ex8 zGon05yd>i4P{jm7*r@>;(dUsekOanpyhb)aCcp`P`aC<6jFBcQW3zBDG)Qv7nf1>H zhqx;kX;;cv{QoODb|FDyzpqVPQ=0K>g^?gh@cO~t>YJU)_ouJ}z;4CAH@EP@99Vqt zS6T#RrjSYqtAz4h*??KIfV9mT6g5^h$pL~!hia-bDm2&NU_@+&H$nuBvg2xNe}D1Z zGo7U|f*u9xRW%&V=&ObZ)uc}gr<?$t1swlr@OK@M^v?+)w9hl7=xbPcghsLiNa$Tn zE1-v_C4QKoP;WLOJz@XL8*Z4&fy1Y5e_?Q*YqBBRRuh4daOCgz@@{+I$o}NhjDET8 z<fWpx_*z!mmphE+aCSxyITF`b=@(l1zwoil>1lEmewyN$SL9F^AX5I7*sD@NU@ex` zim*EVR9K$h(KV-b+qOdGs?j-1Y%Rli#rl!yx~!GT^7b+{<Ip04QB%Pfa6yMdZs<_2 zLCyoXWsv#bSelMPaM}r`hhz^1#0bsr!|dp-PFIg(QKZI%vQC^%iI5|b>hkKIXXQ;5 zPtZd5ZeKgtahCktr`o60r3B>(+l8n?c5(YE%_{X73@CXKh>Op}3-H^b$?UV@`0Trt zAbmw~Zz&Xqk^w?z%<zPL8i_J8cr&bEplfY6t-)4S5*GvU-E+_^u7T(#yavvC$6%oN z(gm9hMb6r#kON2d@=y?u4i}2W#ay(Br?F7~F~GezQL%gPJaTj<;F=?U6IK$Yu7a?D z(QXm%vI6>=q?FW!Ll{5e{VPEQ#Bk}iu#y1(J^(M{tLM1?uT_fCk#7At+?r7LbpLlk zJ{xu8+J*m>Pf+@oi<m_u_+-~hhj#?)L)m(AGQvce5@RHOE)eFNl=gAFMDRB1b%uH@ z*%%9gsk<Wr8lsub(}Xn08AuZz8lWbaM<ZEMuiy94*3N+B`a>TeS^5v#y&<$QwD$kn z*IB8AgFkjqjR>-m$@m#(^VB3f#SOeHsSrBEK<BD}8fd89P&qm*e#bTD@Hb`{f=#f0 z5_u)B<wr?FjT}p=BH_TiMNp0#f{S@Rt_dT)O*kSJrDG$%5M09>_=O;~m=x~!;nk3M zpJS<d&>yc(`VS3uWSb;az>p0WYr3x3k$v1M?_msF@Y~5TP6pdffJ58;aRx4SOg*Si z$*nQOY^)8%r9m+P?sh#KyG8oKkGZq^HID;)#^Nwy6WqkfuO4{Ld~Z;vl3<HXfZ8=^ z(lxRlLkiMwm--Mzj8iL)IK$KupP5qG{W)(gSv<<inJr!XG38{%%Np2p9<Vjw5pT!{ z7aK?Z$@yLe?${ELAm|?!G>siLT|(SU8CPuC>~-@jKP;aceSrw$;f;d(pxz^8BwaYZ z^#yKzCB%Y?Ga$Q1IK1mD=q}RM3Z{7F=r+Uo%FglaNFQSH1@x#?!Jn!lO8Fi^6x&0> zQqpI{4N)8g4^k6`!&{Vsf?XbfGIi!O>hU2r6B|^=n4Lf67(u5Gd5lKAR4RS2&4Lh0 zW4LLE1<^u<#~k4j{UkR|ktrS(dYR~kEyh?(#Mr~4B4(0^W=rMi@hGN*p2#RqRsI7< z!y;5PZZcqD*JhehB*Yx@UUb<ss^};_xo)Cpwg?qI<!QJQmAcLV{S@_7z5!0ch_czA z8Hy_RH&JHZ_%?21W~FQBz`uRe>V;zH)V|U52LVw1<_bXt&shLvwH_+Fl23;UvTOL4 zPqo@hr+!j+e|(#7OFL*)n!+PEJC&$foAe>4%xm~rI}VPgm*JL|<FbA8^as`-1NyT< z_*+3R%+H`}?X9E3)XEVx+$paj{tqxSb8p@2piu=Akr|D`8AFf4@LOY6CV#d|M!C=~ zDOn@`O(HfVI;-NYQGo*Lu(^elH99htU)M<TrwZH4#c%59sylL9yrxqNa;6+DJew?> zDfIHsGtojza*TR8EP|`OC=h{P7iOhuMnA2d%&3!;bRqdwoe9Wweo1wN1l=Iitv=#i zk`NSJZ^1<73!6cL2>$isB!mluUdGhDWqeFT7%47kcgspF-707f`!`jqU!6xNK=5r- zgwI6fY87VR`s{H5Lj2#afJ4@6F&|-M<5Ev{n+6wfupnWF7yim2m$OM#h8>j>EuVXH z<U2nua=l{7Zdi{~K;8Eg6i_Z`=2WI$&`&5#+4m)=7B%KGWUY{2ivL=Q(4G^Jedwi4 z2lJedt0uG0=_yQR9{LPyE8F?U(d7Vu-p<#5^o|vP@vl)oY6&Pu@2X{bcP&t)^o~BO zm(($jk2NlHA%1Oen_p3!R3|l?Djzt+gpWAPj{5J8llU#-GG|~V=6IVf@?No|_*stf z@c^j~P}}$$_VaJED`kgV@$8@*)^0t<F~Q>)=MNgX#Pc7O;%{)kn*ynK>O|0lvU>aq zowcf!TJ+H17ijnwNou1G^G(=h{NlNI2bm5YVM*a9_7qg3+QY)ohs;Pz0F^y+QgfSM zJs31(=_DHbBJe`eMqMgva;rnf9kcbE)it?%D7C$+wn|_Rk`<`10?&YKHL+jaU!yCm z`$_qUgwam@9z0ckniqXwnXV$1<1TukS2<2*Hb<g1n?}O8uqBlrXYVsGz}Pz?*oA$C zVP!eDHMhR{ePY+}-V@fp_|wZuiSMKh`S{7#Zx!wp^f1>_Ai}y+4;Em1;SM>&_H!1q z7<RtM*&VP8!LqWQe;V)#WRUl?zWRO7cqTLXqH!;3bDUq*mfXGV)-ry4PSIkI=k8q^ z9m!m~g>_mNkbS9UE(U3iFG$^TX0x|cle<#IbZn~+b*R2d0?+;C+}w3mo6)Yxu=Prp zCwz(W6v_l5xseES^<;a$->^ro`)zao{3YZ2q|e@-`ydm3y^!w!G1oS$=t!BrS9pT` zlYb+2_KDt}YsWq~V<VJs`TP8HfK6P%a^`dUBvPNNC;s=mcF)ha-!_;1Zhv?8>)RZh zOMqw{==TGk6!_A@*$X%J#C$UbtBd{{Ob2!5gWspgnFZTuJ*nTcWH1*FpT3n)nP1I` zXy!qS4C(*&T<r4@51y25OPso;ogurqWR`Z}FBz*DbEE7LF>^A2CAnva_pS4X&%xJ) z_WO@!RIlF6*Tos6KMfUDgcc_m%+u<Z51%UEU_VfDf3~SV0{y<8Zw$au(^YS|J)GIE zQF!2!N?%$i`^t~rc?W_5QlFwAp(l_H$*>{9N6QS)+J1DBUuG~lcINP9<E!G#N3fgS z#y4Rbnxr|xylwV6VyC-4^6e_li#Qvr(yi<>^}x2w1Nr7t7}%nO+eWb3CBFxLeZ#gG zXNO^Rv~&in8}!h_4mjwbV~(<(^@tmEtV1>Et#oJMo%aF4kLZCH;6)D%6QOxt9hhf% zVSuiOaT&nhj7<&qurz-Yupv_GYtqsgx3zHtG?bp}*PK>;lf3;=|9?vu+TZeCVy3!M zYtK1tV>9sGt_u`EA6?glqiAC}7;(1LW1Eq`8=HsQiNF6x<6$2P`2YO_J>v@?{LR?V zM$<gNTveUPc+P$UchBg2ckD<(3iV_Wz~4}ZBMIoq{Tk3}QnDjj-Zk*QOemhZmRKC| z^S{=?8qmWNV8G!Hcb=o{$)1QC+}RyE9Evp(CumEgcPvTpl7#QG+oE0;LFL&Jy#fvd zM3!!(B$L~`sV{e12^S&X@QKNr#=NZSEfOT`0mJ@TqM7f=J^$f`b_xsig~LX_ao)Hv zTXCQkRg?%fPMUwXr|?0RYvN#y8&}`gHz69+598xHs3k8r;tC)8t2=2uY5jA~=t4(9 zluRU4K91?{pW@LL-Ljld0=MGdGx0QK^VDo^%fg20Jo;B1ZaW%UQ)I2M!cCEumZ0Cy z_`t5l8h=QC{#ry$r{}g^RcDa5B%BM|ZO<R-w?hKy;Jgd9<!K($jWP*=T4QaSnH7$! zo~i3h>d4jFzl{C+-O`FR=e4$N7eC^jg%UV=3L)?~z&Yok^*O^+R2=OI!{;v;rxO)b ziHbmD+b-n&)_;Kzh$~Fc@`6fJII2*PrK=@8S}=5DJ@AD*ehxa8{a0!-RY)H_Y(_!; zwU%;g2AzKb#8%j~&OPN~`ltRjvwJTnPY=)2TW+=8$`CGx!INeCX+Z?6pXial>n1Sa zjq4>x5kEZ>O@xJ#{-xLY?M?LgOMZ;gKlEJxMy$#&&die#`-)*b1o!Jr2P>K?=;;+2 z%SLKNlczgEbHSOJF}Ed;;(`c{*|iz@W|Q+U-{YSg&~QSII=0BV%#mx)a2Yb_?TJXO z0H;Q6U;L}a&(3Vx2{MCc+x>7?GOXT-$c6J8fTNVi`lk(e4p;m&oNi^WrZu*}E@;nI zc6^hYu3Wg#y5RSr3-RgI2Wi^=|J|@cEY@H3<KYGOZnkE}Y_zq81O)XYwff`*fJeFs zMq)<JA>h%~8$s11pr^1B>tTZWo)033?oE(tX-fQFSX#m}#Qa(gNS;<0N|qmrtJu@! z+)tCb_WAQtXcJ*VG@-6V<7>(TO6u$N-e;;2f#m%<4H%nr#d&T7dV4ZjE5Piw9mi^5 zzwwmldw_s3s_g$>!5=NI+&XZh;KW2&u|U1Yz5nX>uFij+w@y6sr*Ruz)ovm`(Q}X? z@h{<FIP5;X{TOyS=x2T4Y-XS3B6PMJ{u*{qtG$Fb3-c6(m*S6>Q!34KN(5aUevZDE ze5wmx4_(+4)%PCv-s|7GlK(t!n{d{TV>iC4o%0MFkNg5gTVSLAMg$4uFL0xHLV_{% zvU|M$WoWjHpm&Lq-Nc1ey5=${?6Z0ajTuK=z_#cjbc-&&TRbuDySNa#yg>NOx&Hdj zv72+?lb>7&E8@v(&efit($cQ3(s^S>%qd!><sBD!CWGkR-RPZt6$ABKi*g(pmSeL7 zQr$Q$h8g1F@BcR~>(lkuqQin$P8K6ZK#;gOBtV{wo9z#Ge|P%>zljB&c6`0?ug^VA zOhX38-nC}Pp39L+)^FV^cey{hsIHk>_sx$7{pFr|Hk)r1a$pu&$-x6MbX~K%&A-s| zf9XgAJK7;MGnpGBD{m|#@Wxvnvfqg@8iP0h(s>_E!;I<JF#?A$nBwyJkzq!-!*t>} zgD?acD%hEJA*&Jp#obvhsssN>F2bi`0wA8agj)#*RSWoO5N_6};)MO2FXW&)BV*i( zqPjX#JBq1E!%9>{^`R=kZdFz314F}%7OwZLE>5>tR_7NO?Q68;3dO1lJ>zV7^s3S8 z6_%u{T9zz!Z_Oxrr^leD^8k63x<;yJK{%k%5Y5Z>d6OBSMi^8sq$AmlbPtlHE7al$ zL0HaNVueabvLyUC+q}4sr&m)o^{A0CUilg|bS)wrj%ng`-yhpITN8uZL!JNFW{L1x zFkS9EBPL!On>-CEN!OL@OG6#f+&JXiJ>Q{A7ZBi#+irw9cS{`9<3LZ)Gjr&WzSOB! z<F~-BBM?kEPV|^u#1qj|Lk2JUB<Z9NPhA~O7x&Re_@j6#<`O!hQ_F`Po#hLh3_A6o zjc_4op`M{Lp8eGh>fS+<y0=QF?jpg36wJHP>fC)w+yOH5KhwG|?I@=#6Z{Mk!ukG! zhJReTeDUhVQ8y1>8r3lWruk@SVesJjE9b79J9KVg$Woj*T5yWomm{M^n%|CehyNF} zWiSy-A8+Erv5J82XlN_*t@)Swb&>vUNCyVXnXs@;Fp4?R5^7BNgGUo73sxpCKAg;l z&35SZ$Bs{(0HS7>F`7Bvw5q}%@O-WAht<cL!hGC0l1PECMPQ5zuu{Yr2KHz4N58j4 z1e+)U0^(?J3${PXvtfE9MzIOs61#ujg86?z?NXG|OHsu1$3pS8^zW?em%~PjB%!J6 zL_$xR5oYuC{)~tCF(kp6Bi@eoKcmE!mnjSQJahT$C`*Yy*Bp&b$^4OfQt(qb#SC*I zFUUZ}J=vVK^lj9nl@D*EtMG|$KI}R@3D~KK7mX(TT^w&ifErg$*dyi(N^}4l=zBM% z5A(}x>pdB$uFTxs8PM`ym&9E}Q&CPtqk>ouitYmREr*btf>J=s3a&2?@E}1@e$&kZ zfHw4*EG1iEH|x=>1|1JfeU%`ar54nlJ5N%YcA(Sc@&_G`?%)too`k~tPeAB=5(fKu zAx;$(Uv20Pn?(xy*v8KpjyinWyZ&S5=fByA?1>P%RTYFzPc)4z)4E+RBB@|Fo_q&t zkyv~oo1$??#G7kJqATUhUE3tX{j77CF#Hw}hqD~i&mmJL{%xV`S1w8-K25_k4`8>{ zJ`!pL;)8|qCl-YfAEj)D3vf(2)#zhrx}LUGC22jW$RzzPwA_>C_$^@<SY&22UX+H) z>7MQ6`P<Y7P(>(oE#t4(-*AK`6l|_W%DQyV!1nxWcul_~6vUB{rGqWOx_Z0a0yc-S z#W*r+1VnG}YRjnMUEWbzF_=7jIV{5H{LX*Rm+ShnfL=StM;W#&(b-61dYn!VvLo!% zhws9-7-Fmvq7uG~E>aWTau+>7+@g&Fe!vmS37deBG~3B(SjhSO2gosG^P95D4%E3& zQkPqmfUj#seC<4<Y&g|fv?1~wePgjpVUn;=tLj``X20RaK4zv{o{ebO_I=T}*@Ygq zxQZs(wRVJAE1<Gn#DDw&-INz@=^9IObQ9c^2L^jtrPQn`>rW?Dl66&T?3#y98mS2p zypB*?wLrsu|4C46`pDg$qzkUgr)L&F;VydEZ}v?UuU-DVYphDs3DGi}b@vZ17ff6L zh=3#;fm-+5W{E<J)CR^C6`v3nxsr2uKo_WO2e+)+?CQXdMDIyr^<@2h%NfeexBG@R zQ`V07bDvbT3Ro8raUc7Py>OfN=x9mF)stYRVC_b=M)Ds=9z&7~6JZgfJVqtt1d_yT zLPDv+9z&|>?lVZvzY76(NRrAx_6>36wPZ`vP9(%zI)#zVRIdMKm5R3Y-j6C2kS1qx zIzw{BRZe`LxV-<3;9Ki!2hq0(@WGfHKCB<@0ROh=3I&iROf>yJ#fCrOxG~%I)sK$6 z9dFRM{l>aqYmI3J51?VD?}KyF14EwIy0?SW_38I+9JJcFfC4F56%J8_fxeVq{<=u^ zErq9P+IW8&fnl4Q9R3qv4R^@9+@9V*Qe;oEb?@mS1=RY-d5;U|ejLu*==HU5NsjJO z(44+)CY|@Ur{B9QN-{CE()oS}^r`c%i9EQ;9Wzv-Ad<Ro?@<SwZr8o=t43-O0WM_2 z>_&sLNcm;<xvK|$dbP52-7k_t$+dO&-JCbO2+$V1D(IT{wF;8(SE>8$upgOiTmOHl zq^>o$4Em8qsLl#mK!WmjI2Xbh%DdKpWL?UDsyLISTez-JbS%AoxiBrl{AUKprM^%` zrvMp65yyy>!_L!4j96BZ4%fPLWMep5kuMhPxu0vxolUtA06nFPT(dZ*H=H^Nkt>!_ zH9w^bzF!Fiqhlwj2vNNrc<Zp;-7fA!YbS}&fJ^hk`)F1)dL5(xLtSS|bb>Wp*LFJH z*o=1;MF~WQ+tgYNTEY!;zUV%$xBr$CR%o!#JGpv`Z*`KAwI_T}8a4N$r0;Wjaf5Ul zn_L2a3X#O|u%Xdn#s1r2Pww(C(YGIo>D^?;-;U1g+DXMtSQi=17+=p#MV72To4jWb zBm~kqpnJRWG{{|)>grqz9)!;A8VIC%Fsi#@=-oQC2YRfuLtxp|xgQ?0ek!IP_Yg|J z{3e5YU5m6Hf}Pp}=qer*MWC^%cNe)h*`TP1(-w)vhT^;>@-2QI?XG0ZaBenP7c`Mf zBMT?8tYo$|zRD80mRW@lzz{a?Otu0)4E_P>`hC&4TiV7tC!O#9${+s)>;GmHPaz5* z!k?3ubyl1CD@e-lZzzT_$;bK+Xfsp5<bz}0?MB`;a6KkRfd<omNFRLY)NvPkzJ-Cc zrVtrOakKb(e#kLKt;El{v_kk(uxH@lKVQtT2hRBX%gB+;;Y9ZeRg|HLk0atL>d+o* zXj}trfLbca8jS&F3^`l65?v2YX=*Magy6v8MK^zv87<p}Dujnml;Mn9?Mm5XN4bu$ zB#%-YCz~X=MepjGn?8COV8zU4@&@h%nKVgei$obC=SA0Z<_^BRvPo^E5X4j(P;ZCN zwD=Ep8ks#o-)UscNKv*=J!YEZT4bv41lz=R=Jt*2NQlgO2Oayyf^gAICcGKzJsN-B zM`D3w(#gm!RKBwZqwkvopCmYHNkvO)y&pEIdtk1NI3d=MC4;#1uY#}WAr*$E5}VG& z@59C)WDsPJqZUSNQb!#A3kHEW725-fu9#?ByqoJN=42TWKu+?dQm7D%w<MQ3P>3aa zS(+ZZ&Y~H2Mnv_YL@mrT+_{s--T<~pguyxmNv7yTxSo1yB#8LT4ti@4p^vMRouwCA zMkK{#Z(s(4q35#9jZQ+HK8xQ79F9ttb=z+*-y%`n+MJ;XFS=-;kK2#Kk3>qJ5sQWu zg8-nu5?~PE!wL+IJDOQDT*8?CH3A-wJ^SGI_>#u4UT@moUk*bqx$U>}EBtO{UlHll z?XF{yLeh~w#YhBJ06ad*aEONr#A2Y`XoP?{$4tc}AyCXTX1ADd-8Ga}mIY}14I`)@ z^Et)+|2)=jzrCC{hNI}WDr(VL^!+i6?VC5GmAQ=NL8=~!VW;;B{e3A4vxS_1$CQ*5 zdhW^LG9!}_%Q9LlqvY8yx*EQ`*<BJYn%uGc5>HPSzs&o@?OeiL@m2~~@XCnUF^;Uh z%_p%Dn{=ffmk=X##MXoK^f9q#Y5vSv#6!t4-OvP%XFM8oBRz*_J~}as)H%3I6v@%2 zI_S-y(~QYEaDF|>F_tswoM^9+Fi5ZvJ1muz+tigf&2s>IlPbtN?ny?E=NBs`Ep=}M z4FEwbaai!k9Xc;dA&>Lo|4p1lJlVV+8o50`{(*td&ZH)u%&7Wi3plf>OS9atnZRjM zr_<=~9D)T#*_WZcG1DfunLYK>3EGRX?Xl?H_907W#D2%PDliT!pW5g3Z0m>Y1hXd0 zV4H62uM^nPd)VHDBAG>aD^)ek4>^RA#?P3KdUUTvdqtzq5)Mc)kZ-$6nX-Ah#=~oK zYZuv94R8or=-jQ6VtbZPv&HWUn7(@wVN+DhW^-Y(HSU9=oCKS8a9Nd&OK-tVxNrz; z8|01Jn^U%8(I*xRl}%lA#4l`X;r7(kH$jN$gAnHeR2hlv)OPWtmo?i)slK*2lG1}R zE;E_7o-7VY^l3=Vzw{7oECP%z-X=P-?jHLPpVVS2-b8L*r23#-HsN7Za~~{KQl*To zn133e3&-MJKhc<r&$3u6WJ$nc$Up&K^hQ4<q-sfHK91WNHjBe<HJ}SWO!bgCtpQM! zEsL)fPlb{zJasuuYstq1uKDHMVQm(wO4}B~Da`T!?3(Y=@;s*1Dc8ask$3*t(MC)g zy;6z2#+-FAkn<r`ozuT)9vD?i=VMC=wxF)$LmxIi)m!)KjQ*#Gd(GbKqwKi1=Ll^^ z)`w2tB4%U3PW6-nolD<W)>9)+(m*xSTlY@J@m5%o<~6%w7HcT_GDOZk%+aEd4nun3 z>RM4<9ZTW?a3`q~Kgg#@2V)xdChm%j4C9pQa%o^`*EmdAoxjbad;Zv=&*+QpsDjQ% zQ&`&l&9xMlA4rVtMLYEJp^D0PV>F5jHdNXNRTtSNaH<%Azu|ZMdq|%QYm=d<xjtlu z|MCB!e;?5YYB+x!mQUo(MrzdlP}Kg^N9-A6jEGMjbFoRrSxLl+N}__n7>o(Ss=`_? ztx6THQmPaQmSBk}wRmZr9C2K{5vOR;S4hOSprASZ>+ZsDkG_nGTF$@elbNc0dGsfp zBBAx?036<fd4)YoOApx3_1J&Y!QiYzCsK%XgsDrd<o#9raYJ}WxA0&7O&O-#rQD-D zsC<Z*-(qe{U68q9+O+#f0#;Hz<bf?8G+_;er*L&%CNmX(+@KEWMt~a1Fy$`g9_2yh zL%h6)j7`@)1m+^O>mJQJ{g!5`$!<|isy0dwn$ubmRR=nxFEco0Jc?z-Fsz+PrVPMx zrDV6UH04U3m~{Sw4n0z!r<LhXjJX@t3an&jS6-3_0~H}nv#p#oH(;jfb)>yLTsFLN zOt`F8JmBO(NURD=s(HeQg9JKl&V2>w^zVq=3OWO6S`Kt8Z%1A7t5^3Wmw##@`BCu| zJZ>?@k;p13e5-pu3;QmYyrLa#?|m4|sFg9F)euDOVpGOTuF=w?A>{!98}@1!X?HJ8 zV6}dc>5|(U9*t-^^C1p&0VTG-)uij@TPp8)3i?RDOuP&4L6Jaw_yiL5?uTUVA9h~d z+Ip~UKtw3d5%wq?!h=zGs-qPsB?_dll2ZhbTqWfQKlpRCLzly<a!^KHUSs|$QY7A6 zVciLGP^fNAZACzrSj{2`mxH|0QI8h@`tQf|3TC+<YlM*?Buf)-SowGoB%^qd&=U!D z9K>)90b>M3_RcY?%()|?>`+~hRQ=;WGKJ&pKX=7eLh7FLTNauxE1&%&dnMZ`Xrb(1 zZs#xNbl75V`|G3u0hV)>QdxPWu5-m1%w_90_r2_I;=gqlW@|qB=t4o*7cPa@OUXy+ zFCffxA3^>bYuaqe%XQb@TJPwWZC<==Tk`*R+~Vf?2nsxv<0n{ou@WV#F3ta#)H)vf zDm2;%M_l(WUu2{wBiWFmA&@9p3W&%wXyY)zhMOoH8aXOl!9K&`7Qu-+PQ>7)ng0DJ zuMG?l<X}gftK3_<j*672HN=Fx>*Q5ErQ@1CGfM`c6Sh&to_HSfopI5jBgd_?GZr1W z)}CB;7Fp?{553CO&p7iYk38YDD_!T>C!T)ZMK|5;fguO~EFuj_iylE@^k@(<qx7d^ zXeMOQs)o~|@|GQ{Ikc$OGmw;Dy;Nky)U1ZN3l)zmS+PdF+Ht8l^-7x$+uwHXoN0Z_ z_@DTXhr@_Pd9akrz4@NJ&qq_P`__KFu)f7BCa(Y<26&uRr;@6kYs&}PanON3ouh;n zfr5O_Rg=jKH5ZOJm1)jEE!YK*DR2%F59vMic86Qr7dPMHaC2ayrhkdc9=Ov_xVGui z4pgBV+dj`FUm=}r8t{y5dCIpbqH`iK$}}0!K?PB`tviT_G);)h*>*xy$);!Z96EB! z(%;q|*tjj)$wxlR1Ma^^%)IC6FZ{BF7TG+T^C2g>!OP?V;$#?Ks7R?~g?ZL_!0X*g z4kao@Y00AL7AsY4r=z+XtJp%j!iXka$@8_*!Ql8$$McSVI3gTv9bI8>I0TM>li@6w zY0NXOGHy2RGnN@o+peI)DS|Xj`%ERpOQf#oH4NGh{?xA_aEJontmbgmag62(gmkXh z%2~?MZEfM|EbaJisB|x;NH9uHeeSwVNp;o_*REp#=VmS;N{pX})+`=HL^kHr=Z?xm z&T-37`Z%*SXCo4lbU5X92YHt54D}<1Ten4C;ShwN<07?(D_$gOp!C$YKeVX{q&Vj2 z!I|>&S%Bn0`*^qAvq<rlV_0$X&>zsG0stwgg#t$QwVjSEWQ88AfRE+eF;=Z%8*MP6 z{jk+TP!@p`&Foe+j%TY}MM&tn?^82@PyqZfh+1!?6G6T;P2^x2+0h;TrX{(mj|mjx z%Vq~9u8Z@FtJVGI{&9_&DF|$1@^zAC{Z{1NmrdcHm{9`0e3=Y>P_XPWTXQNr&T~`k z92X9A-u7@0Vzza2*cFZd52*yiciD(KD_qMMuJ6kS8$Xu^n$(vAet(_@ySb85YN*si zhTK0A;GCtppHCZb3S_HJ$htYzDtXymNwi5>W=Ro6KnQyW7$ZAc3?~&uDVfk_`BQD^ z?}xet1mTi~<GgqoAV^<tU>c^go=Xffs0po}`nI0G%9vE5ON=ULyww2=TT(%<T<_R# zgEG75_1L(XVXU%TDWIM)q@Re!@m6_7;Sp%t{y>D}u*6f=^Ubs}fInGTH!BxGL=dLq zTzV*Ro3&vZN7<oBj4A$Upu|zuFhWjo!m;slj(XGbA<|Y=022p0h>~jYZnvZT(S*t~ zR+qIjsO7~*bTOnamFhJ=`swI5&L7R!Ety7%i%FEOClb0>N?pjgY$T5<ss^1L@a2uv z4(Np5p+tx<9bk3sa1qBH@Q55xTzYk~9sSX(M6$lJcl%$H`dW^vA`6B21z<8)OD_d# zftBa-*wRS{R0kYaWNohxaMgBQ&qNRhqN_4>mlPMS#LOA*VFAY?W=uP3OQ+Im65m`5 zz3g4ho&%r~ZhZ##qE>-qOCl?2*uNH&IFsLBHIKernfY3%_tNBC>}MNSE^k3f-VVd- zkq4_rv#BE5c8iAzTh;kFK^x^4k?%k;-s1C-A4Tij=Rxrqp5M09da5y_`>72crQ43h zTsE;+*e0%Q7jM&--iS~l=WVP{jPxy}qN{sHM=G`62rF7QiWBH%CP-lf4!iRWcturK zksW7LKvw3?T?s3M*KtDo4{twe(Kt+4=9>sJ@3HXDGWRAYeSOoS{z5pQgyT#|wkHpC zBV6}=&klFsK3|OI;KPYK-pJJ?=;IC2S9~Ln&AD0OxzKeXkT8cLbt;1!VO-S_!d_^} z?%$G;kWw<SY$TH#xm+)oEBE!}PU1ECWpe~<H1V_AAgonC%s-NhL_(pVVlFgOo=ncr z0(bP^gsQ(|up(eiNidDVAlN9Jiv3VBzho^I`9RzOFn$+nmq0{Ima>rL)*QN27sq!) zd~h#j#A$*>Yn0ARRkcw%|D1Xnn_ar;EGL$_gqC*B-Brc<#}@kx*|}?jxz|9vQ8-I1 zE^3pvU|Fx4TL6#4J(tF*oS3w!+F5jBoP?p)t8S@2b|@%0J+M_3Uxz9!sj{omq8YP9 z3EE!pf@bm+o?2Q-bP{71B%umAl!i^JtPUgC-kHBj1;(U;!F(U-^J4(QZ5;=i9R=lU zn{Da{$C#(CNvdm;>c`2G*CcD}-RAMXHZF4MbH65unCj1TTz0yyW<J{t9ZN4Ops`H9 z()B2neCcE)r_E<x2j}soGmQpopXBDP<rQLy>C8m}9co5%mAl#M1?bAbr1n*XBG!5O zgHU#<(F7f9J~N!=ZQo3LJ4(`_^$AG~>}nj5dv#M@J?aUJE!A}6l!=VqP^jg2#boZZ zn7<gWxTbz01B@4-Zx7@mS!)j9OylqTE%z3><gEYk(RZmie=Fp;W}f=o24F<dtz63u zk{iIpFQV}P)Fn&#vzy@%4{s>9TW|#0u@8^Zus&Bn{_&9w(_S3&5m@jP>o&IBvwloe zMv8C-#@9h*Kko0|8eWH<rm;cG#IIzu&}m<?1+9Or+h0H~JT-18!KX_up3MR|M4um> zcYXhPsCR|O+}_Y=gwJsv>KP&T!euXL+V}E|>C^>7)G;OO%uIi;@och>dcl_vpV{YG z+EVfGf@K9>>Nj<8I&+JDZFs2eYS`lwHsRnT?Zg-EqVx!~bz70v-H!Sk&QNqHzat3+ z3eee)yk>v5QF`}n<|W;?Jh*lf^IX%=pQ`6Zz;<{QzkRB5GhTR-J$Gr;c0e~%c>$Gc zk#_qeO-j6_U7!bv=tG8dlWu*4AtNNc^o`?xhAwB`X+K_=Vw7xfXQ^wYaQ{H@vAZq? z$s{GAqCcOKwY>FUgVfL+oZyt-^LJA=xvWa6-^F=9+I8iL(KZp&W@<a3-*uBNSH(ki zE*Ua<Y5i!EG>d-jp%InfD-1Zb(X;)J)EF0ALL-@PsU|VQE&PA!0te61n@>+yukSMp zie_LOwzT0jic6)>2EFE6*i?u*{h&|#>YTIeA?J=#^B7*(q20ANDV2u-XAnCBSRXW( z^$os<uQ~?TTi$tdiXZc2Q@!K`Vx?G$Ul5Eet>Ezt#F~Dge}HyX4-=;&nta7LWviOI zY<F(spJP2g`O^>3?9})j6Zk?lZT=??<*Y}w4;}U9(_wrb8C-8^^5zshveA);yw^#V zZtwPI3`TTt9@u@c%yeuYZoVz<`?Y2%`&Wiz!Kjza`_cg}c5OZB89wbpNOx%boQY`r zjMZTd6~b8oHX(%5+nYl5q(8sz@5lZo%SAm<PqEw8w=m)t-b?h?H;2Z$)|KE5fu~x> z=`lB-KVRdyN!PU9$fgFi%cr-!Bi!BGxSM!rAn`olJf|~(1JfG_ErQUh=B_KsY^a-- zO1Vdwd#*Z_(~l-o;z*@3CF|^o^N@+6S0R{Q{!tD(TD2fYE(KeclpRqVDc2m=Q8Z#e zgCqc9bQ;nKk9_vRYuN>kB}J@gy=h2j!g-<1EGofxsb$~m3h}VH3}8*Cn>d~W>GkA) zXMMJR9|yneTP#&haTo74mpU~bH8ta=Jo>6*82X^;FF{QWB=&<(;Jb_wS7DL^iSSA^ zKai3~&&T@_MCSS?9F16t3np}B6Y1hM4*uMd>YX@?h=b0&AGN2wUstCBKOdcF-F!{l z{Iivl-WjpW&OFX7&ovX%kYM1&5)iyb25%HSZ4LiXlbUKa<Vm(uV|Mr}UG$zkVAXlN z*3#eESlai3edt&vYT!2xjU8tF`p{nJ((Qf5%efvsCy8{X(=`qt;$Lnr=tU@^$4sKo zuDJkf8YY8iYfy*Q>!u#jvHpwYPRD3Ypy=yvffG_lzey(Duz$jKOs|8GbF4jOl8mom zCR3WIRy&#hTC-Rk?_w*RFvdMR4bI7<;?0X7Twp)p=Busy7OvYcqxdR29pNPqlIfwz zgA;rQj~qr*wP5zip_z009fp_EQ~IjTNI13b>b(Zyxw76y40LXXpxwx5{jJz=4QJV- ztpR@|>hrZlyAi>wMd7)BV$1jhV5roJjgBY#1F}n?rTb`rhjA?9e{OEYu~tjQP141A zn{k@BNu?X#Bfm{*iD0_U_wKv##0qb#GBW4F;Ttw4;STG*qiIE{cH#bvEAlno`xYru z1@H#{;=9p%<{{ACiEGaqo<kvhbn(r7pSQJRQvTXBuCDShTK-gFXsN7a88YTV5Uf4U zU@CkfYllo}vB}G9sqy`H_=sM(u<LzBO`mp+{t~YfLo6jT!7+2Z%Hqa~w21uk9&ZHv zWQDRmt>0ya=Ohkx0-bbZSHguOy#)H0XL{e0u8VeM@=7vd-;#iV2s<u2t@RAil0bCc z+JE8aOva5B`%WWeWD8KncW&>c)j5u#>?M(IhSOW!v&7A5riG>rA8HR7;CBheg8U1L zpF>4-Rss22I+&Ct0~{lvcyVbJGc^#4q9Wyc_?(SFp979b^k32V!*K6Z#GJH<68nyQ zviyqZleO?c={cn(ATcciduJecbNW^V^0=}+XvZZ8InHpeWDeSzy8!b@V`GZR#(i$1 zV)79r(L`F`I=FGgt(ddmg?w6?pzGQ{RX2hG+Qbi&K8s#=9oC$yNBpE6b{??g!oUAG zS=1}b`uz*RBjiO$v7^BLb7+jegurIH&xDQ<I2;mi>Yxs?Cn>s8(U#)QF1WA}7T%H- z?WU$2)RZtENYHpvT@CpCspZ3Zs5FJeBjyK}rAUGW?SENiDS@f{!Iq<FstLfIj*Ioj zh{44%rl^|$g^QtdU)m<%Y*fPXM7%~j<fAZw5X-0$Aq!<bwp&z!vundZ#Wkn83-nfR znR3*3W}n~T@*!EHQWVQaXDI$8tHgd-X$FGMUo%Lt`EDj)n4iJmidVw%O$yU>shgO} zlIje7by>PT`)0LI+A~!ym_c9;DM>Lc*&1!&Avf?fUoIG;03_>viT|ggYHDjT&pn8H zy)-z!)*kN!XQq6gyV|#HT5f(mtxQp<(yp;xyzpDa0dzPNy0z<XAICca6W4UCL(1MN zcloKyaph@JFIPJ3J4WwLhjy&h_HBpXch+Pvn{yo(V?-z}Mo~zAqsHDiu_)HGZmo`U zg;l1TJdj?Jl3^sT1mU2O^tQ2=XymQ<al@B2^{(ZeEspD-RWDjj2{au9yMAQeg?g^M z_!v<f)>Y&im<zm-v-(wW^2j!988{ax^WhbL3L%L)hIRQOBc6kR)FYcK0hrjGJ<+b- zDy1u1BvrfIe?L#D*5LpXtM5Vu_CfQF>j45@=hJDMYO8~3YS~Rsm4b|GCuc6&6h_H2 zr1lY<MD*Z*NL@!~+hL8$RNj&-Q~mVd%iGj~liL^PXcKmVqCE!U0Gw7C(d|Ug{K}uh z5k)*yz8A9a(In;)sIJ4R|7>ZiT0dO@pl^NF6Ija;g#=YiR)Sco?ietcoUB?k>^_N< z!OjXr(t2sus00&CJ?xgBxC{n$gRYyrF{a4y)ldg&^Tewg36zttnh8*B*5kL9R{;)l z=?0xl?(cHgxq#i?6BtDh#qL`b%=KiY)w+E^r*p7!`G{)*fzzZ6PZF<w@fIiWGFliM zw+v~yv$KuHv>hVr2X>@V!AxCK5AT)@yoQ#c=wVW-O@<8f_K1F?;38VpI(M-;Zg+03 zhtpLrNZtq1_EglyAnt(KE@hovsuFkX8Z3#$Dg$;(6h!DL-xnY%t$1TSI=%xc*^4Ph z5x1<LOCB4ga;KM2+f?OyG~Sa`WqQ)5ajMveBhVnZrdm~DZ5OJ@TX(4*(WXp-$x98f zd??hHQ1z6SCXP!dM%k(&irX3d%<0Wt;FwoNu*M&PrHyeo&|bgyiVPI7Px%&sojgD_ zwZ2+pPKtA=mCS0T72Ui}Mz<<2*`zRf8Ui+6i^WRI7P_?zHcdrV(K@gxPr-B%=txoT zILhK*sL<bc^e)cXvc+g9%>ujd6iO@JTc+CcVNwRM=~9HD)7S0rrwe>vwGL#GWkY!j z!*jCqURcP=XXm)_@$eSNPs-KH220jrylJ%(LMq0`iI7A8sJ`!<niH~X&qC34K1}S~ zluP{H@rKA;@UQXL1vB$qGgT|f-NMg~ettzkTdBdK_>5doj~b}*l~)^iM5T^6APLy? zE47;V-b32X3}}a6tn;bpR~}>?Ke8JqjYtB;%6}CVtf_!q=tF-D477#$9y=RfenL8} z5eO{=M>~ayI+T}SDyq~~HiT*jsR(X_x(GQ4`3M~l24Wab%q7+ln~B}T5#mW9ylyF_ zl+Eb1?g=7d8xj^E(zQk<m6^;LPK1#&LKGiil-?qPHQA5|QPT)fZiG?W2vNTlgJ>Cr zA(s#d+8UAew73eBH#m!+n{W%a0Uo1yhLJC5-D_fh@{ba}l+v=A38v6910(a`Rg!Y0 z3oe^huCVe&R;W_dS)H>mmR^I)ZdjcrH7t@XX<cp^?OIS!LC1=^7wB0<pVkd%)5vy> ztI32~OsmU`dd#lh^)l{MaIcbw1)f&-s*X?X`MHDgYr~p@6P2qxCGwTVU#1{A!gUs< zt9acdsaDi<AektDv}42f^&A1(vWNXb6s2nHFbsN*By+-0195FNg;5O}#zait#d zFDFo9l@=?z6D4I2NkDgGW2aF;jepJ1;2+$PV1Nfdp=-{T+;cJBkvKyRBfJC%<Ac}u zJzGQMS>w7rntWZmaWadrqkswC0)?-iSi+2Qf<!#A0t<Wui=18uD}05B5`ELYM{oRT zW^sMpw7$)4Z+H98;eS%qOLJh675t(g#87{^&`Sj{OgrDr9{2Y7{a@XBbYtt=)Yf*i zyL}xzNB%bvHk)ICC01A?D2hiW8FZzqi;p)SK^Uo5pX=<eObk$Agvr0T2xiMQ&K?M` z1H3obfRz9O3XB_RX|}n?sv<)zP2?)jU4O%jHHKWtfwLT(dND(xspH1EmW5Ys=f<6O zDVjJquaNEPhMla;Ut#FEY;nVtC{$Eig-jdFX>dGVL&nmQvPDzn#J}G1S6+I>Dr^~_ zc-sfhB~xM~Z^V}oI$m$mIK|6v5n1}b|7Z7^W)aRE_;RM#Hc_iI26i%F#Tb1VJK|7^ z9~2mU8hh^H@dv#f-L5{^5!~(}cDxX+J{=so`IRKeQ*F83--8g4a3~nK^sas}|MH!_ z{YmQoRSqWirJ~h}WK)l<k|vHY5fY2iQ$0`mk=je3FW-0DyzBbAtkFUx{;>|zm#cJB zD()+_x+yEFnIvW}d}Q#i#m_t(_-~h&t=#m{z}s7Ix7#txLFq2NRl354+;Mc@=A~rd z7VJg64w{bMB`xZkikpO+>E<N11=GMNQ(h^zR<sYh8|CgPFWlh!v7%cokDkm~Ju;d< z?kRd}5SQhnYS?s315!04uVabG^rZJQgviCJ+NteED{9k>T4YAnFpgz%m)IUQelZ24 zRyW@wCOr?Vm`s=JTGKEFCAS~5+aQ=mvIYUkDmK-Kr+~NuHpVDx23(uR3ScA|=0?l} z=|*tlpowj~+S4?=g)tzRdW2~u)j-oQl*)+`$v^ymXR%$ik(H@yd~Wz5+G!DMEhVBa zba^|8=hcLh?0$^(C2eXwqrYbZOSILBGyvv-x~3pnWc(hR<_)dha0@WOvjFP8T6dpE zr!wEfiw|b!>GxO#y6SD9VMc3i;&nRRl)d_27F%GMH8$B{pCc~0VZH8o;*}3>SlO5U z>Tk~aDn11x<@N~qxd($IrZ<`L3689c%@%s(#iUH>{s!DUq!m#*sf?!`-Qq>Y0je?1 z8{jO-*tr??ZuOI2tLjX2<@-OW)c~6r?)#?$`z_=RGv9}t8p7V=LW$Q}rU7LJuoe&m z6a~sC=vdKPu?RCx{6tdu@>0AMnfDH4m){tsWsKw&+4JV#Zaw$Xr4cKg!+iu)Tnq2R ze>Q&m!#kJR{7DIg{9nOT(lcABWwp8RDx#BgKU!72YsmM=;^sTYRCS6pQ-(Pt@^&9F zDSnm#LtHVsR?TK&e{nr`ZE+?t>JDRHrdl*IFT_;bR5cc)kW3Te38Px%UgMV|FVuIG z$E11{87Hh{8CH$R)Bp#Gbiqz%D<<=j5F_I$Yo*A<G12zf-SFIc+B(YG;cRm$Y+u8! zwT#4THb@4g&2!RWi*Y1_Gg!}98~VcRbNCEn!bj!OqthRbZA3Zq5!fXL^LN9}N5(~? zzBW96uWWoI>EUR6*P)ZS{MW@U@#+fuQ7L*@dyUxxFWEL&rdraR+dwn#$<<CKc;{E9 zrv{My!^v8J!q&82Qcoqyc4aRvP^f{Fvh(rVHn}nvH+UMh^zq4EU5Gl{)N>wv89U-o zdOj#H`ZV_3!{ZNnJGymEh!i|lyCkXti83wBJ2!|v=s+n{UMUfZUb&$ZC~Hvsdw}Hs zA?rkU2@)bym~asyMTv_eBC<Feid85&h$sLMU3v@%iTQ&+`HLTv!DdXy49v>BODVOq z(#t5b4rPT9#vwulE=jouO$P-Bgo{T&kC4cR_b>m!9Gf41KXowa&+#Zpgt<C|fkfw3 z0}z<Zx=<JtJOSu7Mr+|Mnp!Q9OYK&{snhRBXBuIQ`asc?Xr(;3_`!``i-hodmKio4 zJbCd}jt^gc`~?UUB$%yCdCmqdOpI7@;w7jkNhNM|<>+9%DOTBJw>w?~w`uXVrH0_- zY0*O^$4o5-9sv;vnQIEaNJxt-z9#OAvd{Z+heV>3`I~=u%al@PGmHuLKwrzqOw7zI z%*t#`#)Bi+;EMt;5>C8{poWA)l@1aMCsZt`(t4Zic2rAU_0-=p6)F`}uhU)!4Pg|C zTAtEm>L^<ddLmIvq*#ekWx4_=5~e4V^hob-*+HbFStFB)=dn9tLqH8>KgK)>YT_ow zcZ_R>OQ);rh<`Tabs&T8*Ra-jgY5k+f(99W&a;g^MVL%J-xy`u`Ny*vFA$&WTn>NA z8EQ7nwJGd0<RmV0bCrfPoD8#bJj@9pxUp~~Q&F`UwT!JOQM6@BI>Qu6I!_4BC{Q;_ zf8@3>PVtgdR!ypW>-<xYj#P4zK%;w?TYiO~&U_rWNqk%Bk>pZJois>Qnx$2G93{$r zdN%)~^;i*i4AX|E5VCgYTPs?;D%`R)&_WxX^)^`16%kfJ1dgVlp>M#LIcxTuxl7_m zWyM+qL-C8_$%KiKB1?e{Hmhgj6%xlwDr#El(c{v2>-L>1p?DbzGJAMBAOCC{D^<3_ zj%=^Holh7^kW$hzFlfSp4F@hfs2Vw*K%j3ufgw<55@(IIid5L5k%M1Ef+(%5?Jt~3 zi#8p)3<QR!$|mJ=<^Q!HJyYLep@s-p^_pQQl8lOue}+t1vgOECWDy@jpzGmDERm*2 z2`qAzsIpZvmniyNcwkjsy@pL&w(Zz;%%V*l3Ty8@nJv~5B~iLOrK)Yy!Yv?%p~$IO z)Mvzu6+2Gc#4YA!DCS*Cg(J}xElGxT*4t>iRvsuEOO;pG({I$QRl82zCM<3RzrPRM zrx$l)*nkZ<1TO)Q6OD=Q#_{Bf9Oat*HhM0%f9=@g<{dg;x4R1;7zMhpbWRrp9}$w| zsnU*N=XJr@fJ5*S0Ga46=!*BoCrL7VQ<(BD>_ThQ4&yJZ(M)$y*P?a1j$N+%oqH6L zF3wS5z=n$eDCtM>b=<Kzb-IjMu;a`vK0PiMBwVZ)-uWUWS)G&1Rjg92W}SYfxASs1 z<7O?}wC^<6o!<=rAwz=+2c8IZLAN+r$~5USWfg}m>~`V7Pl!k;ujWIa!QagiNSYk^ zN>!<!R^8)n)=m0NT6MT?_vYY}uJ|wyHizH?B|VD01b;VIC%TMTu;a|_+o#v>-8_hd zi}k`gU!<H_o=HL3JXf(wwVHMMIlUJk9&YXKEx>rFgNr;<{M!|A3$#Y<F#f_CJ*WG< zeC%<(i#8pu%iRY6qY6{!^g##^Cr_O|SnN8t&xH>ply{Qkq`33?&>FSF_zP<^)1BY9 zXw%`k-2DJBsxWmyKLj5UlH{q<j$s$}!`OgB@Dczy(Y<efw~8lke3B%?H-%66qe5%- z6V{|<yK~-~_IGQ5fRLfVgagkTvHhK)Uos~B=L<uWXYfNriWO;40=TeY2uGbnOlXh+ zEntJLo#wVjpmT?|t(rG!IMdxzMq&Mh(XJ6X&9$Ifm5SxclHyC!%Af=vyn+%bgkO*q zPyjCoa5i8JW6?v<0xc<@NybL)0f<MzphonWmw~!K;Dx^lZ=E}|Z8f`f6Ruk{Z4}mD znDo{|_*185wJH_MO=-P^`EsO5@WCsnys3{cUNoctUJwg@o5v%lP&wnWfSShrM9b_s zfvMvnLAXn`s-#!Nto8dwDtp;({{!0Q4<dLDwkkQyZBnrh0h%uV@SYXE;gvnlm18dt zxrLQ;9AlP=?Y+r?BaT_=dx*A0w?!+Xh0)AtV(q*W_bt_~AnD~LrDPKJ1;SnRFRTa1 zU;{Lre|XPI_gz^I&R3OQ>6sqtwyx{4&1bZn(J>v=l*Y8%`pz<xbz0)EBAf3q`5;0- zS-U#){FrFLGta&7(kou)_1@rBZ}cW_?pprMYBuvQPxE^2op6lN9T86^nUy>r2}8a> z7V?3O5IJh}1e1h-K}0!6PRKRFN&IST*e+8Jaw=q&_-y}L%B)7v;8rzacQ)@beo4)F z!rzpkG%M^;<g>?wHs!`)3Ne`3EM#}snU)&O=*)W7vYM4FXDN$Wn3<n6oO{pa&y<7| zAJ}1vPlWh!kfFJGTZ(t6+Uk}%gJ%`~G{s<3D|lc~B$Y{On_)vk!-;c3mDWRQiu{v1 z4|XJv?-wh}Z{0C@?F8|t8@izA<;iaGx>NefZXF9hOW0IXV7(ipO4i#hSa?ea6W^|J zpD4YS3zEzB#UPu%^r(e}9NMPVddx0<ivE5TSw197X{NfV?&*)qc1X2OA?vxN`bEly z`mOjAn%eW`xwS$^y3&O%bbG5?ZA$1tce>M)p4AwWl0os}lFXeu=C;u_<}$)WlPs~$ zAy?e<!Y7T<6L6zhHaV#S3{-gQ_|-u~;Cy>ZSY<OUmp?g$%n+{liTIKMU(ZAt{%lHz z_H6S>4Ko(H>Gy(iNpn&L(Mj8q)swa&Rxe6hZ&8|6_gdf};k-8t3`D_JVDm`@htAsn z!k^vyxLrX}Nm&I32S5}Wfn37T!%>A%n1oqagjLuK8!;*mF=qT|mW*H6x$JOTShe=a zLh;l7rsdlS|M7nRfonNDfk+}#s5Cl*$zpT3Jib6E5=*33TVpN1fS}M7x1Xi@Yf*7Y zX`{08#!Z^H-n7}l``+-nl2V{+^~1ei{oY1JrEHU6f(s#}&<lf5gbv{K?gcB}=zdr? zi*3)8IZM`T*>mK~l{@dl-+4T4p<JbqiquP^G)arJZDjeOE3Ptp#;nyBS$xotVI!6q zIcm(f6(&r);tlTC^o79z5P?LYF{)S=4o@JG$P_A#&S2Kg68n&zi1|@#bGSUdKqwOT zWXz5xvCL{~tmPLF6cQE@6|)KogCnG6WRY^>D#!FmaeqLTtyo<=B$8quC|-&l)JT>5 zv@#{Z;b-<KQKcK^OK)*PU70jd>h)*Bndl_&LYi-?@Mk^cIeekfv9%4trJ|+cO<#GM z0cBF?Db2Oxg}}J6t|A@~q_uX|Sk{M-vjM%oTcb9~_?j=@V2Ieg*=~b`tW@T3X{=s` z5MDvj6$(*q7U*clIM%T*@WL0n)WL@ye(B3z?&xDLfBY4Fs4QLRR5Lp<dNNfZ$)~TB zBn{Hqs-@v|K9PDI(8!MH388Ulf5NG*RRo|LJuOV;Ebi(_){=kMi1IXf220Oyn0t<4 z&dGJ&CF`B>!Dg?Na6ZGT=Dl)X-8?Ofd#15hF0^4cO?j%uUG1TvpA$Imp%L&|`cssj zaw(>O%JX{oBkgl)0LfmBOsK+_>EubvPUK7tNfTc68f2f-8YKc%Dx>m9;@_Ra3C!yj zO;EnK6D)%YK1V@W#g%>sMun<*++V+b@>sE^YF*8Sx=jt+np)a+bad_NX>i`hm}COr zf$d@tC%>)^j=iQ4jbA5>#=jGvEddxf9BYEA6A%({B7zp0SQa$l#E6q1NeT!U1QZOM z927JREF5_Xyu={8fgZ(!T;*zWJ5H>!XrPRTIW#O8(-AX~4NCMraycX$&1BCS`JP%j zWEjE)zmDjqJU0mr8)&Gh42Y^*!C4DVOa`#YV{?GorU~UIG5ot`Mrq)JGbXgK|B5Op zNZ=YL8TH|&9UpG^1YzJ0*zr%$ilUO<^|Js?O(bclvT!64mblLYT;GLlTE(G86e@`r z@SpMgfhJ5ve7-TC*iDlJo-O__b=&(uzk)so60CiS=qxkMYQ)EQ8C}o6ehaMG9SOUA zrS+OkSN5@uJ)!Y)P2(N*@}g}b(N0ot*pS$#K?&!L#Fq-L&5e^J9Vw(z2ol6damDms zqrPh<si0D$P6Lfgpkd)%-RJx5P@ng=p5bdB*4ABj>87QcLx;{W+wA-G&RTTrxVjhH zdnalYyVELWc;3bLyPYsnPTt_{O|q)i+MVslepoXuDK0VN?&bgaBXu6`C9;p3A9U~e z8xvC7l`2}RtgSpF6&a+T)fNM*Tz1E;w2oVSEisar$W4vS^l#g22NP&BI_R)jc~!Z! z(ng^X@v!3|07aTE8VH|0Ic2c7^Bi@QQV#h&VX(P|{DLqf8cUFtQ&HE_L1Gz{x^2U~ z0`ZC2CjVq1su^3pW>#*~IrBy(m97&Vo0uF3rf1t;#MzA3bcz^;BB!LLiv=KEk<mEX z#fvO4Xvi|l?c60+yL)*ofFT&f1T4VjL-9&#MlQLjln}pyGq{OIcmWU)Jiq_}7@z_J zSilDfXn+W)0~2(?6mSC+P=Eyjkbnx3APWkh3K|f4Oo9jmkbn%7;U+i*F(|@g=mHp6 zkU@+SMFJ-{LLeNXL!P4R+ekPN^an?sde!S4apW-v&TB_zoC%q<HF5EYNpFYhvM0PR z{vI+Nb1zOj$o-DeCjpvx)zpxqt)W(iX|<mOsmUoEJbGl5IB1U|0%2xTRnzA1SfC<s z)CGL=tdg2$H=#qZ0m8%Fp4%e<d6ieH=rH`^yYs~)m#JH)I5OCFpxQ=rqL2hxQc+bK zL*Vd)KCS5mAxJGJ=%ooGp~wCyOvhqunKKp*?D}}0EK%cl13!i9_z>SHA|n7q6re{u z5Ka~XD$s!gJm4xK4B$a|uMEh8@=19J>kVKg+)xU9^cX)!@TxYBf{6kn5b?!kc60QC zlW+q{pH%Hp9U{BJyR$l89D9)dZ3#~e%6d}WsI4zhdP$&X@4Ka3S;k7#$V)ZO8?_?S zth`y+iJbQ&oY%!7D%h{LQbwDZrdcv0GcXCzd%UL-MbJ?C{<b6hBAr6I)$p%p_m4 zmA^Rq?_PCdz5D-zZ}|HR`)M#fb3e0y5BciA>bFm?g$Z7N0B>&Ju#QL7NAh?a<)yL6 zL^q?-aO+X778;R;R5g|%3ZcDT{c@JjTa7qBPgYYpFP-nZnNFxjtT3hCj_Lp>#NK%A zU+oVuFG9`T^IFd?ZnRbMwAc8D(V3-L24+kevLBeMewV&OufyNO%VO=&qcrGcK+u00 ztwp~baNZ;t3{9Fp{*CbBI+IqfS-YiH;(}5bA&5VFrrgb2(!f9cp*yn;5{5^HvPb-s z76$<if@4O$Sp;zcoh#On1R+rv1tOKE&AL3Vd&d9`ExsW$s}NCBn?zw4T*P9(S#i}h z*S!Gpe^V|}J=juOLNn+!GqErwuz8uFaP)-84(Xj_dKR%W3|l7$vkaUWrlGH#McLt? z>_V3q)?7W?#2mxpi(#=sOS_-n-p**XtAJrW9WA}4bXcG9CibwA&p8tPlrA&qOuw;K z<cL1Eo8pSu;TYtz94;?<;0whqx;R6YZEbJQ>vB--Z&Ma`eHGRUPdDzsU5nblWM)DB zomVzajL#yCRpCwYAH)w!JKC{^yWWJj#QuMeJ<xM?D1{^?6z=+I9Izs2Riu>>R!3PM zYg@AIDR!jUnQBX-BZZC@Iacg=i8Ix0ZNB;v8cS&p(-N#HycvY^A;ON*t<zmjZ?v8$ zyDAtcZ#dCtReLIT$p6}k)6Ld3Q`5z!)SK37Mx$Aa`SkJ|6x1)^RJhe*&PBNt=SqUB ziSA5tSF(FjJyYEaopj{9VwYWT(fOk7bxAflQP0EWd@U^Ff*i>3GR3`V?knm3QXVMn zXO*2Ob+DH81>UYiABK9BeAlGqLQY5YN_XdaM(*lfe!p6u&8W`e2lmQXp69JGkU5Dj zk@+B|a%U2KN%*cXPaqXZ97ZzcC=>+@nlyRJHn5sRWbARUG5Xdb%)|uTB<HZ}OldQ9 zxGr;y<6MOJCGiUu=H=rTfC>spU{DblsVCCZztx}#$(VwxghuKVgU+P47;LJ;=rVcC zJ{CW#gp|Vr#S_g7!yBs{j*mQF1$I0?LO8)%ac<0y`-5DB_D^VxF;m){v8;OgzM1f* z(1ysi=#JEk^sIbFA*+~E$*UIB7S&4{fo9pDXLy})w@Hs_ug$RSh-K7i+&SrK#q+9{ zHE$cfFZtc{x8;Ak@AjeK0qH^6A>puiL^>)TQ;w_iT11Z;7OZt!!`^hXoNZUf-SzbR z5wWP&ws!N;cv{}Jwxf59uDP#spnIryq<`#kxc=NOcene;!|U<S`@bK;7t&X1>-HA~ zB^@jNsiCE=scp%!zpK)7IW<)%YMt#rwyQ*R;xHN2YE-}d>m7)xYyY=)Tta-I6Vc_F z{7a|VEsKULD&Uj)*c%)!Rh_0m*JNlhS!^9wkttLKMVh3Pv?v<OU_l%zz{T8^lt8L) zA<C4kuBlb7yte=M=ZcmrS?;fu^{n>yss@^LfA|0W(=whw!(hW<+JblZ=go~jt(}-c zS15dbfCIiHAPoK?KscgNfCxml0Fj4xe-I^erp2O_cZ!qK<*tAtiUM4l&we82V1rn( zW{DH$ym(dhP)&7nAeREfgn(4UxPUao#DH}8!T|SYhmjiJR)k$S@G}8&;THqs!OsTB zM@$W94L=sprb4H*eHGpa+)%*J1sDdu5MVgGIKT+R^njJfUIA9Y7X++EGz+i>(Kx_b zM8g2<v>Q=9R#<PnUK?zHwb4e$*Cw3IlFc^bv&9xgw%RJeHrtf;b`<_hJPcZ?FGHUi z#4tE~F|)j2S)S~TQZYECoB_9#B($!BBc?dykjP<&9pQ*0e&VR(o^`?rUpx7#pXB#B zBXt$4yUuImg6g~^Z(Y{b71xYd*Nt8`d|x*$b;~`g9``RneLsLh9=;#b-cR7(dg{0J z%#X+O>&jb8@*tk11pO3662P+}iy1s0Iq@Q1rGot$ThZiAyek?4cwaOH@S)fb;N$3x zPw_1c^xbza`v=Ci_!+;`e8Bzyi|P1_U3C1z0RaDRd%gn-M1_e5Sp29s2_W`SRGoy7 z3yM0E2#Da1x~UgDmL%#=Qn)4isK<E$mlV-pQo<uuG?~;0NE59mEl}yA&7?<6hG;t( zk&r3cO=iSpiI$TU5!s@{WJg(!=r}o15fYu|V^rme&XXH8d7{VUMN7WuJNYqCAO=oB zOcaX2Qy4QvV&oLXO6bQhtu8QE{9_0%us)IiM+%(MF>1<Sqil?xa@Zbu98`#LQxQj% zV!~9$NtGBsRe`G(Q>QuzHDb!t<f&RQb86$EPRyOU_^21Nr#@cCfB+5e7JQ8WR^wPU zO+acIE2bH7!eaR}CrpdjJuP{!RqUD8e9$KLPg_1}7kj5YpLB@B(~(5sab!A?q;njf zPe|1zj?Skfi-@z+l^osT%ycJPkGMEJ$<r&YPH&3ziR;ss68+-F^rzH-xH$tUGbnD& zV9E`NJ2R9@k@04R(Qf$d|8E57Hu7Ey{zc&rZ#4LA%*7iE{`xGwPZWPn99btGc0W95 z3h?W_T>MYMBiRB>e$X9YZfu%)JhwU?Pc(I69>Hpc15ssSA#*T>P8=|YV&xnr+>y9F zN2zcu?#^+(I}!KhBvnq`OZ__ys-1}ka~8DAQDd&a=6ZCQ8>qV-tL6?7o<{q5hLV>t zYhK~$byS`=ka`={=N+ux$FBMC^X@m8KyU&O%$P<OEN~7GtoR>Y$l)L$v<@{hCRG1< zn8UPsKZOYk+O8Hm>@(moH{ncp7MB3wRon%H&vq}vHv+zR2mle-;hIcD(lKRCJOc`z zc&`w6D+ySNRE#SF+at3$3y7RoEq45u@h$f6_#Z!YnaBgwe9Ws5onj^EALuQ_pRD#w zlIqk^)TD`;X3aFTXtAJ8yG5P4EbGx@)o=Z_;S5<bY0{}FQ!Y%Kc6QC+;L5C7N9N2q zH*emCMT_(;St4!OG9@cks9Uuf26r@Z;NTlVN}Hib0yrl>x!6*E@PqxgfRQee!_0qs z7s9Th*q72F=|s~^U3X>}E=<!4{?==e_ul#Fhfh8k`s}l@FTR@k?z_3zz{1$r9~S=b zXa9|||1l}|EHT}eeR%LrF1L*!hzAb}6t%%e$o^+-Z5zp(F+;UrL57J*j+xnE78V*S zyD3gi$GN$k;NdaD%ZuYf`K$W20%Zb~D;KRog=Z>N%YlYgtVWMG7#Qh(_$NWHUb*`8 zDbQ~~9xSXvI72dw8Ixtggc4Jxl$tT4%$zypmMlfZ7C;J02dIb{Bpy$avs?(A%mY`h z46hIz2M86)2oe&WFky@(NPsU<A`?lH5J;BHRGKu8q)TTeLk2>bGQniY0+KD8xm>x3 z<jG?pUp}w`1uT^-N322xD^;qHs8-Dy8XBn@HEh(XMW#+2Ta6l#YtqC{t5y`+w6WK% z2PF&)2ZIJV!oi_7WC+}-Q8dPkaWZZktqBvHO`1e!%9JOTEu*($g^P9T7;M<^)TT|0 zwroMzw~xtz1Fnu8W9}0a?gl|xBLtyGj}UzZM3^uk#*7&$FfcMKSde4GhCEw#lsR&w zDn|}sxpG0z_O$__c_%(VWC28!4KlI_a_S5UvII&h1Ql5ZHFW_4*#RT<288V5G4%%z zIRY;=f{z@6p9VpI9D^VYfe<+kVHyfaau!lF8Pen&WM~Rx$tB3qbjXv-P@ox5Bv+tB zGoebZLyfM5I=KN2ngdO86IwJE+T<2=Xc2VDZRpWr=#x7zpe3*%_hCuvU`HOno_4{3 zJc1+b2An*G6YYUBd4eaj7cS&Ap3)&8$Q!uQ-S8kU;7JGIM?S)zjv;`2LLeOnihM>K zJ&$<u1<&aPydYokl3v6s@*S_~C43=&@ReRg0{M$Xx`-t556Sd4QpkU#8kpWenl!=E zrJLw)xDxMN><m2R9pL24H^`$a0JZl_AsIpu#iN)Eql6MrN=8sdi70Pmr6Ls}r81Qn z+jmehs>nF1DFtXUff`ChEty0erJ<fop@GuTNT$(58E7UeXrW59l2x=(544jtbWjyK z$vV2IC%VZ7dZ-#0vWXv5gP&vzzo-{}lWqK=TKpv^@Q=o#mz+c&jYB`VivhX`SaJ`8 zbTb~;9e9u>#~=qU^5i%aprJ@kKnXg^WEv_k5Re(D!bC{sQG<m#F`@w*O|pO%9JGlE z9k_^y8QntL8X7wfC1pNH7K4IyLGsuu>Fa|Oa8S551Sw)zco%_`FfKWkfRr&UDI0+_ zF)RLZkVQByu}wgFa9U`af%Gx;A@0M9Pe_riI#WThVkI6Poo^iU)T&kE=hqMr&=M9_ z*REYtL`2&!e%1BB0~Ou6Rr_}oR_+1KROG%M(EiVG31((0i~mO^2pTJ^v;N=@ntFL2 zE>4^T8yngmkvKa$O1$1yB}kC+l9vSgO_bVNp#^B-Bm5vqN*Wn5GAM*%@&d|~4N;+D zj4Cx<t&JkQK+_vO41M}W889#+NRa&w#s~=@BP#i^XHYIX4kKg{AMcaj`W#<UfTT#F zD^DIf1qyg7RLEYj5)R6gfvZr#Nu^5Gs#I}Pqn5LJ4O}#9=B`C6gbp3yafcG(pcpM$ zCCz~0zF@>?83e={E?icd4<m8`1yu?LCXzV|&scI0#F4Wo@4Xi%L9#L_QZ-1E>AO;; zn&6E5t@)UUgFN`~Wg$Qy9|%ZCksKU2io!z3fRODNTOdT7mlw*%Cm<ogFC`_WriL*$ z=ke^B%ZnFg?>@qIdteXl1Avb^eA!T3_V#$kfAOu40r@3K`LaY%DgHqYCHe2ERR5BV zT#En5M<Mwi6{D2mf67rw{^zdR5d`WQmNcW4{IA;4NwK0Ei^>0fO>G%YW^h&DxP~fK zR#dBYFCU+Z8a4i3KtQ>hP<X8eBASa>?xBn5+&rC;|L0ZbKSLu3m%U?%3x*o%9wUr! zmr+K!+d>PSx5N@>EwjuS%Pn`#Dy!qv9c3{GtEQW-ZmFd%>Fj&&{`nW%%M8D461*7q z&Wq#3$x*f<M}AxvDBJ#B{(kCsh_U_O(5!&Y%##M*2%=A)mf_60Gy(67=FBtF6uc`2 z9W;5n00`n;Uo$;+`|!{4PX@l|&YNwnco;Ju;{?|$0R|xL+~lWar^0TbOK0RSwOK8G zL;8CzZ##cU$~F6p#WKXm*5dnODeR)KLm-L8q<Vm4j7$s*^YMW0I-&FIsWkQp=PiAw z%roCR^sm%I4sdgSU1i)`xu>?GthlL5Vn-D2>KH!k3gzqeR2Fjw-7p$x4OTeAs#-1l za}Jy3_pz?n^HTxThlX~nEAT@`k(_UfS$zzwD{}4Z>naxLz{g5uf~1Ifvg<HU5+KH^ zAIGEA!t>f#M`*MCSk8&N=!VJGfi+hQPa3|8&tJ#J-<^G?{1LN+&3l2_Zqo<G59{kf z{=j7G7|*}RM|sGtD`D-n^p(#w>QON1tBlSPKvF!;i2CKNBvBl95f4i)EPUHkiM*86 z@uCehkzUnFp6NZ1D7l4a@UKV+uWfBjU?5RqCV^*~`<Ou)Do-heSn+&2_>ReecPZVu z-JVPZc#Qzhb&;9&tOl(<#Qh_puvwAvVEAHjlQm})*~AP5z2%$bvKaMvHd1_X6R#Z8 zhl-KI%L;BbFmUK$g_>xxq})PS$Fkz|5nnI55u{<mah~yLaeX%XKHql3jG5N)dj@{@ zu`T#!vkjaz)Fx)K%SDk)JZmS1fJd!5-;?EtsEV{WdV-q@ARx^mbMt^nMqBV#l+0rO z1x+@}v5lMv>wkS=zy#kE*wsp=_{}}xQBjygr*3C%`!aK87ZL*qg{=s20qVlUxsTD# z#g)dF9u3Ub=YtyHLA%%1QjXHT&w4^3fIINXq)XnGlaX4s(h)hvC407!2-(usLZvX~ zkeq|bb`uM=?DKu*%pp!}t_LG{vSr{vtqxRdFv@8mx^dW?Txo)W0jIVsMp{*_g@OeM z^oNJmS~NCl=A~bggnYL=zrW4?^y1K4b_gy1-1*Z*`3MV{5{8T!U<Tfn&Vd(I+o2Qh zu*_~cskP(H@=&xdA#4(zuFJShY>$c72({N=;DF|M`6?+4a3T5C!r7(ykr_%L;q=w= zwfKLdON#${ju4N8;h*t7&lqvzG+dtNtnXCorj@q1X6J3Jc>x<Yh8ISu&yrLrFLi3@ z(S^Hxe>N}6$09j=+6T(``K)xyaT9FpUo$qZ$XEDQisbq1?<jX$M3Li_9SnB`-KS8@ zmE))Lnpl|<)e78>&19Bys1?sM`PqGDlOh*Mus#zZVnmsrgR81rk4;`+CBlU^W09{C zFo2e5!Bk34U>XKhKwHE}v~FECl{Me*(BQ5X);^?@82Gb~uZ=d3wKbnJ0R;?Fp641g z8*7U-5EV|{UtG8cYQfTFof3xD6OZ+bj_$ve3|<&+oPo-{>w$gS1`Lytn{jUC?zCx- zM;x|Dek%3yhzc4%Iuh}Y#d=eD(@DRyP`lq^zrrmNg;&kGSUQVvcc^!DXm;*XQuf_b z=8a~IjI_!1@%q_k&DiT_HQv0_xhJjne`1y~5stIx6F9M<oTvDVweT3Rta0PvVgV+5 zuul-mj?B<Te!-)8vo$FqTEjD;Y+mWb%TCSd&=`x4Wldp(9z?gHYEyPH_<=AFxM4?M zMn}h~#o3J^mijs|PBvW`&uWtExoK8!VCGf)l|u*CiW4WPs=dZypzP{KXOlFbXaTaT zcu>x2Jpm@e{&}IA9(L)yfWw58h-OE&NtCvsgQxEFh%_RGuBF215+joR&4kPx&Vp(w zWkq0S*^-#+(?jC&T=&Dri{otoP+WGh2*Kq!1`GQaN1eLi6oy1Wg(z^=Q*=044SFPX zW6MAvGa|9UnYngew}oR&ei2|BI}z$$4F2OB4wJr^famx)vfo7MhfQ}*NP2`%Oa^F^ zo(k8L&WQM_g9)+I1!g2p?^sY}X0jr3j%7>AylHyK<r&9(YI^bQ-akJ8zVkC1P~QQ= zG5-w$?}Y^l|3wj4!vk;5LhN=MB;uDoC`2z;q2XG7fI-qq{bNyOwQxvT8`vX$y$ql1 z_4`SXh?vApP4@(e<BRM~w*9B8(X?H9I_W~Y1ex7yw9Z=~3#V#l5OY`kcPVuJp(=$^ z@(E9!U%L`yXZ(p}?Q_~qe@GC2_%f*yTgi9skJ<l_;I&2r$<@@x-#d`<$tiCpkKZzX z*4B`*`hu!uujhXWA@OA9SN)$~o<&pT5*H-7HJnravoq4Uh#{{?HyU4D@IPn#w}TBV z0XfOLK>07TRn#)lyq5h3oubT?PQ9_oJ2&B=x~FXj*N7#1Aw#NgWgez2`Rt_CY-o60 z=fo>iVm*rHL&?hY&?;K~H90(Tg!f1C$4VIvOmGGR(fmZm@mxKVN497s!)lzQVadOL z2Cpagnf!I1FITr0#3+-Dleo&o7b&Ek9eK6LF?aVyt7TeUFtk6ik5V$My<M&mHc<I= z`ygJEEuIy@5p~EiMlM!T{`6;=q4+z!l+XPpkv}rq`M2bli@9C>fRVrtlp)S#W*ii_ zbHvN*!hO&nZ>0=myuaqtRk=bf0fAS~#wU=>Cl;BS(3)H}qDE3cVvRTjyr3y8AGd<& z>Zz(LuuNJlmcq|oZ5ZY!!ythJ>T$hPmXFcdB1@T4%aTaE>SH09L$vflBo~v|WMnNR zPL*Xd1gRw7OhC6L+2EaAaO#GZ@m6F?^J<8do<r5<@{whZgwunGN$`^6iWN?5*>!oq zy|ZTBc{drpkJw@`pp%G1jgoVC?Ro1Gn}f5uGi)_MbJBOivgHMNzlxN}IAwJ*4S$l3 zN5=YRgx+Hou`A-T(+7Cc)qN8a8i%E@hG83=C!$q%Pxg64x~7h*!5;m{(|2HG&YZ4g z@@`Z&u}@|TN#h5V_5yy8Ku&{nF-9mTm0vyHj;%Q3y%xYGWt&nq!liRY8@os)QnoE{ zTIS6Tpt{5o6=OV2Iyx^mWJQuu?S$UuB$A>bltw7T+akW<jAmdFwi$<xTol=+Ax#;H zDILw92y#d$)upWHRUfxYo70bG+7(@ckid|r+G6PbM4ns(5au(XbTo|?Lobyhd+VOc zOgrJ_j8&A5WI8G_Db<#&EJikVC0!gTF<Fa|Ylc>{ABlB}j3Ii{#zxH|>JUqins#n~ zP;T(jDxO&GMMlZX`czW(d>NIM6wL5`BPAJ<x=Xqd9YXmm!nT=F*2mC5%4jS*xn0VL z6{IaWN<Bs*oU>p%nGvgUjZUld=qYmg7*r9TNax=EE>$l_bgMG%-taSIu0vfFEbY!8 zW|)(gPz?$0oA7e6LB>2XiF%RA;0LU}K6g_v%`F?Jv6D$1PpcaU;O!-iXsX2|c<Q3I zZfQRz8QPG#k@|u$v*Tbl1s1d+$y`_Rl}7rwMm~0wtZ0a0v~%;r$nHAy%ANg0tdh}+ zW0k-ind+D2ka0mmWi*;{Y?8pDY!HepPKvP97}jQ^)R>NA)A}4=Q}QT{F?Np2oob4) P+l|v+z9Z!Z3+RACJQuc( literal 82304 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 b5V+hK^(i)Nb4C59r6JXeca84r3;+NCVuN@v diff --git a/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodepro-semibold.woff2 index b2b00d64a52e97de9a166b26a92f4ed8ee3a9c83..3a24fb6ecf7a7b3d0f710a97d0d0be55386f68f7 100644 GIT binary patch literal 77380 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 literal 82624 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%0DLF3 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 diff --git a/pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2 b/pkg/arvo/app/landscape/fonts/sourcecodeprop-bold.woff2 deleted file mode 100644 index 45ee40a2b0c3dca571565778fe153505186c94c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82452 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 From 013993b7bcbbdb3670b3a839d2dd10489a75c9d6 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Wed, 17 Feb 2021 09:16:07 -0800 Subject: [PATCH 14/27] links: adds titles to remote content Fixes https://github.com/urbit/landscape/issues/260 --- pkg/interface/src/views/apps/links/components/LinkItem.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/interface/src/views/apps/links/components/LinkItem.tsx b/pkg/interface/src/views/apps/links/components/LinkItem.tsx index 8149fc580d..9a29614f55 100644 --- a/pkg/interface/src/views/apps/links/components/LinkItem.tsx +++ b/pkg/interface/src/views/apps/links/components/LinkItem.tsx @@ -119,8 +119,10 @@ export const LinkItem = (props: LinkItemProps) => { overflow="hidden" onClick={markRead} > + <Text p={2}>{contents[0].text}</Text> <RemoteContent - ref={r => { remoteRef.current = r}} + ref={r => { remoteRef.current = r }} + renderUrl={false} url={contents[1].url} text={contents[0].text} unfold={true} From 1de696452637d65ca0c1400a69dd5e1acef27a72 Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Wed, 17 Feb 2021 14:04:27 -0800 Subject: [PATCH 15/27] interface: Unify timestamp behavior Fixes https://github.com/urbit/landscape/issues/398 Fixes https://github.com/urbit/landscape/issues/264 --- .../apps/chat/components/ChatMessage.tsx | 36 +++---------- .../apps/chat/components/unread-notice.js | 13 +++-- .../src/views/apps/notifications/graph.tsx | 5 +- .../src/views/apps/notifications/header.tsx | 6 +-- .../publish/components/NoteNavigation.tsx | 8 ++- pkg/interface/src/views/components/Author.tsx | 7 ++- .../src/views/components/Timestamp.tsx | 54 +++++++++++++++++++ 7 files changed, 81 insertions(+), 48 deletions(-) create mode 100644 pkg/interface/src/views/components/Timestamp.tsx diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 6252383ddb..a0e3ad671f 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -24,6 +24,7 @@ import RemoteContent from '~/views/components/RemoteContent'; import { Mention } from '~/views/components/MentionText'; import styled from 'styled-components'; import useLocalState from '~/logic/state/local'; +import Timestamp from '~/views/components/Timestamp'; export const DATESTAMP_FORMAT = '[~]YYYY.M.D'; @@ -125,9 +126,7 @@ export default class ChatMessage extends Component<ChatMessageProps> { renderSigil ? 'cf pl2 lh-copy' : 'items-top cf hide-child' } ${isPending ? 'o-40' : ''} ${className}`; - const timestamp = moment - .unix(msg['time-sent'] / 1000) - .format(renderSigil ? 'hh:mm a' : 'hh:mm'); + const timestamp = moment.unix(msg['time-sent'] / 1000); const reboundMeasure = (event) => { return measure(this.divRef.current); @@ -217,7 +216,6 @@ interface MessageProps { export const MessageWithSigil = (props) => { const { msg, - timestamp, contacts, association, associations, @@ -232,9 +230,7 @@ export const MessageWithSigil = (props) => { const dark = useLocalState((state) => state.dark); - const datestamp = moment - .unix(msg['time-sent'] / 1000) - .format(DATESTAMP_FORMAT); + const stamp = moment.unix(msg['time-sent'] / 1000); const contact = `~${msg.author}` in contacts ? contacts[`~${msg.author}`] : false; const showNickname = useShowNickname(contact); const shipName = showNickname ? contact.nickname : cite(msg.author); @@ -342,19 +338,7 @@ export const MessageWithSigil = (props) => { > {displayName} </Text> - <Text flexShrink={0} fontSize={0} gray mono> - {timestamp} - </Text> - <Text - flexShrink={0} - fontSize={0} - gray - mono - ml={2} - display={['none', hovering ? 'block' : 'none']} - > - {datestamp} - </Text> + <Timestamp stamp={stamp} fontSize={0}/> </Box> <ContentBox flexShrink={0} fontSize={fontSize ? fontSize : '14px'}> {msg.contents.map((c, i) => ( @@ -397,19 +381,15 @@ export const MessageWithoutSigil = ({ const { hovering, bind } = useHovering(); return ( <> - <Text - flexShrink={0} - mono - gray + <Timestamp + stamp={timestamp} + date={false} display={hovering ? 'block' : 'none'} pt='2px' lineHeight='tall' - fontSize={0} position='absolute' left={1} - > - {timestamp} - </Text> + /> <ContentBox flexShrink={0} fontSize='14px' diff --git a/pkg/interface/src/views/apps/chat/components/unread-notice.js b/pkg/interface/src/views/apps/chat/components/unread-notice.js index f66c0eb528..ae7ce822fe 100644 --- a/pkg/interface/src/views/apps/chat/components/unread-notice.js +++ b/pkg/interface/src/views/apps/chat/components/unread-notice.js @@ -2,12 +2,16 @@ import React from 'react'; import moment from 'moment'; import { Box, Text } from '@tlon/indigo-react'; +import Timestamp from '~/views/components/Timestamp'; + export const UnreadNotice = (props) => { const { unreadCount, unreadMsg, dismissUnread, onClick } = props; if (!unreadMsg || (unreadCount === 0)) { return null; } + + const stamp = moment.unix(unreadMsg.post['time-sent'] / 1000); let datestamp = moment.unix(unreadMsg.post['time-sent'] / 1000).format('YYYY.M.D'); const timestamp = moment.unix(unreadMsg.post['time-sent'] / 1000).format('HH:mm'); @@ -34,14 +38,9 @@ export const UnreadNotice = (props) => { borderRadius='1' border='1' borderColor='blue'> - <Text flexShrink='1' textOverflow='ellipsis' whiteSpace='pre' overflow='hidden' display='block' cursor='pointer' onClick={onClick}> + <Text flexShrink='1' textOverflow='ellipsis' whiteSpace='pre' overflow='hidden' display='flex' cursor='pointer' onClick={onClick}> {unreadCount} new message{unreadCount > 1 ? 's' : ''} since{' '} - {datestamp && ( - <> - <Text color='blue'>~{datestamp}</Text> at{' '} - </> - )} - <Text color='blue'>{timestamp}</Text> + <Timestamp stamp={stamp} color='blue' date={true} /> </Text> <Text ml='4' diff --git a/pkg/interface/src/views/apps/notifications/graph.tsx b/pkg/interface/src/views/apps/notifications/graph.tsx index 7517b0b505..96d71ca2c5 100644 --- a/pkg/interface/src/views/apps/notifications/graph.tsx +++ b/pkg/interface/src/views/apps/notifications/graph.tsx @@ -22,6 +22,7 @@ import { getSnippet } from "~/logic/lib/publish"; import styled from "styled-components"; import {MentionText} from "~/views/components/MentionText"; import ChatMessage, {MessageWithoutSigil} from "../chat/components/ChatMessage"; +import Timestamp from "~/views/components/Timestamp"; function getGraphModuleIcon(module: string) { if (module === "link") { @@ -216,9 +217,7 @@ const GraphNode = ({ <Text mono title={author}> {cite(author)} </Text> - <Text ml="2" gray> - {moment(time).format("HH:mm")} - </Text> + <Timestamp stamp={moment(time)} date={false} ml={2} /> </Row>} <Row width="100%" p="1" flexDirection="column"> <GraphNodeContent diff --git a/pkg/interface/src/views/apps/notifications/header.tsx b/pkg/interface/src/views/apps/notifications/header.tsx index 7d7644b1a7..4406546b2c 100644 --- a/pkg/interface/src/views/apps/notifications/header.tsx +++ b/pkg/interface/src/views/apps/notifications/header.tsx @@ -6,6 +6,7 @@ import moment from "moment"; import { PropFunc } from "~/types/util"; import { getContactDetails, useShowNickname } from "~/logic/lib/util"; import { Associations, Contact, Contacts, Rolodex } from "~/types"; +import Timestamp from "~/views/components/Timestamp"; const Text = (props: PropFunc<typeof Text>) => ( <NormalText fontWeight="500" {...props} /> @@ -60,7 +61,6 @@ export function Header(props: { ) )(authors); - const time = moment(props.time).format("HH:mm"); const groupTitle = props.associations.groups?.[props.group]?.metadata?.title; @@ -93,9 +93,7 @@ export function Header(props: { <Rule vertical height="12px" mr={1} /> </> } - <Text fontWeight="regular" color="lightGray"> - {time} - </Text> + <Timestamp stamp={moment(props.time)} color="lightGray" date={false} /> </Row> ); } diff --git a/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx b/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx index b3633df3fd..48cfeb87e4 100644 --- a/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx +++ b/pkg/interface/src/views/apps/publish/components/NoteNavigation.tsx @@ -5,6 +5,7 @@ import { Link } from "react-router-dom"; import { Graph, GraphNode } from "~/types"; import { getLatestRevision } from "~/logic/lib/publish"; import { BigInteger } from "big-integer"; +import Timestamp from "~/views/components/Timestamp"; function NavigationItem(props: { url: string; @@ -12,7 +13,6 @@ function NavigationItem(props: { date: number; prev?: boolean; }) { - const date = moment(props.date).fromNow(); return ( <Box justifySelf={props.prev ? "start" : "end"} @@ -26,7 +26,11 @@ function NavigationItem(props: { {props.prev ? "Previous" : "Next"} </Box> <Box mb={1}>{props.title}</Box> - <Box color="gray">{date}</Box> + <Timestamp + stamp={moment(props.date)} + time={false} + justifyContent={props.prev ? 'flex-start' : 'flex-end'} + /> </Link> </Box> ); diff --git a/pkg/interface/src/views/components/Author.tsx b/pkg/interface/src/views/components/Author.tsx index 8428121e4b..c3e02c43e0 100644 --- a/pkg/interface/src/views/components/Author.tsx +++ b/pkg/interface/src/views/components/Author.tsx @@ -8,6 +8,7 @@ import { Sigil } from '~/logic/lib/sigil'; import { Group } from '~/types'; import GlobalApi from '~/logic/api/global'; import { useHistory } from 'react-router-dom'; +import Timestamp from './Timestamp'; interface AuthorProps { contacts: Contacts; @@ -31,7 +32,7 @@ export default function Author(props: AuthorProps) { const color = contact?.color ? `#${uxToHex(contact?.color)}` : '#000000'; const showNickname = useShowNickname(contact); const name = showNickname ? contact.nickname : cite(ship); - const dateFmt = moment(date).fromNow(); + const stamp = moment(date); const [showOverlay, setShowOverlay] = useState(false); @@ -82,9 +83,7 @@ export default function Author(props: AuthorProps) { > {name} </Box> - <Box fontSize='1' ml={2} color={props.unread ? 'blue' : 'gray'}> - {dateFmt} - </Box> + <Timestamp stamp={stamp} fontSize={1} time={false} ml={2} color={props.unread ? 'blue' : 'gray'} /> {props.children} </Row> ); diff --git a/pkg/interface/src/views/components/Timestamp.tsx b/pkg/interface/src/views/components/Timestamp.tsx new file mode 100644 index 0000000000..8ae91336de --- /dev/null +++ b/pkg/interface/src/views/components/Timestamp.tsx @@ -0,0 +1,54 @@ +import moment, { Moment as MomentType } from 'moment'; +import React, { ReactElement } from 'react'; + +import { Box, BoxProps, Text } from '@tlon/indigo-react'; +import { useHovering } from '~/logic/lib/util'; + +export const DateFormat = 'YYYY.M.D'; +export const TimeFormat = 'HH:mm'; + +export type TimestampProps = BoxProps & { + stamp: MomentType; + date?: boolean; + time?: boolean; +} + +const Timestamp = (props: TimestampProps): ReactElement | null=> { + const { stamp, date, time, color, fontSize, ...rest } = { + time: true, color: 'gray', fontSize: 0, ...props + }; + if (!stamp) return null; + const { hovering, bind } = date === true + ? { hovering: true, bind: {} } + : useHovering(); + let datestamp = stamp.format(DateFormat); + if (stamp.format(DateFormat) === moment().format(DateFormat)) { + datestamp = 'Today'; + } else if (stamp.format(DateFormat) === moment().subtract(1, 'day').format(DateFormat)) { + datestamp = 'Yesterday'; + } + const timestamp = stamp.format(TimeFormat); + return ( + <Box + {...bind} + display='flex' + flex='row' + flexWrap="nowrap" + {...rest} + title={stamp.format(DateFormat + ' ' + TimeFormat)} + > + {time && <Text flexShrink={0} color={color} fontSize={fontSize}>{timestamp}</Text>} + {date !== false && <Text + flexShrink={0} + color={color} + fontSize={fontSize} + ml={time ? 2 : 0} + display={time ? ['none', hovering ? 'block' : 'none'] : 'block'} + > + {datestamp} + </Text>} + </Box> + ) +} + +export default Timestamp; \ No newline at end of file From 815c64b0740b656d3ba6f1e32867f00c0ef67e6a Mon Sep 17 00:00:00 2001 From: Isaac Visintainer <isaac.visintainer@gmail.com> Date: Wed, 17 Feb 2021 16:52:45 -0800 Subject: [PATCH 16/27] settings-store: add existence scry --- pkg/arvo/app/settings-store.hoon | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkg/arvo/app/settings-store.hoon b/pkg/arvo/app/settings-store.hoon index ef9d09bda8..7410533ed4 100644 --- a/pkg/arvo/app/settings-store.hoon +++ b/pkg/arvo/app/settings-store.hoon @@ -93,6 +93,18 @@ =/ entry=(unit val) (~(get by bucket) key) ?~ entry [~ ~] ``settings-data+!>(entry+u.entry) + :: + [%x %has-bucket @ ~] + =* buc i.t.t.pax + =/ has-bucket=? (~(has by settings) buc) + ``noun+!>(has-bucket) + :: + [%x %has-entry @ @ ~] + =* buc i.t.t.pax + =* key i.t.t.t.pax + =/ =bucket (fall (~(get by settings) buc) ~) + =/ has-entry=? (~(has by bucket) key) + ``noun+!>(has-entry) == :: ++ on-agent on-agent:def From 6ee6a99acf5290685fd6fc9e097ed7df0c28804d Mon Sep 17 00:00:00 2001 From: Logan Allen <loganallc@gmail.com> Date: Thu, 18 Feb 2021 11:51:15 -0600 Subject: [PATCH 17/27] contact-store: upon %edit of a nonexistent contact, make an empty contact and set that field --- pkg/arvo/app/contact-store.hoon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/arvo/app/contact-store.hoon b/pkg/arvo/app/contact-store.hoon index a7c60110d7..ac313a98b0 100644 --- a/pkg/arvo/app/contact-store.hoon +++ b/pkg/arvo/app/contact-store.hoon @@ -143,7 +143,7 @@ |= [=ship =edit-field:store timestamp=@da] |^ ^- (quip card _state) - =/ old (~(got by rolodex) ship) + =/ old (fall (~(get by rolodex) ship) *contact:store) ?: (lte timestamp last-updated.old) [~ state] =/ contact (edit-contact old edit-field) From c4dead9661ac664ccb66fe1c054ef49a0c689b9c Mon Sep 17 00:00:00 2001 From: Logan Allen <loganallc@gmail.com> Date: Thu, 18 Feb 2021 13:19:52 -0600 Subject: [PATCH 18/27] contact-store: fix is-public being set to false on frontend --- pkg/arvo/app/contact-store.hoon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/arvo/app/contact-store.hoon b/pkg/arvo/app/contact-store.hoon index ac313a98b0..85ebc4afbf 100644 --- a/pkg/arvo/app/contact-store.hoon +++ b/pkg/arvo/app/contact-store.hoon @@ -101,7 +101,7 @@ == :: ++ handle-initial - |= [rolo=rolodex:store is-public=?] + |= [rolo=rolodex:store *] ^- (quip card _state) =/ our-contact (~(got by rolodex) our.bowl) =/ diff-rolo=rolodex:store From c00c3325f274e96defcb59414b85796f35c3128c Mon Sep 17 00:00:00 2001 From: Tyler Brown Cifu Shuster <tyler@fivepaths.com> Date: Thu, 18 Feb 2021 11:56:58 -0800 Subject: [PATCH 19/27] interface: added missing timestamp import --- pkg/interface/src/views/apps/notifications/graph.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/interface/src/views/apps/notifications/graph.tsx b/pkg/interface/src/views/apps/notifications/graph.tsx index 7c9d853f1e..62cf4b2e4e 100644 --- a/pkg/interface/src/views/apps/notifications/graph.tsx +++ b/pkg/interface/src/views/apps/notifications/graph.tsx @@ -20,6 +20,7 @@ import GlobalApi from '~/logic/api/global'; import { getSnippet } from '~/logic/lib/publish'; import { MentionText } from '~/views/components/MentionText'; import { MessageWithoutSigil } from '../chat/components/ChatMessage'; +import Timestamp from '~/views/components/Timestamp'; function getGraphModuleIcon(module: string): string { if (module === 'link') { From 3f875fccb3b58a66a9db768f138ce721aa66d700 Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Thu, 18 Feb 2021 16:13:27 -0500 Subject: [PATCH 20/27] chat: addresses message spacing PR comments Fixes urbit/landscape#357 --- .../apps/chat/components/ChatMessage.tsx | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 8bddbdeb4c..c88b9f4f94 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -35,8 +35,20 @@ import useLocalState from '~/logic/state/local'; export const DATESTAMP_FORMAT = '[~]YYYY.M.D'; -export const DayBreak = ({ when }) => ( - <Row px={2} mt='-16px' height={5} justifyContent='center' alignItems='center'> +interface DayBreakProps { + when: string; + shimTop?: boolean; +} + +export const DayBreak = ({ when, shimTop = false }: DayBreakProps) => ( + <Row + px={2} + height={5} + mb={2} + justifyContent='center' + alignItems='center' + mt={shimTop ? '-8px' : '0'} + > <Rule borderColor='lightGray' /> <Text gray flexShrink='0' fontSize={0} px={2}> {moment(when).calendar(null, { sameElse: DATESTAMP_FORMAT })} @@ -50,6 +62,7 @@ export const UnreadMarker = React.forwardRef(({ dayBreak, when }, ref) => ( position='absolute' ref={ref} px={2} + mt={2} height={5} justifyContent='center' alignItems='center' @@ -178,7 +191,9 @@ export default class ChatMessage extends Component<ChatMessageProps> { className={containerClass} style={style} > - {dayBreak && !isLastRead ? <DayBreak when={msg['time-sent']} /> : null} + {dayBreak && !isLastRead ? ( + <DayBreak when={msg['time-sent']} shimTop={renderSigil} /> + ) : null} {renderSigil ? ( <> <MessageAuthor pb={'2px'} {...messageProps} /> @@ -395,7 +410,7 @@ export const Message = ({ <Box flexShrink={0} fontSize={1} - my={2} + mt={2} lineHeight='20px' color='black' > From f1b340690edc8d4c8304604c83b335c9eacf51ed Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Thu, 18 Feb 2021 17:14:21 -0500 Subject: [PATCH 21/27] chat: resolving conflicts --- .../views/apps/chat/components/ChatWindow.tsx | 35 ++++----- .../apps/chat/components/content/text.js | 72 ++++++++++++------- 2 files changed, 62 insertions(+), 45 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx index c924d39c62..15f9181fc0 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatWindow.tsx @@ -4,16 +4,17 @@ import _ from 'lodash'; import bigInt, { BigInteger } from 'big-integer'; import { Col } from '@tlon/indigo-react'; -import { Patp, Contacts, Association, Associations, Group, Groups, Graph } from '@urbit/api'; +import { + Patp, + Contacts, + Association, + Associations, + Group, + Groups, + Graph +} from '@urbit/api'; import GlobalApi from '~/logic/api/global'; -import { Patp, Path } from '~/types/noun'; -import { Contacts } from '~/types/contact-update'; -import { Association, Associations } from '~/types/metadata-update'; -import { Group, Groups } from '~/types/group-update'; -import { Envelope, IMessage } from '~/types/chat-update'; -import { Graph } from '~/types'; - import VirtualScroller from '~/views/components/VirtualScroller'; @@ -172,10 +173,8 @@ export default class ChatWindow extends Component< dismissUnread() { const { association } = this.props; - if (this.state.fetchPending) -return; - if (this.props.unreadCount === 0) -return; + if (this.state.fetchPending) return; + if (this.props.unreadCount === 0) return; this.props.api.hark.markCountAsRead(association, '/', 'message'); this.props.api.hark.markCountAsRead(association, '/', 'mention'); } @@ -224,13 +223,10 @@ return; } dismissIfLineVisible() { - if (this.props.unreadCount === 0) -return; - if (!this.unreadMarkerRef.current || !this.virtualList?.window) -return; + if (this.props.unreadCount === 0) return; + if (!this.unreadMarkerRef.current || !this.virtualList?.window) return; const parent = this.unreadMarkerRef.current.parentElement?.parentElement; - if (!parent) -return; + if (!parent) return; const { scrollTop, scrollHeight, offsetHeight } = this.virtualList.window; if ( scrollHeight - parent.offsetTop > scrollTop && @@ -299,8 +295,7 @@ return; size={graph.size} renderer={({ index, measure, scrollWindow }) => { const msg = graph.get(index)?.post; - if (!msg) -return null; + if (!msg) return null; if (!this.state.initialized) { return ( <MessagePlaceholder diff --git a/pkg/interface/src/views/apps/chat/components/content/text.js b/pkg/interface/src/views/apps/chat/components/content/text.js index 4273527651..c163040a70 100644 --- a/pkg/interface/src/views/apps/chat/components/content/text.js +++ b/pkg/interface/src/views/apps/chat/components/content/text.js @@ -65,32 +65,54 @@ const renderers = { } }; -const MessageMarkdown = React.memo((props) => ( - <ReactMarkdown - {...props} - unwrapDisallowed={true} - renderers={renderers} - // shim until we uncover why RemarkBreaks and - // RemarkDisableTokenizers can't be loaded simultaneously - disallowedTypes={['heading', 'list', 'listItem', 'link']} - allowNode={(node, index, parent) => { - if ( - node.type === 'blockquote' && - parent.type === 'root' && - node.children.length && - node.children[0].type === 'paragraph' && - node.children[0].position.start.offset < 2 - ) { - node.children[0].children[0].value = - '>' + node.children[0].children[0].value; - return false; - } +const MessageMarkdown = React.memo((props) => { + const { source, ...rest } = props; + const blockCode = source.split('```'); + const codeLines = blockCode.map((codes) => codes.split('\n')); + const lines = codeLines.reduce((acc, val, i) => { + if (i % 2 === 1) { + return [...acc, `\`\`\`${val.join('\n')}\`\`\``]; + } else { + return [...acc, ...val]; + } + }, []); - return true; - }} - plugins={[RemarkBreaks]} - /> -)); + return lines.map((line, i) => ( + <> + {i !== 0 && <br />} + <ReactMarkdown + {...rest} + source={line} + unwrapDisallowed={true} + renderers={renderers} + allowNode={(node, index, parent) => { + if ( + node.type === 'blockquote' && + parent.type === 'root' && + node.children.length && + node.children[0].type === 'paragraph' && + node.children[0].position.start.offset < 2 + ) { + node.children[0].children[0].value = + '>' + node.children[0].children[0].value; + return false; + } + + return true; + }} + plugins={[ + [ + RemarkDisableTokenizers, + { + block: DISABLED_BLOCK_TOKENS, + inline: DISABLED_INLINE_TOKENS + } + ] + ]} + /> + </> + )); +}); export default function TextContent(props) { const content = props.content; From b363106ea43cc3128bb36d77b6868e17f994dfdf Mon Sep 17 00:00:00 2001 From: Logan Allen <loganallc@gmail.com> Date: Thu, 18 Feb 2021 17:18:13 -0600 Subject: [PATCH 22/27] interface: ensure that we display the correct ship name and do not retain stale state --- pkg/interface/src/views/apps/chat/components/ChatMessage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 0b48104f65..fa33a1e9f1 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -266,7 +266,7 @@ export const MessageWithSigil = (props) => { }; const timer = setTimeout(() => resetDisplay(), 800); return () => clearTimeout(timer); - }, [displayName]); + }, [shipName, displayName]); const img = contact && contact.avatar !== null ? ( From 9cb88388ddf926df902a8bed7850494e9040c404 Mon Sep 17 00:00:00 2001 From: Matilde Park <matilde.park@gmail.com> Date: Thu, 18 Feb 2021 18:23:59 -0500 Subject: [PATCH 23/27] chat: only show avatars if we have them Also respects CalmEngine. fixes urbit/landscape#315 --- .../src/views/apps/chat/components/ChatMessage.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 0b48104f65..ec36066189 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -233,6 +233,10 @@ export const MessageWithSigil = (props) => { const stamp = moment.unix(msg['time-sent'] / 1000); const contact = `~${msg.author}` in contacts ? contacts[`~${msg.author}`] : false; const showNickname = useShowNickname(contact); + const { hideAvatars } = + useLocalState(({ hideAvatars }) => + ({ hideAvatars }) + ); const shipName = showNickname ? contact.nickname : cite(msg.author); const copyNotice = 'Copied'; const color = contact @@ -268,8 +272,7 @@ export const MessageWithSigil = (props) => { return () => clearTimeout(timer); }, [displayName]); - const img = - contact && contact.avatar !== null ? ( + const img = contact?.avatar && !hideAvatars ? ( <BaseImage display='inline-block' src={contact.avatar} From 55dee617b37db42708e0b5138ed82c7bb29f74b4 Mon Sep 17 00:00:00 2001 From: James Acklin <james.acklin@gmail.com> Date: Thu, 18 Feb 2021 18:43:22 -0500 Subject: [PATCH 24/27] chat: different margins for text links, images, and videos Fixes urbit/landscape#357 --- .../src/views/apps/chat/components/ChatMessage.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx index 026181a75c..a1c4d93470 100644 --- a/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx +++ b/pkg/interface/src/views/apps/chat/components/ChatMessage.tsx @@ -255,7 +255,7 @@ export const MessageAuthor = ({ const [showOverlay, setShowOverlay] = useState(false); const toggleOverlay = () => { - setShowOverlay(value => !value); + setShowOverlay((value) => !value); }; const showCopyNotice = () => { @@ -411,7 +411,6 @@ export const Message = ({ <Box flexShrink={0} fontSize={1} - mt={2} lineHeight='20px' color='black' > @@ -421,13 +420,15 @@ export const Message = ({ imageProps={{ style: { maxWidth: 'min(100%,18rem)', - display: 'inline-block' + display: 'inline-block', + marginTop: '0.5rem' } }} videoProps={{ style: { maxWidth: '18rem', - display: 'block' + display: 'block', + marginTop: '0.5rem' } }} textProps={{ From 5945353dedf1bc552e101db09def84bf5bba43b7 Mon Sep 17 00:00:00 2001 From: Matilde Park <matilde@tlon.io> Date: Fri, 19 Feb 2021 13:42:15 -0500 Subject: [PATCH 25/27] landscape: /messages respects calmengine --- .../views/landscape/components/Sidebar/SidebarItem.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx b/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx index 6557edd75e..1d52a9fcac 100644 --- a/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx +++ b/pkg/interface/src/views/landscape/components/Sidebar/SidebarItem.tsx @@ -8,6 +8,7 @@ import { HoverBoxLink } from '~/views/components/HoverBox'; import { Sigil } from '~/logic/lib/sigil'; import { getModuleIcon, getItemTitle, uxToHex } from '~/logic/lib/util'; import { useTutorialModal } from '~/views/components/useTutorialModal'; +import useLocalState from '~/logic/state/local'; import { TUTORIAL_HOST, TUTORIAL_GROUP } from '~/logic/lib/tutorialModal'; import { SidebarAppConfigs, SidebarItemStatus } from './types'; import { Workspace } from '~/types/workspace'; @@ -55,6 +56,9 @@ export function SidebarItem(props: { return null; } const DM = (isUnmanaged && props.workspace?.type === 'messages'); + const { hideAvatars, hideNicknames } = useLocalState(({ hideAvatars, hideNicknames }) => ({ + hideAvatars, hideNicknames + })); const itemStatus = app.getStatus(path); const hasUnread = itemStatus === 'unread' || itemStatus === 'mention'; @@ -81,12 +85,12 @@ export function SidebarItem(props: { let img = null; if (urbitOb.isValidPatp(title)) { - if (props.contacts?.[title] && props.contacts[title].avatar) { + if (props.contacts?.[title]?.avatar && !hideAvatars) { img = <BaseImage src={props.contacts[title].avatar} width='16px' height='16px' borderRadius={2} />; } else { img = <Sigil ship={title} color={`#${uxToHex(props.contacts?.[title]?.color || '0x0')}`} icon padding={2} size={16} />; } - if (props.contacts?.[title] && props.contacts[title].nickname) { + if (props.contacts?.[title]?.nickname && !hideNicknames) { title = props.contacts[title].nickname; } } else { From 3b8f0c334a4184d15e65bd9adec38a76a4875e6c Mon Sep 17 00:00:00 2001 From: Matilde Park <matilde@tlon.io> Date: Fri, 19 Feb 2021 13:45:27 -0500 Subject: [PATCH 26/27] leap: prevent fresh on message navigation fixes urbit/landscape#410 --- pkg/interface/src/views/components/leap/Omnibox.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/interface/src/views/components/leap/Omnibox.tsx b/pkg/interface/src/views/components/leap/Omnibox.tsx index 9256df90bf..0746ef258a 100644 --- a/pkg/interface/src/views/components/leap/Omnibox.tsx +++ b/pkg/interface/src/views/components/leap/Omnibox.tsx @@ -117,6 +117,7 @@ export function Omnibox(props: OmniboxProps) { props.toggle(); if (defaultApps.includes(app.toLowerCase()) || app === 'profile' + || app === 'messages' || app === 'Links' || app === 'Terminal' || app === 'home' From 4cafa09c8244b610edb4822edfeea0fca2363c14 Mon Sep 17 00:00:00 2001 From: Logan Allen <loganallc@gmail.com> Date: Fri, 19 Feb 2021 12:24:48 -0600 Subject: [PATCH 27/27] interface: run useEffect again if group changes --- pkg/interface/src/views/apps/chat/ChatResource.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/interface/src/views/apps/chat/ChatResource.tsx b/pkg/interface/src/views/apps/chat/ChatResource.tsx index 5b2950a921..f5e133e21a 100644 --- a/pkg/interface/src/views/apps/chat/ChatResource.tsx +++ b/pkg/interface/src/views/apps/chat/ChatResource.tsx @@ -114,7 +114,6 @@ export function ChatResource(props: ChatResourceProps) { } else { setShowBanner(false); } - } else { const groupShared = await props.api.contacts.fetchIsAllowed( `~${window.ship}`, @@ -127,7 +126,7 @@ export function ChatResource(props: ChatResourceProps) { setHasLoadedAllowed(true); })(); - }, [groupPath]); + }, [groupPath, group]); if(!graph) { return <Loading />;