bento-get 1.98.1 → 1.98.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/cli.js +4 -4
  2. package/dist/cli.js.map +6 -0
  3. package/dist/cli.mjs +7 -0
  4. package/dist/cli.native.js +8 -0
  5. package/dist/cli.native.js.map +6 -0
  6. package/dist/commands/add.js +16 -11
  7. package/dist/commands/add.js.map +6 -0
  8. package/dist/commands/add.mjs +12 -0
  9. package/dist/commands/add.native.js +23 -0
  10. package/dist/commands/add.native.js.map +6 -0
  11. package/dist/commands/index.js +237 -189
  12. package/dist/commands/index.js.map +6 -0
  13. package/dist/commands/index.mjs +369 -0
  14. package/dist/commands/index.native.js +512 -0
  15. package/dist/commands/index.native.js.map +6 -0
  16. package/dist/components.js +594 -597
  17. package/dist/components.js.map +6 -0
  18. package/dist/components.mjs +503 -0
  19. package/dist/components.native.js +633 -0
  20. package/dist/components.native.js.map +6 -0
  21. package/dist/constants.js +7 -4
  22. package/dist/constants.js.map +6 -0
  23. package/dist/constants.mjs +4 -0
  24. package/dist/constants.native.js +7 -0
  25. package/dist/constants.native.js.map +6 -0
  26. package/dist/hooks/useGetComponent.js +39 -53
  27. package/dist/hooks/useGetComponent.js.map +6 -0
  28. package/dist/hooks/useGetComponent.mjs +58 -0
  29. package/dist/hooks/useGetComponent.native.js +285 -0
  30. package/dist/hooks/useGetComponent.native.js.map +6 -0
  31. package/dist/hooks/useGithubAuth.js +38 -44
  32. package/dist/hooks/useGithubAuth.js.map +6 -0
  33. package/dist/hooks/useGithubAuth.mjs +44 -0
  34. package/dist/hooks/useGithubAuth.native.js +190 -0
  35. package/dist/hooks/useGithubAuth.native.js.map +6 -0
  36. package/dist/hooks/useGithubAuthPooling.js +40 -54
  37. package/dist/hooks/useGithubAuthPooling.js.map +6 -0
  38. package/dist/hooks/useGithubAuthPooling.mjs +47 -0
  39. package/dist/hooks/useGithubAuthPooling.native.js +182 -0
  40. package/dist/hooks/useGithubAuthPooling.native.js.map +6 -0
  41. package/dist/hooks/useInstallComponent.js +68 -81
  42. package/dist/hooks/useInstallComponent.js.map +6 -0
  43. package/dist/hooks/useInstallComponent.mjs +75 -0
  44. package/dist/hooks/useInstallComponent.native.js +265 -0
  45. package/dist/hooks/useInstallComponent.native.js.map +6 -0
  46. package/package.json +27 -8
  47. package/src/cli.tsx +9 -0
  48. package/src/commands/add.tsx +20 -0
  49. package/src/commands/index.tsx +393 -0
  50. package/src/components.ts +680 -0
  51. package/src/constants.ts +4 -0
  52. package/src/hooks/useGetComponent.tsx +66 -0
  53. package/src/hooks/useGithubAuth.tsx +59 -0
  54. package/src/hooks/useGithubAuthPooling.tsx +67 -0
  55. package/src/hooks/useInstallComponent.tsx +116 -0
  56. package/types/cli.d.ts +3 -0
  57. package/types/cli.d.ts.map +1 -0
  58. package/{dist → types}/commands/add.d.ts +1 -0
  59. package/types/commands/add.d.ts.map +1 -0
  60. package/types/commands/index.d.ts +4 -0
  61. package/types/commands/index.d.ts.map +1 -0
  62. package/{dist → types}/components.d.ts +1 -0
  63. package/types/components.d.ts.map +1 -0
  64. package/{dist → types}/constants.d.ts +1 -0
  65. package/types/constants.d.ts.map +1 -0
  66. package/{dist → types}/hooks/useGetComponent.d.ts +1 -0
  67. package/types/hooks/useGetComponent.d.ts.map +1 -0
  68. package/{dist → types}/hooks/useGithubAuth.d.ts +1 -0
  69. package/types/hooks/useGithubAuth.d.ts.map +1 -0
  70. package/{dist → types}/hooks/useGithubAuthPooling.d.ts +1 -0
  71. package/types/hooks/useGithubAuthPooling.d.ts.map +1 -0
  72. package/{dist → types}/hooks/useInstallComponent.d.ts +1 -0
  73. package/types/hooks/useInstallComponent.d.ts.map +1 -0
  74. package/dist/cli.d.ts +0 -2
  75. package/dist/commands/index.d.ts +0 -15
package/dist/cli.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import Pastel from 'pastel';
2
+ import Pastel from "pastel";
3
3
  const app = new Pastel({
4
- importMeta: import.meta,
5
- name: 'bento-get',
4
+ importMeta: import.meta,
5
+ name: "bento-get"
6
6
  });
