zrb 1.0.0b10__tar.gz → 1.1.0__tar.gz

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 (349) hide show
  1. {zrb-1.0.0b10 → zrb-1.1.0}/PKG-INFO +2 -2
  2. {zrb-1.0.0b10 → zrb-1.1.0}/pyproject.toml +2 -2
  3. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +137 -0
  4. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_util.py +301 -0
  5. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_task.py +24 -1
  6. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/add_entity_util.py +61 -1
  7. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/gateway/view/content/my-module/my-entity.html +297 -0
  8. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/gateway_subroute.py +24 -0
  9. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/navigation_config_file.py +8 -0
  10. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_task.py +8 -0
  11. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/add_module_util.py +40 -1
  12. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/gateway/subroute/my_module.py +2 -0
  13. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/navigation_config_file.py +6 -0
  14. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/parser.py +2 -2
  15. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/view.py +1 -1
  16. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/config.py +18 -8
  17. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/config/navigation.py +39 -0
  18. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +107 -0
  19. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/schema/navigation.py +95 -0
  20. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/subroute/auth.py +91 -8
  21. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/auth.py +9 -0
  22. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/util/view.py +33 -8
  23. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/permission.html +311 -0
  24. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +9 -0
  25. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/login.html +67 -0
  26. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/logout.html +49 -0
  27. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/common/util.js +160 -0
  28. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/style.css +14 -0
  29. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/crud/util.js +94 -0
  30. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/pico-style.css +23 -0
  31. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/script.js +44 -0
  32. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/default/style.css +102 -0
  33. zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +89 -0
  34. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/requirements.txt +1 -1
  35. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_homepage.py +2 -4
  36. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/refresh_token_api_route.py +1 -1
  37. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/refresh-token.template.js +9 -0
  38. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/static_route.py +1 -1
  39. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/load.py +13 -7
  40. zrb-1.1.0/src/zrb/util/string/__init__.py +0 -0
  41. zrb-1.1.0/src/zrb/xcom/__init__.py +0 -0
  42. zrb-1.0.0b10/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/column/add_column_task.py +0 -93
  43. zrb-1.0.0b10/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/route.py +0 -66
  44. zrb-1.0.0b10/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/error.html +0 -6
  45. zrb-1.0.0b10/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/template/default.html +0 -34
  46. {zrb-1.0.0b10 → zrb-1.1.0}/README.md +0 -0
  47. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/__init__.py +0 -0
  48. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/__main__.py +0 -0
  49. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/attr/__init__.py +0 -0
  50. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/attr/type.py +0 -0
  51. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/__init__.py +0 -0
  52. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/base64.py +0 -0
  53. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/git.py +0 -0
  54. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/git_subtree.py +0 -0
  55. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/group.py +0 -0
  56. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/llm_chat.py +0 -0
  57. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/previous-session.js +0 -0
  58. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/tool/api.py +0 -0
  59. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/tool/cli.py +0 -0
  60. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/tool/rag.py +0 -0
  61. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/llm/tool/web.py +0 -0
  62. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/md5.py +0 -0
  63. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/__init__.py +0 -0
  64. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_input.py +0 -0
  65. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_task.py +0 -0
  66. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.coveragerc +0 -0
  67. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.flake8 +0 -0
  68. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/.gitignore +0 -0
  69. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/README.md +0 -0
  70. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/__init__.py +0 -0
  71. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/config.py +0 -0
  72. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service.py +0 -0
  73. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/my_entity_service_factory.py +0 -0
  74. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_db_repository.py +0 -0
  75. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository.py +0 -0
  76. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/module/my_module/service/my_entity/repository/my_entity_repository_factory.py +0 -0
  77. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/schema/my_entity.py +0 -0
  78. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_create_my_entity.py +0 -0
  79. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_delete_my_entity.py +0 -0
  80. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_read_my_entity.py +0 -0
  81. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/app_template/test/my_module/my_entity/test_update_my_entity.py +0 -0
  82. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/entity/template/client_method.py +0 -0
  83. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/format_task.py +0 -0
  84. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/group.py +0 -0
  85. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/input.py +0 -0
  86. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/alembic.ini +0 -0
  87. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_api_client.py +0 -0
  88. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client.py +0 -0
  89. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_client_factory.py +0 -0
  90. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/client/my_module_direct_client.py +0 -0
  91. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/README +0 -0
  92. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/env.py +0 -0
  93. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/script.py.mako +0 -0
  94. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration/versions/.gitkeep +0 -0
  95. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/migration_metadata.py +0 -0
  96. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/route.py +0 -0
  97. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/app_template/module/my_module/service/__init__.py +0 -0
  98. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/module/template/module_task_definition.py +0 -0
  99. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task.py +0 -0
  100. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/task_util.py +0 -0
  101. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/util.py +0 -0
  102. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/_zrb/venv_task.py +0 -0
  103. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/__init__.py +0 -0
  104. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/app_factory.py +0 -0
  105. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_db_repository.py +0 -0
  106. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/base_service.py +0 -0
  107. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/db_engine_factory.py +0 -0
  108. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/error.py +0 -0
  109. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/logger_factory.py +0 -0
  110. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/parser_factory.py +0 -0
  111. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/schema.py +0 -0
  112. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/app.py +0 -0
  113. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/common/util/user_agent.py +0 -0
  114. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/main.py +0 -0
  115. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/__init__.py +0 -0
  116. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/alembic.ini +0 -0
  117. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_api_client.py +0 -0
  118. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client.py +0 -0
  119. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_client_factory.py +0 -0
  120. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/client/auth_direct_client.py +0 -0
  121. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/README +0 -0
  122. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/env.py +0 -0
  123. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/script.py.mako +0 -0
  124. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/3093c7336477_add_auth_tables.py +0 -0
  125. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration/versions/8ed025bcc845_create_permissions.py +0 -0
  126. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/migration_metadata.py +0 -0
  127. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/route.py +0 -0
  128. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/__init__.py +0 -0
  129. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/__init__.py +0 -0
  130. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service.py +0 -0
  131. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/permission_service_factory.py +0 -0
  132. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_db_repository.py +0 -0
  133. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository.py +0 -0
  134. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/permission/repository/permission_repository_factory.py +0 -0
  135. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/__init__.py +0 -0
  136. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_db_repository.py +0 -0
  137. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository.py +0 -0
  138. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/repository/role_repository_factory.py +0 -0
  139. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service.py +0 -0
  140. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/role/role_service_factory.py +0 -0
  141. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/__init__.py +0 -0
  142. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_db_repository.py +0 -0
  143. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository.py +0 -0
  144. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/repository/user_repository_factory.py +0 -0
  145. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service.py +0 -0
  146. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/auth/service/user/user_service_factory.py +0 -0
  147. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/alembic.ini +0 -0
  148. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/README +0 -0
  149. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/env.py +0 -0
  150. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/script.py.mako +0 -0
  151. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration/versions/.gitkeep +0 -0
  152. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/migration_metadata.py +0 -0
  153. /zrb-1.0.0b10/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/__init__.py → /zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/role.html +0 -0
  154. /zrb-1.0.0b10/src/zrb/builtin/project/create/__init__.py → /zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/auth/user.html +0 -0
  155. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/content/homepage.html +0 -0
  156. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-192x192.png +0 -0
  157. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/android-chrome-512x512.png +0 -0
  158. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/images/favicon-32x32.png +0 -0
  159. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.amber.min.css +0 -0
  160. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.blue.min.css +0 -0
  161. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.cyan.min.css +0 -0
  162. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.fuchsia.min.css +0 -0
  163. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.green.min.css +0 -0
  164. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.grey.min.css +0 -0
  165. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.indigo.min.css +0 -0
  166. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.jade.min.css +0 -0
  167. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.lime.min.css +0 -0
  168. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.min.css +0 -0
  169. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.orange.min.css +0 -0
  170. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pink.min.css +0 -0
  171. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.pumpkin.min.css +0 -0
  172. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.purple.min.css +0 -0
  173. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.red.min.css +0 -0
  174. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.sand.min.css +0 -0
  175. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.slate.min.css +0 -0
  176. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.violet.min.css +0 -0
  177. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.yellow.min.css +0 -0
  178. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/module/gateway/view/static/pico-css/pico.zinc.min.css +0 -0
  179. {zrb-1.0.0b10/src/zrb/builtin/shell → zrb-1.1.0/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema}/__init__.py +0 -0
  180. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/permission.py +0 -0
  181. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/role.py +0 -0
  182. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/schema/user.py +0 -0
  183. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/template.env +0 -0
  184. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/_util/access_token.py +0 -0
  185. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_create_permission.py +0 -0
  186. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_delete_permission.py +0 -0
  187. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_read_permission.py +0 -0
  188. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/permission/test_update_permission.py +0 -0
  189. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/auth/test_user_session.py +0 -0
  190. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_health_and_readiness.py +0 -0
  191. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test/test_not_found_error.py +0 -0
  192. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_template/my_app_name/test.sh +0 -0
  193. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/add/fastapp/fastapp_util.py +0 -0
  194. {zrb-1.0.0b10/src/zrb/builtin/shell/autocomplete → zrb-1.1.0/src/zrb/builtin/project/create}/__init__.py +0 -0
  195. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/create/project-template/README.md +0 -0
  196. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/create/project-template/zrb_init.py +0 -0
  197. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/project/create/project_task.py +0 -0
  198. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/python.py +0 -0
  199. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/random.py +0 -0
  200. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/asdf/asdf.py +0 -0
  201. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/asdf/asdf_helper.py +0 -0
  202. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/common_input.py +0 -0
  203. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/latex/ubuntu.py +0 -0
  204. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/tmux/tmux.py +0 -0
  205. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/tmux/tmux_config.sh +0 -0
  206. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/tmux/tmux_helper.py +0 -0
  207. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/ubuntu.py +0 -0
  208. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/zsh/zsh.py +0 -0
  209. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/zsh/zsh_config.sh +0 -0
  210. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/setup/zsh/zsh_helper.py +0 -0
  211. {zrb-1.0.0b10/src/zrb/callback → zrb-1.1.0/src/zrb/builtin/shell}/__init__.py +0 -0
  212. {zrb-1.0.0b10/src/zrb/cmd → zrb-1.1.0/src/zrb/builtin/shell/autocomplete}/__init__.py +0 -0
  213. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/shell/autocomplete/bash.py +0 -0
  214. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/shell/autocomplete/subcmd.py +0 -0
  215. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/shell/autocomplete/zsh.py +0 -0
  216. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/builtin/todo.py +0 -0
  217. {zrb-1.0.0b10/src/zrb/content_transformer → zrb-1.1.0/src/zrb/callback}/__init__.py +0 -0
  218. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/callback/any_callback.py +0 -0
  219. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/callback/callback.py +0 -0
  220. {zrb-1.0.0b10/src/zrb/context → zrb-1.1.0/src/zrb/cmd}/__init__.py +0 -0
  221. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/cmd/cmd_result.py +0 -0
  222. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/cmd/cmd_val.py +0 -0
  223. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/config.py +0 -0
  224. {zrb-1.0.0b10/src/zrb/dot_dict → zrb-1.1.0/src/zrb/content_transformer}/__init__.py +0 -0
  225. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/content_transformer/any_content_transformer.py +0 -0
  226. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/content_transformer/content_transformer.py +0 -0
  227. {zrb-1.0.0b10/src/zrb/env → zrb-1.1.0/src/zrb/context}/__init__.py +0 -0
  228. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/context/any_context.py +0 -0
  229. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/context/any_shared_context.py +0 -0
  230. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/context/context.py +0 -0
  231. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/context/shared_context.py +0 -0
  232. {zrb-1.0.0b10/src/zrb/group → zrb-1.1.0/src/zrb/dot_dict}/__init__.py +0 -0
  233. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/dot_dict/dot_dict.py +0 -0
  234. {zrb-1.0.0b10/src/zrb/input → zrb-1.1.0/src/zrb/env}/__init__.py +0 -0
  235. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/env/any_env.py +0 -0
  236. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/env/env.py +0 -0
  237. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/env/env_file.py +0 -0
  238. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/env/env_map.py +0 -0
  239. {zrb-1.0.0b10/src/zrb/runner → zrb-1.1.0/src/zrb/group}/__init__.py +0 -0
  240. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/group/any_group.py +0 -0
  241. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/group/group.py +0 -0
  242. {zrb-1.0.0b10/src/zrb/runner/web_route → zrb-1.1.0/src/zrb/input}/__init__.py +0 -0
  243. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/any_input.py +0 -0
  244. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/base_input.py +0 -0
  245. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/bool_input.py +0 -0
  246. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/float_input.py +0 -0
  247. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/int_input.py +0 -0
  248. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/option_input.py +0 -0
  249. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/password_input.py +0 -0
  250. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/str_input.py +0 -0
  251. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/input/text_input.py +0 -0
  252. {zrb-1.0.0b10/src/zrb/runner/web_route/home_page → zrb-1.1.0/src/zrb/runner}/__init__.py +0 -0
  253. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/cli.py +0 -0
  254. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/common_util.py +0 -0
  255. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_app.py +0 -0
  256. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_config/config.py +0 -0
  257. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_config/config_factory.py +0 -0
  258. {zrb-1.0.0b10/src/zrb/session → zrb-1.1.0/src/zrb/runner/web_route}/__init__.py +0 -0
  259. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/docs_route.py +0 -0
  260. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/error_page/serve_default_404.py +0 -0
  261. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/error_page/show_error_page.py +0 -0
  262. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/error_page/view.html +0 -0
  263. {zrb-1.0.0b10/src/zrb/session_state_log → zrb-1.1.0/src/zrb/runner/web_route/home_page}/__init__.py +0 -0
  264. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/home_page/home_page_route.py +0 -0
  265. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/home_page/view.html +0 -0
  266. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/login_api_route.py +0 -0
  267. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/login_page/login_page_route.py +0 -0
  268. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/login_page/view.html +0 -0
  269. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/logout_api_route.py +0 -0
  270. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/logout_page/logout_page_route.py +0 -0
  271. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/logout_page/view.html +0 -0
  272. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/group/show_group_page.py +0 -0
  273. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/group/view.html +0 -0
  274. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/node_page_route.py +0 -0
  275. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/task/partial/input.html +0 -0
  276. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/task/show_task_page.py +0 -0
  277. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/node_page/task/view.html +0 -0
  278. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/common.css +0 -0
  279. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/favicon-32x32.png +0 -0
  280. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/login/event.js +0 -0
  281. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/logout/event.js +0 -0
  282. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/pico.min.css +0 -0
  283. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/session/common-util.js +0 -0
  284. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/session/current-session.js +0 -0
  285. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/session/event.js +0 -0
  286. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/static/resources/session/past-session.js +0 -0
  287. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/task_input_api_route.py +0 -0
  288. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_route/task_session_api_route.py +0 -0
  289. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_schema/session.py +0 -0
  290. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_schema/token.py +0 -0
  291. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_schema/user.py +0 -0
  292. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_util/cookie.py +0 -0
  293. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_util/html.py +0 -0
  294. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_util/token.py +0 -0
  295. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/runner/web_util/user.py +0 -0
  296. {zrb-1.0.0b10/src/zrb/session_state_logger → zrb-1.1.0/src/zrb/session}/__init__.py +0 -0
  297. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session/any_session.py +0 -0
  298. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session/session.py +0 -0
  299. {zrb-1.0.0b10/src/zrb/task → zrb-1.1.0/src/zrb/session_state_log}/__init__.py +0 -0
  300. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session_state_log/session_state_log.py +0 -0
  301. {zrb-1.0.0b10/src/zrb/task_status → zrb-1.1.0/src/zrb/session_state_logger}/__init__.py +0 -0
  302. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session_state_logger/any_session_state_logger.py +0 -0
  303. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session_state_logger/file_session_state_logger.py +0 -0
  304. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/session_state_logger/session_state_logger_factory.py +0 -0
  305. {zrb-1.0.0b10/src/zrb/util → zrb-1.1.0/src/zrb/task}/__init__.py +0 -0
  306. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/any_task.py +0 -0
  307. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/base_task.py +0 -0
  308. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/base_trigger.py +0 -0
  309. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/cmd_task.py +0 -0
  310. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/http_check.py +0 -0
  311. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/llm_task.py +0 -0
  312. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/make_task.py +0 -0
  313. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/rsync_task.py +0 -0
  314. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/scaffolder.py +0 -0
  315. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/scheduler.py +0 -0
  316. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/task.py +0 -0
  317. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task/tcp_check.py +0 -0
  318. {zrb-1.0.0b10/src/zrb/util/cli → zrb-1.1.0/src/zrb/task_status}/__init__.py +0 -0
  319. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/task_status/task_status.py +0 -0
  320. {zrb-1.0.0b10/src/zrb/util/cmd → zrb-1.1.0/src/zrb/util}/__init__.py +0 -0
  321. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/attr.py +0 -0
  322. {zrb-1.0.0b10/src/zrb/util/codemod → zrb-1.1.0/src/zrb/util/cli}/__init__.py +0 -0
  323. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/cli/style.py +0 -0
  324. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/cli/subcommand.py +0 -0
  325. {zrb-1.0.0b10/src/zrb/util/string → zrb-1.1.0/src/zrb/util/cmd}/__init__.py +0 -0
  326. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/cmd/command.py +0 -0
  327. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/cmd/remote.py +0 -0
  328. {zrb-1.0.0b10/src/zrb/xcom → zrb-1.1.0/src/zrb/util/codemod}/__init__.py +0 -0
  329. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modification_mode.py +0 -0
  330. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_class.py +0 -0
  331. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_class_parent.py +0 -0
  332. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_class_property.py +0 -0
  333. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_dict.py +0 -0
  334. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_function.py +0 -0
  335. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_function_call.py +0 -0
  336. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_method.py +0 -0
  337. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/codemod/modify_module.py +0 -0
  338. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/cron.py +0 -0
  339. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/file.py +0 -0
  340. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/git.py +0 -0
  341. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/git_subtree.py +0 -0
  342. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/group.py +0 -0
  343. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/llm/tool.py +0 -0
  344. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/run.py +0 -0
  345. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/string/conversion.py +0 -0
  346. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/string/format.py +0 -0
  347. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/string/name.py +0 -0
  348. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/util/todo.py +0 -0
  349. {zrb-1.0.0b10 → zrb-1.1.0}/src/zrb/xcom/xcom.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 1.0.0b10
