Rename djarea to mizan and fix React casing conventions

Rename the package from djarea to mizan across the entire codebase —
Python package, React library, generators, tests, and examples. Fix
JSX/hook casing (MizanProvider, useMizan, etc.) that broke when the
original PascalCase names were lowercased during the rename.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-31 20:01:03 -04:00
parent bf837e598b
commit c866142770
118 changed files with 1778 additions and 1433 deletions

View File

@@ -1,9 +1,9 @@
/**
* Djarea E2E Integration Tests
* mizan E2E Integration Tests
*
* Real Chromium → Real React app (generated hooks) → Real Django backend
*
* Every test uses the generated Djarea API, not raw call() or fetch().
* Every test uses the generated mizan API, not raw call() or fetch().
*/
import { test, expect } from '@playwright/test'
@@ -150,7 +150,7 @@ test.describe('generated form hooks', () => {
expect(result.fields.password).toBeDefined()
})
test('useContactForm loads schema with DjareaFormMeta', async ({ page }) => {
test('useContactForm loads schema with mizanFormMeta', async ({ page }) => {
await fixture(page, 'form-contact-schema')
const result = await getResult(page)
expect(result.title).toBe('Contact Us')

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8" /><title>Djarea E2E Harness</title></head>
<head><meta charset="UTF-8" /><title>mizan E2E Harness</title></head>
<body><div id="root"></div><script type="module" src="/src/main.tsx"></script></body>
</html>

View File

@@ -1,5 +1,5 @@
{
"name": "djarea-e2e-harness",
"name": "mizan-e2e-harness",
"private": true,
"type": "module",
"scripts": {
@@ -7,7 +7,7 @@
"dev": "vite --port 5174"
},
"dependencies": {
"@rythazhur/djarea": "file:../../react",
"@rythazhur/mizan": "file:../../react",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"zod": "^4.3.6"

View File

@@ -1,5 +1,5 @@
/**
* Djarea API - Consolidated Exports
* mizan API - Consolidated Exports
*
* Import everything from here:
*
@@ -15,11 +15,11 @@
* ```
*/
// AUTO-GENERATED by djarea - do not edit manually
// AUTO-GENERATED by mizan - do not edit manually
// Regenerate with: npm run schemas
// =============================================================================
// Djarea Provider & Hooks
// mizan Provider & Hooks
// =============================================================================
export {
@@ -55,9 +55,9 @@ export {
useJwtObtain,
useJwtRefresh,
// Re-exports from djarea library
useDjarea,
useDjareaStatus,
// Re-exports from mizan library
usemizan,
usemizanStatus,
usePush,
DjangoError,
type ConnectionStatus,

View File

@@ -1,7 +1,7 @@
/**
* E2E Test Fixtures
*
* Each fixture uses GENERATED Djarea hooks (not raw call()).
* Each fixture uses GENERATED mizan hooks (not raw call()).
* Playwright reads the DOM to verify behavior.
*
* URL hash selects the fixture: #echo, #add, #multiply, etc.
@@ -9,7 +9,7 @@
import { useState, useEffect, useRef } from 'react'
// Generated typed hooks — the actual Djarea API
// Generated typed hooks — the actual mizan API
import {
DjangoContext,
useEcho,
@@ -24,7 +24,7 @@ import {
usePermissionCheckFn,
useCurrentUser,
DjangoError,
useDjarea,
useMizan,
} from './api/generated.django'
import { useContactForm, useLoginForm } from './api/generated.forms'
import { useChatChannel } from './api/generated.channels.hooks'
@@ -121,7 +121,7 @@ function Multiply() {
function NotFound() {
// Deliberately call a non-existent function via the raw primitive
const { call } = useDjarea()
const { call } = useMizan()
const [error, setError] = useState<unknown>()
useEffect(() => { call('does_not_exist').catch(setError) }, [call])
return <Result error={error} />

View File

@@ -4,7 +4,7 @@ import { Fixtures } from './fixtures'
function App() {
return (
<DjangoContext baseUrl="/api/djarea">
<DjangoContext baseUrl="/api/mizan">
<Fixtures />
</DjangoContext>
)

View File

@@ -8,17 +8,17 @@ export default defineConfig({
plugins: [react()],
resolve: {
alias: {
'djarea/channels': path.join(reactPkg, 'channels/index.ts'),
'djarea/client/react': path.join(reactPkg, 'client/react.ts'),
'djarea/client/nextjs': path.join(reactPkg, 'client/nextjs.tsx'),
'djarea/client': path.join(reactPkg, 'client/index.ts'),
'djarea/jwt': path.join(reactPkg, 'jwt/index.ts'),
'djarea/allauth/nextjs': path.join(reactPkg, 'allauth/nextjs.tsx'),
'djarea/allauth': path.join(reactPkg, 'allauth/index.ts'),
'djarea': path.join(reactPkg, 'index.ts'),
'@rythazhur/djarea/channels': path.join(reactPkg, 'channels/index.ts'),
'@rythazhur/djarea/jwt': path.join(reactPkg, 'jwt/index.ts'),
'@rythazhur/djarea': path.join(reactPkg, 'index.ts'),
'mizan/channels': path.join(reactPkg, 'channels/index.ts'),
'mizan/client/react': path.join(reactPkg, 'client/react.ts'),
'mizan/client/nextjs': path.join(reactPkg, 'client/nextjs.tsx'),
'mizan/client': path.join(reactPkg, 'client/index.ts'),
'mizan/jwt': path.join(reactPkg, 'jwt/index.ts'),
'mizan/allauth/nextjs': path.join(reactPkg, 'allauth/nextjs.tsx'),
'mizan/allauth': path.join(reactPkg, 'allauth/index.ts'),
'mizan': path.join(reactPkg, 'index.ts'),
'@rythazhur/mizan/channels': path.join(reactPkg, 'channels/index.ts'),
'@rythazhur/mizan/jwt': path.join(reactPkg, 'jwt/index.ts'),
'@rythazhur/mizan': path.join(reactPkg, 'index.ts'),
},
},
server: {