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,100 @@
1
+ ---
2
+ title: defineEventDocRoutes
3
+ description: Mount the built-in HTTP routes for an event-sourced document collection against an already-declared store.
4
+ ---
5
+
6
+ # defineEventDocRoutes
7
+
8
+ Mounts the built-in REST **routes** for one document `type` in an event-document collection. It returns a `QPQConfig` (an array of route settings). The route controllers ship inside `quidproquo-features` and resolve the store, type, user directory, validator, and renderer from per-route globals — so a service needs no controller wiring of its own: declare the store, add these routes, and the collection is fully served.
9
+
10
+ `defineEventDocRoutes` defines **only** the routes; it assumes the store already exists (declared with [defineEventDocSummary](./event-doc-summary.md)). Use it directly when **several document types share one store** — call `defineEventDocSummary` once, then `defineEventDocRoutes` per type. For the single-type case, [defineEventDoc](./event-doc.md) does both in one call.
11
+
12
+ - **On AWS:** deploys the routes below to API Gateway, each backed by a Lambda running the corresponding built-in controller. It creates no data infrastructure — that is [defineEventDocSummary](./event-doc-summary.md)'s job.
13
+
14
+ ```typescript
15
+ import { defineEventDocSummary, defineEventDocRoutes } from 'quidproquo-features';
16
+
17
+ export default [
18
+ ...defineEventDocSummary('content'),
19
+ ...defineEventDocRoutes({
20
+ storeName: 'content',
21
+ type: 'article',
22
+ basePath: '/articles',
23
+ routeAuthSettings: { userDirectoryName: 'editors' },
24
+ }),
25
+ ];
26
+ ```
27
+
28
+ ## Routes mounted
29
+
30
+ All paths are prefixed with the version segment `/v{version}` (default `/v1`):
31
+
32
+ | Method | Path | Purpose |
33
+ | --- | --- | --- |
34
+ | `GET` | `{basePath}` | List the collection's documents. |
35
+ | `GET` | `{basePath}/{id}` | Get one document's summary record. |
36
+ | `GET` | `{basePath}/{id}/events` | List a document's event log. |
37
+ | `GET` | `{basePath}/{id}/render` | Render the document to HTML. **Only mounted when `eventRenderer` is set.** |
38
+ | `POST` | `{basePath}` | Create a document. |
39
+ | `POST` | `{basePath}/{id}/events` | Append an event to a document. |
40
+ | `POST` | `{basePath}/{id}/assets` | Request an asset upload URL. |
41
+ | `GET` | `{basePath}/{id}/assets/{assetId}` | Download an asset. |
42
+ | `DELETE` | `{basePath}/{id}` | Remove a document. |
43
+
44
+ ## Signature
45
+
46
+ ```typescript
47
+ function defineEventDocRoutes(options: EventDocRoutesOptions): QPQConfig;
48
+ ```
49
+
50
+ ## Parameters
51
+
52
+ The single `options` argument is an `EventDocRoutesOptions`:
53
+
54
+ | Property | Type | Default | Description |
55
+ | --- | --- | --- | --- |
56
+ | `storeName` | `string` | – (required) | The store to serve. **Must match a [defineEventDocSummary](./event-doc-summary.md)** in the same service. |
57
+ | `type` | `string` | – (required) | The document type this route set serves. Pins the collection within a store that can hold several types — use a distinct `type` (and `basePath`) per `defineEventDocRoutes` call over a shared store. |
58
+ | `basePath` | `` `/${string}` `` | – (required) | URL prefix the routes mount under. Must start with `/`, e.g. `/articles`. |
59
+ | `routeAuthSettings` | `RouteAuthSettings` | – | Auth settings applied to every mounted route (from quidproquo-webserver — see [route](../webserver/route.md)). When it carries a `userDirectoryName`, that directory is exposed to the controllers so mutations can attribute the acting user. **Omit to leave the routes open** — mutations then have no user to attribute. |
60
+ | `version` | `number` | `1` | Version number for the `/v{version}` path prefix on every route. |
61
+ | `eventValidator` | `string` | – | Name of a registered inline function (see `defineInlineFunction`). When set, every append invokes it with `{ event, events }` to reject lifecycle- or payload-invalid events before they reach the log. The frontend editor runs the same rule for instant feedback. |
62
+ | `eventRenderer` | `string` | – | Name of a registered inline function. When set, a `GET {basePath}/{id}/render` route is mounted; it invokes the renderer with the document's full `{ events }` log, which folds + renders to HTML. |
63
+
64
+ ### `RouteAuthSettings`
65
+
66
+ `routeAuthSettings` is the standard quidproquo-webserver route auth object (the same one [defineRoute](../webserver/route.md) accepts). Its `userDirectoryName` names the [user directory](../core/key-value-store.md) callers authenticate against; the controllers read it to resolve the acting user for event attribution.
67
+
68
+ ## Examples
69
+
70
+ ```typescript
71
+ import { defineEventDocSummary, defineEventDocRoutes } from 'quidproquo-features';
72
+
73
+ export default [
74
+ // One store, two types, each on its own path and route version.
75
+ ...defineEventDocSummary('content'),
76
+
77
+ ...defineEventDocRoutes({
78
+ storeName: 'content',
79
+ type: 'article',
80
+ basePath: '/articles',
81
+ routeAuthSettings: { userDirectoryName: 'editors' },
82
+ eventValidator: 'validateArticleEvent',
83
+ eventRenderer: 'renderArticle',
84
+ }),
85
+
86
+ ...defineEventDocRoutes({
87
+ storeName: 'content',
88
+ type: 'page',
89
+ basePath: '/pages',
90
+ routeAuthSettings: { userDirectoryName: 'editors' },
91
+ }),
92
+ ];
93
+ ```
94
+
95
+ ## Related
96
+
97
+ - [defineEventDocSummary](./event-doc-summary.md) — declares the store these routes serve (required before mounting routes).
98
+ - [defineEventDoc](./event-doc.md) — declares the store *and* these routes in one call for the single-type case.
99
+ - [defineRoute](../webserver/route.md) — the underlying webserver route config (source of `RouteAuthSettings`).
100
+ - **Custom routes over the same store:** wrap your controllers in `askEventDocProvideStore({ storeName, type }, ...)` (from quidproquo-features) so the generic [reads](../../actions/features/event-doc/ask-event-doc-get-by-id.md) resolve the collection, then compose actions like [askEventDocCreate](../../actions/features/event-doc/ask-event-doc-create.md).
@@ -0,0 +1,59 @@
1
+ ---
2
+ title: defineEventDocSummary
3
+ description: Declare the stores for an event-sourced document collection — its summary table, append-only event log, and asset bucket.
4
+ ---
5
+
6
+ # defineEventDocSummary
7
+
8
+ Declares the **stores** that back an event-document collection, without any routes. It returns a `QPQConfig` (an array of config settings) that expands to three underlying core stores:
9
+
10
+ 1. A **summary key-value store** (partition key `type`, sort key `id`) — the queryable record for each document, derived by folding the identity/lifecycle events of its log. Rows are the [`EventDocSummary`](../../actions/features/event-doc/ask-event-doc-get-by-id.md) shape and carry the version history. A secondary index on `(type, updatedAt)` supports the recently-updated ordering [askEventDocList](../../actions/features/event-doc/ask-event-doc-list.md) returns.
11
+ 2. An **append-only events store** (`<storeName>Events`, partition key `pk`, numeric sort key `sk`) — the ordered log every document is folded from. It has **no** secondary index on purpose: the local dev-server query processor can't target one, so all event reads go through the main table.
12
+ 3. A **storage drive** (`<storeName>edocs`, lower-cased) — the collection's blob bucket, holding each document's immutable uploaded assets (and later its derived runtime artifacts) under per-document prefixes.
13
+
14
+ Point-in-time recovery is enabled on both tables.
15
+
16
+ - **On AWS:** deploys two DynamoDB tables (via [defineKeyValueStore](../core/key-value-store.md)) and one S3 bucket (via [defineStorageDrive](../core/storage-drive.md)). All physical names are derived from `keyValueStoreName`, so a collection needs only that one name.
17
+
18
+ ```typescript
19
+ import { defineEventDocSummary } from 'quidproquo-features';
20
+
21
+ export default [
22
+ ...defineEventDocSummary('content'),
23
+ ];
24
+ ```
25
+
26
+ Use `defineEventDocSummary` when you want to define the store separately from the routes — most importantly, when **several document types share one store**. Call it once, then call [defineEventDocRoutes](./event-doc-routes.md) per type. For the common single-type case, [defineEventDoc](./event-doc.md) does both in one call.
27
+
28
+ ## Signature
29
+
30
+ ```typescript
31
+ function defineEventDocSummary(keyValueStoreName: string): QPQConfig;
32
+ ```
33
+
34
+ ## Parameters
35
+
36
+ ### `keyValueStoreName` — `string` (required)
37
+
38
+ The collection's base store name. It is used directly as the summary store name and as the `storeName` that route definitions and store-context calls reference. The events table name (`` `${name}Events` ``) and asset bucket name (`` `${name}edocs`.toLowerCase() ``) are both derived from it, so the whole collection is addressed by this single name. It must match the `storeName` passed to any [defineEventDocRoutes](./event-doc-routes.md) (or [askEventDocProvideStore](#related)) for the same collection.
39
+
40
+ ## Examples
41
+
42
+ ```typescript
43
+ import { defineEventDocSummary } from 'quidproquo-features';
44
+ import { defineEventDocRoutes } from 'quidproquo-features';
45
+
46
+ // One shared store, two document types served on different paths.
47
+ export default [
48
+ ...defineEventDocSummary('content'),
49
+ ...defineEventDocRoutes({ storeName: 'content', type: 'article', basePath: '/articles' }),
50
+ ...defineEventDocRoutes({ storeName: 'content', type: 'page', basePath: '/pages' }),
51
+ ];
52
+ ```
53
+
54
+ ## Related
55
+
56
+ - [defineEventDocRoutes](./event-doc-routes.md) — mounts the HTTP routes against a store declared here (one per type).
57
+ - [defineEventDoc](./event-doc.md) — declares this store *and* its routes together for the single-type case.
58
+ - [defineKeyValueStore](../core/key-value-store.md) / [defineStorageDrive](../core/storage-drive.md) — the core config settings this helper composes.
59
+ - **Reading the store from a custom story:** wrap data calls in `askEventDocProvideStore({ storeName, type }, ...)` (from quidproquo-features) so getters like [askEventDocGetById](../../actions/features/event-doc/ask-event-doc-get-by-id.md) resolve the right collection.
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: defineEventDoc
3
+ description: Define an event-sourced document collection — its stores plus its HTTP routes — in one call.
4
+ ---
5
+
6
+ # defineEventDoc
7
+
8
+ Defines a complete **event-document collection**: the data stores that hold it *and* the HTTP routes that serve it, in a single call. This is the all-in-one helper for the common **one-store-one-type** case. It returns a `QPQConfig` (an array of config settings) that you spread into a service's infrastructure default export.
9
+
10
+ An event document is not stored as a mutable row. It is derived by folding an ordered, append-only log of events. `defineEventDoc` provisions that log (plus a queryable summary table and a blob bucket) and mounts the REST routes that create documents, append events, read them back, and resolve their draft/published versions.
11
+
12
+ - **On AWS:** deploys everything [defineEventDocSummary](./event-doc-summary.md) deploys (two DynamoDB tables — a summary table and an append-only events table — plus an S3 bucket for assets) and everything [defineEventDocRoutes](./event-doc-routes.md) deploys (the API Gateway routes and their Lambda handlers). It creates no infrastructure of its own; it is exactly `[defineEventDocSummary(options.storeName), defineEventDocRoutes(options)]`.
13
+
14
+ ```typescript
15
+ import { defineEventDoc } from 'quidproquo-features';
16
+
17
+ export default [
18
+ ...defineEventDoc({
19
+ storeName: 'content',
20
+ type: 'article',
21
+ basePath: '/articles',
22
+ routeAuthSettings: { userDirectoryName: 'editors' },
23
+ }),
24
+ ];
25
+ ```
26
+
27
+ ## When to use `defineEventDoc` vs `defineEventDocSummary` + `defineEventDocRoutes`
28
+
29
+ `defineEventDoc` defines the store **and** the routes together, so it assumes exactly one document `type` per store. If you want several document types to share one physical store (one summary table, one events table, one bucket), you must not define the store more than once. In that case, call [defineEventDocSummary](./event-doc-summary.md) **once** for the shared store, then [defineEventDocRoutes](./event-doc-routes.md) **per type** — each with the same `storeName` but a different `type` and `basePath`. Use `defineEventDoc` whenever the store backs a single type.
30
+
31
+ ## Signature
32
+
33
+ ```typescript
34
+ function defineEventDoc(options: EventDocRoutesOptions): QPQConfig;
35
+ ```
36
+
37
+ ## Parameters
38
+
39
+ `defineEventDoc` takes the same `EventDocRoutesOptions` object as [defineEventDocRoutes](./event-doc-routes.md); `options.storeName` is also passed straight through to [defineEventDocSummary](./event-doc-summary.md). See the [defineEventDocRoutes parameter reference](./event-doc-routes.md#parameters) for every field.
40
+
41
+ | Property | Type | Required | Description |
42
+ | --- | --- | --- | --- |
43
+ | `storeName` | `string` | yes | Name of the summary store to create and serve. Also derives the events table and asset bucket names. |
44
+ | `type` | `string` | yes | The document type this collection holds — the store's partition value, so one store can (via the split helpers) hold several types. |
45
+ | `basePath` | `` `/${string}` `` | yes | URL prefix the routes mount under, e.g. `/articles`. |
46
+ | `routeAuthSettings` | `RouteAuthSettings` | no | Auth for the mounted routes. Omit to leave them open — mutations then have no user to attribute. |
47
+ | `version` | `number` | no | Route version prefix (`/v{version}`), default `1`. |
48
+ | `eventValidator` | `string` | no | Inline-function name run on every append to reject invalid events. |
49
+ | `eventRenderer` | `string` | no | Inline-function name that folds + renders the log to HTML; mounting it adds a `GET {basePath}/{id}/render` route. |
50
+
51
+ ## Examples
52
+
53
+ ```typescript
54
+ import { defineEventDoc } from 'quidproquo-features';
55
+
56
+ export default [
57
+ // A single "article" collection with authenticated mutations.
58
+ ...defineEventDoc({
59
+ storeName: 'content',
60
+ type: 'article',
61
+ basePath: '/articles',
62
+ routeAuthSettings: { userDirectoryName: 'editors' },
63
+ eventValidator: 'validateArticleEvent',
64
+ eventRenderer: 'renderArticle',
65
+ }),
66
+ ];
67
+ ```
68
+
69
+ ## Related
70
+
71
+ - [defineEventDocSummary](./event-doc-summary.md) — the store half of this helper; call it directly when several types share one store.
72
+ - [defineEventDocRoutes](./event-doc-routes.md) — the routes half; call it per type in the split setup.
73
+ - [defineKeyValueStore](../core/key-value-store.md) / [defineStorageDrive](../core/storage-drive.md) — the underlying core config the summary helper composes.
74
+ - **Reading a document in your own stories:** [askEventDocGetByIdOrThrow](../../actions/features/event-doc/ask-event-doc-get-by-id.md), [askEventDocList](../../actions/features/event-doc/ask-event-doc-list.md), and the [version reads](../../actions/features/event-doc/ask-event-doc-get-draft.md).
75
+ - **Creating a document in your own stories:** [askEventDocCreate](../../actions/features/event-doc/ask-event-doc-create.md).
@@ -0,0 +1,85 @@
1
+ ---
2
+ title: defineVersionedRoute
3
+ description: Define an HTTP route under a versioned path prefix (/v1, /v2, …) for API versioning.
4
+ ---
5
+
6
+ # defineVersionedRoute
7
+
8
+ Defines an HTTP route whose path is prefixed with an API version segment (`/v1`, `/v2`, …). It is a thin wrapper over the webserver [defineRoute](../webserver/route.md): the only difference is that it prepends `/v{version}` to the path before delegating, so you can publish multiple concurrent versions of an endpoint without repeating the prefix at every call site.
9
+
10
+ Versioning here is purely **path-based** — there is no content negotiation or header inspection. `defineVersionedRoute('GET', '/users', runtime, {}, 2)` is exactly `defineRoute('GET', '/v2/users', runtime, {})`. Callers select a version by the URL they request; you ship a new version by declaring the same route with a higher `version` (and a new runtime), and retire an old one by removing its declaration.
11
+
12
+ `defineVersionedRoute` returns an **array** containing the single `defineRoute` setting — spread it into your service's route config.
13
+
14
+ - **On AWS:** identical to [defineRoute](../webserver/route.md) — routes are not individual infrastructure; API Gateway proxies every request to the API Lambda, which matches the full (version-prefixed) path at runtime.
15
+
16
+ ```typescript
17
+ import { defineVersionedRoute } from 'quidproquo-features';
18
+
19
+ export default [
20
+ // Served at GET /v1/users/{userId}
21
+ ...defineVersionedRoute('GET', '/users/{userId}', '/src/routes/users/getUser::getUser'),
22
+ ];
23
+ ```
24
+
25
+ ## Signature
26
+
27
+ ```typescript
28
+ function defineVersionedRoute(
29
+ method: HTTPMethod,
30
+ path: string,
31
+ runtime: QpqFunctionRuntime,
32
+ options?: RouteOptions,
33
+ version?: number,
34
+ ): RouteQPQWebServerConfigSetting[];
35
+ ```
36
+
37
+ ## Parameters
38
+
39
+ ### `method` — `HTTPMethod` (required)
40
+
41
+ The HTTP method to match — `'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'PATCH'`.
42
+
43
+ ### `path` — `string` (required)
44
+
45
+ The URL path **without** the version prefix, e.g. `'/users/{userId}'`. The `/v{version}` segment is prepended for you. Path parameters are written with braces (`{userId}`).
46
+
47
+ ### `runtime` — `QpqFunctionRuntime` (required)
48
+
49
+ A reference to the story that handles the request, usually a relative path string of the form `'/path/to/file::exportedFunctionName'`. Passed straight through to [defineRoute](../webserver/route.md).
50
+
51
+ ### `options` — `RouteOptions` (optional, default `{}`)
52
+
53
+ Per-route CORS and auth options, forwarded unchanged to [defineRoute](../webserver/route.md) — `allowedOrigins`, `routeAuthSettings` (user directory, scopes, api keys). See [defineRoute](../webserver/route.md#options--genericrouteoptionsapikeyreference--string-optional) for the full shape.
54
+
55
+ ### `version` — `number` (optional, default `1`)
56
+
57
+ The version number used to build the path prefix. `1` produces `/v1…`, `2` produces `/v2…`, and so on.
58
+
59
+ ## Examples
60
+
61
+ ```typescript
62
+ import { defineVersionedRoute } from 'quidproquo-features';
63
+
64
+ export default [
65
+ // v1 — the original handler
66
+ ...defineVersionedRoute('GET', '/users/{userId}', '/src/routes/users/v1/getUser::getUser'),
67
+
68
+ // v2 — a new handler at /v2/users/{userId}, kept side-by-side with v1
69
+ ...defineVersionedRoute('GET', '/users/{userId}', '/src/routes/users/v2/getUser::getUser', {}, 2),
70
+
71
+ // Authenticated v2 write endpoint
72
+ ...defineVersionedRoute(
73
+ 'POST',
74
+ '/users',
75
+ '/src/routes/users/v2/create::createUser',
76
+ { routeAuthSettings: { userDirectoryName: 'users', scopes: ['users:write'] } },
77
+ 2,
78
+ ),
79
+ ];
80
+ ```
81
+
82
+ ## Related
83
+
84
+ - [defineRoute](../webserver/route.md) — the underlying route setting this wraps; see it for how routes are matched and served.
85
+ - [defineDefaultRouteOptions](../webserver/default-route-options.md) — service-wide CORS/auth defaults merged into each route.
@@ -0,0 +1 @@
1
+ { "label": "quidproquo-neo4j", "position": 5, "link": { "type": "generated-index", "description": "Neo4j graph database config from quidproquo-neo4j." } }
@@ -0,0 +1,122 @@
1
+ ---
2
+ title: defineGraphDatabaseNeo4j
3
+ description: Define a Neo4j-backed graph database that the core graph-database action queries with openCypher.
4
+ ---
5
+
6
+ # defineGraphDatabaseNeo4j
7
+
8
+ Defines a **Neo4j-backed graph database**. It registers everything a service needs to run [openCypher](https://opencypher.org/) queries against a [Neo4j Aura](https://neo4j.com/cloud/aura/) instance while keeping the same story-facing API as a core graph database.
9
+
10
+ Stories still query the database by name with [askGraphDatabaseExecuteOpenCypherQuery](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md), and they receive the exact same [`GraphCypherResponse`](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md#returns) result shape — nodes, relationships, and scalars. The only difference from the core [defineGraphDatabase](../core/graph-database.md) is the backing engine: `defineGraphDatabase` deploys an Amazon Neptune cluster, whereas `defineGraphDatabaseNeo4j` points the same action at a hosted Neo4j instance. You choose one or the other per database name; the story code that queries it is identical either way.
11
+
12
+ It ships as a separate package. Import it from `quidproquo-neo4j`:
13
+
14
+ ```typescript
15
+ import { defineGraphDatabaseNeo4j } from 'quidproquo-neo4j';
16
+
17
+ export default [
18
+ defineGraphDatabaseNeo4j('social-graph'),
19
+ ];
20
+ ```
21
+
22
+ - **On AWS:** this define does **not** deploy a database cluster. Neo4j is hosted externally (Neo4j Aura); the define instead wires up the pieces that let stories reach it. It contributes:
23
+ - a [parameter](../core/parameter.md) named `neo4j-<databaseName>-instance` holding the Aura instance id,
24
+ - a [secret](../core/secret.md) named `neo4j-<databaseName>-password` holding the database password,
25
+ - an **action-processor override** that replaces the core graph-database processor so `askGraphDatabaseExecuteOpenCypherQuery` runs against Neo4j instead of Neptune, and
26
+ - a daily [recurring schedule](../core/recurring-schedule.md) (`keepAlive`, `0 0 * * ? *` — midnight UTC) that runs a trivial `RETURN 1` query to keep the instance warm.
27
+
28
+ ## How it connects
29
+
30
+ The action-processor override resolves the connection at query time rather than at deploy time. When a story runs [askGraphDatabaseExecuteOpenCypherQuery](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md), the Neo4j processor:
31
+
32
+ 1. reads the instance id from the `neo4j-<databaseName>-instance` parameter and the password from the `neo4j-<databaseName>-password` secret;
33
+ 2. rewrites the portable `qpqElementId(...)` helper in the query to Neo4j's native `elementId(...)` function;
34
+ 3. POSTs the query and its `params` to the Aura Query API at `https://<instance>.databases.neo4j.io:443/db/neo4j/query/v2`, authenticating with HTTP Basic auth as user `neo4j`;
35
+ 4. converts the raw Neo4j response back into the engine-agnostic [`GraphCypherResponse`](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md#returns) — mapping Neo4j nodes, relationships, and scalars onto the same `GraphNodeResult` / `GraphRelationshipResult` / `GraphScalarResult` kinds the core action returns.
36
+
37
+ Because the result normalisation matches the core engine, switching a database between Neptune and Neo4j requires no change to the querying stories.
38
+
39
+ ## Signature
40
+
41
+ ```typescript
42
+ function defineGraphDatabaseNeo4j(
43
+ databaseName: string,
44
+ options?: QPQConfigAdvancedGraphDatabaseNeo4jSettings,
45
+ ): QPQConfig;
46
+ ```
47
+
48
+ Unlike the core `defineGraphDatabase` (which returns a single `GraphDatabaseQPQConfigSetting`), this returns a `QPQConfig` — the array of underlying settings described in the **On AWS** section above. Spread or nest it directly in a service's config array.
49
+
50
+ ## Parameters
51
+
52
+ ### `databaseName` — `string` (required)
53
+
54
+ The name of the graph database. This is the name stories pass as the first argument to [askGraphDatabaseExecuteOpenCypherQuery](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md). It also derives the names of the generated parameter (`neo4j-<databaseName>-instance`) and secret (`neo4j-<databaseName>-password`).
55
+
56
+ ### `options` — `QPQConfigAdvancedGraphDatabaseNeo4jSettings` (optional)
57
+
58
+ | Property | Type | Default | Description |
59
+ | --- | --- | --- | --- |
60
+ | `owner` | `CrossModuleOwner<'graphDatabaseName'>` | – | Declares that this database is owned by **another** module/service, so the generated parameter, secret, and schedule resolve against that owner instead of creating local ones. `{ module, application, feature, environment, graphDatabaseName }` — all optional; unset parts default to the current service. |
61
+ | `version` | `Neo4jVersion` | `Neo4jVersion.Version5` | Which Neo4j processor implementation to bind. Selects the action-processor override under `graphDatabaseOverride/<version>`. |
62
+
63
+ ### `Neo4jVersion`
64
+
65
+ Selects the Neo4j processor version to wire up.
66
+
67
+ | Member | Value | Description |
68
+ | --- | --- | --- |
69
+ | `Neo4jVersion.Version5` | `'version5'` | Targets Neo4j 5.x via the Aura Query API v2 (the default). |
70
+
71
+ ## Configuring the instance and password
72
+
73
+ `defineGraphDatabaseNeo4j` declares the parameter and secret but does not set their values — you supply those where you'd normally set a parameter and a secret for the service:
74
+
75
+ - **`neo4j-<databaseName>-instance`** — the Aura instance id used to build the endpoint host `<instance>.databases.neo4j.io`. See [defineParameter](../core/parameter.md).
76
+ - **`neo4j-<databaseName>-password`** — the password for the `neo4j` user, stored as a [secret](../core/secret.md).
77
+
78
+ ## Examples
79
+
80
+ ```typescript
81
+ import { defineGraphDatabaseNeo4j, Neo4jVersion } from 'quidproquo-neo4j';
82
+
83
+ export default [
84
+ // A Neo4j-backed graph database for this service
85
+ defineGraphDatabaseNeo4j('social-graph'),
86
+
87
+ // Pin the processor version explicitly
88
+ defineGraphDatabaseNeo4j('analytics-graph', {
89
+ version: Neo4jVersion.Version5,
90
+ }),
91
+
92
+ // Use a database whose parameter/secret are owned by another module
93
+ defineGraphDatabaseNeo4j('shared-graph', {
94
+ owner: { module: 'graph-service' },
95
+ }),
96
+ ];
97
+ ```
98
+
99
+ Query it exactly as you would a core graph database — the story code doesn't know or care that Neo4j backs it:
100
+
101
+ ```typescript
102
+ import { askGraphDatabaseExecuteOpenCypherQuery, GraphDatabaseInstanceType } from 'quidproquo-core';
103
+
104
+ export function* askFindFriends(userId: string) {
105
+ const response = yield* askGraphDatabaseExecuteOpenCypherQuery(
106
+ 'social-graph',
107
+ GraphDatabaseInstanceType.Read,
108
+ 'MATCH (u:User { id: $userId })-[:FOLLOWS]->(f:User) RETURN f',
109
+ { userId },
110
+ );
111
+
112
+ return response.results.map((row) => row.f);
113
+ }
114
+ ```
115
+
116
+ ## Related
117
+
118
+ - [defineGraphDatabase](../core/graph-database.md) — the core (Neptune-backed) graph database; same query API, different backing engine.
119
+ - [askGraphDatabaseExecuteOpenCypherQuery](../../actions/core/graph-database/ask-graph-database-execute-open-cypher-query.md) — run an openCypher query against a database defined here; documents the shared result shape.
120
+ - [defineSecret](../core/secret.md) — where the `neo4j-<databaseName>-password` secret's value is supplied.
121
+ - [defineParameter](../core/parameter.md) — where the `neo4j-<databaseName>-instance` value is supplied.
122
+ - [defineRecurringSchedule](../core/recurring-schedule.md) — the mechanism behind the daily keep-alive.
@@ -0,0 +1,8 @@
1
+ {
2
+ "label": "quidproquo-webserver",
3
+ "position": 2,
4
+ "link": {
5
+ "type": "generated-index",
6
+ "description": "Config settings (define* functions) exported from quidproquo-webserver — APIs, routes, websockets, auth, DNS, and web hosting."
7
+ }
8
+ }
@@ -0,0 +1,87 @@
1
+ ---
2
+ title: defineApiKey
3
+ description: Declare an API key — a shared secret (an AWS API Gateway API key) used to authenticate requests to a route.
4
+ ---
5
+
6
+ # defineApiKey
7
+
8
+ Declares an **API key**: a named shared secret that callers present in the `x-api-key` request header to authenticate against a route. Unlike user-directory auth (which identifies a *user* via an access token), an API key identifies a *caller* — typically a machine, service, or third party. You declare the key here, reference it from a route's `routeAuthSettings.apiKeys`, and the runtime validates the presented header against the real key value.
9
+
10
+ - **On AWS:** deploys an **API Gateway API key** (`aws_apigateway.ApiKey` via `QpqWebserverApiKeyConstruct` in `quidproquo-deploy-awscdk`). The key is created with `enabled: true`, its physical name is derived from the config (prefixed with application/module/environment), and its CloudFormation-exported id is what the runtime resolves to fetch the real key value during validation. If `value` is omitted, AWS generates the key value automatically.
11
+
12
+ ```typescript
13
+ import { defineApiKey } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ // AWS generates the key value
17
+ defineApiKey('partner-api'),
18
+ ];
19
+ ```
20
+
21
+ ## Signature
22
+
23
+ ```typescript
24
+ function defineApiKey(
25
+ apiKeyName: string,
26
+ options?: QPQConfigAdvancedApiKeySettings,
27
+ ): ApiKeyQPQWebServerConfigSetting;
28
+ ```
29
+
30
+ ## Parameters
31
+
32
+ ### `apiKeyName` — `string` (required)
33
+
34
+ The name of the key. This is the `name` you reference from a route (`routeAuthSettings.apiKeys: ['partner-api']`) and the key's `uniqueKey` within the config. On AWS it is used to derive the physical API Gateway key name.
35
+
36
+ ### `options` — `QPQConfigAdvancedApiKeySettings` (optional)
37
+
38
+ | Property | Type | Default | Description |
39
+ | --- | --- | --- | --- |
40
+ | `value` | `string` | – | The explicit key value (the secret string callers present). When omitted, AWS generates the value automatically — retrieve it from the API Gateway console/API after deploy. Provide a value when you need to pin a known secret. |
41
+ | `description` | `string` | – | Human-readable description attached to the API Gateway key. |
42
+ | `deprecated` | `boolean` | `false` | Inherited from `QPQConfigAdvancedSettings`; marks the setting as deprecated. |
43
+
44
+ ## Referencing a key from a route
45
+
46
+ A key does nothing on its own — a route opts into it via `routeAuthSettings.apiKeys`, which accepts either a plain key name or an `ApiKeyReference` object (used to reference a key owned by another application/service):
47
+
48
+ ```typescript
49
+ export interface ApiKeyReference {
50
+ name: string;
51
+ applicationName?: string;
52
+ serviceName?: string;
53
+ }
54
+ ```
55
+
56
+ | Property | Type | Description |
57
+ | --- | --- | --- |
58
+ | `name` | `string` | The key name, matching the `apiKeyName` passed to `defineApiKey`. |
59
+ | `applicationName` | `string` | Application that owns the key, when it lives in a different application. Defaults to the current application. |
60
+ | `serviceName` | `string` | Service/module that owns the key, when it lives in a different service. Defaults to the current service. |
61
+
62
+ When a route lists `apiKeys`, the runtime reads the `x-api-key` header from the incoming request and validates it with [askApiKeyValidationValidate](../../actions/webserver/api-key-validation/ask-api-key-validation-validate.md). A request missing the header, or presenting a value that matches none of the referenced keys, is rejected.
63
+
64
+ ## Examples
65
+
66
+ ```typescript
67
+ import { defineApiKey } from 'quidproquo-webserver';
68
+
69
+ export default [
70
+ // Let AWS generate the secret
71
+ defineApiKey('partner-api', {
72
+ description: 'Key issued to the partner integration',
73
+ }),
74
+
75
+ // Pin a known value (e.g. seeded from a secret at deploy time)
76
+ defineApiKey('internal-cron', {
77
+ value: process.env.CRON_API_KEY,
78
+ description: 'Used by the scheduled internal caller',
79
+ }),
80
+ ];
81
+ ```
82
+
83
+ ## Related
84
+
85
+ - [askApiKeyValidationValidate](../../actions/webserver/api-key-validation/ask-api-key-validation-validate.md) — the action that validates a presented key value against declared keys at runtime.
86
+ - **Routes and APIs** reference a key through `routeAuthSettings.apiKeys` (see the `defineRoute` / `defineApi` config settings in quidproquo-webserver).
87
+ - [defineAuthSystem](./auth-system.md) — the other half of route auth: user-directory / access-token authentication.
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: defineApi
3
+ description: Define an HTTP API — the public web endpoint (a custom subdomain fronting an API Gateway REST API on AWS) that a service's routes are served under.
4
+ ---
5
+
6
+ # defineApi
7
+
8
+ Defines an **API**: the public HTTP endpoint for a service. An API declares the subdomain and root domain the service is reachable on; every [route](./route.md) you declare in the same service is served under it. A service typically declares exactly one API.
9
+
10
+ - **On AWS:** deploys a **regional API Gateway REST API** (`LambdaRestApi`, proxy mode, binary media types `*/*`) backed by a single Lambda that handles every route (`ApiQpqWebserverApiConstruct` in `quidproquo-deploy-awscdk`). The API is attached to a custom domain (`apiSubdomain.rootDomain`) via a base-path mapping keyed on the module name, so multiple modules can share one domain. Access logs (JSON, one-year retention) and CloudWatch metrics are enabled; a 5XX alarm is wired by default, plus 401/403 rate alarms when error notifications are configured. When WAF protection is enabled for the deploy, the shared regional Web ACL is associated with the stage.
11
+
12
+ ```typescript
13
+ import { defineApi } from 'quidproquo-webserver';
14
+
15
+ export default [
16
+ defineApi('api', 'example.com'),
17
+ ];
18
+ ```
19
+
20
+ This serves the service's routes at `https://api.<module-base>.example.com/<module>/...`.
21
+
22
+ ## Signature
23
+
24
+ ```typescript
25
+ function defineApi(
26
+ apiName: string,
27
+ rootDomain: string,
28
+ options?: QPQConfigAdvancedApiSettings,
29
+ ): ApiQPQWebServerConfigSetting;
30
+ ```
31
+
32
+ ## Parameters
33
+
34
+ ### `apiName` — `string` (required)
35
+
36
+ The API's name and its `uniqueKey` within the config. Unless overridden by `options.subDomain`, it is also the **subdomain** the API is served on (so `defineApi('api', 'example.com')` serves on `api.<...>.example.com`).
37
+
38
+ ### `rootDomain` — `string` (required)
39
+
40
+ The root domain the API is hosted under, e.g. `'example.com'`. The deploy derives the full hostname from this plus the environment/feature and the API subdomain, so the same config deploys to multiple environments without collisions.
41
+
42
+ ### `options` — `QPQConfigAdvancedApiSettings` (optional)
43
+
44
+ | Property | Type | Default | Description |
45
+ | --- | --- | --- | --- |
46
+ | `subDomain` | `string` | `apiName` | Override the subdomain the API is served on. Use it when the API name and the public subdomain should differ. |
47
+ | `cloudflareApiKeySecretName` | `string` | – | Name of the secret holding the Cloudflare API key, used when DNS/records for the API are managed through Cloudflare. |
48
+ | `virtualNetworkName` | `string` | – | Name of a `defineVirtualNetwork` (VPC) to place the API's Lambda in. Required to reach in-VPC data stores; the Lambda joins that network's bootstrap-created workload security group. |
49
+ | `maxConcurrentExecutions` | `number` | – | Reserved concurrency for the API's Lambda — a cap **and** a guarantee on concurrent requests across all routes (one compute unit serves every route). Carved out of the account's shared concurrency pool. |
50
+ | `deprecated` | `boolean` | `false` | Marks the API as deprecated. Inherited from `QPQConfigAdvancedSettings`. |
51
+
52
+ ## Examples
53
+
54
+ ```typescript
55
+ import { defineApi, defineRoute } from 'quidproquo-webserver';
56
+
57
+ export default [
58
+ // Serve on a custom subdomain, capped at 50 concurrent requests
59
+ defineApi('public', 'example.com', {
60
+ subDomain: 'api',
61
+ maxConcurrentExecutions: 50,
62
+ }),
63
+
64
+ // Routes declared in the same service are served under the API
65
+ defineRoute('GET', '/health', '/src/routes/health::getHealth'),
66
+ ];
67
+ ```
68
+
69
+ ## Related
70
+
71
+ - [defineRoute](./route.md) — declares the individual method+path endpoints served under the API.
72
+ - [defineDefaultRouteOptions](./default-route-options.md) — service-wide defaults (CORS, auth) merged into every route.
73
+ - [defineServiceFunction](./service-function.md) — RPC-style callable functions, deployed as their own Lambdas rather than under the API.
74
+ - [defineDomainCertificate](../config-aws/domain-certificate.md) — the ACM certificate for the API's domain (resolved with the same `rootDomain` prefixing).
75
+ - [defineWafProtection](../config-aws/waf-protection.md) — opt the API Gateway stage into the app's WAF web ACL.