brut 0.16.0.pre → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -3
  3. data/Gemfile.lock +41 -34
  4. data/brut-css/package-lock.json +2 -2
  5. data/brut-css/package.json +1 -1
  6. data/brut-js/package-lock.json +311 -2
  7. data/brut-js/package.json +2 -1
  8. data/brutrb.com/jobs.md +1 -1
  9. data/docs/404.html +2 -2
  10. data/docs/adrs.html +4 -4
  11. data/docs/ai.html +4 -4
  12. data/docs/api/Brut/BackEnd/SeedData.html +2 -2
  13. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server/FlushSpans.html +2 -2
  14. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares/Server.html +2 -2
  15. data/docs/api/Brut/BackEnd/Sidekiq/Middlewares.html +2 -2
  16. data/docs/api/Brut/BackEnd/Sidekiq.html +2 -2
  17. data/docs/api/Brut/BackEnd/Validators/FormValidator.html +2 -2
  18. data/docs/api/Brut/BackEnd/Validators.html +2 -2
  19. data/docs/api/Brut/BackEnd.html +2 -2
  20. data/docs/api/Brut/CLI/App.html +2 -2
  21. data/docs/api/Brut/CLI/AppRunner.html +2 -2
  22. data/docs/api/Brut/CLI/Apps/BuildAssets/All.html +2 -2
  23. data/docs/api/Brut/CLI/Apps/BuildAssets/CSS.html +2 -2
  24. data/docs/api/Brut/CLI/Apps/BuildAssets/Images.html +2 -2
  25. data/docs/api/Brut/CLI/Apps/BuildAssets/JS.html +2 -2
  26. data/docs/api/Brut/CLI/Apps/BuildAssets.html +2 -2
  27. data/docs/api/Brut/CLI/Apps/DB/Create.html +2 -2
  28. data/docs/api/Brut/CLI/Apps/DB/Drop.html +2 -2
  29. data/docs/api/Brut/CLI/Apps/DB/Migrate.html +2 -2
  30. data/docs/api/Brut/CLI/Apps/DB/NewMigration.html +2 -2
  31. data/docs/api/Brut/CLI/Apps/DB/Rebuild.html +2 -2
  32. data/docs/api/Brut/CLI/Apps/DB/Seed.html +2 -2
  33. data/docs/api/Brut/CLI/Apps/DB/Status.html +2 -2
  34. data/docs/api/Brut/CLI/Apps/DB.html +2 -2
  35. data/docs/api/Brut/CLI/Apps/DeployBase/GitChecks.html +2 -2
  36. data/docs/api/Brut/CLI/Apps/DeployBase.html +2 -2
  37. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy/Deploy.html +7 -5
  38. data/docs/api/Brut/CLI/Apps/HerokuContainerBasedDeploy.html +2 -2
  39. data/docs/api/Brut/CLI/Apps/Scaffold/Action/Route.html +2 -2
  40. data/docs/api/Brut/CLI/Apps/Scaffold/Action.html +2 -2
  41. data/docs/api/Brut/CLI/Apps/Scaffold/Component.html +2 -2
  42. data/docs/api/Brut/CLI/Apps/Scaffold/CustomElementTest.html +2 -2
  43. data/docs/api/Brut/CLI/Apps/Scaffold/DbModel.html +2 -2
  44. data/docs/api/Brut/CLI/Apps/Scaffold/E2ETest.html +2 -2
  45. data/docs/api/Brut/CLI/Apps/Scaffold/Form.html +2 -2
  46. data/docs/api/Brut/CLI/Apps/Scaffold/Page/Route.html +2 -2
  47. data/docs/api/Brut/CLI/Apps/Scaffold/Page.html +2 -2
  48. data/docs/api/Brut/CLI/Apps/Scaffold/RoutesEditor.html +2 -2
  49. data/docs/api/Brut/CLI/Apps/Scaffold/Test.html +2 -2
  50. data/docs/api/Brut/CLI/Apps/Scaffold.html +2 -2
  51. data/docs/api/Brut/CLI/Apps/Test/Audit.html +7 -3
  52. data/docs/api/Brut/CLI/Apps/Test/E2e.html +2 -2
  53. data/docs/api/Brut/CLI/Apps/Test/JS.html +2 -2
  54. data/docs/api/Brut/CLI/Apps/Test/Run.html +2 -2
  55. data/docs/api/Brut/CLI/Apps/Test.html +2 -2
  56. data/docs/api/Brut/CLI/Apps.html +2 -2
  57. data/docs/api/Brut/CLI/Command.html +2 -2
  58. data/docs/api/Brut/CLI/Error.html +2 -2
  59. data/docs/api/Brut/CLI/ExecutionResults/Result.html +2 -2
  60. data/docs/api/Brut/CLI/ExecutionResults.html +2 -2
  61. data/docs/api/Brut/CLI/Executor.html +2 -2
  62. data/docs/api/Brut/CLI/InvalidOption.html +2 -2
  63. data/docs/api/Brut/CLI/Options.html +2 -2
  64. data/docs/api/Brut/CLI/Output.html +2 -2
  65. data/docs/api/Brut/CLI/SystemExecError.html +2 -2
  66. data/docs/api/Brut/CLI.html +2 -2
  67. data/docs/api/Brut/FactoryBot.html +2 -2
  68. data/docs/api/Brut/Framework/App.html +2 -2
  69. data/docs/api/Brut/Framework/Config.html +2 -2
  70. data/docs/api/Brut/Framework/Container.html +11 -7
  71. data/docs/api/Brut/Framework/Error.html +2 -2
  72. data/docs/api/Brut/Framework/Errors/AbstractMethod.html +2 -2
  73. data/docs/api/Brut/Framework/Errors/Bug.html +2 -2
  74. data/docs/api/Brut/Framework/Errors/MissingConfiguration.html +2 -2
  75. data/docs/api/Brut/Framework/Errors/MissingParameter.html +2 -2
  76. data/docs/api/Brut/Framework/Errors/NoClassForPath.html +2 -2
  77. data/docs/api/Brut/Framework/Errors/NotFound.html +2 -2
  78. data/docs/api/Brut/Framework/Errors/NotImplemented.html +2 -2
  79. data/docs/api/Brut/Framework/Errors.html +2 -2
  80. data/docs/api/Brut/Framework/FussyTypeEnforcement.html +2 -2
  81. data/docs/api/Brut/Framework/MCP.html +3 -3
  82. data/docs/api/Brut/Framework/ProjectEnvironment.html +2 -2
  83. data/docs/api/Brut/Framework.html +2 -2
  84. data/docs/api/Brut/FrontEnd/AssetPathResolver.html +2 -2
  85. data/docs/api/Brut/FrontEnd/Component/Helpers.html +2 -2
  86. data/docs/api/Brut/FrontEnd/Component.html +2 -2
  87. data/docs/api/Brut/FrontEnd/Components/ConstraintViolations.html +2 -2
  88. data/docs/api/Brut/FrontEnd/Components/FormTag.html +2 -2
  89. data/docs/api/Brut/FrontEnd/Components/I18nTranslations.html +2 -2
  90. data/docs/api/Brut/FrontEnd/Components/Input.html +2 -2
  91. data/docs/api/Brut/FrontEnd/Components/Inputs/ButtonTag.html +2 -2
  92. data/docs/api/Brut/FrontEnd/Components/Inputs/CsrfToken.html +2 -2
  93. data/docs/api/Brut/FrontEnd/Components/Inputs/InputTag.html +2 -2
  94. data/docs/api/Brut/FrontEnd/Components/Inputs/RadioButton.html +2 -2
  95. data/docs/api/Brut/FrontEnd/Components/Inputs/SelectTagWithOptions.html +2 -2
  96. data/docs/api/Brut/FrontEnd/Components/Inputs/TextareaTag.html +2 -2
  97. data/docs/api/Brut/FrontEnd/Components/Inputs.html +2 -2
  98. data/docs/api/Brut/FrontEnd/Components/LocaleDetection.html +2 -2
  99. data/docs/api/Brut/FrontEnd/Components/PageIdentifier.html +2 -2
  100. data/docs/api/Brut/FrontEnd/Components/TimeTag.html +2 -2
  101. data/docs/api/Brut/FrontEnd/Components/Traceparent.html +2 -2
  102. data/docs/api/Brut/FrontEnd/Components.html +2 -2
  103. data/docs/api/Brut/FrontEnd/CsrfProtector.html +2 -2
  104. data/docs/api/Brut/FrontEnd/Download.html +2 -2
  105. data/docs/api/Brut/FrontEnd/Flash.html +2 -2
  106. data/docs/api/Brut/FrontEnd/Form.html +2 -2
  107. data/docs/api/Brut/FrontEnd/Forms/Button.html +2 -2
  108. data/docs/api/Brut/FrontEnd/Forms/ButtonInputDefinition.html +2 -2
  109. data/docs/api/Brut/FrontEnd/Forms/ConstraintViolation.html +2 -2
  110. data/docs/api/Brut/FrontEnd/Forms/Input/Color.html +2 -2
  111. data/docs/api/Brut/FrontEnd/Forms/Input/TimeOfDay.html +2 -2
  112. data/docs/api/Brut/FrontEnd/Forms/Input.html +2 -2
  113. data/docs/api/Brut/FrontEnd/Forms/InputDeclarations.html +2 -2
  114. data/docs/api/Brut/FrontEnd/Forms/InputDefinition.html +2 -2
  115. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInput.html +2 -2
  116. data/docs/api/Brut/FrontEnd/Forms/RadioButtonGroupInputDefinition.html +2 -2
  117. data/docs/api/Brut/FrontEnd/Forms/SelectInput.html +2 -2
  118. data/docs/api/Brut/FrontEnd/Forms/SelectInputDefinition.html +2 -2
  119. data/docs/api/Brut/FrontEnd/Forms/ValidityState.html +2 -2
  120. data/docs/api/Brut/FrontEnd/Forms.html +2 -2
  121. data/docs/api/Brut/FrontEnd/GenericResponse.html +2 -2
  122. data/docs/api/Brut/FrontEnd/Handler.html +2 -2
  123. data/docs/api/Brut/FrontEnd/Handlers/CspReportingHandler.html +2 -2
  124. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler/TraceParent.html +2 -2
  125. data/docs/api/Brut/FrontEnd/Handlers/InstrumentationHandler.html +2 -2
  126. data/docs/api/Brut/FrontEnd/Handlers/LocaleDetectionHandler.html +2 -2
  127. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler/Form.html +2 -2
  128. data/docs/api/Brut/FrontEnd/Handlers/MissingHandler.html +2 -2
  129. data/docs/api/Brut/FrontEnd/Handlers.html +2 -2
  130. data/docs/api/Brut/FrontEnd/HandlingResults.html +2 -2
  131. data/docs/api/Brut/FrontEnd/HttpMethod.html +2 -2
  132. data/docs/api/Brut/FrontEnd/HttpStatus.html +2 -2
  133. data/docs/api/Brut/FrontEnd/InlineSvgLocator.html +2 -2
  134. data/docs/api/Brut/FrontEnd/Layout.html +2 -2
  135. data/docs/api/Brut/FrontEnd/Middleware.html +2 -2
  136. data/docs/api/Brut/FrontEnd/Middlewares/AnnotateBrutOwnedPaths.html +2 -2
  137. data/docs/api/Brut/FrontEnd/Middlewares/Favicon.html +2 -2
  138. data/docs/api/Brut/FrontEnd/Middlewares/OpenTelemetrySpan.html +2 -2
  139. data/docs/api/Brut/FrontEnd/Middlewares/ReloadApp.html +2 -2
  140. data/docs/api/Brut/FrontEnd/Middlewares.html +2 -2
  141. data/docs/api/Brut/FrontEnd/Page.html +2 -2
  142. data/docs/api/Brut/FrontEnd/Pages/MissingPage.html +2 -2
  143. data/docs/api/Brut/FrontEnd/Pages.html +2 -2
  144. data/docs/api/Brut/FrontEnd/RequestContext.html +2 -2
  145. data/docs/api/Brut/FrontEnd/RouteHook.html +2 -2
  146. data/docs/api/Brut/FrontEnd/RouteHooks/AgeFlash.html +2 -2
  147. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineScripts.html +2 -2
  148. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts/ReportOnly.html +2 -2
  149. data/docs/api/Brut/FrontEnd/RouteHooks/CSPNoInlineStylesOrScripts.html +2 -2
  150. data/docs/api/Brut/FrontEnd/RouteHooks/LocaleDetection.html +2 -2
  151. data/docs/api/Brut/FrontEnd/RouteHooks/SetupRequestContext.html +2 -2
  152. data/docs/api/Brut/FrontEnd/RouteHooks.html +2 -2
  153. data/docs/api/Brut/FrontEnd/Routing/FormHandlerRoute.html +2 -2
  154. data/docs/api/Brut/FrontEnd/Routing/FormRoute.html +2 -2
  155. data/docs/api/Brut/FrontEnd/Routing/MissingForm.html +2 -2
  156. data/docs/api/Brut/FrontEnd/Routing/MissingHandler.html +2 -2
  157. data/docs/api/Brut/FrontEnd/Routing/MissingPage.html +2 -2
  158. data/docs/api/Brut/FrontEnd/Routing/MissingPath.html +2 -2
  159. data/docs/api/Brut/FrontEnd/Routing/PageRoute.html +2 -2
  160. data/docs/api/Brut/FrontEnd/Routing/Route.html +2 -2
  161. data/docs/api/Brut/FrontEnd/Routing.html +2 -2
  162. data/docs/api/Brut/FrontEnd/Session.html +2 -2
  163. data/docs/api/Brut/FrontEnd.html +2 -2
  164. data/docs/api/Brut/I18n/BaseMethods.html +2 -2
  165. data/docs/api/Brut/I18n/ForBackEnd.html +2 -2
  166. data/docs/api/Brut/I18n/ForCLI.html +2 -2
  167. data/docs/api/Brut/I18n/ForHTML.html +2 -2
  168. data/docs/api/Brut/I18n/HTTPAcceptLanguage/AlwaysEnglish.html +2 -2
  169. data/docs/api/Brut/I18n/HTTPAcceptLanguage.html +2 -2
  170. data/docs/api/Brut/I18n.html +2 -2
  171. data/docs/api/Brut/Instrumentation/LoggerSpanExporter.html +2 -2
  172. data/docs/api/Brut/Instrumentation/Methods/ClassMethods.html +2 -2
  173. data/docs/api/Brut/Instrumentation/Methods.html +2 -2
  174. data/docs/api/Brut/Instrumentation/OpenTelemetry/NormalizedAttributes.html +2 -2
  175. data/docs/api/Brut/Instrumentation/OpenTelemetry/Span.html +2 -2
  176. data/docs/api/Brut/Instrumentation/OpenTelemetry.html +2 -2
  177. data/docs/api/Brut/Instrumentation.html +2 -2
  178. data/docs/api/Brut/RubocopConfig.html +2 -2
  179. data/docs/api/Brut/SinatraHelpers/ClassMethods.html +2 -2
  180. data/docs/api/Brut/SinatraHelpers.html +2 -2
  181. data/docs/api/Brut/SpecSupport/ClockSupport.html +2 -2
  182. data/docs/api/Brut/SpecSupport/ComponentSupport.html +2 -2
  183. data/docs/api/Brut/SpecSupport/E2ETestServer.html +2 -2
  184. data/docs/api/Brut/SpecSupport/E2eSupport.html +2 -2
  185. data/docs/api/Brut/SpecSupport/EnhancedNode.html +2 -2
  186. data/docs/api/Brut/SpecSupport/FlashSupport.html +2 -2
  187. data/docs/api/Brut/SpecSupport/GeneralSupport/ClassMethods.html +2 -2
  188. data/docs/api/Brut/SpecSupport/GeneralSupport.html +2 -2
  189. data/docs/api/Brut/SpecSupport/HandlerSupport.html +2 -2
  190. data/docs/api/Brut/SpecSupport/Matchers/BeABug.html +2 -2
  191. data/docs/api/Brut/SpecSupport/Matchers/BePageFor.html +2 -2
  192. data/docs/api/Brut/SpecSupport/Matchers/BeRoutingFor.html +2 -2
  193. data/docs/api/Brut/SpecSupport/Matchers/HaveConstraintViolation.html +2 -2
  194. data/docs/api/Brut/SpecSupport/Matchers/HaveGenerated.html +2 -2
  195. data/docs/api/Brut/SpecSupport/Matchers/HaveHTMLAttribute.html +2 -2
  196. data/docs/api/Brut/SpecSupport/Matchers/HaveI18nString.html +2 -2
  197. data/docs/api/Brut/SpecSupport/Matchers/HaveLinkTo.html +2 -2
  198. data/docs/api/Brut/SpecSupport/Matchers/HaveRedirectedTo.html +2 -2
  199. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedHttpStatus.html +2 -2
  200. data/docs/api/Brut/SpecSupport/Matchers/HaveReturnedRackResponse.html +2 -2
  201. data/docs/api/Brut/SpecSupport/Matchers.html +2 -2
  202. data/docs/api/Brut/SpecSupport/RSpecSetup/OptionalSidekiqSupport.html +2 -2
  203. data/docs/api/Brut/SpecSupport/RSpecSetup.html +2 -2
  204. data/docs/api/Brut/SpecSupport/SessionSupport.html +2 -2
  205. data/docs/api/Brut/SpecSupport.html +2 -2
  206. data/docs/api/Brut.html +2 -2
  207. data/docs/api/Clock.html +2 -2
  208. data/docs/api/ModuleName.html +2 -2
  209. data/docs/api/RichString.html +2 -2
  210. data/docs/api/SemanticLogger/Appender/Async.html +2 -2
  211. data/docs/api/Sequel/Extensions/BrutInstrumentation.html +2 -2
  212. data/docs/api/Sequel/Extensions/BrutMigrations.html +2 -2
  213. data/docs/api/Sequel/Extensions.html +2 -2
  214. data/docs/api/Sequel/Plugins/CreatedAt/InstanceMethods.html +2 -2
  215. data/docs/api/Sequel/Plugins/CreatedAt.html +2 -2
  216. data/docs/api/Sequel/Plugins/ExternalId/ClassMethods.html +2 -2
  217. data/docs/api/Sequel/Plugins/ExternalId/InstanceMethods.html +2 -2
  218. data/docs/api/Sequel/Plugins/ExternalId.html +2 -2
  219. data/docs/api/Sequel/Plugins/FindBang/ClassMethods.html +2 -2
  220. data/docs/api/Sequel/Plugins/FindBang.html +2 -2
  221. data/docs/api/Sequel/Plugins.html +2 -2
  222. data/docs/api/Sequel.html +2 -2
  223. data/docs/api/_index.html +2 -2
  224. data/docs/api/file.README.html +2 -2
  225. data/docs/api/index.html +2 -2
  226. data/docs/api/top-level-namespace.html +2 -2
  227. data/docs/assets/{app.Dm7v_ouO.js → app.CovevI7X.js} +1 -1
  228. data/docs/assets/chunks/@localSearchIndexroot.BiNc3tFI.js +1 -0
  229. data/docs/assets/chunks/{VPLocalSearchBox.DQK6jQou.js → VPLocalSearchBox.CrvLAvKW.js} +1 -1
  230. data/docs/assets/chunks/{theme.BuExsdM9.js → theme.BAi5_yQI.js} +2 -2
  231. data/docs/assets/{components.md.Dfd3w6UW.js → components.md.9sqJ27Oc.js} +3 -3
  232. data/docs/assets/{configuration.md.DTYoV2Ea.js → configuration.md.Cb_oAR8Z.js} +1 -1
  233. data/docs/assets/{deployment.md.C1u5ep0g.js → deployment.md.CHTx2eTR.js} +10 -3
  234. data/docs/assets/{deployment.md.C1u5ep0g.lean.js → deployment.md.CHTx2eTR.lean.js} +1 -1
  235. data/docs/assets/{forms.md.DEkmJUvb.js → forms.md.BdpYpNIk.js} +1 -1
  236. data/docs/assets/{getting-started.md.DO-4eoGW.js → getting-started.md.CKpNGvno.js} +2 -2
  237. data/docs/assets/jobs.md.Bi3qb3v6.js +25 -0
  238. data/docs/assets/jobs.md.Bi3qb3v6.lean.js +1 -0
  239. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.js +12 -0
  240. data/docs/assets/recipes_dev-env-secrets.md.DC_jVY9U.lean.js +1 -0
  241. data/docs/assets/roadmap.md.DqC1Y7Zt.js +1 -0
  242. data/docs/assets/{roadmap.md.CJsbUmK_.lean.js → roadmap.md.DqC1Y7Zt.lean.js} +1 -1
  243. data/docs/assets/{tutorials_02-dialog.md.D2vSjDVf.js → tutorials_02-dialog.md.Z_DOF2mU.js} +1 -1
  244. data/docs/assets.html +4 -4
  245. data/docs/brut-js/api/AjaxSubmit.html +1 -1
  246. data/docs/brut-js/api/AjaxSubmit.js.html +1 -1
  247. data/docs/brut-js/api/Autosubmit.html +1 -1
  248. data/docs/brut-js/api/Autosubmit.js.html +1 -1
  249. data/docs/brut-js/api/BaseCustomElement.html +1 -1
  250. data/docs/brut-js/api/BaseCustomElement.js.html +1 -1
  251. data/docs/brut-js/api/BrutCustomElements.html +1 -1
  252. data/docs/brut-js/api/BufferedLogger.html +1 -1
  253. data/docs/brut-js/api/ConfirmSubmit.html +1 -1
  254. data/docs/brut-js/api/ConfirmSubmit.js.html +1 -1
  255. data/docs/brut-js/api/ConfirmationDialog.html +1 -1
  256. data/docs/brut-js/api/ConfirmationDialog.js.html +1 -1
  257. data/docs/brut-js/api/ConstraintViolationMessage.html +1 -1
  258. data/docs/brut-js/api/ConstraintViolationMessage.js.html +1 -1
  259. data/docs/brut-js/api/ConstraintViolationMessages.html +1 -1
  260. data/docs/brut-js/api/ConstraintViolationMessages.js.html +1 -1
  261. data/docs/brut-js/api/CopyToClipboard.html +1 -1
  262. data/docs/brut-js/api/CopyToClipboard.js.html +1 -1
  263. data/docs/brut-js/api/Form.html +1 -1
  264. data/docs/brut-js/api/Form.js.html +1 -1
  265. data/docs/brut-js/api/I18nTranslation.html +1 -1
  266. data/docs/brut-js/api/I18nTranslation.js.html +1 -1
  267. data/docs/brut-js/api/LocaleDetection.html +1 -1
  268. data/docs/brut-js/api/LocaleDetection.js.html +1 -1
  269. data/docs/brut-js/api/Logger.html +1 -1
  270. data/docs/brut-js/api/Logger.js.html +1 -1
  271. data/docs/brut-js/api/Message.html +1 -1
  272. data/docs/brut-js/api/Message.js.html +1 -1
  273. data/docs/brut-js/api/PrefixedLogger.html +1 -1
  274. data/docs/brut-js/api/RichString.html +1 -1
  275. data/docs/brut-js/api/RichString.js.html +1 -1
  276. data/docs/brut-js/api/Tabs.html +1 -1
  277. data/docs/brut-js/api/Tabs.js.html +1 -1
  278. data/docs/brut-js/api/Toast.html +1 -1
  279. data/docs/brut-js/api/Toast.js.html +1 -1
  280. data/docs/brut-js/api/Tracing.html +1 -1
  281. data/docs/brut-js/api/Tracing.js.html +1 -1
  282. data/docs/brut-js/api/external-CustomElementRegistry.html +1 -1
  283. data/docs/brut-js/api/external-Performance.html +1 -1
  284. data/docs/brut-js/api/external-Promise.html +1 -1
  285. data/docs/brut-js/api/external-ValidityState.html +1 -1
  286. data/docs/brut-js/api/external-Window.html +1 -1
  287. data/docs/brut-js/api/external-fetch.html +1 -1
  288. data/docs/brut-js/api/global.html +1 -1
  289. data/docs/brut-js/api/index.html +1 -1
  290. data/docs/brut-js/api/index.js.html +1 -1
  291. data/docs/brut-js/api/module-testing.html +1 -1
  292. data/docs/brut-js/api/testing.AssetMetadata.html +1 -1
  293. data/docs/brut-js/api/testing.AssetMetadataLoader.html +1 -1
  294. data/docs/brut-js/api/testing.CustomElementTest.html +1 -1
  295. data/docs/brut-js/api/testing.DOMCreator.html +1 -1
  296. data/docs/brut-js/api/testing_AssetMetadata.js.html +1 -1
  297. data/docs/brut-js/api/testing_AssetMetadataLoader.js.html +1 -1
  298. data/docs/brut-js/api/testing_CustomElementTest.js.html +1 -1
  299. data/docs/brut-js/api/testing_DOMCreator.js.html +1 -1
  300. data/docs/brut-js/api/testing_index.js.html +1 -1
  301. data/docs/brut-js.html +4 -4
  302. data/docs/business-logic.html +4 -4
  303. data/docs/cli.html +4 -4
  304. data/docs/components.html +8 -8
  305. data/docs/configuration.html +5 -5
  306. data/docs/css.html +4 -4
  307. data/docs/custom-element-tests.html +4 -4
  308. data/docs/database-access.html +4 -4
  309. data/docs/database-schema.html +4 -4
  310. data/docs/deployment.html +13 -6
  311. data/docs/dev-environment.html +4 -4
  312. data/docs/dir-structure.html +4 -4
  313. data/docs/doc-conventions.html +4 -4
  314. data/docs/end-to-end-tests.html +4 -4
  315. data/docs/features.html +4 -4
  316. data/docs/flash-and-session.html +4 -4
  317. data/docs/form-constraints.html +4 -4
  318. data/docs/forms.html +6 -6
  319. data/docs/getting-started.html +7 -7
  320. data/docs/handlers.html +4 -4
  321. data/docs/hashmap.json +1 -1
  322. data/docs/hooks.html +4 -4
  323. data/docs/i18n.html +4 -4
  324. data/docs/index.html +3 -3
  325. data/docs/instrumentation.html +4 -4
  326. data/docs/javascript.html +4 -4
  327. data/docs/jobs.html +29 -5
  328. data/docs/keyword-injection.html +4 -4
  329. data/docs/layouts.html +4 -4
  330. data/docs/lsp.html +4 -4
  331. data/docs/markdown-examples.html +4 -4
  332. data/docs/middleware.html +4 -4
  333. data/docs/overview.html +4 -4
  334. data/docs/pages.html +4 -4
  335. data/docs/recipes/alternate-layouts.html +5 -5
  336. data/docs/recipes/authentication.html +5 -5
  337. data/docs/recipes/custom-flash.html +5 -5
  338. data/docs/recipes/dev-env-secrets.html +40 -0
  339. data/docs/recipes/form-errors.html +5 -5
  340. data/docs/recipes/indexed-forms.html +5 -5
  341. data/docs/recipes/migrations.html +5 -5
  342. data/docs/recipes/text-field-component.html +5 -5
  343. data/docs/roadmap.html +5 -5
  344. data/docs/routes.html +4 -4
  345. data/docs/security.html +4 -4
  346. data/docs/seed-data.html +4 -4
  347. data/docs/space-time-continuum.html +4 -4
  348. data/docs/tutorial.html +4 -4
  349. data/docs/tutorials/01-intro.html +4 -4
  350. data/docs/tutorials/02-dialog.html +5 -5
  351. data/docs/unit-tests.html +4 -4
  352. data/docs/why.html +4 -4
  353. data/lib/brut/version.rb +1 -1
  354. data/mkbrut/Gemfile.lock +2 -1
  355. data/mkbrut/lib/mkbrut/version.rb +1 -1
  356. data/mkbrut/templates/segments/Heroku/deploy/Dockerfile +9 -7
  357. data/mkbrut/templates/segments/Heroku/deploy/heroku_config.rb +2 -2
  358. metadata +24 -23
  359. data/docs/api/SpecSupport/Matchers/BeABug.html +0 -143
  360. data/docs/assets/chunks/@localSearchIndexroot.BiNFswvo.js +0 -1
  361. data/docs/assets/jobs.md.Bc7Y1YpK.js +0 -1
  362. data/docs/assets/jobs.md.Bc7Y1YpK.lean.js +0 -1
  363. data/docs/assets/roadmap.md.CJsbUmK_.js +0 -1
  364. data/docs/brut-css/brut.css +0 -1
  365. /data/docs/assets/{components.md.Dfd3w6UW.lean.js → components.md.9sqJ27Oc.lean.js} +0 -0
  366. /data/docs/assets/{configuration.md.DTYoV2Ea.lean.js → configuration.md.Cb_oAR8Z.lean.js} +0 -0
  367. /data/docs/assets/{forms.md.DEkmJUvb.lean.js → forms.md.BdpYpNIk.lean.js} +0 -0
  368. /data/docs/assets/{getting-started.md.DO-4eoGW.lean.js → getting-started.md.CKpNGvno.lean.js} +0 -0
  369. /data/docs/assets/{tutorials_02-dialog.md.D2vSjDVf.lean.js → tutorials_02-dialog.md.Z_DOF2mU.lean.js} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98447eff97921a8aeb30a9ffa801452a97c8f46a6169e300f6792582c6af191c
