@wascartech/devbot 2.1.0 → 2.2.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 (59) hide show
  1. package/dist/admin/settings-routes.js +2 -1
  2. package/dist/admin/settings-routes.js.map +1 -1
  3. package/dist/devcontainer.js +9 -0
  4. package/dist/devcontainer.js.map +1 -1
  5. package/dist/global-settings-store.js +11 -4
  6. package/dist/global-settings-store.js.map +1 -1
  7. package/dist/migrate.js +395 -30
  8. package/dist/migrate.js.map +1 -1
  9. package/dist/platform/gitealike/base.js +5 -0
  10. package/dist/platform/gitealike/base.js.map +1 -1
  11. package/dist/platform/github/index.js +5 -0
  12. package/dist/platform/github/index.js.map +1 -1
  13. package/dist/platform/gitlab/api.js +7 -1
  14. package/dist/platform/gitlab/api.js.map +1 -1
  15. package/dist/platform/gitlab/index.js +5 -0
  16. package/dist/platform/gitlab/index.js.map +1 -1
  17. package/dist/platform/gitlab/schemas.js +14 -0
  18. package/dist/platform/gitlab/schemas.js.map +1 -1
  19. package/dist/platform/port.js +1 -1
  20. package/dist/platform/port.js.map +1 -1
  21. package/dist/platform/types.js.map +1 -1
  22. package/dist/settings-store.js +28 -4
  23. package/dist/settings-store.js.map +1 -1
  24. package/dist/types/global-settings.js +6 -0
  25. package/dist/types/global-settings.js.map +1 -1
  26. package/dist/types/project-settings.js +1 -0
  27. package/dist/types/project-settings.js.map +1 -1
  28. package/dist/webhook.js +35 -4
  29. package/dist/webhook.js.map +1 -1
  30. package/migrations/0032_confidential_work_items.sql +11 -0
  31. package/package.json +3 -1
  32. package/public/assets/{DashboardSidebarCollapse-rIuzCmVm.js → DashboardSidebarCollapse-CWmehYha.js} +1 -1
  33. package/public/assets/{DashboardToolbar-DFCUqZ4Z.js → DashboardToolbar-DHcR2yAt.js} +1 -1
  34. package/public/assets/{ErrorLogModal.vue_vue_type_script_setup_true_lang-BCyNIf1E.js → ErrorLogModal.vue_vue_type_script_setup_true_lang-B0yvkhY5.js} +1 -1
  35. package/public/assets/{ErrorLogsPage-DyYK2Rop.js → ErrorLogsPage-ClPltTSr.js} +1 -1
  36. package/public/assets/{LogSlideover.vue_vue_type_script_setup_true_lang-33xie7TE.js → LogSlideover.vue_vue_type_script_setup_true_lang-F1i8DRzf.js} +1 -1
  37. package/public/assets/{OverviewPage-CFfa0uwg.js → OverviewPage-DWz8IJ46.js} +1 -1
  38. package/public/assets/{PageGrid-CBROIU87.js → PageGrid-DelloK5f.js} +1 -1
  39. package/public/assets/{PeriodRangePicker.vue_vue_type_script_setup_true_lang-DiFUNem7.js → PeriodRangePicker.vue_vue_type_script_setup_true_lang-YOwfelec.js} +1 -1
  40. package/public/assets/ProjectDetailPage-QEdo9Ytu.js +1 -0
  41. package/public/assets/{ProjectsPage-CFx8-elJ.js → ProjectsPage-BJzRIlvb.js} +1 -1
  42. package/public/assets/{RunDetailSlideover.vue_vue_type_script_setup_true_lang-DopYYmCT.js → RunDetailSlideover.vue_vue_type_script_setup_true_lang-BLDs3UaU.js} +1 -1
  43. package/public/assets/{RunsPage-CRnnXU4P.js → RunsPage-BYlDZjwk.js} +1 -1
  44. package/public/assets/{Select-Bvx32Diz.js → Select-DGVDts9_.js} +1 -1
  45. package/public/assets/{SelectMenu-BjMxc4VB.js → SelectMenu-B6n06FSV.js} +1 -1
  46. package/public/assets/{SettingsPage-Bb6LM3wO.js → SettingsPage-BpLc2GAe.js} +21 -21
  47. package/public/assets/{TimeCell.vue_vue_type_script_setup_true_lang-DW_UB0Fu.js → TimeCell.vue_vue_type_script_setup_true_lang-BNWTJF4u.js} +1 -1
  48. package/public/assets/{UsagePage-BLMDEsv-.js → UsagePage-CSt7StoP.js} +1 -1
  49. package/public/assets/{VolumesPage-CxcLc3L2.js → VolumesPage-Cxav6H5n.js} +1 -1
  50. package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-DQNacZEe.js +1 -0
  51. package/public/assets/{WorkItemCell.vue_vue_type_script_setup_true_lang-BQn6vTjd.js → WorkItemCell.vue_vue_type_script_setup_true_lang-DAJMkNI8.js} +1 -1
  52. package/public/assets/{index-C5RBBrPj.js → index-Cs2OnrL7.js} +2 -2
  53. package/public/assets/{index-BMbMibyb.js → index-RZx6yIXX.js} +1 -1
  54. package/public/assets/{usage-format-jsb31_O8.js → usage-format-RcSEOPCq.js} +1 -1
  55. package/public/assets/{useManagedProjects-8rtjRqVJ.js → useManagedProjects-DnOY5lQq.js} +1 -1
  56. package/public/assets/{useRouteTab-DfwrcMic.js → useRouteTab-B-Vrl8p9.js} +1 -1
  57. package/public/index.html +1 -1
  58. package/public/assets/ProjectDetailPage-CreyvUit.js +0 -1
  59. package/public/assets/WebhookConfigPanel.vue_vue_type_script_setup_true_lang-B2V2GF6b.js +0 -1
