From 84617fe4561d5dd656dbd3f8b0c17d1168506cc5 Mon Sep 17 00:00:00 2001
From: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
Date: Tue, 12 Dec 2023 17:57:03 +0100
Subject: [PATCH] v1.0.0 (#208)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Create CSS.md
create instuction for css
* Create HOOKS.md
create instuction for hooks
* Create DIRS_STRUCTURE
create DIRS_STRUCTURE file
* Update DIRS_STRUCTURE
* Create NAMING_CONVENTION.md
* Update and rename DIRS_STRUCTURE to DIRS_STRUCTURE.md
* Update NAMING_CONVENTION.md
* Update NAMING_CONVENTION.md
* Create CONTRIBUTION.md
* Update DIRS_STRUCTURE.md
* feature/pretter-and-eslint-configure (#16)
* configure prettier
* configure ts-eslint
* update package.json
* update instructions
* update CSS.md
* feature/configure-2-themes-#17 (#18)
* configured sc + hooks-ts for theme providing
* clean: global-styles structure
* Merge pull request #20
* config: configure mui base with mui system
* feature/videos-page-ui-#9 (#22)
* chore:create search-bar
* update CSS.md
* chore: create title header
* chore: separate search bar functions into hook
* update HOOKS.md
* chore: create thumbnail
* chore: create avatar
* chore: change naming(add "Styled" prefix for components) and change exporting approach
* update docs
* chore: create textMixin and extend theme
* chore: shortify title-header.ts (With textMixin)
* chore: Create author name
* chore: Create video information
* update DIRS_STRUCTURE.md
* update CSS.md
* chore: update video-information (create dot separator and text elipsis) and change name to '-info' and move to new dir
* chore: add new font family and upgrade index.html performance
* chore: expand font size and remove fontFamily from components
* chore: move files to new dirs and rename text-mixin
* chore: Create authorInfo component
* chore: Create videoInfos component
* chore: Create videoContent component
* chore: Create mainContainer component
* chore: Rename App -> app
* chore: change StyledVideoContent html tag
* chore: Create main-content component
* chore: change file names and corresponded html tag, use flex gap over margin for mui components
* clean: remove unnecessary 'return' statements and borderRadius from main-content
* update CSS.md
* chore: Create scroll-bar for videos-section
* chore: Create several dummy articles
* chore: Create default borderRadius size and update components
* clean: create blank space, for good code structure
* chore: Add search bar for main view
* update DIRS_STRUCTURE.md
* clean: fix typo in HOOKS.md
* clean: shortify function
* update CSS.md
* clean: Create required structure for css
* update DIRS_STRUCTURE.md
* clean: shortify function
* clean: remove unnecessary css prop
* clean: create blank space
* clean: fix typo in css prop
* chore: restructure theme
* update package-lock.json
* chore: Create search-icon component
* chore: Reformat useFocus hook
* chore: update theme and reformat whole search-bar (split, redirect and recreate without mui base Input)
* update DIRS_STRUCTURE.md
* chore: Create cleaning search bar on 'esc'
* update HOOKS.md
* chore: Create scrollbar only on hover
* chore: Update light theme and components
* chore: Create dark theme
* update DIRS_STRUCTURE.md
* update CSS.md
* clean: remove unnecessary prop in themes and restructure code
* feature/create navbar and header (#27)
* update CSS.md
* update HOOKS.md
* update NAMING_AND_RULES_CONVENTION.md
* update themes
* chore: Create theme switch
* chore: Change theme-switch name for correct
* chore: Create header container
* chore: Create page wrapper and fit dependent components
* update NAMING_AND_RULES_CONVENTION.md
* chore: Create smooth transition between themes
* chore: Move files to proper directory
* update DIRS_STRUCTURE.md
* fix typo
* chore: Restructure styles approach and create common types
* chore: Add basic routing
* chore: Rename icon component
* update DIRS_STRUCTURE.md
* clean: restructure code
* chore: Create button
* chore: Create navbar
* clean: Restructure theme switch
* clean: Fix naming in theme switch
* clean: clean code
* clean: Rename router browser
* Merge pull request #28
* chore: Fix videos section padding and scrollbar
* Merge pull request #29
* update DIRS_STRUCTURE.md
* chore: Update routing dir files
* chore: Split videos route, create scrollbar as mixin and create title…
* clean: Move search-bar-wrapper.ts to proper dir
* clean: Group atomic components
* Merge pull request #31
* chore: Update themes
* chore: Add 'alt' for icons
* chore: Restructure files(Create subdirectory) and move search bar
* clean: Remove unnecessary prop
* chore: Create store components
* chore: Refactor videos-section.tsx (Use generic item component)
* chore: Create store routing and navigation between pages
* update DIRS_STRUCTURE.md and NAMING_AND_RULES_CONVENTION.md
* chore: Rename files and restructure project
* chore: Add new color for themes
* chore: Create delete confirmation modal
* chore: Fix delete-modal position
* chore: Create editable input for store
* chore: Change global font
* chore: Create generic logic hook and fix store keyword overlapping
* clean: Change delete-modal-button dir and clean code
* clean: Clean delete-modal.tsx
* clean: Delete unused hook
* update CSS.md
* clean: Restructure css
* clean: Add 'Styled' prefix
* update CSS.md
* clean: Restructure CSS
* Merge pull request #32
* chore: Fix dot separator and split components in videos article
* chore: Create home page and create focus on navigation
* clean: Restructure search-bar.tsx
* Merge pull request #33
* chore: update packages
* Merge pull request #34
* update DIRS_STRUCTURE.md
* chore: Restructure components
* RAW_feature/Create Auth Page UI (#37)
* chore: Create page-mixin
* clean: Change css props name
* chore: Delete app component and refactor global routing
* chore: Add sx prop to theme-switch
* RAW_chore: Create Auth Page UI (Commented code for save)
* Feature/Create fatal errors snackbar (#44)
* Implement snackbar component
* Simplify and reformat code
* Add styling for error and use unstable_sx
* Remove unused css property
* feat: Refactor snackbar.tsx
Split component for custom hook and tsx part and change component behavior(remove unnecessary props)
---------
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* Fix/theme switch (#43)
* Fix bug with switching theme button
* Fix theme flickering on page refresh
* Improve hook structure
* Improve code style
* fix: Running animation on theme change on refresh or reload page. (#47)
And i fix issue when default 'system' value is set in LS, cause on change from 'system' sometimes nothing happened
---------
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* Fix/focus state #24 (#46)
* Fix search focus state and focus styling for button
* Fix button shape changing when focused
* Fix focus trap and make outline thinner on focus
* Disable tab for modal
* Add eslint plugin for react (#50)
* Searching mechanism (#49)
* Implement searching mechanism using dummy data
* Fix showing wrong results while searching
* Extract logic for search to separate hook
* Move function for cleaning content to search hook
* Change name
* Make hook more generic
* Add prop with search param key
* reformat(search-mechanism): Remove 'key' props and change params handling approach from useSearch
---------
Co-authored-by: PatrykKuniczak <64608510+patrykkuniczak@users.noreply.github.com>
* Dropdown with sign out option (#48)
* Update mui dependencies
* Add profile dropdown with sign out option
* Remove redundant properties
* Use vars for props and adjust cursor and outline
* Code formatting and add cursor pointer
* Extract profile code to separated component
* reformat(dropdown): add blank space
---------
Co-authored-by: Patryk Kuniczak
* Refactor editing hook and add creating option (#53)
* Refactor editing hook and add creating option
* Improve placeholders
* Improve CSS properties order
* test
* improvement: create styles for error hint
* refactor: clean code
* improvement: rename basicLogic hook
* improvement: new deps for package-lock.json
---------
Co-authored-by: Bartosz Wysowski
Co-authored-by: Patryk Kuniczak
* Create google oauth and express session (#54)
* feat(integrate-google-auth): Init project and integrate google passport
* feat(google-oauth): Create session cookie name as const
* feat(integrate-google-auth): Create session store and add guard for it
* feat(integrate-google-auth): Create envs and configure
* Update CONTRIBUTION.md
* Remove unused value from env files
* feat(google-oauth): Create google button
* refactor: wrap project by template for react + ts + vite Chrome extension
* fix(google-auth): fix issues with auth process
* fix(google-auth): change status code from 403 to 401 in session guard
* feat(google-oauth): handle refreshing access token when is expired
* fix(google-oauth): fix delay on session checking
* fix(google-oauth): remove unnecessary validation in session guard and improve who it's works
* improvement: remove unnecessary import in typeOrm config
* feat(google-oauth): create removing account, and refactor creating oauth instances
Now only google credentials is created instead of oauth instance
* improvement: simplify envs
* fix(google-oauth): Change http method to correct for remove account endpoint
* feat(google-oauth): configure and create swagger docs
* fix(google-oauth): change script in package.json for production, for properly one
* improvement(google-oauth): create docs for nest
* improvement: move packages to proper place in package.json
* refactor: move files from src to utils
* refactor: update example env
* improvement: improve comment in constants
* improvement(google-oauth): add self-closing script for the static html on redirect
* improvement: change type for withSuspence and create withErrorBoundary
* refactor: restructure utils folder
* improvement(readme): update readme and instructions
* feat(google-oauth): create protector for pages
* improvement: add development mode to watch scripts
* improvement: move dev and firefox env from vite env config to proper type file
* improvement: create wrapper for providers
* fix: move swagger config to proper folder
* fix: add forgotten prop in example.env file
* fix: fix several issue after rebase
Fix also bug with error message position on edit
Next with navigation to videos page
And add missing 'Styled' prefixes for some components
* fix: spelling in README.md
* fix: move mapped-types package to devDeps in package.json
* fix: description on swagger decorator
* fix: remove unique from avatar in user entity
* fix: import of TVoid type (#97)
* Feat/create navbar styles #91 (#99)
* fix: import of TVoid type (#97)
* Update button.ts
* style: box shadow for currently used navbar option
* style: restructure styles hierarchy
---------
Co-authored-by: Bartosz Wysowski
* feat: create configs (#100)
* feat: create eslint, commitlint, prettier and husky configs for BE and FE
* fix: change NODE_ENV type for start script on BE
* fix: add missing providers in auth module
* fix: add mistaken removed npm package (#101)
* feat: use real avatar and fix overflowing content (#104)
* feat: add missing accessibility attributes (#106)
* feat: add sign out logic (#105)
* feat: add logic for sign out
* refactor: remove redundant memo
* fix: logout and remove account (#110)
* fix: destroy session on account remove
remove session removing on logout (cause passport do it) and update passport to 0.6.0
* fix: spelling in swagger description
* Fix/eslint prettier config (#107)
* fix: fix eslint config and conflicts between prettier and eslint
Also fix wrong import of useTernaryDarkMode
* docs: create info about eslint and prettier in README.md on FE
* docs: create info about CRLF in README.md on FE
* docs: fix wrong info in README about git crlf
* docs: add forgotten options about eslint and prettier to README.md
* fix: remove useTabs from prettier on FE and reconfigure prettier on BE
also currently resolve conflicts between eslint and prettier
* fix: change order of lint-staged script
* fix: resolve conflicts
* style: remove blank space from IUser interface
* docs: update CONTRIBUTION.md
* docs: remove 1 config way of FE README.md
* fix: add missing husky install script and update CONTRIBUTION.md
* fix: resolve conflicts
* fix: run prettier for both apps on new config
* Feat/update backend packages (#112)
* improvement: update packages on BE and use SWC for v10 nest
also remove tests from tsconfig
* improvement: remove "^" from package.json
* refactor: run prettier
* Feat/update frontent packages #111 (#113)
* docs: update packages and get new changes from template repo
* refactor: run prettier
* fix: run prettier for both apps
* fix: back DOCTYPE in upper case
* docs: create new CONTRIBUTION from old README on both app (#114)
* docs: connect both README.md into 1 CONTRIBUTION.md
* docs: update CONTRIBUTION.md
* fix(add-input.tsx): remove-StyleErrorMessage (#115)
* fix: changed style of popup error to avoid bug (#116)
* feat: implement removing account (#117)
* feat: implement removing account
* refactor: improve types and use render props for modal
* Merge pull request #121
* fix: remove clearing cookie on failed logout
* Improvement: removing onMouseOver focus from search bars (#120)
* improvement: removing onMouseOver focus
* fix: remove unused focus props from searchBar
* Improvement: Add InputKeyboard validation as custom hook (#119)
* feat: add validation to KeyboardInput
* fix(eslintrc): add new rule
* improvement: changing validation into custom hook
* fix: mistake with max validationNumber
* fix: add all requested changes
* Update react-app/.eslintrc
---------
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* feat(keywords): create crud (#123)
* Feat: add item to context menu #63 (#125)
* feat: add option to context menu for adding new keyword
* fix: type for create properties
* feat: implement notifications for content (#118)
* feat: implement notifications for content
* refactor: separate notification components
* improvement: naming and alt
* fix: styling on different pages
* style: simplify properties
* improvement: move theme files to avoid duplication
* fix: typo
* fix: display properly close X button
* improvement: add hover styling on close button
* improvement: hover styling
* style: change variable name
* improvement: add active state and fix icons
---------
Co-authored-by: Patryk Kuniczak
* Merge pull request #127
* fix: keyword dir name and entity
* fix: add readonly on user entity
* Fix: Change focus on click edit button (#122)
* fix: add autoFocus to remove bug
* feat: implement crud
* improvement: decouple modal component
* improvement: simplify changing modal visibility
* improvement: adding and editing input validation
* fix: not updating list of keywords and button state
* improvement: validation and remove console.log
* fix: changing modal visibility
* fix: add autoFocus to remove bug
* improvement: closing one input when user try to open other one
* fix: change position of line under edit icon
* style: create blank space
---------
Co-authored-by: masterHAWK99
Co-authored-by: Patryk Kuniczak
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* feat: add 'watch later' button link to playlist (#129)
* feat: implement crud (#126)
* fix: bug with edit input on click close input button
* fix: validation state after keyword was added
---------
Co-authored-by: Patryk Kuniczak
* fix: type for focus in home page (#131)
* Merge pull request #137
* fix: change full object over id from keyword POST
* Merge pull request #142
* fix: change get to post on /auth/me and fix error for custom axios in…
* chore: bump rollup version (#141)
* chore: bump rollup version
* fix: update package-lock.json
---------
Co-authored-by: Patryk Kuniczak
* Feat: Add react-toastify lib & logout toast when 401 error occurs (#124)
* feat: add react-toastify lib
* feat: add toast when logout through 401 error
* feat: update toast features (autoclose, width to close)
* feat: moving up error toast in execution chain
* feat: add toasts for login, logout, delete, edit
* fix: add all requested changes
* feat: change notification into react toast
* fix: moving config from toast to ToastContainer
* refactor: removing notification component and use only ToastContainer
* refactor: remove unnecesary 'await' for toasts
* refactor: change toastId names
* refactor: remove toast on success login
* improvement: move injecting style outside component
---------
Co-authored-by: masterHAWK99
* feat/create crud for yt (#136)
* improvement: use userId decorator and oauthClient provider over credentials provider
* feat: create fetching videos from keywords
Handle quota limit and update CONTRIBUTION.md
* improvement: handle refreshing access token in session guard
* improvement: handle case when user deauthenticate manually permission for our app
* improvement: create youtube client accessible in entire service
also create lastFetch column as not selectable as default
* fix: check if session exists before check oauth credentials
* feat: rename user and session modules, and create relation between user, and yt videos and keywords
* fix: relation between user and keywords
* fix: adjust findAll from yt videos service for new relations
* refactor: split canActive session guard func into smaller parts
* improvement: create offset for refreshing access token
* fix: adjust updating user playlist to new relations
* fix: filter out empty results from keywords fetch
* docs(keywords): create example data on return from find
* refactor: rename playlist func
* docs: fix link for YT API
* feat: create caching data from yt
* fix: change folder name to proper
* fix: change response class name to proper
* improvement(user-yt-videos): add example data for all props which don't have
* refactor: simplify code
* refactor: reverse if statement
* Merge pull request #145
* refactor: remove unnecessary code for /auth/me
* fix: handle quota limit error on all request inside update playlist e…
* fix: change type from any
* docs: remove unnecessary husky part in CONTRIBUTION (#146)
* refactor: change params of auth popup (#147)
* feat/Example data for user and keywords endpoints (#138)
* feat(auth/key-words): create example data for swagger
* feat: create object with info for errors
* feat/Set on migrations (#148)
* improvement: set on migrations
* fix: remove unnecessary node var from build script
* fix: enable auto running migration on start
* Feat: create loadings and erorrs components (#144)
* feat: add react-skeleton lib
* feat: add react-skeleton for loading elements
* improvement: renaming Skeleton components & using isLoading instead of ||
* refactor: change styled-skeleton file name
* refactor: remove unnecessary console.log
* refactor: set count of 4 for skeletons in keywords
* Create LICENCE
* improvement: add MIT licence to packages and add contributors (#151)
* feat: add support for i18n (#130)
* feat: add support for i18n
* feat: use language from browser as default
* style: separate translations and improve code style
* improvement: add missing translations
* fix: wrong language on auth page
* improvement: add translations for toasts
* improvement: add and rename types for errors
* improvement: remove duplicated translation & group
* fix: fix typo on keywords find 'cause'
* Update react-app/public/locales/en/translation.json
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* improvement: correct key to keyword_not_found
* Update react-app/public/locales/pl/translation.json
---------
Co-authored-by: Patryk Kuniczak
Co-authored-by: PatrykKuniczak <64608510+PatrykKuniczak@users.noreply.github.com>
* fix: getting user yt data with the rest user credentials (#154)
* Feat/deploy for dev #70 (#159)
* improvement: create config for remote-dev
* improvement: create hostname for listener
* fix: change dev:remote script, from nest to file path with node
* fix: remove ssl form typeorm config
* fix: run 'npm i' for set new data on lock file
* fix: enable requests from all hosts
* improvement: restructure packages in each dir and update CONTRIBUTION.md
* Merge pull request #160
* fix: change packageJson to proper one
* feat/create logger for fatal errors (#164)
* feat: create saving fatal errors on DB and create user resource global
* fix: remove unnecessary import
* fix: naming and structure of error object
* fix: create migration
* fix/using default fetch date properly (#167)
* fix: use default fetch date properly (on fetch start)
* fix: create migration
* reafactor/rename keywords entity and restructure session dir (#166)
* improvement: update CONTRIBUTION.md, add migration script
* refactor: rename keywords entity and restructure session dir
* fix: create migration
* fix/adjust code for work on deploy (#163)
* fix: change PORT env name
* fix: use host in google callbackURL
* fix: use expanding envs only for local dev
* fix: create properly assigning cookie on redirect
* improvement: update CONTRIBUTION.md
* fix: change default PORT
* fix: duplicated page title (#161)
* fix: change pathname to /store
* fix: reverse order of condition for setTitle
* improvement: change playlist on 'watch later' btn on navbar (#162)
* improvement: change playlist on watch later button
* refactor: separate UserYtVideo interface
* feat: add searching mechanism for videos (#153)
* feat: add searching mechanism for videos
* feat: add avatar property in videos array
* refactor: add video interface
* improvement: connecting videos with translation
* refactor: create VideoArticleSkeleton component
* refactor: remove unnecessary comparison
* refactor: remove unnecessary const publishedDate
* Merge pull request #169
* fix: create migration
* improvement: rename app and all references to 'yt notifier' (#168)
* improvement: save (#171)
* Feat: error handlers components (#149)
* feat: add ErrorBoundary prototype
* refactor: change style of ErrorPage
* refactor: lifting up ThemeProvider to index
* refactor: remove unnecessary components in ErrorPage
* refactor: change hasError to false
* refactor: remove div and change p to span
* refactor: change error text paragraph
* refactor: wrap error title in
* improvement: add translation to ErrorPage
* refactor: add aria-hidden to octagonError
* fix: repair fallbackError translation
* refactor: change name of heading prop
* fix: errors from previous PR's and move internationalization to libs (#176)
* config: change logo (#170)
* improvement: change logo
* refactor: change icon name to logo
* improvement: add logo to toast outside popup
* refactor: add translation to logo
* fix: change approach to send videos amount between scripts
* refactor: change colour of logo
---------
Co-authored-by: Patryk Kuniczak
* feat/Fetching user videos (#182)
* chore: create displaying notification with real data
* chore: add views to user video resource on BE
* chore: create displaying videos and enable interactivity
* chore: recreate playlist if user delete it manually from yt account
* chore: create watch later button with functionality for videos
* fix: displaying notification about new videos
* chore: create closing all notification (on other pages) when user close on one
* fix: exclude login redirect page for content script
* chore: display abbreviations for video views
* fix: return video views amount as a number instead of string
* fix: simplify Video interfaces use cases
* fix: recreate error toast for content script
* fix: type in internationalization and improve naming
* fix: translation files structure
* fix: adjust toast for content script (#184)
* Merge pull request #186
* fix: enable helmet for API
* Merge pull request #185
* fix: checking if user playlist exists before open window in browser
* fix/loading on changing user state (#189)
* fix: create loading on startup and logout
* refactor: improve structure of code for protected page
change also type for components
* fix/ delete account modal is broken (#181)
* fix: change ModalContent height and add extra padding
* refactor: remove paddingTop
* feat/collecting and downloading errors data for user machine (#187)
* feat: create downloading errors button
* fix: refactor error logs
* fix: add missing nullable for users and key-words entities
* fix: handle issue when videos list is empty
* fix: add missing create migration script for package.json
* fix: add to eslint ignore migrations dir
* fix: remove unnecessary table key-word
* fix: keyboard focus on download errors btn
* refactor: improve behaviour onclick download button from keyboard
* Improvement/improve a11y #83 (#188)
* feat: add query to override transitions when appropriate
* feat: add proper lang and title for routes
* improvement: disable auto focusing elements
* improvement: add missing attributes for inputs
* improvement: add proper tag for click events
* improvement: add proper tag for click events
* chore: update title for views
* fix: style of bullet point and change outline
* style: change border radius instead outline
* fix: menu download button structure
* fix: change languages menu html structure
---------
Co-authored-by: Patryk Kuniczak
* fix: flickering error while changing state of input (#194)
* feat/contact with devs footer (#193)
* feat: create footer in the left bottom corner with link for our GH issues
* refactor: change a little description for bug issue
* refactor(github-icon): remove unnecessary thing
* fix: typo in bug issue template
* refactor: change github icon -> link
* refactor: change github link
* improvement/display info about created keyword from contextMenu (#179)
* improvement: add background toasts
* feat: create toasts for success and error events for context menu
* fix: creating context Menu on every browser start
* fix: get host permission url from env
* fix: catch errors when content script wasn't accepted
* refactor: compress code, by create helpers func and refactor toast type
* refactor: rename custom toasts
---------
Co-authored-by: Patryk Kuniczak
* feat: add i18n for manifest (#195)
* feat: add i18n for manifest
* style: add dots at end of sentences in description
* Fix/Create notification the same on every page (#178)
* fix: update package-lock.json
* fix: catching error about tabs which don't accept content script
* fix: resolve issue with different notification look on different pages
* fix: shortify autoClose time for notification
---------
Co-authored-by: Patryk Kuniczak
* Merge pull request #199
* fix: don't display notification again after close
* Merge pull request #200
* fix: context menu translation on changing language on browser
* Merge pull request #202
* fix: use the same transition for auth and home page
* fix: decrease opacity amount for videos section (#203)
* Merge pull request #205
* fix: color of watch later button on videos section
* fix/theme switch (#206)
* fix: add transition to elements where it's missing
* fix: set off autocomplete for search bar
* fix: svg icons in theme switch
* fix: add missing blank space
* chore/Create README (#198)
* chore: create RAW main README.md
* fix: create RAW backend README.md
* fix: fix description on backend
* fix: set proper logo for BE
* chore: add npm to BE
* chore: add npm icon for main README.md
* chore: create RAW frontend README.md
* chore: create main README.md
* fix: pronouns on BE README.md
* fix: change structure of main README.md
* fix: rename folder with screenshots
* fix: change structure of BE README.md
* fix: update main README.md
* fix: restructure and edit all README.md
* fix: fix spelling and change structure of frontend README.md
---------
Co-authored-by: masterHAWK99 <60447475+masterHAWK99@users.noreply.github.com>
Co-authored-by: Bartosz Wysowski
Co-authored-by: Bartosz Wysowski <117449119+TheMadNerd@users.noreply.github.com>
Co-authored-by: masterHAWK99
---
.gitignore | 3 +-
.husky/commit-msg | 4 +
.husky/pre-commit | 7 +
CONTRIBUTION.md | 148 +
LICENCE | 21 +
README.md | 140 +
commitlint.config.js | 4 +
nest-app/.eslintignore | 3 +
nest-app/.eslintrc.js | 43 +
nest-app/.gitignore | 39 +
nest-app/.prettierignore | 9 +
nest-app/.prettierrc | 11 +
nest-app/README.md | 77 +
nest-app/envs/example.env | 15 +
nest-app/index.d.ts | 13 +
nest-app/nest-cli.json | 10 +
nest-app/package-lock.json | 9018 +++++++++++++++++
nest-app/package.json | 68 +
nest-app/src/app.module.ts | 36 +
nest-app/src/auth/auth.controller.ts | 133 +
nest-app/src/auth/auth.module.ts | 19 +
nest-app/src/auth/googleAuth/google.guard.ts | 18 +
.../src/auth/googleAuth/google.strategy.ts | 40 +
nest-app/src/auth/oauth2.module.ts | 25 +
.../auth/sessions/model/sessions.entity.ts | 18 +
nest-app/src/auth/sessions/sessions.guard.ts | 65 +
.../src/auth/sessions/sessions.serializer.ts | 23 +
.../src/auth/sessions/sessions.service.ts | 16 +
nest-app/src/constants.ts | 10 +
nest-app/src/database/config/data-source.ts | 21 +
.../src/database/config/typeorm.config.ts | 22 +
.../1699394971038-afterDevelopment.ts | 37 +
.../1700421492489-create-loggers.ts | 25 +
.../1700425098398-rename-keywords-entity.ts | 25 +
...4479-remove-default-date-from-lastFetch.ts | 17 +
...1701807327989-change-error-message-type.ts | 17 +
...44010-remove-unnecessary-key-word-table.ts | 9 +
.../src/error-logs/dto/create-key-word.dto.ts | 4 +
.../src/error-logs/error-logs.controller.ts | 24 +
nest-app/src/error-logs/error-logs.module.ts | 14 +
nest-app/src/error-logs/error-logs.service.ts | 25 +
.../src/error-logs/model/error-logs.entity.ts | 17 +
.../src/key-words/dto/create-key-word.dto.ts | 11 +
.../src/key-words/dto/update-key-word.dto.ts | 3 +
.../src/key-words/key-words.controller.ts | 112 +
nest-app/src/key-words/key-words.module.ts | 13 +
nest-app/src/key-words/key-words.service.ts | 65 +
.../src/key-words/model/key-words.entity.ts | 17 +
nest-app/src/main.ts | 77 +
.../response-examples/auth.response.ts | 31 +
.../response-examples/error-logs.response.ts | 15 +
.../response-examples/error.response.ts | 9 +
.../response-examples/key-words.response.ts | 12 +
.../user-yt-videos.response.ts | 43 +
nest-app/src/swagger/swagger.config.ts | 29 +
.../dto/update-user-yt-videos.dto.ts | 16 +
.../model/user-yt-videos.entity.ts | 22 +
.../user-yt-videos.controller.ts | 65 +
.../user-yt-videos/user-yt-videos.module.ts | 14 +
.../user-yt-videos/user-yt-videos.service.ts | 224 +
.../src/users/decorators/user.decorator.ts | 7 +
nest-app/src/users/model/users.entity.ts | 37 +
nest-app/src/users/users.module.ts | 12 +
nest-app/src/users/users.service.ts | 71 +
nest-app/src/users/users.types.ts | 20 +
nest-app/tsconfig.build.json | 4 +
nest-app/tsconfig.json | 22 +
package-lock.json | 3092 ++++++
package.json | 25 +
react-app/.eslintignore | 2 +
react-app/.eslintrc | 79 +
.../.github/ISSUE_TEMPLATE/bug_report.md | 34 +
.../.github/ISSUE_TEMPLATE/feature_request.md | 19 +
react-app/.gitignore | 28 +-
react-app/.prettierignore | 8 +
react-app/.prettierrc | 9 +
react-app/README.md | 80 +
react-app/envs/.env.example | 1 +
react-app/index.html | 13 -
react-app/manifest.js | 49 +
react-app/package-lock.json | 7695 +++++++++++---
react-app/package.json | 81 +-
react-app/public/_locales/en/messages.json | 6 +
react-app/public/_locales/pl/messages.json | 6 +
react-app/public/locales/en/translation.json | 71 +
react-app/public/locales/pl/translation.json | 71 +
react-app/public/logo-128.png | Bin 0 -> 5209 bytes
react-app/public/logo-32.png | Bin 0 -> 1432 bytes
react-app/public/manifest.json | 10 -
react-app/src/App.tsx | 8 -
.../src/assets/img/chevron-down-icon.svg | 3 +
react-app/src/assets/img/chevron-up-icon.svg | 3 +
react-app/src/assets/img/edit-icon.svg | 6 +
react-app/src/assets/img/english-flag.svg | 1 +
.../assets/img/exclamation-octagon-icon.svg | 3 +
react-app/src/assets/img/google-icon.svg | 52 +
react-app/src/assets/img/plus-icon.svg | 1 +
react-app/src/assets/img/polish-flag.svg | 1 +
react-app/src/assets/img/saved-tags-icon.svg | 5 +
react-app/src/assets/img/search-icon.svg | 3 +
react-app/src/assets/img/thumbnail.png | Bin 0 -> 534985 bytes
react-app/src/assets/img/trash-icon.svg | 3 +
react-app/src/assets/img/watch-later-icon.svg | 4 +
react-app/src/assets/img/x-icon.svg | 3 +
react-app/src/environment.d.ts | 10 +
react-app/src/global.d.ts | 45 +
react-app/src/index.css | 9 -
react-app/src/instructions/CSS.md | 73 +
react-app/src/instructions/DIRS_STRUCTURE.md | 36 +
react-app/src/main.tsx | 10 -
react-app/src/pages/background/index.ts | 83 +
.../pages/content/components/error-toast.tsx | 11 +
.../src/pages/content/components/home/app.tsx | 83 +
.../pages/content/components/home/index.tsx | 18 +
.../content/components/toast-container.ts | 27 +
react-app/src/pages/content/index.ts | 5 +
react-app/src/pages/options/index.html | 11 +
react-app/src/pages/popup/Popup.tsx | 68 +
.../popup/components/auth/auth-wrapper.tsx | 11 +
.../src/pages/popup/components/auth/google.ts | 55 +
.../popup/components/language-selector.tsx | 68 +
.../pages/popup/components/shared/avatar.ts | 9 +
.../pages/popup/components/shared/button.ts | 28 +
.../delete-modal/delete-modal-button.ts | 13 +
.../shared/delete-modal/delete-modal.tsx | 54 +
.../shared/delete-modal/modal-content.tsx | 48 +
.../shared/delete-modal/use-delete-modal.ts | 11 +
.../popup/components/shared/dropdown.tsx | 63 +
.../pages/popup/components/shared/error.tsx | 34 +
.../shared/errorSnackbar/error-snackbar.tsx | 31 +
.../errorSnackbar/use-error-snackbar.tsx | 49 +
.../popup/components/shared/github-link.tsx | 30 +
.../src/pages/popup/components/shared/icon.ts | 10 +
.../pages/popup/components/shared/input.tsx | 26 +
.../components/shared/items-container.ts | 14 +
.../pages/popup/components/shared/profile.tsx | 163 +
.../shared/searchBar/search-bar-input.tsx | 29 +
.../shared/searchBar/search-bar-wrapper.ts | 20 +
.../shared/searchBar/search-bar.tsx | 40 +
.../src/pages/popup/components/shared/seo.tsx | 15 +
.../components/shared/styled-skeleton.ts | 13 +
.../popup/components/shared/theme-switch.tsx | 118 +
.../popup/components/shared/title-header.ts | 13 +
.../list/item/addingKeyword/add-input.tsx | 118 +
.../list/item/deleteButton/delete-button.tsx | 26 +
.../list/item/editButton/edit-button.tsx | 59 +
.../components/store/list/item/keyword.tsx | 107 +
.../store/list/item/store-value.tsx | 64 +
.../article/authorInfo/author-info.tsx | 18 +
.../section/article/authorInfo/autor-name.ts | 12 +
.../section/article/thumbnail/thumbnail.ts | 9 +
.../video/section/article/video-article.tsx | 44 +
.../video/section/article/video-button.tsx | 12 +
.../section/article/videoInfo/video-info.ts | 32 +
.../section/article/videoInfo/video-infos.tsx | 68 +
.../section/article/videoInfo/video-title.ts | 21 +
.../author-info-skeleton.tsx | 9 +
.../skeleton/video-article-skeleton.tsx | 12 +
.../video-infos-skeleton.tsx | 11 +
.../video/section/videos-section.tsx | 8 +
react-app/src/pages/popup/constant.ts | 11 +
react-app/src/pages/popup/index.html | 12 +
react-app/src/pages/popup/index.tsx | 47 +
.../pages/popup/layouts/header-container.tsx | 27 +
.../src/pages/popup/layouts/main-content.tsx | 17 +
react-app/src/pages/popup/layouts/navbar.tsx | 96 +
.../src/pages/popup/pages/auth/auth.page.tsx | 42 +
.../src/pages/popup/pages/error/ErrorPage.tsx | 53 +
.../pages/popup/pages/home/home-wrapper.tsx | 10 +
.../src/pages/popup/pages/home/home.page.tsx | 38 +
.../src/pages/popup/pages/home/use-home.ts | 20 +
.../src/pages/popup/pages/protected.page.tsx | 26 +
.../src/pages/popup/providers-wrapper.tsx | 27 +
.../src/pages/popup/routes/store.route.tsx | 79 +
.../src/pages/popup/routes/videos.route.tsx | 51 +
react-app/src/vite-env.d.ts | 8 +
react-app/tsconfig.json | 50 +-
react-app/tsconfig.node.json | 10 -
react-app/utils/core/log.ts | 52 +
react-app/utils/core/manifest-parser/index.ts | 35 +
react-app/utils/core/plugins/add-hmr.ts | 47 +
.../core/plugins/custom-dynamic-import.ts | 19 +
react-app/utils/core/plugins/make-manifest.ts | 49 +
react-app/utils/core/plugins/watch-rebuild.ts | 18 +
react-app/utils/core/reload/constant.ts | 2 +
.../utils/core/reload/initReloadClient.ts | 56 +
.../utils/core/reload/initReloadServer.ts | 55 +
.../utils/core/reload/injections/script.ts | 13 +
.../utils/core/reload/injections/view.ts | 29 +
.../utils/core/reload/interpreter/index.ts | 13 +
.../utils/core/reload/interpreter/types.ts | 18 +
react-app/utils/core/reload/rollup.config.mjs | 28 +
react-app/utils/core/reload/utils.ts | 9 +
react-app/utils/data/global-styles.ts | 26 +
react-app/utils/data/mixins/page-mixin.ts | 10 +
.../utils/data/mixins/scrollbar-mixin.ts | 36 +
react-app/utils/data/mixins/text-mixin.ts | 8 +
react-app/utils/data/themes/dark-theme.ts | 47 +
react-app/utils/data/themes/light-theme.ts | 49 +
react-app/utils/endpoints/urls.ts | 17 +
react-app/utils/hooks/use-focus.ts | 14 +
.../utils/hooks/use-handle-key-events.ts | 15 +
react-app/utils/hooks/use-language-switch.ts | 17 +
react-app/utils/hooks/use-search.ts | 23 +
react-app/utils/hooks/use-ternary-darkmode.ts | 43 +
react-app/utils/hooks/use-validate.ts | 19 +
react-app/utils/hooks/with-error-boundary.tsx | 41 +
.../utils/instructions/DIRS_STRUCTURE.md | 16 +
react-app/utils/interfaces/index.ts | 92 +
react-app/utils/libs/authentication/index.ts | 9 +
react-app/utils/libs/http-client/index.ts | 35 +
.../utils/libs/internationalization/index.ts | 67 +
react-app/utils/libs/query-client/index.ts | 8 +
react-app/utils/types/index.ts | 7 +
react-app/vite.config.ts | 85 +-
screenshots/auth-page.png | Bin 0 -> 7417 bytes
screenshots/keywords-dark.png | Bin 0 -> 15870 bytes
screenshots/keywords-light.png | Bin 0 -> 15729 bytes
screenshots/notification.png | Bin 0 -> 4985 bytes
screenshots/videos-dark.png | Bin 0 -> 73135 bytes
screenshots/videos-light.png | Bin 0 -> 73470 bytes
221 files changed, 24896 insertions(+), 1658 deletions(-)
create mode 100644 .husky/commit-msg
create mode 100644 .husky/pre-commit
create mode 100644 CONTRIBUTION.md
create mode 100644 LICENCE
create mode 100644 README.md
create mode 100644 commitlint.config.js
create mode 100644 nest-app/.eslintignore
create mode 100644 nest-app/.eslintrc.js
create mode 100644 nest-app/.gitignore
create mode 100644 nest-app/.prettierignore
create mode 100644 nest-app/.prettierrc
create mode 100644 nest-app/README.md
create mode 100644 nest-app/envs/example.env
create mode 100644 nest-app/index.d.ts
create mode 100644 nest-app/nest-cli.json
create mode 100644 nest-app/package-lock.json
create mode 100644 nest-app/package.json
create mode 100644 nest-app/src/app.module.ts
create mode 100644 nest-app/src/auth/auth.controller.ts
create mode 100644 nest-app/src/auth/auth.module.ts
create mode 100644 nest-app/src/auth/googleAuth/google.guard.ts
create mode 100644 nest-app/src/auth/googleAuth/google.strategy.ts
create mode 100644 nest-app/src/auth/oauth2.module.ts
create mode 100644 nest-app/src/auth/sessions/model/sessions.entity.ts
create mode 100644 nest-app/src/auth/sessions/sessions.guard.ts
create mode 100644 nest-app/src/auth/sessions/sessions.serializer.ts
create mode 100644 nest-app/src/auth/sessions/sessions.service.ts
create mode 100644 nest-app/src/constants.ts
create mode 100644 nest-app/src/database/config/data-source.ts
create mode 100644 nest-app/src/database/config/typeorm.config.ts
create mode 100644 nest-app/src/database/migrations/1699394971038-afterDevelopment.ts
create mode 100644 nest-app/src/database/migrations/1700421492489-create-loggers.ts
create mode 100644 nest-app/src/database/migrations/1700425098398-rename-keywords-entity.ts
create mode 100644 nest-app/src/database/migrations/1700426454479-remove-default-date-from-lastFetch.ts
create mode 100644 nest-app/src/database/migrations/1701807327989-change-error-message-type.ts
create mode 100644 nest-app/src/database/migrations/1701808344010-remove-unnecessary-key-word-table.ts
create mode 100644 nest-app/src/error-logs/dto/create-key-word.dto.ts
create mode 100644 nest-app/src/error-logs/error-logs.controller.ts
create mode 100644 nest-app/src/error-logs/error-logs.module.ts
create mode 100644 nest-app/src/error-logs/error-logs.service.ts
create mode 100644 nest-app/src/error-logs/model/error-logs.entity.ts
create mode 100644 nest-app/src/key-words/dto/create-key-word.dto.ts
create mode 100644 nest-app/src/key-words/dto/update-key-word.dto.ts
create mode 100644 nest-app/src/key-words/key-words.controller.ts
create mode 100644 nest-app/src/key-words/key-words.module.ts
create mode 100644 nest-app/src/key-words/key-words.service.ts
create mode 100644 nest-app/src/key-words/model/key-words.entity.ts
create mode 100644 nest-app/src/main.ts
create mode 100644 nest-app/src/swagger/response-examples/auth.response.ts
create mode 100644 nest-app/src/swagger/response-examples/error-logs.response.ts
create mode 100644 nest-app/src/swagger/response-examples/error.response.ts
create mode 100644 nest-app/src/swagger/response-examples/key-words.response.ts
create mode 100644 nest-app/src/swagger/response-examples/user-yt-videos.response.ts
create mode 100644 nest-app/src/swagger/swagger.config.ts
create mode 100644 nest-app/src/user-yt-videos/dto/update-user-yt-videos.dto.ts
create mode 100644 nest-app/src/user-yt-videos/model/user-yt-videos.entity.ts
create mode 100644 nest-app/src/user-yt-videos/user-yt-videos.controller.ts
create mode 100644 nest-app/src/user-yt-videos/user-yt-videos.module.ts
create mode 100644 nest-app/src/user-yt-videos/user-yt-videos.service.ts
create mode 100644 nest-app/src/users/decorators/user.decorator.ts
create mode 100644 nest-app/src/users/model/users.entity.ts
create mode 100644 nest-app/src/users/users.module.ts
create mode 100644 nest-app/src/users/users.service.ts
create mode 100644 nest-app/src/users/users.types.ts
create mode 100644 nest-app/tsconfig.build.json
create mode 100644 nest-app/tsconfig.json
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 react-app/.eslintignore
create mode 100644 react-app/.eslintrc
create mode 100644 react-app/.github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 react-app/.github/ISSUE_TEMPLATE/feature_request.md
create mode 100644 react-app/.prettierignore
create mode 100644 react-app/.prettierrc
create mode 100644 react-app/README.md
create mode 100644 react-app/envs/.env.example
delete mode 100644 react-app/index.html
create mode 100644 react-app/manifest.js
create mode 100644 react-app/public/_locales/en/messages.json
create mode 100644 react-app/public/_locales/pl/messages.json
create mode 100644 react-app/public/locales/en/translation.json
create mode 100644 react-app/public/locales/pl/translation.json
create mode 100644 react-app/public/logo-128.png
create mode 100644 react-app/public/logo-32.png
delete mode 100644 react-app/public/manifest.json
delete mode 100644 react-app/src/App.tsx
create mode 100644 react-app/src/assets/img/chevron-down-icon.svg
create mode 100644 react-app/src/assets/img/chevron-up-icon.svg
create mode 100644 react-app/src/assets/img/edit-icon.svg
create mode 100644 react-app/src/assets/img/english-flag.svg
create mode 100644 react-app/src/assets/img/exclamation-octagon-icon.svg
create mode 100644 react-app/src/assets/img/google-icon.svg
create mode 100644 react-app/src/assets/img/plus-icon.svg
create mode 100644 react-app/src/assets/img/polish-flag.svg
create mode 100644 react-app/src/assets/img/saved-tags-icon.svg
create mode 100644 react-app/src/assets/img/search-icon.svg
create mode 100644 react-app/src/assets/img/thumbnail.png
create mode 100644 react-app/src/assets/img/trash-icon.svg
create mode 100644 react-app/src/assets/img/watch-later-icon.svg
create mode 100644 react-app/src/assets/img/x-icon.svg
create mode 100644 react-app/src/environment.d.ts
create mode 100644 react-app/src/global.d.ts
delete mode 100644 react-app/src/index.css
create mode 100644 react-app/src/instructions/CSS.md
create mode 100644 react-app/src/instructions/DIRS_STRUCTURE.md
delete mode 100644 react-app/src/main.tsx
create mode 100644 react-app/src/pages/background/index.ts
create mode 100644 react-app/src/pages/content/components/error-toast.tsx
create mode 100644 react-app/src/pages/content/components/home/app.tsx
create mode 100644 react-app/src/pages/content/components/home/index.tsx
create mode 100644 react-app/src/pages/content/components/toast-container.ts
create mode 100644 react-app/src/pages/content/index.ts
create mode 100644 react-app/src/pages/options/index.html
create mode 100644 react-app/src/pages/popup/Popup.tsx
create mode 100644 react-app/src/pages/popup/components/auth/auth-wrapper.tsx
create mode 100644 react-app/src/pages/popup/components/auth/google.ts
create mode 100644 react-app/src/pages/popup/components/language-selector.tsx
create mode 100644 react-app/src/pages/popup/components/shared/avatar.ts
create mode 100644 react-app/src/pages/popup/components/shared/button.ts
create mode 100644 react-app/src/pages/popup/components/shared/delete-modal/delete-modal-button.ts
create mode 100644 react-app/src/pages/popup/components/shared/delete-modal/delete-modal.tsx
create mode 100644 react-app/src/pages/popup/components/shared/delete-modal/modal-content.tsx
create mode 100644 react-app/src/pages/popup/components/shared/delete-modal/use-delete-modal.ts
create mode 100644 react-app/src/pages/popup/components/shared/dropdown.tsx
create mode 100644 react-app/src/pages/popup/components/shared/error.tsx
create mode 100644 react-app/src/pages/popup/components/shared/errorSnackbar/error-snackbar.tsx
create mode 100644 react-app/src/pages/popup/components/shared/errorSnackbar/use-error-snackbar.tsx
create mode 100644 react-app/src/pages/popup/components/shared/github-link.tsx
create mode 100644 react-app/src/pages/popup/components/shared/icon.ts
create mode 100644 react-app/src/pages/popup/components/shared/input.tsx
create mode 100644 react-app/src/pages/popup/components/shared/items-container.ts
create mode 100644 react-app/src/pages/popup/components/shared/profile.tsx
create mode 100644 react-app/src/pages/popup/components/shared/searchBar/search-bar-input.tsx
create mode 100644 react-app/src/pages/popup/components/shared/searchBar/search-bar-wrapper.ts
create mode 100644 react-app/src/pages/popup/components/shared/searchBar/search-bar.tsx
create mode 100644 react-app/src/pages/popup/components/shared/seo.tsx
create mode 100644 react-app/src/pages/popup/components/shared/styled-skeleton.ts
create mode 100644 react-app/src/pages/popup/components/shared/theme-switch.tsx
create mode 100644 react-app/src/pages/popup/components/shared/title-header.ts
create mode 100644 react-app/src/pages/popup/components/store/list/item/addingKeyword/add-input.tsx
create mode 100644 react-app/src/pages/popup/components/store/list/item/deleteButton/delete-button.tsx
create mode 100644 react-app/src/pages/popup/components/store/list/item/editButton/edit-button.tsx
create mode 100644 react-app/src/pages/popup/components/store/list/item/keyword.tsx
create mode 100644 react-app/src/pages/popup/components/store/list/item/store-value.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/article/authorInfo/author-info.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/article/authorInfo/autor-name.ts
create mode 100644 react-app/src/pages/popup/components/video/section/article/thumbnail/thumbnail.ts
create mode 100644 react-app/src/pages/popup/components/video/section/article/video-article.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/article/video-button.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/article/videoInfo/video-info.ts
create mode 100644 react-app/src/pages/popup/components/video/section/article/videoInfo/video-infos.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/article/videoInfo/video-title.ts
create mode 100644 react-app/src/pages/popup/components/video/section/skeleton/authorInfoSkeleton/author-info-skeleton.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/skeleton/video-article-skeleton.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/skeleton/videoInfoSkeleton/video-infos-skeleton.tsx
create mode 100644 react-app/src/pages/popup/components/video/section/videos-section.tsx
create mode 100644 react-app/src/pages/popup/constant.ts
create mode 100644 react-app/src/pages/popup/index.html
create mode 100644 react-app/src/pages/popup/index.tsx
create mode 100644 react-app/src/pages/popup/layouts/header-container.tsx
create mode 100644 react-app/src/pages/popup/layouts/main-content.tsx
create mode 100644 react-app/src/pages/popup/layouts/navbar.tsx
create mode 100644 react-app/src/pages/popup/pages/auth/auth.page.tsx
create mode 100644 react-app/src/pages/popup/pages/error/ErrorPage.tsx
create mode 100644 react-app/src/pages/popup/pages/home/home-wrapper.tsx
create mode 100644 react-app/src/pages/popup/pages/home/home.page.tsx
create mode 100644 react-app/src/pages/popup/pages/home/use-home.ts
create mode 100644 react-app/src/pages/popup/pages/protected.page.tsx
create mode 100644 react-app/src/pages/popup/providers-wrapper.tsx
create mode 100644 react-app/src/pages/popup/routes/store.route.tsx
create mode 100644 react-app/src/pages/popup/routes/videos.route.tsx
delete mode 100644 react-app/tsconfig.node.json
create mode 100644 react-app/utils/core/log.ts
create mode 100644 react-app/utils/core/manifest-parser/index.ts
create mode 100644 react-app/utils/core/plugins/add-hmr.ts
create mode 100644 react-app/utils/core/plugins/custom-dynamic-import.ts
create mode 100644 react-app/utils/core/plugins/make-manifest.ts
create mode 100644 react-app/utils/core/plugins/watch-rebuild.ts
create mode 100644 react-app/utils/core/reload/constant.ts
create mode 100644 react-app/utils/core/reload/initReloadClient.ts
create mode 100644 react-app/utils/core/reload/initReloadServer.ts
create mode 100644 react-app/utils/core/reload/injections/script.ts
create mode 100644 react-app/utils/core/reload/injections/view.ts
create mode 100644 react-app/utils/core/reload/interpreter/index.ts
create mode 100644 react-app/utils/core/reload/interpreter/types.ts
create mode 100644 react-app/utils/core/reload/rollup.config.mjs
create mode 100644 react-app/utils/core/reload/utils.ts
create mode 100644 react-app/utils/data/global-styles.ts
create mode 100644 react-app/utils/data/mixins/page-mixin.ts
create mode 100644 react-app/utils/data/mixins/scrollbar-mixin.ts
create mode 100644 react-app/utils/data/mixins/text-mixin.ts
create mode 100644 react-app/utils/data/themes/dark-theme.ts
create mode 100644 react-app/utils/data/themes/light-theme.ts
create mode 100644 react-app/utils/endpoints/urls.ts
create mode 100644 react-app/utils/hooks/use-focus.ts
create mode 100644 react-app/utils/hooks/use-handle-key-events.ts
create mode 100644 react-app/utils/hooks/use-language-switch.ts
create mode 100644 react-app/utils/hooks/use-search.ts
create mode 100644 react-app/utils/hooks/use-ternary-darkmode.ts
create mode 100644 react-app/utils/hooks/use-validate.ts
create mode 100644 react-app/utils/hooks/with-error-boundary.tsx
create mode 100644 react-app/utils/instructions/DIRS_STRUCTURE.md
create mode 100644 react-app/utils/interfaces/index.ts
create mode 100644 react-app/utils/libs/authentication/index.ts
create mode 100644 react-app/utils/libs/http-client/index.ts
create mode 100644 react-app/utils/libs/internationalization/index.ts
create mode 100644 react-app/utils/libs/query-client/index.ts
create mode 100644 react-app/utils/types/index.ts
create mode 100644 screenshots/auth-page.png
create mode 100644 screenshots/keywords-dark.png
create mode 100644 screenshots/keywords-light.png
create mode 100644 screenshots/notification.png
create mode 100644 screenshots/videos-dark.png
create mode 100644 screenshots/videos-light.png
diff --git a/.gitignore b/.gitignore
index 723ef36f..2d2b47d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.idea
\ No newline at end of file
+.idea
+node_modules
\ No newline at end of file
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100644
index 00000000..482222a2
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npm run commitlint ${1}
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 00000000..2fb2f62a
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,7 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+cd react-app
+npx lint-staged
+cd ../nest-app
+npx lint-staged
diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md
new file mode 100644
index 00000000..5f18b744
--- /dev/null
+++ b/CONTRIBUTION.md
@@ -0,0 +1,148 @@
+## Installation
+ 1. Clone this repository.
+
+## FOR ROOT(OVER APPS):
+ RUN 'npm i'
+
+## FOR REACT-APP(FRONTED):
+
+### Procedures
+
+1. Create `.env.local` in `envs` directory by copying `.env.example` and if necessary adjust to your needs.
+2. Run `npm ci`
+
+## And next, depending on the needs:
+
+### For chrome:
+
+1. Run `npm run dev`
+2. Open in browser - `chrome://extensions`
+3. Check - `Developer mode`
+4. Find and Click - `Load unpacked extension`
+5. Select - `dist` folder (after dev or build)
+
+#### If you want to build for production, Just run `npm run build`.
+
+### For firefox:
+
+1. Run `npm run dev:firefox`
+2. Open in browser - `about:debugging#/runtime/this-firefox`
+3. Find and Click - `Load Temporary Add-on...`
+4. Select - `manifest.json` file from `dist` folder (after dev or build)
+
+#### If you want to build for production, Just run `npm run build:firefox`.
+
+#### Remember in firefox you add plugin in temporary mode, that means it disappear after closing browser, on next launch you must do it again.
+
+#### When you end part of work before committing check folder in `src/instructions` and check if your code follow standards.
+
+#### If you want to create something in utils, follow the folder structure described in `utils/instructions`.
+
+## FOR NEST-APP(BACKEND):
+
+### Before Installation
+
+ - Check postgresql v15 is installed on your machine, if not:
+
+[postgresql](https://www.postgresql.org/download/)
+
+ - Check node v20 is installed on your machine, if not:
+
+[node](https://nodejs.org/en/download)
+
+ - If you don't have google account (You're strange :)) go and create one, then:
+
+[set up google dev project](https://console.cloud.google.com/apis/credentials?hl=pl)
+
+ - Set up project, name could be 'YT Notifier DEV'
+
+ - Enable this api:
+
+[YT API](https://console.cloud.google.com/apis/api/youtube.googleapis.com)
+
+ - Next follow this steps:
+
+[set up credentials](https://developers.google.com/identity/protocols/oauth2/web-server?hl=pl#creatingcred)
+
+ - Name could be like project
+ - Authorize source JS is 'http://localhost:3001' (or other, if you change SERVER_PORT in env)
+ - Redirect url is 'http://localhost:3001/api/auth/redirect' (port like above)
+
+ - Go to /envs folder and copy 'example.env' then paste it as 'local.env',
+ then paste your google credentials(clientId and secret) from google cloud console
+ or from secret.json(if you download file) to related env keys.
+
+## Installation
+
+```bash
+$ npm ci
+```
+
+## Running the app
+
+```bash
+# development(watch mode)
+$ npm run start:dev
+
+# remote development
+$ npm run start:dev:remote
+
+# production mode
+$ npm run start:prod
+
+# generate migration
+$ npm run migration:generate src/database/migrations/migration-name
+```
+
+## Getting started
+
+To run docs open in browser: https://localhost:3001/api/docs (or other port, if you change PORT in env)
+And there you can find next steps to authorize yourself, to have permission to use endpoints.
+Follow the instructions from swagger description (On the top of the page)
+
+## ON IDE FOR BOTH APPS(CONFIG ONLY FOR WEBSTORM)
+
+### CONFIGURE PRETTIER IN YOUR IDE:
+
+ PRETTIER IS IN .\node_modules\prettier
+
+##### E.G. FOR WEBSTORM:
+
+[Prettier config](https://blog.jetbrains.com/webstorm/2020/07/webstorm-2020-2/)
+
+### CONFIGURE RELATIVE IMPORT PATHS IN YOUR IDE:
+
+ IN WEBSTORM GO TO SETTING:
+ EDITOR/CODE STYLE/TYPESCRIPT
+ [X] USE PATHS RELATIVE TO TSCONFIG.JSON
+
+ AND ALSO:
+ [X] SORT IMPORTED BY MEMBERS
+ [X] SORT IMPORTS BY MODULES
+
+### CONFIGURE RUNNING ESLINT AND PRETTIER TO RUN ON SAVE(MAKE SURE, YOU ALREADY HAVE AUTO-SAVE ENABLED):
+
+ IN WEBSTORM GO TO SETTINGS:
+ LANGUAGES & FRAMEWORKS/JAVASCRIPT/CODE QUALITY TOOLS/ESLINT:
+ [X] AUTOMATIC ESLINT CONFIGURATION
+ [X] RUN ESLINT --FIX ON SAVE
+
+ LANGUAGES & FRAMEWORKS/JAVASCRIPT/PRETTIER:
+ [X] AUTOMATIC PRETTIER CONFIGURATION
+ [X] RUN ON SAVE
+
+### CONFIGURE IF YOU'RE USING WINDOWS:
+ OPEN 'GIT BASH' ON YOUR MACHINE AS ADMINISTRATOR, AND PASTE IT:
+ git config --global core.autocrlf false - IF YOU WANT TO DISABLE IT FOR USER. (RECOMMENDED)
+ git config --local core.autocrlf false - IF YOU WANT TO DISABLE IT FOR THIS PROJECT ONLY.
+
+### CONFIGURE DEFAULT BRANCH UPDATE SETTINGS:
+
+ IN WEBSTORM GO TO SETTING:
+ GIT/PUSH:
+ PROTECTED BRANCH: 'master;main"
+ /UPDATE:
+ UPDATE METHOD: 'rebase'
+ CLEAN WORKING TREE USING: 'shelve'
+
+###### ENJOY YOUR TASKS
\ No newline at end of file
diff --git a/LICENCE b/LICENCE
new file mode 100644
index 00000000..b43e8ea9
--- /dev/null
+++ b/LICENCE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 PatrykKuniczak
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..039e4d86
--- /dev/null
+++ b/README.md
@@ -0,0 +1,140 @@
+[![MIT License][license-shield]][license-url]
+[![LinkedIn][linkedin-shield]][linkedin-url]
+
+
+
+
+
+
+
+
+
YT Notifier
+
+
+ Chrome extension which inform you about recently uploaded videos to youtube,
+ only from keywords/titles which you want to.
+
+
+ You can 'subscribe' a word, and get videos which title contain that word.
+