4
- data.tar.gz: 3040a27ce2283e967f0f0bac694cb0a4fcaa7c7c0bd1bb2c52246dea9dcc2ba5
3
+ metadata.gz: cfc3d9ad3e55165ded7d3ea588c67390f92394c3b0b2c6e256417d552ec384f7
4
+ data.tar.gz: 6d9f2fa3aca410336dab2d5dd9142ab4fcace09c267eb33feb9fe5f0628e6acf
5
5
  SHA512:
6
- metadata.gz: 834e282f6c08942742733de34e04b9b4ada8cf03bbff02b6604fe54a49af28d1fdebe9da173b852e49f29ab87562335495fc9b6846a0b3a6184aa833677908d1
7
- data.tar.gz: 9d41d53d28c12e4d5a99ab81490f10c5e0ccb4f6158c1c1dee51ba5321e3d1e92c04e5e1d566815319dea20bc0071662da174c4d930e84d7a30510da1a382cca
6
+ metadata.gz: f9ff8c13f40ba7ab458d94eedd0cc990a2ca4b495f7de915b77ad5d923b52d1861f7b67bf2db2d47e4a7e77391cdd6da0043b69d9ef7032a4985a1655cae5969
7
+ data.tar.gz: 23743abf0f6ad74a8b1eabb2805cd8bd73dde83b755901c3541be970640395fc4b67f83420935f2e0615c0f3b7deb50aeb169a61135a8352c3a430996d2e8ac0
data/CHANGELOG.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Brut CHANGELOG
2
2
 
