@pipeline-builder/pipeline-manager 0.0.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.
Files changed (222) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +145 -0
  3. package/cdk.json +91 -0
  4. package/config.yml +94 -0
  5. package/dist/agent/ai.d.ts +48 -0
  6. package/dist/agent/ai.d.ts.map +1 -0
  7. package/dist/agent/ai.js +149 -0
  8. package/dist/agent/bootstrap.d.ts +39 -0
  9. package/dist/agent/bootstrap.d.ts.map +1 -0
  10. package/dist/agent/bootstrap.js +66 -0
  11. package/dist/agent/env-file.d.ts +17 -0
  12. package/dist/agent/env-file.d.ts.map +1 -0
  13. package/dist/agent/env-file.js +47 -0
  14. package/dist/agent/executor.d.ts +30 -0
  15. package/dist/agent/executor.d.ts.map +1 -0
  16. package/dist/agent/executor.js +60 -0
  17. package/dist/agent/health.d.ts +43 -0
  18. package/dist/agent/health.d.ts.map +1 -0
  19. package/dist/agent/health.js +109 -0
  20. package/dist/agent/ports.d.ts +26 -0
  21. package/dist/agent/ports.d.ts.map +1 -0
  22. package/dist/agent/ports.js +132 -0
  23. package/dist/agent/post-steps.d.ts +61 -0
  24. package/dist/agent/post-steps.d.ts.map +1 -0
  25. package/dist/agent/post-steps.js +131 -0
  26. package/dist/agent/prereqs.d.ts +26 -0
  27. package/dist/agent/prereqs.d.ts.map +1 -0
  28. package/dist/agent/prereqs.js +134 -0
  29. package/dist/agent/targets.d.ts +128 -0
  30. package/dist/agent/targets.d.ts.map +1 -0
  31. package/dist/agent/targets.js +265 -0
  32. package/dist/agent/tools.d.ts +13 -0
  33. package/dist/agent/tools.d.ts.map +1 -0
  34. package/dist/agent/tools.js +75 -0
  35. package/dist/agent/troubleshoot.d.ts +30 -0
  36. package/dist/agent/troubleshoot.d.ts.map +1 -0
  37. package/dist/agent/troubleshoot.js +87 -0
  38. package/dist/boilerplate.d.ts +3 -0
  39. package/dist/boilerplate.d.ts.map +1 -0
  40. package/dist/boilerplate.js +54 -0
  41. package/dist/cdk.json +91 -0
  42. package/dist/cli.d.ts +62 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +463 -0
  45. package/dist/commands/audit-stacks.d.ts +24 -0
  46. package/dist/commands/audit-stacks.d.ts.map +1 -0
  47. package/dist/commands/audit-stacks.js +182 -0
  48. package/dist/commands/audit-tokens.d.ts +21 -0
  49. package/dist/commands/audit-tokens.d.ts.map +1 -0
  50. package/dist/commands/audit-tokens.js +153 -0
  51. package/dist/commands/bootstrap.d.ts +11 -0
  52. package/dist/commands/bootstrap.d.ts.map +1 -0
  53. package/dist/commands/bootstrap.js +159 -0
  54. package/dist/commands/create-pat.d.ts +27 -0
  55. package/dist/commands/create-pat.d.ts.map +1 -0
  56. package/dist/commands/create-pat.js +194 -0
  57. package/dist/commands/create-pipeline.d.ts +12 -0
  58. package/dist/commands/create-pipeline.d.ts.map +1 -0
  59. package/dist/commands/create-pipeline.js +315 -0
  60. package/dist/commands/deploy.d.ts +15 -0
  61. package/dist/commands/deploy.d.ts.map +1 -0
  62. package/dist/commands/deploy.js +157 -0
  63. package/dist/commands/entity-get.d.ts +51 -0
  64. package/dist/commands/entity-get.d.ts.map +1 -0
  65. package/dist/commands/entity-get.js +69 -0
  66. package/dist/commands/entity-list.d.ts +39 -0
  67. package/dist/commands/entity-list.d.ts.map +1 -0
  68. package/dist/commands/entity-list.js +88 -0
  69. package/dist/commands/get-pipeline.d.ts +13 -0
  70. package/dist/commands/get-pipeline.d.ts.map +1 -0
  71. package/dist/commands/get-pipeline.js +49 -0
  72. package/dist/commands/get-plugin.d.ts +13 -0
  73. package/dist/commands/get-plugin.d.ts.map +1 -0
  74. package/dist/commands/get-plugin.js +51 -0
  75. package/dist/commands/instantiate-template.d.ts +20 -0
  76. package/dist/commands/instantiate-template.d.ts.map +1 -0
  77. package/dist/commands/instantiate-template.js +274 -0
  78. package/dist/commands/list-pipelines.d.ts +20 -0
  79. package/dist/commands/list-pipelines.d.ts.map +1 -0
  80. package/dist/commands/list-pipelines.js +99 -0
  81. package/dist/commands/list-plugins.d.ts +20 -0
  82. package/dist/commands/list-plugins.d.ts.map +1 -0
  83. package/dist/commands/list-plugins.js +92 -0
  84. package/dist/commands/login.d.ts +21 -0
  85. package/dist/commands/login.d.ts.map +1 -0
  86. package/dist/commands/login.js +174 -0
  87. package/dist/commands/new-plugin.d.ts +12 -0
  88. package/dist/commands/new-plugin.d.ts.map +1 -0
  89. package/dist/commands/new-plugin.js +129 -0
  90. package/dist/commands/org-export.d.ts +25 -0
  91. package/dist/commands/org-export.d.ts.map +1 -0
  92. package/dist/commands/org-export.js +100 -0
  93. package/dist/commands/provision.d.ts +122 -0
  94. package/dist/commands/provision.d.ts.map +1 -0
  95. package/dist/commands/provision.js +867 -0
  96. package/dist/commands/redrive-events.d.ts +24 -0
  97. package/dist/commands/redrive-events.d.ts.map +1 -0
  98. package/dist/commands/redrive-events.js +127 -0
  99. package/dist/commands/register.d.ts +38 -0
  100. package/dist/commands/register.d.ts.map +1 -0
  101. package/dist/commands/register.js +160 -0
  102. package/dist/commands/setup-events.d.ts +15 -0
  103. package/dist/commands/setup-events.d.ts.map +1 -0
  104. package/dist/commands/setup-events.js +168 -0
  105. package/dist/commands/status.d.ts +11 -0
  106. package/dist/commands/status.d.ts.map +1 -0
  107. package/dist/commands/status.js +81 -0
  108. package/dist/commands/store-token.d.ts +26 -0
  109. package/dist/commands/store-token.d.ts.map +1 -0
  110. package/dist/commands/store-token.js +305 -0
  111. package/dist/commands/synth.d.ts +21 -0
  112. package/dist/commands/synth.d.ts.map +1 -0
  113. package/dist/commands/synth.js +158 -0
  114. package/dist/commands/upload-plugin.d.ts +21 -0
  115. package/dist/commands/upload-plugin.d.ts.map +1 -0
  116. package/dist/commands/upload-plugin.js +275 -0
  117. package/dist/commands/validate-plugin.d.ts +12 -0
  118. package/dist/commands/validate-plugin.d.ts.map +1 -0
  119. package/dist/commands/validate-plugin.js +175 -0
  120. package/dist/commands/validate-templates.d.ts +11 -0
  121. package/dist/commands/validate-templates.d.ts.map +1 -0
  122. package/dist/commands/validate-templates.js +116 -0
  123. package/dist/commands/version.d.ts +12 -0
  124. package/dist/commands/version.d.ts.map +1 -0
  125. package/dist/commands/version.js +216 -0
  126. package/dist/config/cli.constants.d.ts +116 -0
  127. package/dist/config/cli.constants.d.ts.map +1 -0
  128. package/dist/config/cli.constants.js +194 -0
  129. package/dist/config.yml +94 -0
  130. package/dist/lambda/token-renew-handler.d.ts +2 -0
  131. package/dist/lambda/token-renew-handler.d.ts.map +1 -0
  132. package/dist/lambda/token-renew-handler.js +125 -0
  133. package/dist/templates/events-stack.json +174 -0
  134. package/dist/templates/token-renew-stack.json +122 -0
  135. package/dist/types/config.d.ts +53 -0
  136. package/dist/types/config.d.ts.map +1 -0
  137. package/dist/types/config.js +4 -0
  138. package/dist/types/error.d.ts +61 -0
  139. package/dist/types/error.d.ts.map +1 -0
  140. package/dist/types/error.js +35 -0
  141. package/dist/types/index.d.ts +9 -0
  142. package/dist/types/index.d.ts.map +1 -0
  143. package/dist/types/index.js +11 -0
  144. package/dist/types/pipeline-template.d.ts +48 -0
  145. package/dist/types/pipeline-template.d.ts.map +1 -0
  146. package/dist/types/pipeline-template.js +4 -0
  147. package/dist/types/pipeline.d.ts +121 -0
  148. package/dist/types/pipeline.d.ts.map +1 -0
  149. package/dist/types/pipeline.js +4 -0
  150. package/dist/types/plugin.d.ts +135 -0
  151. package/dist/types/plugin.d.ts.map +1 -0
  152. package/dist/types/plugin.js +4 -0
  153. package/dist/utils/api-client.d.ts +26 -0
  154. package/dist/utils/api-client.d.ts.map +1 -0
  155. package/dist/utils/api-client.js +151 -0
  156. package/dist/utils/audit-log.d.ts +8 -0
  157. package/dist/utils/audit-log.d.ts.map +1 -0
  158. package/dist/utils/audit-log.js +57 -0
  159. package/dist/utils/auth-guard.d.ts +20 -0
  160. package/dist/utils/auth-guard.d.ts.map +1 -0
  161. package/dist/utils/auth-guard.js +22 -0
  162. package/dist/utils/auth-utils.d.ts +68 -0
  163. package/dist/utils/auth-utils.d.ts.map +1 -0
  164. package/dist/utils/auth-utils.js +77 -0
  165. package/dist/utils/aws-env.d.ts +21 -0
  166. package/dist/utils/aws-env.d.ts.map +1 -0
  167. package/dist/utils/aws-env.js +34 -0
  168. package/dist/utils/aws-secrets.d.ts +48 -0
  169. package/dist/utils/aws-secrets.d.ts.map +1 -0
  170. package/dist/utils/aws-secrets.js +115 -0
  171. package/dist/utils/banner.d.ts +19 -0
  172. package/dist/utils/banner.d.ts.map +1 -0
  173. package/dist/utils/banner.js +52 -0
  174. package/dist/utils/cdk-utils.d.ts +74 -0
  175. package/dist/utils/cdk-utils.d.ts.map +1 -0
  176. package/dist/utils/cdk-utils.js +152 -0
  177. package/dist/utils/command-utils.d.ts +75 -0
  178. package/dist/utils/command-utils.d.ts.map +1 -0
  179. package/dist/utils/command-utils.js +155 -0
  180. package/dist/utils/config-loader.d.ts +33 -0
  181. package/dist/utils/config-loader.d.ts.map +1 -0
  182. package/dist/utils/config-loader.js +154 -0
  183. package/dist/utils/cron.d.ts +28 -0
  184. package/dist/utils/cron.d.ts.map +1 -0
  185. package/dist/utils/cron.js +119 -0
  186. package/dist/utils/deploy-runner.d.ts +38 -0
  187. package/dist/utils/deploy-runner.d.ts.map +1 -0
  188. package/dist/utils/deploy-runner.js +112 -0
  189. package/dist/utils/error-handler.d.ts +29 -0
  190. package/dist/utils/error-handler.d.ts.map +1 -0
  191. package/dist/utils/error-handler.js +302 -0
  192. package/dist/utils/list-command-utils.d.ts +23 -0
  193. package/dist/utils/list-command-utils.d.ts.map +1 -0
  194. package/dist/utils/list-command-utils.js +57 -0
  195. package/dist/utils/output-utils.d.ts +40 -0
  196. package/dist/utils/output-utils.d.ts.map +1 -0
  197. package/dist/utils/output-utils.js +250 -0
  198. package/dist/utils/pipeline-config.d.ts +33 -0
  199. package/dist/utils/pipeline-config.d.ts.map +1 -0
  200. package/dist/utils/pipeline-config.js +55 -0
  201. package/dist/utils/platform-secret.d.ts +27 -0
  202. package/dist/utils/platform-secret.d.ts.map +1 -0
  203. package/dist/utils/platform-secret.js +92 -0
  204. package/dist/utils/plugin-resolver.d.ts +17 -0
  205. package/dist/utils/plugin-resolver.d.ts.map +1 -0
  206. package/dist/utils/plugin-resolver.js +101 -0
  207. package/dist/utils/preflight.d.ts +26 -0
  208. package/dist/utils/preflight.d.ts.map +1 -0
  209. package/dist/utils/preflight.js +59 -0
  210. package/dist/utils/rate-limiter.d.ts +15 -0
  211. package/dist/utils/rate-limiter.d.ts.map +1 -0
  212. package/dist/utils/rate-limiter.js +164 -0
  213. package/dist/utils/registry.d.ts +86 -0
  214. package/dist/utils/registry.d.ts.map +1 -0
  215. package/dist/utils/registry.js +140 -0
  216. package/dist/utils/response-utils.d.ts +21 -0
  217. package/dist/utils/response-utils.d.ts.map +1 -0
  218. package/dist/utils/response-utils.js +70 -0
  219. package/dist/utils/tls.d.ts +52 -0
  220. package/dist/utils/tls.d.ts.map +1 -0
  221. package/dist/utils/tls.js +88 -0
  222. package/package.json +181 -0