7
7
  await app.run();
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc291cmNlL2NsaS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQztJQUNyQixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUk7SUFDdkIsSUFBSSxFQUFFLFdBQVc7Q0FDbEIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUEifQ==
8
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/cli.tsx"],
4
+ "mappings": ";AACA,OAAO,YAAY;AAEnB,MAAM,MAAM,IAAI,OAAO;AAAA,EACrB,YAAY;AAAA,EACZ,MAAM;AACR,CAAC;AAED,MAAM,IAAI,IAAI;",
5
+ "names": []
6
+ }
package/dist/cli.mjs ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import Pastel from "pastel";
3
+ const app = new Pastel({
4
+ importMeta: import.meta,
5
+ name: "bento-get"
6
+ });
7
+ await app.run();
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import Pastel from "pastel";
3
+ var app = new Pastel({
4
+ importMeta: import.meta,
5
+ name: "bento-get"
6
+ });
7
+ await app.run();
8
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/Users/n8/tamagui/packages/bento-cli/src/cli.tsx"],
4
+ "mappings": ";AACA,OAAOA,YAAY;AAEnB,IAAMC,MAAM,IAAID,OAAO;EACrBE,YAAY;EACZC,MAAM;AACR,CAAA;AAEA,MAAMF,IAAIG,IAAG;",
5
+ "names": ["Pastel", "app", "importMeta", "name", "run"]
6
+ }
@@ -1,12 +1,17 @@
1
- import { jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Text } from 'ink';
3
- import zod from 'zod';
4
- export const args = zod.tuple([zod.string(), zod.string()]);
5
- // const categories = ['forms', 'elements', 'shells', 'animations', 'ecommerce', 'user']
6
- export default function Add({ args }) {
7
- // if `bento add` show Select with categories.
8
- // then show Select with category sections.
9
- // if `bento add <category>` show Select with category sections.
10
- return (_jsxs(Text, { children: ["Adding now ", args[0], " to ", args[1]] }));
1
+ import { Text } from "ink";
2
+ import zod from "zod";
3
+ import { jsxs } from "react/jsx-runtime";
4
+ const args = zod.tuple([zod.string(), zod.string()]);
5
+ function Add({ args: args2 }) {
6
+ return /* @__PURE__ */ jsxs(Text, { children: [
7
+ "Adding now ",
8
+ args2[0],
9
+ " to ",
10
+ args2[1]
11
+ ] });
11
12
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc291cmNlL2NvbW1hbmRzL2FkZC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDMUIsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFBO0FBRXJCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFNM0Qsd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFTO0lBQ3pDLDhDQUE4QztJQUM5QywyQ0FBMkM7SUFDM0MsZ0VBQWdFO0lBQ2hFLE9BQU8sQ0FDTCxNQUFDLElBQUksOEJBQ1MsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsSUFDM0IsQ0FDUixDQUFBO0FBQ0gsQ0FBQyJ9
13
+ export {
14
+ args,
15
+ Add as default
16
+ };
17
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/add.tsx"],
4
+ "mappings": "AAAA,SAAS,YAAY;AACrB,OAAO,SAAS;AAcZ;AAZG,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC;AAO3C,SAAR,IAAqB,EAAE,MAAAA,MAAK,GAAU;AAI3C,SACE,qBAAC,QAAK;AAAA;AAAA,IACQA,MAAK,CAAC;AAAA,IAAE;AAAA,IAAKA,MAAK,CAAC;AAAA,KACjC;AAEJ;",
5
+ "names": ["args"]
6
+ }
@@ -0,0 +1,12 @@
1
+ import { Text } from "ink";
2
+ import zod from "zod";
3
+ import { jsxs } from "react/jsx-runtime";
4
+ const args = zod.tuple([zod.string(), zod.string()]);
5
+ function Add({
6
+ args: args2
7
+ }) {
8
+ return /* @__PURE__ */jsxs(Text, {
9
+ children: ["Adding now ", args2[0], " to ", args2[1]]
10
+ });
11
+ }
12
+ export { args, Add as default };
@@ -0,0 +1,23 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ import zod from "zod";
4
+ var args = zod.tuple([
5
+ zod.string(),
6
+ zod.string()
7
+ ]);
8
+ function Add(param) {
9
+ var args2 = param.args;
10
+ return /* @__PURE__ */ _jsxs(Text, {
11
+ children: [
12
+ "Adding now ",
13
+ args2[0],
14
+ " to ",
15
+ args2[1]
16
+ ]
17
+ });
18
+ }
19
+ export {
20
+ args,
21
+ Add as default
22
+ };
23
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/Users/n8/tamagui/packages/bento-cli/src/commands/add.tsx"],
4
+ "mappings": ";AAAA,SAASA,YAAY;AACrB,OAAOC,SAAS;AAET,IAAMC,OAAOD,IAAIE,MAAM;EAACF,IAAIG,OAAM;EAAIH,IAAIG,OAAM;CAAG;AAO3C,SAAf,IAA4B,OAAe;MAAbF,QAAF,MAAEA;AAI5B,SACE,sBAACF,MAAAA;;MAAK;MACQE,MAAK,CAAA;MAAG;MAAKA,MAAK,CAAA;;;AAGpC;",
5
+ "names": ["Text", "zod", "args", "tuple", "string"]
6
+ }
@@ -1,203 +1,251 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- // @ts-nocheck
3
- import { Alert, Badge, Spinner } from '@inkjs/ui';
4
- import Conf from 'conf';
5
- import { copy } from 'copy-paste';
6
- import Fuse from 'fuse.js';
7
- import { Box, Spacer, Text, useApp, useInput } from 'ink';
8
- import TextInput from 'ink-text-input';
9
- import open from 'open';
10
- import { createContext, useContext, useEffect, useState } from 'react';
11
- import { componentsList } from '../components.js';
12
- import { useGithubAuth } from '../hooks/useGithubAuth.js';
13
- import { useInstallComponent } from '../hooks/useInstallComponent.js';
14
- const tokenStore = new Conf({ projectName: 'bento-cli' });
15
- const handleKeypress = (_, key, appContext) => {
16
- const { selectedId, setSelectedId, setInstall, results, copyToClipboard, setCopyToClipboard, } = appContext;
17
- if (_ === 'c' && appContext.install.installingComponent) {
18
- setCopyToClipboard(true);
19
- }
20
- if (key.escape && !appContext.install.installingComponent?.isOSS) {
21
- appContext.setInstall((prev) => ({
22
- ...prev,
23
- installingComponent: null,
24
- enterToOpenBrowser: false,
25
- }));
26
- return;
27
- }
28
- if (key.return &&
29
- !appContext.install.installingComponent?.isOSS &&
30
- appContext.install.enterToOpenBrowser) {
31
- open('https://github.com/login/device');
32
- }
1
+ import { Alert, Badge, Spinner } from "@inkjs/ui";
2
+ import Conf from "conf";
3
+ import { copy } from "copy-paste";
4
+ import Fuse from "fuse.js";
5
+ import { Box, Spacer, Text, useApp, useInput } from "ink";
6
+ import TextInput from "ink-text-input";
7
+ import open from "open";
8
+ import { createContext, useContext, useEffect, useState } from "react";
9
+ import { componentsList } from "../components.js";
10
+ import { useGithubAuth } from "../hooks/useGithubAuth.js";
11
+ import { useInstallComponent } from "../hooks/useInstallComponent.js";
12
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
+ const tokenStore = new Conf({ projectName: "bento-cli" }), handleKeypress = (_, key, appContext) => {
14
+ const {
15
+ selectedId,
16
+ setSelectedId,
17
+ setInstall,
18
+ results,
19
+ copyToClipboard,
20
+ setCopyToClipboard
21
+ } = appContext;
22
+ if (_ === "c" && appContext.install.installingComponent && setCopyToClipboard(!0), key.escape && !appContext.install.installingComponent?.isOSS) {
23
+ appContext.setInstall((prev) => ({
24
+ ...prev,
25
+ installingComponent: null,
26
+ enterToOpenBrowser: !1
27
+ }));
28
+ return;
29
+ }
30
+ key.return && !appContext.install.installingComponent?.isOSS && appContext.install.enterToOpenBrowser && open("https://github.com/login/device"), !appContext.install.installingComponent?.isOSS && key && (key.escape && appContext.exit(), key.upArrow && selectedId > -1 && setSelectedId(selectedId - 1), key.downArrow && selectedId < appContext.results.length - 1 && setSelectedId(selectedId + 1), key.return && setInstall((prev) => ({
31
+ ...prev,
32
+ installingComponent: results[selectedId]?.item
33
+ })));
34
+ }, AppContext = createContext({
35
+ tokenStore: {},
36
+ copyToClipboard: !1,
37
+ setCopyToClipboard: () => {
38
+ },
39
+ results: [],
40
+ setResults: () => {
41
+ },
42
+ selectedId: -1,
43
+ setSelectedId: () => {
44
+ },
45
+ input: "",
46
+ setInput: () => {
47
+ },
48
+ setInstall: () => {
49
+ },
50
+ setInstallcomponent: () => {
51
+ },
52
+ install: null
53
+ }), SearchBar = () => {
54
+ const appContext = useContext(AppContext), search = (query) => new Fuse(componentsList, {
55
+ keys: ["name", "category", "categorySection"]
56
+ }).search(query), handleChange = (value) => {
33
57
  if (appContext.install.installingComponent?.isOSS)
34
- return;
35
- if (!key)
36
- return;
37
- if (key.escape) {
38
- appContext.exit();
39
- }
40
- if (key.upArrow) {
41
- selectedId > -1 && setSelectedId(selectedId - 1);
42
- }
43
- if (key.downArrow) {
44
- selectedId < appContext.results.length - 1 && setSelectedId(selectedId + 1);
45
- }
46
- if (key.return) {
47
- setInstall((prev) => ({
48
- ...prev,
49
- installingComponent: results[selectedId]?.item,
50
- }));
51
- }
52
- };
53
- export const AppContext = createContext({
54
- tokenStore: {},
55
- copyToClipboard: false,
56
- setCopyToClipboard: () => { },
57
- results: [],
58
- setResults: () => { },
59
- selectedId: -1,
60
- setSelectedId: () => { },
61
- input: '',
62
- setInput: () => { },
63
- setInstallcomponent: () => { },
64
- install: null,
65
- });
66
- const SearchBar = () => {
67
- const appContext = useContext(AppContext);
68
- const search = (query) => {
69
- const fuse = new Fuse(componentsList, {
70
- keys: ['name', 'category', 'categorySection'],
71
- });
72
- return fuse.search(query);
73
- };
74
- const handleChange = (value) => {
75
- if (appContext.install.installingComponent?.isOSS)
76
- return;
77
- appContext.setInput(value);
78
- const results = search(value);
79
- appContext.setResults(results);
80
- appContext.setSelectedId(-1);
81
- };
82
- return (_jsxs(Box, { marginX: 1, justifyContent: "space-between", children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, children: "Search: " }), _jsx(TextInput, { value: appContext.input, onChange: handleChange, marginRight: 'auto' })] }), _jsx(ResultsCounter, {})] }));
83
- };
84
- const ResultsContainer = () => {
85
- const appContext = useContext(AppContext);
86
- return (_jsxs(Box, { flexDirection: "column", display: appContext.results.length ? 'flex' : 'none', children: [_jsx(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, gap: 1, children: appContext.results.slice(0, 5).map((result, i) => (_jsx(ResultCard, { result: result, isSelected: appContext.selectedId === i }, result.item.fileName))) }), _jsx(Footer, {})] }));
87
- };
88
- const Footer = () => {
89
- return (_jsx(Box, { flexDirection: "row", justifyContent: "flex-end", marginRight: 1, children: _jsxs(Text, { children: [_jsx(Text, { underline: true, children: "ESC" }), " to exit"] }) }));
90
- };
91
- const InstalledBadge = ({ item }) => {
92
- const appContext = useContext(AppContext);
93
- const componentIsInstalled = appContext.install?.installedComponents
94
- ?.map((component) => component.fileName)
95
- .includes(item.fileName);
96
- if (!appContext.install?.installedComponents)
97
- return null;
98
- return (componentIsInstalled && (_jsx(Box, { marginLeft: 1, children: _jsx(Badge, { color: "green", children: "Installed" }) })));
99
- };
100
- const ResultCard = ({ result, isSelected }) => {
101
- const appContext = useContext(AppContext);
102
- return (_jsxs(Box, { flexDirection: "row", minWidth: '100%', children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { textWrap: "nowrap", bold: true, style: { textWrap: 'nowrap' }, color: "gray", children: (() => {
103
- switch (true) {
104
- case appContext.install.installingComponent && isSelected:
105
- return '';
106
- case appContext.install.installingComponent:
107
- return ' ';
108
- case isSelected:
109
- return '❯ ';
110
- default:
111
- return ' ';
112
- }
113
- })() }), appContext.install.installingComponent && isSelected && _jsx(InstallComponent, {}), _jsx(Text, { bold: true, style: { textWrap: 'nowrap' }, color: isSelected ? 'white' : 'black', children: result.item?.name }), _jsx(InstalledBadge, { item: result.item })] }), _jsx(Spacer, {}), _jsx(TypeOfComponentAccess, { item: result.item }), _jsx(CategorySectionBadge, { item: result.item })] }));
114
- };
115
- const CategorySectionBadge = ({ item }) => {
116
- const appContext = useContext(AppContext);
117
- return (_jsx(Box, { marginLeft: 1, gap: 1, children: _jsxs(Text, { color: 'black', backgroundColor: 'white', children: [' ', item?.category.charAt(0).toUpperCase() + item?.category.slice(1), " ", '>', ' ', item?.categorySection.charAt(0).toUpperCase() +
118
- item?.categorySection.slice(1), ' '] }) }));
119
- };
120
- const TypeOfComponentAccess = ({ item }) => {
121
- const appContext = useContext(AppContext);
122
- return (_jsx(Box, { marginLeft: 1, gap: 1, display: item?.isOSS ? 'flex' : 'none', children: _jsx(Text, { color: 'black', backgroundColor: 'gray', children: "OSS" }) }));
123
- };
124
- const ResultsCounter = () => {
125
- const appContext = useContext(AppContext);
126
- return (_jsx(Box, { children: !!appContext.results.length && (_jsxs(Text, { bold: true, color: "gray", children: [appContext.results.length, " result", appContext.results.length > 1 ? 's' : ''] })) }));
127
- };
128
- const InstallComponent = () => {
129
- const appContext = useContext(AppContext);
130
- return (_jsx(Box, { children: appContext.install.installingComponent ? (_jsx(Box, { children: _jsx(Spinner, { label: "Installing " }) })) : (_jsx(Box, { marginRight: 2 })) }));
131
- };
132
- const UsageBanner = () => {
133
- return (_jsxs(Alert, { variant: "info", children: ["Search any component by category, section or name. ", _jsx(Text, { underline: true, children: "Up" }), " and", ' ', _jsx(Text, { underline: true, children: "down" }), " arrows to select. ", _jsx(Text, { underline: true, children: "Enter" }), " to install."] }));
134
- };
135
- const CodeAuthScreen = () => {
136
- const appContext = useContext(AppContext);
137
- const { data, isLoading } = useGithubAuth();
138
- useEffect(() => {
139
- appContext.setInstall((prev) => ({
140
- ...prev,
141
- enterToOpenBrowser: true,
142
- }));
143
- return () => {
144
- appContext.setCopyToClipboard(false);
145
- };
146
- }, []);
147
- appContext.tokenStore.onDidChange('token', (newvalue, oldvalue) => {
148
- appContext.setInstall((prev) => ({
149
- ...prev,
150
- tokenIsInstalled: true,
151
- }));
152
- });
153
- if (appContext.copyToClipboard)
154
- copy(data?.user_code);
155
- return (_jsxs(Box, { flexDirection: "column", display: "flex", children: [_jsxs(Alert, { variant: "info", children: ["Press ", _jsx(Text, { underline: true, children: "Enter" }), " to open browser window and authenticate to your Github account with the following auth code."] }), _jsxs(Box, { justifyContent: "space-between", paddingRight: 1, children: [_jsxs(Text, { children: [' < ', _jsx(Text, { underline: true, children: "ESC" }), " to go Back"] }), appContext.copyToClipboard ? (_jsx(Text, { color: "green", children: "copied!" })) : (_jsxs(Text, { children: ["Hit ", _jsx(Text, { underline: true, children: "c" }), " to copy to clipboard"] }))] }), _jsx(Box, { flexDirection: "row", borderStyle: "round", paddingY: 1, justifyContent: "center", children: appContext.install.tokenIsInstalled ? (_jsx(Box, { paddingY: 1, children: _jsx(Text, { color: "green", children: "Github Authentication Successful \u2714\uFE0E" }) })) : isLoading ? (_jsx(Box, { paddingY: 1, children: _jsx(Spinner, { label: "Loading..." }) })) : (data?.user_code?.split('')?.map((item, key) => (_jsx(Box, { flexDirection: "column", ...(item !== '-' && { borderStyle: 'round' }), paddingX: 1, gap: 1, width: item !== '-' ? 5 : 3, height: 3, alignItems: "center", justifyContent: "center", children: _jsx(Text, { width: 5, children: item }) }, key)))) })] }));
58
+ return;
59
+ appContext.setInput(value);
60
+ const results = search(value);
61
+ appContext.setResults(results), appContext.setSelectedId(-1);
62
+ };
63
+ return /* @__PURE__ */ jsxs(Box, { marginX: 1, justifyContent: "space-between", children: [
64
+ /* @__PURE__ */ jsxs(Box, { children: [
65
+ /* @__PURE__ */ jsx(Text, { bold: !0, children: "Search: " }),
66
+ /* @__PURE__ */ jsx(
67
+ TextInput,
68
+ {
69
+ value: appContext.input,
70
+ onChange: handleChange,
71
+ marginRight: "auto"
72
+ }
73
+ )
74
+ ] }),
75
+ /* @__PURE__ */ jsx(ResultsCounter, {})
76
+ ] });
77
+ }, ResultsContainer = () => {
78
+ const appContext = useContext(AppContext);
79
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", display: appContext.results.length ? "flex" : "none", children: [
80
+ /* @__PURE__ */ jsx(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, gap: 1, children: appContext.results.slice(0, 5).map((result, i) => /* @__PURE__ */ jsx(
81
+ ResultCard,
82
+ {
83
+ result,
84
+ isSelected: appContext.selectedId === i
85
+ },
86
+ result.item.fileName
87
+ )) }),
88
+ /* @__PURE__ */ jsx(Footer, {})
89
+ ] });
90
+ }, Footer = () => /* @__PURE__ */ jsx(Box, { flexDirection: "row", justifyContent: "flex-end", marginRight: 1, children: /* @__PURE__ */ jsxs(Text, { children: [
91
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "ESC" }),
92
+ " to exit"
93
+ ] }) }), InstalledBadge = ({ item }) => {
94
+ const appContext = useContext(AppContext), componentIsInstalled = appContext.install?.installedComponents?.map((component) => component.fileName).includes(item.fileName);
95
+ return appContext.install?.installedComponents ? componentIsInstalled && /* @__PURE__ */ jsx(Box, { marginLeft: 1, children: /* @__PURE__ */ jsx(Badge, { color: "green", children: "Installed" }) }) : null;
96
+ }, ResultCard = ({ result, isSelected }) => {
97
+ const appContext = useContext(AppContext);
98
+ return /* @__PURE__ */ jsxs(Box, { flexDirection: "row", minWidth: "100%", children: [
99
+ /* @__PURE__ */ jsxs(Box, { flexDirection: "row", children: [
100
+ /* @__PURE__ */ jsx(Text, { textWrap: "nowrap", bold: !0, style: { textWrap: "nowrap" }, color: "gray", children: (() => {
101
+ switch (!0) {
102
+ case (appContext.install.installingComponent && isSelected):
103
+ return "";
104
+ case appContext.install.installingComponent:
105
+ return " ";
106
+ case isSelected:
107
+ return "\u276F ";
108
+ default:
109
+ return " ";
110
+ }
111
+ })() }),
112
+ appContext.install.installingComponent && isSelected && /* @__PURE__ */ jsx(InstallComponent, {}),
113
+ /* @__PURE__ */ jsx(Text, { bold: !0, style: { textWrap: "nowrap" }, color: isSelected ? "white" : "black", children: result.item?.name }),
114
+ /* @__PURE__ */ jsx(InstalledBadge, { item: result.item })
115
+ ] }),
116
+ /* @__PURE__ */ jsx(Spacer, {}),
117
+ /* @__PURE__ */ jsx(TypeOfComponentAccess, { item: result.item }),
118
+ /* @__PURE__ */ jsx(CategorySectionBadge, { item: result.item })
119
+ ] });
120
+ }, CategorySectionBadge = ({ item }) => {
121
+ const appContext = useContext(AppContext);
122
+ return /* @__PURE__ */ jsx(Box, { marginLeft: 1, gap: 1, children: /* @__PURE__ */ jsxs(Text, { color: "black", backgroundColor: "white", children: [
123
+ " ",
124
+ item?.category.charAt(0).toUpperCase() + item?.category.slice(1),
125
+ " ",
126
+ ">",
127
+ " ",
128
+ item?.categorySection.charAt(0).toUpperCase() + item?.categorySection.slice(1),
129
+ " "
130
+ ] }) });
131
+ }, TypeOfComponentAccess = ({ item }) => {
132
+ const appContext = useContext(AppContext);
133
+ return /* @__PURE__ */ jsx(Box, { marginLeft: 1, gap: 1, display: item?.isOSS ? "flex" : "none", children: /* @__PURE__ */ jsx(Text, { color: "black", backgroundColor: "gray", children: "OSS" }) });
134
+ }, ResultsCounter = () => {
135
+ const appContext = useContext(AppContext);
136
+ return /* @__PURE__ */ jsx(Box, { children: !!appContext.results.length && /* @__PURE__ */ jsxs(Text, { bold: !0, color: "gray", children: [
137
+ appContext.results.length,
138
+ " result",
139
+ appContext.results.length > 1 ? "s" : ""
140
+ ] }) });
141
+ }, InstallComponent = () => {
142
+ const appContext = useContext(AppContext);
143
+ return /* @__PURE__ */ jsx(Box, { children: appContext.install.installingComponent ? /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Spinner, { label: "Installing " }) }) : /* @__PURE__ */ jsx(Box, { marginRight: 2 }) });
144
+ }, UsageBanner = () => /* @__PURE__ */ jsxs(Alert, { variant: "info", children: [
145
+ "Search any component by category, section or name. ",
146
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "Up" }),
147
+ " and",
148
+ " ",
149
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "down" }),
150
+ " arrows to select. ",
151
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "Enter" }),
152
+ " to install."
153
+ ] }), CodeAuthScreen = () => {
154
+ const appContext = useContext(AppContext), { data, isLoading } = useGithubAuth();
155
+ return useEffect(() => (appContext.setInstall((prev) => ({
156
+ ...prev,
157
+ enterToOpenBrowser: !0
158
+ })), () => {
159
+ appContext.setCopyToClipboard(!1);
160
+ }), []), appContext.tokenStore.onDidChange("token", (newvalue, oldvalue) => {
161
+ appContext.setInstall((prev) => ({
162
+ ...prev,
163
+ tokenIsInstalled: !0
164
+ }));
165
+ }), appContext.copyToClipboard && copy(data?.user_code), /* @__PURE__ */ jsxs(Box, { flexDirection: "column", display: "flex", children: [
166
+ /* @__PURE__ */ jsxs(Alert, { variant: "info", children: [
167
+ "Press ",
168
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "Enter" }),
169
+ " to open browser window and authenticate to your Github account with the following auth code."
170
+ ] }),
171
+ /* @__PURE__ */ jsxs(Box, { justifyContent: "space-between", paddingRight: 1, children: [
172
+ /* @__PURE__ */ jsxs(Text, { children: [
173
+ " < ",
174
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "ESC" }),
175
+ " to go Back"
176
+ ] }),
177
+ appContext.copyToClipboard ? /* @__PURE__ */ jsx(Text, { color: "green", children: "copied!" }) : /* @__PURE__ */ jsxs(Text, { children: [
178
+ "Hit ",
179
+ /* @__PURE__ */ jsx(Text, { underline: !0, children: "c" }),
180
+ " to copy to clipboard"
181
+ ] })
182
+ ] }),
183
+ /* @__PURE__ */ jsx(Box, { flexDirection: "row", borderStyle: "round", paddingY: 1, justifyContent: "center", children: appContext.install.tokenIsInstalled ? /* @__PURE__ */ jsx(Box, { paddingY: 1, children: /* @__PURE__ */ jsx(Text, { color: "green", children: "Github Authentication Successful \u2714\uFE0E" }) }) : isLoading ? /* @__PURE__ */ jsx(Box, { paddingY: 1, children: /* @__PURE__ */ jsx(Spinner, { label: "Loading..." }) }) : data?.user_code?.split("")?.map((item, key) => /* @__PURE__ */ jsx(
184
+ Box,
185
+ {
186
+ flexDirection: "column",
187
+ ...item !== "-" && { borderStyle: "round" },
188
+ paddingX: 1,
189
+ gap: 1,
190
+ width: item !== "-" ? 5 : 3,
191
+ height: 3,
192
+ alignItems: "center",
193
+ justifyContent: "center",
194
+ children: /* @__PURE__ */ jsx(Text, { width: 5, children: item })
195
+ },
196
+ key
197
+ )) })
198
+ ] });
156
199
  };