3
+ Version: 1.1.0
4
4
  Summary: Your Automation Powerhouse
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
@@ -26,7 +26,7 @@ Requires-Dist: pdfplumber (>=0.11.4,<0.12.0) ; extra == "rag"
26
26
  Requires-Dist: psutil (>=6.1.1,<7.0.0)
27
27
  Requires-Dist: pydantic-ai (>=0.0.19,<0.0.20)
28
28
  Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
29
- Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0)
29
+ Requires-Dist: python-jose[cryptography] (>=3.4.0,<4.0.0)
30
30
  Requires-Dist: requests (>=2.32.3,<3.0.0)
31
31
  Requires-Dist: ulid-py (>=1.1.0,<2.0.0)
32
32
  Project-URL: Documentation, https://github.com/state-alchemists/zrb
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "zrb"
3
- version = "1.0.0b10"
3
+ version = "1.1.0"
4
4
  description = "Your Automation Powerhouse"
5
5
  authors = ["Go Frendi Gunawan <gofrendiasgard@gmail.com>"]
6
6
  license = "AGPL-3.0-or-later"
@@ -48,7 +48,7 @@ chromadb = {version = "^0.5.20", optional = true}
48
48
  pdfplumber = {version = "^0.11.4", optional = true}
49
49
  beautifulsoup4 = "^4.12.3"
