@getpara/cli 2.15.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.
Files changed (331) hide show
  1. package/README.md +97 -0
  2. package/dist/api/client.d.ts +49 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/client.js +247 -0
  5. package/dist/api/errors.d.ts +9 -0
  6. package/dist/api/errors.d.ts.map +1 -0
  7. package/dist/api/errors.js +29 -0
  8. package/dist/api/types.d.ts +155 -0
  9. package/dist/api/types.d.ts.map +1 -0
  10. package/dist/api/types.js +58 -0
  11. package/dist/auth/polling-flow.d.ts +7 -0
  12. package/dist/auth/polling-flow.d.ts.map +1 -0
  13. package/dist/auth/polling-flow.js +94 -0
  14. package/dist/auth/session-manager.d.ts +7 -0
  15. package/dist/auth/session-manager.d.ts.map +1 -0
  16. package/dist/auth/session-manager.js +42 -0
  17. package/dist/cli.d.ts +16 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +151 -0
  20. package/dist/commands/auth/index.d.ts +3 -0
  21. package/dist/commands/auth/index.d.ts.map +1 -0
  22. package/dist/commands/auth/index.js +18 -0
  23. package/dist/commands/auth/login.d.ts +3 -0
  24. package/dist/commands/auth/login.d.ts.map +1 -0
  25. package/dist/commands/auth/login.js +70 -0
  26. package/dist/commands/auth/logout.d.ts +3 -0
  27. package/dist/commands/auth/logout.d.ts.map +1 -0
  28. package/dist/commands/auth/logout.js +45 -0
  29. package/dist/commands/auth/status.d.ts +3 -0
  30. package/dist/commands/auth/status.d.ts.map +1 -0
  31. package/dist/commands/auth/status.js +54 -0
  32. package/dist/commands/config.d.ts +3 -0
  33. package/dist/commands/config.d.ts.map +1 -0
  34. package/dist/commands/config.js +122 -0
  35. package/dist/commands/create.d.ts +3 -0
  36. package/dist/commands/create.d.ts.map +1 -0
  37. package/dist/commands/create.js +587 -0
  38. package/dist/commands/doctor.d.ts +3 -0
  39. package/dist/commands/doctor.d.ts.map +1 -0
  40. package/dist/commands/doctor.js +67 -0
  41. package/dist/commands/init.d.ts +3 -0
  42. package/dist/commands/init.d.ts.map +1 -0
  43. package/dist/commands/init.js +45 -0
  44. package/dist/commands/keys/archive.d.ts +3 -0
  45. package/dist/commands/keys/archive.d.ts.map +1 -0
  46. package/dist/commands/keys/archive.js +49 -0
  47. package/dist/commands/keys/config/branding.d.ts +23 -0
  48. package/dist/commands/keys/config/branding.d.ts.map +1 -0
  49. package/dist/commands/keys/config/branding.js +246 -0
  50. package/dist/commands/keys/config/categories.d.ts +15 -0
  51. package/dist/commands/keys/config/categories.d.ts.map +1 -0
  52. package/dist/commands/keys/config/categories.js +67 -0
  53. package/dist/commands/keys/config/index.d.ts +3 -0
  54. package/dist/commands/keys/config/index.d.ts.map +1 -0
  55. package/dist/commands/keys/config/index.js +56 -0
  56. package/dist/commands/keys/config/ramps.d.ts +18 -0
  57. package/dist/commands/keys/config/ramps.d.ts.map +1 -0
  58. package/dist/commands/keys/config/ramps.js +185 -0
  59. package/dist/commands/keys/config/security.d.ts +15 -0
  60. package/dist/commands/keys/config/security.d.ts.map +1 -0
  61. package/dist/commands/keys/config/security.js +212 -0
  62. package/dist/commands/keys/config/setup.d.ts +16 -0
  63. package/dist/commands/keys/config/setup.d.ts.map +1 -0
  64. package/dist/commands/keys/config/setup.js +235 -0
  65. package/dist/commands/keys/config/webhooks.d.ts +18 -0
  66. package/dist/commands/keys/config/webhooks.d.ts.map +1 -0
  67. package/dist/commands/keys/config/webhooks.js +279 -0
  68. package/dist/commands/keys/create.d.ts +3 -0
  69. package/dist/commands/keys/create.d.ts.map +1 -0
  70. package/dist/commands/keys/create.js +64 -0
  71. package/dist/commands/keys/get.d.ts +3 -0
  72. package/dist/commands/keys/get.d.ts.map +1 -0
  73. package/dist/commands/keys/get.js +91 -0
  74. package/dist/commands/keys/index.d.ts +3 -0
  75. package/dist/commands/keys/index.d.ts.map +1 -0
  76. package/dist/commands/keys/index.js +22 -0
  77. package/dist/commands/keys/list.d.ts +3 -0
  78. package/dist/commands/keys/list.d.ts.map +1 -0
  79. package/dist/commands/keys/list.js +66 -0
  80. package/dist/commands/keys/rotate.d.ts +3 -0
  81. package/dist/commands/keys/rotate.d.ts.map +1 -0
  82. package/dist/commands/keys/rotate.js +59 -0
  83. package/dist/commands/orgs/index.d.ts +3 -0
  84. package/dist/commands/orgs/index.d.ts.map +1 -0
  85. package/dist/commands/orgs/index.js +15 -0
  86. package/dist/commands/orgs/list.d.ts +3 -0
  87. package/dist/commands/orgs/list.d.ts.map +1 -0
  88. package/dist/commands/orgs/list.js +53 -0
  89. package/dist/commands/orgs/switch.d.ts +3 -0
  90. package/dist/commands/orgs/switch.d.ts.map +1 -0
  91. package/dist/commands/orgs/switch.js +61 -0
  92. package/dist/commands/projects/archive.d.ts +3 -0
  93. package/dist/commands/projects/archive.d.ts.map +1 -0
  94. package/dist/commands/projects/archive.js +51 -0
  95. package/dist/commands/projects/create.d.ts +3 -0
  96. package/dist/commands/projects/create.d.ts.map +1 -0
  97. package/dist/commands/projects/create.js +48 -0
  98. package/dist/commands/projects/index.d.ts +3 -0
  99. package/dist/commands/projects/index.d.ts.map +1 -0
  100. package/dist/commands/projects/index.js +25 -0
  101. package/dist/commands/projects/list.d.ts +3 -0
  102. package/dist/commands/projects/list.d.ts.map +1 -0
  103. package/dist/commands/projects/list.js +52 -0
  104. package/dist/commands/projects/restore.d.ts +3 -0
  105. package/dist/commands/projects/restore.d.ts.map +1 -0
  106. package/dist/commands/projects/restore.js +36 -0
  107. package/dist/commands/projects/switch.d.ts +3 -0
  108. package/dist/commands/projects/switch.d.ts.map +1 -0
  109. package/dist/commands/projects/switch.js +57 -0
  110. package/dist/commands/projects/update.d.ts +3 -0
  111. package/dist/commands/projects/update.d.ts.map +1 -0
  112. package/dist/commands/projects/update.js +67 -0
  113. package/dist/commands/whoami.d.ts +3 -0
  114. package/dist/commands/whoami.d.ts.map +1 -0
  115. package/dist/commands/whoami.js +61 -0
  116. package/dist/config/config-manager.d.ts +3 -0
  117. package/dist/config/config-manager.d.ts.map +1 -0
  118. package/dist/config/config-manager.js +32 -0
  119. package/dist/config/config-store.d.ts +10 -0
  120. package/dist/config/config-store.d.ts.map +1 -0
  121. package/dist/config/config-store.js +37 -0
  122. package/dist/config/credential-store.d.ts +12 -0
  123. package/dist/config/credential-store.d.ts.map +1 -0
  124. package/dist/config/credential-store.js +94 -0
  125. package/dist/config/paths.d.ts +5 -0
  126. package/dist/config/paths.d.ts.map +1 -0
  127. package/dist/config/paths.js +29 -0
  128. package/dist/config/project-config.d.ts +8 -0
  129. package/dist/config/project-config.d.ts.map +1 -0
  130. package/dist/config/project-config.js +41 -0
  131. package/dist/core/constants.d.ts +27 -0
  132. package/dist/core/constants.d.ts.map +1 -0
  133. package/dist/core/constants.js +60 -0
  134. package/dist/core/error-handler.d.ts +24 -0
  135. package/dist/core/error-handler.d.ts.map +1 -0
  136. package/dist/core/error-handler.js +83 -0
  137. package/dist/core/types.d.ts +21 -0
  138. package/dist/core/types.d.ts.map +1 -0
  139. package/dist/core/types.js +0 -0
  140. package/dist/core/update-check.d.ts +6 -0
  141. package/dist/core/update-check.d.ts.map +1 -0
  142. package/dist/core/update-check.js +78 -0
  143. package/dist/diagnostics/checks/chain-dependencies.d.ts +2 -0
  144. package/dist/diagnostics/checks/chain-dependencies.d.ts.map +1 -0
  145. package/dist/diagnostics/checks/chain-dependencies.js +130 -0
  146. package/dist/diagnostics/checks/css-import.d.ts +2 -0
  147. package/dist/diagnostics/checks/css-import.d.ts.map +1 -0
  148. package/dist/diagnostics/checks/css-import.js +57 -0
  149. package/dist/diagnostics/checks/deprecated-packages.d.ts +2 -0
  150. package/dist/diagnostics/checks/deprecated-packages.d.ts.map +1 -0
  151. package/dist/diagnostics/checks/deprecated-packages.js +93 -0
  152. package/dist/diagnostics/checks/env-api-key.d.ts +2 -0
  153. package/dist/diagnostics/checks/env-api-key.d.ts.map +1 -0
  154. package/dist/diagnostics/checks/env-api-key.js +75 -0
  155. package/dist/diagnostics/checks/env-var-prefix.d.ts +2 -0
  156. package/dist/diagnostics/checks/env-var-prefix.d.ts.map +1 -0
  157. package/dist/diagnostics/checks/env-var-prefix.js +52 -0
  158. package/dist/diagnostics/checks/index.d.ts +13 -0
  159. package/dist/diagnostics/checks/index.d.ts.map +1 -0
  160. package/dist/diagnostics/checks/index.js +32 -0
  161. package/dist/diagnostics/checks/para-provider.d.ts +2 -0
  162. package/dist/diagnostics/checks/para-provider.d.ts.map +1 -0
  163. package/dist/diagnostics/checks/para-provider.js +42 -0
  164. package/dist/diagnostics/checks/query-client.d.ts +2 -0
  165. package/dist/diagnostics/checks/query-client.d.ts.map +1 -0
  166. package/dist/diagnostics/checks/query-client.js +58 -0
  167. package/dist/diagnostics/checks/use-client-directive.d.ts +2 -0
  168. package/dist/diagnostics/checks/use-client-directive.d.ts.map +1 -0
  169. package/dist/diagnostics/checks/use-client-directive.js +81 -0
  170. package/dist/diagnostics/checks/version-consistency.d.ts +2 -0
  171. package/dist/diagnostics/checks/version-consistency.d.ts.map +1 -0
  172. package/dist/diagnostics/checks/version-consistency.js +93 -0
  173. package/dist/diagnostics/context.d.ts +3 -0
  174. package/dist/diagnostics/context.d.ts.map +1 -0
  175. package/dist/diagnostics/context.js +56 -0
  176. package/dist/diagnostics/detectors/framework.d.ts +5 -0
  177. package/dist/diagnostics/detectors/framework.d.ts.map +1 -0
  178. package/dist/diagnostics/detectors/framework.js +73 -0
  179. package/dist/diagnostics/detectors/package-manager.d.ts +3 -0
  180. package/dist/diagnostics/detectors/package-manager.d.ts.map +1 -0
  181. package/dist/diagnostics/detectors/package-manager.js +17 -0
  182. package/dist/diagnostics/detectors/sdk.d.ts +7 -0
  183. package/dist/diagnostics/detectors/sdk.d.ts.map +1 -0
  184. package/dist/diagnostics/detectors/sdk.js +48 -0
  185. package/dist/diagnostics/runner.d.ts +3 -0
  186. package/dist/diagnostics/runner.d.ts.map +1 -0
  187. package/dist/diagnostics/runner.js +44 -0
  188. package/dist/diagnostics/types.d.ts +70 -0
  189. package/dist/diagnostics/types.d.ts.map +1 -0
  190. package/dist/diagnostics/types.js +14 -0
  191. package/dist/diagnostics/utils/code-search.d.ts +10 -0
  192. package/dist/diagnostics/utils/code-search.d.ts.map +1 -0
  193. package/dist/diagnostics/utils/code-search.js +98 -0
  194. package/dist/diagnostics/utils/file-system.d.ts +7 -0
  195. package/dist/diagnostics/utils/file-system.d.ts.map +1 -0
  196. package/dist/diagnostics/utils/file-system.js +72 -0
  197. package/dist/diagnostics/utils/package-json.d.ts +12 -0
  198. package/dist/diagnostics/utils/package-json.d.ts.map +1 -0
  199. package/dist/diagnostics/utils/package-json.js +51 -0
  200. package/dist/index.d.ts +2 -0
  201. package/dist/index.d.ts.map +1 -0
  202. package/dist/index.js +20 -0
  203. package/dist/output/formatter.d.ts +25 -0
  204. package/dist/output/formatter.d.ts.map +1 -0
  205. package/dist/output/formatter.js +76 -0
  206. package/dist/output/mask.d.ts +2 -0
  207. package/dist/output/mask.d.ts.map +1 -0
  208. package/dist/output/mask.js +15 -0
  209. package/dist/output/prompts.d.ts +25 -0
  210. package/dist/output/prompts.d.ts.map +1 -0
  211. package/dist/output/prompts.js +86 -0
  212. package/dist/output/spinner.d.ts +6 -0
  213. package/dist/output/spinner.d.ts.map +1 -0
  214. package/dist/output/spinner.js +7 -0
  215. package/dist/output/table.d.ts +9 -0
  216. package/dist/output/table.d.ts.map +1 -0
  217. package/dist/output/table.js +21 -0
  218. package/dist/scaffolding/scaffolder.d.ts +3 -0
  219. package/dist/scaffolding/scaffolder.d.ts.map +1 -0
  220. package/dist/scaffolding/scaffolder.js +78 -0
  221. package/dist/scaffolding/strategies/expo-template.d.ts +16 -0
  222. package/dist/scaffolding/strategies/expo-template.d.ts.map +1 -0
  223. package/dist/scaffolding/strategies/expo-template.js +160 -0
  224. package/dist/scaffolding/strategies/index.d.ts +5 -0
  225. package/dist/scaffolding/strategies/index.d.ts.map +1 -0
  226. package/dist/scaffolding/strategies/index.js +25 -0
  227. package/dist/scaffolding/strategies/nextjs-template.d.ts +12 -0
  228. package/dist/scaffolding/strategies/nextjs-template.d.ts.map +1 -0
  229. package/dist/scaffolding/strategies/nextjs-template.js +122 -0
  230. package/dist/scaffolding/template-renderer.d.ts +11 -0
  231. package/dist/scaffolding/template-renderer.d.ts.map +1 -0
  232. package/dist/scaffolding/template-renderer.js +99 -0
  233. package/dist/scaffolding/types.d.ts +69 -0
  234. package/dist/scaffolding/types.d.ts.map +1 -0
  235. package/dist/scaffolding/types.js +21 -0
  236. package/dist/scaffolding/utils/detect-package-manager.d.ts +23 -0
  237. package/dist/scaffolding/utils/detect-package-manager.d.ts.map +1 -0
  238. package/dist/scaffolding/utils/detect-package-manager.js +57 -0
  239. package/dist/scaffolding/utils/fs.d.ts +11 -0
  240. package/dist/scaffolding/utils/fs.d.ts.map +1 -0
  241. package/dist/scaffolding/utils/fs.js +45 -0
  242. package/dist/scaffolding/utils/resolve-para-version.d.ts +7 -0
  243. package/dist/scaffolding/utils/resolve-para-version.d.ts.map +1 -0
  244. package/dist/scaffolding/utils/resolve-para-version.js +21 -0
  245. package/dist/validation/auth-methods.d.ts +14 -0
  246. package/dist/validation/auth-methods.d.ts.map +1 -0
  247. package/dist/validation/auth-methods.js +23 -0
  248. package/dist/validation/cidr.d.ts +11 -0
  249. package/dist/validation/cidr.d.ts.map +1 -0
  250. package/dist/validation/cidr.js +35 -0
  251. package/dist/validation/hex-color.d.ts +7 -0
  252. package/dist/validation/hex-color.d.ts.map +1 -0
  253. package/dist/validation/hex-color.js +10 -0
  254. package/dist/validation/index.d.ts +9 -0
  255. package/dist/validation/index.d.ts.map +1 -0
  256. package/dist/validation/index.js +49 -0
  257. package/dist/validation/native-passkey.d.ts +31 -0
  258. package/dist/validation/native-passkey.d.ts.map +1 -0
  259. package/dist/validation/native-passkey.js +45 -0
  260. package/dist/validation/session-length.d.ts +18 -0
  261. package/dist/validation/session-length.d.ts.map +1 -0
  262. package/dist/validation/session-length.js +30 -0
  263. package/dist/validation/url.d.ts +26 -0
  264. package/dist/validation/url.d.ts.map +1 -0
  265. package/dist/validation/url.js +50 -0
  266. package/dist/validation/wallet-types.d.ts +14 -0
  267. package/dist/validation/wallet-types.d.ts.map +1 -0
  268. package/dist/validation/wallet-types.js +22 -0
  269. package/dist/validation/webhook.d.ts +4 -0
  270. package/dist/validation/webhook.d.ts.map +1 -0
  271. package/dist/validation/webhook.js +33 -0
  272. package/package.json +60 -0
  273. package/templates/expo/_env.example +3 -0
  274. package/templates/expo/_gitignore +48 -0
  275. package/templates/expo/_yarnrc.yml +1 -0
  276. package/templates/expo/app/(auth)/_layout.tsx +12 -0
  277. package/templates/expo/app/(auth)/index.tsx.template +86 -0
  278. package/templates/expo/app/(tabs)/_layout.tsx +16 -0
  279. package/templates/expo/app/(tabs)/index.tsx +112 -0
  280. package/templates/expo/app/(tabs)/send.tsx +111 -0
  281. package/templates/expo/app/_layout.tsx +17 -0
  282. package/templates/expo/app/index.tsx +22 -0
  283. package/templates/expo/app.json.template +32 -0
  284. package/templates/expo/assets/adaptive-icon.png +0 -0
  285. package/templates/expo/assets/favicon.png +0 -0
  286. package/templates/expo/assets/icon.png +0 -0
  287. package/templates/expo/assets/splash.png +0 -0
  288. package/templates/expo/babel.config.cjs +12 -0
  289. package/templates/expo/components/features/AuthForm.tsx.template +138 -0
  290. package/templates/expo/components/features/OAuthButtons.tsx.template +27 -0
  291. package/templates/expo/components/features/index.ts.template +4 -0
  292. package/templates/expo/components/ui/Button.tsx +58 -0
  293. package/templates/expo/components/ui/Card.tsx +11 -0
  294. package/templates/expo/components/ui/Divider.tsx +19 -0
  295. package/templates/expo/components/ui/Input.tsx +23 -0
  296. package/templates/expo/components/ui/WalletCard.tsx +44 -0
  297. package/templates/expo/components/ui/index.ts +5 -0
  298. package/templates/expo/eslint.config.cjs +15 -0
  299. package/templates/expo/global.css +3 -0
  300. package/templates/expo/hooks/useOneClickLogin.ts.template +161 -0
  301. package/templates/expo/hooks/useViemClient.ts +118 -0
  302. package/templates/expo/hooks/useWallets.ts +52 -0
  303. package/templates/expo/index.js +2 -0
  304. package/templates/expo/lib/auth.ts +54 -0
  305. package/templates/expo/lib/constants.ts.template +2 -0
  306. package/templates/expo/lib/para.ts +14 -0
  307. package/templates/expo/metro.config.cjs +14 -0
  308. package/templates/expo/nativewind-env.d.ts +2 -0
  309. package/templates/expo/prettier.config.cjs +10 -0
  310. package/templates/expo/providers/ParaProvider.tsx +140 -0
  311. package/templates/expo/tailwind.config.cjs +23 -0
  312. package/templates/expo/tsconfig.json +11 -0
  313. package/templates/expo/types/index.ts +28 -0
  314. package/templates/nextjs/README.md +69 -0
  315. package/templates/nextjs/_env.example +8 -0
  316. package/templates/nextjs/_gitignore +36 -0
  317. package/templates/nextjs/_yarnrc.yml +1 -0
  318. package/templates/nextjs/eslint.config.mjs +10 -0
  319. package/templates/nextjs/next.config.ts +5 -0
  320. package/templates/nextjs/postcss.config.mjs +7 -0
  321. package/templates/nextjs/public/para.svg +3 -0
  322. package/templates/nextjs/src/app/layout.tsx +30 -0
  323. package/templates/nextjs/src/app/page.tsx +40 -0
  324. package/templates/nextjs/src/components/ParaProvider.tsx +116 -0
  325. package/templates/nextjs/src/components/layout/Header.tsx +44 -0
  326. package/templates/nextjs/src/components/ui/ConnectCard.tsx +24 -0
  327. package/templates/nextjs/src/components/ui/SignMessage.tsx +53 -0
  328. package/templates/nextjs/src/components/ui/WalletInfo.tsx +22 -0
  329. package/templates/nextjs/src/hooks/useSignHelloWorld.ts +23 -0
  330. package/templates/nextjs/src/styles/globals.css +1 -0
  331. package/templates/nextjs/tsconfig.json +27 -0
