@maka/maka-cli 5.123.1 → 5.124.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) 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 +2 -2
  20. package/bundle/typescript/src/commands/env/env.command.js +8 -8
  21. package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
  22. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +0 -8
  23. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +6 -50
  24. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +3 -3
  26. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  27. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +0 -4
  28. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +0 -1342
  29. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js +5 -6
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/catalog.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -2
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +0 -38
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +11 -45
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js +5 -4
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/install.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +10 -7
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +5 -6
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js +2 -2
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +8 -8
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +14 -1
  53. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +11 -12
  55. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  56. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +445 -445
  57. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
  59. package/bundle/typescript/src/commands/game/sideQuest/game.js +6 -10
  60. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/metamagics.d.ts +32 -0
  62. package/bundle/typescript/src/commands/game/sideQuest/metamagics.js +12 -0
  63. package/bundle/typescript/src/commands/game/sideQuest/metamagics.js.map +1 -0
  64. package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +6 -4
  65. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +3 -83
  66. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -1
  67. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +206 -206
  68. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +5 -5
  69. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +10 -14
  70. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  71. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
  72. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +3 -7
  73. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +15 -715
  74. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
  76. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
  77. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +5 -7
  78. package/bundle/typescript/src/commands/game/sideQuest/spells.js +5 -63
  79. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
  80. package/bundle/typescript/src/commands/game/sideQuest/ui.js +22 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +36 -20
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +24 -658
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +100 -20
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +314 -57
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  88. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
  89. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +3 -2
  90. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  91. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
  92. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +28 -2
  93. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  94. package/bundle/typescript/src/commands/generate.js +2 -2
  95. package/bundle/typescript/src/commands/lint.js +10 -10
  96. package/bundle/typescript/src/commands/maka.cmd.js +26 -26
  97. package/bundle/typescript/src/commands/murder.js +14 -14
  98. package/bundle/typescript/src/commands/proxy.js +13 -13
  99. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
  100. package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
  101. package/bundle/typescript/src/commands/run/run.command.js +24 -24
  102. package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
  103. package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
  104. package/bundle/typescript/src/commands/set/set.command.js +3 -3
  105. package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
  106. package/bundle/typescript/src/error.js +1 -1
  107. package/bundle/typescript/src/error.js.map +1 -1
  108. package/bundle/typescript/src/exec.js +0 -0
  109. package/bundle/typescript/src/generators/api.js +11 -11
  110. package/bundle/typescript/src/generators/collection.js +6 -6
  111. package/bundle/typescript/src/generators/hook.js +10 -10
  112. package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
  113. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
  114. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
  115. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
  116. package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
  117. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
  118. package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
  119. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
  120. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
  121. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
  122. package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
  123. package/bundle/typescript/src/generators/services/translation.js +5 -5
  124. package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
  125. package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
  126. package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
  127. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
  128. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
  129. package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
  130. package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
  131. package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
  132. package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
  133. package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
  134. package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
  135. package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
  136. package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
  137. package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
  138. package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
  139. package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
  140. package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
  141. package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
  142. package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
  143. package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
  144. package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
  145. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
  146. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
  147. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
  148. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
  149. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
  150. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
  151. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
  152. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
  153. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
  154. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
  155. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
  156. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
  157. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
  158. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
  159. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
  160. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
  161. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
  162. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
  163. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
  164. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
  165. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
  166. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
  167. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
  168. package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
  169. package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
  170. package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
  171. package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
  172. package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
  173. package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
  174. package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
  175. package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
  176. package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
  177. package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
  178. package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
  179. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
  180. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
  181. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
  182. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
  183. package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
  184. package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
  185. package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
  186. package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
  187. package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
  188. package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
  189. package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
  190. package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
  191. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
  192. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
  193. package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
  194. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
  195. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
  196. package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
  197. package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
  198. package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
  199. package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
  200. package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
  201. package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
  202. package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
  203. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
  204. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
  205. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
  206. package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
  207. package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
  208. package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
  209. package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
  210. package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
  211. package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
  212. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
  213. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
  214. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
  215. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
  216. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
  217. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
  218. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
  219. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
  220. package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
  221. package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
  222. package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
  223. package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
  224. package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
  225. package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
  226. package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
  227. package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
  228. package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
  229. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
  230. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
  231. package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
  232. package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
  233. package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
  234. package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
  235. package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
  236. package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
  237. package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
  238. package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
  239. package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
  240. package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
  241. package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
  242. package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
  243. package/bundle/typescript/src/templates/react/component/component.css +6 -6
  244. package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
  245. package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
  246. package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
  247. package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
  248. package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
  249. package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
  250. package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
  251. package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
  252. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
  253. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
  254. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
  255. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
  256. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
  257. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
  258. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
  259. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
  260. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
  261. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
  262. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
  263. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
  264. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
  265. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
  266. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
  267. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
  268. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
  269. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
  270. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
  271. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
  272. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
  273. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
  274. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
  275. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
  276. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
  277. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
  278. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
  279. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
  280. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
  281. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
  282. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
  283. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
  284. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
  285. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
  286. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
  287. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
  288. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
  289. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
  290. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
  291. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
  292. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
  293. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
  294. package/bundle/typescript/src/templates/react/route/route.js +8 -8
  295. package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
  296. package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
  297. package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
  298. package/bundle/typescript/src/templates/react/test/test.js +1 -1
  299. package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
  300. package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
  301. package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
  302. package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
  303. package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
  304. package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
  305. package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
  306. package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
  307. package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
  308. package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
  309. package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
  310. package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
  311. package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
  312. package/bundle/typescript/src/tool.d.ts +2 -0
  313. package/bundle/typescript/src/tool.js +5 -2
  314. package/bundle/typescript/src/tool.js.map +1 -1
  315. package/package.json +120 -120
