@maka/maka-cli 5.122.1 → 5.123.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +64 -64
  2. package/bundle/typescript/package.json +120 -120
  3. package/bundle/typescript/src/README.md +64 -64
  4. package/bundle/typescript/src/commands/aws/aws.command.js +2 -2
  5. package/bundle/typescript/src/commands/aws/ci.sub.cmd.js +5 -5
  6. package/bundle/typescript/src/commands/aws/ckp.sub.cmd.js +12 -12
  7. package/bundle/typescript/src/commands/aws/csg.sub.cmd.js +3 -3
  8. package/bundle/typescript/src/commands/aws/di.sub.cmd.js +8 -8
  9. package/bundle/typescript/src/commands/aws/rkp.sub.cmd.js +5 -5
  10. package/bundle/typescript/src/commands/aws/sth.sub.cmd.js +3 -3
  11. package/bundle/typescript/src/commands/aws/ti.sub.cmd.js +5 -5
  12. package/bundle/typescript/src/commands/build/build.js +16 -16
  13. package/bundle/typescript/src/commands/build/docker.sub.cmd.js +9 -9
  14. package/bundle/typescript/src/commands/create.js +36 -36
  15. package/bundle/typescript/src/commands/debug.js +4 -4
  16. package/bundle/typescript/src/commands/deploy/deploy.command.js +2 -2
  17. package/bundle/typescript/src/commands/deploy/galaxy.sub.cmd.js +2 -2
  18. package/bundle/typescript/src/commands/deploy/github.sub.cmd.js +8 -8
  19. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js +14 -10
  20. package/bundle/typescript/src/commands/deploy/ubuntu.sub.cmd.js.map +1 -1
  21. package/bundle/typescript/src/commands/env/env.command.js +8 -8
  22. package/bundle/typescript/src/commands/env/set.sub.cmd.js +11 -11
  23. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.d.ts +15 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js +12 -0
  25. package/bundle/typescript/src/commands/game/sideQuest/adept-powers.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/archetypes.d.ts +10 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +40 -14
  28. package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
  29. package/bundle/typescript/src/commands/game/sideQuest/augmentations.d.ts +33 -10
  30. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js +155 -72
  31. package/bundle/typescript/src/commands/game/sideQuest/augmentations.js.map +1 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +15 -6
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +33 -33
  39. package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/commands/drone.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +2 -2
  43. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +5 -1
  45. package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +6 -6
  47. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +4 -4
  49. package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
  50. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -1
  52. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.d.ts +20 -0
  53. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +9 -0
  54. package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
  55. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js +7 -3
  56. package/bundle/typescript/src/commands/game/sideQuest/commands/lead.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +3 -3
  58. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  59. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
  61. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -3
  62. package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +9 -9
  64. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +10 -10
  65. package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +7 -7
  67. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -1
  68. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  69. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +24 -0
  70. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +95 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
  72. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +443 -443
  73. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +6 -6
  74. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +45 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/game.js +120 -9
  76. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  77. package/bundle/typescript/src/commands/game/sideQuest/metatypes.d.ts +53 -0
  78. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js +86 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/metatypes.js.map +1 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +214 -208
  81. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  82. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +215 -18
  83. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +548 -117
  84. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  85. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +9 -9
  86. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +2 -1
  87. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -2
  88. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  89. package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +96 -4
  90. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +290 -11
  91. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  92. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +556 -556
  93. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +1447 -1447
  94. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.d.ts +11 -1
  95. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js +13 -1
  96. package/bundle/typescript/src/commands/game/sideQuest/skill-groups.js.map +1 -1
  97. package/bundle/typescript/src/commands/game/sideQuest/skills.d.ts +17 -0
  98. package/bundle/typescript/src/commands/game/sideQuest/skills.js +23 -0
  99. package/bundle/typescript/src/commands/game/sideQuest/skills.js.map +1 -0
  100. package/bundle/typescript/src/commands/game/sideQuest/spells.d.ts +76 -3
  101. package/bundle/typescript/src/commands/game/sideQuest/spells.js +48 -21
  102. package/bundle/typescript/src/commands/game/sideQuest/spells.js.map +1 -1
  103. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +8 -0
  104. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +90 -82
  105. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +277 -10
  106. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
  107. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.d.ts +121 -2
  108. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js +342 -18
  109. package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog.js.map +1 -1
  110. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +65 -2
  111. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +74 -7
  112. package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -1
  113. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +1 -1
  114. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  115. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.d.ts +248 -0
  116. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js +38 -0
  117. package/bundle/typescript/src/commands/game/sideQuest/utilities/effects.js.map +1 -0
  118. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +14 -14
  119. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js +1 -2
  120. package/bundle/typescript/src/commands/game/sideQuest/utilities/first-aid.js.map +1 -1
  121. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js +1 -2
  122. package/bundle/typescript/src/commands/game/sideQuest/utilities/perception.js.map +1 -1
  123. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +5 -0
  124. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  125. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +5 -1
  126. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  127. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js +22 -12
  128. package/bundle/typescript/src/commands/game/sideQuest/utilities/pregen-worksheet.js.map +1 -1
  129. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +1 -2
  130. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  131. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.d.ts +1 -0
  132. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js +20 -0
  133. package/bundle/typescript/src/commands/game/sideQuest/utilities/web-character-generator.js.map +1 -1
  134. package/bundle/typescript/src/commands/game/sideQuest-backlog.sub.cmd.js +2 -2
  135. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +33 -2
  136. package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
  137. package/bundle/typescript/src/commands/generate.js +2 -2
  138. package/bundle/typescript/src/commands/lint.js +10 -10
  139. package/bundle/typescript/src/commands/login.js +19 -1
  140. package/bundle/typescript/src/commands/login.js.map +1 -1
  141. package/bundle/typescript/src/commands/logout.js +16 -1
  142. package/bundle/typescript/src/commands/logout.js.map +1 -1
  143. package/bundle/typescript/src/commands/maka.cmd.js +26 -26
  144. package/bundle/typescript/src/commands/murder.js +14 -14
  145. package/bundle/typescript/src/commands/proxy.js +13 -13
  146. package/bundle/typescript/src/commands/remote/reconfig.sub.cmd.js +6 -6
  147. package/bundle/typescript/src/commands/run/docker.sub.cmd.js +11 -11
  148. package/bundle/typescript/src/commands/run/run.command.js +24 -24
  149. package/bundle/typescript/src/commands/set/global.sub.cmd.js +8 -8
  150. package/bundle/typescript/src/commands/set/local.sub.cmd.js +2 -2
  151. package/bundle/typescript/src/commands/set/set.command.js +3 -3
  152. package/bundle/typescript/src/commands/testCmd/test.command.js +2 -2
  153. package/bundle/typescript/src/exec.js +0 -0
  154. package/bundle/typescript/src/generators/api.js +11 -11
  155. package/bundle/typescript/src/generators/collection.js +6 -6
  156. package/bundle/typescript/src/generators/hook.js +10 -10
  157. package/bundle/typescript/src/generators/kits/auth/auth.generator.js +2 -2
  158. package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +612 -612
  159. package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +48 -48
  160. package/bundle/typescript/src/generators/kits/auth/provider.auth.gen.js +12 -12
  161. package/bundle/typescript/src/generators/kits/esri/esri.generator.js +3 -3
  162. package/bundle/typescript/src/generators/kits/esri/map.esri.gen.js +7 -7
  163. package/bundle/typescript/src/generators/kits/frames/frames.generator.js +16 -16
  164. package/bundle/typescript/src/generators/kits/mui/auth.mui.gen.js +2 -2
  165. package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +5 -5
  166. package/bundle/typescript/src/generators/kits/mui/frame.mui.gen.js +4 -4
  167. package/bundle/typescript/src/generators/kits/mui/mui.generator.js +22 -22
  168. package/bundle/typescript/src/generators/services/translation.js +5 -5
  169. package/bundle/typescript/src/templates/aws/cloudformation/create-ec2-instance.template +14 -14
  170. package/bundle/typescript/src/templates/meteor/api/api.js +20 -20
  171. package/bundle/typescript/src/templates/meteor/api/api.js.ts +20 -20
  172. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js +50 -50
  173. package/bundle/typescript/src/templates/meteor/api/apollo-gateway.js.ts +55 -55
  174. package/bundle/typescript/src/templates/meteor/api/graphql-api.js +63 -63
  175. package/bundle/typescript/src/templates/meteor/api/graphql-api.js.ts +69 -69
  176. package/bundle/typescript/src/templates/meteor/api/methods.js +39 -39
  177. package/bundle/typescript/src/templates/meteor/api/methods.js.ts +40 -40
  178. package/bundle/typescript/src/templates/meteor/api/register-api.js +3 -3
  179. package/bundle/typescript/src/templates/meteor/api/register-api.js.ts +3 -3
  180. package/bundle/typescript/src/templates/meteor/api/resolvers.js +9 -9
  181. package/bundle/typescript/src/templates/meteor/api/resolvers.js.ts +9 -9
  182. package/bundle/typescript/src/templates/meteor/api/typeDefs.js +6 -6
  183. package/bundle/typescript/src/templates/meteor/api/typeDefs.js.ts +6 -6
  184. package/bundle/typescript/src/templates/meteor/app/client/body.html +3 -3
  185. package/bundle/typescript/src/templates/meteor/app/client/head.html +12 -12
  186. package/bundle/typescript/src/templates/meteor/app/client/main.js +15 -15
  187. package/bundle/typescript/src/templates/meteor/app/client/main.js.jsx +15 -15
  188. package/bundle/typescript/src/templates/meteor/app/client/main.js.ts +17 -17
  189. package/bundle/typescript/src/templates/meteor/app/client/main.js.tsx +17 -17
  190. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js +20 -20
  191. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.jsx +107 -107
  192. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.ts +20 -20
  193. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/index.js.tsx +108 -108
  194. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js +39 -39
  195. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.jsx +33 -33
  196. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.ts +24 -24
  197. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/routes.js.tsx +33 -33
  198. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js +9 -9
  199. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -9
  200. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.ts +9 -9
  201. package/bundle/typescript/src/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -9
  202. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js +1 -1
  203. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.jsx +20 -20
  204. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.ts +1 -1
  205. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/index.js.tsx +20 -20
  206. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.jsx +28 -28
  207. package/bundle/typescript/src/templates/meteor/app/imports/startup/lib/routes.js.tsx +28 -28
  208. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js +1 -1
  209. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.jsx +95 -95
  210. package/bundle/typescript/src/templates/meteor/app/imports/startup/server/index.js.tsx +98 -98
  211. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js +24 -24
  212. package/bundle/typescript/src/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -24
  213. package/bundle/typescript/src/templates/meteor/app/lib/main.js +3 -3
  214. package/bundle/typescript/src/templates/meteor/app/lib/main.js.jsx +3 -3
  215. package/bundle/typescript/src/templates/meteor/app/lib/main.js.ts +3 -3
  216. package/bundle/typescript/src/templates/meteor/app/lib/main.js.tsx +3 -3
  217. package/bundle/typescript/src/templates/meteor/app/maka.d.ts +533 -533
  218. package/bundle/typescript/src/templates/meteor/app/meteor.d.ts +181 -181
  219. package/bundle/typescript/src/templates/meteor/app/public/manifest.json +27 -27
  220. package/bundle/typescript/src/templates/meteor/app/public/sw.js +30 -30
  221. package/bundle/typescript/src/templates/meteor/app/public/sw.js.jsx +30 -30
  222. package/bundle/typescript/src/templates/meteor/app/public/sw.js.ts +30 -30
  223. package/bundle/typescript/src/templates/meteor/app/public/sw.js.tsx +30 -30
  224. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js +179 -179
  225. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.jsx +179 -179
  226. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.ts +179 -179
  227. package/bundle/typescript/src/templates/meteor/app/server/helmet-csp.js.tsx +179 -179
  228. package/bundle/typescript/src/templates/meteor/app/server/main.js +13 -13
  229. package/bundle/typescript/src/templates/meteor/app/server/main.js.jsx +13 -13
  230. package/bundle/typescript/src/templates/meteor/app/server/main.js.ts +14 -14
  231. package/bundle/typescript/src/templates/meteor/app/server/main.js.tsx +14 -14
  232. package/bundle/typescript/src/templates/meteor/app/tsconfig.json +42 -42
  233. package/bundle/typescript/src/templates/meteor/collection/collection.js +51 -51
  234. package/bundle/typescript/src/templates/meteor/collection/collection.js.ts +55 -55
  235. package/bundle/typescript/src/templates/meteor/collection/tests.js +27 -27
  236. package/bundle/typescript/src/templates/meteor/collection/tests.js.ts +27 -27
  237. package/bundle/typescript/src/templates/meteor/config/deploy.sh.template +101 -101
  238. package/bundle/typescript/src/templates/meteor/config/docker-compose.yaml +17 -17
  239. package/bundle/typescript/src/templates/meteor/config/nginx.conf.template +31 -31
  240. package/bundle/typescript/src/templates/meteor/config/pm2.config.js +27 -27
  241. package/bundle/typescript/src/templates/meteor/config/process.env +5 -5
  242. package/bundle/typescript/src/templates/meteor/config/settings.json +11 -11
  243. package/bundle/typescript/src/templates/meteor/config/ssh.json +6 -6
  244. package/bundle/typescript/src/templates/meteor/dbc/config.js +70 -70
  245. package/bundle/typescript/src/templates/meteor/dbc/config.js.ts +70 -70
  246. package/bundle/typescript/src/templates/meteor/dbc/conn.js +37 -37
  247. package/bundle/typescript/src/templates/meteor/dbc/conn.js.ts +37 -37
  248. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js +3 -3
  249. package/bundle/typescript/src/templates/meteor/dbc/register-dbc.js.ts +3 -3
  250. package/bundle/typescript/src/templates/meteor/github/workflows/deploy.yaml +150 -150
  251. package/bundle/typescript/src/templates/meteor/method/method.js +48 -48
  252. package/bundle/typescript/src/templates/meteor/method/method.js.ts +48 -48
  253. package/bundle/typescript/src/templates/meteor/package/package.js +37 -37
  254. package/bundle/typescript/src/templates/meteor/package/package.js.jsx +37 -37
  255. package/bundle/typescript/src/templates/meteor/package/package.js.ts +36 -36
  256. package/bundle/typescript/src/templates/meteor/package/package.js.tsx +37 -37
  257. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js +5 -5
  258. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.jsx +5 -5
  259. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.ts +5 -5
  260. package/bundle/typescript/src/templates/meteor/package/tests/client/package.js.tsx +5 -5
  261. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js +5 -5
  262. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.jsx +5 -5
  263. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.ts +5 -5
  264. package/bundle/typescript/src/templates/meteor/package/tests/server/package.js.tsx +5 -5
  265. package/bundle/typescript/src/templates/meteor/project/.maka/config.json +29 -29
  266. package/bundle/typescript/src/templates/meteor/project/README.md +33 -33
  267. package/bundle/typescript/src/templates/meteor/project/build/README +4 -4
  268. package/bundle/typescript/src/templates/meteor/project/gitignore +10 -10
  269. package/bundle/typescript/src/templates/meteor/project/package.json +29 -29
  270. package/bundle/typescript/src/templates/meteor/publish/publish.js +7 -7
  271. package/bundle/typescript/src/templates/meteor/publish/publish.js.ts +7 -7
  272. package/bundle/typescript/src/templates/meteor/service/logger/logger.js +27 -27
  273. package/bundle/typescript/src/templates/meteor/service/logger/logger.js.ts +27 -27
  274. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css +5 -5
  275. package/bundle/typescript/src/templates/meteor/stylesheet/stylesheet.css.less +5 -5
  276. package/bundle/typescript/src/templates/meteor/template/template-tests.js +1 -1
  277. package/bundle/typescript/src/templates/meteor/template/template-tests.js.jsx +55 -55
  278. package/bundle/typescript/src/templates/meteor/template/template-tests.js.ts +1 -1
  279. package/bundle/typescript/src/templates/meteor/template/template-tests.js.tsx +55 -55
  280. package/bundle/typescript/src/templates/meteor/template/template.css +3 -3
  281. package/bundle/typescript/src/templates/meteor/template/template.css.less +3 -3
  282. package/bundle/typescript/src/templates/meteor/template/template.css.scss +3 -3
  283. package/bundle/typescript/src/templates/meteor/template/template.html +5 -5
  284. package/bundle/typescript/src/templates/meteor/template/template.js +20 -20
  285. package/bundle/typescript/src/templates/meteor/template/template.js.jsx +77 -77
  286. package/bundle/typescript/src/templates/meteor/template/template.js.ts +1 -1
  287. package/bundle/typescript/src/templates/meteor/template/template.js.tsx +89 -89
  288. package/bundle/typescript/src/templates/react/component/component.css +6 -6
  289. package/bundle/typescript/src/templates/react/component/component.css.less +6 -6
  290. package/bundle/typescript/src/templates/react/component/component.css.scss +3 -3
  291. package/bundle/typescript/src/templates/react/component/component.js.jsx +59 -59
  292. package/bundle/typescript/src/templates/react/component/component.js.tsx +65 -65
  293. package/bundle/typescript/src/templates/react/hook/hook.css +3 -3
  294. package/bundle/typescript/src/templates/react/hook/hook.css.scss +3 -3
  295. package/bundle/typescript/src/templates/react/hook/hook.js.jsx +19 -19
  296. package/bundle/typescript/src/templates/react/hook/hook.js.tsx +19 -19
  297. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.jsx +306 -306
  298. package/bundle/typescript/src/templates/react/kit/auth/provider/authentication-provider.js.tsx +350 -350
  299. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +178 -178
  300. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +178 -178
  301. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -59
  302. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -67
  303. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +273 -273
  304. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +275 -275
  305. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +182 -182
  306. package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +199 -199
  307. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.jsx +138 -138
  308. package/bundle/typescript/src/templates/react/kit/auth/service/meteor-auth-service.js.tsx +153 -153
  309. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.jsx +29 -29
  310. package/bundle/typescript/src/templates/react/kit/esri/map/basic-map.js.tsx +32 -32
  311. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.css +63 -63
  312. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.jsx +153 -153
  313. package/bundle/typescript/src/templates/react/kit/frames/frames-demo.tsx +164 -164
  314. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.css +105 -105
  315. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.jsx +158 -158
  316. package/bundle/typescript/src/templates/react/kit/frames/workspace-manager.tsx +166 -166
  317. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.jsx +34 -34
  318. package/bundle/typescript/src/templates/react/kit/mui/auth/forgot-password/basic-forgot-password-page.js.tsx +33 -33
  319. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.jsx +53 -53
  320. package/bundle/typescript/src/templates/react/kit/mui/auth/login/basic-login-page.js.tsx +53 -53
  321. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.jsx +25 -25
  322. package/bundle/typescript/src/templates/react/kit/mui/auth/logout/basic-logout-page.js.tsx +25 -25
  323. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.jsx +41 -41
  324. package/bundle/typescript/src/templates/react/kit/mui/auth/password-reset/basic-password-reset-page.js.tsx +34 -34
  325. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.jsx +33 -33
  326. package/bundle/typescript/src/templates/react/kit/mui/auth/register/basic-register-page.js.tsx +33 -33
  327. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -71
  328. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -71
  329. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -123
  330. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -123
  331. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -56
  332. package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -74
  333. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.jsx +43 -43
  334. package/bundle/typescript/src/templates/react/kit/mui/frame/app-bars/basic-app-bar.js.tsx +43 -43
  335. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.jsx +121 -121
  336. package/bundle/typescript/src/templates/react/kit/mui/frame/drawers/basic-drawer.js.tsx +117 -117
  337. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.jsx +41 -41
  338. package/bundle/typescript/src/templates/react/kit/mui/frame/footers/basic-sticky-footer.js.tsx +41 -41
  339. package/bundle/typescript/src/templates/react/route/route.js +8 -8
  340. package/bundle/typescript/src/templates/react/route/route.js.jsx +5 -5
  341. package/bundle/typescript/src/templates/react/route/route.js.ts +8 -8
  342. package/bundle/typescript/src/templates/react/route/route.js.tsx +5 -5
  343. package/bundle/typescript/src/templates/react/test/test.js +1 -1
  344. package/bundle/typescript/src/templates/react/test/test.js.jsx +40 -40
  345. package/bundle/typescript/src/templates/react/test/test.js.ts +1 -1
  346. package/bundle/typescript/src/templates/react/test/test.js.tsx +40 -40
  347. package/bundle/typescript/src/templates/service/docker/Dockerfile +54 -54
  348. package/bundle/typescript/src/templates/service/eslint/babel.config.js +16 -16
  349. package/bundle/typescript/src/templates/service/eslint/config.eslint.js +69 -69
  350. package/bundle/typescript/src/templates/service/i18n/i18n.js +33 -33
  351. package/bundle/typescript/src/templates/service/i18n/i18n.js.ts +33 -33
  352. package/bundle/typescript/src/templates/service/i18n/locales.js +3 -3
  353. package/bundle/typescript/src/templates/service/i18n/locales.js.ts +3 -3
  354. package/bundle/typescript/src/templates/service/openssl/openssl.conf +22 -22
  355. package/bundle/typescript/src/templates/service/test/jest/jest.config.js +24 -24
  356. package/bundle/typescript/src/templates/service/test/jest/jest.setup.js +7 -7
  357. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.d.ts +59 -0
  358. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js +120 -0
  359. package/bundle/typescript/src/tools/guarded-file/guarded-file.class.js.map +1 -0
  360. package/bundle/typescript/src/tools/mpi/mpi.class.d.ts +16 -0
  361. package/bundle/typescript/src/tools/mpi/mpi.class.js +25 -7
  362. package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
  363. package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
  364. package/bundle/typescript/src/tools/mpi/sdk-runtime.js +29 -0
  365. package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
  366. package/package.json +120 -120
