zrb 0.0.50__py3-none-any.whl → 0.0.52__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. zrb/action/runner.py +15 -3
  2. zrb/builtin/generator/docker_compose_task/template/_automate/snake_task_name.py +1 -1
  3. zrb/builtin/generator/fastapp/add.py +3 -2
  4. zrb/builtin/generator/fastapp/template/_automate/snake_app_name/frontend.py +17 -2
  5. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore +2 -1
  6. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/Dockerfile +1 -1
  7. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/config.py +3 -0
  8. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/messagebus/rabbitmq/consumer.py +4 -1
  9. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore +2 -2
  10. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package-lock.json +197 -115
  11. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json +7 -1
  12. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.html +1 -1
  13. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/auth.ts +83 -0
  14. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/store.ts +4 -0
  15. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/type.ts +10 -0
  16. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Menu.svelte +20 -0
  17. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Navigation.svelte +77 -0
  18. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/type.ts +6 -0
  19. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/config/config.ts +4 -0
  20. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/config/navData.ts +25 -0
  21. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/cookie/cookie.ts +19 -0
  22. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte +9 -6
  23. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.js +4 -4
  24. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.svelte +3 -7
  25. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/sample/+page.svelte +37 -0
  26. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/sample/delete/[id]/+page.svelte +1 -0
  27. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png +0 -0
  28. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/logo.png +0 -0
  29. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tailwind.config.js +1 -1
  30. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/api.py +1 -1
  31. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/component/authorizer.py +1 -1
  32. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/component/token_scheme.py +1 -1
  33. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/core/authorizer/authorizer.py +1 -1
  34. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +9 -5
  35. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/core/token_scheme/oauth2_bearer_token_scheme.py +1 -1
  36. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/api.py +32 -8
  37. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/model.py +60 -52
  38. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/rpc.py +23 -8
  39. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/request.py +10 -0
  40. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/template.env +4 -0
  41. zrb/builtin/generator/fastapp/template/src/kebab-app-name/test/auth/test_group_crud.py +3 -3
  42. zrb/builtin/generator/fastapp/template/src/kebab-app-name/test/auth/test_permission_crud.py +3 -3
  43. zrb/builtin/generator/fastapp/template/src/kebab-app-name/test/auth/test_user_crud.py +3 -3
  44. zrb/builtin/generator/fastapp/template/src/kebab-app-name/test/auth/test_user_login.py +12 -12
  45. zrb/builtin/generator/fastapp_crud/add.py +86 -5
  46. zrb/builtin/generator/fastapp_crud/nodejs/codemod/.gitignore +1 -0
  47. zrb/builtin/generator/fastapp_crud/nodejs/codemod/package-lock.json +317 -0
  48. zrb/builtin/generator/fastapp_crud/nodejs/codemod/package.json +18 -0
  49. zrb/builtin/generator/fastapp_crud/nodejs/codemod/src/addNav.ts +38 -0
  50. zrb/builtin/generator/fastapp_crud/nodejs/codemod/tsconfig.json +109 -0
  51. zrb/builtin/generator/fastapp_crud/template/src/kebab-app-name/test/snake_module_name/test_snake_entity_name.py +3 -3
  52. zrb/builtin/generator/project/template/.gitignore +1 -1
  53. zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore +1 -1
  54. zrb/task/base_task.py +3 -1
  55. zrb-0.0.52.dist-info/METADATA +605 -0
  56. {zrb-0.0.50.dist-info → zrb-0.0.52.dist-info}/RECORD +60 -44
  57. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/Navigation.svelte +0 -24
  58. zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/data/navData.json +0 -5
  59. zrb-0.0.50.dist-info/METADATA +0 -450
  60. /zrb/builtin/generator/{fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/page.js → fastapp_crud/nodejs/codemod/src/fastapp/src/frontend/src/lib/config/navData.ts} +0 -0
  61. {zrb-0.0.50.dist-info → zrb-0.0.52.dist-info}/LICENSE +0 -0
  62. {zrb-0.0.50.dist-info → zrb-0.0.52.dist-info}/WHEEL +0 -0
  63. {zrb-0.0.50.dist-info → zrb-0.0.52.dist-info}/entry_points.txt +0 -0
zrb/action/runner.py CHANGED
@@ -1,7 +1,8 @@
1
- from typing import List, Mapping, Union
1
+ from typing import Any, Callable, List, Mapping, Union
2
2
  from ..action.base_action import BaseAction
3
3
  from ..task.base_task import BaseTask, Group as TaskGroup
4
4
  import click
5
+ import sys
5
6
 
6
7
  CliSubcommand = Union[click.Group, click.Command]
7
8
 
@@ -70,9 +71,10 @@ class Runner(BaseAction):
70
71
  task_description = task.get_description()
71
72
  task_main_loop = task.create_main_loop(
72
73
  env_prefix=self.env_prefix, raise_error=True
73
- )
74
+ )
75
+ callback = self._wrap_task_main_loop(task_main_loop)
74
76
  command = click.Command(
75
- callback=task_main_loop, name=task_cmd_name, help=task_description
77
+ callback=callback, name=task_cmd_name, help=task_description
76
78
  )
77
79
  # by default, add an argument named _args
78
80
  command.params.append(click.Argument(['_args'], nargs=-1))
@@ -87,3 +89,13 @@ class Runner(BaseAction):
87
89
  options = task_input.get_options()
