Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2458 commits
Select commit Hold shift + click to select a range
d2c96c0
Merge branch 'master' into feat/add-json-path-type-inference
avallete Jan 16, 2025
dc71626
Merge pull request #594 from supabase/chore/add-test-coverage
avallete Jan 16, 2025
d18d92e
chore(test): add additional tests improving test coverage (#595)
avallete Jan 16, 2025
8b736ff
fix: jsonpath with embeded tables
avallete Jan 20, 2025
9f35ab9
Merge branch 'master' into feat/add-json-path-type-inference
avallete Jan 20, 2025
d68ae2d
Merge pull request #592 from supabase/feat/add-json-path-type-inference
avallete Jan 20, 2025
056f974
wip: reproduce https://github.com/supabase/supabase-js/issues/1354
avallete Jan 20, 2025
3d17255
wip: error occurs when typescript upgrade
avallete Jan 20, 2025
000b3c7
chore: use direct replacement instead of MergeDeep
avallete Jan 20, 2025
01e582a
fix(types): type instantiation is excessively deep and possibly infinite
avallete Jan 20, 2025
b024ecd
chore: revert package
avallete Jan 20, 2025
ee67046
fix: in filter result infer
avallete Jan 20, 2025
750498b
fix: in filter
avallete Jan 20, 2025
a51dbb0
feat: consider session expired with margin on getSession() without au…
hf Jan 21, 2025
7953a1d
fix: jsonpath accessor and filters
avallete Jan 23, 2025
1403f6e
fix: jsonpath filter string operator accessor
avallete Jan 23, 2025
415842f
chore(master): release 2.68.0 (#1013)
github-actions[bot] Jan 23, 2025
dd665f7
Merge pull request #597 from supabase/fix/issue-1354-type-instanciati…
avallete Jan 24, 2025
1a78f42
fix: assert type in `decodeJWTPayload` (#1018)
j4w8n Jan 29, 2025
bacd8bd
chore: upload coverage to coveralls (#217)
grdsdev Jan 30, 2025
7e6d10a
fix: remove client side check of jwt token (#451)
filipecabaco Feb 7, 2025
6d12676
feat: introduce getClaims method to verify asymmetric JWTs (#1030)
kangmingtay Feb 10, 2025
6213ac8
fix: Change format of version sent (#455)
filipecabaco Feb 12, 2025
956c7c8
fix(types): returns type casting
avallete Feb 17, 2025
898d8bd
chore: fix tests
avallete Feb 17, 2025
bfe0776
build(deps-dev): bump vitest and @vitest/coverage-v8 (#454)
dependabot[bot] Feb 18, 2025
9afccdb
build(deps): bump next from 14.2.15 to 14.2.21 in /example (#450)
dependabot[bot] Feb 18, 2025
799f6e6
fix: set log level on params (#456)
filipecabaco Feb 18, 2025
0fd6525
fix: preserve result optionality in override
avallete Feb 19, 2025
ee9b392
fix: add runtime test coverage
avallete Feb 19, 2025
a7c0ee8
feat(types): add overrideTypes method
avallete Feb 17, 2025
10d61c5
chore: fix typo
avallete Feb 17, 2025
f30f975
chore(coverage): exclude tests code from coverage report
avallete Feb 19, 2025
53fadf9
chore: apply PR comment
avallete Feb 19, 2025
ab7310a
chore: increase test coverage
avallete Feb 19, 2025
624e8a0
Merge branch 'avallete/fix-add-returns-to-builder' into avallete/feat…
avallete Feb 19, 2025
bc5a981
chore: format
avallete Feb 19, 2025
0dadf6d
Merge pull request #603 from supabase/avallete/feat-add-overrideTypes…
avallete Feb 21, 2025
190db5e
Merge pull request #604 from supabase/avallete/fix-add-returns-to-bui…
avallete Feb 21, 2025
4e89ce1
fix(types): overrideTypes deep merge behavior
avallete Feb 21, 2025
6165979
chore: add inner test case
avallete Feb 21, 2025
84f36bc
Merge pull request #605 from supabase/avallete/fix-override-types-dee…
avallete Feb 21, 2025
d878d01
fix(types): overrideTypes work on invalid embeded relation
avallete Feb 21, 2025
5fdef79
fix(types): overrideTypes merging with maybeSingle
avallete Feb 21, 2025
cb98e51
wip
avallete Feb 21, 2025
5e1b115
fix(types): allow merge Record and litteral object
avallete Feb 23, 2025
65da70c
Merge pull request #606 from supabase/avallete/fix-override-on-invali…
avallete Feb 24, 2025
cf6e11f
fix(types): outdated error message (#608)
rafalnawojczyk Mar 13, 2025
0f79bce
fix: set jwks_cached_at (#1039)
kangmingtay Mar 22, 2025
2e70607
chore(master): release 2.69.0 (#1031)
github-actions[bot] Mar 24, 2025
15d308e
fix: `generatePKCEChallenge` should use btoa (#1044)
hf Mar 24, 2025
c0458e3
chore(master): release 2.69.1 (#1045)
github-actions[bot] Mar 24, 2025
776b513
fix(types): inner join type on nullable relationships
avallete Mar 28, 2025
25bda5f
Merge pull request #612 from supabase/fix/inner-join-null-typing
avallete Mar 29, 2025
f14e3f0
chore(tests): add automatic typegen for testing according to database…
avallete Mar 29, 2025
98de76b
chore(tests): add types generation and database override
avallete Mar 29, 2025
ac0f0ef
chore: fix test
avallete Mar 29, 2025
d406521
Merge branch 'master' into chore/add-auto-types-gen-and-override-for-…
avallete Mar 29, 2025
76bda96
ignore type definitions in coverage metrics (#95)
olirice Apr 1, 2025
a17c384
test error responses in file and bucket apis. coverage 84% (#223)
olirice Apr 1, 2025
00b393d
Merge pull request #613 from supabase/chore/add-auto-types-gen-and-ov…
avallete Apr 4, 2025
b6c241c
feat: add `signInWithWeb3` with solana (#1037)
hf Apr 4, 2025
bfdd966
fix: Add heartbeat callback; Move to Sets vs Arrays (#460)
filipecabaco Apr 22, 2025
a5025ba
fix: Properly handle errors in Upload Api (related to StorageError) …
hmpthz Apr 23, 2025
2dc2990
fix: properly export log level (#464)
filipecabaco Apr 23, 2025
c0dba5c
chore(deps): bump serialize-javascript from 6.0.1 to 6.0.2 in /exampl…
dependabot[bot] Apr 27, 2025
df1de75
fix: resolve regression with uploading files introduced by #216
itslenny May 5, 2025
3d2faf2
Add statusCode to StorageApiError to preserve pre-change behavior
itslenny May 5, 2025
75c949d
chore(deps): bump @babel/runtime from 7.21.0 to 7.27.0 in /example/re…
dependabot[bot] May 6, 2025
213e574
chore(deps): bump @babel/helpers from 7.18.9 to 7.27.0 in /example/re…
dependabot[bot] May 6, 2025
d2eac53
chore(deps): bump @babel/runtime-corejs3 from 7.18.9 to 7.26.10 in /e…
dependabot[bot] May 6, 2025
d5719a0
Merge pull request #226 from supabase/fix/resolve-regression-from-upl…
itslenny May 6, 2025
ec5805c
chore(tests): added tests (#1061)
georgRusanov May 12, 2025
eb52bde
feat: validate uuid and sign out scope parameters to functions (#1063)
hf May 12, 2025
24e1a5f
wip
avallete May 15, 2025
bba6709
fix: add missing `deleted_at` property to `User` interface (#1059)
masaharu99 May 16, 2025
ce9618e
fix: export `processLock` from toplevel (#1057)
hf May 16, 2025
9938548
feat(types): add ClientOptions to handle multi postgrest versions
avallete May 18, 2025
6707201
chore: scope changes to pgrst13 introduction
avallete May 19, 2025
e38df67
chore: upgrade ubuntu workflow instances
avallete May 19, 2025
da4ee9b
feat: add max-affected method
avallete May 19, 2025
e516073
Merge branch 'avallete/psql-436-feedback-request-postgrest-js-and-pos…
avallete May 19, 2025
92990d9
chore: export ClientServerOptions
avallete May 19, 2025
85e6fc5
chore: make postgrestVersion optional
avallete May 19, 2025
1a0462c
Update src/select-query-parser/result.ts
avallete May 20, 2025
3ce4532
fix: onHeartbeat; Expo comparability; general improvements (#470)
filipecabaco May 20, 2025
3b90133
build(deps): bump @babel/helpers from 7.26.0 to 7.27.1 (#472)
dependabot[bot] May 20, 2025
6325847
build(deps): bump vite from 5.4.14 to 5.4.19 (#471)
dependabot[bot] May 20, 2025
e3cb3eb
build(deps): bump next from 14.2.21 to 14.2.26 in /example
dependabot[bot] May 20, 2025
fe83bf7
Merge pull request #473 from supabase/dependabot/npm_and_yarn/example…
staaldraad May 20, 2025
1c7ad73
feat: handle options declaration within Database
avallete May 21, 2025
64fd20e
fix: types
avallete May 21, 2025
12d41d7
Merge branch 'avallete/psql-436-feedback-request-postgrest-js-and-pos…
avallete May 21, 2025
b797ab2
chore(review): use postgrest code instead of message
avallete May 21, 2025
3bf4af8
chore: refactor in favor of Headers API
avallete May 21, 2025
db2e74f
chore: move maxAffected to PostgrestTransformBuilder
avallete May 21, 2025
285001e
chore: bump ci minimal node to 18
avallete May 21, 2025
705361f
chore(master): release 2.70.0 (#1048)
github-actions[bot] May 22, 2025
037d3b0
chore: apply pr comment
avallete May 22, 2025
1c31577
chore: use helper for feature flag from version
avallete May 22, 2025
0efc0e7
chore: use string for postgrestVersion
avallete May 22, 2025
a9d37c6
chore(tests): added tests (#1064)
georgRusanov May 26, 2025
c8e9bf7
feat: add maxAffected for rpc calls
avallete May 27, 2025
9524cc5
Merge branch 'avallete/psql-436-feedback-request-postgrest-js-and-pos…
avallete May 27, 2025
601961f
chore: use string based version
avallete May 27, 2025
86fb8f4
ci: execute release only if test passes (#227)
grdsdev May 27, 2025
a8add2a
fix: properly handle ws browser export (#474) (#476)
filipecabaco May 28, 2025
23127e7
chore: exclude types.ts from coverage
avallete Jun 3, 2025
b3ea493
feat: introduce experimental split user and session storage (#1023)
hf Jun 4, 2025
f438223
fix: make the exports section compatible with Deno 1 (#479)
filipecabaco Jun 4, 2025
dab2fa5
chore(tests): added tests (#1066)
georgRusanov Jun 6, 2025
69aca6f
fix: handle null current session with split session storage (#1071)
hf Jun 6, 2025
bcbca98
chore(tests): added tests (#1072)
georgRusanov Jun 16, 2025
df521ef
Merge branch 'avallete/psql-436-feedback-request-postgrest-js-and-pos…
avallete Jun 18, 2025
e156b0f
fix: handle subscribed called multiple times; remove redundant line (…
filipecabaco Jun 20, 2025
0855dec
fix: prevent multiple web workers from starting (#490)
filipecabaco Jun 23, 2025
8744548
merge next to master (#491)
grdsdev Jun 24, 2025
5c3991a
fix: adopt isomorphic websocket implementation (#492)
grdsdev Jun 24, 2025
7ffc2d4
fix: resolve 'ws' peer dependency (#495)
SerekKiri Jun 25, 2025
4309eb4
fix: soft deprecation of headers and simplify ws socket connection (#…
filipecabaco Jun 25, 2025
7287ab0
Add region as forceFunctionRegion query parameter
laktek Jul 1, 2025
0782cdd
Merge pull request #100 from supabase/add-region-query-param
laktek Jul 1, 2025
46baa2e
fix: include response object in FunctionsClient invoke method return
laktek Jul 2, 2025
a467a82
Merge pull request #101 from supabase/fix-functions-response-type
laktek Jul 2, 2025
8f86ea4
chore: use CamelCasing convention
avallete Jul 2, 2025
52b45de
chore: update tests
avallete Jul 2, 2025
bf18cfd
chore: use minimal schema
avallete Jul 2, 2025
e145f59
Merge pull request #618 from supabase/avallete/psql-436-feedback-requ…
avallete Jul 2, 2025
5072c9c
Merge branch 'master' into avallete/psql-372-postgrest-add-maxaffecte…
avallete Jul 2, 2025
9c3a9e0
chore: use CamelCase
avallete Jul 2, 2025
840ed46
feat: use dedicated storage host for storage lib (allows >50GB uploads)
itslenny Jul 2, 2025
36965e6
Merge pull request #230 from supabase/feat/use-storage-zone-to-allow-…
itslenny Jul 2, 2025
7ceb6ad
feat: Presence enabled flag on join payload (#496)
filipecabaco Jul 3, 2025
9f24d36
chore: export GetGenericDatabaseWithOptions
avallete Jul 4, 2025
ad72c8f
chore: add version and constant test
avallete Jul 4, 2025
b13a8b8
feat: managing iceberg buckets (#231)
fenos Jul 7, 2025
719fdc9
fix: bucket type, iceberg_catalog property: (#232)
fenos Jul 7, 2025
c9592a3
Merge pull request #619 from supabase/avallete/psql-372-postgrest-add…
avallete Jul 7, 2025
60889dc
feat: bucket type (#233)
fenos Jul 7, 2025
bb4bbc0
fix: optionally use storage new hostname (#234)
fenos Jul 8, 2025
ce77cbf
feat: make `getClaims()` non experimental, add global cache (#1078)
hf Jul 9, 2025
9824c9b
feat: remove solana dependency by inlining types (#1079)
hf Jul 9, 2025
23acac6
fix: Set auth on connect and reconnect flows (#497)
filipecabaco Jul 9, 2025
9867cd1
feat: fallback to `getUser()` if the `kid` of the JWT is not found (#…
hf Jul 10, 2025
a98b36e
fix: consistent bucket type name (#235)
fenos Jul 11, 2025
d72e3a5
fix: call setAuth on subscribe (#499)
filipecabaco Jul 11, 2025
ba27947
chore(master): release 2.71.0 (#1070)
github-actions[bot] Jul 14, 2025
29678c5
fix: use JSON-based deep clone instead of structuredClone (#1084)
cemalkilic Jul 17, 2025
b9e2366
chore(master): release 2.71.1 (#1085)
github-actions[bot] Jul 17, 2025
af4b167
chore: refactor merge runtime types tests (#622)
avallete Jul 18, 2025
e3d549b
chore: rename and add testSequencer (#623)
avallete Jul 18, 2025
d47d78e
chore: split relationships tests into smaller units (#624)
avallete Jul 18, 2025
2ad2c06
chore(deps-dev): bump form-data from 4.0.0 to 4.0.4
dependabot[bot] Jul 21, 2025
624a2ad
fix(types): computed field and star selector (#626)
avallete Jul 22, 2025
33de908
feat: add sign in with ethereum to `signInWithWeb3` (#1082)
Bewinxed Jul 23, 2025
180d242
chore: include search limit to jsdoc
mandarini Jul 24, 2025
999bfb8
Merge pull request #238 from mandarini/chore/doc-search-limit
mandarini Jul 25, 2025
17f7153
fix: trim duplicate slashes from file paths
itslenny Jul 25, 2025
0c32e21
fix: us normal storage/v1 prefix with storage zone
itslenny Jul 14, 2025
b714386
Merge pull request #236 from supabase/fix/use-standard-storage-path-w…
mandarini Jul 28, 2025
66b39ec
Merge pull request #240 from supabase/fix/remove-duplicate-slashes-fr…
itslenny Jul 28, 2025
2554b89
chore(tests): setup zod type checking unify (#627)
avallete Jul 28, 2025
9f88d59
chore(tests): add zod schema validation to more tests (#628)
avallete Jul 29, 2025
325076a
feat: make apikey mandatory; improve stability and readability of cod…
filipecabaco Aug 4, 2025
70848fe
feat: replace isows with native WebSocket factory (#509)
mandarini Aug 5, 2025
08a4427
fix(typegen): avoid possible infinite recursion error (#630)
avallete Aug 6, 2025
a8e51ed
chore(deps): bump postgres-meta to 0.91.5 (#631)
avallete Aug 6, 2025
2fdd69d
feat: readability changes and stability (#510)
filipecabaco Aug 7, 2025
2ce2134
fix: remove dynamic imports to eliminate webpack warnings (#514)
mandarini Aug 12, 2025
830ead1
fix: pass duplex option to the fetcher (#242)
robgev Aug 12, 2025
c48a95c
chore: add preview release (#634)
mandarini Aug 12, 2025
e9e0ebd
chore: add preview release (#104)
mandarini Aug 12, 2025
219fed2
chore: preview release workflow (#515)
mandarini Aug 12, 2025
124a83c
chore: add preview release (#1097)
mandarini Aug 12, 2025
9ab8a24
Merge pull request #244 from mandarini/chore/add-preview-release
mandarini Aug 12, 2025
0318ea3
chore: trigger external tests on supabase-js (#518)
mandarini Aug 13, 2025
82dc65d
chore: trigger supabase-js tests (#1098)
mandarini Aug 13, 2025
9a03f6c
chore: trigger supabase-js tests (#635)
mandarini Aug 13, 2025
9554a8e
chore: trigger supabase-js tests (#105)
mandarini Aug 13, 2025
179b0ef
chore: trigger supabase-js tests (#245)
mandarini Aug 13, 2025
c705fbb
chore: trigger action from forks (#520)
mandarini Aug 13, 2025
bd657e2
chore: trigger action from forks (#106)
mandarini Aug 13, 2025
f6084b1
chore: trigger action from forks (#636)
mandarini Aug 13, 2025
58fe84f
chore: trigger action from forks (#246)
mandarini Aug 13, 2025
ec00442
chore: trigger action from forks (#1099)
mandarini Aug 13, 2025
2da43cc
fix: Websocket like type definition compatible with ws (#517)
filipecabaco Aug 14, 2025
5924f8c
build(deps): bump next from 14.2.26 to 14.2.30 in /example (#486)
dependabot[bot] Aug 14, 2025
e445f02
feat: list-v2 endpoint
fenos Feb 21, 2025
86b699c
Rebase and small fixes
itslenny Aug 14, 2025
1715e1f
add more test coverage
itslenny Aug 14, 2025
7a209ef
Merge pull request #219 from supabase/feat/list-v2
itslenny Aug 14, 2025
66e5493
Merge pull request #103 from supabase/dependabot/npm_and_yarn/form-da…
laktek Aug 18, 2025
7a29167
chore: added more tests (#1095)
georgRusanov Aug 18, 2025
845892f
chore: more tests (#1101)
georgRusanov Aug 19, 2025
302f52f
fix: inline `GetGenericDatabaseWithOptions` (#637)
soedirgo Aug 21, 2025
97b1ae0
chore: added more tests (#1103)
georgRusanov Aug 25, 2025
cf548f4
fix: correct typo in GoTrueClient initializePromise comment (#1093)
zakzackr Aug 25, 2025
70642d6
chore: fix preview release to use correct target (#638)
mandarini Aug 25, 2025
84d6b94
chore: fix preview release to use correct target (#1104)
mandarini Aug 25, 2025
374beac
chore: fix preview release to use correct target (#107)
mandarini Aug 25, 2025
9a7b0b9
chore: fix preview release to use correct target (#524)
mandarini Aug 25, 2025
d43fabd
chore: fix preview release to use correct target (#247)
mandarini Aug 25, 2025
fb48549
test(types): introduce tstyche instead of tsd (#633)
avallete Aug 26, 2025
780d8cd
chore: secure-proof workflows (#526)
mandarini Aug 28, 2025
cfd1987
chore: secure-proof workflows (#639)
mandarini Aug 28, 2025
6b53238
chore: secure-proof workflows (#248)
mandarini Aug 28, 2025
68e9de4
chore: secure-proof workflows (#108)
mandarini Aug 28, 2025
3b85569
chore: secure-proof workflows (#1105)
mandarini Aug 29, 2025
d1d3dfd
fix: allow override presence enabled (#530)
filipecabaco Aug 29, 2025
1294997
fix: add hearthbeat callback (#529)
filipecabaco Aug 29, 2025
dc76160
fix: update docs for list endpoint (#167)
inian Sep 4, 2025
83b6fb8
chore: fix broadcast example on README.md (#532)
edgurgel Sep 5, 2025
9279b0f
fix: use dynamic property access for proces.versions to avoid Edge Ru…
mandarini Sep 5, 2025
d92531e
feat: add support for .throwOnError() (#250)
maxmetcalfe Sep 8, 2025
2b2ccaf
fix: update typedoc to 0.23 (#641)
mandarini Sep 9, 2025
7817263
fix: update typedoc to 0.23 (#251)
mandarini Sep 9, 2025
51a4004
fix: update typedoc to 0.23 (#109)
mandarini Sep 9, 2025
d6d6be9
fix: update typedoc to 0.23 (#1113)
mandarini Sep 9, 2025
5792f70
fix: docs for ethereum (#1117)
hf Sep 11, 2025
f7db497
chore: update `edge-runtime.d.ts`
nyannyacha Sep 16, 2025
3ad4a60
Merge pull request #110 from supabase/nyannyacha-patch-1
nyannyacha Sep 16, 2025
1d9e19a
Merge branch 'main' into main
laktek Sep 16, 2025
b719f4a
Merge pull request #93 from dsc8x/main
laktek Sep 16, 2025
b3a1bea
build(deps): bump vite from 6.3.5 to 6.3.6 (#534)
dependabot[bot] Sep 16, 2025
c07e389
refactor: allow download as stream (#137)
xxRockOnxx Sep 17, 2025
2eaebbc
chore: do not fail on coveralls error (#537)
mandarini Sep 17, 2025
c911141
chore: do not fail on coveralls error (#645)
mandarini Sep 17, 2025
852bd91
chore: do not fail on coveralls error (#111)
mandarini Sep 17, 2025
f86ed1a
fix(realtime): handle null at convertChangeData (#539)
rbasto1 Sep 20, 2025
7c4acea
chore(master): release 2.72.0 (#1090)
github-actions[bot] Sep 24, 2025
568001b
fix: add missing jest-environment-jsdom dependency (#1111)
Bewinxed Sep 24, 2025
cdaaa36
fix: prettify types and improved typesafety for MFA methods (#1116)
Bewinxed Sep 24, 2025
e04efee
feat: implement `linkIdentity` for oidc / native sign-in (#1096)
hf Sep 24, 2025
f762def
ci: do not fail on coveralls error (#1121)
mandarini Sep 24, 2025
9dfff67
feat: mfa with webauthn support (#1118)
Bewinxed Sep 24, 2025
1ac757e
fix: export storageClientOptions type (#255)
mandarini Sep 25, 2025
fc07138
chore: do not fail on coveralls error (#252)
mandarini Sep 30, 2025
7fbfe03
chore: initialize monorepo
mandarini Oct 1, 2025
53f7211
feat(repo): merge main from [email protected]:supabase/storage-js.git
mandarini Oct 1, 2025
3bd0104
feat(repo): merge master from [email protected]:supabase/postgrest-js.git
mandarini Oct 1, 2025
4f4e72b
feat(repo): merge master from [email protected]:supabase/realtime-js.git
mandarini Oct 1, 2025
2d16a08
feat(repo): merge main from [email protected]:supabase/functions-js.git
mandarini Oct 1, 2025
e110752
feat(repo): merge master from [email protected]:supabase/auth-js.git
mandarini Oct 1, 2025
8928169
chore: copy over root files
mandarini Oct 1, 2025
dc20644
chore: add supabase-js
mandarini Oct 1, 2025
deb3f9d
chore: update packages for monorepo
mandarini Oct 1, 2025
2f49cef
chore: remove old files
mandarini Oct 1, 2025
df7ded7
chore: update folders in root
mandarini Oct 1, 2025
ad859a1
chore(repo): update name
mandarini Oct 1, 2025
8b3e32f
feat(release): temp run on branch
mandarini Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .cursor/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"nx-mcp": {
"command": "npx",
"args": ["-y", "nx-mcp@latest"]
}
}
}
162 changes: 162 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Cursor Rules for Supabase JS Libraries Monorepo

You are working in a unified Nx monorepo that consolidates all Supabase JavaScript client libraries. This migration from 6 separate repositories addresses maintenance overhead, dependency duplication, and release coordination challenges.

## Repository Context

This monorepo contains 6 JavaScript/TypeScript libraries previously maintained as separate repositories:
- `packages/core/supabase-js` - Main isomorphic client combining all libraries (@supabase/supabase-js)
- `packages/core/auth-js` - Authentication client (@supabase/auth-js)
- `packages/core/functions-js` - Edge Functions client (@supabase/functions-js)
- `packages/core/postgrest-js` - PostgREST database client (@supabase/postgrest-js)
- `packages/core/realtime-js` - Real-time subscriptions client (@supabase/realtime-js)
- `packages/core/storage-js` - File storage client (@supabase/storage-js)

## Key Principles

1. **Zero Breaking Changes**: All migrations and changes must maintain full backward compatibility for consumers
2. **Fixed Version Mode**: All packages share the same version number and are released together
3. **Workspace Dependencies**: Internal dependencies use `*` which Nx replaces with actual versions during release
4. **Affected Testing**: Always use `nx affected` commands to test only what changed
5. **Conventional Commits**: Use conventional commit format for automated versioning and changelogs

## Common Commands

### Building
- Build all: `nx run-many --target=build --all`
- Build specific: `nx build auth-js`
- Build affected: `nx affected --target=build`
- Watch mode: `nx build auth-js --watch`

### Testing
- Test all: `nx run-many --target=test --all`
- Test specific: `nx test auth-js`
- Test affected: `nx affected --target=test`
- Integration tests: `nx run-many --target=test:integration --all`

### Code Quality
- Lint all: `nx run-many --target=lint --all`
- Format: `nx format`
- Check format: `nx format:check`

### Analysis
- Dependency graph: `nx graph`
- Show projects: `nx show projects`
- Affected graph: `nx affected --graph`

## Development Patterns

### Cross-Library Changes
When making changes that affect multiple libraries:
1. Make all changes in a single PR
2. Update tests in both source library and integration tests in supabase-js
3. Use `nx affected --target=test` to verify all impacts
4. Commit with clear scope: `fix(realtime-js): resolve connection issue`

### Adding New Features
1. Implement in the specific library under `packages/core/[library-name]`
2. Add comprehensive unit tests in the library's `test/` directory
3. If it affects supabase-js, add integration tests there
4. Run `nx affected --target=test` before committing

### Quick Fixes
Even for single-library fixes:
1. Use conventional commit: `fix(storage-js): correct upload timeout`
2. All packages will be versioned together (fixed mode)
3. Run `nx affected --target=test`
4. Changes ship together in next release

## TypeScript Configuration

The workspace uses strict TypeScript settings:
- Target: ES2022
- Module: NodeNext
- Strict mode enabled
- Isolated modules for performance
- Composite projects for incremental builds

## Testing Infrastructure

### Unit Tests
- Located in each library's `test/` directory
- Use Jest as test runner
- Mock external dependencies

### Integration Tests
- Libraries with external services (auth-js, storage-js) use Docker
- Docker Compose configs in `infra/` directories
- Run with: `npm run test:infra` from library directory

### Cross-Platform Tests
The main supabase-js tests against:
- Node.js
- Next.js
- Expo (React Native)
- Bun runtime
- Deno runtime
- Browser environment

## File Structure Conventions

```
packages/core/[library-name]/
├── src/ # Source code
├── test/ # Test files
├── dist/ # Build output (gitignored)
├── package.json # Package configuration
└── tsconfig.json # TypeScript config
```

## Important Notes

- **Different Default Branches**: Original repos used either `master` or `main` - be aware when referencing history
- **Package Names**: All packages maintain original npm names (@supabase/[package-name])
- **Shared Code**: Extract common patterns (HTTP client, error handling) to shared packages when identified
- **Docker Required**: Integration tests for auth-js and storage-js require Docker to be running

## Release Process

### Fixed Version Release
All packages released with same version:
```bash
nx release # Interactive release
nx release --dry-run # Preview changes
nx release --yes # CI automation
```

### Internal Dependencies
```json
// packages/core/supabase-js/package.json
"dependencies": {
"@supabase/auth-js": "*",
"@supabase/realtime-js": "*",
"@supabase/functions-js": "*",
"@supabase/storage-js": "*",
"@supabase/postgrest-js": "*"
}
```
The `*` is replaced with actual version during release.

## Code Style

- Use Prettier for formatting (config in .prettierrc)
- Follow existing patterns in each library
- Maintain consistency across the monorepo
- Document public APIs with JSDoc comments

## Common Pitfalls to Avoid

1. Don't hardcode version numbers for internal dependencies
2. Don't make breaking changes to public APIs
3. Don't forget to run affected tests before committing
4. Don't mix unrelated changes in a single commit
5. Don't bypass the Nx build system by running npm scripts directly for cross-library work

## When Making Suggestions

1. Always consider the monorepo structure - changes might affect multiple packages
2. Use Nx commands rather than npm/yarn directly for workspace operations
3. Suggest running affected tests, not all tests, for better performance
4. Remember that all packages version together in fixed mode
5. Consider Docker requirements for integration tests
6. Maintain backward compatibility at all costs
105 changes: 105 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: "\U0001F41E Bug report"
description: Report an issue with a Supabase JS Library
labels: [bug]
type: Bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks!
placeholder: I am doing ... What I expect is ... What actually happening is ...
validations:
required: true
- type: dropdown
id: supabase-library
attributes:
label: Library affected
description: Select the library that you think is affected by the bug
options:
- supabase-js
- auth-js
- postgrest-js
- realtime-js
- storage-js
- functions-js
- unsure/all/other
validations:
required: true
- type: input
id: reproduction
attributes:
label: Reproduction
description: If possible, please provide a link to a repo that can reproduce the problem you ran into. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) is very helpful. ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "needs reproduction" label. If no reproduction is provided after 7 days, it will be closed.
placeholder: Reproduction URL
validations:
required: false
- type: textarea
id: reproduction-steps
attributes:
label: Steps to reproduce
description: Please provide any reproduction steps that may need to be described.
placeholder: Run `npm install` followed by `npm run dev`
- type: textarea
id: system-info
attributes:
label: System Info
description: Output of `npx envinfo --system --npmPackages '{supabase,@supabase/*}' --binaries --browsers`
render: shell
placeholder: System, Binaries, Browsers
validations:
required: true
- type: dropdown
id: package-manager
attributes:
label: Used Package Manager
description: Select the used package manager
options:
- npm
- yarn
- pnpm
- bun
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: |
Optional if provided reproduction. It's very helpful to provide the log text instead of a screenshot.

Provide the error log here in the format below.

````
<details>
<summary>Click to expand!</summary>

```shell
// paste the log text here
```
</details>
````
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md)
required: true
- label: Read the [Contributing Guidelines](https://github.com/supabase/js-client-libs/blob/main/docs/CONTRIBUTING.md).
required: true
- label: Read the [docs](https://supabase.com/docs/reference/javascript/introduction).
required: true
- label: Check that there isn't [already an issue](https://github.com/supabase/js-client-libs/issues) that reports the same bug to avoid creating a duplicate.
required: true
- label: Make sure this is a Supabase JS Library issue and not an issue with the Supabase platform. If it's a Supabase platform related bug, it should likely be reported to [supabase/supabase](https://github.com/supabase/supabase) instead.
required: true
- label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/supabase/js-client-libs/discussions) or join our [Discord Chat Server](https://discord.supabase.com//).
required: true
- label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
required: true
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: "\U0001F4DA Documentation"
description: Suggest an update to the Supabase JS Libraries documentation
labels: [documentation]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this issue!
- type: checkboxes
id: documentation_is
attributes:
label: Documentation is
options:
- label: Missing
- label: Outdated
- label: Confusing
- label: Not sure?
- type: textarea
id: description
attributes:
label: Explain in Detail
description: A clear and concise description of your suggestion. If you intend to submit a PR for this issue, tell us in the description. Thanks!
placeholder: The description of ... is not clear. I thought it meant ... but it wasn't.
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Your Suggestion for Changes
validations:
required: false
- type: input
id: docs-url
attributes:
label: Documentation URL
description: If you have a URL to the problematic docs, please provide it.
placeholder: Documentation URL
- type: textarea
id: reproduction-steps
attributes:
label: Steps to reproduce
description: Please provide any reproduction steps that may need to be described.
placeholder: Run `npm install` followed by `npm run dev`
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: "\U0001F680 New feature proposal"
description: Propose a new feature to be added to the Supabase JS Libraries
labels: ['enhancement']
type: Feature
body:
- type: markdown
attributes:
value: |
Thanks for your interest in the project and taking the time to fill out this feature report!
- type: textarea
id: feature-description
attributes:
label: Description
description: 'Clear and concise description of the problem. Please make the reason and usecases as detailed as possible. If you intend to submit a PR for this issue, tell us in the description. Thanks!'
placeholder: As a developer using the Supabase JS Libraries I want [goal / wish] so that [benefit].
validations:
required: true
- type: textarea
id: suggested-solution
attributes:
label: Suggested solution
description: 'In the library [xy] we could provide following implementation...'
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Alternative
description: Clear and concise description of any alternative solutions or features you've considered.
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Any other context or screenshots about the feature request here.
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Follow our [Code of Conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md)
required: true
- label: Read the [Contributing Guidelines](https://github.com/supabase/js-client-libs/blob/main/docs/CONTRIBUTING.md).
required: true
- label: Read the [docs](https://supabase.com/docs/reference/javascript/introduction).
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
Loading
Loading