@maka/maka-cli 5.123.0 → 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 (254) 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/commands/go.js +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
  25. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
  26. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
  27. package/bundle/typescript/src/commands/game/sideQuest/game.js +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +206 -206
  29. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
  30. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
  31. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
  32. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
  33. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
  34. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +2 -2
  35. package/bundle/typescript/src/commands/generate.js +2 -2
  36. package/bundle/typescript/src/commands/lint.js +10 -10
  37. package/bundle/typescript/src/commands/maka.cmd.js +26 -26
  38. package/bundle/typescript/src/commands/murder.js +14 -14
  39. package/bundle/typescript/src/commands/proxy.js +13 -13
  40. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
  41. package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
  42. package/bundle/typescript/src/commands/run/run.command.js +24 -24
  43. package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
  44. package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
  45. package/bundle/typescript/src/commands/set/set.command.js +3 -3
  46. package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
  47. package/bundle/typescript/src/exec.js +0 -0
  48. package/bundle/typescript/src/generators/api.js +11 -11
  49. package/bundle/typescript/src/generators/collection.js +6 -6
  50. package/bundle/typescript/src/generators/hook.js +10 -10
  51. package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
  52. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
  53. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
  54. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
  55. package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
  56. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
  57. package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
  58. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
  59. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
  60. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
  61. package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
  62. package/bundle/typescript/src/generators/services/translation.js +5 -5
  63. package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
  64. package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
  65. package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
  66. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
  67. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
  68. package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
  69. package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
  70. package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
  71. package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
  72. package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
  73. package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
  74. package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
  75. package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
  76. package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
  77. package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
  78. package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
  79. package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
  80. package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
  81. package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
  82. package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
  83. package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
  84. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
  85. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
  86. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
  87. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
  88. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
  89. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
  90. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
  91. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
  92. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
  93. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
  94. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
  95. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
  96. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
  97. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
  98. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
  99. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
  100. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
  101. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
  102. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
  103. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
  104. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
  105. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
  106. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
  107. package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
  108. package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
  109. package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
  110. package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
  111. package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
  112. package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
  113. package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
  114. package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
  115. package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
  116. package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
  117. package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
  118. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
  119. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
  120. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
  121. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
  122. package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
  123. package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
  124. package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
  125. package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
  126. package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
  127. package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
  128. package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
  129. package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
  130. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
  131. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
  132. package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
  133. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
  134. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
  135. package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
  136. package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
  137. package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
  138. package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
  139. package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
  140. package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
  141. package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
  142. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
  143. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
  144. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
  145. package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
  146. package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
  147. package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
  148. package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
  149. package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
  150. package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
  151. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
  152. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
  153. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
  154. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
  155. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
  156. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
  157. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
  158. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
  159. package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
  160. package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
  161. package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
  162. package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
  163. package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
  164. package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
  165. package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
  166. package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
  167. package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
  168. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
  169. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
  170. package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
  171. package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
  172. package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
  173. package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
  174. package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
  175. package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
  176. package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
  177. package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
  178. package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
  179. package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
  180. package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
  181. package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
  182. package/bundle/typescript/src/templates/react/component/component.css +6 -6
  183. package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
  184. package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
  185. package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
  186. package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
  187. package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
  188. package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
  189. package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
  190. package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
  191. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
  192. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
  193. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
  194. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
  195. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
  196. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
  197. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
  198. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
  199. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
  200. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
  201. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
  202. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
  203. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
  204. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
  205. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
  206. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
  207. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
  208. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
  209. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
  210. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
  211. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
  212. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
  213. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
  214. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
  215. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
  216. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
  217. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
  218. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
  219. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
  220. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
  221. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
  222. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
  223. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
  224. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
  225. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
  226. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
  227. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
  228. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
  229. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
  230. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
  231. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
  232. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
  233. package/bundle/typescript/src/templates/react/route/route.js +8 -8
  234. package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
  235. package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
  236. package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
  237. package/bundle/typescript/src/templates/react/test/test.js +1 -1
  238. package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
  239. package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
  240. package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
  241. package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
  242. package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
  243. package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
  244. package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
  245. package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
  246. package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
  247. package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
  248. package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
  249. package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
  250. package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
  251. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
  252. package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
  253. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
  254. 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
+ };