) => {
11 | const { lastSync, localData, remoteData } = event.data
12 | const comparisonResult = new Comparator(lastSync, localData, remoteData).compare()
13 | self.postMessage(comparisonResult)
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/index.tsx:
--------------------------------------------------------------------------------
1 | import 'animate.css'
2 | import { store } from 'app/libs/redux/state.store'
3 | import { Startupper } from 'app/libs/startupper/startupper.class'
4 | import { AdminLayout } from 'app/components/admin-layout/admin-layout.component'
5 | import React from 'react'
6 | import { HashRouter as Router } from 'react-router-dom'
7 | import { Provider as StoreProvider } from 'react-redux'
8 | import './index.css'
9 | import { ModalProvider } from 'app/components/shared-components/modals/modal.component'
10 | import * as ReactDOMClient from 'react-dom/client'
11 | import * as serviceWorkerRegistration from './serviceWorkerRegistration'
12 | import 'tippy.js/dist/tippy.css'
13 |
14 | new Startupper().init()
15 | const rootElement = document.getElementById('root')
16 | const root = ReactDOMClient.createRoot(rootElement!)
17 | root.render(
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | )
28 |
29 | serviceWorkerRegistration.register()
30 |
--------------------------------------------------------------------------------
/app/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/app/src/reportWebVitals.ts:
--------------------------------------------------------------------------------
1 | import { ReportHandler } from 'web-vitals'
2 |
3 | const reportWebVitals = (onPerfEntry?: ReportHandler) => {
4 | if (onPerfEntry && onPerfEntry instanceof Function) {
5 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
6 | getCLS(onPerfEntry)
7 | getFID(onPerfEntry)
8 | getFCP(onPerfEntry)
9 | getLCP(onPerfEntry)
10 | getTTFB(onPerfEntry)
11 | })
12 | }
13 | }
14 |
15 | export default reportWebVitals
16 |
--------------------------------------------------------------------------------
/app/src/setupTests.ts:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom'
6 |
--------------------------------------------------------------------------------
/app/src/types/date-format.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'date-format'
2 |
--------------------------------------------------------------------------------
/app/src/types/index.d.ts:
--------------------------------------------------------------------------------
1 | export {}
2 |
3 | declare global {
4 | interface Window {
5 | showOpenFilePicker: () => void
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/tailwind.config.js:
--------------------------------------------------------------------------------
1 | const colors = require('tailwindcss/colors')
2 |
3 | module.exports = {
4 | content: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html'],
5 | theme: {
6 | colors: {
7 | transparent: 'transparent',
8 | current: 'currentColor',
9 | black: colors.black,
10 | white: colors.white,
11 | rose: colors.rose,
12 | pink: colors.pink,
13 | fuchsia: colors.fuchsia,
14 | purple: colors.purple,
15 | violet: colors.violet,
16 | indigo: colors.indigo,
17 | blue: colors.blue,
18 | 'prussian-blue': {
19 | DEFAULT: '#002346',
20 | 50: '#2D96FF',
21 | 100: '#1389FF',
22 | 200: '#006FDF',
23 | 300: '#0056AC',
24 | 400: '#003C79',
25 | 500: '#002346',
26 | 600: '#002346',
27 | 700: '#000f20',
28 | 800: '#000e1f',
29 | 900: '#000d1b'
30 | },
31 | sky: colors.sky,
32 | cyan: colors.cyan,
33 | teal: colors.teal,
34 | emerald: colors.emerald,
35 | green: colors.green,
36 | lime: colors.lime,
37 | yellow: colors.yellow,
38 | amber: colors.amber,
39 | orange: colors.orange,
40 | red: colors.red,
41 | stone: colors.stone,
42 | neutral: colors.neutral,
43 | gray: colors.gray,
44 | slate: colors.slate
45 | }
46 | },
47 | variants: {
48 | extend: {}
49 | },
50 | plugins: [
51 | require('@tailwindcss/forms')
52 | ]
53 | }
54 |
--------------------------------------------------------------------------------
/app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "esModuleInterop": true,
12 | "allowSyntheticDefaultImports": true,
13 | "strict": true,
14 | "strictPropertyInitialization": true,
15 | "strictNullChecks": true,
16 | "forceConsistentCasingInFileNames": true,
17 | "noFallthroughCasesInSwitch": true,
18 | "module": "esnext",
19 | "moduleResolution": "node",
20 | "resolveJsonModule": true,
21 | "isolatedModules": true,
22 | "noEmit": true,
23 | "jsx": "react-jsx",
24 | "baseUrl": "src"
25 | },
26 | "include": [
27 | "src/**/*"
28 | ]
29 | }
--------------------------------------------------------------------------------
/assets/AnitaLogo.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/assets/AnitaLogo.sketch
--------------------------------------------------------------------------------
/assets/DataSync.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/assets/DataSync.sketch
--------------------------------------------------------------------------------
/assets/LandingImages.sketch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/assets/LandingImages.sketch
--------------------------------------------------------------------------------
/landing/.vscode/ltex.disabledRules.en-US.txt:
--------------------------------------------------------------------------------
1 | LIBRARY
2 |
--------------------------------------------------------------------------------
/landing/config/default.ts:
--------------------------------------------------------------------------------
1 | import { YassbConfig } from 'yassb-web';
2 | import { DateFormatterDirective } from '../src/app/yassb-plugins/custom-directives/date-formatter-directive.class';
3 | import { blogList } from '../src/app/yassb-plugins/custom-renderers/blog-list';
4 | import { packagesList } from '../src/app/yassb-plugins/custom-renderers/packages-list';
5 | import { addDivToPreCode } from '../src/app/yassb-plugins/post-processors/add-div-to-pre-code.function';
6 | import { buildTailwind } from '../src/app/yassb-plugins/styles-parser/build-tailwind.function';
7 |
8 | export default {
9 | workingDir: {
10 | out: '../anita-app.github.io',
11 | styles: 'styles/styles.css'
12 | },
13 | stylesParser: buildTailwind,
14 | customRenderers: {
15 | blogList: blogList,
16 | packagesList: packagesList
17 | },
18 | customDirectives: [DateFormatterDirective],
19 | htmlMinificationOptions: {
20 | removeAttributeQuotes: false,
21 | collapseWhitespace: true,
22 | collapseInlineTagWhitespace: true,
23 | conservativeCollapse: true,
24 | minifyCSS: true,
25 | minifyJS: true,
26 | removeComments: true
27 | },
28 | grayMatterOption: {
29 | excerpt: true,
30 | excerpt_separator: ''
31 | },
32 | postProcessors: [addDivToPreCode]
33 | } as YassbConfig;
34 |
--------------------------------------------------------------------------------
/landing/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "anita-landing",
3 | "description": "Anita landing page",
4 | "version": "0.20.0",
5 | "author": "ilDon",
6 | "scripts": {
7 | "licenses": "npx license-checker --production --json --out src/app/data-sources/landing-packages.json",
8 | "watch": "yassb watch",
9 | "build": "yassb build",
10 | "serve": "yassb serve",
11 | "deploy": "cglg --action=newRelease && npm run do-no-run-this-deploy-directly && cglg --action=closeRelease",
12 | "do-no-run-this-deploy-directly": "npm run build"
13 | },
14 | "dependencies": {
15 | "showdown": "^1.9.1"
16 | },
17 | "devDependencies": {
18 | "@tailwindcss/typography": "^0.5.7",
19 | "@types/autoprefixer": "^10.2.0",
20 | "@types/clean-css": "^4.2.5",
21 | "@types/showdown": "^1.9.4",
22 | "@types/tailwindcss": "^2.2.1",
23 | "autoprefixer": "^10.4.8",
24 | "postcss": "^8.4.16",
25 | "react": "^17.0.2",
26 | "react-dom": "^17.0.2",
27 | "tailwindcss": "^3.1.8",
28 | "typescript": "^4.4.4",
29 | "yassb-web": "^1.3.0"
30 | },
31 | "license": "CC-BY-NC-4.0"
32 | }
33 |
--------------------------------------------------------------------------------
/landing/src/app/components/get-started.component.html:
--------------------------------------------------------------------------------
1 |
2 | Get startedBeta
3 |
--------------------------------------------------------------------------------
/landing/src/app/components/head/head.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/landing/src/app/components/instructions/builds.md:
--------------------------------------------------------------------------------
1 | yassb build
2 | or
3 |
4 | yassb watch // w/ live reloading!
--------------------------------------------------------------------------------
/landing/src/app/components/instructions/installation.md:
--------------------------------------------------------------------------------
1 | npm i -g yassb-web
2 | or
3 |
4 | yarn global add yassb-web
--------------------------------------------------------------------------------
/landing/src/app/components/instructions/new-project.md:
--------------------------------------------------------------------------------
1 | yassb new myStaticWebSite
2 |
3 | and
4 |
5 | cd myStaticWebSite
--------------------------------------------------------------------------------
/landing/src/app/components/landing/live-demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
Try it now
6 |
A live demo is worth a thousand pictures.
7 |
In the box below Anita is already up and running. You can start trying it out, all data will be saved on your device.
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/landing/src/app/pages/blog/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Anita Blog
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
From the blog
20 |
Articles, guides, in-depth analysis of how Anita works, and anything that is related and relevant for Anita.
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/landing/src/app/pages/licenses.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Anita ❤ open source
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | Anita is made possible thanks to the following open source software:
19 |
20 | - Landing page:
21 |
22 |
23 | - Progressive web app:
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/landing/src/app/scripts/main.ts:
--------------------------------------------------------------------------------
1 | import { Typewriter } from './typewriter.class';
2 | import { multiplyHeadsAsBodyRows } from './responsive-table/multiply-heads-as-body-rows.function';
3 | import { setHeights } from './responsive-table/set-heights';
4 |
5 | window['toggleNavbar'] = collapseID => {
6 | document.getElementById(collapseID).classList.toggle('hidden');
7 | document.getElementById(collapseID).classList.toggle('block');
8 | };
9 |
10 |
11 | multiplyHeadsAsBodyRows();
12 |
13 | window.onresize = setHeights;
14 |
15 | // on window ready
16 | window.onload = () => {
17 | Typewriter.start()
18 | }
--------------------------------------------------------------------------------
/landing/src/app/yassb-plugins/custom-directives/months.const.ts:
--------------------------------------------------------------------------------
1 | export const MONTHS = [
2 | 'January',
3 | 'February',
4 | 'March',
5 | 'April',
6 | 'May',
7 | 'June',
8 | 'July',
9 | 'August',
10 | 'September',
11 | 'October',
12 | 'November',
13 | 'December'
14 | ]
15 |
--------------------------------------------------------------------------------
/landing/src/app/yassb-plugins/custom-renderers/sort-blogs-by-date.ts:
--------------------------------------------------------------------------------
1 | import { FilePathsForPublicFileList, FrontMatterDataStore } from 'yassb-web';
2 |
3 | export function sortBlogsByDate(source: FilePathsForPublicFileList[], frontMatterStore: FrontMatterDataStore) {
4 | source.sort((eleA, eleB) => {
5 | const dataA = frontMatterStore[eleA.absolutePath];
6 | const dataB = frontMatterStore[eleB.absolutePath];
7 |
8 | if (dataA.date < dataB.date) {
9 | return 1;
10 | } else if (dataA.date > dataB.date) {
11 | return -1;
12 | } else {
13 | return 0;
14 | }
15 | });
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/landing/src/app/yassb-plugins/post-processors/add-div-to-pre-code.function.ts:
--------------------------------------------------------------------------------
1 | export function addDivToPreCode(content: string): string {
2 | content = content.replace(/\s*\n*/g, '')
3 | content = content.replace(/<\/code>\s*\n*<\/pre>/g, '
')
4 | return content;
5 | }
--------------------------------------------------------------------------------
/landing/src/app/yassb-plugins/styles-parser/build-tailwind.function.ts:
--------------------------------------------------------------------------------
1 | import autoprefixer from 'autoprefixer';
2 | import CleanCSS from 'clean-css';
3 | import { readFileSync } from 'fs-extra';
4 | import postcss from 'postcss';
5 | import tailwindcss from 'tailwindcss';
6 |
7 | export const buildTailwind = async (pathToCssFile, from, to): Promise => {
8 | // process.env.NODE_ENV = 'production';
9 | const css = readFileSync(pathToCssFile);
10 | const result = await postcss([tailwindcss, autoprefixer]).process(css, {
11 | from,
12 | to,
13 | map: false
14 | });
15 |
16 | const minified = new CleanCSS().minify(result.css);
17 | return minified.styles;
18 | };
19 |
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/fontawesome-free/webfonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #002346
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/favicon.ico
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/icons/favicon/mstile-150x150.png
--------------------------------------------------------------------------------
/landing/src/assets/icons/favicon/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Anita",
3 | "short_name": "Anita",
4 | "icons": [
5 | {
6 | "src": "/assets/icons/favicon/android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "/assets/icons/favicon/android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | }
15 | ],
16 | "theme_color": "#002346",
17 | "background_color": "#002346",
18 | "display": "standalone"
19 | }
--------------------------------------------------------------------------------
/landing/src/assets/images/abstract-table.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/abstract-table.png
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/a-simpler-way-to-use-tippyjs-with-react/a-simpler-way-to-use-tippyjs-with-react.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/a-simpler-way-to-use-tippyjs-with-react/a-simpler-way-to-use-tippyjs-with-react.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/data-portability-is-a-hard-problem/data-portability-is-a-hard-problem.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/data-portability-is-a-hard-problem/data-portability-is-a-hard-problem.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/hosting-pwa-for-free/hosting-pwa-for-free.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/hosting-pwa-for-free/hosting-pwa-for-free.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/most-secure-cloud/data_centre.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/most-secure-cloud/data_centre.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/most-secure-cloud/most-secure-cloud.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/most-secure-cloud/most-secure-cloud.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/2021-11-10_app_initialized.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/2021-11-10_app_initialized.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/2021-11-10_tailwind.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/2021-11-10_tailwind.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/2021-11-21_final_result.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/2021-11-21_final_result.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/2021-11-21_final_result_with_project.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/2021-11-21_final_result_with_project.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/Anita_angular_no_projects.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/Anita_angular_no_projects.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/Anita_angular_projects_list.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/Anita_angular_projects_list.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/porting/porting-anita-from-angular-to-react.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/porting/porting-anita-from-angular-to-react.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/sqlite-in-a-pwa/database-free.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/sqlite-in-a-pwa/database-free.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/switch-with-types/2020-02-01_clearElement-example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/switch-with-types/2020-02-01_clearElement-example.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/switch-with-types/2020-02-01_meme-code-working.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/switch-with-types/2020-02-01_meme-code-working.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/switch-with-types/2020-02-01_setElement-example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/switch-with-types/2020-02-01_setElement-example.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/switch-with-types/2020-02-01_updateElement-example.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/switch-with-types/2020-02-01_updateElement-example.jpg
--------------------------------------------------------------------------------
/landing/src/assets/images/blog/switch-with-types/switches.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/anita-app/anita/dc14c7cd47613f580ec866b743a660a595c579d6/landing/src/assets/images/blog/switch-with-types/switches.jpg
--------------------------------------------------------------------------------
/landing/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "angularCompilerOptions": {
4 | "strictTemplates": true
5 | },
6 | "compilerOptions": {
7 | "jsx": "react",
8 | "baseUrl": "./",
9 | "outDir": "./anita-app.github.io/out-tsc",
10 | "sourceMap": false,
11 | "declaration": false,
12 | "moduleResolution": "node",
13 | "experimentalDecorators": true,
14 | "allowSyntheticDefaultImports": true,
15 | "esModuleInterop": true,
16 | "target": "es5",
17 | "typeRoots": [
18 | "node_modules/@types"
19 | ],
20 | "lib": [
21 | "es2017",
22 | "dom"
23 | ],
24 | "paths": {
25 | "@anita/landing/*": [
26 | "src/app/*"
27 | ]
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/version-propagator.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs-extra');
2 |
3 | function start() {
4 | const currentJson = fs.readJSONSync('./package.json');
5 | updateChildPackage('app', currentJson.version);
6 | updateChildPackage('landing', currentJson.version);
7 | storeVersionInTsFile('app', currentJson.version);
8 | storeVersionInTsFile('landing', currentJson.version);
9 | }
10 |
11 | function updateChildPackage(folder, version) {
12 | const file = `./${folder}/package.json`;
13 | const child = fs.readJSONSync(file);
14 | child.version = version;
15 | fs.writeJSONSync(file, child, { spaces: 2 });
16 | }
17 |
18 | function storeVersionInTsFile(folder, version) {
19 | const file = `./${folder}/src/app/version.ts`;
20 | const contents = `/**\n * Auto generated file, do not edit.\n */\n\nexport const appVersion = '${version}'\n`;
21 | fs.writeFileSync(file, contents);
22 | }
23 |
24 | start()
--------------------------------------------------------------------------------