diff --git a/components/Button.tsx b/components/Button.tsx
index ca0cc77..b62db3e 100644
--- a/components/Button.tsx
+++ b/components/Button.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React, { MouseEventHandler } from "react";
export interface ButtonProps {
diff --git a/components/Category.tsx b/components/Category.tsx
index c544ed4..c8cd6fa 100644
--- a/components/Category.tsx
+++ b/components/Category.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React, { memo } from "react";
export interface CategoryProps {
diff --git a/components/EmojiPicker.tsx b/components/EmojiPicker.tsx
index 5f3b035..080d089 100644
--- a/components/EmojiPicker.tsx
+++ b/components/EmojiPicker.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import dynamic from "next/dynamic";
import React from "react";
import { useField } from "formik";
diff --git a/components/Input.tsx b/components/Input.tsx
index cc0b31c..e44fd1c 100644
--- a/components/Input.tsx
+++ b/components/Input.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { Fragment } from "react";
import { FieldInputProps } from "formik";
import { classNames, fieldHasError } from "utils";
diff --git a/components/LargeNumberCard.tsx b/components/LargeNumberCard.tsx
index 8823ceb..10a4786 100644
--- a/components/LargeNumberCard.tsx
+++ b/components/LargeNumberCard.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
const LargeNumberCard: React.FC = () => {
diff --git a/components/Loading.tsx b/components/Loading.tsx
index cd83035..3eb0750 100644
--- a/components/Loading.tsx
+++ b/components/Loading.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
export interface LoadingProps {
diff --git a/components/MobileNavbar.tsx b/components/MobileNavbar.tsx
index c1332aa..53a9188 100644
--- a/components/MobileNavbar.tsx
+++ b/components/MobileNavbar.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React, { Fragment, useState } from "react";
import Link from "next/link";
import { useRouter } from "next/router";
diff --git a/components/Protected.tsx b/components/Protected.tsx
index 11d064f..8b3e7a3 100644
--- a/components/Protected.tsx
+++ b/components/Protected.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
import { useSession } from "next-auth/react";
import { useRouter } from "next/router";
diff --git a/components/RadioButton.tsx b/components/RadioButton.tsx
index 61eb00c..52b840e 100644
--- a/components/RadioButton.tsx
+++ b/components/RadioButton.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
const RadioButton = () => {
diff --git a/components/RecentTransactions.tsx b/components/RecentTransactions.tsx
index ed29943..ac9129a 100644
--- a/components/RecentTransactions.tsx
+++ b/components/RecentTransactions.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React, { Fragment } from "react";
import Link from "next/link";
import { useIntl } from "react-intl";
diff --git a/components/SmallNumberCard.tsx b/components/SmallNumberCard.tsx
index 20434ea..079a847 100644
--- a/components/SmallNumberCard.tsx
+++ b/components/SmallNumberCard.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
import { useIntl } from "react-intl";
import classNames from "classnames";
diff --git a/components/Textarea.tsx b/components/Textarea.tsx
index 54459b9..e409103 100644
--- a/components/Textarea.tsx
+++ b/components/Textarea.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { FieldInputProps } from "formik";
import { classNames } from "../utils";
diff --git a/components/Transaction.tsx b/components/Transaction.tsx
index 69960e7..30499a4 100644
--- a/components/Transaction.tsx
+++ b/components/Transaction.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
import { useIntl } from "react-intl";
import { DateTime } from "luxon";
diff --git a/constants/queries.ts b/constants/queries.ts
index aa62b7a..704b58e 100644
--- a/constants/queries.ts
+++ b/constants/queries.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { gql } from "@apollo/client";
export const GET_CATEGORIES = gql`
diff --git a/contexts/User.tsx b/contexts/User.tsx
index fdd55e8..349e4bd 100644
--- a/contexts/User.tsx
+++ b/contexts/User.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import React from "react";
export type User = { id: string };
diff --git a/forms/AccountDetails.tsx b/forms/AccountDetails.tsx
index d728d05..d94fce9 100644
--- a/forms/AccountDetails.tsx
+++ b/forms/AccountDetails.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { Formik, Form, Field } from "formik";
import { useIntl } from "react-intl";
import * as Yup from "yup";
diff --git a/forms/CategoryForm.tsx b/forms/CategoryForm.tsx
index f6d7941..f8b5cb2 100644
--- a/forms/CategoryForm.tsx
+++ b/forms/CategoryForm.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { Formik, Form, Field } from "formik";
import { useIntl } from "react-intl";
import * as Yup from "yup";
diff --git a/forms/TransactionForm.tsx b/forms/TransactionForm.tsx
index 683f519..0873851 100644
--- a/forms/TransactionForm.tsx
+++ b/forms/TransactionForm.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { Formik, Form, Field } from "formik";
import { useIntl } from "react-intl";
import { toast } from "react-hot-toast";
diff --git a/jest.config.js b/jest.config.js
index a737e9f..ca82709 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// TODO: Setup integration with next so we can do snapshot testing
/*
diff --git a/jest.setup.js b/jest.setup.js
index 0cc243b..34dd779 100644
--- a/jest.setup.js
+++ b/jest.setup.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// Optional: configure or set up a testing framework before each test.
// If you delete this file, remove `setupFilesAfterEnv` from `jest.config.js`
diff --git a/lib/apolloClient.js b/lib/apolloClient.js
index abcd424..93f81a6 100644
--- a/lib/apolloClient.js
+++ b/lib/apolloClient.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { useMemo } from "react";
import { ApolloClient, HttpLink, InMemoryCache, from } from "@apollo/client";
import { setContext } from "@apollo/client/link/context";
diff --git a/lib/cookie.js b/lib/cookie.js
index bb29a0a..8b8e6e8 100644
--- a/lib/cookie.js
+++ b/lib/cookie.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
export const parseCookie = (str) =>
str
.split(";")
diff --git a/next-env.d.ts b/next-env.d.ts
index 9bc3dd4..3c20b0e 100644
--- a/next-env.d.ts
+++ b/next-env.d.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
///
///
///
diff --git a/next.config.js b/next.config.js
index 1b1bfa6..08a8de5 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
/** @type {import('next').NextConfig} */
const { withSentryConfig } = require("@sentry/nextjs");
diff --git a/package.json b/package.json
index 4047bf5..c0fb795 100644
--- a/package.json
+++ b/package.json
@@ -13,7 +13,8 @@
"test:ci": "jest --ci",
"i18n:extract": "formatjs extract 'pages/**/*.ts*' 'components/**/*.ts*' --out-file lang/en.json",
"i18n:compile": "formatjs compile-folder lang compiled-lang",
- "cdk": "cdk"
+ "cdk": "cdk",
+ "addlicense": "addlicense -c 'Synchronous Technologies Pte Ltd' -l apache -ignore 'node_modules/**' -ignore '.next/**' -ignore 'compiled-lang/**' -ignore 'lang/**' ."
},
"dependencies": {
"@apollo/client": "^3.5.10",
diff --git a/pages/404.tsx b/pages/404.tsx
index a12bf44..23bab1c 100644
--- a/pages/404.tsx
+++ b/pages/404.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { useIntl } from "react-intl";
import Link from "next/link";
diff --git a/pages/_app.tsx b/pages/_app.tsx
index ee7973f..4fd265a 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import "styles/global.scss";
import type { AppProps } from "next/app";
import React from "react";
diff --git a/pages/_document.tsx b/pages/_document.tsx
index 454c57e..4cb47fc 100644
--- a/pages/_document.tsx
+++ b/pages/_document.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import Document, {
Html,
Head,
diff --git a/pages/_error.jsx b/pages/_error.jsx
index c5f1f96..fa11b85 100644
--- a/pages/_error.jsx
+++ b/pages/_error.jsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import NextErrorComponent from "next/error";
import * as Sentry from "@sentry/nextjs";
diff --git a/pages/account/categories.tsx b/pages/account/categories.tsx
index 4c3bf8b..e4a0bc9 100644
--- a/pages/account/categories.tsx
+++ b/pages/account/categories.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { useState } from "react";
import { useIntl } from "react-intl";
diff --git a/pages/account/index.tsx b/pages/account/index.tsx
index d9992df..fa97d6f 100644
--- a/pages/account/index.tsx
+++ b/pages/account/index.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
/* eslint-disable @next/next/no-img-element */
import type { NextPage } from "next";
import { useSession } from "next-auth/react";
diff --git a/pages/account/settings.tsx b/pages/account/settings.tsx
index 4e63cc3..42b63e2 100644
--- a/pages/account/settings.tsx
+++ b/pages/account/settings.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { useIntl } from "react-intl";
import Link from "next/link";
diff --git a/pages/analytics.tsx b/pages/analytics.tsx
index 772b042..4c52eeb 100644
--- a/pages/analytics.tsx
+++ b/pages/analytics.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { useIntl } from "react-intl";
import { useQuery, gql } from "@apollo/client";
diff --git a/pages/api/auth/[...nextauth].ts b/pages/api/auth/[...nextauth].ts
index f231792..428f20b 100644
--- a/pages/api/auth/[...nextauth].ts
+++ b/pages/api/auth/[...nextauth].ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import NextAuth from "next-auth";
import * as jwt from "jsonwebtoken";
import { gql, ApolloClient, InMemoryCache } from "@apollo/client";
diff --git a/pages/api/auth/token.ts b/pages/api/auth/token.ts
index e32f266..d1e258b 100644
--- a/pages/api/auth/token.ts
+++ b/pages/api/auth/token.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextApiRequest, NextApiResponse } from "next";
import { parseCookie } from "lib/cookie";
diff --git a/pages/api/hello.ts b/pages/api/hello.ts
index f8bcc7e..21c980d 100644
--- a/pages/api/hello.ts
+++ b/pages/api/hello.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
import type { NextApiRequest, NextApiResponse } from 'next'
diff --git a/pages/index.tsx b/pages/index.tsx
index e6cd0cc..b247ad9 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { useIntl } from "react-intl";
import { useQuery } from "@apollo/client";
diff --git a/pages/signin.tsx b/pages/signin.tsx
index f10a126..090430e 100644
--- a/pages/signin.tsx
+++ b/pages/signin.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage, GetServerSidePropsContext } from "next";
import Image from "next/image";
import { signIn, getSession } from "next-auth/react";
diff --git a/pages/terms-and-conditions.tsx b/pages/terms-and-conditions.tsx
index 9bdad5d..13fe4cc 100644
--- a/pages/terms-and-conditions.tsx
+++ b/pages/terms-and-conditions.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
const TermsAndConditions: NextPage = () => {
diff --git a/pages/transactions.tsx b/pages/transactions.tsx
index 302afeb..fa6da53 100644
--- a/pages/transactions.tsx
+++ b/pages/transactions.tsx
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import type { NextPage } from "next";
import { Fragment } from "react";
import { useIntl } from "react-intl";
diff --git a/postcss.config.js b/postcss.config.js
index 33ad091..cfa96c4 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
module.exports = {
plugins: {
tailwindcss: {},
diff --git a/sentry.client.config.js b/sentry.client.config.js
index d2c2d3e..bc9d1ba 100644
--- a/sentry.client.config.js
+++ b/sentry.client.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// This file configures the initialization of Sentry on the browser.
// The config you add here will be used whenever a page is visited.
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
diff --git a/sentry.server.config.js b/sentry.server.config.js
index 5ebdd53..60732ef 100644
--- a/sentry.server.config.js
+++ b/sentry.server.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
// This file configures the initialization of Sentry on the server.
// The config you add here will be used whenever the server handles a request.
// https://docs.sentry.io/platforms/javascript/guides/nextjs/
diff --git a/server/Dockerfile b/server/Dockerfile
index b42b517..cc38df0 100644
--- a/server/Dockerfile
+++ b/server/Dockerfile
@@ -1,3 +1,17 @@
+# Copyright 2022 Synchronous Technologies Pte Ltd
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
FROM python:3.10-slim
ENV APP_PATH=/usr/src/app
diff --git a/server/get_zefdb.sh b/server/get_zefdb.sh
old mode 100644
new mode 100755
index 96be9d6..31cd1e2
--- a/server/get_zefdb.sh
+++ b/server/get_zefdb.sh
@@ -1,4 +1,18 @@
#!/bin/bash
+# Copyright 2022 Synchronous Technologies Pte Ltd
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Black magic to extract access token and then get asset id from github
# Steps:
diff --git a/styles/global.scss b/styles/global.scss
index 63990e8..d7b3637 100644
--- a/styles/global.scss
+++ b/styles/global.scss
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
@tailwind base;
@tailwind components;
@tailwind utilities;
diff --git a/tailwind.config.js b/tailwind.config.js
index 0044b11..c4e682d 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
module.exports = {
content: [
"./pages/**/*.{js,ts,jsx,tsx}",
diff --git a/types.d.ts b/types.d.ts
index e69de29..8b06c93 100644
--- a/types.d.ts
+++ b/types.d.ts
@@ -0,0 +1,16 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
diff --git a/utils.ts b/utils.ts
index 01218e0..d386c7a 100644
--- a/utils.ts
+++ b/utils.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
export const classNames = (...classes: any[]): string => {
return classes.filter(Boolean).join(" ");
};
diff --git a/utils/currency.test.ts b/utils/currency.test.ts
index c579e71..5c99ae1 100644
--- a/utils/currency.test.ts
+++ b/utils/currency.test.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import { parseCurrency } from "./currency";
test("parseCurrency", () => {
diff --git a/utils/currency.ts b/utils/currency.ts
index 7537caa..7d31edf 100644
--- a/utils/currency.ts
+++ b/utils/currency.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
export const parseCurrency = (value: number): number => {
if (isNaN(value)) {
return 0;
diff --git a/utils/loadIntlMessages.ts b/utils/loadIntlMessages.ts
index e6040be..83d541e 100644
--- a/utils/loadIntlMessages.ts
+++ b/utils/loadIntlMessages.ts
@@ -1,3 +1,19 @@
+/**
+ * Copyright 2022 Synchronous Technologies Pte Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
import fs from "fs/promises";
import path from "path";