@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
@@ -10,11 +10,18 @@ import { CATALOG_VERSION, CATALOG_ROWS, isGearRow } from './catalog-data.js';
10
10
  /**
11
11
  * The catalog's delivery chain (player direction: the catalog LIVES on
12
12
  * maka-cli.com): the site's GameCatalog collection is the source of
13
- * truth, fetched publicly (no auth -- it's world data) and cached at
13
+ * truth, fetched with the account's token and cached at
14
14
  * ~/.meteor/.maka/side-quest-catalog.json; offline or unreachable, the
15
15
  * cache serves; no cache, the baked-in seed (catalog-data.ts) is the
16
16
  * floor. The same local-first shape as saves: the street never stops
17
17
  * selling because the grid hiccuped.
18
+ *
19
+ * IT USED TO BE PUBLIC -- "no auth, it's world data, and there is
20
+ * nothing secret about a price list". mjmcee's ruling (2026-09-04) is
21
+ * that both routes require auth, which puts the catalog with the rest
22
+ * of the account-holder content rather than with the marketing pages.
23
+ * The floor is what makes that safe to do: signing out costs a player
24
+ * retunes, never a playable game.
18
25
  */
19
26
  /**
20
27
  * DOMAIN AFFINITY (player ruling: don't overload the Johnson -- the
@@ -37,7 +44,28 @@ const DEV = process.env.MAKA_DEV === 'True';
37
44
  const HOSTNAME = DEV ? 'localhost' : 'www.maka-cli.com';
38
45
  const PORT = DEV ? Number(process.env.MAKA_DEV_PORT ?? 3000) : 443;
39
46
  const TIMEOUT_MS = 8000;
40
- const CACHE_PATH = path.join(os.homedir(), '.meteor', '.maka', 'side-quest-catalog.json');
47
+ /**
48
+ * THE CACHE FILE, and an escape hatch that exists because I poisoned it.
49
+ *
50
+ * Proving the version check meant pointing MAKA_DEV_PORT at a stub HTTP
51
+ * server and letting the real refreshCatalog run against it -- and the
52
+ * "stale" cases did exactly what they are built to do: wrote the stub's
53
+ * 498 invented rows into the player's actual cache. The next reading of
54
+ * that file reported "v14, 498 rows" and looked perfectly healthy,
55
+ * because a poisoned cache is the right SHAPE. Same trap as the
56
+ * manabolt -9 left behind yesterday: a bench run that reaches the real
57
+ * file leaves a lie behind that survives the run.
58
+ *
59
+ * MAKA_CATALOG_CACHE redirects it, so a bench can exercise the genuine
60
+ * writer -- which is the whole point of a bench -- without touching what
61
+ * the player plays from.
62
+ */
63
+ const CACHE_PATH = process.env.MAKA_CATALOG_CACHE
64
+ ?? path.join(os.homedir(), '.meteor', '.maka', 'side-quest-catalog.json');
65
+ const LIST_PATH = '/api/v1/game-catalog/list';
66
+ /** The cheap half of the same collection: what the server HOLDS, without
67
+ * sending it. ~40 bytes against ~900KB for the list. */
68
+ const STAMP_PATH = '/api/v1/game-catalog/version';
41
69
  let liveSource;
42
70
  let resolved;
43
71
  let fetchAttempted = false;
@@ -74,10 +102,25 @@ function readCache() {
74
102
  catch { /* no cache */ }
75
103
  return undefined;
76
104
  }
