@maka/maka-cli 5.122.1 → 5.123.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 (366) hide show
  1. package/README.md +64 -64
  2. package/bundle/typescript/package.json +120 -120
  3. package/bundle/typescript/src/README.md +64 -64
  4. package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
  5. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
  6. package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
  7. package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
  8. package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
  9. package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
  10. package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
  11. package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
  12. package/bundle/typescript/src/commands/build/build.js +16 -16
  13. package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
  14. package/bundle/typescript/src/commands/create.js +36 -36
  15. package/bundle/typescript/src/commands/debug.js +4 -4
  16. package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
  17. package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
  18. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
  19. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +14 -10
  20. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
  21. package/bundle/typescript/src/commands/env/env.command.js +8 -8
  22. package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
  23. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +15 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +12 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +10 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +40 -14
  28. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -10
  30. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +155 -72
  31. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +15 -6
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +33 -33
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +2 -2
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +5 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +6 -6
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +4 -4
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +20 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +9 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +7 -3
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +3 -3
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -3
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +10 -10
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +24 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +95 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
  73. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
  74. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +45 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/game.js +120 -9
  76. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +53 -0
  78. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +86 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +214 -208
  81. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +215 -18
  83. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +548 -117
  84. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
  86. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +2 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -2
  88. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +96 -4
  90. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +290 -11
  91. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  92. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
  93. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
  94. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +11 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +13 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +17 -0
  98. package/bundle/typescript/src/commands/game/sideQuest/skills.js +23 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +1 -0
  100. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +76 -3
  101. package/bundle/typescript/src/commands/game/sideQuest/spells.js +48 -21
  102. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
  103. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +90 -82
  105. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +277 -10
  106. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  107. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +121 -2
  108. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +342 -18
  109. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +65 -2
  111. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +74 -7
  112. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  113. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +1 -1
  114. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  115. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +248 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js +38 -0
  117. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +1 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
  119. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +1 -2
  120. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
  121. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +1 -2
  122. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -1
  123. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  125. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +5 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  127. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +22 -12
  128. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -1
  129. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +1 -2
  130. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  131. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +1 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +20 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  134. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
  135. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +33 -2
  136. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  137. package/bundle/typescript/src/commands/generate.js +2 -2
  138. package/bundle/typescript/src/commands/lint.js +10 -10
  139. package/bundle/typescript/src/commands/login.js +19 -1
  140. package/bundle/typescript/src/commands/login.js.map +1 -1
  141. package/bundle/typescript/src/commands/logout.js +16 -1
  142. package/bundle/typescript/src/commands/logout.js.map +1 -1
  143. package/bundle/typescript/src/commands/maka.cmd.js +26 -26
  144. package/bundle/typescript/src/commands/murder.js +14 -14
  145. package/bundle/typescript/src/commands/proxy.js +13 -13
  146. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
  147. package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
  148. package/bundle/typescript/src/commands/run/run.command.js +24 -24
  149. package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
  150. package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
  151. package/bundle/typescript/src/commands/set/set.command.js +3 -3
  152. package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
  153. package/bundle/typescript/src/exec.js +0 -0
  154. package/bundle/typescript/src/generators/api.js +11 -11
  155. package/bundle/typescript/src/generators/collection.js +6 -6
  156. package/bundle/typescript/src/generators/hook.js +10 -10
  157. package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
  158. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
  159. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
  160. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
  161. package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
  162. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
  163. package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
  164. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
  165. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
  166. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
  167. package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
  168. package/bundle/typescript/src/generators/services/translation.js +5 -5
  169. package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
  170. package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
  171. package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
  172. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
  173. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
  174. package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
  175. package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
  176. package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
  177. package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
  178. package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
  179. package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
  180. package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
  181. package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
  182. package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
  183. package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
  184. package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
  185. package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
  186. package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
  187. package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
  188. package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
  189. package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
  190. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
  191. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
  192. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
  193. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
  194. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
  195. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
  196. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
  197. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
  198. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
  199. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
  200. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
  201. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
  202. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
  203. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
  204. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
  205. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
  206. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
  207. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
  208. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
  209. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
  210. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
  211. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
  212. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
  213. package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
  214. package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
  215. package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
  216. package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
  217. package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
  218. package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
  219. package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
  220. package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
  221. package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
  222. package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
  223. package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
  224. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
  225. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
  226. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
  227. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
  228. package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
  229. package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
  230. package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
  231. package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
  232. package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
  233. package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
  234. package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
  235. package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
  236. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
  237. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
  238. package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
  239. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
  240. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
  241. package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
  242. package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
  243. package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
  244. package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
  245. package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
  246. package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
  247. package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
  248. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
  249. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
  250. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
  251. package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
  252. package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
  253. package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
  254. package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
  255. package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
  256. package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
  257. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
  258. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
  259. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
  260. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
  261. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
  262. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
  263. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
  264. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
  265. package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
  266. package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
  267. package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
  268. package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
  269. package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
  270. package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
  271. package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
  272. package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
  273. package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
  274. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
  275. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
  276. package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
  277. package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
  278. package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
  279. package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
  280. package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
  281. package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
  282. package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
  283. package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
  284. package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
  285. package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
  286. package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
  287. package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
  288. package/bundle/typescript/src/templates/react/component/component.css +6 -6
  289. package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
  290. package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
  291. package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
  292. package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
  293. package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
  294. package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
  295. package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
  296. package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
  297. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
  298. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
  299. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
  300. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
  301. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
  302. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
  303. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
  304. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
  305. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
  306. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
  307. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
  308. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
  309. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
  310. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
  311. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
  312. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
  313. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
  314. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
  315. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
  316. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
  317. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
  318. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
  319. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
  320. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
  321. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
  322. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
  323. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
  324. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
  325. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
  326. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
  327. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
  328. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
  329. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
  330. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
  331. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
  332. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
  333. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
  334. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
  335. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
  336. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
  337. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
  338. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
  339. package/bundle/typescript/src/templates/react/route/route.js +8 -8
  340. package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
  341. package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
  342. package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
  343. package/bundle/typescript/src/templates/react/test/test.js +1 -1
  344. package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
  345. package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
  346. package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
  347. package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
  348. package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
  349. package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
  350. package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
  351. package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
  352. package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
  353. package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
  354. package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
  355. package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
  356. package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
  357. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.d.ts +59 -0
  358. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js +120 -0
  359. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +1 -0
  360. package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +16 -0
  361. package/bundle/typescript/src/tools/mpi/mpi.class.js +25 -7
  362. package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
  363. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
  364. package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
  365. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
  366. package/package.json +120 -120
