create-qpq-app 0.1.5

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 (836) hide show
  1. package/README.md +33 -0
  2. package/lib/commonjs/bin/createQpqApp.d.ts +2 -0
  3. package/lib/commonjs/bin/createQpqApp.js +9 -0
  4. package/lib/commonjs/bin/createQpqApp.js.map +1 -0
  5. package/lib/commonjs/cli/runCreateQpqApp.d.ts +1 -0
  6. package/lib/commonjs/cli/runCreateQpqApp.js +75 -0
  7. package/lib/commonjs/cli/runCreateQpqApp.js.map +1 -0
  8. package/lib/commonjs/index.d.ts +3 -0
  9. package/lib/commonjs/index.js +20 -0
  10. package/lib/commonjs/index.js.map +1 -0
  11. package/lib/commonjs/lib/args.d.ts +2 -0
  12. package/lib/commonjs/lib/args.js +21 -0
  13. package/lib/commonjs/lib/args.js.map +1 -0
  14. package/lib/commonjs/lib/files.d.ts +5 -0
  15. package/lib/commonjs/lib/files.js +65 -0
  16. package/lib/commonjs/lib/files.js.map +1 -0
  17. package/lib/commonjs/lib/packageRoot.d.ts +2 -0
  18. package/lib/commonjs/lib/packageRoot.js +26 -0
  19. package/lib/commonjs/lib/packageRoot.js.map +1 -0
  20. package/lib/commonjs/lib/prompts.d.ts +1 -0
  21. package/lib/commonjs/lib/prompts.js +53 -0
  22. package/lib/commonjs/lib/prompts.js.map +1 -0
  23. package/lib/commonjs/lib/runCommand.d.ts +4 -0
  24. package/lib/commonjs/lib/runCommand.js +24 -0
  25. package/lib/commonjs/lib/runCommand.js.map +1 -0
  26. package/lib/commonjs/steps/001_preflight.d.ts +2 -0
  27. package/lib/commonjs/steps/001_preflight.js +36 -0
  28. package/lib/commonjs/steps/001_preflight.js.map +1 -0
  29. package/lib/commonjs/steps/002_copyTemplate.d.ts +2 -0
  30. package/lib/commonjs/steps/002_copyTemplate.js +29 -0
  31. package/lib/commonjs/steps/002_copyTemplate.js.map +1 -0
  32. package/lib/commonjs/steps/003_deleteDocusaurus.d.ts +2 -0
  33. package/lib/commonjs/steps/003_deleteDocusaurus.js +32 -0
  34. package/lib/commonjs/steps/003_deleteDocusaurus.js.map +1 -0
  35. package/lib/commonjs/steps/004_deleteQpqjsApp.d.ts +2 -0
  36. package/lib/commonjs/steps/004_deleteQpqjsApp.js +26 -0
  37. package/lib/commonjs/steps/004_deleteQpqjsApp.js.map +1 -0
  38. package/lib/commonjs/steps/005_applyAppIdentity.d.ts +2 -0
  39. package/lib/commonjs/steps/005_applyAppIdentity.js +51 -0
  40. package/lib/commonjs/steps/005_applyAppIdentity.js.map +1 -0
  41. package/lib/commonjs/steps/006_applyDomain.d.ts +2 -0
  42. package/lib/commonjs/steps/006_applyDomain.js +31 -0
  43. package/lib/commonjs/steps/006_applyDomain.js.map +1 -0
  44. package/lib/commonjs/steps/007_pinRegistryVersions.d.ts +2 -0
  45. package/lib/commonjs/steps/007_pinRegistryVersions.js +37 -0
  46. package/lib/commonjs/steps/007_pinRegistryVersions.js.map +1 -0
  47. package/lib/commonjs/steps/008_transpileToJavaScript.d.ts +2 -0
  48. package/lib/commonjs/steps/008_transpileToJavaScript.js +24 -0
  49. package/lib/commonjs/steps/008_transpileToJavaScript.js.map +1 -0
  50. package/lib/commonjs/steps/009_restoreGitignore.d.ts +2 -0
  51. package/lib/commonjs/steps/009_restoreGitignore.js +31 -0
  52. package/lib/commonjs/steps/009_restoreGitignore.js.map +1 -0
  53. package/lib/commonjs/steps/010_gitInit.d.ts +2 -0
  54. package/lib/commonjs/steps/010_gitInit.js +30 -0
  55. package/lib/commonjs/steps/010_gitInit.js.map +1 -0
  56. package/lib/commonjs/steps/011_npmInstall.d.ts +2 -0
  57. package/lib/commonjs/steps/011_npmInstall.js +21 -0
  58. package/lib/commonjs/steps/011_npmInstall.js.map +1 -0
  59. package/lib/commonjs/steps/012_buildWorkspaces.d.ts +2 -0
  60. package/lib/commonjs/steps/012_buildWorkspaces.js +24 -0
  61. package/lib/commonjs/steps/012_buildWorkspaces.js.map +1 -0
  62. package/lib/commonjs/steps/013_printNextSteps.d.ts +2 -0
  63. package/lib/commonjs/steps/013_printNextSteps.js +33 -0
  64. package/lib/commonjs/steps/013_printNextSteps.js.map +1 -0
  65. package/lib/commonjs/steps/index.d.ts +16 -0
  66. package/lib/commonjs/steps/index.js +48 -0
  67. package/lib/commonjs/steps/index.js.map +1 -0
  68. package/lib/commonjs/types.d.ts +22 -0
  69. package/lib/commonjs/types.js +9 -0
  70. package/lib/commonjs/types.js.map +1 -0
  71. package/lib/esm/bin/createQpqApp.d.ts +2 -0
  72. package/lib/esm/bin/createQpqApp.js +7 -0
  73. package/lib/esm/bin/createQpqApp.js.map +1 -0
  74. package/lib/esm/cli/runCreateQpqApp.d.ts +1 -0
  75. package/lib/esm/cli/runCreateQpqApp.js +57 -0
  76. package/lib/esm/cli/runCreateQpqApp.js.map +1 -0
  77. package/lib/esm/index.d.ts +3 -0
  78. package/lib/esm/index.js +4 -0
  79. package/lib/esm/index.js.map +1 -0
  80. package/lib/esm/lib/args.d.ts +2 -0
  81. package/lib/esm/lib/args.js +16 -0
  82. package/lib/esm/lib/args.js.map +1 -0
  83. package/lib/esm/lib/files.d.ts +5 -0
  84. package/lib/esm/lib/files.js +54 -0
  85. package/lib/esm/lib/files.js.map +1 -0
  86. package/lib/esm/lib/packageRoot.d.ts +2 -0
  87. package/lib/esm/lib/packageRoot.js +18 -0
  88. package/lib/esm/lib/packageRoot.js.map +1 -0
  89. package/lib/esm/lib/prompts.d.ts +1 -0
  90. package/lib/esm/lib/prompts.js +7 -0
  91. package/lib/esm/lib/prompts.js.map +1 -0
  92. package/lib/esm/lib/runCommand.d.ts +4 -0
  93. package/lib/esm/lib/runCommand.js +19 -0
  94. package/lib/esm/lib/runCommand.js.map +1 -0
  95. package/lib/esm/steps/001_preflight.d.ts +2 -0
  96. package/lib/esm/steps/001_preflight.js +21 -0
  97. package/lib/esm/steps/001_preflight.js.map +1 -0
  98. package/lib/esm/steps/002_copyTemplate.d.ts +2 -0
  99. package/lib/esm/steps/002_copyTemplate.js +14 -0
  100. package/lib/esm/steps/002_copyTemplate.js.map +1 -0
  101. package/lib/esm/steps/003_deleteDocusaurus.d.ts +2 -0
  102. package/lib/esm/steps/003_deleteDocusaurus.js +16 -0
  103. package/lib/esm/steps/003_deleteDocusaurus.js.map +1 -0
  104. package/lib/esm/steps/004_deleteQpqjsApp.d.ts +2 -0
  105. package/lib/esm/steps/004_deleteQpqjsApp.js +11 -0
  106. package/lib/esm/steps/004_deleteQpqjsApp.js.map +1 -0
  107. package/lib/esm/steps/005_applyAppIdentity.d.ts +2 -0
  108. package/lib/esm/steps/005_applyAppIdentity.js +36 -0
  109. package/lib/esm/steps/005_applyAppIdentity.js.map +1 -0
  110. package/lib/esm/steps/006_applyDomain.d.ts +2 -0
  111. package/lib/esm/steps/006_applyDomain.js +16 -0
  112. package/lib/esm/steps/006_applyDomain.js.map +1 -0
  113. package/lib/esm/steps/007_pinRegistryVersions.d.ts +2 -0
  114. package/lib/esm/steps/007_pinRegistryVersions.js +22 -0
  115. package/lib/esm/steps/007_pinRegistryVersions.js.map +1 -0
  116. package/lib/esm/steps/008_transpileToJavaScript.d.ts +2 -0
  117. package/lib/esm/steps/008_transpileToJavaScript.js +12 -0
  118. package/lib/esm/steps/008_transpileToJavaScript.js.map +1 -0
  119. package/lib/esm/steps/009_restoreGitignore.d.ts +2 -0
  120. package/lib/esm/steps/009_restoreGitignore.js +16 -0
  121. package/lib/esm/steps/009_restoreGitignore.js.map +1 -0
  122. package/lib/esm/steps/010_gitInit.d.ts +2 -0
  123. package/lib/esm/steps/010_gitInit.js +18 -0
  124. package/lib/esm/steps/010_gitInit.js.map +1 -0
  125. package/lib/esm/steps/011_npmInstall.d.ts +2 -0
  126. package/lib/esm/steps/011_npmInstall.js +9 -0
  127. package/lib/esm/steps/011_npmInstall.js.map +1 -0
  128. package/lib/esm/steps/012_buildWorkspaces.d.ts +2 -0
  129. package/lib/esm/steps/012_buildWorkspaces.js +12 -0
  130. package/lib/esm/steps/012_buildWorkspaces.js.map +1 -0
  131. package/lib/esm/steps/013_printNextSteps.d.ts +2 -0
  132. package/lib/esm/steps/013_printNextSteps.js +21 -0
  133. package/lib/esm/steps/013_printNextSteps.js.map +1 -0
  134. package/lib/esm/steps/index.d.ts +16 -0
  135. package/lib/esm/steps/index.js +33 -0
  136. package/lib/esm/steps/index.js.map +1 -0
  137. package/lib/esm/types.d.ts +22 -0
  138. package/lib/esm/types.js +6 -0
  139. package/lib/esm/types.js.map +1 -0
  140. package/package.json +57 -0
  141. package/template/.nvmrc +1 -0
  142. package/template/.prettierignore +4 -0
  143. package/template/.prettierrc +4 -0
  144. package/template/.vscode/extensions.json +3 -0
  145. package/template/.vscode/settings.json +14 -0
  146. package/template/README.md +150 -0
  147. package/template/apps/qpqjs/account.qpq.ts +39 -0
  148. package/template/apps/qpqjs/bootstrap.qpq.ts +36 -0
  149. package/template/apps/qpqjs/deploy.config.json +24 -0
  150. package/template/apps/qpqjs/packages/config/package.json +22 -0
  151. package/template/apps/qpqjs/packages/config/src/index.ts +2 -0
  152. package/template/apps/qpqjs/packages/config/tsconfig.json +18 -0
  153. package/template/apps/qpqjs/packages/config/tsconfig.lib.json +19 -0
  154. package/template/apps/qpqjs/packages/constants/package.json +22 -0
  155. package/template/apps/qpqjs/packages/constants/src/QpqjsServiceEnum.ts +11 -0
  156. package/template/apps/qpqjs/packages/constants/src/domain.ts +1 -0
  157. package/template/apps/qpqjs/packages/constants/src/index.ts +3 -0
  158. package/template/apps/qpqjs/packages/constants/src/userDirectory.ts +3 -0
  159. package/template/apps/qpqjs/packages/constants/tsconfig.json +18 -0
  160. package/template/apps/qpqjs/packages/constants/tsconfig.lib.json +19 -0
  161. package/template/apps/qpqjs/packages/service-utils/package.json +24 -0
  162. package/template/apps/qpqjs/packages/service-utils/src/defineQpqjsService.ts +148 -0
  163. package/template/apps/qpqjs/packages/service-utils/src/index.ts +1 -0
  164. package/template/apps/qpqjs/packages/service-utils/tsconfig.json +18 -0
  165. package/template/apps/qpqjs/packages/service-utils/tsconfig.lib.json +19 -0
  166. package/template/apps/qpqjs/services/admin/config/package.json +22 -0
  167. package/template/apps/qpqjs/services/admin/config/src/index.ts +2 -0
  168. package/template/apps/qpqjs/services/admin/config/tsconfig.json +18 -0
  169. package/template/apps/qpqjs/services/admin/config/tsconfig.lib.json +19 -0
  170. package/template/apps/qpqjs/services/admin/models/package.json +22 -0
  171. package/template/apps/qpqjs/services/admin/models/src/index.ts +2 -0
  172. package/template/apps/qpqjs/services/admin/models/tsconfig.json +18 -0
  173. package/template/apps/qpqjs/services/admin/models/tsconfig.lib.json +19 -0
  174. package/template/apps/qpqjs/services/admin/service/package.json +9 -0
  175. package/template/apps/qpqjs/services/admin/service/src/infrastructure.ts +15 -0
  176. package/template/apps/qpqjs/services/admin/service/tsconfig.app.json +17 -0
  177. package/template/apps/qpqjs/services/admin/service/tsconfig.json +8 -0
  178. package/template/apps/qpqjs/services/admin/service-utils/package.json +22 -0
  179. package/template/apps/qpqjs/services/admin/service-utils/src/index.ts +2 -0
  180. package/template/apps/qpqjs/services/admin/service-utils/tsconfig.json +18 -0
  181. package/template/apps/qpqjs/services/admin/service-utils/tsconfig.lib.json +19 -0
  182. package/template/apps/qpqjs/services/admin/shared-logic/package.json +22 -0
  183. package/template/apps/qpqjs/services/admin/shared-logic/src/index.ts +2 -0
  184. package/template/apps/qpqjs/services/admin/shared-logic/tsconfig.json +18 -0
  185. package/template/apps/qpqjs/services/admin/shared-logic/tsconfig.lib.json +19 -0
  186. package/template/apps/qpqjs/services/admin/views/package.json +8 -0
  187. package/template/apps/qpqjs/services/admin/views/src/app/app.tsx +39 -0
  188. package/template/apps/qpqjs/services/admin/views/src/assets/.gitkeep +0 -0
  189. package/template/apps/qpqjs/services/admin/views/src/bootstrap.tsx +14 -0
  190. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/AdminGrid.tsx +80 -0
  191. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/index.ts +1 -0
  192. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/styles.ts +41 -0
  193. package/template/apps/qpqjs/services/admin/views/src/components/AdminGrid/types/AdminGridProps.ts +6 -0
  194. package/template/apps/qpqjs/services/admin/views/src/components/index.ts +1 -0
  195. package/template/apps/qpqjs/services/admin/views/src/favicon.ico +0 -0
  196. package/template/apps/qpqjs/services/admin/views/src/hooks/index.ts +1 -0
  197. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/index.ts +1 -0
  198. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/logic/getBaseUrlFromAdminWebHost.ts +7 -0
  199. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/types/AdminNetworkRequestPayload.ts +10 -0
  200. package/template/apps/qpqjs/services/admin/views/src/hooks/useAdminNetworkRequest/useAdminNetworkRequest.ts +18 -0
  201. package/template/apps/qpqjs/services/admin/views/src/index.html +23 -0
  202. package/template/apps/qpqjs/services/admin/views/src/index.ts +2 -0
  203. package/template/apps/qpqjs/services/admin/views/src/main.ts +1 -0
  204. package/template/apps/qpqjs/services/admin/views/tsconfig.app.json +20 -0
  205. package/template/apps/qpqjs/services/admin/views/tsconfig.json +18 -0
  206. package/template/apps/qpqjs/services/admin/x-logic/package.json +22 -0
  207. package/template/apps/qpqjs/services/admin/x-logic/src/index.ts +2 -0
  208. package/template/apps/qpqjs/services/admin/x-logic/tsconfig.json +18 -0
  209. package/template/apps/qpqjs/services/admin/x-logic/tsconfig.lib.json +19 -0
  210. package/template/apps/qpqjs/services/admin/x-models/package.json +22 -0
  211. package/template/apps/qpqjs/services/admin/x-models/src/index.ts +2 -0
  212. package/template/apps/qpqjs/services/admin/x-models/tsconfig.json +18 -0
  213. package/template/apps/qpqjs/services/admin/x-models/tsconfig.lib.json +19 -0
  214. package/template/apps/qpqjs/services/design/config/package.json +22 -0
  215. package/template/apps/qpqjs/services/design/config/src/index.ts +2 -0
  216. package/template/apps/qpqjs/services/design/config/tsconfig.json +18 -0
  217. package/template/apps/qpqjs/services/design/config/tsconfig.lib.json +19 -0
  218. package/template/apps/qpqjs/services/design/models/package.json +22 -0
  219. package/template/apps/qpqjs/services/design/models/src/index.ts +2 -0
  220. package/template/apps/qpqjs/services/design/models/tsconfig.json +18 -0
  221. package/template/apps/qpqjs/services/design/models/tsconfig.lib.json +19 -0
  222. package/template/apps/qpqjs/services/design/service/package.json +9 -0
  223. package/template/apps/qpqjs/services/design/service/src/infrastructure.ts +15 -0
  224. package/template/apps/qpqjs/services/design/service/tsconfig.app.json +17 -0
  225. package/template/apps/qpqjs/services/design/service/tsconfig.json +8 -0
  226. package/template/apps/qpqjs/services/design/service-utils/package.json +22 -0
  227. package/template/apps/qpqjs/services/design/service-utils/src/index.ts +2 -0
  228. package/template/apps/qpqjs/services/design/service-utils/tsconfig.json +18 -0
  229. package/template/apps/qpqjs/services/design/service-utils/tsconfig.lib.json +19 -0
  230. package/template/apps/qpqjs/services/design/shared-logic/package.json +22 -0
  231. package/template/apps/qpqjs/services/design/shared-logic/src/index.ts +2 -0
  232. package/template/apps/qpqjs/services/design/shared-logic/tsconfig.json +18 -0
  233. package/template/apps/qpqjs/services/design/shared-logic/tsconfig.lib.json +19 -0
  234. package/template/apps/qpqjs/services/design/views/package.json +8 -0
  235. package/template/apps/qpqjs/services/design/views/src/app.tsx +7 -0
  236. package/template/apps/qpqjs/services/design/views/src/bootstrap.tsx +14 -0
  237. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/LandingPage.tsx +20 -0
  238. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/CodeWindow.tsx +77 -0
  239. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Features.tsx +83 -0
  240. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Footer.tsx +45 -0
  241. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Hero.tsx +60 -0
  242. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/InstallChip.tsx +27 -0
  243. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/NavBar.tsx +72 -0
  244. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Packages.tsx +63 -0
  245. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/Pipeline.tsx +58 -0
  246. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/TronGrid.tsx +587 -0
  247. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/components/YieldLoop.tsx +361 -0
  248. package/template/apps/qpqjs/services/design/views/src/components/LandingPage/landing.css +1170 -0
  249. package/template/apps/qpqjs/services/design/views/src/components/WelcomeScreen/WelcomeScreen.tsx +85 -0
  250. package/template/apps/qpqjs/services/design/views/src/index.html +12 -0
  251. package/template/apps/qpqjs/services/design/views/src/index.ts +1 -0
  252. package/template/apps/qpqjs/services/design/views/src/main.ts +1 -0
  253. package/template/apps/qpqjs/services/design/views/tsconfig.app.json +20 -0
  254. package/template/apps/qpqjs/services/design/views/tsconfig.json +18 -0
  255. package/template/apps/qpqjs/services/design/x-logic/package.json +22 -0
  256. package/template/apps/qpqjs/services/design/x-logic/src/index.ts +2 -0
  257. package/template/apps/qpqjs/services/design/x-logic/tsconfig.json +18 -0
  258. package/template/apps/qpqjs/services/design/x-logic/tsconfig.lib.json +19 -0
  259. package/template/apps/qpqjs/services/design/x-models/package.json +22 -0
  260. package/template/apps/qpqjs/services/design/x-models/src/index.ts +2 -0
  261. package/template/apps/qpqjs/services/design/x-models/tsconfig.json +18 -0
  262. package/template/apps/qpqjs/services/design/x-models/tsconfig.lib.json +19 -0
  263. package/template/apps/qpqjs/services/shell/config/package.json +22 -0
  264. package/template/apps/qpqjs/services/shell/config/src/index.ts +2 -0
  265. package/template/apps/qpqjs/services/shell/config/tsconfig.json +18 -0
  266. package/template/apps/qpqjs/services/shell/config/tsconfig.lib.json +19 -0
  267. package/template/apps/qpqjs/services/shell/models/package.json +22 -0
  268. package/template/apps/qpqjs/services/shell/models/src/index.ts +2 -0
  269. package/template/apps/qpqjs/services/shell/models/tsconfig.json +18 -0
  270. package/template/apps/qpqjs/services/shell/models/tsconfig.lib.json +19 -0
  271. package/template/apps/qpqjs/services/shell/service/package.json +9 -0
  272. package/template/apps/qpqjs/services/shell/service/src/entry/controller/health/health.ts +21 -0
  273. package/template/apps/qpqjs/services/shell/service/src/entry/controller/health/index.ts +1 -0
  274. package/template/apps/qpqjs/services/shell/service/src/entry/controller/index.ts +1 -0
  275. package/template/apps/qpqjs/services/shell/service/src/infrastructure.ts +91 -0
  276. package/template/apps/qpqjs/services/shell/service/tsconfig.app.json +17 -0
  277. package/template/apps/qpqjs/services/shell/service/tsconfig.json +8 -0
  278. package/template/apps/qpqjs/services/shell/service-utils/package.json +22 -0
  279. package/template/apps/qpqjs/services/shell/service-utils/src/index.ts +2 -0
  280. package/template/apps/qpqjs/services/shell/service-utils/tsconfig.json +18 -0
  281. package/template/apps/qpqjs/services/shell/service-utils/tsconfig.lib.json +19 -0
  282. package/template/apps/qpqjs/services/shell/shared-logic/package.json +22 -0
  283. package/template/apps/qpqjs/services/shell/shared-logic/src/index.ts +2 -0
  284. package/template/apps/qpqjs/services/shell/shared-logic/tsconfig.json +18 -0
  285. package/template/apps/qpqjs/services/shell/shared-logic/tsconfig.lib.json +19 -0
  286. package/template/apps/qpqjs/services/shell/views/package.json +8 -0
  287. package/template/apps/qpqjs/services/shell/views/src/app.tsx +6 -0
  288. package/template/apps/qpqjs/services/shell/views/src/bootstrap.tsx +14 -0
  289. package/template/apps/qpqjs/services/shell/views/src/index.html +25 -0
  290. package/template/apps/qpqjs/services/shell/views/src/index.ts +1 -0
  291. package/template/apps/qpqjs/services/shell/views/src/main.ts +1 -0
  292. package/template/apps/qpqjs/services/shell/views/tsconfig.app.json +20 -0
  293. package/template/apps/qpqjs/services/shell/views/tsconfig.json +18 -0
  294. package/template/apps/qpqjs/services/shell/x-logic/package.json +22 -0
  295. package/template/apps/qpqjs/services/shell/x-logic/src/index.ts +2 -0
  296. package/template/apps/qpqjs/services/shell/x-logic/tsconfig.json +18 -0
  297. package/template/apps/qpqjs/services/shell/x-logic/tsconfig.lib.json +19 -0
  298. package/template/apps/qpqjs/services/shell/x-models/package.json +22 -0
  299. package/template/apps/qpqjs/services/shell/x-models/src/index.ts +2 -0
  300. package/template/apps/qpqjs/services/shell/x-models/tsconfig.json +18 -0
  301. package/template/apps/qpqjs/services/shell/x-models/tsconfig.lib.json +19 -0
  302. package/template/apps/qpqjs/tsconfig.federated.json +13 -0
  303. package/template/apps/todo/deploy.config.json +12 -0
  304. package/template/apps/todo/packages/config/package.json +22 -0
  305. package/template/apps/todo/packages/config/src/index.ts +2 -0
  306. package/template/apps/todo/packages/config/tsconfig.json +18 -0
  307. package/template/apps/todo/packages/config/tsconfig.lib.json +19 -0
  308. package/template/apps/todo/packages/constants/package.json +22 -0
  309. package/template/apps/todo/packages/constants/src/TodoServiceEnum.ts +12 -0
  310. package/template/apps/todo/packages/constants/src/domain.ts +1 -0
  311. package/template/apps/todo/packages/constants/src/index.ts +3 -0
  312. package/template/apps/todo/packages/constants/src/userDirectory.ts +3 -0
  313. package/template/apps/todo/packages/constants/tsconfig.json +18 -0
  314. package/template/apps/todo/packages/constants/tsconfig.lib.json +19 -0
  315. package/template/apps/todo/packages/service-utils/package.json +24 -0
  316. package/template/apps/todo/packages/service-utils/src/defineTodoService.ts +128 -0
  317. package/template/apps/todo/packages/service-utils/src/index.ts +1 -0
  318. package/template/apps/todo/packages/service-utils/tsconfig.json +18 -0
  319. package/template/apps/todo/packages/service-utils/tsconfig.lib.json +19 -0
  320. package/template/apps/todo/services/admin/config/package.json +22 -0
  321. package/template/apps/todo/services/admin/config/src/index.ts +2 -0
  322. package/template/apps/todo/services/admin/config/tsconfig.json +18 -0
  323. package/template/apps/todo/services/admin/config/tsconfig.lib.json +19 -0
  324. package/template/apps/todo/services/admin/models/package.json +22 -0
  325. package/template/apps/todo/services/admin/models/src/index.ts +2 -0
  326. package/template/apps/todo/services/admin/models/tsconfig.json +18 -0
  327. package/template/apps/todo/services/admin/models/tsconfig.lib.json +19 -0
  328. package/template/apps/todo/services/admin/service/package.json +9 -0
  329. package/template/apps/todo/services/admin/service/src/infrastructure.ts +15 -0
  330. package/template/apps/todo/services/admin/service/tsconfig.app.json +17 -0
  331. package/template/apps/todo/services/admin/service/tsconfig.json +8 -0
  332. package/template/apps/todo/services/admin/service-utils/package.json +22 -0
  333. package/template/apps/todo/services/admin/service-utils/src/index.ts +2 -0
  334. package/template/apps/todo/services/admin/service-utils/tsconfig.json +18 -0
  335. package/template/apps/todo/services/admin/service-utils/tsconfig.lib.json +19 -0
  336. package/template/apps/todo/services/admin/shared-logic/package.json +22 -0
  337. package/template/apps/todo/services/admin/shared-logic/src/index.ts +2 -0
  338. package/template/apps/todo/services/admin/shared-logic/tsconfig.json +18 -0
  339. package/template/apps/todo/services/admin/shared-logic/tsconfig.lib.json +19 -0
  340. package/template/apps/todo/services/admin/views/package.json +8 -0
  341. package/template/apps/todo/services/admin/views/src/app/app.tsx +39 -0
  342. package/template/apps/todo/services/admin/views/src/assets/.gitkeep +0 -0
  343. package/template/apps/todo/services/admin/views/src/bootstrap.tsx +14 -0
  344. package/template/apps/todo/services/admin/views/src/components/AdminGrid/AdminGrid.tsx +80 -0
  345. package/template/apps/todo/services/admin/views/src/components/AdminGrid/index.ts +1 -0
  346. package/template/apps/todo/services/admin/views/src/components/AdminGrid/styles.ts +41 -0
  347. package/template/apps/todo/services/admin/views/src/components/AdminGrid/types/AdminGridProps.ts +6 -0
  348. package/template/apps/todo/services/admin/views/src/components/index.ts +1 -0
  349. package/template/apps/todo/services/admin/views/src/favicon.ico +0 -0
  350. package/template/apps/todo/services/admin/views/src/hooks/index.ts +1 -0
  351. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/index.ts +1 -0
  352. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/logic/getBaseUrlFromAdminWebHost.ts +7 -0
  353. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/types/AdminNetworkRequestPayload.ts +10 -0
  354. package/template/apps/todo/services/admin/views/src/hooks/useAdminNetworkRequest/useAdminNetworkRequest.ts +18 -0
  355. package/template/apps/todo/services/admin/views/src/index.html +23 -0
  356. package/template/apps/todo/services/admin/views/src/index.ts +2 -0
  357. package/template/apps/todo/services/admin/views/src/main.ts +1 -0
  358. package/template/apps/todo/services/admin/views/tsconfig.app.json +20 -0
  359. package/template/apps/todo/services/admin/views/tsconfig.json +18 -0
  360. package/template/apps/todo/services/admin/x-logic/package.json +22 -0
  361. package/template/apps/todo/services/admin/x-logic/src/index.ts +2 -0
  362. package/template/apps/todo/services/admin/x-logic/tsconfig.json +18 -0
  363. package/template/apps/todo/services/admin/x-logic/tsconfig.lib.json +19 -0
  364. package/template/apps/todo/services/admin/x-models/package.json +22 -0
  365. package/template/apps/todo/services/admin/x-models/src/index.ts +2 -0
  366. package/template/apps/todo/services/admin/x-models/tsconfig.json +18 -0
  367. package/template/apps/todo/services/admin/x-models/tsconfig.lib.json +19 -0
  368. package/template/apps/todo/services/auth/config/package.json +22 -0
  369. package/template/apps/todo/services/auth/config/src/index.ts +2 -0
  370. package/template/apps/todo/services/auth/config/tsconfig.json +18 -0
  371. package/template/apps/todo/services/auth/config/tsconfig.lib.json +19 -0
  372. package/template/apps/todo/services/auth/models/package.json +22 -0
  373. package/template/apps/todo/services/auth/models/src/index.ts +2 -0
  374. package/template/apps/todo/services/auth/models/tsconfig.json +18 -0
  375. package/template/apps/todo/services/auth/models/tsconfig.lib.json +19 -0
  376. package/template/apps/todo/services/auth/service/package.json +9 -0
  377. package/template/apps/todo/services/auth/service/src/infrastructure.ts +15 -0
  378. package/template/apps/todo/services/auth/service/tsconfig.app.json +17 -0
  379. package/template/apps/todo/services/auth/service/tsconfig.json +8 -0
  380. package/template/apps/todo/services/auth/service-utils/package.json +22 -0
  381. package/template/apps/todo/services/auth/service-utils/src/index.ts +2 -0
  382. package/template/apps/todo/services/auth/service-utils/tsconfig.json +18 -0
  383. package/template/apps/todo/services/auth/service-utils/tsconfig.lib.json +19 -0
  384. package/template/apps/todo/services/auth/shared-logic/package.json +22 -0
  385. package/template/apps/todo/services/auth/shared-logic/src/index.ts +2 -0
  386. package/template/apps/todo/services/auth/shared-logic/tsconfig.json +18 -0
  387. package/template/apps/todo/services/auth/shared-logic/tsconfig.lib.json +19 -0
  388. package/template/apps/todo/services/auth/x-logic/package.json +22 -0
  389. package/template/apps/todo/services/auth/x-logic/src/index.ts +2 -0
  390. package/template/apps/todo/services/auth/x-logic/tsconfig.json +18 -0
  391. package/template/apps/todo/services/auth/x-logic/tsconfig.lib.json +19 -0
  392. package/template/apps/todo/services/auth/x-models/package.json +22 -0
  393. package/template/apps/todo/services/auth/x-models/src/index.ts +2 -0
  394. package/template/apps/todo/services/auth/x-models/tsconfig.json +18 -0
  395. package/template/apps/todo/services/auth/x-models/tsconfig.lib.json +19 -0
  396. package/template/apps/todo/services/design/config/package.json +22 -0
  397. package/template/apps/todo/services/design/config/src/index.ts +2 -0
  398. package/template/apps/todo/services/design/config/tsconfig.json +18 -0
  399. package/template/apps/todo/services/design/config/tsconfig.lib.json +19 -0
  400. package/template/apps/todo/services/design/models/package.json +22 -0
  401. package/template/apps/todo/services/design/models/src/index.ts +2 -0
  402. package/template/apps/todo/services/design/models/tsconfig.json +18 -0
  403. package/template/apps/todo/services/design/models/tsconfig.lib.json +19 -0
  404. package/template/apps/todo/services/design/service/package.json +9 -0
  405. package/template/apps/todo/services/design/service/src/infrastructure.ts +15 -0
  406. package/template/apps/todo/services/design/service/tsconfig.app.json +17 -0
  407. package/template/apps/todo/services/design/service/tsconfig.json +8 -0
  408. package/template/apps/todo/services/design/service-utils/package.json +22 -0
  409. package/template/apps/todo/services/design/service-utils/src/index.ts +2 -0
  410. package/template/apps/todo/services/design/service-utils/tsconfig.json +18 -0
  411. package/template/apps/todo/services/design/service-utils/tsconfig.lib.json +19 -0
  412. package/template/apps/todo/services/design/shared-logic/package.json +22 -0
  413. package/template/apps/todo/services/design/shared-logic/src/index.ts +2 -0
  414. package/template/apps/todo/services/design/shared-logic/tsconfig.json +18 -0
  415. package/template/apps/todo/services/design/shared-logic/tsconfig.lib.json +19 -0
  416. package/template/apps/todo/services/design/views/package.json +8 -0
  417. package/template/apps/todo/services/design/views/src/app.tsx +7 -0
  418. package/template/apps/todo/services/design/views/src/bootstrap.tsx +14 -0
  419. package/template/apps/todo/services/design/views/src/components/WelcomeScreen/WelcomeScreen.tsx +85 -0
  420. package/template/apps/todo/services/design/views/src/index.html +12 -0
  421. package/template/apps/todo/services/design/views/src/index.ts +1 -0
  422. package/template/apps/todo/services/design/views/src/main.ts +1 -0
  423. package/template/apps/todo/services/design/views/tsconfig.app.json +20 -0
  424. package/template/apps/todo/services/design/views/tsconfig.json +18 -0
  425. package/template/apps/todo/services/design/x-logic/package.json +22 -0
  426. package/template/apps/todo/services/design/x-logic/src/index.ts +2 -0
  427. package/template/apps/todo/services/design/x-logic/tsconfig.json +18 -0
  428. package/template/apps/todo/services/design/x-logic/tsconfig.lib.json +19 -0
  429. package/template/apps/todo/services/design/x-models/package.json +22 -0
  430. package/template/apps/todo/services/design/x-models/src/index.ts +2 -0
  431. package/template/apps/todo/services/design/x-models/tsconfig.json +18 -0
  432. package/template/apps/todo/services/design/x-models/tsconfig.lib.json +19 -0
  433. package/template/apps/todo/services/shell/config/package.json +22 -0
  434. package/template/apps/todo/services/shell/config/src/index.ts +2 -0
  435. package/template/apps/todo/services/shell/config/tsconfig.json +18 -0
  436. package/template/apps/todo/services/shell/config/tsconfig.lib.json +19 -0
  437. package/template/apps/todo/services/shell/models/package.json +22 -0
  438. package/template/apps/todo/services/shell/models/src/index.ts +2 -0
  439. package/template/apps/todo/services/shell/models/tsconfig.json +18 -0
  440. package/template/apps/todo/services/shell/models/tsconfig.lib.json +19 -0
  441. package/template/apps/todo/services/shell/service/package.json +9 -0
  442. package/template/apps/todo/services/shell/service/src/entry/controller/health/health.ts +21 -0
  443. package/template/apps/todo/services/shell/service/src/entry/controller/health/index.ts +1 -0
  444. package/template/apps/todo/services/shell/service/src/entry/controller/index.ts +1 -0
  445. package/template/apps/todo/services/shell/service/src/infrastructure.ts +75 -0
  446. package/template/apps/todo/services/shell/service/tsconfig.app.json +17 -0
  447. package/template/apps/todo/services/shell/service/tsconfig.json +8 -0
  448. package/template/apps/todo/services/shell/service-utils/package.json +22 -0
  449. package/template/apps/todo/services/shell/service-utils/src/index.ts +2 -0
  450. package/template/apps/todo/services/shell/service-utils/tsconfig.json +18 -0
  451. package/template/apps/todo/services/shell/service-utils/tsconfig.lib.json +19 -0
  452. package/template/apps/todo/services/shell/shared-logic/package.json +22 -0
  453. package/template/apps/todo/services/shell/shared-logic/src/index.ts +2 -0
  454. package/template/apps/todo/services/shell/shared-logic/tsconfig.json +18 -0
  455. package/template/apps/todo/services/shell/shared-logic/tsconfig.lib.json +19 -0
  456. package/template/apps/todo/services/shell/views/package.json +8 -0
  457. package/template/apps/todo/services/shell/views/src/app.tsx +6 -0
  458. package/template/apps/todo/services/shell/views/src/bootstrap.tsx +14 -0
  459. package/template/apps/todo/services/shell/views/src/index.html +19 -0
  460. package/template/apps/todo/services/shell/views/src/index.ts +1 -0
  461. package/template/apps/todo/services/shell/views/src/main.ts +1 -0
  462. package/template/apps/todo/services/shell/views/tsconfig.app.json +20 -0
  463. package/template/apps/todo/services/shell/views/tsconfig.json +18 -0
  464. package/template/apps/todo/services/shell/x-logic/package.json +22 -0
  465. package/template/apps/todo/services/shell/x-logic/src/index.ts +2 -0
  466. package/template/apps/todo/services/shell/x-logic/tsconfig.json +18 -0
  467. package/template/apps/todo/services/shell/x-logic/tsconfig.lib.json +19 -0
  468. package/template/apps/todo/services/shell/x-models/package.json +22 -0
  469. package/template/apps/todo/services/shell/x-models/src/index.ts +2 -0
  470. package/template/apps/todo/services/shell/x-models/tsconfig.json +18 -0
  471. package/template/apps/todo/services/shell/x-models/tsconfig.lib.json +19 -0
  472. package/template/apps/todo/services/todo/config/package.json +22 -0
  473. package/template/apps/todo/services/todo/config/src/index.ts +2 -0
  474. package/template/apps/todo/services/todo/config/tsconfig.json +18 -0
  475. package/template/apps/todo/services/todo/config/tsconfig.lib.json +19 -0
  476. package/template/apps/todo/services/todo/models/package.json +22 -0
  477. package/template/apps/todo/services/todo/models/src/index.ts +2 -0
  478. package/template/apps/todo/services/todo/models/tsconfig.json +18 -0
  479. package/template/apps/todo/services/todo/models/tsconfig.lib.json +19 -0
  480. package/template/apps/todo/services/todo/service/package.json +9 -0
  481. package/template/apps/todo/services/todo/service/src/infrastructure.ts +15 -0
  482. package/template/apps/todo/services/todo/service/tsconfig.app.json +17 -0
  483. package/template/apps/todo/services/todo/service/tsconfig.json +8 -0
  484. package/template/apps/todo/services/todo/service-utils/package.json +22 -0
  485. package/template/apps/todo/services/todo/service-utils/src/index.ts +2 -0
  486. package/template/apps/todo/services/todo/service-utils/tsconfig.json +18 -0
  487. package/template/apps/todo/services/todo/service-utils/tsconfig.lib.json +19 -0
  488. package/template/apps/todo/services/todo/shared-logic/package.json +22 -0
  489. package/template/apps/todo/services/todo/shared-logic/src/index.ts +2 -0
  490. package/template/apps/todo/services/todo/shared-logic/tsconfig.json +18 -0
  491. package/template/apps/todo/services/todo/shared-logic/tsconfig.lib.json +19 -0
  492. package/template/apps/todo/services/todo/views/package.json +8 -0
  493. package/template/apps/todo/services/todo/views/src/app.tsx +7 -0
  494. package/template/apps/todo/services/todo/views/src/bootstrap.tsx +14 -0
  495. package/template/apps/todo/services/todo/views/src/components/TodoList/TodoList.tsx +132 -0
  496. package/template/apps/todo/services/todo/views/src/index.html +11 -0
  497. package/template/apps/todo/services/todo/views/src/index.ts +1 -0
  498. package/template/apps/todo/services/todo/views/src/main.ts +1 -0
  499. package/template/apps/todo/services/todo/views/tsconfig.app.json +20 -0
  500. package/template/apps/todo/services/todo/views/tsconfig.json +18 -0
  501. package/template/apps/todo/services/todo/x-logic/package.json +22 -0
  502. package/template/apps/todo/services/todo/x-logic/src/index.ts +2 -0
  503. package/template/apps/todo/services/todo/x-logic/tsconfig.json +18 -0
  504. package/template/apps/todo/services/todo/x-logic/tsconfig.lib.json +19 -0
  505. package/template/apps/todo/services/todo/x-models/package.json +22 -0
  506. package/template/apps/todo/services/todo/x-models/src/index.ts +2 -0
  507. package/template/apps/todo/services/todo/x-models/tsconfig.json +18 -0
  508. package/template/apps/todo/services/todo/x-models/tsconfig.lib.json +19 -0
  509. package/template/apps/todo/tsconfig.federated.json +13 -0
  510. package/template/docusaurus/DOCUMENTATION_CHECKLIST.md +499 -0
  511. package/template/docusaurus/README.md +41 -0
  512. package/template/docusaurus/blog/2019-05-28-first-blog-post.md +12 -0
  513. package/template/docusaurus/blog/2019-05-29-long-blog-post.md +44 -0
  514. package/template/docusaurus/blog/2021-08-01-mdx-blog-post.mdx +24 -0
  515. package/template/docusaurus/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
  516. package/template/docusaurus/blog/2021-08-26-welcome/index.md +29 -0
  517. package/template/docusaurus/blog/authors.yml +25 -0
  518. package/template/docusaurus/blog/tags.yml +19 -0
  519. package/template/docusaurus/docs/actions/core/_category_.json +8 -0
  520. package/template/docusaurus/docs/actions/core/ai/_category_.json +7 -0
  521. package/template/docusaurus/docs/actions/core/ai/ask-ai-prompt-stream.md +96 -0
  522. package/template/docusaurus/docs/actions/core/ai/ask-ai-prompt.md +121 -0
  523. package/template/docusaurus/docs/actions/core/array/_category_.json +7 -0
  524. package/template/docusaurus/docs/actions/core/array/ask-array-some.md +54 -0
  525. package/template/docusaurus/docs/actions/core/array/ask-filter.md +54 -0
  526. package/template/docusaurus/docs/actions/core/array/ask-flat-map-parallel-batch.md +68 -0
  527. package/template/docusaurus/docs/actions/core/array/ask-flat-map.md +56 -0
  528. package/template/docusaurus/docs/actions/core/array/ask-map-parallel-batch.md +67 -0
  529. package/template/docusaurus/docs/actions/core/array/ask-map-parallel.md +57 -0
  530. package/template/docusaurus/docs/actions/core/array/ask-map.md +58 -0
  531. package/template/docusaurus/docs/actions/core/array/ask-reduce.md +57 -0
  532. package/template/docusaurus/docs/actions/core/binary-data/_category_.json +7 -0
  533. package/template/docusaurus/docs/actions/core/binary-data/ask-create-text-qpq-binary-data.md +86 -0
  534. package/template/docusaurus/docs/actions/core/claude-ai/_category_.json +7 -0
  535. package/template/docusaurus/docs/actions/core/claude-ai/ask-claude-ai-messages-api.md +70 -0
  536. package/template/docusaurus/docs/actions/core/config/_category_.json +7 -0
  537. package/template/docusaurus/docs/actions/core/config/ask-config-get-application-info.md +42 -0
  538. package/template/docusaurus/docs/actions/core/config/ask-config-get-global.md +52 -0
  539. package/template/docusaurus/docs/actions/core/config/ask-config-get-parameter.md +52 -0
  540. package/template/docusaurus/docs/actions/core/config/ask-config-get-parameters.md +49 -0
  541. package/template/docusaurus/docs/actions/core/config/ask-config-get-secret.md +54 -0
  542. package/template/docusaurus/docs/actions/core/config/ask-config-list-parameters.md +46 -0
  543. package/template/docusaurus/docs/actions/core/config/ask-config-set-parameter.md +51 -0
  544. package/template/docusaurus/docs/actions/core/config/ask-get-application-version.md +39 -0
  545. package/template/docusaurus/docs/actions/core/context/_category_.json +7 -0
  546. package/template/docusaurus/docs/actions/core/context/ask-context-provide-value.md +78 -0
  547. package/template/docusaurus/docs/actions/core/context/ask-context-read.md +96 -0
  548. package/template/docusaurus/docs/actions/core/date/_category_.json +7 -0
  549. package/template/docusaurus/docs/actions/core/date/ask-date-now.md +50 -0
  550. package/template/docusaurus/docs/actions/core/date/ask-get-current-epoch-ms.md +45 -0
  551. package/template/docusaurus/docs/actions/core/date/ask-get-current-epoch.md +45 -0
  552. package/template/docusaurus/docs/actions/core/date/ask-get-epoch-start-time.md +40 -0
  553. package/template/docusaurus/docs/actions/core/date/ask-seconds-elapsed-from.md +52 -0
  554. package/template/docusaurus/docs/actions/core/date/date-time-math.md +112 -0
  555. package/template/docusaurus/docs/actions/core/error/_category_.json +7 -0
  556. package/template/docusaurus/docs/actions/core/error/ask-throw-error.md +115 -0
  557. package/template/docusaurus/docs/actions/core/event/_category_.json +7 -0
  558. package/template/docusaurus/docs/actions/core/event/ask-process-event.md +77 -0
  559. package/template/docusaurus/docs/actions/core/event-bus/_category_.json +1 -0
  560. package/template/docusaurus/docs/actions/core/event-bus/ask-event-bus-send-messages.md +104 -0
  561. package/template/docusaurus/docs/actions/core/file/_category_.json +7 -0
  562. package/template/docusaurus/docs/actions/core/file/ask-file-delete.md +69 -0
  563. package/template/docusaurus/docs/actions/core/file/ask-file-exists.md +68 -0
  564. package/template/docusaurus/docs/actions/core/file/ask-file-generate-temporary-secure-url.md +75 -0
  565. package/template/docusaurus/docs/actions/core/file/ask-file-generate-temporary-upload-secure-url.md +91 -0
  566. package/template/docusaurus/docs/actions/core/file/ask-file-is-cold-storage.md +72 -0
  567. package/template/docusaurus/docs/actions/core/file/ask-file-list-directory.md +97 -0
  568. package/template/docusaurus/docs/actions/core/file/ask-file-read-binary-contents.md +78 -0
  569. package/template/docusaurus/docs/actions/core/file/ask-file-read-object-json.md +72 -0
  570. package/template/docusaurus/docs/actions/core/file/ask-file-read-text-contents.md +69 -0
  571. package/template/docusaurus/docs/actions/core/file/ask-file-stream-open.md +102 -0
  572. package/template/docusaurus/docs/actions/core/file/ask-file-write-binary-contents.md +98 -0
  573. package/template/docusaurus/docs/actions/core/file/ask-file-write-object-json.md +83 -0
  574. package/template/docusaurus/docs/actions/core/file/ask-file-write-text-contents.md +69 -0
  575. package/template/docusaurus/docs/actions/core/graph-database/_category_.json +7 -0
  576. package/template/docusaurus/docs/actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md +164 -0
  577. package/template/docusaurus/docs/actions/core/graph-database/ask-graph-database-internal-field-names.md +64 -0
  578. package/template/docusaurus/docs/actions/core/guid/_category_.json +7 -0
  579. package/template/docusaurus/docs/actions/core/guid/ask-new-guid.md +45 -0
  580. package/template/docusaurus/docs/actions/core/guid/ask-new-sortable-guid.md +49 -0
  581. package/template/docusaurus/docs/actions/core/inline-function/_category_.json +1 -0
  582. package/template/docusaurus/docs/actions/core/inline-function/ask-inline-function-execute.md +66 -0
  583. package/template/docusaurus/docs/actions/core/json/_category_.json +7 -0
  584. package/template/docusaurus/docs/actions/core/json/ask-decode-json.md +76 -0
  585. package/template/docusaurus/docs/actions/core/key-value-store/_category_.json +1 -0
  586. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-delete.md +57 -0
  587. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-get-all.md +60 -0
  588. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-get.md +73 -0
  589. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query-all.md +58 -0
  590. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query-single.md +62 -0
  591. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-query.md +129 -0
  592. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-scan-all.md +56 -0
  593. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-scan.md +71 -0
  594. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-update-partial-properties.md +75 -0
  595. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-update.md +106 -0
  596. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-upsert-with-retry.md +65 -0
  597. package/template/docusaurus/docs/actions/core/key-value-store/ask-key-value-store-upsert.md +71 -0
  598. package/template/docusaurus/docs/actions/core/log/_category_.json +7 -0
  599. package/template/docusaurus/docs/actions/core/log/ask-log-create.md +64 -0
  600. package/template/docusaurus/docs/actions/core/log/ask-log-disable-event-history.md +53 -0
  601. package/template/docusaurus/docs/actions/core/log/ask-log-template-literal.md +55 -0
  602. package/template/docusaurus/docs/actions/core/math/_category_.json +7 -0
  603. package/template/docusaurus/docs/actions/core/math/ask-random-number.md +46 -0
  604. package/template/docusaurus/docs/actions/core/metric/_category_.json +7 -0
  605. package/template/docusaurus/docs/actions/core/metric/ask-metric-put.md +67 -0
  606. package/template/docusaurus/docs/actions/core/network/_category_.json +7 -0
  607. package/template/docusaurus/docs/actions/core/network/ask-network-request.md +95 -0
  608. package/template/docusaurus/docs/actions/core/platform/_category_.json +7 -0
  609. package/template/docusaurus/docs/actions/core/platform/ask-delay.md +48 -0
  610. package/template/docusaurus/docs/actions/core/queue/_category_.json +1 -0
  611. package/template/docusaurus/docs/actions/core/queue/ask-queue-send-messages.md +89 -0
  612. package/template/docusaurus/docs/actions/core/state/_category_.json +7 -0
  613. package/template/docusaurus/docs/actions/core/state/ask-reduce-state.md +160 -0
  614. package/template/docusaurus/docs/actions/core/state/ask-state-dispatch.md +87 -0
  615. package/template/docusaurus/docs/actions/core/state/ask-state-read.md +45 -0
  616. package/template/docusaurus/docs/actions/core/stream/_category_.json +7 -0
  617. package/template/docusaurus/docs/actions/core/stream/ask-stream-close.md +56 -0
  618. package/template/docusaurus/docs/actions/core/stream/ask-stream-map.md +73 -0
  619. package/template/docusaurus/docs/actions/core/stream/ask-stream-process.md +57 -0
  620. package/template/docusaurus/docs/actions/core/stream/ask-stream-read.md +140 -0
  621. package/template/docusaurus/docs/actions/core/system/_category_.json +7 -0
  622. package/template/docusaurus/docs/actions/core/system/ask-batch.md +55 -0
  623. package/template/docusaurus/docs/actions/core/system/ask-catch.md +85 -0
  624. package/template/docusaurus/docs/actions/core/system/ask-execute-if.md +51 -0
  625. package/template/docusaurus/docs/actions/core/system/ask-execute-story.md +56 -0
  626. package/template/docusaurus/docs/actions/core/system/ask-get-runtime-correlation.md +46 -0
  627. package/template/docusaurus/docs/actions/core/system/ask-override-actions.md +76 -0
  628. package/template/docusaurus/docs/actions/core/system/ask-parallel-deprecated.md +55 -0
  629. package/template/docusaurus/docs/actions/core/system/ask-retry.md +72 -0
  630. package/template/docusaurus/docs/actions/core/system/ask-run-parallel.md +62 -0
  631. package/template/docusaurus/docs/actions/core/user-directory/_category_.json +1 -0
  632. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-associate-software-token.md +73 -0
  633. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-authenticate-user.md +124 -0
  634. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-change-password.md +55 -0
  635. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-confirm-email-verification.md +52 -0
  636. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-confirm-forgot-password.md +58 -0
  637. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-create-user.md +72 -0
  638. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-decode-access-token.md +73 -0
  639. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-forgot-password.md +66 -0
  640. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-user-attributes-by-user-id.md +53 -0
  641. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-user-attributes.md +78 -0
  642. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-users-by-attribute.md +59 -0
  643. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-get-users.md +71 -0
  644. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-read-access-token.md +52 -0
  645. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-refresh-token.md +53 -0
  646. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-request-email-verification.md +53 -0
  647. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-respond-to-auth-challenge.md +124 -0
  648. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-access-token.md +52 -0
  649. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-password.md +55 -0
  650. package/template/docusaurus/docs/actions/core/user-directory/ask-user-directory-set-user-attributes.md +60 -0
  651. package/template/docusaurus/docs/actions/features/_category_.json +1 -0
  652. package/template/docusaurus/docs/actions/features/event-doc/_category_.json +1 -0
  653. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-append-server-event.md +65 -0
  654. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-create.md +112 -0
  655. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-append.md +97 -0
  656. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-list.md +116 -0
  657. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-event-write.md +50 -0
  658. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-generate-asset-upload-url.md +127 -0
  659. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-by-code.md +97 -0
  660. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-by-id.md +121 -0
  661. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-get-draft.md +109 -0
  662. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-list.md +53 -0
  663. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-provide-store.md +160 -0
  664. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-resolve-actor.md +107 -0
  665. package/template/docusaurus/docs/actions/features/event-doc/ask-event-doc-soft-delete.md +69 -0
  666. package/template/docusaurus/docs/actions/features/event-doc-ai/_category_.json +1 -0
  667. package/template/docusaurus/docs/actions/features/event-doc-ai/active-chat-state.md +153 -0
  668. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-attachments-validate.md +63 -0
  669. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-history-load.md +95 -0
  670. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-list.md +91 -0
  671. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-chat-requests.md +93 -0
  672. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-context-read.md +84 -0
  673. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-load-chats.md +37 -0
  674. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-new-chat.md +43 -0
  675. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-process-send.md +70 -0
  676. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-select-chat.md +42 -0
  677. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-send-message.md +52 -0
  678. package/template/docusaurus/docs/actions/features/event-doc-ai/ask-event-doc-ai-service-request.md +53 -0
  679. package/template/docusaurus/docs/actions/features/event-doc-ai/chat-list-state.md +179 -0
  680. package/template/docusaurus/docs/actions/features/event-doc-ai/streaming-and-status-state.md +168 -0
  681. package/template/docusaurus/docs/actions/features/validation/_category_.json +1 -0
  682. package/template/docusaurus/docs/actions/features/validation/ask-validate-model-or-throw-error.md +73 -0
  683. package/template/docusaurus/docs/actions/webserver/_category_.json +8 -0
  684. package/template/docusaurus/docs/actions/webserver/admin/_category_.json +1 -0
  685. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log-metadata-children.md +62 -0
  686. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log-metadata.md +67 -0
  687. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-log.md +84 -0
  688. package/template/docusaurus/docs/actions/webserver/admin/ask-admin-get-logs.md +96 -0
  689. package/template/docusaurus/docs/actions/webserver/api-key-validation/_category_.json +1 -0
  690. package/template/docusaurus/docs/actions/webserver/api-key-validation/ask-api-key-validation-validate.md +63 -0
  691. package/template/docusaurus/docs/actions/webserver/dns/_category_.json +1 -0
  692. package/template/docusaurus/docs/actions/webserver/dns/ask-dns-list.md +37 -0
  693. package/template/docusaurus/docs/actions/webserver/generic-data-resource/_category_.json +1 -0
  694. package/template/docusaurus/docs/actions/webserver/generic-data-resource/ask-put-generic-data-resource.md +48 -0
  695. package/template/docusaurus/docs/actions/webserver/generic-data-resource/ask-scan-generic-data-resource.md +49 -0
  696. package/template/docusaurus/docs/actions/webserver/open-api-spec/_category_.json +1 -0
  697. package/template/docusaurus/docs/actions/webserver/open-api-spec/ask-get-open-api-spec.md +43 -0
  698. package/template/docusaurus/docs/actions/webserver/route-auth-validation/_category_.json +1 -0
  699. package/template/docusaurus/docs/actions/webserver/route-auth-validation/ask-route-auth-validation-decode.md +65 -0
  700. package/template/docusaurus/docs/actions/webserver/service/_category_.json +1 -0
  701. package/template/docusaurus/docs/actions/webserver/service/ask-service-request.md +69 -0
  702. package/template/docusaurus/docs/actions/webserver/service-function/_category_.json +1 -0
  703. package/template/docusaurus/docs/actions/webserver/service-function/ask-service-function-execute.md +58 -0
  704. package/template/docusaurus/docs/actions/webserver/web-entry/_category_.json +1 -0
  705. package/template/docusaurus/docs/actions/webserver/web-entry/ask-web-entry-invalidate-cache.md +53 -0
  706. package/template/docusaurus/docs/actions/webserver/websocket/_category_.json +1 -0
  707. package/template/docusaurus/docs/actions/webserver/websocket/ask-websocket-send-message.md +71 -0
  708. package/template/docusaurus/docs/actions/xstate/_category_.json +1 -0
  709. package/template/docusaurus/docs/actions/xstate/ask-state-machine-create.md +60 -0
  710. package/template/docusaurus/docs/actions/xstate/ask-state-machine-get-state.md +65 -0
  711. package/template/docusaurus/docs/actions/xstate/ask-state-machine-get.md +57 -0
  712. package/template/docusaurus/docs/actions/xstate/ask-state-machine-send-event.md +69 -0
  713. package/template/docusaurus/docs/api/index.md +17 -0
  714. package/template/docusaurus/docs/architecture-overview.md +690 -0
  715. package/template/docusaurus/docs/config/config-aws/_category_.json +1 -0
  716. package/template/docusaurus/docs/config/config-aws/account-budget.md +117 -0
  717. package/template/docusaurus/docs/config/config-aws/account-cloud-trail.md +75 -0
  718. package/template/docusaurus/docs/config/config-aws/account-security-services.md +91 -0
  719. package/template/docusaurus/docs/config/config-aws/aws-alarm.md +142 -0
  720. package/template/docusaurus/docs/config/config-aws/aws-data-store-removal-policy.md +68 -0
  721. package/template/docusaurus/docs/config/config-aws/aws-dyanmo-override-for-kvs.md +70 -0
  722. package/template/docusaurus/docs/config/config-aws/aws-kms-key.md +100 -0
  723. package/template/docusaurus/docs/config/config-aws/aws-service-account-info.md +114 -0
  724. package/template/docusaurus/docs/config/config-aws/aws-service-dashboard.md +61 -0
  725. package/template/docusaurus/docs/config/config-aws/aws-virtual-network-settings.md +88 -0
  726. package/template/docusaurus/docs/config/config-aws/bootstrap-aws-organization.md +80 -0
  727. package/template/docusaurus/docs/config/config-aws/bootstrap-waf.md +106 -0
  728. package/template/docusaurus/docs/config/config-aws/domain-certificate.md +69 -0
  729. package/template/docusaurus/docs/config/config-aws/event-bus-quick-subscription.md +84 -0
  730. package/template/docusaurus/docs/config/config-aws/waf-protection.md +45 -0
  731. package/template/docusaurus/docs/config/core/_category_.json +8 -0
  732. package/template/docusaurus/docs/config/core/action-processors.md +65 -0
  733. package/template/docusaurus/docs/config/core/ai.md +80 -0
  734. package/template/docusaurus/docs/config/core/api-build-path.md +40 -0
  735. package/template/docusaurus/docs/config/core/application-module.md +58 -0
  736. package/template/docusaurus/docs/config/core/application-name.md +66 -0
  737. package/template/docusaurus/docs/config/core/application-version.md +58 -0
  738. package/template/docusaurus/docs/config/core/claude-ai.md +52 -0
  739. package/template/docusaurus/docs/config/core/config-value.md +38 -0
  740. package/template/docusaurus/docs/config/core/deploy-event.md +94 -0
  741. package/template/docusaurus/docs/config/core/environment-settings.md +67 -0
  742. package/template/docusaurus/docs/config/core/event-bus.md +88 -0
  743. package/template/docusaurus/docs/config/core/federated-module-store.md +61 -0
  744. package/template/docusaurus/docs/config/core/global.md +43 -0
  745. package/template/docusaurus/docs/config/core/graph-database.md +72 -0
  746. package/template/docusaurus/docs/config/core/inline-function.md +61 -0
  747. package/template/docusaurus/docs/config/core/javascript-runtime.md +79 -0
  748. package/template/docusaurus/docs/config/core/key-value-store.md +135 -0
  749. package/template/docusaurus/docs/config/core/module-name.md +46 -0
  750. package/template/docusaurus/docs/config/core/notify-error.md +97 -0
  751. package/template/docusaurus/docs/config/core/parameter.md +53 -0
  752. package/template/docusaurus/docs/config/core/promise-mode.md +39 -0
  753. package/template/docusaurus/docs/config/core/queue.md +112 -0
  754. package/template/docusaurus/docs/config/core/recurring-schedule.md +117 -0
  755. package/template/docusaurus/docs/config/core/secret.md +51 -0
  756. package/template/docusaurus/docs/config/core/service-settings.md +49 -0
  757. package/template/docusaurus/docs/config/core/storage-drive.md +142 -0
  758. package/template/docusaurus/docs/config/core/user-directory.md +189 -0
  759. package/template/docusaurus/docs/config/core/virtual-network.md +60 -0
  760. package/template/docusaurus/docs/config/features/_category_.json +1 -0
  761. package/template/docusaurus/docs/config/features/admin-session-event-doc.md +47 -0
  762. package/template/docusaurus/docs/config/features/admin-settings.md +106 -0
  763. package/template/docusaurus/docs/config/features/admin-user-directory.md +57 -0
  764. package/template/docusaurus/docs/config/features/event-doc-ai.md +104 -0
  765. package/template/docusaurus/docs/config/features/event-doc-routes.md +100 -0
  766. package/template/docusaurus/docs/config/features/event-doc-summary.md +59 -0
  767. package/template/docusaurus/docs/config/features/event-doc.md +75 -0
  768. package/template/docusaurus/docs/config/features/versioned-route.md +85 -0
  769. package/template/docusaurus/docs/config/neo4j/_category_.json +1 -0
  770. package/template/docusaurus/docs/config/neo4j/graph-database-neo4j.md +122 -0
  771. package/template/docusaurus/docs/config/webserver/_category_.json +8 -0
  772. package/template/docusaurus/docs/config/webserver/api-key.md +87 -0
  773. package/template/docusaurus/docs/config/webserver/api.md +75 -0
  774. package/template/docusaurus/docs/config/webserver/auth-system.md +110 -0
  775. package/template/docusaurus/docs/config/webserver/cache.md +94 -0
  776. package/template/docusaurus/docs/config/webserver/certificate.md +64 -0
  777. package/template/docusaurus/docs/config/webserver/default-route-options.md +77 -0
  778. package/template/docusaurus/docs/config/webserver/dns.md +57 -0
  779. package/template/docusaurus/docs/config/webserver/domain-proxy.md +109 -0
  780. package/template/docusaurus/docs/config/webserver/file-upload-settings.md +63 -0
  781. package/template/docusaurus/docs/config/webserver/migration.md +83 -0
  782. package/template/docusaurus/docs/config/webserver/open-api.md +36 -0
  783. package/template/docusaurus/docs/config/webserver/route.md +109 -0
  784. package/template/docusaurus/docs/config/webserver/seed.md +61 -0
  785. package/template/docusaurus/docs/config/webserver/seo.md +72 -0
  786. package/template/docusaurus/docs/config/webserver/service-function.md +69 -0
  787. package/template/docusaurus/docs/config/webserver/state-dispatch-over-websockets.md +42 -0
  788. package/template/docusaurus/docs/config/webserver/storage-drive-cors-settings.md +73 -0
  789. package/template/docusaurus/docs/config/webserver/subdomain-redirect.md +80 -0
  790. package/template/docusaurus/docs/config/webserver/web-entry.md +150 -0
  791. package/template/docusaurus/docs/config/webserver/web-socket-queue.md +88 -0
  792. package/template/docusaurus/docs/config/webserver/websocket.md +110 -0
  793. package/template/docusaurus/docs/config/xstate/_category_.json +1 -0
  794. package/template/docusaurus/docs/config/xstate/state-machine.md +201 -0
  795. package/template/docusaurus/docs/core-concepts.md +23 -0
  796. package/template/docusaurus/docs/getting-started.md +806 -0
  797. package/template/docusaurus/docs/index.md +211 -0
  798. package/template/docusaurus/docs/intro.md +47 -0
  799. package/template/docusaurus/docs/tutorial-basics/_category_.json +8 -0
  800. package/template/docusaurus/docs/tutorial-basics/congratulations.md +23 -0
  801. package/template/docusaurus/docs/tutorial-basics/create-a-blog-post.md +34 -0
  802. package/template/docusaurus/docs/tutorial-basics/create-a-document.md +57 -0
  803. package/template/docusaurus/docs/tutorial-basics/create-a-page.md +43 -0
  804. package/template/docusaurus/docs/tutorial-basics/deploy-your-site.md +31 -0
  805. package/template/docusaurus/docs/tutorial-basics/markdown-features.mdx +152 -0
  806. package/template/docusaurus/docs/tutorial-extras/_category_.json +7 -0
  807. package/template/docusaurus/docs/tutorial-extras/img/docsVersionDropdown.png +0 -0
  808. package/template/docusaurus/docs/tutorial-extras/img/localeDropdown.png +0 -0
  809. package/template/docusaurus/docs/tutorial-extras/manage-docs-versions.md +55 -0
  810. package/template/docusaurus/docs/tutorial-extras/translate-your-site.md +88 -0
  811. package/template/docusaurus/docs/use-cases.md +455 -0
  812. package/template/docusaurus/docusaurus.config.ts +181 -0
  813. package/template/docusaurus/gitignore +20 -0
  814. package/template/docusaurus/package.json +49 -0
  815. package/template/docusaurus/sidebars.ts +27 -0
  816. package/template/docusaurus/src/components/HomepageFeatures/index.tsx +72 -0
  817. package/template/docusaurus/src/components/HomepageFeatures/styles.module.css +11 -0
  818. package/template/docusaurus/src/css/custom.css +423 -0
  819. package/template/docusaurus/src/pages/index.module.css +23 -0
  820. package/template/docusaurus/static/.nojekyll +0 -0
  821. package/template/docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  822. package/template/docusaurus/static/img/docusaurus.png +0 -0
  823. package/template/docusaurus/static/img/favicon.ico +0 -0
  824. package/template/docusaurus/static/img/favicon.svg +4 -0
  825. package/template/docusaurus/static/img/logo.svg +1 -0
  826. package/template/docusaurus/static/img/qpq-logo.svg +4 -0
  827. package/template/docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  828. package/template/docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  829. package/template/docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  830. package/template/docusaurus/tsconfig.json +8 -0
  831. package/template/eslint.config.mjs +3 -0
  832. package/template/gitignore +116 -0
  833. package/template/package.json +126 -0
  834. package/template/tsconfig.base.json +23 -0
  835. package/template/tsconfig.json +16 -0
  836. package/template/types/assets.d.ts +3 -0