3
- ## v0.16.0.pre - Sep 29, 2025
3
+ ## v0.16.0 - Sep 29, 2025
4
4
 
5
- * Sidekiq support - this may have some churn in various config files that only reveal themselves on deploy so this
6
- is a pre-release. Do not use this version.
5
+ * Sidekiq support via a *segment*. This is a thing that can be installed by `mkbrut` after you create your app.
6
+ * Improvcements to Heroku deployments. Generally make Docker builds faster and more reliable
7
+ * Changes in how Node is installed. Instead of using NVM this copies files from the Node Docker image
7
8
 
8
9
  ## v0.15.0 - Sep 16, 2025
9
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brut (0.16.0.pre)
4
+ brut (0.16.0)
5
5
  concurrent-ruby
6
6
  i18n
7
7
  irb
@@ -23,7 +23,7 @@ PATH
23
23
  GEM
24
24
  remote: https://rubygems.org/
25
25
  specs:
26
- activesupport (8.0.2.1)
26
+ activesupport (8.0.3)
27
27
  base64
28
28
  benchmark (>= 0.3)
29
29
  bigdecimal
@@ -51,22 +51,25 @@ GEM
51
51
  activesupport (>= 6.1.0)
52
52
  faker (3.5.2)
53
53
  i18n (>= 1.8.11, < 2)
