Start using @stripe/stripe-js lib (ES module) instead of regular stripe dependency.
Use strict typing for stripe commands/events.
This lib makes us able to modify stripe input styling in the future.
Change-Id: Iaba4f32a42e87edc85a4fbad82e5107c21bf19b6
This change updates the vuetify app and the production app to load
fonts using the fontsource package.
Issue: https://github.com/storj/storj/issues/6200
Change-Id: I4b91a4d0dfcfc42f9f71ac03b31d1ef74c53e15d
Upgraded package-lock version to correspond to node v18+.
Upgraded aws-sdk dependencies to resolve vulnerabilities.
Also, fixed typing errors in object browser pinia module.
Change-Id: I35e6e219e66f98ca167ccb4ac57ad07ac99efff1
Built side Vuetify subproject inside web/satellite with limited functinality.
For now it has navigation side bar, simple project dashboard and team page (where you can list/add team members).
Issue:
https://github.com/storj/storj/issues/5854
Change-Id: I9ff3e80b8ace1dc31de6a788174c5ffc19f050f8
Migrated webpack to vite.
Replaced jest with vitest (because I couldn't resolve 'import.meta' issue)
Replaced legacy vue-svg-loader with vite-svg-loader
Replaced bip39 dep with bip39-english (it includes only english wordlist)
Replaced aws-sdk v2 with aws-sdk V3 (because v2 was throwing some weird error in console. Ref: https://stackoverflow.com/questions/75107933/aws-sdk-contributes-to-build-error-uncaught-typeerror-e-is-not-a-constructor)
Renamed VUE_APP_ENDPOINT_URL env variable to VITE_ENDPOINT_URL
Removed a ton of dependencies (like babel and jest-related stuff).
Tested in Chrome, Safari, Brave, Firefox and Opera browsers.
Additionally fixed logout errors from buckets and object browser routes.
TODO: try to remove util and stream-browserify dependencies and see if it works
Change-Id: I4562649a59eb0ba80c1a672d55c59fceb8c80b23
Upgraded chart.js dependency to V4.
Removed vue-chart and types/chart.js dependencies.
Refactored VChart component to rely only on chart.js dep without any additional wrappers.
Refactored VChart component to use SFC composition API.
Change-Id: Ic5e0131bff413f3205d4449db930644d113fe36d
We decided to remove sanitizing dependency and restrict v-html with 2 exceptions for web/satellite (we control the content in those cases)
Issue:
https://github.com/storj/storj-private/issues/148
Change-Id: Ic6b2e894d20e7f0553f759ede51845a10831e890
Right now there is a problem that we list objects inside object browser using Delimiter param which helps us to define if bucket includes folders.
If we set Delimiter to '/' then in response we get a list of plain objects called Contents and another list called CommonPrefixes which includes 'folder' keys.
So this approach makes it impossible to know the exact object count because we don't know a number of objects behind folder keys.
So to correctly calculate objects count we have to make another list request without Delimeter param.
By doing this we get a single Contents list which includes plain objects and objects containing folder Prefix.
Example of Contents response without Delimiter param:
['object', 'object1', 'folder/object2', 'folder1/object3']
Change-Id: Id23f26bed369d2063bdbae96e7d915168c6c9bdd
added to replace vuex in future
buckets, projects and users modules pinia analogues created
have no pretty and straight-forward ways to work with option api + ts files so it is better to use with composition api components
Change-Id: Ia8acc491c0e76e01bf6d533747d186257680e5c9
Basically, I reverted this change with some modifications.
https://review.dev.storj.io/c/storj/storj/+/6731
We don't use signed requests anymore because its usage was not really affective and caused some UX problems like too long video loading/buffering.
We don't use presigned URLs as well because they are not really compatible (I think) with video streaming. So long videos (> 1 min long) constantly failed to buffer.
Instead of presigned URLs we just use STORJ linksharing. We generate new access grant which is valid for one day to render preview and object map.
Issue:
https://github.com/storj/storj/issues/5025
Change-Id: I0313f2c6b78811f1058c25fdf5b94dc5d563c15d
2.7 natively supports the Composition API, which makes transitioning to
Vue 3 easier to do step-by-step.
Converted ::v-deep selectors to :deep() to fix new build warnings.
Change-Id: I21b34e10f55eaf9dcdad87729f02f3b0d723b6b1
Jenkins doesn't do a very good job with identifying what has been changed.
While it has a syntax to defined patterns, it compares the current build with the previous build (in case of git-verify it can be a totally different branch) instead of checking the HEAD commit.
This patch introduces shell scripts to do this better:
* It doesn't depend on Jenkins any more
* It can be executed locally
* It can detect web changes properly (see the relation change as an example).
Change-Id: I9d37775e3818c08c4aa96ffb78f84d57f28a2c95
we want sign up page to be more configurable since we have to add partner branding to it.
added ability to add logo, different title and decpription and even html after common markup.
v-html rule disabled and sanitize plusin added to avoid xss injections.
tsconfig changed to be able to load modules from json files.
Change-Id: I9ff2cf6e5cf977b8c41ca48953b491bd361f26a1
Adds a new configuration for hcaptcha enabled, secretkey, and sitekey.
If both reCAPTCHA and hCaptcha are configured as "enabled", reCAPTCHA
will be used.
Change-Id: I73cc6e133d8da3555e0ed8b2b377cf9eb263e6dc
This reverts commit 2e3e5547e2.
The S3 client is returning an error related to region with the new
changes.
Change-Id: I989b8a46c0e97c1278517e1de07fe42d5950cf54
While there isn't a significant win neither the prod javascript size nor
the number of dependencies, it does reduce the number of deprecated
packages.
Change-Id: Ib8edeb6916844500d74ae067464be9f28f542605
Also reset package-lock.json files to workaround issue
of npm auto-updating storj eslint plugin dependency to ssh.
Change-Id: Iaba102d713dc596d5814bdc4cc54c9b911398d64
This contains also multiple fixes to make it work.
The following is a non-exhaustive list.
When @Prop default value is a callback, then it is called
instead of set verbatim. This means, when you want a default
value to be a callback, then it needs to be `default: () => () => X`.
jest does not yet properly support WebWorkers, hence the code introduces
an indirection to provide the worker URL.
This in turn required removing the global "store" dependency from
the tests. As a consequence the new NotificatorPlugin takes store
as a dependency. And many of the tests are adjusted to not import
store directly.
Moved StoreModule definition to avoid initializing the global store.
Some of the router code was moved into store. We can later figure out
how to structure it better and move it back.
bip39 needs explicit fallbacks for some of the dependencies.
Fixes to timer mocking. jest supports it natively.
Remove sinon dependency. jest provides all the functionality we need.
Change-Id: I7af3599390c63ce9f99dbd0b1e0870e9f8ca994d
This change makes the files store fully type-safe. It builds with `npm run build` and lints with `npm run lint`, displaying no errors or warnings.
There was an issue where I was unable to use the newer web APIs for filesystem operations, I think TypesScript (and Vue?) may need to be updated - I already tried updating `@types/web`. To mitigate this, I added slim type definitions for only the parts we use. The definitions are exactly as they appear on MDN and even include links to the relevant documentation. In future they can be removed with no compatibility issues.
Change-Id: I7b8b4a5f95caabdb546157c65e9f2f42c5132a6f
Finished implementing queries for both bandwidth and storage using pgx.Batch.
Fixed CSP styling issue.
Change-Id: I5f9e10abe8096be3115b4e1f6ed3b13f1e7232df
There is a sev-2 issue to add more browser caching.
In this PR I made object map and object preview to be fetched by signed request with non-public credentials using AWS SignatureV4 package.
Change-Id: Ib5013fa6d6af3faa97eed5168c11a13f9629cd87
Added bandwidth/storage charts (with test data) to new project dashboard.
Added functional buttons to new project dashboard.
Fixed this issue https://github.com/storj/storj/issues/4262.
Change-Id: Ie87370b8f7b6015bc84022a6086ef1db40e16535
The package was barely used and the amount of code needed to remove it
is minor.
Also remove top-level package-lock, because it's not being used.
Change-Id: Ifb4ec4fe7f4fa36ce6e707a33d47f04c583cbe6c
Stylelint and eslint should be run separately and not part of the build
process.
Add a flag STORJ_DEBUG_BUNDLE_SIZE to debug compiled bundle size.
Reduce the number of chunks, it's far from ideal. Once we reduce the
images and browser size, we probably can drop chunking altogether.
Change-Id: I5bdf35ceb140e2c47a30df8d319606d05bfb30dd
For some reason our build process cannot handle relative path packages,
it's easier to create a new repository than to figure out,
why npm/docker etc. don't like it.
Change-Id: I94b7cb9611f453246b596f97114fe5c54d9a4008
Also ignore coverage folder for linting. I had to add a new
.stylelintignore file, because ignoreFiles property was not properly
working.
Change-Id: Iadd99b64eadd9c4103f750519263113ae8780ce1
Fixes two things:
All button tags must have type field specified, otherwise it defaults to
submit, which is mostly not correct for our site.
Disallows unused refs.
Change-Id: I28bb44aab9c153f83fec16fc4023a453444c3926
tslint has been deprecated so it's nice to switch to eslint.
Currently this uses a minimal eslint, to get things up and running.
node-sass requires C which does not work nicely on all platforms.
Change-Id: I3ca9adf2971475c009e541652b7637c18ad960f4
Added feature flagged functionality for enabling user MFA.
Added new Popup where user will scan qr code and confirm enabling
by entering passcode from MFA app. Also recovery codes will be visible afterwords
Change-Id: Ie8d1bc83c941a08fd8701442601a2d20126c8892
The user must complete a reCAPTCHA in order to register.
ReCAPTCHA verification failure results in rejection of the
registration attempt.
Change-Id: I34ba7db414d756fd1aaebdc3d19cccbfc7fc1ea3