@bernierllc/email 1.0.1 → 1.1.1
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/README.md +76 -217
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/simple-email-service.d.ts +58 -0
- package/dist/simple-email-service.d.ts.map +1 -0
- package/dist/simple-email-service.js +416 -0
- package/dist/simple-email-service.js.map +1 -0
- package/dist/types.d.ts +311 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +33 -0
- package/dist/types.js.map +1 -0
- package/package.json +57 -22
- package/.eslintrc.json +0 -112
- package/.flake8 +0 -18
- package/.github/workflows/ci.yml +0 -300
- package/EXTRACTION_SUMMARY.md +0 -265
- package/IMPLEMENTATION_STATUS.md +0 -159
- package/OPEN_SOURCE_SETUP.md +0 -420
- package/PACKAGE_USAGE.md +0 -471
- package/examples/fastapi-example/main.py +0 -257
- package/examples/nextjs-example/next-env.d.ts +0 -13
- package/examples/nextjs-example/package.json +0 -26
- package/examples/nextjs-example/pages/admin/templates.tsx +0 -157
- package/examples/nextjs-example/tsconfig.json +0 -28
- package/packages/core/package.json +0 -70
- package/packages/core/rollup.config.js +0 -37
- package/packages/core/specification.md +0 -416
- package/packages/core/src/adapters/supabase.ts +0 -291
- package/packages/core/src/core/scheduler.ts +0 -356
- package/packages/core/src/core/template-manager.ts +0 -388
- package/packages/core/src/index.ts +0 -30
- package/packages/core/src/providers/base.ts +0 -104
- package/packages/core/src/providers/sendgrid.ts +0 -368
- package/packages/core/src/types/provider.ts +0 -91
- package/packages/core/src/types/scheduled.ts +0 -78
- package/packages/core/src/types/template.ts +0 -97
- package/packages/core/tsconfig.json +0 -23
- package/packages/python/README.md +0 -106
- package/packages/python/email_template_manager/__init__.py +0 -66
- package/packages/python/email_template_manager/config.py +0 -98
- package/packages/python/email_template_manager/core/magic_links.py +0 -245
- package/packages/python/email_template_manager/core/manager.py +0 -344
- package/packages/python/email_template_manager/core/scheduler.py +0 -473
- package/packages/python/email_template_manager/exceptions.py +0 -67
- package/packages/python/email_template_manager/models/magic_link.py +0 -59
- package/packages/python/email_template_manager/models/scheduled.py +0 -78
- package/packages/python/email_template_manager/models/template.py +0 -90
- package/packages/python/email_template_manager/providers/aws_ses.py +0 -44
- package/packages/python/email_template_manager/providers/base.py +0 -94
- package/packages/python/email_template_manager/providers/sendgrid.py +0 -325
- package/packages/python/email_template_manager/providers/smtp.py +0 -44
- package/packages/python/pyproject.toml +0 -133
- package/packages/python/setup.py +0 -93
- package/packages/python/specification.md +0 -930
- package/packages/react/README.md +0 -13
- package/packages/react/package.json +0 -105
- package/packages/react/rollup.config.js +0 -37
- package/packages/react/specification.md +0 -569
- package/packages/react/src/index.ts +0 -20
- package/packages/react/tsconfig.json +0 -24
- package/plans/email-template-manager_app-admin.md +0 -590
- package/src/index.js +0 -1
- package/test_package.py +0 -125
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools>=61.0", "wheel"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "email-template-manager"
|
|
7
|
-
version = "1.0.0"
|
|
8
|
-
description = "Universal email template management with scheduling and delivery"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
license = {text = "MIT"}
|
|
11
|
-
authors = [
|
|
12
|
-
{name = "Matt Bernier", email = "matt@example.com"},
|
|
13
|
-
]
|
|
14
|
-
maintainers = [
|
|
15
|
-
{name = "Matt Bernier", email = "matt@example.com"},
|
|
16
|
-
]
|
|
17
|
-
classifiers = [
|
|
18
|
-
"Development Status :: 4 - Beta",
|
|
19
|
-
"Intended Audience :: Developers",
|
|
20
|
-
"License :: OSI Approved :: MIT License",
|
|
21
|
-
"Operating System :: OS Independent",
|
|
22
|
-
"Programming Language :: Python :: 3",
|
|
23
|
-
"Programming Language :: Python :: 3.8",
|
|
24
|
-
"Programming Language :: Python :: 3.9",
|
|
25
|
-
"Programming Language :: Python :: 3.10",
|
|
26
|
-
"Programming Language :: Python :: 3.11",
|
|
27
|
-
"Programming Language :: Python :: 3.12",
|
|
28
|
-
"Topic :: Communications :: Email",
|
|
29
|
-
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
30
|
-
]
|
|
31
|
-
requires-python = ">=3.8"
|
|
32
|
-
dependencies = [
|
|
33
|
-
"pydantic>=2.0.0,<3.0.0",
|
|
34
|
-
"sqlalchemy>=2.0.0,<3.0.0",
|
|
35
|
-
"alembic>=1.12.0,<2.0.0",
|
|
36
|
-
"jinja2>=3.1.0,<4.0.0",
|
|
37
|
-
"httpx>=0.25.0,<1.0.0",
|
|
38
|
-
"cryptography>=41.0.0,<42.0.0",
|
|
39
|
-
"python-dateutil>=2.8.0,<3.0.0",
|
|
40
|
-
"pydantic-settings>=2.0.0,<3.0.0",
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
[project.optional-dependencies]
|
|
44
|
-
fastapi = [
|
|
45
|
-
"fastapi>=0.104.0,<1.0.0",
|
|
46
|
-
"uvicorn>=0.24.0,<1.0.0",
|
|
47
|
-
]
|
|
48
|
-
django = [
|
|
49
|
-
"django>=4.2.0,<5.0.0",
|
|
50
|
-
"djangorestframework>=3.14.0,<4.0.0",
|
|
51
|
-
]
|
|
52
|
-
flask = [
|
|
53
|
-
"flask>=2.3.0,<3.0.0",
|
|
54
|
-
"flask-sqlalchemy>=3.0.0,<4.0.0",
|
|
55
|
-
]
|
|
56
|
-
sendgrid = [
|
|
57
|
-
"sendgrid>=6.10.0,<7.0.0",
|
|
58
|
-
]
|
|
59
|
-
aws = [
|
|
60
|
-
"boto3>=1.28.0,<2.0.0",
|
|
61
|
-
]
|
|
62
|
-
dev = [
|
|
63
|
-
"pytest>=7.4.0,<8.0.0",
|
|
64
|
-
"pytest-asyncio>=0.21.0,<1.0.0",
|
|
65
|
-
"pytest-cov>=4.1.0,<5.0.0",
|
|
66
|
-
"black>=23.7.0,<24.0.0",
|
|
67
|
-
"isort>=5.12.0,<6.0.0",
|
|
68
|
-
"mypy>=1.5.0,<2.0.0",
|
|
69
|
-
"pre-commit>=3.4.0,<4.0.0",
|
|
70
|
-
]
|
|
71
|
-
all = [
|
|
72
|
-
"fastapi>=0.104.0,<1.0.0",
|
|
73
|
-
"uvicorn>=0.24.0,<1.0.0",
|
|
74
|
-
"django>=4.2.0,<5.0.0",
|
|
75
|
-
"djangorestframework>=3.14.0,<4.0.0",
|
|
76
|
-
"flask>=2.3.0,<3.0.0",
|
|
77
|
-
"flask-sqlalchemy>=3.0.0,<4.0.0",
|
|
78
|
-
"sendgrid>=6.10.0,<7.0.0",
|
|
79
|
-
"boto3>=1.28.0,<2.0.0",
|
|
80
|
-
]
|
|
81
|
-
|
|
82
|
-
[project.urls]
|
|
83
|
-
Homepage = "https://github.com/mattbernier/email-template-manager"
|
|
84
|
-
Documentation = "https://email-template-manager.readthedocs.io"
|
|
85
|
-
Repository = "https://github.com/mattbernier/email-template-manager"
|
|
86
|
-
"Bug Tracker" = "https://github.com/mattbernier/email-template-manager/issues"
|
|
87
|
-
|
|
88
|
-
[tool.setuptools.packages.find]
|
|
89
|
-
exclude = ["tests", "tests.*"]
|
|
90
|
-
|
|
91
|
-
[tool.black]
|
|
92
|
-
line-length = 88
|
|
93
|
-
target-version = ['py38']
|
|
94
|
-
include = '\.pyi?$'
|
|
95
|
-
extend-exclude = '''
|
|
96
|
-
/(
|
|
97
|
-
# directories
|
|
98
|
-
\.eggs
|
|
99
|
-
| \.git
|
|
100
|
-
| \.hg
|
|
101
|
-
| \.mypy_cache
|
|
102
|
-
| \.tox
|
|
103
|
-
| \.venv
|
|
104
|
-
| build
|
|
105
|
-
| dist
|
|
106
|
-
)/
|
|
107
|
-
'''
|
|
108
|
-
|
|
109
|
-
[tool.isort]
|
|
110
|
-
profile = "black"
|
|
111
|
-
multi_line_output = 3
|
|
112
|
-
line_length = 88
|
|
113
|
-
known_first_party = ["email_template_manager"]
|
|
114
|
-
|
|
115
|
-
[tool.mypy]
|
|
116
|
-
python_version = "3.8"
|
|
117
|
-
warn_return_any = true
|
|
118
|
-
warn_unused_configs = true
|
|
119
|
-
disallow_untyped_defs = true
|
|
120
|
-
disallow_incomplete_defs = true
|
|
121
|
-
check_untyped_defs = true
|
|
122
|
-
disallow_untyped_decorators = true
|
|
123
|
-
no_implicit_optional = true
|
|
124
|
-
warn_redundant_casts = true
|
|
125
|
-
warn_unused_ignores = true
|
|
126
|
-
warn_no_return = true
|
|
127
|
-
warn_unreachable = true
|
|
128
|
-
|
|
129
|
-
[tool.pytest.ini_options]
|
|
130
|
-
minversion = "6.0"
|
|
131
|
-
addopts = "-ra -q --strict-markers --cov=email_template_manager --cov-report=term-missing"
|
|
132
|
-
testpaths = ["tests"]
|
|
133
|
-
pythonpath = ["."]
|
package/packages/python/setup.py
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Copyright (c) 2025 Bernier LLC
|
|
3
|
-
|
|
4
|
-
This file is licensed to the client under a limited-use license.
|
|
5
|
-
The client may use and modify this code *only within the scope of the project it was delivered for*.
|
|
6
|
-
Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
#!/usr/bin/env python
|
|
10
|
-
|
|
11
|
-
from setuptools import setup, find_packages
|
|
12
|
-
|
|
13
|
-
with open("README.md", "r", encoding="utf-8") as fh:
|
|
14
|
-
long_description = fh.read()
|
|
15
|
-
|
|
16
|
-
# Core dependencies
|
|
17
|
-
install_requires = [
|
|
18
|
-
"pydantic>=2.0.0,<3.0.0",
|
|
19
|
-
"sqlalchemy>=2.0.0,<3.0.0",
|
|
20
|
-
"alembic>=1.12.0,<2.0.0",
|
|
21
|
-
"jinja2>=3.1.0,<4.0.0",
|
|
22
|
-
"httpx>=0.25.0,<1.0.0",
|
|
23
|
-
"cryptography>=41.0.0,<42.0.0",
|
|
24
|
-
"python-dateutil>=2.8.0,<3.0.0",
|
|
25
|
-
"pydantic-settings>=2.0.0,<3.0.0",
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
# Framework-specific extras
|
|
29
|
-
extras_require = {
|
|
30
|
-
"fastapi": [
|
|
31
|
-
"fastapi>=0.104.0,<1.0.0",
|
|
32
|
-
"uvicorn>=0.24.0,<1.0.0",
|
|
33
|
-
],
|
|
34
|
-
"django": [
|
|
35
|
-
"django>=4.2.0,<5.0.0",
|
|
36
|
-
"djangorestframework>=3.14.0,<4.0.0",
|
|
37
|
-
],
|
|
38
|
-
"flask": [
|
|
39
|
-
"flask>=2.3.0,<3.0.0",
|
|
40
|
-
"flask-sqlalchemy>=3.0.0,<4.0.0",
|
|
41
|
-
],
|
|
42
|
-
"sendgrid": [
|
|
43
|
-
"sendgrid>=6.10.0,<7.0.0",
|
|
44
|
-
],
|
|
45
|
-
"aws": [
|
|
46
|
-
"boto3>=1.28.0,<2.0.0",
|
|
47
|
-
],
|
|
48
|
-
"dev": [
|
|
49
|
-
"pytest>=7.4.0,<8.0.0",
|
|
50
|
-
"pytest-asyncio>=0.21.0,<1.0.0",
|
|
51
|
-
"pytest-cov>=4.1.0,<5.0.0",
|
|
52
|
-
"black>=23.7.0,<24.0.0",
|
|
53
|
-
"isort>=5.12.0,<6.0.0",
|
|
54
|
-
"mypy>=1.5.0,<2.0.0",
|
|
55
|
-
"pre-commit>=3.4.0,<4.0.0",
|
|
56
|
-
],
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
# Add 'all' extra that includes everything
|
|
60
|
-
extras_require["all"] = [
|
|
61
|
-
dep for deps in extras_require.values() for dep in deps
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
setup(
|
|
65
|
-
name="email-template-manager",
|
|
66
|
-
version="1.0.0",
|
|
67
|
-
author="Matt Bernier",
|
|
68
|
-
author_email="matt@example.com",
|
|
69
|
-
description="Universal email template management with scheduling and delivery",
|
|
70
|
-
long_description=long_description,
|
|
71
|
-
long_description_content_type="text/markdown",
|
|
72
|
-
url="https://github.com/mattbernier/email-template-manager",
|
|
73
|
-
packages=find_packages(exclude=["tests", "tests.*"]),
|
|
74
|
-
classifiers=[
|
|
75
|
-
"Development Status :: 4 - Beta",
|
|
76
|
-
"Intended Audience :: Developers",
|
|
77
|
-
"License :: OSI Approved :: MIT License",
|
|
78
|
-
"Operating System :: OS Independent",
|
|
79
|
-
"Programming Language :: Python :: 3",
|
|
80
|
-
"Programming Language :: Python :: 3.8",
|
|
81
|
-
"Programming Language :: Python :: 3.9",
|
|
82
|
-
"Programming Language :: Python :: 3.10",
|
|
83
|
-
"Programming Language :: Python :: 3.11",
|
|
84
|
-
"Programming Language :: Python :: 3.12",
|
|
85
|
-
"Topic :: Communications :: Email",
|
|
86
|
-
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
87
|
-
],
|
|
88
|
-
python_requires=">=3.8",
|
|
89
|
-
install_requires=install_requires,
|
|
90
|
-
extras_require=extras_require,
|
|
91
|
-
include_package_data=True,
|
|
92
|
-
zip_safe=False,
|
|
93
|
-
)
|