54
- google-protobuf (4.32.0)
54
+ google-protobuf (4.32.1)
55
55
  bigdecimal
56
56
  rake (>= 13)
57
- google-protobuf (4.32.0-aarch64-linux-gnu)
57
+ google-protobuf (4.32.1-aarch64-linux-gnu)
58
58
  bigdecimal
59
59
  rake (>= 13)
60
- google-protobuf (4.32.0-arm64-darwin)
60
+ google-protobuf (4.32.1-aarch64-linux-musl)
61
61
  bigdecimal
62
62
  rake (>= 13)
63
- google-protobuf (4.32.0-x86-linux-gnu)
63
+ google-protobuf (4.32.1-arm64-darwin)
64
64
  bigdecimal
65
65
  rake (>= 13)
66
- google-protobuf (4.32.0-x86_64-darwin)
66
+ google-protobuf (4.32.1-x86_64-darwin)
67
67
  bigdecimal
68
68
  rake (>= 13)
69
- google-protobuf (4.32.0-x86_64-linux-gnu)
69
+ google-protobuf (4.32.1-x86_64-linux-gnu)
70
+ bigdecimal
71
+ rake (>= 13)
72
+ google-protobuf (4.32.1-x86_64-linux-musl)
70
73
  bigdecimal
71
74
  rake (>= 13)
