@djangocfg/ext-newsletter 1.0.4 → 1.0.7
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.
- package/dist/config.cjs +1 -1
- package/dist/config.js +1 -1
- package/dist/hooks.cjs +2 -2
- package/dist/hooks.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +7 -7
- package/src/api/generated/ext_newsletter/CLAUDE.md +71 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__bulk_email.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__campaigns.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__logs.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__newsletters.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__subscriptions.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/ext_newsletter__newsletter__testing.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/fetchers/index.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__bulk_email.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__campaigns.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__logs.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__newsletters.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__subscriptions.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/ext_newsletter__newsletter__testing.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/hooks/index.ts +1 -0
- package/src/api/generated/ext_newsletter/_utils/schemas/index.ts +1 -0
- package/src/api/generated/ext_newsletter/api-instance.ts +1 -0
- package/src/api/generated/ext_newsletter/enums.ts +1 -0
- package/src/api/generated/ext_newsletter/errors.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__bulk_email/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__bulk_email/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__campaigns/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__campaigns/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__logs/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__logs/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__newsletters/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__newsletters/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__subscriptions/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__subscriptions/models.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__testing/index.ts +1 -0
- package/src/api/generated/ext_newsletter/ext_newsletter__newsletter__testing/models.ts +1 -0
- package/src/api/generated/ext_newsletter/http.ts +1 -0
- package/src/api/generated/ext_newsletter/index.ts +1 -0
- package/src/api/generated/ext_newsletter/logger.ts +1 -0
- package/src/api/generated/ext_newsletter/retry.ts +1 -0
- package/src/api/generated/ext_newsletter/storage.ts +1 -0
- package/src/api/generated/ext_newsletter/validation-events.ts +1 -0
- package/src/api/index.ts +2 -1
- package/src/components/Hero/index.tsx +4 -1
- package/src/config.ts +1 -0
- package/src/contexts/newsletter/NewsletterContext.tsx +9 -12
package/dist/config.cjs
CHANGED
|
@@ -27,7 +27,7 @@ var import_ext_base = require("@djangocfg/ext-base");
|
|
|
27
27
|
// package.json
|
|
28
28
|
var package_default = {
|
|
29
29
|
name: "@djangocfg/ext-newsletter",
|
|
30
|
-
version: "1.0.
|
|
30
|
+
version: "1.0.6",
|
|
31
31
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
32
32
|
keywords: [
|
|
33
33
|
"django",
|
package/dist/config.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createExtensionConfig } from "@djangocfg/ext-base";
|
|
|
4
4
|
// package.json
|
|
5
5
|
var package_default = {
|
|
6
6
|
name: "@djangocfg/ext-newsletter",
|
|
7
|
-
version: "1.0.
|
|
7
|
+
version: "1.0.6",
|
|
8
8
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
9
9
|
keywords: [
|
|
10
10
|
"django",
|
package/dist/hooks.cjs
CHANGED
|
@@ -9,8 +9,8 @@ var useSWR = require('swr');
|
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var hooks = require('@djangocfg/ext-base/hooks');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
|
-
var uiNextjs = require('@djangocfg/ui-nextjs');
|
|
13
12
|
var lucideReact = require('lucide-react');
|
|
13
|
+
var uiNextjs = require('@djangocfg/ui-nextjs');
|
|
14
14
|
|
|
15
15
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
16
|
|
|
@@ -2089,7 +2089,7 @@ var apiNewsletter = api.createExtensionAPI(API);
|
|
|
2089
2089
|
// package.json
|
|
2090
2090
|
var package_default = {
|
|
2091
2091
|
name: "@djangocfg/ext-newsletter",
|
|
2092
|
-
version: "1.0.
|
|
2092
|
+
version: "1.0.6",
|
|
2093
2093
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
2094
2094
|
keywords: [
|
|
2095
2095
|
"django",
|
package/dist/hooks.js
CHANGED
|
@@ -7,8 +7,8 @@ import useSWR, { useSWRConfig } from 'swr';
|
|
|
7
7
|
import { createContext, useContext, useState } from 'react';
|
|
8
8
|
import { ExtensionProvider } from '@djangocfg/ext-base/hooks';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
10
|
-
import { Button, Input } from '@djangocfg/ui-nextjs';
|
|
11
10
|
import { Mail, Loader2, CheckCircle2, AlertCircle } from 'lucide-react';
|
|
11
|
+
import { Button, Input } from '@djangocfg/ui-nextjs';
|
|
12
12
|
|
|
13
13
|
var __defProp = Object.defineProperty;
|
|
14
14
|
var __export = (target, all) => {
|
|
@@ -2082,7 +2082,7 @@ var apiNewsletter = createExtensionAPI(API);
|
|
|
2082
2082
|
// package.json
|
|
2083
2083
|
var package_default = {
|
|
2084
2084
|
name: "@djangocfg/ext-newsletter",
|
|
2085
|
-
version: "1.0.
|
|
2085
|
+
version: "1.0.6",
|
|
2086
2086
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
2087
2087
|
keywords: [
|
|
2088
2088
|
"django",
|
package/dist/index.cjs
CHANGED
|
@@ -2082,7 +2082,7 @@ var apiNewsletter = api.createExtensionAPI(API);
|
|
|
2082
2082
|
// package.json
|
|
2083
2083
|
var package_default = {
|
|
2084
2084
|
name: "@djangocfg/ext-newsletter",
|
|
2085
|
-
version: "1.0.
|
|
2085
|
+
version: "1.0.6",
|
|
2086
2086
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
2087
2087
|
keywords: [
|
|
2088
2088
|
"django",
|
package/dist/index.js
CHANGED
|
@@ -2076,7 +2076,7 @@ var apiNewsletter = createExtensionAPI(API);
|
|
|
2076
2076
|
// package.json
|
|
2077
2077
|
var package_default = {
|
|
2078
2078
|
name: "@djangocfg/ext-newsletter",
|
|
2079
|
-
version: "1.0.
|
|
2079
|
+
version: "1.0.6",
|
|
2080
2080
|
description: "Newsletter and subscription management extension for DjangoCFG",
|
|
2081
2081
|
keywords: [
|
|
2082
2082
|
"django",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djangocfg/ext-newsletter",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"description": "Newsletter and subscription management extension for DjangoCFG",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"django",
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"check": "tsc --noEmit"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@djangocfg/api": "^2.1.
|
|
63
|
-
"@djangocfg/ext-base": "^1.0.
|
|
64
|
-
"@djangocfg/ui-nextjs": "^2.1.
|
|
62
|
+
"@djangocfg/api": "^2.1.43",
|
|
63
|
+
"@djangocfg/ext-base": "^1.0.7",
|
|
64
|
+
"@djangocfg/ui-nextjs": "^2.1.43",
|
|
65
65
|
"consola": "^3.4.2",
|
|
66
66
|
"lucide-react": "^0.545.0",
|
|
67
67
|
"next": "^15.5.7",
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"zod": "^4.1.13"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@djangocfg/api": "^2.1.
|
|
76
|
-
"@djangocfg/ext-base": "^1.0.
|
|
77
|
-
"@djangocfg/typescript-config": "^2.1.
|
|
75
|
+
"@djangocfg/api": "^2.1.43",
|
|
76
|
+
"@djangocfg/ext-base": "^1.0.7",
|
|
77
|
+
"@djangocfg/typescript-config": "^2.1.43",
|
|
78
78
|
"@types/node": "^24.7.2",
|
|
79
79
|
"@types/react": "^19.0.0",
|
|
80
80
|
"consola": "^3.4.2",
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Django CFG API - Typescript Client
|
|
2
|
+
|
|
3
|
+
Auto-generated. **Do not edit manually.**
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
python manage.py generate_client --groups ext_newsletter --typescript
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Stats
|
|
10
|
+
|
|
11
|
+
| | |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Version | 3.0.3 |
|
|
14
|
+
| Operations | 17 |
|
|
15
|
+
| Schemas | 22 |
|
|
16
|
+
|
|
17
|
+
## Resources
|
|
18
|
+
|
|
19
|
+
- **Bulk Email** (1 ops)
|
|
20
|
+
- **Campaigns** (6 ops)
|
|
21
|
+
- **Logs** (1 ops)
|
|
22
|
+
- **Newsletters** (2 ops)
|
|
23
|
+
- **Subscriptions** (3 ops)
|
|
24
|
+
- **Testing** (1 ops)
|
|
25
|
+
- **newsletter** (3 ops)
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { APIClient } from './';
|
|
31
|
+
|
|
32
|
+
const client = new APIClient({ baseUrl, token });
|
|
33
|
+
|
|
34
|
+
await client.bulk email.create({ ... });
|
|
35
|
+
await client.campaigns.list();
|
|
36
|
+
await client.campaigns.retrieve({ id: 1 });
|
|
37
|
+
await client.campaigns.create({ ... });
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**SWR Hooks:**
|
|
41
|
+
```typescript
|
|
42
|
+
import { useBulk emailList } from './hooks';
|
|
43
|
+
const { data, isLoading } = useBulk emailList();
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## How It Works
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
DRF ViewSets → drf-spectacular → OpenAPI → IR Parser → Generator → This Client
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Configuration** (`api/config.py`):
|
|
53
|
+
```python
|
|
54
|
+
openapi_client = OpenAPIClientConfig(
|
|
55
|
+
enabled=True,
|
|
56
|
+
groups=[OpenAPIGroupConfig(name="ext_newsletter", apps=["..."])],
|
|
57
|
+
generate_zod_schemas=True, # → schemas.ts
|
|
58
|
+
generate_fetchers=True, # → fetchers.ts
|
|
59
|
+
generate_swr_hooks=True, # → hooks.ts
|
|
60
|
+
)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Copy to Next.js** (if `nextjs_admin` configured):
|
|
64
|
+
```python
|
|
65
|
+
nextjs_admin = NextJsAdminConfig(
|
|
66
|
+
project_path="../frontend/apps/...",
|
|
67
|
+
api_output_path="app/_lib/api/generated",
|
|
68
|
+
)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
@see https://djangocfg.com/docs/features/api-generation
|
package/src/api/index.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { createExtensionAPI } from '@djangocfg/ext-base/api';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Newsletter Extension API
|
|
3
5
|
*
|
|
4
6
|
* Pre-configured API instance with shared authentication
|
|
5
7
|
*/
|
|
6
8
|
import { API } from './generated/ext_newsletter';
|
|
7
|
-
import { createExtensionAPI } from '@djangocfg/ext-base/api';
|
|
8
9
|
|
|
9
10
|
export const apiNewsletter = createExtensionAPI(API);
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
'use client';
|
|
7
7
|
|
|
8
|
+
import { AlertCircle, CheckCircle2, Loader2, Mail } from 'lucide-react';
|
|
8
9
|
import React, { useState } from 'react';
|
|
10
|
+
|
|
9
11
|
import { Button, Input } from '@djangocfg/ui-nextjs';
|
|
10
|
-
|
|
12
|
+
|
|
11
13
|
import { newsletterLogger } from '../../utils/logger';
|
|
14
|
+
|
|
12
15
|
import type { HeroProps } from './types';
|
|
13
16
|
|
|
14
17
|
export function Hero({
|
package/src/config.ts
CHANGED
|
@@ -12,24 +12,21 @@
|
|
|
12
12
|
|
|
13
13
|
"use client";
|
|
14
14
|
|
|
15
|
-
import { createContext,
|
|
15
|
+
import { createContext, ReactNode, useContext } from 'react';
|
|
16
16
|
import { useSWRConfig } from 'swr';
|
|
17
|
+
|
|
17
18
|
import { ExtensionProvider } from '@djangocfg/ext-base/hooks';
|
|
18
19
|
|
|
19
|
-
import { extensionConfig } from '../../config';
|
|
20
20
|
import { apiNewsletter } from '../../api';
|
|
21
21
|
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
useDeleteNewsletterCampaignsDestroy,
|
|
28
|
-
useCreateNewsletterCampaignsSendCreate,
|
|
29
|
-
useNewsletterSubscriptionsList,
|
|
30
|
-
useCreateNewsletterSubscribeCreate,
|
|
31
|
-
useCreateNewsletterUnsubscribeCreate,
|
|
22
|
+
useCreateNewsletterCampaignsCreate, useCreateNewsletterCampaignsSendCreate,
|
|
23
|
+
useCreateNewsletterSubscribeCreate, useCreateNewsletterUnsubscribeCreate,
|
|
24
|
+
useDeleteNewsletterCampaignsDestroy, useNewsletterCampaignsList, useNewsletterCampaignsRetrieve,
|
|
25
|
+
useNewsletterSubscriptionsList, usePartialUpdateNewsletterCampaignsPartialUpdate,
|
|
26
|
+
useUpdateNewsletterCampaignsUpdate
|
|
32
27
|
} from '../../api/generated/ext_newsletter/_utils/hooks';
|
|
28
|
+
import { extensionConfig } from '../../config';
|
|
29
|
+
|
|
33
30
|
import type {
|
|
34
31
|
NewsletterCampaign,
|
|
35
32
|
NewsletterCampaignRequest,
|