@alwaysmeticulous/cli 2.326.0 → 2.327.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/dist/__tests__/commonjs-dependencies.spec.d.ts +2 -0
  2. package/dist/__tests__/commonjs-dependencies.spec.d.ts.map +1 -0
  3. package/dist/__tests__/commonjs-dependencies.spec.js +82 -0
  4. package/dist/__tests__/commonjs-dependencies.spec.js.map +1 -0
  5. package/dist/command-utils/__tests__/parse-rewrites.spec.js +2 -2
  6. package/dist/command-utils/__tests__/parse-rewrites.spec.js.map +1 -1
  7. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js +2 -2
  8. package/dist/command-utils/__tests__/warn-regex-rewrites.spec.js.map +1 -1
  9. package/dist/command-utils/common-options.js +2 -2
  10. package/dist/command-utils/common-options.js.map +1 -1
  11. package/dist/command-utils/detect-upload-mode.js +2 -2
  12. package/dist/command-utils/detect-upload-mode.js.map +1 -1
  13. package/dist/command-utils/detect-upload-mode.spec.js +2 -2
  14. package/dist/command-utils/detect-upload-mode.spec.js.map +1 -1
  15. package/dist/command-utils/download-session.utils.js +2 -2
  16. package/dist/command-utils/download-session.utils.js.map +1 -1
  17. package/dist/command-utils/json-args.js +2 -2
  18. package/dist/command-utils/json-args.js.map +1 -1
  19. package/dist/command-utils/json-args.spec.js +2 -2
  20. package/dist/command-utils/json-args.spec.js.map +1 -1
  21. package/dist/command-utils/parse-container-env.js +2 -2
  22. package/dist/command-utils/parse-container-env.js.map +1 -1
  23. package/dist/command-utils/parse-rewrites.js +2 -2
  24. package/dist/command-utils/parse-rewrites.js.map +1 -1
  25. package/dist/command-utils/print-json.js +2 -2
  26. package/dist/command-utils/print-json.js.map +1 -1
  27. package/dist/command-utils/sentry.utils.js +2 -2
  28. package/dist/command-utils/sentry.utils.js.map +1 -1
  29. package/dist/command-utils/warn-regex-rewrites.js +2 -2
  30. package/dist/command-utils/warn-regex-rewrites.js.map +1 -1
  31. package/dist/commands/agent/agent-review-writes.command.spec.js +2 -2
  32. package/dist/commands/agent/agent-review-writes.command.spec.js.map +1 -1
  33. package/dist/commands/agent/build-git-options.js +2 -2
  34. package/dist/commands/agent/build-git-options.js.map +1 -1
  35. package/dist/commands/agent/build-git-options.spec.js +2 -2
  36. package/dist/commands/agent/build-git-options.spec.js.map +1 -1
  37. package/dist/commands/agent/coverage-columns.util.js +2 -2
  38. package/dist/commands/agent/coverage-columns.util.js.map +1 -1
  39. package/dist/commands/agent/create-diff-comment.command.js +2 -2
  40. package/dist/commands/agent/create-diff-comment.command.js.map +1 -1
  41. package/dist/commands/agent/diff-comment-write.utils.js +2 -2
  42. package/dist/commands/agent/diff-comment-write.utils.js.map +1 -1
  43. package/dist/commands/agent/diff-comments.command.js +2 -2
  44. package/dist/commands/agent/diff-comments.command.js.map +1 -1
  45. package/dist/commands/agent/diff-comments.command.spec.js +2 -2
  46. package/dist/commands/agent/diff-comments.command.spec.js.map +1 -1
  47. package/dist/commands/agent/ignore-diff.command.js +2 -2
  48. package/dist/commands/agent/ignore-diff.command.js.map +1 -1
  49. package/dist/commands/agent/index.js +2 -2
  50. package/dist/commands/agent/index.js.map +1 -1
  51. package/dist/commands/agent/js-coverage-diff.command.js +2 -2
  52. package/dist/commands/agent/js-coverage-diff.command.js.map +1 -1
  53. package/dist/commands/agent/js-coverage.command.handler.spec.js +2 -2
  54. package/dist/commands/agent/js-coverage.command.handler.spec.js.map +1 -1
  55. package/dist/commands/agent/js-coverage.command.js +2 -2
  56. package/dist/commands/agent/js-coverage.command.js.map +1 -1
  57. package/dist/commands/agent/js-coverage.command.spec.js +2 -2
  58. package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
  59. package/dist/commands/agent/reject-diff.command.js +2 -2
  60. package/dist/commands/agent/reject-diff.command.js.map +1 -1
  61. package/dist/commands/agent/reject-diff.command.spec.js +2 -2
  62. package/dist/commands/agent/reject-diff.command.spec.js.map +1 -1
  63. package/dist/commands/agent/reply-to-diff-comment.command.js +2 -2
  64. package/dist/commands/agent/reply-to-diff-comment.command.js.map +1 -1
  65. package/dist/commands/agent/screenshot-dom-diff.command.js +2 -2
  66. package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
  67. package/dist/commands/agent/screenshot-image-files.command.js +2 -2
  68. package/dist/commands/agent/screenshot-image-files.command.js.map +1 -1
  69. package/dist/commands/agent/screenshot-image.command.js +2 -2
  70. package/dist/commands/agent/screenshot-image.command.js.map +1 -1
  71. package/dist/commands/agent/sessions.command.js +2 -2
  72. package/dist/commands/agent/sessions.command.js.map +1 -1
  73. package/dist/commands/agent/sessions.command.spec.js +2 -2
  74. package/dist/commands/agent/sessions.command.spec.js.map +1 -1
  75. package/dist/commands/agent/submit-feedback.command.js +2 -2
  76. package/dist/commands/agent/submit-feedback.command.js.map +1 -1
  77. package/dist/commands/agent/test-run-check.command.js +2 -2
  78. package/dist/commands/agent/test-run-check.command.js.map +1 -1
  79. package/dist/commands/agent/test-run-check.command.spec.js +2 -2
  80. package/dist/commands/agent/test-run-check.command.spec.js.map +1 -1
  81. package/dist/commands/agent/test-run-diffs.command.js +2 -2
  82. package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
  83. package/dist/commands/agent/test-run-diffs.command.spec.js +2 -2
  84. package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
  85. package/dist/commands/agent/test-run-diffs.utils.js +2 -2
  86. package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
  87. package/dist/commands/agent/test-run-diffs.utils.spec.js +2 -2
  88. package/dist/commands/agent/test-run-diffs.utils.spec.js.map +1 -1
  89. package/dist/commands/agent/test-run-for-commit.command.js +2 -2
  90. package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
  91. package/dist/commands/agent/timeline.command.js +2 -2
  92. package/dist/commands/agent/timeline.command.js.map +1 -1
  93. package/dist/commands/agent/timeline.command.spec.js +2 -2
  94. package/dist/commands/agent/timeline.command.spec.js.map +1 -1
  95. package/dist/commands/agent/trigger-test-run.command.js +2 -2
  96. package/dist/commands/agent/trigger-test-run.command.js.map +1 -1
  97. package/dist/commands/agent/trigger-test-run.command.spec.js +2 -2
  98. package/dist/commands/agent/trigger-test-run.command.spec.js.map +1 -1
  99. package/dist/commands/agent/upload-build.command.js +2 -2
  100. package/dist/commands/agent/upload-build.command.js.map +1 -1
  101. package/dist/commands/all-commands.d.ts.map +1 -1
  102. package/dist/commands/all-commands.js +8 -6
  103. package/dist/commands/all-commands.js.map +1 -1
  104. package/dist/commands/auth/__tests__/get-project.command.spec.js +2 -2
  105. package/dist/commands/auth/__tests__/get-project.command.spec.js.map +1 -1
  106. package/dist/commands/auth/__tests__/list-projects.command.spec.js +2 -2
  107. package/dist/commands/auth/__tests__/list-projects.command.spec.js.map +1 -1
  108. package/dist/commands/auth/__tests__/login.command.spec.js +2 -2
  109. package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
  110. package/dist/commands/auth/__tests__/logout.command.spec.js +2 -2
  111. package/dist/commands/auth/__tests__/logout.command.spec.js.map +1 -1
  112. package/dist/commands/auth/__tests__/set-project.command.spec.js +2 -2
  113. package/dist/commands/auth/__tests__/set-project.command.spec.js.map +1 -1
  114. package/dist/commands/auth/__tests__/whoami.command.spec.js +2 -2
  115. package/dist/commands/auth/__tests__/whoami.command.spec.js.map +1 -1
  116. package/dist/commands/auth/get-project.command.js +2 -2
  117. package/dist/commands/auth/get-project.command.js.map +1 -1
  118. package/dist/commands/auth/index.js +2 -2
  119. package/dist/commands/auth/index.js.map +1 -1
  120. package/dist/commands/auth/list-projects.command.js +2 -2
  121. package/dist/commands/auth/list-projects.command.js.map +1 -1
  122. package/dist/commands/auth/login.command.js +2 -2
  123. package/dist/commands/auth/login.command.js.map +1 -1
  124. package/dist/commands/auth/logout.command.js +2 -2
  125. package/dist/commands/auth/logout.command.js.map +1 -1
  126. package/dist/commands/auth/set-project.command.js +2 -2
  127. package/dist/commands/auth/set-project.command.js.map +1 -1
  128. package/dist/commands/auth/whoami.command.js +2 -2
  129. package/dist/commands/auth/whoami.command.js.map +1 -1
  130. package/dist/commands/ci/__tests__/label-commit.utils.spec.js +2 -2
  131. package/dist/commands/ci/__tests__/label-commit.utils.spec.js.map +1 -1
  132. package/dist/commands/ci/__tests__/session-filter.utils.spec.js +2 -2
  133. package/dist/commands/ci/__tests__/session-filter.utils.spec.js.map +1 -1
  134. package/dist/commands/ci/agent-test.command.js +2 -2
  135. package/dist/commands/ci/agent-test.command.js.map +1 -1
  136. package/dist/commands/ci/deprecated-trigger-options.js +2 -2
  137. package/dist/commands/ci/deprecated-trigger-options.js.map +1 -1
  138. package/dist/commands/ci/index.js +2 -2
  139. package/dist/commands/ci/index.js.map +1 -1
  140. package/dist/commands/ci/label-commit.command.js +2 -2
  141. package/dist/commands/ci/label-commit.command.js.map +1 -1
  142. package/dist/commands/ci/label-commit.core.js +2 -2
  143. package/dist/commands/ci/label-commit.core.js.map +1 -1
  144. package/dist/commands/ci/label-commit.types.js +2 -2
  145. package/dist/commands/ci/label-commit.types.js.map +1 -1
  146. package/dist/commands/ci/label-commit.utils.js +2 -2
  147. package/dist/commands/ci/label-commit.utils.js.map +1 -1
  148. package/dist/commands/ci/prepare.command.js +2 -2
  149. package/dist/commands/ci/prepare.command.js.map +1 -1
  150. package/dist/commands/ci/resolve-git-options.js +2 -2
  151. package/dist/commands/ci/resolve-git-options.js.map +1 -1
  152. package/dist/commands/ci/run-local.command.js +2 -2
  153. package/dist/commands/ci/run-local.command.js.map +1 -1
  154. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +2 -2
  155. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
  156. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js +2 -2
  157. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.spec.js.map +1 -1
  158. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js +2 -2
  159. package/dist/commands/ci/run-with-uploaded-asset-chunks.utils.js.map +1 -1
  160. package/dist/commands/ci/run.command.js +2 -2
  161. package/dist/commands/ci/run.command.js.map +1 -1
  162. package/dist/commands/ci/session-filter.utils.js +2 -2
  163. package/dist/commands/ci/session-filter.utils.js.map +1 -1
  164. package/dist/commands/ci/start-tunnel.command.js +2 -2
  165. package/dist/commands/ci/start-tunnel.command.js.map +1 -1
  166. package/dist/commands/ci/trigger-test-run.core.js +2 -2
  167. package/dist/commands/ci/trigger-test-run.core.js.map +1 -1
  168. package/dist/commands/ci/trigger-test-run.types.js +2 -2
  169. package/dist/commands/ci/trigger-test-run.types.js.map +1 -1
  170. package/dist/commands/ci/upload-asset-chunk.command.js +2 -2
  171. package/dist/commands/ci/upload-asset-chunk.command.js.map +1 -1
  172. package/dist/commands/ci/upload-assets.command.js +2 -2
  173. package/dist/commands/ci/upload-assets.command.js.map +1 -1
  174. package/dist/commands/ci/upload-container.command.js +2 -2
  175. package/dist/commands/ci/upload-container.command.js.map +1 -1
  176. package/dist/commands/crawl.command.js +2 -2
  177. package/dist/commands/crawl.command.js.map +1 -1
  178. package/dist/commands/debug/clean-workspaces.js +2 -2
  179. package/dist/commands/debug/clean-workspaces.js.map +1 -1
  180. package/dist/commands/debug/index.js +2 -2
  181. package/dist/commands/debug/index.js.map +1 -1
  182. package/dist/commands/debug/present-workspace.js +2 -2
  183. package/dist/commands/debug/present-workspace.js.map +1 -1
  184. package/dist/commands/debug/project-worktree.js +2 -2
  185. package/dist/commands/debug/project-worktree.js.map +1 -1
  186. package/dist/commands/deprecated-aliases.js +2 -2
  187. package/dist/commands/deprecated-aliases.js.map +1 -1
  188. package/dist/commands/download/index.js +2 -2
  189. package/dist/commands/download/index.js.map +1 -1
  190. package/dist/commands/download/replay.command.js +2 -2
  191. package/dist/commands/download/replay.command.js.map +1 -1
  192. package/dist/commands/download/session.command.js +2 -2
  193. package/dist/commands/download/session.command.js.map +1 -1
  194. package/dist/commands/download/test-run.command.js +2 -2
  195. package/dist/commands/download/test-run.command.js.map +1 -1
  196. package/dist/commands/local/get-edited-files.utils.js +2 -2
  197. package/dist/commands/local/get-edited-files.utils.js.map +1 -1
  198. package/dist/commands/local/get-edited-files.utils.spec.js +2 -2
  199. package/dist/commands/local/get-edited-files.utils.spec.js.map +1 -1
  200. package/dist/commands/local/index.js +2 -2
  201. package/dist/commands/local/index.js.map +1 -1
  202. package/dist/commands/local/relevant-sessions.command.js +2 -2
  203. package/dist/commands/local/relevant-sessions.command.js.map +1 -1
  204. package/dist/commands/onboard/__tests__/build-context.spec.d.ts +2 -0
  205. package/dist/commands/onboard/__tests__/build-context.spec.d.ts.map +1 -0
  206. package/dist/commands/onboard/__tests__/build-context.spec.js +179 -0
  207. package/dist/commands/onboard/__tests__/build-context.spec.js.map +1 -0
  208. package/dist/commands/onboard/__tests__/check-vcs-link.spec.d.ts +2 -0
  209. package/dist/commands/onboard/__tests__/check-vcs-link.spec.d.ts.map +1 -0
  210. package/dist/commands/onboard/__tests__/check-vcs-link.spec.js +164 -0
  211. package/dist/commands/onboard/__tests__/check-vcs-link.spec.js.map +1 -0
  212. package/dist/commands/onboard/__tests__/codex-mcp.spec.d.ts +2 -0
  213. package/dist/commands/onboard/__tests__/codex-mcp.spec.d.ts.map +1 -0
  214. package/dist/commands/onboard/__tests__/codex-mcp.spec.js +73 -0
  215. package/dist/commands/onboard/__tests__/codex-mcp.spec.js.map +1 -0
  216. package/dist/commands/onboard/__tests__/detect-framework.spec.d.ts +2 -0
  217. package/dist/commands/onboard/__tests__/detect-framework.spec.d.ts.map +1 -0
  218. package/dist/commands/onboard/__tests__/detect-framework.spec.js +277 -0
  219. package/dist/commands/onboard/__tests__/detect-framework.spec.js.map +1 -0
  220. package/dist/commands/onboard/__tests__/git-repo-info.spec.d.ts +2 -0
  221. package/dist/commands/onboard/__tests__/git-repo-info.spec.d.ts.map +1 -0
  222. package/dist/commands/onboard/__tests__/git-repo-info.spec.js +109 -0
  223. package/dist/commands/onboard/__tests__/git-repo-info.spec.js.map +1 -0
  224. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.d.ts +2 -0
  225. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.d.ts.map +1 -0
  226. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.js +157 -0
  227. package/dist/commands/onboard/__tests__/inline-doc-constants.spec.js.map +1 -0
  228. package/dist/commands/onboard/__tests__/install-skills.spec.d.ts +2 -0
  229. package/dist/commands/onboard/__tests__/install-skills.spec.d.ts.map +1 -0
  230. package/dist/commands/onboard/__tests__/install-skills.spec.js +158 -0
  231. package/dist/commands/onboard/__tests__/install-skills.spec.js.map +1 -0
  232. package/dist/commands/onboard/__tests__/materialize-workspace.spec.d.ts +2 -0
  233. package/dist/commands/onboard/__tests__/materialize-workspace.spec.d.ts.map +1 -0
  234. package/dist/commands/onboard/__tests__/materialize-workspace.spec.js +116 -0
  235. package/dist/commands/onboard/__tests__/materialize-workspace.spec.js.map +1 -0
  236. package/dist/commands/onboard/__tests__/resolve-app.spec.d.ts +2 -0
  237. package/dist/commands/onboard/__tests__/resolve-app.spec.d.ts.map +1 -0
  238. package/dist/commands/onboard/__tests__/resolve-app.spec.js +166 -0
  239. package/dist/commands/onboard/__tests__/resolve-app.spec.js.map +1 -0
  240. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.d.ts +2 -0
  241. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.d.ts.map +1 -0
  242. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js +137 -0
  243. package/dist/commands/onboard/__tests__/safe-repo-fs.spec.js.map +1 -0
  244. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.d.ts +2 -0
  245. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.d.ts.map +1 -0
  246. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.js +286 -0
  247. package/dist/commands/onboard/__tests__/setup-agent-integrations.spec.js.map +1 -0
  248. package/dist/commands/onboard/build-context.d.ts +16 -0
  249. package/dist/commands/onboard/build-context.d.ts.map +1 -0
  250. package/dist/commands/onboard/build-context.js +104 -0
  251. package/dist/commands/onboard/build-context.js.map +1 -0
  252. package/dist/commands/onboard/check-vcs-link.d.ts +14 -0
  253. package/dist/commands/onboard/check-vcs-link.d.ts.map +1 -0
  254. package/dist/commands/onboard/check-vcs-link.js +111 -0
  255. package/dist/commands/onboard/check-vcs-link.js.map +1 -0
  256. package/dist/commands/onboard/codex-mcp.d.ts +24 -0
  257. package/dist/commands/onboard/codex-mcp.d.ts.map +1 -0
  258. package/dist/commands/onboard/codex-mcp.js +302 -0
  259. package/dist/commands/onboard/codex-mcp.js.map +1 -0
  260. package/dist/commands/onboard/customer-agents.d.ts +9 -0
  261. package/dist/commands/onboard/customer-agents.d.ts.map +1 -0
  262. package/dist/commands/onboard/customer-agents.js +19 -0
  263. package/dist/commands/onboard/customer-agents.js.map +1 -0
  264. package/dist/commands/onboard/customer-agents.json +17 -0
  265. package/dist/commands/onboard/customer-docs.d.ts +21 -0
  266. package/dist/commands/onboard/customer-docs.d.ts.map +1 -0
  267. package/dist/commands/onboard/customer-docs.js +31 -0
  268. package/dist/commands/onboard/customer-docs.js.map +1 -0
  269. package/dist/commands/onboard/customer-docs.json +35 -0
  270. package/dist/commands/onboard/detect-framework.d.ts +26 -0
  271. package/dist/commands/onboard/detect-framework.d.ts.map +1 -0
  272. package/dist/commands/onboard/detect-framework.js +305 -0
  273. package/dist/commands/onboard/detect-framework.js.map +1 -0
  274. package/dist/commands/onboard/discover-apps.d.ts +21 -0
  275. package/dist/commands/onboard/discover-apps.d.ts.map +1 -0
  276. package/dist/commands/onboard/discover-apps.js +318 -0
  277. package/dist/commands/onboard/discover-apps.js.map +1 -0
  278. package/dist/commands/onboard/docs-urls.d.ts +11 -0
  279. package/dist/commands/onboard/docs-urls.d.ts.map +1 -0
  280. package/dist/commands/onboard/docs-urls.js +17 -0
  281. package/dist/commands/onboard/docs-urls.js.map +1 -0
  282. package/dist/commands/onboard/git-repo-info.d.ts +15 -0
  283. package/dist/commands/onboard/git-repo-info.d.ts.map +1 -0
  284. package/dist/commands/onboard/git-repo-info.js +84 -0
  285. package/dist/commands/onboard/git-repo-info.js.map +1 -0
  286. package/dist/commands/onboard/index.d.ts +18 -0
  287. package/dist/commands/onboard/index.d.ts.map +1 -0
  288. package/dist/commands/onboard/index.js +164 -0
  289. package/dist/commands/onboard/index.js.map +1 -0
  290. package/dist/commands/onboard/inline-doc-constants.d.ts +21 -0
  291. package/dist/commands/onboard/inline-doc-constants.d.ts.map +1 -0
  292. package/dist/commands/onboard/inline-doc-constants.js +238 -0
  293. package/dist/commands/onboard/inline-doc-constants.js.map +1 -0
  294. package/dist/commands/onboard/launch-agent.d.ts +65 -0
  295. package/dist/commands/onboard/launch-agent.d.ts.map +1 -0
  296. package/dist/commands/onboard/launch-agent.js +311 -0
  297. package/dist/commands/onboard/launch-agent.js.map +1 -0
  298. package/dist/commands/onboard/materialize-workspace.d.ts +68 -0
  299. package/dist/commands/onboard/materialize-workspace.d.ts.map +1 -0
  300. package/dist/commands/onboard/materialize-workspace.js +177 -0
  301. package/dist/commands/onboard/materialize-workspace.js.map +1 -0
  302. package/dist/commands/onboard/print-summary.d.ts +10 -0
  303. package/dist/commands/onboard/print-summary.d.ts.map +1 -0
  304. package/dist/commands/onboard/print-summary.js +49 -0
  305. package/dist/commands/onboard/print-summary.js.map +1 -0
  306. package/dist/commands/onboard/resolve-app.d.ts +21 -0
  307. package/dist/commands/onboard/resolve-app.d.ts.map +1 -0
  308. package/dist/commands/onboard/resolve-app.js +78 -0
  309. package/dist/commands/onboard/resolve-app.js.map +1 -0
  310. package/dist/commands/onboard/resolve-project.d.ts +14 -0
  311. package/dist/commands/onboard/resolve-project.d.ts.map +1 -0
  312. package/dist/commands/onboard/resolve-project.js +92 -0
  313. package/dist/commands/onboard/resolve-project.js.map +1 -0
  314. package/dist/commands/onboard/safe-repo-fs.d.ts +59 -0
  315. package/dist/commands/onboard/safe-repo-fs.d.ts.map +1 -0
  316. package/dist/commands/onboard/safe-repo-fs.js +266 -0
  317. package/dist/commands/onboard/safe-repo-fs.js.map +1 -0
  318. package/dist/commands/onboard/setup-agent-integrations.d.ts +43 -0
  319. package/dist/commands/onboard/setup-agent-integrations.d.ts.map +1 -0
  320. package/dist/commands/onboard/setup-agent-integrations.js +324 -0
  321. package/dist/commands/onboard/setup-agent-integrations.js.map +1 -0
  322. package/dist/commands/onboard/templates/CLAUDE.md +213 -0
  323. package/dist/commands/onboard/templates/agents/auth-setup.md +117 -0
  324. package/dist/commands/onboard/templates/agents/ci-setup.md +742 -0
  325. package/dist/commands/onboard/templates/agents/csp-setup.md +78 -0
  326. package/dist/commands/onboard/templates/agents/false-positive-prevention.md +268 -0
  327. package/dist/commands/onboard/templates/agents/feature-flag-setup.md +133 -0
  328. package/dist/commands/onboard/templates/agents/local-simulation-verification.md +96 -0
  329. package/dist/commands/onboard/templates/agents/persisted-graphql-queries.md +150 -0
  330. package/dist/commands/onboard/templates/agents/recorder-installation.md +194 -0
  331. package/dist/commands/onboard/templates/agents/replay-fetch-retry-compatibility.md +252 -0
  332. package/dist/commands/onboard/templates/agents/reviewer.md +788 -0
  333. package/dist/commands/onboard/templates/agents/service-worker-compatibility.md +254 -0
  334. package/dist/commands/onboard/templates/agents/session-context.md +133 -0
  335. package/dist/commands/onboard/templates/agents/shared-worker-compatibility.md +187 -0
  336. package/dist/commands/onboard/templates/docs/additional-guides/backend-recorder.ts +340 -0
  337. package/dist/commands/onboard/templates/docs/ci/not-yet-run-checks.ts +58 -0
  338. package/dist/commands/onboard/templates/docs/ci.ts +19 -0
  339. package/dist/commands/onboard/templates/docs/cloud-replay.ts +145 -0
  340. package/dist/commands/onboard/templates/docs/constants.ts +37 -0
  341. package/dist/commands/onboard/templates/docs/github-actions-v2.ts +859 -0
  342. package/dist/commands/onboard/templates/docs/how-to/auth/bypassing-auth.ts +27 -0
  343. package/dist/commands/onboard/templates/docs/how-to/auth/enabling-full-auth.ts +91 -0
  344. package/dist/commands/onboard/templates/docs/how-to/configure-ignore-patterns.ts +77 -0
  345. package/dist/commands/onboard/templates/docs/how-to/enable-source-coverage.ts +84 -0
  346. package/dist/commands/onboard/templates/docs/how-to/fix-false-positive-diffs.ts +156 -0
  347. package/dist/commands/onboard/templates/docs/how-to/link-bitbucket.ts +15 -0
  348. package/dist/commands/onboard/templates/docs/how-to/link-gitlab.ts +22 -0
  349. package/dist/commands/onboard/templates/docs/how-to/record-session-context.ts +129 -0
  350. package/dist/commands/onboard/templates/docs/how-to/recorder-script.ts +139 -0
  351. package/dist/commands/onboard/templates/docs/how-to/testing-feature-flags.ts +97 -0
  352. package/dist/commands/onboard/templates/docs/how-to/testing-multiple-apps-or-app-variants.ts +40 -0
  353. package/dist/commands/onboard/templates/docs/how-to/troubleshoot-auth.ts +58 -0
  354. package/dist/commands/onboard/templates/docs/how-to/troubleshoot-failed-simulations.ts +97 -0
  355. package/dist/commands/onboard/templates/docs/how-to/typescript-types.ts +51 -0
  356. package/dist/commands/onboard/templates/docs/how-to/window-meticulous-object.ts +685 -0
  357. package/dist/commands/onboard/templates/docs/onboarding-guide.ts +415 -0
  358. package/dist/commands/onboard/templates/docs/recorder-getting-started.ts +24 -0
  359. package/dist/commands/onboard/templates/docs/recorder-snippets/constants.ts +1 -0
  360. package/dist/commands/onboard/templates/docs/recorder-snippets/explanation-of-methods-to-add-recorder.ts +21 -0
  361. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/angular-instructions.ts +34 -0
  362. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/any-other-framework-instructions.ts +118 -0
  363. package/dist/commands/onboard/templates/docs/recorder-snippets/npm-package-based-instructions/vue-instructions.ts +39 -0
  364. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/next-js-instructions.ts +49 -0
  365. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/nuxtjs-instructions.ts +68 -0
  366. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/rsbuild-instructions.ts +66 -0
  367. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/storybook-instructions.ts +59 -0
  368. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/sveltekit-instructions.ts +113 -0
  369. package/dist/commands/onboard/templates/docs/recorder-snippets/script-based-instructions/vite-instructions.ts +58 -0
  370. package/dist/commands/onboard/templates/docs/recorder-snippets/script-requirements.ts +51 -0
  371. package/dist/commands/onboard/templates/docs/recorder-snippets/steps-after-installing-recorder.ts +25 -0
  372. package/dist/commands/onboard/templates/docs/reference/cli-commands.ts +1324 -0
  373. package/dist/commands/onboard/templates/docs/session-recording/csp-exceptions.ts +17 -0
  374. package/dist/commands/onboard/templates/docs/session-recording/recorder-npm-dependency.ts +62 -0
  375. package/dist/commands/onboard/templates/docs-imports/src/lib/next/next.constants.ts +46 -0
  376. package/dist/commands/onboard/templates/docs-imports/src/lib/utils/internal-urls/docs-urls.utils.ts +254 -0
  377. package/dist/commands/onboard/templates/settings.json +14 -0
  378. package/dist/commands/project/index.js +2 -2
  379. package/dist/commands/project/index.js.map +1 -1
  380. package/dist/commands/project/show.command.js +2 -2
  381. package/dist/commands/project/show.command.js.map +1 -1
  382. package/dist/commands/project/upload-source.command.js +2 -2
  383. package/dist/commands/project/upload-source.command.js.map +1 -1
  384. package/dist/commands/record/__tests__/backend-dev-command.utils.spec.js +2 -2
  385. package/dist/commands/record/__tests__/backend-dev-command.utils.spec.js.map +1 -1
  386. package/dist/commands/record/__tests__/backend-sidecar.utils.spec.js +2 -2
  387. package/dist/commands/record/__tests__/backend-sidecar.utils.spec.js.map +1 -1
  388. package/dist/commands/record/__tests__/backend.command.spec.js +2 -2
  389. package/dist/commands/record/__tests__/backend.command.spec.js.map +1 -1
  390. package/dist/commands/record/__tests__/login.command.spec.js +2 -2
  391. package/dist/commands/record/__tests__/login.command.spec.js.map +1 -1
  392. package/dist/commands/record/__tests__/session.command.spec.js +2 -2
  393. package/dist/commands/record/__tests__/session.command.spec.js.map +1 -1
  394. package/dist/commands/record/backend-dev-command.utils.js +2 -2
  395. package/dist/commands/record/backend-dev-command.utils.js.map +1 -1
  396. package/dist/commands/record/backend-sidecar.utils.js +2 -2
  397. package/dist/commands/record/backend-sidecar.utils.js.map +1 -1
  398. package/dist/commands/record/backend.command.js +2 -2
  399. package/dist/commands/record/backend.command.js.map +1 -1
  400. package/dist/commands/record/index.js +2 -2
  401. package/dist/commands/record/index.js.map +1 -1
  402. package/dist/commands/record/login.command.js +2 -2
  403. package/dist/commands/record/login.command.js.map +1 -1
  404. package/dist/commands/record/session.command.js +2 -2
  405. package/dist/commands/record/session.command.js.map +1 -1
  406. package/dist/commands/replay-debugger.ui.js +2 -2
  407. package/dist/commands/replay-debugger.ui.js.map +1 -1
  408. package/dist/commands/replay.command.js +2 -2
  409. package/dist/commands/replay.command.js.map +1 -1
  410. package/dist/commands/schema.command.js +2 -2
  411. package/dist/commands/schema.command.js.map +1 -1
  412. package/dist/commands/schema.command.spec.js +2 -2
  413. package/dist/commands/schema.command.spec.js.map +1 -1
  414. package/dist/index.js +2 -2
  415. package/dist/index.js.map +1 -1
  416. package/dist/main.js +2 -2
  417. package/dist/main.js.map +1 -1
  418. package/dist/utils/__tests__/handle-auth-failure.spec.js +2 -2
  419. package/dist/utils/__tests__/handle-auth-failure.spec.js.map +1 -1
  420. package/dist/utils/__tests__/project-selection-hint.spec.js +2 -2
  421. package/dist/utils/__tests__/project-selection-hint.spec.js.map +1 -1
  422. package/dist/utils/__tests__/resolve-project-identifier.spec.js +2 -2
  423. package/dist/utils/__tests__/resolve-project-identifier.spec.js.map +1 -1
  424. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js +2 -2
  425. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js.map +1 -1
  426. package/dist/utils/__tests__/select-project.spec.js +5 -4
  427. package/dist/utils/__tests__/select-project.spec.js.map +1 -1
  428. package/dist/utils/cli-user-error.js +2 -2
  429. package/dist/utils/cli-user-error.js.map +1 -1
  430. package/dist/utils/constants.js +2 -2
  431. package/dist/utils/constants.js.map +1 -1
  432. package/dist/utils/environment.utils.js +2 -2
  433. package/dist/utils/environment.utils.js.map +1 -1
  434. package/dist/utils/format-coverage-ranges.js +2 -2
  435. package/dist/utils/format-coverage-ranges.js.map +1 -1
  436. package/dist/utils/handle-auth-failure.js +2 -2
  437. package/dist/utils/handle-auth-failure.js.map +1 -1
  438. package/dist/utils/out-of-date-client-error.js +2 -2
  439. package/dist/utils/out-of-date-client-error.js.map +1 -1
  440. package/dist/utils/project-selection-hint.js +2 -2
  441. package/dist/utils/project-selection-hint.js.map +1 -1
  442. package/dist/utils/resolve-project-identifier.js +2 -2
  443. package/dist/utils/resolve-project-identifier.js.map +1 -1
  444. package/dist/utils/resolve-test-run-from-commit.js +2 -2
  445. package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
  446. package/dist/utils/select-project.d.ts +9 -0
  447. package/dist/utils/select-project.d.ts.map +1 -1
  448. package/dist/utils/select-project.js +58 -15
  449. package/dist/utils/select-project.js.map +1 -1
  450. package/package.json +13 -11