72
75
  googleapis-common-protos-types (1.21.0)
@@ -78,28 +81,30 @@ GEM
78
81
  pp (>= 0.6.0)
79
82
  rdoc (>= 4.0.0)
80
83
  reline (>= 0.4.2)
81
- json (2.13.2)
84
+ json (2.15.0)
82
85
  language_server-protocol (3.17.0.5)
83
86
  lint_roller (1.1.0)
84
87
  logger (1.7.0)
85
- mini_portile2 (2.8.9)
86
88
  minitest (5.25.5)
87
89
  mustermann (3.0.4)
88
90
  ruby2_keywords (~> 0.0.1)
89
- nokogiri (1.18.9)
90
- mini_portile2 (~> 2.8.2)
91
+ nokogiri (1.18.10-aarch64-linux-gnu)
92
+ racc (~> 1.4)
93
+ nokogiri (1.18.10-aarch64-linux-musl)
94
+ racc (~> 1.4)
95
+ nokogiri (1.18.10-arm-linux-gnu)
91
96
  racc (~> 1.4)
92
- nokogiri (1.18.9-aarch64-linux-gnu)
97
+ nokogiri (1.18.10-arm-linux-musl)
93
98
  racc (~> 1.4)
94
- nokogiri (1.18.9-arm-linux-gnu)
99
+ nokogiri (1.18.10-arm64-darwin)
95
100
  racc (~> 1.4)
