@pipeline-builder/api-core 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +51 -0
  3. package/lib/constants/ai-providers.d.ts +41 -0
  4. package/lib/constants/ai-providers.js +88 -0
  5. package/lib/constants/http-status.d.ts +24 -0
  6. package/lib/constants/http-status.js +29 -0
  7. package/lib/constants/index.d.ts +3 -0
  8. package/lib/constants/index.js +22 -0
  9. package/lib/constants/time.d.ts +10 -0
  10. package/lib/constants/time.js +16 -0
  11. package/lib/errors/app-errors.d.ts +30 -0
  12. package/lib/errors/app-errors.js +62 -0
  13. package/lib/errors/index.d.ts +1 -0
  14. package/lib/errors/index.js +20 -0
  15. package/lib/helpers/access-helpers.d.ts +40 -0
  16. package/lib/helpers/access-helpers.js +56 -0
  17. package/lib/helpers/crud-helpers.d.ts +16 -0
  18. package/lib/helpers/crud-helpers.js +34 -0
  19. package/lib/helpers/index.d.ts +4 -0
  20. package/lib/helpers/index.js +23 -0
  21. package/lib/helpers/mask-helpers.d.ts +33 -0
  22. package/lib/helpers/mask-helpers.js +54 -0
  23. package/lib/helpers/sse-helpers.d.ts +13 -0
  24. package/lib/helpers/sse-helpers.js +40 -0
  25. package/lib/index.d.ts +57 -0
  26. package/lib/index.js +86 -0
  27. package/lib/middleware/auth.d.ts +50 -0
  28. package/lib/middleware/auth.js +171 -0
  29. package/lib/middleware/index.d.ts +1 -0
  30. package/lib/middleware/index.js +20 -0
  31. package/lib/openapi/extend-zod.d.ts +1 -0
  32. package/lib/openapi/extend-zod.js +8 -0
  33. package/lib/openapi/index.d.ts +2 -0
  34. package/lib/openapi/index.js +10 -0
  35. package/lib/openapi/registry.d.ts +17 -0
  36. package/lib/openapi/registry.js +42 -0
  37. package/lib/openapi/routes/billing-routes.d.ts +1 -0
  38. package/lib/openapi/routes/billing-routes.js +69 -0
  39. package/lib/openapi/routes/index.d.ts +5 -0
  40. package/lib/openapi/routes/index.js +22 -0
  41. package/lib/openapi/routes/message-routes.d.ts +1 -0
  42. package/lib/openapi/routes/message-routes.js +108 -0
  43. package/lib/openapi/routes/pipeline-routes.d.ts +1 -0
  44. package/lib/openapi/routes/pipeline-routes.js +90 -0
  45. package/lib/openapi/routes/plugin-routes.d.ts +1 -0
  46. package/lib/openapi/routes/plugin-routes.js +99 -0
  47. package/lib/openapi/routes/quota-routes.d.ts +1 -0
  48. package/lib/openapi/routes/quota-routes.js +65 -0
  49. package/lib/openapi/schema-registry.d.ts +25 -0
  50. package/lib/openapi/schema-registry.js +95 -0
  51. package/lib/routes/health.d.ts +47 -0
  52. package/lib/routes/health.js +81 -0
  53. package/lib/routes/index.d.ts +1 -0
  54. package/lib/routes/index.js +20 -0
  55. package/lib/services/admin-audit.d.ts +13 -0
  56. package/lib/services/admin-audit.js +31 -0
  57. package/lib/services/cache-service.d.ts +108 -0
  58. package/lib/services/cache-service.js +212 -0
  59. package/lib/services/compliance-client.d.ts +46 -0
  60. package/lib/services/compliance-client.js +102 -0
  61. package/lib/services/compliance-event-subscriber.d.ts +11 -0
  62. package/lib/services/compliance-event-subscriber.js +60 -0
  63. package/lib/services/compliance-queue.d.ts +11 -0
  64. package/lib/services/compliance-queue.js +38 -0
  65. package/lib/services/entity-events.d.ts +44 -0
  66. package/lib/services/entity-events.js +63 -0
  67. package/lib/services/http-client.d.ts +108 -0
  68. package/lib/services/http-client.js +285 -0
  69. package/lib/services/index.d.ts +10 -0
  70. package/lib/services/index.js +40 -0
  71. package/lib/services/quota.d.ts +59 -0
  72. package/lib/services/quota.js +137 -0
  73. package/lib/services/retry-strategy.d.ts +74 -0
  74. package/lib/services/retry-strategy.js +127 -0
  75. package/lib/types/billing.d.ts +47 -0
  76. package/lib/types/billing.js +5 -0
  77. package/lib/types/common.d.ts +161 -0
  78. package/lib/types/common.js +53 -0
  79. package/lib/types/error-codes.d.ts +38 -0
  80. package/lib/types/error-codes.js +77 -0
  81. package/lib/types/feature-flags.d.ts +38 -0
  82. package/lib/types/feature-flags.js +107 -0
  83. package/lib/types/http.d.ts +37 -0
  84. package/lib/types/http.js +5 -0
  85. package/lib/types/index.d.ts +7 -0
  86. package/lib/types/index.js +26 -0
  87. package/lib/types/pipeline.d.ts +70 -0
  88. package/lib/types/pipeline.js +44 -0
  89. package/lib/types/quota-tiers.d.ts +23 -0
  90. package/lib/types/quota-tiers.js +26 -0
  91. package/lib/utils/alias-resolver.d.ts +16 -0
  92. package/lib/utils/alias-resolver.js +49 -0
  93. package/lib/utils/headers.d.ts +18 -0
  94. package/lib/utils/headers.js +24 -0
  95. package/lib/utils/identity.d.ts +61 -0
  96. package/lib/utils/identity.js +75 -0
  97. package/lib/utils/index.d.ts +7 -0
  98. package/lib/utils/index.js +26 -0
  99. package/lib/utils/logger.d.ts +28 -0
  100. package/lib/utils/logger.js +77 -0
  101. package/lib/utils/object.d.ts +13 -0
  102. package/lib/utils/object.js +21 -0
  103. package/lib/utils/params.d.ts +89 -0
  104. package/lib/utils/params.js +148 -0
  105. package/lib/utils/response.d.ts +142 -0
  106. package/lib/utils/response.js +237 -0
  107. package/lib/validation/ai-schemas.d.ts +61 -0
  108. package/lib/validation/ai-schemas.js +81 -0
  109. package/lib/validation/common-schemas.d.ts +72 -0
  110. package/lib/validation/common-schemas.js +58 -0
  111. package/lib/validation/index.d.ts +6 -0
  112. package/lib/validation/index.js +25 -0
  113. package/lib/validation/message-schemas.d.ts +79 -0
  114. package/lib/validation/message-schemas.js +42 -0
  115. package/lib/validation/middleware.d.ts +60 -0
  116. package/lib/validation/middleware.js +77 -0
  117. package/lib/validation/pipeline-schemas.d.ts +135 -0
  118. package/lib/validation/pipeline-schemas.js +85 -0
  119. package/lib/validation/plugin-schemas.d.ts +127 -0
  120. package/lib/validation/plugin-schemas.js +84 -0
  121. package/openapi.yaml +292 -0
  122. package/package.json +127 -0
