@proappstore/sdk 0.2.1 → 1.0.0

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.
@@ -0,0 +1,39 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ProAppStore } from './index.js';
3
+ export interface ProShellProps {
4
+ /** The ProAppStore SDK instance from initPro(). */
5
+ app: ProAppStore;
6
+ /** Your app's content. Only rendered when user is signed in + subscribed. */
7
+ children: ReactNode;
8
+ /** App name shown in the topbar. */
9
+ appName?: string;
10
+ /** If true, allow free users to see the app (no subscription gate). Default: false. */
11
+ allowFree?: boolean;
12
+ }
13
+ /**
14
+ * ProShell — platform-level Shell for all ProAppStore apps.
15
+ *
16
+ * Handles:
17
+ * - Auth initialization + sign-in gate
18
+ * - Subscription check + upgrade wall (unless allowFree=true)
19
+ * - Topbar with avatar, app name, menu (sign out, delete account, manage billing)
20
+ * - Only renders children when all gates pass
21
+ *
22
+ * Usage:
23
+ * ```tsx
24
+ * import { initPro } from '@proappstore/sdk'
25
+ * import { ProShell } from '@proappstore/sdk/shell'
26
+ *
27
+ * const app = initPro({ appId: 'meetup' })
28
+ *
29
+ * export default function App() {
30
+ * return (
31
+ * <ProShell app={app} appName="Meetup">
32
+ * <MeetupApp />
33
+ * </ProShell>
34
+ * )
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function ProShell({ app, children, appName, allowFree }: ProShellProps): import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,GAAG,EAAE,WAAW,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAiB,EAAE,EAAE,aAAa,2CAmJpF"}
package/dist/shell.js ADDED
@@ -0,0 +1,130 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ /**
4
+ * ProShell — platform-level Shell for all ProAppStore apps.
5
+ *
6
+ * Handles:
7
+ * - Auth initialization + sign-in gate
8
+ * - Subscription check + upgrade wall (unless allowFree=true)
9
+ * - Topbar with avatar, app name, menu (sign out, delete account, manage billing)
10
+ * - Only renders children when all gates pass
11
+ *
12
+ * Usage:
13
+ * ```tsx
14
+ * import { initPro } from '@proappstore/sdk'
15
+ * import { ProShell } from '@proappstore/sdk/shell'
16
+ *
17
+ * const app = initPro({ appId: 'meetup' })
18
+ *
19
+ * export default function App() {
20
+ * return (
21
+ * <ProShell app={app} appName="Meetup">
22
+ * <MeetupApp />
23
+ * </ProShell>
24
+ * )
25
+ * }
26
+ * ```
27
+ */
28
+ export function ProShell({ app, children, appName, allowFree = false }) {
29
+ const [user, setUser] = useState(app.auth.user);
30
+ const [subscription, setSubscription] = useState(null);
31
+ const [gate, setGate] = useState('loading');
32
+ const [menuOpen, setMenuOpen] = useState(false);
33
+ useEffect(() => {
34
+ app.auth.init();
35
+ return app.auth.onChange((u) => {
36
+ setUser(u);
37
+ if (!u)
38
+ setGate('signed-out');
39
+ });
40
+ }, [app]);
41
+ // Check subscription after auth
42
+ useEffect(() => {
43
+ if (!user)
44
+ return;
45
+ if (allowFree) {
46
+ setGate('ready');
47
+ return;
48
+ }
49
+ app.subscription.status().then((sub) => {
50
+ setSubscription(sub);
51
+ if (sub?.status === 'active') {
52
+ setGate('ready');
53
+ }
54
+ else {
55
+ setGate('no-subscription');
56
+ }
57
+ }).catch(() => {
58
+ setGate('no-subscription');
59
+ });
60
+ }, [user, app, allowFree]);
61
+ const handleSignOut = useCallback(() => {
62
+ app.auth.signOut();
63
+ setMenuOpen(false);
64
+ }, [app]);
65
+ const handleDeleteAccount = useCallback(async () => {
66
+ if (!confirm('Delete your account? This permanently removes ALL your data across ALL apps and cancels your subscription. This cannot be undone.'))
67
+ return;
68
+ if (!confirm('Are you absolutely sure? Type thinking... Last chance.'))
69
+ return;
70
+ // Delete all KV data
71
+ try {
72
+ const keys = await app.kv.list();
73
+ for (const key of keys) {
74
+ await app.kv.delete(key);
75
+ }
76
+ }
77
+ catch { }
78
+ app.auth.signOut();
79
+ setMenuOpen(false);
80
+ }, [app]);
81
+ const handleManageBilling = useCallback(async () => {
82
+ try {
83
+ await app.subscription.openPortal(window.location.href);
84
+ }
85
+ catch { }
86
+ setMenuOpen(false);
87
+ }, [app]);
88
+ const handleUpgrade = useCallback(async () => {
89
+ await app.subscription.openCheckout({
90
+ priceId: 'price_pro_monthly',
91
+ successUrl: window.location.href + '?upgraded=1',
92
+ cancelUrl: window.location.href,
93
+ });
94
+ }, [app]);
95
+ // --- Gates ---
96
+ if (gate === 'loading') {
97
+ return _jsx("div", { style: styles.center, children: _jsx("p", { style: styles.muted, children: "Loading..." }) });
98
+ }
99
+ if (gate === 'signed-out') {
100
+ return (_jsx("div", { style: styles.center, children: _jsxs("div", { style: styles.card, children: [_jsx("h1", { style: styles.heading, children: appName || 'ProAppStore' }), _jsx("p", { style: styles.muted, children: "Sign in to your ProAppStore account to continue." }), _jsx("button", { onClick: () => app.auth.signIn(), style: styles.primaryBtn, children: "Sign in with GitHub" }), _jsx("p", { style: { ...styles.muted, fontSize: '0.75rem', marginTop: '0.75rem' }, children: "One account for all Pro apps." })] }) }));
101
+ }
102
+ if (gate === 'no-subscription') {
103
+ return (_jsx("div", { style: styles.center, children: _jsxs("div", { style: styles.card, children: [_jsx("h1", { style: styles.heading, children: "Pro subscription required" }), _jsxs("p", { style: styles.muted, children: [appName || 'This app', " requires an active ProAppStore subscription ($9/month)."] }), _jsx("button", { onClick: handleUpgrade, style: styles.primaryBtn, children: "Subscribe to Pro" }), _jsx("button", { onClick: handleSignOut, style: styles.ghostBtn, children: "Sign out" })] }) }));
104
+ }
105
+ // --- Ready: render app with topbar ---
106
+ return (_jsxs("div", { style: styles.shell, children: [_jsxs("header", { style: styles.topbar, children: [_jsxs("div", { style: styles.topbarLeft, children: [_jsx("a", { href: "https://proappstore.online", style: styles.logoLink, children: "Pro" }), appName && _jsx("span", { style: styles.appName, children: appName })] }), _jsxs("div", { style: styles.topbarRight, children: [_jsx("button", { onClick: () => setMenuOpen(!menuOpen), style: styles.avatarBtn, children: _jsx("img", { src: user?.avatarUrl || '', alt: "", style: styles.avatar }) }), menuOpen && (_jsxs("div", { style: styles.menu, children: [_jsxs("div", { style: styles.menuHeader, children: [_jsx("strong", { children: user?.login }), _jsx("span", { style: styles.proBadge, children: "PRO" })] }), _jsx("button", { onClick: handleManageBilling, style: styles.menuItem, children: "Manage billing" }), _jsx("button", { onClick: handleSignOut, style: styles.menuItem, children: "Sign out" }), _jsx("button", { onClick: handleDeleteAccount, style: { ...styles.menuItem, color: '#dc2626' }, children: "Delete account" })] }))] })] }), _jsx("main", { style: styles.main, children: children })] }));
107
+ }
108
+ // --- Inline styles (no Tailwind dependency — works in any app) ---
109
+ const styles = {
110
+ shell: { minHeight: '100dvh', display: 'flex', flexDirection: 'column' },
111
+ topbar: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', padding: '0.5rem 1rem', borderBottom: '1px solid #e5e5e5', background: '#fff', position: 'sticky', top: 0, zIndex: 50 },
112
+ topbarLeft: { display: 'flex', alignItems: 'center', gap: '0.75rem' },
113
+ topbarRight: { position: 'relative' },
114
+ logoLink: { fontWeight: 800, fontSize: '1rem', color: '#7c3aed', textDecoration: 'none' },
115
+ appName: { fontSize: '0.85rem', fontWeight: 600, color: '#444' },
116
+ avatarBtn: { background: 'none', border: '2px solid #e5e5e5', borderRadius: '50%', padding: 0, cursor: 'pointer', width: 32, height: 32, overflow: 'hidden' },
117
+ avatar: { width: '100%', height: '100%', borderRadius: '50%' },
118
+ menu: { position: 'absolute', top: 40, right: 0, background: '#fff', border: '1px solid #e5e5e5', borderRadius: '0.75rem', boxShadow: '0 4px 20px rgba(0,0,0,0.1)', minWidth: 180, padding: '0.5rem 0', zIndex: 100 },
119
+ menuHeader: { padding: '0.5rem 1rem', borderBottom: '1px solid #f0f0f0', display: 'flex', alignItems: 'center', gap: '0.5rem', fontSize: '0.85rem' },
120
+ menuItem: { display: 'block', width: '100%', padding: '0.5rem 1rem', background: 'none', border: 'none', textAlign: 'left', fontSize: '0.85rem', cursor: 'pointer', color: '#333' },
121
+ proBadge: { fontSize: '0.6rem', fontWeight: 700, background: '#7c3aed', color: '#fff', padding: '0.1rem 0.4rem', borderRadius: '0.25rem' },
122
+ center: { minHeight: '100dvh', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '2rem' },
123
+ card: { maxWidth: 400, textAlign: 'center' },
124
+ heading: { fontSize: '1.5rem', fontWeight: 800, marginBottom: '0.5rem', color: '#111' },
125
+ muted: { color: '#666', fontSize: '0.9rem', marginBottom: '1rem' },
126
+ primaryBtn: { background: '#7c3aed', color: '#fff', border: 'none', padding: '0.75rem 2rem', borderRadius: '0.75rem', fontSize: '0.9rem', fontWeight: 700, cursor: 'pointer', marginTop: '0.5rem' },
127
+ ghostBtn: { background: 'none', color: '#666', border: 'none', padding: '0.5rem 1rem', fontSize: '0.8rem', cursor: 'pointer', marginTop: '0.5rem' },
128
+ main: { flex: 1, display: 'flex', flexDirection: 'column' },
129
+ };
130
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../src/shell.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proappstore/sdk",
3
- "version": "0.2.1",
3
+ "version": "1.0.0",
4
4
  "description": "Browser SDK for paid apps on proappstore.online — subscriptions, license keys, premium modules.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -10,10 +10,21 @@
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js"
13
+ },
14
+ "./shell": {
15
+ "types": "./dist/shell.d.ts",
16
+ "import": "./dist/shell.js"
13
17
  }
14
18
  },
15
- "repository": { "type": "git", "url": "git+https://github.com/proappstore-online/platform.git", "directory": "packages/sdk" },
16
- "files": ["dist", "README.md"],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/proappstore-online/platform.git",
22
+ "directory": "packages/sdk"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "README.md"
27
+ ],
17
28
  "scripts": {
18
29
  "build": "tsc",
19
30
  "typecheck": "tsc --noEmit"
@@ -21,7 +32,15 @@
21
32
  "dependencies": {
22
33
  "@freeappstore/sdk": "^0.5.0"
23
34
  },
35
+ "peerDependencies": {
36
+ "react": "^18.0.0 || ^19.0.0"
37
+ },
38
+ "peerDependenciesMeta": {
39
+ "react": { "optional": true }
40
+ },
24
41
  "devDependencies": {
42
+ "@types/react": "^19.0.0",
43
+ "react": "^19.0.0",
25
44
  "typescript": "^5.7.0"
26
45
  },
27
46
  "sideEffects": false