96
- nokogiri (1.18.9-arm64-darwin)
101
+ nokogiri (1.18.10-x86_64-darwin)
97
102
  racc (~> 1.4)
98
- nokogiri (1.18.9-x86_64-darwin)
103
+ nokogiri (1.18.10-x86_64-linux-gnu)
99
104
  racc (~> 1.4)
100
- nokogiri (1.18.9-x86_64-linux-gnu)
105
+ nokogiri (1.18.10-x86_64-linux-musl)
101
106
  racc (~> 1.4)
102
- opentelemetry-api (1.6.0)
107
+ opentelemetry-api (1.7.0)
103
108
  opentelemetry-common (0.22.0)
104
109
  opentelemetry-api (~> 1.0)
105
110
  opentelemetry-exporter-otlp (0.30.0)
@@ -111,12 +116,12 @@ GEM
111
116
  opentelemetry-semantic_conventions
112
117
  opentelemetry-registry (0.4.0)
113
118
  opentelemetry-api (~> 1.1)
114
- opentelemetry-sdk (1.8.1)
119
+ opentelemetry-sdk (1.9.0)
115
120
  opentelemetry-api (~> 1.1)
116
121
  opentelemetry-common (~> 0.20)
117
122
  opentelemetry-registry (~> 0.2)
118
123
  opentelemetry-semantic_conventions
119
- opentelemetry-semantic_conventions (1.11.0)
124
+ opentelemetry-semantic_conventions (1.36.0)
120
125
  opentelemetry-api (~> 1.0)
121
126
  ostruct (0.6.3)
122
127
  parallel (1.27.0)
@@ -128,7 +133,7 @@ GEM
128
133
  pp (0.6.2)
129
134
  prettyprint
130
135
  prettyprint (0.2.0)
131
- prism (1.4.0)
136
+ prism (1.5.1)
132
137
  psych (5.2.6)
133
138
  date
134
139
  stringio
@@ -149,7 +154,7 @@ GEM
149
154
  rdoc (6.14.2)
150
155
  erb
151
156
  psych (>= 4.0.0)
152
- regexp_parser (2.11.2)
157
+ regexp_parser (2.11.3)
153
158
  reline (0.6.2)
154
159
  io-console (~> 0.5)
155
160
  rspec (3.13.1)
@@ -164,8 +169,8 @@ GEM
164
169
  rspec-mocks (3.13.5)
165
170
  diff-lcs (>= 1.2.0, < 2.0)
166
171
  rspec-support (~> 3.13.0)
167
- rspec-support (3.13.5)
168
- rubocop (1.80.2)
172
+ rspec-support (3.13.6)
173
+ rubocop (1.81.1)
169
174
  json (~> 2.3)
170
175
  language_server-protocol (~> 3.17.0.2)
171
176
  lint_roller (~> 1.1.0)
@@ -173,10 +178,10 @@ GEM
173
178
  parser (>= 3.3.0.2)
174
179
  rainbow (>= 2.2.2, < 4.0)
175
180
  regexp_parser (>= 2.9.3, < 3.0)
176
- rubocop-ast (>= 1.46.0, < 2.0)
181
+ rubocop-ast (>= 1.47.1, < 2.0)
177
182
  ruby-progressbar (~> 1.7)
178
183
  unicode-display_width (>= 2.4.0, < 4.0)
179
- rubocop-ast (1.46.0)
184
+ rubocop-ast (1.47.1)
180
185
  parser (>= 3.3.7.2)
181
186
  prism (~> 1.4)
182
187
  rubocop-disable_syntax (0.2.0)
@@ -202,20 +207,22 @@ GEM
202
207
  concurrent-ruby (~> 1.0)
203
208
  tzinfo-data (1.2025.2)
204
209
  tzinfo (>= 1.0.0)
205
- unicode-display_width (3.1.5)
206
- unicode-emoji (~> 4.0, >= 4.0.4)
207
- unicode-emoji (4.0.4)
210
+ unicode-display_width (3.2.0)
211
+ unicode-emoji (~> 4.1)
212
+ unicode-emoji (4.1.0)
208
213
  uri (1.0.3)
209
214
  yard (0.9.37)
210
215
  zeitwerk (2.7.3)
211
216
 
212
217
  PLATFORMS
213
- aarch64-linux
214
- arm-linux
218
+ aarch64-linux-gnu
219
+ aarch64-linux-musl
220
+ arm-linux-gnu
221
+ arm-linux-musl
215
222
  arm64-darwin
216
- x86-linux
217
223
  x86_64-darwin
218
- x86_64-linux
224
+ x86_64-linux-gnu
225
+ x86_64-linux-musl
219
226
 
220
227
  DEPENDENCIES
221
228
  activesupport
@@ -233,4 +240,4 @@ DEPENDENCIES
233
240
  yard
234
241
 
235
242
  BUNDLED WITH
236
- 2.5.23
243
+ 2.7.2
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "brut-css",
3
- "version": "0.16.0.pre",
3
+ "version": "0.16.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "brut-css",
9
- "version": "0.16.0.pre",
9
+ "version": "0.16.0",
10
10
  "license": "Hippocratic-2.1",
11
11
  "devDependencies": {
12
12
  "comment-parser": "^1.4.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brut-css",
3
- "version": "0.16.0.pre",
3
+ "version": "0.16.0",
4
4
  "description": "Utility CSS Library for Full Stack Developers",
5
5
  "keywords": [
6
6
  "css"
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "brut-js",
3
- "version": "0.16.0.pre",
3
+ "version": "0.16.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "brut-js",
9
- "version": "0.16.0.pre",
9
+ "version": "0.16.0",
10
10
  "license": "Hippocratic-2.1",
11
11
  "devDependencies": {
12
12
  "esbuild": "^0.24.2",
13
+ "jsdoc": "^4.0.4",
13
14
  "jsdom": "^26.1.0",
14
15
  "mocha": "^10.8.2"
15
16
  }
@@ -28,6 +29,56 @@
28
29
  "lru-cache": "^10.4.3"
29
30
  }
30
31
  },