157
- export default function Search() {
158
- const [results, setResults] = useState([]);
159
- const [selectedId, setSelectedId] = useState(-1);
160
- const [input, setInput] = useState('');
161
- const [install, setInstall] = useState({
162
- installingComponent: null,
163
- installedComponents: [],
164
- enterToOpenBrowser: false,
165
- tokenIsInstalled: false,
166
- });
167
- const [copyToClipboard, setCopyToClipboard] = useState(false);
168
- const { exit } = useApp();
169
- const { access_token } = tokenStore?.get('token') ?? {};
170
- // tokenStore.delete("token");
171
- useInput((_, key) => handleKeypress(_, key, {
200
+ function Search() {
201
+ const [results, setResults] = useState([]), [selectedId, setSelectedId] = useState(-1), [input, setInput] = useState(""), [install, setInstall] = useState({
202
+ installingComponent: null,
203
+ installedComponents: [],
204
+ enterToOpenBrowser: !1,
205
+ tokenIsInstalled: !1
206
+ }), [copyToClipboard, setCopyToClipboard] = useState(!1), { exit } = useApp(), { access_token } = tokenStore?.get("token") ?? {};
207
+ return useInput(
208
+ (_, key) => handleKeypress(_, key, {
209
+ tokenStore,
210
+ copyToClipboard,
211
+ setCopyToClipboard,
212
+ exit,
213
+ results,
214
+ setResults,
215
+ selectedId,
216
+ setSelectedId,
217
+ input,
218
+ setInput,
219
+ setInstall,
220
+ install
221
+ })
222
+ ), /* @__PURE__ */ jsx(
223
+ AppContext.Provider,
224
+ {
225
+ value: {
172
226
  tokenStore,
173
227
  copyToClipboard,
174
228
  setCopyToClipboard,
175
- exit,
176
229
  results,
177
230
  setResults,
178
231
  selectedId,
179
232
  setSelectedId,
180
233
  input,
181
234
  setInput,
182
- setInstall,
183
235
  install,
184
- }));
185
- return (_jsx(AppContext.Provider, { value: {
186
- tokenStore,
187
- copyToClipboard,
188
- setCopyToClipboard,
189
- results,
190
- setResults,
191
- selectedId,
192
- setSelectedId,
193
- input,
194
- setInput,
195
- install,
196
- setInstall,
197
- }, children: _jsx(Provider, { children: _jsx(Box, { flexDirection: "column", children: (install.installingComponent?.isOSS ?? true) || access_token ? (_jsxs(Box, { flexDirection: "column", children: [_jsx(UsageBanner, {}), _jsx(SearchBar, {}), _jsx(ResultsContainer, {})] })) : (_jsx(Box, { flexDirection: "column", children: _jsx(CodeAuthScreen, {}) })) }) }) }));
236
+ setInstall
237
+ },
238
+ children: /* @__PURE__ */ jsx(Provider, { children: /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: (install.installingComponent?.isOSS ?? !0) || access_token ? /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
239
+ /* @__PURE__ */ jsx(UsageBanner, {}),
240
+ /* @__PURE__ */ jsx(SearchBar, {}),
241
+ /* @__PURE__ */ jsx(ResultsContainer, {})
242
+ ] }) : /* @__PURE__ */ jsx(Box, { flexDirection: "column", children: /* @__PURE__ */ jsx(CodeAuthScreen, {}) }) }) })
243
+ }
244
+ );
198
245
  }
