@atlasauth/convex 0.0.0-stage → 0.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/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # @atlasauth/convex changelog
2
+
3
+ ## 0.1.1 — 2026-11-12
4
+
5
+ - Picks up `@atlasauth/design` 0.4.0 (zod 4, fixes a zod 3 memory-exhaustion advisory). No API change.
6
+
7
+ ## 0.1.0 — 2026-10-23
8
+ - First release: `atlasAuthConfig()` / `atlasAuthProvider()` for `convex/auth.config.ts`, and
9
+ `<ConvexProviderWithAtlas>` / `useAtlasConvexAuth()` from `@atlasauth/convex/react`.
package/README.md CHANGED
@@ -1,3 +1,37 @@
1
- # Temporary Holding Version
1
+ # @atlasauth/convex
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Sign users in with [Atlas](https://atlasauth.net) and authenticate them in [Convex](https://convex.dev).
4
+
5
+ ```bash
6
+ npm install @atlasauth/convex @atlasauth/react convex
7
+ ```
8
+
9
+ 1. Create a JWT template named `convex` with its audience set to `convex`.
10
+ 2. Tell Convex to trust Atlas:
11
+
12
+ ```ts
13
+ // convex/auth.config.ts
14
+ import { atlasAuthConfig } from '@atlasauth/convex';
15
+
16
+ export default atlasAuthConfig({
17
+ issuer: process.env.ATLAS_ISSUER!, // https://auth.example.com, or https://atlasauth.net
18
+ instanceId: process.env.ATLAS_INSTANCE_ID, // ins_… (needed on the shared atlasauth.net host)
19
+ });
20
+ ```
21
+
22
+ 3. Swap `ConvexProvider` for `ConvexProviderWithAtlas`, inside `AtlasProvider`:
23
+
24
+ ```tsx
25
+ import { AtlasProvider } from '@atlasauth/react';
26
+ import { ConvexProviderWithAtlas } from '@atlasauth/convex/react';
27
+
28
+ <AtlasProvider publishableKey="pk_live_…">
29
+ <ConvexProviderWithAtlas client={convex}>
30
+ <App />
31
+ </ConvexProviderWithAtlas>
32
+ </AtlasProvider>;
33
+ ```
34
+
35
+ In Convex functions, `await ctx.auth.getUserIdentity()` returns the signed-in Atlas user (`subject` is the Atlas user id).
36
+
37
+ Full guide: https://atlasauth.net/docs/convex
@@ -0,0 +1,71 @@
1
+ /**
2
+ * `@atlasauth/convex` — the Convex side of Atlas sign-in.
3
+ *
4
+ * Convex verifies the JWT your client hands it against the providers listed in
5
+ * `convex/auth.config.ts`. An Atlas instance on its own custom frontend domain
6
+ * is a plain OpenID Connect issuer, so Convex can discover its keys from the
7
+ * issuer. An instance on the shared Atlas host signs with a per-instance key
8
+ * that lives at a per-instance JWKS URL, so it is declared as a Convex
9
+ * "custom JWT" provider pointing at that URL instead.
10
+ *
11
+ * ```ts
12
+ * // convex/auth.config.ts
13
+ * import { atlasAuthConfig } from '@atlasauth/convex';
14
+ * export default atlasAuthConfig({ issuer: process.env.ATLAS_ISSUER!, instanceId: process.env.ATLAS_INSTANCE_ID });
15
+ * ```
16
+ *
17
+ * This module has no runtime dependency (Convex loads the auth config in its
18
+ * own runtime); the React provider lives in `@atlasauth/convex/react`.
19
+ */
20
+ /** The JWT template the client asks Atlas for, and the `aud` it pins by default. */
21
+ export declare const DEFAULT_CONVEX_TEMPLATE = "convex";
22
+ export declare const DEFAULT_APPLICATION_ID = "convex";
23
+ /** The shared Atlas frontend host. Tokens issued there are verified per instance. */
24
+ export declare const SHARED_ATLAS_ISSUER = "https://atlasauth.net";
25
+ /** Where the per-instance keys of a shared-host instance are published. */
26
+ export declare const SHARED_ATLAS_API = "https://api.atlasauth.net";
27
+ /** A Convex OIDC provider: keys discovered from `<domain>/.well-known/openid-configuration`. */
28
+ export interface ConvexOidcProvider {
29
+ domain: string;
30
+ applicationID: string;
31
+ }
32
+ /** A Convex custom-JWT provider: the issuer and JWKS URL are given explicitly. */
33
+ export interface ConvexCustomJwtProvider {
34
+ type: 'customJwt';
35
+ issuer: string;
36
+ jwks: string;
37
+ algorithm: 'RS256';
38
+ applicationID?: string;
39
+ }
40
+ export type ConvexAuthProvider = ConvexOidcProvider | ConvexCustomJwtProvider;
41
+ export interface AtlasConvexOptions {
42
+ /**
43
+ * The `iss` of your Atlas tokens: your custom frontend domain (for example
44
+ * `https://auth.example.com`), or `https://atlasauth.net` on the shared host.
45
+ */
46
+ issuer: string;
47
+ /**
48
+ * Your instance id (`ins_…`). Required on the shared host, where the
49
+ * per-instance JWKS URL is built from it. Ignored on a custom domain.
50
+ */
51
+ instanceId?: string;
52
+ /**
53
+ * The `aud` your Convex template pins (its `audience` setting). Convex
54
+ * rejects a token whose `aud` differs. Default `convex`. Pass `null` for a
55
+ * template with no audience (shared-host instances only: Convex's OIDC
56
+ * provider type always checks `aud`).
57
+ */
58
+ applicationID?: string | null;
59
+ /** Override the JWKS URL (rarely needed). */
60
+ jwks?: string;
61
+ }
62
+ /** Is this the shared Atlas host (whose keys are per instance)? */
63
+ export declare function isSharedAtlasIssuer(issuer: string): boolean;
64
+ /** The per-instance JWKS URL of a shared-host instance. */
65
+ export declare function sharedInstanceJwksUrl(instanceId: string): string;
66
+ /** One Convex auth provider entry for an Atlas instance. */
67
+ export declare function atlasAuthProvider(options: AtlasConvexOptions): ConvexAuthProvider;
68
+ /** The whole `convex/auth.config.ts` default export for one Atlas instance. */
69
+ export declare function atlasAuthConfig(options: AtlasConvexOptions): {
70
+ providers: ConvexAuthProvider[];
71
+ };
package/dist/index.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /**
3
+ * `@atlasauth/convex` — the Convex side of Atlas sign-in.
4
+ *
5
+ * Convex verifies the JWT your client hands it against the providers listed in
6
+ * `convex/auth.config.ts`. An Atlas instance on its own custom frontend domain
7
+ * is a plain OpenID Connect issuer, so Convex can discover its keys from the
8
+ * issuer. An instance on the shared Atlas host signs with a per-instance key
9
+ * that lives at a per-instance JWKS URL, so it is declared as a Convex
10
+ * "custom JWT" provider pointing at that URL instead.
11
+ *
12
+ * ```ts
13
+ * // convex/auth.config.ts
14
+ * import { atlasAuthConfig } from '@atlasauth/convex';
15
+ * export default atlasAuthConfig({ issuer: process.env.ATLAS_ISSUER!, instanceId: process.env.ATLAS_INSTANCE_ID });
16
+ * ```
17
+ *
18
+ * This module has no runtime dependency (Convex loads the auth config in its
19
+ * own runtime); the React provider lives in `@atlasauth/convex/react`.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.SHARED_ATLAS_API = exports.SHARED_ATLAS_ISSUER = exports.DEFAULT_APPLICATION_ID = exports.DEFAULT_CONVEX_TEMPLATE = void 0;
23
+ exports.isSharedAtlasIssuer = isSharedAtlasIssuer;
24
+ exports.sharedInstanceJwksUrl = sharedInstanceJwksUrl;
25
+ exports.atlasAuthProvider = atlasAuthProvider;
26
+ exports.atlasAuthConfig = atlasAuthConfig;
27
+ /** The JWT template the client asks Atlas for, and the `aud` it pins by default. */
28
+ exports.DEFAULT_CONVEX_TEMPLATE = 'convex';
29
+ exports.DEFAULT_APPLICATION_ID = 'convex';
30
+ /** The shared Atlas frontend host. Tokens issued there are verified per instance. */
31
+ exports.SHARED_ATLAS_ISSUER = 'https://atlasauth.net';
32
+ /** Where the per-instance keys of a shared-host instance are published. */
33
+ exports.SHARED_ATLAS_API = 'https://api.atlasauth.net';
34
+ function normaliseIssuer(issuer) {
35
+ let url;
36
+ try {
37
+ url = new URL(issuer);
38
+ }
39
+ catch {
40
+ throw new Error(`@atlasauth/convex: issuer must be an absolute URL, got "${issuer}".`);
41
+ }
42
+ if (url.protocol !== 'https:' && url.hostname !== 'localhost' && url.hostname !== '127.0.0.1') {
43
+ throw new Error('@atlasauth/convex: issuer must use https.');
44
+ }
45
+ return `${url.protocol}//${url.host}${url.pathname.replace(/\/+$/, '')}`;
46
+ }
47
+ /** Is this the shared Atlas host (whose keys are per instance)? */
48
+ function isSharedAtlasIssuer(issuer) {
49
+ return normaliseIssuer(issuer) === exports.SHARED_ATLAS_ISSUER;
50
+ }
51
+ /** The per-instance JWKS URL of a shared-host instance. */
52
+ function sharedInstanceJwksUrl(instanceId) {
53
+ if (!/^ins_[A-Za-z0-9]+$/.test(instanceId)) {
54
+ throw new Error(`@atlasauth/convex: instanceId must look like "ins_…", got "${instanceId}".`);
55
+ }
56
+ return `${exports.SHARED_ATLAS_API}/instances/${instanceId}/.well-known/jwks.json`;
57
+ }
58
+ /** One Convex auth provider entry for an Atlas instance. */
59
+ function atlasAuthProvider(options) {
60
+ const issuer = normaliseIssuer(options.issuer);
61
+ const applicationID = options.applicationID === undefined ? exports.DEFAULT_APPLICATION_ID : options.applicationID;
62
+ if (issuer === exports.SHARED_ATLAS_ISSUER || options.jwks) {
63
+ let jwks = options.jwks;
64
+ if (!jwks) {
65
+ if (!options.instanceId) {
66
+ throw new Error('@atlasauth/convex: on the shared Atlas host, pass instanceId so Convex can find your instance\'s signing keys.');
67
+ }
68
+ jwks = sharedInstanceJwksUrl(options.instanceId);
69
+ }
70
+ return {
71
+ type: 'customJwt',
72
+ issuer,
73
+ jwks,
74
+ algorithm: 'RS256',
75
+ ...(applicationID ? { applicationID } : {}),
76
+ };
77
+ }
78
+ if (!applicationID) {
79
+ throw new Error('@atlasauth/convex: an issuer on a custom domain is checked as an OIDC provider, which needs an applicationID (the template audience).');
80
+ }
81
+ return { domain: issuer, applicationID };
82
+ }
83
+ /** The whole `convex/auth.config.ts` default export for one Atlas instance. */
84
+ function atlasAuthConfig(options) {
85
+ return { providers: [atlasAuthProvider(options)] };
86
+ }
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAgEH,kDAEC;AAGD,sDAKC;AAGD,8CA6BC;AAGD,0CAEC;AA7GD,oFAAoF;AACvE,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAE/C,qFAAqF;AACxE,QAAA,mBAAmB,GAAG,uBAAuB,CAAC;AAC3D,2EAA2E;AAC9D,QAAA,gBAAgB,GAAG,2BAA2B,CAAC;AAyC5D,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,IAAI,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,mEAAmE;AACnE,SAAgB,mBAAmB,CAAC,MAAc;IAChD,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,2BAAmB,CAAC;AACzD,CAAC;AAED,2DAA2D;AAC3D,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8DAA8D,UAAU,IAAI,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,GAAG,wBAAgB,cAAc,UAAU,wBAAwB,CAAC;AAC7E,CAAC;AAED,4DAA4D;AAC5D,SAAgB,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,8BAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAE3G,IAAI,MAAM,KAAK,2BAAmB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,IAAI;YACJ,SAAS,EAAE,OAAO;YAClB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uIAAuI,CACxI,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,SAAgB,eAAe,CAAC,OAA2B;IACzD,OAAO,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type ConvexReactClient } from 'convex/react';
3
+ /**
4
+ * `@atlasauth/convex/react` — authenticate Convex with the Atlas session.
5
+ *
6
+ * ```tsx
7
+ * <AtlasProvider publishableKey={…}>
8
+ * <ConvexProviderWithAtlas client={convex}>
9
+ * <App />
10
+ * </ConvexProviderWithAtlas>
11
+ * </AtlasProvider>
12
+ * ```
13
+ *
14
+ * Convex asks for a token whenever it (re)connects; the provider answers with a
15
+ * fresh token minted from the `convex` JWT template of the signed-in session.
16
+ */
17
+ /** The shape Convex's `ConvexProviderWithAuth` expects from its `useAuth` prop. */
18
+ export interface ConvexAuthState {
19
+ isLoading: boolean;
20
+ isAuthenticated: boolean;
21
+ fetchAccessToken(args: {
22
+ forceRefreshToken: boolean;
23
+ }): Promise<string | null>;
24
+ }
25
+ /** The part of Atlas's `useAuth()` the bridge reads. */
26
+ export interface AtlasAuthLike {
27
+ isLoaded: boolean;
28
+ isSignedIn: boolean;
29
+ getToken(options?: {
30
+ template?: string;
31
+ }): Promise<string | null>;
32
+ }
33
+ /**
34
+ * The pure projection: Atlas auth state → Convex auth state. A token fetch that
35
+ * fails resolves `null` (Convex then treats the client as signed out) instead of
36
+ * throwing into Convex's reconnect loop.
37
+ */
38
+ export declare function convexAuthFromAtlas(auth: AtlasAuthLike, template?: string): ConvexAuthState;
39
+ /**
40
+ * Convex's `useAuth` contract backed by Atlas. `template` is the JWT template
41
+ * to mint (default `convex`). Memoised so Convex only re-authenticates when the
42
+ * sign-in state actually changes.
43
+ */
44
+ export declare function useAtlasConvexAuth(template?: string): ConvexAuthState;
45
+ /**
46
+ * Drop-in for Convex's `ConvexProvider` when the app signs in with Atlas. Must
47
+ * sit inside `<AtlasProvider>`.
48
+ */
49
+ export declare function ConvexProviderWithAtlas({ client, children, template, }: {
50
+ client: ConvexReactClient;
51
+ children: ReactNode;
52
+ /** The JWT template Convex tokens are minted from. Default `convex`. */
53
+ template?: string;
54
+ }): import("react").JSX.Element;
package/dist/react.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.convexAuthFromAtlas = convexAuthFromAtlas;
5
+ exports.useAtlasConvexAuth = useAtlasConvexAuth;
6
+ exports.ConvexProviderWithAtlas = ConvexProviderWithAtlas;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const react_2 = require("convex/react");
10
+ const react_3 = require("@atlasauth/react");
11
+ const index_1 = require("./index");
12
+ /**
13
+ * The pure projection: Atlas auth state → Convex auth state. A token fetch that
14
+ * fails resolves `null` (Convex then treats the client as signed out) instead of
15
+ * throwing into Convex's reconnect loop.
16
+ */
17
+ function convexAuthFromAtlas(auth, template = index_1.DEFAULT_CONVEX_TEMPLATE) {
18
+ return {
19
+ isLoading: !auth.isLoaded,
20
+ isAuthenticated: auth.isLoaded && auth.isSignedIn,
21
+ fetchAccessToken: async () => {
22
+ if (!auth.isSignedIn)
23
+ return null;
24
+ try {
25
+ return await auth.getToken({ template });
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ },
31
+ };
32
+ }
33
+ /**
34
+ * Convex's `useAuth` contract backed by Atlas. `template` is the JWT template
35
+ * to mint (default `convex`). Memoised so Convex only re-authenticates when the
36
+ * sign-in state actually changes.
37
+ */
38
+ function useAtlasConvexAuth(template = index_1.DEFAULT_CONVEX_TEMPLATE) {
39
+ const { isLoaded, isSignedIn, getToken } = (0, react_3.useAuth)();
40
+ const fetchAccessToken = (0, react_1.useCallback)((args) => convexAuthFromAtlas({ isLoaded, isSignedIn, getToken }, template).fetchAccessToken(args),
41
+ // getToken is stable per provider; isSignedIn flips on sign-in / sign-out.
42
+ [isLoaded, isSignedIn, getToken, template]);
43
+ return (0, react_1.useMemo)(() => ({ isLoading: !isLoaded, isAuthenticated: isLoaded && isSignedIn, fetchAccessToken }), [isLoaded, isSignedIn, fetchAccessToken]);
44
+ }
45
+ /**
46
+ * Drop-in for Convex's `ConvexProvider` when the app signs in with Atlas. Must
47
+ * sit inside `<AtlasProvider>`.
48
+ */
49
+ function ConvexProviderWithAtlas({ client, children, template = index_1.DEFAULT_CONVEX_TEMPLATE, }) {
50
+ const useAuthFromAtlas = (0, react_1.useMemo)(() => function useAuthFromAtlas() {
51
+ return useAtlasConvexAuth(template);
52
+ }, [template]);
53
+ return ((0, jsx_runtime_1.jsx)(react_2.ConvexProviderWithAuth, { client: client, useAuth: useAuthFromAtlas, children: children }));
54
+ }
55
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAyCb,kDAaC;AAOD,gDAYC;AAMD,0DAsBC;;AAnGD,iCAA6D;AAC7D,wCAA8E;AAC9E,4CAA2C;AAC3C,mCAAkD;AA+BlD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAAmB,EAAE,WAAmB,+BAAuB;IACjG,OAAO;QACL,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ;QACzB,eAAe,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU;QACjD,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAClC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,WAAmB,+BAAuB;IAC3E,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAA,eAAO,GAAE,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAClC,CAAC,IAAoC,EAAE,EAAE,CACvC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;IAC1F,2EAA2E;IAC3E,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAC3C,CAAC;IACF,OAAO,IAAA,eAAO,EACZ,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,IAAI,UAAU,EAAE,gBAAgB,EAAE,CAAC,EAC3F,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,CACzC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,QAAQ,EACR,QAAQ,GAAG,+BAAuB,GAMnC;IACC,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAC9B,GAAG,EAAE,CACH,SAAS,gBAAgB;QACvB,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,EACH,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,OAAO,CACL,uBAAC,8BAAsB,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,YAC9D,QAAQ,GACc,CAC1B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,48 @@
1
1
  {
2
2
  "name": "@atlasauth/convex",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "Use Atlas sign-in with Convex: the Convex auth config for Atlas tokens and <ConvexProviderWithAtlas>.",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ },
12
+ "./react": {
13
+ "types": "./dist/react.d.ts",
14
+ "default": "./dist/react.js"
15
+ },
16
+ "./package.json": "./package.json"
17
+ },
18
+ "dependencies": {
19
+ "@atlasauth/react": "^0.34.1"
20
+ },
21
+ "peerDependencies": {
22
+ "convex": ">=1.13",
23
+ "react": ">=18"
24
+ },
25
+ "devDependencies": {
26
+ "@types/react": "^18.3.12",
27
+ "@types/react-dom": "^18.3.1",
28
+ "convex": "^1.17.0",
29
+ "react": "^18.3.1",
30
+ "react-dom": "^18.3.1",
31
+ "typescript": "^5.6.3",
32
+ "vitest": "^3.2.7"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "files": [
38
+ "dist",
39
+ "!dist/*.tsbuildinfo",
40
+ "README.md",
41
+ "CHANGELOG.md"
42
+ ],
43
+ "scripts": {
44
+ "build": "tsc -p tsconfig.build.json",
45
+ "typecheck": "tsgo -p tsconfig.json --noEmit --module preserve --moduleResolution bundler --incremental --tsBuildInfoFile node_modules/.cache/typecheck.tsbuildinfo",
46
+ "test": "vitest run"
47
+ }
6
48
  }