50
50
  fastapi = {extras = ["standard"], version = "^0.115.6"}
51
- python-jose = {extras = ["cryptography"], version = "^3.3.0"}
51
+ python-jose = {extras = ["cryptography"], version = "^3.4.0"}
52
52
  ulid-py = "^1.1.0"
53
53
  pydantic-ai = "^0.0.19"
54
54
  fastembed = "^0.5.1"
@@ -0,0 +1,137 @@
1
+ import os
2
+
3
+ from my_app_name._zrb.column.add_column_util import (
4
+ update_fastapp_schema,
5
+ update_fastapp_test_create,
6
+ update_fastapp_test_delete,
7
+ update_fastapp_test_read,
8
+ update_fastapp_test_update,
9
+ update_fastapp_ui,
10
+ )
11
+ from my_app_name._zrb.config import APP_DIR
12
+ from my_app_name._zrb.format_task import format_my_app_name_code
13
+ from my_app_name._zrb.group import app_create_group
14
+ from my_app_name._zrb.input import (
15
+ existing_entity_input,
16
+ existing_module_input,
17
+ new_column_input,
18
+ new_column_type_input,
19
+ )
20
+ from my_app_name._zrb.util import get_existing_module_names, get_existing_schema_names
21
+
22
+ from zrb import AnyContext, Task, make_task
23
+
24
+
25
+ @make_task(
26
+ name="validate-add-fastapp-column",
27
+ input=[
28
+ existing_module_input,
29
+ existing_entity_input,
30
+ ],
31
+ retries=0,
32
+ )
33
+ async def validate_add_fastapp_column(ctx: AnyContext):
34
+ module_name = ctx.input.module
35
+ if module_name not in get_existing_module_names():
36
+ raise ValueError(f"Module not exist: {module_name}")
37
+ schema_name = ctx.input.entity
38
+ if schema_name not in get_existing_schema_names():
39
+ raise ValueError(f"Schema not exist: {schema_name}")
40
+
41
+
42
+ update_fastapp_schema_task = Task(
43
+ name="update-fastapp-schema",
44
+ input=[
45
+ existing_module_input,
46
+ existing_entity_input,
47
+ new_column_input,
48
+ new_column_type_input,
49
+ ],
50
+ action=update_fastapp_schema,
51
+ retries=0,
52
+ upstream=validate_add_fastapp_column,
53
+ )
54
+
55
+ update_fastapp_ui_task = Task(
56
+ name="update-fastapp-ui",
57
+ input=[
58
+ existing_module_input,
59
+ existing_entity_input,
60
+ new_column_input,
61
+ new_column_type_input,
62
+ ],
63
+ action=update_fastapp_ui,
64
+ retries=0,
65
+ upstream=validate_add_fastapp_column,
66
+ )
67
+
68
+ update_fastapp_test_create_task = Task(
69
+ name="update-fastapp-test-create",
70
+ input=[
71
+ existing_module_input,
72
+ existing_entity_input,
73
+ new_column_input,
74
+ new_column_type_input,
75
+ ],
76
+ action=update_fastapp_test_create,
77
+ retries=0,
78
+ upstream=validate_add_fastapp_column,
79
+ )
80
+
81
+ update_fastapp_test_read_task = Task(
82
+ name="update-fastapp-test-read",
83
+ input=[
84
+ existing_module_input,
85
+ existing_entity_input,
86
+ new_column_input,
87
+ new_column_type_input,
88
+ ],
89
+ action=update_fastapp_test_read,
90
+ retries=0,
91
+ upstream=validate_add_fastapp_column,
92
+ )
93
+
94
+ update_fastapp_test_update_task = Task(
95
+ name="update-fastapp-test-update",
96
+ input=[
97
+ existing_module_input,
98
+ existing_entity_input,
99
+ new_column_input,
100
+ new_column_type_input,
101
+ ],
102
+ action=update_fastapp_test_update,
103
+ retries=0,
104
+ upstream=validate_add_fastapp_column,
105
+ )
106
+
107
+ update_fastapp_test_delete_task = Task(
108
+ name="update-fastapp-test-delete",
109
+ input=[
110
+ existing_module_input,
111
+ existing_entity_input,
112
+ new_column_input,
113
+ new_column_type_input,
114
+ ],
115
+ action=update_fastapp_test_delete,
116
+ retries=0,
117
+ upstream=validate_add_fastapp_column,
118
+ )
119
+
120
+
121
+ add_fastapp_column = app_create_group.add_task(
122
+ Task(
123
+ name="add-fastapp-column",
124
+ description="📊 Create new column on an entity",
125
+ upstream=[
126
+ update_fastapp_schema_task,
127
+ update_fastapp_ui_task,
128
+ update_fastapp_test_create_task,
129
+ update_fastapp_test_read_task,
130
+ update_fastapp_test_update_task,
131
+ update_fastapp_test_delete_task,
132
+ ],
133
+ successor=format_my_app_name_code,
134
+ retries=0,
135
+ ),
136
+ alias="column",
137
+ )
@@ -0,0 +1,301 @@
1
+ import os
2
+ import re
3
+ import textwrap
4
+
5
+ from bs4 import BeautifulSoup, formatter
6
+ from my_app_name._zrb.config import APP_DIR
7
+
8
+ from zrb.context.any_context import AnyContext
9
+ from zrb.util.codemod.modify_class import append_code_to_class
10
+ from zrb.util.codemod.modify_class_parent import prepend_parent_class
11
+ from zrb.util.codemod.modify_class_property import append_property_to_class
12
+ from zrb.util.codemod.modify_function import append_code_to_function
13
+ from zrb.util.codemod.modify_module import prepend_code_to_module
14
+ from zrb.util.file import read_file, write_file
15
+ from zrb.util.string.conversion import (
16
+ to_human_case,
17
+ to_kebab_case,
18
+ to_pascal_case,
19
+ to_snake_case,
20
+ )
21
+
22
+
23
+ def update_fastapp_schema(ctx: AnyContext):
24
+ snake_entity_name = to_snake_case(ctx.input.entity)
25
+ pascal_entity_name = to_pascal_case(ctx.input.entity)
26
+ snake_column_name = to_snake_case(ctx.input.column)
27
+ column_type = ctx.input.type
28
+ schema_file_path = os.path.join(APP_DIR, "schema", f"{snake_entity_name}.py")
29
+ existing_code = read_file(schema_file_path)
30
+ # Base
31
+ new_code = append_property_to_class(
32
+ original_code=existing_code,
33
+ class_name=f"{pascal_entity_name}Base",
34
+ property_name=snake_column_name,
35
+ annotation=column_type,
36
+ default_value=_get_default_column_value(column_type),
37
+ )
38
+ # Update
39
+ new_code = append_property_to_class(
40
+ original_code=new_code,
41
+ class_name=f"{pascal_entity_name}Update",
42
+ property_name=snake_column_name,
43
+ annotation=f"{column_type} | None",
44
+ default_value="None",
45
+ )
46
+ # Table
47
+ new_code = append_property_to_class(
48
+ original_code=new_code,
49
+ class_name=f"{pascal_entity_name}",
50
+ property_name=snake_column_name,
51
+ annotation=f"{column_type} | None",
52
+ default_value="Field(index=False)",
53
+ )
54
+ write_file(schema_file_path, new_code)
55
+
56
+
57
+ def _get_default_column_value(data_type: str) -> str:
58
+ if data_type == "str":
59
+ return '""'
60
+ if data_type in ("int", "float"):
61
+ return "0"
62
+ if data_type == "bool":
63
+ return "True"
64
+ return "None"
65
+
66
+
67
+ def update_fastapp_ui(ctx: AnyContext):
68
+ kebab_module_name = to_kebab_case(ctx.input.module)
69
+ kebab_entity_name = to_kebab_case(ctx.input.entity)
70
+ snake_column_name = to_snake_case(ctx.input.column)
71
+ human_column_name = to_human_case(ctx.input.column).title()
72
+ subroute_file_path = os.path.join(
73
+ APP_DIR,
74
+ "module",
75
+ "gateway",
76
+ "view",
77
+ "content",
78
+ kebab_module_name,
79
+ f"{kebab_entity_name}.html",
80
+ )
81
+ existing_code = read_file(subroute_file_path)
82
+ # Add table header
83
+ new_code = _add_th_before_last(
84
+ existing_code, table_id="crud-table", th_content=human_column_name
85
+ )
86
+ # Forms
87
+ new_code = _add_input_to_form(
88
+ new_code,
89
+ form_id="crud-create-form",
90
+ column_label=human_column_name,
91
+ column_name=snake_column_name,
92
+ )
93
+ new_code = _add_input_to_form(
94
+ new_code,
95
+ form_id="crud-update-form",
96
+ column_label=human_column_name,
97
+ column_name=snake_column_name,
98
+ )
99
+ new_code = _add_input_to_form(
100
+ new_code,
101
+ form_id="crud-delete-form",
102
+ column_label=human_column_name,
103
+ column_name=snake_column_name,
104
+ )
105
+ # JS Function
106
+ new_code = _alter_js_function_returned_array(
107
+ new_code,
108
+ js_function_name="getRowComponents",
109
+ js_array_name="rowComponents",
110
+ js_new_value=f"`<td>${{row.{snake_column_name}}}</td>`",
111
+ )
112
+ write_file(subroute_file_path, new_code)
113
+
114
+
115
+ def _add_th_before_last(html_str, table_id, th_content):
116
+ # Use the html.parser; you might try html5lib if you find that it preserves formatting better.
117
+ soup = BeautifulSoup(html_str, "html.parser")
118
+ # Locate the table with the specified id
119
+ table = soup.find("table", id=table_id)
120
+ if not table:
121
+ # Table not found; return original HTML unchanged.
122
+ return html_str
123
+ # Find the thead element in the table.
124
+ thead = table.find("thead")
125
+ if not thead:
126
+ return html_str
127
+ # For this example, we assume there's a single row (<tr>) in the thead.
128
+ row = thead.find("tr")
129
+ if not row:
130
+ return html_str
131
+ # Find all existing th elements in the row.
132
+ th_elements = row.find_all("th")
133
+ if not th_elements:
134
+ return html_str
135
+ # Create a new th element and set its content.
136
+ new_th = soup.new_tag("th")
137
+ new_th.string = th_content
138
+ # Insert the new th right before the last existing th.
139
+ th_elements[-1].insert_before(new_th)
140
+ # Return the modified HTML as a string.
141
+ return soup.prettify(
142
+ formatter=formatter.HTMLFormatter(indent=_infer_html_indent_width(html_str))
143
+ )
144
+
145
+
146
+ def _add_input_to_form(
147
+ html_str: str, form_id: str, column_label: str, column_name: str
148
+ ) -> str:
149
+ soup = BeautifulSoup(html_str, "html.parser")
150
+ # Find the form by id.
151
+ form = soup.find("form", id=form_id)
152
+ if not form:
153
+ return html_str # Return unchanged if no matching form is found.
154
+ # Create a new label element with the provided column label.
155
+ new_label = soup.new_tag("label")
156
+ new_label.append(f"{column_label}: ")
157
+ # Create a new input element with the provided column name.
158
+ new_input = soup.new_tag(
159
+ "input", attrs={"type": "text", "name": column_name, "required": "required"}
160
+ )
161
+ new_label.append(new_input)
162
+ # Look for a footer element inside the form.
163
+ footer = form.find("footer")
164
+ if footer:
165
+ # Insert the new label before the footer.
166
+ footer.insert_before(new_label)
167
+ else:
168
+ # If no footer exists, simply append the new label to the form.
169
+ form.append(new_label)
170
+ return soup.prettify(
171
+ formatter=formatter.HTMLFormatter(indent=_infer_html_indent_width(html_str))
172
+ )
173
+
174
+
175
+ def _infer_html_indent_width(html_str: str) -> int:
176
+ """
177
+ Infer the indentation width (number of spaces) from the HTML string.
178
+ It looks for the first non-empty line that starts with whitespace
179
+ followed by '<' and returns the number of leading spaces.
180
+ If none is found, defaults to 2.
181
+ """
182
+ for line in textwrap.dedent(html_str).splitlines():
183
+ stripped = line.lstrip()
184
+ if stripped.startswith("<") and line != stripped:
185
+ return len(line) - len(stripped)
186
+ return 2
187
+
188
+
189
+ def _alter_js_function_returned_array(
190
+ html_str: str, js_function_name: str, js_array_name: str, js_new_value: str
191
+ ) -> str:
192
+ """
193
+ Inserts a new push into the specified JavaScript function.
194
+
195
+ It finds the function definition with the given js_function_name,
196
+ then looks for the first return statement inside the function body,
197
+ and inserts a new line that pushes js_new_value into js_arr_name.
198
+
199
+ Parameters:
200
+ html_str (str): The HTML containing the JavaScript.
201
+ js_function_name (str): The name of the JavaScript function to modify.
202
+ js_arr_name (str): The name of the array inside that function.
203
+ js_new_value (str): The new value to push. (Pass the JS literal as a string,
204
+ e.g. "`<td>NEW</td>`" or '"<td>NEW</td>"'.)
205
+
206
+ Returns:
207
+ str: The modified HTML.
208
+ """
209
+ # This pattern finds:
210
+ # 1. The function signature and opening brace.
211
+ # 2. All content (non-greedily) until we hit a newline containing a return statement.
212
+ # 3. Captures the newline and leading whitespace (indent) of the return statement.
213
+ # 4. Captures the rest of the return line.
214
+ pattern = (
215
+ r"(function\s+"
216
+ + re.escape(js_function_name)
217
+ + r"\s*\([^)]*\)\s*\{)" # group1: function header
218
+ r"([\s\S]*?)" # group2: code before return
219
+ r"(\n(\s*)return\s+[^;]+;)" # group3: newline+return line, group4: indent
220
+ )
221
+
222
+ def replacer(match):
223
+ header = match.group(1)
224
+ before_return = match.group(2)
225
+ return_line = match.group(3)
226
+ indent = match.group(4)
227
+ # Create the new push statement. We add a newline plus the same indent.
228
+ # The resulting line will be, e.g.,
229
+ # " rowComponents.push(`<td>NEW</td>`);"
230
+ injection = f"\n{indent}{js_array_name}.push({js_new_value});"
231
+ return header + before_return + injection + return_line
232
+
233
+ # Use re.sub to replace only the first occurrence of the function
234
+ new_html, count = re.subn(
235
+ pattern, replacer, html_str, count=1, flags=re.MULTILINE | re.DOTALL
236
+ )
237
+ return new_html
238
+
239
+
240
+ def update_fastapp_test_create(ctx: AnyContext):
241
+ snake_module_name = to_snake_case(ctx.input.module)
242
+ snake_entity_name = to_snake_case(ctx.input.entity)
243
+ test_file_path = os.path.join(
244
+ APP_DIR,
245
+ "test",
246
+ snake_module_name,
247
+ snake_entity_name,
248
+ f"test_create_{snake_entity_name}.py",
249
+ )
250
+ existing_code = read_file(test_file_path)
251
+ new_code = existing_code
252
+ # TODO: update test
253
+ write_file(test_file_path, new_code)
254
+
255
+
256
+ def update_fastapp_test_read(ctx: AnyContext):
257
+ snake_module_name = to_snake_case(ctx.input.module)
258
+ snake_entity_name = to_snake_case(ctx.input.entity)
259
+ test_file_path = os.path.join(
260
+ APP_DIR,
261
+ "test",
262
+ snake_module_name,
263
+ snake_entity_name,
264
+ f"test_read_{snake_entity_name}.py",
265
+ )
266
+ existing_code = read_file(test_file_path)
267
+ new_code = existing_code
268
+ # TODO: update test
269
+ write_file(test_file_path, new_code)
270
+
271
+
272
+ def update_fastapp_test_update(ctx: AnyContext):
273
+ snake_module_name = to_snake_case(ctx.input.module)
274
+ snake_entity_name = to_snake_case(ctx.input.entity)
275
+ test_file_path = os.path.join(
276
+ APP_DIR,
277
+ "test",
278
+ snake_module_name,
279
+ snake_entity_name,
280
+ f"test_update_{snake_entity_name}.py",
281
+ )
282
+ existing_code = read_file(test_file_path)
283
+ new_code = existing_code
284
+ # TODO: update test
285
+ write_file(test_file_path, new_code)
286
+
287
+
288
+ def update_fastapp_test_delete(ctx: AnyContext):
289
+ snake_module_name = to_snake_case(ctx.input.module)
290
+ snake_entity_name = to_snake_case(ctx.input.entity)
291
+ test_file_path = os.path.join(
292
+ APP_DIR,
293
+ "test",
294
+ snake_module_name,
295
+ snake_entity_name,
296
+ f"test_delete_{snake_entity_name}.py",
297
+ )
298
+ existing_code = read_file(test_file_path)
299
+ new_code = existing_code
300
+ # TODO: update test
301
+ write_file(test_file_path, new_code)
@@ -7,6 +7,7 @@ from my_app_name._zrb.entity.add_entity_util import (
7
7
  get_existing_auth_migration_file_names,
8
8
  get_existing_auth_migration_xcom_key,
9
9
  get_remove_permission_migration_script,
10
+ is_gateway_navigation_config_file,
10
11
  is_in_app_schema_dir,
11
12
  is_in_module_entity_dir,
12
13
  is_in_module_entity_test_dir,
@@ -14,11 +15,13 @@ from my_app_name._zrb.entity.add_entity_util import (
14
15
  is_module_client_file,
15
16
  is_module_direct_client_file,
16
17
  is_module_gateway_subroute_file,
18
+ is_module_gateway_subroute_view_file,
17
19
  is_module_migration_metadata_file,
18
20
  is_module_route_file,
19
21
  update_api_client_file,
20
22
  update_client_file,
21
23
  update_direct_client_file,
24
+ update_gateway_navigation_config_file,
22
25
  update_gateway_subroute_file,
23
26
  update_migration_metadata_file,
24
27
  update_route_file,
@@ -88,7 +91,9 @@ scaffold_my_app_name_entity = Scaffolder(
88
91
  destination_path=APP_DIR,
89
92
  transform_path={
90
93
  "my_module": "{to_snake_case(ctx.input.module)}",
94
+ "my-module": "{to_kebab_case(ctx.input.module)}",
91
95
  "my_entity": "{to_snake_case(ctx.input.entity)}",
96
+ "my-entity": "{to_kebab_case(ctx.input.entity)}",
92
97
  },
93
98
  transform_content=[
94
99
  # Schema tranformation (my_app_name/schema/snake_entity_name)
@@ -167,6 +172,24 @@ scaffold_my_app_name_entity = Scaffolder(
167
172
  match=is_module_gateway_subroute_file,
168
173
  transform=update_gateway_subroute_file,
169
174
  ),
175
+ # Update module gateway subroute view
176
+ # (my_app_name/module/gateway/view/content/kebab-module-name/kebab-entity-name.py)
177
+ ContentTransformer(
178
+ name="transform-module-gateway-subroute-view",
179
+ match=is_module_gateway_subroute_view_file,
180
+ transform={
181
+ "My Entity": "{to_human_case(ctx.input.entity).title()}",
182
+ "my-entities": "{to_kebab_case(ctx.input.plural)}",
183
+ "My Column": "{to_human_case(ctx.input.column).title()}",
184
+ "my_column": "{to_snake_case(ctx.input.column)}",
185
+ },
186
+ ),
187
+ # Register entity's page to my_app_name/gateway/config/navigation.py
188
+ ContentTransformer(
189
+ name="transform-gateway-navigation-config",
190
+ match=is_gateway_navigation_config_file,
191
+ transform=update_gateway_navigation_config_file,
192
+ ),
170
193
  ],
171
194
  retries=0,
172
195
  upstream=validate_add_my_app_name_entity,
@@ -283,7 +306,7 @@ def update_my_app_name_entity_permission(ctx: AnyContext):
283
306
  add_my_app_name_entity = app_create_group.add_task(
284
307
  Task(
285
308
  name="add-my-app-name-entity",
286
- description="🏗️ Create new entity on a module",
309
+ description="📦 Create new entity on a module",
287
310
  upstream=[
288
311
  create_my_app_name_entity_migration,
289
312
  update_my_app_name_entity_permission,
@@ -8,7 +8,18 @@ from zrb.util.codemod.modify_class_parent import prepend_parent_class
8
8
  from zrb.util.codemod.modify_function import append_code_to_function
9
9
  from zrb.util.codemod.modify_module import prepend_code_to_module
10
10
  from zrb.util.file import read_file, write_file
11
- from zrb.util.string.conversion import to_kebab_case, to_pascal_case, to_snake_case
11
+ from zrb.util.string.conversion import (
12
+ to_human_case,
13
+ to_kebab_case,
14
+ to_pascal_case,
15
+ to_snake_case,
16
+ )
17
+
18
+
19
+ def is_gateway_navigation_config_file(ctx: AnyContext, file_path: str) -> bool:
20
+ return file_path == os.path.join(
21
+ APP_DIR, "module", "gateway", "config", "navigation.py"
22
+ )
12
23
 
13
24
 
14
25
  def get_add_permission_migration_script(ctx: AnyContext) -> str:
@@ -156,6 +167,19 @@ def is_module_gateway_subroute_file(ctx: AnyContext, file_path: str) -> bool:
156
167
  return file_path == module_gateway_subroute_file
157
168
 
158
169
 
170
+ def is_module_gateway_subroute_view_file(ctx: AnyContext, file_path: str) -> bool:
171
+ module_gateway_subroute_file = os.path.join(
172
+ APP_DIR,
173
+ "module",
174
+ "gateway",
175
+ "view",
176
+ "content",
177
+ f"{to_kebab_case(ctx.input.module)}",
178
+ f"{to_kebab_case(ctx.input.entity)}.html",
179
+ )
180
+ return file_path == module_gateway_subroute_file
181
+
182
+
159
183
  def update_migration_metadata_file(ctx: AnyContext, migration_metadata_file_path: str):
160
184
  app_name = os.path.basename(APP_DIR)
161
185
  existing_migration_metadata_code = read_file(migration_metadata_file_path)
@@ -318,7 +342,9 @@ def update_route_file(ctx: AnyContext, route_file_path: str):
318
342
 
319
343
  def update_gateway_subroute_file(ctx: AnyContext, module_gateway_subroute_path: str):
320
344
  snake_module_name = to_snake_case(ctx.input.module)
345
+ kebab_module_name = to_kebab_case(ctx.input.module)
321
346
  snake_entity_name = to_snake_case(ctx.input.entity)
347
+ kebab_entity_name = to_kebab_case(ctx.input.entity)
322
348
  snake_plural_entity_name = to_snake_case(ctx.input.plural)
323
349
  kebab_plural_entity_name = to_kebab_case(ctx.input.plural)
324
350
  pascal_entity_name = to_pascal_case(ctx.input.entity)
@@ -341,7 +367,9 @@ def update_gateway_subroute_file(ctx: AnyContext, module_gateway_subroute_path:
341
367
  ),
342
368
  replace_map={
343
369
  "my_module": snake_module_name,
370
+ "my-module": kebab_module_name,
344
371
  "my_entity": snake_entity_name,
372
+ "my-entity": kebab_entity_name,
345
373
  "my_entities": snake_plural_entity_name,
346
374
  "my-entities": kebab_plural_entity_name,
347
375
  "MyEntity": pascal_entity_name,
@@ -382,3 +410,35 @@ def _get_import_schema_for_gateway_subroute_code(
382
410
  if new_code in existing_code:
383
411
  return None
384
412
  return new_code
413
+
414
+
415
+ def update_gateway_navigation_config_file(
416
+ ctx: AnyContext, gateway_navigation_config_file_path: str
417
+ ):
418
+ existing_gateway_navigation_config_code = read_file(
419
+ gateway_navigation_config_file_path
420
+ )
421
+ snake_module_name = to_snake_case(ctx.input.module)
422
+ kebab_module_name = to_kebab_case(ctx.input.module)
423
+ kebab_entity_name = to_kebab_case(ctx.input.entity)
424
+ human_entity_name = to_human_case(ctx.input.entity)
425
+ kebab_plural_name = to_kebab_case(ctx.input.plural)
426
+ new_navigation_config_code = read_file(
427
+ file_path=os.path.join(
428
+ os.path.dirname(__file__), "template", "navigation_config_file.py"
429
+ ),
430
+ replace_map={
431
+ "my_module": snake_module_name,
432
+ "my-module": kebab_module_name,
433
+ "my-entity": kebab_entity_name,
434
+ "My Entity": human_entity_name.title(),
435
+ "my-entities": kebab_plural_name,
436
+ },
437
+ ).strip()
438
+ write_file(
439
+ file_path=gateway_navigation_config_file_path,
440
+ content=[
441
+ existing_gateway_navigation_config_code,
442
+ new_navigation_config_code,
443
+ ],
444
+ )