199
- const Provider = ({ children }) => {
200
- useInstallComponent();
201
- return _jsx(_Fragment, { children: children });
246
+ const Provider = ({ children }) => (useInstallComponent(), /* @__PURE__ */ jsx(Fragment, { children }));
247
+ export {
248
+ AppContext,
249
+ Search as default
202
250
  };
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zb3VyY2UvY29tbWFuZHMvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjO0FBQ2QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2pELE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLFNBQVMsQ0FBQTtBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUN6RCxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN0QyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBRXJFLE1BQU0sVUFBVSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7QUFFekQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFO0lBQzVDLE1BQU0sRUFDSixVQUFVLEVBQ1YsYUFBYSxFQUNiLFVBQVUsRUFDVixPQUFPLEVBQ1AsZUFBZSxFQUNmLGtCQUFrQixHQUNuQixHQUFHLFVBQVUsQ0FBQTtJQUVkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixHQUFHLElBQUk7WUFDUCxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLGtCQUFrQixFQUFFLEtBQUs7U0FDMUIsQ0FBQyxDQUFDLENBQUE7UUFDSCxPQUFNO0lBQ1IsQ0FBQztJQUNELElBQ0UsR0FBRyxDQUFDLE1BQU07UUFDVixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSztRQUM5QyxVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxLQUFLO1FBQUUsT0FBTTtJQUN6RCxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU07SUFDaEIsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZixVQUFVLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFDRCxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDN0UsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLEdBQUcsSUFBSTtZQUNQLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO1NBQy9DLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUM7SUFDdEMsVUFBVSxFQUFFLEVBQUU7SUFDZCxlQUFlLEVBQUUsS0FBSztJQUN0QixrQkFBa0IsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO0lBQzVCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7SUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNkLGFBQWEsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO0lBQ3ZCLEtBQUssRUFBRSxFQUFFO0lBQ1QsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7SUFDbEIsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztJQUM3QixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUMsQ0FBQTtBQUVGLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtJQUNyQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztTQUM5QyxDQUFDLENBQUE7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQyxDQUFBO0lBQ0QsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM3QixJQUFLLFVBQVUsQ0FBQyxPQUFlLENBQUMsbUJBQW1CLEVBQUUsS0FBSztZQUFFLE9BQU07UUFDbEUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUM5QixVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQyxDQUFBO0lBQ0QsT0FBTyxDQUNMLE1BQUMsR0FBRyxJQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFDLGVBQWUsYUFDN0MsTUFBQyxHQUFHLGVBQ0YsS0FBQyxJQUFJLElBQUMsSUFBSSwrQkFBZ0IsRUFDMUIsS0FBQyxTQUFTLElBQ1IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQ3ZCLFFBQVEsRUFBRSxZQUFZLEVBQ3RCLFdBQVcsRUFBRSxNQUFNLEdBQ25CLElBQ0UsRUFDTixLQUFDLGNBQWMsS0FBRyxJQUNkLENBQ1AsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO0lBQzVCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6QyxPQUFPLENBQ0wsTUFBQyxHQUFHLElBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxhQUM5RSxLQUFDLEdBQUcsSUFBQyxhQUFhLEVBQUMsUUFBUSxFQUFDLFdBQVcsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUNoRSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDakQsS0FBQyxVQUFVLElBQ1QsTUFBTSxFQUFFLE1BQU0sRUFFZCxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsS0FBSyxDQUFDLElBRGxDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUV6QixDQUNILENBQUMsR0FDRSxFQUNOLEtBQUMsTUFBTSxLQUFHLElBQ04sQ0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO0lBQ2xCLE9BQU8sQ0FDTCxLQUFDLEdBQUcsSUFBQyxhQUFhLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxVQUFVLEVBQUMsV0FBVyxFQUFFLENBQUMsWUFDL0QsTUFBQyxJQUFJLGVBQ0gsS0FBQyxJQUFJLElBQUMsU0FBUywwQkFBVyxnQkFDckIsR0FDSCxDQUNQLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtJQUNsQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekMsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUNsRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztTQUN2QyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRTFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBQ3pELE9BQU8sQ0FDTCxvQkFBb0IsSUFBSSxDQUN0QixLQUFDLEdBQUcsSUFBQyxVQUFVLEVBQUUsQ0FBQyxZQUNoQixLQUFDLEtBQUssSUFBQyxLQUFLLEVBQUMsT0FBTywwQkFBa0IsR0FDbEMsQ0FDUCxDQUNGLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFDNUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sQ0FDTCxNQUFDLEdBQUcsSUFBQyxhQUFhLEVBQUMsS0FBSyxFQUFDLFFBQVEsRUFBRSxNQUFNLGFBQ3ZDLE1BQUMsR0FBRyxJQUFDLGFBQWEsRUFBQyxLQUFLLGFBQ3RCLEtBQUMsSUFBSSxJQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsSUFBSSxRQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUMsTUFBTSxZQUNyRSxDQUFDLEdBQUcsRUFBRTs0QkFDTCxRQUFRLElBQUksRUFBRSxDQUFDO2dDQUNiLEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxVQUFVO29DQUN2RCxPQUFPLEVBQUUsQ0FBQTtnQ0FDWCxLQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CO29DQUN6QyxPQUFPLElBQUksQ0FBQTtnQ0FDYixLQUFLLFVBQVU7b0NBQ2IsT0FBTyxJQUFJLENBQUE7Z0NBQ2I7b0NBQ0UsT0FBTyxJQUFJLENBQUE7NEJBQ2YsQ0FBQzt3QkFDSCxDQUFDLENBQUMsRUFBRSxHQUNDLEVBQ04sVUFBVSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxVQUFVLElBQUksS0FBQyxnQkFBZ0IsS0FBRyxFQUM3RSxLQUFDLElBQUksSUFBQyxJQUFJLFFBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxZQUM1RSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksR0FDYixFQUNQLEtBQUMsY0FBYyxJQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFJLElBQ2pDLEVBQ04sS0FBQyxNQUFNLEtBQUcsRUFDVixLQUFDLHFCQUFxQixJQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFJLEVBQzVDLEtBQUMsb0JBQW9CLElBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUksSUFDdkMsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtJQUN4QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekMsT0FBTyxDQUNMLEtBQUMsR0FBRyxJQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFDeEIsTUFBQyxJQUFJLElBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxhQUMzQyxHQUFHLEVBQ0gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQUcsR0FBRyxFQUFFLEdBQUcsRUFDM0UsSUFBSSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO29CQUM1QyxJQUFJLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQ2hDLEdBQ0gsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBQ0QsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtJQUN6QyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekMsT0FBTyxDQUNMLEtBQUMsR0FBRyxJQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLFlBQ2hFLEtBQUMsSUFBSSxJQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBRXRDLEdBQ0gsQ0FDUCxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0lBQzFCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6QyxPQUFPLENBQ0wsS0FBQyxHQUFHLGNBQ0QsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQzlCLE1BQUMsSUFBSSxJQUFDLElBQUksUUFBQyxLQUFLLEVBQUMsTUFBTSxhQUNwQixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sYUFDekIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFDcEMsQ0FDUixHQUNHLENBQ1AsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO0lBQzVCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN6QyxPQUFPLENBQ0wsS0FBQyxHQUFHLGNBQ0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FDeEMsS0FBQyxHQUFHLGNBQ0YsS0FBQyxPQUFPLElBQUMsS0FBSyxFQUFDLGFBQWEsR0FBRyxHQUMzQixDQUNQLENBQUMsQ0FBQyxDQUFDLENBQ0YsS0FBQyxHQUFHLElBQUMsV0FBVyxFQUFFLENBQUMsR0FBSSxDQUN4QixHQUNHLENBQ1AsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRTtJQUN2QixPQUFPLENBQ0wsTUFBQyxLQUFLLElBQUMsT0FBTyxFQUFDLE1BQU0sb0VBQ2dDLEtBQUMsSUFBSSxJQUFDLFNBQVMseUJBQVUsVUFBSyxHQUFHLEVBQ3BGLEtBQUMsSUFBSSxJQUFDLFNBQVMsMkJBQVkseUJBQW1CLEtBQUMsSUFBSSxJQUFDLFNBQVMsNEJBQWEsb0JBRXBFLENBQ1QsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUMxQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQTtJQUUzQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixHQUFHLElBQUk7WUFDUCxrQkFBa0IsRUFBRSxJQUFJO1NBQ3pCLENBQUMsQ0FBQyxDQUFBO1FBQ0gsT0FBTyxHQUFHLEVBQUU7WUFDVixVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDdEMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ2hFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0IsR0FBRyxJQUFJO1lBQ1AsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxVQUFVLENBQUMsZUFBZTtRQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFckQsT0FBTyxDQUNMLE1BQUMsR0FBRyxJQUFDLGFBQWEsRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLE1BQU0sYUFDeEMsTUFBQyxLQUFLLElBQUMsT0FBTyxFQUFDLE1BQU0sdUJBQ2IsS0FBQyxJQUFJLElBQUMsU0FBUyw0QkFBYSxxR0FFNUIsRUFDUixNQUFDLEdBQUcsSUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLFlBQVksRUFBRSxDQUFDLGFBQ2pELE1BQUMsSUFBSSxlQUNGLEtBQUssRUFDTixLQUFDLElBQUksSUFBQyxTQUFTLDBCQUFXLG1CQUNyQixFQUVOLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQzVCLEtBQUMsSUFBSSxJQUFDLEtBQUssRUFBQyxPQUFPLHdCQUFlLENBQ25DLENBQUMsQ0FBQyxDQUFDLENBQ0YsTUFBQyxJQUFJLHVCQUNDLEtBQUMsSUFBSSxJQUFDLFNBQVMsd0JBQVMsNkJBQ3ZCLENBQ1IsSUFDRyxFQUNOLEtBQUMsR0FBRyxJQUFDLGFBQWEsRUFBQyxLQUFLLEVBQUMsV0FBVyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBQyxRQUFRLFlBQzlFLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQ3JDLEtBQUMsR0FBRyxJQUFDLFFBQVEsRUFBRSxDQUFDLFlBQ2QsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFDLE9BQU8sOERBQTJDLEdBQzFELENBQ1AsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNkLEtBQUMsR0FBRyxJQUFDLFFBQVEsRUFBRSxDQUFDLFlBQ2QsS0FBQyxPQUFPLElBQUMsS0FBSyxFQUFDLFlBQVksR0FBRyxHQUMxQixDQUNQLENBQUMsQ0FBQyxDQUFDLENBQ0YsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FDN0MsS0FBQyxHQUFHLElBRUYsYUFBYSxFQUFDLFFBQVEsS0FDbEIsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQzlDLFFBQVEsRUFBRSxDQUFDLEVBQ1gsR0FBRyxFQUFFLENBQUMsRUFDTixLQUFLLEVBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzNCLE1BQU0sRUFBRSxDQUFDLEVBQ1QsVUFBVSxFQUFDLFFBQVEsRUFDbkIsY0FBYyxFQUFDLFFBQVEsWUFFdkIsS0FBQyxJQUFJLElBQUMsS0FBSyxFQUFFLENBQUMsWUFBRyxJQUFJLEdBQVEsSUFWeEIsR0FBRyxDQVdKLENBQ1AsQ0FBQyxDQUNILEdBQ0csSUFDRixDQUNQLENBQUE7QUFDSCxDQUFDLENBQUE7QUFDRCxNQUFNLENBQUMsT0FBTyxVQUFVLE1BQU07SUFDNUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDMUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN0QyxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNyQyxtQkFBbUIsRUFBRSxJQUFJO1FBQ3pCLG1CQUFtQixFQUFFLEVBQUU7UUFDdkIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixnQkFBZ0IsRUFBRSxLQUFLO0tBQ3hCLENBQUMsQ0FBQTtJQUNGLE1BQU0sQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFBO0lBQ3pCLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN2RCw4QkFBOEI7SUFFOUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ2xCLGNBQWMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFO1FBQ3JCLFVBQVU7UUFDVixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLElBQUk7UUFDSixPQUFPO1FBQ1AsVUFBVTtRQUNWLFVBQVU7UUFDVixhQUFhO1FBQ2IsS0FBSztRQUNMLFFBQVE7UUFDUixVQUFVO1FBQ1YsT0FBTztLQUNSLENBQUMsQ0FDSCxDQUFBO0lBRUQsT0FBTyxDQUNMLEtBQUMsVUFBVSxDQUFDLFFBQVEsSUFDbEIsS0FBSyxFQUFFO1lBQ0wsVUFBVTtZQUNWLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsT0FBTztZQUNQLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtZQUNiLEtBQUs7WUFDTCxRQUFRO1lBQ1IsT0FBTztZQUNQLFVBQVU7U0FDWCxZQUVELEtBQUMsUUFBUSxjQUNQLEtBQUMsR0FBRyxJQUFDLGFBQWEsRUFBQyxRQUFRLFlBQ3hCLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQzlELE1BQUMsR0FBRyxJQUFDLGFBQWEsRUFBQyxRQUFRLGFBQ3pCLEtBQUMsV0FBVyxLQUFHLEVBQ2YsS0FBQyxTQUFTLEtBQUcsRUFDYixLQUFDLGdCQUFnQixLQUFHLElBQ2hCLENBQ1AsQ0FBQyxDQUFDLENBQUMsQ0FDRixLQUFDLEdBQUcsSUFBQyxhQUFhLEVBQUMsUUFBUSxZQUN6QixLQUFDLGNBQWMsS0FBRyxHQUNkLENBQ1AsR0FDRyxHQUNHLEdBQ1MsQ0FDdkIsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFpQyxFQUFFLEVBQUU7SUFDL0QsbUJBQW1CLEVBQUUsQ0FBQTtJQUNyQixPQUFPLDRCQUFHLFFBQVEsR0FBSSxDQUFBO0FBQ3hCLENBQUMsQ0FBQSJ9
251
+ //# sourceMappingURL=index.js.map