CHANGELOG.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
docs/admin.md
docs/api.md
docs/architecture.md
docs/changelog.md
docs/ecosystem.md
docs/index.md
docs/messages.md
docs/modern.md
docs/quickstart.md
docs/reliability.md
docs/resources.md
docs/usage.md
docs/version-support.md
docs/webhooks.md
docs/adr/001-pydantic-src-version-matrix.md
docs/adr/002-admin-htmx.md
examples/.env.example
examples/README.md
examples/basic_text.py
examples/custom_client.py
examples/image_async.py
examples/template_message.py
examples/v3_bulk.py
examples/v3_flow_endpoint.py
examples/v3_messages.py
examples/v3_modern.py
examples/v3_resources.py
examples/v3_webhooks.py
src/whatsloon/__init__.py
src/whatsloon/address.py
src/whatsloon/async_client.py
src/whatsloon/audio.py
src/whatsloon/base.py
src/whatsloon/client.py
src/whatsloon/compat.py
src/whatsloon/contact.py
src/whatsloon/contextual_reply.py
src/whatsloon/cta.py
src/whatsloon/document.py
src/whatsloon/exceptions.py
src/whatsloon/flow.py
src/whatsloon/image.py
src/whatsloon/list.py
src/whatsloon/location.py
src/whatsloon/location_request.py
src/whatsloon/py.typed
src/whatsloon/reaction.py
src/whatsloon/read_receipts.py
src/whatsloon/reply_buttons.py
src/whatsloon/sticker.py
src/whatsloon/template.py
src/whatsloon/text.py
src/whatsloon/typing_indicator.py
src/whatsloon/video.py
src/whatsloon.egg-info/PKG-INFO
src/whatsloon.egg-info/SOURCES.txt
src/whatsloon.egg-info/dependency_links.txt
src/whatsloon.egg-info/entry_points.txt
src/whatsloon.egg-info/requires.txt
src/whatsloon.egg-info/top_level.txt
src/whatsloon/admin/__init__.py
src/whatsloon/admin/app.py
src/whatsloon/admin/auth.py
src/whatsloon/admin/ui.py
src/whatsloon/admin/views.py
src/whatsloon/admin/static/admin.css
src/whatsloon/admin/templates/_conversation_rows.html
src/whatsloon/admin/templates/_event_rows.html
src/whatsloon/admin/templates/_message_rows.html
src/whatsloon/admin/templates/_pagination.html
src/whatsloon/admin/templates/base.html
src/whatsloon/admin/templates/conversation.html
src/whatsloon/admin/templates/conversations.html
src/whatsloon/admin/templates/dashboard.html
src/whatsloon/admin/templates/error.html
src/whatsloon/admin/templates/events.html
src/whatsloon/admin/templates/groups.html
src/whatsloon/admin/templates/login.html
src/whatsloon/admin/templates/media.html
src/whatsloon/admin/templates/message_detail.html
src/whatsloon/admin/templates/messages.html
src/whatsloon/admin/templates/templates.html
src/whatsloon/api_versions/__init__.py
src/whatsloon/api_versions/base.py
src/whatsloon/api_versions/registry.py
src/whatsloon/api_versions/v19_0/__init__.py
src/whatsloon/api_versions/v19_0/adapter.py
src/whatsloon/api_versions/v20_0/__init__.py
src/whatsloon/api_versions/v20_0/adapter.py
src/whatsloon/api_versions/v26_0/__init__.py
src/whatsloon/api_versions/v26_0/adapter.py
src/whatsloon/auth/__init__.py
src/whatsloon/auth/credentials.py
src/whatsloon/auth/providers.py
src/whatsloon/business/__init__.py
src/whatsloon/business/models.py
src/whatsloon/business/service.py
src/whatsloon/calls/__init__.py
src/whatsloon/calls/models.py
src/whatsloon/calls/service.py
src/whatsloon/cli/__init__.py
src/whatsloon/cli/commands.py
src/whatsloon/cli/main.py
src/whatsloon/config/__init__.py
src/whatsloon/config/capabilities.py
src/whatsloon/config/retry.py
src/whatsloon/config/settings.py
src/whatsloon/config/versions.py
src/whatsloon/flows/__init__.py
src/whatsloon/flows/crypto.py
src/whatsloon/groups/__init__.py
src/whatsloon/groups/models.py
src/whatsloon/groups/service.py
src/whatsloon/media/__init__.py
src/whatsloon/media/models.py
src/whatsloon/media/service.py
src/whatsloon/messages/__init__.py
src/whatsloon/messages/builders.py
src/whatsloon/messages/models.py
src/whatsloon/messages/serializers.py
src/whatsloon/messages/service.py
src/whatsloon/observability/__init__.py
src/whatsloon/observability/metrics.py
src/whatsloon/observability/middleware.py
src/whatsloon/observability/tracing.py
src/whatsloon/persistence/__init__.py
src/whatsloon/persistence/base.py
src/whatsloon/persistence/models.py
src/whatsloon/persistence/policies.py
src/whatsloon/persistence/repositories.py
src/whatsloon/persistence/sql.py
src/whatsloon/persistence/migrations/env.py
src/whatsloon/persistence/migrations/versions/0001_initial.py
src/whatsloon/reliability/__init__.py
src/whatsloon/reliability/bulk.py
src/whatsloon/reliability/circuit.py
src/whatsloon/reliability/rate.py
src/whatsloon/templates/__init__.py
src/whatsloon/templates/models.py
src/whatsloon/templates/service.py
src/whatsloon/testing/__init__.py
src/whatsloon/testing/fakes.py
src/whatsloon/transport/__init__.py
src/whatsloon/transport/async_.py
src/whatsloon/transport/base.py
src/whatsloon/transport/middleware.py
src/whatsloon/transport/request.py
src/whatsloon/transport/response.py
src/whatsloon/transport/sync.py
src/whatsloon/webhooks/__init__.py
src/whatsloon/webhooks/events.py
src/whatsloon/webhooks/fastapi.py
src/whatsloon/webhooks/filters.py
src/whatsloon/webhooks/parser.py
src/whatsloon/webhooks/processor.py
src/whatsloon/webhooks/router.py
src/whatsloon/webhooks/verifier.py
tests/test_address.py
tests/test_audio.py
tests/test_base.py
tests/test_contact.py
tests/test_contextual_reply.py
tests/test_cta.py
tests/test_document.py
tests/test_flow.py
tests/test_image.py
tests/test_list.py
tests/test_location.py
tests/test_location_request.py
tests/test_mixins.py
tests/test_package.py
tests/test_reaction.py
tests/test_read_receipts.py
tests/test_reply_buttons.py
tests/test_sticker.py
tests/test_template.py
tests/test_text_message.py
tests/test_typing_indicator.py
tests/test_video.py