@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,179 +1,179 @@
1
- /*
2
- * Content Security Policy (CSP)
3
- * https://guide.meteor.com/security.html#httpheaders
4
- */
5
-
6
- /* global __meteor_runtime_config__ */
7
- import { Meteor } from 'meteor/meteor'
8
- import { WebApp } from 'meteor/webapp'
9
- import { Autoupdate } from 'meteor/autoupdate'
10
- import crypto from 'crypto'
11
- import type { HelmetOptions } from 'helmet'
12
-
13
- const self = '\'self\''
14
- const data = 'data:'
15
- const unsafeEval = '\'unsafe-eval\''
16
- const unsafeInline = '\'unsafe-inline\''
17
- const allowedOrigins = Meteor.settings.extraAllowedOrigins;
18
- const devAllowedOrigins = Meteor.settings.devAllowedOrigins;
19
-
20
- // create the default connect source for our current domain in
21
- // a multi-protocol compatible way (http/ws or https/wss)
22
- const url = Meteor.absoluteUrl()
23
- const domain = url.replace(/http(s)*:\/\//, '').replace(/\/$/, '')
24
- const s = url.match(/(?!=http)s(?=:\/\/)/) ? 's' : ''
25
- const usesHttps = s.length > 0
26
- const connectSrc = [
27
- self,
28
- `http${s}://${domain}`,
29
- `ws${s}://${domain}`
30
- ]
31
-
32
- // Prepare runtime config for generating the sha256 hash
33
- // It is important, that the hash meets exactly the hash of the
34
- // script in the client bundle.
35
- // Otherwise the app would not be able to start, since the runtimeConfigScript
36
- // is rejected __meteor_runtime_config__ is not available, causing
37
- // a cascade of follow-up errors.
38
- const runtimeConfig = Object.assign(__meteor_runtime_config__, Autoupdate, {
39
- // the following lines may depend on, whether you called Accounts.config
40
- // and whether your Meteor app is a "newer" version
41
- accountsConfigCalled: true,
42
- isModern: true
43
- })
44
-
45
- // add client versions to __meteor_runtime_config__
46
- // clientProgram is typed `any` here: @types/meteor's WebApp.clientPrograms
47
- // shape only documents `version` as a plain string, but Meteor's real
48
- // runtime object also carries the versionRefreshable/versionNonRefreshable/
49
- // versionReplaceable accessor methods used below.
50
- Object.keys(WebApp.clientPrograms).forEach(arch => {
51
- const clientProgram: any = WebApp.clientPrograms[arch];
52
- __meteor_runtime_config__.versions[arch] = {
53
- version: Autoupdate.autoupdateVersion || clientProgram.version(),
54
- versionRefreshable: Autoupdate.autoupdateVersion || clientProgram.versionRefreshable(),
55
- versionNonRefreshable: Autoupdate.autoupdateVersion || clientProgram.versionNonRefreshable(),
56
- // comment the following line if you use Meteor < 2.0
57
- versionReplaceable: Autoupdate.autoupdateVersion || clientProgram.versionReplaceable()
58
- }
59
- })
60
-
61
- const runtimeConfigScript = `__meteor_runtime_config__ = JSON.parse(decodeURIComponent("${encodeURIComponent(JSON.stringify(runtimeConfig))}"))`
62
- const runtimeConfigHash = crypto.createHash('sha256').update(runtimeConfigScript).digest('base64')
63
-
64
- const helmetOptions = {
65
- crossOriginOpenerPolicy: { policy: "same-origin-allow-popups" },
66
- crossOriginResourcePolicy: true,
67
- //If you want to embed something like an iframe, set to false
68
- //If this is truu, site's won't be able to link to you
69
- crossOriginEmbedderPolicy: false,
70
- contentSecurityPolicy: {
71
- directives: {
72
- defaultSrc: [self].concat(allowedOrigins),
73
- scriptSrc: [
74
- self,
75
- // Remove / comment out unsafeEval if you do not use dynamic imports
76
- // to tighten security. However, if you use dynamic imports this line
77
- // must be kept in order to make them work.
78
- unsafeEval,
79
- `'sha256-${runtimeConfigHash}'`
80
- ].concat(allowedOrigins),
81
- childSrc: [self].concat(allowedOrigins),
82
- // If you have external apps, that should be allowed as sources for
83
- // connections or images, your should add them here
84
- // Call helmetOptions() without args if you have no external sources
85
- // Note, that this is just an example and you may configure this to your needs
86
- connectSrc: connectSrc.concat(allowedOrigins),
87
- fontSrc: [self, data].concat(allowedOrigins),
88
- formAction: [self].concat(allowedOrigins),
89
- frameAncestors: [self].concat(allowedOrigins),
90
- frameSrc: [self].concat(allowedOrigins),
91
- // This is an example to show, that we can define to show images only
92
- // from our self, browser data/blob and a defined set of hosts.
93
- // Configure to your needs.
94
- imgSrc: [self, data, 'blob:'].concat(allowedOrigins),
95
- manifestSrc: [self].concat(allowedOrigins),
96
- mediaSrc: [self].concat(allowedOrigins),
97
- objectSrc: [self].concat(allowedOrigins),
98
- // these are just examples, configure to your needs, see
99
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox
100
- sandbox: [
101
- // allow-downloads-without-user-activation // experimental
102
- 'allow-forms',
103
- 'allow-modals',
104
- // 'allow-orientation-lock',
105
- // 'allow-pointer-lock',
106
- 'allow-popups',
107
- // 'allow-popups-to-escape-sandbox',
108
- // 'allow-presentation',
109
- 'allow-same-origin',
110
- 'allow-scripts',
111
- // 'allow-storage-access-by-user-activation ', // experimental
112
- // 'allow-top-navigation',
113
- // 'allow-top-navigation-by-user-activation'
114
- ],
115
- styleSrc: [self, unsafeInline].concat(allowedOrigins),
116
- workerSrc: [self, 'blob:'].concat(allowedOrigins)
117
- }
118
- },
119
- // see the helmet documentation to get a better understanding of
120
- // the following configurations and settings
121
- strictTransportSecurity: {
122
- maxAge: 15552000,
123
- includeSubDomains: true,
124
- preload: false
125
- },
126
- referrerPolicy: {
127
- policy: 'no-referrer'
128
- },
129
- frameguard: {
130
- action: 'sameorigin'
131
- },
132
- dnsPrefetchControl: {
133
- allow: false
134
- },
135
- permittedCrossDomainPolicies: {
136
- permittedPolicies: 'none'
137
- }
138
- } satisfies HelmetOptions;
139
-
140
- // We assume, that we are working on a localhost when there is no https
141
- // connection available.
142
- // Run your project with --production flag to simulate script-src hashing
143
- if (!usesHttps && Meteor.isDevelopment && devAllowedOrigins) {
144
- helmetOptions.contentSecurityPolicy.directives.scriptSrc = [
145
- self,
146
- devAllowedOrigins.join(' '),
147
- data,
148
- unsafeEval,
149
- unsafeInline,
150
- ];
151
-
152
- helmetOptions.contentSecurityPolicy.directives.styleSrc = [
153
- self,
154
- devAllowedOrigins.join(' '),
155
- data,
156
- unsafeEval,
157
- unsafeInline,
158
- ];
159
-
160
- helmetOptions.contentSecurityPolicy.directives.imgSrc = [
161
- self,
162
- devAllowedOrigins.join(' '),
163
- data,
164
- unsafeEval,
165
- unsafeInline,
166
- ];
167
-
168
- helmetOptions.contentSecurityPolicy.directives.fontSrc = [
169
- self,
170
- devAllowedOrigins.join(' '),
171
- data,
172
- unsafeEval,
173
- unsafeInline,
174
- ];
175
-
176
- (helmetOptions.contentSecurityPolicy.directives as Record<string, any>)['script-src-attr'] = null;
177
- }
178
-
179
- export default helmetOptions;
1
+ /*
2
+ * Content Security Policy (CSP)
3
+ * https://guide.meteor.com/security.html#httpheaders
4
+ */
5
+
6
+ /* global __meteor_runtime_config__ */
7
+ import { Meteor } from 'meteor/meteor'
8
+ import { WebApp } from 'meteor/webapp'
9
+ import { Autoupdate } from 'meteor/autoupdate'
10
+ import crypto from 'crypto'
11
+ import type { HelmetOptions } from 'helmet'
12
+
13
+ const self = '\'self\''
14
+ const data = 'data:'
15
+ const unsafeEval = '\'unsafe-eval\''
16
+ const unsafeInline = '\'unsafe-inline\''
17
+ const allowedOrigins = Meteor.settings.extraAllowedOrigins;
18
+ const devAllowedOrigins = Meteor.settings.devAllowedOrigins;
19
+
20
+ // create the default connect source for our current domain in
21
+ // a multi-protocol compatible way (http/ws or https/wss)
22
+ const url = Meteor.absoluteUrl()
23
+ const domain = url.replace(/http(s)*:\/\//, '').replace(/\/$/, '')
24
+ const s = url.match(/(?!=http)s(?=:\/\/)/) ? 's' : ''
25
+ const usesHttps = s.length > 0
26
+ const connectSrc = [
27
+ self,
28
+ `http${s}://${domain}`,
29
+ `ws${s}://${domain}`
30
+ ]
31
+
32
+ // Prepare runtime config for generating the sha256 hash
33
+ // It is important, that the hash meets exactly the hash of the
34
+ // script in the client bundle.
35
+ // Otherwise the app would not be able to start, since the runtimeConfigScript
36
+ // is rejected __meteor_runtime_config__ is not available, causing
37
+ // a cascade of follow-up errors.
38
+ const runtimeConfig = Object.assign(__meteor_runtime_config__, Autoupdate, {
39
+ // the following lines may depend on, whether you called Accounts.config
40
+ // and whether your Meteor app is a "newer" version
41
+ accountsConfigCalled: true,
42
+ isModern: true
43
+ })
44
+
45
+ // add client versions to __meteor_runtime_config__
46
+ // clientProgram is typed `any` here: @types/meteor's WebApp.clientPrograms
47
+ // shape only documents `version` as a plain string, but Meteor's real
48
+ // runtime object also carries the versionRefreshable/versionNonRefreshable/
49
+ // versionReplaceable accessor methods used below.
50
+ Object.keys(WebApp.clientPrograms).forEach(arch => {
51
+ const clientProgram: any = WebApp.clientPrograms[arch];
52
+ __meteor_runtime_config__.versions[arch] = {
53
+ version: Autoupdate.autoupdateVersion || clientProgram.version(),
54
+ versionRefreshable: Autoupdate.autoupdateVersion || clientProgram.versionRefreshable(),
55
+ versionNonRefreshable: Autoupdate.autoupdateVersion || clientProgram.versionNonRefreshable(),
56
+ // comment the following line if you use Meteor < 2.0
57
+ versionReplaceable: Autoupdate.autoupdateVersion || clientProgram.versionReplaceable()
58
+ }
59
+ })
60
+
61
+ const runtimeConfigScript = `__meteor_runtime_config__ = JSON.parse(decodeURIComponent("${encodeURIComponent(JSON.stringify(runtimeConfig))}"))`
62
+ const runtimeConfigHash = crypto.createHash('sha256').update(runtimeConfigScript).digest('base64')
63
+
64
+ const helmetOptions = {
65
+ crossOriginOpenerPolicy: { policy: "same-origin-allow-popups" },
66
+ crossOriginResourcePolicy: true,
67
+ //If you want to embed something like an iframe, set to false
68
+ //If this is truu, site's won't be able to link to you
69
+ crossOriginEmbedderPolicy: false,
70
+ contentSecurityPolicy: {
71
+ directives: {
72
+ defaultSrc: [self].concat(allowedOrigins),
73
+ scriptSrc: [
74
+ self,
75
+ // Remove / comment out unsafeEval if you do not use dynamic imports
76
+ // to tighten security. However, if you use dynamic imports this line
77
+ // must be kept in order to make them work.
78
+ unsafeEval,
79
+ `'sha256-${runtimeConfigHash}'`
80
+ ].concat(allowedOrigins),
81
+ childSrc: [self].concat(allowedOrigins),
82
+ // If you have external apps, that should be allowed as sources for
83
+ // connections or images, your should add them here
84
+ // Call helmetOptions() without args if you have no external sources
85
+ // Note, that this is just an example and you may configure this to your needs
86
+ connectSrc: connectSrc.concat(allowedOrigins),
87
+ fontSrc: [self, data].concat(allowedOrigins),
88
+ formAction: [self].concat(allowedOrigins),
89
+ frameAncestors: [self].concat(allowedOrigins),
90
+ frameSrc: [self].concat(allowedOrigins),
91
+ // This is an example to show, that we can define to show images only
92
+ // from our self, browser data/blob and a defined set of hosts.
93
+ // Configure to your needs.
94
+ imgSrc: [self, data, 'blob:'].concat(allowedOrigins),
95
+ manifestSrc: [self].concat(allowedOrigins),
96
+ mediaSrc: [self].concat(allowedOrigins),
97
+ objectSrc: [self].concat(allowedOrigins),
98
+ // these are just examples, configure to your needs, see
99
+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/sandbox
100
+ sandbox: [
101
+ // allow-downloads-without-user-activation // experimental
102
+ 'allow-forms',
103
+ 'allow-modals',
104
+ // 'allow-orientation-lock',
105
+ // 'allow-pointer-lock',
106
+ 'allow-popups',
107
+ // 'allow-popups-to-escape-sandbox',
108
+ // 'allow-presentation',
109
+ 'allow-same-origin',
110
+ 'allow-scripts',
111
+ // 'allow-storage-access-by-user-activation ', // experimental
112
+ // 'allow-top-navigation',
113
+ // 'allow-top-navigation-by-user-activation'
114
+ ],
115
+ styleSrc: [self, unsafeInline].concat(allowedOrigins),
116
+ workerSrc: [self, 'blob:'].concat(allowedOrigins)
117
+ }
118
+ },
119
+ // see the helmet documentation to get a better understanding of
120
+ // the following configurations and settings
121
+ strictTransportSecurity: {
122
+ maxAge: 15552000,
123
+ includeSubDomains: true,
124
+ preload: false
125
+ },
126
+ referrerPolicy: {
127
+ policy: 'no-referrer'
128
+ },
129
+ frameguard: {
130
+ action: 'sameorigin'
131
+ },
132
+ dnsPrefetchControl: {
133
+ allow: false
134
+ },
135
+ permittedCrossDomainPolicies: {
136
+ permittedPolicies: 'none'
137
+ }
138
+ } satisfies HelmetOptions;
139
+
140
+ // We assume, that we are working on a localhost when there is no https
141
+ // connection available.
142
+ // Run your project with --production flag to simulate script-src hashing
143
+ if (!usesHttps && Meteor.isDevelopment && devAllowedOrigins) {
144
+ helmetOptions.contentSecurityPolicy.directives.scriptSrc = [
145
+ self,
146
+ devAllowedOrigins.join(' '),
147
+ data,
148
+ unsafeEval,
149
+ unsafeInline,
150
+ ];
151
+
152
+ helmetOptions.contentSecurityPolicy.directives.styleSrc = [
153
+ self,
154
+ devAllowedOrigins.join(' '),
155
+ data,
156
+ unsafeEval,
157
+ unsafeInline,
158
+ ];
159
+
160
+ helmetOptions.contentSecurityPolicy.directives.imgSrc = [
161
+ self,
162
+ devAllowedOrigins.join(' '),
163
+ data,
164
+ unsafeEval,
165
+ unsafeInline,
166
+ ];
167
+
168
+ helmetOptions.contentSecurityPolicy.directives.fontSrc = [
169
+ self,
170
+ devAllowedOrigins.join(' '),
171
+ data,
172
+ unsafeEval,
173
+ unsafeInline,
174
+ ];
175
+
176
+ (helmetOptions.contentSecurityPolicy.directives as Record<string, any>)['script-src-attr'] = null;
177
+ }
178
+
179
+ export default helmetOptions;