@@ -52,6 +52,7 @@ function globalDefaults() {
52
52
  autoMr: g.autoMr ? "true" : "false",
53
53
  autoResolveConflicts: g.autoResolveConflicts ? "true" : "false",
54
54
  ciFailAutoReport: g.ciFailAutoReport ? "true" : "false",
55
+ allowConfidentialWorkItems: g.allowConfidentialWorkItems ? "true" : "false",
55
56
  lspServers: g.lspServers.join(","),
56
57
  lspDisabled: "",
57
58
  };
@@ -69,7 +70,7 @@ export function mountSettingsRoutes(app) {
69
70
  return res.status(404).json({ error: "not managed" });
70
71
  }
71
72
  const settings = getProjectSettings(projectId) ?? {
72
- planModel: "", buildModel: "", planVariant: "", buildVariant: "", plugins: "", baseBranches: "", lspServers: "", lspDisabled: "", builderImage: "", buildWorkflow: "", mrDescription: "", minRole: "", requireAuthorOrAssignee: "", autoPush: "", autoMr: "", autoResolveConflicts: "", ciFailAutoReport: "", assignee: "",
73
+ planModel: "", buildModel: "", planVariant: "", buildVariant: "", plugins: "", baseBranches: "", lspServers: "", lspDisabled: "", builderImage: "", buildWorkflow: "", mrDescription: "", minRole: "", requireAuthorOrAssignee: "", autoPush: "", autoMr: "", autoResolveConflicts: "", ciFailAutoReport: "", allowConfidentialWorkItems: "", assignee: "",
73
74
  };
74
75
  logReq(req, "debug", "get settings", { projectId });
75
76
  return res.json({ settings, defaults: globalDefaults() });