@@ -1,199 +1,199 @@
1
- import { Meteor } from 'meteor/meteor';
2
- import { Accounts } from 'meteor/accounts-base';
3
- import jwt from 'jsonwebtoken';
4
- import jwksClient from 'jwks-rsa';
5
-
6
- /**
7
- * Auth0 JWT Token Validator
8
- *
9
- * This module handles server-side validation of Auth0 JWT tokens
10
- * and creates/updates Meteor user accounts based on Auth0 user data.
11
- */
12
-
13
- interface Auth0TokenPayload {
14
- sub: string; // Auth0 user ID
15
- email?: string;
16
- email_verified?: boolean;
17
- name?: string;
18
- nickname?: string;
19
- picture?: string;
20
- aud: string | string[];
21
- iss: string;
22
- exp: number;
23
- iat: number;
24
- }
25
-
26
- /**
27
- * Normalize Auth0 domain by removing protocol and trailing slashes
28
- */
29
- const normalizeDomain = (domain: string): string => {
30
- return domain
31
- .replace(/^https?:\/\//, '') // Remove http:// or https://
32
- .replace(/\/$/, ''); // Remove trailing slash
33
- };
34
-
35
- /**
36
- * Create JWKS client for verifying Auth0 tokens
37
- */
38
- const getJwksClient = () => {
39
- const auth0Domain = Meteor.settings?.auth0?.domain;
40
-
41
- if (!auth0Domain) {
42
- throw new Meteor.Error('auth0-config-missing', 'Auth0 domain not configured');
43
- }
44
-
45
- const normalizedDomain = normalizeDomain(auth0Domain);
46
-
47
- return jwksClient({
48
- jwksUri: `https://${normalizedDomain}/.well-known/jwks.json`,
49
- cache: true,
50
- cacheMaxAge: 86400000, // 24 hours
51
- });
52
- };
53
-
54
- /**
55
- * Get signing key for JWT verification
56
- */
57
- const getKey = (header: any, callback: any) => {
58
- const client = getJwksClient();
59
-
60
- client.getSigningKey(header.kid, (err, key) => {
61
- if (err) {
62
- callback(err);
63
- return;
64
- }
65
- const signingKey = key?.getPublicKey();
66
- callback(null, signingKey);
67
- });
68
- };
69
-
70
- /**
71
- * Verify Auth0 JWT token
72
- */
73
- export const verifyAuth0Token = (token: string): Promise<Auth0TokenPayload> => {
74
- return new Promise((resolve, reject) => {
75
- const auth0Config = Meteor.settings?.auth0;
76
-
77
- if (!auth0Config?.domain || !auth0Config?.clientId) {
78
- reject(new Meteor.Error('auth0-config-missing', 'Auth0 configuration missing'));
79
- return;
80
- }
81
-
82
- const normalizedDomain = normalizeDomain(auth0Config.domain);
83
-
84
- jwt.verify(
85
- token,
86
- getKey,
87
- {
88
- audience: auth0Config.clientId,
89
- issuer: `https://${normalizedDomain}/`,
90
- algorithms: ['RS256'],
91
- },
92
- (err, decoded) => {
93
- if (err) {
94
- reject(new Meteor.Error('auth0-invalid-token', 'Invalid Auth0 token', err));
95
- return;
96
- }
97
- resolve(decoded as Auth0TokenPayload);
98
- }
99
- );
100
- });
101
- };
102
-
103
- /**
104
- * Find or create a Meteor user from Auth0 data
105
- */
106
- export const findOrCreateUserFromAuth0 = async (
107
- tokenPayload: Auth0TokenPayload,
108
- idToken: string,
109
- accessToken?: string
110
- ): Promise<string> => {
111
- const auth0Id = tokenPayload.sub;
112
- const email = tokenPayload.email;
113
- const now = new Date();
114
-
115
- // Try to find existing user by Auth0 ID
116
- let user = await Meteor.users.findOneAsync({
117
- 'services.auth0.id': auth0Id,
118
- });
119
-
120
- if (user) {
121
- // Update user profile and token data
122
- await Meteor.users.updateAsync(user._id, {
123
- $set: {
124
- // Profile data (client-accessible)
125
- 'profile.auth0': {
126
- name: tokenPayload.name,
127
- picture: tokenPayload.picture,
128
- email: email,
129
- email_verified: tokenPayload.email_verified,
130
- },
131
- // Token data (server-only)
132
- 'services.auth0.id': auth0Id,
133
- 'services.auth0.idToken': idToken,
134
- 'services.auth0.accessToken': accessToken,
135
- 'services.auth0.expiresAt': new Date(tokenPayload.exp * 1000),
136
- 'services.auth0.issuedAt': new Date(tokenPayload.iat * 1000),
137
- },
138
- });
139
- return user._id;
140
- }
141
-
142
- // Try to find by email if email exists
143
- if (email) {
144
- user = await Meteor.users.findOneAsync({
145
- 'emails.address': email,
146
- });
147
-
148
- if (user) {
149
- // Link Auth0 account to existing user
150
- await Meteor.users.updateAsync(user._id, {
151
- $set: {
152
- // Profile data (client-accessible)
153
- 'profile.auth0': {
154
- name: tokenPayload.name,
155
- picture: tokenPayload.picture,
156
- email: email,
157
- email_verified: tokenPayload.email_verified,
158
- },
159
- // Token data (server-only)
160
- 'services.auth0': {
161
- id: auth0Id,
162
- idToken: idToken,
163
- accessToken: accessToken,
164
- expiresAt: new Date(tokenPayload.exp * 1000),
165
- issuedAt: new Date(tokenPayload.iat * 1000),
166
- },
167
- },
168
- });
169
- return user._id;
170
- }
171
- }
172
-
173
- // Create new user
174
- const userId = Accounts.insertUserDoc({}, {
175
- emails: email ? [{ address: email, verified: tokenPayload.email_verified || false }] : [],
176
- profile: {
177
- name: tokenPayload.name || tokenPayload.nickname || 'Auth0 User',
178
- // Auth0 profile data (client-accessible)
179
- auth0: {
180
- name: tokenPayload.name,
181
- picture: tokenPayload.picture,
182
- email: email,
183
- email_verified: tokenPayload.email_verified,
184
- },
185
- },
186
- services: {
187
- // Token data (server-only)
188
- auth0: {
189
- id: auth0Id,
190
- idToken: idToken,
191
- accessToken: accessToken,
192
- expiresAt: new Date(tokenPayload.exp * 1000),
193
- issuedAt: new Date(tokenPayload.iat * 1000),
194
- },
195
- },
196
- });
197
-
198
- return userId;
199
- };
1
+ import { Meteor } from 'meteor/meteor';
2
+ import { Accounts } from 'meteor/accounts-base';
3
+ import jwt from 'jsonwebtoken';
4
+ import jwksClient from 'jwks-rsa';
5
+
6
+ /**
7
+ * Auth0 JWT Token Validator
8
+ *
9
+ * This module handles server-side validation of Auth0 JWT tokens
10
+ * and creates/updates Meteor user accounts based on Auth0 user data.
11
+ */
12
+
13
+ interface Auth0TokenPayload {
14
+ sub: string; // Auth0 user ID
15
+ email?: string;
16
+ email_verified?: boolean;
17
+ name?: string;
18
+ nickname?: string;
19
+ picture?: string;
20
+ aud: string | string[];
21
+ iss: string;
22
+ exp: number;
23
+ iat: number;
24
+ }
25
+
26
+ /**
27
+ * Normalize Auth0 domain by removing protocol and trailing slashes
28
+ */
29
+ const normalizeDomain = (domain: string): string => {
30
+ return domain
31
+ .replace(/^https?:\/\//, '') // Remove http:// or https://
32
+ .replace(/\/$/, ''); // Remove trailing slash
33
+ };
34
+
35
+ /**
36
+ * Create JWKS client for verifying Auth0 tokens
37
+ */
38
+ const getJwksClient = () => {
39
+ const auth0Domain = Meteor.settings?.auth0?.domain;
40
+
41
+ if (!auth0Domain) {
42
+ throw new Meteor.Error('auth0-config-missing', 'Auth0 domain not configured');
43
+ }
44
+
45
+ const normalizedDomain = normalizeDomain(auth0Domain);
46
+
47
+ return jwksClient({
48
+ jwksUri: `https://${normalizedDomain}/.well-known/jwks.json`,
49
+ cache: true,
50
+ cacheMaxAge: 86400000, // 24 hours
51
+ });
52
+ };
53
+
54
+ /**
55
+ * Get signing key for JWT verification
56
+ */
57
+ const getKey = (header: any, callback: any) => {
58
+ const client = getJwksClient();
59
+
60
+ client.getSigningKey(header.kid, (err, key) => {
61
+ if (err) {
62
+ callback(err);
63
+ return;
64
+ }
65
+ const signingKey = key?.getPublicKey();
66
+ callback(null, signingKey);
67
+ });
68
+ };
69
+
70
+ /**
71
+ * Verify Auth0 JWT token
72
+ */
73
+ export const verifyAuth0Token = (token: string): Promise<Auth0TokenPayload> => {
74
+ return new Promise((resolve, reject) => {
75
+ const auth0Config = Meteor.settings?.auth0;
76
+
77
+ if (!auth0Config?.domain || !auth0Config?.clientId) {
78
+ reject(new Meteor.Error('auth0-config-missing', 'Auth0 configuration missing'));
79
+ return;
80
+ }
81
+
82
+ const normalizedDomain = normalizeDomain(auth0Config.domain);
83
+
84
+ jwt.verify(
85
+ token,
86
+ getKey,
87
+ {
88
+ audience: auth0Config.clientId,
89
+ issuer: `https://${normalizedDomain}/`,
90
+ algorithms: ['RS256'],
91
+ },
92
+ (err, decoded) => {
93
+ if (err) {
94
+ reject(new Meteor.Error('auth0-invalid-token', 'Invalid Auth0 token', err));
95
+ return;
96
+ }
97
+ resolve(decoded as Auth0TokenPayload);
98
+ }
99
+ );
100
+ });
101
+ };
102
+
103
+ /**
104
+ * Find or create a Meteor user from Auth0 data
105
+ */
106
+ export const findOrCreateUserFromAuth0 = async (
107
+ tokenPayload: Auth0TokenPayload,
108
+ idToken: string,
109
+ accessToken?: string
110
+ ): Promise<string> => {
111
+ const auth0Id = tokenPayload.sub;
112
+ const email = tokenPayload.email;
113
+ const now = new Date();
114
+
115
+ // Try to find existing user by Auth0 ID
116
+ let user = await Meteor.users.findOneAsync({
117
+ 'services.auth0.id': auth0Id,
118
+ });
119
+
120
+ if (user) {
121
+ // Update user profile and token data
122
+ await Meteor.users.updateAsync(user._id, {
123
+ $set: {
124
+ // Profile data (client-accessible)
125
+ 'profile.auth0': {
126
+ name: tokenPayload.name,
127
+ picture: tokenPayload.picture,
128
+ email: email,
129
+ email_verified: tokenPayload.email_verified,
130
+ },
131
+ // Token data (server-only)
132
+ 'services.auth0.id': auth0Id,
133
+ 'services.auth0.idToken': idToken,
134
+ 'services.auth0.accessToken': accessToken,
135
+ 'services.auth0.expiresAt': new Date(tokenPayload.exp * 1000),
136
+ 'services.auth0.issuedAt': new Date(tokenPayload.iat * 1000),
137
+ },
138
+ });
139
+ return user._id;
140
+ }
141
+
142
+ // Try to find by email if email exists
143
+ if (email) {
144
+ user = await Meteor.users.findOneAsync({
145
+ 'emails.address': email,
146
+ });
147
+
148
+ if (user) {
149
+ // Link Auth0 account to existing user
150
+ await Meteor.users.updateAsync(user._id, {
151
+ $set: {
152
+ // Profile data (client-accessible)
153
+ 'profile.auth0': {
154
+ name: tokenPayload.name,
155
+ picture: tokenPayload.picture,
156
+ email: email,
157
+ email_verified: tokenPayload.email_verified,
158
+ },
159
+ // Token data (server-only)
160
+ 'services.auth0': {
161
+ id: auth0Id,
162
+ idToken: idToken,
163
+ accessToken: accessToken,
164
+ expiresAt: new Date(tokenPayload.exp * 1000),
165
+ issuedAt: new Date(tokenPayload.iat * 1000),
166
+ },
167
+ },
168
+ });
169
+ return user._id;
170
+ }
171
+ }
172
+
173
+ // Create new user
174
+ const userId = Accounts.insertUserDoc({}, {
175
+ emails: email ? [{ address: email, verified: tokenPayload.email_verified || false }] : [],
176
+ profile: {
177
+ name: tokenPayload.name || tokenPayload.nickname || 'Auth0 User',
178
+ // Auth0 profile data (client-accessible)
179
+ auth0: {
180
+ name: tokenPayload.name,
181
+ picture: tokenPayload.picture,
182
+ email: email,
183
+ email_verified: tokenPayload.email_verified,
184
+ },
185
+ },
186
+ services: {
187
+ // Token data (server-only)
188
+ auth0: {
189
+ id: auth0Id,
190
+ idToken: idToken,
191
+ accessToken: accessToken,
192
+ expiresAt: new Date(tokenPayload.exp * 1000),
193
+ issuedAt: new Date(tokenPayload.iat * 1000),
194
+ },
195
+ },
196
+ });
197
+
198
+ return userId;
199
+ };
@@ -1,138 +1,138 @@
1
- import { Meteor } from 'meteor/meteor';
2
- // import { Roles } from 'meteor/alanning:roles';
3
- import { Accounts } from 'meteor/accounts-base';
4
-
5
- class AuthService {
6
- static getUserQuerySelector(username) {
7
- // if the username is an email address, use the email field
8
- if (username.indexOf('@') > -1) {
9
- return { email: username };
10
- } else {
11
- return { username };
12
- }
13
- }
14
-
15
- static async authenticateUser(username, password) {
16
- // Implement Meteor-specific login logic
17
- try {
18
- const selector = AuthService.getUserQuerySelector(username);
19
- return new Promise((resolve, reject) => {
20
- Meteor.loginWithPassword(selector, password, (error) => {
21
- if (error) {
22
- reject(error);
23
- } else {
24
- resolve(Meteor.user());
25
- }
26
- });
27
- });
28
-
29
- } catch (error) {
30
- console.error('Meteor authentication failed:', error);
31
- throw error;
32
- }
33
- }
34
-
35
- static async authenticateToken() {
36
- // Implement token validation logic using Meteor
37
- try {
38
- return new Promise((resolve, reject) => {
39
- const token = localStorage.getItem('Meteor.loginToken');
40
- if (token) {
41
- Meteor.loginWithToken(token, (error) => {
42
- if (error) {
43
- reject(error);
44
- } else {
45
- resolve(Meteor.user());
46
- }
47
- })
48
- } else {
49
- resolve(null);
50
- }
51
- });
52
- } catch (error) {
53
- console.error('Token validation failed:', error);
54
- throw error;
55
- }
56
- }
57
-
58
- static async getUserAuthorizations(userId) {
59
- // Implement logic to fetch user permissions from Meteor
60
- try {
61
- return new Promise((resolve) => {
62
- const roles = [];
63
- resolve(roles);
64
- });
65
- } catch (error) {
66
- console.error('Failed to fetch user permissions:', error);
67
- throw error;
68
- }
69
- }
70
-
71
- static async deauthenticateUser() {
72
- // Implement logout logic using Meteor
73
- try {
74
- return new Promise((resolve, reject) => {
75
- Meteor.logout((error) => {
76
- if (error) {
77
- reject(error);
78
- }
79
- resolve(true);
80
- });
81
- });
82
- } catch (error) {
83
- console.error('Logout failed:', error);
84
- }
85
- }
86
-
87
- static async registerNewUser(username, password) {
88
- try {
89
- const selector = AuthService.getUserQuerySelector(username);
90
- selector.password = password;
91
-
92
- // Implement user registration logic using Meteor
93
- await Accounts.createUserAsync(selector);
94
- return Meteor.user();
95
- } catch (error) {
96
- console.error('Registration failed:', error);
97
- throw error;
98
- }
99
- }
100
-
101
- static async sendForgotPasswordEmail(email) {
102
- try {
103
- // Implement password reset logic using Meteor
104
- return new Promise ((resolve, reject) => {
105
- Accounts.forgotPassword({ email }, (error) => {
106
- if (error) {
107
- reject(error);
108
- } else {
109
- resolve();
110
- }
111
- });
112
- });
113
- } catch (error) {
114
- console.error('Password reset failed:', error);
115
- throw error;
116
- }
117
- }
118
-
119
- static async resetPasswordWithToken(token, password) {
120
- try {
121
- // Implement password reset logic using Meteor
122
- return new Promise ((resolve, reject) => {
123
- Accounts.resetPassword(token, password, (error) => {
124
- if (error) {
125
- reject(error);
126
- } else {
127
- resolve(Meteor.user());
128
- }
129
- });
130
- });
131
- } catch (error) {
132
- console.error('Password reset failed:', error);
133
- throw error;
134
- }
135
- }
136
- }
137
-
138
- export default AuthService;
1
+ import { Meteor } from 'meteor/meteor';
2
+ // import { Roles } from 'meteor/alanning:roles';
3
+ import { Accounts } from 'meteor/accounts-base';
4
+
5
+ class AuthService {
6
+ static getUserQuerySelector(username) {
7
+ // if the username is an email address, use the email field
8
+ if (username.indexOf('@') > -1) {
9
+ return { email: username };
10
+ } else {
11
+ return { username };
12
+ }
13
+ }
14
+
15
+ static async authenticateUser(username, password) {
16
+ // Implement Meteor-specific login logic
17
+ try {
18
+ const selector = AuthService.getUserQuerySelector(username);
19
+ return new Promise((resolve, reject) => {
20
+ Meteor.loginWithPassword(selector, password, (error) => {
21
+ if (error) {
22
+ reject(error);
23
+ } else {
24
+ resolve(Meteor.user());
25
+ }
26
+ });
27
+ });
28
+
29
+ } catch (error) {
30
+ console.error('Meteor authentication failed:', error);
31
+ throw error;
32
+ }
33
+ }
34
+
35
+ static async authenticateToken() {
36
+ // Implement token validation logic using Meteor
37
+ try {
38
+ return new Promise((resolve, reject) => {
39
+ const token = localStorage.getItem('Meteor.loginToken');
40
+ if (token) {
41
+ Meteor.loginWithToken(token, (error) => {
42
+ if (error) {
43
+ reject(error);
44
+ } else {
45
+ resolve(Meteor.user());
46
+ }
47
+ })
48
+ } else {
49
+ resolve(null);
50
+ }
51
+ });
52
+ } catch (error) {
53
+ console.error('Token validation failed:', error);
54
+ throw error;
55
+ }
56
+ }
57
+
58
+ static async getUserAuthorizations(userId) {
59
+ // Implement logic to fetch user permissions from Meteor
60
+ try {
61
+ return new Promise((resolve) => {
62
+ const roles = [];
63
+ resolve(roles);
64
+ });
65
+ } catch (error) {
66
+ console.error('Failed to fetch user permissions:', error);
67
+ throw error;
68
+ }
69
+ }
70
+
71
+ static async deauthenticateUser() {
72
+ // Implement logout logic using Meteor
73
+ try {
74
+ return new Promise((resolve, reject) => {
75
+ Meteor.logout((error) => {
76
+ if (error) {
77
+ reject(error);
78
+ }
79
+ resolve(true);
80
+ });
81
+ });
82
+ } catch (error) {
83
+ console.error('Logout failed:', error);
84
+ }
85
+ }
86
+
87
+ static async registerNewUser(username, password) {
88
+ try {
89
+ const selector = AuthService.getUserQuerySelector(username);
90
+ selector.password = password;
91
+
92
+ // Implement user registration logic using Meteor
93
+ await Accounts.createUserAsync(selector);
94
+ return Meteor.user();
95
+ } catch (error) {
96
+ console.error('Registration failed:', error);
97
+ throw error;
98
+ }
99
+ }
100
+
101
+ static async sendForgotPasswordEmail(email) {
102
+ try {
103
+ // Implement password reset logic using Meteor
104
+ return new Promise ((resolve, reject) => {
105
+ Accounts.forgotPassword({ email }, (error) => {
106
+ if (error) {
107
+ reject(error);
108
+ } else {
109
+ resolve();
110
+ }
111
+ });
112
+ });
113
+ } catch (error) {
114
+ console.error('Password reset failed:', error);
115
+ throw error;
116
+ }
117
+ }
118
+
119
+ static async resetPasswordWithToken(token, password) {
120
+ try {
121
+ // Implement password reset logic using Meteor
122
+ return new Promise ((resolve, reject) => {
123
+ Accounts.resetPassword(token, password, (error) => {
124
+ if (error) {
125
+ reject(error);
126
+ } else {
127
+ resolve(Meteor.user());
128
+ }
129
+ });
130
+ });
131
+ } catch (error) {
132
+ console.error('Password reset failed:', error);
133
+ throw error;
134
+ }
135
+ }
136
+ }
137
+
138
+ export default AuthService;