update version
This commit is contained in:
@@ -25,5 +25,7 @@ def get_enrollment(enrollment_id: str):
|
||||
+ SortKey('0')
|
||||
+ SortKey('ORG', rename_key='org')
|
||||
+ SortKey('CANCEL_POLICY', rename_key='cancel_policy')
|
||||
+ SortKey('CREATED_BY', rename_key='created_by')
|
||||
+ SortKey('CANCELED_BY', rename_key='canceled_by')
|
||||
+ SortKey('LOCK', rename_key='lock')
|
||||
)
|
||||
|
||||
@@ -37,7 +37,7 @@ def cancel(
|
||||
with dyn.transact_writer() as transact:
|
||||
transact.update(
|
||||
key=KeyPair(enrollment_id, '0'),
|
||||
cond_expr='#status = pending',
|
||||
cond_expr='#status = :pending',
|
||||
update_expr='SET #status = :canceled, \
|
||||
canceled_at = :now, \
|
||||
updated_at = :now',
|
||||
|
||||
@@ -119,6 +119,14 @@ def add_org(
|
||||
'created_at': now_,
|
||||
}
|
||||
)
|
||||
transact.put(
|
||||
item={
|
||||
'id': user.id,
|
||||
'sk': f'SCOPE#{org_id}',
|
||||
'scope': {'apps:admin'},
|
||||
'created_at': now_,
|
||||
}
|
||||
)
|
||||
transact.put(
|
||||
item={
|
||||
# Post-migration (users): rename `orgmembers#` to `MEMBER#ORG#`
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
from http import HTTPStatus
|
||||
from typing import Annotated
|
||||
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from aws_lambda_powertools.event_handler.exceptions import NotFoundError
|
||||
from aws_lambda_powertools.event_handler.openapi.params import Body
|
||||
from layercake.dateutils import now
|
||||
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair
|
||||
from layercake.extra_types import NameStr
|
||||
from pydantic import UUID4, BaseModel, EmailStr
|
||||
|
||||
from api_gateway import JSONResponse
|
||||
from boto3clients import dynamodb_client
|
||||
@@ -11,6 +17,12 @@ router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
class OrgNotFoundError(NotFoundError): ...
|
||||
|
||||
|
||||
class MemberNotFoundError(NotFoundError): ...
|
||||
|
||||
|
||||
@router.get('/<org_id>/admins')
|
||||
def get_admins(org_id: str):
|
||||
return dyn.collection.query(
|
||||
@@ -20,9 +32,60 @@ def get_admins(org_id: str):
|
||||
)
|
||||
|
||||
|
||||
class User(BaseModel):
|
||||
id: str | UUID4
|
||||
name: NameStr
|
||||
email: EmailStr
|
||||
|
||||
|
||||
@router.post('/<org_id>/admins')
|
||||
def add(org_id: str):
|
||||
return JSONResponse(HTTPStatus.CREATED)
|
||||
def add(org_id: str, user: Annotated[User, Body(embed=True)]):
|
||||
now_ = now()
|
||||
org = dyn.collection.get_item(
|
||||
KeyPair(pk=org_id, sk='0'),
|
||||
exc_cls=OrgNotFoundError,
|
||||
)
|
||||
|
||||
with dyn.transact_writer() as transact:
|
||||
transact.condition(
|
||||
key=KeyPair(
|
||||
# Post-migration (users): rename `orgmemebers#` to `MEMBER#ORG#`
|
||||
pk=f'orgmembers#{org_id}',
|
||||
sk=str(user.id),
|
||||
),
|
||||
cond_expr='attribute_exists(sk)',
|
||||
exc_cls=MemberNotFoundError,
|
||||
)
|
||||
transact.put(
|
||||
item={
|
||||
'id': user.id,
|
||||
# Post-migration (users): rename `orgs#` to `ORG#`
|
||||
'sk': f'orgs#{org_id}',
|
||||
'name': org['name'],
|
||||
'cnpj': org['cnpj'],
|
||||
'created_at': now_,
|
||||
}
|
||||
)
|
||||
transact.put(
|
||||
item={
|
||||
'id': user.id,
|
||||
'sk': f'SCOPE#{org_id}',
|
||||
'scope': {'apps:admin'},
|
||||
'created_at': now_,
|
||||
}
|
||||
)
|
||||
transact.put(
|
||||
item={
|
||||
'id': org_id,
|
||||
# Post-migrations (users): rename `admins#` to `ADMIN#`
|
||||
'sk': f'admins#{user.id}',
|
||||
'name': user.name,
|
||||
'email': user.email,
|
||||
'created_at': now_,
|
||||
},
|
||||
)
|
||||
|
||||
return JSONResponse(HTTPStatus.NO_CONTENT)
|
||||
|
||||
|
||||
@router.delete('/<org_id>/admins/<user_id>')
|
||||
@@ -32,5 +95,8 @@ def revoke(org_id: str, user_id: str):
|
||||
# Post-migration: rename `admins` to `ADMIN`
|
||||
key=KeyPair(org_id, f'admins#{user_id}'),
|
||||
)
|
||||
transact.delete(
|
||||
key=KeyPair(user_id, f'SCOPE#{org_id}'),
|
||||
)
|
||||
|
||||
return JSONResponse(HTTPStatus.NO_CONTENT)
|
||||
|
||||
@@ -79,6 +79,9 @@ def unlink(org_id: str, user_id: str):
|
||||
# Post-migration: uncomment the following line
|
||||
# key=KeyPair(org_id, f'ADMIN#{user_id}'),
|
||||
)
|
||||
transact.delete(
|
||||
key=KeyPair(user_id, f'SCOPE#{org_id}'),
|
||||
)
|
||||
transact.delete(
|
||||
key=KeyPair(
|
||||
pk=user_id,
|
||||
@@ -90,6 +93,8 @@ def unlink(org_id: str, user_id: str):
|
||||
transact.update(
|
||||
key=KeyPair(user_id, '0'),
|
||||
update_expr='DELETE tenant_id :org_id',
|
||||
# Post-migration: uncomment the following line
|
||||
# update_expr='DELETE org_id :org_id',
|
||||
expr_attr_values={':org_id': {org_id}},
|
||||
)
|
||||
|
||||
|
||||
@@ -10,5 +10,5 @@ router = Router()
|
||||
dyn = DynamoDBPersistenceLayer(USER_TABLE, dynamodb_client)
|
||||
|
||||
|
||||
@router.post('/<org_id>/users/batch-jobs')
|
||||
@router.post('/<org_id>/users/batch')
|
||||
def batch_jobs(org_id: str): ...
|
||||
|
||||
@@ -195,7 +195,7 @@ def primary(
|
||||
with dyn.transact_writer() as transact:
|
||||
# Set the old email as non-primary
|
||||
transact.update(
|
||||
# Post-migration (users): rename `emails` to `EMAIL`
|
||||
# Post-migration (users): rename `emails#` to `EMAIL#`
|
||||
key=KeyPair(user_id, f'emails#{old_email}'),
|
||||
update_expr=expr,
|
||||
expr_attr_values={
|
||||
@@ -206,7 +206,7 @@ def primary(
|
||||
)
|
||||
# Set the new email as primary
|
||||
transact.update(
|
||||
# Post-migration (users): rename `emails` to `EMAIL`
|
||||
# Post-migration (users): rename `emails#` to `EMAIL#`
|
||||
key=KeyPair(user_id, f'emails#{new_email}'),
|
||||
update_expr=expr,
|
||||
expr_attr_values={
|
||||
@@ -243,7 +243,7 @@ def remove(
|
||||
key=KeyPair('email', email),
|
||||
)
|
||||
transact.delete(
|
||||
# Post-migration (users): rename `emails` to `EMAIL`
|
||||
# Post-migration (users): rename `emails#` to `EMAIL#`
|
||||
key=KeyPair(user_id, f'emails#{email}'),
|
||||
# Delete any email except the primary email
|
||||
cond_expr='email_primary <> :email_primary',
|
||||
|
||||
@@ -18,7 +18,7 @@ def get_orgs(
|
||||
limit: Annotated[int, Query(ge=25)] = 25,
|
||||
):
|
||||
return dyn.collection.query(
|
||||
# Post-migration (users): rename `orgs` to `ORG`
|
||||
# Post-migration (users): rename `orgs#` to `ORG#`
|
||||
key=KeyPair(user_id, 'orgs#'),
|
||||
start_key=start_key,
|
||||
limit=limit,
|
||||
|
||||
@@ -12,40 +12,40 @@
|
||||
"typecheck": "npm run cf-typegen && react-router typegen && tsc -b"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-router/fs-routes": "^7.9.5",
|
||||
"@react-router/fs-routes": "^7.10.1",
|
||||
"@repo/auth": "*",
|
||||
"@repo/ui": "*",
|
||||
"@repo/util": "^0.0.0",
|
||||
"@tanstack/react-table": "^8.21.3",
|
||||
"cookie": "^1.0.2",
|
||||
"cookie": "^1.1.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"flat": "^6.0.1",
|
||||
"fuse.js": "^7.1.0",
|
||||
"isbot": "^5.1.31",
|
||||
"isbot": "^5.1.32",
|
||||
"luxon": "^3.7.2",
|
||||
"meilisearch": "^0.54.0",
|
||||
"meilisearch-helper": "github:sergiors/meilisearch-helper",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"react-router": "^7.9.5",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router": "^7.10.1",
|
||||
"unique-names-generator": "^4.7.1",
|
||||
"zod": "^4.1.12"
|
||||
"zod": "^4.1.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/vite-plugin": "^1.13.18",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@cloudflare/vite-plugin": "^1.17.0",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/file-saver": "^2.0.7",
|
||||
"@types/luxon": "^3.7.1",
|
||||
"@types/node": "^24.9.2",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"prettier": "^3.6.2",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"prettier": "^3.7.4",
|
||||
"remix-flat-routes": "^0.8.5",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.12",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"wrangler": "^4.45.3"
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
|
||||
2045
apps/admin.saladeaula.digital/worker-configuration.d.ts
vendored
2045
apps/admin.saladeaula.digital/worker-configuration.d.ts
vendored
File diff suppressed because it is too large
Load Diff
@@ -14,25 +14,25 @@
|
||||
"dependencies": {
|
||||
"@repo/ui": "*",
|
||||
"@repo/util": "*",
|
||||
"cookie": "^1.0.2",
|
||||
"isbot": "^5.1.31",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"react-router": "^7.9.5"
|
||||
"cookie": "^1.1.1",
|
||||
"isbot": "^5.1.32",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router": "^7.10.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@react-router/dev": "^7.9.5",
|
||||
"@cloudflare/vite-plugin": "^1.13.17",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@react-router/dev": "^7.10.1",
|
||||
"@cloudflare/vite-plugin": "^1.17.0",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/node": "^24",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/statuses": "^2.0.6",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.12",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"wrangler": "^4.45.2"
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
|
||||
2045
apps/id.saladeaula.digital/worker-configuration.d.ts
vendored
2045
apps/id.saladeaula.digital/worker-configuration.d.ts
vendored
File diff suppressed because it is too large
Load Diff
@@ -12,33 +12,33 @@
|
||||
"typecheck": "npm run cf-typegen && react-router typegen && tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-router/fs-routes": "^7.9.6",
|
||||
"@react-router/fs-routes": "^7.10.1",
|
||||
"@repo/auth": "*",
|
||||
"@repo/ui": "*",
|
||||
"@repo/util": "*",
|
||||
"@tanstack/react-table": "^8.21.3",
|
||||
"cookie": "^1.0.2",
|
||||
"cookie": "^1.1.1",
|
||||
"flat": "^6.0.1",
|
||||
"isbot": "^5.1.31",
|
||||
"lucide-react": "^0.548.0",
|
||||
"react": "^19.1.1",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-router": "^7.9.2",
|
||||
"isbot": "^5.1.32",
|
||||
"lucide-react": "^0.556.0",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router": "^7.10.1",
|
||||
"meilisearch": "^0.54.0",
|
||||
"meilisearch-helper": "github:sergiors/meilisearch-helper",
|
||||
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/vite-plugin": "^1.13.5",
|
||||
"@react-router/dev": "^7.9.2",
|
||||
"@tailwindcss/vite": "^4.1.13",
|
||||
"@types/node": "^22",
|
||||
"@types/react": "^19.1.13",
|
||||
"@types/react-dom": "^19.1.9",
|
||||
"tailwindcss": "^4.1.13",
|
||||
"typescript": "^5.9.2",
|
||||
"vite": "^7.1.7",
|
||||
"@cloudflare/vite-plugin": "^1.17.0",
|
||||
"@react-router/dev": "^7.10.1",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/node": "^24",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"wrangler": "^4.40.0"
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,33 +18,33 @@
|
||||
"@tanstack/react-table": "^8.21.3",
|
||||
"crypto-js": "^4.2.0",
|
||||
"fuse.js": "^7.1.0",
|
||||
"isbot": "^5.1.31",
|
||||
"isbot": "^5.1.32",
|
||||
"lzwcompress": "^1.1.0",
|
||||
"meilisearch": "^0.54.0",
|
||||
"meilisearch-helper": "github:sergiors/meilisearch-helper",
|
||||
"ramda": "^0.32.0",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
"react-router": "^7.9.5",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-router": "^7.10.1",
|
||||
"rrweb": "^2.0.0-alpha.4",
|
||||
"scorm-again": "^2.6.7",
|
||||
"zod": "^4.1.12"
|
||||
"zod": "^4.1.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/vite-plugin": "^1.13.17",
|
||||
"@react-router/dev": "^7.9.5",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@cloudflare/vite-plugin": "^1.17.0",
|
||||
"@react-router/dev": "^7.10.1",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/crypto-js": "^4.2.2",
|
||||
"@types/node": "^24",
|
||||
"@types/ramda": "^0.31.1",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"prettier": "^3.6.2",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"prettier": "^3.7.4",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.12",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"wrangler": "^4.45.2"
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
|
||||
2045
apps/saladeaula.digital/worker-configuration.d.ts
vendored
2045
apps/saladeaula.digital/worker-configuration.d.ts
vendored
File diff suppressed because it is too large
Load Diff
@@ -16,26 +16,26 @@
|
||||
"@repo/auth": "*",
|
||||
"@repo/ui": "*",
|
||||
"fuse.js": "^7.1.0",
|
||||
"isbot": "^5.1.31",
|
||||
"jose": "^6.1.0",
|
||||
"isbot": "^5.1.32",
|
||||
"jose": "^6.1.3",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.548.0",
|
||||
"lucide-react": "^0.556.0",
|
||||
"meilisearch": "^0.54.0",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0"
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/vite-plugin": "^1.13.17",
|
||||
"@react-router/dev": "^7.9.5",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@cloudflare/vite-plugin": "^1.17.0",
|
||||
"@react-router/dev": "^7.10.1",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/node": "^24",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.1.12",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"wrangler": "^4.45.2"
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
|
||||
2045
apps/studio.saladeaula.digital/worker-configuration.d.ts
vendored
2045
apps/studio.saladeaula.digital/worker-configuration.d.ts
vendored
File diff suppressed because it is too large
Load Diff
@@ -16,14 +16,14 @@
|
||||
// Post-migrations (users): rename `emails#` to `EMAIL#`
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "emails#sergio@somosbeta.com.br", "email_verified": true}
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "PASSWORD", "hash": "$pbkdf2-sha256$29000$IuTcm7M2BiAEgPB.b.3dGw$d8xVCbx8zxg7MeQBrOvCOgniiilsIHEMHzoH/OXftLQ"}
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "SCOPE", "scope": ["openid", "profile", "email", "offline_access", "apps:admin"]}
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "SCOPE#*", "scope": ["openid", "profile", "email", "offline_access", "apps:admin"]}
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "SESSION#36af142e-9f6d-49d3-bfe9-6a6bd6ab2712", "created_at": "2025-09-17T13:44:34.544491-03:00", "ttl": 1760719474}
|
||||
{"id": "357db1c5-7442-4075-98a3-fbe5c938a419", "sk": "NEVER_LOGGED"}
|
||||
|
||||
|
||||
{"id": "fd5914ec-fd37-458b-b6b9-8aeab38b666b", "sk": "0", "name": "Johnny Cash", "email": "johnny@johnnycash.com"}
|
||||
{"id": "fd5914ec-fd37-458b-b6b9-8aeab38b666b", "sk": "PASSWORD", "hash": "$pbkdf2-sha256$29000$IuTcm7M2BiAEgPB.b.3dGw$d8xVCbx8zxg7MeQBrOvCOgniiilsIHEMHzoH/OXftLQ"}
|
||||
{"id": "fd5914ec-fd37-458b-b6b9-8aeab38b666b", "sk": "SCOPE", "scope": ["openid"]}
|
||||
{"id": "fd5914ec-fd37-458b-b6b9-8aeab38b666b", "sk": "SCOPE#*", "scope": ["openid"]}
|
||||
|
||||
{"id": "email", "sk": "sergio@somosbeta.com.br", "user_id": "357db1c5-7442-4075-98a3-fbe5c938a419"}
|
||||
{"id": "email", "sk": "osergiosiqueira@gmail.com", "user_id": "357db1c5-7442-4075-98a3-fbe5c938a419"}
|
||||
|
||||
2225
package-lock.json
generated
2225
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@@ -8,19 +8,19 @@
|
||||
"check-types": "turbo run check-types"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^3.6.2",
|
||||
"turbo": "^2.6.2",
|
||||
"typescript": "5.9.2"
|
||||
"prettier": "^3.7.4",
|
||||
"turbo": "^2.6.3",
|
||||
"typescript": "5.9.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-linux-x64-gnu": "^4.52.5",
|
||||
"@tailwindcss/oxide-linux-x64-gnu": "^4.1.16",
|
||||
"@rollup/rollup-linux-x64-gnu": "^4.53.3",
|
||||
"@tailwindcss/oxide-linux-x64-gnu": "^4.1.17",
|
||||
"lightningcss-linux-x64-gnu": "^1.30.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"packageManager": "npm@11.5.2",
|
||||
"packageManager": "npm@11.6.4",
|
||||
"workspaces": [
|
||||
"apps/*",
|
||||
"packages/*"
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
"./middleware/*": "./src/middleware/*.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"jose": "^6.1.0",
|
||||
"jose": "^6.1.3",
|
||||
"remix-auth-oauth2": "^3.4.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"react-router": "^7.9.5",
|
||||
"@types/node": "^24.9.2",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"react-router": "^7.10.1",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
"./components/data-table": "./src/components/data-table/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@brazilian-utils/brazilian-utils": "^1.0.0-rc.12",
|
||||
"@brazilian-utils/brazilian-utils": "^1.1.0",
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"@radix-ui/react-alert-dialog": "^1.1.15",
|
||||
"@radix-ui/react-avatar": "^1.1.10",
|
||||
"@radix-ui/react-avatar": "^1.1.11",
|
||||
"@radix-ui/react-checkbox": "^1.3.3",
|
||||
"@radix-ui/react-dialog": "^1.1.15",
|
||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||
"@radix-ui/react-label": "^2.1.7",
|
||||
"@radix-ui/react-label": "^2.1.8",
|
||||
"@radix-ui/react-navigation-menu": "^1.2.14",
|
||||
"@radix-ui/react-popover": "^1.1.15",
|
||||
"@radix-ui/react-progress": "^1.1.8",
|
||||
@@ -32,31 +32,31 @@
|
||||
"@radix-ui/react-switch": "^1.2.6",
|
||||
"@radix-ui/react-tabs": "^1.1.13",
|
||||
"@radix-ui/react-tooltip": "^1.2.8",
|
||||
"@tailwindcss/postcss": "^4.1.16",
|
||||
"@tailwindcss/vite": "^4.1.16",
|
||||
"@tailwindcss/postcss": "^4.1.17",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"ahooks": "^3.9.6",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.1.1",
|
||||
"date-fns": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.548.0",
|
||||
"lucide-react": "^0.556.0",
|
||||
"next-themes": "^0.4.6",
|
||||
"postcss": "^8.5.6",
|
||||
"react-day-picker": "^9.11.1",
|
||||
"react-hook-form": "^7.66.0",
|
||||
"react-day-picker": "^9.11.3",
|
||||
"react-hook-form": "^7.68.0",
|
||||
"react-number-format": "^5.4.4",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"tailwindcss": "^4.1.16",
|
||||
"tailwind-merge": "^3.4.0",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
||||
"zod": "^4.1.12"
|
||||
"zod": "^4.1.13"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/lodash": "^4.17.20",
|
||||
"typescript": "^5.9.2",
|
||||
"vite": "^7.2.0",
|
||||
"@types/lodash": "^4.17.21",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.2.6",
|
||||
"vite-tsconfig-paths": "^5.1.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@repo/auth": "*",
|
||||
"@types/node": "^24.9.2",
|
||||
"@types/react": "^19.2.2",
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"typescript": "^5.9.3"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user