77
- function writeCache(version, items) {
105
+ /**
106
+ * The hash is stored as an OPAQUE TOKEN -- whatever the server said
107
+ * about the rows it handed over -- and is never computed here.
108
+ *
109
+ * That is deliberate and it is the whole safety of the thing. Computing
110
+ * it locally would mean a second implementation of maka-cli.com's
111
+ * canonical serialisation (keys sorted at every depth, array order
112
+ * preserved), and any drift between the two -- one key ordered
113
+ * differently, one number formatted differently -- makes every cache
114
+ * look permanently wrong and re-downloads the catalog on every boot,
115
+ * forever, with no error anywhere. Two accessors reading one object by
116
+ * different rules is a failure this repo has already paid for twice.
117
+ */
118
+ function writeCache(version, items, contentHash) {
78
119
  try {
79
120
  fs.mkdirSync(path.dirname(CACHE_PATH), { recursive: true });
80
- fs.writeFileSync(CACHE_PATH, JSON.stringify({ version, fetchedAt: new Date().toISOString(), items }), 'utf8');
121
+ fs.writeFileSync(CACHE_PATH, JSON.stringify({
122
+ version, fetchedAt: new Date().toISOString(), contentHash, items,
123
+ }), 'utf8');
81
124
  }
82
125
  catch (err) {
83
126
  Logger.getInstance().write(`catalog cache write failed: ${err}`);
@@ -102,26 +145,46 @@ export function applyLiveCatalog(items, version) {
102
145
  resolved = undefined;
103
146
  resetCatalogHullIndex();
104
147
  }
148
+ /**
149
+ * One GET, reporting the status rather than throwing on it: the stamp
150
+ * probe has to tell a 404 (an older server, no stamp route) from a 401
151
+ * (a stale token) from a dead socket, and those are three different
152
+ * decisions.
153
+ *
154
+ * THE TOKEN IS PASSED IN, never sourced here. Reading it would mean
155
+ * importing cloud-saves.ts, and that path is catalog -> cloud-saves ->
156
+ * persistence -> player -> catalog: a runtime import cycle, which in
157
+ * this repo means 'Cannot access X before initialization' and a couple
158
+ * of hundred red suites. The caller already holds the token.
159
+ */
160
+ async function siteGet(apiPath, token) {
161
+ return new Promise((resolve, reject) => {
162
+ const mod = DEV ? http : https;
163
+ const req = mod.request({
164
+ hostname: HOSTNAME, port: PORT, path: apiPath, method: 'GET', timeout: TIMEOUT_MS,
165
+ headers: token === undefined ? {} : { 'x-auth-token': token },
166
+ }, res => {
167
+ let body = '';
168
+ res.on('data', c => { body += c; });
169
+ res.on('end', () => resolve({ statusCode: res.statusCode ?? 0, body }));
170
+ });
171
+ req.on('timeout', () => req.destroy(new Error('timeout')));
172
+ req.on('error', reject);
173
+ req.end();
174
+ });
175
+ }
105
176
  /** Fire-and-forget refresh from the site -- call once at session start;
106
177
  * the promise resolves when the live list (or a fallback) is settled. */
107
- export async function refreshCatalog() {
178
+ export async function refreshCatalog(token) {
108
179
  if (fetchAttempted)
109
180
  return;
110
181
  fetchAttempted = true;
111
182
  const logger = Logger.getInstance();
112
183
  try {
113
- const data = await new Promise((resolve, reject) => {
114
- const mod = DEV ? http : https;
115
- const req = mod.request({ hostname: HOSTNAME, port: PORT, path: '/api/v1/game-catalog/list', method: 'GET', timeout: TIMEOUT_MS }, res => {
116
- let body = '';
117
- res.on('data', c => { body += c; });
118
- res.on('end', () => (res.statusCode === 200 ? resolve(body) : reject(new Error(`status ${res.statusCode}`))));
119
- });
120
- req.on('timeout', () => req.destroy(new Error('timeout')));
121
- req.on('error', reject);
122
- req.end();
123
- });
124
- const parsed = JSON.parse(data);
184
+ const res = await siteGet(LIST_PATH, token);
185
+ if (res.statusCode !== 200)
186
+ throw new Error(`status ${res.statusCode}`);
187
+ const parsed = JSON.parse(res.body);
125
188
  if (Array.isArray(parsed?.items) && parsed.items.length > 0) {
126
189
  const version = parseCatalogVersion(parsed.version);
127
190
  if (version === undefined) {
@@ -133,8 +196,15 @@ export async function refreshCatalog() {
133
196
  }
134
197
  const fetched = parsed.items;
135
198
  applyLiveCatalog(fetched, version);
199
+ // Stored only if the LIST itself reports it. Taking the hash from
200
+ // the earlier /version probe instead would be a lie waiting to
201
+ // happen: a reseed between the two calls would file the old
202
+ // fingerprint against the new rows, and the cache would then claim
203
+ // to be current content it does not hold -- freezing a rule change
204
+ // until the next version bump. A fingerprint has to travel with
205
+ // the payload it describes, the way an ETag does.
136
206
  if (version !== undefined)
137
- writeCache(version, fetched);
207
+ writeCache(version, fetched, hashOf(parsed.contentHash));
138
208
  // Say what is being SERVED, not merely what arrived. The old line
139
209
  // reported the fetch count as though it were the answer, which is
140
210
  // how a stale server looked like a healthy one in the log while
@@ -162,6 +232,194 @@ export async function refreshCatalog() {
162
232
  }
163
233
  }
164
234
  }
235
+ /** A usable fingerprint, or nothing. Same allow-list discipline as
236
+ * parseCatalogVersion: an empty string is not a hash, and letting one
237
+ * through would make two blank caches look equal to each other. */
238
+ function hashOf(raw) {
239
+ return typeof raw === 'string' && raw.trim() !== '' ? raw : undefined;
240
+ }
241
+ /**
242
+ * IS THE CACHE STALE? Pure, and separate from every socket, because
243
+ * this is the whole feature: the point of a version check is to NOT
244
+ * download, and "did it skip the download" is a question no assertion
245
+ * about the served rows can answer. (The proof of that is a day old:
246
+ * a fetch returning 498 rows at v14 looked identical to the compiled
247
+ * floor's 498 rows at v14, and proved nothing about which one won.)
248
+ *
249
+ * Stale on any of:
250
+ * - no cache at all -- first play on this machine
251
+ * - the server is ahead -- the ordinary case
252
+ * - the counts disagree -- same version, different content: a
253
+ * half-written cache, or a server that pruned rows without moving
254
+ * the number. Cheap to check and it costs nothing when the server
255
+ * does not report a count.
256
+ *
257
+ * A cache AHEAD of the server is left alone. That is a downgraded or
258
+ * half-seeded server, and overwriting good local content with it is
259
+ * exactly the poisoning `parseCatalogVersion` was written to stop.
260
+ */
261
+ export function isCacheStale(cache, server) {
262
+ if (!cache)
263
+ return { stale: true, why: 'no cache on this machine' };
264
+ if (server.version > cache.version) {
265
+ return { stale: true, why: `server v${server.version} is ahead of the cached v${cache.version}` };
266
+ }
267
+ // EVERYTHING BELOW IS AT THE SAME VERSION ONLY, and that is the one
268
+ // rule this function has. Written first as a bare count comparison,
269
+ // and the test for "a cache ahead of the server is left alone" caught
270
+ // it immediately: a v14/498 cache against a v13/438 server differs in
271
+ // count for the obvious reason, and the loose check called the newer
272
+ // list stale and downloaded the older one over it -- inverting the
273
+ // very protection the line above provides. The hash is the same shape
274
+ // of trap and worse, because a hash cannot even in principle say
275
+ // which side is newer.
276
+ if (server.version !== cache.version) {
277
+ return { stale: false, why: `cached v${cache.version} is ahead of the server's v${server.version}` };
278
+ }
279
+ // THE CONTENT FINGERPRINT: a value edited without a row added or
280
+ // removed -- the manabolt drain retune that proved this chain -- moves
281
+ // nothing the version or the count can see.
282
+ if (server.contentHash !== undefined && cache.contentHash !== undefined
283
+ && server.contentHash !== cache.contentHash) {
284
+ return { stale: true, why: `v${cache.version} both sides, but the content differs (${cache.contentHash} -> ${server.contentHash})` };
285
+ }
286
+ // KEPT, AND NOT REDUNDANT. A matching hash with a differing count
287
+ // means the cache FILE lost rows after it was written while keeping
288
+ // the token that describes what it used to hold -- the one case the
289
+ // fingerprint cannot see, because the fingerprint is stored, not
290
+ // computed from what is on disk.
291
+ if (server.count !== undefined && cache.count !== undefined
292
+ && server.count !== cache.count) {
293
+ return { stale: true, why: `v${cache.version} both sides, but the server holds ${server.count} rows and the cache ${cache.count}` };
294
+ }
295
+ // A CACHE WITH NO FINGERPRINT HEALS ITSELF, ONCE -- and the ONCE is
296
+ // the entire safety of this rule.
297
+ //
298
+ // It was deliberately absent for an hour, because /version reported a
299
+ // hash while /list did not: the fetch would have found no hash to
300
+ // store, written none, and decided identically on the next boot. A
301
+ // full download every boot, forever, shipping in total silence --
302
+ // every assertion about served rows still passes and the player just
303
+ // has a slow game. maka-cli.com now sends the hash with the list
304
+ // (bf47d21), so the refresh this triggers actually stores one and the
305
+ // next boot is quiet. That ordering was the whole reason to wait.
306
+ if (server.contentHash !== undefined && cache.contentHash === undefined) {
307
+ return { stale: true, why: `v${cache.version} both sides, but this cache predates content fingerprinting` };
308
+ }
309
+ return { stale: false, why: `cached v${cache.version} matches the server` };
310
+ }
311
+ /** The cache's own stamp, for the comparison above. */
312
+ export function cacheStamp(readCacheFn = readCache) {
313
+ const cached = readCacheFn();
314
+ const version = parseCatalogVersion(cached?.version);
315
+ if (!cached || version === undefined)
316
+ return undefined;
317
+ return { version, count: cached.items.length, contentHash: hashOf(cached.contentHash) };
318
+ }
319
+ /**
320
+ * WHAT `maka play` CALLS (user, 2026-09-04: "local cache creation when a
321
+ * logged in user first does 'maka play', but rather than startup
322
+ * overwrite, let's do a version check first and check it for a stale
323
+ * cache").
324
+ *
325
+ * The old behaviour was a full download on every single boot -- roughly
326
+ * 900KB to re-learn what the machine already knew, on a game that opens
327
+ * in under a second. Now the server is asked for a NUMBER first, and the
328
+ * list is pulled only when that number says the local copy is behind.
329
+ *
330
+ * Two gates, in order:
331
+ *
332
+ * 1. LOGGED IN. The catalog is account-holder content; a logged-out
333
+ * player is served the cache they already have, or the baked-in
334
+ * floor, and no request leaves the machine. They still get a whole,
335
+ * coherent game -- the seed is a floor, not a stub -- they just stop
336
+ * receiving retunes until they sign in.
337
+ * 2. NOT STALE. See isCacheStale.
338
+ *
339
+ * Both the probe and the download are injectable, and that is not a
340
+ * convenience: asserting "it did not download" requires being able to
341
+ * SEE that it did not, and a real socket cannot be asked that question.
342
+ */
343
+ export async function ensureCatalog(input) {
344
+ const logger = Logger.getInstance();
345
+ const probe = input.probe ?? (() => siteGet(STAMP_PATH, input.token));
346
+ const download = input.download ?? (() => refreshCatalog(input.token));
347
+ // The injected reader is used EVERYWHERE below, log lines included: a
348
+ // bare loadCatalog() reads the developer's own cache file, which is how
349
+ // seven suites in this repo once went red over a real config file.
350
+ const readCacheFn = input.readCacheFn ?? readCache;
351
+ if (input.token === undefined) {
352
+ const cached = cacheStamp(readCacheFn);
353
+ logger.write(cached
354
+ ? `Catalog: not signed in -- serving the cached v${cached.version} (${cached.count} rows) as-is; no fetch.`
355
+ : `Catalog: not signed in and no cache -- serving the ${CATALOG_ROWS.length} baked-in items.`);
356
+ return 'logged-out';
357
+ }
358
+ let stamp;
359
+ try {
360
+ stamp = await probe();
361
+ }
362
+ catch (err) {
363
+ logger.write(`Catalog: could not reach maka-cli.com for a version check (${err.message}); `
364
+ + `serving ${loadCatalog(readCacheFn).length}.`);
365
+ return 'offline';
366
+ }
367
+ if (stamp.statusCode === 404) {
368
+ // An older maka-cli.com that has only /list. Ask for the whole
369
+ // thing, exactly as before -- a missing cheap route must never
370
+ // become a missing catalog.
371
+ logger.write('Catalog: no version route on the server -- falling back to a full fetch.');
372
+ await download();
373
+ return 'no-stamp-route';
374
+ }
375
+ if (stamp.statusCode === 401 || stamp.statusCode === 403) {
376
+ // NOT "offline", and the difference is the whole point of reporting
377
+ // it separately: the grid is up, the account is not. A player whose
378
+ // token expired would otherwise see a line blaming the network and
379
+ // have no idea that `maka login` is the fix. Their game is
380
+ // untouched -- cache, then the baked-in floor, exactly as when
381
+ // signed out -- but the reason is theirs to act on.
382
+ logger.write(`Catalog: maka-cli.com refused the session (${stamp.statusCode}) -- sign in again with "maka login" `
383
+ + `to receive catalog updates; serving ${loadCatalog(readCacheFn).length}.`);
384
+ return 'unauthorized';
385
+ }
386
+ if (stamp.statusCode !== 200) {
387
+ logger.write(`Catalog: version check returned status ${stamp.statusCode}; serving ${loadCatalog(readCacheFn).length}.`);
388
+ return 'offline';
389
+ }
390
+ let serverVersion;
391
+ let serverCount;
392
+ let serverHash;
393
+ try {
394
+ const parsed = JSON.parse(stamp.body);
395
+ serverVersion = parseCatalogVersion(parsed?.version);
396
+ const n = Number(parsed?.count);
397
+ serverCount = Number.isFinite(n) && n > 0 ? n : undefined;
398
+ serverHash = hashOf(parsed?.contentHash);
399
+ }
400
+ catch { /* handled below as unusable */ }
401
+ if (serverVersion === undefined) {
402
+ // Same reasoning as the unversioned list: a stamp that cannot be
403
+ // compared cannot order anything, so the cheap path has nothing to
404
+ // decide with and the full fetch (which weighs what it gets) runs.
405
+ logger.write('Catalog: the version route sent no usable version -- falling back to a full fetch.');
406
+ await download();
407
+ return 'no-stamp-route';
408
+ }
409
+ const cached = cacheStamp(readCacheFn);
410
+ const verdict = isCacheStale(cached, { version: serverVersion, count: serverCount, contentHash: serverHash });
411
+ if (!verdict.stale) {
412
+ // NOTHING IS DOWNLOADED AND NOTHING IS OVERWRITTEN. The cache is
413
+ // already the best list; loadCatalog reads and weighs it from disk
414
+ // without a live source, so this path needs no assignment at all.
415
+ fetchAttempted = true;
416
+ logger.write(`Catalog: ${verdict.why} -- nothing to download; serving ${loadCatalog(readCacheFn).length}.`);
417
+ return 'fresh';
418
+ }
419
+ logger.write(`Catalog: refreshing -- ${verdict.why}.`);
420
+ await download();
421
+ return 'refreshed';
422
+ }
165
423
  /**
166
424
  * The best catalog available right now: live > cached > baked-in --
167
425
  * except that a cache OLDER than the shipped seed is not "best", it is
@@ -314,6 +572,12 @@ export function itemFromCatalog(slugOrName) {
314
572
  }
315
573
  /** One effect, in the player's words: "+2 dice to Hacking", "+1 Social limit (haggle)". */
316
574
  export function describeEffect(e) {
575
+ // FORBIDDEN carries no value, so it is answered before anything
576
+ // reads one. "You cannot have this" is not a quantity.
577
+ if (e.type === 'forbid') {
578
+ const what = e.property === 'chosen' ? 'the one you named' : e.property.replace(/-/g, ' ');
579
+ return `${what} is closed to you entirely -- not even defaulting`;
580
+ }
317
581
  const sign = e.value >= 0 ? '+' : '';
318
582
  const scale = e.scaleBy === 'rating' ? ' per rating' : e.scaleBy === 'force' ? ' per Force' : e.scaleBy === 'hits' ? ' per hit' : '';
319
583
  const only = e.only ? ` (${e.only.replace(/-/g, ' ')})` : '';
@@ -325,6 +589,11 @@ export function describeEffect(e) {
325
589
  case 'attribute': return e.category === 'matrix' ? `${sign}${e.value} ${word === 'dataProcessing' ? 'Data Processing' : word}${only}${when}` : `${sign}${e.value}${scale} ${word}${only}${when}`;
326
590
  case 'initiative': return `${sign}${e.value} initiative ${word}${only}${when}`;
327
591
  case 'flag': return `grants ${word}${e.value > 1 ? ` ${e.value}` : ''}${only}${when}`;
592
+ // A ceiling reads as what it lets you REACH, not as dice you roll:
593
+ // Aptitude does not make you better, it lets you get better.
594
+ case 'cap': return e.property === 'chosen'
595
+ ? `${sign}${e.value} to the maximum of one chosen ${e.category === 'skills' ? 'skill' : 'attribute'}${only}`
596
+ : `${sign}${e.value} to the ${word} maximum${only}`;
328
597
  }
329
598
  }
330
599
  /** Fuzzy lookup for source.ts: exact slug, exact name, then loose
@@ -364,4 +633,59 @@ export function findCatalogItem(request) {
364
633
  });
365
634
  return scored.length === 1 ? scored[0] : undefined;
366
635
  }
636
+ /**
637
+ * A SPELL'S RULES, FROM THE CATALOG.
638
+ *
639
+ * mjmcee, 2026-09-04: "Why can't the engine rules be pulled dynamically?
640
+ * The engine rule comes from the catalog. We shouldn't be hard coding
641
+ * the rules."
642
+ *
643
+ * Every consumer used to read `SPELLS[key]` -- a Record compiled into the
644
+ * binary, which no live catalog could ever influence. This reads the
645
+ * RESOLVED catalog instead (live > cache > seed, the chain `loadCatalog`
646
+ * already runs), so a spell retuned on maka-cli.com reaches a player on
647
+ * their next fetch rather than their next install.
648
+ *
649
+ * THE COMPILED LIST IS STILL THE FLOOR, and that is not a fallback bolted
650
+ * on -- it IS the seed arm of that chain. Offline with no cache, this
651
+ * returns exactly what `SPELLS[key]` returned, which is why the switch is
652
+ * safe to make before the fixture exists.
653
+ *
654
+ * It reconstructs an ISpell from the row rather than the reverse, because
655
+ * the row is the wider shape: `spell` carries the stat block, `effects`
656
+ * carries what it does while sustained, and the top level carries name
657
+ * and page. `cast` joined the block for exactly this -- it was the one
658
+ * field a row could not supply, and so the one thing keeping spells
659
+ * compiled in.
660
+ */
661
+ export function spellFor(key) {
662
+ if (!spellIndex) {
663
+ spellIndex = new Map();
664
+ for (const row of loadCatalog()) {
665
+ if (row.kind !== 'spell')
666
+ continue;
667
+ const sp = row.spell;
668
+ spellIndex.set(row.slug, {
669
+ key: row.slug,
670
+ name: row.name,
671
+ page: row.page ?? '',
672
+ ...sp,
673
+ ...(row.effects !== undefined ? { effects: row.effects } : {}),
674
+ });
675
+ }
676
+ }
677
+ return spellIndex.get(key);
678
+ }
679
+ /** Every spell the resolved catalog knows, for pickers and validation. */
680
+ export function catalogSpells() {
681
+ return loadCatalog()
682
+ .filter((r) => r.kind === 'spell')
683
+ .map(r => spellFor(r.slug))
684
+ .filter(Boolean);
685
+ }
686
+ let spellIndex;
687
+ /** Drops the spell index; production invalidates via refreshCatalog. */
688
+ export function resetSpellIndex() {
689
+ spellIndex = undefined;
690
+ }
367
691
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/catalog.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,44 @@ export declare function fetchSummaries(): Promise<{
45
45
  }>;
46
46
  export declare function fetchSave(slug: string): Promise<ISaveFileV1 | undefined>;
47
47
  /** POST-tunneled delete (the HTTPS helper speaks GET/POST only). */
48
- export declare function deleteCloudSave(slug: string): Promise<CloudResult>;
48
+ /**
49
+ * HOW A RUNNER DIED, SENT WITH THE BURN (maka-cli-com-c3 contract,
50
+ * 2026-09-04). Permadeath is still a DELETE and the save is still
51
+ * destroyed -- what the server writes in the moment before the burn is a
52
+ * MEMORIAL: identity and life, never state. There is no diedAt on the
53
+ * save because there is no save.
54
+ *
55
+ * The TIME is the server's and only the server's: the CLI sends no
56
+ * timestamp, and any it sent would be ignored. A client clock cannot be
57
+ * the record of when a character died.
58
+ *
59
+ * `cause` is the engine's own death line, which becomes the dossier's
60
+ * headline and the seed of the obituary prose -- so the specific line
61
+ * ("flatlined by Black IC in a Renraku host") is worth carrying all the
62
+ * way here rather than a generic one.
63
+ *
64
+ * ANONYMOUS RUNNERS NEVER REACH THIS (user ruling, 2026-09-04: "an
65
+ * anonymous runner doesn't need a server stamp, their character is
66
+ * local"). They have no cloud save to burn; their tombstone stays
67
+ * client-stamped in `at`, and nothing here pretends otherwise.
68
+ */
69
+ export interface IBurnManner {
70
+ manner: 'killed' | 'retired';
71
+ /** The engine's death line. Trimmed to the server's 500-char cap. */
72
+ cause?: string;
73
+ }
74
+ /** What the server stamped as it buried them. Absent when there was
75
+ * nothing to memorialize (an anonymous runner, or no cloud save). */
76
+ export interface IMemorial {
77
+ slug: string;
78
+ /** ISO, SERVER clock. */
79
+ diedAt: string;
80
+ manner: string;
81
+ /** Path to the dossier, e.g. /characters/<slug>/dossier. */
82
+ dossier: string;
83
+ }
84
+ export declare function takeLastMemorial(): IMemorial | undefined;
85
+ export declare function deleteCloudSave(slug: string, how?: IBurnManner): Promise<CloudResult>;
49
86
  /**
50
87
  * PERMADEATH's cloud half (Game.close burns the local slot first). The
51
88
  * tombstone is written SYNCHRONOUSLY before the async delete attempt --
@@ -53,7 +90,7 @@ export declare function deleteCloudSave(slug: string): Promise<CloudResult>;
53
90
  * the marker survives and the launcher deletes the cloud copy when next
54
91
  * reachable, instead of resurrecting the dead from the mirror.
55
92
  */
56
- export declare function burnCloudSaveFor(saveFilePath: string, playerName: string): void;
93
+ export declare function burnCloudSaveFor(saveFilePath: string, playerName: string, how?: IBurnManner): Promise<void>;
57
94
  /**
58
95
  * "Delete character" (launcher menu): the local slot dies now, the
59
96
  * cloud copy dies now if reachable -- and when it isn't, the tombstone
@@ -207,3 +244,29 @@ export declare function leaseRefusesBoot(result: LeaseResult): boolean;
207
244
  */
208
245
  export declare function startLeaseRenewal(slug: string, sessionId: string, everyMs?: number): void;
209
246
  export declare function stopLeaseRenewal(): void;
247
+ /**
248
+ * IS THIS STREET NAME FREE ON THIS ACCOUNT? (user, 2026-09-04: "when
249
+ * creating a new character, and the name is asked, can there be a gate
250
+ * to the next step that if the character name is already taken (for that
251
+ * account) it won't continue".)
252
+ *
253
+ * Asks the SERVER'S rule rather than reimplementing it. A first cut
254
+ * listed /game-saves and compared slugs here, which was wrong in a way
255
+ * that would only have shown up at create time: game-saves is LIVING
256
+ * runners, so it misses the fallen whose memorial still holds the name
257
+ * and this account's draft worksheets, both of which the create route
258
+ * refuses on. One rule, one place -- the same lesson the Conjurer taught
259
+ * this morning, applied across a network boundary instead of a module.
260
+ *
261
+ * The endpoint always answers 200; the verdict is in the body
262
+ * (maka-cli-com-c3 contract, chargen-name.ts).
263
+ *
264
+ * `undefined` means COULD NOT ASK -- logged out, offline, refused -- and
265
+ * is deliberately distinct from "free". The caller lets an unverifiable
266
+ * name through: a naming gate must not stop somebody starting a
267
+ * character on a train, and the create route still holds the line.
268
+ */
269
+ export declare function checkRunnerName(name: string): Promise<{
270
+ free: boolean;
271
+ message?: string;
272
+ } | undefined>;