32
+ "node_modules/@babel/helper-string-parser": {
33
+ "version": "7.27.1",
34
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
35
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
36
+ "dev": true,
37
+ "license": "MIT",
38
+ "engines": {
39
+ "node": ">=6.9.0"
40
+ }
41
+ },
42
+ "node_modules/@babel/helper-validator-identifier": {
43
+ "version": "7.27.1",
44
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
45
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
46
+ "dev": true,
47
+ "license": "MIT",
48
+ "engines": {
49
+ "node": ">=6.9.0"
50
+ }
51
+ },
52
+ "node_modules/@babel/parser": {
53
+ "version": "7.28.4",
54
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz",
55
+ "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==",
56
+ "dev": true,
57
+ "license": "MIT",
58
+ "dependencies": {
59
+ "@babel/types": "^7.28.4"
60
+ },
61
+ "bin": {
62
+ "parser": "bin/babel-parser.js"
63
+ },
64
+ "engines": {
65
+ "node": ">=6.0.0"
66
+ }
67
+ },
68
+ "node_modules/@babel/types": {
69
+ "version": "7.28.4",
70
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz",
71
+ "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==",
72
+ "dev": true,
73
+ "license": "MIT",
74
+ "dependencies": {
75
+ "@babel/helper-string-parser": "^7.27.1",
76
+ "@babel/helper-validator-identifier": "^7.27.1"
77
+ },
78
+ "engines": {
79
+ "node": ">=6.9.0"
80
+ }
81
+ },
31
82
  "node_modules/@csstools/color-helpers": {
32
83
  "version": "5.1.0",
33
84
  "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
@@ -568,6 +619,44 @@
568
619
  "node": ">=18"
569
620
  }
570
621
  },
622
+ "node_modules/@jsdoc/salty": {
623
+ "version": "0.2.9",
624
+ "resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.9.tgz",
625
+ "integrity": "sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==",
626
+ "dev": true,
627
+ "license": "Apache-2.0",
628
+ "dependencies": {
629
+ "lodash": "^4.17.21"
630
+ },
631
+ "engines": {
632
+ "node": ">=v12.0.0"
633
+ }
634
+ },
635
+ "node_modules/@types/linkify-it": {
636
+ "version": "5.0.0",
637
+ "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
638
+ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==",
639
+ "dev": true,
640
+ "license": "MIT"
641
+ },
642
+ "node_modules/@types/markdown-it": {
643
+ "version": "14.1.2",
644
+ "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.1.2.tgz",
645
+ "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==",
646
+ "dev": true,
647
+ "license": "MIT",
648
+ "dependencies": {
649
+ "@types/linkify-it": "^5",
650
+ "@types/mdurl": "^2"
651
+ }
652
+ },
653
+ "node_modules/@types/mdurl": {
654
+ "version": "2.0.0",
655
+ "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-2.0.0.tgz",
656
+ "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==",
657
+ "dev": true,
658
+ "license": "MIT"
659
+ },
571
660
  "node_modules/agent-base": {
572
661
  "version": "7.1.4",
573
662
  "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
@@ -655,6 +744,13 @@
655
744
  "url": "https://github.com/sponsors/sindresorhus"
656
745
  }
657
746
  },
747
+ "node_modules/bluebird": {
748
+ "version": "3.7.2",
749
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
750
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
751
+ "dev": true,
752
+ "license": "MIT"
753
+ },
658
754
  "node_modules/brace-expansion": {
659
755
  "version": "2.0.2",
660
756
  "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
@@ -698,6 +794,19 @@
698
794
  "url": "https://github.com/sponsors/sindresorhus"
699
795
  }
700
796
  },
797
+ "node_modules/catharsis": {
798
+ "version": "0.9.0",
799
+ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz",
800
+ "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==",
801
+ "dev": true,
802
+ "license": "MIT",
803
+ "dependencies": {
804
+ "lodash": "^4.17.15"
805
+ },
806
+ "engines": {
807
+ "node": ">= 10"
808
+ }
809
+ },
701
810
  "node_modules/chalk": {
702
811
  "version": "4.1.2",
703
812
  "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -1051,6 +1160,13 @@
1051
1160
  "node": ">= 6"
1052
1161
  }
1053
1162
  },
1163
+ "node_modules/graceful-fs": {
1164
+ "version": "4.2.11",
1165
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1166
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1167
+ "dev": true,
1168
+ "license": "ISC"
1169
+ },
1054
1170
  "node_modules/has-flag": {
1055
1171
  "version": "4.0.0",
1056
1172
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -1243,6 +1359,56 @@
1243
1359
  "js-yaml": "bin/js-yaml.js"
1244
1360
  }
1245
1361
  },
1362
+ "node_modules/js2xmlparser": {
1363
+ "version": "4.0.2",
1364
+ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz",
1365
+ "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==",
1366
+ "dev": true,
1367
+ "license": "Apache-2.0",
1368
+ "dependencies": {
1369
+ "xmlcreate": "^2.0.4"
1370
+ }
1371
+ },
1372
+ "node_modules/jsdoc": {
1373
+ "version": "4.0.4",
1374
+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-4.0.4.tgz",
1375
+ "integrity": "sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==",
1376
+ "dev": true,
1377
+ "license": "Apache-2.0",
1378
+ "dependencies": {
1379
+ "@babel/parser": "^7.20.15",
1380
+ "@jsdoc/salty": "^0.2.1",
1381
+ "@types/markdown-it": "^14.1.1",
1382
+ "bluebird": "^3.7.2",
1383
+ "catharsis": "^0.9.0",
1384
+ "escape-string-regexp": "^2.0.0",
1385
+ "js2xmlparser": "^4.0.2",
1386
+ "klaw": "^3.0.0",
1387
+ "markdown-it": "^14.1.0",
1388
+ "markdown-it-anchor": "^8.6.7",
1389
+ "marked": "^4.0.10",
1390
+ "mkdirp": "^1.0.4",
1391
+ "requizzle": "^0.2.3",
1392
+ "strip-json-comments": "^3.1.0",
1393
+ "underscore": "~1.13.2"
1394
+ },
1395
+ "bin": {
1396
+ "jsdoc": "jsdoc.js"
1397
+ },
1398
+ "engines": {
1399
+ "node": ">=12.0.0"
1400
+ }
1401
+ },
1402
+ "node_modules/jsdoc/node_modules/escape-string-regexp": {
1403
+ "version": "2.0.0",
1404
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
1405
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
1406
+ "dev": true,
1407
+ "license": "MIT",
1408
+ "engines": {
1409
+ "node": ">=8"
1410
+ }
1411
+ },
1246
1412
  "node_modules/jsdom": {
1247
1413
  "version": "26.1.0",
1248
1414
  "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz",
@@ -1283,6 +1449,26 @@
1283
1449
  }
1284
1450
  }
1285
1451
  },