@@ -0,0 +1,110 @@
1
+ ---
2
+ title: defineAuthSystem
3
+ description: Bundle a complete username/password login flow — a user directory plus the HTTP routes to log in, refresh tokens, respond to challenges, and recover passwords.
4
+ ---
5
+
6
+ # defineAuthSystem
7
+
8
+ Bundles a complete username/password **authentication system** into a single config entry: it declares a [user directory](../../config/core/user-directory.md) and wires up all the HTTP endpoints needed to log in, refresh access tokens, respond to auth challenges (including MFA / software-token association), recover a forgotten password, and change a password. The handler stories ship inside quidproquo-webserver — you don't write them — so a single `defineAuthSystem(...)` call gives a service a working auth API.
9
+
10
+ `defineAuthSystem` is a convenience that expands into several lower-level config settings; understanding those makes its behaviour clear. It emits:
11
+
12
+ 1. A top-level [`defineUserDirectory`](../../config/core/user-directory.md) (ungated, so other services can reference it to validate access tokens), owned by the given service.
13
+ 2. A `defineServiceSettings` block (gated to the owning service) containing a global that records the directory name, plus one route per auth endpoint.
14
+
15
+ - **On AWS:** deploys whatever the emitted settings deploy — a Cognito user pool + app client for the user directory (see [defineUserDirectory](../../config/core/user-directory.md)) and API Gateway routes/Lambdas for each endpoint. `defineAuthSystem` itself provisions no infrastructure beyond what those settings do.
16
+
17
+ ```typescript
18
+ import { defineAuthSystem } from 'quidproquo-webserver';
19
+
20
+ export default [
21
+ defineAuthSystem('auth', 'app-users', {
22
+ selfSignUpEnabled: true,
23
+ basePath: '/auth',
24
+ }),
25
+ ];
26
+ ```
27
+
28
+ ## Signature
29
+
30
+ ```typescript
31
+ function defineAuthSystem(
32
+ service: string,
33
+ directoryName: string,
34
+ options?: AuthSystemOptions,
35
+ ): QPQConfig;
36
+ ```
37
+
38
+ Note the return type is `QPQConfig` (an array of config settings), not a single setting — spread it into, or include it in, your config array.
39
+
40
+ ## Parameters
41
+
42
+ ### `service` — `string` (required)
43
+
44
+ The service/module that owns the auth system. The user directory is declared with `owner: { module: service }`, and the login endpoints are placed inside a `defineServiceSettings` block keyed on this service, so they only deploy with that service.
45
+
46
+ ### `directoryName` — `string` (required)
47
+
48
+ The name of the [user directory](../../config/core/user-directory.md) to create and authenticate against. This is the same name you pass as `userDirectoryName` to the [User Directory actions](../../actions/core/user-directory/ask-user-directory-authenticate-user.md), and it is recorded in a global (`qpq-auth-user-directory`) so the built-in auth handler stories can resolve it at runtime. The `/changePassword` route is configured with `routeAuthSettings.userDirectoryName = directoryName`, so it requires a valid access token from this directory.
49
+
50
+ ### `options` — `AuthSystemOptions` (optional)
51
+
52
+ | Property | Type | Default | Description |
53
+ | --- | --- | --- | --- |
54
+ | `phoneRequired` | `boolean` | `false` | Forwarded to the user directory: makes `phoneNumber` a required, auto-verified attribute. See [defineUserDirectory](../../config/core/user-directory.md#parameters). |
55
+ | `selfSignUpEnabled` | `boolean` | `false` | Forwarded to the user directory: allows users to sign themselves up. See [defineUserDirectory](../../config/core/user-directory.md#parameters). |
56
+ | `emailTemplates` | `EmailTemplates` | – | Forwarded to the user directory: story functions that customise the verification / password-reset emails. See [Email templates](../../config/core/user-directory.md#email-templates). |
57
+ | `mfa` | `UserDirectoryMfaSettings` | – | Forwarded to the user directory: multi-factor authentication configuration. See [MFA](../../config/core/user-directory.md#mfa). |
58
+ | `basePath` | `string` | `''` | A path prefix applied to every auth route. E.g. `'/auth'` produces `/auth/login`, `/auth/refreshToken`, and so on. |
59
+ | `allowedOrigins` | `string[]` | – | Allowed browser origins (CORS) applied to every generated auth route. |
60
+
61
+ ## Generated routes
62
+
63
+ With `basePath` = `''` (the default), `defineAuthSystem` registers these `POST` routes, each handled by a built-in `authController` story:
64
+
65
+ | Path | Handler | Auth required |
66
+ | --- | --- | --- |
67
+ | `/login` | `login` | No |
68
+ | `/refreshToken` | `refreshToken` | No |
69
+ | `/challenge` | `respondToAuthChallenge` | No |
70
+ | `/associateSoftwareToken` | `associateSoftwareToken` | No |
71
+ | `/forgotPassword` | `forgotPassword` | No |
72
+ | `/forgotPassword/confirm` | `confirmForgotPassword` | No |
73
+ | `/changePassword` | `changePassword` | Yes — valid access token for `directoryName` |
74
+
75
+ Each path is prefixed with `basePath` when provided (e.g. `/auth/login`). The handler stories correspond to the [User Directory actions](../../actions/core/user-directory/ask-user-directory-authenticate-user.md) — for example `login` authenticates a user, `refreshToken` refreshes an access token, and `respondToAuthChallenge` completes a challenge/MFA flow.
76
+
77
+ ## How auth ties routes to the user directory
78
+
79
+ A route becomes authenticated by setting `routeAuthSettings.userDirectoryName` (which `defineAuthSystem` does for `/changePassword`). At runtime the webserver validates the caller's access token against that directory before invoking the handler — decoding the token, checking it is valid, and making its claims/roles available. Any route in the application (not just the ones generated here) can opt into the same protection by referencing this directory's name, because the directory is declared ungated at the top level.
80
+
81
+ To protect your own routes with this directory, set `routeAuthSettings: { userDirectoryName: 'app-users' }` on the route (optionally with `scopes` to require specific claims). API-key auth is the complementary mechanism — see [defineApiKey](./api-key.md).
82
+
83
+ ## Examples
84
+
85
+ ```typescript
86
+ import { defineAuthSystem, UserDirectoryMfaMode } from 'quidproquo-webserver';
87
+
88
+ export default [
89
+ // Minimal: creates the 'app-users' directory + /login, /refreshToken, etc.
90
+ ...defineAuthSystem('auth', 'app-users'),
91
+
92
+ // Prefixed, self sign-up, required MFA, custom emails
93
+ ...defineAuthSystem('auth', 'app-users', {
94
+ basePath: '/auth',
95
+ selfSignUpEnabled: true,
96
+ mfa: { mode: UserDirectoryMfaMode.required },
97
+ emailTemplates: {
98
+ verifyEmail: '/entry/auth/verifyEmail::verifyEmail',
99
+ },
100
+ allowedOrigins: ['https://app.example.com'],
101
+ }),
102
+ ];
103
+ ```
104
+
105
+ ## Related
106
+
107
+ - [defineUserDirectory](../../config/core/user-directory.md) — the user directory `defineAuthSystem` creates; documents the directory options that `phoneRequired`, `selfSignUpEnabled`, `emailTemplates`, and `mfa` forward to, plus the AWS Cognito infrastructure.
108
+ - [defineApiKey](./api-key.md) — the complementary auth mechanism (shared-secret / machine callers) for routes.
109
+ - **User Directory actions** — the auth operations the generated handlers wrap: [askUserDirectoryAuthenticateUser](../../actions/core/user-directory/ask-user-directory-authenticate-user.md), [askUserDirectoryRefreshToken](../../actions/core/user-directory/ask-user-directory-refresh-token.md), [askUserDirectoryRespondToAuthChallenge](../../actions/core/user-directory/ask-user-directory-respond-to-auth-challenge.md), [askUserDirectoryChangePassword](../../actions/core/user-directory/ask-user-directory-change-password.md), [askUserDirectoryForgotPassword](../../actions/core/user-directory/ask-user-directory-forgot-password.md), [askUserDirectoryConfirmForgotPassword](../../actions/core/user-directory/ask-user-directory-confirm-forgot-password.md), [askUserDirectoryAssociateSoftwareToken](../../actions/core/user-directory/ask-user-directory-associate-software-token.md).
110
+ - **Routes and APIs** — the generated endpoints are `defineRoute` settings; see the route / `defineApi` config settings in quidproquo-webserver to add and protect your own routes with this directory.
@@ -0,0 +1,94 @@
1
+ ---
2
+ title: defineCache
3
+ description: Define a named CDN cache policy (TTLs) that web entries and SEO routes reference by name.
4
+ ---
5
+
6
+ # defineCache
7
+
8
+ Defines a named **cache policy** — a set of CDN cache TTLs — that other web settings reference by name. A [web entry](./web-entry.md) applies it via `cacheSettingsName`, and a [defineSeo](./seo.md) route can reference its own cache policy the same way. Declaring caching once and referencing it by name keeps a consistent policy across behaviors.
9
+
10
+ - **On AWS:** deploys a CloudFront `CachePolicy` (`QpqWebServerCacheConstruct` in `quidproquo-deploy-awscdk`) with the configured min/default/max TTLs. The policy caches on an allow-list of headers — `x-qpq-is-bot` (so bot vs. human responses cache separately, which pairs with SEO edge rendering) plus the CORS request headers (`Origin`, `Access-Control-Request-Headers`, `Access-Control-Request-Method`) — and enables gzip and brotli. The policy id is exported so web entries in other stacks can attach it.
11
+
12
+ ```typescript
13
+ import { defineCache } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineCache('default', {
17
+ minTTLInSeconds: 0,
18
+ defaultTTLInSeconds: 86400,
19
+ maxTTLInSeconds: 31536000,
20
+ mustRevalidate: false,
21
+ }),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineCache(
29
+ name: string,
30
+ cache: CacheSettings,
31
+ options?: QPQConfigAdvancedCacheSettings,
32
+ ): CacheQPQWebServerConfigSetting;
33
+ ```
34
+
35
+ ## Parameters
36
+
37
+ ### `name` — `string` (required)
38
+
39
+ The cache policy's name and `uniqueKey`. This is the value other settings pass as `cacheSettingsName`.
40
+
41
+ ### `cache` — `CacheSettings` (required)
42
+
43
+ ```typescript
44
+ export interface CacheSettings {
45
+ minTTLInSeconds: number;
46
+ maxTTLInSeconds: number;
47
+ defaultTTLInSeconds: number;
48
+ mustRevalidate: boolean;
49
+ }
50
+ ```
51
+
52
+ | Property | Type | Description |
53
+ | --- | --- | --- |
54
+ | `minTTLInSeconds` | `number` | Minimum time an object stays cached before the CDN checks origin for a newer version. |
55
+ | `defaultTTLInSeconds` | `number` | Time an object is cached when origin sends no `Cache-Control`/`Expires` directive of its own. |
56
+ | `maxTTLInSeconds` | `number` | Maximum time an object stays cached, capping any longer TTL requested by origin headers. |
57
+ | `mustRevalidate` | `boolean` | Intended to require revalidation of stale content. **Note:** this field is not currently applied by the AWS cache construct (the TTLs above drive caching); set it for forward-compatibility but rely on the TTLs for behavior today. |
58
+
59
+ ### `options` — `QPQConfigAdvancedCacheSettings` (optional)
60
+
61
+ | Property | Type | Description |
62
+ | --- | --- | --- |
63
+ | `owner` | `CrossModuleOwner<'cacheName'>` | Declares that this cache policy is owned by **another** module/service, so this service references the policy deployed there instead of creating a new one. |
64
+ | `deprecated` | `boolean` | Standard advanced-settings flag marking the policy as deprecated. |
65
+
66
+ ## Examples
67
+
68
+ ```typescript
69
+ import { defineCache, defineWebEntry } from 'quidproquo-webserver';
70
+
71
+ export default [
72
+ // Cache aggressively by default, but bypass the SPA shell so deploys land instantly
73
+ defineCache('default', {
74
+ minTTLInSeconds: 0,
75
+ defaultTTLInSeconds: 86400,
76
+ maxTTLInSeconds: 31536000,
77
+ mustRevalidate: false,
78
+ }),
79
+
80
+ defineWebEntry('website', {
81
+ buildPath: './web/dist',
82
+ cacheSettingsName: 'default',
83
+ ignoreCache: ['index.html'],
84
+ domain: { onRootDomain: true, rootDomain: 'example.com' },
85
+ }),
86
+ ];
87
+ ```
88
+
89
+ ## Related
90
+
91
+ - [defineWebEntry](./web-entry.md) — applies a cache policy via `cacheSettingsName` and lists `ignoreCache` bypass patterns.
92
+ - [defineSeo](./seo.md) — SEO routes can reference their own cache policy by name.
93
+ - [askWebEntryInvalidateCache](../../actions/webserver/web-entry/ask-web-entry-invalidate-cache.md) — force cached objects to be re-fetched before their TTL expires.
94
+ - **AWS implementation:** `QpqWebServerCacheConstruct` (CloudFront `CachePolicy`) in `quidproquo-deploy-awscdk`.
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: defineCertificate
3
+ description: Legacy declaration of a TLS certificate for a domain — kept for backwards compatibility; certificates are now provisioned centrally.
4
+ ---
5
+
6
+ # defineCertificate
7
+
8
+ Declares a TLS certificate for a domain rooted at a service's [DNS base](./dns.md).
9
+
10
+ :::warning Legacy / no-op on AWS
11
+ `defineCertificate` is kept only for **backwards compatibility**. Its AWS construct (`QpqWebserverCertificateConstruct`) is now a no-op shim that creates no resources. Certificates are provisioned centrally by the deploy pipeline via `defineDomainCertificate` (in the bootstrap config) and are consumed by service constructs through an internal SSM lookup. New configs should rely on that central certificate rather than calling `defineCertificate`.
12
+ :::
13
+
14
+ - **On AWS:** nothing. The central `DomainCertificateStack` creates an **ACM certificate** with **DNS validation** against the existing Route53 hosted zone, then publishes its ARN to SSM so API Gateway custom domains and [CloudFront domain proxies](./domain-proxy.md) can look it up. `defineCertificate` itself no longer participates in that.
15
+
16
+ ```typescript
17
+ import { defineCertificate } from 'quidproquo-webserver';
18
+
19
+ export default [
20
+ // Legacy: certificate covering a subdomain of the service's DNS base
21
+ defineCertificate(false, 'example.com', 'app'),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineCertificate(
29
+ onRootDomain: boolean,
30
+ rootDomain: string,
31
+ subdomain?: string,
32
+ options?: QPQConfigAdvancedCertificateSettings,
33
+ ): CertificateQPQWebServerConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ | Parameter | Type | Default | Description |
39
+ | --- | --- | --- | --- |
40
+ | `onRootDomain` | `boolean` | – | Whether the certificate is issued against the shared root domain rather than the service's own subdomain. Combined with `subdomain` it forms the config's `uniqueKey`. |
41
+ | `rootDomain` | `string` | – | The root domain the certificate belongs to (matches the service's [`dnsBase`](./dns.md)). |
42
+ | `subdomain` | `string` | – | Optional subdomain the certificate covers. |
43
+ | `options` | `QPQConfigAdvancedCertificateSettings` | – | Advanced settings. Currently an empty interface (it extends the shared `QPQConfigAdvancedSettings`, e.g. cross-module `owner`), reserving room for future options. |
44
+
45
+ ## Examples
46
+
47
+ ```typescript
48
+ import { defineCertificate } from 'quidproquo-webserver';
49
+
50
+ export default [
51
+ // Certificate on the root domain
52
+ defineCertificate(true, 'example.com'),
53
+
54
+ // Certificate for a specific subdomain
55
+ defineCertificate(false, 'example.com', 'admin'),
56
+ ];
57
+ ```
58
+
59
+ ## Related
60
+
61
+ - [defineDns](./dns.md) — declares the `rootDomain` this certificate is rooted at.
62
+ - [defineDomainProxy](./domain-proxy.md) — a CloudFront proxy that consumes the central certificate for its domain.
63
+ - [defineSubdomainRedirect](./subdomain-redirect.md) — related domain-level configuration.
64
+ - [defineDomainCertificate](../config-aws/domain-certificate.md) — the real ACM certificate (with DNS validation) this portable shim defers to on AWS.
@@ -0,0 +1,77 @@
1
+ ---
2
+ title: defineDefaultRouteOptions
3
+ description: Declare CORS and auth defaults that are merged into every route in a service.
4
+ ---
5
+
6
+ # defineDefaultRouteOptions
7
+
8
+ Declares **default route options** — CORS origins and auth settings that are merged into every [route](./route.md) in the service. Use it to apply a shared authentication policy or a common set of allowed browser origins once, instead of repeating the same options on each route.
9
+
10
+ - **On AWS:** no infrastructure of its own. The defaults are merged into each route's options at runtime by the API Lambda; see [defineApi](./api.md).
11
+
12
+ ```typescript
13
+ import { defineDefaultRouteOptions } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineDefaultRouteOptions('web', {
17
+ allowedOrigins: ['https://app.example.com'],
18
+ routeAuthSettings: {
19
+ userDirectoryName: 'users',
20
+ },
21
+ }),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineDefaultRouteOptions(
29
+ groupName: string,
30
+ routeOptions: RouteOptions,
31
+ ): DefaultRouteOptionsQPQWebServerConfigSetting;
32
+ ```
33
+
34
+ ## Parameters
35
+
36
+ ### `groupName` — `string` (required)
37
+
38
+ A unique key for this set of defaults. Every declared default-route-options setting is currently merged into every route in the service regardless of `groupName`; the name simply keeps multiple declarations distinct within the config.
39
+
40
+ ### `routeOptions` — `RouteOptions` (required)
41
+
42
+ The options to merge into each route.
43
+
44
+ | Property | Type | Description |
45
+ | --- | --- | --- |
46
+ | `allowedOrigins` | `(string \| ServiceAllowedOrigin)[]` | Browser origins allowed to call routes (CORS). Unioned with each route's own `allowedOrigins`. |
47
+ | `routeAuthSettings` | `RouteAuthSettings` | Default auth policy — `userDirectoryName`, `scopes`, and `apiKeys`. Merged with each route's own auth settings (user directory falls back to the default; scopes and api keys are combined). |
48
+
49
+ The shapes of `RouteOptions`, `RouteAuthSettings`, and `ServiceAllowedOrigin` are documented on the [defineRoute](./route.md) page.
50
+
51
+ ## Notes
52
+
53
+ - Merging is **additive**: `allowedOrigins` are unioned and `routeAuthSettings.scopes`/`apiKeys` are combined across the defaults and the per-route options. `userDirectoryName` on a route takes precedence over the default when both are set.
54
+
55
+ ## Examples
56
+
57
+ ```typescript
58
+ import { defineDefaultRouteOptions, defineRoute } from 'quidproquo-webserver';
59
+
60
+ export default [
61
+ // Apply a user directory and CORS origin to all routes
62
+ defineDefaultRouteOptions('web', {
63
+ allowedOrigins: ['https://app.example.com'],
64
+ routeAuthSettings: { userDirectoryName: 'users' },
65
+ }),
66
+
67
+ // Inherits the user directory + origin above; adds a scope requirement
68
+ defineRoute('POST', '/orders', '/src/routes/orders/create::createOrder', {
69
+ routeAuthSettings: { scopes: ['orders:write'] },
70
+ }),
71
+ ];
72
+ ```
73
+
74
+ ## Related
75
+
76
+ - [defineRoute](./route.md) — the routes these defaults are merged into.
77
+ - [defineApi](./api.md) — the API the routes are served under.
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: defineDns
3
+ description: Declare the base DNS domain a service lives under, so every domain, certificate, and DNS record it deploys hangs off one root.
4
+ ---
5
+
6
+ # defineDns
7
+
8
+ Declares the **base DNS domain** for a service. Everything else in quidproquo-webserver that needs a hostname — API custom domains, web entries, [domain proxies](./domain-proxy.md), and [subdomain redirects](./subdomain-redirect.md) — derives its fully-qualified name from this single `dnsBase`. A service has one DNS base.
9
+
10
+ - **On AWS:** `defineDns` does **not** create a Route53 hosted zone by itself. The hosted zone for `dnsBase` (after environment/feature prefixing) must already exist in Route53 — deploy constructs look it up with `HostedZone.fromLookup`, then add the `A` records they need into that existing zone. Think of `defineDns` as declaring "this is my root domain"; the zone that owns it is expected to be there already.
11
+
12
+ ```typescript
13
+ import { defineDns } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineDns('example.com'),
17
+ ];
18
+ ```
19
+
20
+ ## Signature
21
+
22
+ ```typescript
23
+ function defineDns(
24
+ dnsBase: string,
25
+ ): DnsQPQWebServerConfigSetting;
26
+ ```
27
+
28
+ ## Parameters
29
+
30
+ ### `dnsBase` — `string` (required)
31
+
32
+ The root domain the service is served from, e.g. `'example.com'`. This value becomes the config's `uniqueKey` and is the base that all of the service's hostnames are built on. quidproquo prefixes it per environment and feature before use, so a single config deploys cleanly to multiple environments:
33
+
34
+ - In `production` the base stays `example.com`.
35
+ - In another environment it becomes `<environment>.example.com` (e.g. `development.example.com`).
36
+ - With a feature branch it becomes `<feature>.<environment>.example.com`.
37
+ - A service's own resources then live under `<service>.<base>` (e.g. an API at `api.<service>.development.example.com`).
38
+
39
+ The list of declared bases is what [askDnsList](../../actions/webserver/dns/ask-dns-list.md) returns at runtime.
40
+
41
+ ## Examples
42
+
43
+ ```typescript
44
+ import { defineDns } from 'quidproquo-webserver';
45
+
46
+ export default [
47
+ // Serve this service under example.com (and its env/feature-prefixed variants)
48
+ defineDns('example.com'),
49
+ ];
50
+ ```
51
+
52
+ ## Related
53
+
54
+ - [askDnsList](../../actions/webserver/dns/ask-dns-list.md) — returns the `dnsBase` values declared with `defineDns`.
55
+ - [defineCertificate](./certificate.md) — TLS certificate for a domain rooted at this base.
56
+ - [defineDomainProxy](./domain-proxy.md) — front a domain under this base with CloudFront.
57
+ - [defineSubdomainRedirect](./subdomain-redirect.md) — redirect a subdomain under this base to another URL.
@@ -0,0 +1,109 @@
1
+ ---
2
+ title: defineDomainProxy
3
+ description: Front a domain with a CloudFront distribution that proxies all requests to another HTTP origin.
4
+ ---
5
+
6
+ # defineDomainProxy
7
+
8
+ Puts a **CloudFront distribution** in front of a domain (rooted at the service's [DNS base](./dns.md)) and proxies every request through to another HTTP origin. Use it to serve an external or internal backend under your own domain with HTTPS, optional caching, and optional WAF protection.
9
+
10
+ - **On AWS:** deploys an `aws_cloudfront.Distribution` (`WebQpqWebserverDomainProxyConstruct` in `quidproquo-deploy-awscdk`) whose default behaviour points at an `HttpOrigin` for `httpProxyDomain`, forwards all viewer headers/methods, and applies the chosen viewer-protocol policy. It attaches the requested custom domain names, a looked-up ACM certificate (from the central certificate stack), a cache policy (named cache config or caching-disabled), and — when WAF is enabled for the service — the shared CloudFront web ACL. It then creates a Route53 **`A` alias record** per domain name pointing at the distribution, and adds a caching-disabled behaviour for each `ignoreCache` path pattern.
11
+
12
+ ```typescript
13
+ import { defineDomainProxy, DomainProxyViewerProtocolPolicy } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineDomainProxy('marketing-proxy', {
17
+ httpProxyDomain: 'origin.internal.example.com',
18
+ domain: {
19
+ rootDomain: 'example.com',
20
+ onRootDomain: true,
21
+ },
22
+ domainProxyViewerProtocolPolicy: DomainProxyViewerProtocolPolicy.REDIRECT_TO_HTTPS,
23
+ }),
24
+ ];
25
+ ```
26
+
27
+ ## Signature
28
+
29
+ ```typescript
30
+ function defineDomainProxy(
31
+ name: string,
32
+ options: QPQConfigAdvancedDomainProxySettings,
33
+ ): DomainProxyQPQWebServerConfigSetting;
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ ### `name` — `string` (required)
39
+
40
+ Unique name for this proxy (the config's `uniqueKey`). Used to derive the distribution's export name.
41
+
42
+ ### `options` — `QPQConfigAdvancedDomainProxySettings` (required)
43
+
44
+ | Property | Type | Default | Description |
45
+ | --- | --- | --- | --- |
46
+ | `httpProxyDomain` | `string` | – | The origin hostname CloudFront forwards requests to (the backend being proxied). |
47
+ | `domain` | `DomainProxyDomainOptions` | – | Which domain names the distribution answers on. See [Domain options](#domain-options). |
48
+ | `domainProxyViewerProtocolPolicy` | `DomainProxyViewerProtocolPolicy` | – | How CloudFront treats HTTP vs HTTPS from viewers. See [Viewer protocol policy](#viewer-protocol-policy). |
49
+ | `cacheSettingsName` | `string` | – | Name of a cache config (declared elsewhere in the service) to use as the distribution's cache policy. When omitted, caching is disabled. |
50
+ | `ignoreCache` | `string[]` | `[]` | Path patterns that always bypass the cache — each becomes an extra CloudFront behaviour with caching disabled. |
51
+
52
+ ### Domain options
53
+
54
+ ```typescript
55
+ export interface DomainProxyDomainOptions {
56
+ rootDomain: string;
57
+ subDomainNames?: string[];
58
+ onRootDomain: boolean;
59
+ }
60
+ ```
61
+
62
+ | Property | Type | Description |
63
+ | --- | --- | --- |
64
+ | `rootDomain` | `string` | The root domain (matches the service's [`dnsBase`](./dns.md)); the apex is resolved from it with the usual environment/feature prefixing, and the hosted zone is looked up in Route53. |
65
+ | `subDomainNames` | `string[]` | Subdomains to serve, each expanded to `<subDomain>.<apex>`. An `A` alias record is created for each. |
66
+ | `onRootDomain` | `boolean` | When `true` and no subdomains are given, the distribution also answers on the apex domain itself. |
67
+
68
+ ### Viewer protocol policy
69
+
70
+ ```typescript
71
+ export enum DomainProxyViewerProtocolPolicy {
72
+ HTTPS_ONLY = 'https-only',
73
+ REDIRECT_TO_HTTPS = 'redirect-to-https',
74
+ ALLOW_ALL = 'allow-all',
75
+ }
76
+ ```
77
+
78
+ | Member | Meaning |
79
+ | --- | --- |
80
+ | `HTTPS_ONLY` | Serve HTTPS only; reject plain HTTP. |
81
+ | `REDIRECT_TO_HTTPS` | Redirect HTTP requests to HTTPS. |
82
+ | `ALLOW_ALL` | Accept both HTTP and HTTPS. |
83
+
84
+ ## Examples
85
+
86
+ ```typescript
87
+ import { defineDomainProxy, DomainProxyViewerProtocolPolicy } from 'quidproquo-webserver';
88
+
89
+ export default [
90
+ // Proxy specific subdomains, HTTPS only, with a named cache config and a bypass path
91
+ defineDomainProxy('api-proxy', {
92
+ httpProxyDomain: 'backend.example.net',
93
+ domain: {
94
+ rootDomain: 'example.com',
95
+ subDomainNames: ['api', 'api-v2'],
96
+ onRootDomain: false,
97
+ },
98
+ domainProxyViewerProtocolPolicy: DomainProxyViewerProtocolPolicy.HTTPS_ONLY,
99
+ cacheSettingsName: 'short-cache',
100
+ ignoreCache: ['/health', '/webhooks/*'],
101
+ }),
102
+ ];
103
+ ```
104
+
105
+ ## Related
106
+
107
+ - [defineDns](./dns.md) — declares the `rootDomain` this proxy attaches to.
108
+ - [defineCertificate](./certificate.md) — related certificate configuration (the proxy uses the central certificate).
109
+ - [defineSubdomainRedirect](./subdomain-redirect.md) — redirect a subdomain instead of proxying it.
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: defineFileUploadSettings
3
+ description: Set service-wide limits for multipart/form-data file uploads.
4
+ ---
5
+
6
+ # defineFileUploadSettings
7
+
8
+ Declares **service-wide limits for multipart/form-data file uploads** — maximum file size, file count, field count, field size, and accepted content types. Sensible defaults apply even when this setting is not declared; declare it only to override them.
9
+
10
+ - **On AWS:** no infrastructure of its own. The limits are enforced by the API Lambda's multipart parser when handling upload requests (see [defineApi](./api.md)). API Gateway independently caps request payloads at 10MB.
11
+
12
+ ```typescript
13
+ import { defineFileUploadSettings } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineFileUploadSettings({
17
+ maxFileSizeBytes: 5 * 1024 * 1024,
18
+ allowedMimeTypes: ['image/*', 'application/pdf'],
19
+ }),
20
+ ];
21
+ ```
22
+
23
+ ## Signature
24
+
25
+ ```typescript
26
+ function defineFileUploadSettings(
27
+ fileUploadSettings: Partial<FileUploadSettings>,
28
+ ): FileUploadSettingsQPQWebServerConfigSetting;
29
+ ```
30
+
31
+ ## Parameters
32
+
33
+ ### `fileUploadSettings` — `Partial<FileUploadSettings>` (required)
34
+
35
+ Any subset of the limits below; unspecified fields keep their default.
36
+
37
+ | Property | Type | Default | Description |
38
+ | --- | --- | --- | --- |
39
+ | `maxFileSizeBytes` | `number` | `10485760` (10 MB) | Maximum size of any single uploaded file. Uploads with a larger file are rejected with a `413`. The default matches API Gateway's 10MB request cap. |
40
+ | `maxFileCount` | `number` | `10` | Maximum number of files in a single multipart request. |
41
+ | `maxFieldCount` | `number` | `100` | Maximum number of non-file fields in a single multipart request. |
42
+ | `maxFieldSizeBytes` | `number` | `1048576` (1 MB) | Maximum size of any single non-file field value. Larger values are truncated by the parser. |
43
+ | `allowedMimeTypes` | `string[]` | – (any) | Content types accepted for uploaded files, e.g. `['image/*', 'application/pdf']` (`type/*` wildcards supported). Omit to accept any content type. |
44
+
45
+ ## Examples
46
+
47
+ ```typescript
48
+ import { defineFileUploadSettings } from 'quidproquo-webserver';
49
+
50
+ export default [
51
+ // Images only, up to 5MB each, at most 3 per request
52
+ defineFileUploadSettings({
53
+ maxFileSizeBytes: 5 * 1024 * 1024,
54
+ maxFileCount: 3,
55
+ allowedMimeTypes: ['image/png', 'image/jpeg'],
56
+ }),
57
+ ];
58
+ ```
59
+
60
+ ## Related
61
+
62
+ - [defineApi](./api.md) — the API whose Lambda enforces these limits.
63
+ - [defineRoute](./route.md) — the routes that accept uploads.
@@ -0,0 +1,83 @@
1
+ ---
2
+ title: defineMigration
3
+ description: Register deploy-time migration stories that run once per deploy to evolve data as your service changes.
4
+ ---
5
+
6
+ # defineMigration
7
+
8
+ Registers a set of **migrations** — stories that run at deploy time to evolve existing data when your service changes (rename a field, backfill a column, reshape records). Each migration runs **at most once** across the lifetime of the service: quidproquo tracks which migrations have already run and only executes the ones that are new in the current deploy.
9
+
10
+ `defineMigration` is a convenience wrapper that expands into several lower-level config settings. It is built on [defineDeployEvent](../core/deploy-event.md), so its work is triggered by the deploy-event pipeline and ultimately runs through [askProcessEvent](../../actions/core/event/ask-process-event.md), just like every other event source.
11
+
12
+ - **What it declares:** a [global](../core/global.md) (`qpqMigrations`) holding the migration list, a [key-value store](../core/key-value-store.md) (`qpqMigrations`) that records which migrations have run, a [deploy event](../core/deploy-event.md) (`qpqMigrations`) that reacts to stack changes, and a [queue](../core/queue.md) (`qpqMigrations`) that actually executes each migration story. The queue is configured to run **one migration at a time** (`maxConcurrentExecutions: 1`, `batchSize: 1`, `concurrency: 1`) so migrations never run concurrently.
13
+
14
+ ```typescript
15
+ import { defineMigration } from 'quidproquo-webserver';
16
+ import { DeployEventType } from 'quidproquo-core';
17
+
18
+ export default [
19
+ defineMigration([
20
+ {
21
+ runtime: '/entry/migrations/2026-addFullName::addFullName',
22
+ deployType: DeployEventType.Api,
23
+ },
24
+ ]),
25
+ ];
26
+ ```
27
+
28
+ ## How it runs
29
+
30
+ The generated deploy event fires on each qualifying stack status change:
31
+
32
+ - **On the first (Create) deploy** every migration is recorded as *already run* without executing it — a freshly created service is expected to start from clean [seed](./seed.md) data, so there is nothing to migrate.
33
+ - **On later (Update) deploys** each migration whose `deployType` matches the stack that changed and that has **not** already been recorded is enqueued on the `qpqMigrations` queue (which runs its story) and then recorded as run. Migrations already recorded are skipped, so re-deploying is safe.
34
+
35
+ ## Signature
36
+
37
+ ```typescript
38
+ function defineMigration(
39
+ migrations: Migration[],
40
+ options?: QPQConfigAdvancedMigrationSettings,
41
+ ): QPQConfig;
42
+ ```
43
+
44
+ Unlike most `define*` helpers (which return a single config setting), `defineMigration` returns a `QPQConfig` — an array of settings — because it composes several underlying resources.
45
+
46
+ ## Parameters
47
+
48
+ ### `migrations` — `Migration[]` (required)
49
+
50
+ The list of migrations to register. Each entry:
51
+
52
+ ```typescript
53
+ export interface Migration {
54
+ runtime: QpqFunctionRuntime;
55
+ deployType: DeployEventType;
56
+ }
57
+ ```
58
+
59
+ | Property | Type | Description |
60
+ | --- | --- | --- |
61
+ | `runtime` | `QpqFunctionRuntime` | The migration story to run, usually a relative path string of the form `'/path/to/file::exportedFunctionName'`. Its source path becomes the migration's identity — this is the key stored in the tracking key-value store, so it is how quidproquo knows a given migration has already run. |
62
+ | `deployType` | `DeployEventType` | Which deploy this migration belongs to, so it only runs when the matching stack updates. One of `DeployEventType.Api`, `DeployEventType.Web`, or `DeployEventType.Unknown`. |
63
+
64
+ ### `options` — `QPQConfigAdvancedMigrationSettings` (optional)
65
+
66
+ Extends the shared `QPQConfigAdvancedSettings`. Forwarded to the underlying key-value store and queue.
67
+
68
+ | Property | Type | Default | Description |
69
+ | --- | --- | --- | --- |
70
+ | `deprecated` | `boolean` | `false` | Marks the underlying resources as deprecated. |
71
+
72
+ ## Notes
73
+
74
+ - Migrations run **sequentially** (never in parallel), one message per batch.
75
+ - Because identity is derived from the story's source path, moving or renaming a migration file makes quidproquo treat it as a brand-new migration that will run again.
76
+ - A migration story receives no payload — it is executed for its side effects on your data.
77
+
78
+ ## Related
79
+
80
+ - [defineSeed](./seed.md) — the companion helper: seeds initial data on the first deploy, whereas migrations evolve existing data on later deploys.
81
+ - [defineDeployEvent](../core/deploy-event.md) — the lower-level deploy-time hook this is built on.
82
+ - [askProcessEvent](../../actions/core/event/ask-process-event.md) — the pipeline that runs the migration story.
83
+ - [defineQueue](../core/queue.md) / [defineKeyValueStore](../core/key-value-store.md) / [defineGlobal](../core/global.md) — the resources `defineMigration` generates.