@tailor-platform/sdk 1.70.0 → 1.70.1
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/CHANGELOG.md +43 -0
- package/dist/{application-Df5_I83n.mjs → application-DmjIKQ-a.mjs} +2 -2
- package/dist/{application-Df5_I83n.mjs.map → application-DmjIKQ-a.mjs.map} +1 -1
- package/dist/application-a_ApFuPh.mjs +4 -0
- package/dist/cli/index.mjs +4 -4
- package/dist/cli/lib.d.mts +73 -5
- package/dist/cli/lib.mjs +2 -2
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/completion/zsh-worker.zsh +7 -5
- package/dist/{runtime-CSY0eD4_.mjs → runtime-BpHVwifd.mjs} +198 -124
- package/dist/runtime-BpHVwifd.mjs.map +1 -0
- package/dist/{service_pb-DGSmn-aF.mjs → service_pb-BJ9GsAnW.mjs} +1 -1
- package/dist/{service_pb-DSNjrcbW.mjs → service_pb-BsBR6yW5.mjs} +22 -7
- package/dist/service_pb-BsBR6yW5.mjs.map +1 -0
- package/docs/services/auth.md +4 -14
- package/package.json +11 -11
- package/dist/application-BakHtldG.mjs +0 -4
- package/dist/runtime-CSY0eD4_.mjs.map +0 -1
- package/dist/service_pb-DSNjrcbW.mjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
import { t as db } from "./schema-C4fkpWV_.mjs";
|
|
3
|
-
import { $ as CreateUserProfileConfigRequestSchema, A as UpdatePipelineServiceRequestSchema, At as
|
|
3
|
+
import { $ as CreateUserProfileConfigRequestSchema, A as UpdatePipelineServiceRequestSchema, At as Condition_Operator, B as UpdateExecutorExecutorRequestSchema, Ct as UserProfileProviderConfig_UserProfileProviderType, D as CreatePipelineResolverRequestSchema, Dt as ApplicationSchemaUpdateAttemptStatus, E as UpdateSecretManagerSecretRequestSchema, Et as UpdateApplicationRequestSchema, F as IdPPermissionOperator, G as CreateAuthHookRequestSchema, H as ExecutorTargetType, I as IdPPermissionPermit, J as CreateAuthOAuth2ClientRequestSchema, K as CreateAuthIDPConfigRequestSchema, L as FunctionExecution_Status, M as CreateIdPServiceRequestSchema, Mt as PageDirection, N as UpdateIdPServiceRequestSchema, O as CreatePipelineServiceRequestSchema, Ot as Subgraph_ServiceType, P as IdPLang, Q as CreateTenantConfigRequestSchema, S as UpdateStaticWebsiteRequestSchema, St as TenantProviderConfig_TenantProviderType, T as CreateSecretManagerVaultRequestSchema, Tt as GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus, U as ExecutorTriggerType, V as ExecutorJobStatus, W as CreateAuthConnectionRequestSchema, X as CreateAuthSCIMResourceRequestSchema, Y as CreateAuthSCIMConfigRequestSchema, Z as CreateAuthServiceRequestSchema, _ as TailorDBType_Permission_Operator, _t as AuthSCIMAttribute_Mutability, a as WorkspacePlatformUserRole, at as UpdateAuthSCIMConfigRequestSchema, b as AddCustomDomainRequestSchema, bt as AuthSCIMConfig_AuthorizationType, c as UpdateWorkflowRequestSchema, ct as UpdateTenantConfigRequestSchema, d as CreateTailorDBServiceRequestSchema, dt as AuthConnection_Type, et as UpdateAuthConnectionRequestSchema, f as CreateTailorDBTypeRequestSchema, ft as AuthHookPoint, g as TailorDBGQLPermission_Permit, gt as AuthOAuth2Client_GrantType, h as TailorDBGQLPermission_Operator, ht as AuthOAuth2Client_ClientType, it as UpdateAuthOAuth2ClientRequestSchema, j as PipelineResolver_OperationType, jt as FilterSchema, k as UpdatePipelineResolverRequestSchema, kt as ConditionSchema, l as WorkflowExecution_Status, lt as UpdateUserProfileConfigRequestSchema, m as TailorDBGQLPermission_Action, mt as AuthInvokerSchema, nt as UpdateAuthIDPConfigRequestSchema, o as CreateWorkflowJobFunctionRequestSchema, ot as UpdateAuthSCIMResourceRequestSchema, p as UpdateTailorDBTypeRequestSchema, pt as AuthIDPConfig_AuthType, q as CreateAuthMachineUserRequestSchema, rt as UpdateAuthMachineUserRequestSchema, s as CreateWorkflowRequestSchema, st as UpdateAuthServiceRequestSchema, t as OperatorService, tt as UpdateAuthHookRequestSchema, u as WorkflowJobExecution_Status, ut as AuthConnection_Status, v as TailorDBType_Permission_Permit, vt as AuthSCIMAttribute_Type, w as CreateSecretManagerSecretRequestSchema, wt as CreateApplicationRequestSchema, x as CreateStaticWebsiteRequestSchema, y as TailorDBType_PermitAction, yt as AuthSCIMAttribute_Uniqueness, z as CreateExecutorExecutorRequestSchema } from "./service_pb-BsBR6yW5.mjs";
|
|
4
4
|
import { t as assertDefined } from "./assert-CKfwrmCV.mjs";
|
|
5
5
|
import { a as parseBoolean, i as symbols, n as logger, r as styles, t as CIPromptError } from "./logger-DKF-JsAK.mjs";
|
|
6
|
-
import { $ as initOperatorClient, A as loadAccessToken, G as fetchMachineUserToken, I as loadWorkspaceId, K as fetchPaged, L as platformConfigFromProfile, N as loadMachineUserName, P as loadPlatformClientConfig, R as readPlatformConfig, S as getDistDir, T as loadConfig, V as writePlatformConfig, W as fetchAll, X as getOAuth2ClientId, Y as getConsoleBaseUrl, Z as getPlatformBaseUrl, b as hasGenerationHooks, d as assertUniqueLocalTailorDBTypeNames, et as isDefaultPlatform, f as assertUniqueTailorDBTypeNamesWithExternal, h as platformBundleDefinePlugin, j as loadConfigPath, k as hasUserTokenEntry, l as buildExecutorArgsExpr, m as stringifyFunction, n as generatePluginFilesIfNeeded, nt as byName, p as TailorDBTypeSchema, r as loadApplication, s as HTTP_METHODS, t as defineApplication, tt as resolveStaticWebsiteUrls, u as buildResolverOperationHookExpr, w as hashFile, x as createBundleCache, y as getPluginGenerationDependencies } from "./application-
|
|
6
|
+
import { $ as initOperatorClient, A as loadAccessToken, G as fetchMachineUserToken, I as loadWorkspaceId, K as fetchPaged, L as platformConfigFromProfile, N as loadMachineUserName, P as loadPlatformClientConfig, R as readPlatformConfig, S as getDistDir, T as loadConfig, V as writePlatformConfig, W as fetchAll, X as getOAuth2ClientId, Y as getConsoleBaseUrl, Z as getPlatformBaseUrl, b as hasGenerationHooks, d as assertUniqueLocalTailorDBTypeNames, et as isDefaultPlatform, f as assertUniqueTailorDBTypeNamesWithExternal, h as platformBundleDefinePlugin, j as loadConfigPath, k as hasUserTokenEntry, l as buildExecutorArgsExpr, m as stringifyFunction, n as generatePluginFilesIfNeeded, nt as byName, p as TailorDBTypeSchema, r as loadApplication, s as HTTP_METHODS, t as defineApplication, tt as resolveStaticWebsiteUrls, u as buildResolverOperationHookExpr, w as hashFile, x as createBundleCache, y as getPluginGenerationDependencies } from "./application-DmjIKQ-a.mjs";
|
|
7
7
|
import { o as loadFilesWithIgnores, t as createExecutorService } from "./service-B2Jd9CxS.mjs";
|
|
8
8
|
import { t as multiline } from "./multiline-Cf9ODpr1.mjs";
|
|
9
9
|
import { t as readPackageJson } from "./package-json-DcQApfPQ.mjs";
|
|
@@ -2360,21 +2360,28 @@ function buildConnectionRequest(workspaceId, name, config) {
|
|
|
2360
2360
|
}
|
|
2361
2361
|
};
|
|
2362
2362
|
}
|
|
2363
|
-
function
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
const
|
|
2377
|
-
|
|
2363
|
+
function buildUpdateMask(existing, desired, secretChanged) {
|
|
2364
|
+
if (existing.config.case !== "oauth2") {
|
|
2365
|
+
const paths = [
|
|
2366
|
+
"type",
|
|
2367
|
+
"oauth2.provider_url",
|
|
2368
|
+
"oauth2.issuer_url",
|
|
2369
|
+
"oauth2.client_id",
|
|
2370
|
+
"oauth2.auth_url",
|
|
2371
|
+
"oauth2.token_url"
|
|
2372
|
+
];
|
|
2373
|
+
if (desired.clientSecret) paths.push("oauth2.client_secret");
|
|
2374
|
+
return { paths };
|
|
2375
|
+
}
|
|
2376
|
+
const paths = [];
|
|
2377
|
+
const v = existing.config.value;
|
|
2378
|
+
if (v.providerUrl !== desired.providerUrl) paths.push("oauth2.provider_url");
|
|
2379
|
+
if (v.issuerUrl !== desired.issuerUrl) paths.push("oauth2.issuer_url");
|
|
2380
|
+
if (v.clientId !== desired.clientId) paths.push("oauth2.client_id");
|
|
2381
|
+
if (v.authUrl !== (desired.authUrl ?? "")) paths.push("oauth2.auth_url");
|
|
2382
|
+
if (v.tokenUrl !== (desired.tokenUrl ?? "")) paths.push("oauth2.token_url");
|
|
2383
|
+
if (secretChanged && desired.clientSecret) paths.push("oauth2.client_secret");
|
|
2384
|
+
return { paths };
|
|
2378
2385
|
}
|
|
2379
2386
|
/**
|
|
2380
2387
|
* Plan auth connection changes based on current and desired state.
|
|
@@ -2432,15 +2439,14 @@ async function planAuthConnections(client, workspaceId, appName, appId, auths) {
|
|
|
2432
2439
|
resourceType: "Auth connection",
|
|
2433
2440
|
resourceName: name
|
|
2434
2441
|
});
|
|
2435
|
-
const
|
|
2436
|
-
const
|
|
2437
|
-
if (
|
|
2442
|
+
const secretChanged = hashValue(config.clientSecret) !== state.connections?.[name];
|
|
2443
|
+
const updateMask = buildUpdateMask(existing.resource, config, secretChanged);
|
|
2444
|
+
if (updateMask.paths.length > 0) changeSet.replaces.push({
|
|
2438
2445
|
name,
|
|
2439
|
-
|
|
2440
|
-
workspaceId,
|
|
2441
|
-
|
|
2446
|
+
updateRequest: {
|
|
2447
|
+
...buildConnectionRequest(workspaceId, name, config),
|
|
2448
|
+
updateMask
|
|
2442
2449
|
},
|
|
2443
|
-
createRequest: buildConnectionRequest(workspaceId, name, config),
|
|
2444
2450
|
metaRequest
|
|
2445
2451
|
});
|
|
2446
2452
|
else if (!existing.label) changeSet.updates.push({
|
|
@@ -2477,21 +2483,6 @@ async function planAuthConnections(client, workspaceId, appName, appId, auths) {
|
|
|
2477
2483
|
resourceOwners
|
|
2478
2484
|
};
|
|
2479
2485
|
}
|
|
2480
|
-
function extractOAuth2Config(connection) {
|
|
2481
|
-
if (!connection) return void 0;
|
|
2482
|
-
const config = connection.config;
|
|
2483
|
-
if (!config || config.case !== "oauth2") return void 0;
|
|
2484
|
-
const v = config.value;
|
|
2485
|
-
return {
|
|
2486
|
-
type: "oauth2",
|
|
2487
|
-
providerUrl: v.providerUrl ?? "",
|
|
2488
|
-
issuerUrl: v.issuerUrl ?? "",
|
|
2489
|
-
clientId: v.clientId ?? "",
|
|
2490
|
-
clientSecret: v.clientSecret ?? "",
|
|
2491
|
-
authUrl: v.authUrl || void 0,
|
|
2492
|
-
tokenUrl: v.tokenUrl || void 0
|
|
2493
|
-
};
|
|
2494
|
-
}
|
|
2495
2486
|
/**
|
|
2496
2487
|
* Apply auth connection changes for the given phase.
|
|
2497
2488
|
* @param client - Operator client instance
|
|
@@ -2504,10 +2495,10 @@ async function applyAuthConnections(client, result, phase) {
|
|
|
2504
2495
|
await Promise.all(changeSet.creates.map(async (create) => {
|
|
2505
2496
|
await client.createAuthConnection(create.request);
|
|
2506
2497
|
await client.setMetadata(create.metaRequest);
|
|
2498
|
+
logger.info(`Connection "${create.name}" was created. Authorize it with:\n tailor-sdk authconnection authorize --name ${create.name}\nOr via the Console: tailor-sdk authconnection open`);
|
|
2507
2499
|
}));
|
|
2508
2500
|
for (const replace of changeSet.replaces) {
|
|
2509
|
-
await client.
|
|
2510
|
-
await client.createAuthConnection(replace.createRequest);
|
|
2501
|
+
if ((await client.updateAuthConnection(replace.updateRequest)).connection?.status === AuthConnection_Status.UNAUTHORIZED) logger.warn(`Connection "${replace.name}" requires re-authorization. Authorize with:\n tailor-sdk authconnection authorize --name ${replace.name}\nOr via the Console: tailor-sdk authconnection open`);
|
|
2511
2502
|
await client.setMetadata(replace.metaRequest);
|
|
2512
2503
|
}
|
|
2513
2504
|
await Promise.all(changeSet.updates.map(async (update) => {
|
|
@@ -2516,12 +2507,12 @@ async function applyAuthConnections(client, result, phase) {
|
|
|
2516
2507
|
const state = loadSecretsState();
|
|
2517
2508
|
if (!state.connections) state.connections = {};
|
|
2518
2509
|
for (const create of changeSet.creates) {
|
|
2519
|
-
const
|
|
2520
|
-
if (oauth2) state.connections[create.name] =
|
|
2510
|
+
const conn = create.request.connection;
|
|
2511
|
+
if (conn?.config?.case === "oauth2") state.connections[create.name] = hashValue(conn.config.value.clientSecret ?? "");
|
|
2521
2512
|
}
|
|
2522
2513
|
for (const replace of changeSet.replaces) {
|
|
2523
|
-
const
|
|
2524
|
-
if (oauth2) state.connections[replace.name] =
|
|
2514
|
+
const conn = replace.updateRequest.connection;
|
|
2515
|
+
if (conn?.config?.case === "oauth2" && replace.updateRequest.updateMask?.paths?.includes("oauth2.client_secret")) state.connections[replace.name] = hashValue(conn.config.value.clientSecret ?? "");
|
|
2525
2516
|
}
|
|
2526
2517
|
saveSecretsState(state);
|
|
2527
2518
|
} else {
|
|
@@ -6563,6 +6554,23 @@ function parseMigrationNumberArg(numberStr) {
|
|
|
6563
6554
|
* All object schemas use `z.looseObject` so that unknown keys written
|
|
6564
6555
|
* by newer CLI versions survive a load → save round-trip.
|
|
6565
6556
|
*/
|
|
6557
|
+
function snapshotRecordSchema(valueSchema) {
|
|
6558
|
+
return z.custom((value) => typeof value === "object" && value !== null && !Array.isArray(value), { message: "Expected record" }).transform((value, ctx) => {
|
|
6559
|
+
const record = Object.create(null);
|
|
6560
|
+
for (const key of Object.keys(value)) {
|
|
6561
|
+
const result = valueSchema.safeParse(value[key]);
|
|
6562
|
+
if (!result.success) {
|
|
6563
|
+
for (const issue of result.error.issues) ctx.addIssue({
|
|
6564
|
+
...issue,
|
|
6565
|
+
path: [key, ...issue.path]
|
|
6566
|
+
});
|
|
6567
|
+
continue;
|
|
6568
|
+
}
|
|
6569
|
+
record[key] = result.data;
|
|
6570
|
+
}
|
|
6571
|
+
return record;
|
|
6572
|
+
});
|
|
6573
|
+
}
|
|
6566
6574
|
const snapshotHookSchema = z.looseObject({ expr: z.string() });
|
|
6567
6575
|
const snapshotValidationSchema = z.looseObject({
|
|
6568
6576
|
script: z.looseObject({ expr: z.string() }).optional(),
|
|
@@ -6596,7 +6604,7 @@ const snapshotFieldConfigSchema = z.looseObject({
|
|
|
6596
6604
|
validate: z.array(snapshotValidationSchema).optional(),
|
|
6597
6605
|
serial: snapshotSerialSchema.optional(),
|
|
6598
6606
|
scale: z.number().optional(),
|
|
6599
|
-
fields: z.lazy(() =>
|
|
6607
|
+
fields: z.lazy(() => snapshotRecordSchema(snapshotFieldConfigSchema)).optional()
|
|
6600
6608
|
});
|
|
6601
6609
|
const snapshotIndexConfigSchema = z.looseObject({
|
|
6602
6610
|
fields: z.array(z.string()),
|
|
@@ -6667,7 +6675,7 @@ const tailorDBSnapshotTypeSchema = z.looseObject({
|
|
|
6667
6675
|
name: z.string(),
|
|
6668
6676
|
pluralForm: z.string().optional(),
|
|
6669
6677
|
description: z.string().optional(),
|
|
6670
|
-
fields:
|
|
6678
|
+
fields: snapshotRecordSchema(snapshotFieldConfigSchema),
|
|
6671
6679
|
settings: z.looseObject({
|
|
6672
6680
|
aggregation: z.boolean().optional(),
|
|
6673
6681
|
bulkUpsert: z.boolean().optional(),
|
|
@@ -6679,10 +6687,10 @@ const tailorDBSnapshotTypeSchema = z.looseObject({
|
|
|
6679
6687
|
}).optional(),
|
|
6680
6688
|
publishEvents: z.boolean().optional()
|
|
6681
6689
|
}).optional(),
|
|
6682
|
-
indexes:
|
|
6683
|
-
files:
|
|
6684
|
-
forwardRelationships:
|
|
6685
|
-
backwardRelationships:
|
|
6690
|
+
indexes: snapshotRecordSchema(snapshotIndexConfigSchema).optional(),
|
|
6691
|
+
files: snapshotRecordSchema(z.string()).optional(),
|
|
6692
|
+
forwardRelationships: snapshotRecordSchema(snapshotRelationshipSchema).optional(),
|
|
6693
|
+
backwardRelationships: snapshotRecordSchema(snapshotRelationshipSchema).optional(),
|
|
6686
6694
|
permissions: z.looseObject({
|
|
6687
6695
|
record: snapshotRecordPermissionSchema.optional(),
|
|
6688
6696
|
gql: snapshotGqlPermissionSchema.optional()
|
|
@@ -6692,11 +6700,11 @@ const schemaSnapshotSchema = z.looseObject({
|
|
|
6692
6700
|
version: z.number(),
|
|
6693
6701
|
namespace: z.string(),
|
|
6694
6702
|
createdAt: z.string(),
|
|
6695
|
-
types:
|
|
6703
|
+
types: snapshotRecordSchema(tailorDBSnapshotTypeSchema)
|
|
6696
6704
|
});
|
|
6697
6705
|
const typeSettingsPatchSchema = z.looseObject({
|
|
6698
|
-
indexes:
|
|
6699
|
-
files:
|
|
6706
|
+
indexes: snapshotRecordSchema(snapshotIndexConfigSchema).optional(),
|
|
6707
|
+
files: snapshotRecordSchema(z.string()).optional()
|
|
6700
6708
|
});
|
|
6701
6709
|
const snapshotPermissionStateSchema = z.looseObject({
|
|
6702
6710
|
recordPermission: snapshotRecordPermissionSchema.optional(),
|
|
@@ -6902,16 +6910,26 @@ const MIGRATION_NUMBER_PATTERN = /^\d{4}$/;
|
|
|
6902
6910
|
* Must stay in sync with the platform's default decimal scale.
|
|
6903
6911
|
*/
|
|
6904
6912
|
const DEFAULT_DECIMAL_SCALE = 6;
|
|
6913
|
+
function createSnapshotRecord() {
|
|
6914
|
+
return Object.create(null);
|
|
6915
|
+
}
|
|
6916
|
+
function copySnapshotRecord(record) {
|
|
6917
|
+
const copy = createSnapshotRecord();
|
|
6918
|
+
for (const [key, value] of Object.entries(record ?? {})) copy[key] = value;
|
|
6919
|
+
return copy;
|
|
6920
|
+
}
|
|
6905
6921
|
/**
|
|
6906
6922
|
* Normalize a snapshot field in place so the snapshot becomes the canonical
|
|
6907
6923
|
* form for comparison. Currently fills in the platform default decimal scale
|
|
6908
6924
|
* when omitted, which avoids false drift between local schemas (where scale
|
|
6909
6925
|
* may be omitted) and the platform (which always materializes a scale).
|
|
6910
6926
|
* @param {SnapshotFieldConfig} field - Field configuration to normalize
|
|
6927
|
+
* @returns The same field object after normalization
|
|
6911
6928
|
*/
|
|
6912
6929
|
function normalizeSnapshotField(field) {
|
|
6913
6930
|
if (field.type === "decimal" && field.scale === void 0) field.scale = 6;
|
|
6914
6931
|
if (field.fields) for (const nested of Object.values(field.fields)) normalizeSnapshotField(nested);
|
|
6932
|
+
return field;
|
|
6915
6933
|
}
|
|
6916
6934
|
/**
|
|
6917
6935
|
* Normalize a snapshot type in place to the canonical comparison shape.
|
|
@@ -6922,10 +6940,21 @@ function normalizeSnapshotField(field) {
|
|
|
6922
6940
|
*
|
|
6923
6941
|
* Idempotent — safe to call multiple times on the same input.
|
|
6924
6942
|
* @param {TailorDBSnapshotType} type - Snapshot type to normalize
|
|
6943
|
+
* @returns The same snapshot type object after normalization
|
|
6925
6944
|
*/
|
|
6926
6945
|
function normalizeSnapshotType(type) {
|
|
6927
6946
|
if (!type.pluralForm) type.pluralForm = inflection.pluralize(type.name);
|
|
6928
6947
|
for (const field of Object.values(type.fields)) normalizeSnapshotField(field);
|
|
6948
|
+
return type;
|
|
6949
|
+
}
|
|
6950
|
+
/**
|
|
6951
|
+
* Normalize a schema snapshot in place to the canonical comparison shape.
|
|
6952
|
+
* @param {SchemaSnapshot} snapshot - Schema snapshot to normalize
|
|
6953
|
+
* @returns The same schema snapshot object branded as normalized
|
|
6954
|
+
*/
|
|
6955
|
+
function normalizeSchemaSnapshot(snapshot) {
|
|
6956
|
+
for (const type of Object.values(snapshot.types)) normalizeSnapshotType(type);
|
|
6957
|
+
return snapshot;
|
|
6929
6958
|
}
|
|
6930
6959
|
/**
|
|
6931
6960
|
* Validate that a migration number follows the expected format (4-digit number)
|
|
@@ -7063,7 +7092,7 @@ function createSnapshotFieldConfigFromOperatorConfig(fieldConfig) {
|
|
|
7063
7092
|
* @returns {TailorDBSnapshotType} Snapshot type configuration
|
|
7064
7093
|
*/
|
|
7065
7094
|
function createSnapshotType(type) {
|
|
7066
|
-
const fields =
|
|
7095
|
+
const fields = createSnapshotRecord();
|
|
7067
7096
|
for (const [fieldName, field] of Object.entries(type.fields)) fields[fieldName] = createSnapshotFieldConfig(field);
|
|
7068
7097
|
const snapshotType = {
|
|
7069
7098
|
name: type.name,
|
|
@@ -7127,7 +7156,7 @@ function createSnapshotType(type) {
|
|
|
7127
7156
|
...policy.description && { description: policy.description }
|
|
7128
7157
|
}));
|
|
7129
7158
|
}
|
|
7130
|
-
return snapshotType;
|
|
7159
|
+
return normalizeSnapshotType(snapshotType);
|
|
7131
7160
|
}
|
|
7132
7161
|
/**
|
|
7133
7162
|
* Convert an action permission to snapshot format
|
|
@@ -7145,22 +7174,22 @@ function convertActionPermission(permission) {
|
|
|
7145
7174
|
* Create a schema snapshot from local type definitions
|
|
7146
7175
|
* @param {Record<string, TailorDBType>} types - Local type definitions
|
|
7147
7176
|
* @param {string} namespace - Namespace for the snapshot
|
|
7148
|
-
* @returns {
|
|
7177
|
+
* @returns {NormalizedSchemaSnapshot} Normalized schema snapshot
|
|
7149
7178
|
*/
|
|
7150
7179
|
function createSnapshotFromLocalTypes(types, namespace) {
|
|
7151
|
-
const snapshotTypes =
|
|
7180
|
+
const snapshotTypes = createSnapshotRecord();
|
|
7152
7181
|
for (const [typeName, type] of Object.entries(types)) snapshotTypes[typeName] = createSnapshotType(type);
|
|
7153
|
-
return {
|
|
7182
|
+
return normalizeSchemaSnapshot({
|
|
7154
7183
|
version: 1,
|
|
7155
7184
|
namespace,
|
|
7156
7185
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7157
7186
|
types: snapshotTypes
|
|
7158
|
-
};
|
|
7187
|
+
});
|
|
7159
7188
|
}
|
|
7160
7189
|
/**
|
|
7161
7190
|
* Load a schema snapshot from a file
|
|
7162
7191
|
* @param {string} filePath - Path to the snapshot file
|
|
7163
|
-
* @returns {
|
|
7192
|
+
* @returns {NormalizedSchemaSnapshot} Loaded normalized schema snapshot
|
|
7164
7193
|
*/
|
|
7165
7194
|
function loadSnapshot(filePath) {
|
|
7166
7195
|
const content = fs$1.readFileSync(filePath, "utf-8");
|
|
@@ -7173,8 +7202,7 @@ function loadSnapshot(filePath) {
|
|
|
7173
7202
|
const result = schemaSnapshotSchema.safeParse(raw);
|
|
7174
7203
|
if (!result.success) throw new Error(`Invalid schema snapshot at ${filePath}: ${z.prettifyError(result.error)}`, { cause: result.error });
|
|
7175
7204
|
const snapshot = result.data;
|
|
7176
|
-
|
|
7177
|
-
return snapshot;
|
|
7205
|
+
return normalizeSchemaSnapshot(snapshot);
|
|
7178
7206
|
}
|
|
7179
7207
|
/**
|
|
7180
7208
|
* Load a migration diff from a file
|
|
@@ -7243,10 +7271,10 @@ function getNextMigrationNumber(migrationsDir) {
|
|
|
7243
7271
|
* Apply a diff to a snapshot to get the resulting snapshot
|
|
7244
7272
|
* @param {SchemaSnapshot} snapshot - Base snapshot to apply diff to
|
|
7245
7273
|
* @param {MigrationDiff} diff - Diff to apply
|
|
7246
|
-
* @returns {
|
|
7274
|
+
* @returns {NormalizedSchemaSnapshot} Normalized snapshot after applying diff
|
|
7247
7275
|
*/
|
|
7248
7276
|
function applyDiffToSnapshot(snapshot, diff) {
|
|
7249
|
-
const types =
|
|
7277
|
+
const types = copySnapshotRecord(snapshot.types);
|
|
7250
7278
|
for (const change of diff.changes) switch (change.kind) {
|
|
7251
7279
|
case "type_added":
|
|
7252
7280
|
types[change.typeName] = change.after;
|
|
@@ -7269,19 +7297,21 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7269
7297
|
case "field_added":
|
|
7270
7298
|
case "field_modified": {
|
|
7271
7299
|
const existing = types[change.typeName];
|
|
7272
|
-
if (existing)
|
|
7273
|
-
|
|
7274
|
-
fields
|
|
7275
|
-
|
|
7276
|
-
|
|
7277
|
-
|
|
7278
|
-
|
|
7300
|
+
if (existing) {
|
|
7301
|
+
const fields = copySnapshotRecord(existing.fields);
|
|
7302
|
+
fields[change.fieldName] = change.after;
|
|
7303
|
+
types[change.typeName] = {
|
|
7304
|
+
...existing,
|
|
7305
|
+
fields
|
|
7306
|
+
};
|
|
7307
|
+
}
|
|
7279
7308
|
break;
|
|
7280
7309
|
}
|
|
7281
7310
|
case "field_removed": {
|
|
7282
7311
|
const existing = types[change.typeName];
|
|
7283
7312
|
if (existing) {
|
|
7284
|
-
const
|
|
7313
|
+
const remainingFields = copySnapshotRecord(existing.fields);
|
|
7314
|
+
delete remainingFields[change.fieldName];
|
|
7285
7315
|
types[change.typeName] = {
|
|
7286
7316
|
...existing,
|
|
7287
7317
|
fields: remainingFields
|
|
@@ -7292,19 +7322,21 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7292
7322
|
case "index_added":
|
|
7293
7323
|
case "index_modified": {
|
|
7294
7324
|
const existing = types[change.typeName];
|
|
7295
|
-
if (existing)
|
|
7296
|
-
|
|
7297
|
-
indexes
|
|
7298
|
-
|
|
7299
|
-
|
|
7300
|
-
|
|
7301
|
-
|
|
7325
|
+
if (existing) {
|
|
7326
|
+
const indexes = copySnapshotRecord(existing.indexes);
|
|
7327
|
+
indexes[change.indexName] = change.after;
|
|
7328
|
+
types[change.typeName] = {
|
|
7329
|
+
...existing,
|
|
7330
|
+
indexes
|
|
7331
|
+
};
|
|
7332
|
+
}
|
|
7302
7333
|
break;
|
|
7303
7334
|
}
|
|
7304
7335
|
case "index_removed": {
|
|
7305
7336
|
const existing = types[change.typeName];
|
|
7306
7337
|
if (existing && existing.indexes) {
|
|
7307
|
-
const
|
|
7338
|
+
const remainingIndexes = copySnapshotRecord(existing.indexes);
|
|
7339
|
+
delete remainingIndexes[change.indexName];
|
|
7308
7340
|
types[change.typeName] = {
|
|
7309
7341
|
...existing,
|
|
7310
7342
|
indexes: Object.keys(remainingIndexes).length > 0 ? remainingIndexes : void 0
|
|
@@ -7315,19 +7347,21 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7315
7347
|
case "file_added":
|
|
7316
7348
|
case "file_modified": {
|
|
7317
7349
|
const existing = types[change.typeName];
|
|
7318
|
-
if (existing)
|
|
7319
|
-
|
|
7320
|
-
files
|
|
7321
|
-
|
|
7322
|
-
|
|
7323
|
-
|
|
7324
|
-
|
|
7350
|
+
if (existing) {
|
|
7351
|
+
const files = copySnapshotRecord(existing.files);
|
|
7352
|
+
files[change.fieldName] = change.after;
|
|
7353
|
+
types[change.typeName] = {
|
|
7354
|
+
...existing,
|
|
7355
|
+
files
|
|
7356
|
+
};
|
|
7357
|
+
}
|
|
7325
7358
|
break;
|
|
7326
7359
|
}
|
|
7327
7360
|
case "file_removed": {
|
|
7328
7361
|
const existing = types[change.typeName];
|
|
7329
7362
|
if (existing && existing.files) {
|
|
7330
|
-
const
|
|
7363
|
+
const remainingFiles = copySnapshotRecord(existing.files);
|
|
7364
|
+
delete remainingFiles[change.fieldName];
|
|
7331
7365
|
types[change.typeName] = {
|
|
7332
7366
|
...existing,
|
|
7333
7367
|
files: Object.keys(remainingFiles).length > 0 ? remainingFiles : void 0
|
|
@@ -7340,20 +7374,21 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7340
7374
|
const existing = types[change.typeName];
|
|
7341
7375
|
if (existing) {
|
|
7342
7376
|
const rel = change.after;
|
|
7343
|
-
if ((change.relationshipType ?? (existing.forwardRelationships?.[change.relationshipName] ? "forward" : existing.backwardRelationships?.[change.relationshipName] ? "backward" : "forward")) === "forward")
|
|
7344
|
-
|
|
7345
|
-
forwardRelationships
|
|
7346
|
-
|
|
7347
|
-
|
|
7348
|
-
|
|
7349
|
-
|
|
7350
|
-
else
|
|
7351
|
-
|
|
7352
|
-
backwardRelationships
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7356
|
-
|
|
7377
|
+
if ((change.relationshipType ?? (existing.forwardRelationships?.[change.relationshipName] ? "forward" : existing.backwardRelationships?.[change.relationshipName] ? "backward" : "forward")) === "forward") {
|
|
7378
|
+
const forwardRelationships = copySnapshotRecord(existing.forwardRelationships);
|
|
7379
|
+
forwardRelationships[change.relationshipName] = rel;
|
|
7380
|
+
types[change.typeName] = {
|
|
7381
|
+
...existing,
|
|
7382
|
+
forwardRelationships
|
|
7383
|
+
};
|
|
7384
|
+
} else {
|
|
7385
|
+
const backwardRelationships = copySnapshotRecord(existing.backwardRelationships);
|
|
7386
|
+
backwardRelationships[change.relationshipName] = rel;
|
|
7387
|
+
types[change.typeName] = {
|
|
7388
|
+
...existing,
|
|
7389
|
+
backwardRelationships
|
|
7390
|
+
};
|
|
7391
|
+
}
|
|
7357
7392
|
}
|
|
7358
7393
|
break;
|
|
7359
7394
|
}
|
|
@@ -7362,13 +7397,15 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7362
7397
|
if (type) {
|
|
7363
7398
|
const targetType = change.relationshipType ?? (type.forwardRelationships?.[change.relationshipName] ? "forward" : type.backwardRelationships?.[change.relationshipName] ? "backward" : null);
|
|
7364
7399
|
if (targetType === "forward" && type.forwardRelationships?.[change.relationshipName]) {
|
|
7365
|
-
const
|
|
7400
|
+
const remaining = copySnapshotRecord(type.forwardRelationships);
|
|
7401
|
+
delete remaining[change.relationshipName];
|
|
7366
7402
|
types[change.typeName] = {
|
|
7367
7403
|
...type,
|
|
7368
7404
|
forwardRelationships: Object.keys(remaining).length > 0 ? remaining : void 0
|
|
7369
7405
|
};
|
|
7370
7406
|
} else if (targetType === "backward" && type.backwardRelationships?.[change.relationshipName]) {
|
|
7371
|
-
const
|
|
7407
|
+
const remaining = copySnapshotRecord(type.backwardRelationships);
|
|
7408
|
+
delete remaining[change.relationshipName];
|
|
7372
7409
|
types[change.typeName] = {
|
|
7373
7410
|
...type,
|
|
7374
7411
|
backwardRelationships: Object.keys(remaining).length > 0 ? remaining : void 0
|
|
@@ -7392,18 +7429,18 @@ function applyDiffToSnapshot(snapshot, diff) {
|
|
|
7392
7429
|
break;
|
|
7393
7430
|
}
|
|
7394
7431
|
}
|
|
7395
|
-
return {
|
|
7432
|
+
return normalizeSchemaSnapshot({
|
|
7396
7433
|
...snapshot,
|
|
7397
7434
|
types,
|
|
7398
7435
|
createdAt: diff.createdAt
|
|
7399
|
-
};
|
|
7436
|
+
});
|
|
7400
7437
|
}
|
|
7401
7438
|
/**
|
|
7402
7439
|
* Reconstruct the latest schema snapshot from all migration files
|
|
7403
7440
|
* Returns null if no migrations exist
|
|
7404
7441
|
* @param {string} migrationsDir - Migrations directory path
|
|
7405
7442
|
* @param {number} [maxVersion] - Optional maximum migration version to apply
|
|
7406
|
-
* @returns {
|
|
7443
|
+
* @returns {NormalizedSchemaSnapshot | null} Reconstructed normalized snapshot or null if no migrations exist
|
|
7407
7444
|
*/
|
|
7408
7445
|
function reconstructSnapshotFromMigrations(migrationsDir, maxVersion) {
|
|
7409
7446
|
const files = getMigrationFiles(migrationsDir);
|
|
@@ -7766,8 +7803,9 @@ function comparePermissions(ctx, typeName, oldRecordPerm, newRecordPerm, oldGqlP
|
|
|
7766
7803
|
* @returns {MigrationDiff} Migration diff between snapshots
|
|
7767
7804
|
*/
|
|
7768
7805
|
function compareSnapshots(previous, current) {
|
|
7769
|
-
|
|
7770
|
-
|
|
7806
|
+
return compareNormalizedSnapshots(normalizeSchemaSnapshot(previous), normalizeSchemaSnapshot(current));
|
|
7807
|
+
}
|
|
7808
|
+
function compareNormalizedSnapshots(previous, current) {
|
|
7771
7809
|
const ctx = {
|
|
7772
7810
|
changes: [],
|
|
7773
7811
|
breakingChanges: [],
|
|
@@ -7902,7 +7940,7 @@ function assertValidMigrationFiles(migrationsDir, namespace) {
|
|
|
7902
7940
|
* @returns {Record<string, SnapshotFieldConfig>} Converted field configs
|
|
7903
7941
|
*/
|
|
7904
7942
|
function convertRemoteFieldsToSnapshot(remoteType) {
|
|
7905
|
-
const fields =
|
|
7943
|
+
const fields = createSnapshotRecord();
|
|
7906
7944
|
const remoteFields = remoteType.schema?.fields ?? {};
|
|
7907
7945
|
for (const [fieldName, remoteField] of Object.entries(remoteFields)) {
|
|
7908
7946
|
const config = {
|
|
@@ -7938,11 +7976,35 @@ function convertRemoteFieldsToSnapshot(remoteType) {
|
|
|
7938
7976
|
...remoteField.serial.format && { format: remoteField.serial.format }
|
|
7939
7977
|
};
|
|
7940
7978
|
if (remoteField.scale !== void 0) config.scale = remoteField.scale;
|
|
7941
|
-
normalizeSnapshotField(config);
|
|
7942
7979
|
fields[fieldName] = config;
|
|
7943
7980
|
}
|
|
7944
7981
|
return fields;
|
|
7945
7982
|
}
|
|
7983
|
+
function convertRemoteTypeToSnapshot(remoteType) {
|
|
7984
|
+
const snapshotType = {
|
|
7985
|
+
name: remoteType.name,
|
|
7986
|
+
pluralForm: remoteType.schema?.settings?.pluralForm || inflection.pluralize(remoteType.name),
|
|
7987
|
+
fields: convertRemoteFieldsToSnapshot(remoteType)
|
|
7988
|
+
};
|
|
7989
|
+
if (remoteType.schema?.description) snapshotType.description = remoteType.schema.description;
|
|
7990
|
+
return snapshotType;
|
|
7991
|
+
}
|
|
7992
|
+
/**
|
|
7993
|
+
* Convert remote TailorDB types into the normalized snapshot shape used by drift checks.
|
|
7994
|
+
* @param {ProtoTailorDBType[]} remoteTypes - Remote TailorDB types from the API
|
|
7995
|
+
* @param {string} namespace - Namespace for the reconstructed snapshot
|
|
7996
|
+
* @returns {NormalizedSchemaSnapshot} Normalized snapshot-shaped remote state
|
|
7997
|
+
*/
|
|
7998
|
+
function createSnapshotFromRemoteTypes(remoteTypes, namespace) {
|
|
7999
|
+
const types = createSnapshotRecord();
|
|
8000
|
+
for (const remoteType of remoteTypes) types[remoteType.name] = convertRemoteTypeToSnapshot(remoteType);
|
|
8001
|
+
return normalizeSchemaSnapshot({
|
|
8002
|
+
version: 1,
|
|
8003
|
+
namespace,
|
|
8004
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
8005
|
+
types
|
|
8006
|
+
});
|
|
8007
|
+
}
|
|
7946
8008
|
/**
|
|
7947
8009
|
* Compare a single field between remote and snapshot
|
|
7948
8010
|
* @param {string} typeName - Name of the type
|
|
@@ -8003,12 +8065,13 @@ const SYSTEM_FIELDS = /* @__PURE__ */ new Set(["id"]);
|
|
|
8003
8065
|
* @returns {SchemaDrift[]} List of drifts detected
|
|
8004
8066
|
*/
|
|
8005
8067
|
function compareRemoteWithSnapshot(remoteTypes, snapshot) {
|
|
8006
|
-
|
|
8068
|
+
return compareNormalizedRemoteWithSnapshot(createSnapshotFromRemoteTypes(remoteTypes, snapshot.namespace), normalizeSchemaSnapshot(snapshot));
|
|
8069
|
+
}
|
|
8070
|
+
function compareNormalizedRemoteWithSnapshot(remoteSnapshot, snapshot) {
|
|
8007
8071
|
const drifts = [];
|
|
8008
|
-
const remoteTypeMap =
|
|
8009
|
-
for (const remoteType of remoteTypes) remoteTypeMap.set(remoteType.name, remoteType);
|
|
8072
|
+
const remoteTypeMap = new Map(Object.entries(remoteSnapshot.types));
|
|
8010
8073
|
const snapshotTypeNames = new Set(Object.keys(snapshot.types));
|
|
8011
|
-
const remoteTypeNames = new Set(
|
|
8074
|
+
const remoteTypeNames = new Set(Object.keys(remoteSnapshot.types));
|
|
8012
8075
|
for (const typeName of snapshotTypeNames) if (!remoteTypeNames.has(typeName)) drifts.push({
|
|
8013
8076
|
typeName,
|
|
8014
8077
|
kind: "type_missing_remote",
|
|
@@ -8023,7 +8086,7 @@ function compareRemoteWithSnapshot(remoteTypes, snapshot) {
|
|
|
8023
8086
|
if (!remoteTypeNames.has(typeName)) continue;
|
|
8024
8087
|
const remoteType = assertDefined(remoteTypeMap.get(typeName), `type "${typeName}" missing from remoteTypeMap`);
|
|
8025
8088
|
const snapshotType = assertDefined(snapshot.types[typeName], `type "${typeName}" missing from snapshot`);
|
|
8026
|
-
const remoteFields =
|
|
8089
|
+
const remoteFields = remoteType.fields;
|
|
8027
8090
|
const snapshotFields = snapshotType.fields;
|
|
8028
8091
|
const remoteFieldNames = new Set(Object.keys(remoteFields).filter((f) => !SYSTEM_FIELDS.has(f)));
|
|
8029
8092
|
const snapshotFieldNames = new Set(Object.keys(snapshotFields).filter((f) => !SYSTEM_FIELDS.has(f)));
|
|
@@ -10264,11 +10327,11 @@ async function registerJobFunctions(client, changeSet, appName, appId, unchanged
|
|
|
10264
10327
|
const allUsedJobNames = /* @__PURE__ */ new Set();
|
|
10265
10328
|
unchangedWorkflowJobNames.forEach((jobName) => allUsedJobNames.add(jobName));
|
|
10266
10329
|
for (const item of [...changeSet.creates, ...changeSet.updates]) for (const jobName of item.usedJobNames) allUsedJobNames.add(jobName);
|
|
10267
|
-
const existingJobFunctions = await fetchAll(async (pageToken,
|
|
10330
|
+
const existingJobFunctions = await fetchAll(async (pageToken, _maxPageSize) => {
|
|
10268
10331
|
const response = await client.listWorkflowJobFunctions({
|
|
10269
10332
|
workspaceId,
|
|
10270
10333
|
pageToken,
|
|
10271
|
-
pageSize:
|
|
10334
|
+
pageSize: 100
|
|
10272
10335
|
});
|
|
10273
10336
|
return [response.jobFunctions.map((j) => j.name), response.nextPageToken];
|
|
10274
10337
|
});
|
|
@@ -10449,11 +10512,11 @@ async function planWorkflow(client, workspaceId, appName, appId, workflows, main
|
|
|
10449
10512
|
}
|
|
10450
10513
|
async function planWorkflowJobFunctionDeletes(params) {
|
|
10451
10514
|
const { client, workspaceId, appName, appId, retainedWorkflowJobNames } = params;
|
|
10452
|
-
const existingJobFunctions = await fetchAll(async (pageToken,
|
|
10515
|
+
const existingJobFunctions = await fetchAll(async (pageToken, _maxPageSize) => {
|
|
10453
10516
|
const response = await client.listWorkflowJobFunctions({
|
|
10454
10517
|
workspaceId,
|
|
10455
10518
|
pageToken,
|
|
10456
|
-
pageSize:
|
|
10519
|
+
pageSize: 100
|
|
10457
10520
|
});
|
|
10458
10521
|
return [response.jobFunctions.map((jobFunction) => jobFunction.name), response.nextPageToken];
|
|
10459
10522
|
});
|
|
@@ -10609,6 +10672,17 @@ async function validatePlan(input) {
|
|
|
10609
10672
|
violations
|
|
10610
10673
|
});
|
|
10611
10674
|
}
|
|
10675
|
+
function inPlaceReplaces(schema, kind, items) {
|
|
10676
|
+
validateItems({
|
|
10677
|
+
validator,
|
|
10678
|
+
schema,
|
|
10679
|
+
kind,
|
|
10680
|
+
action: "replace",
|
|
10681
|
+
items,
|
|
10682
|
+
requestKey: "updateRequest",
|
|
10683
|
+
violations
|
|
10684
|
+
});
|
|
10685
|
+
}
|
|
10612
10686
|
creates(CreateTailorDBServiceRequestSchema, "TailorDB service", tailorDB.changeSet.service.creates);
|
|
10613
10687
|
creates(CreateTailorDBTypeRequestSchema, "TailorDB type", tailorDB.changeSet.type.creates);
|
|
10614
10688
|
updates(UpdateTailorDBTypeRequestSchema, "TailorDB type", tailorDB.changeSet.type.updates);
|
|
@@ -10732,7 +10806,7 @@ async function validatePlan(input) {
|
|
|
10732
10806
|
}
|
|
10733
10807
|
})));
|
|
10734
10808
|
creates(CreateAuthConnectionRequestSchema, "Auth connection", auth.changeSet.connection.creates);
|
|
10735
|
-
|
|
10809
|
+
inPlaceReplaces(UpdateAuthConnectionRequestSchema, "Auth connection", auth.changeSet.connection.replaces);
|
|
10736
10810
|
if (violations.length === 0) return;
|
|
10737
10811
|
const resourceNames = new Set(violations.map((v) => `${v.kind}:${v.name}`));
|
|
10738
10812
|
logger.error(`Pre-flight validation found ${violations.length} violation(s) across ${resourceNames.size} resource(s):`);
|
|
@@ -16122,7 +16196,7 @@ async function generate(options) {
|
|
|
16122
16196
|
if (options.init) await handleInitOption(namespacesWithMigrations, options.yes);
|
|
16123
16197
|
let pluginManager;
|
|
16124
16198
|
if (plugins.length > 0) pluginManager = new PluginManager(plugins);
|
|
16125
|
-
const { defineApplication } = await import("./application-
|
|
16199
|
+
const { defineApplication } = await import("./application-a_ApFuPh.mjs");
|
|
16126
16200
|
const application = defineApplication({
|
|
16127
16201
|
config,
|
|
16128
16202
|
pluginManager
|
|
@@ -18387,4 +18461,4 @@ function isDeno() {
|
|
|
18387
18461
|
|
|
18388
18462
|
//#endregion
|
|
18389
18463
|
export { getOrganization as $, generateAllTypeManifestsFromSnapshot as $t, listCommand$3 as A, apiCommand as An, getExecutorWaitFailureMessage as At, show as B, paginationArgs as Bn, listWorkflowExecutions as Bt, listCommand$2 as C, getNamespacesWithMigrations as Cn, listWebhookExecutors as Ct, waitWorkflowExecution as D, PluginManager as Dn, listCommand$9 as Dt, waitCommand as E, sdkNameLabelKey as En, triggerExecutor as Et, generateCommand as F, configArg as Fn, startWorkflow as Ft, removeCommand$1 as G, deploy as Gt, extractOwnedNamespaces as H, workspaceArgs as Hn, formatKeyValueTable as Ht, generateMigrationScript as I, confirmationArgs as In, getCommand$5 as It, organizationTree as J, bundleMigrationScript as Jt, updateCommand$1 as K, executeScript as Kt, writeDbTypesFile as L, deploymentArgs as Ln, getWorkflow as Lt, truncate as M, assertWritable as Mn, listExecutorJobs as Mt, truncateCommand as N, defineAppCommand as Nn, watchExecutorJob as Nt, resumeCommand as O, generateUserTypes as On, listExecutors as Ot, generate as P, commonArgs as Pn, startCommand as Pt, getCommand$1 as Q, compareSnapshotWithRemote as Qt, getConfiguredEditorCommand as R, isVerbose as Rn, executionsCommand as Rt, listApps as S, hasChanges as Sn, getFunctionRegistry as St, healthCommand as T, resourceTrn as Tn, triggerCommand as Tt, logBetaWarning as U, getCommand$6 as Ut, showCommand as V, toPageDirection as Vn, functionExecutionStatusToString as Vt, remove as W, getExecutor as Wt, listCommand$4 as X, handleOptionalToRequiredError as Xt, treeCommand as Y, MIGRATION_LABEL_KEY as Yt, listOrganizations as Z, parseMigrationLabelNumber as Zt, getWorkspace as _, reconstructSnapshotFromMigrations as _n, listMachineUsers as _t, updateUser as a, SCHEMA_FILE_NAME as an, getFolder as at, createCommand as b, formatDiffSummary as bn, listFunctionRegistries as bt, listCommand as c, compareSnapshots as cn, createCommand$1 as ct, inviteUser as d, getMigrationDirPath as dn, listOAuth2Clients as dt, protoGqlPermission as en, updateCommand$2 as et, restoreCommand as f, getMigrationFilePath as fn, getCommand$3 as ft, getCommand as g, loadDiff as gn, listCommand$7 as gt, listWorkspaces as h, isValidMigrationNumber as hn, tokenCommand as ht, updateCommand as i, MIGRATE_FILE_NAME as in, getCommand$2 as it, listWorkflows as j, apiCall as jn, jobsCommand as jt, resumeWorkflow as k, prompt as kn, getExecutorJob as kt, listUsers as l, createSnapshotFromLocalTypes as ln, createFolder as lt, listCommand$1 as m, getNextMigrationNumber as mn, getMachineUserToken as mt, query as n, DIFF_FILE_NAME as nn, listCommand$5 as nt, removeCommand as o, assertValidMigrationFiles as on, deleteCommand$1 as ot, restoreWorkspace as p, getMigrationFiles as pn, getOAuth2Client as pt, updateOrganization as q, waitForExecution as qt, queryCommand as r, INITIAL_SCHEMA_NUMBER as rn, listFolders as rt, removeUser as s, compareLocalTypesWithSnapshot as sn, deleteFolder as st, isNativeTypeScriptRuntime as t, DB_TYPES_FILE_NAME as tn, updateFolder as tt, inviteCommand as u, getLatestMigrationNumber as un, listCommand$6 as ut, deleteCommand as v, formatMigrationNumber as vn, generate$1 as vt, getAppHealth as w, ensureConfigId as wn, webhookCommand as wt, createWorkspace as x, formatMigrationDiff as xn, getCommand$4 as xt, deleteWorkspace as y, parseMigrationNumberArg as yn, listCommand$8 as yt, openInConfiguredEditor as z, pagedLogArgs as zn, getWorkflowExecution as zt };
|
|
18390
|
-
//# sourceMappingURL=runtime-
|
|
18464
|
+
//# sourceMappingURL=runtime-BpHVwifd.mjs.map
|