1452
+ "node_modules/klaw": {
1453
+ "version": "3.0.0",
1454
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz",
1455
+ "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==",
1456
+ "dev": true,
1457
+ "license": "MIT",
1458
+ "dependencies": {
1459
+ "graceful-fs": "^4.1.9"
1460
+ }
1461
+ },
1462
+ "node_modules/linkify-it": {
1463
+ "version": "5.0.0",
1464
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
1465
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
1466
+ "dev": true,
1467
+ "license": "MIT",
1468
+ "dependencies": {
1469
+ "uc.micro": "^2.0.0"
1470
+ }
1471
+ },
1286
1472
  "node_modules/locate-path": {
1287
1473
  "version": "6.0.0",
1288
1474
  "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -1299,6 +1485,13 @@
1299
1485
  "url": "https://github.com/sponsors/sindresorhus"
1300
1486
  }
1301
1487
  },
1488
+ "node_modules/lodash": {
1489
+ "version": "4.17.21",
1490
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1491
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1492
+ "dev": true,
1493
+ "license": "MIT"
1494
+ },
1302
1495
  "node_modules/log-symbols": {
1303
1496
  "version": "4.1.0",
1304
1497
  "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -1323,6 +1516,68 @@
1323
1516
  "dev": true,
1324
1517
  "license": "ISC"
1325
1518
  },
1519
+ "node_modules/markdown-it": {
1520
+ "version": "14.1.0",
1521
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
1522
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
1523
+ "dev": true,
1524
+ "license": "MIT",
1525
+ "dependencies": {
1526
+ "argparse": "^2.0.1",
1527
+ "entities": "^4.4.0",
1528
+ "linkify-it": "^5.0.0",
1529
+ "mdurl": "^2.0.0",
1530
+ "punycode.js": "^2.3.1",
1531
+ "uc.micro": "^2.1.0"
1532
+ },
1533
+ "bin": {
1534
+ "markdown-it": "bin/markdown-it.mjs"
1535
+ }
1536
+ },
1537
+ "node_modules/markdown-it-anchor": {
1538
+ "version": "8.6.7",
1539
+ "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz",
1540
+ "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==",
1541
+ "dev": true,
1542
+ "license": "Unlicense",
1543
+ "peerDependencies": {
1544
+ "@types/markdown-it": "*",
1545
+ "markdown-it": "*"
1546
+ }
1547
+ },
1548
+ "node_modules/markdown-it/node_modules/entities": {
1549
+ "version": "4.5.0",
1550
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
1551
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
1552
+ "dev": true,
1553
+ "license": "BSD-2-Clause",
1554
+ "engines": {
1555
+ "node": ">=0.12"
1556
+ },
1557
+ "funding": {
1558
+ "url": "https://github.com/fb55/entities?sponsor=1"
1559
+ }
1560
+ },
1561
+ "node_modules/marked": {
1562
+ "version": "4.3.0",
1563
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
1564
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
1565
+ "dev": true,
1566
+ "license": "MIT",
1567
+ "bin": {
1568
+ "marked": "bin/marked.js"
1569
+ },
1570
+ "engines": {
1571
+ "node": ">= 12"
1572
+ }
1573
+ },
1574
+ "node_modules/mdurl": {
1575
+ "version": "2.0.0",
1576
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
1577
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
1578
+ "dev": true,
1579
+ "license": "MIT"
1580
+ },
1326
1581
  "node_modules/minimatch": {
1327
1582
  "version": "5.1.6",
1328
1583
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -1336,6 +1591,19 @@
1336
1591
  "node": ">=10"
1337
1592
  }
1338
1593
  },
1594
+ "node_modules/mkdirp": {
1595
+ "version": "1.0.4",
1596
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
1597
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
1598
+ "dev": true,
1599
+ "license": "MIT",
1600
+ "bin": {
1601
+ "mkdirp": "bin/cmd.js"
1602
+ },
1603
+ "engines": {
1604
+ "node": ">=10"
1605
+ }
1606
+ },
1339
1607
  "node_modules/mocha": {
1340
1608
  "version": "10.8.2",
1341
1609
  "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz",
@@ -1484,6 +1752,16 @@
1484
1752
  "node": ">=6"
1485
1753
  }
1486
1754
  },
1755
+ "node_modules/punycode.js": {
1756
+ "version": "2.3.1",
1757
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
1758
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
1759
+ "dev": true,
1760
+ "license": "MIT",
1761
+ "engines": {
1762
+ "node": ">=6"
1763
+ }
1764
+ },
1487
1765
  "node_modules/randombytes": {
1488
1766
  "version": "2.1.0",
1489
1767
  "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -1517,6 +1795,16 @@
1517
1795
  "node": ">=0.10.0"
1518
1796
  }
1519
1797
  },
1798
+ "node_modules/requizzle": {
1799
+ "version": "0.2.4",
1800
+ "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz",
1801
+ "integrity": "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==",
1802
+ "dev": true,
1803
+ "license": "MIT",
1804
+ "dependencies": {
1805
+ "lodash": "^4.17.21"
1806
+ }
1807
+ },
1520
1808
  "node_modules/rrweb-cssom": {
1521
1809
  "version": "0.8.0",
1522
1810
  "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
@@ -1698,6 +1986,20 @@
1698
1986
  "node": ">=18"
1699
1987
  }
1700
1988
  },
1989
+ "node_modules/uc.micro": {
1990
+ "version": "2.1.0",
1991
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
1992
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
1993
+ "dev": true,
1994
+ "license": "MIT"
1995
+ },
1996
+ "node_modules/underscore": {
1997
+ "version": "1.13.7",
1998
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
1999
+ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
2000
+ "dev": true,
2001
+ "license": "MIT"
2002
+ },
1701
2003
  "node_modules/w3c-xmlserializer": {
1702
2004
  "version": "5.0.0",
1703
2005
  "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
@@ -1829,6 +2131,13 @@
1829
2131
  "dev": true,
1830
2132
  "license": "MIT"
1831
2133
  },
2134
+ "node_modules/xmlcreate": {
2135
+ "version": "2.0.4",
2136
+ "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz",
2137
+ "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==",
2138
+ "dev": true,
2139
+ "license": "Apache-2.0"
2140
+ },
1832
2141
  "node_modules/y18n": {
1833
2142
  "version": "5.0.8",
1834
2143
  "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
data/brut-js/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brut-js",
3
- "version": "0.16.0.pre",
3
+ "version": "0.16.0",
4
4
  "type": "module",
5
5
  "keywords": [
6
6
  "WebComponents",
@@ -29,6 +29,7 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "esbuild": "^0.24.2",
32
+ "jsdoc": "^4.0.4",
32
33
  "jsdom": "^26.1.0",
33
34
  "mocha": "^10.8.2"
34
35
  }
data/brutrb.com/jobs.md CHANGED
@@ -95,7 +95,7 @@ class HerokuConfig
95
95
  def self.additional_images
96
96
  {
97
97
  "sidekiq" => {
98
- cmd: "bin/run-sidekiq",
98
+ cmd: "bin/run sidekiq",
99
99
  }
100
100
  }
101
101
  end