@@ -0,0 +1,49 @@
1
+ import { SNIPPET_URL } from "../constants";
2
+
3
+ export const nextJsInstructions = (
4
+ headTag: "head" | "Head",
5
+ injectSessionIdHeader = false,
6
+ ) => `
7
+ {% code_with_project_selector %}
8
+ {% tabs tabNameSpace="env" %}
9
+ {% tab label="Dev & Staging Only" %}
10
+ \`\`\`jsx
11
+ <${headTag}>
12
+ ...
13
+ {(process.env.NODE_ENV === "development" || process.env.VERCEL_ENV === "preview") && (
14
+ // eslint-disable-next-line @next/next/no-sync-scripts
15
+ <script
16
+ data-recording-token="{% project_recording_token /%}"
17
+ data-is-production-environment="false"${
18
+ injectSessionIdHeader
19
+ ? '\n data-inject-session-id-header="true"'
20
+ : ""
21
+ }
22
+ src="${SNIPPET_URL}"
23
+ />
24
+ )}
25
+ ...
26
+ </${headTag}>
27
+ \`\`\`
28
+ {% /tab %}
29
+ {% tab label="All Environments" %}
30
+ \`\`\`jsx
31
+ <${headTag}>
32
+ ...
33
+ // eslint-disable-next-line @next/next/no-sync-scripts
34
+ <script
35
+ data-recording-token="{% project_recording_token /%}"
36
+ data-is-production-environment={process.env.NODE_ENV === "production" || process.env.VERCEL_ENV === "production"}${
37
+ injectSessionIdHeader
38
+ ? '\n data-inject-session-id-header="true"'
39
+ : ""
40
+ }
41
+ src="${SNIPPET_URL}"
42
+ />
43
+ ...
44
+ </${headTag}>
45
+ \`\`\`
46
+ {% /tab %}
47
+ {% /tabs %}
48
+ {% /code_with_project_selector %}
49
+ `;
@@ -0,0 +1,68 @@
1
+ import {
2
+ METICULOUS_SETUP_CALENDLY_LINK,
3
+ METICULOUS_SUPPORT_EMAIL,
4
+ } from "src/lib/next/next.constants";
5
+ import { ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL } from "src/lib/utils/internal-urls/docs-urls.utils";
6
+
7
+ // Tested on https://github.com/digitalocean/sample-nuxtjs
8
+ export const nuxtJsInstructions = (
9
+ injectSessionIdHeader = false,
10
+ ) => `Install the Meticulous recorder plugin and add it to your Nuxt config. The plugin injects the recorder script as the first script tag in your app's \`<head>\`, with no async or defer attributes ([learn more](${ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL})).
11
+
12
+ {% code %}
13
+ \`\`\`shell
14
+ npm install @alwaysmeticulous/recorder-plugin --save-dev
15
+ \`\`\`
16
+ {% /code %}
17
+
18
+ Modify your \`nuxt.config.ts\` file to include the plugin:
19
+
20
+ {% code_with_project_selector %}
21
+ {% tabs tabNameSpace="env" %}
22
+ {% tab label="Dev Only (default)" %}
23
+ \`\`\`typescript
24
+ export default defineNuxtConfig({
25
+ modules: [
26
+ [
27
+ "@alwaysmeticulous/recorder-plugin/nuxt",
28
+ ${
29
+ injectSessionIdHeader
30
+ ? `{
31
+ recordingToken: "{% project_recording_token /%}",
32
+ attributes: { "data-inject-session-id-header": "true" },
33
+ }`
34
+ : `{ recordingToken: "{% project_recording_token /%}" }`
35
+ },
36
+ ],
37
+ ],
38
+ });
39
+ \`\`\`
40
+ {% /tab %}
41
+ {% tab label="All Environments" %}
42
+ \`\`\`typescript
43
+ export default defineNuxtConfig({
44
+ modules: [
45
+ [
46
+ "@alwaysmeticulous/recorder-plugin/nuxt",
47
+ {
48
+ recordingToken: "{% project_recording_token /%}",
49
+ enabled: "always",${
50
+ injectSessionIdHeader
51
+ ? '\n attributes: { "data-inject-session-id-header": "true" },'
52
+ : ""
53
+ }
54
+ },
55
+ ],
56
+ ],
57
+ });
58
+ \`\`\`
59
+ {% /tab %}
60
+ {% /tabs %}
61
+ {% /code_with_project_selector %}
62
+
63
+ By default, the plugin injects the recorder only during Nuxt development builds. If you set \`enabled: "always"\`, the plugin will inject the recorder in every environment and automatically set \`data-is-production-environment\` based on Nuxt's detected mode.
64
+
65
+ By default Meticulous will stub out all requests to server side rendered pages, and so won't test server side rendered content. If you
66
+ use server side rendering and wish to test your server side rendered pages then please reach out to
67
+ [${METICULOUS_SUPPORT_EMAIL}](mailto:${METICULOUS_SUPPORT_EMAIL}), or [book a call with us](${METICULOUS_SETUP_CALENDLY_LINK}), and we'll help you get set up.
68
+ `;
@@ -0,0 +1,66 @@
1
+ import { ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL } from "src/lib/utils/internal-urls/docs-urls.utils";
2
+
3
+ export const rsbuildInstructions = (
4
+ injectSessionIdHeader = false,
5
+ ) => `Install the Meticulous recorder plugin and add it to your rsbuild config. The plugin injects the recorder script as the first script tag in your app's \`<head>\`, with no async or defer attributes ([learn more](${ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL})).
6
+
7
+ {% code %}
8
+ \`\`\`shell
9
+ npm install @alwaysmeticulous/recorder-plugin --save-dev
10
+ \`\`\`
11
+ {% /code %}
12
+
13
+ Modify your \`rsbuild.config.ts\` file to include the plugin:
14
+
15
+ {% code_with_project_selector %}
16
+ {% tabs tabNameSpace="env" %}
17
+ {% tab label="Dev Only (default)" %}
18
+ \`\`\`typescript
19
+ import { defineConfig } from "@rsbuild/core";
20
+ import meticulous from "@alwaysmeticulous/recorder-plugin/rspack";
21
+
22
+ export default defineConfig({
23
+ tools: {
24
+ rspack: {
25
+ plugins: [
26
+ meticulous({
27
+ recordingToken: "{% project_recording_token /%}",${
28
+ injectSessionIdHeader
29
+ ? '\n attributes: { "data-inject-session-id-header": "true" },'
30
+ : ""
31
+ }
32
+ }),
33
+ ],
34
+ },
35
+ },
36
+ });
37
+ \`\`\`
38
+ {% /tab %}
39
+ {% tab label="All Environments" %}
40
+ \`\`\`typescript
41
+ import { defineConfig } from "@rsbuild/core";
42
+ import meticulous from "@alwaysmeticulous/recorder-plugin/rspack";
43
+
44
+ export default defineConfig({
45
+ tools: {
46
+ rspack: {
47
+ plugins: [
48
+ meticulous({
49
+ recordingToken: "{% project_recording_token /%}",
50
+ enabled: "always",${
51
+ injectSessionIdHeader
52
+ ? '\n attributes: { "data-inject-session-id-header": "true" },'
53
+ : ""
54
+ }
55
+ }),
56
+ ],
57
+ },
58
+ },
59
+ });
60
+ \`\`\`
61
+ {% /tab %}
62
+ {% /tabs %}
63
+ {% /code_with_project_selector %}
64
+
65
+ By default, the plugin injects the recorder only during non-production rsbuild builds. If you set \`enabled: "always"\`, the plugin will inject the recorder in every environment and automatically set \`data-is-production-environment\` based on Rspack's detected mode.
66
+ `;
@@ -0,0 +1,59 @@
1
+ import {
2
+ METICULOUS_SETUP_CALENDLY_LINK,
3
+ METICULOUS_SUPPORT_EMAIL,
4
+ } from "src/lib/next/next.constants";
5
+ import {
6
+ ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL,
7
+ TYPESCRIPT_TYPES_URL,
8
+ } from "src/lib/utils/internal-urls/docs-urls.utils";
9
+ import { SNIPPET_URL } from "../constants";
10
+
11
+ export const storybookInstructions = (
12
+ injectSessionIdHeader = false,
13
+ ) => `If you want to record sessions using Storybook, you can add the Meticulous recorder script tag by
14
+ creating a \`.storybook/preview-head.html\` file and adding the following:
15
+
16
+ {% code_with_project_selector %}
17
+ \`\`\`html
18
+ <script
19
+ data-recording-token="{% project_recording_token /%}"
20
+ data-is-production-environment="false"${
21
+ injectSessionIdHeader ? '\n data-inject-session-id-header="true"' : ""
22
+ }
23
+ src="${SNIPPET_URL}"
24
+ ></script>
25
+ <script>
26
+ // Record and replay Storybook events sent from the parent (manager) to the
27
+ // component iframe. These events capture interactions in Storybook controls
28
+ // and actions (e.g., switching between stories).
29
+ if (window.Meticulous?.replay) {
30
+ window.Meticulous.replay.addCustomEventListener(
31
+ "storybook-event",
32
+ (serializedData) =>
33
+ window.postMessage(serializedData, "*")
34
+ ,
35
+ )
36
+ } else {
37
+ window.addEventListener("message", event => {
38
+ // Check if it's a storybook event
39
+ try {
40
+ const data = JSON.parse(event.data)
41
+ if (data.key === "storybook-channel") {
42
+ if (window.Meticulous?.record) {
43
+ window.Meticulous.record.recordCustomEvent(
44
+ "storybook-event",
45
+ event.data,
46
+ )
47
+ }
48
+ }
49
+ } catch (e) {
50
+ // Not a JSON message, ignore
51
+ }
52
+ })
53
+ }
54
+ </script>
55
+ \`\`\`
56
+ {% /code_with_project_selector %}
57
+
58
+ For TypeScript type definitions for the \`window.Meticulous\` object, see [TypeScript Types for window.Meticulous](${TYPESCRIPT_TYPES_URL}).
59
+ `;
@@ -0,0 +1,113 @@
1
+ import {
2
+ METICULOUS_SETUP_CALENDLY_LINK,
3
+ METICULOUS_SUPPORT_EMAIL,
4
+ } from "src/lib/next/next.constants";
5
+ import { ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL } from "src/lib/utils/internal-urls/docs-urls.utils";
6
+ import { SNIPPET_URL } from "../constants";
7
+
8
+ // Tested on https://github.com/davjhan/guess-the-year-game
9
+ // (note: you need to delete all davjhan-core references, or manually checkout the davjhan-core repo)
10
+ export const svelteKitInstructions = (
11
+ injectSessionIdHeader = false,
12
+ ) => `**(A)** Add the Meticulous recorder script tag in a \`<svelte:head>\` tag at the top of your \`__layout.svelte\` file. It's important the script is the
13
+ first script, and async and defer are not set to true ([learn more](${ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL})):
14
+
15
+ {% code_with_project_selector %}
16
+ {% tabs tabNameSpace="env" %}
17
+ {% tab label="Dev & Staging Only" %}
18
+ \`\`\`svelte
19
+ <svelte:head>
20
+ {#if !import.meta.env.PROD}
21
+ <script
22
+ data-recording-token="{% project_recording_token /%}"
23
+ data-is-production-environment="false"${
24
+ injectSessionIdHeader ? '\n data-inject-session-id-header="true"' : ""
25
+ }
26
+ src="${SNIPPET_URL}"
27
+ ></script>
28
+ {/if}
29
+ </svelte:head>
30
+ \`\`\`
31
+ {% /tab %}
32
+ {% tab label="All Environments" %}
33
+ \`\`\`svelte
34
+ <svelte:head>
35
+ <script
36
+ data-recording-token="{% project_recording_token /%}"
37
+ data-is-production-environment={import.meta.env.PROD}${
38
+ injectSessionIdHeader ? '\n data-inject-session-id-header="true"' : ""
39
+ }
40
+ src="${SNIPPET_URL}"
41
+ ></script>
42
+ </svelte:head>
43
+ \`\`\`
44
+ {% /tab %}
45
+ {% /tabs %}
46
+ {% /code_with_project_selector %}
47
+
48
+ **(B)** In your app.html, make sure that \`%svelte.head%\` is above any other scripts in the \`<head>\` tag:
49
+
50
+ Good:
51
+
52
+ {% code %}
53
+ \`\`\`html
54
+ <head>
55
+ %svelte.head%
56
+ <script src="another-script.js"></script>
57
+ </head>
58
+ \`\`\`
59
+ {% /code %}
60
+
61
+ Bad:
62
+
63
+ {% code %}
64
+ \`\`\`html
65
+ <head>
66
+ <script src="another-script.js"></script>
67
+ %svelte.head%
68
+ </head>
69
+ \`\`\`
70
+ {% /code %}
71
+
72
+ **(C)** Wire through the MODE environment variable, and make sure MODE is set to \`production\` only for production builds:
73
+
74
+ Add \`mode: process.env.MODE || 'development'\` to the \`vite\` section of your \`kit\` config in your \`svelte.config.js\` file. For example:
75
+
76
+ {% code %}
77
+ \`\`\`javascript
78
+ const config = {
79
+ kit: {
80
+ vite: {
81
+ // default to development as a guard
82
+ mode: process.env.MODE || 'development',
83
+ }
84
+ },
85
+ }
86
+ \`\`\`
87
+ {% /code %}
88
+
89
+ For all builds that get deployed to production, build your application using:
90
+
91
+ \`\`\`bash
92
+ MODE=production npm run build
93
+ \`\`\`
94
+
95
+ And for all other builds, including builds that get deployed to staging stacks and preview URLs, build your app using:
96
+
97
+ \`\`\`bash
98
+ MODE=development npm run build
99
+ \`\`\`
100
+
101
+ or
102
+
103
+ \`\`\`bash
104
+ MODE=staging npm run build
105
+ \`\`\`
106
+
107
+
108
+ **(D)** If you want to test your server side rendered content, then contact us
109
+
110
+ By default Meticulous will stub out all requests to server side rendered pages, and so won't test server side rendered content. If you
111
+ use server side rendering and wish to test your server side rendered pages then please reach out to
112
+ [${METICULOUS_SUPPORT_EMAIL}](mailto:${METICULOUS_SUPPORT_EMAIL}), or [book a call with us](${METICULOUS_SETUP_CALENDLY_LINK}), and we'll help you get set up.
113
+ `;
@@ -0,0 +1,58 @@
1
+ import { ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL } from "src/lib/utils/internal-urls/docs-urls.utils";
2
+
3
+ export const viteInstructions = (
4
+ injectSessionIdHeader = false,
5
+ ) => `Install the Meticulous recorder plugin and add it to your Vite config. The plugin injects the recorder script as the first script tag in your app's \`<head>\`, with no async or defer attributes ([learn more](${ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL})).
6
+
7
+ {% code %}
8
+ \`\`\`shell
9
+ npm install @alwaysmeticulous/recorder-plugin --save-dev
10
+ \`\`\`
11
+ {% /code %}
12
+
13
+ Modify your \`vite.config.ts\` file to include the plugin:
14
+
15
+ {% code_with_project_selector %}
16
+ {% tabs tabNameSpace="env" %}
17
+ {% tab label="Dev Only (default)" %}
18
+ \`\`\`typescript
19
+ import { defineConfig } from "vite";
20
+ import meticulous from "@alwaysmeticulous/recorder-plugin/vite";
21
+
22
+ export default defineConfig({
23
+ plugins: [
24
+ meticulous({
25
+ recordingToken: "{% project_recording_token /%}",${
26
+ injectSessionIdHeader
27
+ ? '\n attributes: { "data-inject-session-id-header": "true" },'
28
+ : ""
29
+ }
30
+ }),
31
+ ],
32
+ });
33
+ \`\`\`
34
+ {% /tab %}
35
+ {% tab label="All Environments" %}
36
+ \`\`\`typescript
37
+ import { defineConfig } from "vite";
38
+ import meticulous from "@alwaysmeticulous/recorder-plugin/vite";
39
+
40
+ export default defineConfig({
41
+ plugins: [
42
+ meticulous({
43
+ recordingToken: "{% project_recording_token /%}",
44
+ enabled: "always",${
45
+ injectSessionIdHeader
46
+ ? '\n attributes: { "data-inject-session-id-header": "true" },'
47
+ : ""
48
+ }
49
+ }),
50
+ ],
51
+ });
52
+ \`\`\`
53
+ {% /tab %}
54
+ {% /tabs %}
55
+ {% /code_with_project_selector %}
56
+
57
+ By default, the plugin injects the recorder only during Vite development builds. If you set \`enabled: "always"\`, the plugin will inject the recorder in every environment and automatically set \`data-is-production-environment\` based on Vite's detected mode.
58
+ `;
@@ -0,0 +1,51 @@
1
+ import {
2
+ ADDITIONAL_GUIDES,
3
+ INSTALL_RECORDER_AS_NPM_DEPENDENCY_URL,
4
+ ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL,
5
+ } from "src/lib/utils/internal-urls/docs-urls.utils";
6
+
7
+ const REQUIREMENTS_TITLE =
8
+ "**Important: The Meticulous Recorder script should be the first script to load, and have no async or defer attributes**";
9
+
10
+ const NEXTJS_REQUIREMENTS_TITLE =
11
+ "**Important: The Meticulous Recorder script should use the native `script` tag instead of the NextJS `Script` component, be the first script to load, and have no async or defer attributes**";
12
+
13
+ export const DEFAULT_NOT_POSSIBLE_TO_MEET_REQUIREMENTS_TEXT = `If it's not possible to meet these requirements then you can [use an NPM dependency instead of a script tag](${INSTALL_RECORDER_AS_NPM_DEPENDENCY_URL}). If you need to wait for a network request to complete before you know whether you should record the session then you can [buffer the requests in memory, and only send them later](${ADDITIONAL_GUIDES.CONTROLLING_WHEN_RECORDING_STARTS_AND_STOPS_URL}).`;
14
+
15
+ export const scriptRequirementsCalloutCard = ({
16
+ isNextJs,
17
+ notPossibleToMeetRequirementsText,
18
+ }: {
19
+ isNextJs: "yes" | "no" | "maybe";
20
+ notPossibleToMeetRequirementsText?: string;
21
+ }) => `
22
+ {% callout_card showIcon=false %}
23
+ ${isNextJs === "yes" ? NEXTJS_REQUIREMENTS_TITLE : REQUIREMENTS_TITLE}
24
+
25
+ Libraries you depend on may snapshot references
26
+ to \`window.fetch\` or \`window.XMLHttpRequest\` early in the page lifecycle, which means if Meticulous is not the first script to load
27
+ it may not be able to record all the network
28
+ responses required for your app to function ([learn more](${ENSURE_RECORDER_CAPTURES_ALL_REQUESTS_URL})). Therefore the recorder script
29
+ must be the first script to load in order to be guaranteed to capture all network requests correctly. This means:
30
+
31
+ 1. It should be added to your \`index.html\` file, before any other script tags.
32
+ 2. It should not have any async or defer attributes set${
33
+ isNextJs === "yes"
34
+ ? `, and use the native \`script\` tag instead of the NextJS \`Script\` component`
35
+ : "."
36
+ }${
37
+ isNextJs === "maybe"
38
+ ? ` If using NextJS then it should use the native \`script\` tag instead of the NextJS \`Script\` component.`
39
+ : ""
40
+ }
41
+ 3. It should be present in the initial HTML returned from the server -- you cannot add the script tag dynamically using JavaScript, since if
42
+ you do so the browser may execute the script after other scripts have loaded. If you need to include the script tag in your HTML only
43
+ in certain environments then this must be done either server-side, or at build time by templating your HTML.
44
+
45
+ ${
46
+ notPossibleToMeetRequirementsText ??
47
+ DEFAULT_NOT_POSSIBLE_TO_MEET_REQUIREMENTS_TEXT
48
+ }
49
+
50
+ {% /callout_card %}
51
+ `;
@@ -0,0 +1,25 @@
1
+ import {
2
+ RECORDER_CSP_EXCEPTIONS_URL,
3
+ TROUBLESHOOT_RECORDER_URL,
4
+ } from "src/lib/utils/internal-urls/docs-urls.utils";
5
+
6
+ export const STEPS_AFTER_INSTALLING_RECORDER = `
7
+ ## Validating installation
8
+
9
+ Once you add the Meticulous snippet, open your webapp (either locally or on the environment that you injected the snippet into) and record a session by clicking around on your web app.
10
+
11
+ If the snippet was installed successfully you should be able to view the recorded session in your
12
+ {% project_link %}Meticulous dashboard {% /project_link %} in the **Sessions** section.
13
+
14
+ If you set a CSP policy on your application then you'll need to add [these](${RECORDER_CSP_EXCEPTIONS_URL}) CSP exceptions.
15
+
16
+ ## I've installed the snippet but why do I not see any sessions in my Meticulous dashboard?
17
+
18
+ See [troubleshooting](${TROUBLESHOOT_RECORDER_URL}) for more information on why this might be happening.
19
+
20
+ ## Issues / questions?
21
+
22
+ We're always happy to help you with any issues you encounter while setting up or anything you might be unsure about.
23
+
24
+ Get in touch by emailing [support@meticulous.ai](mailto:support@meticulous.ai).
25
+ `;