@@ -0,0 +1,81 @@
1
+ import { defineCheck } from "../types.js";
2
+ import { fileStartsWithDirective } from "../utils/code-search.js";
3
+ import { readFile } from "../utils/file-system.js";
4
+ const useClientDirectiveCheck = defineCheck({
5
+ metadata: {
6
+ id: "use-client-directive",
7
+ name: '"use client" Directive',
8
+ description: 'Checks for "use client" directive in Next.js App Router Para components',
9
+ category: "setup",
10
+ severity: "error",
11
+ enabled: true
12
+ },
13
+ shouldRun(context) {
14
+ return context.framework === "nextjs" && (context.sdkType === "@getpara/react-sdk" || context.sdkType === "@getpara/react-sdk-lite");
15
+ },
16
+ async run(context) {
17
+ const results = [];
18
+ const missingDirective = [];
19
+ const hasDirective = [];
20
+ for (const file of context.files) {
21
+ if (!file.endsWith(".tsx") && !file.endsWith(".jsx")) {
22
+ continue;
23
+ }
24
+ if (context.shouldIgnoreFile(file)) {
25
+ continue;
26
+ }
27
+ const content = await readFile(file);
28
+ if (!content) continue;
29
+ const needsUseClient = checkIfNeedsUseClient(content);
30
+ if (!needsUseClient) {
31
+ continue;
32
+ }
33
+ const hasUseClient = await fileStartsWithDirective(file, "use client");
34
+ if (hasUseClient) {
35
+ hasDirective.push(file);
36
+ } else {
37
+ missingDirective.push(file);
38
+ }
39
+ }
40
+ if (missingDirective.length > 0) {
41
+ for (const file of missingDirective) {
42
+ results.push({
43
+ checkId: this.metadata.id,
44
+ passed: false,
45
+ severity: this.metadata.severity,
46
+ message: `Missing "use client" directive`,
47
+ details: "This file defines Para components or uses Para hooks",
48
+ location: { file, line: 1 },
49
+ recommendation: 'Add "use client" at the top of the file'
50
+ });
51
+ }
52
+ }
53
+ if (hasDirective.length > 0 && missingDirective.length === 0) {
54
+ results.push({
55
+ checkId: this.metadata.id,
56
+ passed: true,
57
+ severity: this.metadata.severity,
58
+ message: `All ${hasDirective.length} Para component file(s) have "use client" directive`
59
+ });
60
+ }
61
+ return results;
62
+ }
63
+ });
64
+ function checkIfNeedsUseClient(content) {
65
+ const importsFromPara = /import\s+[^;]*from\s+['"]@getpara\//.test(content);
66
+ if (!importsFromPara) {
67
+ return false;
68
+ }
69
+ const importsParaHook = /import\s+\{[^}]*\buse[A-Z]\w*[^}]*\}\s+from\s+['"]@getpara\//.test(content);
70
+ if (importsParaHook) {
71
+ return true;
72
+ }
73
+ const definesParaProvider = /(?:function|const|let|var)\s+(?:ParaProvider|ParaSDKProvider)\s*[=(]/.test(content) || /export\s+(?:function|const)\s+(?:ParaProvider|ParaSDKProvider)/.test(content);
74
+ if (definesParaProvider) {
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ export {
80
+ useClientDirectiveCheck
81
+ };
@@ -0,0 +1,2 @@
1
+ export declare const versionConsistencyCheck: import("../types.js").Check;
2
+ //# sourceMappingURL=version-consistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-consistency.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/checks/version-consistency.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,uBAAuB,6BAoGlC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { defineCheck } from "../types.js";
2
+ import { getParaPackages } from "../utils/package-json.js";
3
+ function normalizeVersion(v) {
4
+ return v.replace(/^[\^~]/, "");
5
+ }
6
+ function isAlphaVersion(version) {
7
+ return /^2\.0\.0-alpha/.test(normalizeVersion(version));
8
+ }
9
+ function isV1Version(version) {
10
+ return /^1\./.test(normalizeVersion(version));
11
+ }
12
+ const versionConsistencyCheck = defineCheck({
13
+ metadata: {
14
+ id: "version-consistency",
15
+ name: "Package Version Consistency",
16
+ description: "Checks if all @getpara/* packages have matching and up-to-date versions",
17
+ category: "dependencies",
18
+ severity: "warning",
19
+ enabled: true
20
+ },
21
+ shouldRun(context) {
22
+ return context.sdkType !== "none" && context.packageJson !== null;
23
+ },
24
+ async run(context) {
25
+ if (!context.packageJson) {
26
+ return [];
27
+ }
28
+ const paraPackages = getParaPackages(context.packageJson);
29
+ if (paraPackages.length === 0) {
30
+ return [];
31
+ }
32
+ const results = [];
33
+ const alphaPackages = paraPackages.filter((p) => isAlphaVersion(p.version));
34
+ const v1Packages = paraPackages.filter((p) => isV1Version(p.version));
35
+ if (alphaPackages.length > 0) {
36
+ results.push({
37
+ checkId: this.metadata.id,
38
+ passed: false,
39
+ severity: "error",
40
+ message: "Deprecated alpha version detected",
41
+ details: alphaPackages.map((p) => `${p.name}@${p.version}`).join(", "),
42
+ recommendation: "Upgrade to latest stable 2.x.x version"
43
+ });
44
+ }
45
+ if (v1Packages.length > 0) {
46
+ results.push({
47
+ checkId: this.metadata.id,
48
+ passed: false,
49
+ severity: "error",
50
+ message: "Outdated v1 version detected",
51
+ details: v1Packages.map((p) => `${p.name}@${p.version}`).join(", "),
52
+ recommendation: "Upgrade to latest 2.x.x version"
53
+ });
54
+ }
55
+ if (paraPackages.length > 1) {
56
+ const versions = new Set(paraPackages.map((p) => normalizeVersion(p.version)));
57
+ if (versions.size > 1) {
58
+ const versionGroups = /* @__PURE__ */ new Map();
59
+ paraPackages.forEach(({ name, version }) => {
60
+ const normalized = normalizeVersion(version);
61
+ if (!versionGroups.has(normalized)) {
62
+ versionGroups.set(normalized, []);
63
+ }
64
+ versionGroups.get(normalized).push(name);
65
+ });
66
+ const details = Array.from(versionGroups.entries()).map(([version, packages]) => ` ${version}: ${packages.join(", ")}`).join("\n");
67
+ results.push({
68
+ checkId: this.metadata.id,
69
+ passed: false,
70
+ severity: this.metadata.severity,
71
+ message: "Inconsistent @getpara/* package versions",
72
+ details: `Version mismatch:
73
+ ${details}`,
74
+ recommendation: "Update all @getpara/* packages to the same 2.x.x version"
75
+ });
76
+ }
77
+ }
78
+ if (results.length === 0) {
79
+ const version = normalizeVersion(paraPackages[0].version);
80
+ const message = paraPackages.length === 1 ? `Single Para package: ${paraPackages[0].name}@${version}` : `All ${paraPackages.length} Para packages use version ${version}`;
81
+ results.push({
82
+ checkId: this.metadata.id,
83
+ passed: true,
84
+ severity: this.metadata.severity,
85
+ message
86
+ });
87
+ }
88
+ return results;
89
+ }
90
+ });
91
+ export {
92
+ versionConsistencyCheck
93
+ };
@@ -0,0 +1,3 @@
1
+ import type { DiagnosticContext } from './types.js';
2
+ export declare function createContext(projectRoot: string): Promise<DiagnosticContext>;
3
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/diagnostics/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkDnF"}
@@ -0,0 +1,56 @@
1
+ import path from "node:path";
2
+ import ignoreModule from "ignore";
3
+ import { detectFramework } from "./detectors/framework.js";
4
+ import { detectSDKType } from "./detectors/sdk.js";
5
+ import { detectPackageManager } from "./detectors/package-manager.js";
6
+ import { readPackageJson } from "./utils/package-json.js";
7
+ import { findProjectFiles, readGitignore } from "./utils/file-system.js";
8
+ async function createContext(projectRoot) {
9
+ const packageJson = await readPackageJson(projectRoot);
10
+ const ig = ignoreModule.default();
11
+ const gitignoreContent = await readGitignore(projectRoot);
12
+ if (gitignoreContent) {
13
+ ig.add(gitignoreContent);
14
+ }
15
+ ig.add([
16
+ "node_modules",
17
+ ".git",
18
+ "dist",
19
+ "build",
20
+ ".next",
21
+ ".cache",
22
+ ".turbo",
23
+ "coverage",
24
+ ".output",
25
+ "out",
26
+ ".nuxt",
27
+ ".svelte-kit",
28
+ ".vercel",
29
+ ".netlify"
30
+ ]);
31
+ const shouldIgnoreFile = (file) => {
32
+ const relativePath = path.relative(projectRoot, file);
33
+ if (!relativePath || relativePath.startsWith("..")) {
34
+ return true;
35
+ }
36
+ return ig.ignores(relativePath);
37
+ };
38
+ const files = await findProjectFiles(projectRoot, shouldIgnoreFile);
39
+ const framework = await detectFramework(projectRoot, packageJson);
40
+ const { sdkType, sdkVersion } = detectSDKType(packageJson);
41
+ const packageManager = await detectPackageManager(projectRoot);
42
+ return {
43
+ projectRoot,
44
+ packageManager,
45
+ framework,
46
+ sdkType,
47
+ sdkVersion,
48
+ files,
49
+ packageJson,
50
+ shouldIgnoreFile,
51
+ cache: /* @__PURE__ */ new Map()
52
+ };
53
+ }
54
+ export {
55
+ createContext
56
+ };
@@ -0,0 +1,5 @@
1
+ import type { Framework, PackageJsonData } from '../types.js';
2
+ export declare function detectFramework(projectRoot: string, packageJson: PackageJsonData | null): Promise<Framework>;
3
+ export declare function getEnvVarPrefix(framework: Framework): string;
4
+ export declare function getEnvAccessPattern(framework: Framework): string;
5
+ //# sourceMappingURL=framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/detectors/framework.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CA8ClH;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAgB5D;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAchE"}
@@ -0,0 +1,73 @@
1
+ import path from "node:path";
2
+ import { pathExists } from "../utils/file-system.js";
3
+ async function detectFramework(projectRoot, packageJson) {
4
+ if (!packageJson) {
5
+ return "unknown";
6
+ }
7
+ const deps = {
8
+ ...packageJson.dependencies,
9
+ ...packageJson.devDependencies
10
+ };
11
+ if (deps["expo"]) {
12
+ return "expo";
13
+ }
14
+ if (deps["next"]) {
15
+ return "nextjs";
16
+ }
17
+ if (deps["@tanstack/start"]) {
18
+ return "tanstack-start";
19
+ }
20
+ if (deps["vue"]) {
21
+ return "vue";
22
+ }
23
+ if (deps["svelte"] || deps["@sveltejs/kit"]) {
24
+ return "svelte";
25
+ }
26
+ if (deps["react-scripts"]) {
27
+ return "create-react-app";
28
+ }
29
+ if (deps["vite"]) {
30
+ const hasViteConfig = await pathExists(path.join(projectRoot, "vite.config.ts")) || await pathExists(path.join(projectRoot, "vite.config.js")) || await pathExists(path.join(projectRoot, "vite.config.mjs"));
31
+ if (hasViteConfig) {
32
+ return "vite";
33
+ }
34
+ }
35
+ return "unknown";
36
+ }
37
+ function getEnvVarPrefix(framework) {
38
+ switch (framework) {
39
+ case "nextjs":
40
+ return "NEXT_PUBLIC_";
41
+ case "expo":
42
+ return "EXPO_PUBLIC_";
43
+ case "create-react-app":
44
+ return "REACT_APP_";
45
+ case "vite":
46
+ case "vue":
47
+ case "svelte":
48
+ case "tanstack-start":
49
+ return "VITE_";
50
+ default:
51
+ return "";
52
+ }
53
+ }
54
+ function getEnvAccessPattern(framework) {
55
+ switch (framework) {
56
+ case "nextjs":
57
+ case "expo":
58
+ case "create-react-app":
59
+ return "process.env";
60
+ case "vite":
61
+ case "vue":
62
+ case "svelte":
63
+ case "tanstack-start":
64
+ return "import.meta.env";
65
+ default:
66
+ return "process.env";
67
+ }
68
+ }
69
+ export {
70
+ detectFramework,
71
+ getEnvAccessPattern,
72
+ getEnvVarPrefix
73
+ };
@@ -0,0 +1,3 @@
1
+ import type { PackageManager } from '../types.js';
2
+ export declare function detectPackageManager(projectRoot: string): Promise<PackageManager>;
3
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/detectors/package-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAcvF"}
@@ -0,0 +1,17 @@
1
+ import path from "node:path";
2
+ import { pathExists } from "../utils/file-system.js";
3
+ async function detectPackageManager(projectRoot) {
4
+ if (await pathExists(path.join(projectRoot, "pnpm-lock.yaml"))) {
5
+ return "pnpm";
6
+ }
7
+ if (await pathExists(path.join(projectRoot, "yarn.lock"))) {
8
+ return "yarn";
9
+ }
10
+ if (await pathExists(path.join(projectRoot, "package-lock.json"))) {
11
+ return "npm";
12
+ }
13
+ return "unknown";
14
+ }
15
+ export {
16
+ detectPackageManager
17
+ };
@@ -0,0 +1,7 @@
1
+ import type { SDKType, PackageJsonData } from '../types.js';
2
+ export declare function detectSDKType(packageJson: PackageJsonData | null): {
3
+ sdkType: SDKType;
4
+ sdkVersion?: string;
5
+ };
6
+ export declare function getCSSImportPath(sdkType: SDKType): string | null;
7
+ //# sourceMappingURL=sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/detectors/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,aAAa,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,GAAG;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAuCA;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAShE"}
@@ -0,0 +1,48 @@
1
+ function detectSDKType(packageJson) {
2
+ if (!packageJson) {
3
+ return { sdkType: "none" };
4
+ }
5
+ const deps = {
6
+ ...packageJson.dependencies,
7
+ ...packageJson.devDependencies
8
+ };
9
+ if (deps["@getpara/react-sdk"]) {
10
+ return {
11
+ sdkType: "@getpara/react-sdk",
12
+ sdkVersion: deps["@getpara/react-sdk"]
13
+ };
14
+ }
15
+ if (deps["@getpara/react-sdk-lite"]) {
16
+ return {
17
+ sdkType: "@getpara/react-sdk-lite",
18
+ sdkVersion: deps["@getpara/react-sdk-lite"]
19
+ };
20
+ }
21
+ if (deps["@getpara/react-native-wallet"]) {
22
+ return {
23
+ sdkType: "@getpara/react-native-wallet",
24
+ sdkVersion: deps["@getpara/react-native-wallet"]
25
+ };
26
+ }
27
+ if (deps["@getpara/web-sdk"]) {
28
+ return {
29
+ sdkType: "@getpara/web-sdk",
30
+ sdkVersion: deps["@getpara/web-sdk"]
31
+ };
32
+ }
33
+ return { sdkType: "none" };
34
+ }
35
+ function getCSSImportPath(sdkType) {
36
+ switch (sdkType) {
37
+ case "@getpara/react-sdk":
38
+ return "@getpara/react-sdk/styles.css";
39
+ case "@getpara/react-sdk-lite":
40
+ return "@getpara/react-sdk-lite/styles.css";
41
+ default:
42
+ return null;
43
+ }
44
+ }
45
+ export {
46
+ detectSDKType,
47
+ getCSSImportPath
48
+ };
@@ -0,0 +1,3 @@
1
+ import type { DiagnosticContext, CheckOptions, RunResult, Check } from './types.js';
2
+ export declare function runChecks(checks: Check[], context: DiagnosticContext, options?: CheckOptions): Promise<RunResult>;
3
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/diagnostics/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAe,YAAY,EAAE,SAAS,EAAE,KAAK,EAAiB,MAAM,YAAY,CAAC;AAQhH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,SAAS,CAAC,CA8CpB"}
@@ -0,0 +1,44 @@
1
+ const SEVERITY_RANK = {
2
+ error: 2,
3
+ warning: 1,
4
+ info: 0
5
+ };
6
+ async function runChecks(checks, context, options = {}) {
7
+ let filtered = checks.filter((c) => c.metadata.enabled);
8
+ if (options.categories?.length) {
9
+ filtered = filtered.filter((c) => options.categories.includes(c.metadata.category));
10
+ }
11
+ const results = [];
12
+ for (const check of filtered) {
13
+ if (!check.shouldRun(context)) {
14
+ continue;
15
+ }
16
+ try {
17
+ const checkResults = await check.run(context);
18
+ results.push(...checkResults);
19
+ } catch (error) {
20
+ results.push({
21
+ checkId: check.metadata.id,
22
+ passed: false,
23
+ severity: "error",
24
+ message: `Check "${check.metadata.name}" threw an error`,
25
+ details: error instanceof Error ? error.message : String(error)
26
+ });
27
+ }
28
+ }
29
+ const minSeverity = options.severity;
30
+ const filteredResults = minSeverity ? results.filter((r) => r.passed || SEVERITY_RANK[r.severity] >= SEVERITY_RANK[minSeverity]) : results;
31
+ const passed = filteredResults.filter((r) => r.passed).length;
32
+ const failed = filteredResults.filter((r) => !r.passed && r.severity === "error").length;
33
+ const warnings = filteredResults.filter((r) => !r.passed && r.severity === "warning").length;
34
+ return {
35
+ results: filteredResults,
36
+ passed,
37
+ failed,
38
+ warnings,
39
+ total: filteredResults.length
40
+ };
41
+ }
42
+ export {
43
+ runChecks
44
+ };
@@ -0,0 +1,70 @@
1
+ export type CheckSeverity = 'error' | 'warning' | 'info';
2
+ export type CheckCategory = 'configuration' | 'dependencies' | 'setup' | 'best-practices';
3
+ export type Framework = 'nextjs' | 'expo' | 'vite' | 'create-react-app' | 'tanstack-start' | 'vue' | 'svelte' | 'unknown';
4
+ export type SDKType = '@getpara/react-sdk' | '@getpara/react-sdk-lite' | '@getpara/react-native-wallet' | '@getpara/web-sdk' | 'none';
5
+ export declare function isReactSDK(sdkType: SDKType): boolean;
6
+ export type PackageManager = 'yarn' | 'npm' | 'pnpm' | 'unknown';
7
+ export interface FileLocation {
8
+ file: string;
9
+ line?: number;
10
+ column?: number;
11
+ }
12
+ export interface CheckResult {
13
+ checkId: string;
14
+ passed: boolean;
15
+ severity: CheckSeverity;
16
+ message: string;
17
+ details?: string;
18
+ recommendation?: string;
19
+ location?: FileLocation;
20
+ }
21
+ export interface PackageJsonData {
22
+ name?: string;
23
+ version?: string;
24
+ dependencies?: Record<string, string>;
25
+ devDependencies?: Record<string, string>;
26
+ peerDependencies?: Record<string, string>;
27
+ scripts?: Record<string, string>;
28
+ }
29
+ export interface DiagnosticContext {
30
+ projectRoot: string;
31
+ packageManager: PackageManager;
32
+ framework: Framework;
33
+ sdkType: SDKType;
34
+ sdkVersion?: string;
35
+ files: string[];
36
+ packageJson: PackageJsonData | null;
37
+ shouldIgnoreFile: (file: string) => boolean;
38
+ cache: Map<string, unknown>;
39
+ }
40
+ export interface RunResult {
41
+ results: CheckResult[];
42
+ passed: number;
43
+ failed: number;
44
+ warnings: number;
45
+ total: number;
46
+ }
47
+ export interface CheckOptions {
48
+ categories?: CheckCategory[];
49
+ severity?: CheckSeverity;
50
+ }
51
+ export interface CheckMetadata {
52
+ id: string;
53
+ name: string;
54
+ description: string;
55
+ category: CheckCategory;
56
+ severity: CheckSeverity;
57
+ enabled: boolean;
58
+ }
59
+ export interface Check {
60
+ metadata: CheckMetadata;
61
+ shouldRun: (context: DiagnosticContext) => boolean;
62
+ run: (context: DiagnosticContext) => Promise<CheckResult[]>;
63
+ }
64
+ export interface CheckConfig {
65
+ metadata: CheckMetadata;
66
+ shouldRun?: (context: DiagnosticContext) => boolean;
67
+ run: (context: DiagnosticContext) => Promise<CheckResult[]>;
68
+ }
69
+ export declare function defineCheck(config: CheckConfig): Check;
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/diagnostics/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ function isReactSDK(sdkType) {
2
+ return sdkType === "@getpara/react-sdk" || sdkType === "@getpara/react-sdk-lite";
3
+ }
4
+ function defineCheck(config) {
5
+ return {
6
+ metadata: config.metadata,
7
+ shouldRun: config.shouldRun ?? (() => true),
8
+ run: config.run
9
+ };
10
+ }
11
+ export {
12
+ defineCheck,
13
+ isReactSDK
14
+ };
@@ -0,0 +1,10 @@
1
+ import type { FileLocation } from '../types.js';
2
+ export declare function findImportInFiles(files: string[], importPath: string, shouldIgnore: (file: string) => boolean): Promise<FileLocation | null>;
3
+ export declare function findPatternInFiles(files: string[], pattern: RegExp, shouldIgnore: (file: string) => boolean): Promise<FileLocation[]>;
4
+ export declare function fileContainsPattern(filePath: string, pattern: RegExp): Promise<{
5
+ found: boolean;
6
+ line?: number;
7
+ }>;
8
+ export declare function fileStartsWithDirective(filePath: string, directive: string): Promise<boolean>;
9
+ export declare function findFilesWithPattern(files: string[], pattern: RegExp, shouldIgnore: (file: string) => boolean): Promise<string[]>;
10
+ //# sourceMappingURL=code-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-search.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/utils/code-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoBhD,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsB9B;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAYvH;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BnG;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB"}