@@ -1 +1 @@
1
- {"version":3,"file":"settings-routes.js","sourceRoot":"","sources":["../../src/admin/settings-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-routes.js","sourceRoot":"","sources":["../../src/admin/settings-routes.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,12 @@ export function devcontainerVolumeArgs(podmanVolume) {
113
113
  // $XDG_CONFIG_HOME/containers (now the out-of-tree xdg volume — still worth
114
114
  // overriding so the inner runtime's config never mixes with opencode's). The
115
115
  // referenced file is created by ensurePodmanStore.
116
+ //
117
+ // This does NOT cover containers.conf: podman still scans
118
+ // $XDG_CONFIG_HOME/containers/containers.conf.d before reading the storage
119
+ // override. The runtime path in docker/devbot-shell redirects XDG_CONFIG_HOME
120
+ // (and the other XDG dirs) to $HOME/agent for that reason; the runner must keep
121
+ // passing opencode's sealed xdg home to the container itself.
116
122
  export function devcontainerEnvArgs() {
117
123
  return [
118
124
  "--env", `CONTAINERS_STORAGE_CONF=${PODMAN_STORE_DIR}/storage.conf`,
@@ -134,6 +140,9 @@ export function devcontainerPromptSection() {
134
140
  "",
135
141
  "- Build and run the project's own images, or pull service images (postgres, redis, etc.), then `podman network create` a private network so containers resolve each other by name.",
136
142
  "- Prefer a repo `compose.yaml`/`docker-compose.yml` via `podman compose` when one exists; otherwise use raw `podman`.",
143
+ "- The runtime is preconfigured for the agent UID: do not set `XDG_*`, use `sudo`, or add `--privileged`, `--isolation=chroot`, or `--storage-driver` flags.",
144
+ "- Debian/Ubuntu images that run `apt-get update && apt-get install` build normally; no sandbox-specific Dockerfile line is needed.",
145
+ "- A `podman` failure with `containers.conf.d: permission denied`, or an apt build failing with `setgroups 65534 failed` / `setegid 65534 failed` (errno EINVAL 22), is a DevBot sandbox bug to report. Do not add sandbox-specific configuration such as `APT::Sandbox::User` to the project.",
137
146
  "- The container store lives in a separate volume outside `/workspace`, so container artifacts are never part of the git diff and must not be committed.",
138
147
  "- Stop long-running containers when you're done (`podman rm -f <name>`); they are reaped when this run exits.",
139
148
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"devcontainer.js","sourceRoot":"","sources":["../src/devcontainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devcontainer.js","sourceRoot":"","sources":["../src/devcontainer.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,kEAAkE;AAClE,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,sEAAsE;AACtE,gFAAgF;AAChF,0EAA0E;AAC1E,2BAA2B;AAE3B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKhD,gFAAgF;AAChF,2EAA2E;AAC3E,iDAAiD;AACjD,MAAM,UAAU,mBAAmB,CAAC,OAAgB,EAAE,IAAsB;IAC1E,OAAO,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC;AACrC,CAAC;AAED,6EAA6E;AAC7E,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,IAAI,GAAG,WAAW;IAC9C,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AAEvE,gFAAgF;AAChF,gFAAgF;AAChF,mDAAmD;AACnD,MAAM,UAAU,oBAAoB,CAAC,UAA4B,EAAE,OAAgB;IACjF,IAAI,UAAU,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IACrE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,kFAAkF;AAClF,4EAA4E;AAC5E,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,wEAAwE;AACxE,gFAAgF;AAChF,uEAAuE;AACvE,kBAAkB;AAClB,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,MAAM,IAAI,GAAG;QACX,6EAA6E;QAC7E,8CAA8C;QAC9C,kBAAkB;QAClB,4EAA4E;QAC5E,8BAA8B;QAC9B,iBAAiB;QACjB,mDAAmD;QACnD,gBAAgB,EAAE,eAAe;QACjC,yEAAyE;QACzE,gBAAgB,EAAE,oBAAoB;QACtC,wEAAwE;QACxE,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,iEAAiE;QACjE,gBAAgB,EAAE,YAAY;QAC9B,4EAA4E;QAC5E,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,YAAY;QACzB,yEAAyE;QACzE,4EAA4E;QAC5E,sEAAsE;QACtE,UAAU,EAAE,cAAc;KAC3B,CAAC;IACF,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,6EAA6E;AAC7E,6EAA6E;AAC7E,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,MAAqB;IAC/C,MAAM,KAAK,GAAG;QACZ,WAAW;QACX,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;QACrE,gBAAgB,gBAAgB,WAAW;QAC3C,cAAc,gBAAgB,WAAW;KAC1C,CAAC;IACF,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CACR,EAAE,EACF,2BAA2B,EAC3B,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,OAAO,CAAC,IAAI,EAAE,GAAG,YAAY,IAAI,gBAAgB,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,4EAA4E;AAC5E,6EAA6E;AAC7E,mDAAmD;AACnD,EAAE;AACF,0DAA0D;AAC1D,2EAA2E;AAC3E,8EAA8E;AAC9E,gFAAgF;AAChF,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,OAAO,EAAE,2BAA2B,gBAAgB,eAAe;QACnE,4EAA4E;QAC5E,0EAA0E;QAC1E,oEAAoE;QACpE,OAAO,EAAE,wBAAwB;KAClC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,aAAa;AACb,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,qCAAqC;QACrC,EAAE;QACF,0OAA0O;QAC1O,EAAE;QACF,oLAAoL;QACpL,uHAAuH;QACvH,6JAA6J;QAC7J,oIAAoI;QACpI,+RAA+R;QAC/R,yJAAyJ;QACzJ,+GAA+G;KAChH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -28,6 +28,7 @@ export function initGlobalSettingsTables() {
28
28
  auto_mr INTEGER NOT NULL DEFAULT 0,
29
29
  auto_resolve_conflicts INTEGER NOT NULL DEFAULT 0,
30
30
  ci_fail_auto_report INTEGER NOT NULL DEFAULT 0,
31
+ allow_confidential_work_items INTEGER NOT NULL DEFAULT 0,
31
32
  lsp_servers TEXT NOT NULL DEFAULT '',
32
33
  runtime TEXT NOT NULL DEFAULT '',
33
34
  created_at INTEGER NOT NULL,
@@ -96,6 +97,11 @@ export function initGlobalSettingsTables() {
96
97
  db.exec("ALTER TABLE global_settings ADD COLUMN ci_fail_auto_report INTEGER NOT NULL DEFAULT 0");
97
98
  }
98
99
  catch { /* exists */ }
100
+ // Pre-0032 DBs lack the confidential work item opt-in.
101
+ try {
102
+ db.exec("ALTER TABLE global_settings ADD COLUMN allow_confidential_work_items INTEGER NOT NULL DEFAULT 0");
103
+ }
104
+ catch { /* exists */ }
99
105
  // Pre-0031 DBs lack the LSP server list.
100
106
  try {
101
107
  db.exec("ALTER TABLE global_settings ADD COLUMN lsp_servers TEXT NOT NULL DEFAULT ''");
@@ -128,7 +134,7 @@ export function getGlobalSettings() {
128
134
  let row;
129
135
  try {
130
136
  row = db
131
- .prepare("SELECT plan_model, build_model, plan_variant, build_variant, plugins, base_branches, builder_image, assignee, build_workflow, mr_description, min_role, require_author_or_assignee, auto_push, auto_mr, auto_resolve_conflicts, ci_fail_auto_report, lsp_servers, runtime FROM global_settings WHERE id = 1")
137
+ .prepare("SELECT plan_model, build_model, plan_variant, build_variant, plugins, base_branches, builder_image, assignee, build_workflow, mr_description, min_role, require_author_or_assignee, auto_push, auto_mr, auto_resolve_conflicts, ci_fail_auto_report, allow_confidential_work_items, lsp_servers, runtime FROM global_settings WHERE id = 1")
132
138
  .get();
133
139
  }
134
140
  catch {
@@ -154,6 +160,7 @@ export function getGlobalSettings() {
154
160
  autoMr: row.auto_mr === 1,
155
161
  autoResolveConflicts: row.auto_resolve_conflicts === 1,
156
162
  ciFailAutoReport: row.ci_fail_auto_report === 1,
163
+ allowConfidentialWorkItems: row.allow_confidential_work_items === 1,
157
164
  lspServers: lspServersFromStoredJson(row.lsp_servers),
158
165
  runtime: runtimeFromJson(typeof row.runtime === "string" ? row.runtime : ""),
159
166
  });
@@ -170,10 +177,10 @@ export function upsertGlobalSettings(s) {
170
177
  const v = parsed.data;
171
178
  const now = Math.floor(Date.now() / 1000);
172
179
  db.prepare(`INSERT OR REPLACE INTO global_settings
173
- (id, plan_model, build_model, plan_variant, build_variant, plugins, base_branches, builder_image, assignee, build_workflow, mr_description, min_role, require_author_or_assignee, auto_push, auto_mr, auto_resolve_conflicts, ci_fail_auto_report, lsp_servers, runtime, created_at, updated_at)
174
- VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
180
+ (id, plan_model, build_model, plan_variant, build_variant, plugins, base_branches, builder_image, assignee, build_workflow, mr_description, min_role, require_author_or_assignee, auto_push, auto_mr, auto_resolve_conflicts, ci_fail_auto_report, allow_confidential_work_items, lsp_servers, runtime, created_at, updated_at)
181
+ VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
175
182
  COALESCE((SELECT created_at FROM global_settings WHERE id = 1), ?),
176
- ?)`).run(v.planModel, v.buildModel, v.planVariant, v.buildVariant, v.plugins, v.baseBranches || "dev,master", v.builderImage, v.assignee, v.buildWorkflow, v.mrDescription, v.minRole, v.requireAuthorOrAssignee ? 1 : 0, v.autoPush ? 1 : 0, v.autoMr ? 1 : 0, v.autoResolveConflicts ? 1 : 0, v.ciFailAutoReport ? 1 : 0, JSON.stringify(v.lspServers), JSON.stringify(v.runtime), now, now);
183
+ ?)`).run(v.planModel, v.buildModel, v.planVariant, v.buildVariant, v.plugins, v.baseBranches || "dev,master", v.builderImage, v.assignee, v.buildWorkflow, v.mrDescription, v.minRole, v.requireAuthorOrAssignee ? 1 : 0, v.autoPush ? 1 : 0, v.autoMr ? 1 : 0, v.autoResolveConflicts ? 1 : 0, v.ciFailAutoReport ? 1 : 0, v.allowConfidentialWorkItems ? 1 : 0, JSON.stringify(v.lspServers), JSON.stringify(v.runtime), now, now);
177
184
  }
178
185
  // ---- Provider registry -----------------------------------------------------
179
186
  function rowToProvider(row) {
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings-store.js","sourceRoot":"","sources":["../src/global-settings-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-settings-store.js","sourceRoot":"","sources":["../src/global-settings-store.ts"],"names":[],"mappings":"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"}
package/dist/migrate.js CHANGED
@@ -8,66 +8,431 @@ import { log } from "./logger.js";
8
8
  // migration is a numbered .sql file in migrations/ applied in order inside a
9
9
  // transaction; schema_migrations records the applied version. Fail-closed: a
10
10
  // half-applied migration aborts boot so a never half-schema serves requests.
11
+ //
12
+ // Additive migrations (ALTER TABLE ... ADD COLUMN plus the IF NOT EXISTS forms)
13
+ // are safe to replay against a schema that is ahead of schema_migrations: an
14
+ // existing column with the declared shape is skipped, a missing one is added,
15
+ // and the version is recorded only after every declared effect is present.
11
16
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
12
17
  const MIGRATIONS_DIR = join(MODULE_DIR, "..", "migrations");
18
+ const IDENT = '(?:"[^"]+"|`[^`]+`|\\[[^\\]]+\\]|[A-Za-z_][A-Za-z0-9_$]*)';
19
+ const QUALIFIED_IDENT = `${IDENT}(?:\\s*\\.\\s*${IDENT})?`;
20
+ const ADD_COLUMN = new RegExp(`^ALTER\\s+TABLE\\s+(${QUALIFIED_IDENT})\\s+ADD\\s+(?:COLUMN\\s+)?(${IDENT})\\s+([\\s\\S]+)$`, "i");
21
+ const CREATE_TABLE = new RegExp(`^CREATE\\s+TABLE\\s+IF\\s+NOT\\s+EXISTS\\s+(${QUALIFIED_IDENT})`, "i");
22
+ const CREATE_INDEX = new RegExp(`^CREATE\\s+(?:UNIQUE\\s+)?INDEX\\s+IF\\s+NOT\\s+EXISTS\\s+(${QUALIFIED_IDENT})`, "i");
23
+ const CONSTRAINT_KEYWORDS = [
24
+ "PRIMARY",
25
+ "NOT",
26
+ "NULL",
27
+ "UNIQUE",
28
+ "CHECK",
29
+ "DEFAULT",
30
+ "COLLATE",
31
+ "REFERENCES",
32
+ "GENERATED",
33
+ "AS",
34
+ ];
35
+ const NOT_COLUMN_KEYWORDS = new Set(["CONSTRAINT", "PRIMARY", "UNIQUE", "FOREIGN", "CHECK"]);
13
36
  function loadMigrations() {
14
37
  let names;
15
38
  try {
16
- names = readdirSync(MIGRATIONS_DIR).filter((n) => n.endsWith(".sql"));
39
+ names = readdirSync(MIGRATIONS_DIR).filter((name) => name.endsWith(".sql"));
17
40
  }
18
41
  catch {
19
42
  return [];
20
43
  }
21
44
  return names
22
45
  .map((filename) => {
23
- const m = /^(\d+)_.+\.sql$/.exec(filename);
24
- if (!m)
46
+ const match = /^(\d+)_.+\.sql$/.exec(filename);
47
+ if (!match)
25
48
  return null;
26
- const version = Number(m[1]);
49
+ const version = Number(match[1]);
27
50
  const sql = readFileSync(join(MIGRATIONS_DIR, filename), "utf8");
28
51
  return { version, filename, sql };
29
52
  })
30
- .filter((m) => m !== null)
53
+ .filter((migration) => migration !== null)
31
54
  .sort((a, b) => a.version - b.version);
32
55
  }
33
- function appliedVersion() {
34
- db.exec(`
56
+ function splitStatements(sql) {
57
+ const statements = [];
58
+ let current = "";
59
+ let quote = null;
60
+ let i = 0;
61
+ while (i < sql.length) {
62
+ const ch = sql[i];
63
+ const next = sql[i + 1];
64
+ if (quote !== null) {
65
+ current += ch;
66
+ if (ch === quote) {
67
+ if (next === quote) {
68
+ current += next;
69
+ i += 2;
70
+ continue;
71
+ }
72
+ quote = null;
73
+ }
74
+ i++;
75
+ continue;
76
+ }
77
+ if (ch === "-" && next === "-") {
78
+ i += 2;
79
+ while (i < sql.length && sql[i] !== "\n")
80
+ i++;
81
+ current += " ";
82
+ continue;
83
+ }
84
+ if (ch === "/" && next === "*") {
85
+ i += 2;
86
+ while (i < sql.length && !(sql[i] === "*" && sql[i + 1] === "/"))
87
+ i++;
88
+ i += 2;
89
+ current += " ";
90
+ continue;
91
+ }
92
+ if (ch === "'" || ch === '"' || ch === "`") {
93
+ quote = ch;
94
+ current += ch;
95
+ i++;
96
+ continue;
97
+ }
98
+ if (ch === "[") {
99
+ quote = "]";
100
+ current += ch;
101
+ i++;
102
+ continue;
103
+ }
104
+ if (ch === ";") {
105
+ const statement = current.trim();
106
+ if (statement)
107
+ statements.push(statement);
108
+ current = "";
109
+ i++;
110
+ continue;
111
+ }
112
+ current += ch;
113
+ i++;
114
+ }
115
+ const statement = current.trim();
116
+ if (statement)
117
+ statements.push(statement);
118
+ return statements;
119
+ }
120
+ function lastIdentPart(raw) {
121
+ let quote = null;
122
+ let lastDot = -1;
123
+ for (let i = 0; i < raw.length; i++) {
124
+ const ch = raw[i];
125
+ if (quote !== null) {
126
+ if (ch === quote)
127
+ quote = null;
128
+ continue;
129
+ }
130
+ if (ch === "'" || ch === '"' || ch === "`") {
131
+ quote = ch;
132
+ continue;
133
+ }
134
+ if (ch === "[") {
135
+ quote = "]";
136
+ continue;
137
+ }
138
+ if (ch === ".")
139
+ lastDot = i;
140
+ }
141
+ return unquoteIdent(raw.slice(lastDot + 1));
142
+ }
143
+ function unquoteIdent(raw) {
144
+ const value = raw.trim();
145
+ if (value.length < 2)
146
+ return value;
147
+ const first = value[0];
148
+ const last = value[value.length - 1];
149
+ if ((first === '"' && last === '"') || (first === "'" && last === "'") || (first === "`" && last === "`")) {
150
+ return value.slice(1, -1).replaceAll(first + first, first);
151
+ }
152
+ if (first === "[" && last === "]")
153
+ return value.slice(1, -1).replaceAll("]]", "]");
154
+ return value;
155
+ }
156
+ function parseAdditive(sql) {
157
+ const statements = splitStatements(sql);
158
+ if (statements.length === 0)
159
+ return null;
160
+ const effects = [];
161
+ for (const statement of statements) {
162
+ const add = ADD_COLUMN.exec(statement);
163
+ if (add) {
164
+ const table = lastIdentPart(add[1]);
165
+ const column = lastIdentPart(add[2]);
166
+ const definition = add[3].trim();
167
+ if (!definition || NOT_COLUMN_KEYWORDS.has(column.toUpperCase()))
168
+ return null;
169
+ effects.push({ kind: "column", sql: statement, table, column, definition });
170
+ continue;
171
+ }
172
+ const table = CREATE_TABLE.exec(statement);
173
+ if (table) {
174
+ effects.push({ kind: "table", sql: statement, name: lastIdentPart(table[1]) });
175
+ continue;
176
+ }
177
+ const index = CREATE_INDEX.exec(statement);
178
+ if (index) {
179
+ effects.push({ kind: "index", sql: statement, name: lastIdentPart(index[1]) });
180
+ continue;
181
+ }
182
+ return null;
183
+ }
184
+ return effects;
185
+ }
186
+ function topLevelIndex(sql, words) {
187
+ let quote = null;
188
+ let depth = 0;
189
+ for (let i = 0; i < sql.length; i++) {
190
+ const ch = sql[i];
191
+ if (quote !== null) {
192
+ if (ch === quote) {
193
+ if (sql[i + 1] === quote) {
194
+ i++;
195
+ continue;
196
+ }
197
+ quote = null;
198
+ }
199
+ continue;
200
+ }
201
+ if (ch === "'" || ch === '"' || ch === "`") {
202
+ quote = ch;
203
+ continue;
204
+ }
205
+ if (ch === "[") {
206
+ quote = "]";
207
+ continue;
208
+ }
209
+ if (ch === "(") {
210
+ depth++;
211
+ continue;
212
+ }
213
+ if (ch === ")") {
214
+ depth = Math.max(0, depth - 1);
215
+ continue;
216
+ }
217
+ if (depth !== 0 || !/[A-Za-z_]/.test(ch))
218
+ continue;
219
+ let end = i + 1;
220
+ while (end < sql.length && /[A-Za-z0-9_$]/.test(sql[end]))
221
+ end++;
222
+ if (words.includes(sql.slice(i, end).toUpperCase()))
223
+ return i;
224
+ i = end - 1;
225
+ }
226
+ return -1;
227
+ }
228
+ function parseDefault(definition) {
229
+ const at = topLevelIndex(definition, ["DEFAULT"]);
230
+ if (at === -1)
231
+ return null;
232
+ let i = at + "DEFAULT".length;
233
+ while (i < definition.length && /\s/.test(definition[i]))
234
+ i++;
235
+ if (i >= definition.length)
236
+ return null;
237
+ const start = i;
238
+ const first = definition[i];
239
+ if (first === "'" || first === '"' || first === "`") {
240
+ i++;
241
+ while (i < definition.length) {
242
+ if (definition[i] === first) {
243
+ if (definition[i + 1] === first) {
244
+ i += 2;
245
+ continue;
246
+ }
247
+ i++;
248
+ break;
249
+ }
250
+ i++;
251
+ }
252
+ return normalizeSql(definition.slice(start, i));
253
+ }
254
+ if (first === "(") {
255
+ let depth = 0;
256
+ while (i < definition.length) {
257
+ const ch = definition[i];
258
+ if (ch === "(")
259
+ depth++;
260
+ else if (ch === ")") {
261
+ depth--;
262
+ if (depth === 0) {
263
+ i++;
264
+ break;
265
+ }
266
+ }
267
+ i++;
268
+ }
269
+ return normalizeSql(definition.slice(start, i));
270
+ }
271
+ while (i < definition.length && !/[\s,)]/.test(definition[i]))
272
+ i++;
273
+ return normalizeSql(definition.slice(start, i));
274
+ }
275
+ function normalizeSql(value) {
276
+ return value.trim().replace(/\s+/g, " ");
277
+ }
278
+ function parseColumnShape(definition) {
279
+ const typeEnd = topLevelIndex(definition, CONSTRAINT_KEYWORDS);
280
+ return {
281
+ type: normalizeSql(typeEnd === -1 ? definition : definition.slice(0, typeEnd)).toUpperCase(),
282
+ notNull: topLevelIndex(definition, ["NOT"]) !== -1,
283
+ default: parseDefault(definition),
284
+ };
285
+ }
286
+ function quoteIdent(name) {
287
+ return `"${name.replaceAll('"', '""')}"`;
288
+ }
289
+ function columnState(database, effect) {
290
+ const rows = database.prepare(`PRAGMA table_info(${quoteIdent(effect.table)})`).all();
291
+ const row = rows.find((candidate) => candidate.name.toLowerCase() === effect.column.toLowerCase());
292
+ if (!row)
293
+ return "missing";
294
+ const expected = parseColumnShape(effect.definition);
295
+ const compatible = normalizeSql(row.type).toUpperCase() === expected.type &&
296
+ (row.notnull === 1) === expected.notNull &&
297
+ normalizeSql(row.dflt_value ?? "") === normalizeSql(expected.default ?? "");
298
+ return compatible ? "compatible" : "incompatible";
299
+ }
300
+ function objectExists(database, type, name) {
301
+ const row = database
302
+ .prepare("SELECT 1 AS ok FROM sqlite_master WHERE type = ? AND name = ? COLLATE NOCASE")
303
+ .get(type, name);
304
+ return row !== undefined;
305
+ }
306
+ function applyAdditiveMigration(database, effects) {
307
+ let skipped = 0;
308
+ let executed = 0;
309
+ for (const effect of effects) {
310
+ if (effect.kind === "column") {
311
+ const state = columnState(database, effect);
312
+ if (state === "compatible") {
313
+ skipped++;
314
+ continue;
315
+ }
316
+ if (state === "incompatible") {
317
+ throw new Error(`column ${effect.table}.${effect.column} exists with an incompatible definition`);
318
+ }
319
+ database.exec(effect.sql);
320
+ executed++;
321
+ continue;
322
+ }
323
+ database.exec(effect.sql);
324
+ executed++;
325
+ }
326
+ for (const effect of effects) {
327
+ if (effect.kind === "column") {
328
+ const state = columnState(database, effect);
329
+ if (state === "missing") {
330
+ throw new Error(`migration did not create column ${effect.table}.${effect.column}`);
331
+ }
332
+ if (state === "incompatible") {
333
+ throw new Error(`column ${effect.table}.${effect.column} exists with an incompatible definition`);
334
+ }
335
+ continue;
336
+ }
337
+ if (!objectExists(database, effect.kind, effect.name)) {
338
+ throw new Error(`migration did not create ${effect.kind} ${effect.name}`);
339
+ }
340
+ }
341
+ return { skipped, executed };
342
+ }
343
+ function appliedVersions(database) {
344
+ database.exec(`
35
345
  CREATE TABLE IF NOT EXISTS schema_migrations (
36
346
  version INTEGER PRIMARY KEY,
37
347
  applied_at INTEGER NOT NULL
38
348
  )
39
349
  `);
40
- const row = db.prepare("SELECT MAX(version) AS v FROM schema_migrations").get();
41
- return row?.v ?? 0;
350
+ const rows = database.prepare("SELECT version FROM schema_migrations").all();
351
+ return new Set(rows.map((row) => row.version));
42
352
  }
43
- export function migrate() {
44
- const last = appliedVersion();
45
- const all = loadMigrations();
46
- const pending = all.filter((m) => m.version > last);
47
- if (pending.length === 0) {
48
- log.debug("migrations up to date", { applied: last });
49
- return;
353
+ export function unrecordedBelowMax(applied, migrations) {
354
+ if (applied.size === 0)
355
+ return [];
356
+ const max = Math.max(...applied);
357
+ const missing = new Set();
358
+ for (const migration of migrations) {
359
+ if (migration.version < max && !applied.has(migration.version))
360
+ missing.add(migration.version);
361
+ }
362
+ return [...missing].sort((a, b) => a - b);
363
+ }
364
+ function migrateOne(database, migration) {
365
+ const started = Date.now();
366
+ try {
367
+ database.exec("BEGIN");
368
+ let skipped = 0;
369
+ let executed = 0;
370
+ if (migration.effects !== null) {
371
+ const result = applyAdditiveMigration(database, migration.effects);
372
+ skipped = result.skipped;
373
+ executed = result.executed;
374
+ }
375
+ else {
376
+ database.exec(migration.sql);
377
+ executed = 1;
378
+ }
379
+ database.prepare("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)").run(migration.version, Math.floor(Date.now() / 1000));
380
+ database.exec("COMMIT");
381
+ log.info("migration applied", {
382
+ version: migration.version,
383
+ file: migration.filename,
384
+ ms: Date.now() - started,
385
+ skippedColumns: skipped,
386
+ executedStatements: executed,
387
+ adopted: skipped > 0 && executed === 0,
388
+ });
50
389
  }
51
- log.info("applying migrations", { from: last, to: pending[pending.length - 1].version, count: pending.length });
52
- for (const m of pending) {
53
- const t0 = Date.now();
390
+ catch (e) {
54
391
  try {
55
- db.exec("BEGIN");
56
- db.exec(m.sql);
57
- db.prepare("INSERT INTO schema_migrations (version, applied_at) VALUES (?, ?)").run(m.version, Math.floor(Date.now() / 1000));
58
- db.exec("COMMIT");
59
- log.info("migration applied", { version: m.version, file: m.filename, ms: Date.now() - t0 });
392
+ database.exec("ROLLBACK");
60
393
  }
61
- catch (e) {
62
- db.exec("ROLLBACK");
63
- log.error("migration failed, aborting boot", { version: m.version, file: m.filename, err: e instanceof Error ? e.message : String(e) });
64
- throw new Error(`migration ${m.version} (${m.filename}) failed: ${e instanceof Error ? e.message : String(e)}`);
394
+ catch {
395
+ // BEGIN may have failed before a transaction was active.
65
396
  }
397
+ log.error("migration failed, aborting boot", {
398
+ version: migration.version,
399
+ file: migration.filename,
400
+ err: e instanceof Error ? e.message : String(e),
401
+ });
402
+ throw new Error(`migration ${migration.version} (${migration.filename}) failed: ${e instanceof Error ? e.message : String(e)}`);
66
403
  }
67
404
  }
405
+ export function runMigrations(database, migrations = loadMigrations()) {
406
+ const applied = appliedVersions(database);
407
+ const last = applied.size === 0 ? 0 : Math.max(...applied);
408
+ const pending = migrations
409
+ .filter((migration) => !applied.has(migration.version))
410
+ .sort((a, b) => a.version - b.version)
411
+ .map((migration) => ({ ...migration, effects: parseAdditive(migration.sql) }));
412
+ if (pending.length === 0) {
413
+ log.debug("migrations up to date", { applied: last });
414
+ return;
415
+ }
416
+ const missing = unrecordedBelowMax(applied, migrations);
417
+ if (missing.length > 0) {
418
+ const filenames = new Map(migrations.map((migration) => [migration.version, migration.filename]));
419
+ log.warn("schema_migrations has unrecorded versions below the applied max", {
420
+ max: last,
421
+ missing: missing.map((version) => ({ version, filename: filenames.get(version) })),
422
+ });
423
+ }
424
+ const pendingLast = pending[pending.length - 1].version;
425
+ log.info("applying migrations", { from: last, to: pendingLast, count: pending.length });
426
+ for (const migration of pending)
427
+ migrateOne(database, migration);
428
+ }
429
+ export function migrate() {
430
+ runMigrations(db);
431
+ }
68
432
  export function migrationStatus() {
69
- const last = appliedVersion();
70
433
  const all = loadMigrations();
71
- return { applied: last, pending: all.filter((m) => m.version > last).length };
434
+ const applied = appliedVersions(db);
435
+ const appliedCount = all.filter((migration) => applied.has(migration.version)).length;
436
+ return { appliedCount, pendingCount: all.length - appliedCount };
72
437
  }
73
438
  //# sourceMappingURL=migrate.js.map