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
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # create-qpq-app
2
+
3
+ Scaffold a new [quidproquo](https://github.com/joe-coady/quidproquo) app:
4
+
5
+ ```bash
6
+ npx create-qpq-app my-app
7
+ cd my-app
8
+ npm run go:dev
9
+ ```
10
+
11
+ You get a full QPQ workspace with five services — `admin`, `auth`, `design`,
12
+ `shell` and `todo` — that builds, runs locally on the QPQ dev server, and
13
+ deploys as a single docker image with `npm run go`.
14
+
15
+ ## Options
16
+
17
+ ```
18
+ npx create-qpq-app <app-name> [options]
19
+
20
+ --language <typescript|javascript> skip the language prompt
21
+ --domain <domain> app domain (default: <app-name>.example.com)
22
+ --no-git skip git init
23
+ --no-install skip npm install
24
+ ```
25
+
26
+ ## How it works
27
+
28
+ The template is a snapshot of quidproquojs.com — a real, continuously-built
29
+ QPQ workspace — captured into this package at publish time. Scaffolding runs
30
+ a pipeline of self-contained steps (prune the docs site, prune the website
31
+ app, apply your app's identity/domain, pin quidproquo versions, git init,
32
+ install). The generated app pins the `quidproquo-*` versions this package was
33
+ published with; the whole family releases in lockstep.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const runCreateQpqApp_1 = require("../cli/runCreateQpqApp");
5
+ (0, runCreateQpqApp_1.runCreateQpqApp)(process.argv.slice(2)).catch((error) => {
6
+ console.error(`\ncreate-qpq-app failed: ${error.message}`);
7
+ process.exit(1);
8
+ });
9
+ //# sourceMappingURL=createQpqApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createQpqApp.js","sourceRoot":"","sources":["../../../src/bin/createQpqApp.ts"],"names":[],"mappings":";;;AACA,4DAAyD;AAEzD,IAAA,iCAAe,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;IAC5D,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { runCreateQpqApp } from '../cli/runCreateQpqApp';\n\nrunCreateQpqApp(process.argv.slice(2)).catch((error: Error) => {\n console.error(`\\ncreate-qpq-app failed: ${error.message}`);\n process.exit(1);\n});\n"]}
@@ -0,0 +1 @@
1
+ export declare const runCreateQpqApp: (argv: string[]) => Promise<void>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.runCreateQpqApp = void 0;
16
+ const path_1 = __importDefault(require("path"));
17
+ const args_1 = require("../lib/args");
18
+ const packageRoot_1 = require("../lib/packageRoot");
19
+ const prompts_1 = require("../lib/prompts");
20
+ const steps_1 = require("../steps");
21
+ const types_1 = require("../types");
22
+ const USAGE = `Usage: npx create-qpq-app <app-name> [options]
23
+
24
+ Options:
25
+ --language <typescript|javascript> skip the language prompt
26
+ --domain <domain> app domain (default: <app-name>.example.com)
27
+ --no-git skip git init
28
+ --no-install skip npm install
29
+ `;
30
+ // Resolve the language from a flag when given, otherwise prompt — flags keep
31
+ // CI and tests non-interactive.
32
+ const resolveLanguage = (argv) => __awaiter(void 0, void 0, void 0, function* () {
33
+ var _a;
34
+ const flagValue = (_a = (0, args_1.getArgValue)(argv, '--language')) === null || _a === void 0 ? void 0 : _a.toLowerCase();
35
+ if (flagValue) {
36
+ if (!(flagValue in types_1.AppLanguage)) {
37
+ throw new Error(`Unknown --language "${flagValue}" — use typescript or javascript.`);
38
+ }
39
+ return types_1.AppLanguage[flagValue];
40
+ }
41
+ const selected = yield (0, prompts_1.promptSelect)('Which language would you like?', ['TypeScript', 'JavaScript'], 'TypeScript');
42
+ return selected === 'JavaScript' ? types_1.AppLanguage.javascript : types_1.AppLanguage.typescript;
43
+ });
44
+ const runCreateQpqApp = (argv) => __awaiter(void 0, void 0, void 0, function* () {
45
+ var _a;
46
+ const [appName] = (0, args_1.getPositionalArgs)(argv, ['--language', '--domain']);
47
+ if (!appName || argv.includes('--help')) {
48
+ console.log(USAGE);
49
+ process.exit(appName ? 0 : 1);
50
+ }
51
+ // All answers are locked in before the first step runs — no mid-pipeline
52
+ // prompting, so every step sees the same complete answers object.
53
+ const answers = {
54
+ appName,
55
+ language: yield resolveLanguage(argv),
56
+ domain: (_a = (0, args_1.getArgValue)(argv, '--domain')) !== null && _a !== void 0 ? _a : `${appName}.example.com`,
57
+ initialiseGit: !argv.includes('--no-git'),
58
+ installDependencies: !argv.includes('--no-install'),
59
+ };
60
+ const context = {
61
+ targetDirectory: path_1.default.resolve(process.cwd(), appName),
62
+ templateDirectory: path_1.default.join((0, packageRoot_1.getOwnPackageRoot)(), 'template'),
63
+ ownVersion: (0, packageRoot_1.getOwnVersion)(),
64
+ answers,
65
+ };
66
+ for (const step of steps_1.createQpqAppSteps) {
67
+ if (step.shouldRun && !step.shouldRun(answers)) {
68
+ continue;
69
+ }
70
+ console.log(`\n▸ ${step.name}`);
71
+ yield step.run(context);
72
+ }
73
+ });
74
+ exports.runCreateQpqApp = runCreateQpqApp;
75
+ //# sourceMappingURL=runCreateQpqApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runCreateQpqApp.js","sourceRoot":"","sources":["../../../src/cli/runCreateQpqApp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,sCAA6D;AAC7D,oDAAsE;AACtE,4CAA8C;AAC9C,oCAA6C;AAC7C,oCAAyE;AAEzE,MAAM,KAAK,GAAG;;;;;;;CAOb,CAAC;AAEF,6EAA6E;AAC7E,gCAAgC;AAChC,MAAM,eAAe,GAAG,CAAO,IAAc,EAAwB,EAAE;;IACrE,MAAM,SAAS,GAAG,MAAA,IAAA,kBAAW,EAAC,IAAI,EAAE,YAAY,CAAC,0CAAE,WAAW,EAAE,CAAC;IACjE,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,CAAC,SAAS,IAAI,mBAAW,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,mCAAmC,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,mBAAW,CAAC,SAAqC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAY,EAAC,gCAAgC,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAC;IAClH,OAAO,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,mBAAW,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAW,CAAC,UAAU,CAAC;AACrF,CAAC,CAAA,CAAC;AAEK,MAAM,eAAe,GAAG,CAAO,IAAc,EAAiB,EAAE;;IACrE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,OAAO,GAAwB;QACnC,OAAO;QACP,QAAQ,EAAE,MAAM,eAAe,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE,MAAA,IAAA,kBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,mCAAI,GAAG,OAAO,cAAc;QACjE,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzC,mBAAmB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;KACpD,CAAC;IAEF,MAAM,OAAO,GAAgB;QAC3B,eAAe,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;QACrD,iBAAiB,EAAE,cAAI,CAAC,IAAI,CAAC,IAAA,+BAAiB,GAAE,EAAE,UAAU,CAAC;QAC7D,UAAU,EAAE,IAAA,2BAAa,GAAE;QAC3B,OAAO;KACR,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,yBAAiB,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC,CAAA,CAAC;AAjCW,QAAA,eAAe,mBAiC1B","sourcesContent":["import path from 'path';\n\nimport { getArgValue, getPositionalArgs } from '../lib/args';\nimport { getOwnPackageRoot, getOwnVersion } from '../lib/packageRoot';\nimport { promptSelect } from '../lib/prompts';\nimport { createQpqAppSteps } from '../steps';\nimport { AppLanguage, CreateQpqAppAnswers, StepContext } from '../types';\n\nconst USAGE = `Usage: npx create-qpq-app <app-name> [options]\n\nOptions:\n --language <typescript|javascript> skip the language prompt\n --domain <domain> app domain (default: <app-name>.example.com)\n --no-git skip git init\n --no-install skip npm install\n`;\n\n// Resolve the language from a flag when given, otherwise prompt — flags keep\n// CI and tests non-interactive.\nconst resolveLanguage = async (argv: string[]): Promise<AppLanguage> => {\n const flagValue = getArgValue(argv, '--language')?.toLowerCase();\n if (flagValue) {\n if (!(flagValue in AppLanguage)) {\n throw new Error(`Unknown --language \"${flagValue}\" — use typescript or javascript.`);\n }\n return AppLanguage[flagValue as keyof typeof AppLanguage];\n }\n\n const selected = await promptSelect('Which language would you like?', ['TypeScript', 'JavaScript'], 'TypeScript');\n return selected === 'JavaScript' ? AppLanguage.javascript : AppLanguage.typescript;\n};\n\nexport const runCreateQpqApp = async (argv: string[]): Promise<void> => {\n const [appName] = getPositionalArgs(argv, ['--language', '--domain']);\n\n if (!appName || argv.includes('--help')) {\n console.log(USAGE);\n process.exit(appName ? 0 : 1);\n }\n\n // All answers are locked in before the first step runs — no mid-pipeline\n // prompting, so every step sees the same complete answers object.\n const answers: CreateQpqAppAnswers = {\n appName,\n language: await resolveLanguage(argv),\n domain: getArgValue(argv, '--domain') ?? `${appName}.example.com`,\n initialiseGit: !argv.includes('--no-git'),\n installDependencies: !argv.includes('--no-install'),\n };\n\n const context: StepContext = {\n targetDirectory: path.resolve(process.cwd(), appName),\n templateDirectory: path.join(getOwnPackageRoot(), 'template'),\n ownVersion: getOwnVersion(),\n answers,\n };\n\n for (const step of createQpqAppSteps) {\n if (step.shouldRun && !step.shouldRun(answers)) {\n continue;\n }\n\n console.log(`\\n▸ ${step.name}`);\n await step.run(context);\n }\n};\n"]}
@@ -0,0 +1,3 @@
1
+ export * from './cli/runCreateQpqApp';
2
+ export * from './steps';
3
+ export * from './types';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./cli/runCreateQpqApp"), exports);
18
+ __exportStar(require("./steps"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,0CAAwB;AACxB,0CAAwB","sourcesContent":["export * from './cli/runCreateQpqApp';\nexport * from './steps';\nexport * from './types';\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const getArgValue: (argv: string[], flag: string) => string | undefined;
2
+ export declare const getPositionalArgs: (argv: string[], valueFlags: string[]) => string[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPositionalArgs = exports.getArgValue = void 0;
4
+ // Flag parsing over the command's argv (everything after the command name).
5
+ const getArgValue = (argv, flag) => {
6
+ const eq = argv.find((a) => a.startsWith(`${flag}=`));
7
+ if (eq)
8
+ return eq.slice(`${flag}=`.length);
9
+ const idx = argv.indexOf(flag);
10
+ return idx >= 0 ? argv[idx + 1] : undefined;
11
+ };
12
+ exports.getArgValue = getArgValue;
13
+ // Positional args = non-flag args, skipping values consumed by known flags.
14
+ const getPositionalArgs = (argv, valueFlags) => argv.filter((arg, index) => {
15
+ if (arg.startsWith('--'))
16
+ return false;
17
+ const previous = argv[index - 1];
18
+ return !(previous && valueFlags.includes(previous));
19
+ });
20
+ exports.getPositionalArgs = getPositionalArgs;
21
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/lib/args.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AACrE,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,IAAY,EAAsB,EAAE;IAC9E,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF,4EAA4E;AACrE,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,UAAoB,EAAY,EAAE,CAClF,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACzB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AALQ,QAAA,iBAAiB,qBAKzB","sourcesContent":["// Flag parsing over the command's argv (everything after the command name).\nexport const getArgValue = (argv: string[], flag: string): string | undefined => {\n const eq = argv.find((a) => a.startsWith(`${flag}=`));\n if (eq) return eq.slice(`${flag}=`.length);\n const idx = argv.indexOf(flag);\n return idx >= 0 ? argv[idx + 1] : undefined;\n};\n\n// Positional args = non-flag args, skipping values consumed by known flags.\nexport const getPositionalArgs = (argv: string[], valueFlags: string[]): string[] =>\n argv.filter((arg, index) => {\n if (arg.startsWith('--')) return false;\n const previous = argv[index - 1];\n return !(previous && valueFlags.includes(previous));\n });\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const listFilesRecursive: (root: string) => string[];
2
+ export declare const replaceInFiles: (root: string, replacements: Array<[from: string, to: string]>) => void;
3
+ export declare const replaceInFileExact: (filePath: string, from: string, to: string) => void;
4
+ export declare const readJsonFile: <T = any>(filePath: string) => T;
5
+ export declare const writeJsonFile: (filePath: string, value: unknown) => void;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.writeJsonFile = exports.readJsonFile = exports.replaceInFileExact = exports.replaceInFiles = exports.listFilesRecursive = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ // Extensions the rename sweeps are allowed to touch — everything else
10
+ // (images, favicons, fonts) passes through untouched.
11
+ const TEXT_FILE_EXTENSIONS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.json', '.html', '.css', '.md', '.yml', '.yaml']);
12
+ // Depth-first list of every file under root (root must exist).
13
+ const listFilesRecursive = (root) => {
14
+ const files = [];
15
+ const walk = (dir) => {
16
+ for (const entry of fs_1.default.readdirSync(dir, { withFileTypes: true })) {
17
+ const fullPath = path_1.default.join(dir, entry.name);
18
+ if (entry.isDirectory()) {
19
+ walk(fullPath);
20
+ }
21
+ else {
22
+ files.push(fullPath);
23
+ }
24
+ }
25
+ };
26
+ walk(root);
27
+ return files;
28
+ };
29
+ exports.listFilesRecursive = listFilesRecursive;
30
+ // Apply literal (non-regex) string replacements to every text file under
31
+ // root. Replacement tokens are chosen to be collision-free ('@todo/',
32
+ // 'apps/todo/'), so this is a mechanical sweep, not a heuristic one.
33
+ const replaceInFiles = (root, replacements) => {
34
+ for (const filePath of (0, exports.listFilesRecursive)(root)) {
35
+ if (!TEXT_FILE_EXTENSIONS.has(path_1.default.extname(filePath))) {
36
+ continue;
37
+ }
38
+ const original = fs_1.default.readFileSync(filePath, 'utf8');
39
+ let updated = original;
40
+ for (const [from, to] of replacements) {
41
+ updated = updated.split(from).join(to);
42
+ }
43
+ if (updated !== original) {
44
+ fs_1.default.writeFileSync(filePath, updated);
45
+ }
46
+ }
47
+ };
48
+ exports.replaceInFiles = replaceInFiles;
49
+ // Replace an exact string in one file, throwing if it isn't there — targeted
50
+ // edits should fail loudly when the template drifts.
51
+ const replaceInFileExact = (filePath, from, to) => {
52
+ const original = fs_1.default.readFileSync(filePath, 'utf8');
53
+ if (!original.includes(from)) {
54
+ throw new Error(`Expected to find "${from}" in ${filePath} — has the template changed?`);
55
+ }
56
+ fs_1.default.writeFileSync(filePath, original.split(from).join(to));
57
+ };
58
+ exports.replaceInFileExact = replaceInFileExact;
59
+ const readJsonFile = (filePath) => JSON.parse(fs_1.default.readFileSync(filePath, 'utf8'));
60
+ exports.readJsonFile = readJsonFile;
61
+ const writeJsonFile = (filePath, value) => {
62
+ fs_1.default.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
63
+ };
64
+ exports.writeJsonFile = writeJsonFile;
65
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/lib/files.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,sEAAsE;AACtE,sDAAsD;AACtD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvI,+DAA+D;AACxD,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAY,EAAE;IAC3D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,YAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,CAAC;IACX,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B;AAEF,yEAAyE;AACzE,sEAAsE;AACtE,qEAAqE;AAC9D,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,YAA+C,EAAQ,EAAE;IACpG,KAAK,MAAM,QAAQ,IAAI,IAAA,0BAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACtD,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC;YACtC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEF,6EAA6E;AAC7E,qDAAqD;AAC9C,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,EAAU,EAAQ,EAAE;IACrF,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,QAAQ,QAAQ,8BAA8B,CAAC,CAAC;IAC3F,CAAC;IACD,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEK,MAAM,YAAY,GAAG,CAAU,QAAgB,EAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAA/F,QAAA,YAAY,gBAAmF;AAErG,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,KAAc,EAAQ,EAAE;IACtE,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACpE,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\n// Extensions the rename sweeps are allowed to touch — everything else\n// (images, favicons, fonts) passes through untouched.\nconst TEXT_FILE_EXTENSIONS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.json', '.html', '.css', '.md', '.yml', '.yaml']);\n\n// Depth-first list of every file under root (root must exist).\nexport const listFilesRecursive = (root: string): string[] => {\n const files: string[] = [];\n\n const walk = (dir: string): void => {\n for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {\n const fullPath = path.join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(fullPath);\n } else {\n files.push(fullPath);\n }\n }\n };\n\n walk(root);\n return files;\n};\n\n// Apply literal (non-regex) string replacements to every text file under\n// root. Replacement tokens are chosen to be collision-free ('@todo/',\n// 'apps/todo/'), so this is a mechanical sweep, not a heuristic one.\nexport const replaceInFiles = (root: string, replacements: Array<[from: string, to: string]>): void => {\n for (const filePath of listFilesRecursive(root)) {\n if (!TEXT_FILE_EXTENSIONS.has(path.extname(filePath))) {\n continue;\n }\n\n const original = fs.readFileSync(filePath, 'utf8');\n let updated = original;\n for (const [from, to] of replacements) {\n updated = updated.split(from).join(to);\n }\n\n if (updated !== original) {\n fs.writeFileSync(filePath, updated);\n }\n }\n};\n\n// Replace an exact string in one file, throwing if it isn't there — targeted\n// edits should fail loudly when the template drifts.\nexport const replaceInFileExact = (filePath: string, from: string, to: string): void => {\n const original = fs.readFileSync(filePath, 'utf8');\n if (!original.includes(from)) {\n throw new Error(`Expected to find \"${from}\" in ${filePath} — has the template changed?`);\n }\n fs.writeFileSync(filePath, original.split(from).join(to));\n};\n\nexport const readJsonFile = <T = any>(filePath: string): T => JSON.parse(fs.readFileSync(filePath, 'utf8'));\n\nexport const writeJsonFile = (filePath: string, value: unknown): void => {\n fs.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\\n`);\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const getOwnPackageRoot: () => string;
2
+ export declare const getOwnVersion: () => string;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getOwnVersion = exports.getOwnPackageRoot = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ // This package's root (works from src under ts-node and from lib/commonjs).
10
+ const getOwnPackageRoot = () => {
11
+ let dir = __dirname;
12
+ while (!fs_1.default.existsSync(path_1.default.join(dir, 'package.json'))) {
13
+ const parent = path_1.default.dirname(dir);
14
+ if (parent === dir)
15
+ throw new Error('Could not locate the create-qpq-app package root');
16
+ dir = parent;
17
+ }
18
+ return dir;
19
+ };
20
+ exports.getOwnPackageRoot = getOwnPackageRoot;
21
+ const getOwnVersion = () => {
22
+ const packageJson = JSON.parse(fs_1.default.readFileSync(path_1.default.join((0, exports.getOwnPackageRoot)(), 'package.json'), 'utf8'));
23
+ return packageJson.version;
24
+ };
25
+ exports.getOwnVersion = getOwnVersion;
26
+ //# sourceMappingURL=packageRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageRoot.js","sourceRoot":"","sources":["../../../src/lib/packageRoot.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,4EAA4E;AACrE,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,OAAO,CAAC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACxF,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,aAAa,GAAG,GAAW,EAAE;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,yBAAiB,GAAE,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACxG,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\n// This package's root (works from src under ts-node and from lib/commonjs).\nexport const getOwnPackageRoot = (): string => {\n let dir = __dirname;\n while (!fs.existsSync(path.join(dir, 'package.json'))) {\n const parent = path.dirname(dir);\n if (parent === dir) throw new Error('Could not locate the create-qpq-app package root');\n dir = parent;\n }\n return dir;\n};\n\nexport const getOwnVersion = (): string => {\n const packageJson = JSON.parse(fs.readFileSync(path.join(getOwnPackageRoot(), 'package.json'), 'utf8'));\n return packageJson.version;\n};\n"]}
@@ -0,0 +1 @@
1
+ export declare const promptSelect: (message: string, choices: string[], defaultChoice?: string) => Promise<string>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.promptSelect = void 0;
46
+ // Present a single-choice list prompt and return the selected value.
47
+ // @inquirer/prompts is imported lazily so fully-flagged runs never pay for it.
48
+ const promptSelect = (message, choices, defaultChoice) => __awaiter(void 0, void 0, void 0, function* () {
49
+ const { select } = yield Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
50
+ return select({ message, choices, default: defaultChoice });
51
+ });
52
+ exports.promptSelect = promptSelect;
53
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/lib/prompts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAqE;AACrE,+EAA+E;AACxE,MAAM,YAAY,GAAG,CAAO,OAAe,EAAE,OAAiB,EAAE,aAAsB,EAAmB,EAAE;IAChH,MAAM,EAAE,MAAM,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IACrD,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAA,CAAC;AAHW,QAAA,YAAY,gBAGvB","sourcesContent":["// Present a single-choice list prompt and return the selected value.\n// @inquirer/prompts is imported lazily so fully-flagged runs never pay for it.\nexport const promptSelect = async (message: string, choices: string[], defaultChoice?: string): Promise<string> => {\n const { select } = await import('@inquirer/prompts');\n return select({ message, choices, default: defaultChoice });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ export type RunCommandOptions = {
2
+ cwd?: string;
3
+ };
4
+ export declare const runCommand: (command: string, args: string[], options?: RunCommandOptions) => Promise<void>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runCommand = void 0;
4
+ const child_process_1 = require("child_process");
5
+ // Spawn a command, inheriting stdio, resolving on success. A non-zero exit
6
+ // REJECTS so a failed install/init stops the run.
7
+ const runCommand = (command, args, options = {}) => new Promise((resolve, reject) => {
8
+ var _a;
9
+ const child = (0, child_process_1.spawn)(command, args, {
10
+ stdio: 'inherit',
11
+ shell: true,
12
+ cwd: (_a = options.cwd) !== null && _a !== void 0 ? _a : process.cwd(),
13
+ });
14
+ child.on('error', (error) => reject(error));
15
+ child.on('exit', (code, signal) => {
16
+ if (signal)
17
+ return reject(new Error(`${command} was killed with signal ${signal}`));
18
+ if (code)
19
+ return reject(new Error(`${command} ${args.join(' ')} exited with code ${code}`));
20
+ return resolve();
21
+ });
22
+ });
23
+ exports.runCommand = runCommand;
24
+ //# sourceMappingURL=runCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../../src/lib/runCommand.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAOtC,2EAA2E;AAC3E,kDAAkD;AAC3C,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAc,EAAE,UAA6B,EAAE,EAAiB,EAAE,CAC5G,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;IAC9B,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;QACjC,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,MAAA,OAAO,CAAC,GAAG,mCAAI,OAAO,CAAC,GAAG,EAAE;KAClC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAChC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,2BAA2B,MAAM,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5F,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAfQ,QAAA,UAAU,cAelB","sourcesContent":["import { spawn } from 'child_process';\n\nexport type RunCommandOptions = {\n // Working directory for the child (defaults to cwd).\n cwd?: string;\n};\n\n// Spawn a command, inheriting stdio, resolving on success. A non-zero exit\n// REJECTS so a failed install/init stops the run.\nexport const runCommand = (command: string, args: string[], options: RunCommandOptions = {}): Promise<void> =>\n new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n stdio: 'inherit',\n shell: true,\n cwd: options.cwd ?? process.cwd(),\n });\n\n child.on('error', (error) => reject(error));\n\n child.on('exit', (code, signal) => {\n if (signal) return reject(new Error(`${command} was killed with signal ${signal}`));\n if (code) return reject(new Error(`${command} ${args.join(' ')} exited with code ${code}`));\n return resolve();\n });\n });\n"]}
@@ -0,0 +1,2 @@
1
+ import { CreateQpqAppStep } from '../types';
2
+ export declare const preflight: CreateQpqAppStep;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.preflight = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ // npm-safe, unscoped, url-friendly: lowercase, starts with a letter,
18
+ // letters/digits/hyphens only.
19
+ const VALID_APP_NAME = /^[a-z][a-z0-9-]*$/;
20
+ const MINIMUM_NODE_MAJOR = 22;
21
+ exports.preflight = {
22
+ name: 'Checking prerequisites',
23
+ run: (_a) => __awaiter(void 0, [_a], void 0, function* ({ targetDirectory, answers }) {
24
+ if (!VALID_APP_NAME.test(answers.appName)) {
25
+ throw new Error(`"${answers.appName}" is not a valid app name — use lowercase letters, digits and hyphens, starting with a letter.`);
26
+ }
27
+ const nodeMajor = Number(process.versions.node.split('.')[0]);
28
+ if (nodeMajor < MINIMUM_NODE_MAJOR) {
29
+ throw new Error(`quidproquo apps require node >= ${MINIMUM_NODE_MAJOR} (you are on ${process.versions.node}) — upgrade node and re-run.`);
30
+ }
31
+ if (fs_1.default.existsSync(targetDirectory)) {
32
+ throw new Error(`${targetDirectory} already exists — pick a different name or remove it first.`);
33
+ }
34
+ }),
35
+ };
36
+ //# sourceMappingURL=001_preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"001_preflight.js","sourceRoot":"","sources":["../../../src/steps/001_preflight.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AAIpB,qEAAqE;AACrE,+BAA+B;AAC/B,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAEjB,QAAA,SAAS,GAAqB;IACzC,IAAI,EAAE,wBAAwB;IAE9B,GAAG,EAAE,KAAqC,EAAE,4CAAhC,EAAE,eAAe,EAAE,OAAO,EAAE;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,gGAAgG,CAAC,CAAC;QACvI,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,SAAS,GAAG,kBAAkB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,kBAAkB,gBAAgB,OAAO,CAAC,QAAQ,CAAC,IAAI,8BAA8B,CAAC,CAAC;QAC5I,CAAC;QAED,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,GAAG,eAAe,6DAA6D,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAA;CACF,CAAC","sourcesContent":["import fs from 'fs';\n\nimport { CreateQpqAppStep } from '../types';\n\n// npm-safe, unscoped, url-friendly: lowercase, starts with a letter,\n// letters/digits/hyphens only.\nconst VALID_APP_NAME = /^[a-z][a-z0-9-]*$/;\n\nconst MINIMUM_NODE_MAJOR = 22;\n\nexport const preflight: CreateQpqAppStep = {\n name: 'Checking prerequisites',\n\n run: async ({ targetDirectory, answers }) => {\n if (!VALID_APP_NAME.test(answers.appName)) {\n throw new Error(`\"${answers.appName}\" is not a valid app name — use lowercase letters, digits and hyphens, starting with a letter.`);\n }\n\n const nodeMajor = Number(process.versions.node.split('.')[0]);\n if (nodeMajor < MINIMUM_NODE_MAJOR) {\n throw new Error(`quidproquo apps require node >= ${MINIMUM_NODE_MAJOR} (you are on ${process.versions.node}) — upgrade node and re-run.`);\n }\n\n if (fs.existsSync(targetDirectory)) {\n throw new Error(`${targetDirectory} already exists — pick a different name or remove it first.`);\n }\n },\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { CreateQpqAppStep } from '../types';
2
+ export declare const copyTemplate: CreateQpqAppStep;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.copyTemplate = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ // Dumb copy of the bundled template (a pruned snapshot of quidproquojs.com,
18
+ // taken at publish time) into the target directory. All shaping happens in
19
+ // the steps that follow.
20
+ exports.copyTemplate = {
21
+ name: 'Copying template',
22
+ run: (_a) => __awaiter(void 0, [_a], void 0, function* ({ templateDirectory, targetDirectory }) {
23
+ if (!fs_1.default.existsSync(templateDirectory)) {
24
+ throw new Error(`Template snapshot missing at ${templateDirectory} — run "npm run snapshot-template" (dev checkout only; published packages ship it).`);
25
+ }
26
+ fs_1.default.cpSync(templateDirectory, targetDirectory, { recursive: true });
27
+ }),
28
+ };
29
+ //# sourceMappingURL=002_copyTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"002_copyTemplate.js","sourceRoot":"","sources":["../../../src/steps/002_copyTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AAIpB,4EAA4E;AAC5E,2EAA2E;AAC3E,yBAAyB;AACZ,QAAA,YAAY,GAAqB;IAC5C,IAAI,EAAE,kBAAkB;IAExB,GAAG,EAAE,KAA+C,EAAE,4CAA1C,EAAE,iBAAiB,EAAE,eAAe,EAAE;QAChD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,gCAAgC,iBAAiB,qFAAqF,CACvI,CAAC;QACJ,CAAC;QAED,YAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC,CAAA;CACF,CAAC","sourcesContent":["import fs from 'fs';\n\nimport { CreateQpqAppStep } from '../types';\n\n// Dumb copy of the bundled template (a pruned snapshot of quidproquojs.com,\n// taken at publish time) into the target directory. All shaping happens in\n// the steps that follow.\nexport const copyTemplate: CreateQpqAppStep = {\n name: 'Copying template',\n\n run: async ({ templateDirectory, targetDirectory }) => {\n if (!fs.existsSync(templateDirectory)) {\n throw new Error(\n `Template snapshot missing at ${templateDirectory} — run \"npm run snapshot-template\" (dev checkout only; published packages ship it).`,\n );\n }\n\n fs.cpSync(templateDirectory, targetDirectory, { recursive: true });\n },\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { CreateQpqAppStep } from '../types';
2
+ export declare const deleteDocusaurus: CreateQpqAppStep;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.deleteDocusaurus = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const files_1 = require("../lib/files");
19
+ // The docusaurus workspace is the quidproquojs.com documentation site — new
20
+ // apps don't want it. Remove the directory and its workspaces entry.
21
+ exports.deleteDocusaurus = {
22
+ name: 'Removing docusaurus docs site',
23
+ run: (_a) => __awaiter(void 0, [_a], void 0, function* ({ targetDirectory }) {
24
+ var _b;
25
+ fs_1.default.rmSync(path_1.default.join(targetDirectory, 'docusaurus'), { recursive: true, force: true });
26
+ const packageJsonPath = path_1.default.join(targetDirectory, 'package.json');
27
+ const packageJson = (0, files_1.readJsonFile)(packageJsonPath);
28
+ packageJson.workspaces = ((_b = packageJson.workspaces) !== null && _b !== void 0 ? _b : []).filter((workspace) => workspace !== 'docusaurus');
29
+ (0, files_1.writeJsonFile)(packageJsonPath, packageJson);
30
+ }),
31
+ };
32
+ //# sourceMappingURL=003_deleteDocusaurus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"003_deleteDocusaurus.js","sourceRoot":"","sources":["../../../src/steps/003_deleteDocusaurus.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,wCAA2D;AAG3D,4EAA4E;AAC5E,qEAAqE;AACxD,QAAA,gBAAgB,GAAqB;IAChD,IAAI,EAAE,+BAA+B;IAErC,GAAG,EAAE,KAA4B,EAAE,4CAAvB,EAAE,eAAe,EAAE;;QAC7B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,eAAe,CAAC,CAAC;QAClD,WAAW,CAAC,UAAU,GAAG,CAAC,MAAA,WAAW,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAiB,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QAClH,IAAA,qBAAa,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAA;CACF,CAAC","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { readJsonFile, writeJsonFile } from '../lib/files';\nimport { CreateQpqAppStep } from '../types';\n\n// The docusaurus workspace is the quidproquojs.com documentation site — new\n// apps don't want it. Remove the directory and its workspaces entry.\nexport const deleteDocusaurus: CreateQpqAppStep = {\n name: 'Removing docusaurus docs site',\n\n run: async ({ targetDirectory }) => {\n fs.rmSync(path.join(targetDirectory, 'docusaurus'), { recursive: true, force: true });\n\n const packageJsonPath = path.join(targetDirectory, 'package.json');\n const packageJson = readJsonFile(packageJsonPath);\n packageJson.workspaces = (packageJson.workspaces ?? []).filter((workspace: string) => workspace !== 'docusaurus');\n writeJsonFile(packageJsonPath, packageJson);\n },\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { CreateQpqAppStep } from '../types';
2
+ export declare const deleteQpqjsApp: CreateQpqAppStep;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.deleteQpqjsApp = void 0;
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const path_1 = __importDefault(require("path"));
18
+ // apps/qpqjs is the real quidproquojs.com website; the starter the user keeps
19
+ // is apps/todo. This must run before applyAppIdentity renames apps/todo.
20
+ exports.deleteQpqjsApp = {
21
+ name: 'Removing the qpqjs website app',
22
+ run: (_a) => __awaiter(void 0, [_a], void 0, function* ({ targetDirectory }) {
23
+ fs_1.default.rmSync(path_1.default.join(targetDirectory, 'apps', 'qpqjs'), { recursive: true, force: true });
24
+ }),
25
+ };
26
+ //# sourceMappingURL=004_deleteQpqjsApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"004_deleteQpqjsApp.js","sourceRoot":"","sources":["../../../src/steps/004_deleteQpqjsApp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAIxB,8EAA8E;AAC9E,yEAAyE;AAC5D,QAAA,cAAc,GAAqB;IAC9C,IAAI,EAAE,gCAAgC;IAEtC,GAAG,EAAE,KAA4B,EAAE,4CAAvB,EAAE,eAAe,EAAE;QAC7B,YAAE,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAA;CACF,CAAC","sourcesContent":["import fs from 'fs';\nimport path from 'path';\n\nimport { CreateQpqAppStep } from '../types';\n\n// apps/qpqjs is the real quidproquojs.com website; the starter the user keeps\n// is apps/todo. This must run before applyAppIdentity renames apps/todo.\nexport const deleteQpqjsApp: CreateQpqAppStep = {\n name: 'Removing the qpqjs website app',\n\n run: async ({ targetDirectory }) => {\n fs.rmSync(path.join(targetDirectory, 'apps', 'qpqjs'), { recursive: true, force: true });\n },\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { CreateQpqAppStep } from '../types';
2
+ export declare const applyAppIdentity: CreateQpqAppStep;