@@ -0,0 +1,135 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Pipeline filter schema for query parameters
4
+ */
5
+ export declare const PipelineFilterSchema: z.ZodObject<{
6
+ id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodString]>>;
7
+ accessModifier: z.ZodOptional<z.ZodEnum<{
8
+ public: "public";
9
+ private: "private";
10
+ }>>;
11
+ isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
12
+ true: "true";
13
+ false: "false";
14
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
15
+ isDefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
16
+ true: "true";
17
+ false: "false";
18
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
19
+ project: z.ZodOptional<z.ZodString>;
20
+ organization: z.ZodOptional<z.ZodString>;
21
+ pipelineName: z.ZodOptional<z.ZodString>;
22
+ orgId: z.ZodOptional<z.ZodString>;
23
+ keyword: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>;
25
+ /**
26
+ * Pipeline creation schema
27
+ */
28
+ export declare const PipelineCreateSchema: z.ZodObject<{
29
+ project: z.ZodString;
30
+ organization: z.ZodString;
31
+ pipelineName: z.ZodOptional<z.ZodString>;
32
+ description: z.ZodOptional<z.ZodString>;
33
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ accessModifier: z.ZodOptional<z.ZodEnum<{
35
+ public: "public";
36
+ private: "private";
37
+ }>>;
38
+ props: z.ZodObject<{
39
+ project: z.ZodString;
40
+ organization: z.ZodString;
41
+ pipelineName: z.ZodOptional<z.ZodString>;
42
+ global: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
43
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
44
+ role: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
+ synth: z.ZodObject<{
46
+ source: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
47
+ plugin: z.ZodObject<{
48
+ name: z.ZodString;
49
+ alias: z.ZodOptional<z.ZodString>;
50
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
51
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
52
+ }, z.core.$loose>;
53
+ }, z.core.$loose>;
54
+ stages: z.ZodOptional<z.ZodArray<z.ZodObject<{
55
+ stageName: z.ZodString;
56
+ alias: z.ZodOptional<z.ZodString>;
57
+ steps: z.ZodArray<z.ZodObject<{
58
+ plugin: z.ZodObject<{
59
+ name: z.ZodString;
60
+ alias: z.ZodOptional<z.ZodString>;
61
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
62
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
63
+ }, z.core.$loose>;
64
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
65
+ network: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
66
+ position: z.ZodOptional<z.ZodEnum<{
67
+ pre: "pre";
68
+ post: "post";
69
+ }>>;
70
+ }, z.core.$loose>>;
71
+ }, z.core.$strip>>>;
72
+ }, z.core.$loose>;
73
+ }, z.core.$strip>;
74
+ /**
75
+ * Pipeline update schema
76
+ */
77
+ export declare const PipelineUpdateSchema: z.ZodObject<{
78
+ pipelineName: z.ZodOptional<z.ZodString>;
79
+ description: z.ZodOptional<z.ZodString>;
80
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
+ props: z.ZodOptional<z.ZodObject<{
82
+ project: z.ZodString;
83
+ organization: z.ZodString;
84
+ pipelineName: z.ZodOptional<z.ZodString>;
85
+ global: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
86
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
87
+ role: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
88
+ synth: z.ZodObject<{
89
+ source: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
90
+ plugin: z.ZodObject<{
91
+ name: z.ZodString;
92
+ alias: z.ZodOptional<z.ZodString>;
93
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
94
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
95
+ }, z.core.$loose>;
96
+ }, z.core.$loose>;
97
+ stages: z.ZodOptional<z.ZodArray<z.ZodObject<{
98
+ stageName: z.ZodString;
99
+ alias: z.ZodOptional<z.ZodString>;
100
+ steps: z.ZodArray<z.ZodObject<{
101
+ plugin: z.ZodObject<{
102
+ name: z.ZodString;
103
+ alias: z.ZodOptional<z.ZodString>;
104
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
106
+ }, z.core.$loose>;
107
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
108
+ network: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
109
+ position: z.ZodOptional<z.ZodEnum<{
110
+ pre: "pre";
111
+ post: "post";
112
+ }>>;
113
+ }, z.core.$loose>>;
114
+ }, z.core.$strip>>>;
115
+ }, z.core.$loose>>;
116
+ isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
117
+ true: "true";
118
+ false: "false";
119
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
120
+ isDefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
121
+ true: "true";
122
+ false: "false";
123
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
124
+ accessModifier: z.ZodOptional<z.ZodEnum<{
125
+ public: "public";
126
+ private: "private";
127
+ }>>;
128
+ }, z.core.$strip>;
129
+ /**
130
+ * Infer TypeScript types from schemas
131
+ * Note: Prefixed with "Validated" to avoid conflicts with existing type definitions
132
+ */
133
+ export type ValidatedPipelineFilter = z.infer<typeof PipelineFilterSchema>;
134
+ export type ValidatedPipelineCreate = z.infer<typeof PipelineCreateSchema>;
135
+ export type ValidatedPipelineUpdate = z.infer<typeof PipelineUpdateSchema>;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // Copyright 2026 Pipeline Builder Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.PipelineUpdateSchema = exports.PipelineCreateSchema = exports.PipelineFilterSchema = void 0;
6
+ const zod_1 = require("zod");
7
+ const common_schemas_1 = require("./common-schemas");
8
+ /**
9
+ * Pipeline filter schema for query parameters
10
+ */
11
+ exports.PipelineFilterSchema = common_schemas_1.BaseFilterSchema.extend({
12
+ project: zod_1.z.string().min(1).optional(),
13
+ organization: zod_1.z.string().min(1).optional(),
14
+ pipelineName: zod_1.z.string().min(1).optional(),
15
+ orgId: zod_1.z.string().min(1).optional(),
16
+ keyword: zod_1.z.string().min(1).optional(),
17
+ });
18
+ /**
19
+ * Plugin options schema (name-based selection)
20
+ */
21
+ const PluginOptionsSchema = zod_1.z.object({
22
+ name: zod_1.z.string().min(1),
23
+ alias: zod_1.z.string().optional(),
24
+ filter: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
25
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
26
+ }).passthrough();
27
+ /**
28
+ * Stage step schema
29
+ */
30
+ const StageStepSchema = zod_1.z.object({
31
+ plugin: PluginOptionsSchema,
32
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
33
+ network: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
34
+ position: zod_1.z.enum(['pre', 'post']).optional(),
35
+ }).passthrough();
36
+ /**
37
+ * Stage schema
38
+ */
39
+ const StageSchema = zod_1.z.object({
40
+ stageName: zod_1.z.string().min(1),
41
+ alias: zod_1.z.string().optional(),
42
+ steps: zod_1.z.array(StageStepSchema).min(1),
43
+ });
44
+ /**
45
+ * BuilderProps schema — structural validation for pipeline configuration.
46
+ * Uses passthrough() to allow additional fields without rejecting them.
47
+ */
48
+ const BuilderPropsSchema = zod_1.z.object({
49
+ project: zod_1.z.string().min(1),
50
+ organization: zod_1.z.string().min(1),
51
+ pipelineName: zod_1.z.string().optional(),
52
+ global: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
53
+ defaults: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
54
+ role: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
55
+ synth: zod_1.z.object({
56
+ source: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
57
+ plugin: PluginOptionsSchema,
58
+ }).passthrough(),
59
+ stages: zod_1.z.array(StageSchema).optional(),
60
+ }).passthrough();
61
+ /**
62
+ * Pipeline creation schema
63
+ */
64
+ exports.PipelineCreateSchema = zod_1.z.object({
65
+ project: zod_1.z.string().min(1, 'Project is required'),
66
+ organization: zod_1.z.string().min(1, 'Organization is required'),
67
+ pipelineName: zod_1.z.string().min(1).optional(),
68
+ description: zod_1.z.string().optional(),
69
+ keywords: zod_1.z.array(zod_1.z.string()).optional(),
70
+ accessModifier: common_schemas_1.AccessModifierSchema.optional(),
71
+ props: BuilderPropsSchema,
72
+ });
73
+ /**
74
+ * Pipeline update schema
75
+ */
76
+ exports.PipelineUpdateSchema = zod_1.z.object({
77
+ pipelineName: zod_1.z.string().min(1).optional(),
78
+ description: zod_1.z.string().optional(),
79
+ keywords: zod_1.z.array(zod_1.z.string()).optional(),
80
+ props: BuilderPropsSchema.optional(),
81
+ isActive: common_schemas_1.BooleanQuerySchema.optional(),
82
+ isDefault: common_schemas_1.BooleanQuerySchema.optional(),
83
+ accessModifier: common_schemas_1.AccessModifierSchema.optional(),
84
+ });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BpcGVsaW5lLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7OztBQUV0Qyw2QkFBd0I7QUFDeEIscURBQThGO0FBRTlGOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxpQ0FBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDMUQsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFlBQVksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFB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QUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hDLGNBQWMsRUFBRSxxQ0FBb0IsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsUUFBUSxFQUFFLG1DQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN2QyxTQUFTLEVBQUUsbUNBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3hDLGNBQWMsRUFBRSxxQ0FBb0IsQ0FBQyxRQUFRLEVBQUU7Q0FDaEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgQmFzZUZpbHRlclNjaGVtYSwgQm9vbGVhblF1ZXJ5U2NoZW1hLCBBY2Nlc3NNb2RpZmllclNjaGVtYSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMnO1xuXG4vKipcbiAqIFBpcGVsaW5lIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBQbHVnaW4gb3B0aW9ucyBzY2hlbWEgKG5hbWUtYmFzZWQgc2VsZWN0aW9uKVxuICovXG5jb25zdCBQbHVnaW5PcHRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsdGVyOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKTtcblxuLyoqXG4gKiBTdGFnZSBzdGVwIHNjaGVtYVxuICovXG5jb25zdCBTdGFnZVN0ZXBTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHBsdWdpbjogUGx1Z2luT3B0aW9uc1NjaGVtYSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBuZXR3b3JrOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgcG9zaXRpb246IHouZW51bShbJ3ByZScsICdwb3N0J10pLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpO1xuXG4vKipcbiAqIFN0YWdlIHNjaGVtYVxuICovXG5jb25zdCBTdGFnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhZ2VOYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgc3RlcHM6IHouYXJyYXkoU3RhZ2VTdGVwU2NoZW1hKS5taW4oMSksXG59KTtcblxuLyoqXG4gKiBCdWlsZGVyUHJvcHMgc2NoZW1hIOKAlCBzdHJ1Y3R1cmFsIHZhbGlkYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKiBVc2VzIHBhc3N0aHJvdWdoKCkgdG8gYWxsb3cgYWRkaXRpb25hbCBmaWVsZHMgd2l0aG91dCByZWplY3RpbmcgdGhlbS5cbiAqL1xuY29uc3QgQnVpbGRlclByb3BzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdsb2JhbDogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIGRlZmF1bHRzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgcm9sZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHN5bnRoOiB6Lm9iamVjdCh7XG4gICAgc291cmNlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIH0pLnBhc3N0aHJvdWdoKCksXG4gIHN0YWdlczogei5hcnJheShTdGFnZVNjaGVtYSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbi8qKlxuICogUGlwZWxpbmUgY3JlYXRpb24gc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZUNyZWF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1Byb2plY3QgaXMgcmVxdWlyZWQnKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxLCAnT3JnYW5pemF0aW9uIGlzIHJlcXVpcmVkJyksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLm9wdGlvbmFsKCksXG4gIHByb3BzOiBCdWlsZGVyUHJvcHNTY2hlbWEsXG59KTtcblxuLyoqXG4gKiBQaXBlbGluZSB1cGRhdGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZVVwZGF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBJbmZlciBUeXBlU2NyaXB0IHR5cGVzIGZyb20gc2NoZW1hc1xuICogTm90ZTogUHJlZml4ZWQgd2l0aCBcIlZhbGlkYXRlZFwiIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIHR5cGUgZGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGVkUGlwZWxpbmVGaWx0ZXIgPSB6LmluZmVyPHR5cGVvZiBQaXBlbGluZUZpbHRlclNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRQaXBlbGluZUNyZWF0ZSA9IHouaW5mZXI8dHlwZW9mIFBpcGVsaW5lQ3JlYXRlU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFBpcGVsaW5lVXBkYXRlID0gei5pbmZlcjx0eXBlb2YgUGlwZWxpbmVVcGRhdGVTY2hlbWE+O1xuIl19
@@ -0,0 +1,127 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Plugin filter schema for query parameters
4
+ */
5
+ export declare const PluginFilterSchema: z.ZodObject<{
6
+ id: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>, z.ZodString]>>;
7
+ accessModifier: z.ZodOptional<z.ZodEnum<{
8
+ public: "public";
9
+ private: "private";
10
+ }>>;
11
+ isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
12
+ true: "true";
13
+ false: "false";
14
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
15
+ isDefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
16
+ true: "true";
17
+ false: "false";
18
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
19
+ name: z.ZodOptional<z.ZodString>;
20
+ version: z.ZodOptional<z.ZodString>;
21
+ orgId: z.ZodOptional<z.ZodString>;
22
+ imageTag: z.ZodOptional<z.ZodString>;
23
+ pluginType: z.ZodOptional<z.ZodString>;
24
+ keyword: z.ZodOptional<z.ZodString>;
25
+ category: z.ZodOptional<z.ZodString>;
26
+ }, z.core.$strip>;
27
+ /**
28
+ * Plugin creation schema — used for OpenAPI documentation and direct API creation.
29
+ * Currently no route uses this directly; plugins are created via upload or AI generation.
30
+ * Retained for future direct-create endpoint and OpenAPI spec completeness.
31
+ */
32
+ export declare const PluginCreateSchema: z.ZodObject<{
33
+ orgId: z.ZodString;
34
+ name: z.ZodString;
35
+ version: z.ZodString;
36
+ imageTag: z.ZodString;
37
+ accessModifier: z.ZodOptional<z.ZodEnum<{
38
+ public: "public";
39
+ private: "private";
40
+ }>>;
41
+ category: z.ZodOptional<z.ZodString>;
42
+ pluginType: z.ZodOptional<z.ZodString>;
43
+ computeType: z.ZodOptional<z.ZodString>;
44
+ primaryOutputDirectory: z.ZodOptional<z.ZodNullable<z.ZodString>>;
45
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
47
+ buildArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
48
+ installCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
49
+ commands: z.ZodOptional<z.ZodArray<z.ZodString>>;
50
+ isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
51
+ true: "true";
52
+ false: "false";
53
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
54
+ isDefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
55
+ true: "true";
56
+ false: "false";
57
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
58
+ timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
59
+ failureBehavior: z.ZodOptional<z.ZodEnum<{
60
+ fail: "fail";
61
+ warn: "warn";
62
+ ignore: "ignore";
63
+ }>>;
64
+ secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
65
+ name: z.ZodString;
66
+ required: z.ZodBoolean;
67
+ description: z.ZodOptional<z.ZodString>;
68
+ }, z.core.$strip>>>;
69
+ }, z.core.$strip>;
70
+ /**
71
+ * Plugin update schema
72
+ */
73
+ export declare const PluginUpdateSchema: z.ZodObject<{
74
+ name: z.ZodOptional<z.ZodString>;
75
+ description: z.ZodOptional<z.ZodString>;
76
+ keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
77
+ category: z.ZodOptional<z.ZodString>;
78
+ version: z.ZodOptional<z.ZodString>;
79
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
80
+ pluginType: z.ZodOptional<z.ZodString>;
81
+ computeType: z.ZodOptional<z.ZodString>;
82
+ primaryOutputDirectory: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
84
+ buildArgs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
85
+ installCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
+ commands: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
+ isActive: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
88
+ true: "true";
89
+ false: "false";
90
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
91
+ isDefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodEnum<{
92
+ true: "true";
93
+ false: "false";
94
+ }>, z.ZodTransform<boolean, "true" | "false">>, z.ZodPipe<z.ZodString, z.ZodTransform<boolean, string>>]>>;
95
+ accessModifier: z.ZodOptional<z.ZodEnum<{
96
+ public: "public";
97
+ private: "private";
98
+ }>>;
99
+ timeout: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
100
+ failureBehavior: z.ZodOptional<z.ZodEnum<{
101
+ fail: "fail";
102
+ warn: "warn";
103
+ ignore: "ignore";
104
+ }>>;
105
+ secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
+ name: z.ZodString;
107
+ required: z.ZodBoolean;
108
+ description: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strip>>>;
110
+ }, z.core.$strip>;
111
+ /**
112
+ * Plugin upload body schema (multipart form-data text fields)
113
+ */
114
+ export declare const PluginUploadBodySchema: z.ZodObject<{
115
+ accessModifier: z.ZodOptional<z.ZodEnum<{
116
+ public: "public";
117
+ private: "private";
118
+ }>>;
119
+ }, z.core.$strip>;
120
+ /**
121
+ * Infer TypeScript types from schemas
122
+ * Note: Prefixed with "Validated" to avoid conflicts with existing type definitions
123
+ */
124
+ export type ValidatedPluginFilter = z.infer<typeof PluginFilterSchema>;
125
+ export type ValidatedPluginCreate = z.infer<typeof PluginCreateSchema>;
126
+ export type ValidatedPluginUpdate = z.infer<typeof PluginUpdateSchema>;
127
+ export type ValidatedPluginUploadBody = z.infer<typeof PluginUploadBodySchema>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ // Copyright 2026 Pipeline Builder Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.PluginUploadBodySchema = exports.PluginUpdateSchema = exports.PluginCreateSchema = exports.PluginFilterSchema = void 0;
6
+ const zod_1 = require("zod");
7
+ const common_schemas_1 = require("./common-schemas");
8
+ /**
9
+ * Plugin filter schema for query parameters
10
+ */
11
+ exports.PluginFilterSchema = common_schemas_1.BaseFilterSchema.extend({
12
+ name: zod_1.z.string().min(1).optional(),
13
+ version: zod_1.z.string().min(1).optional(),
14
+ orgId: zod_1.z.string().min(1).optional(),
15
+ imageTag: zod_1.z.string().min(1).optional(),
16
+ pluginType: zod_1.z.string().optional(),
17
+ keyword: zod_1.z.string().min(1).optional(),
18
+ category: zod_1.z.string().min(1).optional(),
19
+ });
20
+ /**
21
+ * Plugin creation schema — used for OpenAPI documentation and direct API creation.
22
+ * Currently no route uses this directly; plugins are created via upload or AI generation.
23
+ * Retained for future direct-create endpoint and OpenAPI spec completeness.
24
+ */
25
+ exports.PluginCreateSchema = zod_1.z.object({
26
+ orgId: zod_1.z.string().min(1, 'Organization ID is required'),
27
+ name: zod_1.z.string().min(1, 'Plugin name is required'),
28
+ version: zod_1.z.string().min(1, 'Version is required'),
29
+ imageTag: zod_1.z.string().min(1, 'Image tag is required'),
30
+ accessModifier: common_schemas_1.AccessModifierSchema.optional(),
31
+ category: zod_1.z.string().min(1).optional(),
32
+ pluginType: zod_1.z.string().optional(),
33
+ computeType: zod_1.z.string().optional(),
34
+ primaryOutputDirectory: zod_1.z.string().nullable().optional(),
35
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
36
+ env: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
37
+ buildArgs: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
38
+ installCommands: zod_1.z.array(zod_1.z.string()).optional(),
39
+ commands: zod_1.z.array(zod_1.z.string()).optional(),
40
+ isActive: common_schemas_1.BooleanQuerySchema.optional(),
41
+ isDefault: common_schemas_1.BooleanQuerySchema.optional(),
42
+ timeout: zod_1.z.number().int().positive().nullable().optional(),
43
+ failureBehavior: zod_1.z.enum(['fail', 'warn', 'ignore']).optional(),
44
+ secrets: zod_1.z.array(zod_1.z.object({
45
+ name: zod_1.z.string().min(1),
46
+ required: zod_1.z.boolean(),
47
+ description: zod_1.z.string().optional(),
48
+ })).optional(),
49
+ });
50
+ /**
51
+ * Plugin update schema
52
+ */
53
+ exports.PluginUpdateSchema = zod_1.z.object({
54
+ name: zod_1.z.string().min(1).optional(),
55
+ description: zod_1.z.string().optional(),
56
+ keywords: zod_1.z.array(zod_1.z.string()).optional(),
57
+ category: zod_1.z.string().min(1).optional(),
58
+ version: zod_1.z.string().min(1).optional(),
59
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
60
+ pluginType: zod_1.z.string().optional(),
61
+ computeType: zod_1.z.string().optional(),
62
+ primaryOutputDirectory: zod_1.z.string().nullable().optional(),
63
+ env: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
64
+ buildArgs: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
65
+ installCommands: zod_1.z.array(zod_1.z.string()).optional(),
66
+ commands: zod_1.z.array(zod_1.z.string()).optional(),
67
+ isActive: common_schemas_1.BooleanQuerySchema.optional(),
68
+ isDefault: common_schemas_1.BooleanQuerySchema.optional(),
69
+ accessModifier: common_schemas_1.AccessModifierSchema.optional(),
70
+ timeout: zod_1.z.number().int().positive().nullable().optional(),
71
+ failureBehavior: zod_1.z.enum(['fail', 'warn', 'ignore']).optional(),
72
+ secrets: zod_1.z.array(zod_1.z.object({
73
+ name: zod_1.z.string().min(1),
74
+ required: zod_1.z.boolean(),
75
+ description: zod_1.z.string().optional(),
76
+ })).optional(),
77
+ });
78
+ /**
79
+ * Plugin upload body schema (multipart form-data text fields)
80
+ */
81
+ exports.PluginUploadBodySchema = zod_1.z.object({
82
+ accessModifier: common_schemas_1.AccessModifierSchema.optional(),
83
+ });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQzs7O0FBRXRDLDZCQUF3QjtBQUN4QixxREFBOEY7QUFFOUY7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGlDQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN4RCxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNuQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN2QyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSw2QkFBNkIsQ0FBQztJQUN2RCxJ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USxFQUFFO0lBQzFELGVBQWUsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM5RCxPQUFPLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixRQUFRLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNyQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNuQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxjQUFjLEVBQUUscUNBQW9CLENBQUMsUUFBUSxFQUFFO0NBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgQWNjZXNzTW9kaWZpZXJTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzJztcblxuLyoqXG4gKiBQbHVnaW4gZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGx1Z2luRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgaW1hZ2VUYWc6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBQbHVnaW4gY3JlYXRpb24gc2NoZW1hIOKAlCB1c2VkIGZvciBPcGVuQVBJIGRvY3VtZW50YXRpb24gYW5kIGRpcmVjdCBBUEkgY3JlYXRpb24uXG4gKiBDdXJyZW50bHkgbm8gcm91dGUgdXNlcyB0aGlzIGRpcmVjdGx5OyBwbHVnaW5zIGFyZSBjcmVhdGVkIHZpYSB1cGxvYWQgb3IgQUkgZ2VuZXJhdGlvbi5cbiAqIFJldGFpbmVkIGZvciBmdXR1cmUgZGlyZWN0LWNyZWF0ZSBlbmRwb2ludCBhbmQgT3BlbkFQSSBzcGVjIGNvbXBsZXRlbmVzcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpbkNyZWF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gSUQgaXMgcmVxdWlyZWQnKSxcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSwgJ1BsdWdpbiBuYW1lIGlzIHJlcXVpcmVkJyksXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEsICdWZXJzaW9uIGlzIHJlcXVpcmVkJyksXG4gIGltYWdlVGFnOiB6LnN0cmluZygpLm1pbigxLCAnSW1hZ2UgdGFnIGlzIHJlcXVpcmVkJyksXG4gIGFjY2Vzc01vZGlmaWVyOiBBY2Nlc3NNb2RpZmllclNjaGVtYS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjb21wdXRlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBlbnY6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGJ1aWxkQXJnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgaW5zdGFsbENvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGNvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmFpbHVyZUJlaGF2aW9yOiB6LmVudW0oWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10pLm9wdGlvbmFsKCksXG4gIHNlY3JldHM6IHouYXJyYXkoei5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB9KSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiB1cGRhdGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5VcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29tcHV0ZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIGVudjogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgYnVpbGRBcmdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgY29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBhY2Nlc3NNb2RpZmllcjogQWNjZXNzTW9kaWZpZXJTY2hlbWEub3B0aW9uYWwoKSxcbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmFpbHVyZUJlaGF2aW9yOiB6LmVudW0oWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10pLm9wdGlvbmFsKCksXG4gIHNlY3JldHM6IHouYXJyYXkoei5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB9KSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiB1cGxvYWQgYm9keSBzY2hlbWEgKG11bHRpcGFydCBmb3JtLWRhdGEgdGV4dCBmaWVsZHMpXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5VcGxvYWRCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICBhY2Nlc3NNb2RpZmllcjogQWNjZXNzTW9kaWZpZXJTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEluZmVyIFR5cGVTY3JpcHQgdHlwZXMgZnJvbSBzY2hlbWFzXG4gKiBOb3RlOiBQcmVmaXhlZCB3aXRoIFwiVmFsaWRhdGVkXCIgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgdHlwZSBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRQbHVnaW5GaWx0ZXIgPSB6LmluZmVyPHR5cGVvZiBQbHVnaW5GaWx0ZXJTY2hlbWE+O1xuZXhwb3J0IHR5cGUgVmFsaWRhdGVkUGx1Z2luQ3JlYXRlID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ3JlYXRlU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFBsdWdpblVwZGF0ZSA9IHouaW5mZXI8dHlwZW9mIFBsdWdpblVwZGF0ZVNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRQbHVnaW5VcGxvYWRCb2R5ID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luVXBsb2FkQm9keVNjaGVtYT47XG4iXX0=