@tailor-platform/sdk 1.48.0 → 1.49.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 (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/{application-DUENhx4Y.mjs → application-CZMzt9jL.mjs} +3 -2
  3. package/dist/application-CZMzt9jL.mjs.map +1 -0
  4. package/dist/application-v_E2W-Fz.mjs +4 -0
  5. package/dist/brand-D-d15jx3.mjs.map +1 -1
  6. package/dist/cli/index.mjs +46 -22
  7. package/dist/cli/index.mjs.map +1 -1
  8. package/dist/cli/lib.mjs +4 -4
  9. package/dist/cli/lib.mjs.map +1 -1
  10. package/dist/cli/skills.mjs.map +1 -1
  11. package/dist/client-_kHh0Pip.mjs.map +1 -1
  12. package/dist/configure/index.mjs.map +1 -1
  13. package/dist/crashreport-CvmdFs4i.mjs.map +1 -1
  14. package/dist/enum-constants-C3KSpsYj.mjs.map +1 -1
  15. package/dist/errors-pMPXghkO.mjs.map +1 -1
  16. package/dist/field-DLSIuMTu.mjs.map +1 -1
  17. package/dist/file-utils-DjNi_3U_.mjs.map +1 -1
  18. package/dist/interceptor-DTNS0EtF.mjs.map +1 -1
  19. package/dist/job-M3Avv_SV.mjs.map +1 -1
  20. package/dist/kysely/index.mjs.map +1 -1
  21. package/dist/kysely-type-B8aRz_oC.mjs.map +1 -1
  22. package/dist/logger-DTNAMYGy.mjs.map +1 -1
  23. package/dist/mock-BfL09ULZ.mjs.map +1 -1
  24. package/dist/multiline-e3IpANmS.mjs.map +1 -1
  25. package/dist/package-json-6Px8bDpG.mjs.map +1 -1
  26. package/dist/plugin/index.mjs.map +1 -1
  27. package/dist/repl-editor-jZ493eQI.mjs.map +1 -1
  28. package/dist/{runtime-CNg0w27y.mjs → runtime-oZgK353r.mjs} +91 -10
  29. package/dist/runtime-oZgK353r.mjs.map +1 -0
  30. package/dist/schema-C5QjYEc-.mjs.map +1 -1
  31. package/dist/secret-file-BHpxGyNf.mjs.map +1 -1
  32. package/dist/seed/index.mjs.map +1 -1
  33. package/dist/seed-DjfAn0BC.mjs.map +1 -1
  34. package/dist/service-DCgJxdg1.mjs.map +1 -1
  35. package/dist/telemetry-C1Y56L5E.mjs.map +1 -1
  36. package/dist/types-sir9UPht.mjs.map +1 -1
  37. package/dist/utils/test/index.mjs.map +1 -1
  38. package/dist/vitest/environment.mjs.map +1 -1
  39. package/dist/vitest/index.mjs.map +1 -1
  40. package/dist/vitest/setup.mjs.map +1 -1
  41. package/docs/cli/workspace.md +20 -17
  42. package/package.json +6 -6
  43. package/dist/application-BNkNt47b.mjs +0 -4
  44. package/dist/application-DUENhx4Y.mjs.map +0 -1
  45. package/dist/runtime-CNg0w27y.mjs.map +0 -1
@@ -2,7 +2,7 @@
2
2
  import { t as db } from "./schema-C5QjYEc-.mjs";
3
3
  import { $ as FilterSchema, A as FunctionExecution_Status, B as AuthOAuth2Client_GrantType, C as TailorDBType_Permission_Operator, D as IdPLang, E as PipelineResolver_OperationType, F as AuthConnection_Type, H as AuthSCIMAttribute_Type, I as AuthHookPoint, J as GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus, K as TenantProviderConfig_TenantProviderType, L as AuthIDPConfig_AuthType, M as ExecutorJobStatus, N as ExecutorTargetType, O as IdPPermissionOperator, P as ExecutorTriggerType, Q as Condition_Operator, R as AuthInvokerSchema, S as TailorDBGQLPermission_Permit, T as TailorDBType_PermitAction, U as AuthSCIMAttribute_Uniqueness, V as AuthSCIMAttribute_Mutability, W as AuthSCIMConfig_AuthorizationType, X as Subgraph_ServiceType, Y as ApplicationSchemaUpdateAttemptStatus, Z as ConditionSchema, _ as WorkspacePlatformUserRole, a as fetchMachineUserToken, b as TailorDBGQLPermission_Action, d as initOperatorClient, et as PageDirection, g as OperatorService, h as userAgent, i as fetchAll, k as IdPPermissionPermit, m as resolveStaticWebsiteUrls, o as fetchPaged, p as platformBaseUrl, q as UserProfileProviderConfig_UserProfileProviderType, v as WorkflowExecution_Status, w as TailorDBType_Permission_Permit, x as TailorDBGQLPermission_Operator, y as WorkflowJobExecution_Status, z as AuthOAuth2Client_ClientType } from "./client-_kHh0Pip.mjs";
4
4
  import { a as parseBoolean, i as symbols, n as logger, r as styles, t as CIPromptError } from "./logger-DTNAMYGy.mjs";
5
- import { C as loadConfigPath, O as writePlatformConfig, S as loadAccessToken, T as readPlatformConfig, _ as getDistDir, d as buildResolverOperationHookExpr, f as OAuth2ClientSchema, g as createBundleCache, h as loadFilesWithIgnores, m as stringifyFunction, n as generatePluginFilesIfNeeded, p as TailorDBTypeSchema, r as loadApplication, s as createExecutorService, t as defineApplication, u as buildExecutorArgsExpr, v as hashFile, w as loadWorkspaceId, y as loadConfig } from "./application-DUENhx4Y.mjs";
5
+ import { C as loadConfigPath, O as writePlatformConfig, S as loadAccessToken, T as readPlatformConfig, _ as getDistDir, d as buildResolverOperationHookExpr, f as OAuth2ClientSchema, g as createBundleCache, h as loadFilesWithIgnores, m as stringifyFunction, n as generatePluginFilesIfNeeded, p as TailorDBTypeSchema, r as loadApplication, s as createExecutorService, t as defineApplication, u as buildExecutorArgsExpr, v as hashFile, w as loadWorkspaceId, y as loadConfig } from "./application-CZMzt9jL.mjs";
6
6
  import { t as multiline } from "./multiline-e3IpANmS.mjs";
7
7
  import { t as readPackageJson } from "./package-json-6Px8bDpG.mjs";
8
8
  import { n as isCLIError, t as createCLIError } from "./errors-pMPXghkO.mjs";
@@ -267,6 +267,38 @@ function isVerbose() {
267
267
  */
268
268
  const defineAppCommand = createDefineCommand();
269
269
 
270
+ //#endregion
271
+ //#region src/cli/shared/readonly-guard.ts
272
+ /**
273
+ * Throw a CLIError if the active profile has `readonly: true`.
274
+ *
275
+ * Resolves the active profile in this order:
276
+ * 1. `opts.profile` (CLI flag)
277
+ * 2. `process.env.TAILOR_PLATFORM_PROFILE`
278
+ *
279
+ * If neither is set, no profile is in scope so the call is allowed. This is
280
+ * intentional: `TAILOR_PLATFORM_TOKEN` direct access (CI / machine user) and
281
+ * `--workspace-id` without a profile are out-of-band paths whose authorization
282
+ * is governed by the bearer token itself, not by the local profile flag.
283
+ *
284
+ * If the resolved profile cannot be found in the config, this function returns
285
+ * silently and lets downstream loaders surface the not-found error.
286
+ * @param opts - Options
287
+ * @param opts.profile - Optional explicit profile name from command args
288
+ */
289
+ async function assertWritable(opts) {
290
+ const profileName = opts?.profile || process.env.TAILOR_PLATFORM_PROFILE;
291
+ if (!profileName) return;
292
+ const profile = (await readPlatformConfig()).profiles[profileName];
293
+ if (!profile || profile.readonly !== true) return;
294
+ throw createCLIError({
295
+ code: "PROFILE_READONLY",
296
+ message: `Profile "${profileName}" is read-only.`,
297
+ details: "This profile blocks platform-state mutations (apply, create/update/delete, deploy, etc.). Application-data operations remain available because their permissions are governed by the machine user.",
298
+ suggestion: `Use a different profile, unset TAILOR_PLATFORM_PROFILE, or run 'tailor-sdk profile update ${profileName} --permission write'.`
299
+ });
300
+ }
301
+
270
302
  //#endregion
271
303
  //#region src/cli/commands/api/api-call.ts
272
304
  /**
@@ -568,6 +600,7 @@ Values already present in \`--body\` are never overridden. If a value cannot be
568
600
  })
569
601
  }).strict(),
570
602
  run: async (args) => {
603
+ await assertWritable({ profile: args.profile });
571
604
  const methodName = extractMethodName(args.endpoint);
572
605
  const method = getMethodDescriptor(methodName);
573
606
  const parsedBody = parseBodyAsObject(args.body);
@@ -7523,7 +7556,7 @@ function formatRemoteVerificationResults(results) {
7523
7556
  * @param {ReadonlyMap<string, Record<string, TailorDBType>>} typesByNamespace - Types by namespace
7524
7557
  * @param {LoadedConfig} config - Loaded application config (includes path)
7525
7558
  * @param {boolean} noSchemaCheck - Whether to skip schema diff check
7526
- * @returns {Promise<PendingMigration[]>} List of pending migrations
7559
+ * @returns {Promise<ValidateAndDetectResult>} Pending migrations and namespaces that have migration directories configured
7527
7560
  */
7528
7561
  async function validateAndDetectMigrations(client, workspaceId, typesByNamespace, config, noSchemaCheck) {
7529
7562
  const namespacesWithMigrations = getNamespacesWithMigrations(config, path.dirname(config.path));
@@ -7564,7 +7597,38 @@ async function validateAndDetectMigrations(client, workspaceId, typesByNamespace
7564
7597
  if (withScripts.length > 0) logger.info(` • ${withScripts.length} data migration(s) (requires migration script execution)`, { mode: "plain" });
7565
7598
  }
7566
7599
  }
7567
- return pendingMigrations;
7600
+ return {
7601
+ pendingMigrations,
7602
+ namespacesWithMigrations
7603
+ };
7604
+ }
7605
+ /**
7606
+ * Reconcile the on-remote migration label with the working tree's latest
7607
+ * migration number for each namespace.
7608
+ *
7609
+ * Used after a `--no-schema-check` apply: that flag skips the local/remote
7610
+ * snapshot drift checks, but if it also leaves the label untouched the remote
7611
+ * label can drift past the working tree's latest migration (e.g. when
7612
+ * checking out an older revision and re-deploying). A subsequent run would
7613
+ * then reconstruct the expected snapshot at a label that no longer exists in
7614
+ * the working tree, triggering a false drift error.
7615
+ *
7616
+ * Always force `label = working_tree_max` regardless of the previous label so
7617
+ * the invariant `label <= working_tree_max` is preserved.
7618
+ * @param client - Operator client instance
7619
+ * @param workspaceId - Workspace ID
7620
+ * @param namespacesWithMigrations - Namespaces that have migration directories configured
7621
+ */
7622
+ async function reconcileMigrationLabels(client, workspaceId, namespacesWithMigrations) {
7623
+ for (const { namespace, migrationsDir } of namespacesWithMigrations) {
7624
+ const targetVersion = getLatestMigrationNumber(migrationsDir);
7625
+ const currentVersion = await getRemoteMigrationNumber(client, workspaceId, namespace);
7626
+ await updateMigrationLabel(client, workspaceId, namespace, targetVersion);
7627
+ if (currentVersion !== targetVersion) {
7628
+ const from = currentVersion === null ? "<unset>" : formatMigrationNumber(currentVersion);
7629
+ logger.info(`Migration label for namespace ${namespace} reconciled: ${from} → ${formatMigrationNumber(targetVersion)}.`);
7630
+ }
7631
+ }
7568
7632
  }
7569
7633
  /**
7570
7634
  * Build migration execution context for script-based migrations.
@@ -7600,7 +7664,7 @@ async function applyTailorDB(client, result, phase = "create-update") {
7600
7664
  const types = tailordb.types;
7601
7665
  if (types) typesByNamespace.set(tailordb.namespace, types);
7602
7666
  }
7603
- const pendingMigrations = await validateAndDetectMigrations(client, migrationContext.workspaceId, typesByNamespace, migrationContext.config, migrationContext.noSchemaCheck);
7667
+ const { pendingMigrations, namespacesWithMigrations } = await validateAndDetectMigrations(client, migrationContext.workspaceId, typesByNamespace, migrationContext.config, migrationContext.noSchemaCheck);
7604
7668
  if (pendingMigrations.length > 0) {
7605
7669
  processedTypes.reset();
7606
7670
  deletedResources.reset();
@@ -7640,6 +7704,7 @@ async function applyTailorDB(client, result, phase = "create-update") {
7640
7704
  await Promise.all(changeSet.gqlPermission.deletes.map((del) => client.deleteTailorDBGQLPermission(del.request)));
7641
7705
  await Promise.all(changeSet.type.deletes.map((del) => client.deleteTailorDBType(del.request)));
7642
7706
  }
7707
+ if (migrationContext.noSchemaCheck && namespacesWithMigrations.length > 0) await reconcileMigrationLabels(client, migrationContext.workspaceId, namespacesWithMigrations);
7643
7708
  } else if (phase === "delete-resources") {
7644
7709
  await Promise.all(changeSet.gqlPermission.deletes.map((del) => client.deleteTailorDBGQLPermission(del.request)));
7645
7710
  await Promise.all(changeSet.type.deletes.map((del) => client.deleteTailorDBType(del.request)));
@@ -10957,6 +11022,7 @@ The \`--logs\` option displays logs from the downstream execution when available
10957
11022
  })
10958
11023
  }).strict(),
10959
11024
  run: async (args) => {
11025
+ await assertWritable({ profile: args.profile });
10960
11026
  const client = await initOperatorClient(await loadAccessToken({
10961
11027
  useProfile: true,
10962
11028
  profile: args.profile
@@ -12463,6 +12529,7 @@ const createCommand$1 = defineAppCommand({
12463
12529
  })
12464
12530
  }).strict(),
12465
12531
  run: async (args) => {
12532
+ await assertWritable();
12466
12533
  const folder = await createFolder({
12467
12534
  organizationId: args["organization-id"],
12468
12535
  parentFolderId: args["parent-folder-id"],
@@ -12501,6 +12568,7 @@ const deleteCommand$1 = defineAppCommand({
12501
12568
  ...confirmationArgs
12502
12569
  }).strict(),
12503
12570
  run: async (args) => {
12571
+ await assertWritable();
12504
12572
  const client = await initOperatorClient(await loadAccessToken());
12505
12573
  let folderName;
12506
12574
  try {
@@ -12651,6 +12719,7 @@ const updateCommand$2 = defineAppCommand({
12651
12719
  })
12652
12720
  }).strict(),
12653
12721
  run: async (args) => {
12722
+ await assertWritable();
12654
12723
  const folder = await updateFolder({
12655
12724
  organizationId: args["organization-id"],
12656
12725
  folderId: args["folder-id"],
@@ -12876,6 +12945,7 @@ const updateCommand$1 = defineAppCommand({
12876
12945
  })
12877
12946
  }).strict(),
12878
12947
  run: async (args) => {
12948
+ await assertWritable();
12879
12949
  const organization = await updateOrganization({
12880
12950
  organizationId: args["organization-id"],
12881
12951
  name: args.name
@@ -12980,6 +13050,7 @@ const removeCommand$1 = defineAppCommand({
12980
13050
  ...confirmationArgs
12981
13051
  }).strict(),
12982
13052
  run: async (args) => {
13053
+ await assertWritable({ profile: args.profile });
12983
13054
  const { client, workspaceId, application, config } = await loadOptions$10({
12984
13055
  workspaceId: args["workspace-id"],
12985
13056
  profile: args.profile,
@@ -13643,7 +13714,7 @@ async function generate(options) {
13643
13714
  if (options.init) await handleInitOption(namespacesWithMigrations, options.yes);
13644
13715
  let pluginManager;
13645
13716
  if (plugins.length > 0) pluginManager = new PluginManager(plugins);
13646
- const { defineApplication } = await import("./application-BNkNt47b.mjs");
13717
+ const { defineApplication } = await import("./application-v_E2W-Fz.mjs");
13647
13718
  const application = defineApplication({
13648
13719
  config,
13649
13720
  pluginManager
@@ -13973,6 +14044,7 @@ const truncateCommand = defineAppCommand({
13973
14044
  })
13974
14045
  }).strict(),
13975
14046
  run: async (args) => {
14047
+ await assertWritable({ profile: args.profile });
13976
14048
  const types = args.types && args.types.length > 0 ? args.types : void 0;
13977
14049
  await $truncate({
13978
14050
  workspaceId: args["workspace-id"],
@@ -14355,9 +14427,11 @@ const createCommand = defineAppCommand({
14355
14427
  alias: "p",
14356
14428
  description: "Profile name to create"
14357
14429
  }),
14358
- "profile-user": arg(z.string().optional(), { description: "User email for the profile (defaults to current user)" })
14430
+ "profile-user": arg(z.string().optional(), { description: "User email for the profile (defaults to current user)" }),
14431
+ permission: arg(z.enum(["write", "read"]).default("write"), { description: "Profile permission (requires --profile-name). 'read' blocks all write commands while the profile is active." })
14359
14432
  }).strict(),
14360
14433
  run: async (args) => {
14434
+ await assertWritable();
14361
14435
  const workspace = await createWorkspace({
14362
14436
  name: args.name,
14363
14437
  region: args.region,
@@ -14375,13 +14449,15 @@ const createCommand = defineAppCommand({
14375
14449
  if (!config.users[profileUser]) throw new Error(`User "${profileUser}" not found.\nPlease verify your user name and login using 'tailor-sdk login' command.`);
14376
14450
  config.profiles[profileName] = {
14377
14451
  user: profileUser,
14378
- workspace_id: workspace.id
14452
+ workspace_id: workspace.id,
14453
+ ...args.permission === "read" ? { readonly: true } : {}
14379
14454
  };
14380
14455
  writePlatformConfig(config);
14381
14456
  profileInfo = {
14382
14457
  name: profileName,
14383
14458
  user: profileUser,
14384
- workspaceId: workspace.id
14459
+ workspaceId: workspace.id,
14460
+ permission: args.permission
14385
14461
  };
14386
14462
  if (!args.json) logger.success(`Profile "${profileName}" created successfully.`);
14387
14463
  }
@@ -14432,6 +14508,7 @@ const deleteCommand = defineAppCommand({
14432
14508
  ...confirmationArgs
14433
14509
  }).strict(),
14434
14510
  run: async (args) => {
14511
+ await assertWritable();
14435
14512
  const { client, workspaceId } = await loadOptions$7({ workspaceId: args["workspace-id"] });
14436
14513
  let workspace;
14437
14514
  try {
@@ -14569,6 +14646,7 @@ const restoreCommand = defineAppCommand({
14569
14646
  ...confirmationArgs
14570
14647
  }).strict(),
14571
14648
  run: async (args) => {
14649
+ await assertWritable();
14572
14650
  const { client, workspaceId } = await loadOptions$5({ workspaceId: args["workspace-id"] });
14573
14651
  if (!args.yes) {
14574
14652
  if (await prompt.text({ message: `Are you sure you want to restore workspace "${workspaceId}"? (yes/no):` }) !== "yes") {
@@ -14661,6 +14739,7 @@ const inviteCommand = defineAppCommand({
14661
14739
  })
14662
14740
  }).strict(),
14663
14741
  run: async (args) => {
14742
+ await assertWritable({ profile: args.profile });
14664
14743
  await inviteUser({
14665
14744
  workspaceId: args["workspace-id"],
14666
14745
  profile: args.profile,
@@ -14774,6 +14853,7 @@ const removeCommand = defineAppCommand({
14774
14853
  ...confirmationArgs
14775
14854
  }).strict(),
14776
14855
  run: async (args) => {
14856
+ await assertWritable({ profile: args.profile });
14777
14857
  if (!args.yes) {
14778
14858
  if (await prompt.text({ message: `Are you sure you want to remove user "${args.email}" from the workspace? (yes/no):` }) !== "yes") {
14779
14859
  logger.info("User removal cancelled.");
@@ -14838,6 +14918,7 @@ const updateCommand = defineAppCommand({
14838
14918
  })
14839
14919
  }).strict(),
14840
14920
  run: async (args) => {
14921
+ await assertWritable({ profile: args.profile });
14841
14922
  await updateUser({
14842
14923
  workspaceId: args["workspace-id"],
14843
14924
  profile: args.profile,
@@ -15791,5 +15872,5 @@ function isDeno() {
15791
15872
  }
15792
15873
 
15793
15874
  //#endregion
15794
- export { deleteCommand$1 as $, getMigrationDirPath as $t, truncate as A, executionsCommand as At, updateOrganization as B, MIGRATION_LABEL_KEY as Bt, listCommand$2 as C, toPageDirection as Cn, jobsCommand as Ct, resumeWorkflow as D, startWorkflow as Dt, resumeCommand as E, startCommand as Et, showCommand as F, getCommand$6 as Ft, getCommand$1 as G, INITIAL_SCHEMA_NUMBER as Gt, treeCommand as H, bundleMigrationScript as Ht, logBetaWarning as I, getExecutor as It, updateFolder as J, compareLocalTypesWithSnapshot as Jt, getOrganization as K, MIGRATE_FILE_NAME as Kt, remove as L, deploy as Lt, generate as M, listWorkflowExecutions as Mt, generateCommand as N, functionExecutionStatusToString as Nt, listCommand$3 as O, getCommand$5 as Ot, show as P, formatKeyValueTable as Pt, getFolder as Q, getLatestMigrationNumber as Qt, removeCommand$1 as R, executeScript as Rt, listApps as S, paginationArgs as Sn, getExecutorJob as St, healthCommand as T, watchExecutorJob as Tt, listCommand$4 as U, DB_TYPES_FILE_NAME as Ut, organizationTree as V, parseMigrationLabelNumber as Vt, listOrganizations as W, DIFF_FILE_NAME as Wt, listFolders as X, createSnapshotFromLocalTypes as Xt, listCommand$5 as Y, compareSnapshots as Yt, getCommand$2 as Z, formatMigrationNumber as Zt, getWorkspace as _, commonArgs as _n, webhookCommand as _t, updateUser as a, reconstructSnapshotFromMigrations as an, getCommand$3 as at, createCommand as b, isVerbose as bn, listCommand$9 as bt, listCommand as c, hasChanges as cn, tokenCommand as ct, inviteUser as d, trnPrefix as dn, generate$1 as dt, getMigrationFilePath as en, deleteFolder as et, restoreCommand as f, generateUserTypes as fn, listCommand$8 as ft, getCommand as g, defineAppCommand as gn, listWebhookExecutors as gt, listWorkspaces as h, apiCall as hn, getFunctionRegistry as ht, updateCommand as i, loadDiff as in, listOAuth2Clients as it, truncateCommand as j, getWorkflowExecution as jt, listWorkflows as k, getWorkflow as kt, listUsers as l, getNamespacesWithMigrations as ln, listCommand$7 as lt, listCommand$1 as m, apiCommand as mn, getCommand$4 as mt, query as n, getNextMigrationNumber as nn, createFolder as nt, removeCommand as o, formatDiffSummary as on, getOAuth2Client as ot, restoreWorkspace as p, prompt as pn, listFunctionRegistries as pt, updateCommand$2 as q, SCHEMA_FILE_NAME as qt, queryCommand as r, isValidMigrationNumber as rn, listCommand$6 as rt, removeUser as s, formatMigrationDiff as sn, getMachineUserToken as st, isNativeTypeScriptRuntime as t, getMigrationFiles as tn, createCommand$1 as tt, inviteCommand as u, sdkNameLabelKey as un, listMachineUsers as ut, deleteCommand as v, confirmationArgs as vn, triggerCommand as vt, getAppHealth as w, workspaceArgs as wn, listExecutorJobs as wt, createWorkspace as x, pagedLogArgs as xn, listExecutors as xt, deleteWorkspace as y, deploymentArgs as yn, triggerExecutor as yt, updateCommand$1 as z, waitForExecution$1 as zt };
15795
- //# sourceMappingURL=runtime-CNg0w27y.mjs.map
15875
+ export { deleteCommand$1 as $, getMigrationDirPath as $t, truncate as A, executionsCommand as At, updateOrganization as B, MIGRATION_LABEL_KEY as Bt, listCommand$2 as C, paginationArgs as Cn, jobsCommand as Ct, resumeWorkflow as D, startWorkflow as Dt, resumeCommand as E, startCommand as Et, showCommand as F, getCommand$6 as Ft, getCommand$1 as G, INITIAL_SCHEMA_NUMBER as Gt, treeCommand as H, bundleMigrationScript as Ht, logBetaWarning as I, getExecutor as It, updateFolder as J, compareLocalTypesWithSnapshot as Jt, getOrganization as K, MIGRATE_FILE_NAME as Kt, remove as L, deploy as Lt, generate as M, listWorkflowExecutions as Mt, generateCommand as N, functionExecutionStatusToString as Nt, listCommand$3 as O, getCommand$5 as Ot, show as P, formatKeyValueTable as Pt, getFolder as Q, getLatestMigrationNumber as Qt, removeCommand$1 as R, executeScript as Rt, listApps as S, pagedLogArgs as Sn, getExecutorJob as St, healthCommand as T, workspaceArgs as Tn, watchExecutorJob as Tt, listCommand$4 as U, DB_TYPES_FILE_NAME as Ut, organizationTree as V, parseMigrationLabelNumber as Vt, listOrganizations as W, DIFF_FILE_NAME as Wt, listFolders as X, createSnapshotFromLocalTypes as Xt, listCommand$5 as Y, compareSnapshots as Yt, getCommand$2 as Z, formatMigrationNumber as Zt, getWorkspace as _, defineAppCommand as _n, webhookCommand as _t, updateUser as a, reconstructSnapshotFromMigrations as an, getCommand$3 as at, createCommand as b, deploymentArgs as bn, listCommand$9 as bt, listCommand as c, hasChanges as cn, tokenCommand as ct, inviteUser as d, trnPrefix as dn, generate$1 as dt, getMigrationFilePath as en, deleteFolder as et, restoreCommand as f, generateUserTypes as fn, listCommand$8 as ft, getCommand as g, assertWritable as gn, listWebhookExecutors as gt, listWorkspaces as h, apiCall as hn, getFunctionRegistry as ht, updateCommand as i, loadDiff as in, listOAuth2Clients as it, truncateCommand as j, getWorkflowExecution as jt, listWorkflows as k, getWorkflow as kt, listUsers as l, getNamespacesWithMigrations as ln, listCommand$7 as lt, listCommand$1 as m, apiCommand as mn, getCommand$4 as mt, query as n, getNextMigrationNumber as nn, createFolder as nt, removeCommand as o, formatDiffSummary as on, getOAuth2Client as ot, restoreWorkspace as p, prompt as pn, listFunctionRegistries as pt, updateCommand$2 as q, SCHEMA_FILE_NAME as qt, queryCommand as r, isValidMigrationNumber as rn, listCommand$6 as rt, removeUser as s, formatMigrationDiff as sn, getMachineUserToken as st, isNativeTypeScriptRuntime as t, getMigrationFiles as tn, createCommand$1 as tt, inviteCommand as u, sdkNameLabelKey as un, listMachineUsers as ut, deleteCommand as v, commonArgs as vn, triggerCommand as vt, getAppHealth as w, toPageDirection as wn, listExecutorJobs as wt, createWorkspace as x, isVerbose as xn, listExecutors as xt, deleteWorkspace as y, confirmationArgs as yn, triggerExecutor as yt, updateCommand$1 as z, waitForExecution$1 as zt };
15876
+ //# sourceMappingURL=runtime-oZgK353r.mjs.map