@tailor-platform/sdk 1.8.0 → 1.9.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 +21 -0
- package/dist/application-BdZ8qL7I.mjs +4 -0
- package/dist/{application-HIu5peO4.mjs → application-_ArEfxmV.mjs} +56 -7
- package/dist/application-_ArEfxmV.mjs.map +1 -0
- package/dist/cli/index.mjs +42 -8
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +156 -2
- package/dist/cli/lib.mjs +3 -3
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/configure/index.d.mts +2 -2
- package/dist/configure/index.mjs.map +1 -1
- package/dist/{index-BwJ7-efr.d.mts → index-B07hXFjo.d.mts} +2 -2
- package/dist/{index-Dkm2qwmF.d.mts → index-x4xcWJm1.d.mts} +96 -28
- package/dist/{list-D1K7WwpV.mjs → update-DZs1loy_.mjs} +688 -88
- package/dist/update-DZs1loy_.mjs.map +1 -0
- package/dist/utils/test/index.d.mts +2 -2
- package/docs/cli/tailordb.md +8 -8
- package/docs/cli/workflow.md +29 -29
- package/docs/cli/workspace.md +234 -5
- package/package.json +1 -1
- package/dist/application-HIu5peO4.mjs.map +0 -1
- package/dist/application-ViV4dYwI.mjs +0 -4
- package/dist/list-D1K7WwpV.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as OAuth2ClientSchema, c as tailorUserMap, d as styles, f as symbols, i as ExecutorSchema, l as loadFilesWithIgnores, n as WorkflowJobSchema, o as ResolverSchema, r as WorkflowSchema, s as stringifyFunction, t as defineApplication, u as logger } from "./application-
|
|
1
|
+
import { a as OAuth2ClientSchema, c as tailorUserMap, d as styles, f as symbols, i as ExecutorSchema, l as loadFilesWithIgnores, n as WorkflowJobSchema, o as ResolverSchema, r as WorkflowSchema, s as stringifyFunction, t as defineApplication, u as logger } from "./application-_ArEfxmV.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { arg, defineCommand } from "politty";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -44,33 +44,35 @@ function isCLIError(error) {
|
|
|
44
44
|
|
|
45
45
|
//#endregion
|
|
46
46
|
//#region src/cli/args.ts
|
|
47
|
-
const durationUnits = [
|
|
48
|
-
"ms",
|
|
49
|
-
"s",
|
|
50
|
-
"m"
|
|
51
|
-
];
|
|
52
47
|
const unitToMs = {
|
|
53
48
|
ms: 1,
|
|
54
49
|
s: 1e3,
|
|
55
50
|
m: 60 * 1e3
|
|
56
51
|
};
|
|
52
|
+
const durationPattern = /^(\d+)(ms|s|m)$/;
|
|
57
53
|
/**
|
|
58
54
|
* Schema for duration string validation (e.g., "3s", "500ms", "1m")
|
|
59
|
-
*
|
|
55
|
+
* Only validates format; use parseDuration() to convert to milliseconds
|
|
60
56
|
*/
|
|
61
|
-
const
|
|
62
|
-
const match =
|
|
63
|
-
return parseInt(match[1], 10)
|
|
64
|
-
});
|
|
57
|
+
const durationArg = z.string().refine((val) => durationPattern.test(val), { message: "Invalid duration format. Expected format: '3s', '500ms', '1m'" }).refine((val) => {
|
|
58
|
+
const match = val.match(durationPattern);
|
|
59
|
+
return parseInt(match[1], 10) > 0;
|
|
60
|
+
}, { message: "Duration must be greater than 0" });
|
|
65
61
|
/**
|
|
66
|
-
* Parse a duration string
|
|
67
|
-
* @param duration - Duration string
|
|
62
|
+
* Parse a validated duration string into milliseconds
|
|
63
|
+
* @param duration - Duration string (e.g., "3s", "500ms", "1m")
|
|
68
64
|
* @returns Duration in milliseconds
|
|
69
65
|
*/
|
|
70
66
|
function parseDuration(duration) {
|
|
71
|
-
|
|
67
|
+
const match = duration.match(durationPattern);
|
|
68
|
+
return parseInt(match[1], 10) * unitToMs[match[2]];
|
|
72
69
|
}
|
|
73
70
|
/**
|
|
71
|
+
* Schema for positive integer validation (from string input)
|
|
72
|
+
* Transforms the string to a number
|
|
73
|
+
*/
|
|
74
|
+
const positiveIntArg = z.coerce.number().int().positive();
|
|
75
|
+
/**
|
|
74
76
|
* Load env files from parsed arguments.
|
|
75
77
|
* Processes --env-file first, then --env-file-if-exists.
|
|
76
78
|
*
|
|
@@ -221,6 +223,14 @@ const Subgraph_ServiceTypeSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_appli
|
|
|
221
223
|
* @generated from enum tailor.v1.Subgraph.ServiceType
|
|
222
224
|
*/
|
|
223
225
|
const Subgraph_ServiceType = /* @__PURE__ */ tsEnum(Subgraph_ServiceTypeSchema);
|
|
226
|
+
/**
|
|
227
|
+
* Describes the enum tailor.v1.ApplicationSchemaUpdateAttemptStatus.
|
|
228
|
+
*/
|
|
229
|
+
const ApplicationSchemaUpdateAttemptStatusSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_application_resource, 0);
|
|
230
|
+
/**
|
|
231
|
+
* @generated from enum tailor.v1.ApplicationSchemaUpdateAttemptStatus
|
|
232
|
+
*/
|
|
233
|
+
const ApplicationSchemaUpdateAttemptStatus = /* @__PURE__ */ tsEnum(ApplicationSchemaUpdateAttemptStatusSchema);
|
|
224
234
|
|
|
225
235
|
//#endregion
|
|
226
236
|
//#region ../tailor-proto/src/tailor/v1/resource_pb.js
|
|
@@ -268,6 +278,14 @@ const file_tailor_v1_application = /* @__PURE__ */ fileDesc("Cht0YWlsb3IvdjEvYXB
|
|
|
268
278
|
file_tailor_v1_application_resource,
|
|
269
279
|
file_tailor_v1_resource
|
|
270
280
|
]);
|
|
281
|
+
/**
|
|
282
|
+
* Describes the enum tailor.v1.GetApplicationSchemaHealthResponse.ApplicationSchemaHealthStatus.
|
|
283
|
+
*/
|
|
284
|
+
const GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatusSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_application, 11, 0);
|
|
285
|
+
/**
|
|
286
|
+
* @generated from enum tailor.v1.GetApplicationSchemaHealthResponse.ApplicationSchemaHealthStatus
|
|
287
|
+
*/
|
|
288
|
+
const GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus = /* @__PURE__ */ tsEnum(GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatusSchema);
|
|
271
289
|
|
|
272
290
|
//#endregion
|
|
273
291
|
//#region ../tailor-proto/src/tailor/v1/secret_manager_resource_pb.js
|
|
@@ -412,7 +430,7 @@ const file_tailor_v1_events = /* @__PURE__ */ fileDesc("ChZ0YWlsb3IvdjEvZXZlbnRz
|
|
|
412
430
|
/**
|
|
413
431
|
* Describes the file tailor/v1/executor_resource.proto.
|
|
414
432
|
*/
|
|
415
|
-
const file_tailor_v1_executor_resource = /* @__PURE__ */ fileDesc("
|
|
433
|
+
const file_tailor_v1_executor_resource = /* @__PURE__ */ fileDesc("CiF0YWlsb3IvdjEvZXhlY3V0b3JfcmVzb3VyY2UucHJvdG8SCXRhaWxvci52MSL9AgoQRXhlY3V0b3JFeGVjdXRvchI2CgRuYW1lGAEgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEhMKC2Rlc2NyaXB0aW9uGAIgASgJEkIKDHRyaWdnZXJfdHlwZRgDIAEoDjIeLnRhaWxvci52MS5FeGVjdXRvclRyaWdnZXJUeXBlQgy6SAmCAQYYARgCGAMSQAoOdHJpZ2dlcl9jb25maWcYBCABKAsyIC50YWlsb3IudjEuRXhlY3V0b3JUcmlnZ2VyQ29uZmlnQga6SAPIAQESRAoLdGFyZ2V0X3R5cGUYBSABKA4yHS50YWlsb3IudjEuRXhlY3V0b3JUYXJnZXRUeXBlQhC6SA2CAQoYARgCGAMYBBgFEj4KDXRhcmdldF9jb25maWcYBiABKAsyHy50YWlsb3IudjEuRXhlY3V0b3JUYXJnZXRDb25maWdCBrpIA8gBARIQCghkaXNhYmxlZBgHIAEoCCLrAQoVRXhlY3V0b3JUcmlnZ2VyQ29uZmlnEjwKCHNjaGVkdWxlGAEgASgLMigudGFpbG9yLnYxLkV4ZWN1dG9yVHJpZ2dlclNjaGVkdWxlQ29uZmlnSAASNgoFZXZlbnQYAiABKAsyJS50YWlsb3IudjEuRXhlY3V0b3JUcmlnZ2VyRXZlbnRDb25maWdIABJLChBpbmNvbWluZ193ZWJob29rGAMgASgLMi8udGFpbG9yLnYxLkV4ZWN1dG9yVHJpZ2dlckluY29taW5nV2ViaG9va0NvbmZpZ0gAQg8KBmNvbmZpZxIFukgCCAEiVgodRXhlY3V0b3JUcmlnZ2VyU2NoZWR1bGVDb25maWcSGQoIdGltZXpvbmUYASABKAlCB7pIBHICEAESGgoJZnJlcXVlbmN5GAIgASgJQge6SARyAhABIl8KGkV4ZWN1dG9yVHJpZ2dlckV2ZW50Q29uZmlnEhsKCmV2ZW50X3R5cGUYASABKAlCB7pIBHICEAESJAoJY29uZGl0aW9uGAIgASgLMhEudGFpbG9yLnYxLlNjcmlwdCI7CiRFeGVjdXRvclRyaWdnZXJJbmNvbWluZ1dlYmhvb2tDb25maWcSEwoGc2VjcmV0GAEgASgJQgPgQQMingIKFEV4ZWN1dG9yVGFyZ2V0Q29uZmlnEjMKB3dlYmhvb2sYASABKAsyIC50YWlsb3IudjEuRXhlY3V0b3JXZWJob29rQ29uZmlnSAASRgoOdGFpbG9yX2dyYXBocWwYAiABKAsyLC50YWlsb3IudjEuRXhlY3V0b3JUYXJnZXRUYWlsb3JHcmFwaHFsQ29uZmlnSAASOwoIZnVuY3Rpb24YAyABKAsyJy50YWlsb3IudjEuRXhlY3V0b3JUYXJnZXRGdW5jdGlvbkNvbmZpZ0gAEjsKCHdvcmtmbG93GAUgASgLMicudGFpbG9yLnYxLkV4ZWN1dG9yVGFyZ2V0V29ya2Zsb3dDb25maWdIAEIPCgZjb25maWcSBbpIAggBIrkBChVFeGVjdXRvcldlYmhvb2tDb25maWcSHgoDdXJsGAEgASgLMhEudGFpbG9yLnYxLlNjcmlwdBImCgZzZWNyZXQYAiABKAsyFi50YWlsb3IudjEuU2VjcmV0VmFsdWUSNwoHaGVhZGVycxgDIAMoCzImLnRhaWxvci52MS5FeGVjdXRvclRhcmdldFdlYmhvb2tIZWFkZXISHwoEYm9keRgEIAEoCzIRLnRhaWxvci52MS5TY3JpcHQikQEKG0V4ZWN1dG9yVGFyZ2V0V2ViaG9va0hlYWRlchIUCgNrZXkYASABKAlCB7pIBHICEAESHAoJcmF3X3ZhbHVlGAIgASgJQge6SARyAhABSAASLgoMc2VjcmV0X3ZhbHVlGAMgASgLMhYudGFpbG9yLnYxLlNlY3JldFZhbHVlSABCDgoFdmFsdWUSBbpIAggBIqUBCiFFeGVjdXRvclRhcmdldFRhaWxvckdyYXBocWxDb25maWcSGQoIYXBwX25hbWUYASABKAlCB7pIBHICEAESFgoFcXVlcnkYAiABKAlCB7pIBHICEAESJAoJdmFyaWFibGVzGAMgASgLMhEudGFpbG9yLnYxLlNjcmlwdBInCgdpbnZva2VyGAQgASgLMhYudGFpbG9yLnYxLkF1dGhJbnZva2VyIsUBChxFeGVjdXRvclRhcmdldEZ1bmN0aW9uQ29uZmlnEhUKBG5hbWUYASABKAlCB7pIBHICEAESDgoGc2NyaXB0GAIgASgJEiQKCXZhcmlhYmxlcxgDIAEoCzIRLnRhaWxvci52MS5TY3JpcHQSJwoHaW52b2tlchgEIAEoCzIWLnRhaWxvci52MS5BdXRoSW52b2tlchIgCgpzY3JpcHRfcmVmGAUgASgJQge6SARyAhABSACIAQFCDQoLX3NjcmlwdF9yZWYijQEKHEV4ZWN1dG9yVGFyZ2V0V29ya2Zsb3dDb25maWcSHgoNd29ya2Zsb3dfbmFtZRgBIAEoCUIHukgEcgIQARIkCgl2YXJpYWJsZXMYAiABKAsyES50YWlsb3IudjEuU2NyaXB0EicKB2ludm9rZXIYAyABKAsyFi50YWlsb3IudjEuQXV0aEludm9rZXIi3gIKC0V4ZWN1dG9ySm9iEgoKAmlkGAEgASgJEhUKDWV4ZWN1dG9yX25hbWUYAiABKAkSLAoGc3RhdHVzGAMgASgOMhwudGFpbG9yLnYxLkV4ZWN1dG9ySm9iU3RhdHVzEiYKBWFjdG9yGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIlCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVldmVudF9pZGVtcG90ZW5jeV9rZXkYBiABKAkSMAoMc2NoZWR1bGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLLAgoSRXhlY3V0b3JKb2JBdHRlbXB0EgoKAmlkGAEgASgJEg4KBmpvYl9pZBgCIAEoCRIsCgZzdGF0dXMYAyABKA4yHC50YWlsb3IudjEuRXhlY3V0b3JKb2JTdGF0dXMSDQoFZXJyb3IYBCABKAkSLgoKc3RhcnRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE29wZXJhdGlvbl9yZWZlcmVuY2UYCSABKAkiTwoXRXhlY3V0b3JJbmNvbWluZ1dlYmhvb2sSFQoNZXhlY3V0b3JfbmFtZRgBIAEoCRILCgN1cmwYAiABKAkSEAoIZGlzYWJsZWQYAyABKAgqrQEKE0V4ZWN1dG9yVHJpZ2dlclR5cGUSJQohRVhFQ1VUT1JfVFJJR0dFUl9UWVBFX1VOU1BFQ0lGSUVEEAASIgoeRVhFQ1VUT1JfVFJJR0dFUl9UWVBFX1NDSEVEVUxFEAESHwobRVhFQ1VUT1JfVFJJR0dFUl9UWVBFX0VWRU5UEAISKgomRVhFQ1VUT1JfVFJJR0dFUl9UWVBFX0lOQ09NSU5HX1dFQkhPT0sQAyryAQoSRXhlY3V0b3JUYXJnZXRUeXBlEiQKIEVYRUNVVE9SX1RBUkdFVF9UWVBFX1VOU1BFQ0lGSUVEEAASIAocRVhFQ1VUT1JfVEFSR0VUX1RZUEVfV0VCSE9PSxABEicKI0VYRUNVVE9SX1RBUkdFVF9UWVBFX1RBSUxPUl9HUkFQSFFMEAISIQodRVhFQ1VUT1JfVEFSR0VUX1RZUEVfRlVOQ1RJT04QAxIlCiFFWEVDVVRPUl9UQVJHRVRfVFlQRV9KT0JfRlVOQ1RJT04QBBIhCh1FWEVDVVRPUl9UQVJHRVRfVFlQRV9XT1JLRkxPVxAFKt0BChFFeGVjdXRvckpvYlN0YXR1cxIjCh9FWEVDVVRPUl9KT0JfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobRVhFQ1VUT1JfSk9CX1NUQVRVU19QRU5ESU5HEAESHwobRVhFQ1VUT1JfSk9CX1NUQVRVU19SVU5OSU5HEAISHwobRVhFQ1VUT1JfSk9CX1NUQVRVU19TVUNDRVNTEAMSHgoaRVhFQ1VUT1JfSk9CX1NUQVRVU19GQUlMRUQQBBIgChxFWEVDVVRPUl9KT0JfU1RBVFVTX0NBTkNFTEVEEAViBnByb3RvMw", [
|
|
416
434
|
file_buf_validate_validate,
|
|
417
435
|
file_google_api_field_behavior,
|
|
418
436
|
file_google_protobuf_struct,
|
|
@@ -558,7 +576,7 @@ const file_tailor_v1_meter = /* @__PURE__ */ fileDesc("ChV0YWlsb3IvdjEvbWV0ZXIuc
|
|
|
558
576
|
/**
|
|
559
577
|
* Describes the file tailor/v1/pipeline_resource.proto.
|
|
560
578
|
*/
|
|
561
|
-
const file_tailor_v1_pipeline_resource = /* @__PURE__ */ fileDesc("
|
|
579
|
+
const file_tailor_v1_pipeline_resource = /* @__PURE__ */ fileDesc("CiF0YWlsb3IvdjEvcGlwZWxpbmVfcmVzb3VyY2UucHJvdG8SCXRhaWxvci52MSJOCg9QaXBlbGluZVNlcnZpY2USJwoJbmFtZXNwYWNlGAEgASgLMhQudGFpbG9yLnYxLk5hbWVzcGFjZRISCgpjb21tb25fc2RsGAIgASgJIsEOChBQaXBlbGluZVJlc29sdmVyEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFQoNYXV0aG9yaXphdGlvbhgEIAEoCRIXCgpwcmVfc2NyaXB0GAUgASgJSACIAQESGAoLcG9zdF9zY3JpcHQYBiABKAlIAYgBARI3CglwaXBlbGluZXMYByADKAsyJC50YWlsb3IudjEuUGlwZWxpbmVSZXNvbHZlci5QaXBlbGluZRIVCghvbl9lcnJvchgIIAEoCUgCiAEBEjEKBmlucHV0cxgJIAMoCzIhLnRhaWxvci52MS5QaXBlbGluZVJlc29sdmVyLkZpZWxkEjgKCHJlc3BvbnNlGAogASgLMiEudGFpbG9yLnYxLlBpcGVsaW5lUmVzb2x2ZXIuRmllbGRIA4gBARIbCg5vcGVyYXRpb25fdHlwZRgLIAEoCUgEiAEBEiMKCHByZV9ob29rGAwgASgLMhEudGFpbG9yLnYxLlNjcmlwdBIkCglwb3N0X2hvb2sYDSABKAsyES50YWlsb3IudjEuU2NyaXB0EiAKGHB1Ymxpc2hfZXhlY3V0aW9uX2V2ZW50cxgOIAEoCBILCgNzZGwYDyABKAkavQEKBFR5cGUSDAoEa2luZBgBIAEoCRIMCgRuYW1lGAIgASgJEjEKBmZpZWxkcxgEIAMoCzIhLnRhaWxvci52MS5QaXBlbGluZVJlc29sdmVyLkZpZWxkEhAKCHJlcXVpcmVkGAUgASgIEhMKC2Rlc2NyaXB0aW9uGAYgASgJEjkKDmFsbG93ZWRfdmFsdWVzGAcgAygLMiEudGFpbG9yLnYxLlBpcGVsaW5lUmVzb2x2ZXIuVmFsdWVKBAgDEAQaewoFRmllbGQSDAoEbmFtZRgBIAEoCRIuCgR0eXBlGAIgASgLMiAudGFpbG9yLnYxLlBpcGVsaW5lUmVzb2x2ZXIuVHlwZRINCgVhcnJheRgDIAEoCBIQCghyZXF1aXJlZBgEIAEoCBITCgtkZXNjcmlwdGlvbhgFIAEoCRpjCgVWYWx1ZRJFCgV2YWx1ZRgBIAEoCUI2ukgzcjEyHF5bYS16QS1aXVthLXpBLVowLTlfXXswLDYyfSRaBHRydWVaBWZhbHNlWgRudWxsEhMKC2Rlc2NyaXB0aW9uGAIgASgJGo0GCghQaXBlbGluZRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEkEKDm9wZXJhdGlvbl90eXBlGAQgASgOMikudGFpbG9yLnYxLlBpcGVsaW5lUmVzb2x2ZXIuT3BlcmF0aW9uVHlwZRIdChBvcGVyYXRpb25fc291cmNlGAYgASgJSACIAQESHwoXc2tpcF9vcGVyYXRpb25fb25fZXJyb3IYByABKAgSEQoEdGVzdBgIIAEoCUgBiAEBEhsKDnByZV92YWxpZGF0aW9uGAkgASgJSAKIAQESFwoKcHJlX3NjcmlwdBgKIAEoCUgDiAEBEhgKC3Bvc3Rfc2NyaXB0GAsgASgJSASIAQESHAoPcG9zdF92YWxpZGF0aW9uGAwgASgJSAWIAQESGQoMY29udGV4dF9kYXRhGA0gASgJSAaIAQESFQoIZm9yX2VhY2gYDiABKAlIB4gBARIsCgdpbnZva2VyGA8gASgLMhYudGFpbG9yLnYxLkF1dGhJbnZva2VySAiIAQESIwoIcHJlX2hvb2sYECABKAsyES50YWlsb3IudjEuU2NyaXB0EiQKCXBvc3RfaG9vaxgRIAEoCzIRLnRhaWxvci52MS5TY3JpcHQSGwoOb3BlcmF0aW9uX25hbWUYEiABKAlICYgBARIpCg5vcGVyYXRpb25faG9vaxgTIAEoCzIRLnRhaWxvci52MS5TY3JpcHQSIQoUb3BlcmF0aW9uX3NvdXJjZV9yZWYYFCABKAlICogBAUITChFfb3BlcmF0aW9uX3NvdXJjZUIHCgVfdGVzdEIRCg9fcHJlX3ZhbGlkYXRpb25CDQoLX3ByZV9zY3JpcHRCDgoMX3Bvc3Rfc2NyaXB0QhIKEF9wb3N0X3ZhbGlkYXRpb25CDwoNX2NvbnRleHRfZGF0YUILCglfZm9yX2VhY2hCCgoIX2ludm9rZXJCEQoPX29wZXJhdGlvbl9uYW1lQhcKFV9vcGVyYXRpb25fc291cmNlX3JlZkoECAEQAkoECAUQBiJoCg1PcGVyYXRpb25UeXBlEh4KGk9QRVJBVElPTl9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWT1BFUkFUSU9OX1RZUEVfR1JBUEhRTBABEhsKF09QRVJBVElPTl9UWVBFX0ZVTkNUSU9OEAJCDQoLX3ByZV9zY3JpcHRCDgoMX3Bvc3Rfc2NyaXB0QgsKCV9vbl9lcnJvckILCglfcmVzcG9uc2VCEQoPX29wZXJhdGlvbl90eXBlSgQIARACIkMKEVBpcGVsaW5lUmVzb2x2ZXJzEi4KCXJlc29sdmVycxgBIAMoCzIbLnRhaWxvci52MS5QaXBlbGluZVJlc29sdmVyIqgFCh9QaXBlbGluZVJlc29sdmVyRXhlY3V0aW9uUmVzdWx0EgoKAmlkGAEgASgJEhsKE3NvdXJjZV9leGVjdXRpb25faWQYAiABKAkSFQoNcmVzb2x2ZXJfbmFtZRgDIAEoCRJHCgZzdGF0dXMYBCABKA4yNy50YWlsb3IudjEuUGlwZWxpbmVSZXNvbHZlckV4ZWN1dGlvblJlc3VsdC5SZXN1bHRTdGF0dXMSKAoHY29udGV4dBgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMAoPaW5pdGlhbF9jb250ZXh0GAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJsYXN0X3BpcGVsaW5lX25hbWUYByABKAkSHAoUbGFzdF9waXBlbGluZV9hY3Rpb24YCCABKAkSDQoFZXJyb3IYCSABKAkSLgoKc3RhcnRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpUBCgxSZXN1bHRTdGF0dXMSHQoZUkVTVUxUX1NUQVRVU19VTlNQRUNJRklFRBAAEhYKElJFU1VMVF9TVEFUVVNfRE9ORRABEhgKFFJFU1VMVF9TVEFUVVNfRkFJTEVEEAISGQoVUkVTVUxUX1NUQVRVU19BQk9SVEVEEAMSGQoVUkVTVUxUX1NUQVRVU19SRVRSSUVEEARiBnByb3RvMw", [
|
|
562
580
|
file_buf_validate_validate,
|
|
563
581
|
file_google_protobuf_struct,
|
|
564
582
|
file_google_protobuf_timestamp,
|
|
@@ -637,7 +655,7 @@ const file_tailor_v1_staticwebsite = /* @__PURE__ */ fileDesc("Ch10YWlsb3IvdjEvc
|
|
|
637
655
|
/**
|
|
638
656
|
* Describes the file tailor/v1/tailordb_resource.proto.
|
|
639
657
|
*/
|
|
640
|
-
const file_tailor_v1_tailordb_resource = /* @__PURE__ */ fileDesc("
|
|
658
|
+
const file_tailor_v1_tailordb_resource = /* @__PURE__ */ fileDesc("CiF0YWlsb3IvdjEvdGFpbG9yZGJfcmVzb3VyY2UucHJvdG8SCXRhaWxvci52MSJUCg9UYWlsb3JEQlNlcnZpY2USJwoJbmFtZXNwYWNlGAEgASgLMhQudGFpbG9yLnYxLk5hbWVzcGFjZRIYChBkZWZhdWx0X3RpbWV6b25lGAIgASgJIucmCgxUYWlsb3JEQlR5cGUSLQoEbmFtZRgBIAEoCUIfukgcchoyGF5bQS1aXVthLXpBLVowLTldezAsNjJ9JBIyCgZzY2hlbWEYAiABKAsyIi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVDb25maWca3gcKClR5cGVDb25maWcSPgoGZmllbGRzGAEgAygLMi4udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5UeXBlQ29uZmlnLkZpZWxkc0VudHJ5EhMKC2Rlc2NyaXB0aW9uGAIgASgJEjUKCHNldHRpbmdzGAMgASgLMiMudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5UeXBlU2V0dGluZxI/Cg90eXBlX3Blcm1pc3Npb24YBCABKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVQZXJtaXNzaW9uEg8KB2V4dGVuZHMYBSABKAgSNQoKZGlyZWN0aXZlcxgGIAMoCzIhLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRGlyZWN0aXZlEkAKB2luZGV4ZXMYByADKAsyLy50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVDb25maWcuSW5kZXhlc0VudHJ5EkgKEXJlY29yZF9wZXJtaXNzaW9uGAggASgLMigudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5SZWNvcmRQZXJtaXNzaW9uSACIAQESTAoNcmVsYXRpb25zaGlwcxgJIAMoCzI1LnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVHlwZUNvbmZpZy5SZWxhdGlvbnNoaXBzRW50cnkSNgoKcGVybWlzc2lvbhgKIAEoCzIiLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbhI8CgVmaWxlcxgLIAMoCzItLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVHlwZUNvbmZpZy5GaWxlc0VudHJ5GlIKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIyCgV2YWx1ZRgCIAEoCzIjLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRmllbGRDb25maWc6AjgBGk0KDEluZGV4ZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS50YWlsb3IudjEuVGFpbG9yREJUeXBlLkluZGV4OgI4ARpgChJSZWxhdGlvbnNoaXBzRW50cnkSCwoDa2V5GAEgASgJEjkKBXZhbHVlGAIgASgLMioudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5SZWxhdGlvbnNoaXBDb25maWc6AjgBGlAKCkZpbGVzRW50cnkSCwoDa2V5GAEgASgJEjEKBXZhbHVlGAIgASgLMiIudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5GaWxlQ29uZmlnOgI4AUIUChJfcmVjb3JkX3Blcm1pc3Npb24ahwMKC1R5cGVTZXR0aW5nEhMKC2FnZ3JlZ2F0aW9uGAIgASgIEhMKC2J1bGtfdXBzZXJ0GAMgASgIEiUKGGRlZmF1bHRfcXVlcnlfbGltaXRfc2l6ZRgEIAEoA0gAiAEBEiEKFG1heF9idWxrX3Vwc2VydF9zaXplGAUgASgDSAGIAQESPAoLcGx1cmFsX2Zvcm0YBiABKAlCIrpIH3IdMhteJHxeW2Etel1bYS16QS1aMC05XXswLDYyfSRIAogBARIdChVwdWJsaXNoX3JlY29yZF9ldmVudHMYByABKAgSDQoFZHJhZnQYCCABKAgSTAoWZGlzYWJsZV9ncWxfb3BlcmF0aW9ucxgJIAEoCzIsLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRGlzYWJsZUdxbE9wZXJhdGlvbnNCGwoZX2RlZmF1bHRfcXVlcnlfbGltaXRfc2l6ZUIXChVfbWF4X2J1bGtfdXBzZXJ0X3NpemVCDgoMX3BsdXJhbF9mb3JtSgQIARACGlQKFERpc2FibGVHcWxPcGVyYXRpb25zEg4KBmNyZWF0ZRgBIAEoCBIOCgZ1cGRhdGUYAiABKAgSDgoGZGVsZXRlGAMgASgIEgwKBHJlYWQYBCABKAgaTQoJRGlyZWN0aXZlEgwKBG5hbWUYASABKAkSMgoEYXJncxgCIAMoCzIkLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRGlyZWN0aXZlQXJnGisKDERpcmVjdGl2ZUFyZxIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgJGiwKBUluZGV4EhMKC2ZpZWxkX25hbWVzGAEgAygJEg4KBnVuaXF1ZRgCIAEoCBqiBQoLRmllbGRDb25maWcSDAoEdHlwZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIWCglzb3VyY2VfaWQYBCABKAlIAIgBARIQCghyZXF1aXJlZBgFIAEoCBINCgVhcnJheRgGIAEoCBI4Cgh2YWxpZGF0ZRgHIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVmFsaWRhdGVDb25maWcSPwoGZmllbGRzGAggAygLMi8udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5GaWVsZENvbmZpZy5GaWVsZHNFbnRyeRINCgVpbmRleBgJIAEoCBIOCgZ1bmlxdWUYCiABKAgSEwoLZm9yZWlnbl9rZXkYCyABKAgSHQoQZm9yZWlnbl9rZXlfdHlwZRgMIAEoCUgBiAEBEh4KEWZvcmVpZ25fa2V5X2ZpZWxkGA0gASgJSAKIAQESNQoFaG9va3MYDiABKAsyIS50YWlsb3IudjEuVGFpbG9yREJUeXBlLkZpZWxkSG9va0gDiAEBEjUKDmFsbG93ZWRfdmFsdWVzGA8gAygLMh0udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5WYWx1ZRIOCgZ2ZWN0b3IYECABKAgSLgoGc2VyaWFsGBEgASgLMh4udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5TZXJpYWwaUgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEjIKBXZhbHVlGAIgASgLMiMudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5GaWVsZENvbmZpZzoCOAFCDAoKX3NvdXJjZV9pZEITChFfZm9yZWlnbl9rZXlfdHlwZUIUChJfZm9yZWlnbl9rZXlfZmllbGRCCAoGX2hvb2tzSgQIAhADGnAKElJlbGF0aW9uc2hpcENvbmZpZxIQCghyZWZfdHlwZRgBIAEoCRIRCglyZWZfZmllbGQYAiABKAkSEQoJc3JjX2ZpZWxkGAMgASgJEg0KBWFycmF5GAQgASgIEhMKC2Rlc2NyaXB0aW9uGAUgASgJGiEKCkZpbGVDb25maWcSEwoLZGVzY3JpcHRpb24YASABKAkaYwoFVmFsdWUSRQoFdmFsdWUYASABKAlCNrpIM3IxMhxeW2EtekEtWl1bYS16QS1aMC05X117MCw2Mn0kWgR0cnVlWgVmYWxzZVoEbnVsbBITCgtkZXNjcmlwdGlvbhgCIAEoCRqlAQoJRmllbGRIb29rEhgKC2NyZWF0ZV9leHByGAEgASgJSACIAQESGAoLdXBkYXRlX2V4cHIYAiABKAlIAYgBARIhCgZjcmVhdGUYAyABKAsyES50YWlsb3IudjEuU2NyaXB0EiEKBnVwZGF0ZRgEIAEoCzIRLnRhaWxvci52MS5TY3JpcHRCDgoMX2NyZWF0ZV9leHByQg4KDF91cGRhdGVfZXhwchquAQoGU2VyaWFsEhYKBXN0YXJ0GAEgASgDQge6SAQiAiAAEh8KCW1heF92YWx1ZRgCIAEoA0IHukgEIgIgAEgAiAEBElIKBmZvcm1hdBgDIAEoCUI9ukg6cjgYIDI0Xig/Oig/OiUlfFteJV0pKiklKD86WzAtOV0rKT9bZG94WF0oPzooPzolJXxbXiVdKSopJEgBiAEBQgwKCl9tYXhfdmFsdWVCCQoHX2Zvcm1hdBqxAQoOVmFsaWRhdGVDb25maWcSDAoEZXhwchgBIAEoCRJACgZhY3Rpb24YAiABKA4yJC50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pdEFjdGlvbkIKukgHggEEEAEgABIaCg1lcnJvcl9tZXNzYWdlGAMgASgJSACIAQESIQoGc2NyaXB0GAQgASgLMhEudGFpbG9yLnYxLlNjcmlwdEIQCg5fZXJyb3JfbWVzc2FnZRqlAgoOVHlwZVBlcm1pc3Npb24SNgoGY3JlYXRlGAEgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uSXRlbRI0CgRyZWFkGAIgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uSXRlbRI2CgZ1cGRhdGUYAyADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtEjYKBmRlbGV0ZRgEIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbkl0ZW0SNQoFYWRtaW4YBSADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtGrgBChBSZWNvcmRQZXJtaXNzaW9uEjQKBHJlYWQYASADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtEjYKBnVwZGF0ZRgCIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbkl0ZW0SNgoGZGVsZXRlGAMgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uSXRlbRprCg5QZXJtaXNzaW9uSXRlbRJACgZwZXJtaXQYASABKA4yJC50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pdEFjdGlvbkIKukgHggEEEAEgABIKCgJpZBgCIAEoCRILCgNpZHMYAyADKAkakAgKClBlcm1pc3Npb24SOQoGY3JlYXRlGAEgAygLMikudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uLlBvbGljeRI3CgRyZWFkGAIgAygLMikudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uLlBvbGljeRI5CgZ1cGRhdGUYAyADKAsyKS50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uUG9saWN5EjkKBmRlbGV0ZRgEIAMoCzIpLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5Qb2xpY3kauwEKBlBvbGljeRJACgpjb25kaXRpb25zGAEgAygLMiwudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uLkNvbmRpdGlvbhJFCgZwZXJtaXQYAiABKA4yKS50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uUGVybWl0Qgq6SAeCAQQQASAAEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uGtsBCglDb25kaXRpb24SQAoEbGVmdBgBIAEoCzIqLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5PcGVyYW5kQga6SAPIAQESSQoIb3BlcmF0b3IYAiABKA4yKy50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uT3BlcmF0b3JCCrpIB4IBBBABIAASQQoFcmlnaHQYAyABKAsyKi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uT3BlcmFuZEIGukgDyAEBGssBCgdPcGVyYW5kEh0KCnVzZXJfZmllbGQYASABKAlCB7pIBHICEAFIABIfCgxyZWNvcmRfZmllbGQYAiABKAlCB7pIBHICEAFIABIjChBvbGRfcmVjb3JkX2ZpZWxkGAMgASgJQge6SARyAhABSAASIwoQbmV3X3JlY29yZF9maWVsZBgEIAEoCUIHukgEcgIQAUgAEicKBXZhbHVlGAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSABCDQoEa2luZBIFukgCCAEiaQoIT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIPCgtPUEVSQVRPUl9FURABEg8KC09QRVJBVE9SX05FEAISDwoLT1BFUkFUT1JfSU4QAxIQCgxPUEVSQVRPUl9OSU4QBCJDCgZQZXJtaXQSFgoSUEVSTUlUX1VOU1BFQ0lGSUVEEAASEAoMUEVSTUlUX0FMTE9XEAESDwoLUEVSTUlUX0RFTlkQAiJ6CgxQZXJtaXRBY3Rpb24SHQoZUEVSTUlUX0FDVElPTl9VTlNQRUNJRklFRBAAEhcKE1BFUk1JVF9BQ1RJT05fQUxMT1cQARIaChJQRVJNSVRfQUNUSU9OX1NLSVAQAhoCCAESFgoSUEVSTUlUX0FDVElPTl9ERU5ZEAMi/wcKFVRhaWxvckRCR1FMUGVybWlzc2lvbhIPCgJpZBgBIAEoCUID4EEDEjkKCHBvbGljaWVzGAIgAygLMicudGFpbG9yLnYxLlRhaWxvckRCR1FMUGVybWlzc2lvbi5Qb2xpY3kahAIKBlBvbGljeRI+Cgpjb25kaXRpb25zGAEgAygLMioudGFpbG9yLnYxLlRhaWxvckRCR1FMUGVybWlzc2lvbi5Db25kaXRpb24SSwoHYWN0aW9ucxgCIAMoDjInLnRhaWxvci52MS5UYWlsb3JEQkdRTFBlcm1pc3Npb24uQWN0aW9uQhG6SA6SAQsIASIHggEEEAEgABJDCgZwZXJtaXQYAyABKA4yJy50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLlBlcm1pdEIKukgHggEEEAEgABIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBQg4KDF9kZXNjcmlwdGlvbhrVAQoJQ29uZGl0aW9uEj4KBGxlZnQYASABKAsyKC50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLk9wZXJhbmRCBrpIA8gBARJHCghvcGVyYXRvchgCIAEoDjIpLnRhaWxvci52MS5UYWlsb3JEQkdRTFBlcm1pc3Npb24uT3BlcmF0b3JCCrpIB4IBBBABIAASPwoFcmlnaHQYAyABKAsyKC50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLk9wZXJhbmRCBrpIA8gBARpgCgdPcGVyYW5kEh0KCnVzZXJfZmllbGQYASABKAlCB7pIBHICEAFIABInCgV2YWx1ZRgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgAQg0KBGtpbmQSBbpIAggBImkKCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASDwoLT1BFUkFUT1JfRVEQARIPCgtPUEVSQVRPUl9ORRACEg8KC09QRVJBVE9SX0lOEAMSEAoMT1BFUkFUT1JfTklOEAQiqAEKBkFjdGlvbhIWChJBQ1RJT05fVU5TUEVDSUZJRUQQABIOCgpBQ1RJT05fQUxMEAESEQoNQUNUSU9OX0NSRUFURRACEg8KC0FDVElPTl9SRUFEEAMSEQoNQUNUSU9OX1VQREFURRAEEhEKDUFDVElPTl9ERUxFVEUQBRIUChBBQ1RJT05fQUdHUkVHQVRFEAYSFgoSQUNUSU9OX0JVTEtfVVBTRVJUEAciQwoGUGVybWl0EhYKElBFUk1JVF9VTlNQRUNJRklFRBAAEhAKDFBFUk1JVF9BTExPVxABEg8KC1BFUk1JVF9ERU5ZEAJiBnByb3RvMw", [
|
|
641
659
|
file_buf_validate_validate,
|
|
642
660
|
file_google_api_field_behavior,
|
|
643
661
|
file_google_protobuf_struct,
|
|
@@ -646,7 +664,7 @@ const file_tailor_v1_tailordb_resource = /* @__PURE__ */ fileDesc("CiF0YWlsb3Ivd
|
|
|
646
664
|
/**
|
|
647
665
|
* Describes the enum tailor.v1.TailorDBType.Permission.Operator.
|
|
648
666
|
*/
|
|
649
|
-
const TailorDBType_Permission_OperatorSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_tailordb_resource, 1,
|
|
667
|
+
const TailorDBType_Permission_OperatorSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_tailordb_resource, 1, 16, 0);
|
|
650
668
|
/**
|
|
651
669
|
* @generated from enum tailor.v1.TailorDBType.Permission.Operator
|
|
652
670
|
*/
|
|
@@ -654,7 +672,7 @@ const TailorDBType_Permission_Operator = /* @__PURE__ */ tsEnum(TailorDBType_Per
|
|
|
654
672
|
/**
|
|
655
673
|
* Describes the enum tailor.v1.TailorDBType.Permission.Permit.
|
|
656
674
|
*/
|
|
657
|
-
const TailorDBType_Permission_PermitSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_tailordb_resource, 1,
|
|
675
|
+
const TailorDBType_Permission_PermitSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_tailordb_resource, 1, 16, 1);
|
|
658
676
|
/**
|
|
659
677
|
* @generated from enum tailor.v1.TailorDBType.Permission.Permit
|
|
660
678
|
*/
|
|
@@ -733,7 +751,7 @@ const WorkflowExecution_Status = /* @__PURE__ */ tsEnum(WorkflowExecution_Status
|
|
|
733
751
|
/**
|
|
734
752
|
* Describes the file tailor/v1/workflow.proto.
|
|
735
753
|
*/
|
|
736
|
-
const file_tailor_v1_workflow = /* @__PURE__ */ fileDesc("Chh0YWlsb3IvdjEvd29ya2Zsb3cucHJvdG8SCXRhaWxvci52MSLCAgoVQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESPwoNd29ya2Zsb3dfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJIChZtYWluX2pvYl9mdW5jdGlvbl9uYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkkKDWpvYl9mdW5jdGlvbnMYBCADKAsyMi50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0LkpvYkZ1bmN0aW9uc0VudHJ5GjMKEUpvYkZ1bmN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiPwoWQ3JlYXRlV29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyLCAgoVVXBkYXRlV29ya2Zsb3dSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESPwoNd29ya2Zsb3dfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJIChZtYWluX2pvYl9mdW5jdGlvbl9uYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkkKDWpvYl9mdW5jdGlvbnMYBCADKAsyMi50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dSZXF1ZXN0LkpvYkZ1bmN0aW9uc0VudHJ5GjMKEUpvYkZ1bmN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiPwoWVXBkYXRlV29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyJWChVEZWxldGVXb3JrZmxvd1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIdCgt3b3JrZmxvd19pZBgCIAEoCUIIukgFcgOwAQEiGAoWRGVsZXRlV29ya2Zsb3dSZXNwb25zZSJTChJHZXRXb3JrZmxvd1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIdCgt3b3JrZmxvd19pZBgCIAEoCUIIukgFcgOwAQEiPAoTR2V0V29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyJ7ChhHZXRXb3JrZmxvd0J5TmFtZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARI/Cg13b3JrZmxvd19uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIkIKGUdldFdvcmtmbG93QnlOYW1lUmVzcG9uc2USJQoId29ya2Zsb3cYASABKAsyEy50YWlsb3IudjEuV29ya2Zsb3cijwEKFExpc3RXb3JrZmxvd3NSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESEgoKcGFnZV90b2tlbhgCIAEoCRIRCglwYWdlX3NpemUYAyABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBCABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJtChVMaXN0V29ya2Zsb3dzUmVzcG9uc2USJgoJd29ya2Zsb3dzGAEgAygLMhMudGFpbG9yLnYxLldvcmtmbG93EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyK/AQogQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJDChFqb2JfZnVuY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIOCgZzY3JpcHQYAyABKAkSFwoKc2NyaXB0X3JlZhgEIAEoCUgAiAEBQg0KC19zY3JpcHRfcmVmIlkKIUNyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXNwb25zZRI0Cgxqb2JfZnVuY3Rpb24YASABKAsyHi50YWlsb3IudjEuV29ya2Zsb3dKb2JGdW5jdGlvbiK/
|
|
754
|
+
const file_tailor_v1_workflow = /* @__PURE__ */ fileDesc("Chh0YWlsb3IvdjEvd29ya2Zsb3cucHJvdG8SCXRhaWxvci52MSLCAgoVQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESPwoNd29ya2Zsb3dfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJIChZtYWluX2pvYl9mdW5jdGlvbl9uYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkkKDWpvYl9mdW5jdGlvbnMYBCADKAsyMi50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0LkpvYkZ1bmN0aW9uc0VudHJ5GjMKEUpvYkZ1bmN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiPwoWQ3JlYXRlV29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyLCAgoVVXBkYXRlV29ya2Zsb3dSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESPwoNd29ya2Zsb3dfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJIChZtYWluX2pvYl9mdW5jdGlvbl9uYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkkKDWpvYl9mdW5jdGlvbnMYBCADKAsyMi50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dSZXF1ZXN0LkpvYkZ1bmN0aW9uc0VudHJ5GjMKEUpvYkZ1bmN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAzoCOAEiPwoWVXBkYXRlV29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyJWChVEZWxldGVXb3JrZmxvd1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIdCgt3b3JrZmxvd19pZBgCIAEoCUIIukgFcgOwAQEiGAoWRGVsZXRlV29ya2Zsb3dSZXNwb25zZSJTChJHZXRXb3JrZmxvd1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIdCgt3b3JrZmxvd19pZBgCIAEoCUIIukgFcgOwAQEiPAoTR2V0V29ya2Zsb3dSZXNwb25zZRIlCgh3b3JrZmxvdxgBIAEoCzITLnRhaWxvci52MS5Xb3JrZmxvdyJ7ChhHZXRXb3JrZmxvd0J5TmFtZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARI/Cg13b3JrZmxvd19uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIkIKGUdldFdvcmtmbG93QnlOYW1lUmVzcG9uc2USJQoId29ya2Zsb3cYASABKAsyEy50YWlsb3IudjEuV29ya2Zsb3cijwEKFExpc3RXb3JrZmxvd3NSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESEgoKcGFnZV90b2tlbhgCIAEoCRIRCglwYWdlX3NpemUYAyABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBCABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJtChVMaXN0V29ya2Zsb3dzUmVzcG9uc2USJgoJd29ya2Zsb3dzGAEgAygLMhMudGFpbG9yLnYxLldvcmtmbG93EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyK/AQogQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJDChFqb2JfZnVuY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIOCgZzY3JpcHQYAyABKAkSFwoKc2NyaXB0X3JlZhgEIAEoCUgAiAEBQg0KC19zY3JpcHRfcmVmIlkKIUNyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXNwb25zZRI0Cgxqb2JfZnVuY3Rpb24YASABKAsyHi50YWlsb3IudjEuV29ya2Zsb3dKb2JGdW5jdGlvbiK/AQogVXBkYXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJDChFqb2JfZnVuY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIOCgZzY3JpcHQYAyABKAkSFwoKc2NyaXB0X3JlZhgEIAEoCUgAiAEBQg0KC19zY3JpcHRfcmVmIlkKIVVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXNwb25zZRI0Cgxqb2JfZnVuY3Rpb24YASABKAsyHi50YWlsb3IudjEuV29ya2Zsb3dKb2JGdW5jdGlvbiJiCh1HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEiEKD2pvYl9mdW5jdGlvbl9pZBgCIAEoCUIIukgFcgOwAQEiVgoeR2V0V29ya2Zsb3dKb2JGdW5jdGlvblJlc3BvbnNlEjQKDGpvYl9mdW5jdGlvbhgBIAEoCzIeLnRhaWxvci52MS5Xb3JrZmxvd0pvYkZ1bmN0aW9uIooBCiNHZXRXb3JrZmxvd0pvYkZ1bmN0aW9uQnlOYW1lUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkMKEWpvYl9mdW5jdGlvbl9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIlwKJEdldFdvcmtmbG93Sm9iRnVuY3Rpb25CeU5hbWVSZXNwb25zZRI0Cgxqb2JfZnVuY3Rpb24YASABKAsyHi50YWlsb3IudjEuV29ya2Zsb3dKb2JGdW5jdGlvbiKaAQofTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25zUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhIKCnBhZ2VfdG9rZW4YAiABKAkSEQoJcGFnZV9zaXplGAMgASgNEjAKDnBhZ2VfZGlyZWN0aW9uGAQgASgOMhgudGFpbG9yLnYxLlBhZ2VEaXJlY3Rpb24ihwEKIExpc3RXb3JrZmxvd0pvYkZ1bmN0aW9uc1Jlc3BvbnNlEjUKDWpvYl9mdW5jdGlvbnMYASADKAsyHi50YWlsb3IudjEuV29ya2Zsb3dKb2JGdW5jdGlvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMiXQobR2V0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESHgoMZXhlY3V0aW9uX2lkGAIgASgJQgi6SAVyA7ABASJPChxHZXRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlEi8KCWV4ZWN1dGlvbhgBIAEoCzIcLnRhaWxvci52MS5Xb3JrZmxvd0V4ZWN1dGlvbiL8AQodTGlzdFdvcmtmbG93RXhlY3V0aW9uc1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARI/Cg13b3JrZmxvd19uYW1lGAYgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEhIKCnBhZ2VfdG9rZW4YAiABKAkSEQoJcGFnZV9zaXplGAMgASgNEjAKDnBhZ2VfZGlyZWN0aW9uGAQgASgOMhgudGFpbG9yLnYxLlBhZ2VEaXJlY3Rpb24SIQoGZmlsdGVyGAUgASgLMhEudGFpbG9yLnYxLkZpbHRlciKAAQoeTGlzdFdvcmtmbG93RXhlY3V0aW9uc1Jlc3BvbnNlEjAKCmV4ZWN1dGlvbnMYASADKAsyHC50YWlsb3IudjEuV29ya2Zsb3dFeGVjdXRpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgDIqEBChhUZXN0U3RhcnRXb3JrZmxvd1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIdCgt3b3JrZmxvd19pZBgCIAEoCUIIukgFcgOwAQESLAoMYXV0aF9pbnZva2VyGAMgASgLMhYudGFpbG9yLnYxLkF1dGhJbnZva2VyEhAKA2FyZxgEIAEoCUgAiAEBQgYKBF9hcmciMQoZVGVzdFN0YXJ0V29ya2Zsb3dSZXNwb25zZRIUCgxleGVjdXRpb25faWQYASABKAkiWwoZVGVzdFJlc3VtZVdvcmtmbG93UmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEh4KDGV4ZWN1dGlvbl9pZBgCIAEoCUIIukgFcgOwAQEiMgoaVGVzdFJlc3VtZVdvcmtmbG93UmVzcG9uc2USFAoMZXhlY3V0aW9uX2lkGAEgASgJYgZwcm90bzM", [
|
|
737
755
|
file_buf_validate_validate,
|
|
738
756
|
file_tailor_v1_auth_resource,
|
|
739
757
|
file_tailor_v1_resource,
|
|
@@ -746,6 +764,14 @@ const file_tailor_v1_workflow = /* @__PURE__ */ fileDesc("Chh0YWlsb3IvdjEvd29ya2
|
|
|
746
764
|
* Describes the file tailor/v1/workspace_resource.proto.
|
|
747
765
|
*/
|
|
748
766
|
const file_tailor_v1_workspace_resource = /* @__PURE__ */ fileDesc("CiJ0YWlsb3IvdjEvd29ya3NwYWNlX3Jlc291cmNlLnByb3RvEgl0YWlsb3IudjEilAEKDE9yZ2FuaXphdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjQKC2NyZWF0ZV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjQKC3VwZGF0ZV90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDIpQDChJPcmdhbml6YXRpb25BY2Nlc3MSFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJEikKBHJvbGUYAiABKA4yGy50YWlsb3IudjEuT3JnYW5pemF0aW9uUm9sZRIyCgR0ZWFtGAMgASgLMiIudGFpbG9yLnYxLk9yZ2FuaXphdGlvbkFjY2Vzcy5UZWFtSAASQwoNcGxhdGZvcm1fdXNlchgEIAEoCzIqLnRhaWxvci52MS5Pcmdhbml6YXRpb25BY2Nlc3MuUGxhdGZvcm1Vc2VySAASQQoMbWFjaGluZV91c2VyGAUgASgLMikudGFpbG9yLnYxLk9yZ2FuaXphdGlvbkFjY2Vzcy5NYWNoaW5lVXNlckgAGikKDFBsYXRmb3JtVXNlchIKCgJpZBgBIAEoCRINCgVlbWFpbBgCIAEoCRogCgRUZWFtEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkaJwoLTWFjaGluZVVzZXISCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCUIICgZtZW1iZXIi1wEKBkZvbGRlchIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhcKD29yZ2FuaXphdGlvbl9pZBgDIAEoCRIYChBwYXJlbnRfZm9sZGVyX2lkGAQgASgJEhQKDGhhc19jaGlsZHJlbhgHIAEoCBI0CgtjcmVhdGVfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAxI0Cgt1cGRhdGVfdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCA+BBAyLwAgoMRm9sZGVyQWNjZXNzEhEKCWZvbGRlcl9pZBgBIAEoCRIjCgRyb2xlGAIgASgOMhUudGFpbG9yLnYxLkZvbGRlclJvbGUSLAoEdGVhbRgDIAEoCzIcLnRhaWxvci52MS5Gb2xkZXJBY2Nlc3MuVGVhbUgAEj0KDXBsYXRmb3JtX3VzZXIYBCABKAsyJC50YWlsb3IudjEuRm9sZGVyQWNjZXNzLlBsYXRmb3JtVXNlckgAEjsKDG1hY2hpbmVfdXNlchgFIAEoCzIjLnRhaWxvci52MS5Gb2xkZXJBY2Nlc3MuTWFjaGluZVVzZXJIABopCgxQbGF0Zm9ybVVzZXISCgoCaWQYASABKAkSDQoFZW1haWwYAiABKAkaIAoEVGVhbRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJGicKC01hY2hpbmVVc2VyEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAlCCAoGbWVtYmVyIqUBCgRUZWFtEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSFwoPb3JnYW5pemF0aW9uX2lkGAMgASgJEjQKC2NyZWF0ZV90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjQKC3VwZGF0ZV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDIqsBCgpUZWFtTWVtYmVyEg8KB3RlYW1faWQYASABKAkSOQoNcGxhdGZvcm1fdXNlchgCIAEoCzIiLnRhaWxvci52MS5UZWFtTWVtYmVyLlBsYXRmb3JtVXNlchIhCgRyb2xlGAMgASgOMhMudGFpbG9yLnYxLlRlYW1Sb2xlGi4KDFBsYXRmb3JtVXNlchIPCgd1c2VyX2lkGAEgASgJEg0KBWVtYWlsGAIgASgJIq0CCglXb3Jrc3BhY2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIbCg5jcmVhdGVfdXNlcl9pZBgDIAEoCUID4EEDEhsKDnVwZGF0ZV91c2VyX2lkGAQgASgJQgPgQQMSNAoLY3JlYXRlX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSNAoLdXBkYXRlX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSEwoGcmVnaW9uGAggASgJQgPgQQMSGQoRZGVsZXRlX3Byb3RlY3Rpb24YCSABKAgSFwoPb3JnYW5pemF0aW9uX2lkGAogASgJEhEKCWZvbGRlcl9pZBgLIAEoCUoECAcQCCLBAQoVV29ya3NwYWNlUGxhdGZvcm1Vc2VyEjIKBHJvbGUYASABKA4yJC50YWlsb3IudjEuV29ya3NwYWNlUGxhdGZvcm1Vc2VyUm9sZRJECg1wbGF0Zm9ybV91c2VyGAIgASgLMi0udGFpbG9yLnYxLldvcmtzcGFjZVBsYXRmb3JtVXNlci5QbGF0Zm9ybVVzZXIaLgoMUGxhdGZvcm1Vc2VyEg8KB3VzZXJfaWQYASABKAkSDQoFZW1haWwYAiABKAkirgIKE1BsYXRmb3JtQWNjb3VudFBsYW4SNQoJcGxhbl90eXBlGAEgASgOMiIudGFpbG9yLnYxLlBsYXRmb3JtQWNjb3VudFBsYW5UeXBlEkgKBXRyaWFsGAIgASgLMjcudGFpbG9yLnYxLlBsYXRmb3JtQWNjb3VudFBsYW4uUGxhdGZvcm1BY2NvdW50UGxhblRyaWFsSAAaiAEKGFBsYXRmb3JtQWNjb3VudFBsYW5UcmlhbBIsCghzdGFydF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKgoGZW5kX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgppc19leHBpcmVkGAMgASgIQgsKCXBsYW5fbWV0YSqOAQoQT3JnYW5pemF0aW9uUm9sZRIhCh1PUkdBTklaQVRJT05fUk9MRV9VTlNQRUNJRklFRBAAEhsKF09SR0FOSVpBVElPTl9ST0xFX0FETUlOEAESHAoYT1JHQU5JWkFUSU9OX1JPTEVfRURJVE9SEAISHAoYT1JHQU5JWkFUSU9OX1JPTEVfVklFV0VSEAMqcAoKRm9sZGVyUm9sZRIbChdGT0xERVJfUk9MRV9VTlNQRUNJRklFRBAAEhUKEUZPTERFUl9ST0xFX0FETUlOEAESFgoSRk9MREVSX1JPTEVfRURJVE9SEAISFgoSRk9MREVSX1JPTEVfVklFV0VSEAMqZwoIVGVhbVJvbGUSGQoVVEVBTV9ST0xFX1VOU1BFQ0lGSUVEEAASEwoPVEVBTV9ST0xFX0FETUlOEAESFQoRVEVBTV9ST0xFX01BTkFHRVIQAhIUChBURUFNX1JPTEVfTUVNQkVSEAMqwwEKGVdvcmtzcGFjZVBsYXRmb3JtVXNlclJvbGUSLAooV09SS1NQQUNFX1BMQVRGT1JNX1VTRVJfUk9MRV9VTlNQRUNJRklFRBAAEiYKIldPUktTUEFDRV9QTEFURk9STV9VU0VSX1JPTEVfQURNSU4QARInCiNXT1JLU1BBQ0VfUExBVEZPUk1fVVNFUl9ST0xFX0VESVRPUhACEicKI1dPUktTUEFDRV9QTEFURk9STV9VU0VSX1JPTEVfVklFV0VSEAMqkQEKF1BsYXRmb3JtQWNjb3VudFBsYW5UeXBlEioKJlBMQVRGT1JNX0FDQ09VTlRfUExBTl9UWVBFX1VOU1BFQ0lGSUVEEAASJAogUExBVEZPUk1fQUNDT1VOVF9QTEFOX1RZUEVfVFJJQUwQARIkCiBQTEFURk9STV9BQ0NPVU5UX1BMQU5fVFlQRV9CQVNJQxACYgZwcm90bzM", [file_google_api_field_behavior, file_google_protobuf_timestamp]);
|
|
767
|
+
/**
|
|
768
|
+
* Describes the enum tailor.v1.WorkspacePlatformUserRole.
|
|
769
|
+
*/
|
|
770
|
+
const WorkspacePlatformUserRoleSchema = /* @__PURE__ */ enumDesc(file_tailor_v1_workspace_resource, 3);
|
|
771
|
+
/**
|
|
772
|
+
* @generated from enum tailor.v1.WorkspacePlatformUserRole
|
|
773
|
+
*/
|
|
774
|
+
const WorkspacePlatformUserRole = /* @__PURE__ */ tsEnum(WorkspacePlatformUserRoleSchema);
|
|
749
775
|
|
|
750
776
|
//#endregion
|
|
751
777
|
//#region ../tailor-proto/src/tailor/v1/workspace_pb.js
|
|
@@ -6346,6 +6372,15 @@ function createSnapshotType(type) {
|
|
|
6346
6372
|
snapshotType.settings = {};
|
|
6347
6373
|
if (type.settings.aggregation !== void 0) snapshotType.settings.aggregation = type.settings.aggregation;
|
|
6348
6374
|
if (type.settings.bulkUpsert !== void 0) snapshotType.settings.bulkUpsert = type.settings.bulkUpsert;
|
|
6375
|
+
if (type.settings.gqlOperations) {
|
|
6376
|
+
const ops = type.settings.gqlOperations;
|
|
6377
|
+
snapshotType.settings.gqlOperations = {
|
|
6378
|
+
...ops.create !== void 0 && { create: ops.create },
|
|
6379
|
+
...ops.update !== void 0 && { update: ops.update },
|
|
6380
|
+
...ops.delete !== void 0 && { delete: ops.delete },
|
|
6381
|
+
...ops.read !== void 0 && { read: ops.read }
|
|
6382
|
+
};
|
|
6383
|
+
}
|
|
6349
6384
|
}
|
|
6350
6385
|
if (type.indexes && Object.keys(type.indexes).length > 0) {
|
|
6351
6386
|
snapshotType.indexes = {};
|
|
@@ -8017,7 +8052,7 @@ async function planTypes(client, workspaceId, tailordbs, executors, deletedServi
|
|
|
8017
8052
|
existingTypes.forEach((type) => existingNameSet.add(type.name));
|
|
8018
8053
|
const types = filteredTypesByNamespace?.get(tailordb.namespace) ?? tailordb.getTypes();
|
|
8019
8054
|
for (const typeName of Object.keys(types)) {
|
|
8020
|
-
const tailordbType = generateTailorDBTypeManifest(types[typeName], executorUsedTypes);
|
|
8055
|
+
const tailordbType = generateTailorDBTypeManifest(types[typeName], executorUsedTypes, tailordb.config.gqlOperations);
|
|
8021
8056
|
if (existingNameSet.has(typeName)) {
|
|
8022
8057
|
changeSet.updates.push({
|
|
8023
8058
|
name: typeName,
|
|
@@ -8064,9 +8099,10 @@ async function planTypes(client, workspaceId, tailordbs, executors, deletedServi
|
|
|
8064
8099
|
* Generate a TailorDB type manifest from parsed type
|
|
8065
8100
|
* @param {TailorDBType} type - Parsed TailorDB type
|
|
8066
8101
|
* @param {ReadonlySet<string>} executorUsedTypes - Set of types used by executors
|
|
8102
|
+
* @param {GqlOperations} [namespaceGqlOperations] - Default gqlOperations for the namespace (already normalized)
|
|
8067
8103
|
* @returns {MessageInitShape<typeof TailorDBTypeSchema>} Type manifest
|
|
8068
8104
|
*/
|
|
8069
|
-
function generateTailorDBTypeManifest(type, executorUsedTypes) {
|
|
8105
|
+
function generateTailorDBTypeManifest(type, executorUsedTypes, namespaceGqlOperations) {
|
|
8070
8106
|
const pluralForm = inflection.camelize(type.pluralForm, true);
|
|
8071
8107
|
const defaultSettings = {
|
|
8072
8108
|
aggregation: type.settings?.aggregation || false,
|
|
@@ -8078,6 +8114,13 @@ function generateTailorDBTypeManifest(type, executorUsedTypes) {
|
|
|
8078
8114
|
publishRecordEvents: false
|
|
8079
8115
|
};
|
|
8080
8116
|
if (executorUsedTypes.has(type.name)) defaultSettings.publishRecordEvents = true;
|
|
8117
|
+
const ops = type.settings?.gqlOperations ?? namespaceGqlOperations;
|
|
8118
|
+
if (ops) defaultSettings.disableGqlOperations = {
|
|
8119
|
+
create: ops.create === false,
|
|
8120
|
+
update: ops.update === false,
|
|
8121
|
+
delete: ops.delete === false,
|
|
8122
|
+
read: ops.read === false
|
|
8123
|
+
};
|
|
8081
8124
|
const fields = {};
|
|
8082
8125
|
Object.keys(type.fields).filter((fieldName) => fieldName !== "id").forEach((fieldName) => {
|
|
8083
8126
|
const fieldConfig = type.fields[fieldName].config;
|
|
@@ -8853,6 +8896,17 @@ const applyCommand = defineCommand({
|
|
|
8853
8896
|
//#endregion
|
|
8854
8897
|
//#region src/cli/utils/format.ts
|
|
8855
8898
|
/**
|
|
8899
|
+
* Format a protobuf Timestamp to ISO string.
|
|
8900
|
+
* @param timestamp - Protobuf timestamp
|
|
8901
|
+
* @returns Date object or null if invalid
|
|
8902
|
+
*/
|
|
8903
|
+
function formatTimestamp(timestamp) {
|
|
8904
|
+
if (!timestamp) return null;
|
|
8905
|
+
const date = timestampDate(timestamp);
|
|
8906
|
+
if (Number.isNaN(date.getTime())) return null;
|
|
8907
|
+
return date;
|
|
8908
|
+
}
|
|
8909
|
+
/**
|
|
8856
8910
|
* Formats a table with consistent single-line border style.
|
|
8857
8911
|
* Use this instead of importing `table` directly.
|
|
8858
8912
|
* @param data - Table data
|
|
@@ -8873,6 +8927,17 @@ function formatTable(data, config) {
|
|
|
8873
8927
|
function formatKeyValueTable(data) {
|
|
8874
8928
|
return formatTable(data, { singleLine: true });
|
|
8875
8929
|
}
|
|
8930
|
+
/**
|
|
8931
|
+
* Format a Date or ISO timestamp string as a human-readable relative time.
|
|
8932
|
+
* @param value - Date object, ISO date string, or null
|
|
8933
|
+
* @returns Relative time (e.g., "5 minutes ago") or "N/A" for null/invalid
|
|
8934
|
+
*/
|
|
8935
|
+
function humanizeRelativeTime(value) {
|
|
8936
|
+
if (value === null) return "N/A";
|
|
8937
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
8938
|
+
if (Number.isNaN(date.getTime())) return typeof value === "string" ? value : "N/A";
|
|
8939
|
+
return formatDistanceToNowStrict(date, { addSuffix: true });
|
|
8940
|
+
}
|
|
8876
8941
|
|
|
8877
8942
|
//#endregion
|
|
8878
8943
|
//#region src/cli/workflow/args.ts
|
|
@@ -8885,9 +8950,9 @@ const waitArgs = {
|
|
|
8885
8950
|
alias: "W",
|
|
8886
8951
|
description: "Wait for execution to complete"
|
|
8887
8952
|
}),
|
|
8888
|
-
interval: arg(
|
|
8953
|
+
interval: arg(durationArg.default("3s"), {
|
|
8889
8954
|
alias: "i",
|
|
8890
|
-
description: "Polling interval when using --wait"
|
|
8955
|
+
description: "Polling interval when using --wait (e.g., '3s', '500ms', '1m')"
|
|
8891
8956
|
}),
|
|
8892
8957
|
logs: arg(z.boolean().default(false), {
|
|
8893
8958
|
alias: "l",
|
|
@@ -9284,7 +9349,7 @@ async function getWorkflow(options) {
|
|
|
9284
9349
|
throw error;
|
|
9285
9350
|
}
|
|
9286
9351
|
}
|
|
9287
|
-
const getCommand$
|
|
9352
|
+
const getCommand$2 = defineCommand({
|
|
9288
9353
|
name: "get",
|
|
9289
9354
|
description: "Get workflow details.",
|
|
9290
9355
|
args: z.object({
|
|
@@ -9451,7 +9516,6 @@ const startCommand = defineCommand({
|
|
|
9451
9516
|
...waitArgs
|
|
9452
9517
|
}),
|
|
9453
9518
|
run: withCommonArgs(async (args) => {
|
|
9454
|
-
const interval = parseDuration(args.interval);
|
|
9455
9519
|
const { executionId, wait } = await startWorkflow({
|
|
9456
9520
|
name: args.name,
|
|
9457
9521
|
machineUser: args.machineuser,
|
|
@@ -9459,7 +9523,7 @@ const startCommand = defineCommand({
|
|
|
9459
9523
|
workspaceId: args["workspace-id"],
|
|
9460
9524
|
profile: args.profile,
|
|
9461
9525
|
configPath: args.config,
|
|
9462
|
-
interval
|
|
9526
|
+
interval: parseDuration(args.interval)
|
|
9463
9527
|
});
|
|
9464
9528
|
logger.info(`Execution ID: ${executionId}`, { mode: "stream" });
|
|
9465
9529
|
if (args.wait) {
|
|
@@ -9915,7 +9979,7 @@ const jobsCommand = defineCommand({
|
|
|
9915
9979
|
alias: "W",
|
|
9916
9980
|
description: "Wait for job completion and downstream execution (workflow/function) if applicable (detail mode only)"
|
|
9917
9981
|
}),
|
|
9918
|
-
interval: arg(
|
|
9982
|
+
interval: arg(durationArg.default("3s"), {
|
|
9919
9983
|
alias: "i",
|
|
9920
9984
|
description: "Polling interval when using --wait (e.g., '3s', '500ms', '1m')"
|
|
9921
9985
|
}),
|
|
@@ -9923,18 +9987,17 @@ const jobsCommand = defineCommand({
|
|
|
9923
9987
|
alias: "l",
|
|
9924
9988
|
description: "Display function execution logs after completion (requires --wait)"
|
|
9925
9989
|
}),
|
|
9926
|
-
limit: arg(
|
|
9990
|
+
limit: arg(positiveIntArg.optional(), { description: "Maximum number of jobs to list (default: 50, max: 1000) (list mode only)" })
|
|
9927
9991
|
}),
|
|
9928
9992
|
run: withCommonArgs(async (args) => {
|
|
9929
9993
|
if (args.jobId) {
|
|
9930
9994
|
if (args.wait) {
|
|
9931
|
-
const interval = parseDuration(args.interval);
|
|
9932
9995
|
const result = await watchExecutorJob({
|
|
9933
9996
|
executorName: args.executorName,
|
|
9934
9997
|
jobId: args.jobId,
|
|
9935
9998
|
workspaceId: args["workspace-id"],
|
|
9936
9999
|
profile: args.profile,
|
|
9937
|
-
interval,
|
|
10000
|
+
interval: parseDuration(args.interval),
|
|
9938
10001
|
logs: args.logs
|
|
9939
10002
|
});
|
|
9940
10003
|
if (!args.json) {
|
|
@@ -9988,7 +10051,7 @@ const jobsCommand = defineCommand({
|
|
|
9988
10051
|
const jobs = await listExecutorJobs({
|
|
9989
10052
|
executorName: args.executorName,
|
|
9990
10053
|
status: args.status,
|
|
9991
|
-
limit: args.limit
|
|
10054
|
+
limit: args.limit,
|
|
9992
10055
|
workspaceId: args["workspace-id"],
|
|
9993
10056
|
profile: args.profile
|
|
9994
10057
|
});
|
|
@@ -10000,6 +10063,33 @@ const jobsCommand = defineCommand({
|
|
|
10000
10063
|
//#endregion
|
|
10001
10064
|
//#region src/cli/executor/trigger.ts
|
|
10002
10065
|
/**
|
|
10066
|
+
* Schema for JSON string validation (object only)
|
|
10067
|
+
* Transforms the string to a parsed object
|
|
10068
|
+
*/
|
|
10069
|
+
const jsonDataArg = z.string().transform((val) => {
|
|
10070
|
+
try {
|
|
10071
|
+
return JSON.parse(val);
|
|
10072
|
+
} catch {
|
|
10073
|
+
throw new Error(`Invalid JSON data: ${val}. Please provide a valid JSON string.`);
|
|
10074
|
+
}
|
|
10075
|
+
}).refine((v) => typeof v === "object" && v !== null && !Array.isArray(v), { message: "JSON data must be an object, not an array or primitive value" });
|
|
10076
|
+
/**
|
|
10077
|
+
* Schema for header string validation (format: "Key: Value")
|
|
10078
|
+
* Transforms the string to an object with key and value properties
|
|
10079
|
+
*/
|
|
10080
|
+
const headerArg = z.string().superRefine((val, ctx) => {
|
|
10081
|
+
if (!val.includes(":")) ctx.addIssue({
|
|
10082
|
+
code: z.ZodIssueCode.custom,
|
|
10083
|
+
message: `Invalid header format: '${val}'. Expected format: 'Key: Value'`
|
|
10084
|
+
});
|
|
10085
|
+
}).transform((val) => {
|
|
10086
|
+
const colonIndex = val.indexOf(":");
|
|
10087
|
+
return {
|
|
10088
|
+
key: val.slice(0, colonIndex).trim(),
|
|
10089
|
+
value: val.slice(colonIndex + 1).trim()
|
|
10090
|
+
};
|
|
10091
|
+
}).refine((h) => h.key.length > 0, { message: "Header name cannot be empty" });
|
|
10092
|
+
/**
|
|
10003
10093
|
* Trigger an executor and return the job ID.
|
|
10004
10094
|
* @param options - Options for triggering executor
|
|
10005
10095
|
* @returns Result containing the job ID if available
|
|
@@ -10036,11 +10126,11 @@ const triggerCommand = defineCommand({
|
|
|
10036
10126
|
positional: true,
|
|
10037
10127
|
description: "Executor name"
|
|
10038
10128
|
}),
|
|
10039
|
-
data: arg(
|
|
10129
|
+
data: arg(jsonDataArg.optional(), {
|
|
10040
10130
|
alias: "d",
|
|
10041
10131
|
description: "Request body (JSON string)"
|
|
10042
10132
|
}),
|
|
10043
|
-
header: arg(
|
|
10133
|
+
header: arg(headerArg.array().optional(), {
|
|
10044
10134
|
alias: "H",
|
|
10045
10135
|
overrideBuiltinAlias: true,
|
|
10046
10136
|
description: "Request header (format: 'Key: Value', can be specified multiple times)"
|
|
@@ -10049,7 +10139,7 @@ const triggerCommand = defineCommand({
|
|
|
10049
10139
|
alias: "W",
|
|
10050
10140
|
description: "Wait for job completion and downstream execution (workflow/function) if applicable"
|
|
10051
10141
|
}),
|
|
10052
|
-
interval: arg(
|
|
10142
|
+
interval: arg(durationArg.default("3s"), {
|
|
10053
10143
|
alias: "i",
|
|
10054
10144
|
description: "Polling interval when using --wait (e.g., '3s', '500ms', '1m')"
|
|
10055
10145
|
}),
|
|
@@ -10075,22 +10165,9 @@ const triggerCommand = defineCommand({
|
|
|
10075
10165
|
if (executor.triggerType === ExecutorTriggerType.EVENT) throw new Error(`Executor '${args.executorName}' has '${executorTriggerTypeToString(executor.triggerType)}' trigger type and cannot be triggered manually. Only executors with 'incomingWebhook' or 'schedule' triggers can be triggered manually.`);
|
|
10076
10166
|
if (executor.triggerType === ExecutorTriggerType.SCHEDULE && (args.data || args.header)) throw new Error(`Executor '${args.executorName}' has 'schedule' trigger type. The --data and --header options are only available for 'incomingWebhook' trigger type.`);
|
|
10077
10167
|
let payload;
|
|
10078
|
-
|
|
10079
|
-
if (args.data) try {
|
|
10080
|
-
body = JSON.parse(args.data);
|
|
10081
|
-
} catch {
|
|
10082
|
-
throw new Error(`Invalid JSON data: ${args.data}. Please provide a valid JSON string.`);
|
|
10083
|
-
}
|
|
10168
|
+
const body = args.data;
|
|
10084
10169
|
const headers = {};
|
|
10085
|
-
if (args.header)
|
|
10086
|
-
const headerValues = Array.isArray(args.header) ? args.header : [args.header];
|
|
10087
|
-
for (const h of headerValues) {
|
|
10088
|
-
const colonIndex = h.indexOf(":");
|
|
10089
|
-
if (colonIndex === -1) throw new Error(`Invalid header format: '${h}'. Expected format: 'Key: Value'`);
|
|
10090
|
-
const key = h.slice(0, colonIndex).trim();
|
|
10091
|
-
headers[key] = h.slice(colonIndex + 1).trim();
|
|
10092
|
-
}
|
|
10093
|
-
}
|
|
10170
|
+
if (args.header) for (const h of args.header) headers[h.key] = h.value;
|
|
10094
10171
|
if (body !== void 0 || Object.keys(headers).length > 0) payload = {
|
|
10095
10172
|
body: body ?? {},
|
|
10096
10173
|
headers
|
|
@@ -10108,13 +10185,12 @@ const triggerCommand = defineCommand({
|
|
|
10108
10185
|
}
|
|
10109
10186
|
logger.success(`Executor '${args.executorName}' triggered successfully. Job ID: ${result.jobId}`);
|
|
10110
10187
|
if (args.wait) {
|
|
10111
|
-
const interval = parseDuration(args.interval);
|
|
10112
10188
|
const watchResult = await watchExecutorJob({
|
|
10113
10189
|
executorName: args.executorName,
|
|
10114
10190
|
jobId: result.jobId,
|
|
10115
10191
|
workspaceId: args["workspace-id"],
|
|
10116
10192
|
profile: args.profile,
|
|
10117
|
-
interval,
|
|
10193
|
+
interval: parseDuration(args.interval),
|
|
10118
10194
|
logs: args.logs
|
|
10119
10195
|
});
|
|
10120
10196
|
if (!args.json) {
|
|
@@ -10917,7 +10993,7 @@ async function listMachineUsers(options) {
|
|
|
10917
10993
|
return [machineUsers, nextPageToken];
|
|
10918
10994
|
})).map(machineUserInfo);
|
|
10919
10995
|
}
|
|
10920
|
-
const listCommand$
|
|
10996
|
+
const listCommand$5 = defineCommand({
|
|
10921
10997
|
name: "list",
|
|
10922
10998
|
description: "List all machine users in the application.",
|
|
10923
10999
|
args: z.object({
|
|
@@ -11078,7 +11154,7 @@ async function getOAuth2Client(options) {
|
|
|
11078
11154
|
throw error;
|
|
11079
11155
|
}
|
|
11080
11156
|
}
|
|
11081
|
-
const getCommand = defineCommand({
|
|
11157
|
+
const getCommand$1 = defineCommand({
|
|
11082
11158
|
name: "get",
|
|
11083
11159
|
description: "Get OAuth2 client credentials (including client secret).",
|
|
11084
11160
|
args: z.object({
|
|
@@ -11132,7 +11208,7 @@ async function listOAuth2Clients(options) {
|
|
|
11132
11208
|
return [oauth2Clients, nextPageToken];
|
|
11133
11209
|
})).map(toOAuth2ClientInfo);
|
|
11134
11210
|
}
|
|
11135
|
-
const listCommand$
|
|
11211
|
+
const listCommand$4 = defineCommand({
|
|
11136
11212
|
name: "list",
|
|
11137
11213
|
description: "List all OAuth2 clients in the application.",
|
|
11138
11214
|
args: z.object({
|
|
@@ -11152,7 +11228,7 @@ const listCommand$2 = defineCommand({
|
|
|
11152
11228
|
|
|
11153
11229
|
//#endregion
|
|
11154
11230
|
//#region src/cli/remove.ts
|
|
11155
|
-
async function loadOptions$
|
|
11231
|
+
async function loadOptions$9(options) {
|
|
11156
11232
|
const client = await initOperatorClient(await loadAccessToken({
|
|
11157
11233
|
useProfile: true,
|
|
11158
11234
|
profile: options?.profile
|
|
@@ -11206,10 +11282,10 @@ async function execRemove(client, workspaceId, application, config, confirm) {
|
|
|
11206
11282
|
* @returns Promise that resolves when removal completes
|
|
11207
11283
|
*/
|
|
11208
11284
|
async function remove(options) {
|
|
11209
|
-
const { client, workspaceId, application, config } = await loadOptions$
|
|
11285
|
+
const { client, workspaceId, application, config } = await loadOptions$9(options);
|
|
11210
11286
|
await execRemove(client, workspaceId, application, config);
|
|
11211
11287
|
}
|
|
11212
|
-
const removeCommand = defineCommand({
|
|
11288
|
+
const removeCommand$1 = defineCommand({
|
|
11213
11289
|
name: "remove",
|
|
11214
11290
|
description: "Remove all resources managed by the application from the workspace.",
|
|
11215
11291
|
args: z.object({
|
|
@@ -11218,7 +11294,7 @@ const removeCommand = defineCommand({
|
|
|
11218
11294
|
...confirmationArgs
|
|
11219
11295
|
}),
|
|
11220
11296
|
run: withCommonArgs(async (args) => {
|
|
11221
|
-
const { client, workspaceId, application, config } = await loadOptions$
|
|
11297
|
+
const { client, workspaceId, application, config } = await loadOptions$9({
|
|
11222
11298
|
workspaceId: args["workspace-id"],
|
|
11223
11299
|
profile: args.profile,
|
|
11224
11300
|
configPath: args.config
|
|
@@ -11274,13 +11350,13 @@ async function show(options) {
|
|
|
11274
11350
|
workspaceId,
|
|
11275
11351
|
applicationName: config.name
|
|
11276
11352
|
})]);
|
|
11277
|
-
const { name, ...appInfo } = applicationInfo(resp.application);
|
|
11353
|
+
const { name, ...appInfo$1 } = applicationInfo(resp.application);
|
|
11278
11354
|
return {
|
|
11279
11355
|
name,
|
|
11280
11356
|
workspaceId,
|
|
11281
11357
|
workspaceName: workspaceResp.workspace?.name ?? "",
|
|
11282
11358
|
workspaceRegion: workspaceResp.workspace?.region ?? "",
|
|
11283
|
-
...appInfo
|
|
11359
|
+
...appInfo$1
|
|
11284
11360
|
};
|
|
11285
11361
|
}
|
|
11286
11362
|
const showCommand = defineCommand({
|
|
@@ -11292,12 +11368,12 @@ const showCommand = defineCommand({
|
|
|
11292
11368
|
...deploymentArgs
|
|
11293
11369
|
}),
|
|
11294
11370
|
run: withCommonArgs(async (args) => {
|
|
11295
|
-
const appInfo = await show({
|
|
11371
|
+
const appInfo$1 = await show({
|
|
11296
11372
|
workspaceId: args["workspace-id"],
|
|
11297
11373
|
profile: args.profile,
|
|
11298
11374
|
configPath: args.config
|
|
11299
11375
|
});
|
|
11300
|
-
logger.out(appInfo);
|
|
11376
|
+
logger.out(appInfo$1);
|
|
11301
11377
|
})
|
|
11302
11378
|
});
|
|
11303
11379
|
|
|
@@ -11814,7 +11890,7 @@ async function generate(options) {
|
|
|
11814
11890
|
return;
|
|
11815
11891
|
}
|
|
11816
11892
|
if (options.init) await handleInitOption(namespacesWithMigrations, options.yes);
|
|
11817
|
-
const { defineApplication: defineApplication$1 } = await import("./application-
|
|
11893
|
+
const { defineApplication: defineApplication$1 } = await import("./application-BdZ8qL7I.mjs");
|
|
11818
11894
|
const application = defineApplication$1(config);
|
|
11819
11895
|
for (const { namespace, migrationsDir } of namespacesWithMigrations) {
|
|
11820
11896
|
logger.info(`Processing namespace: ${styles.bold(namespace)}`);
|
|
@@ -12155,7 +12231,7 @@ async function listWorkflows(options) {
|
|
|
12155
12231
|
return [workflows, nextPageToken];
|
|
12156
12232
|
})).map(toWorkflowListInfo);
|
|
12157
12233
|
}
|
|
12158
|
-
const listCommand$
|
|
12234
|
+
const listCommand$3 = defineCommand({
|
|
12159
12235
|
name: "list",
|
|
12160
12236
|
description: "List all workflows in the workspace.",
|
|
12161
12237
|
args: z.object({
|
|
@@ -12229,12 +12305,11 @@ const resumeCommand = defineCommand({
|
|
|
12229
12305
|
...waitArgs
|
|
12230
12306
|
}),
|
|
12231
12307
|
run: withCommonArgs(async (args) => {
|
|
12232
|
-
const interval = parseDuration(args.interval);
|
|
12233
12308
|
const { executionId, wait } = await resumeWorkflow({
|
|
12234
12309
|
executionId: args.executionId,
|
|
12235
12310
|
workspaceId: args["workspace-id"],
|
|
12236
12311
|
profile: args.profile,
|
|
12237
|
-
interval
|
|
12312
|
+
interval: parseDuration(args.interval)
|
|
12238
12313
|
});
|
|
12239
12314
|
if (!args.json) logger.info(`Execution ID: ${executionId}`, { mode: "stream" });
|
|
12240
12315
|
if (args.wait) {
|
|
@@ -12253,13 +12328,174 @@ const resumeCommand = defineCommand({
|
|
|
12253
12328
|
});
|
|
12254
12329
|
|
|
12255
12330
|
//#endregion
|
|
12256
|
-
//#region src/cli/workspace/transform.ts
|
|
12257
|
-
const
|
|
12258
|
-
|
|
12259
|
-
|
|
12260
|
-
|
|
12261
|
-
|
|
12331
|
+
//#region src/cli/workspace/app/transform.ts
|
|
12332
|
+
const statusToString = (status) => {
|
|
12333
|
+
switch (status) {
|
|
12334
|
+
case GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus.OK: return "ok";
|
|
12335
|
+
case GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus.COMPOSITION_ERROR: return "composition_error";
|
|
12336
|
+
default: return "unknown";
|
|
12337
|
+
}
|
|
12338
|
+
};
|
|
12339
|
+
const attemptStatusToString = (status) => {
|
|
12340
|
+
switch (status) {
|
|
12341
|
+
case ApplicationSchemaUpdateAttemptStatus.SUCCEEDED: return "success";
|
|
12342
|
+
case ApplicationSchemaUpdateAttemptStatus.FAILED: return "failure";
|
|
12343
|
+
default: return "unknown";
|
|
12344
|
+
}
|
|
12345
|
+
};
|
|
12346
|
+
const appInfo = (app) => {
|
|
12347
|
+
return {
|
|
12348
|
+
name: app.name,
|
|
12349
|
+
domain: app.domain,
|
|
12350
|
+
authNamespace: app.authNamespace,
|
|
12351
|
+
createdAt: formatTimestamp(app.createTime),
|
|
12352
|
+
updatedAt: formatTimestamp(app.updateTime)
|
|
12353
|
+
};
|
|
12262
12354
|
};
|
|
12355
|
+
const appHealthInfo = (name, health) => {
|
|
12356
|
+
const attempt = health.lastSchemaUpdateAttempt;
|
|
12357
|
+
return {
|
|
12358
|
+
name,
|
|
12359
|
+
status: statusToString(health.status),
|
|
12360
|
+
currentServingSchemaUpdatedAt: formatTimestamp(health.currentServingSchemaUpdateTime),
|
|
12361
|
+
lastAttemptStatus: attempt ? attemptStatusToString(attempt.status) : "N/A",
|
|
12362
|
+
lastAttemptAt: formatTimestamp(attempt?.attemptTime),
|
|
12363
|
+
lastAttemptError: attempt?.error ?? ""
|
|
12364
|
+
};
|
|
12365
|
+
};
|
|
12366
|
+
|
|
12367
|
+
//#endregion
|
|
12368
|
+
//#region src/cli/workspace/app/health.ts
|
|
12369
|
+
const healthOptionsSchema = z.object({
|
|
12370
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12371
|
+
profile: z.string().optional(),
|
|
12372
|
+
name: z.string().min(1, { message: "name is required" })
|
|
12373
|
+
});
|
|
12374
|
+
async function loadOptions$8(options) {
|
|
12375
|
+
const result = healthOptionsSchema.safeParse(options);
|
|
12376
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12377
|
+
return {
|
|
12378
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12379
|
+
workspaceId: loadWorkspaceId({
|
|
12380
|
+
workspaceId: result.data.workspaceId,
|
|
12381
|
+
profile: result.data.profile
|
|
12382
|
+
}),
|
|
12383
|
+
name: result.data.name
|
|
12384
|
+
};
|
|
12385
|
+
}
|
|
12386
|
+
/**
|
|
12387
|
+
* Get application schema health status.
|
|
12388
|
+
* @param options - Health check options
|
|
12389
|
+
* @returns Application health information
|
|
12390
|
+
*/
|
|
12391
|
+
async function getAppHealth(options) {
|
|
12392
|
+
const { client, workspaceId, name } = await loadOptions$8(options);
|
|
12393
|
+
return appHealthInfo(name, await client.getApplicationSchemaHealth({
|
|
12394
|
+
workspaceId,
|
|
12395
|
+
applicationName: name
|
|
12396
|
+
}));
|
|
12397
|
+
}
|
|
12398
|
+
const healthCommand = defineCommand({
|
|
12399
|
+
name: "health",
|
|
12400
|
+
description: "Check application schema health",
|
|
12401
|
+
args: z.object({
|
|
12402
|
+
...commonArgs,
|
|
12403
|
+
...jsonArgs,
|
|
12404
|
+
...workspaceArgs,
|
|
12405
|
+
name: arg(z.string(), {
|
|
12406
|
+
description: "Application name",
|
|
12407
|
+
alias: "n"
|
|
12408
|
+
})
|
|
12409
|
+
}),
|
|
12410
|
+
run: withCommonArgs(async (args) => {
|
|
12411
|
+
const health = await getAppHealth({
|
|
12412
|
+
workspaceId: args["workspace-id"],
|
|
12413
|
+
profile: args.profile,
|
|
12414
|
+
name: args.name
|
|
12415
|
+
});
|
|
12416
|
+
const formattedHealth = args.json ? health : {
|
|
12417
|
+
...health,
|
|
12418
|
+
currentServingSchemaUpdatedAt: humanizeRelativeTime(health.currentServingSchemaUpdatedAt),
|
|
12419
|
+
lastAttemptAt: humanizeRelativeTime(health.lastAttemptAt)
|
|
12420
|
+
};
|
|
12421
|
+
logger.out(formattedHealth);
|
|
12422
|
+
})
|
|
12423
|
+
});
|
|
12424
|
+
|
|
12425
|
+
//#endregion
|
|
12426
|
+
//#region src/cli/workspace/app/list.ts
|
|
12427
|
+
const listAppsOptionsSchema = z.object({
|
|
12428
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12429
|
+
profile: z.string().optional(),
|
|
12430
|
+
limit: z.coerce.number().int().positive().optional()
|
|
12431
|
+
});
|
|
12432
|
+
async function loadOptions$7(options) {
|
|
12433
|
+
const result = listAppsOptionsSchema.safeParse(options);
|
|
12434
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12435
|
+
return {
|
|
12436
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12437
|
+
workspaceId: loadWorkspaceId({
|
|
12438
|
+
workspaceId: result.data.workspaceId,
|
|
12439
|
+
profile: result.data.profile
|
|
12440
|
+
}),
|
|
12441
|
+
limit: result.data.limit
|
|
12442
|
+
};
|
|
12443
|
+
}
|
|
12444
|
+
/**
|
|
12445
|
+
* List applications in a workspace with an optional limit.
|
|
12446
|
+
* @param options - Application listing options
|
|
12447
|
+
* @returns List of applications
|
|
12448
|
+
*/
|
|
12449
|
+
async function listApps(options) {
|
|
12450
|
+
const { client, workspaceId, limit } = await loadOptions$7(options);
|
|
12451
|
+
const hasLimit = limit !== void 0;
|
|
12452
|
+
const results = [];
|
|
12453
|
+
let pageToken = "";
|
|
12454
|
+
while (true) {
|
|
12455
|
+
if (hasLimit && results.length >= limit) break;
|
|
12456
|
+
const remaining = hasLimit ? limit - results.length : void 0;
|
|
12457
|
+
const pageSize = remaining !== void 0 && remaining > 0 ? remaining : void 0;
|
|
12458
|
+
const { applications, nextPageToken } = await client.listApplications({
|
|
12459
|
+
workspaceId,
|
|
12460
|
+
pageToken,
|
|
12461
|
+
...pageSize !== void 0 ? { pageSize } : {}
|
|
12462
|
+
});
|
|
12463
|
+
const mapped = applications.map(appInfo);
|
|
12464
|
+
if (remaining !== void 0 && mapped.length > remaining) results.push(...mapped.slice(0, remaining));
|
|
12465
|
+
else results.push(...mapped);
|
|
12466
|
+
if (!nextPageToken) break;
|
|
12467
|
+
pageToken = nextPageToken;
|
|
12468
|
+
}
|
|
12469
|
+
return results;
|
|
12470
|
+
}
|
|
12471
|
+
const listCommand$2 = defineCommand({
|
|
12472
|
+
name: "list",
|
|
12473
|
+
description: "List applications in a workspace",
|
|
12474
|
+
args: z.object({
|
|
12475
|
+
...commonArgs,
|
|
12476
|
+
...jsonArgs,
|
|
12477
|
+
...workspaceArgs,
|
|
12478
|
+
limit: arg(positiveIntArg.optional(), {
|
|
12479
|
+
alias: "l",
|
|
12480
|
+
description: "Maximum number of applications to list"
|
|
12481
|
+
})
|
|
12482
|
+
}),
|
|
12483
|
+
run: withCommonArgs(async (args) => {
|
|
12484
|
+
const apps = await listApps({
|
|
12485
|
+
workspaceId: args["workspace-id"],
|
|
12486
|
+
profile: args.profile,
|
|
12487
|
+
limit: args.limit
|
|
12488
|
+
});
|
|
12489
|
+
const formattedApps = args.json ? apps : apps.map(({ updatedAt: _, createdAt, ...rest }) => ({
|
|
12490
|
+
...rest,
|
|
12491
|
+
createdAt: humanizeRelativeTime(createdAt)
|
|
12492
|
+
}));
|
|
12493
|
+
logger.out(formattedApps);
|
|
12494
|
+
})
|
|
12495
|
+
});
|
|
12496
|
+
|
|
12497
|
+
//#endregion
|
|
12498
|
+
//#region src/cli/workspace/transform.ts
|
|
12263
12499
|
const workspaceInfo = (workspace) => {
|
|
12264
12500
|
return {
|
|
12265
12501
|
id: workspace.id,
|
|
@@ -12269,6 +12505,14 @@ const workspaceInfo = (workspace) => {
|
|
|
12269
12505
|
updatedAt: formatTimestamp(workspace.updateTime)
|
|
12270
12506
|
};
|
|
12271
12507
|
};
|
|
12508
|
+
const workspaceDetails = (workspace) => {
|
|
12509
|
+
return {
|
|
12510
|
+
...workspaceInfo(workspace),
|
|
12511
|
+
deleteProtection: workspace.deleteProtection,
|
|
12512
|
+
organizationId: workspace.organizationId,
|
|
12513
|
+
folderId: workspace.folderId
|
|
12514
|
+
};
|
|
12515
|
+
};
|
|
12272
12516
|
|
|
12273
12517
|
//#endregion
|
|
12274
12518
|
//#region src/cli/workspace/create.ts
|
|
@@ -12388,7 +12632,7 @@ const createCommand = defineCommand({
|
|
|
12388
12632
|
//#endregion
|
|
12389
12633
|
//#region src/cli/workspace/delete.ts
|
|
12390
12634
|
const deleteWorkspaceOptionsSchema = z.object({ workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }) });
|
|
12391
|
-
async function loadOptions(options) {
|
|
12635
|
+
async function loadOptions$6(options) {
|
|
12392
12636
|
const result = deleteWorkspaceOptionsSchema.safeParse(options);
|
|
12393
12637
|
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12394
12638
|
return {
|
|
@@ -12402,7 +12646,7 @@ async function loadOptions(options) {
|
|
|
12402
12646
|
* @returns Promise that resolves when deletion completes
|
|
12403
12647
|
*/
|
|
12404
12648
|
async function deleteWorkspace(options) {
|
|
12405
|
-
const { client, workspaceId } = await loadOptions(options);
|
|
12649
|
+
const { client, workspaceId } = await loadOptions$6(options);
|
|
12406
12650
|
await client.deleteWorkspace({ workspaceId });
|
|
12407
12651
|
}
|
|
12408
12652
|
const deleteCommand = defineCommand({
|
|
@@ -12417,7 +12661,7 @@ const deleteCommand = defineCommand({
|
|
|
12417
12661
|
...confirmationArgs
|
|
12418
12662
|
}),
|
|
12419
12663
|
run: withCommonArgs(async (args) => {
|
|
12420
|
-
const { client, workspaceId } = await loadOptions({ workspaceId: args["workspace-id"] });
|
|
12664
|
+
const { client, workspaceId } = await loadOptions$6({ workspaceId: args["workspace-id"] });
|
|
12421
12665
|
let workspace;
|
|
12422
12666
|
try {
|
|
12423
12667
|
workspace = await client.getWorkspace({ workspaceId });
|
|
@@ -12442,9 +12686,58 @@ const deleteCommand = defineCommand({
|
|
|
12442
12686
|
})
|
|
12443
12687
|
});
|
|
12444
12688
|
|
|
12689
|
+
//#endregion
|
|
12690
|
+
//#region src/cli/workspace/get.ts
|
|
12691
|
+
const getWorkspaceOptionsSchema = z.object({
|
|
12692
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12693
|
+
profile: z.string().optional()
|
|
12694
|
+
});
|
|
12695
|
+
async function loadOptions$5(options) {
|
|
12696
|
+
const result = getWorkspaceOptionsSchema.safeParse(options);
|
|
12697
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12698
|
+
return {
|
|
12699
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12700
|
+
workspaceId: loadWorkspaceId({
|
|
12701
|
+
workspaceId: result.data.workspaceId,
|
|
12702
|
+
profile: result.data.profile
|
|
12703
|
+
})
|
|
12704
|
+
};
|
|
12705
|
+
}
|
|
12706
|
+
/**
|
|
12707
|
+
* Get detailed information about a workspace.
|
|
12708
|
+
* @param options - Workspace get options
|
|
12709
|
+
* @returns Workspace details
|
|
12710
|
+
*/
|
|
12711
|
+
async function getWorkspace(options) {
|
|
12712
|
+
const { client, workspaceId } = await loadOptions$5(options);
|
|
12713
|
+
const response = await client.getWorkspace({ workspaceId });
|
|
12714
|
+
if (!response.workspace) throw new Error(`Workspace "${workspaceId}" not found.`);
|
|
12715
|
+
return workspaceDetails(response.workspace);
|
|
12716
|
+
}
|
|
12717
|
+
const getCommand = defineCommand({
|
|
12718
|
+
name: "get",
|
|
12719
|
+
description: "Show detailed information about a workspace",
|
|
12720
|
+
args: z.object({
|
|
12721
|
+
...commonArgs,
|
|
12722
|
+
...jsonArgs,
|
|
12723
|
+
...workspaceArgs
|
|
12724
|
+
}),
|
|
12725
|
+
run: withCommonArgs(async (args) => {
|
|
12726
|
+
const workspace = await getWorkspace({
|
|
12727
|
+
workspaceId: args["workspace-id"],
|
|
12728
|
+
profile: args.profile
|
|
12729
|
+
});
|
|
12730
|
+
const formattedWorkspace = args.json ? workspace : {
|
|
12731
|
+
...workspace,
|
|
12732
|
+
createdAt: humanizeRelativeTime(workspace.createdAt),
|
|
12733
|
+
updatedAt: humanizeRelativeTime(workspace.updatedAt)
|
|
12734
|
+
};
|
|
12735
|
+
logger.out(formattedWorkspace);
|
|
12736
|
+
})
|
|
12737
|
+
});
|
|
12738
|
+
|
|
12445
12739
|
//#endregion
|
|
12446
12740
|
//#region src/cli/workspace/list.ts
|
|
12447
|
-
const limitSchema = z.coerce.number().int().positive().optional();
|
|
12448
12741
|
/**
|
|
12449
12742
|
* List workspaces with an optional limit.
|
|
12450
12743
|
* @param options - Workspace listing options
|
|
@@ -12472,29 +12765,336 @@ async function listWorkspaces(options) {
|
|
|
12472
12765
|
}
|
|
12473
12766
|
return results;
|
|
12474
12767
|
}
|
|
12475
|
-
const listCommand = defineCommand({
|
|
12768
|
+
const listCommand$1 = defineCommand({
|
|
12476
12769
|
name: "list",
|
|
12477
12770
|
description: "List all Tailor Platform workspaces.",
|
|
12478
12771
|
args: z.object({
|
|
12479
12772
|
...commonArgs,
|
|
12480
12773
|
...jsonArgs,
|
|
12481
|
-
limit: arg(
|
|
12774
|
+
limit: arg(positiveIntArg.optional(), {
|
|
12482
12775
|
alias: "l",
|
|
12483
12776
|
description: "Maximum number of workspaces to list"
|
|
12484
12777
|
})
|
|
12485
12778
|
}),
|
|
12486
12779
|
run: withCommonArgs(async (args) => {
|
|
12487
|
-
|
|
12488
|
-
try {
|
|
12489
|
-
limit = limitSchema.parse(args.limit);
|
|
12490
|
-
} catch {
|
|
12491
|
-
throw new Error(`--limit must be a positive integer, got '${args.limit}'`);
|
|
12492
|
-
}
|
|
12493
|
-
const workspaces = await listWorkspaces({ limit });
|
|
12780
|
+
const workspaces = await listWorkspaces({ limit: args.limit });
|
|
12494
12781
|
logger.out(workspaces, { display: { updatedAt: null } });
|
|
12495
12782
|
})
|
|
12496
12783
|
});
|
|
12497
12784
|
|
|
12498
12785
|
//#endregion
|
|
12499
|
-
|
|
12500
|
-
|
|
12786
|
+
//#region src/cli/workspace/restore.ts
|
|
12787
|
+
const restoreWorkspaceOptionsSchema = z.object({ workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }) });
|
|
12788
|
+
async function loadOptions$4(options) {
|
|
12789
|
+
const result = restoreWorkspaceOptionsSchema.safeParse(options);
|
|
12790
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12791
|
+
return {
|
|
12792
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12793
|
+
workspaceId: result.data.workspaceId
|
|
12794
|
+
};
|
|
12795
|
+
}
|
|
12796
|
+
/**
|
|
12797
|
+
* Restore a deleted workspace by ID.
|
|
12798
|
+
* @param options - Workspace restore options
|
|
12799
|
+
* @returns Promise that resolves when restoration completes
|
|
12800
|
+
*/
|
|
12801
|
+
async function restoreWorkspace(options) {
|
|
12802
|
+
const { client, workspaceId } = await loadOptions$4(options);
|
|
12803
|
+
await client.restoreWorkspace({ workspaceId });
|
|
12804
|
+
}
|
|
12805
|
+
const restoreCommand = defineCommand({
|
|
12806
|
+
name: "restore",
|
|
12807
|
+
description: "Restore a deleted workspace",
|
|
12808
|
+
args: z.object({
|
|
12809
|
+
...commonArgs,
|
|
12810
|
+
"workspace-id": arg(z.string(), {
|
|
12811
|
+
alias: "w",
|
|
12812
|
+
description: "Workspace ID"
|
|
12813
|
+
}),
|
|
12814
|
+
...confirmationArgs
|
|
12815
|
+
}),
|
|
12816
|
+
run: withCommonArgs(async (args) => {
|
|
12817
|
+
const { client, workspaceId } = await loadOptions$4({ workspaceId: args["workspace-id"] });
|
|
12818
|
+
if (!args.yes) {
|
|
12819
|
+
if (await logger.prompt(`Are you sure you want to restore workspace "${workspaceId}"? (yes/no):`, { type: "text" }) !== "yes") {
|
|
12820
|
+
logger.info("Workspace restoration cancelled.");
|
|
12821
|
+
return;
|
|
12822
|
+
}
|
|
12823
|
+
}
|
|
12824
|
+
await client.restoreWorkspace({ workspaceId });
|
|
12825
|
+
logger.success(`Workspace "${workspaceId}" restored successfully.`);
|
|
12826
|
+
})
|
|
12827
|
+
});
|
|
12828
|
+
|
|
12829
|
+
//#endregion
|
|
12830
|
+
//#region src/cli/workspace/user/transform.ts
|
|
12831
|
+
const roleToString = (role) => {
|
|
12832
|
+
switch (role) {
|
|
12833
|
+
case WorkspacePlatformUserRole.ADMIN: return "admin";
|
|
12834
|
+
case WorkspacePlatformUserRole.EDITOR: return "editor";
|
|
12835
|
+
case WorkspacePlatformUserRole.VIEWER: return "viewer";
|
|
12836
|
+
default: return "unknown";
|
|
12837
|
+
}
|
|
12838
|
+
};
|
|
12839
|
+
const stringToRole = (role) => {
|
|
12840
|
+
switch (role.toLowerCase()) {
|
|
12841
|
+
case "admin": return WorkspacePlatformUserRole.ADMIN;
|
|
12842
|
+
case "editor": return WorkspacePlatformUserRole.EDITOR;
|
|
12843
|
+
case "viewer": return WorkspacePlatformUserRole.VIEWER;
|
|
12844
|
+
default: throw new Error(`Invalid role: ${role}. Valid roles: admin, editor, viewer`);
|
|
12845
|
+
}
|
|
12846
|
+
};
|
|
12847
|
+
const userInfo = (user) => {
|
|
12848
|
+
return {
|
|
12849
|
+
userId: user.platformUser?.userId ?? "",
|
|
12850
|
+
email: user.platformUser?.email ?? "",
|
|
12851
|
+
role: roleToString(user.role)
|
|
12852
|
+
};
|
|
12853
|
+
};
|
|
12854
|
+
const validRoles = [
|
|
12855
|
+
"admin",
|
|
12856
|
+
"editor",
|
|
12857
|
+
"viewer"
|
|
12858
|
+
];
|
|
12859
|
+
|
|
12860
|
+
//#endregion
|
|
12861
|
+
//#region src/cli/workspace/user/invite.ts
|
|
12862
|
+
const inviteUserOptionsSchema = z.object({
|
|
12863
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12864
|
+
profile: z.string().optional(),
|
|
12865
|
+
email: z.email({ message: "email must be a valid email address" }),
|
|
12866
|
+
role: z.enum(validRoles, { message: `role must be one of: ${validRoles.join(", ")}` })
|
|
12867
|
+
});
|
|
12868
|
+
async function loadOptions$3(options) {
|
|
12869
|
+
const result = inviteUserOptionsSchema.safeParse(options);
|
|
12870
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12871
|
+
return {
|
|
12872
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12873
|
+
workspaceId: loadWorkspaceId({
|
|
12874
|
+
workspaceId: result.data.workspaceId,
|
|
12875
|
+
profile: result.data.profile
|
|
12876
|
+
}),
|
|
12877
|
+
email: result.data.email,
|
|
12878
|
+
role: stringToRole(result.data.role)
|
|
12879
|
+
};
|
|
12880
|
+
}
|
|
12881
|
+
/**
|
|
12882
|
+
* Invite a user to a workspace.
|
|
12883
|
+
* @param options - User invite options
|
|
12884
|
+
* @returns Promise that resolves when invitation is sent
|
|
12885
|
+
*/
|
|
12886
|
+
async function inviteUser(options) {
|
|
12887
|
+
const { client, workspaceId, email, role } = await loadOptions$3(options);
|
|
12888
|
+
await client.inviteWorkspacePlatformUser({
|
|
12889
|
+
workspaceId,
|
|
12890
|
+
email,
|
|
12891
|
+
role
|
|
12892
|
+
});
|
|
12893
|
+
}
|
|
12894
|
+
const inviteCommand = defineCommand({
|
|
12895
|
+
name: "invite",
|
|
12896
|
+
description: "Invite a user to a workspace",
|
|
12897
|
+
args: z.object({
|
|
12898
|
+
...commonArgs,
|
|
12899
|
+
...workspaceArgs,
|
|
12900
|
+
email: arg(z.email(), { description: "Email address of the user to invite" }),
|
|
12901
|
+
role: arg(z.enum(validRoles), {
|
|
12902
|
+
description: `Role to assign (${validRoles.join(", ")})`,
|
|
12903
|
+
alias: "r"
|
|
12904
|
+
})
|
|
12905
|
+
}),
|
|
12906
|
+
run: withCommonArgs(async (args) => {
|
|
12907
|
+
await inviteUser({
|
|
12908
|
+
workspaceId: args["workspace-id"],
|
|
12909
|
+
profile: args.profile,
|
|
12910
|
+
email: args.email,
|
|
12911
|
+
role: args.role
|
|
12912
|
+
});
|
|
12913
|
+
logger.success(`User "${args.email}" invited successfully with role "${args.role}".`);
|
|
12914
|
+
})
|
|
12915
|
+
});
|
|
12916
|
+
|
|
12917
|
+
//#endregion
|
|
12918
|
+
//#region src/cli/workspace/user/list.ts
|
|
12919
|
+
const listUsersOptionsSchema = z.object({
|
|
12920
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12921
|
+
profile: z.string().optional(),
|
|
12922
|
+
limit: z.coerce.number().int().positive().optional()
|
|
12923
|
+
});
|
|
12924
|
+
async function loadOptions$2(options) {
|
|
12925
|
+
const result = listUsersOptionsSchema.safeParse(options);
|
|
12926
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12927
|
+
return {
|
|
12928
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12929
|
+
workspaceId: loadWorkspaceId({
|
|
12930
|
+
workspaceId: result.data.workspaceId,
|
|
12931
|
+
profile: result.data.profile
|
|
12932
|
+
}),
|
|
12933
|
+
limit: result.data.limit
|
|
12934
|
+
};
|
|
12935
|
+
}
|
|
12936
|
+
/**
|
|
12937
|
+
* List users in a workspace with an optional limit.
|
|
12938
|
+
* @param options - User listing options
|
|
12939
|
+
* @returns List of workspace users
|
|
12940
|
+
*/
|
|
12941
|
+
async function listUsers(options) {
|
|
12942
|
+
const { client, workspaceId, limit } = await loadOptions$2(options);
|
|
12943
|
+
const hasLimit = limit !== void 0;
|
|
12944
|
+
const results = [];
|
|
12945
|
+
let pageToken = "";
|
|
12946
|
+
while (true) {
|
|
12947
|
+
if (hasLimit && results.length >= limit) break;
|
|
12948
|
+
const remaining = hasLimit ? limit - results.length : void 0;
|
|
12949
|
+
const pageSize = remaining !== void 0 && remaining > 0 ? remaining : void 0;
|
|
12950
|
+
const { workspacePlatformUsers, nextPageToken } = await client.listWorkspacePlatformUsers({
|
|
12951
|
+
workspaceId,
|
|
12952
|
+
pageToken,
|
|
12953
|
+
...pageSize !== void 0 ? { pageSize } : {}
|
|
12954
|
+
});
|
|
12955
|
+
const mapped = workspacePlatformUsers.map(userInfo);
|
|
12956
|
+
if (remaining !== void 0 && mapped.length > remaining) results.push(...mapped.slice(0, remaining));
|
|
12957
|
+
else results.push(...mapped);
|
|
12958
|
+
if (!nextPageToken) break;
|
|
12959
|
+
pageToken = nextPageToken;
|
|
12960
|
+
}
|
|
12961
|
+
return results;
|
|
12962
|
+
}
|
|
12963
|
+
const listCommand = defineCommand({
|
|
12964
|
+
name: "list",
|
|
12965
|
+
description: "List users in a workspace",
|
|
12966
|
+
args: z.object({
|
|
12967
|
+
...commonArgs,
|
|
12968
|
+
...jsonArgs,
|
|
12969
|
+
...workspaceArgs,
|
|
12970
|
+
limit: arg(positiveIntArg.optional(), {
|
|
12971
|
+
alias: "l",
|
|
12972
|
+
description: "Maximum number of users to list"
|
|
12973
|
+
})
|
|
12974
|
+
}),
|
|
12975
|
+
run: withCommonArgs(async (args) => {
|
|
12976
|
+
const users = await listUsers({
|
|
12977
|
+
workspaceId: args["workspace-id"],
|
|
12978
|
+
profile: args.profile,
|
|
12979
|
+
limit: args.limit
|
|
12980
|
+
});
|
|
12981
|
+
logger.out(users);
|
|
12982
|
+
})
|
|
12983
|
+
});
|
|
12984
|
+
|
|
12985
|
+
//#endregion
|
|
12986
|
+
//#region src/cli/workspace/user/remove.ts
|
|
12987
|
+
const removeUserOptionsSchema = z.object({
|
|
12988
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
12989
|
+
profile: z.string().optional(),
|
|
12990
|
+
email: z.string().email({ message: "email must be a valid email address" })
|
|
12991
|
+
});
|
|
12992
|
+
async function loadOptions$1(options) {
|
|
12993
|
+
const result = removeUserOptionsSchema.safeParse(options);
|
|
12994
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
12995
|
+
return {
|
|
12996
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
12997
|
+
workspaceId: loadWorkspaceId({
|
|
12998
|
+
workspaceId: result.data.workspaceId,
|
|
12999
|
+
profile: result.data.profile
|
|
13000
|
+
}),
|
|
13001
|
+
email: result.data.email
|
|
13002
|
+
};
|
|
13003
|
+
}
|
|
13004
|
+
/**
|
|
13005
|
+
* Remove a user from a workspace.
|
|
13006
|
+
* @param options - User remove options
|
|
13007
|
+
* @returns Promise that resolves when removal completes
|
|
13008
|
+
*/
|
|
13009
|
+
async function removeUser(options) {
|
|
13010
|
+
const { client, workspaceId, email } = await loadOptions$1(options);
|
|
13011
|
+
await client.removeWorkspacePlatformUser({
|
|
13012
|
+
workspaceId,
|
|
13013
|
+
email
|
|
13014
|
+
});
|
|
13015
|
+
}
|
|
13016
|
+
const removeCommand = defineCommand({
|
|
13017
|
+
name: "remove",
|
|
13018
|
+
description: "Remove a user from a workspace",
|
|
13019
|
+
args: z.object({
|
|
13020
|
+
...commonArgs,
|
|
13021
|
+
...workspaceArgs,
|
|
13022
|
+
email: arg(z.email(), { description: "Email address of the user to remove" }),
|
|
13023
|
+
...confirmationArgs
|
|
13024
|
+
}),
|
|
13025
|
+
run: withCommonArgs(async (args) => {
|
|
13026
|
+
if (!args.yes) {
|
|
13027
|
+
if (await logger.prompt(`Are you sure you want to remove user "${args.email}" from the workspace? (yes/no):`, { type: "text" }) !== "yes") {
|
|
13028
|
+
logger.info("User removal cancelled.");
|
|
13029
|
+
return;
|
|
13030
|
+
}
|
|
13031
|
+
}
|
|
13032
|
+
await removeUser({
|
|
13033
|
+
workspaceId: args["workspace-id"],
|
|
13034
|
+
profile: args.profile,
|
|
13035
|
+
email: args.email
|
|
13036
|
+
});
|
|
13037
|
+
logger.success(`User "${args.email}" removed from workspace.`);
|
|
13038
|
+
})
|
|
13039
|
+
});
|
|
13040
|
+
|
|
13041
|
+
//#endregion
|
|
13042
|
+
//#region src/cli/workspace/user/update.ts
|
|
13043
|
+
const updateUserOptionsSchema = z.object({
|
|
13044
|
+
workspaceId: z.uuid({ message: "workspace-id must be a valid UUID" }).optional(),
|
|
13045
|
+
profile: z.string().optional(),
|
|
13046
|
+
email: z.string().email({ message: "email must be a valid email address" }),
|
|
13047
|
+
role: z.enum(validRoles, { message: `role must be one of: ${validRoles.join(", ")}` })
|
|
13048
|
+
});
|
|
13049
|
+
async function loadOptions(options) {
|
|
13050
|
+
const result = updateUserOptionsSchema.safeParse(options);
|
|
13051
|
+
if (!result.success) throw new Error(result.error.issues[0].message);
|
|
13052
|
+
return {
|
|
13053
|
+
client: await initOperatorClient(await loadAccessToken()),
|
|
13054
|
+
workspaceId: loadWorkspaceId({
|
|
13055
|
+
workspaceId: result.data.workspaceId,
|
|
13056
|
+
profile: result.data.profile
|
|
13057
|
+
}),
|
|
13058
|
+
email: result.data.email,
|
|
13059
|
+
role: stringToRole(result.data.role)
|
|
13060
|
+
};
|
|
13061
|
+
}
|
|
13062
|
+
/**
|
|
13063
|
+
* Update a user's role in a workspace.
|
|
13064
|
+
* @param options - User update options
|
|
13065
|
+
* @returns Promise that resolves when update completes
|
|
13066
|
+
*/
|
|
13067
|
+
async function updateUser(options) {
|
|
13068
|
+
const { client, workspaceId, email, role } = await loadOptions(options);
|
|
13069
|
+
await client.updateWorkspacePlatformUser({
|
|
13070
|
+
workspaceId,
|
|
13071
|
+
email,
|
|
13072
|
+
role
|
|
13073
|
+
});
|
|
13074
|
+
}
|
|
13075
|
+
const updateCommand = defineCommand({
|
|
13076
|
+
name: "update",
|
|
13077
|
+
description: "Update a user's role in a workspace",
|
|
13078
|
+
args: z.object({
|
|
13079
|
+
...commonArgs,
|
|
13080
|
+
...workspaceArgs,
|
|
13081
|
+
email: arg(z.email(), { description: "Email address of the user to update" }),
|
|
13082
|
+
role: arg(z.enum(validRoles), {
|
|
13083
|
+
description: `New role to assign (${validRoles.join(", ")})`,
|
|
13084
|
+
alias: "r"
|
|
13085
|
+
})
|
|
13086
|
+
}),
|
|
13087
|
+
run: withCommonArgs(async (args) => {
|
|
13088
|
+
await updateUser({
|
|
13089
|
+
workspaceId: args["workspace-id"],
|
|
13090
|
+
profile: args.profile,
|
|
13091
|
+
email: args.email,
|
|
13092
|
+
role: args.role
|
|
13093
|
+
});
|
|
13094
|
+
logger.success(`User "${args.email}" updated to role "${args.role}".`);
|
|
13095
|
+
})
|
|
13096
|
+
});
|
|
13097
|
+
|
|
13098
|
+
//#endregion
|
|
13099
|
+
export { startWorkflow as $, generateCommand as A, trnPrefix as At, getMachineUserToken as B, fetchAll as Bt, resumeCommand as C, isValidMigrationNumber as Ct, truncate as D, formatMigrationDiff as Dt, listWorkflows as E, formatDiffSummary as Et, removeCommand$1 as F, fetchLatestToken as Ft, generateCommand$1 as G, PATScope as Gt, listCommand$5 as H, initOAuth2Client as Ht, listCommand$4 as I, loadAccessToken as It, getExecutorJob as J, deploymentArgs as Jt, triggerCommand as K, commonArgs as Kt, listOAuth2Clients as L, loadWorkspaceId as Lt, show as M, loadConfig as Mt, showCommand as N, apiCall as Nt, truncateCommand as O, hasChanges as Ot, remove as P, apiCommand as Pt, startCommand as Q, getCommand$1 as R, readPlatformConfig as Rt, healthCommand as S, getNextMigrationNumber as St, listCommand$3 as T, reconstructSnapshotFromMigrations as Tt, listMachineUsers as U, initOperatorClient as Ut, tokenCommand as V, fetchUserInfo as Vt, generate$1 as W, readPackageJson as Wt, listExecutorJobs as X, withCommonArgs as Xt, jobsCommand as Y, jsonArgs as Yt, watchExecutorJob as Z, workspaceArgs as Zt, createCommand as _, formatMigrationNumber as _t, listCommand as a, apply as at, listCommand$2 as b, getMigrationFilePath as bt, inviteUser as c, parseMigrationLabelNumber as ct, listCommand$1 as d, INITIAL_SCHEMA_NUMBER as dt, getCommand$2 as et, listWorkspaces as f, MIGRATE_FILE_NAME as ft, deleteWorkspace as g, createSnapshotFromLocalTypes as gt, deleteCommand as h, compareSnapshots as ht, removeUser as i, listWorkflowExecutions as it, logBetaWarning as j, generateUserTypes as jt, generate as k, getNamespacesWithMigrations as kt, restoreCommand as l, DB_TYPES_FILE_NAME as lt, getWorkspace as m, compareLocalTypesWithSnapshot as mt, updateUser as n, executionsCommand as nt, listUsers as o, applyCommand as ot, getCommand as p, SCHEMA_FILE_NAME as pt, triggerExecutor as q, confirmationArgs as qt, removeCommand as r, getWorkflowExecution as rt, inviteCommand as s, MIGRATION_LABEL_KEY as st, updateCommand as t, getWorkflow as tt, restoreWorkspace as u, DIFF_FILE_NAME as ut, createWorkspace as v, getLatestMigrationNumber as vt, resumeWorkflow as w, loadDiff as wt, getAppHealth as x, getMigrationFiles as xt, listApps as y, getMigrationDirPath as yt, getOAuth2Client as z, writePlatformConfig as zt };
|
|
13100
|
+
//# sourceMappingURL=update-DZs1loy_.mjs.map
|