vaif-client 0.1.0__tar.gz
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.
- vaif_client-0.1.0/.gitignore +100 -0
- vaif_client-0.1.0/PKG-INFO +95 -0
- vaif_client-0.1.0/README.md +60 -0
- vaif_client-0.1.0/pyproject.toml +84 -0
- vaif_client-0.1.0/src/vaif/__init__.py +96 -0
- vaif_client-0.1.0/src/vaif/ai.py +546 -0
- vaif_client-0.1.0/src/vaif/auth.py +552 -0
- vaif_client-0.1.0/src/vaif/client.py +320 -0
- vaif_client-0.1.0/src/vaif/database.py +555 -0
- vaif_client-0.1.0/src/vaif/functions.py +188 -0
- vaif_client-0.1.0/src/vaif/realtime.py +397 -0
- vaif_client-0.1.0/src/vaif/storage.py +495 -0
- vaif_client-0.1.0/src/vaif/typegen.py +614 -0
- vaif_client-0.1.0/src/vaif/types.py +508 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
.pnpm-store/
|
|
4
|
+
|
|
5
|
+
# Build outputs
|
|
6
|
+
dist/
|
|
7
|
+
.dist/
|
|
8
|
+
build/
|
|
9
|
+
out/
|
|
10
|
+
*.tsbuildinfo
|
|
11
|
+
|
|
12
|
+
# Turbo
|
|
13
|
+
.turbo/
|
|
14
|
+
|
|
15
|
+
# Environment files (NEVER commit these)
|
|
16
|
+
.env
|
|
17
|
+
.env.local
|
|
18
|
+
.env.*.local
|
|
19
|
+
.env.development
|
|
20
|
+
.env.production
|
|
21
|
+
*.env
|
|
22
|
+
|
|
23
|
+
# IDE and editors
|
|
24
|
+
.idea/
|
|
25
|
+
.vscode/
|
|
26
|
+
*.swp
|
|
27
|
+
*.swo
|
|
28
|
+
*~
|
|
29
|
+
.DS_Store
|
|
30
|
+
|
|
31
|
+
# Claude Code local settings (may contain tokens)
|
|
32
|
+
.claude/
|
|
33
|
+
|
|
34
|
+
# Cursor IDE
|
|
35
|
+
.cursor/
|
|
36
|
+
|
|
37
|
+
# Logs
|
|
38
|
+
logs/
|
|
39
|
+
*.log
|
|
40
|
+
npm-debug.log*
|
|
41
|
+
pnpm-debug.log*
|
|
42
|
+
yarn-debug.log*
|
|
43
|
+
yarn-error.log*
|
|
44
|
+
|
|
45
|
+
# Testing
|
|
46
|
+
coverage/
|
|
47
|
+
.nyc_output/
|
|
48
|
+
|
|
49
|
+
# Database
|
|
50
|
+
packages/db/drizzle/
|
|
51
|
+
*.sqlite
|
|
52
|
+
*.db
|
|
53
|
+
|
|
54
|
+
# Runtime artifacts
|
|
55
|
+
apps/runtime/function-bundles/
|
|
56
|
+
|
|
57
|
+
# Generated code
|
|
58
|
+
packages/sdk/src/generated/
|
|
59
|
+
packages/sdk-expo/src/generated/
|
|
60
|
+
|
|
61
|
+
# OS files
|
|
62
|
+
.DS_Store
|
|
63
|
+
Thumbs.db
|
|
64
|
+
|
|
65
|
+
# Temporary files
|
|
66
|
+
tmp/
|
|
67
|
+
temp/
|
|
68
|
+
*.tmp
|
|
69
|
+
*.temp
|
|
70
|
+
|
|
71
|
+
# Backup files
|
|
72
|
+
backups/
|
|
73
|
+
*.bak
|
|
74
|
+
|
|
75
|
+
# Keys and certificates (never commit)
|
|
76
|
+
*.pem
|
|
77
|
+
*.key
|
|
78
|
+
*.cert
|
|
79
|
+
*.crt
|
|
80
|
+
id_rsa*
|
|
81
|
+
*.p12
|
|
82
|
+
*.pfx
|
|
83
|
+
|
|
84
|
+
# Secrets
|
|
85
|
+
secrets/
|
|
86
|
+
credentials/
|
|
87
|
+
*.secret
|
|
88
|
+
|
|
89
|
+
# Docker
|
|
90
|
+
.docker/
|
|
91
|
+
|
|
92
|
+
# Misc
|
|
93
|
+
.cache/
|
|
94
|
+
.parcel-cache/
|
|
95
|
+
.next/
|
|
96
|
+
.nuxt/
|
|
97
|
+
|
|
98
|
+
# Cloud Run env files with secrets
|
|
99
|
+
deploy/cloud-run/env-*.yaml
|
|
100
|
+
!deploy/cloud-run/env-*.yaml.example
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vaif-client
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Official VAIF Studio client library for Python
|
|
5
|
+
Project-URL: Homepage, https://vaif.studio
|
|
6
|
+
Project-URL: Documentation, https://vaif.studio/docs/sdk/python
|
|
7
|
+
Project-URL: Repository, https://github.com/vaifllc/vaif-studio
|
|
8
|
+
Project-URL: Issues, https://github.com/vaifllc/vaif-studio/issues
|
|
9
|
+
Author-email: VAIF Technologies <support@vaif.studio>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
Keywords: api,backend,database,realtime,supabase-alternative,vaif,vaif-studio
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.8
|
|
25
|
+
Requires-Dist: httpx>=0.25.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0.0
|
|
27
|
+
Requires-Dist: websockets>=12.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: mypy>=1.0.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
34
|
+
Description-Content-Type: text/markdown
|
|
35
|
+
|
|
36
|
+
# VAIF Studio Python SDK
|
|
37
|
+
|
|
38
|
+
The official Python client library for VAIF Studio.
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pip install vaif-client
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Quick Start
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from vaif import create_client
|
|
50
|
+
|
|
51
|
+
# Initialize the client
|
|
52
|
+
vaif = create_client(
|
|
53
|
+
project_id="your-project-id",
|
|
54
|
+
api_key="your-api-key"
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
# Query data
|
|
58
|
+
users = await vaif.db.from_("users").select("*").execute()
|
|
59
|
+
|
|
60
|
+
# Authentication
|
|
61
|
+
result = await vaif.auth.sign_in_with_password(
|
|
62
|
+
email="user@example.com",
|
|
63
|
+
password="password123"
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
# File storage
|
|
67
|
+
file = await vaif.storage.bucket("avatars").upload("avatar.png", data)
|
|
68
|
+
|
|
69
|
+
# Real-time subscriptions
|
|
70
|
+
channel = vaif.realtime.channel("room1")
|
|
71
|
+
await channel.on("broadcast", {"event": "message"}, lambda msg: print(msg))
|
|
72
|
+
await channel.subscribe()
|
|
73
|
+
|
|
74
|
+
# AI Copilot
|
|
75
|
+
schema = await vaif.ai.generate_schema(
|
|
76
|
+
prompt="Create a blog with posts and comments",
|
|
77
|
+
format="sql"
|
|
78
|
+
)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Features
|
|
82
|
+
|
|
83
|
+
- **Database**: Type-safe query builder with PostgreSQL support
|
|
84
|
+
- **Authentication**: Email, OAuth, magic links, and MFA
|
|
85
|
+
- **Storage**: S3-compatible file storage with CDN
|
|
86
|
+
- **Real-time**: WebSocket subscriptions for live updates
|
|
87
|
+
- **AI Copilot**: Natural language code generation
|
|
88
|
+
|
|
89
|
+
## Documentation
|
|
90
|
+
|
|
91
|
+
Visit [vaif.studio/docs/sdk/python](https://vaif.studio/docs/sdk/python) for full documentation.
|
|
92
|
+
|
|
93
|
+
## License
|
|
94
|
+
|
|
95
|
+
MIT
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# VAIF Studio Python SDK
|
|
2
|
+
|
|
3
|
+
The official Python client library for VAIF Studio.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install vaif-client
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from vaif import create_client
|
|
15
|
+
|
|
16
|
+
# Initialize the client
|
|
17
|
+
vaif = create_client(
|
|
18
|
+
project_id="your-project-id",
|
|
19
|
+
api_key="your-api-key"
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
# Query data
|
|
23
|
+
users = await vaif.db.from_("users").select("*").execute()
|
|
24
|
+
|
|
25
|
+
# Authentication
|
|
26
|
+
result = await vaif.auth.sign_in_with_password(
|
|
27
|
+
email="user@example.com",
|
|
28
|
+
password="password123"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# File storage
|
|
32
|
+
file = await vaif.storage.bucket("avatars").upload("avatar.png", data)
|
|
33
|
+
|
|
34
|
+
# Real-time subscriptions
|
|
35
|
+
channel = vaif.realtime.channel("room1")
|
|
36
|
+
await channel.on("broadcast", {"event": "message"}, lambda msg: print(msg))
|
|
37
|
+
await channel.subscribe()
|
|
38
|
+
|
|
39
|
+
# AI Copilot
|
|
40
|
+
schema = await vaif.ai.generate_schema(
|
|
41
|
+
prompt="Create a blog with posts and comments",
|
|
42
|
+
format="sql"
|
|
43
|
+
)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- **Database**: Type-safe query builder with PostgreSQL support
|
|
49
|
+
- **Authentication**: Email, OAuth, magic links, and MFA
|
|
50
|
+
- **Storage**: S3-compatible file storage with CDN
|
|
51
|
+
- **Real-time**: WebSocket subscriptions for live updates
|
|
52
|
+
- **AI Copilot**: Natural language code generation
|
|
53
|
+
|
|
54
|
+
## Documentation
|
|
55
|
+
|
|
56
|
+
Visit [vaif.studio/docs/sdk/python](https://vaif.studio/docs/sdk/python) for full documentation.
|
|
57
|
+
|
|
58
|
+
## License
|
|
59
|
+
|
|
60
|
+
MIT
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "vaif-client"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Official VAIF Studio client library for Python"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
requires-python = ">=3.8"
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "VAIF Technologies", email = "support@vaif.studio" }
|
|
14
|
+
]
|
|
15
|
+
keywords = [
|
|
16
|
+
"vaif",
|
|
17
|
+
"vaif-studio",
|
|
18
|
+
"backend",
|
|
19
|
+
"database",
|
|
20
|
+
"api",
|
|
21
|
+
"realtime",
|
|
22
|
+
"supabase-alternative"
|
|
23
|
+
]
|
|
24
|
+
classifiers = [
|
|
25
|
+
"Development Status :: 4 - Beta",
|
|
26
|
+
"Intended Audience :: Developers",
|
|
27
|
+
"License :: OSI Approved :: MIT License",
|
|
28
|
+
"Operating System :: OS Independent",
|
|
29
|
+
"Programming Language :: Python :: 3",
|
|
30
|
+
"Programming Language :: Python :: 3.8",
|
|
31
|
+
"Programming Language :: Python :: 3.9",
|
|
32
|
+
"Programming Language :: Python :: 3.10",
|
|
33
|
+
"Programming Language :: Python :: 3.11",
|
|
34
|
+
"Programming Language :: Python :: 3.12",
|
|
35
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
36
|
+
"Typing :: Typed",
|
|
37
|
+
]
|
|
38
|
+
dependencies = [
|
|
39
|
+
"httpx>=0.25.0",
|
|
40
|
+
"websockets>=12.0",
|
|
41
|
+
"pydantic>=2.0.0",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[project.optional-dependencies]
|
|
45
|
+
dev = [
|
|
46
|
+
"pytest>=7.0.0",
|
|
47
|
+
"pytest-asyncio>=0.21.0",
|
|
48
|
+
"pytest-cov>=4.0.0",
|
|
49
|
+
"mypy>=1.0.0",
|
|
50
|
+
"ruff>=0.1.0",
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
[project.urls]
|
|
54
|
+
Homepage = "https://vaif.studio"
|
|
55
|
+
Documentation = "https://vaif.studio/docs/sdk/python"
|
|
56
|
+
Repository = "https://github.com/vaifllc/vaif-studio"
|
|
57
|
+
Issues = "https://github.com/vaifllc/vaif-studio/issues"
|
|
58
|
+
|
|
59
|
+
[tool.hatch.build.targets.wheel]
|
|
60
|
+
packages = ["src/vaif"]
|
|
61
|
+
|
|
62
|
+
[tool.hatch.build.targets.sdist]
|
|
63
|
+
include = [
|
|
64
|
+
"/src",
|
|
65
|
+
"/README.md",
|
|
66
|
+
"/LICENSE",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
[tool.ruff]
|
|
70
|
+
line-length = 100
|
|
71
|
+
target-version = "py38"
|
|
72
|
+
|
|
73
|
+
[tool.ruff.lint]
|
|
74
|
+
select = ["E", "F", "I", "N", "W", "UP", "B", "C4", "SIM"]
|
|
75
|
+
|
|
76
|
+
[tool.mypy]
|
|
77
|
+
python_version = "3.8"
|
|
78
|
+
strict = true
|
|
79
|
+
warn_return_any = true
|
|
80
|
+
warn_unused_configs = true
|
|
81
|
+
|
|
82
|
+
[tool.pytest.ini_options]
|
|
83
|
+
asyncio_mode = "auto"
|
|
84
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""
|
|
2
|
+
VAIF Studio Python SDK
|
|
3
|
+
|
|
4
|
+
Official client library for VAIF Studio - the AI-powered backend platform.
|
|
5
|
+
|
|
6
|
+
Example:
|
|
7
|
+
>>> from vaif import create_client
|
|
8
|
+
>>>
|
|
9
|
+
>>> vaif = create_client(
|
|
10
|
+
... project_id="your-project-id",
|
|
11
|
+
... api_key="your-api-key"
|
|
12
|
+
... )
|
|
13
|
+
>>>
|
|
14
|
+
>>> # Database operations
|
|
15
|
+
>>> users = await vaif.db.from_("users").select("*").eq("active", True).execute()
|
|
16
|
+
>>>
|
|
17
|
+
>>> # Storage
|
|
18
|
+
>>> result = await vaif.storage.from_("avatars").upload("user.png", file_data)
|
|
19
|
+
>>>
|
|
20
|
+
>>> # Functions
|
|
21
|
+
>>> result = await vaif.functions.invoke("send-email", {"to": "user@example.com"})
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from vaif.client import VaifClient, create_client
|
|
25
|
+
from vaif.database import VaifDatabase, QueryBuilder
|
|
26
|
+
from vaif.realtime import VaifRealtime, RealtimeChannel
|
|
27
|
+
from vaif.storage import VaifStorage, StorageBucket
|
|
28
|
+
from vaif.functions import VaifFunctions
|
|
29
|
+
from vaif.auth import VaifAuth
|
|
30
|
+
from vaif.ai import VaifAI
|
|
31
|
+
from vaif.typegen import VaifTypeGen, create_typegen, TypeGenOptions
|
|
32
|
+
|
|
33
|
+
# Types
|
|
34
|
+
from vaif.types import (
|
|
35
|
+
VaifConfig,
|
|
36
|
+
ApiResponse,
|
|
37
|
+
ApiError,
|
|
38
|
+
QueryResult,
|
|
39
|
+
User,
|
|
40
|
+
Session,
|
|
41
|
+
AuthResponse,
|
|
42
|
+
FileObject,
|
|
43
|
+
Bucket,
|
|
44
|
+
UploadResult,
|
|
45
|
+
StorageError,
|
|
46
|
+
FunctionResponse,
|
|
47
|
+
FunctionError,
|
|
48
|
+
AIGenerateOptions,
|
|
49
|
+
SchemaGenerationResult,
|
|
50
|
+
FunctionGenerationResult,
|
|
51
|
+
EndpointGenerationResult,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
__version__ = "0.1.0"
|
|
55
|
+
__all__ = [
|
|
56
|
+
# Client
|
|
57
|
+
"VaifClient",
|
|
58
|
+
"create_client",
|
|
59
|
+
# Database
|
|
60
|
+
"VaifDatabase",
|
|
61
|
+
"QueryBuilder",
|
|
62
|
+
# Realtime
|
|
63
|
+
"VaifRealtime",
|
|
64
|
+
"RealtimeChannel",
|
|
65
|
+
# Storage
|
|
66
|
+
"VaifStorage",
|
|
67
|
+
"StorageBucket",
|
|
68
|
+
# Functions
|
|
69
|
+
"VaifFunctions",
|
|
70
|
+
# Auth
|
|
71
|
+
"VaifAuth",
|
|
72
|
+
# AI
|
|
73
|
+
"VaifAI",
|
|
74
|
+
# Types
|
|
75
|
+
"VaifConfig",
|
|
76
|
+
"ApiResponse",
|
|
77
|
+
"ApiError",
|
|
78
|
+
"QueryResult",
|
|
79
|
+
"User",
|
|
80
|
+
"Session",
|
|
81
|
+
"AuthResponse",
|
|
82
|
+
"FileObject",
|
|
83
|
+
"Bucket",
|
|
84
|
+
"UploadResult",
|
|
85
|
+
"StorageError",
|
|
86
|
+
"FunctionResponse",
|
|
87
|
+
"FunctionError",
|
|
88
|
+
"AIGenerateOptions",
|
|
89
|
+
"SchemaGenerationResult",
|
|
90
|
+
"FunctionGenerationResult",
|
|
91
|
+
"EndpointGenerationResult",
|
|
92
|
+
# Type Generation
|
|
93
|
+
"VaifTypeGen",
|
|
94
|
+
"create_typegen",
|
|
95
|
+
"TypeGenOptions",
|
|
96
|
+
]
|