Commit Graph

74 Commits

Author SHA1 Message Date
Filip Sodić
4171f5608b
Fix full-stack type support errors (#1123) 2023-04-12 15:36:52 +02:00
Mihovil Ilakovac
ee5272e6de
Improves error messages in auth (#1120) 2023-04-11 16:49:26 +02:00
Filip Sodić
d8f7a633ed
Fix type errors preventing build (#1118) 2023-04-07 19:20:06 +02:00
Filip Sodić
945d777133
Add full-stack compile-time type safety (#1090) 2023-04-06 21:12:18 +02:00
Mihovil Ilakovac
5be9d1fa5e
Auth UI integration with email & polish (#1107) 2023-04-06 20:29:05 +02:00
Mihovil Ilakovac
7f32a4ccb9
Adding e-mail auth (e-mail verfication, password reset) (#1087) 2023-04-05 23:25:03 +02:00
Martin Šošić
0e5aa85014
Implement database seeding via 'wasp db seed' 2023-04-05 11:33:52 +02:00
Shayne Czyzewski
89f12ea35b
Relax dependency between oauth and usernameAndPassword fields (#1102) 2023-04-04 14:35:14 -04:00
Mihovil Ilakovac
6dbeedca60
Adds support for e-mail sending (#1050) 2023-03-24 12:42:22 +01:00
Martin Šošić
91a8063081
Implemented wasp start db (managed dev db) (#1044)
Implemented 'wasp start db' + docs + e2e tests + refactoring.
2023-03-21 16:37:20 +01:00
Mihovil Ilakovac
326737759d
Refactor auth to conform to providers interface (#998) 2023-03-16 10:42:57 +01:00
Shayne Czyzewski
9f3f5234ef
Adds api for defining custom HTTP routes (#1043) 2023-03-14 14:04:51 -04:00
Mihovil Ilakovac
6d979c1c7f
Adds support for FE listening on multiple addresses (#1048) 2023-03-10 11:30:48 +01:00
Shayne Czyzewski
6dcfb290d9
Cast server setupFn for backwards compatibility (#1038) 2023-03-02 08:34:51 -05:00
Mihovil Ilakovac
7a0f8b5d58
Replaces Create React App with Vite (#1019) 2023-03-01 17:14:14 +01:00
Shayne Czyzewski
8991043eed
Add Express app and http server to server setupFn (#1017) 2023-02-27 12:19:17 -05:00
Mihovil Ilakovac
75b3d7db01
Adds env validation and shared templates folder (#994) 2023-02-21 11:52:37 +01:00
Mihovil Ilakovac
b139a0bcff Merge branch 'main' into release-with-main 2023-02-14 23:04:01 +01:00
Mihovil Ilakovac
07b03fec5d
Generate all JS import statements in Haskell (#956) 2023-02-13 16:57:31 +01:00
Mihovil Ilakovac
0fce66f21e
Drop the npm version requirement (#1002) 2023-02-13 16:10:40 +01:00
Filip Sodić
b79f694eef
Fix structural typing bug with operation types (#982)
* Support typing backend queries

* Implement types for actions and extract entities

* Add Prisma entities to the frontend

* Add frontend types to internal todoApp

* Undo moving for easier review

* Revert back to generating a query.js file

* Rename buildEntityData

* Fix structural typing bug

* Rename function for making entity json data

* Expand EntityMap to improve readability

* Remove leftover testing artifacts

* Remove wasp prefix from _entityName

* Remove solved todo in schema template

* Fix docs in method

* Adding uninstall command (#953)

* Adding uninstall command

* Updates docs and changelog related to the uninstall command

* Use StrongPath instead of FilePath

* Fix review feedback

* Move prisma client generation messages

* Generalize FileDraft functions

* Generate prisma clients using ENV

* Fix schema checksum check

* Small refactor in db generator

* Run prisma generate from server root dir

* Fix types for useAction

* Fix type error for useAction

* Fix schema generation in Dockerfile

* Refactor passing env vars to prisma schema

* Fix useAction types

* Replace Prelude readFile with SP readFile

* Add comment for prisma/client in web app

* Replace Prelude writeFile with SP writeFile

* Replace do and if with ifM

* Rename readProjectTelemetryFile

* Refactor readOrCreateUserSignatureFile

* Remove redundant comment

* Fix typo in variable name

* Simulate unions with a type class

* Further improve strongpath types

* Add expand types to types index

* Remove redundant comment

* Organize internal type modules

* Fix formatting

* Remove leftover code

* Generate prisma clients after migration

* Change ModuleRootDir to ComponentRootDir

* Remove solved todo

* Improve naming

* Remove redundant env variable

* Improve formatting

* Fix errors after merging

* Include input and output types

* Temporarily delete _types

* Restore _types index

* Add types to queries

* Rename WaspEntity to Entity

* Change local function name

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Rename local function again

* Update changelog

* Fix error type in useQuery

* Rename Component to AppComponent

* Refactor DbGenerator

* Explain Abs paths in SP helpers

* Update e2e tests

* Fix formatting

* Change signature for doesFileExist

* Change signature for SP functions

* Remove redundant do block

* Fix formatting

* Reorder functions

* Rename module to appComponent in functions

* Rename module to component in functions

* Rename telemetry cache function

* Fix formatting

* Update changelog

* Remove redundant import

* Update e2e tests

---------

Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2023-02-13 15:17:08 +01:00
Filip Sodić
c41f065ef4
Bring Prisma entities to the frontend (#962)
* Support typing backend queries

* Implement types for actions and extract entities

* Add Prisma entities to the frontend

* Add frontend types to internal todoApp

* Undo moving for easier review

* Revert back to generating a query.js file

* Rename buildEntityData

* Remove solved todo in schema template

* Fix docs in method

* Adding uninstall command (#953)

* Adding uninstall command

* Updates docs and changelog related to the uninstall command

* Use StrongPath instead of FilePath

* Fix review feedback

* Move prisma client generation messages

* Generalize FileDraft functions

* Generate prisma clients using ENV

* Fix schema checksum check

* Small refactor in db generator

* Run prisma generate from server root dir

* Fix types for useAction

* Fix type error for useAction

* Fix schema generation in Dockerfile

* Refactor passing env vars to prisma schema

* Fix useAction types

* Replace Prelude readFile with SP readFile

* Add comment for prisma/client in web app

* Replace Prelude writeFile with SP writeFile

* Replace do and if with ifM

* Rename readProjectTelemetryFile

* Refactor readOrCreateUserSignatureFile

* Remove redundant comment

* Fix typo in variable name

* Simulate unions with a type class

* Further improve strongpath types

* Generate prisma clients after migration

* Change ModuleRootDir to ComponentRootDir

* Remove solved todo

* Improve naming

* Remove redundant env variable

* Improve formatting

* Fix errors after merging

* Change local function name

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Rename local function again

* Update changelog

* Fix error type in useQuery

* Rename Component to AppComponent

* Refactor DbGenerator

* Explain Abs paths in SP helpers

* Update e2e tests

* Fix formatting

* Change signature for doesFileExist

* Change signature for SP functions

* Remove redundant do block

* Fix formatting

* Reorder functions

* Rename module to appComponent in functions

* Rename module to component in functions

* Rename telemetry cache function

* Fix formatting

---------

Co-authored-by: Mihovil Ilakovac <mihovil@ilakovac.com>
Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2023-02-13 14:31:49 +01:00
Bas Dirks
e4e29eec0b
Add Input type to operations (#989)
* feat: add type variable for operation input argument

* Pass where object by name.

* Change default type of operator input to `never`.

* Update e2e checksums.

* Rename operation Result type to Output, remove redundant default types.

---------

Co-authored-by: Bas Dirks <bas.dirks@bettyblocks.com>
2023-02-10 16:56:53 +01:00
Filip Sodić
71038c277d
Add automatic TypeScript support for operations (#952)
* Support typing backend queries

* Implement types for actions and extract entities

* Automatically generate specific operation types

* Eta reduce functions

* Add CR fixes

* Add type to imports and exports for entities

* Change query extensions back to .js

* Tidy up default arguments for operation types

* Don't throw syntax error when there are no entities

* Update e2e tests

* Fix formatting

* Address CR comments

* Fix typo in comment

* Add duplication comment

* Update e2e tests

* Fix duplication comments

* Update changelog and bump project version

* Update changelog

* Update e2e tests
2023-01-24 15:12:57 +01:00
Filip Sodić
81ffa6c27c
Add manual TypeScript support for Operations (#945)
* Support typing backend queries

* Implement types for actions and extract entities

* Add CR fixes

* Add type to imports and exports for entities

* Change query extensions back to .js

* Tidy up default arguments for operation types

* Don't throw syntax error when there are no entities

* Update e2e tests

* Fix formatting

* Fix typo in comment

* Update changelog and bump project version
2023-01-24 14:45:35 +01:00
Shayne Czyzewski
2182b9088d
Adds GitHub login and refactors Passport.js (#872) 2022-12-20 09:12:08 -05:00
Filip Sodić
5da642e8eb
TypeScript fixes before Beta (#831)
* Change typescript modules to esnext

* Fix tsconfigs and use recommended settings

* Fix server not loading env variables

* Fix TS output overwriting error

* Fix wrong types

* Change MainPage.tsx to MainPage.jsx

* Remove duplication for Node tsconfig

* Update e2e tests for TS fixes

* Fix formatting
2022-11-25 20:10:10 +01:00
Filip Sodić
784c47c317
Server-side TypeScript support (#827) 2022-11-24 14:38:39 +01:00
Martin Šošić
7c45475601
Detect when jobs quiet down and print compiler warnings/errors. (#781)
Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>

Co-authored-by: Shayne Czyzewski <523636+shayneczyzewski@users.noreply.github.com>
2022-11-01 22:43:39 +01:00
Shayne Czyzewski
a84f3547fa
Fixes login issue for uppercase usernames (#751) 2022-10-13 12:04:45 -04:00
Shayne Czyzewski
b965dfeb30
Works around sodium-native bug to support Heroku deploys (#729) 2022-09-20 10:51:47 -04:00
Shayne Czyzewski
6cd38b0f94
Adds Google as an authentication method (#669) 2022-09-06 14:35:59 -04:00
Shayne Czyzewski
bc92b024e1
Renames auth method EmailAndPassword to UsernameAndPassword (#696) 2022-08-24 10:32:46 -04:00
Shayne Czyzewski
d827d05d96
Jobs callback function updates (#676) 2022-08-17 13:53:05 -04:00
Shayne Czyzewski
9f7d212b8c
Fix User model name assumption (#660) 2022-07-01 08:18:40 -04:00
Martin Šošić
62f0a76937
Limited Wasp version to ^16.0.0 && <=16.15.0 (#634)
* Limited Wasp node version to ^16.0.0 && <=16.15.0.

In the process, I removed .nvmrc files from generated code and
refactored SemanticVersion to follow npm spec.
I also updated CI to use node 16.15.0, and not any 16.
I also updated docs.
2022-06-17 17:02:54 +02:00
Shayne Czyzewski
4de7d16331
Adds cron support to pg-boss Jobs and documentation (#586) 2022-05-13 12:30:55 -04:00
Shayne Czyzewski
f14be11fc3
Add pg-boss as a Job executor (#582)
Note: This does not provide cron support, that is coming in the next PR.
2022-05-03 14:34:25 -04:00
Shayne Czyzewski
adcb15a41c
Adds a simple pass-through Jobs implementation. (#553) 2022-04-13 12:30:29 -04:00
Filip Sodić
8a3fba8831
Require LTS version of Node for Wasp (#504)
* Require LTS node and npm on client and server

* Update node and npm versions in the docs

* Add npmrc and nvmrc to WebAppGenerator

* Change function name in test

* Add newline to nvmrc

* Add newline to Common.hs

* Remove extra empty line in nvmrc

* Remove extra empty line in Common.hs

* Update end to end tests for node LTS

* Add newline at the end of server/nvmrc

* Ensure Node version 16 in CI

* Fix broken ci file

* Change how Wasp specifies required versions

* Fix formatting

* Use type alias for semantic versions

* Remove incorrect comment on Prisma LTS

* Update e2e checksums

* Fix typo in gitignore

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>

* Sort e2e checksums

* Extract semantic version to its module

* Fix formatting

* Fix formatting again

* Add comment explaining nvmrc

* Add tests and change semver naming

* Add natural numbers and formatting to semver

* Add newline at the end of semver module

* Add missing space to node mismatch message

Co-authored-by: Martin Šošić <Martinsos@users.noreply.github.com>
2022-03-21 15:00:19 +01:00
Martijn Faassen
2b050fb9c7 Fix error handling bug
Errors were not properly handled as `error` was not bound
2022-02-16 18:42:11 +01:00
Shayne Czyzewski
f444eaae47
feat(auth): Added flexible validation checks for User entity email and password (#376)
Adds an additional Prisma middleware for User entity validation checks that the user can disable and/or extend

Closes #88 and fixes #100
2021-12-07 13:22:56 -05:00
Martin Šošić
d86b53cb24
Merge pull request #279 from saatvikshah/auth_opt_out
Allow operations to opt out of auth middleware
2021-07-21 16:28:18 +02:00
Martin Sosic
748dfb5725 feat: Wasp can now run custom setup code on server start (#199). 2021-07-21 16:14:38 +02:00
Saatvik Shah
d0c5114a52 Address review comments 2021-07-09 08:04:29 +02:00
Saatvik Shah
a85b408b60 Allow operations to opt out of auth middleware
This patch allows operations to individually specify whether they want
to use or opt out of auth middleware, via an additional `auth` argument
under the actions/queries sections. If left unspecified it is assumed to
be true.

This is addressed by removing the current global auth middleware
registration, and adding it instead to individual operation route
specification.
2021-07-05 21:20:56 +02:00
tolarianwiz
2d54d005e5
refactor: extract server npm dev dependencies
Now dev dependencies in package.json are no more hardcoded, instead they are generated (like dependencies) from ServerGenerator.hs and inserted as devDepsChunk.
2021-05-31 20:30:08 +02:00
caz-gh
df619ff943 feat: add 'helmet' to node server dependencies 2021-05-19 16:40:56 +02:00
Martin Sosic
8d3e3830f4 fix: bumped Prisma version to 2.22.1. 2021-05-18 21:18:05 +02:00
Martin Šošić
f9e8f88b66
Upgraded to Prisma 2.21 (stable migrations) + postgre can be used in local dev.
- `wasp db migrate-save` and `wasp db migrate-up` got replaced with `wasp db migrate-dev`.
- Wasp now has a declarative way to express which db is used, postgresql or sqlite: `db { system: PostgreSQL }`.
- Prisma is now at the latest version, 2.21. PSL parser was upgraded to work with this.
- PostgreSQL can now be used for local development.
- We migrated examples/realworld to work with this new version of Wasp.
2021-04-21 14:06:25 +02:00