jamlib 2.6.0b0.dev1__tar.gz → 2.6.0b0.dev2__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 (98) hide show
  1. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/PKG-INFO +1 -1
  2. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/pyproject.toml +1 -1
  3. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/__init__.py +1 -1
  4. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/instance.py +29 -1
  5. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/utils.py +10 -4
  6. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jamlib.egg-info/PKG-INFO +1 -1
  7. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/LICENSE.md +0 -0
  8. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/README.md +0 -0
  9. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/setup.cfg +0 -0
  10. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/__abc_encoder__.py +0 -0
  11. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/__abc_instances__.py +0 -0
  12. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/__deprecated__.py +0 -0
  13. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/__logger__.py +0 -0
  14. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/__init__.py +0 -0
  15. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/instance.py +0 -0
  16. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/jwt/__init__.py +0 -0
  17. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/jwt/lists/__init__.py +0 -0
  18. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/jwt/lists/json.py +0 -0
  19. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/jwt/lists/redis.py +0 -0
  20. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/jwt/tools.py +0 -0
  21. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/modules.py +0 -0
  22. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/__init__.py +0 -0
  23. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/builtin/__init__.py +0 -0
  24. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/builtin/github.py +0 -0
  25. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/builtin/gitlab.py +0 -0
  26. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/builtin/google.py +0 -0
  27. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/builtin/yandex.py +0 -0
  28. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/oauth2/client.py +0 -0
  29. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/sessions/__init__.py +0 -0
  30. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/sessions/json.py +0 -0
  31. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/aio/sessions/redis.py +0 -0
  32. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/encoders.py +0 -0
  33. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/exceptions/__init__.py +0 -0
  34. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/exceptions/jwt.py +0 -0
  35. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/exceptions/oauth2.py +0 -0
  36. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/exceptions/sessions.py +0 -0
  37. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/__init__.py +0 -0
  38. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/fastapi/__init__.py +0 -0
  39. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/flask/__init__.py +0 -0
  40. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/flask/extensions.py +0 -0
  41. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/litestar/__init__.py +0 -0
  42. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/litestar/middlewares.py +0 -0
  43. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/litestar/plugins.py +0 -0
  44. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/litestar/value.py +0 -0
  45. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/starlette/__init__.py +0 -0
  46. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/starlette/auth_backends.py +0 -0
  47. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/ext/starlette/value.py +0 -0
  48. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/__init__.py +0 -0
  49. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/__utils__.py +0 -0
  50. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/lists/__abc_list_repo__.py +0 -0
  51. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/lists/__init__.py +0 -0
  52. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/lists/json.py +0 -0
  53. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/lists/redis.py +0 -0
  54. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/tools.py +0 -0
  55. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/jwt/types.py +0 -0
  56. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/modules.py +0 -0
  57. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/__abc_oauth2_repo__.py +0 -0
  58. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/__init__.py +0 -0
  59. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/builtin/__init__.py +0 -0
  60. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/builtin/github.py +0 -0
  61. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/builtin/gitlab.py +0 -0
  62. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/builtin/google.py +0 -0
  63. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/builtin/yandex.py +0 -0
  64. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/oauth2/client.py +0 -0
  65. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/otp/__abc_module__.py +0 -0
  66. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/otp/__init__.py +0 -0
  67. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/otp/hotp.py +0 -0
  68. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/otp/totp.py +0 -0
  69. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/__abc_paseto_repo__.py +0 -0
  70. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/__init__.py +0 -0
  71. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/v1.py +0 -0
  72. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/v2.py +0 -0
  73. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/v3.py +0 -0
  74. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/paseto/v4.py +0 -0
  75. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/quick/__init__.py +0 -0
  76. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/quick/jwt.py +0 -0
  77. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/sessions/__abc_session_repo__.py +0 -0
  78. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/sessions/__init__.py +0 -0
  79. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/sessions/json.py +0 -0
  80. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/sessions/redis.py +0 -0
  81. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/tests/__init__.py +0 -0
  82. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/tests/clients.py +0 -0
  83. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/tests/fakers.py +0 -0
  84. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/__init__.py +0 -0
  85. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/aes.py +0 -0
  86. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/await_maybe.py +0 -0
  87. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/config_maker.py +0 -0
  88. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/ed.py +0 -0
  89. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/otp_keys.py +0 -0
  90. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/rsa.py +0 -0
  91. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/salt_hash.py +0 -0
  92. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/symmetric.py +0 -0
  93. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/xchacha20poly1305.py +0 -0
  94. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jam/utils/xor.py +0 -0
  95. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jamlib.egg-info/SOURCES.txt +0 -0
  96. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jamlib.egg-info/dependency_links.txt +0 -0
  97. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jamlib.egg-info/requires.txt +0 -0
  98. {jamlib-2.6.0b0.dev1 → jamlib-2.6.0b0.dev2}/src/jamlib.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 2.6.0b0.dev1