@@ -1,166 +1,166 @@
1
- import './<%= fileName %>.css';
2
- import * as React from 'react';
3
- import { Component } from 'react';
4
- import PropTypes from 'prop-types';
5
- import { WorkspaceManager, WorkspaceStore } from 'meteor/maka:maka-frames';
6
-
7
- interface <%= className %>Props {
8
- currentWorkspaceId: string;
9
- allWorkspaces: any[];
10
- user?: any;
11
- onWorkspaceSwitch?: (workspaceId: string) => void;
12
- }
13
-
14
- /**
15
- * <%= className %> Component
16
- *
17
- * UI component for managing workspaces in the maka-frames package.
18
- * Provides controls for creating, switching, renaming, and deleting workspaces.
19
- */
20
- class <%= className %>Component extends Component<<%= className %>Props> {
21
- static propTypes = {
22
- currentWorkspaceId: PropTypes.string.isRequired,
23
- allWorkspaces: PropTypes.array.isRequired,
24
- user: PropTypes.object,
25
- onWorkspaceSwitch: PropTypes.func
26
- };
27
-
28
- handleCreateWorkspace = () => {
29
- const { user, onWorkspaceSwitch } = this.props;
30
-
31
- const workspaceName = prompt('Enter workspace name:', `Workspace ${new Date().toLocaleTimeString()}`);
32
- if (!workspaceName) return;
33
-
34
- const workspaceId = `workspace-${Date.now()}`;
35
- const workspaceData = {
36
- id: workspaceId,
37
- name: workspaceName,
38
- frames: [],
39
- createdAt: new Date(),
40
- updatedAt: new Date()
41
- };
42
-
43
- // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
44
- if (user) {
45
- WorkspaceManager.createWorkspace(workspaceData.id, workspaceData.name)
46
- .then(() => {
47
- console.log('Workspace created:', workspaceData.id);
48
- if (onWorkspaceSwitch) onWorkspaceSwitch(workspaceData.id);
49
- })
50
- .catch((error: any) => {
51
- console.error('Error creating workspace:', error);
52
- });
53
- } else {
54
- WorkspaceStore.setWorkspace(workspaceData);
55
- if (onWorkspaceSwitch) onWorkspaceSwitch(workspaceData.id);
56
- }
57
- }
58
-
59
- handleDeleteWorkspace = (workspaceId: string) => {
60
- const { user, allWorkspaces, onWorkspaceSwitch } = this.props;
61
-
62
- const workspace = allWorkspaces.find(ws => ws.id === workspaceId);
63
- if (!workspace) return;
64
-
65
- const confirmed = confirm(`Are you sure you want to delete "${workspace.name}"?`);
66
- if (!confirmed) return;
67
-
68
- // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
69
- if (user) {
70
- WorkspaceManager.deleteWorkspace(workspaceId)
71
- .then(() => {
72
- console.log('Workspace deleted:', workspaceId);
73
- // Switch to first available workspace
74
- const remainingWorkspaces = allWorkspaces.filter(ws => ws.id !== workspaceId);
75
- if (remainingWorkspaces.length > 0 && onWorkspaceSwitch) {
76
- onWorkspaceSwitch(remainingWorkspaces[0].id);
77
- }
78
- })
79
- .catch((error: any) => {
80
- // Handle error (e.g., last workspace can't be deleted)
81
- alert(error.message || 'Cannot delete workspace');
82
- console.error('Error deleting workspace:', error);
83
- });
84
- } else {
85
- const success = WorkspaceStore.deleteWorkspace(workspaceId);
86
- if (success) {
87
- // Switch to first available workspace
88
- const remainingWorkspaces = allWorkspaces.filter(ws => ws.id !== workspaceId);
89
- if (remainingWorkspaces.length > 0 && onWorkspaceSwitch) {
90
- onWorkspaceSwitch(remainingWorkspaces[0].id);
91
- }
92
- } else {
93
- alert('Cannot delete the last workspace');
94
- }
95
- }
96
- }
97
-
98
- handleRenameWorkspace = (workspaceId: string) => {
99
- const { user, allWorkspaces } = this.props;
100
-
101
- const workspace = allWorkspaces.find(ws => ws.id === workspaceId);
102
- if (!workspace) return;
103
-
104
- const newName = prompt('Enter new workspace name:', workspace.name);
105
- if (!newName || newName === workspace.name) return;
106
-
107
- // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
108
- if (user) {
109
- WorkspaceManager.updateWorkspace(workspaceId, { name: newName });
110
- } else {
111
- const localWorkspace = WorkspaceStore.getWorkspace(workspaceId);
112
- if (localWorkspace) {
113
- localWorkspace.name = newName;
114
- localWorkspace.updatedAt = new Date();
115
- WorkspaceStore.setWorkspace(localWorkspace);
116
- }
117
- }
118
- }
119
-
120
- render() {
121
- const { currentWorkspaceId, allWorkspaces, onWorkspaceSwitch } = this.props;
122
-
123
- return (
124
- <div className="<%= fileName %>">
125
- <div className="workspace-selector">
126
- <select
127
- value={currentWorkspaceId}
128
- onChange={(e) => onWorkspaceSwitch && onWorkspaceSwitch(e.target.value)}
129
- className="workspace-select"
130
- >
131
- {allWorkspaces.map(ws => (
132
- <option key={ws.id} value={ws.id}>{ws.name}</option>
133
- ))}
134
- </select>
135
- </div>
136
-
137
- <div className="workspace-actions">
138
- <button
139
- onClick={this.handleCreateWorkspace}
140
- className="workspace-btn workspace-create-btn"
141
- >
142
- + New Workspace
143
- </button>
144
-
145
- <button
146
- onClick={() => this.handleRenameWorkspace(currentWorkspaceId)}
147
- className="workspace-btn workspace-rename-btn"
148
- >
149
- Rename Workspace
150
- </button>
151
-
152
- {allWorkspaces.length > 1 && (
153
- <button
154
- onClick={() => this.handleDeleteWorkspace(currentWorkspaceId)}
155
- className="workspace-btn workspace-delete-btn"
156
- >
157
- Delete Workspace
158
- </button>
159
- )}
160
- </div>
161
- </div>
162
- );
163
- }
164
- }
165
-
166
- export { <%= className %>Component };
1
+ import './<%= fileName %>.css';
2
+ import * as React from 'react';
3
+ import { Component } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import { WorkspaceManager, WorkspaceStore } from 'meteor/maka:maka-frames';
6
+
7
+ interface <%= className %>Props {
8
+ currentWorkspaceId: string;
9
+ allWorkspaces: any[];
10
+ user?: any;
11
+ onWorkspaceSwitch?: (workspaceId: string) => void;
12
+ }
13
+
14
+ /**
15
+ * <%= className %> Component
16
+ *
17
+ * UI component for managing workspaces in the maka-frames package.
18
+ * Provides controls for creating, switching, renaming, and deleting workspaces.
19
+ */
20
+ class <%= className %>Component extends Component<<%= className %>Props> {
21
+ static propTypes = {
22
+ currentWorkspaceId: PropTypes.string.isRequired,
23
+ allWorkspaces: PropTypes.array.isRequired,
24
+ user: PropTypes.object,
25
+ onWorkspaceSwitch: PropTypes.func
26
+ };
27
+
28
+ handleCreateWorkspace = () => {
29
+ const { user, onWorkspaceSwitch } = this.props;
30
+
31
+ const workspaceName = prompt('Enter workspace name:', `Workspace ${new Date().toLocaleTimeString()}`);
32
+ if (!workspaceName) return;
33
+
34
+ const workspaceId = `workspace-${Date.now()}`;
35
+ const workspaceData = {
36
+ id: workspaceId,
37
+ name: workspaceName,
38
+ frames: [],
39
+ createdAt: new Date(),
40
+ updatedAt: new Date()
41
+ };
42
+
43
+ // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
44
+ if (user) {
45
+ WorkspaceManager.createWorkspace(workspaceData.id, workspaceData.name)
46
+ .then(() => {
47
+ console.log('Workspace created:', workspaceData.id);
48
+ if (onWorkspaceSwitch) onWorkspaceSwitch(workspaceData.id);
49
+ })
50
+ .catch((error: any) => {
51
+ console.error('Error creating workspace:', error);
52
+ });
53
+ } else {
54
+ WorkspaceStore.setWorkspace(workspaceData);
55
+ if (onWorkspaceSwitch) onWorkspaceSwitch(workspaceData.id);
56
+ }
57
+ }
58
+
59
+ handleDeleteWorkspace = (workspaceId: string) => {
60
+ const { user, allWorkspaces, onWorkspaceSwitch } = this.props;
61
+
62
+ const workspace = allWorkspaces.find(ws => ws.id === workspaceId);
63
+ if (!workspace) return;
64
+
65
+ const confirmed = confirm(`Are you sure you want to delete "${workspace.name}"?`);
66
+ if (!confirmed) return;
67
+
68
+ // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
69
+ if (user) {
70
+ WorkspaceManager.deleteWorkspace(workspaceId)
71
+ .then(() => {
72
+ console.log('Workspace deleted:', workspaceId);
73
+ // Switch to first available workspace
74
+ const remainingWorkspaces = allWorkspaces.filter(ws => ws.id !== workspaceId);
75
+ if (remainingWorkspaces.length > 0 && onWorkspaceSwitch) {
76
+ onWorkspaceSwitch(remainingWorkspaces[0].id);
77
+ }
78
+ })
79
+ .catch((error: any) => {
80
+ // Handle error (e.g., last workspace can't be deleted)
81
+ alert(error.message || 'Cannot delete workspace');
82
+ console.error('Error deleting workspace:', error);
83
+ });
84
+ } else {
85
+ const success = WorkspaceStore.deleteWorkspace(workspaceId);
86
+ if (success) {
87
+ // Switch to first available workspace
88
+ const remainingWorkspaces = allWorkspaces.filter(ws => ws.id !== workspaceId);
89
+ if (remainingWorkspaces.length > 0 && onWorkspaceSwitch) {
90
+ onWorkspaceSwitch(remainingWorkspaces[0].id);
91
+ }
92
+ } else {
93
+ alert('Cannot delete the last workspace');
94
+ }
95
+ }
96
+ }
97
+
98
+ handleRenameWorkspace = (workspaceId: string) => {
99
+ const { user, allWorkspaces } = this.props;
100
+
101
+ const workspace = allWorkspaces.find(ws => ws.id === workspaceId);
102
+ if (!workspace) return;
103
+
104
+ const newName = prompt('Enter new workspace name:', workspace.name);
105
+ if (!newName || newName === workspace.name) return;
106
+
107
+ // Use WorkspaceManager for logged-in users, WorkspaceStore for anonymous
108
+ if (user) {
109
+ WorkspaceManager.updateWorkspace(workspaceId, { name: newName });
110
+ } else {
111
+ const localWorkspace = WorkspaceStore.getWorkspace(workspaceId);
112
+ if (localWorkspace) {
113
+ localWorkspace.name = newName;
114
+ localWorkspace.updatedAt = new Date();
115
+ WorkspaceStore.setWorkspace(localWorkspace);
116
+ }
117
+ }
118
+ }
119
+
120
+ render() {
121
+ const { currentWorkspaceId, allWorkspaces, onWorkspaceSwitch } = this.props;
122
+
123
+ return (
124
+ <div className="<%= fileName %>">
125
+ <div className="workspace-selector">
126
+ <select
127
+ value={currentWorkspaceId}
128
+ onChange={(e) => onWorkspaceSwitch && onWorkspaceSwitch(e.target.value)}
129
+ className="workspace-select"
130
+ >
131
+ {allWorkspaces.map(ws => (
132
+ <option key={ws.id} value={ws.id}>{ws.name}</option>
133
+ ))}
134
+ </select>
135
+ </div>
136
+
137
+ <div className="workspace-actions">
138
+ <button
139
+ onClick={this.handleCreateWorkspace}
140
+ className="workspace-btn workspace-create-btn"
141
+ >
142
+ + New Workspace
143
+ </button>
144
+
145
+ <button
146
+ onClick={() => this.handleRenameWorkspace(currentWorkspaceId)}
147
+ className="workspace-btn workspace-rename-btn"
148
+ >
149
+ Rename Workspace
150
+ </button>
151
+
152
+ {allWorkspaces.length > 1 && (
153
+ <button
154
+ onClick={() => this.handleDeleteWorkspace(currentWorkspaceId)}
155
+ className="workspace-btn workspace-delete-btn"
156
+ >
157
+ Delete Workspace
158
+ </button>
159
+ )}
160
+ </div>
161
+ </div>
162
+ );
163
+ }
164
+ }
165
+
166
+ export { <%= className %>Component };
@@ -1,34 +1,34 @@
1
- import React, { useContext } from 'react';
2
- import { Container, Paper, Typography, TextField, Button } from '@mui/material';
3
- import { useNavigate } from 'react-router-dom';
4
-
5
- export const BasicForgotPasswordPage = () => {
6
- const { forgotPassword } = useContext(AuthContext);
7
- const navigate = useNavigate();
8
-
9
- const handleSubmit = async (event) => {
10
- event.preventDefault();
11
- const { email } = event.target;
12
- await forgotPassword(email.value);
13
- navigate('/');
14
- };
15
-
16
- return (
17
- <Container component="main" maxWidth="xs">
18
- <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
19
- <Typography component="h1" variant="h5">Forgot Password</Typography>
20
- <form onSubmit={handleSubmit}>
21
- {/* Form Field */}
22
- <TextField id="email" type="email" label="Email*" fullWidth autoFocus margin="normal" />
23
- <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
24
- Send Password Reset Email
25
- </Button>
26
- <Button onClick={() => navigate('/login')} fullWidth>
27
- Back to Login
28
- </Button>
29
- </form>
30
- </Paper>
31
- </Container>
32
- );
33
- };
34
-
1
+ import React, { useContext } from 'react';
2
+ import { Container, Paper, Typography, TextField, Button } from '@mui/material';
3
+ import { useNavigate } from 'react-router-dom';
4
+
5
+ export const BasicForgotPasswordPage = () => {
6
+ const { forgotPassword } = useContext(AuthContext);
7
+ const navigate = useNavigate();
8
+
9
+ const handleSubmit = async (event) => {
10
+ event.preventDefault();
11
+ const { email } = event.target;
12
+ await forgotPassword(email.value);
13
+ navigate('/');
14
+ };
15
+
16
+ return (
17
+ <Container component="main" maxWidth="xs">
18
+ <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
19
+ <Typography component="h1" variant="h5">Forgot Password</Typography>
20
+ <form onSubmit={handleSubmit}>
21
+ {/* Form Field */}
22
+ <TextField id="email" type="email" label="Email*" fullWidth autoFocus margin="normal" />
23
+ <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
24
+ Send Password Reset Email
25
+ </Button>
26
+ <Button onClick={() => navigate('/login')} fullWidth>
27
+ Back to Login
28
+ </Button>
29
+ </form>
30
+ </Paper>
31
+ </Container>
32
+ );
33
+ };
34
+
@@ -1,33 +1,33 @@
1
- import React, { useContext } from 'react';
2
- import { Container, Paper, Typography, TextField, Button } from '@mui/material';
3
- import { useNavigate } from 'react-router-dom';
4
-
5
- export const BasicForgotPasswordPage = () => {
6
- const { forgotPassword } = useContext(AuthContext);
7
- const navigate = useNavigate();
8
-
9
- const handleSubmit = async (event) => {
10
- event.preventDefault();
11
- const { email } = event.target;
12
- await forgotPassword(email.value);
13
- navigate('/');
14
- };
15
-
16
- return (
17
- <Container component="main" maxWidth="xs">
18
- <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
19
- <Typography component="h1" variant="h5">Forgot Password</Typography>
20
- <form onSubmit={handleSubmit}>
21
- {/* Form Field */}
22
- <TextField id="email" type="email" label="Email*" fullWidth autoFocus margin="normal" />
23
- <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
24
- Send Password Reset Email
25
- </Button>
26
- <Button onClick={() => navigate('/login')} fullWidth>
27
- Back to Login
28
- </Button>
29
- </form>
30
- </Paper>
31
- </Container>
32
- );
33
- };
1
+ import React, { useContext } from 'react';
2
+ import { Container, Paper, Typography, TextField, Button } from '@mui/material';
3
+ import { useNavigate } from 'react-router-dom';
4
+
5
+ export const BasicForgotPasswordPage = () => {
6
+ const { forgotPassword } = useContext(AuthContext);
7
+ const navigate = useNavigate();
8
+
9
+ const handleSubmit = async (event) => {
10
+ event.preventDefault();
11
+ const { email } = event.target;
12
+ await forgotPassword(email.value);
13
+ navigate('/');
14
+ };
15
+
16
+ return (
17
+ <Container component="main" maxWidth="xs">
18
+ <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
19
+ <Typography component="h1" variant="h5">Forgot Password</Typography>
20
+ <form onSubmit={handleSubmit}>
21
+ {/* Form Field */}
22
+ <TextField id="email" type="email" label="Email*" fullWidth autoFocus margin="normal" />
23
+ <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
24
+ Send Password Reset Email
25
+ </Button>
26
+ <Button onClick={() => navigate('/login')} fullWidth>
27
+ Back to Login
28
+ </Button>
29
+ </form>
30
+ </Paper>
31
+ </Container>
32
+ );
33
+ };
@@ -1,53 +1,53 @@
1
- import React, { useContext, useEffect } from 'react';
2
- import { Container, Paper, Typography, TextField, Button, Grid, Link } from '@mui/material';
3
- import { useNavigate } from 'react-router-dom';<% if (isSsr) { %>
4
- import { AuthContext } from '/imports/startup/lib/authentication-provider';<% } else { %>
5
- import { AuthContext } from '/imports/startup/client/authentication-provider';<% } %>
6
-
7
- export const BasicLoginPage = () => {
8
- const { currentUser, login } = useContext(AuthContext);
9
- const navigate = useNavigate();
10
- useEffect(() => {
11
- if (currentUser) {
12
- navigate('/logout');
13
- }
14
- });
15
-
16
- const handleLogin = async (event) => {
17
- event.preventDefault();
18
- const { email, password } = event.target;
19
- const user = await login({ username: email.value, password: password.value });
20
-
21
- if (user) {
22
- navigate('/');
23
- }
24
- };
25
-
26
- return (
27
- <Container component="main" maxWidth="xs">
28
- <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
29
- <Typography component="h1" variant="h5">Sign in</Typography>
30
- <form onSubmit={handleLogin}>
31
- {/* Form Fields */}
32
- <TextField id="email" type="email" label="Email Address*" fullWidth autoFocus margin="normal" />
33
- <TextField id="password" label="Password*" type="password" fullWidth margin="normal" />
34
- <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
35
- Sign In
36
- </Button>
37
- <Grid container>
38
- <Grid item xs>
39
- <Link href="#" onClick={() => navigate('/forgot-password')} variant="body2">
40
- Forgot password?
41
- </Link>
42
- </Grid>
43
- <Grid item>
44
- <Link href="#" onClick={() => navigate('/register')} variant="body2">
45
- Don't have an account? Sign Up
46
- </Link>
47
- </Grid>
48
- </Grid>
49
- </form>
50
- </Paper>
51
- </Container>
52
- );
53
- };
1
+ import React, { useContext, useEffect } from 'react';
2
+ import { Container, Paper, Typography, TextField, Button, Grid, Link } from '@mui/material';
3
+ import { useNavigate } from 'react-router-dom';<% if (isSsr) { %>
4
+ import { AuthContext } from '/imports/startup/lib/authentication-provider';<% } else { %>
5
+ import { AuthContext } from '/imports/startup/client/authentication-provider';<% } %>
6
+
7
+ export const BasicLoginPage = () => {
8
+ const { currentUser, login } = useContext(AuthContext);
9
+ const navigate = useNavigate();
10
+ useEffect(() => {
11
+ if (currentUser) {
12
+ navigate('/logout');
13
+ }
14
+ });
15
+
16
+ const handleLogin = async (event) => {
17
+ event.preventDefault();
18
+ const { email, password } = event.target;
19
+ const user = await login({ username: email.value, password: password.value });
20
+
21
+ if (user) {
22
+ navigate('/');
23
+ }
24
+ };
25
+
26
+ return (
27
+ <Container component="main" maxWidth="xs">
28
+ <Paper elevation={3} style={{ marginTop: '8vh', padding: '20px' }}>
29
+ <Typography component="h1" variant="h5">Sign in</Typography>
30
+ <form onSubmit={handleLogin}>
31
+ {/* Form Fields */}
32
+ <TextField id="email" type="email" label="Email Address*" fullWidth autoFocus margin="normal" />
33
+ <TextField id="password" label="Password*" type="password" fullWidth margin="normal" />
34
+ <Button type="submit" fullWidth variant="contained" color="primary" style={{ margin: '20px 0' }}>
35
+ Sign In
36
+ </Button>
37
+ <Grid container>
38
+ <Grid item xs>
39
+ <Link href="#" onClick={() => navigate('/forgot-password')} variant="body2">
40
+ Forgot password?
41
+ </Link>
42
+ </Grid>
43
+ <Grid item>
44
+ <Link href="#" onClick={() => navigate('/register')} variant="body2">
45
+ Don't have an account? Sign Up
46
+ </Link>
47
+ </Grid>
48
+ </Grid>
49
+ </form>
50
+ </Paper>
51
+ </Container>
52
+ );
53
+ };