zrb 0.0.51__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.
- zrb/builtin/generator/fastapp/add.py +3 -2
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore +2 -1
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore +2 -2
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package-lock.json +6 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json +1 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/auth.ts +83 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/store.ts +4 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/type.ts +10 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Menu.svelte +1 -2
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Navigation.svelte +58 -4
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/cookie/cookie.ts +19 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte +4 -4
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png +0 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/logo.png +0 -0
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/api.py +5 -4
- zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/request.py +10 -0
- zrb/builtin/generator/project/template/.gitignore +1 -1
- zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore +1 -1
- {zrb-0.0.51.dist-info → zrb-0.0.52.dist-info}/METADATA +4 -3
- {zrb-0.0.51.dist-info → zrb-0.0.52.dist-info}/RECORD +23 -17
- {zrb-0.0.51.dist-info → zrb-0.0.52.dist-info}/LICENSE +0 -0
- {zrb-0.0.51.dist-info → zrb-0.0.52.dist-info}/WHEEL +0 -0
- {zrb-0.0.51.dist-info → zrb-0.0.52.dist-info}/entry_points.txt +0 -0
@@ -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
|
|
@@ -10,6 +10,7 @@
|
|
10
10
|
"dependencies": {
|
11
11
|
"axios": "^1.4.0",
|
12
12
|
"daisyui": "^2.51.6",
|
13
|
+
"jwt-decode": "^3.1.2",
|
13
14
|
"process": "^0.11.10"
|
14
15
|
},
|
15
16
|
"devDependencies": {
|
@@ -1884,6 +1885,11 @@
|
|
1884
1885
|
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
|
1885
1886
|
"dev": true
|
1886
1887
|
},
|
1888
|
+
"node_modules/jwt-decode": {
|
1889
|
+
"version": "3.1.2",
|
1890
|
+
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz",
|
1891
|
+
"integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
|
1892
|
+
},
|
1887
1893
|
"node_modules/kleur": {
|
1888
1894
|
"version": "4.1.5",
|
1889
1895
|
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import axios from 'axios';
|
2
|
+
import jwt_decode from 'jwt-decode';
|
3
|
+
import { appAuthTokenCookieKey } from '../config/config';
|
4
|
+
import { getCookie, setCookie, unsetCookie } from '../cookie/cookie';
|
5
|
+
import { userIdStore, userNameStore } from './store';
|
6
|
+
import type { TokenData } from './type';
|
7
|
+
|
8
|
+
export async function refreshToken(refreshTokenUrl: string): Promise<boolean> {
|
9
|
+
try {
|
10
|
+
const oldToken: string = getCookie(appAuthTokenCookieKey);
|
11
|
+
const oldTokenData: TokenData = decodeToken(oldToken);
|
12
|
+
const { expireAt } = oldTokenData;
|
13
|
+
const now = new Date();
|
14
|
+
if (now.getTime()/1000 > expireAt) {
|
15
|
+
throw new Error('Expired token');
|
16
|
+
}
|
17
|
+
const response = await axios.post(refreshTokenUrl, {token: oldToken});
|
18
|
+
if (response && response.status == 200 && response.data && response.data.access_token) {
|
19
|
+
const newToken: string = response.data.access_token;
|
20
|
+
setCookie(appAuthTokenCookieKey, newToken);
|
21
|
+
setAuthStoreByToken(newToken);
|
22
|
+
return true;
|
23
|
+
}
|
24
|
+
} catch(error) {
|
25
|
+
console.error(error);
|
26
|
+
}
|
27
|
+
logout();
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
|
31
|
+
export async function login(loginUrl: string, identity: string, password: string): Promise<boolean> {
|
32
|
+
try {
|
33
|
+
const response = await axios.post(loginUrl, {identity, password});
|
34
|
+
if (response && response.status == 200 && response.data && response.data.access_token) {
|
35
|
+
const token: string = response.data.access_token;
|
36
|
+
setCookie(appAuthTokenCookieKey, token);
|
37
|
+
setAuthStoreByToken(token);
|
38
|
+
return true;
|
39
|
+
}
|
40
|
+
} catch(error) {
|
41
|
+
console.error(error);
|
42
|
+
}
|
43
|
+
logout();
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
|
47
|
+
export function logout() {
|
48
|
+
unsetCookie(appAuthTokenCookieKey)
|
49
|
+
unsetAuthStore();
|
50
|
+
}
|
51
|
+
|
52
|
+
function unsetAuthStore() {
|
53
|
+
setAuthStore('', '');
|
54
|
+
}
|
55
|
+
|
56
|
+
function setAuthStoreByToken(token: string) {
|
57
|
+
const tokenData = decodeToken(token);
|
58
|
+
setAuthStore(tokenData.sub.userId, tokenData.sub.userName);
|
59
|
+
}
|
60
|
+
|
61
|
+
function setAuthStore(newUserId: string, newUserName: string) {
|
62
|
+
userIdStore.set(newUserId);
|
63
|
+
userNameStore.set(newUserName);
|
64
|
+
}
|
65
|
+
|
66
|
+
function decodeToken(token: string): TokenData {
|
67
|
+
const jwtTokenData: {
|
68
|
+
exp: number,
|
69
|
+
sub: {
|
70
|
+
user_id: string,
|
71
|
+
username: string,
|
72
|
+
expire_seconds: number
|
73
|
+
}
|
74
|
+
} = jwt_decode(token);
|
75
|
+
return {
|
76
|
+
sub: {
|
77
|
+
userId: jwtTokenData.sub.user_id,
|
78
|
+
userName: jwtTokenData.sub.username,
|
79
|
+
expireSeconds: jwtTokenData.sub.expire_seconds,
|
80
|
+
},
|
81
|
+
expireAt: jwtTokenData.exp
|
82
|
+
}
|
83
|
+
}
|
@@ -5,8 +5,7 @@
|
|
5
5
|
{#if 'submenus' in data && data.submenus}
|
6
6
|
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
7
7
|
<li tabindex="0">
|
8
|
-
|
9
|
-
<a href="#">
|
8
|
+
<a href="#top">
|
10
9
|
Parent
|
11
10
|
<svg class="fill-current" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"><path d="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"/></svg>
|
12
11
|
</a>
|
@@ -1,13 +1,47 @@
|
|
1
1
|
<script lang="ts">
|
2
|
-
import
|
2
|
+
import { goto } from '$app/navigation';
|
3
|
+
import { onMount } from 'svelte';
|
3
4
|
import Menu from './Menu.svelte';
|
5
|
+
import type { SingleNavData } from './type';
|
6
|
+
import { login, logout, refreshToken } from '../../auth/auth';
|
7
|
+
import { userIdStore } from '../../auth/store';
|
8
|
+
|
4
9
|
export let logo: string;
|
5
10
|
export let brand: string;
|
6
11
|
export let data: SingleNavData[];
|
7
|
-
export let
|
12
|
+
export let loginTitle: string = 'Login';
|
13
|
+
export let logoutTitle: string = 'Logout';
|
14
|
+
export let loginApiUrl: string = '/api/v1/auth/login';
|
15
|
+
export let refreshTokenApiUrl: string = '/api/v1/auth/refresh-token';
|
16
|
+
|
17
|
+
let identity: string;
|
18
|
+
let password: string;
|
19
|
+
|
20
|
+
let userId = '';
|
21
|
+
userIdStore.subscribe((value) => {
|
22
|
+
userId = value;
|
23
|
+
});
|
24
|
+
|
25
|
+
onMount(async() => {
|
26
|
+
await refreshToken(refreshTokenApiUrl);
|
27
|
+
});
|
28
|
+
|
29
|
+
async function onLoginClick() {
|
30
|
+
const loginSuccess = await login(loginApiUrl, identity, password);
|
31
|
+
if (loginSuccess) {
|
32
|
+
await goto('/');
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
alert('salah');
|
36
|
+
}
|
37
|
+
|
38
|
+
async function onLogoutClick() {
|
39
|
+
logout();
|
40
|
+
await goto('/');
|
41
|
+
}
|
8
42
|
</script>
|
9
43
|
|
10
|
-
<div class="navbar bg-base-100">
|
44
|
+
<div class="navbar sticky top-0 bg-base-100">
|
11
45
|
<div class="flex-1">
|
12
46
|
<img class="h-8 mr-3" src={logo} alt="Logo">
|
13
47
|
<a href="/" class="btn btn-ghost normal-case text-xl">{brand}</a>
|
@@ -17,7 +51,27 @@
|
|
17
51
|
{#each data as menuData}
|
18
52
|
<Menu data={menuData} />
|
19
53
|
{/each}
|
54
|
+
{#if userId == ''}
|
55
|
+
<li><a href="#login-modal" class="px-4">{loginTitle}</a></li>
|
56
|
+
{:else}
|
57
|
+
<li><a href="#top" class="px-4" on:click={onLogoutClick}>{logoutTitle}</a></li>
|
58
|
+
{/if}
|
20
59
|
</ul>
|
21
60
|
</div>
|
22
61
|
</div>
|
23
|
-
|
62
|
+
|
63
|
+
<div class="modal" id="login-modal">
|
64
|
+
<form class="modal-box">
|
65
|
+
<div class="mb-6">
|
66
|
+
<label class="block text-gray-700 font-bold mb-2" for="identity">Identity</label>
|
67
|
+
<input class="w-full px-3 py-2 border rounded-lg text-gray-700 focus:outline-none focus:shadow-outline" id="identity" type="text" placeholder="Enter your username/email/phone" bind:value={identity} />
|
68
|
+
</div>
|
69
|
+
<div class="mb-6">
|
70
|
+
<label class="block text-gray-700 font-bold mb-2" for="password">Password</label>
|
71
|
+
<input class="w-full px-3 py-2 border rounded-lg text-gray-700 focus:outline-none focus:shadow-outline" id="password" type="password" placeholder="Enter your password" bind:value={password} />
|
72
|
+
</div>
|
73
|
+
<div class="modal-action">
|
74
|
+
<a href="#top" class="btn btn-primary" on:click={onLoginClick}>Sign in</a>
|
75
|
+
</div>
|
76
|
+
</form>
|
77
|
+
</div>
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/cookie/cookie.ts
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
export function setCookie(cookieName: string, cookieValue: string) {
|
2
|
+
document.cookie = cookieName + '=' + cookieValue + ';path=/';
|
3
|
+
}
|
4
|
+
|
5
|
+
export function unsetCookie(cookieName: string) {
|
6
|
+
document.cookie = cookieName + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
|
7
|
+
}
|
8
|
+
|
9
|
+
export function getCookie(cookieName: string): string {
|
10
|
+
let valuePrefix = cookieName + '=';
|
11
|
+
let cookieParts = document.cookie.split(';');
|
12
|
+
for(let partIndex = 0; partIndex < cookieParts.length; partIndex++) {
|
13
|
+
let cookiePart = cookieParts[partIndex].trim();
|
14
|
+
if (cookiePart.indexOf(valuePrefix) == 0) {
|
15
|
+
return cookiePart.substring(valuePrefix.length, cookiePart.length);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
return '';
|
19
|
+
}
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
<script lang="ts">
|
2
2
|
import "../app.css";
|
3
3
|
import Navigation from '$lib/components/navigation/Navigation.svelte';
|
4
|
-
import {navData} from '$lib/config/navData';
|
5
|
-
import {appBrand, appTitle
|
6
|
-
import logo from '
|
4
|
+
import { navData } from '$lib/config/navData';
|
5
|
+
import { appBrand, appTitle } from '$lib/config/config';
|
6
|
+
import logo from '/static/logo.png';
|
7
7
|
</script>
|
8
8
|
|
9
9
|
<title>{appTitle}</title>
|
10
|
-
<Navigation data={navData} logo={logo} brand={appBrand}
|
10
|
+
<Navigation data={navData} logo={logo} brand={appBrand}></Navigation>
|
11
11
|
<div class="pl-10 pr-10">
|
12
12
|
<slot></slot>
|
13
13
|
</div>
|
Binary file
|
Binary file
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/api.py
CHANGED
@@ -10,6 +10,7 @@ from module.auth.schema.user import (
|
|
10
10
|
User, UserData, UserResult, UserLogin
|
11
11
|
)
|
12
12
|
from module.auth.schema.token import TokenData, TokenResponse
|
13
|
+
from module.auth.schema.request import RefreshTokenRequest, IsAuthorizedRequest
|
13
14
|
from module.auth.component import token_scheme
|
14
15
|
|
15
16
|
|
@@ -46,10 +47,10 @@ def register_auth_api(
|
|
46
47
|
raise HTTPAPIException(error=e)
|
47
48
|
|
48
49
|
@app.post('/api/v1/auth/refresh-token', response_model=TokenResponse)
|
49
|
-
async def refresh_token(
|
50
|
+
async def refresh_token(data: RefreshTokenRequest) -> TokenResponse:
|
50
51
|
try:
|
51
52
|
token = await rpc_caller.call(
|
52
|
-
'auth_refresh_token', token=token
|
53
|
+
'auth_refresh_token', token=data.token
|
53
54
|
)
|
54
55
|
return TokenResponse(access_token=token, token_type='bearer')
|
55
56
|
except Exception as e:
|
@@ -57,13 +58,13 @@ def register_auth_api(
|
|
57
58
|
|
58
59
|
@app.post('/api/v1/auth/is-authorized', response_model=Mapping[str, bool])
|
59
60
|
async def is_authorized(
|
60
|
-
|
61
|
+
data: IsAuthorizedRequest,
|
61
62
|
user_token_data: TokenData = Depends(token_scheme)
|
62
63
|
) -> Mapping[str, str]:
|
63
64
|
try:
|
64
65
|
user_id = user_token_data.user_id
|
65
66
|
return await rpc_caller.call(
|
66
|
-
'auth_is_user_authorized', id=user_id, *permission_names
|
67
|
+
'auth_is_user_authorized', id=user_id, *data.permission_names
|
67
68
|
)
|
68
69
|
except Exception as e:
|
69
70
|
raise HTTPAPIException(error=e)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: zrb
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.52
|
4
4
|
Summary: Your faithful companion
|
5
5
|
Author-email: Go Frendi Gunawan <gofrendiasgard@gmail.com>
|
6
6
|
Requires-Python: >=3.8
|
@@ -29,10 +29,11 @@ Project-URL: Homepage, https://github.com/state-alchemists/zaruba
|
|
29
29
|
Provides-Extra: dev
|
30
30
|
Provides-Extra: test
|
31
31
|
|
32
|
-
# Zrb (WIP)
|
32
|
+
# Zrb (WIP): Your Faithful Companion
|
33
33
|
|
34
|
-
|
34
|
+

|
35
35
|
|
36
|
+
Zrb is a task runner to help you automate day-to-day tasks.
|
36
37
|
# Installation
|
37
38
|
|
38
39
|
```bash
|
@@ -64,7 +64,7 @@ zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/Doc
|
|
64
64
|
zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/main.py,sha256=UpJoBSo4zNKFSa8-0pdJwCymjJDxVZicdoENshogtjE,447
|
65
65
|
zrb/builtin/generator/docker_compose_task/template/src/kebab-task-name/image/requirements.txt,sha256=HX56Al9bOoM8Mq1Yc44UE2cfT3XrTZGmHI6T3q7xn50,15
|
66
66
|
zrb/builtin/generator/fastapp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
|
-
zrb/builtin/generator/fastapp/add.py,sha256=
|
67
|
+
zrb/builtin/generator/fastapp/add.py,sha256=2-_v7iltxVht-MDKP91J8mCD4syfABi2dMrRgLsTjT0,6405
|
68
68
|
zrb/builtin/generator/fastapp/template/_automate/snake_app_name/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
69
|
zrb/builtin/generator/fastapp/template/_automate/snake_app_name/_common.py,sha256=vrUaOJDgOasN6DokF_CKqi6S5_Zq7n14T_ErQiMpD7M,6430
|
70
70
|
zrb/builtin/generator/fastapp/template/_automate/snake_app_name/container.py,sha256=s9b3ZoXE_0H8Ppg6ubUIVsGnlr6_054sE9WoQa74uXE,3032
|
@@ -268,7 +268,7 @@ zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/helm-charts
|
|
268
268
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/helm-charts/redpanda/templates/tests/test-schemaregistry-status.yaml,sha256=yV08o9QWh33u-0M5xuhl78v5_T9C9HYJGH-IphoBvw8,1715
|
269
269
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/deployment/state/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
270
270
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.dockerignore,sha256=NJZTsJz5Imm-i1oUu2Yn0JYQOTRSQKq-c8YKaC_uZPE,134
|
271
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore,sha256=
|
271
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/.gitignore,sha256=GHLs2R2u2mD59AsvK8IXHtJQhkZGpPjy6BqpHT6hvos,53
|
272
272
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/Dockerfile,sha256=IfvkYdmKEC4FZdIKXkp1_8vF-3BFyy8Hp1G_UpfmbaY,479
|
273
273
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/README.md,sha256=pvV-h3kGkAjtVRDHc3Tn0PE3_NzQ3dOr2iIIvlt1rSE,2282
|
274
274
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -317,13 +317,13 @@ zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/serializer/__
|
|
317
317
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/core/serializer/serializer.py,sha256=9T-s4WoHv2gbRcigprfsQbxLQoYjpEIPNtrQhgFBzgw,867
|
318
318
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintignore,sha256=GQjxOuGuHvjVorAu-_WqdOZ_4-_JogxRekxKb04O9pA,160
|
319
319
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.eslintrc.cjs,sha256=JWmR2kjxxvTiONl2tcu9hsgRuvBqp5bBznY3xVraak8,494
|
320
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore,sha256=
|
320
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.gitignore,sha256=874zNlvNnzpmvsleSP8EUkCWvkDf5aaXZ6hOsoMokoY,136
|
321
321
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.npmrc,sha256=cVHPOX3vDCywq2VkNwHSfTNacskPd1Z1tfgmvHAFgYo,19
|
322
322
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierignore,sha256=GQjxOuGuHvjVorAu-_WqdOZ_4-_JogxRekxKb04O9pA,160
|
323
323
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/.prettierrc,sha256=SzMzteA8Sd5xT7ZnAXch9jK97yzw_VeUitpRwIUFUdU,233
|
324
324
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/README.md,sha256=7ASuL7J7y3W44wn_izhZ_mBnzxWMXV4I0f2DL9-OHX0,944
|
325
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package-lock.json,sha256=
|
326
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json,sha256=
|
325
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package-lock.json,sha256=De5DlMWcl6_VheELB-M-2QV3dblwnnAQB3P9oWV6Uws,113621
|
326
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/package.json,sha256=n7Njh97vg9_PWuxIFWgpMOh23rKnwT2h9h7Q3mlBJPQ,1305
|
327
327
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/playwright.config.ts,sha256=HWngDBBeLyQi5QZx0EGQoc9lzdzycE32aivx3i4J21Q,225
|
328
328
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/postcss.config.js,sha256=GQyHfbRmmVvxSC9KFqvQbgSont4xGTQeKob_luFzeyc,80
|
329
329
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/svelte.config.js,sha256=5YezIFqxywUYpH3DIm_o5JZpWmw7igRc0HEOa7NYZ18,317
|
@@ -335,20 +335,25 @@ zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.d
|
|
335
335
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/app.html,sha256=DhfIA5XPCNSr16VgpSjlLlqBufA7CD4bXqa2znJnOIA,350
|
336
336
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/index.test.ts,sha256=v1ozost_88J5VDCjzItbD_wE3rID6UQFq1p9sWMQZps,148
|
337
337
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/assets/logo.png,sha256=uQmQW4KHBPa0z0tu438zpHz3kSfa8p_aH81cOI-SrVg,130279
|
338
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/
|
339
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/
|
338
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/auth.ts,sha256=2n6ylVGgiSfl5zVgH7qJyB5nKrGihXq_whzrAxfTqko,2634
|
339
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/store.ts,sha256=2Utq3GyPed9_Uri4zZzNISBvC1vTJXeurJATqnbi8mg,125
|
340
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/auth/type.ts,sha256=iSNFBmAWJQ4UirhhH1ldPr3EUXvxmuTvxc1kmokSayA,179
|
341
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Menu.svelte,sha256=usyHTN7UlI2LdPO5NzCX9k_VKZNohPmJO6kJISRckww,740
|
342
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/Navigation.svelte,sha256=pOGx35WSpWAuR5YXJpMo5AQhks_0nIxNY-E94ZqApNY,2754
|
340
343
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/components/navigation/type.ts,sha256=rpSLZ4skDiBsRLhmDxZ9NfwGXY2-HQslazm5Rj5awMk,127
|
341
344
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/config/config.ts,sha256=6UoJfuAMdmkn9XawWUsSzyHHnwsrkwS5sIlem96lwpQ,289
|
342
345
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/config/navData.ts,sha256=18iNdEbVOriIX6Pfa1UCg2anB--LDzjKCB5Zpd2HDC4,701
|
346
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/lib/cookie/cookie.ts,sha256=GgHs_xGB0ntK6WQ7GJU-X37m96JcGeriunnXsO1ud5Q,717
|
343
347
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.js,sha256=IepBDK8VpfSwS_akOn9eRqRlv8erCF4VtsBXWvBUlH4,65
|
344
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte,sha256=
|
348
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+layout.svelte,sha256=KF2KsGC91WUguT4hrQxwo0iBOvyw49pzqsh-0p1BIRo,414
|
345
349
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/+page.svelte,sha256=CMxE4JxxWW1wgjxKwSXq1vDbbKci3QtEZJHbJJ8MWGE,259
|
346
350
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/about/+page.svelte,sha256=KerO5WcqYfom2DqSltTEcpHKiUFdLGIq224sdbSW1HQ,105
|
347
351
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.js,sha256=lKiwBHrsn4Q8DX8njyeGixh1vg1Jo5jhZyaa_b8tylk,140
|
348
352
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/greetings/[slug]/+page.svelte,sha256=iBUwihQYp3w38IkhL7lgaDTMqyjmaN1Hku6nFCAOWPo,91
|
349
353
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/sample/+page.svelte,sha256=E4Pu2J9v-PYmtlzYw7JIpSmYsAm9dvv0y40V5rF9PhE,1277
|
350
354
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/src/routes/sample/delete/[id]/+page.svelte,sha256=jEEztCqzkWLYWyo8Vhb2GGjTLHRkAoT3eOja59CYSnk,9
|
351
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png,sha256=
|
355
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/favicon.png,sha256=I4yNgTGWihNr9ek0tmeKA9arQJC4Vo0-WR4j_-2XYjM,1321
|
356
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/static/logo.png,sha256=m-FSk0M9NrxlRnfaEjObW0e416Tw419QVNiCr3F6Ymo,12221
|
352
357
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/frontend/tests/test.ts,sha256=Zn47gMooUsmXRYTuDvtVajL07cEwPMhL5pOXeolSnEg,224
|
353
358
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
354
359
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/helper/async_task.py,sha256=xoBJz_4XApjT7MZwRYPs2EF1IMEjaOJJX5WuGtAS8ug,499
|
@@ -401,13 +406,14 @@ zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity
|
|
401
406
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/permission/repo.py,sha256=CHquoqL_FPpp6WlszpWhLYgnGw1EZ2Zg0Bkbrs88x1s,1085
|
402
407
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/permission/rpc.py,sha256=NOSXDqaWOZyMzywqNqfL0g6ycPzAEkwpFdx1EWwOKLc,2642
|
403
408
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
404
|
-
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/api.py,sha256=
|
409
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/api.py,sha256=V1x0Xes218w81k7MzOXFwrSBR9l4jbX1R24Y_tHpEA0,6210
|
405
410
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/model.py,sha256=BWR1F8hs7tbSGppPhVpuTlg12YjvZVfyXltcpGcU_t0,5503
|
406
411
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/repo.py,sha256=NhBmFdQFy9svhSElWJTtJlZh_n03un5JNunfM_Y-7lk,3274
|
407
412
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/entity/user/rpc.py,sha256=SybDghtNFVQLZPdXLFWxVn5VjtOrc2HluVBNsRlppiY,3373
|
408
413
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
409
414
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/group.py,sha256=dOmadgsAz_JX9Liv8OhdjBarJ07zTYhml9uHrZF4NK0,448
|
410
415
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/permission.py,sha256=2CNUWKaCZqS_TTu2DGio7ARrMHHMoOvvhFiQbuenYRg,324
|
416
|
+
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/request.py,sha256=WR8aEcNB_iukr_jJlM4FWPhdas0eC8VCWrx7DmBTh9o,181
|
411
417
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/token.py,sha256=vLh2IbWs13vmeTWWuo4gwN49O05MAEgg1eYij8BUseg,196
|
412
418
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/src/module/auth/schema/user.py,sha256=A6BhTexDIn4BUFlXBkR4SqzPZO6o6lz0GDCdsgcbNI4,706
|
413
419
|
zrb/builtin/generator/fastapp/template/src/kebab-app-name/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -457,7 +463,7 @@ zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/src/module/snak
|
|
457
463
|
zrb/builtin/generator/fastapp_module/template/src/kebab-app-name/test/snake_module_name/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
458
464
|
zrb/builtin/generator/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
459
465
|
zrb/builtin/generator/project/create.py,sha256=Y7OvrDZrVI-0F5EcAsnW1t1KaK4X32mZN8y0cLkSyVg,1826
|
460
|
-
zrb/builtin/generator/project/template/.gitignore,sha256=
|
466
|
+
zrb/builtin/generator/project/template/.gitignore,sha256=PsyvqP0HrgCKOPxDUWJxwstpBF1H3Hy7Bt_-Fg4IO9M,22
|
461
467
|
zrb/builtin/generator/project/template/README.md,sha256=pNGAZkZIhSEmiAyKdP3cVYmBNQ756hlLZpgJtCtLOVw,1832
|
462
468
|
zrb/builtin/generator/project/template/project.sh,sha256=rMq01ZcojBMS3x6LP82FHWeHf-LIbxMPSsDFN6DzPQ8,1517
|
463
469
|
zrb/builtin/generator/project/template/requirements.txt,sha256=X6wrfgHOG6KaaMpDJEsXUp2Eyb-1oLY4e7QnMQqcq68,16
|
@@ -497,7 +503,7 @@ zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/_
|
|
497
503
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/requirements.txt,sha256=iCdFXkdFyErro4RBXygTg-2w3SLAyO8khhtrHN4uIrI,75
|
498
504
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/deployment/state/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
499
505
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.dockerignore,sha256=Adno7oEVeo0HrAX3s4RzQvgRSxeu0VqDbrdK4g-okX4,21
|
500
|
-
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore,sha256=
|
506
|
+
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/.gitignore,sha256=wxouZk_385X1IglYHDVty5eBaeh_PdzDbP6RQfiP4Bw,23
|
501
507
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/Dockerfile,sha256=Yl5euBK6oKwoo3r4KhiLNMR8PwCkn7uziXOZe1zBewY,187
|
502
508
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/main.py,sha256=UpJoBSo4zNKFSa8-0pdJwCymjJDxVZicdoENshogtjE,447
|
503
509
|
zrb/builtin/generator/simple_python_app/template/src/kebab-app-name/src/requirements.txt,sha256=HX56Al9bOoM8Mq1Yc44UE2cfT3XrTZGmHI6T3q7xn50,15
|
@@ -575,8 +581,8 @@ zrb/task_input/input.py,sha256=I4KrdJR3muxAWgd8zX6CErogHYcFM80Si0DmC5-YJGE,69
|
|
575
581
|
zrb/task_input/int_input.py,sha256=YTxeRvHGe60hUto3vGtjA3GVLsR2zPtlIca20XO_94A,1568
|
576
582
|
zrb/task_input/password_input.py,sha256=-ygMqy3JoHtZB5aA7uwlwgntFBJKBasfP3eX9iaOxKE,1521
|
577
583
|
zrb/task_input/str_input.py,sha256=RUw5zTUDAo1kyl5kcUpXyk073xh09N04D41PmH76RVk,1568
|
578
|
-
zrb-0.0.
|
579
|
-
zrb-0.0.
|
580
|
-
zrb-0.0.
|
581
|
-
zrb-0.0.
|
582
|
-
zrb-0.0.
|
584
|
+
zrb-0.0.52.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
|
585
|
+
zrb-0.0.52.dist-info/LICENSE,sha256=hVM_U_SOdNZ9mLpaAZ5qn3HRXQXucGX9rliGPEifzVs,1073
|
586
|
+
zrb-0.0.52.dist-info/WHEEL,sha256=rSgq_JpHF9fHR1lx53qwg_1-2LypZE_qmcuXbVUq948,81
|
587
|
+
zrb-0.0.52.dist-info/METADATA,sha256=orUvRZpskjKxTQlQ38uJ5WGM99pvOWxrddiLn15xH90,15443
|
588
|
+
zrb-0.0.52.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|