@@ -0,0 +1,122 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Description": "Pipeline Builder platform-token renewal — a scheduled Lambda that re-mints the platform JWT in Secrets Manager before it expires, so CodeBuild/Lambda credentials never lapse. Lambda code is deployed separately via pipeline-manager infra store-token.",
4
+ "Parameters": {
5
+ "PlatformBaseUrl": {
6
+ "Type": "String",
7
+ "Description": "Base URL of the platform (e.g. https://app.example.com)"
8
+ },
9
+ "PlatformSecretName": {
10
+ "Type": "String",
11
+ "Description": "Secrets Manager secret name holding the platform JWT (e.g. pipeline-builder/{orgId}/platform)"
12
+ },
13
+ "RenewDays": {
14
+ "Type": "Number",
15
+ "Default": 30,
16
+ "MinValue": 1,
17
+ "MaxValue": 365,
18
+ "Description": "Lifetime in days requested for each renewed token"
19
+ },
20
+ "ScheduleExpression": {
21
+ "Type": "String",
22
+ "Default": "cron(0 0 * * ? *)",
23
+ "Description": "EventBridge schedule expression for the renewal (default: daily at 00:00 UTC)"
24
+ },
25
+ "PipelineManagerVersion": {
26
+ "Type": "String",
27
+ "Default": "latest",
28
+ "Description": "Version of @pipeline-builder/pipeline-manager the handler installs from npm at runtime (pin for reproducible renewals)"
29
+ },
30
+ "NameSuffix": {
31
+ "Type": "String",
32
+ "Default": "",
33
+ "Description": "Suffix appended to the renewal stack's resource names so a scoped-token renewal (e.g. '-reporting-ingest') coexists with the platform-token stack instead of clobbering its role/function/rule. Empty for the platform secret."
34
+ }
35
+ },
36
+ "Resources": {
37
+ "LambdaRole": {
38
+ "Type": "AWS::IAM::Role",
39
+ "Properties": {
40
+ "RoleName": { "Fn::Sub": "pipeline-builder-token-renew${NameSuffix}" },
41
+ "AssumeRolePolicyDocument": {
42
+ "Version": "2012-10-17",
43
+ "Statement": [{
44
+ "Effect": "Allow",
45
+ "Principal": { "Service": "lambda.amazonaws.com" },
46
+ "Action": "sts:AssumeRole"
47
+ }]
48
+ },
49
+ "ManagedPolicyArns": [
50
+ "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
51
+ ],
52
+ "Policies": [{
53
+ "PolicyName": "token-renew",
54
+ "PolicyDocument": {
55
+ "Statement": [{
56
+ "Effect": "Allow",
57
+ "Action": [
58
+ "secretsmanager:GetSecretValue",
59
+ "secretsmanager:PutSecretValue",
60
+ "secretsmanager:UpdateSecret",
61
+ "secretsmanager:DescribeSecret",
62
+ "secretsmanager:CreateSecret"
63
+ ],
64
+ "Resource": { "Fn::Sub": "arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:pipeline-builder/*" }
65
+ }]
66
+ }
67
+ }]
68
+ }
69
+ },
70
+ "TokenRenewHandler": {
71
+ "Type": "AWS::Lambda::Function",
72
+ "Properties": {
73
+ "FunctionName": { "Fn::Sub": "pipeline-builder-token-renew${NameSuffix}" },
74
+ "Runtime": "nodejs24.x",
75
+ "Handler": "index.handler",
76
+ "Code": {
77
+ "ZipFile": "exports.handler=async()=>{console.log('Placeholder handler — run pipeline-manager infra store-token to deploy real code');return{statusCode:200}}"
78
+ },
79
+ "Role": { "Fn::GetAtt": ["LambdaRole", "Arn"] },
80
+ "Timeout": 300,
81
+ "MemorySize": 1024,
82
+ "EphemeralStorage": { "Size": 1024 },
83
+ "Environment": {
84
+ "Variables": {
85
+ "PLATFORM_BASE_URL": { "Ref": "PlatformBaseUrl" },
86
+ "PLATFORM_SECRET_NAME": { "Ref": "PlatformSecretName" },
87
+ "RENEW_DAYS": { "Ref": "RenewDays" },
88
+ "PIPELINE_MANAGER_VERSION": { "Ref": "PipelineManagerVersion" },
89
+ "NODE_ENV": "production"
90
+ }
91
+ }
92
+ }
93
+ },
94
+ "ScheduleRule": {
95
+ "Type": "AWS::Events::Rule",
96
+ "Properties": {
97
+ "Name": { "Fn::Sub": "pipeline-builder-token-renew${NameSuffix}" },
98
+ "Description": "Scheduled platform-token renewal",
99
+ "State": "ENABLED",
100
+ "ScheduleExpression": { "Ref": "ScheduleExpression" },
101
+ "Targets": [{
102
+ "Id": "token-renew-lambda",
103
+ "Arn": { "Fn::GetAtt": ["TokenRenewHandler", "Arn"] }
104
+ }]
105
+ }
106
+ },
107
+ "InvokePermission": {
108
+ "Type": "AWS::Lambda::Permission",
109
+ "Properties": {
110
+ "FunctionName": { "Ref": "TokenRenewHandler" },
111
+ "Action": "lambda:InvokeFunction",
112
+ "Principal": "events.amazonaws.com",
113
+ "SourceArn": { "Fn::GetAtt": ["ScheduleRule", "Arn"] }
114
+ }
115
+ }
116
+ },
117
+ "Outputs": {
118
+ "LambdaFunctionArn": { "Value": { "Fn::GetAtt": ["TokenRenewHandler", "Arn"] } },
119
+ "ScheduleRuleName": { "Value": { "Ref": "ScheduleRule" } },
120
+ "ScheduleExpression": { "Value": { "Ref": "ScheduleExpression" } }
121
+ }
122
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Platform API connection settings.
3
+ */
4
+ export interface ApiConfig {
5
+ /** Base URL of the platform API (e.g., `https://api.example.com`). */
6
+ baseUrl: string;
7
+ /** Default request timeout in milliseconds. */
8
+ timeout?: number;
9
+ /** Extended timeout for plugin upload requests (large files). */
10
+ uploadTimeout?: number;
11
+ /** URL path for single-pipeline CRUD operations. */
12
+ pipelineUrl: string;
13
+ /** URL path for pipeline list/query operations. */
14
+ pipelineListUrl: string;
15
+ /** URL path for the golden-path pipeline-template catalog (list/get/instantiate). */
16
+ pipelineTemplateUrl: string;
17
+ /** URL path for single-plugin CRUD operations. */
18
+ pluginUrl: string;
19
+ /** URL path for plugin list/query operations. */
20
+ pluginListUrl: string;
21
+ /** URL path for plugin upload (multipart POST). */
22
+ pluginUploadUrl: string;
23
+ /** When `false`, disables TLS certificate verification. */
24
+ rejectUnauthorized?: boolean;
25
+ }
26
+ /**
27
+ * Authentication credentials for platform API access.
28
+ */
29
+ export interface AuthConfig {
30
+ /** JWT bearer token obtained from the platform. */
31
+ token: string;
32
+ }
33
+ /**
34
+ * Complete CLI application configuration combining API and auth settings.
35
+ */
36
+ export interface Config {
37
+ /** Platform API connection settings. */
38
+ api: ApiConfig;
39
+ /** Authentication credentials. */
40
+ auth: AuthConfig;
41
+ }
42
+ /**
43
+ * The narrow slice of {@link Config} the deploy/registry paths read off
44
+ * `client.getConfig()` — the pipeline endpoint + platform base URL. Named so the
45
+ * `deploy` and `create --deploy` flows share one shape instead of re-casting it.
46
+ */
47
+ export interface PlatformDeployConfig {
48
+ api: {
49
+ pipelineUrl: string;
50
+ baseUrl: string;
51
+ };
52
+ }
53
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,wCAAwC;IACxC,GAAG,EAAE,SAAS,CAAC;IACf,kCAAkC;IAClC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C"}
@@ -0,0 +1,4 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogUGxhdGZvcm0gQVBJIGNvbm5lY3Rpb24gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpQ29uZmlnIHtcbiAgLyoqIEJhc2UgVVJMIG9mIHRoZSBwbGF0Zm9ybSBBUEkgKGUuZy4sIGBodHRwczovL2FwaS5leGFtcGxlLmNvbWApLiAqL1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IHJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHMuICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBFeHRlbmRlZCB0aW1lb3V0IGZvciBwbHVnaW4gdXBsb2FkIHJlcXVlc3RzIChsYXJnZSBmaWxlcykuICovXG4gIHVwbG9hZFRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBVUkwgcGF0aCBmb3Igc2luZ2xlLXBpcGVsaW5lIENSVUQgb3BlcmF0aW9ucy4gKi9cbiAgcGlwZWxpbmVVcmw6IHN0cmluZztcbiAgLyoqIFVSTCBwYXRoIGZvciBwaXBlbGluZSBsaXN0L3F1ZXJ5IG9wZXJhdGlvbnMuICovXG4gIHBpcGVsaW5lTGlzdFVybDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGggZm9yIHRoZSBnb2xkZW4tcGF0aCBwaXBlbGluZS10ZW1wbGF0ZSBjYXRhbG9nIChsaXN0L2dldC9pbnN0YW50aWF0ZSkuICovXG4gIHBpcGVsaW5lVGVtcGxhdGVVcmw6IHN0cmluZztcbiAgLyoqIFVSTCBwYXRoIGZvciBzaW5nbGUtcGx1Z2luIENSVUQgb3BlcmF0aW9ucy4gKi9cbiAgcGx1Z2luVXJsOiBzdHJpbmc7XG4gIC8qKiBVUkwgcGF0aCBmb3IgcGx1Z2luIGxpc3QvcXVlcnkgb3BlcmF0aW9ucy4gKi9cbiAgcGx1Z2luTGlzdFVybDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGggZm9yIHBsdWdpbiB1cGxvYWQgKG11bHRpcGFydCBQT1NUKS4gKi9cbiAgcGx1Z2luVXBsb2FkVXJsOiBzdHJpbmc7XG4gIC8qKiBXaGVuIGBmYWxzZWAsIGRpc2FibGVzIFRMUyBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24uICovXG4gIHJlamVjdFVuYXV0aG9yaXplZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgZm9yIHBsYXRmb3JtIEFQSSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aENvbmZpZyB7XG4gIC8qKiBKV1QgYmVhcmVyIHRva2VuIG9idGFpbmVkIGZyb20gdGhlIHBsYXRmb3JtLiAqL1xuICB0b2tlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbXBsZXRlIENMSSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGNvbWJpbmluZyBBUEkgYW5kIGF1dGggc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgLyoqIFBsYXRmb3JtIEFQSSBjb25uZWN0aW9uIHNldHRpbmdzLiAqL1xuICBhcGk6IEFwaUNvbmZpZztcbiAgLyoqIEF1dGhlbnRpY2F0aW9uIGNyZWRlbnRpYWxzLiAqL1xuICBhdXRoOiBBdXRoQ29uZmlnO1xufVxuXG4vKipcbiAqIFRoZSBuYXJyb3cgc2xpY2Ugb2Yge0BsaW5rIENvbmZpZ30gdGhlIGRlcGxveS9yZWdpc3RyeSBwYXRocyByZWFkIG9mZlxuICogYGNsaWVudC5nZXRDb25maWcoKWAg4oCUIHRoZSBwaXBlbGluZSBlbmRwb2ludCArIHBsYXRmb3JtIGJhc2UgVVJMLiBOYW1lZCBzbyB0aGVcbiAqIGBkZXBsb3lgIGFuZCBgY3JlYXRlIC0tZGVwbG95YCBmbG93cyBzaGFyZSBvbmUgc2hhcGUgaW5zdGVhZCBvZiByZS1jYXN0aW5nIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYXRmb3JtRGVwbG95Q29uZmlnIHtcbiAgYXBpOiB7IHBpcGVsaW5lVXJsOiBzdHJpbmc7IGJhc2VVcmw6IHN0cmluZyB9O1xufVxuIl19
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Numeric exit-code constants mapped to error categories.
3
+ * Used by {@link handleError} to set the process exit code.
4
+ */
5
+ export declare const ERROR_CODES: {
6
+ readonly GENERAL: 1;
7
+ readonly VALIDATION: 2;
8
+ readonly API_REQUEST: 3;
9
+ readonly AUTHENTICATION: 4;
10
+ readonly AUTHORIZATION: 5;
11
+ readonly NOT_FOUND: 6;
12
+ readonly NETWORK: 7;
13
+ readonly CONFIGURATION: 8;
14
+ readonly FILE_SYSTEM: 9;
15
+ readonly TIMEOUT: 10;
16
+ };
17
+ /** Union of all valid error code values. */
18
+ export type ErrorCode = (typeof ERROR_CODES)[keyof typeof ERROR_CODES];
19
+ /**
20
+ * Options controlling how {@link handleError} processes and reports an error.
21
+ */
22
+ export interface ErrorHandlerOptions {
23
+ /** When `true`, prints full stack traces and internal details. */
24
+ debug?: boolean;
25
+ /** When `true`, calls `process.exit()` with the error code. */
26
+ exit?: boolean;
27
+ /** When `true`, logs the error to the console (defaults to `true`). */
28
+ logToConsole?: boolean;
29
+ /** Arbitrary key-value context attached to the error output for debugging. */
30
+ context?: Record<string, unknown>;
31
+ /** Request/execution correlation ID for log tracing. */
32
+ correlationId?: string;
33
+ }
34
+ /**
35
+ * Minimal Axios-compatible error shape used for duck-typing in error handlers.
36
+ */
37
+ export interface AxiosErrorLike {
38
+ response?: {
39
+ status?: number;
40
+ statusText?: string;
41
+ data?: unknown;
42
+ };
43
+ config?: {
44
+ url?: string;
45
+ method?: string;
46
+ timeout?: number;
47
+ };
48
+ request?: unknown;
49
+ isAxiosError: true;
50
+ }
51
+ /**
52
+ * Typed API error with status, response, and Axios compatibility flag.
53
+ * Replaces `as any` casts in api-client.ts error handling.
54
+ */
55
+ export declare class ApiError extends Error implements AxiosErrorLike {
56
+ status: number;
57
+ response: AxiosErrorLike['response'];
58
+ readonly isAxiosError: true;
59
+ constructor(message: string, status: number, response: AxiosErrorLike['response']);
60
+ }
61
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/types/error.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,WAAW;aACtB,OAAO,EAAE,CAAC;aACV,UAAU,EAAE,CAAC;aACb,WAAW,EAAE,CAAC;aACd,cAAc,EAAE,CAAC;aACjB,aAAa,EAAE,CAAC;aAChB,SAAS,EAAE,CAAC;aACZ,OAAO,EAAE,CAAC;aACV,aAAa,EAAE,CAAC;aAChB,WAAW,EAAE,CAAC;aACd,OAAO,EAAE,EAAE;CACH,CAAC;AAEX,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAM,YAAW,cAAc;IAKlD,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC;IAL7C,SAAgB,YAAY,OAAiB;IAE7C,YACE,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EAK5C;CACF"}
@@ -0,0 +1,35 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Numeric exit-code constants mapped to error categories.
5
+ * Used by {@link handleError} to set the process exit code.
6
+ */
7
+ export const ERROR_CODES = {
8
+ GENERAL: 1,
9
+ VALIDATION: 2,
10
+ API_REQUEST: 3,
11
+ AUTHENTICATION: 4,
12
+ AUTHORIZATION: 5,
13
+ NOT_FOUND: 6,
14
+ NETWORK: 7,
15
+ CONFIGURATION: 8,
16
+ FILE_SYSTEM: 9,
17
+ TIMEOUT: 10,
18
+ };
19
+ /**
20
+ * Typed API error with status, response, and Axios compatibility flag.
21
+ * Replaces `as any` casts in api-client.ts error handling.
22
+ */
23
+ export class ApiError extends Error {
24
+ status;
25
+ response;
26
+ isAxiosError = true;
27
+ constructor(message, status, response) {
28
+ super(message);
29
+ this.status = status;
30
+ this.response = response;
31
+ this.name = 'ApiError';
32
+ Error.captureStackTrace(this, this.constructor);
33
+ }
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsQ0FBQztJQUNiLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLENBQUM7SUFDakIsYUFBYSxFQUFFLENBQUM7SUFDaEIsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxFQUFFLEVBQUU7Q0FDSCxDQUFDO0FBdUNYOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsS0FBSztJQUt4QixNQUFNO0lBQ04sUUFBUTtJQUxELFlBQVksR0FBRyxJQUFhLENBQUM7SUFFN0MsWUFDRSxPQUFlLEVBQ1IsTUFBYyxFQUNkLFFBQW9DO1FBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztzQkFIUixNQUFNO3dCQUNOLFFBQVE7UUFHZixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUN2QixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBOdW1lcmljIGV4aXQtY29kZSBjb25zdGFudHMgbWFwcGVkIHRvIGVycm9yIGNhdGVnb3JpZXMuXG4gKiBVc2VkIGJ5IHtAbGluayBoYW5kbGVFcnJvcn0gdG8gc2V0IHRoZSBwcm9jZXNzIGV4aXQgY29kZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SX0NPREVTID0ge1xuICBHRU5FUkFMOiAxLFxuICBWQUxJREFUSU9OOiAyLFxuICBBUElfUkVRVUVTVDogMyxcbiAgQVVUSEVOVElDQVRJT046IDQsXG4gIEFVVEhPUklaQVRJT046IDUsXG4gIE5PVF9GT1VORDogNixcbiAgTkVUV09SSzogNyxcbiAgQ09ORklHVVJBVElPTjogOCxcbiAgRklMRV9TWVNURU06IDksXG4gIFRJTUVPVVQ6IDEwLFxufSBhcyBjb25zdDtcblxuLyoqIFVuaW9uIG9mIGFsbCB2YWxpZCBlcnJvciBjb2RlIHZhbHVlcy4gKi9cbmV4cG9ydCB0eXBlIEVycm9yQ29kZSA9ICh0eXBlb2YgRVJST1JfQ09ERVMpW2tleW9mIHR5cGVvZiBFUlJPUl9DT0RFU107XG5cbi8qKlxuICogT3B0aW9ucyBjb250cm9sbGluZyBob3cge0BsaW5rIGhhbmRsZUVycm9yfSBwcm9jZXNzZXMgYW5kIHJlcG9ydHMgYW4gZXJyb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKiBXaGVuIGB0cnVlYCwgcHJpbnRzIGZ1bGwgc3RhY2sgdHJhY2VzIGFuZCBpbnRlcm5hbCBkZXRhaWxzLiAqL1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIC8qKiBXaGVuIGB0cnVlYCwgY2FsbHMgYHByb2Nlc3MuZXhpdCgpYCB3aXRoIHRoZSBlcnJvciBjb2RlLiAqL1xuICBleGl0PzogYm9vbGVhbjtcbiAgLyoqIFdoZW4gYHRydWVgLCBsb2dzIHRoZSBlcnJvciB0byB0aGUgY29uc29sZSAoZGVmYXVsdHMgdG8gYHRydWVgKS4gKi9cbiAgbG9nVG9Db25zb2xlPzogYm9vbGVhbjtcbiAgLyoqIEFyYml0cmFyeSBrZXktdmFsdWUgY29udGV4dCBhdHRhY2hlZCB0byB0aGUgZXJyb3Igb3V0cHV0IGZvciBkZWJ1Z2dpbmcuICovXG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqIFJlcXVlc3QvZXhlY3V0aW9uIGNvcnJlbGF0aW9uIElEIGZvciBsb2cgdHJhY2luZy4gKi9cbiAgY29ycmVsYXRpb25JZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNaW5pbWFsIEF4aW9zLWNvbXBhdGlibGUgZXJyb3Igc2hhcGUgdXNlZCBmb3IgZHVjay10eXBpbmcgaW4gZXJyb3IgaGFuZGxlcnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXhpb3NFcnJvckxpa2Uge1xuICByZXNwb25zZT86IHtcbiAgICBzdGF0dXM/OiBudW1iZXI7XG4gICAgc3RhdHVzVGV4dD86IHN0cmluZztcbiAgICBkYXRhPzogdW5rbm93bjtcbiAgfTtcbiAgY29uZmlnPzoge1xuICAgIHVybD86IHN0cmluZztcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gICAgdGltZW91dD86IG51bWJlcjtcbiAgfTtcbiAgcmVxdWVzdD86IHVua25vd247XG4gIGlzQXhpb3NFcnJvcjogdHJ1ZTtcbn1cblxuLyoqXG4gKiBUeXBlZCBBUEkgZXJyb3Igd2l0aCBzdGF0dXMsIHJlc3BvbnNlLCBhbmQgQXhpb3MgY29tcGF0aWJpbGl0eSBmbGFnLlxuICogUmVwbGFjZXMgYGFzIGFueWAgY2FzdHMgaW4gYXBpLWNsaWVudC50cyBlcnJvciBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3IgaW1wbGVtZW50cyBBeGlvc0Vycm9yTGlrZSB7XG4gIHB1YmxpYyByZWFkb25seSBpc0F4aW9zRXJyb3IgPSB0cnVlIGFzIGNvbnN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgc3RhdHVzOiBudW1iZXIsXG4gICAgcHVibGljIHJlc3BvbnNlOiBBeGlvc0Vycm9yTGlrZVsncmVzcG9uc2UnXSxcbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0FwaUVycm9yJztcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Main type definitions export
3
+ */
4
+ export * from './config.js';
5
+ export * from './pipeline.js';
6
+ export * from './pipeline-template.js';
7
+ export * from './plugin.js';
8
+ export * from './error.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Main type definitions export
5
+ */
6
+ export * from './config.js';
7
+ export * from './pipeline.js';
8
+ export * from './pipeline-template.js';
9
+ export * from './plugin.js';
10
+ export * from './error.js';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBNYWluIHR5cGUgZGVmaW5pdGlvbnMgZXhwb3J0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lLXRlbXBsYXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3IuanMnO1xuIl19
@@ -0,0 +1,48 @@
1
+ import { type PipelineProps, type PipelineVisibility } from './pipeline.js';
2
+ /**
3
+ * One declared template input. `name` is the `vars.<name>` key the template body
4
+ * references as `{{ pipeline.vars.<name> }}`.
5
+ */
6
+ export interface TemplateInput {
7
+ name: string;
8
+ label?: string;
9
+ description?: string;
10
+ type: 'string' | 'number' | 'boolean';
11
+ required?: boolean;
12
+ default?: string | number | boolean;
13
+ options?: string[];
14
+ }
15
+ /**
16
+ * A golden-path pipeline template — a parameterized starting point whose `props`
17
+ * carry `{{ pipeline.vars.* }}` placeholders backed by {@link TemplateInput}s.
18
+ */
19
+ export interface PipelineTemplate {
20
+ id: string;
21
+ name: string;
22
+ description?: string;
23
+ keywords?: string[];
24
+ category?: string;
25
+ visibility?: PipelineVisibility;
26
+ props: PipelineProps;
27
+ inputs?: TemplateInput[];
28
+ isActive?: boolean;
29
+ createdAt?: string;
30
+ updatedAt?: string;
31
+ }
32
+ /** Request payload for `POST /api/pipeline-templates/:id/instantiate`. */
33
+ export interface InstantiateTemplateRequest {
34
+ project: string;
35
+ organization: string;
36
+ pipelineName?: string;
37
+ inputs?: Record<string, string | number | boolean>;
38
+ }
39
+ /**
40
+ * Instantiate response. `props` is a concrete `BuilderProps` ready to hand to
41
+ * `pipeline create --file` — the endpoint only renders, it creates nothing.
42
+ */
43
+ export interface InstantiateTemplateResponse {
44
+ props: PipelineProps;
45
+ description?: string;
46
+ keywords?: string[];
47
+ }
48
+ //# sourceMappingURL=pipeline-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-template.d.ts","sourceRoot":"","sources":["../../src/types/pipeline-template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,0EAA0E;AAC1E,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import {} from './pipeline.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtdGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGlwZWxpbmUtdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQStDLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHR5cGUgUGlwZWxpbmVQcm9wcywgdHlwZSBQaXBlbGluZVZpc2liaWxpdHkgfSBmcm9tICcuL3BpcGVsaW5lLmpzJztcblxuLyoqXG4gKiBPbmUgZGVjbGFyZWQgdGVtcGxhdGUgaW5wdXQuIGBuYW1lYCBpcyB0aGUgYHZhcnMuPG5hbWU+YCBrZXkgdGhlIHRlbXBsYXRlIGJvZHlcbiAqIHJlZmVyZW5jZXMgYXMgYHt7IHBpcGVsaW5lLnZhcnMuPG5hbWU+IH19YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUlucHV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbGVhbic7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgZGVmYXVsdD86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG4gIG9wdGlvbnM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIGdvbGRlbi1wYXRoIHBpcGVsaW5lIHRlbXBsYXRlIOKAlCBhIHBhcmFtZXRlcml6ZWQgc3RhcnRpbmcgcG9pbnQgd2hvc2UgYHByb3BzYFxuICogY2FycnkgYHt7IHBpcGVsaW5lLnZhcnMuKiB9fWAgcGxhY2Vob2xkZXJzIGJhY2tlZCBieSB7QGxpbmsgVGVtcGxhdGVJbnB1dH1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lVGVtcGxhdGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgdmlzaWJpbGl0eT86IFBpcGVsaW5lVmlzaWJpbGl0eTtcbiAgcHJvcHM6IFBpcGVsaW5lUHJvcHM7XG4gIGlucHV0cz86IFRlbXBsYXRlSW5wdXRbXTtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbn1cblxuLyoqIFJlcXVlc3QgcGF5bG9hZCBmb3IgYFBPU1QgL2FwaS9waXBlbGluZS10ZW1wbGF0ZXMvOmlkL2luc3RhbnRpYXRlYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFudGlhdGVUZW1wbGF0ZVJlcXVlc3Qge1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU/OiBzdHJpbmc7XG4gIGlucHV0cz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIEluc3RhbnRpYXRlIHJlc3BvbnNlLiBgcHJvcHNgIGlzIGEgY29uY3JldGUgYEJ1aWxkZXJQcm9wc2AgcmVhZHkgdG8gaGFuZCB0b1xuICogYHBpcGVsaW5lIGNyZWF0ZSAtLWZpbGVgIOKAlCB0aGUgZW5kcG9pbnQgb25seSByZW5kZXJzLCBpdCBjcmVhdGVzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFudGlhdGVUZW1wbGF0ZVJlc3BvbnNlIHtcbiAgcHJvcHM6IFBpcGVsaW5lUHJvcHM7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBrZXl3b3Jkcz86IHN0cmluZ1tdO1xufVxuIl19
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Arbitrary key-value pipeline configuration properties
3
+ * passed through to the CDK builder.
4
+ */
5
+ export type PipelineProps = Record<string, unknown>;
6
+ /**
7
+ * Pipeline sharing rung — the platform-wide three-rung ladder.
8
+ * `private` is author-only, `org` is the whole owning org, `public` reaches the
9
+ * org's teams (and, from the system org, every org).
10
+ */
11
+ export type PipelineVisibility = 'private' | 'org' | 'public';
12
+ /**
13
+ * Core pipeline fields required on every pipeline record.
14
+ */
15
+ export interface PipelineBase {
16
+ /**
17
+ * Unique pipeline identifier
18
+ */
19
+ id: string;
20
+ /**
21
+ * Project name
22
+ */
23
+ project: string;
24
+ /**
25
+ * Organization name
26
+ */
27
+ organization: string;
28
+ /**
29
+ * Tenant identifier (from API response, used for per-org secret resolution)
30
+ */
31
+ orgId?: string;
32
+ /**
33
+ * Pipeline properties/configuration
34
+ */
35
+ props: PipelineProps;
36
+ }
37
+ /**
38
+ * Optional metadata fields attached to a pipeline record.
39
+ */
40
+ export interface PipelineMetadata {
41
+ /**
42
+ * Human-readable pipeline name
43
+ */
44
+ pipelineName?: string;
45
+ /**
46
+ * Sharing rung: 'private' | 'org' | 'public'.
47
+ */
48
+ visibility?: PipelineVisibility;
49
+ /**
50
+ * Whether this is the default pipeline
51
+ */
52
+ isDefault?: boolean;
53
+ /**
54
+ * Whether the pipeline is active
55
+ */
56
+ isActive?: boolean;
57
+ /**
58
+ * Pipeline creation timestamp
59
+ */
60
+ createdAt?: string;
61
+ /**
62
+ * Pipeline last update timestamp
63
+ */
64
+ updatedAt?: string;
65
+ /**
66
+ * User who created the pipeline
67
+ */
68
+ createdBy?: string;
69
+ /**
70
+ * User who last updated the pipeline
71
+ */
72
+ updatedBy?: string;
73
+ }
74
+ /**
75
+ * Complete pipeline entity combining core fields and metadata.
76
+ */
77
+ export interface Pipeline extends PipelineBase, PipelineMetadata {
78
+ }
79
+ /**
80
+ * Request payload for creating a new pipeline via the platform API.
81
+ */
82
+ export interface CreatePipelineRequest {
83
+ /**
84
+ * Project name
85
+ */
86
+ project: string;
87
+ /**
88
+ * Organization name
89
+ */
90
+ organization: string;
91
+ /**
92
+ * Pipeline properties/configuration
93
+ */
94
+ props: PipelineProps;
95
+ /**
96
+ * Human-readable pipeline name
97
+ */
98
+ pipelineName?: string;
99
+ /**
100
+ * Access modifier (public or private)
101
+ * @default 'private'
102
+ */
103
+ visibility?: PipelineVisibility;
104
+ /**
105
+ * Whether this is the default pipeline
106
+ * @default false
107
+ */
108
+ isDefault?: boolean;
109
+ /**
110
+ * Whether the pipeline is active
111
+ * @default true
112
+ */
113
+ isActive?: boolean;
114
+ }
115
+ /**
116
+ * Response returned by single-pipeline API endpoints (get, create).
117
+ */
118
+ export interface PipelineResponse {
119
+ pipeline: Pipeline;
120
+ }
121
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/types/pipeline.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,YAAY,EAAE,gBAAgB;CAAG;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,QAAQ,CAAC;CACpB"}
@@ -0,0 +1,4 @@
1
+ // Copyright 2026 Pipeline Builder Contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEFyYml0cmFyeSBrZXktdmFsdWUgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gKiBwYXNzZWQgdGhyb3VnaCB0byB0aGUgQ0RLIGJ1aWxkZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBpcGVsaW5lUHJvcHMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLyoqXG4gKiBQaXBlbGluZSBzaGFyaW5nIHJ1bmcg4oCUIHRoZSBwbGF0Zm9ybS13aWRlIHRocmVlLXJ1bmcgbGFkZGVyLlxuICogYHByaXZhdGVgIGlzIGF1dGhvci1vbmx5LCBgb3JnYCBpcyB0aGUgd2hvbGUgb3duaW5nIG9yZywgYHB1YmxpY2AgcmVhY2hlcyB0aGVcbiAqIG9yZydzIHRlYW1zIChhbmQsIGZyb20gdGhlIHN5c3RlbSBvcmcsIGV2ZXJ5IG9yZykuXG4gKi9cbmV4cG9ydCB0eXBlIFBpcGVsaW5lVmlzaWJpbGl0eSA9ICdwcml2YXRlJyB8ICdvcmcnIHwgJ3B1YmxpYyc7XG5cbi8qKlxuICogQ29yZSBwaXBlbGluZSBmaWVsZHMgcmVxdWlyZWQgb24gZXZlcnkgcGlwZWxpbmUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQmFzZSB7XG4gIC8qKlxuICAgKiBVbmlxdWUgcGlwZWxpbmUgaWRlbnRpZmllclxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvamVjdCBuYW1lXG4gICAqL1xuICBwcm9qZWN0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9yZ2FuaXphdGlvbiBuYW1lXG4gICAqL1xuICBvcmdhbml6YXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGVuYW50IGlkZW50aWZpZXIgKGZyb20gQVBJIHJlc3BvbnNlLCB1c2VkIGZvciBwZXItb3JnIHNlY3JldCByZXNvbHV0aW9uKVxuICAgKi9cbiAgb3JnSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHByb3BlcnRpZXMvY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJvcHM6IFBpcGVsaW5lUHJvcHM7XG59XG5cbi8qKlxuICogT3B0aW9uYWwgbWV0YWRhdGEgZmllbGRzIGF0dGFjaGVkIHRvIGEgcGlwZWxpbmUgcmVjb3JkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lTWV0YWRhdGEge1xuICAvKipcbiAgICogSHVtYW4tcmVhZGFibGUgcGlwZWxpbmUgbmFtZVxuICAgKi9cbiAgcGlwZWxpbmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyaW5nIHJ1bmc6ICdwcml2YXRlJyB8ICdvcmcnIHwgJ3B1YmxpYycuXG4gICAqL1xuICB2aXNpYmlsaXR5PzogUGlwZWxpbmVWaXNpYmlsaXR5O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgcGlwZWxpbmVcbiAgICovXG4gIGlzRGVmYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBpcGVsaW5lIGlzIGFjdGl2ZVxuICAgKi9cbiAgaXNBY3RpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgbGFzdCB1cGRhdGUgdGltZXN0YW1wXG4gICAqL1xuICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgd2hvIGNyZWF0ZWQgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBjcmVhdGVkQnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgd2hvIGxhc3QgdXBkYXRlZCB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHVwZGF0ZWRCeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBwaXBlbGluZSBlbnRpdHkgY29tYmluaW5nIGNvcmUgZmllbGRzIGFuZCBtZXRhZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZSBleHRlbmRzIFBpcGVsaW5lQmFzZSwgUGlwZWxpbmVNZXRhZGF0YSB7fVxuXG4vKipcbiAqIFJlcXVlc3QgcGF5bG9hZCBmb3IgY3JlYXRpbmcgYSBuZXcgcGlwZWxpbmUgdmlhIHRoZSBwbGF0Zm9ybSBBUEkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUGlwZWxpbmVSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFByb2plY3QgbmFtZVxuICAgKi9cbiAgcHJvamVjdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmdhbml6YXRpb24gbmFtZVxuICAgKi9cbiAgb3JnYW5pemF0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHByb3BlcnRpZXMvY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJvcHM6IFBpcGVsaW5lUHJvcHM7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIHBpcGVsaW5lIG5hbWVcbiAgICovXG4gIHBpcGVsaW5lTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXNzIG1vZGlmaWVyIChwdWJsaWMgb3IgcHJpdmF0ZSlcbiAgICogQGRlZmF1bHQgJ3ByaXZhdGUnXG4gICAqL1xuICB2aXNpYmlsaXR5PzogUGlwZWxpbmVWaXNpYmlsaXR5O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgcGlwZWxpbmVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGlzRGVmYXVsdD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBpcGVsaW5lIGlzIGFjdGl2ZVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVzcG9uc2UgcmV0dXJuZWQgYnkgc2luZ2xlLXBpcGVsaW5lIEFQSSBlbmRwb2ludHMgKGdldCwgY3JlYXRlKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZVJlc3BvbnNlIHtcbiAgcGlwZWxpbmU6IFBpcGVsaW5lO1xufVxuIl19
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Package-level metadata extracted from the plugin archive.
3
+ */
4
+ export interface PluginMetadata {
5
+ /**
6
+ * Plugin name
7
+ */
8
+ name: string;
9
+ /**
10
+ * Plugin version
11
+ */
12
+ version: string;
13
+ /**
14
+ * Plugin description
15
+ */
16
+ description?: string;
17
+ /**
18
+ * Plugin author
19
+ */
20
+ author?: string;
21
+ /**
22
+ * Plugin license
23
+ */
24
+ license?: string;
25
+ /**
26
+ * Plugin homepage URL
27
+ */
28
+ homepage?: string;
29
+ /**
30
+ * Plugin repository URL
31
+ */
32
+ repository?: string;
33
+ /**
34
+ * Plugin keywords/tags
35
+ */
36
+ keywords?: string[];
37
+ /**
38
+ * Plugin dependencies
39
+ */
40
+ dependencies?: Record<string, string>;
41
+ }
42
+ /**
43
+ * Runtime configuration for a plugin, including its entry point and schema.
44
+ */
45
+ export interface PluginConfig {
46
+ /**
47
+ * Plugin entry point
48
+ */
49
+ main?: string;
50
+ /**
51
+ * Plugin configuration schema
52
+ */
53
+ schema?: Record<string, unknown>;
54
+ /**
55
+ * Plugin default configuration
56
+ */
57
+ defaults?: Record<string, unknown>;
58
+ }
59
+ /**
60
+ * Core plugin fields required on every plugin record.
61
+ */
62
+ export interface PluginBase {
63
+ /**
64
+ * Unique plugin identifier
65
+ */
66
+ id: string;
67
+ /**
68
+ * Plugin name
69
+ */
70
+ name: string;
71
+ /**
72
+ * Plugin version
73
+ */
74
+ version: string;
75
+ /**
76
+ * Organization that owns the plugin
77
+ */
78
+ organization: string;
79
+ }
80
+ /**
81
+ * Complete plugin entity combining core fields with optional detail fields.
82
+ */
83
+ export interface Plugin extends PluginBase {
84
+ /**
85
+ * Plugin description
86
+ */
87
+ description?: string;
88
+ /**
89
+ * Plugin metadata
90
+ */
91
+ metadata?: PluginMetadata;
92
+ /**
93
+ * Plugin configuration
94
+ */
95
+ config?: PluginConfig;
96
+ /**
97
+ * Plugin file URL
98
+ */
99
+ fileUrl?: string;
100
+ /**
101
+ * Plugin file size in bytes
102
+ */
103
+ fileSize?: number;
104
+ /**
105
+ * Plugin checksum (SHA256)
106
+ */
107
+ checksum?: string;
108
+ /**
109
+ * Whether the plugin is active
110
+ */
111
+ isActive?: boolean;
112
+ /**
113
+ * Whether the plugin is public
114
+ */
115
+ isPublic?: boolean;
116
+ /**
117
+ * Plugin creation timestamp
118
+ */
119
+ createdAt?: string;
120
+ /**
121
+ * Plugin last update timestamp
122
+ */
123
+ updatedAt?: string;
124
+ /**
125
+ * User who uploaded the plugin
126
+ */
127
+ uploadedBy?: string;
128
+ }
129
+ /**
130
+ * Response returned by single-plugin API endpoints (get, upload).
131
+ */
132
+ export interface PluginResponse {
133
+ plugin: Plugin;
134
+ }
135
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB"}