88
90
  command.params.append(click.Option(param_decl, **options))
89
91
  return command
92
+
93
+ def _wrap_task_main_loop(
94
+ self, main_loop: Callable[..., Any]
95
+ ) -> Callable[..., Any]:
96
+ def wrapped_main_loop(*args: Any, **kwargs: Any) -> Any:
97
+ try:
98
+ main_loop(*args, **kwargs)
99
+ except Exception:
100
+ sys.exit(1)
101
+ return wrapped_main_loop
@@ -40,7 +40,7 @@ snake_task_name = DockerComposeTask(
40
40
  ],
41
41
  checkers=[
42
42
  HTTPChecker(
43
- name='check-kebab-app-name',
43
+ name='check-kebab-task-name',
44
44
  port='{{env.HOST_PORT}}'
45
45
  )
46
46
  ]
@@ -67,8 +67,9 @@ copy_resource = ResourceMaker(
67
67
  excludes=[
68
68
  '*/deployment/venv',
69
69
  '*/src/kebab-app-name/venv',
70
- '*/src/kebab-app-name/frontend/node_modules',
71
- '*/src/kebab-app-name/frontend/build',
70
+ '*/src/kebab-app-name/src/frontend/node_modules',
71
+ '*/src/kebab-app-name/src/frontend/build',
72
+ '*/src/kebab-app-name/src/frontend/.svelte-kit',
72
73
  ]
73
74
  )
74
75
 
@@ -1,6 +1,9 @@
1
- from zrb import CmdTask, Env, PathChecker, runner
1
+ from zrb import CmdTask, Env, EnvFile, PathChecker, runner
2
2
  from zrb.builtin._group import project_group
3
- from ._common import APP_FRONTEND_DIR, APP_FRONTEND_BUILD_DIR, CURRENT_DIR
3
+ from ._common import (
4
+ APP_FRONTEND_DIR, APP_FRONTEND_BUILD_DIR, CURRENT_DIR,
5
+ APP_TEMPLATE_ENV_FILE_NAME, local_app_port_env
6
+ )
4
7
  import os
5
8
 
6
9
  ###############################################################################
@@ -20,7 +23,13 @@ build_snake_app_name_frontend = CmdTask(
20
23
  path=APP_FRONTEND_BUILD_DIR
21
24
  )
22
25
  ],
26
+ env_files=[
27
+ EnvFile(
28
+ env_file=APP_TEMPLATE_ENV_FILE_NAME, prefix='ENV_PREFIX'
29
+ ),
30
+ ],
23
31
  envs=[
32
+ local_app_port_env,
24
33
  Env(name='WATCH', os_name='', default='1')
25
34
  ]
26
35
  )
@@ -39,7 +48,13 @@ build_snake_app_name_frontend_once = CmdTask(
39
48
  path=APP_FRONTEND_BUILD_DIR
40
49
  )
41
50
  ],
51
+ env_files=[
52
+ EnvFile(
53
+ env_file=APP_TEMPLATE_ENV_FILE_NAME, prefix='ENV_PREFIX'
54
+ ),
55
+ ],
42
56
  envs=[
57
+ local_app_port_env,
43
58
  Env(name='WATCH', os_name='', default='0')
44
59
  ]
45
60
  )
@@ -1,4 +1,5 @@
1
- .env
1
+ /.env
2
+ frontend/build
2
3
  frontend/build
3
4
  __pycache__
4
5
  venv
@@ -2,7 +2,7 @@
2
2
  FROM node:18-alpine AS frontend-builder
3
3
  WORKDIR /frontend
4
4
  COPY frontend .
5
- RUN npm install && npm run build
5
+ RUN npm install --save-dev && npm run build
6
6
 
7
7
  # Second stage: build the API and copy the frontend build
8
8
  FROM python:3.10-slim
@@ -13,6 +13,9 @@ app_host = os.getenv('APP_HOST', '0.0.0.0')
13
13
  app_port = int(os.getenv('APP_PORT', '8080'))
14
14
  app_reload = str_to_boolean(os.getenv('APP_RELOAD', 'true'))
15
15
  app_max_not_ready = int(os.getenv('APP_MAX_NOT_READY', '10'))
16
+ app_auth_token_cookie_key = os.getenv(
17
+ 'PUBLIC_AUTH_TOKEN_COOKIE_KEY', 'auth_token'
18
+ )
16
19
  app_auth_token_expire_seconds = int(os.getenv(
17
20
  'APP_AUTH_TOKEN_EXPIRE_SECONDS', '300'
18
21
  ))
@@ -77,7 +77,10 @@ class RMQConsumer(Consumer):
77
77
  retry = self.retry
78
78
  while not self._is_stop_triggered:
79
79
  await asyncio.sleep(0.01)
80
- if self.connection is None or self.connection.is_closed:
80
+ if (
81
+ not self._is_stop_triggered and
82
+ (self.connection is None or self.connection.is_closed)
83
+ ):
81
84
  raise Exception('Rabbitmq connection is closed')
82
85
  except (asyncio.CancelledError, GeneratorExit, Exception) as e:
83
86
  if retry > 0:
@@ -3,8 +3,8 @@ node_modules
3
3
  /build
4
4
  /.svelte-kit
5
5
  /package
6
- .env
7
- .env.*
6
+ # .env
7
+ # .env.*
8
8
  !.env.example
9
9
  vite.config.js.timestamp-*
10
10
  vite.config.ts.timestamp-*