@plures/praxis 1.0.3 → 1.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.
Files changed (530) hide show
  1. package/FRAMEWORK.md +55 -5
  2. package/README.md +162 -375
  3. package/core/codegen/docs-generator.ts +5 -2
  4. package/core/codegen/index.ts +1 -1
  5. package/core/db-adapter/index.ts +2 -2
  6. package/core/db-adapter/sync-engine.ts +17 -6
  7. package/core/logic-engine/engine.ts +1 -1
  8. package/core/logic-engine/index.ts +2 -2
  9. package/core/logic-engine/protocol.ts +1 -1
  10. package/core/logic-engine/psf-adapter.ts +8 -4
  11. package/core/logic-engine/rules.ts +1 -1
  12. package/core/schema-engine/compiler.ts +53 -11
  13. package/core/schema-engine/generator.ts +17 -7
  14. package/core/schema-engine/index.ts +2 -2
  15. package/core/schema-engine/psf.ts +12 -3
  16. package/core/schema-engine/types.ts +3 -11
  17. package/core/schema-engine/validator.ts +112 -22
  18. package/dist/browser/engine-BjdqxeXG.d.ts +333 -0
  19. package/dist/browser/index.d.ts +3004 -0
  20. package/dist/browser/index.js +2892 -0
  21. package/dist/{src → browser}/integrations/svelte.d.ts +19 -17
  22. package/dist/browser/integrations/svelte.js +298 -0
  23. package/dist/node/auth-STARLY7I.js +207 -0
  24. package/dist/node/build-Y7OT5VBF.js +144 -0
  25. package/dist/node/canvas-UERZHJYW.js +362 -0
  26. package/dist/node/chunk-DSDC2JWZ.js +256 -0
  27. package/dist/node/chunk-FXQZXAWF.js +175 -0
  28. package/dist/node/chunk-N5Y37EUV.js +202 -0
  29. package/dist/node/chunk-QGM4M3NI.js +37 -0
  30. package/dist/node/chunk-RJMWCNHR.js +175 -0
  31. package/dist/node/chunk-SRM3OPPM.js +404 -0
  32. package/dist/node/chunk-UATVJBNV.js +175 -0
  33. package/dist/node/chunk-UY7YEBE2.js +159 -0
  34. package/dist/node/chunk-XCY2VIFX.js +143 -0
  35. package/dist/node/chunk-YXH4Y7ZZ.js +349 -0
  36. package/dist/node/cli/index.cjs +215139 -0
  37. package/dist/node/cli/index.d.cts +1 -0
  38. package/dist/node/cli/index.d.ts +1 -0
  39. package/dist/node/cli/index.js +690 -0
  40. package/dist/node/cloud/index.cjs +1043 -0
  41. package/dist/node/cloud/index.d.cts +864 -0
  42. package/dist/node/cloud/index.d.ts +864 -0
  43. package/dist/node/cloud/index.js +456 -0
  44. package/dist/node/cloud-AXOK4PSN.js +212 -0
  45. package/dist/node/component.cjs +374 -0
  46. package/dist/node/component.d.cts +125 -0
  47. package/dist/{src/core/component/generator.d.ts → node/component.d.ts} +11 -8
  48. package/dist/node/component.js +9 -0
  49. package/dist/node/components/index.cjs +216 -0
  50. package/dist/node/components/index.d.cts +43 -0
  51. package/dist/{src → node}/components/index.d.ts +8 -8
  52. package/dist/node/components/index.js +7 -0
  53. package/dist/node/create-TRLSVCNQ.js +584 -0
  54. package/dist/node/dev-PMJZUYGE.js +65 -0
  55. package/dist/node/engine-1iqLe6_P.d.ts +214 -0
  56. package/dist/node/engine-CVJobhHm.d.cts +214 -0
  57. package/dist/node/index.cjs +3247 -0
  58. package/dist/node/index.d.cts +2579 -0
  59. package/dist/node/index.d.ts +2579 -0
  60. package/dist/node/index.js +2098 -0
  61. package/dist/node/integrations/svelte.cjs +330 -0
  62. package/dist/node/integrations/svelte.d.cts +309 -0
  63. package/dist/node/integrations/svelte.d.ts +309 -0
  64. package/dist/node/integrations/svelte.js +300 -0
  65. package/dist/node/orchestrate-737TCL5H.js +127 -0
  66. package/dist/{src/core/protocol.d.ts → node/protocol-Qek7ebBl.d.cts} +11 -10
  67. package/dist/node/protocol-Qek7ebBl.d.ts +122 -0
  68. package/dist/node/schema.cjs +200 -0
  69. package/dist/{src/core/schema/types.d.ts → node/schema.d.cts} +30 -29
  70. package/dist/node/schema.d.ts +371 -0
  71. package/dist/node/schema.js +9 -0
  72. package/dist/{src/runtime/terminal-adapter.d.ts → node/terminal-adapter-07HGftGQ.d.ts} +86 -11
  73. package/dist/node/terminal-adapter-XLtCjjb_.d.cts +231 -0
  74. package/dist/node/verify-QRYKRIDU.js +210960 -0
  75. package/docs/MONETIZATION.md +21 -16
  76. package/docs/REACTIVE_REDESIGN.md +132 -0
  77. package/docs/README.md +47 -36
  78. package/docs/SVELTE_INTEGRATION_STRATEGY.md +68 -0
  79. package/docs/TERMINAL_NODE.md +27 -24
  80. package/docs/core/building-extensions.md +58 -61
  81. package/docs/core/cli-usage.md +59 -59
  82. package/docs/core/code-canvas-sync.md +28 -16
  83. package/docs/core/logic-engine.md +77 -82
  84. package/docs/core/pluresdb-integration.md +29 -39
  85. package/docs/core/schema-model.md +66 -52
  86. package/docs/core/ui-generation.md +57 -49
  87. package/docs/core/what-is-praxis.md +32 -15
  88. package/docs/guides/canvas.md +21 -5
  89. package/docs/guides/getting-started.md +13 -7
  90. package/docs/guides/history-state-pattern.md +65 -51
  91. package/docs/guides/orchestration.md +46 -32
  92. package/docs/guides/parallel-state-pattern.md +56 -72
  93. package/docs/guides/svelte-integration.md +45 -53
  94. package/docs/tutorials/README.md +16 -0
  95. package/docs/tutorials/ecommerce-cart.md +177 -95
  96. package/docs/tutorials/first-app.md +26 -41
  97. package/docs/tutorials/form-builder.md +191 -138
  98. package/docs/tutorials/todo-pluresdb.md +71 -69
  99. package/package.json +58 -23
  100. package/src/__tests__/actors.test.ts +68 -68
  101. package/src/__tests__/billing.test.ts +32 -32
  102. package/src/__tests__/canvas-components.test.ts +94 -73
  103. package/src/__tests__/cli-create.test.ts +28 -28
  104. package/src/__tests__/cloud.test.ts +36 -36
  105. package/src/__tests__/code-canvas-integration.test.ts +132 -141
  106. package/src/__tests__/docs-generator.test.ts +3 -9
  107. package/src/__tests__/dsl.test.ts +58 -64
  108. package/src/__tests__/edge-cases.test.ts +106 -108
  109. package/src/__tests__/engine.test.ts +51 -25
  110. package/src/__tests__/generators.test.ts +42 -44
  111. package/src/__tests__/introspection.test.ts +104 -114
  112. package/src/__tests__/pluresdb.test.ts +189 -187
  113. package/src/__tests__/protocol.test.ts +15 -15
  114. package/src/__tests__/provisioning.test.ts +61 -61
  115. package/src/__tests__/schema.test.ts +7 -11
  116. package/src/__tests__/state-docs-integration.test.ts +162 -145
  117. package/src/__tests__/svelte-integration.test.ts +16 -19
  118. package/src/__tests__/tauri-integration.test.ts +149 -147
  119. package/src/__tests__/terminal-node.test.ts +12 -7
  120. package/src/__tests__/unum-integration.test.ts +68 -68
  121. package/src/adapters/cli.ts +21 -15
  122. package/src/cli/commands/auth.ts +82 -78
  123. package/src/cli/commands/build.ts +29 -27
  124. package/src/cli/commands/canvas.ts +338 -127
  125. package/src/cli/commands/cloud.ts +47 -47
  126. package/src/cli/commands/create.ts +59 -47
  127. package/src/cli/commands/dev.ts +12 -12
  128. package/src/cli/commands/generate.ts +29 -40
  129. package/src/cli/commands/orchestrate.ts +24 -24
  130. package/src/cli/commands/verify.ts +7 -8
  131. package/src/cli/index.ts +14 -10
  132. package/src/cloud/README.md +28 -15
  133. package/src/cloud/auth.ts +55 -70
  134. package/src/cloud/billing.ts +59 -58
  135. package/src/cloud/client.ts +29 -35
  136. package/src/cloud/index.ts +19 -40
  137. package/src/cloud/marketplace.ts +69 -78
  138. package/src/cloud/provisioning.ts +42 -51
  139. package/src/cloud/relay/endpoints.ts +30 -34
  140. package/src/cloud/relay/health/index.ts +1 -1
  141. package/src/cloud/relay/stats/index.ts +1 -1
  142. package/src/cloud/relay/sync/index.ts +1 -1
  143. package/src/cloud/relay/usage/index.ts +1 -1
  144. package/src/cloud/sponsors.ts +31 -34
  145. package/src/cloud/types.ts +4 -4
  146. package/src/components/README.md +1 -0
  147. package/src/components/index.ts +3 -4
  148. package/src/core/actors.ts +7 -7
  149. package/src/core/component/generator.ts +10 -28
  150. package/src/core/engine.ts +51 -24
  151. package/src/core/introspection.ts +37 -35
  152. package/src/core/logic/generator.ts +62 -62
  153. package/src/core/pluresdb/adapter.ts +8 -8
  154. package/src/core/pluresdb/generator.ts +39 -35
  155. package/src/core/pluresdb/index.ts +9 -12
  156. package/src/core/pluresdb/schema-registry.ts +22 -25
  157. package/src/core/pluresdb/store.ts +57 -57
  158. package/src/core/protocol.ts +14 -14
  159. package/src/core/reactive-engine.svelte.ts +65 -0
  160. package/src/core/reactive-engine.ts +67 -0
  161. package/src/core/rules.ts +4 -4
  162. package/src/core/schema/loader.common.ts +150 -0
  163. package/src/core/schema/loader.ts +19 -149
  164. package/src/core/schema/normalize.ts +34 -51
  165. package/src/core/schema/types.ts +47 -11
  166. package/src/dsl/index.ts +8 -8
  167. package/src/dsl.ts +11 -17
  168. package/src/examples/advanced-todo/README.md +58 -40
  169. package/src/examples/advanced-todo/index.ts +3 -3
  170. package/src/examples/auth-basic/index.ts +30 -30
  171. package/src/examples/cart/index.ts +50 -50
  172. package/src/examples/hero-ecommerce/index.ts +130 -157
  173. package/src/examples/svelte-counter/index.ts +22 -26
  174. package/src/flows.ts +6 -17
  175. package/src/index.browser.ts +204 -0
  176. package/src/index.ts +37 -42
  177. package/src/integrations/code-canvas.ts +237 -193
  178. package/src/integrations/pluresdb.ts +55 -35
  179. package/src/integrations/state-docs.ts +104 -104
  180. package/src/integrations/svelte.ts +35 -35
  181. package/src/integrations/tauri.ts +75 -73
  182. package/src/integrations/unum.ts +68 -61
  183. package/src/registry.ts +7 -14
  184. package/src/runtime/terminal-adapter.ts +31 -26
  185. package/src/step.ts +10 -16
  186. package/src/types.ts +1 -1
  187. package/templates/basic-app/README.md +6 -9
  188. package/templates/fullstack-app/README.md +10 -0
  189. package/dist/core/codegen/docs-generator.d.ts +0 -123
  190. package/dist/core/codegen/docs-generator.d.ts.map +0 -1
  191. package/dist/core/codegen/docs-generator.js +0 -674
  192. package/dist/core/codegen/docs-generator.js.map +0 -1
  193. package/dist/core/codegen/index.d.ts +0 -11
  194. package/dist/core/codegen/index.d.ts.map +0 -1
  195. package/dist/core/codegen/index.js +0 -13
  196. package/dist/core/codegen/index.js.map +0 -1
  197. package/dist/core/codegen/ts-generator.d.ts +0 -8
  198. package/dist/core/codegen/ts-generator.d.ts.map +0 -1
  199. package/dist/core/codegen/ts-generator.js +0 -8
  200. package/dist/core/codegen/ts-generator.js.map +0 -1
  201. package/dist/core/db-adapter/index.d.ts +0 -18
  202. package/dist/core/db-adapter/index.d.ts.map +0 -1
  203. package/dist/core/db-adapter/index.js +0 -23
  204. package/dist/core/db-adapter/index.js.map +0 -1
  205. package/dist/core/db-adapter/sync-engine.d.ts +0 -180
  206. package/dist/core/db-adapter/sync-engine.d.ts.map +0 -1
  207. package/dist/core/db-adapter/sync-engine.js +0 -342
  208. package/dist/core/db-adapter/sync-engine.js.map +0 -1
  209. package/dist/core/logic-engine/engine.d.ts +0 -8
  210. package/dist/core/logic-engine/engine.d.ts.map +0 -1
  211. package/dist/core/logic-engine/engine.js +0 -8
  212. package/dist/core/logic-engine/engine.js.map +0 -1
  213. package/dist/core/logic-engine/index.d.ts +0 -16
  214. package/dist/core/logic-engine/index.d.ts.map +0 -1
  215. package/dist/core/logic-engine/index.js +0 -16
  216. package/dist/core/logic-engine/index.js.map +0 -1
  217. package/dist/core/logic-engine/protocol.d.ts +0 -7
  218. package/dist/core/logic-engine/protocol.d.ts.map +0 -1
  219. package/dist/core/logic-engine/protocol.js +0 -7
  220. package/dist/core/logic-engine/protocol.js.map +0 -1
  221. package/dist/core/logic-engine/psf-adapter.d.ts +0 -88
  222. package/dist/core/logic-engine/psf-adapter.d.ts.map +0 -1
  223. package/dist/core/logic-engine/psf-adapter.js +0 -207
  224. package/dist/core/logic-engine/psf-adapter.js.map +0 -1
  225. package/dist/core/logic-engine/rules.d.ts +0 -7
  226. package/dist/core/logic-engine/rules.d.ts.map +0 -1
  227. package/dist/core/logic-engine/rules.js +0 -7
  228. package/dist/core/logic-engine/rules.js.map +0 -1
  229. package/dist/core/schema-engine/compiler.d.ts +0 -198
  230. package/dist/core/schema-engine/compiler.d.ts.map +0 -1
  231. package/dist/core/schema-engine/compiler.js +0 -262
  232. package/dist/core/schema-engine/compiler.js.map +0 -1
  233. package/dist/core/schema-engine/generator.d.ts +0 -115
  234. package/dist/core/schema-engine/generator.d.ts.map +0 -1
  235. package/dist/core/schema-engine/generator.js +0 -506
  236. package/dist/core/schema-engine/generator.js.map +0 -1
  237. package/dist/core/schema-engine/index.d.ts +0 -18
  238. package/dist/core/schema-engine/index.d.ts.map +0 -1
  239. package/dist/core/schema-engine/index.js +0 -18
  240. package/dist/core/schema-engine/index.js.map +0 -1
  241. package/dist/core/schema-engine/psf.d.ts +0 -612
  242. package/dist/core/schema-engine/psf.d.ts.map +0 -1
  243. package/dist/core/schema-engine/psf.js +0 -45
  244. package/dist/core/schema-engine/psf.js.map +0 -1
  245. package/dist/core/schema-engine/types.d.ts +0 -10
  246. package/dist/core/schema-engine/types.d.ts.map +0 -1
  247. package/dist/core/schema-engine/types.js +0 -7
  248. package/dist/core/schema-engine/types.js.map +0 -1
  249. package/dist/core/schema-engine/validator.d.ts +0 -140
  250. package/dist/core/schema-engine/validator.d.ts.map +0 -1
  251. package/dist/core/schema-engine/validator.js +0 -407
  252. package/dist/core/schema-engine/validator.js.map +0 -1
  253. package/dist/src/adapters/cli.d.ts +0 -43
  254. package/dist/src/adapters/cli.d.ts.map +0 -1
  255. package/dist/src/adapters/cli.js +0 -126
  256. package/dist/src/adapters/cli.js.map +0 -1
  257. package/dist/src/cli/commands/auth.d.ts +0 -26
  258. package/dist/src/cli/commands/auth.d.ts.map +0 -1
  259. package/dist/src/cli/commands/auth.js +0 -233
  260. package/dist/src/cli/commands/auth.js.map +0 -1
  261. package/dist/src/cli/commands/build.d.ts +0 -23
  262. package/dist/src/cli/commands/build.d.ts.map +0 -1
  263. package/dist/src/cli/commands/build.js +0 -162
  264. package/dist/src/cli/commands/build.js.map +0 -1
  265. package/dist/src/cli/commands/canvas.d.ts +0 -23
  266. package/dist/src/cli/commands/canvas.d.ts.map +0 -1
  267. package/dist/src/cli/commands/canvas.js +0 -215
  268. package/dist/src/cli/commands/canvas.js.map +0 -1
  269. package/dist/src/cli/commands/cloud.d.ts +0 -27
  270. package/dist/src/cli/commands/cloud.d.ts.map +0 -1
  271. package/dist/src/cli/commands/cloud.js +0 -232
  272. package/dist/src/cli/commands/cloud.js.map +0 -1
  273. package/dist/src/cli/commands/create.d.ts +0 -21
  274. package/dist/src/cli/commands/create.d.ts.map +0 -1
  275. package/dist/src/cli/commands/create.js +0 -621
  276. package/dist/src/cli/commands/create.js.map +0 -1
  277. package/dist/src/cli/commands/dev.d.ts +0 -21
  278. package/dist/src/cli/commands/dev.d.ts.map +0 -1
  279. package/dist/src/cli/commands/dev.js +0 -71
  280. package/dist/src/cli/commands/dev.js.map +0 -1
  281. package/dist/src/cli/commands/generate.d.ts +0 -25
  282. package/dist/src/cli/commands/generate.d.ts.map +0 -1
  283. package/dist/src/cli/commands/generate.js +0 -168
  284. package/dist/src/cli/commands/generate.js.map +0 -1
  285. package/dist/src/cli/commands/orchestrate.d.ts +0 -44
  286. package/dist/src/cli/commands/orchestrate.d.ts.map +0 -1
  287. package/dist/src/cli/commands/orchestrate.js +0 -150
  288. package/dist/src/cli/commands/orchestrate.js.map +0 -1
  289. package/dist/src/cli/commands/verify.d.ts +0 -10
  290. package/dist/src/cli/commands/verify.d.ts.map +0 -1
  291. package/dist/src/cli/commands/verify.js +0 -39
  292. package/dist/src/cli/commands/verify.js.map +0 -1
  293. package/dist/src/cli/index.d.ts +0 -8
  294. package/dist/src/cli/index.d.ts.map +0 -1
  295. package/dist/src/cli/index.js +0 -226
  296. package/dist/src/cli/index.js.map +0 -1
  297. package/dist/src/cloud/auth.d.ts +0 -51
  298. package/dist/src/cloud/auth.d.ts.map +0 -1
  299. package/dist/src/cloud/auth.js +0 -194
  300. package/dist/src/cloud/auth.js.map +0 -1
  301. package/dist/src/cloud/billing.d.ts +0 -184
  302. package/dist/src/cloud/billing.d.ts.map +0 -1
  303. package/dist/src/cloud/billing.js +0 -179
  304. package/dist/src/cloud/billing.js.map +0 -1
  305. package/dist/src/cloud/client.d.ts +0 -39
  306. package/dist/src/cloud/client.d.ts.map +0 -1
  307. package/dist/src/cloud/client.js +0 -176
  308. package/dist/src/cloud/client.js.map +0 -1
  309. package/dist/src/cloud/index.d.ts +0 -44
  310. package/dist/src/cloud/index.d.ts.map +0 -1
  311. package/dist/src/cloud/index.js +0 -44
  312. package/dist/src/cloud/index.js.map +0 -1
  313. package/dist/src/cloud/marketplace.d.ts +0 -166
  314. package/dist/src/cloud/marketplace.d.ts.map +0 -1
  315. package/dist/src/cloud/marketplace.js +0 -159
  316. package/dist/src/cloud/marketplace.js.map +0 -1
  317. package/dist/src/cloud/provisioning.d.ts +0 -110
  318. package/dist/src/cloud/provisioning.d.ts.map +0 -1
  319. package/dist/src/cloud/provisioning.js +0 -148
  320. package/dist/src/cloud/provisioning.js.map +0 -1
  321. package/dist/src/cloud/relay/endpoints.d.ts +0 -62
  322. package/dist/src/cloud/relay/endpoints.d.ts.map +0 -1
  323. package/dist/src/cloud/relay/endpoints.js +0 -217
  324. package/dist/src/cloud/relay/endpoints.js.map +0 -1
  325. package/dist/src/cloud/relay/health/index.d.ts +0 -5
  326. package/dist/src/cloud/relay/health/index.d.ts.map +0 -1
  327. package/dist/src/cloud/relay/health/index.js +0 -9
  328. package/dist/src/cloud/relay/health/index.js.map +0 -1
  329. package/dist/src/cloud/relay/stats/index.d.ts +0 -5
  330. package/dist/src/cloud/relay/stats/index.d.ts.map +0 -1
  331. package/dist/src/cloud/relay/stats/index.js +0 -9
  332. package/dist/src/cloud/relay/stats/index.js.map +0 -1
  333. package/dist/src/cloud/relay/sync/index.d.ts +0 -5
  334. package/dist/src/cloud/relay/sync/index.d.ts.map +0 -1
  335. package/dist/src/cloud/relay/sync/index.js +0 -9
  336. package/dist/src/cloud/relay/sync/index.js.map +0 -1
  337. package/dist/src/cloud/relay/usage/index.d.ts +0 -5
  338. package/dist/src/cloud/relay/usage/index.d.ts.map +0 -1
  339. package/dist/src/cloud/relay/usage/index.js +0 -9
  340. package/dist/src/cloud/relay/usage/index.js.map +0 -1
  341. package/dist/src/cloud/sponsors.d.ts +0 -81
  342. package/dist/src/cloud/sponsors.d.ts.map +0 -1
  343. package/dist/src/cloud/sponsors.js +0 -130
  344. package/dist/src/cloud/sponsors.js.map +0 -1
  345. package/dist/src/cloud/types.d.ts +0 -169
  346. package/dist/src/cloud/types.d.ts.map +0 -1
  347. package/dist/src/cloud/types.js +0 -7
  348. package/dist/src/cloud/types.js.map +0 -1
  349. package/dist/src/components/index.d.ts.map +0 -1
  350. package/dist/src/components/index.js +0 -17
  351. package/dist/src/components/index.js.map +0 -1
  352. package/dist/src/core/actors.d.ts +0 -95
  353. package/dist/src/core/actors.d.ts.map +0 -1
  354. package/dist/src/core/actors.js +0 -158
  355. package/dist/src/core/actors.js.map +0 -1
  356. package/dist/src/core/component/generator.d.ts.map +0 -1
  357. package/dist/src/core/component/generator.js +0 -349
  358. package/dist/src/core/component/generator.js.map +0 -1
  359. package/dist/src/core/engine.d.ts +0 -92
  360. package/dist/src/core/engine.d.ts.map +0 -1
  361. package/dist/src/core/engine.js +0 -199
  362. package/dist/src/core/engine.js.map +0 -1
  363. package/dist/src/core/introspection.d.ts +0 -141
  364. package/dist/src/core/introspection.d.ts.map +0 -1
  365. package/dist/src/core/introspection.js +0 -208
  366. package/dist/src/core/introspection.js.map +0 -1
  367. package/dist/src/core/logic/generator.d.ts +0 -76
  368. package/dist/src/core/logic/generator.d.ts.map +0 -1
  369. package/dist/src/core/logic/generator.js +0 -370
  370. package/dist/src/core/logic/generator.js.map +0 -1
  371. package/dist/src/core/pluresdb/adapter.d.ts +0 -72
  372. package/dist/src/core/pluresdb/adapter.d.ts.map +0 -1
  373. package/dist/src/core/pluresdb/adapter.js +0 -73
  374. package/dist/src/core/pluresdb/adapter.js.map +0 -1
  375. package/dist/src/core/pluresdb/generator.d.ts +0 -58
  376. package/dist/src/core/pluresdb/generator.d.ts.map +0 -1
  377. package/dist/src/core/pluresdb/generator.js +0 -191
  378. package/dist/src/core/pluresdb/generator.js.map +0 -1
  379. package/dist/src/core/pluresdb/index.d.ts +0 -15
  380. package/dist/src/core/pluresdb/index.d.ts.map +0 -1
  381. package/dist/src/core/pluresdb/index.js +0 -11
  382. package/dist/src/core/pluresdb/index.js.map +0 -1
  383. package/dist/src/core/pluresdb/schema-registry.d.ts +0 -104
  384. package/dist/src/core/pluresdb/schema-registry.d.ts.map +0 -1
  385. package/dist/src/core/pluresdb/schema-registry.js +0 -130
  386. package/dist/src/core/pluresdb/schema-registry.js.map +0 -1
  387. package/dist/src/core/pluresdb/store.d.ts +0 -199
  388. package/dist/src/core/pluresdb/store.d.ts.map +0 -1
  389. package/dist/src/core/pluresdb/store.js +0 -344
  390. package/dist/src/core/pluresdb/store.js.map +0 -1
  391. package/dist/src/core/protocol.d.ts.map +0 -1
  392. package/dist/src/core/protocol.js +0 -46
  393. package/dist/src/core/protocol.js.map +0 -1
  394. package/dist/src/core/rules.d.ts +0 -120
  395. package/dist/src/core/rules.d.ts.map +0 -1
  396. package/dist/src/core/rules.js +0 -81
  397. package/dist/src/core/rules.js.map +0 -1
  398. package/dist/src/core/schema/loader.d.ts +0 -47
  399. package/dist/src/core/schema/loader.d.ts.map +0 -1
  400. package/dist/src/core/schema/loader.js +0 -189
  401. package/dist/src/core/schema/loader.js.map +0 -1
  402. package/dist/src/core/schema/normalize.d.ts +0 -72
  403. package/dist/src/core/schema/normalize.d.ts.map +0 -1
  404. package/dist/src/core/schema/normalize.js +0 -190
  405. package/dist/src/core/schema/normalize.js.map +0 -1
  406. package/dist/src/core/schema/types.d.ts.map +0 -1
  407. package/dist/src/core/schema/types.js +0 -161
  408. package/dist/src/core/schema/types.js.map +0 -1
  409. package/dist/src/dsl/index.d.ts +0 -152
  410. package/dist/src/dsl/index.d.ts.map +0 -1
  411. package/dist/src/dsl/index.js +0 -132
  412. package/dist/src/dsl/index.js.map +0 -1
  413. package/dist/src/dsl.d.ts +0 -124
  414. package/dist/src/dsl.d.ts.map +0 -1
  415. package/dist/src/dsl.js +0 -130
  416. package/dist/src/dsl.js.map +0 -1
  417. package/dist/src/examples/advanced-todo/index.d.ts +0 -55
  418. package/dist/src/examples/advanced-todo/index.d.ts.map +0 -1
  419. package/dist/src/examples/advanced-todo/index.js +0 -222
  420. package/dist/src/examples/advanced-todo/index.js.map +0 -1
  421. package/dist/src/examples/auth-basic/index.d.ts +0 -17
  422. package/dist/src/examples/auth-basic/index.d.ts.map +0 -1
  423. package/dist/src/examples/auth-basic/index.js +0 -122
  424. package/dist/src/examples/auth-basic/index.js.map +0 -1
  425. package/dist/src/examples/cart/index.d.ts +0 -19
  426. package/dist/src/examples/cart/index.d.ts.map +0 -1
  427. package/dist/src/examples/cart/index.js +0 -202
  428. package/dist/src/examples/cart/index.js.map +0 -1
  429. package/dist/src/examples/hero-ecommerce/index.d.ts +0 -39
  430. package/dist/src/examples/hero-ecommerce/index.d.ts.map +0 -1
  431. package/dist/src/examples/hero-ecommerce/index.js +0 -506
  432. package/dist/src/examples/hero-ecommerce/index.js.map +0 -1
  433. package/dist/src/examples/svelte-counter/index.d.ts +0 -31
  434. package/dist/src/examples/svelte-counter/index.d.ts.map +0 -1
  435. package/dist/src/examples/svelte-counter/index.js +0 -123
  436. package/dist/src/examples/svelte-counter/index.js.map +0 -1
  437. package/dist/src/flows.d.ts +0 -125
  438. package/dist/src/flows.d.ts.map +0 -1
  439. package/dist/src/flows.js +0 -160
  440. package/dist/src/flows.js.map +0 -1
  441. package/dist/src/index.d.ts +0 -77
  442. package/dist/src/index.d.ts.map +0 -1
  443. package/dist/src/index.js +0 -64
  444. package/dist/src/index.js.map +0 -1
  445. package/dist/src/integrations/code-canvas.d.ts +0 -265
  446. package/dist/src/integrations/code-canvas.d.ts.map +0 -1
  447. package/dist/src/integrations/code-canvas.js +0 -451
  448. package/dist/src/integrations/code-canvas.js.map +0 -1
  449. package/dist/src/integrations/pluresdb.d.ts +0 -117
  450. package/dist/src/integrations/pluresdb.d.ts.map +0 -1
  451. package/dist/src/integrations/pluresdb.js +0 -117
  452. package/dist/src/integrations/pluresdb.js.map +0 -1
  453. package/dist/src/integrations/state-docs.d.ts +0 -191
  454. package/dist/src/integrations/state-docs.d.ts.map +0 -1
  455. package/dist/src/integrations/state-docs.js +0 -515
  456. package/dist/src/integrations/state-docs.js.map +0 -1
  457. package/dist/src/integrations/svelte.d.ts.map +0 -1
  458. package/dist/src/integrations/svelte.js +0 -447
  459. package/dist/src/integrations/svelte.js.map +0 -1
  460. package/dist/src/integrations/tauri.d.ts +0 -360
  461. package/dist/src/integrations/tauri.d.ts.map +0 -1
  462. package/dist/src/integrations/tauri.js +0 -278
  463. package/dist/src/integrations/tauri.js.map +0 -1
  464. package/dist/src/integrations/unum.d.ts +0 -159
  465. package/dist/src/integrations/unum.d.ts.map +0 -1
  466. package/dist/src/integrations/unum.js +0 -240
  467. package/dist/src/integrations/unum.js.map +0 -1
  468. package/dist/src/registry.d.ts +0 -94
  469. package/dist/src/registry.d.ts.map +0 -1
  470. package/dist/src/registry.js +0 -181
  471. package/dist/src/registry.js.map +0 -1
  472. package/dist/src/runtime/terminal-adapter.d.ts.map +0 -1
  473. package/dist/src/runtime/terminal-adapter.js +0 -239
  474. package/dist/src/runtime/terminal-adapter.js.map +0 -1
  475. package/dist/src/step.d.ts +0 -34
  476. package/dist/src/step.d.ts.map +0 -1
  477. package/dist/src/step.js +0 -111
  478. package/dist/src/step.js.map +0 -1
  479. package/dist/src/types.d.ts +0 -63
  480. package/dist/src/types.d.ts.map +0 -1
  481. package/dist/src/types.js +0 -6
  482. package/dist/src/types.js.map +0 -1
  483. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts +0 -8
  484. package/dist/tools/ast-analyzer/src/ast-analyzer.d.ts.map +0 -1
  485. package/dist/tools/ast-analyzer/src/ast-analyzer.js +0 -119
  486. package/dist/tools/ast-analyzer/src/ast-analyzer.js.map +0 -1
  487. package/dist/tools/cli/commands/index.d.ts +0 -7
  488. package/dist/tools/cli/commands/index.d.ts.map +0 -1
  489. package/dist/tools/cli/commands/index.js +0 -7
  490. package/dist/tools/cli/commands/index.js.map +0 -1
  491. package/dist/tools/cli/index.d.ts +0 -8
  492. package/dist/tools/cli/index.d.ts.map +0 -1
  493. package/dist/tools/cli/index.js +0 -9
  494. package/dist/tools/cli/index.js.map +0 -1
  495. package/dist/tools/watcher/index.d.ts +0 -105
  496. package/dist/tools/watcher/index.d.ts.map +0 -1
  497. package/dist/tools/watcher/index.js +0 -213
  498. package/dist/tools/watcher/index.js.map +0 -1
  499. package/dist/ui/canvas/canvas-projection.d.ts +0 -78
  500. package/dist/ui/canvas/canvas-projection.d.ts.map +0 -1
  501. package/dist/ui/canvas/canvas-projection.js +0 -416
  502. package/dist/ui/canvas/canvas-projection.js.map +0 -1
  503. package/dist/ui/canvas/canvas-state.d.ts +0 -200
  504. package/dist/ui/canvas/canvas-state.d.ts.map +0 -1
  505. package/dist/ui/canvas/canvas-state.js +0 -464
  506. package/dist/ui/canvas/canvas-state.js.map +0 -1
  507. package/dist/ui/canvas/components/index.d.ts +0 -95
  508. package/dist/ui/canvas/components/index.d.ts.map +0 -1
  509. package/dist/ui/canvas/components/index.js +0 -19
  510. package/dist/ui/canvas/components/index.js.map +0 -1
  511. package/dist/ui/canvas/index.d.ts +0 -32
  512. package/dist/ui/canvas/index.d.ts.map +0 -1
  513. package/dist/ui/canvas/index.js +0 -32
  514. package/dist/ui/canvas/index.js.map +0 -1
  515. package/dist/ui/canvas-inspector/src/server.d.ts +0 -2
  516. package/dist/ui/canvas-inspector/src/server.d.ts.map +0 -1
  517. package/dist/ui/canvas-inspector/src/server.js +0 -248
  518. package/dist/ui/canvas-inspector/src/server.js.map +0 -1
  519. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts +0 -5
  520. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.d.ts.map +0 -1
  521. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js +0 -58
  522. package/dist/ui/canvas-inspector/src/verify-fsm-implementation.js.map +0 -1
  523. package/dist/ui/svelte-generator/index.d.ts +0 -9
  524. package/dist/ui/svelte-generator/index.d.ts.map +0 -1
  525. package/dist/ui/svelte-generator/index.js +0 -11
  526. package/dist/ui/svelte-generator/index.js.map +0 -1
  527. package/dist/ui/svelte-generator/psf-generator.d.ts +0 -128
  528. package/dist/ui/svelte-generator/psf-generator.d.ts.map +0 -1
  529. package/dist/ui/svelte-generator/psf-generator.js +0 -506
  530. package/dist/ui/svelte-generator/psf-generator.js.map +0 -1