@@ -20,7 +20,13 @@
20
20
  * gear -- these strings are what the player reads, and what an NPC's
21
21
  * swag briefing quotes.
22
22
  */
23
- export const CATALOG_VERSION = 13;
23
+ import { AUGMENTATIONS } from '../augmentations.js';
24
+ import { QUALITIES } from '../qualities.js';
25
+ import { ADEPT_POWER_CATALOG } from '../adept-powers.js';
26
+ import { SPELL_CATALOG } from '../spells.js';
27
+ import { METATYPES } from '../metatypes.js';
28
+ import { METAMAGICS } from '../commands/initiate.js';
29
+ export const CATALOG_VERSION = 14;
24
30
  /** Gear or not -- the discriminator every consumer of the gear list uses. */
25
31
  export function isGearRow(r) {
26
32
  return r.kind === undefined || r.kind === 'gear';
@@ -279,11 +285,12 @@ export const CATALOG_ITEMS = [
279
285
  row('spirit-focus-1', 'Spirit Focus (Force 1)', 'Focus', 4000, 3, 'Where a summoner keeps the leash.', { page: 'p.461', shape: 'talisman', size: 'Tiny', weight: 0.1, rating: 'Standard', legality: 'R', stats: 'Force 1: force x 4,000 nuyen, avail (force x 3)R', ratingValue: 1, effects: [{ type: 'dice', category: 'skills', property: 'summoning', value: 1, when: 'carried', scaleBy: 'rating' }] }),
280
286
  row('weapon-focus-1', 'Weapon Focus (Force 1)', 'Focus', 7000, 4, 'A blade that cuts things that have never had a body.', { page: 'p.461', shape: 'blade', size: 'Medium', weight: 1.2, rating: 'Rare', legality: 'R', stats: 'Force 1: force x 7,000 nuyen, avail (force x 4)R', ratingValue: 1 }),
281
287
  row('power-focus-1', 'Power Focus (Force 1)', 'Focus', 18000, 4, 'A bound anchor for living mana. The real investment.', { page: 'p.461', shape: 'amulet', size: 'Tiny', weight: 0.2, rating: 'Rare', legality: 'R', stats: 'Force 1: force x 18,000 nuyen, avail (force x 4)R', ratingValue: 1, effects: [{ type: 'dice', category: 'skills', property: 'spellcasting', value: 1, when: 'carried', scaleBy: 'rating' }] }),
282
- row('detection-spell-formula', 'Detection Spell Formula', 'SpellFormula', 500, 4, 'The notation for seeing what is not on offer. Bring talent.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, legality: 'R' }),
283
- row('health-spell-formula', 'Health Spell Formula', 'SpellFormula', 500, 4, 'Mending, written down. Cheaper than a street doc, harder to learn.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, legality: 'R' }),
284
- row('illusion-spell-formula', 'Illusion Spell Formula', 'SpellFormula', 1000, 8, 'How to lie to eyes, ears, and sensors at the same time.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, rating: 'Standard', legality: 'R' }),
285
- row('manipulation-spell-formula', 'Manipulation Spell Formula', 'SpellFormula', 1500, 8, 'Moving the world with the mind, notated in someone else\'s hand.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, rating: 'Standard', legality: 'R' }),
286
- row('combat-spell-formula', 'Combat Spell Formula', 'SpellFormula', 2000, 8, 'A combat spell, notated for study. Bring talent.', { page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, rating: 'Standard', legality: 'R' }),
288
+ // SPELL FORMULAE ARE GENERATED, one per spell, by formulaRows() below
289
+ // -- a formula is written for ONE spell and priced by that spell's
290
+ // category (p.461). The five category-named rows that used to sit
291
+ // here could never teach anything: knowsSpell looks for the spell
292
+ // name inside the item name, and "Combat Spell Formula" contains no
293
+ // spell's name.
287
294
  // ---- Drones (p.466) ----
288
295
  // ANTHROPOMORPHIC DRONES (Rigger 5.0 p.145-148) -- the FIRST rows in
289
296
  // this catalog cited to a book other than the core rulebook, so the
@@ -393,8 +400,268 @@ export const CATALOG_ITEMS = [
393
400
  row('credstick-platinum', 'Certified Credstick (Platinum)', 'Credstick', 500, 10, 'Half a million, certified. People have died for the empty ones.', { page: 'p.443', shape: 'stick', size: 'Tiny', weight: 0.1, color: 'platinum', rating: 'Standard', stats: 'Max 500,000 nuyen' }),
394
401
  row('credstick-ebony', 'Certified Credstick (Ebony)', 'Credstick', 1000, 20, 'A million nuyen and a very short list of people who own one.', { page: 'p.443', shape: 'stick', size: 'Tiny', weight: 0.1, color: 'ebony', rating: 'Rare', stats: 'Max 1,000,000 nuyen' }),
395
402
  ];
396
- /** THE WHOLE SEED, every kind. Gear today; qualities, spells, augmentations
397
- * and metatypes join it in v14. The loader (utilities/catalog.ts) weighs
398
- * THIS against the server and the cache. */
399
- export const CATALOG_ROWS = CATALOG_ITEMS;
403
+ /**
404
+ * THE NON-GEAR ROWS (catalog v14, user 2026-09-04: "I don't see any
405
+ * spells, or qualities there. The catalog should cover ALL things that
406
+ * can be obtained in the game, backed by canon").
407
+ *
408
+ * DERIVED, NEVER RETYPED. qualities.ts and augmentations.ts are the
409
+ * engine's own sources of truth -- the clinic charges from them, the
410
+ * creation ledger prices from them, the sheet prints from them -- so the
411
+ * catalog reads THOSE rather than carrying a second copy. A hand-copied
412
+ * list of something that already exists cannot stay right: that is
413
+ * exactly how the Conjurer shipped broken this morning, when a duplicate
414
+ * of MAGICAL_GROUP_SKILLS went stale the day the original moved.
415
+ *
416
+ * Every field here already existed on the source rows. Nothing is
417
+ * invented to fill the shape: `requiresMetatype` stays absent because
418
+ * this engine models no metatype and a gate it cannot check is a rule it
419
+ * cannot keep (qualities.ts says so in its own words), and `legality` /
420
+ * `canonEssence` stay absent on augmentations for the same reason --
421
+ * the source does not carry them.
422
+ */
423
+ /**
424
+ * The restrictions a row declares, assembled from whichever per-kind
425
+ * fields its source happens to use. One shape out, so the server can
426
+ * enforce every kind in one pass; the sources keep the field names that
427
+ * read well where they live.
428
+ *
429
+ * Returns undefined rather than an empty object when a row restricts
430
+ * nothing, so "has restrictions" stays a truthiness check and 400 rows
431
+ * do not each grow an empty object.
432
+ */
433
+ function restrictionsOf(src) {
434
+ const excludes = [
435
+ ...(src.excludes ?? []),
436
+ ...(src.excludesQuality !== undefined ? [src.excludesQuality] : []),
437
+ ];
438
+ const out = {
439
+ ...(excludes.length > 0 ? { excludes } : {}),
440
+ ...(src.requiresQuality !== undefined ? { needs: [src.requiresQuality] } : {}),
441
+ ...(src.requires !== undefined ? { path: src.requires } : {}),
442
+ };
443
+ return Object.keys(out).length > 0 ? out : undefined;
444
+ }
445
+ function qualityRows() {
446
+ return QUALITIES.map(q => ({
447
+ kind: 'quality',
448
+ slug: q.key,
449
+ name: q.name,
450
+ description: q.effect,
451
+ page: q.page,
452
+ // The mechanics, in the same vocabulary a weapon states its DV in,
453
+ // so a reader of the catalog gets a quality's NUMBERS and not just
454
+ // its sentence. Absent where SR5's effect is not a flat modifier
455
+ // (or where the engine implements it as its own rule) -- see the
456
+ // `effects` comment in qualities.ts, which says why that is the
457
+ // honest answer rather than a gap to be filled in.
458
+ ...(q.effects !== undefined ? { effects: q.effects } : {}),
459
+ // On the ROW, not in the quality block -- ICatalogBase carries both,
460
+ // so chrome and spells declare them in the same place.
461
+ ...(q.choice !== undefined ? { choice: q.choice } : {}),
462
+ ...(restrictionsOf(q) !== undefined ? { restrictions: restrictionsOf(q) } : {}),
463
+ quality: {
464
+ polarity: q.kind,
465
+ karma: q.karma,
466
+ ...(q.maxRating !== undefined ? { maxRating: q.maxRating } : {}),
467
+ ...(q.retired !== undefined ? { retired: q.retired } : {}),
468
+ ...(q.requires !== undefined ? { requires: q.requires } : {}),
469
+ ...(q.requiresQuality !== undefined ? { requiresQuality: q.requiresQuality } : {}),
470
+ // WHAT KIND OF RULE this is, and whether the engine runs it yet.
471
+ // `family` is always present (qualities.ts requires it); `inert`
472
+ // is present only when the quality currently delivers nothing,
473
+ // and names the missing seat -- so a reader of the catalog can
474
+ // tell a finished rule from one that is still only priced.
475
+ family: q.family,
476
+ ...(q.inert !== undefined ? { inert: q.inert } : {}),
477
+ // The pick chargen has to collect before the quality can work,
478
+ // and the quality it may not be held alongside (p.65-66).
479
+ ...(q.excludesQuality !== undefined ? { excludesQuality: q.excludesQuality } : {}),
480
+ },
481
+ }));
482
+ }
483
+ function augmentationRows() {
484
+ return AUGMENTATIONS.map(a => ({
485
+ kind: 'augmentation',
486
+ slug: a.key,
487
+ name: a.name,
488
+ description: a.effect,
489
+ page: a.page,
490
+ // The dice, in the same vocabulary a weapon states its DV in. Chrome
491
+ // declared a `bonuses` map of its own until 2026-09-04, which is why
492
+ // this column read empty in the catalog while every piece of 'ware in
493
+ // the game was moving real dice.
494
+ ...(a.effects !== undefined ? { effects: a.effects } : {}),
495
+ // 62 of the 69 restrictions in the catalog are these: the exclusions
496
+ // that stop Wired Reflexes I riding alongside a synaptic booster, or
497
+ // three vision enhancements stacking. Declared for a long time,
498
+ // enforced by nothing.
499
+ ...(restrictionsOf(a) !== undefined ? { restrictions: restrictionsOf(a) } : {}),
500
+ augmentation: {
501
+ ware: a.kind,
502
+ essence: a.essence,
503
+ cost: a.cost,
504
+ wakeLine: a.wakeLine,
505
+ ...(a.excludes !== undefined ? { excludes: a.excludes } : {}),
506
+ ...(a.avail !== undefined ? { avail: a.avail } : {}),
507
+ ...(a.canonCost !== undefined ? { canonCost: a.canonCost } : {}),
508
+ },
509
+ }));
510
+ }
511
+ /** THE WHOLE SEED, every kind: gear, qualities and augmentations. Spells
512
+ * and metatypes are still outstanding -- see the note above qualityRows.
513
+ * The loader (utilities/catalog.ts) weighs THIS against the server and
514
+ * the cache. */
515
+ /**
516
+ * THE SPELLS (SR5 p.283-295). Held out of the catalog until now because
517
+ * ICatalogSpell wants Type, Range and Duration and the engine stored none
518
+ * of them -- recorded at the time as a deliberate omission rather than an
519
+ * oversight. spells.ts carries all three since 2026-09-04, each read off
520
+ * the printed stat block, so the shape is satisfied by canon rather than
521
+ * by inference and the rows can ship.
522
+ *
523
+ * A spell has no PRICE: it is learned, not bought, which is why the row
524
+ * carries no availability or nuyen and the spell block carries the drain
525
+ * instead. What a formula costs on the street is a GEAR row, and there
526
+ * are five of those already (Category 'SpellFormula').
527
+ */
528
+ /**
529
+ * A spell's line, composed from its own stat block.
530
+ *
531
+ * spells.ts carries no prose -- it never needed any, because cast.ts
532
+ * names the spell and rolls it -- and inventing twenty-one descriptions
533
+ * to fill a `description` field would be putting words in the book's
534
+ * mouth. So the line is DERIVED: the printed Type, Range, Duration and
535
+ * Drain, in a sentence, plus what resists it. Every word of it is data
536
+ * the row already carries.
537
+ */
538
+ function spellLine(sp) {
539
+ const range = sp.range === 'touch' ? 'Touch' : sp.range === 'LOS(A)' ? 'line of sight, area' : 'line of sight';
540
+ const duration = sp.duration === 'I' ? 'instantaneous' : sp.duration === 'S' ? 'sustained' : 'permanent';
541
+ const drain = `Drain F${sp.drainOffset === 0 ? '' : sp.drainOffset > 0 ? ` + ${sp.drainOffset}` : ` - ${-sp.drainOffset}`}`;
542
+ const resist = sp.soak === 'willpower' ? '; resisted with Willpower'
543
+ : sp.soak === 'body' ? '; resisted with Body'
544
+ : sp.soak === 'armor' ? '; soaked in full, less AP' : '';
545
+ return `${sp.category} spell, ${sp.type}, ${range}, ${duration}. ${drain}${resist}.`;
546
+ }
547
+ /**
548
+ * WHAT A FORMULA COSTS, by the category of the spell it teaches (p.461,
549
+ * priced from the Magical Goods table). The formula is for ONE spell;
550
+ * the CATEGORY is only what sets the price, which is why these rows are
551
+ * generated per spell rather than per category.
552
+ */
553
+ const FORMULA_PRICE = {
554
+ Detection: { price: 500, avail: 4 },
555
+ Health: { price: 500, avail: 4 },
556
+ Illusion: { price: 1000, avail: 8 },
557
+ Manipulation: { price: 1500, avail: 8 },
558
+ Combat: { price: 2000, avail: 8 },
559
+ };
560
+ /**
561
+ * ONE FORMULA PER SPELL, derived from SPELL_CATALOG.
562
+ *
563
+ * These are GEAR rows -- a scroll you buy from a talismonger and carry --
564
+ * and they are the first gear the engine reads for something other than
565
+ * a dice modifier: `teaches` names the spell, and Player.knowsSpell reads
566
+ * it. Generated rather than authored so a spell added tomorrow is
567
+ * purchasable the same day, with no second edit to forget.
568
+ *
569
+ * The Detection price sits in the table above and produces no rows,
570
+ * because this engine has no Detection spell yet. That is deliberate: a
571
+ * "Detection Spell Formula" WAS on sale here for 500 nuyen, for a
572
+ * category with nothing in it.
573
+ */
574
+ function formulaRows() {
575
+ return SPELL_CATALOG.map(sp => {
576
+ const { price, avail } = FORMULA_PRICE[sp.category];
577
+ return row(`spell-formula-${sp.key}`, `Spell Formula (${sp.name})`, 'SpellFormula', price, avail, `${sp.name}, notated for study in somebody else's hand. Bring talent.`, {
578
+ page: 'p.461', shape: 'scroll', size: 'Tiny', weight: 0.1, legality: 'R',
579
+ teaches: sp.key,
580
+ stats: `${sp.category} formula: ${price} nuyen, avail ${avail}R`,
581
+ });
582
+ });
583
+ }
584
+ function spellRows() {
585
+ return SPELL_CATALOG.map(sp => ({
586
+ kind: 'spell',
587
+ slug: sp.key,
588
+ name: sp.name,
589
+ description: spellLine(sp),
590
+ page: sp.page,
591
+ // What it does to whoever it is held on, in the shared vocabulary.
592
+ // Absent on every Instantaneous spell -- a combat spell resolves at
593
+ // cast time -- and on the two barriers, whose effect is a wall in a
594
+ // room rather than a modifier on anybody.
595
+ ...(sp.effects !== undefined ? { effects: sp.effects } : {}),
596
+ spell: {
597
+ cast: sp.cast,
598
+ category: sp.category,
599
+ type: sp.type,
600
+ range: sp.range,
601
+ duration: sp.duration,
602
+ drainOffset: sp.drainOffset,
603
+ ...(sp.soak !== undefined ? { soak: sp.soak } : {}),
604
+ ...(sp.stun !== undefined ? { stun: sp.stun } : {}),
605
+ ...(sp.area !== undefined ? { area: sp.area } : {}),
606
+ ...(sp.touch !== undefined ? { touch: sp.touch } : {}),
607
+ },
608
+ }));
609
+ }
610
+ function adeptPowerRows() {
611
+ return ADEPT_POWER_CATALOG.map(a => ({
612
+ kind: 'adept-power',
613
+ slug: a.key,
614
+ name: a.name,
615
+ description: a.effect,
616
+ page: a.page,
617
+ ...(a.effects !== undefined ? { effects: a.effects } : {}),
618
+ adeptPower: {
619
+ levelCosts: a.levelCosts,
620
+ magicCapped: a.magicCapped,
621
+ ...(a.costPerLevel !== undefined ? { costPerLevel: a.costPerLevel } : {}),
622
+ },
623
+ }));
624
+ }
625
+ function metamagicRows() {
626
+ return METAMAGICS.map(m => ({
627
+ kind: 'metamagic',
628
+ slug: m.key,
629
+ name: m.name,
630
+ description: m.effect,
631
+ page: m.page,
632
+ ...(m.effects !== undefined ? { effects: m.effects } : {}),
633
+ metamagic: { path: m.path },
634
+ }));
635
+ }
636
+ /**
637
+ * THE METATYPES (p.66). Rows only: this engine models no metatype on a
638
+ * character and this pass does not change that -- what it does is put the
639
+ * table where it can be read, cited and priced, so the shape stops being
640
+ * an empty promise in the schema.
641
+ */
642
+ function metatypeRows() {
643
+ return METATYPES.map(m => ({
644
+ kind: 'metatype',
645
+ slug: m.key,
646
+ name: m.name,
647
+ description: m.description,
648
+ page: m.page,
649
+ ...(m.effects !== undefined ? { effects: m.effects } : {}),
650
+ metatype: {
651
+ attributes: m.attributes,
652
+ sprintMetersPerHit: m.sprintMetersPerHit,
653
+ ...(m.lifestyleCostMult !== undefined ? { lifestyleCostMult: m.lifestyleCostMult } : {}),
654
+ },
655
+ }));
656
+ }
657
+ export const CATALOG_ROWS = [
658
+ ...CATALOG_ITEMS,
659
+ ...formulaRows(),
660
+ ...qualityRows(),
661
+ ...augmentationRows(),
662
+ ...adeptPowerRows(),
663
+ ...metamagicRows(),
664
+ ...spellRows(),
665
+ ...metatypeRows(),
666
+ ];
400
667
  //# sourceMappingURL=catalog-data.js.map