Initial commit

This commit is contained in:
Thorbjoern
2025-05-26 00:46:28 +02:00
commit e5bca03433
3896 changed files with 1434297 additions and 0 deletions
Binary file not shown.
+68
View File
@@ -0,0 +1,68 @@
<p align="center">
<img width="300" src=".github/supabase-csharp.png"/>
</p>
<p align="center">
<img src="https://github.com/supabase/supabase-csharp/workflows/Build%20And%20Test/badge.svg"/>
<a href="https://www.nuget.org/packages/supabase-csharp/">
<img src="https://img.shields.io/nuget/vpre/supabase-csharp"/>
</a>
</p>
Documentation can be found [below](#getting-started), on the [Supabase Developer Documentation](https://supabase.com/docs/reference/csharp/introduction) and additionally in the [Generated API Docs](https://supabase-community.github.io/supabase-csharp/api/Supabase.Client.html).
[**CHANGELOG is available in the repository root.**](https://github.com/supabase-community/supabase-csharp/blob/master/CHANGELOG.md)
## Features
- [x] Integration with [Supabase.Realtime](https://github.com/supabase-community/realtime-csharp)
- Realtime listeners for database changes
- [x] Integration with [Postgrest](https://github.com/supabase-community/postgrest-csharp)
- Access your database using a REST API generated from your schema & database functions
- [x] Integration with [Gotrue](https://github.com/supabase-community/gotrue-csharp)
- User authentication, including OAuth, email/password, and native sign-in
- [x] Integration with [Supabase Storage](https://github.com/supabase-community/storage-csharp)
- Store files in S3 with additional managed metadata
- [x] Integration with [Supabase Edge Functions](https://github.com/supabase-community/functions-csharp)
- Run serverless functions on the edge
- [x] [Nuget Release](https://www.nuget.org/packages/supabase-csharp)
## Quickstart
1. To get started, create a new project in the [Supabase Admin Panel](https://app.supabase.io).
2. Grab your Supabase URL and Supabase Public Key from the Admin Panel (Settings -> API Keys).
3. Initialize the client!
_Reminder: `supabase-csharp` has some APIs that require the `service_key` rather than the `public_key` (for instance: the administration of users, bypassing database roles, etc.). If you are using the `service_key` **be sure it is not exposed client side.** Additionally, if you need to use both a service account and a public/user account, please do so using a separate client instance for each._
## Documentation
- [Getting Started](https://github.com/supabase-community/supabase-csharp/wiki#getting-started)
- [Unity](https://github.com/supabase-community/supabase-csharp/wiki/Unity)
- [Desktop/Mobile Clients (e.g. Xamarin, MAUI, etc.)](https://github.com/supabase-community/supabase-csharp/wiki/Desktop-Clients)
- [Server-Side Applications](https://github.com/supabase-community/supabase-csharp/wiki/Server-Side-Applications)
- [Release Notes/Breaking Changes](https://github.com/supabase-community/supabase-csharp/wiki/Release-Notes)
- [Using the Client](https://github.com/supabase-community/supabase-csharp/wiki#using-the-client)
- [Examples](https://github.com/supabase-community/supabase-csharp/wiki/Examples)
### Specific Features
- [Offline Support](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#offline-support)
- [Refresh Token Thread](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#updated-refresh-token-handling)
- [Native Sign in with Apple]([Documentation/NativeSignInWithApple.md](https://github.com/supabase-community/supabase-csharp/wiki/Authorization-with-Gotrue#native-sign-in-with-apple))
### Troubleshooting
- [Troubleshooting](https://github.com/supabase-community/supabase-csharp/wiki/Troubleshooting)
- [Discussion Forum](https://github.com/supabase-community/supabase-csharp/discussions)
## Package made possible through the efforts of:
<a href="https://github.com/supabase-community/supabase-csharp/graphs/contributors">
<img src="https://contrib-generator.fly.dev/repo/generate?repo=supabase-community/supabase-csharp,supabase-community/postgrest-csharp,supabase-community/realtime-csharp,supabase-community/gotrue-csharp&size=64&strokeWidth=4&strokeColor=3ecf8e&padding=12"/>
</a>
Join the ranks! See a problem? Help fix it!
## Contributing
We are more than happy to have contributions! Please submit a PR.
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3c99662b6368aa94c8aec914d73ba95a
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5521a79b4acd1013574150313315a0ec9093eca0072a4b1f6052ac1ef0c988c9
size 5771
+143
View File
@@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 3562f036f04d71845846c48c1784634b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d965462993afe1144b1609e3c3f1faef
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 81cc78a6cf12ad94d9233d1fa0511c35
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,29 @@
fileFormatVersion: 2
guid: 75c7f1a9b08cd624cb60f1f23667fd46
labels:
- NuGetForUnity
PluginImporter:
externalObjects: {}
serializedVersion: 3
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
Any:
enabled: 1
settings: {}
Editor:
enabled: 0
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,370 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Supabase</name>
</assembly>
<members>
<member name="T:Supabase.Client">
<summary>
A singleton class representing a Supabase Client.
</summary>
</member>
<member name="P:Supabase.Client.Auth">
<summary>
Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies.
</summary>
</member>
<member name="M:Supabase.Client.AdminAuth(System.String)">
<summary>
Returns a Stateless Gotrue Admin client given a service_key JWT. This should really only be accessed from a
server environment where a private service_key would remain secure.
</summary>
<param name="serviceKey"></param>
<returns></returns>
</member>
<member name="P:Supabase.Client.Realtime">
<summary>
Supabase Realtime allows for realtime feedback on database changes.
</summary>
</member>
<member name="P:Supabase.Client.Functions">
<summary>
Supabase Edge functions allow you to deploy and invoke edge functions.
</summary>
</member>
<member name="P:Supabase.Client.Postgrest">
<summary>
Supabase Postgrest allows for strongly typed REST interactions with the your database.
</summary>
</member>
<member name="P:Supabase.Client.Storage">
<summary>
Supabase Storage allows you to manage user-generated content, such as photos or videos.
</summary>
</member>
<member name="M:Supabase.Client.#ctor(Supabase.Gotrue.Interfaces.IGotrueClient{Supabase.Gotrue.User,Supabase.Gotrue.Session},Supabase.Realtime.Interfaces.IRealtimeClient{Supabase.Realtime.RealtimeSocket,Supabase.Realtime.RealtimeChannel},Supabase.Functions.Interfaces.IFunctionsClient,Postgrest.Interfaces.IPostgrestClient,Supabase.Storage.Interfaces.IStorageClient{Supabase.Storage.Bucket,Supabase.Storage.FileObject},Supabase.SupabaseOptions)">
<summary>
Constructor supplied for dependency injection support.
</summary>
<param name="auth"></param>
<param name="realtime"></param>
<param name="functions"></param>
<param name="postgrest"></param>
<param name="storage"></param>
<param name="options"></param>
</member>
<member name="M:Supabase.Client.#ctor(System.String,System.String,Supabase.SupabaseOptions)">
<summary>
Creates a new Supabase Client.
</summary>
<param name="supabaseUrl"></param>
<param name="supabaseKey"></param>
<param name="options"></param>
</member>
<member name="M:Supabase.Client.InitializeAsync">
<summary>
Attempts to retrieve the session from Gotrue (set in <see cref="T:Supabase.SupabaseOptions"/>) and connects to realtime (if `options.AutoConnectRealtime` is set)
</summary>
</member>
<member name="M:Supabase.Client.From``1">
<summary>
Gets the Postgrest client to prepare for a query.
</summary>
<typeparam name="TModel"></typeparam>
<returns></returns>
</member>
<member name="M:Supabase.Client.Rpc(System.String,System.Object)">
<inheritdoc />
</member>
<member name="M:Supabase.Client.Rpc``1(System.String,System.Object)">
<inheritdoc />
</member>
<member name="T:Supabase.DefaultSupabaseSessionHandler">
<summary>
Represents the default session handler for Gotrue - it does nothing by default.
</summary>
</member>
<member name="M:Supabase.DefaultSupabaseSessionHandler.SaveSession(Supabase.Gotrue.Session)">
<summary>
Default Session Save (does nothing by default)
</summary>
<param name="session"></param>
</member>
<member name="M:Supabase.DefaultSupabaseSessionHandler.DestroySession">
<summary>
Default Session Destroyer (does nothing by default)
</summary>
</member>
<member name="M:Supabase.DefaultSupabaseSessionHandler.LoadSession">
<summary>
Default Session Loader (does nothing by default)
</summary>
<returns></returns>
</member>
<member name="T:Supabase.Interfaces.ISupabaseClient`6">
<summary>
Contract for what a SupabaseClient should implement
</summary>
<typeparam name="TUser">Model representing User</typeparam>
<typeparam name="TSession">Model representing Session</typeparam>
<typeparam name="TSocket">Class that conforms to <see cref="T:Supabase.Realtime.Interfaces.IRealtimeSocket"/></typeparam>
<typeparam name="TChannel">Class that conforms to <see cref="T:Supabase.Realtime.Interfaces.IRealtimeChannel"/></typeparam>
<typeparam name="TBucket">Model representing <see cref="T:Supabase.Storage.Bucket"/></typeparam>
<typeparam name="TFileObject">Model representing <see cref="T:Supabase.Storage.FileObject"/></typeparam>
</member>
<member name="P:Supabase.Interfaces.ISupabaseClient`6.Auth">
<summary>
The Gotrue Auth Instance
</summary>
</member>
<member name="M:Supabase.Interfaces.ISupabaseClient`6.AdminAuth(System.String)">
<summary>
Creates a Gotrue Admin Auth Client
</summary>
<param name="serviceKey"></param>
<returns></returns>
</member>
<member name="P:Supabase.Interfaces.ISupabaseClient`6.Functions">
<summary>
The Supabase Functions Client
</summary>
</member>
<member name="P:Supabase.Interfaces.ISupabaseClient`6.Postgrest">
<summary>
The Postgrest Client
</summary>
</member>
<member name="P:Supabase.Interfaces.ISupabaseClient`6.Realtime">
<summary>
The Realtime Client
</summary>
</member>
<member name="P:Supabase.Interfaces.ISupabaseClient`6.Storage">
<summary>
The Storage Client
</summary>
</member>
<member name="M:Supabase.Interfaces.ISupabaseClient`6.From``1">
<summary>
Used for interacting with a Postgrest Table + Model. Provides helpers
to be able to add realtime listeners and queries.
</summary>
<typeparam name="TModel"></typeparam>
<returns></returns>
</member>
<member name="M:Supabase.Interfaces.ISupabaseClient`6.InitializeAsync">
<summary>
Initializes a supabase client according to the provided <see cref="T:Supabase.SupabaseOptions"/>.
If option is enabled:
- Will connect to realtime instance <see cref="P:Supabase.SupabaseOptions.AutoConnectRealtime"/>
- Will restore session using a <see cref="T:Supabase.Gotrue.Interfaces.IGotrueSessionPersistence`1"/> specified in <see cref="P:Supabase.SupabaseOptions.SessionHandler"/>
</summary>
<returns></returns>
</member>
<member name="M:Supabase.Interfaces.ISupabaseClient`6.Rpc(System.String,System.Object)">
<summary>
Perform a stored procedure call.
</summary>
<param name="procedureName">The function name to call</param>
<param name="parameters">The parameters to pass to the function call</param>
<returns></returns>
</member>
<member name="M:Supabase.Interfaces.ISupabaseClient`6.Rpc``1(System.String,System.Object)">
<summary>
Perform a stored procedure call.
</summary>
<param name="procedureName">The function name to call</param>
<param name="parameters">The parameters to pass to the function call</param>
<typeparam name="TModeledResponse">A type used for hydrating the HTTP response content (hydration through JSON.NET)</typeparam>
<returns>A hydrated model</returns>
</member>
<member name="T:Supabase.Interfaces.ISupabaseFunctions">
<summary>
Contract representing a wrapper <see cref="N:Supabase.Functions"/> client.
</summary>
</member>
<member name="M:Supabase.Interfaces.ISupabaseFunctions.Invoke(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Invoke a supabase function
</summary>
<param name="functionName"></param>
<param name="body"></param>
<returns>String content from invoke</returns>
</member>
<member name="M:Supabase.Interfaces.ISupabaseFunctions.Invoke``1(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Invoke a supabase function and deserialize data to a provided model.
</summary>
<param name="functionName"></param>
<param name="body"></param>
<typeparam name="T">Model representing data that is compatible with <see cref="N:Newtonsoft"/></typeparam>
<returns>The deserialized Model</returns>
</member>
<member name="M:Supabase.Interfaces.ISupabaseFunctions.RawInvoke(System.String,System.Collections.Generic.Dictionary{System.String,System.Object})">
<summary>
Invoke a supabase function and return the <see cref="T:System.Net.Http.HttpContent"/> for the developer to parse.
</summary>
<param name="functionName"></param>
<param name="body"></param>
<returns>The HTTP Content</returns>
</member>
<member name="T:Supabase.Interfaces.ISupabaseTable`2">
<summary>
Contract representing a supabase wrapped postgrest <see cref="T:Postgrest.Interfaces.IPostgrestTable`1"/>
</summary>
<typeparam name="TModel">Model that inherits from <see cref="T:Postgrest.Models.BaseModel"/> that represents this Table</typeparam>
<typeparam name="TChannel">Class that implements <see cref="T:Supabase.Realtime.Interfaces.IRealtimeChannel"/></typeparam>
</member>
<member name="M:Supabase.Interfaces.ISupabaseTable`2.On(Supabase.Realtime.PostgresChanges.PostgresChangesOptions.ListenType,Supabase.Realtime.Interfaces.IRealtimeChannel.PostgresChangesHandler)">
<summary>
Add a realtime listener to this table.
</summary>
<param name="listenType"></param>
<param name="handler"></param>
<returns></returns>
</member>
<member name="T:Supabase.StatelessClient">
<summary>
A Static class representing a Supabase Client.
</summary>
</member>
<member name="M:Supabase.StatelessClient.GetAuthOptions(System.String,System.String,Supabase.SupabaseOptions)">
<summary>
Returns an instance of <see cref="T:Supabase.Gotrue.ClientOptions"/> given a provided url and key.
</summary>
<param name="supabaseUrl"></param>
<param name="supabaseKey"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Supabase.StatelessClient.GetRestOptions(System.String,Supabase.SupabaseOptions)">
<summary>
Returns an instance of <see cref="T:Postgrest.ClientOptions"/> for a given supabase key.
</summary>
<param name="supabaseKey"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Supabase.StatelessClient.Storage(System.String,System.String,Supabase.SupabaseOptions)">
<summary>
Supabase Storage allows you to manage user-generated content, such as photos or videos.
</summary>
<param name="supabaseUrl"></param>
<param name="supabaseKey"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Supabase.StatelessClient.Functions(System.String,System.String,Supabase.SupabaseOptions)">
<summary>
Supabase Edge functions allow you to deploy and invoke edge functions.
</summary>
<param name="supabaseUrl"></param>
<param name="supabaseKey"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:Supabase.StatelessClient.From``1(System.String,System.String,Supabase.SupabaseOptions)">
<summary>
Gets the Postgrest client to prepare for a query.
</summary>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:Supabase.StatelessClient.Rpc(System.String,System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.Object},Supabase.SupabaseOptions)">
<summary>
Runs a remote procedure.
</summary>
<param name="supabaseUrl"></param>
<param name="supabaseKey"></param>
<param name="procedureName"></param>
<param name="parameters"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:Supabase.SupabaseModel">
<summary>
Depreciated
</summary>
</member>
<member name="T:Supabase.SupabaseOptions">
<summary>
Options available for Supabase Client Configuration
</summary>
</member>
<member name="F:Supabase.SupabaseOptions.Schema">
<summary>
Schema to be used in Postgres / Realtime
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.AutoRefreshToken">
<summary>
Should the Client automatically handle refreshing the User's Token?
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.AutoConnectRealtime">
<summary>
Should the Client automatically connect to Realtime?
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.SessionHandler">
<summary>
Functions passed to Gotrue that handle sessions.
**By default these do nothing for persistence.**
</summary>
</member>
<member name="F:Supabase.SupabaseOptions.Headers">
<summary>
Headers that allow manual specifications of an "Authorization" to be passed to the supabase client.
This is unlikely to be used.
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.StorageClientOptions">
<summary>
Specifies Options passed to the StorageClient.
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.AuthUrlFormat">
<summary>
The Supabase Auth Url Format
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.RestUrlFormat">
<summary>
The Supabase Postgrest Url Format
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.RealtimeUrlFormat">
<summary>
The Supabase Realtime Url Format
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.StorageUrlFormat">
<summary>
The Supabase Storage Url Format
</summary>
</member>
<member name="P:Supabase.SupabaseOptions.FunctionsUrlFormat">
<summary>
The Supabase Functions Url Format
</summary>
</member>
<member name="T:Supabase.SupabaseTable`1">
<summary>
A Supabase wrapper for a Postgrest Table.
</summary>
<typeparam name="TModel">Model that implements <see cref="T:Postgrest.Models.BaseModel"/></typeparam>
</member>
<member name="M:Supabase.SupabaseTable`1.#ctor(Postgrest.Interfaces.IPostgrestClient,Supabase.Realtime.Interfaces.IRealtimeClient{Supabase.Realtime.RealtimeSocket,Supabase.Realtime.RealtimeChannel},System.String)">
<summary>
A Supabase wrapper for a Postgrest table.
</summary>
<param name="postgrestClient"></param>
<param name="realtimeClient"></param>
<param name="schema"></param>
</member>
<member name="M:Supabase.SupabaseTable`1.On(Supabase.Realtime.PostgresChanges.PostgresChangesOptions.ListenType,Supabase.Realtime.Interfaces.IRealtimeChannel.PostgresChangesHandler)">
<inheritdoc />
</member>
</members>
</doc>
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 31f1601f74478a041a4c320117037e1c
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>supabase-csharp</id>
<version>0.16.2</version>
<title>Supabase</title>
<authors>Joseph Schultz &lt;joseph@acupofjose.com&gt;</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<icon>icon.png</icon>
<readme>README.md</readme>
<projectUrl>https://github.com/supabase-community/supabase-csharp</projectUrl>
<description>A C# implementation of the Supabase client</description>
<copyright>MIT</copyright>
<tags>supabase</tags>
<repository type="git" url="https://github.com/supabase-community/supabase-csharp" commit="6f61876b56ed4279657aa03b53d7575048e9f212" />
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="Newtonsoft.Json" version="13.0.3" exclude="Build,Analyzers" />
<dependency id="functions-csharp" version="1.3.2" exclude="Build,Analyzers" />
<dependency id="gotrue-csharp" version="4.2.7" exclude="Build,Analyzers" />
<dependency id="postgrest-csharp" version="3.5.1" exclude="Build,Analyzers" />
<dependency id="realtime-csharp" version="6.0.4" exclude="Build,Analyzers" />
<dependency id="supabase-core" version="0.0.3" exclude="Build,Analyzers" />
<dependency id="supabase-storage-csharp" version="1.4.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c911ffb7abd099f4fa70b1615fa665a4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: