diff --git a/apps/metamigo-frontend/components/voice/voicelines/VoiceLineCreate.tsx b/apps/metamigo-frontend/components/voice/voicelines/VoiceLineCreate.tsx
index c9f4e06..2126f36 100644
--- a/apps/metamigo-frontend/components/voice/voicelines/VoiceLineCreate.tsx
+++ b/apps/metamigo-frontend/components/voice/voicelines/VoiceLineCreate.tsx
@@ -17,38 +17,36 @@ import {
} from "./shared";
import MicInput from "./MicInput";
-const VoiceLineCreate = (props: CreateProps) => {
- return (
-
-
-
- `${p.kind}: ${p.name}`} />
-
-
- {AvailableNumbersInput}
-
-
-
- {VoiceInput}
-
+const VoiceLineCreate = (props: CreateProps) => (
+
+
+
+ `${p.kind}: ${p.name}`} />
+
+
+ {AvailableNumbersInput}
+
+
+
+ {VoiceInput}
+
-
- {PromptInput}
-
-
-
-
-
- );
-};
+
+ {PromptInput}
+
+
+
+
+
+);
export default VoiceLineCreate;
diff --git a/apps/metamigo-frontend/components/voice/voicelines/VoiceLineEdit.tsx b/apps/metamigo-frontend/components/voice/voicelines/VoiceLineEdit.tsx
index 012c7f7..8fce338 100644
--- a/apps/metamigo-frontend/components/voice/voicelines/VoiceLineEdit.tsx
+++ b/apps/metamigo-frontend/components/voice/voicelines/VoiceLineEdit.tsx
@@ -15,37 +15,35 @@ import MicInput from "./MicInput";
const VoiceLineTitle = ({ record }: { record?: any }) => {
let title = "";
- if (record) title = record.name ? record.name : record.email;
+ if (record) title = record.name ?? record.email;
return
VoiceLine {title};
};
-const VoiceLineEdit = (props: EditProps) => {
- return (
-
} {...props}>
-
-
- `${p.kind}: ${p.name}`} />
-
-
-
-
-
- {VoiceInput}
-
-
- {PromptInput}
-
-
-
-
-
- );
-};
+const VoiceLineEdit = (props: EditProps) => (
+
} {...props}>
+
+
+ `${p.kind}: ${p.name}`} />
+
+
+
+
+
+ {VoiceInput}
+
+
+ {PromptInput}
+
+
+
+
+
+);
export default VoiceLineEdit;
diff --git a/apps/metamigo-frontend/components/voice/voicelines/shared.tsx b/apps/metamigo-frontend/components/voice/voicelines/shared.tsx
index 20cadae..31a4575 100644
--- a/apps/metamigo-frontend/components/voice/voicelines/shared.tsx
+++ b/apps/metamigo-frontend/components/voice/voicelines/shared.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react/display-name */
import React, { useState, useEffect } from "react";
import PlayIcon from "@material-ui/icons/PlayCircleFilled";
import {
@@ -25,7 +26,7 @@ const tts = async (providerId: any): Promise
=> {
return (voice, language, prompt): Promise =>
new Promise((resolve) => {
if (!voice || !language || !prompt) resolve();
- const Device = twilioClient.Device;
+ const { Device } = twilioClient;
const device = new Device();
const silence = `${absoluteUrl().origin}/static/silence.mp3`;
device.setup(token, {
@@ -39,7 +40,7 @@ const tts = async (providerId: any): Promise => {
outgoing: silence,
},
});
- device.on("ready", function (device: any) {
+ device.on("ready", (device: any) => {
device.connect({ language, voice, prompt });
});
device.on("disconnect", () => resolve());
@@ -69,14 +70,14 @@ export const TextToSpeechButton = ({ form }: any) => {
useEffect(() => {
(async () => {
setPlayText({
- func: async () => {
+ async func() {
setLoading(true);
if (ttsProvider) await ttsProvider.provider(voice, language, prompt);
setLoading(false);
},
});
})();
- }, [prompt, language, voice, ttsProvider?.provider]);
+ }, [prompt, language, voice, ttsProvider, ttsProvider?.provider]);
const disabled = !(providerId && prompt?.length >= 2 && voice && language);
/* TODO add this back to IconButtonwhen we know how to extend MUI theme and appease typescript
@@ -90,19 +91,17 @@ export const TextToSpeechButton = ({ form }: any) => {
);
};
-export const PromptInput = (form: any, ...rest: any[]) => {
- return (
- }}
- {...rest}
- />
- );
-};
+export const PromptInput = (form: any, ...rest: any[]) => (
+ }}
+ {...rest}
+ />
+);
-const validateVoice = (args: any, values: any) => {
+const validateVoice = (_args: any, values: any) => {
if (!values.language) return "validation.language";
if (!values.voice) return "validation.voice";
// @ts-expect-error
@@ -145,25 +144,20 @@ const getAvailableNumbers = async (providerId: string) => {
}
};
-const sidToNumber = (sid: any) => {
- return availableNumbers
- .filter(({ id }) => id === sid)
- .map(({ name }) => name)[0];
-};
+const sidToNumber = (sid: any) =>
+ availableNumbers.filter(({ id }) => id === sid).map(({ name }) => name)[0];
-export const populateNumber = (data: any) => {
- return {
- ...data,
- number: sidToNumber(data.providerLineSid),
- };
-};
+export const populateNumber = (data: any) => ({
+ ...data,
+ number: sidToNumber(data.providerLineSid),
+});
const hasNumbers = (
- args: any,
- value: any,
- values: any,
- translate: any,
- ...props: any[]
+ _args: any,
+ _value: any,
+ _values: any,
+ _translate: any,
+ ..._props: any[]
) => {
if (noAvailableNumbers) return "validation.noAvailableNumbers";
@@ -197,7 +191,7 @@ export const AvailableNumbersInput = (form: any, ...rest: any[]) => {
notify("validation.noAvailableNumbers", { type: "error" });
setLoading(false);
}
- }, [form && form.formData ? form.formData.providerId : undefined]);
+ }, [form, notify, translate]);
return (
<>
diff --git a/apps/metamigo-frontend/components/webhooks/WebhookCreate.tsx b/apps/metamigo-frontend/components/webhooks/WebhookCreate.tsx
index d70a42f..3971b15 100644
--- a/apps/metamigo-frontend/components/webhooks/WebhookCreate.tsx
+++ b/apps/metamigo-frontend/components/webhooks/WebhookCreate.tsx
@@ -22,35 +22,30 @@ import { BackendTypeInput, BackendIdInput, HttpMethodInput } from "./shared";
*/
-const WebhookCreate = (props: CreateProps) => {
- return (
-
-
-
-
-
- {BackendIdInput}
-
-
-
-
-
-
-
-
-
-
-
- );
-};
+const WebhookCreate = (props: CreateProps) => (
+
+
+
+
+
+ {BackendIdInput}
+
+
+
+
+
+
+
+
+
+
+
+);
export default WebhookCreate;
diff --git a/apps/metamigo-frontend/components/webhooks/WebhookEdit.tsx b/apps/metamigo-frontend/components/webhooks/WebhookEdit.tsx
index 17559c4..8def6a0 100644
--- a/apps/metamigo-frontend/components/webhooks/WebhookEdit.tsx
+++ b/apps/metamigo-frontend/components/webhooks/WebhookEdit.tsx
@@ -13,39 +13,34 @@ import { BackendTypeInput, BackendIdInput, HttpMethodInput } from "./shared";
const WebhookTitle = ({ record }: any) => {
let title = "";
- if (record) title = record.name ? record.name : record.email;
+ if (record) title = record.name ?? record.email;
return Webhook {title};
};
-const WebhookEdit = (props: EditProps) => {
- return (
- } {...props}>
-
-
-
-
- {BackendIdInput}
-
-
-
-
-
-
-
-
-
-
-
- );
-};
+const WebhookEdit = (props: EditProps) => (
+ } {...props}>
+
+
+
+
+ {BackendIdInput}
+
+
+
+
+
+
+
+
+
+
+
+);
export default WebhookEdit;
diff --git a/apps/metamigo-frontend/components/webhooks/WebhookList.tsx b/apps/metamigo-frontend/components/webhooks/WebhookList.tsx
index b00f990..f16a967 100644
--- a/apps/metamigo-frontend/components/webhooks/WebhookList.tsx
+++ b/apps/metamigo-frontend/components/webhooks/WebhookList.tsx
@@ -1,11 +1,4 @@
-import {
- List,
- Datagrid,
- DateField,
- TextField,
- ReferenceField,
- ListProps,
-} from "react-admin";
+import { List, Datagrid, DateField, TextField, ListProps } from "react-admin";
import { BackendIdField } from "./shared";
const WebhookList = (props: ListProps) => (
diff --git a/apps/metamigo-frontend/components/whatsapp/bots/WhatsappBotShow.tsx b/apps/metamigo-frontend/components/whatsapp/bots/WhatsappBotShow.tsx
index c670c1f..d7be9ad 100644
--- a/apps/metamigo-frontend/components/whatsapp/bots/WhatsappBotShow.tsx
+++ b/apps/metamigo-frontend/components/whatsapp/bots/WhatsappBotShow.tsx
@@ -145,6 +145,7 @@ const WhatsappBotShow = (props: ShowProps) => {
}, 10000);
return () => clearInterval(interval);
}
+
return undefined;
}, [refresh, data]);
diff --git a/apps/metamigo-frontend/components/whatsapp/bots/shared.tsx b/apps/metamigo-frontend/components/whatsapp/bots/shared.tsx
index 57d7772..cf68011 100644
--- a/apps/metamigo-frontend/components/whatsapp/bots/shared.tsx
+++ b/apps/metamigo-frontend/components/whatsapp/bots/shared.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react/display-name */
import {
SelectInput,
required,
@@ -6,19 +7,25 @@ import {
TextField,
} from "react-admin";
-export const WhatsAppBotSelectInput = (source: string) => () => (
-
-
-
-);
+export const WhatsAppBotSelectInput = (source: string) => () =>
+ (
+
+
+
+ );
-export const WhatsAppBotField = (source: string) => () => (
-
-
-
-);
+export const WhatsAppBotField = (source: string) => () =>
+ (
+
+
+
+ );
diff --git a/apps/metamigo-frontend/lib/absolute-url.ts b/apps/metamigo-frontend/lib/absolute-url.ts
index 2bd3c0e..6c5a4c7 100644
--- a/apps/metamigo-frontend/lib/absolute-url.ts
+++ b/apps/metamigo-frontend/lib/absolute-url.ts
@@ -1,4 +1,4 @@
-import { IncomingMessage } from "http";
+import { IncomingMessage } from "node:http";
function absoluteUrl(
req?: IncomingMessage,
diff --git a/apps/metamigo-frontend/lib/apollo-client.ts b/apps/metamigo-frontend/lib/apollo-client.ts
index 9fc746b..3600746 100644
--- a/apps/metamigo-frontend/lib/apollo-client.ts
+++ b/apps/metamigo-frontend/lib/apollo-client.ts
@@ -36,5 +36,5 @@ export const apolloClient = new ApolloClient({
fetchPolicy: "no-cache",
errorPolicy: "all",
},
- },*/
+ }, */
});
diff --git a/apps/metamigo-frontend/lib/cloudflare.ts b/apps/metamigo-frontend/lib/cloudflare.ts
index 0f922c2..afb2e17 100644
--- a/apps/metamigo-frontend/lib/cloudflare.ts
+++ b/apps/metamigo-frontend/lib/cloudflare.ts
@@ -1,11 +1,11 @@
-import { promisify } from "util";
+import { promisify } from "node:util";
import jwt from "jsonwebtoken";
import jwksClient from "jwks-rsa";
import * as Boom from "@hapi/boom";
import * as Wreck from "@hapi/wreck";
-import Providers from "next-auth/providers";
+import Credentials from "next-auth/providers/credentials";
import type { Adapter } from "next-auth/adapters";
-import type { IncomingMessage } from "http";
+import type { IncomingMessage } from "node:http";
const CF_JWT_HEADER_NAME = "cf-access-jwt-assertion";
const CF_JWT_ALGOS = ["RS256"];
@@ -30,7 +30,7 @@ export const cfVerifier = (audience: string, domain: string): VerifyFn => {
return async (token) => {
const getKey = (header: any, callback: any) => {
- client.getSigningKey(header.kid, function (err: any, key: any) {
+ client.getSigningKey(header.kid, (err: any, key: any) => {
if (err)
throw Boom.serverUnavailable(
"failed to fetch cloudflare access jwks"
@@ -201,8 +201,8 @@ export const CloudflareAccessProvider = (
req: IncomingMessage
) => {
const verifier = cfVerifier(audience, domain);
- // @ts-expect-error
- return Providers.Credentials({
+
+ return Credentials({
id: cloudflareAccountProvider,
name: "Cloudflare Access",
credentials: {},
diff --git a/apps/metamigo-frontend/lib/dataprovider.ts b/apps/metamigo-frontend/lib/dataprovider.ts
index ef1ebbc..d30d3ea 100644
--- a/apps/metamigo-frontend/lib/dataprovider.ts
+++ b/apps/metamigo-frontend/lib/dataprovider.ts
@@ -2,16 +2,14 @@ import pgDataProvider from "ra-postgraphile";
import schema from "./graphql-schema.json";
export const metamigoDataProvider = async (client: any) => {
- const graphqlDataProvider = await pgDataProvider(
+ const graphqlDataProvider: any = await pgDataProvider(
client,
// @ts-expect-error: Missing property
{},
{ introspection: { schema: schema.data.__schema } }
);
- const dataProvider = async (type: any, resource: any, params: any) => {
- return graphqlDataProvider(type, resource, params);
- };
+ const dataProvider = async (type: any, resource: any, params: any) => graphqlDataProvider(type, resource, params);
return dataProvider;
};
diff --git a/apps/metamigo-frontend/lib/nextauth-adapter.ts b/apps/metamigo-frontend/lib/nextauth-adapter.ts
index a449dbf..3b8c7fa 100644
--- a/apps/metamigo-frontend/lib/nextauth-adapter.ts
+++ b/apps/metamigo-frontend/lib/nextauth-adapter.ts
@@ -30,7 +30,7 @@ export interface Session {
// from https://github.com/nextauthjs/next-auth/blob/main/src/lib/errors.js
class UnknownError extends Error {
- constructor(message) {
+ constructor(message: any) {
super(message);
this.name = "UnknownError";
this.message = message;
@@ -48,14 +48,14 @@ class UnknownError extends Error {
}
class CreateUserError extends UnknownError {
- constructor(message) {
+ constructor(message: any) {
super(message);
this.name = "CreateUserError";
this.message = message;
}
}
-const basicHeader = (secret) =>
+const basicHeader = (secret: any) =>
"Basic " + Buffer.from(secret + ":", "utf8").toString("base64");
export const MetamigoAdapter = (config: IAppConfig): Adapter => {
@@ -155,7 +155,7 @@ export const MetamigoAdapter = (config: IAppConfig): Adapter => {
await wreck.put("linkAccount", {
payload,
});
- } catch (error) {
+ } catch {
throw new Error("LINK_ACCOUNT_ERROR");
}
}
@@ -208,7 +208,7 @@ export const MetamigoAdapter = (config: IAppConfig): Adapter => {
}
}
- return Promise.resolve({
+ return {
createUser,
getUser,
getUserByEmail,
@@ -222,7 +222,7 @@ export const MetamigoAdapter = (config: IAppConfig): Adapter => {
updateSession,
deleteSession,
// @ts-expect-error: Type error
- } as AdapterInstance);
+ } as AdapterInstance;
}
return {
diff --git a/apps/metamigo-frontend/lib/phone-numbers.ts b/apps/metamigo-frontend/lib/phone-numbers.ts
index c92f4e1..566ebe1 100644
--- a/apps/metamigo-frontend/lib/phone-numbers.ts
+++ b/apps/metamigo-frontend/lib/phone-numbers.ts
@@ -4,14 +4,12 @@ export const E164Regex = /^\+[1-9]\d{1,14}$/;
/**
* Returns true if the number is a valid E164 number
*/
-export const isValidE164Number = (phoneNumber) => {
- return E164Regex.test(phoneNumber);
-};
+export const isValidE164Number = (phoneNumber: string) => E164Regex.test(phoneNumber);
/**
* Given a phone number approximation, will clean out whitespace and punctuation.
*/
-export const sanitizeE164Number = (phoneNumber) => {
+export const sanitizeE164Number = (phoneNumber: string) => {
if (!phoneNumber) return "";
if (!phoneNumber.trim()) return "";
const sanitized = phoneNumber
diff --git a/apps/metamigo-frontend/next.config.js b/apps/metamigo-frontend/next.config.js
index 053de5a..53f2548 100644
--- a/apps/metamigo-frontend/next.config.js
+++ b/apps/metamigo-frontend/next.config.js
@@ -1,4 +1,5 @@
module.exports = {
+ experimental: { esmExternals: "loose" },
async redirects() {
return [{ source: "/", destination: "/admin", permanent: true }];
},
diff --git a/apps/metamigo-frontend/pages/_app.tsx b/apps/metamigo-frontend/pages/_app.tsx
index 5573caa..d5aa97c 100644
--- a/apps/metamigo-frontend/pages/_app.tsx
+++ b/apps/metamigo-frontend/pages/_app.tsx
@@ -4,7 +4,7 @@ import { SessionProvider } from "next-auth/react";
function MetamigoStarter({ Component, pageProps }: AppProps) {
return (
-
+
);
diff --git a/apps/metamigo-frontend/pages/api/auth/[...nextauth].ts b/apps/metamigo-frontend/pages/api/auth/[...nextauth].ts
index ff62997..35427b3 100644
--- a/apps/metamigo-frontend/pages/api/auth/[...nextauth].ts
+++ b/apps/metamigo-frontend/pages/api/auth/[...nextauth].ts
@@ -4,7 +4,7 @@ import Google from "next-auth/providers/google";
import GitHub from "next-auth/providers/github";
import GitLab from "next-auth/providers/gitlab";
import Cognito from "next-auth/providers/cognito";
-import { loadConfig, IAppConfig } from "config";
+import { loadConfig, IAppConfig } from "@digiresilience/metamigo-config";
import { MetamigoAdapter } from "../../../lib/nextauth-adapter";
import { CloudflareAccessProvider } from "../../../lib/cloudflare";
@@ -72,12 +72,12 @@ const nextAuthOptions = (config: IAppConfig, req: NextApiRequest) => {
providers,
adapter,
callbacks: {
- session: async (session: any, token: any) => {
+ async session(session: any, token: any) {
// make the user id available in the react client
session.user.id = token.userId;
return session;
},
- jwt: async (token: any, user: any) => {
+ async jwt(token: any, user: any) {
const isSignIn = Boolean(user);
// Add auth_time to token on signin in
if (isSignIn) {
diff --git a/apps/metamigo-frontend/pages/api/graphql/[[...path]].ts b/apps/metamigo-frontend/pages/api/graphql/[[...path]].ts
index 1b1ca26..251b34c 100644
--- a/apps/metamigo-frontend/pages/api/graphql/[[...path]].ts
+++ b/apps/metamigo-frontend/pages/api/graphql/[[...path]].ts
@@ -8,7 +8,7 @@ export default createProxyMiddleware({
changeOrigin: true,
pathRewrite: { "^/graphql": "/graphql" },
xfwd: true,
- onProxyReq: function (proxyReq, req, _res) {
+ onProxyReq(proxyReq, req, _res) {
const auth = proxyReq.getHeader("authorization");
if (auth) {
// pass along user provided authorization header
@@ -20,8 +20,8 @@ export default createProxyMiddleware({
let token = req.cookies["__Secure-next-auth.session-token"];
if (!token) token = req.cookies["next-auth.session-token"];
- //console.log(req.body);
- //if (req.body.query) console.log(req.body.query);
+ // console.log(req.body);
+ // if (req.body.query) console.log(req.body.query);
if (token) {
proxyReq.setHeader("authorization", `Bearer ${token}`);
proxyReq.removeHeader("cookie");
diff --git a/apps/metamigo-frontend/pages/api/proxy/[[...path]].js b/apps/metamigo-frontend/pages/api/proxy/[[...path]].js
index 097c267..470164b 100644
--- a/apps/metamigo-frontend/pages/api/proxy/[[...path]].js
+++ b/apps/metamigo-frontend/pages/api/proxy/[[...path]].js
@@ -8,7 +8,7 @@ export default createProxyMiddleware({
changeOrigin: true,
pathRewrite: { "^/api/v1": "/api" },
xfwd: true,
- onProxyReq: function (proxyReq, req, res) {
+ onProxyReq(proxyReq, req) {
const auth = proxyReq.getHeader("authorization");
if (auth) {
// pass along user provided authorization header
@@ -17,7 +17,7 @@ export default createProxyMiddleware({
// Else extract the session token from the cookie and pass
// as bearer token to the proxy target
- //const token = req.cookies["next-auth.session-token"];
+ // const token = req.cookies["next-auth.session-token"];
let token = req.cookies["__Secure-next-auth.session-token"];
if (!token) token = req.cookies["next-auth.session-token"];
@@ -27,7 +27,6 @@ export default createProxyMiddleware({
} else {
console.error("no token found. proxied request to backend will fail.");
}
- return;
},
});
diff --git a/apps/metamigo-frontend/pages/index.tsx b/apps/metamigo-frontend/pages/index.tsx
index 6e0bacd..cca2c04 100644
--- a/apps/metamigo-frontend/pages/index.tsx
+++ b/apps/metamigo-frontend/pages/index.tsx
@@ -1,6 +1,6 @@
import { NextPage } from "next";
import { Typography, Box, Button, Grid, Link } from "@material-ui/core";
-import { FC, PropsWithChildren, useEffect } from "react";
+import { FC, useEffect } from "react";
import { useRouter } from "next/router";
export const RedirectToAdmin: FC = ({ children }) => {
diff --git a/apps/metamigo-frontend/pages/login.tsx b/apps/metamigo-frontend/pages/login.tsx
index b7260a3..b5c441d 100644
--- a/apps/metamigo-frontend/pages/login.tsx
+++ b/apps/metamigo-frontend/pages/login.tsx
@@ -1,7 +1,8 @@
+import { FC } from "react";
import { Button } from "@material-ui/core";
import { signIn, signOut, useSession } from "next-auth/react";
-export default function myComponent() {
+const MyComponent: FC = () => {
const { data: session } = useSession();
return (
@@ -24,4 +25,6 @@ export default function myComponent() {
)}
>
);
-}
+};
+
+export default MyComponent;
diff --git a/package-lock.json b/package-lock.json
index cb0a1d4..4d9b031 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -150,6 +150,7 @@
"react-dom": "^18",
"react-iframe": "^1.8.5",
"react-polyglot": "^0.7.2",
+ "sharp": "^0.30.7",
"swr": "^2.0.3"
},
"devDependencies": {
@@ -7672,6 +7673,39 @@
"version": "1.0.2",
"license": "MIT"
},
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/bl/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/blipp": {
"version": "4.0.2",
"license": "BSD",
@@ -8277,6 +8311,18 @@
"version": "1.0.1",
"license": "MIT"
},
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
"node_modules/color-convert": {
"version": "1.9.3",
"license": "MIT",
@@ -8288,6 +8334,15 @@
"version": "1.1.3",
"license": "MIT"
},
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
"node_modules/color-support": {
"version": "1.1.3",
"license": "ISC",
@@ -8296,6 +8351,22 @@
"color-support": "bin.js"
}
},
+ "node_modules/color/node_modules/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==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color/node_modules/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=="
+ },
"node_modules/colorette": {
"version": "2.0.19",
"dev": true,
@@ -8649,6 +8720,20 @@
"node": ">=0.10"
}
},
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/dedent": {
"version": "0.7.0",
"license": "MIT"
@@ -8680,6 +8765,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"license": "MIT"
@@ -8779,7 +8872,6 @@
"node_modules/detect-libc": {
"version": "2.0.1",
"license": "Apache-2.0",
- "optional": true,
"engines": {
"node": ">=8"
}
@@ -10162,6 +10254,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/expect": {
"version": "29.5.0",
"dev": true,
@@ -10505,6 +10605,11 @@
"version": "1.0.5",
"license": "MIT"
},
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
"node_modules/fs-minipass": {
"version": "2.1.0",
"license": "ISC",
@@ -10666,6 +10771,11 @@
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
+ },
"node_modules/glob": {
"version": "7.2.3",
"license": "ISC",
@@ -12076,6 +12186,11 @@
"version": "2.0.4",
"license": "ISC"
},
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
"node_modules/inline-style-parser": {
"version": "0.1.1",
"license": "MIT"
@@ -15037,6 +15152,7 @@
},
"node_modules/libsignal": {
"version": "2.0.1",
+ "resolved": "git+ssh://git@github.com/adiwajshing/libsignal-node.git#11dbd962ea108187c79a7c46fe4d6f790e23da97",
"license": "GPL-3.0",
"dependencies": {
"curve25519-js": "^0.0.4",
@@ -15955,6 +16071,17 @@
"node": ">=6"
}
},
+ "node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/min-indent": {
"version": "1.0.1",
"license": "MIT",
@@ -16025,6 +16152,11 @@
"node": ">=10"
}
},
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"node_modules/mo-walk": {
"version": "1.2.0",
"license": "MIT",
@@ -16110,6 +16242,11 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
"node_modules/natural-compare": {
"version": "1.4.0",
"license": "MIT"
@@ -16257,6 +16394,52 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/node-abi": {
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz",
+ "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-abi/node_modules/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==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-abi/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-abi/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/node-addon-api": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
+ },
"node_modules/node-cache": {
"version": "5.1.2",
"license": "MIT",
@@ -17596,6 +17779,31 @@
"version": "3.8.0",
"license": "MIT"
},
+ "node_modules/prebuild-install": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/precond": {
"version": "0.2.3",
"engines": {
@@ -17921,7 +18129,6 @@
},
"node_modules/pump": {
"version": "3.0.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
@@ -18188,6 +18395,28 @@
"node": ">= 0.8"
}
},
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/react": {
"version": "17.0.2",
"license": "MIT",
@@ -19141,6 +19370,58 @@
"sha.js": "bin.js"
}
},
+ "node_modules/sharp": {
+ "version": "0.30.7",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
+ "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.1",
+ "node-addon-api": "^5.0.0",
+ "prebuild-install": "^7.1.1",
+ "semver": "^7.3.7",
+ "simple-get": "^4.0.1",
+ "tar-fs": "^2.1.1",
+ "tunnel-agent": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=12.13.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/sharp/node_modules/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==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sharp/node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/sharp/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"license": "MIT",
@@ -19185,6 +19466,62 @@
"version": "3.0.7",
"license": "ISC"
},
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
"node_modules/simple-update-notifier": {
"version": "1.1.0",
"dev": true,
@@ -19777,6 +20114,37 @@
"node": ">=10"
}
},
+ "node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-fs/node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/tar/node_modules/yallist": {
"version": "4.0.0",
"license": "ISC",
@@ -20260,6 +20628,17 @@
"version": "1.14.1",
"license": "0BSD"
},
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/twilio": {
"version": "3.84.1",
"license": "MIT",
@@ -29424,6 +29803,27 @@
"bintrees": {
"version": "1.0.2"
},
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
"blipp": {
"version": "4.0.2",
"requires": {
@@ -29773,6 +30173,30 @@
"collect-v8-coverage": {
"version": "1.0.1"
},
+ "color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "requires": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "dependencies": {
+ "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==",
+ "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=="
+ }
+ }
+ },
"color-convert": {
"version": "1.9.3",
"requires": {
@@ -29782,6 +30206,15 @@
"color-name": {
"version": "1.1.3"
},
+ "color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
"color-support": {
"version": "1.1.3",
"optional": true
@@ -30002,6 +30435,14 @@
"decode-uri-component": {
"version": "0.2.2"
},
+ "decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "requires": {
+ "mimic-response": "^3.1.0"
+ }
+ },
"dedent": {
"version": "0.7.0"
},
@@ -30028,6 +30469,11 @@
"which-typed-array": "^1.1.9"
}
},
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
"deep-is": {
"version": "0.1.4"
},
@@ -30078,8 +30524,7 @@
"version": "1.2.0"
},
"detect-libc": {
- "version": "2.0.1",
- "optional": true
+ "version": "2.0.1"
},
"detect-newline": {
"version": "3.1.0"
@@ -30978,6 +31423,11 @@
"exit": {
"version": "0.1.2"
},
+ "expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
+ },
"expect": {
"version": "29.5.0",
"dev": true,
@@ -31202,6 +31652,11 @@
"format-util": {
"version": "1.0.5"
},
+ "fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
+ },
"fs-minipass": {
"version": "2.1.0",
"optional": true,
@@ -31296,6 +31751,11 @@
"version": "4.4.0",
"dev": true
},
+ "github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
+ },
"glob": {
"version": "7.2.3",
"requires": {
@@ -32244,6 +32704,11 @@
"inherits": {
"version": "2.0.4"
},
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
"inline-style-parser": {
"version": "0.1.1"
},
@@ -34975,7 +35440,8 @@
}
},
"libsignal": {
- "version": "2.0.1",
+ "version": "git+ssh://git@github.com/adiwajshing/libsignal-node.git#11dbd962ea108187c79a7c46fe4d6f790e23da97",
+ "from": "libsignal@git+https://github.com/adiwajshing/libsignal-node",
"requires": {
"curve25519-js": "^0.0.4",
"protobufjs": "6.8.8"
@@ -35053,6 +35519,7 @@
"react-dom": "^18",
"react-iframe": "^1.8.5",
"react-polyglot": "^0.7.2",
+ "sharp": "^0.30.7",
"swr": "^2.0.3",
"typescript": "^4.9.5"
},
@@ -35639,7 +36106,7 @@
"react-timer-hook": "^3.0.5",
"swr": "^2.0.0",
"tsconfig-link": "*",
- "twilio-client": "*",
+ "twilio-client": "^1.15.0",
"typescript": "^4.9.5"
},
"dependencies": {
@@ -35943,6 +36410,11 @@
"mimic-fn": {
"version": "2.1.0"
},
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+ },
"min-indent": {
"version": "1.0.1"
},
@@ -35983,6 +36455,11 @@
"mkdirp": {
"version": "1.0.4"
},
+ "mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
+ },
"mo-walk": {
"version": "1.2.0",
"requires": {
@@ -36040,6 +36517,11 @@
"nanoid": {
"version": "3.3.4"
},
+ "napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
+ },
"natural-compare": {
"version": "1.4.0"
},
@@ -36133,6 +36615,42 @@
"tslib": "^2.0.3"
}
},
+ "node-abi": {
+ "version": "3.33.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.33.0.tgz",
+ "integrity": "sha512-7GGVawqyHF4pfd0YFybhv/eM9JwTtPqx0mAanQ146O3FlSh3pA24zf9IRQTOsfTSqXTNzPSP5iagAJ94jjuVog==",
+ "requires": {
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "node-addon-api": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
+ },
"node-cache": {
"version": "5.1.2",
"requires": {
@@ -36947,6 +37465,25 @@
}
}
},
+ "prebuild-install": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
+ "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==",
+ "requires": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ }
+ },
"precond": {
"version": "0.2.3"
},
@@ -37189,7 +37726,6 @@
},
"pump": {
"version": "3.0.0",
- "dev": true,
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -37356,6 +37892,24 @@
}
}
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
+ }
+ }
+ },
"react": {
"version": "17.0.2",
"requires": {
@@ -37903,6 +38457,44 @@
"safe-buffer": "^5.0.1"
}
},
+ "sharp": {
+ "version": "0.30.7",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz",
+ "integrity": "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==",
+ "requires": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.1",
+ "node-addon-api": "^5.0.0",
+ "prebuild-install": "^7.1.1",
+ "semver": "^7.3.7",
+ "simple-get": "^4.0.1",
+ "tar-fs": "^2.1.1",
+ "tunnel-agent": "^0.6.0"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
"shebang-command": {
"version": "2.0.0",
"requires": {
@@ -37933,6 +38525,36 @@
"signal-exit": {
"version": "3.0.7"
},
+ "simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
+ },
+ "simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "requires": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ }
+ }
+ },
"simple-update-notifier": {
"version": "1.1.0",
"dev": true,
@@ -38299,6 +38921,36 @@
}
}
},
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ },
+ "dependencies": {
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ }
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
"tdigest": {
"version": "0.1.2",
"requires": {
@@ -38604,6 +39256,14 @@
}
}
},
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"twilio": {
"version": "3.84.1",
"requires": {
diff --git a/packages/eslint-config-link/profile/common.js b/packages/eslint-config-link/profile/common.js
index 4b77670..8fac3da 100644
--- a/packages/eslint-config-link/profile/common.js
+++ b/packages/eslint-config-link/profile/common.js
@@ -29,6 +29,7 @@ module.exports = {
"no-use-extend-native/no-use-extend-native": "error",
// this one breaks libraries like Ramda and lodash
"unicorn/no-array-callback-reference": "off",
+ "unicorn/filename-case": "off",
"unicorn/better-regex": [
"error",
{
diff --git a/packages/eslint-config-link/profile/typescript.js b/packages/eslint-config-link/profile/typescript.js
index a5a7175..8de3986 100644
--- a/packages/eslint-config-link/profile/typescript.js
+++ b/packages/eslint-config-link/profile/typescript.js
@@ -16,13 +16,8 @@ module.exports = {
},
],
"no-extra-semi": "off",
+ "@typescript-eslint/ban-ts-comment": "off",
+ "@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-extra-semi": "error",
- "@typescript-eslint/ban-ts-comment": [
- "error",
- {
- "ts-nocheck": "allow-with-description",
- "ts-expect-error": "allow-with-description",
- },
- ],
},
};
diff --git a/packages/metamigo-common/src/config/print.ts b/packages/metamigo-common/src/config/print.ts
index 70c78e8..9003c5a 100644
--- a/packages/metamigo-common/src/config/print.ts
+++ b/packages/metamigo-common/src/config/print.ts
@@ -1,7 +1,6 @@
import chalk from "chalk";
import convict from "convict";
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
const visitLeaf = (path: any, key: any, leaf: any) => {
if (leaf.skipGenerate) {
return;
@@ -21,7 +20,6 @@ const visitLeaf = (path: any, key: any, leaf: any) => {
console.log(`\tenv: ${leaf.env}`);
};
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
const visitNode = (path: any, node: any, key = "") => {
if (node._cvtProperties) {
const keys = Object.keys(node._cvtProperties);
@@ -36,7 +34,6 @@ const visitNode = (path: any, node: any, key = "") => {
}
};
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const printConfigOptions = (conf: convict.Config): void => {
const schema = conf.getSchema();
visitNode("", schema);
diff --git a/packages/metamigo-common/src/controllers/nextauth-adapter.ts b/packages/metamigo-common/src/controllers/nextauth-adapter.ts
index 6880628..cbdb7e8 100644
--- a/packages/metamigo-common/src/controllers/nextauth-adapter.ts
+++ b/packages/metamigo-common/src/controllers/nextauth-adapter.ts
@@ -12,7 +12,6 @@ export const defaultSessionMaxAge = 30 * 24 * 60 * 60 * 1000;
// Sessions updated only if session is greater than this value (0 = always)
export const defaulteSessionUpdateAge = 24 * 60 * 60 * 1000;
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
const getCompoundId = (providerId: any, providerAccountId: any) =>
createHash("sha256")
.update(`${providerId}:${providerAccountId}`)
@@ -27,7 +26,7 @@ export class NextAuthAdapter
private repos: TRepositories,
private readonly sessionMaxAge = defaultSessionMaxAge,
private readonly sessionUpdateAge = defaulteSessionUpdateAge
- ) {}
+ ) { }
async createUser(profile: UnsavedUser): Promise {
// @ts-expect-error Typescript doesn't like lodash's omit()
diff --git a/packages/metamigo-common/tsconfig.json b/packages/metamigo-common/tsconfig.json
index 77496bb..c34e0c4 100644
--- a/packages/metamigo-common/tsconfig.json
+++ b/packages/metamigo-common/tsconfig.json
@@ -5,7 +5,8 @@
"outDir": "build/main",
"rootDir": "src",
"baseUrl": "./",
- "types": ["jest", "node"]
+ "types": ["jest", "node"],
+ "esModuleInterop": true
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules/**"]