@stardeck-customer-apps/compose 0.14.1 → 0.16.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.
package/dist/index.js CHANGED
@@ -1149,16 +1149,16 @@ var require_range = __commonJS({
1149
1149
  };
1150
1150
  var replaceTilde = (comp, options) => {
1151
1151
  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
1152
- const z10 = options.includePrerelease ? "-0" : "";
1152
+ const z11 = options.includePrerelease ? "-0" : "";
1153
1153
  return comp.replace(r, (_, M, m, p, pr) => {
1154
1154
  debug("tilde", comp, _, M, m, p, pr);
1155
1155
  let ret;
1156
1156
  if (isX(M)) {
1157
1157
  ret = "";
1158
1158
  } else if (isX(m)) {
1159
- ret = `>=${M}.0.0${z10} <${+M + 1}.0.0-0`;
1159
+ ret = `>=${M}.0.0${z11} <${+M + 1}.0.0-0`;
1160
1160
  } else if (isX(p)) {
1161
- ret = `>=${M}.${m}.0${z10} <${M}.${+m + 1}.0-0`;
1161
+ ret = `>=${M}.${m}.0${z11} <${M}.${+m + 1}.0-0`;
1162
1162
  } else if (pr) {
1163
1163
  debug("replaceTilde pr", pr);
1164
1164
  ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;
@@ -1175,19 +1175,19 @@ var require_range = __commonJS({
1175
1175
  var replaceCaret = (comp, options) => {
1176
1176
  debug("caret", comp, options);
1177
1177
  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
1178
- const z10 = options.includePrerelease ? "-0" : "";
1178
+ const z11 = options.includePrerelease ? "-0" : "";
1179
1179
  return comp.replace(r, (_, M, m, p, pr) => {
1180
1180
  debug("caret", comp, _, M, m, p, pr);
1181
1181
  let ret;
1182
1182
  if (isX(M)) {
1183
1183
  ret = "";
1184
1184
  } else if (isX(m)) {
1185
- ret = `>=${M}.0.0${z10} <${+M + 1}.0.0-0`;
1185
+ ret = `>=${M}.0.0${z11} <${+M + 1}.0.0-0`;
1186
1186
  } else if (isX(p)) {
1187
1187
  if (M === "0") {
1188
- ret = `>=${M}.${m}.0${z10} <${M}.${+m + 1}.0-0`;
1188
+ ret = `>=${M}.${m}.0${z11} <${M}.${+m + 1}.0-0`;
1189
1189
  } else {
1190
- ret = `>=${M}.${m}.0${z10} <${+M + 1}.0.0-0`;
1190
+ ret = `>=${M}.${m}.0${z11} <${+M + 1}.0.0-0`;
1191
1191
  }
1192
1192
  } else if (pr) {
1193
1193
  debug("replaceCaret pr", pr);
@@ -2396,7 +2396,18 @@ var modulePermissionClaimSchema = import_zod2.z.object({
2396
2396
  * External Viewer never holds one. An organization that wants different access duplicates the
2397
2397
  * standard role and edits the copy.
2398
2398
  */
2399
- roles: import_zod2.z.array(import_zod2.z.enum(MODULE_PERMISSION_DEFAULT_ROLES)).optional()
2399
+ roles: import_zod2.z.array(import_zod2.z.enum(MODULE_PERMISSION_DEFAULT_ROLES)).optional(),
2400
+ /**
2401
+ * Keys this one takes over (a retired or renamed key). On the update that stops declaring
2402
+ * them, every custom role still holding one is granted this key before the old one goes,
2403
+ * so nobody loses access in the change. Standard roles follow `roles` as always.
2404
+ */
2405
+ replaces: import_zod2.z.array(
2406
+ import_zod2.z.string().regex(
2407
+ /^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9-]*$/,
2408
+ "must be a lowercase resource:action key"
2409
+ )
2410
+ ).max(20).optional()
2400
2411
  }).strict();
2401
2412
  var seedBundleSchema = import_zod2.z.object({
2402
2413
  table: tableNameSchema,
@@ -4036,6 +4047,24 @@ function analyzeClientSafeEntryImports(sourceText, fileName) {
4036
4047
  return analyzeClientSafeEntryImportsWithTs(import_typescript3.default, sourceText, fileName);
4037
4048
  }
4038
4049
 
4050
+ // ../../packages/lib/src/shared/ownership-record.ts
4051
+ var import_zod7 = require("zod");
4052
+ var OWNERSHIP_RECORD_VERSION = 1;
4053
+ var moduleList = import_zod7.z.array(import_zod7.z.string().refine(isValidModuleName, "not a Module name"));
4054
+ var ownershipRecordSchema = import_zod7.z.object({
4055
+ version: import_zod7.z.literal(OWNERSHIP_RECORD_VERSION),
4056
+ /** False once the app stopped all Stardeck updates: then every file is the app's. */
4057
+ stardeckUpdates: import_zod7.z.boolean(),
4058
+ /** projects.ejected_modules: updates stopped for these Modules, so their folders are the app's. */
4059
+ updatesStoppedModules: moduleList,
4060
+ /** projects.ui_ejected_modules: Customize UI, so their screens are the app's. */
4061
+ customizedUiModules: moduleList,
4062
+ /** projects.external_modules: installed from another app, so the app owns the copy. */
4063
+ externalModules: moduleList,
4064
+ /** projects.removed_modules names: uninstalled on purpose. */
4065
+ uninstalledModules: moduleList
4066
+ });
4067
+
4039
4068
  // ../../packages/lib/src/shared/platform-owned-paths.ts
4040
4069
  var APP_WEB_PREFIX = "apps/web/";
4041
4070
  var BLUEPRINT_LINT_MARKER = `${APP_WEB_PREFIX}eslint-rules/module-boundaries.mjs`;
@@ -5990,14 +6019,14 @@ function rejectPseudoModuleEntries(entries, parentDir, label) {
5990
6019
  }
5991
6020
 
5992
6021
  // ../../packages/lib/src/shared/module-composition.ts
5993
- var import_zod7 = require("zod");
5994
- var creationSourceBlankSchema = import_zod7.z.object({
5995
- type: import_zod7.z.literal("blank")
6022
+ var import_zod8 = require("zod");
6023
+ var creationSourceBlankSchema = import_zod8.z.object({
6024
+ type: import_zod8.z.literal("blank")
5996
6025
  });
5997
- var creationSourceBlueprintSchema = import_zod7.z.object({
5998
- type: import_zod7.z.literal("blueprint"),
6026
+ var creationSourceBlueprintSchema = import_zod8.z.object({
6027
+ type: import_zod8.z.literal("blueprint"),
5999
6028
  /** Internal template/fork project id — keep template naming in identifiers. */
6000
- blueprintProjectId: import_zod7.z.string().uuid(),
6029
+ blueprintProjectId: import_zod8.z.string().uuid(),
6001
6030
  /**
6002
6031
  * `null`/absent means every feature Module: the platform stores that as the
6003
6032
  * explicit list of feature Modules in the published Blueprint version the fork
@@ -6005,192 +6034,197 @@ var creationSourceBlueprintSchema = import_zod7.z.object({
6005
6034
  * a custom app: no feature Module, Library Modules only (`resolvePlatformEnv`
6006
6035
  * emits it as a set value naming no Module).
6007
6036
  */
6008
- enabledModules: import_zod7.z.array(moduleNameSchema).max(100).nullable().optional()
6037
+ enabledModules: import_zod8.z.array(moduleNameSchema).max(100).nullable().optional(),
6038
+ /**
6039
+ * The kind of business (a preset id the published version defines). Its Modules are built
6040
+ * and `enabledModules` adds extras on top; for the general kind `enabledModules` is the pick.
6041
+ */
6042
+ businessKind: import_zod8.z.string().regex(/^[a-z][a-z0-9-]{0,39}$/).optional()
6009
6043
  });
6010
- var creationSourceSchema = import_zod7.z.discriminatedUnion("type", [
6044
+ var creationSourceSchema = import_zod8.z.discriminatedUnion("type", [
6011
6045
  creationSourceBlankSchema,
6012
6046
  creationSourceBlueprintSchema
6013
6047
  ]);
6014
- var moduleInstallHandoffSchema = import_zod7.z.object({
6015
- moduleName: import_zod7.z.string().min(1),
6016
- homeProjectId: import_zod7.z.string().uuid(),
6017
- installedVersion: import_zod7.z.string().min(1),
6018
- baselineSha: import_zod7.z.string().min(1),
6019
- mounts: import_zod7.z.array(
6020
- import_zod7.z.object({
6021
- group: import_zod7.z.string(),
6022
- segment: import_zod7.z.string()
6048
+ var moduleInstallHandoffSchema = import_zod8.z.object({
6049
+ moduleName: import_zod8.z.string().min(1),
6050
+ homeProjectId: import_zod8.z.string().uuid(),
6051
+ installedVersion: import_zod8.z.string().min(1),
6052
+ baselineSha: import_zod8.z.string().min(1),
6053
+ mounts: import_zod8.z.array(
6054
+ import_zod8.z.object({
6055
+ group: import_zod8.z.string(),
6056
+ segment: import_zod8.z.string()
6023
6057
  })
6024
6058
  ),
6025
- integration: import_zod7.z.array(import_zod7.z.string()),
6026
- workflows: import_zod7.z.array(import_zod7.z.string()),
6027
- prunedEnhancements: import_zod7.z.array(import_zod7.z.string()),
6028
- restoredEnhancements: import_zod7.z.array(import_zod7.z.string()).optional(),
6029
- permissions: import_zod7.z.array(
6030
- import_zod7.z.object({
6031
- key: import_zod7.z.string().min(1),
6032
- description: import_zod7.z.string().min(1)
6059
+ integration: import_zod8.z.array(import_zod8.z.string()),
6060
+ workflows: import_zod8.z.array(import_zod8.z.string()),
6061
+ prunedEnhancements: import_zod8.z.array(import_zod8.z.string()),
6062
+ restoredEnhancements: import_zod8.z.array(import_zod8.z.string()).optional(),
6063
+ permissions: import_zod8.z.array(
6064
+ import_zod8.z.object({
6065
+ key: import_zod8.z.string().min(1),
6066
+ description: import_zod8.z.string().min(1)
6033
6067
  })
6034
6068
  ).optional()
6035
6069
  });
6036
6070
 
6037
6071
  // ../../packages/lib/src/shared/schema-ops.ts
6038
- var import_zod8 = require("zod");
6039
- var columnSpecSchema = import_zod8.z.object({
6040
- name: import_zod8.z.string().min(1).max(63),
6041
- pgType: import_zod8.z.string().min(1),
6042
- nullable: import_zod8.z.boolean(),
6072
+ var import_zod9 = require("zod");
6073
+ var columnSpecSchema = import_zod9.z.object({
6074
+ name: import_zod9.z.string().min(1).max(63),
6075
+ pgType: import_zod9.z.string().min(1),
6076
+ nullable: import_zod9.z.boolean(),
6043
6077
  /**
6044
6078
  * A SQL expression used as the column default, as a raw string (e.g. `'t'`,
6045
6079
  * `0`, `now()`, `gen_random_uuid()`). `null` or omitted means no default.
6046
6080
  * NOT a JS literal — must already be a valid SQL expression.
6047
6081
  */
6048
- default: import_zod8.z.string().nullable().optional(),
6049
- fieldType: import_zod8.z.string().optional(),
6050
- fieldConfig: import_zod8.z.record(import_zod8.z.string(), import_zod8.z.unknown()).optional()
6082
+ default: import_zod9.z.string().nullable().optional(),
6083
+ fieldType: import_zod9.z.string().optional(),
6084
+ fieldConfig: import_zod9.z.record(import_zod9.z.string(), import_zod9.z.unknown()).optional()
6051
6085
  });
6052
- var referentialActionSchema = import_zod8.z.enum([
6086
+ var referentialActionSchema = import_zod9.z.enum([
6053
6087
  "cascade",
6054
6088
  "set null",
6055
6089
  "set default",
6056
6090
  "restrict",
6057
6091
  "no action"
6058
6092
  ]);
6059
- var schemaOpSchema = import_zod8.z.discriminatedUnion("type", [
6093
+ var schemaOpSchema = import_zod9.z.discriminatedUnion("type", [
6060
6094
  // Tables
6061
- import_zod8.z.object({
6062
- type: import_zod8.z.literal("createTable"),
6063
- table: import_zod8.z.string().min(1).max(63),
6064
- columns: import_zod8.z.array(columnSpecSchema).min(1),
6065
- primaryKey: import_zod8.z.array(import_zod8.z.string()).optional(),
6066
- ifNotExists: import_zod8.z.boolean().optional()
6095
+ import_zod9.z.object({
6096
+ type: import_zod9.z.literal("createTable"),
6097
+ table: import_zod9.z.string().min(1).max(63),
6098
+ columns: import_zod9.z.array(columnSpecSchema).min(1),
6099
+ primaryKey: import_zod9.z.array(import_zod9.z.string()).optional(),
6100
+ ifNotExists: import_zod9.z.boolean().optional()
6067
6101
  }),
6068
- import_zod8.z.object({
6069
- type: import_zod8.z.literal("dropTable"),
6070
- table: import_zod8.z.string().min(1).max(63),
6071
- cascade: import_zod8.z.boolean().optional(),
6072
- ifExists: import_zod8.z.boolean().optional()
6102
+ import_zod9.z.object({
6103
+ type: import_zod9.z.literal("dropTable"),
6104
+ table: import_zod9.z.string().min(1).max(63),
6105
+ cascade: import_zod9.z.boolean().optional(),
6106
+ ifExists: import_zod9.z.boolean().optional()
6073
6107
  }),
6074
- import_zod8.z.object({
6075
- type: import_zod8.z.literal("renameTable"),
6076
- from: import_zod8.z.string().min(1).max(63),
6077
- to: import_zod8.z.string().min(1).max(63)
6108
+ import_zod9.z.object({
6109
+ type: import_zod9.z.literal("renameTable"),
6110
+ from: import_zod9.z.string().min(1).max(63),
6111
+ to: import_zod9.z.string().min(1).max(63)
6078
6112
  }),
6079
6113
  // Columns
6080
- import_zod8.z.object({
6081
- type: import_zod8.z.literal("addColumn"),
6082
- table: import_zod8.z.string().min(1).max(63),
6114
+ import_zod9.z.object({
6115
+ type: import_zod9.z.literal("addColumn"),
6116
+ table: import_zod9.z.string().min(1).max(63),
6083
6117
  column: columnSpecSchema,
6084
- ifNotExists: import_zod8.z.boolean().optional()
6118
+ ifNotExists: import_zod9.z.boolean().optional()
6085
6119
  }),
6086
- import_zod8.z.object({
6087
- type: import_zod8.z.literal("dropColumn"),
6088
- table: import_zod8.z.string().min(1).max(63),
6089
- column: import_zod8.z.string().min(1).max(63),
6090
- cascade: import_zod8.z.boolean().optional(),
6091
- ifExists: import_zod8.z.boolean().optional()
6120
+ import_zod9.z.object({
6121
+ type: import_zod9.z.literal("dropColumn"),
6122
+ table: import_zod9.z.string().min(1).max(63),
6123
+ column: import_zod9.z.string().min(1).max(63),
6124
+ cascade: import_zod9.z.boolean().optional(),
6125
+ ifExists: import_zod9.z.boolean().optional()
6092
6126
  }),
6093
- import_zod8.z.object({
6094
- type: import_zod8.z.literal("renameColumn"),
6095
- table: import_zod8.z.string().min(1).max(63),
6096
- from: import_zod8.z.string().min(1).max(63),
6097
- to: import_zod8.z.string().min(1).max(63)
6127
+ import_zod9.z.object({
6128
+ type: import_zod9.z.literal("renameColumn"),
6129
+ table: import_zod9.z.string().min(1).max(63),
6130
+ from: import_zod9.z.string().min(1).max(63),
6131
+ to: import_zod9.z.string().min(1).max(63)
6098
6132
  }),
6099
- import_zod8.z.object({
6100
- type: import_zod8.z.literal("alterColumnType"),
6101
- table: import_zod8.z.string().min(1).max(63),
6102
- column: import_zod8.z.string().min(1).max(63),
6103
- newType: import_zod8.z.string().min(1),
6133
+ import_zod9.z.object({
6134
+ type: import_zod9.z.literal("alterColumnType"),
6135
+ table: import_zod9.z.string().min(1).max(63),
6136
+ column: import_zod9.z.string().min(1).max(63),
6137
+ newType: import_zod9.z.string().min(1),
6104
6138
  /** Optional USING expression for potentially-lossy casts */
6105
- using: import_zod8.z.string().optional()
6139
+ using: import_zod9.z.string().optional()
6106
6140
  }),
6107
- import_zod8.z.object({
6108
- type: import_zod8.z.literal("alterColumnNullable"),
6109
- table: import_zod8.z.string().min(1).max(63),
6110
- column: import_zod8.z.string().min(1).max(63),
6111
- nullable: import_zod8.z.boolean()
6141
+ import_zod9.z.object({
6142
+ type: import_zod9.z.literal("alterColumnNullable"),
6143
+ table: import_zod9.z.string().min(1).max(63),
6144
+ column: import_zod9.z.string().min(1).max(63),
6145
+ nullable: import_zod9.z.boolean()
6112
6146
  }),
6113
- import_zod8.z.object({
6114
- type: import_zod8.z.literal("alterColumnDefault"),
6115
- table: import_zod8.z.string().min(1).max(63),
6116
- column: import_zod8.z.string().min(1).max(63),
6147
+ import_zod9.z.object({
6148
+ type: import_zod9.z.literal("alterColumnDefault"),
6149
+ table: import_zod9.z.string().min(1).max(63),
6150
+ column: import_zod9.z.string().min(1).max(63),
6117
6151
  /** null means drop the default; otherwise a SQL expression string. */
6118
- default: import_zod8.z.string().nullable()
6152
+ default: import_zod9.z.string().nullable()
6119
6153
  }),
6120
6154
  // Indexes
6121
- import_zod8.z.object({
6122
- type: import_zod8.z.literal("addIndex"),
6123
- table: import_zod8.z.string().min(1).max(63),
6124
- name: import_zod8.z.string().min(1).max(63),
6125
- columns: import_zod8.z.array(import_zod8.z.string().min(1)).min(1),
6126
- unique: import_zod8.z.boolean().optional(),
6155
+ import_zod9.z.object({
6156
+ type: import_zod9.z.literal("addIndex"),
6157
+ table: import_zod9.z.string().min(1).max(63),
6158
+ name: import_zod9.z.string().min(1).max(63),
6159
+ columns: import_zod9.z.array(import_zod9.z.string().min(1)).min(1),
6160
+ unique: import_zod9.z.boolean().optional(),
6127
6161
  /** Partial-index WHERE clause, as a raw SQL expression */
6128
- where: import_zod8.z.string().optional(),
6129
- ifNotExists: import_zod8.z.boolean().optional()
6162
+ where: import_zod9.z.string().optional(),
6163
+ ifNotExists: import_zod9.z.boolean().optional()
6130
6164
  }),
6131
- import_zod8.z.object({
6132
- type: import_zod8.z.literal("dropIndex"),
6133
- name: import_zod8.z.string().min(1).max(63),
6134
- cascade: import_zod8.z.boolean().optional(),
6135
- ifExists: import_zod8.z.boolean().optional()
6165
+ import_zod9.z.object({
6166
+ type: import_zod9.z.literal("dropIndex"),
6167
+ name: import_zod9.z.string().min(1).max(63),
6168
+ cascade: import_zod9.z.boolean().optional(),
6169
+ ifExists: import_zod9.z.boolean().optional()
6136
6170
  }),
6137
6171
  // Constraints
6138
- import_zod8.z.object({
6139
- type: import_zod8.z.literal("addForeignKey"),
6140
- table: import_zod8.z.string().min(1).max(63),
6141
- name: import_zod8.z.string().min(1).max(63),
6142
- columns: import_zod8.z.array(import_zod8.z.string().min(1)).min(1),
6143
- refTable: import_zod8.z.string().min(1).max(63),
6144
- refColumns: import_zod8.z.array(import_zod8.z.string().min(1)).min(1),
6172
+ import_zod9.z.object({
6173
+ type: import_zod9.z.literal("addForeignKey"),
6174
+ table: import_zod9.z.string().min(1).max(63),
6175
+ name: import_zod9.z.string().min(1).max(63),
6176
+ columns: import_zod9.z.array(import_zod9.z.string().min(1)).min(1),
6177
+ refTable: import_zod9.z.string().min(1).max(63),
6178
+ refColumns: import_zod9.z.array(import_zod9.z.string().min(1)).min(1),
6145
6179
  onDelete: referentialActionSchema.optional(),
6146
6180
  onUpdate: referentialActionSchema.optional()
6147
6181
  }),
6148
- import_zod8.z.object({
6149
- type: import_zod8.z.literal("addUniqueConstraint"),
6150
- table: import_zod8.z.string().min(1).max(63),
6151
- name: import_zod8.z.string().min(1).max(63),
6152
- columns: import_zod8.z.array(import_zod8.z.string().min(1)).min(1)
6182
+ import_zod9.z.object({
6183
+ type: import_zod9.z.literal("addUniqueConstraint"),
6184
+ table: import_zod9.z.string().min(1).max(63),
6185
+ name: import_zod9.z.string().min(1).max(63),
6186
+ columns: import_zod9.z.array(import_zod9.z.string().min(1)).min(1)
6153
6187
  }),
6154
- import_zod8.z.object({
6155
- type: import_zod8.z.literal("addCheckConstraint"),
6156
- table: import_zod8.z.string().min(1).max(63),
6157
- name: import_zod8.z.string().min(1).max(63),
6158
- expression: import_zod8.z.string().min(1)
6188
+ import_zod9.z.object({
6189
+ type: import_zod9.z.literal("addCheckConstraint"),
6190
+ table: import_zod9.z.string().min(1).max(63),
6191
+ name: import_zod9.z.string().min(1).max(63),
6192
+ expression: import_zod9.z.string().min(1)
6159
6193
  }),
6160
- import_zod8.z.object({
6161
- type: import_zod8.z.literal("dropConstraint"),
6162
- table: import_zod8.z.string().min(1).max(63),
6163
- name: import_zod8.z.string().min(1).max(63),
6164
- cascade: import_zod8.z.boolean().optional(),
6165
- ifExists: import_zod8.z.boolean().optional()
6194
+ import_zod9.z.object({
6195
+ type: import_zod9.z.literal("dropConstraint"),
6196
+ table: import_zod9.z.string().min(1).max(63),
6197
+ name: import_zod9.z.string().min(1).max(63),
6198
+ cascade: import_zod9.z.boolean().optional(),
6199
+ ifExists: import_zod9.z.boolean().optional()
6166
6200
  }),
6167
6201
  // Enum types
6168
- import_zod8.z.object({
6169
- type: import_zod8.z.literal("createEnum"),
6170
- name: import_zod8.z.string().min(1).max(63),
6171
- values: import_zod8.z.array(import_zod8.z.string().min(1)).min(1)
6202
+ import_zod9.z.object({
6203
+ type: import_zod9.z.literal("createEnum"),
6204
+ name: import_zod9.z.string().min(1).max(63),
6205
+ values: import_zod9.z.array(import_zod9.z.string().min(1)).min(1)
6172
6206
  }),
6173
- import_zod8.z.object({
6174
- type: import_zod8.z.literal("alterEnumAddValue"),
6175
- name: import_zod8.z.string().min(1).max(63),
6176
- value: import_zod8.z.string().min(1),
6207
+ import_zod9.z.object({
6208
+ type: import_zod9.z.literal("alterEnumAddValue"),
6209
+ name: import_zod9.z.string().min(1).max(63),
6210
+ value: import_zod9.z.string().min(1),
6177
6211
  /** Position the new value before an existing one (mutually exclusive with `after`) */
6178
- before: import_zod8.z.string().optional(),
6212
+ before: import_zod9.z.string().optional(),
6179
6213
  /** Position the new value after an existing one (mutually exclusive with `before`) */
6180
- after: import_zod8.z.string().optional(),
6181
- ifNotExists: import_zod8.z.boolean().optional()
6214
+ after: import_zod9.z.string().optional(),
6215
+ ifNotExists: import_zod9.z.boolean().optional()
6182
6216
  }),
6183
- import_zod8.z.object({
6184
- type: import_zod8.z.literal("dropEnum"),
6185
- name: import_zod8.z.string().min(1).max(63),
6186
- cascade: import_zod8.z.boolean().optional(),
6187
- ifExists: import_zod8.z.boolean().optional()
6217
+ import_zod9.z.object({
6218
+ type: import_zod9.z.literal("dropEnum"),
6219
+ name: import_zod9.z.string().min(1).max(63),
6220
+ cascade: import_zod9.z.boolean().optional(),
6221
+ ifExists: import_zod9.z.boolean().optional()
6188
6222
  }),
6189
6223
  // Extensions
6190
- import_zod8.z.object({
6191
- type: import_zod8.z.literal("createExtension"),
6192
- name: import_zod8.z.string().min(1),
6193
- ifNotExists: import_zod8.z.boolean().optional()
6224
+ import_zod9.z.object({
6225
+ type: import_zod9.z.literal("createExtension"),
6226
+ name: import_zod9.z.string().min(1),
6227
+ ifNotExists: import_zod9.z.boolean().optional()
6194
6228
  }),
6195
6229
  // Data operations
6196
6230
  /**
@@ -6198,26 +6232,26 @@ var schemaOpSchema = import_zod8.z.discriminatedUnion("type", [
6198
6232
  * destructive — requires explicit confirm to replay on prod. The
6199
6233
  * `description` is what the agent/user sees at confirm time.
6200
6234
  */
6201
- import_zod8.z.object({
6202
- type: import_zod8.z.literal("backfill"),
6203
- description: import_zod8.z.string().min(1),
6204
- sql: import_zod8.z.string().min(1)
6235
+ import_zod9.z.object({
6236
+ type: import_zod9.z.literal("backfill"),
6237
+ description: import_zod9.z.string().min(1),
6238
+ sql: import_zod9.z.string().min(1)
6205
6239
  }),
6206
6240
  /**
6207
6241
  * Escape hatch for DDL the structured ops can't express. `destructive`
6208
6242
  * forces classification — use false only for genuinely additive-only SQL
6209
6243
  * (e.g. CREATE EXTENSION variants the structured op doesn't cover).
6210
6244
  */
6211
- import_zod8.z.object({
6212
- type: import_zod8.z.literal("rawSql"),
6213
- description: import_zod8.z.string().min(1),
6214
- sql: import_zod8.z.string().min(1),
6215
- destructive: import_zod8.z.boolean()
6245
+ import_zod9.z.object({
6246
+ type: import_zod9.z.literal("rawSql"),
6247
+ description: import_zod9.z.string().min(1),
6248
+ sql: import_zod9.z.string().min(1),
6249
+ destructive: import_zod9.z.boolean()
6216
6250
  })
6217
6251
  ]);
6218
6252
 
6219
6253
  // ../../packages/lib/src/server/module-rail/ops.ts
6220
- var import_zod9 = require("zod");
6254
+ var import_zod10 = require("zod");
6221
6255
 
6222
6256
  // ../../packages/lib/src/server/module-rail/reconcile.ts
6223
6257
  var SANDBOX_BATCH_SIZE = 200;