3
+ Version: 2.6.0b0.dev2
4
4
  Summary: Simple and universal library for authorization.
5
5
  Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "jamlib"
3
- version = "2.6.0b0.dev1"
3
+ version = "2.6.0b0.dev2"
4
4
  description = "Simple and universal library for authorization."
5
5
  authors = [
6
6
  {name = "Makridenko Adrian",email = "adrianmakridenko@duck.com"},
@@ -13,5 +13,5 @@ from jam.encoders import JsonEncoder
13
13
  from jam.instance import Jam
14
14
 
15
15
 
16
- __version__ = "2.6.0b0.dev1"
16
+ __version__ = "2.6.0b0.dev2"
17
17
  __all__ = ["Jam", "JsonEncoder", "BaseJam", "BaseEncoder"]
@@ -602,6 +602,15 @@ class Jam(BaseJam):
602
602
  def paseto_make_payload(
603
603
  self, exp: Optional[int] = None, **data: dict[str, Any]
604
604
  ) -> dict[str, Any]:
605
+ """Generate payload for PASETO.
606
+
607
+ Args:
608
+ exp (int | None): Token expire
609
+ data (dict[str, Any]): Custom data
610
+
611
+ Returns:
612
+ dict: Payload
613
+ """
605
614
  from jam.paseto.utils import payload_maker
606
615
 
607
616
  return payload_maker(expire=exp, data=data)
@@ -611,10 +620,29 @@ class Jam(BaseJam):
611
620
  payload: dict[str, Any],
612
621
  footer: Optional[Union[dict[str, Any], str]],
613
622
  ) -> str:
623
+ """Create new PASETO.
624
+
625
+ Args:
626
+ payload (dict[str, Any]): Payload
627
+ footer (dict | str | None): Footer
628
+
629
+ Returns:
630
+ str: New token
631
+ """
614
632
  return self.paseto.encode(payload=payload, footer=footer)
615
633
 
616
634
  def paseto_decode(
617
- self, token: str
635
+ self, token: str, check_exp: bool = True, check_list: bool = True
618
636
  ) -> dict[str, Union[dict, Union[str, dict, None]]]:
637
+ """Decode PASETO.
638
+
639
+ Args:
640
+ token (str): Token
641
+ check_exp (bool): Check exp in payload
642
+ check_list (bool): Check token in list
643
+
644
+ Returns:
645
+ dict: {'payload' PAYLOAD, 'footer': FOOTER}
646
+ """
619
647
  payload, footer = self.paseto.decode(token)
620
648
  return {"payload": payload, "footer": footer}
@@ -4,7 +4,7 @@ import base64
4
4
  import hashlib
5
5
  import hmac
6
6
  from datetime import datetime
7
- from typing import Any, Literal, Union
7
+ from typing import Any, Literal, Optional, Union
8
8
  from uuid import uuid4
9
9
 
10
10
  from jam.paseto import PASETO
@@ -95,7 +95,9 @@ def init_paseto_instance(
95
95
  return _paseto.key(purpose, key)
96
96
 
97
97
 
98
- def payload_maker(expire: int, data: dict[str, Any]) -> dict[str, Any]:
98
+ def payload_maker(
99
+ expire: Optional[int], data: dict[str, Any]
100
+ ) -> dict[str, Any]:
99
101
  """Generate PASETO payload.
100
102
 
101
103
  ```json
@@ -110,13 +112,17 @@ def payload_maker(expire: int, data: dict[str, Any]) -> dict[str, Any]:
110
112
  ```
111
113
 
112
114
  Args:
113
- expire (int): Token lifetime
115
+ expire (int | None): Token lifetime
114
116
  data (dict[str, Any]): Custom data
115
117
 
116
118
  Returns:
117
119
  dict: Payload
118
120
  """
119
121
  now = datetime.now().timestamp()
120
- _payload = {"iat": now, "exp": expire + now, "pit": str(uuid4())}
122
+ _payload = {
123
+ "iat": now,
124
+ "exp": (expire + now) if expire else None,
125
+ "pit": str(uuid4()),
126
+ }
121
127
 
122
128
  return _payload | data
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jamlib
3
- Version: 2.6.0b0.dev1
3
+ Version: 2.6.0b0.dev2
4
4
  Summary: Simple and universal library for authorization.
5
5
  Author-email: Makridenko Adrian <adrianmakridenko@duck.com>, Ksenia Travnikova <kseniatravnikova@duck.com>
6
6
  License: MIT License
File without changes
File without changes
File without changes