package/src/cloud/auth.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * GitHub OAuth Authentication
3
- *
3
+ *
4
4
  * GitHub OAuth integration for Praxis Cloud Relay identity.
5
5
  */
6
6
 
7
- import type { AuthResult, GitHubUser } from "./types.js";
7
+ import type { AuthResult, GitHubUser } from './types.js';
8
8
 
9
9
  /**
10
10
  * GitHub OAuth configuration
@@ -32,12 +32,12 @@ export class GitHubOAuth {
32
32
  getAuthorizationUrl(state?: string): string {
33
33
  const params = new URLSearchParams({
34
34
  client_id: this.config.clientId,
35
- scope: this.config.scope || "read:user user:email",
35
+ scope: this.config.scope || 'read:user user:email',
36
36
  state: state || this.generateState(),
37
37
  });
38
38
 
39
39
  if (this.config.redirectUri) {
40
- params.set("redirect_uri", this.config.redirectUri);
40
+ params.set('redirect_uri', this.config.redirectUri);
41
41
  }
42
42
 
43
43
  return `https://github.com/login/oauth/authorize?${params.toString()}`;
@@ -48,31 +48,28 @@ export class GitHubOAuth {
48
48
  */
49
49
  async exchangeCode(code: string): Promise<AuthResult> {
50
50
  if (!this.config.clientSecret) {
51
- throw new Error("Client secret is required for code exchange");
51
+ throw new Error('Client secret is required for code exchange');
52
52
  }
53
53
 
54
54
  try {
55
- const response = await fetch(
56
- "https://github.com/login/oauth/access_token",
57
- {
58
- method: "POST",
59
- headers: {
60
- "Content-Type": "application/json",
61
- Accept: "application/json",
62
- },
63
- body: JSON.stringify({
64
- client_id: this.config.clientId,
65
- client_secret: this.config.clientSecret,
66
- code,
67
- }),
68
- }
69
- );
55
+ const response = await fetch('https://github.com/login/oauth/access_token', {
56
+ method: 'POST',
57
+ headers: {
58
+ 'Content-Type': 'application/json',
59
+ Accept: 'application/json',
60
+ },
61
+ body: JSON.stringify({
62
+ client_id: this.config.clientId,
63
+ client_secret: this.config.clientSecret,
64
+ code,
65
+ }),
66
+ });
70
67
 
71
68
  if (!response.ok) {
72
69
  throw new Error(`Token exchange failed: ${response.statusText}`);
73
70
  }
74
71
 
75
- const data = await response.json() as any;
72
+ const data = (await response.json()) as any;
76
73
 
77
74
  if (data.error) {
78
75
  throw new Error(`GitHub OAuth error: ${data.error_description || data.error}`);
@@ -85,9 +82,7 @@ export class GitHubOAuth {
85
82
  success: true,
86
83
  token: data.access_token,
87
84
  user,
88
- expiresAt: data.expires_in
89
- ? Date.now() + data.expires_in * 1000
90
- : undefined,
85
+ expiresAt: data.expires_in ? Date.now() + data.expires_in * 1000 : undefined,
91
86
  };
92
87
  } catch (error) {
93
88
  return {
@@ -100,10 +95,10 @@ export class GitHubOAuth {
100
95
  * Get user information from GitHub
101
96
  */
102
97
  async getUserInfo(token: string): Promise<GitHubUser> {
103
- const response = await fetch("https://api.github.com/user", {
98
+ const response = await fetch('https://api.github.com/user', {
104
99
  headers: {
105
100
  Authorization: `Bearer ${token}`,
106
- Accept: "application/vnd.github.v3+json",
101
+ Accept: 'application/vnd.github.v3+json',
107
102
  },
108
103
  });
109
104
 
@@ -111,7 +106,7 @@ export class GitHubOAuth {
111
106
  throw new Error(`Failed to get user info: ${response.statusText}`);
112
107
  }
113
108
 
114
- const data = await response.json() as any;
109
+ const data = (await response.json()) as any;
115
110
 
116
111
  return {
117
112
  id: data.id,
@@ -139,7 +134,7 @@ export class GitHubOAuth {
139
134
  */
140
135
  private generateState(): string {
141
136
  const array = new Uint8Array(16);
142
- if (typeof crypto !== "undefined" && crypto.getRandomValues) {
137
+ if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
143
138
  crypto.getRandomValues(array);
144
139
  } else {
145
140
  // Fallback for Node.js
@@ -147,9 +142,7 @@ export class GitHubOAuth {
147
142
  array[i] = Math.floor(Math.random() * 256);
148
143
  }
149
144
  }
150
- return Array.from(array, (byte) => byte.toString(16).padStart(2, "0")).join(
151
- ""
152
- );
145
+ return Array.from(array, (byte) => byte.toString(16).padStart(2, '0')).join('');
153
146
  }
154
147
  }
155
148
 
@@ -163,36 +156,31 @@ export function createGitHubOAuth(config: GitHubOAuthConfig): GitHubOAuth {
163
156
  /**
164
157
  * Authenticate with GitHub OAuth device flow (for CLI)
165
158
  */
166
- export async function authenticateWithDeviceFlow(
167
- clientId: string
168
- ): Promise<AuthResult> {
159
+ export async function authenticateWithDeviceFlow(clientId: string): Promise<AuthResult> {
169
160
  try {
170
161
  // Request device code
171
- const deviceResponse = await fetch(
172
- "https://github.com/login/device/code",
173
- {
174
- method: "POST",
175
- headers: {
176
- "Content-Type": "application/json",
177
- Accept: "application/json",
178
- },
179
- body: JSON.stringify({
180
- client_id: clientId,
181
- scope: "read:user user:email",
182
- }),
183
- }
184
- );
162
+ const deviceResponse = await fetch('https://github.com/login/device/code', {
163
+ method: 'POST',
164
+ headers: {
165
+ 'Content-Type': 'application/json',
166
+ Accept: 'application/json',
167
+ },
168
+ body: JSON.stringify({
169
+ client_id: clientId,
170
+ scope: 'read:user user:email',
171
+ }),
172
+ });
185
173
 
186
174
  if (!deviceResponse.ok) {
187
175
  throw new Error(`Device flow initiation failed: ${deviceResponse.statusText}`);
188
176
  }
189
177
 
190
- const deviceData = await deviceResponse.json() as any;
178
+ const deviceData = (await deviceResponse.json()) as any;
191
179
 
192
- console.log("\nTo authenticate with GitHub:");
180
+ console.log('\nTo authenticate with GitHub:');
193
181
  console.log(`1. Visit: ${deviceData.verification_uri}`);
194
182
  console.log(`2. Enter code: ${deviceData.user_code}`);
195
- console.log("\nWaiting for authentication...\n");
183
+ console.log('\nWaiting for authentication...\n');
196
184
 
197
185
  // Poll for access token
198
186
  const interval = deviceData.interval * 1000 || 5000;
@@ -201,23 +189,20 @@ export async function authenticateWithDeviceFlow(
201
189
  while (Date.now() < expiresAt) {
202
190
  await new Promise((resolve) => setTimeout(resolve, interval));
203
191
 
204
- const tokenResponse = await fetch(
205
- "https://github.com/login/oauth/access_token",
206
- {
207
- method: "POST",
208
- headers: {
209
- "Content-Type": "application/json",
210
- Accept: "application/json",
211
- },
212
- body: JSON.stringify({
213
- client_id: clientId,
214
- device_code: deviceData.device_code,
215
- grant_type: "urn:ietf:params:oauth:grant-type:device_code",
216
- }),
217
- }
218
- );
219
-
220
- const tokenData = await tokenResponse.json() as any;
192
+ const tokenResponse = await fetch('https://github.com/login/oauth/access_token', {
193
+ method: 'POST',
194
+ headers: {
195
+ 'Content-Type': 'application/json',
196
+ Accept: 'application/json',
197
+ },
198
+ body: JSON.stringify({
199
+ client_id: clientId,
200
+ device_code: deviceData.device_code,
201
+ grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
202
+ }),
203
+ });
204
+
205
+ const tokenData = (await tokenResponse.json()) as any;
221
206
 
222
207
  if (tokenData.access_token) {
223
208
  // Get user info
@@ -231,12 +216,12 @@ export async function authenticateWithDeviceFlow(
231
216
  };
232
217
  }
233
218
 
234
- if (tokenData.error && tokenData.error !== "authorization_pending") {
219
+ if (tokenData.error && tokenData.error !== 'authorization_pending') {
235
220
  throw new Error(`Authentication failed: ${tokenData.error_description || tokenData.error}`);
236
221
  }
237
222
  }
238
223
 
239
- throw new Error("Authentication timeout");
224
+ throw new Error('Authentication timeout');
240
225
  } catch (error) {
241
226
  return {
242
227
  success: false,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * GitHub Sponsors and Marketplace Billing
3
- *
3
+ *
4
4
  * Types and utilities for GitHub-based monetization.
5
5
  */
6
6
 
@@ -11,22 +11,22 @@ export enum SubscriptionTier {
11
11
  /**
12
12
  * Free tier - limited usage
13
13
  */
14
- FREE = "free",
15
-
14
+ FREE = 'free',
15
+
16
16
  /**
17
17
  * Solo tier - individual developers via GitHub Sponsors
18
18
  */
19
- SOLO = "solo",
20
-
19
+ SOLO = 'solo',
20
+
21
21
  /**
22
22
  * Team tier - small teams via GitHub Sponsors
23
23
  */
24
- TEAM = "team",
25
-
24
+ TEAM = 'team',
25
+
26
26
  /**
27
27
  * Enterprise tier - self-service enterprise via GitHub Sponsors/Marketplace
28
28
  */
29
- ENTERPRISE = "enterprise",
29
+ ENTERPRISE = 'enterprise',
30
30
  }
31
31
 
32
32
  /**
@@ -36,17 +36,17 @@ export enum BillingProvider {
36
36
  /**
37
37
  * GitHub Sponsors
38
38
  */
39
- SPONSORS = "sponsors",
40
-
39
+ SPONSORS = 'sponsors',
40
+
41
41
  /**
42
42
  * GitHub Marketplace (SaaS)
43
43
  */
44
- MARKETPLACE = "marketplace",
45
-
44
+ MARKETPLACE = 'marketplace',
45
+
46
46
  /**
47
47
  * Free tier (no billing)
48
48
  */
49
- NONE = "none",
49
+ NONE = 'none',
50
50
  }
51
51
 
52
52
  /**
@@ -56,22 +56,22 @@ export enum SubscriptionStatus {
56
56
  /**
57
57
  * Active subscription
58
58
  */
59
- ACTIVE = "active",
60
-
59
+ ACTIVE = 'active',
60
+
61
61
  /**
62
62
  * Subscription cancelled, but still valid until period end
63
63
  */
64
- CANCELLED = "cancelled",
65
-
64
+ CANCELLED = 'cancelled',
65
+
66
66
  /**
67
67
  * Subscription expired or payment failed
68
68
  */
69
- EXPIRED = "expired",
70
-
69
+ EXPIRED = 'expired',
70
+
71
71
  /**
72
72
  * No subscription
73
73
  */
74
- NONE = "none",
74
+ NONE = 'none',
75
75
  }
76
76
 
77
77
  /**
@@ -82,26 +82,26 @@ export interface TierLimits {
82
82
  * Maximum sync operations per month
83
83
  */
84
84
  maxSyncsPerMonth: number;
85
-
85
+
86
86
  /**
87
87
  * Maximum storage in bytes
88
88
  */
89
89
  maxStorageBytes: number;
90
-
90
+
91
91
  /**
92
92
  * Maximum number of team members (null = unlimited)
93
93
  */
94
94
  maxTeamMembers: number | null;
95
-
95
+
96
96
  /**
97
97
  * Maximum number of apps/projects
98
98
  */
99
99
  maxApps: number;
100
-
100
+
101
101
  /**
102
102
  * Support level
103
103
  */
104
- supportLevel: "community" | "standard" | "priority";
104
+ supportLevel: 'community' | 'standard' | 'priority';
105
105
  }
106
106
 
107
107
  /**
@@ -112,42 +112,42 @@ export interface Subscription {
112
112
  * Subscription tier
113
113
  */
114
114
  tier: SubscriptionTier;
115
-
115
+
116
116
  /**
117
117
  * Subscription status
118
118
  */
119
119
  status: SubscriptionStatus;
120
-
120
+
121
121
  /**
122
122
  * Billing provider
123
123
  */
124
124
  provider: BillingProvider;
125
-
125
+
126
126
  /**
127
127
  * GitHub sponsor tier ID (if applicable)
128
128
  */
129
129
  sponsorTierId?: string;
130
-
130
+
131
131
  /**
132
132
  * GitHub Marketplace plan ID (if applicable)
133
133
  */
134
134
  marketplacePlanId?: number;
135
-
135
+
136
136
  /**
137
137
  * Subscription start date
138
138
  */
139
139
  startDate: number;
140
-
140
+
141
141
  /**
142
142
  * Current period end date
143
143
  */
144
144
  periodEnd?: number;
145
-
145
+
146
146
  /**
147
147
  * Whether subscription auto-renews
148
148
  */
149
149
  autoRenew: boolean;
150
-
150
+
151
151
  /**
152
152
  * Usage limits for this tier
153
153
  */
@@ -161,23 +161,23 @@ export interface BillingEvent {
161
161
  /**
162
162
  * Event type
163
163
  */
164
- type: "subscription_created" | "subscription_cancelled" | "subscription_renewed" | "tier_changed";
165
-
164
+ type: 'subscription_created' | 'subscription_cancelled' | 'subscription_renewed' | 'tier_changed';
165
+
166
166
  /**
167
167
  * Timestamp
168
168
  */
169
169
  timestamp: number;
170
-
170
+
171
171
  /**
172
172
  * User/organization ID
173
173
  */
174
174
  userId: number;
175
-
175
+
176
176
  /**
177
177
  * Old subscription (for changes)
178
178
  */
179
179
  oldSubscription?: Subscription;
180
-
180
+
181
181
  /**
182
182
  * New subscription
183
183
  */
@@ -193,28 +193,28 @@ export const TIER_LIMITS: Record<SubscriptionTier, TierLimits> = {
193
193
  maxStorageBytes: 10 * 1024 * 1024, // 10 MB
194
194
  maxTeamMembers: 1,
195
195
  maxApps: 1,
196
- supportLevel: "community",
196
+ supportLevel: 'community',
197
197
  },
198
198
  [SubscriptionTier.SOLO]: {
199
199
  maxSyncsPerMonth: 50000,
200
200
  maxStorageBytes: 1024 * 1024 * 1024, // 1 GB
201
201
  maxTeamMembers: 1,
202
202
  maxApps: 10,
203
- supportLevel: "standard",
203
+ supportLevel: 'standard',
204
204
  },
205
205
  [SubscriptionTier.TEAM]: {
206
206
  maxSyncsPerMonth: 500000,
207
207
  maxStorageBytes: 10 * 1024 * 1024 * 1024, // 10 GB
208
208
  maxTeamMembers: 10,
209
209
  maxApps: 50,
210
- supportLevel: "standard",
210
+ supportLevel: 'standard',
211
211
  },
212
212
  [SubscriptionTier.ENTERPRISE]: {
213
213
  maxSyncsPerMonth: 5000000,
214
214
  maxStorageBytes: 100 * 1024 * 1024 * 1024, // 100 GB
215
215
  maxTeamMembers: null, // unlimited
216
216
  maxApps: 1000,
217
- supportLevel: "priority",
217
+ supportLevel: 'priority',
218
218
  },
219
219
  };
220
220
 
@@ -228,17 +228,17 @@ export function hasAccessToTier(
228
228
  if (subscription.status !== SubscriptionStatus.ACTIVE) {
229
229
  return false;
230
230
  }
231
-
231
+
232
232
  const tierOrder = [
233
233
  SubscriptionTier.FREE,
234
234
  SubscriptionTier.SOLO,
235
235
  SubscriptionTier.TEAM,
236
236
  SubscriptionTier.ENTERPRISE,
237
237
  ];
238
-
238
+
239
239
  const currentTierIndex = tierOrder.indexOf(subscription.tier);
240
240
  const requiredTierIndex = tierOrder.indexOf(requiredTier);
241
-
241
+
242
242
  return currentTierIndex >= requiredTierIndex;
243
243
  }
244
244
 
@@ -258,19 +258,19 @@ export function checkUsageLimits(
258
258
  violations: string[];
259
259
  } {
260
260
  const violations: string[] = [];
261
-
261
+
262
262
  if (usage.syncCount > subscription.limits.maxSyncsPerMonth) {
263
263
  violations.push(
264
264
  `Sync limit exceeded: ${usage.syncCount}/${subscription.limits.maxSyncsPerMonth}`
265
265
  );
266
266
  }
267
-
267
+
268
268
  if (usage.storageBytes > subscription.limits.maxStorageBytes) {
269
269
  violations.push(
270
270
  `Storage limit exceeded: ${(usage.storageBytes / 1024 / 1024).toFixed(2)}MB/${(subscription.limits.maxStorageBytes / 1024 / 1024).toFixed(2)}MB`
271
271
  );
272
272
  }
273
-
273
+
274
274
  if (
275
275
  subscription.limits.maxTeamMembers !== null &&
276
276
  usage.teamMembers > subscription.limits.maxTeamMembers
@@ -279,13 +279,11 @@ export function checkUsageLimits(
279
279
  `Team member limit exceeded: ${usage.teamMembers}/${subscription.limits.maxTeamMembers}`
280
280
  );
281
281
  }
282
-
282
+
283
283
  if (usage.appCount > subscription.limits.maxApps) {
284
- violations.push(
285
- `App limit exceeded: ${usage.appCount}/${subscription.limits.maxApps}`
286
- );
284
+ violations.push(`App limit exceeded: ${usage.appCount}/${subscription.limits.maxApps}`);
287
285
  }
288
-
286
+
289
287
  return {
290
288
  withinLimits: violations.length === 0,
291
289
  violations,
@@ -314,16 +312,19 @@ export function createSponsorSubscription(
314
312
  monthlyPriceInCents: number
315
313
  ): Subscription {
316
314
  let tier = SubscriptionTier.FREE;
317
-
315
+
318
316
  // Map price to tier (example pricing)
319
- if (monthlyPriceInCents >= 5000) { // $50/month
317
+ if (monthlyPriceInCents >= 5000) {
318
+ // $50/month
320
319
  tier = SubscriptionTier.ENTERPRISE;
321
- } else if (monthlyPriceInCents >= 2000) { // $20/month
320
+ } else if (monthlyPriceInCents >= 2000) {
321
+ // $20/month
322
322
  tier = SubscriptionTier.TEAM;
323
- } else if (monthlyPriceInCents >= 500) { // $5/month
323
+ } else if (monthlyPriceInCents >= 500) {
324
+ // $5/month
324
325
  tier = SubscriptionTier.SOLO;
325
326
  }
326
-
327
+
327
328
  return {
328
329
  tier,
329
330
  status: SubscriptionStatus.ACTIVE,