@pipeline-builder/api-core 3.4.63 → 3.4.64

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 (93) hide show
  1. package/README.md +91 -60
  2. package/lib/constants/ai-providers.js +7 -12
  3. package/lib/constants/http-status.js +2 -5
  4. package/lib/constants/index.d.ts +3 -3
  5. package/lib/constants/index.js +4 -20
  6. package/lib/constants/time.js +4 -7
  7. package/lib/errors/app-errors.d.ts +1 -1
  8. package/lib/errors/app-errors.js +13 -22
  9. package/lib/errors/index.d.ts +1 -1
  10. package/lib/errors/index.js +2 -18
  11. package/lib/helpers/access-helpers.js +8 -11
  12. package/lib/helpers/crud-helpers.js +6 -10
  13. package/lib/helpers/index.d.ts +4 -4
  14. package/lib/helpers/index.js +5 -21
  15. package/lib/helpers/org-hierarchy.js +10 -18
  16. package/lib/helpers/sse-helpers.js +7 -11
  17. package/lib/index.d.ts +10 -10
  18. package/lib/index.js +11 -27
  19. package/lib/middleware/auth.d.ts +1 -1
  20. package/lib/middleware/auth.js +38 -54
  21. package/lib/middleware/index.d.ts +2 -2
  22. package/lib/middleware/index.js +3 -19
  23. package/lib/middleware/mongo-sanitize.js +2 -5
  24. package/lib/openapi/extend-zod.js +4 -6
  25. package/lib/openapi/index.d.ts +2 -2
  26. package/lib/openapi/index.js +2 -7
  27. package/lib/openapi/registry.js +9 -13
  28. package/lib/openapi/routes/billing-routes.js +10 -13
  29. package/lib/openapi/routes/index.js +12 -15
  30. package/lib/openapi/routes/message-routes.js +14 -17
  31. package/lib/openapi/routes/pipeline-routes.js +12 -15
  32. package/lib/openapi/routes/plugin-routes.js +13 -16
  33. package/lib/openapi/routes/quota-routes.js +9 -12
  34. package/lib/openapi/schema-registry.js +47 -51
  35. package/lib/routes/health.d.ts +1 -1
  36. package/lib/routes/health.js +10 -15
  37. package/lib/routes/index.d.ts +1 -1
  38. package/lib/routes/index.js +2 -18
  39. package/lib/services/cache-service.js +3 -8
  40. package/lib/services/compliance-client.d.ts +1 -1
  41. package/lib/services/compliance-client.js +6 -9
  42. package/lib/services/compliance-event-subscriber.d.ts +1 -1
  43. package/lib/services/compliance-event-subscriber.js +13 -15
  44. package/lib/services/compliance-queue.js +5 -9
  45. package/lib/services/entity-events.js +4 -7
  46. package/lib/services/http-client.d.ts +1 -1
  47. package/lib/services/http-client.js +15 -53
  48. package/lib/services/index.d.ts +10 -10
  49. package/lib/services/index.js +10 -37
  50. package/lib/services/quota.d.ts +2 -2
  51. package/lib/services/quota.js +18 -24
  52. package/lib/services/remote-audit-client.js +8 -11
  53. package/lib/services/retry-strategy.js +12 -21
  54. package/lib/types/audit-events.js +2 -3
  55. package/lib/types/common.js +6 -11
  56. package/lib/types/error-codes.js +6 -10
  57. package/lib/types/feature-flags.d.ts +1 -1
  58. package/lib/types/feature-flags.js +13 -19
  59. package/lib/types/http.js +2 -3
  60. package/lib/types/index.d.ts +7 -7
  61. package/lib/types/index.js +8 -24
  62. package/lib/types/pipeline.js +4 -7
  63. package/lib/types/quota-tiers.js +8 -13
  64. package/lib/utils/alias-resolver.js +5 -9
  65. package/lib/utils/audit.d.ts +1 -1
  66. package/lib/utils/audit.js +2 -5
  67. package/lib/utils/concurrency.js +2 -5
  68. package/lib/utils/crash-handlers.js +3 -6
  69. package/lib/utils/headers.js +2 -5
  70. package/lib/utils/identity.d.ts +1 -1
  71. package/lib/utils/identity.js +8 -12
  72. package/lib/utils/index.d.ts +13 -13
  73. package/lib/utils/index.js +14 -30
  74. package/lib/utils/logger.js +12 -19
  75. package/lib/utils/metric-emitter.js +4 -9
  76. package/lib/utils/object.js +2 -5
  77. package/lib/utils/org-aws-credentials.js +4 -10
  78. package/lib/utils/params.d.ts +1 -1
  79. package/lib/utils/params.js +15 -28
  80. package/lib/utils/response.d.ts +3 -3
  81. package/lib/utils/response.js +18 -30
  82. package/lib/utils/secret-encryption.js +17 -29
  83. package/lib/validation/ai-schemas.js +30 -33
  84. package/lib/validation/common-schemas.d.ts +1 -1
  85. package/lib/validation/common-schemas.js +22 -25
  86. package/lib/validation/index.d.ts +6 -6
  87. package/lib/validation/index.js +7 -23
  88. package/lib/validation/message-schemas.js +22 -25
  89. package/lib/validation/middleware.d.ts +2 -2
  90. package/lib/validation/middleware.js +7 -13
  91. package/lib/validation/pipeline-schemas.js +46 -49
  92. package/lib/validation/plugin-schemas.js +57 -60
  93. package/package.json +18 -11
@@ -1,81 +1,78 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.AIGenerateFromUrlBodySchema = exports.PluginDeployGeneratedSchema = exports.AIGenerateBodySchema = void 0;
6
- const zod_1 = require("zod");
7
- const common_schemas_1 = require("./common-schemas");
3
+ import { z } from 'zod';
4
+ import { AccessModifierSchema } from './common-schemas.js';
8
5
  const MAX_PROMPT_LENGTH = parseInt(process.env.MAX_PROMPT_LENGTH || '5000', 10);
9
6
  // AI Generation Request
10
7
  /**
11
8
  * Schema for AI generation request body.
12
9
  * Used by both POST /pipelines/generate and POST /plugins/generate.
13
10
  */
14
- exports.AIGenerateBodySchema = zod_1.z.object({
11
+ export const AIGenerateBodySchema = z.object({
15
12
  /** Natural language description of what to generate. */
16
- prompt: zod_1.z
13
+ prompt: z
17
14
  .string()
18
15
  .min(1, 'A prompt with a natural language description is required')
19
16
  .max(MAX_PROMPT_LENGTH, `Prompt must be ${MAX_PROMPT_LENGTH} characters or fewer`),
20
17
  /** AI provider identifier (e.g. "anthropic", "openai", "google"). */
21
- provider: zod_1.z.string().min(1, 'A provider is required (e.g., "anthropic", "openai", "google")'),
18
+ provider: z.string().min(1, 'A provider is required (e.g., "anthropic", "openai", "google")'),
22
19
  /** AI model identifier (e.g. "claude-sonnet-4-20250514", "gpt-4o"). */
23
- model: zod_1.z.string().min(1, 'A model is required (e.g., "claude-sonnet-4-20250514", "gpt-4o")'),
20
+ model: z.string().min(1, 'A model is required (e.g., "claude-sonnet-4-20250514", "gpt-4o")'),
24
21
  /** Optional custom API key to override the server/org key for this request. */
25
- apiKey: zod_1.z.string().min(1).optional(),
22
+ apiKey: z.string().min(1).optional(),
26
23
  /** Previous pipeline config for iterative refinement. */
27
- previousConfig: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
24
+ previousConfig: z.record(z.string(), z.unknown()).optional(),
28
25
  /** Fallback AI providers if primary fails (e.g., ["openai", "google"]). */
29
- fallbackProviders: zod_1.z.array(zod_1.z.string()).optional(),
26
+ fallbackProviders: z.array(z.string()).optional(),
30
27
  });
31
28
  // Plugin Deploy-Generated Request
32
29
  /**
33
30
  * Schema for POST /plugins/deploy-generated request body.
34
31
  * Validates the AI-generated plugin configuration before Docker build.
35
32
  */
36
- exports.PluginDeployGeneratedSchema = zod_1.z.object({
33
+ export const PluginDeployGeneratedSchema = z.object({
37
34
  /** Plugin name (lowercase, alphanumeric with hyphens). */
38
- name: zod_1.z.string().min(1, 'Plugin name is required'),
35
+ name: z.string().min(1, 'Plugin name is required'),
39
36
  /** Human-readable description. */
40
- description: zod_1.z.string().optional(),
37
+ description: z.string().optional(),
41
38
  /** Semantic version (e.g. "1.0.0"). */
42
- version: zod_1.z.string().min(1, 'Version is required'),
39
+ version: z.string().min(1, 'Version is required'),
43
40
  /** Plugin execution type. */
44
- pluginType: zod_1.z.enum(['CodeBuildStep', 'ShellStep', 'ManualApprovalStep']).default('CodeBuildStep'),
41
+ pluginType: z.enum(['CodeBuildStep', 'ShellStep', 'ManualApprovalStep']).default('CodeBuildStep'),
45
42
  /** AWS CodeBuild compute size. */
46
- computeType: zod_1.z.enum(['SMALL', 'MEDIUM', 'LARGE', 'X2_LARGE']).default('MEDIUM'),
43
+ computeType: z.enum(['SMALL', 'MEDIUM', 'LARGE', 'X2_LARGE']).default('MEDIUM'),
47
44
  /** Keywords for categorization. */
48
- keywords: zod_1.z.array(zod_1.z.string()).optional().default([]),
45
+ keywords: z.array(z.string()).optional().default([]),
49
46
  /** Primary output directory path. */
50
- primaryOutputDirectory: zod_1.z.string().nullable().optional(),
47
+ primaryOutputDirectory: z.string().nullable().optional(),
51
48
  /** Commands to install dependencies. */
52
- installCommands: zod_1.z.array(zod_1.z.string()).optional().default([]),
49
+ installCommands: z.array(z.string()).optional().default([]),
53
50
  /** Build/execution commands. */
54
- commands: zod_1.z.array(zod_1.z.string()).min(1, 'At least one build command is required'),
51
+ commands: z.array(z.string()).min(1, 'At least one build command is required'),
55
52
  /** Environment variables. */
56
- env: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
53
+ env: z.record(z.string(), z.string()).optional(),
57
54
  /** Docker build arguments passed via --build-arg at image build time. */
58
- buildArgs: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
55
+ buildArgs: z.record(z.string(), z.string()).optional(),
59
56
  /** Complete Dockerfile content for the build environment. */
60
- dockerfile: zod_1.z.string().min(1, 'Dockerfile content is required'),
57
+ dockerfile: z.string().min(1, 'Dockerfile content is required'),
61
58
  /** Access visibility. */
62
- accessModifier: common_schemas_1.AccessModifierSchema.default('private'),
59
+ accessModifier: AccessModifierSchema.default('private'),
63
60
  });
64
61
  // AI Generate From URL Request
65
62
  /**
66
63
  * Schema for POST /pipelines/generate/from-url/stream request body.
67
64
  * Validates Git URL + AI provider configuration for repo-based pipeline generation.
68
65
  */
69
- exports.AIGenerateFromUrlBodySchema = zod_1.z.object({
66
+ export const AIGenerateFromUrlBodySchema = z.object({
70
67
  /** Git repository URL (HTTPS, SSH, or git@ format). */
71
- gitUrl: zod_1.z.string().min(1, 'A Git repository URL is required').max(500, 'URL must be 500 characters or fewer'),
68
+ gitUrl: z.string().min(1, 'A Git repository URL is required').max(500, 'URL must be 500 characters or fewer'),
72
69
  /** AI provider identifier (e.g. "anthropic", "openai", "google"). */
73
- provider: zod_1.z.string().min(1, 'A provider is required'),
70
+ provider: z.string().min(1, 'A provider is required'),
74
71
  /** AI model identifier (e.g. "claude-sonnet-4-20250514", "gpt-4o"). */
75
- model: zod_1.z.string().min(1, 'A model is required'),
72
+ model: z.string().min(1, 'A model is required'),
76
73
  /** Optional custom API key to override the server config. */
77
- apiKey: zod_1.z.string().min(1).optional(),
74
+ apiKey: z.string().min(1).optional(),
78
75
  /** Optional authentication token for accessing private repositories. */
79
- repoToken: zod_1.z.string().min(1).optional(),
76
+ repoToken: z.string().min(1).optional(),
80
77
  });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2FpLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7OztBQUV0Qyw2QkFBd0I7QUFDeEIscURBQXdEO0FBRXhELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWhGLHdCQUF3QjtBQUV4Qjs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0Msd0RBQXdEO0lBQ3hELE1BQU0sRUFBRSxPQUFDO1NBQ04sTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSwwREFBMEQsQ0FBQztTQUNsRSxHQUFHLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLGlCQUFpQixzQkFBc0IsQ0FBQztJQUVwRixxRUFBcUU7SUFDckUsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdFQUFnRSxDQUFDO0lBRTdGLHVFQUF1RTtJQUN2RSxLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsa0VBQWtFLENBQUM7SUFFNUYsK0VBQStFO0lBQy9FLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUVwQyx5REFBeUQ7SUFDekQsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUU1RCwyRUFBMkU7SUFDM0UsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FB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QUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFFcEMsd0VBQXdFO0lBQ3hFLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBBY2Nlc3NNb2RpZmllclNjaGVtYSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMnO1xuXG5jb25zdCBNQVhfUFJPTVBUX0xFTkdUSCA9IHBhcnNlSW50KHByb2Nlc3MuZW52Lk1BWF9QUk9NUFRfTEVOR1RIIHx8ICc1MDAwJywgMTApO1xuXG4vLyBBSSBHZW5lcmF0aW9uIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIEFJIGdlbmVyYXRpb24gcmVxdWVzdCBib2R5LlxuICogVXNlZCBieSBib3RoIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZSBhbmQgUE9TVCAvcGx1Z2lucy9nZW5lcmF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFJR2VuZXJhdGVCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogTmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRvIGdlbmVyYXRlLiAqL1xuICBwcm9tcHQ6IHpcbiAgICAuc3RyaW5nKClcbiAgICAubWluKDEsICdBIHByb21wdCB3aXRoIGEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCcpXG4gICAgLm1heChNQVhfUFJPTVBUX0xFTkdUSCwgYFByb21wdCBtdXN0IGJlICR7TUFYX1BST01QVF9MRU5HVEh9IGNoYXJhY3RlcnMgb3IgZmV3ZXJgKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkIChlLmcuLCBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKScpLFxuXG4gIC8qKiBBSSBtb2RlbCBpZGVudGlmaWVyIChlLmcuIFwiY2xhdWRlLXNvbm5ldC00LTIwMjUwNTE0XCIsIFwiZ3B0LTRvXCIpLiAqL1xuICBtb2RlbDogei5zdHJpbmcoKS5taW4oMSwgJ0EgbW9kZWwgaXMgcmVxdWlyZWQgKGUuZy4sIFwiY2xhdWRlLXNvbm5ldC00LTIwMjUwNTE0XCIsIFwiZ3B0LTRvXCIpJyksXG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBBUEkga2V5IHRvIG92ZXJyaWRlIHRoZSBzZXJ2ZXIvb3JnIGtleSBmb3IgdGhpcyByZXF1ZXN0LiAqL1xuICBhcGlLZXk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG5cbiAgLyoqIFByZXZpb3VzIHBpcGVsaW5lIGNvbmZpZyBmb3IgaXRlcmF0aXZlIHJlZmluZW1lbnQuICovXG4gIHByZXZpb3VzQ29uZmlnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcblxuICAvKiogRmFsbGJhY2sgQUkgcHJvdmlkZXJzIGlmIHByaW1hcnkgZmFpbHMgKGUuZy4sIFtcIm9wZW5haVwiLCBcImdvb2dsZVwiXSkuICovXG4gIGZhbGxiYWNrUHJvdmlkZXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqIFZhbGlkYXRlZCB0eXBlIGZvciBBSSBnZW5lcmF0aW9uIHJlcXVlc3QgYm9keS4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZEFJR2VuZXJhdGVCb2R5ID0gei5pbmZlcjx0eXBlb2YgQUlHZW5lcmF0ZUJvZHlTY2hlbWE+O1xuXG4vLyBQbHVnaW4gRGVwbG95LUdlbmVyYXRlZCBSZXF1ZXN0XG5cbi8qKlxuICogU2NoZW1hIGZvciBQT1NUIC9wbHVnaW5zL2RlcGxveS1nZW5lcmF0ZWQgcmVxdWVzdCBib2R5LlxuICogVmFsaWRhdGVzIHRoZSBBSS1nZW5lcmF0ZWQgcGx1Z2luIGNvbmZpZ3VyYXRpb24gYmVmb3JlIERvY2tlciBidWlsZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpbkRlcGxveUdlbmVyYXRlZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqIFBsdWdpbiBuYW1lIChsb3dlcmNhc2UsIGFscGhhbnVtZXJpYyB3aXRoIGh5cGhlbnMpLiAqL1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxLCAnUGx1Z2luIG5hbWUgaXMgcmVxdWlyZWQnKSxcblxuICAvKiogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24uICovXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG5cbiAgLyoqIFNlbWFudGljIHZlcnNpb24gKGUuZy4gXCIxLjAuMFwiKS4gKi9cbiAgdmVyc2lvbjogei5zdHJpbmcoKS5taW4oMSwgJ1ZlcnNpb24gaXMgcmVxdWlyZWQnKSxcblxuICAvKiogUGx1Z2luIGV4ZWN1dGlvbiB0eXBlLiAqL1xuICBwbHVnaW5UeXBlOiB6LmVudW0oWydDb2RlQnVpbGRTdGVwJywgJ1NoZWxsU3RlcCcsICdNYW51YWxBcHByb3ZhbFN0ZXAnXSkuZGVmYXVsdCgnQ29kZUJ1aWxkU3RlcCcpLFxuXG4gIC8qKiBBV1MgQ29kZUJ1aWxkIGNvbXB1dGUgc2l6ZS4gKi9cbiAgY29tcHV0ZVR5cGU6IHouZW51bShbJ1NNQUxMJywgJ01FRElVTScsICdMQVJHRScsICdYMl9MQVJHRSddKS5kZWZhdWx0KCdNRURJVU0nKSxcblxuICAvKiogS2V5d29yZHMgZm9yIGNhdGVnb3JpemF0aW9uLiAqL1xuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLmRlZmF1bHQoW10pLFxuXG4gIC8qKiBQcmltYXJ5IG91dHB1dCBkaXJlY3RvcnkgcGF0aC4gKi9cbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG5cbiAgLyoqIENvbW1hbmRzIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLiAqL1xuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZWZhdWx0KFtdKSxcblxuICAvKiogQnVpbGQvZXhlY3V0aW9uIGNvbW1hbmRzLiAqL1xuICBjb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5taW4oMSwgJ0F0IGxlYXN0IG9uZSBidWlsZCBjb21tYW5kIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEVudmlyb25tZW50IHZhcmlhYmxlcy4gKi9cbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIHBhc3NlZCB2aWEgLS1idWlsZC1hcmcgYXQgaW1hZ2UgYnVpbGQgdGltZS4gKi9cbiAgYnVpbGRBcmdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBDb21wbGV0ZSBEb2NrZXJmaWxlIGNvbnRlbnQgZm9yIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gKi9cbiAgZG9ja2VyZmlsZTogei5zdHJpbmcoKS5taW4oMSwgJ0RvY2tlcmZpbGUgY29udGVudCBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBBY2Nlc3MgdmlzaWJpbGl0eS4gKi9cbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLmRlZmF1bHQoJ3ByaXZhdGUnKSxcbn0pO1xuXG4vKiogVmFsaWRhdGVkIHR5cGUgZm9yIHBsdWdpbiBkZXBsb3ktZ2VuZXJhdGVkIHJlcXVlc3QgYm9keS4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFBsdWdpbkRlcGxveUdlbmVyYXRlZCA9IHouaW5mZXI8dHlwZW9mIFBsdWdpbkRlcGxveUdlbmVyYXRlZFNjaGVtYT47XG5cbi8vIEFJIEdlbmVyYXRlIEZyb20gVVJMIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZS9mcm9tLXVybC9zdHJlYW0gcmVxdWVzdCBib2R5LlxuICogVmFsaWRhdGVzIEdpdCBVUkwgKyBBSSBwcm92aWRlciBjb25maWd1cmF0aW9uIGZvciByZXBvLWJhc2VkIHBpcGVsaW5lIGdlbmVyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBBSUdlbmVyYXRlRnJvbVVybEJvZHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKiBHaXQgcmVwb3NpdG9yeSBVUkwgKEhUVFBTLCBTU0gsIG9yIGdpdEAgZm9ybWF0KS4gKi9cbiAgZ2l0VXJsOiB6LnN0cmluZygpLm1pbigxLCAnQSBHaXQgcmVwb3NpdG9yeSBVUkwgaXMgcmVxdWlyZWQnKS5tYXgoNTAwLCAnVVJMIG11c3QgYmUgNTAwIGNoYXJhY3RlcnMgb3IgZmV3ZXInKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEFJIG1vZGVsIGlkZW50aWZpZXIgKGUuZy4gXCJjbGF1ZGUtc29ubmV0LTQtMjAyNTA1MTRcIiwgXCJncHQtNG9cIikuICovXG4gIG1vZGVsOiB6LnN0cmluZygpLm1pbigxLCAnQSBtb2RlbCBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBPcHRpb25hbCBjdXN0b20gQVBJIGtleSB0byBvdmVycmlkZSB0aGUgc2VydmVyIGNvbmZpZy4gKi9cbiAgYXBpS2V5OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBPcHRpb25hbCBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgYWNjZXNzaW5nIHByaXZhdGUgcmVwb3NpdG9yaWVzLiAqL1xuICByZXBvVG9rZW46IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqIFZhbGlkYXRlZCB0eXBlIGZvciBBSSBnZW5lcmF0ZS1mcm9tLVVSTCByZXF1ZXN0IGJvZHkuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRBSUdlbmVyYXRlRnJvbVVybEJvZHkgPSB6LmluZmVyPHR5cGVvZiBBSUdlbmVyYXRlRnJvbVVybEJvZHlTY2hlbWE+O1xuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2FpLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTNELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWhGLHdCQUF3QjtBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLHdEQUF3RDtJQUN4RCxNQUFNLEVBQUUsQ0FBQztTQUNOLE1BQU0sRUFBRTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEVBQUUsMERBQTBELENBQUM7U0FDbEUsR0FBRyxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixpQkFBaUIsc0JBQXNCLENBQUM7SUFFcEYscUVBQXFFO0lBQ3JFLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxnRUFBZ0UsQ0FBQztJQUU3Rix1RUFBdUU7SUFDdkUsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGtFQUFrRSxDQUFDO0lBRTVGLCtFQUErRTtJQUMvRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFFcEMseURBQXlEO0lBQ3pELGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENB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QUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDO0lBRS9DLDZEQUE2RDtJQUM3RCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFFcEMsd0VBQXdFO0lBQ3hFLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBBY2Nlc3NNb2RpZmllclNjaGVtYSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuXG5jb25zdCBNQVhfUFJPTVBUX0xFTkdUSCA9IHBhcnNlSW50KHByb2Nlc3MuZW52Lk1BWF9QUk9NUFRfTEVOR1RIIHx8ICc1MDAwJywgMTApO1xuXG4vLyBBSSBHZW5lcmF0aW9uIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIEFJIGdlbmVyYXRpb24gcmVxdWVzdCBib2R5LlxuICogVXNlZCBieSBib3RoIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZSBhbmQgUE9TVCAvcGx1Z2lucy9nZW5lcmF0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFJR2VuZXJhdGVCb2R5U2NoZW1hID0gei5vYmplY3Qoe1xuICAvKiogTmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRvIGdlbmVyYXRlLiAqL1xuICBwcm9tcHQ6IHpcbiAgICAuc3RyaW5nKClcbiAgICAubWluKDEsICdBIHByb21wdCB3aXRoIGEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBpcyByZXF1aXJlZCcpXG4gICAgLm1heChNQVhfUFJPTVBUX0xFTkdUSCwgYFByb21wdCBtdXN0IGJlICR7TUFYX1BST01QVF9MRU5HVEh9IGNoYXJhY3RlcnMgb3IgZmV3ZXJgKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkIChlLmcuLCBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKScpLFxuXG4gIC8qKiBBSSBtb2RlbCBpZGVudGlmaWVyIChlLmcuIFwiY2xhdWRlLXNvbm5ldC00LTIwMjUwNTE0XCIsIFwiZ3B0LTRvXCIpLiAqL1xuICBtb2RlbDogei5zdHJpbmcoKS5taW4oMSwgJ0EgbW9kZWwgaXMgcmVxdWlyZWQgKGUuZy4sIFwiY2xhdWRlLXNvbm5ldC00LTIwMjUwNTE0XCIsIFwiZ3B0LTRvXCIpJyksXG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBBUEkga2V5IHRvIG92ZXJyaWRlIHRoZSBzZXJ2ZXIvb3JnIGtleSBmb3IgdGhpcyByZXF1ZXN0LiAqL1xuICBhcGlLZXk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG5cbiAgLyoqIFByZXZpb3VzIHBpcGVsaW5lIGNvbmZpZyBmb3IgaXRlcmF0aXZlIHJlZmluZW1lbnQuICovXG4gIHByZXZpb3VzQ29uZmlnOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcblxuICAvKiogRmFsbGJhY2sgQUkgcHJvdmlkZXJzIGlmIHByaW1hcnkgZmFpbHMgKGUuZy4sIFtcIm9wZW5haVwiLCBcImdvb2dsZVwiXSkuICovXG4gIGZhbGxiYWNrUHJvdmlkZXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqIFZhbGlkYXRlZCB0eXBlIGZvciBBSSBnZW5lcmF0aW9uIHJlcXVlc3QgYm9keS4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZEFJR2VuZXJhdGVCb2R5ID0gei5pbmZlcjx0eXBlb2YgQUlHZW5lcmF0ZUJvZHlTY2hlbWE+O1xuXG4vLyBQbHVnaW4gRGVwbG95LUdlbmVyYXRlZCBSZXF1ZXN0XG5cbi8qKlxuICogU2NoZW1hIGZvciBQT1NUIC9wbHVnaW5zL2RlcGxveS1nZW5lcmF0ZWQgcmVxdWVzdCBib2R5LlxuICogVmFsaWRhdGVzIHRoZSBBSS1nZW5lcmF0ZWQgcGx1Z2luIGNvbmZpZ3VyYXRpb24gYmVmb3JlIERvY2tlciBidWlsZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpbkRlcGxveUdlbmVyYXRlZFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLyoqIFBsdWdpbiBuYW1lIChsb3dlcmNhc2UsIGFscGhhbnVtZXJpYyB3aXRoIGh5cGhlbnMpLiAqL1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxLCAnUGx1Z2luIG5hbWUgaXMgcmVxdWlyZWQnKSxcblxuICAvKiogSHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24uICovXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG5cbiAgLyoqIFNlbWFudGljIHZlcnNpb24gKGUuZy4gXCIxLjAuMFwiKS4gKi9cbiAgdmVyc2lvbjogei5zdHJpbmcoKS5taW4oMSwgJ1ZlcnNpb24gaXMgcmVxdWlyZWQnKSxcblxuICAvKiogUGx1Z2luIGV4ZWN1dGlvbiB0eXBlLiAqL1xuICBwbHVnaW5UeXBlOiB6LmVudW0oWydDb2RlQnVpbGRTdGVwJywgJ1NoZWxsU3RlcCcsICdNYW51YWxBcHByb3ZhbFN0ZXAnXSkuZGVmYXVsdCgnQ29kZUJ1aWxkU3RlcCcpLFxuXG4gIC8qKiBBV1MgQ29kZUJ1aWxkIGNvbXB1dGUgc2l6ZS4gKi9cbiAgY29tcHV0ZVR5cGU6IHouZW51bShbJ1NNQUxMJywgJ01FRElVTScsICdMQVJHRScsICdYMl9MQVJHRSddKS5kZWZhdWx0KCdNRURJVU0nKSxcblxuICAvKiogS2V5d29yZHMgZm9yIGNhdGVnb3JpemF0aW9uLiAqL1xuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLmRlZmF1bHQoW10pLFxuXG4gIC8qKiBQcmltYXJ5IG91dHB1dCBkaXJlY3RvcnkgcGF0aC4gKi9cbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG5cbiAgLyoqIENvbW1hbmRzIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLiAqL1xuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZWZhdWx0KFtdKSxcblxuICAvKiogQnVpbGQvZXhlY3V0aW9uIGNvbW1hbmRzLiAqL1xuICBjb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5taW4oMSwgJ0F0IGxlYXN0IG9uZSBidWlsZCBjb21tYW5kIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEVudmlyb25tZW50IHZhcmlhYmxlcy4gKi9cbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBEb2NrZXIgYnVpbGQgYXJndW1lbnRzIHBhc3NlZCB2aWEgLS1idWlsZC1hcmcgYXQgaW1hZ2UgYnVpbGQgdGltZS4gKi9cbiAgYnVpbGRBcmdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBDb21wbGV0ZSBEb2NrZXJmaWxlIGNvbnRlbnQgZm9yIHRoZSBidWlsZCBlbnZpcm9ubWVudC4gKi9cbiAgZG9ja2VyZmlsZTogei5zdHJpbmcoKS5taW4oMSwgJ0RvY2tlcmZpbGUgY29udGVudCBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBBY2Nlc3MgdmlzaWJpbGl0eS4gKi9cbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLmRlZmF1bHQoJ3ByaXZhdGUnKSxcbn0pO1xuXG4vKiogVmFsaWRhdGVkIHR5cGUgZm9yIHBsdWdpbiBkZXBsb3ktZ2VuZXJhdGVkIHJlcXVlc3QgYm9keS4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFBsdWdpbkRlcGxveUdlbmVyYXRlZCA9IHouaW5mZXI8dHlwZW9mIFBsdWdpbkRlcGxveUdlbmVyYXRlZFNjaGVtYT47XG5cbi8vIEFJIEdlbmVyYXRlIEZyb20gVVJMIFJlcXVlc3RcblxuLyoqXG4gKiBTY2hlbWEgZm9yIFBPU1QgL3BpcGVsaW5lcy9nZW5lcmF0ZS9mcm9tLXVybC9zdHJlYW0gcmVxdWVzdCBib2R5LlxuICogVmFsaWRhdGVzIEdpdCBVUkwgKyBBSSBwcm92aWRlciBjb25maWd1cmF0aW9uIGZvciByZXBvLWJhc2VkIHBpcGVsaW5lIGdlbmVyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBBSUdlbmVyYXRlRnJvbVVybEJvZHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8qKiBHaXQgcmVwb3NpdG9yeSBVUkwgKEhUVFBTLCBTU0gsIG9yIGdpdEAgZm9ybWF0KS4gKi9cbiAgZ2l0VXJsOiB6LnN0cmluZygpLm1pbigxLCAnQSBHaXQgcmVwb3NpdG9yeSBVUkwgaXMgcmVxdWlyZWQnKS5tYXgoNTAwLCAnVVJMIG11c3QgYmUgNTAwIGNoYXJhY3RlcnMgb3IgZmV3ZXInKSxcblxuICAvKiogQUkgcHJvdmlkZXIgaWRlbnRpZmllciAoZS5nLiBcImFudGhyb3BpY1wiLCBcIm9wZW5haVwiLCBcImdvb2dsZVwiKS4gKi9cbiAgcHJvdmlkZXI6IHouc3RyaW5nKCkubWluKDEsICdBIHByb3ZpZGVyIGlzIHJlcXVpcmVkJyksXG5cbiAgLyoqIEFJIG1vZGVsIGlkZW50aWZpZXIgKGUuZy4gXCJjbGF1ZGUtc29ubmV0LTQtMjAyNTA1MTRcIiwgXCJncHQtNG9cIikuICovXG4gIG1vZGVsOiB6LnN0cmluZygpLm1pbigxLCAnQSBtb2RlbCBpcyByZXF1aXJlZCcpLFxuXG4gIC8qKiBPcHRpb25hbCBjdXN0b20gQVBJIGtleSB0byBvdmVycmlkZSB0aGUgc2VydmVyIGNvbmZpZy4gKi9cbiAgYXBpS2V5OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuXG4gIC8qKiBPcHRpb25hbCBhdXRoZW50aWNhdGlvbiB0b2tlbiBmb3IgYWNjZXNzaW5nIHByaXZhdGUgcmVwb3NpdG9yaWVzLiAqL1xuICByZXBvVG9rZW46IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqIFZhbGlkYXRlZCB0eXBlIGZvciBBSSBnZW5lcmF0ZS1mcm9tLVVSTCByZXF1ZXN0IGJvZHkuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRBSUdlbmVyYXRlRnJvbVVybEJvZHkgPSB6LmluZmVyPHR5cGVvZiBBSUdlbmVyYXRlRnJvbVVybEJvZHlTY2hlbWE+O1xuIl19
@@ -1,4 +1,4 @@
1
- import '../openapi/extend-zod';
1
+ import '../openapi/extend-zod.js';
2
2
  import { z } from 'zod';
3
3
  /**
4
4
  * Access modifier schema
@@ -1,58 +1,55 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.BaseFilterSchema = exports.UUIDPrefixSchema = exports.UUIDSchema = exports.BooleanQuerySchema = exports.PaginationSchema = exports.MAX_PAGE_LIMIT = exports.SortOrderSchema = exports.AccessModifierSchema = void 0;
6
3
  // Must run before any z.* schema creation — Zod 4 requires eager extension
7
- require("../openapi/extend-zod");
8
- const zod_1 = require("zod");
4
+ import '../openapi/extend-zod.js';
5
+ import { z } from 'zod';
9
6
  /**
10
7
  * Access modifier schema
11
8
  * Defines visibility of resources (public or private)
12
9
  */
13
- exports.AccessModifierSchema = zod_1.z.enum(['public', 'private']);
10
+ export const AccessModifierSchema = z.enum(['public', 'private']);
14
11
  /**
15
12
  * Sort order schema
16
13
  */
17
- exports.SortOrderSchema = zod_1.z.enum(['asc', 'desc']);
14
+ export const SortOrderSchema = z.enum(['asc', 'desc']);
18
15
  /**
19
16
  * Pagination parameters schema
20
17
  */
21
- exports.MAX_PAGE_LIMIT = parseInt(process.env.MAX_PAGE_LIMIT || '1000', 10);
22
- exports.PaginationSchema = zod_1.z.object({
23
- limit: zod_1.z.coerce.number().int().min(1).max(exports.MAX_PAGE_LIMIT).optional(),
24
- offset: zod_1.z.coerce.number().int().min(0).optional(),
25
- sortBy: zod_1.z.string().optional(),
26
- sortOrder: exports.SortOrderSchema.optional(),
18
+ export const MAX_PAGE_LIMIT = parseInt(process.env.MAX_PAGE_LIMIT || '1000', 10);
19
+ export const PaginationSchema = z.object({
20
+ limit: z.coerce.number().int().min(1).max(MAX_PAGE_LIMIT).optional(),
21
+ offset: z.coerce.number().int().min(0).optional(),
22
+ sortBy: z.string().optional(),
23
+ sortOrder: SortOrderSchema.optional(),
27
24
  });
28
25
  /**
29
26
  * Boolean query parameter schema
30
27
  * Handles string "true"/"false" and boolean values
31
28
  */
32
- exports.BooleanQuerySchema = zod_1.z.union([
33
- zod_1.z.boolean(),
34
- zod_1.z.enum(['true', 'false']).transform(val => val === 'true'),
35
- zod_1.z.string().transform(val => val === 'true'),
29
+ export const BooleanQuerySchema = z.union([
30
+ z.boolean(),
31
+ z.enum(['true', 'false']).transform(val => val === 'true'),
32
+ z.string().transform(val => val === 'true'),
36
33
  ]);
37
34
  /**
38
35
  * UUID schema with validation
39
36
  */
40
- exports.UUIDSchema = zod_1.z.string().uuid({
37
+ export const UUIDSchema = z.string().uuid({
41
38
  message: 'Invalid UUID format',
42
39
  });
43
40
  /**
44
41
  * Optional UUID schema (for partial UUIDs or prefixes)
45
42
  */
46
- exports.UUIDPrefixSchema = zod_1.z.string().regex(/^[0-9a-f-]+$/i, {
43
+ export const UUIDPrefixSchema = z.string().regex(/^[0-9a-f-]+$/i, {
47
44
  message: 'Invalid UUID prefix format',
48
45
  });
49
46
  /**
50
47
  * Base filter schema for entities with common fields
51
48
  */
52
- exports.BaseFilterSchema = zod_1.z.object({
53
- id: zod_1.z.union([exports.UUIDSchema, zod_1.z.array(exports.UUIDSchema), exports.UUIDPrefixSchema]).optional(),
54
- accessModifier: exports.AccessModifierSchema.optional(),
55
- isActive: exports.BooleanQuerySchema.optional(),
56
- isDefault: exports.BooleanQuerySchema.optional(),
49
+ export const BaseFilterSchema = z.object({
50
+ id: z.union([UUIDSchema, z.array(UUIDSchema), UUIDPrefixSchema]).optional(),
51
+ accessModifier: AccessModifierSchema.optional(),
52
+ isActive: BooleanQuerySchema.optional(),
53
+ isDefault: BooleanQuerySchema.optional(),
57
54
  });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9jb21tb24tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQzs7O0FBRXRDLDJFQUEyRTtBQUMzRSxpQ0FBK0I7QUFDL0IsNkJBQXdCO0FBRXhCOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRWxFOztHQUVHO0FBQ1UsUUFBQSxlQUFlLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBRXZEOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVwRSxRQUFBLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBYyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDakQsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsU0FBUyxFQUFFLHVCQUFlLENBQUMsUUFBUSxFQUFFO0NBQ3RDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsa0JBQWtCLEdBQUcsT0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4QyxPQUFDLENBQUMsT0FBTyxFQUFFO0lBQ1gsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUM7SUFDMUQsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUM7Q0FDNUMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDVSxRQUFBLFVBQVUsR0FBRyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3hDLE9BQU8sRUFBRSxxQkFBcUI7Q0FDL0IsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO0lBQ2hFLE9BQU8sRUFBRSw0QkFBNEI7Q0FDdEMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxrQkFBVSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsa0JBQVUsQ0FBQyxFQUFFLHdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0UsY0FBYyxFQUFFLDRCQUFvQixDQUFDLFFBQVEsRUFBRTtJQUMvQyxRQUFRLEVBQUUsMEJBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSwwQkFBa0IsQ0FBQyxRQUFRLEVBQUU7Q0FDekMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIE11c3QgcnVuIGJlZm9yZSBhbnkgei4qIHNjaGVtYSBjcmVhdGlvbiDigJQgWm9kIDQgcmVxdWlyZXMgZWFnZXIgZXh0ZW5zaW9uXG5pbXBvcnQgJy4uL29wZW5hcGkvZXh0ZW5kLXpvZCc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuLyoqXG4gKiBBY2Nlc3MgbW9kaWZpZXIgc2NoZW1hXG4gKiBEZWZpbmVzIHZpc2liaWxpdHkgb2YgcmVzb3VyY2VzIChwdWJsaWMgb3IgcHJpdmF0ZSlcbiAqL1xuZXhwb3J0IGNvbnN0IEFjY2Vzc01vZGlmaWVyU2NoZW1hID0gei5lbnVtKFsncHVibGljJywgJ3ByaXZhdGUnXSk7XG5cbi8qKlxuICogU29ydCBvcmRlciBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFNvcnRPcmRlclNjaGVtYSA9IHouZW51bShbJ2FzYycsICdkZXNjJ10pO1xuXG4vKipcbiAqIFBhZ2luYXRpb24gcGFyYW1ldGVycyBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9QQUdFX0xJTUlUID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuTUFYX1BBR0VfTElNSVQgfHwgJzEwMDAnLCAxMCk7XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICBsaW1pdDogei5jb2VyY2UubnVtYmVyKCkuaW50KCkubWluKDEpLm1heChNQVhfUEFHRV9MSU1JVCkub3B0aW9uYWwoKSxcbiAgb2Zmc2V0OiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMCkub3B0aW9uYWwoKSxcbiAgc29ydEJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNvcnRPcmRlcjogU29ydE9yZGVyU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBCb29sZWFuIHF1ZXJ5IHBhcmFtZXRlciBzY2hlbWFcbiAqIEhhbmRsZXMgc3RyaW5nIFwidHJ1ZVwiL1wiZmFsc2VcIiBhbmQgYm9vbGVhbiB2YWx1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEJvb2xlYW5RdWVyeVNjaGVtYSA9IHoudW5pb24oW1xuICB6LmJvb2xlYW4oKSxcbiAgei5lbnVtKFsndHJ1ZScsICdmYWxzZSddKS50cmFuc2Zvcm0odmFsID0+IHZhbCA9PT0gJ3RydWUnKSxcbiAgei5zdHJpbmcoKS50cmFuc2Zvcm0odmFsID0+IHZhbCA9PT0gJ3RydWUnKSxcbl0pO1xuXG4vKipcbiAqIFVVSUQgc2NoZW1hIHdpdGggdmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgVVVJRFNjaGVtYSA9IHouc3RyaW5nKCkudXVpZCh7XG4gIG1lc3NhZ2U6ICdJbnZhbGlkIFVVSUQgZm9ybWF0Jyxcbn0pO1xuXG4vKipcbiAqIE9wdGlvbmFsIFVVSUQgc2NoZW1hIChmb3IgcGFydGlhbCBVVUlEcyBvciBwcmVmaXhlcylcbiAqL1xuZXhwb3J0IGNvbnN0IFVVSURQcmVmaXhTY2hlbWEgPSB6LnN0cmluZygpLnJlZ2V4KC9eWzAtOWEtZi1dKyQvaSwge1xuICBtZXNzYWdlOiAnSW52YWxpZCBVVUlEIHByZWZpeCBmb3JtYXQnLFxufSk7XG5cbi8qKlxuICogQmFzZSBmaWx0ZXIgc2NoZW1hIGZvciBlbnRpdGllcyB3aXRoIGNvbW1vbiBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VGaWx0ZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnVuaW9uKFtVVUlEU2NoZW1hLCB6LmFycmF5KFVVSURTY2hlbWEpLCBVVUlEUHJlZml4U2NoZW1hXSkub3B0aW9uYWwoKSxcbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEluZmVyIFR5cGVTY3JpcHQgdHlwZXMgZnJvbSBzY2hlbWFzXG4gKiBOb3RlOiBQcmVmaXhlZCB3aXRoIFwiVmFsaWRhdGVkXCIgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgdHlwZSBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRBY2Nlc3NNb2RpZmllciA9IHouaW5mZXI8dHlwZW9mIEFjY2Vzc01vZGlmaWVyU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFNvcnRPcmRlciA9IHouaW5mZXI8dHlwZW9mIFNvcnRPcmRlclNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRQYWdpbmF0aW9uUGFyYW1zID0gei5pbmZlcjx0eXBlb2YgUGFnaW5hdGlvblNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRCYXNlRmlsdGVyID0gei5pbmZlcjx0eXBlb2YgQmFzZUZpbHRlclNjaGVtYT47XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9jb21tb24tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLDJFQUEyRTtBQUMzRSxPQUFPLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNqRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixTQUFTLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQztJQUMxRCxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQztDQUM1QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3hDLE9BQU8sRUFBRSxxQkFBcUI7Q0FDL0IsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtJQUNoRSxPQUFPLEVBQUUsNEJBQTRCO0NBQ3RDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0UsY0FBYyxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtJQUMvQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7Q0FDekMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIE11c3QgcnVuIGJlZm9yZSBhbnkgei4qIHNjaGVtYSBjcmVhdGlvbiDigJQgWm9kIDQgcmVxdWlyZXMgZWFnZXIgZXh0ZW5zaW9uXG5pbXBvcnQgJy4uL29wZW5hcGkvZXh0ZW5kLXpvZC5qcyc7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuLyoqXG4gKiBBY2Nlc3MgbW9kaWZpZXIgc2NoZW1hXG4gKiBEZWZpbmVzIHZpc2liaWxpdHkgb2YgcmVzb3VyY2VzIChwdWJsaWMgb3IgcHJpdmF0ZSlcbiAqL1xuZXhwb3J0IGNvbnN0IEFjY2Vzc01vZGlmaWVyU2NoZW1hID0gei5lbnVtKFsncHVibGljJywgJ3ByaXZhdGUnXSk7XG5cbi8qKlxuICogU29ydCBvcmRlciBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFNvcnRPcmRlclNjaGVtYSA9IHouZW51bShbJ2FzYycsICdkZXNjJ10pO1xuXG4vKipcbiAqIFBhZ2luYXRpb24gcGFyYW1ldGVycyBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9QQUdFX0xJTUlUID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuTUFYX1BBR0VfTElNSVQgfHwgJzEwMDAnLCAxMCk7XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICBsaW1pdDogei5jb2VyY2UubnVtYmVyKCkuaW50KCkubWluKDEpLm1heChNQVhfUEFHRV9MSU1JVCkub3B0aW9uYWwoKSxcbiAgb2Zmc2V0OiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMCkub3B0aW9uYWwoKSxcbiAgc29ydEJ5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNvcnRPcmRlcjogU29ydE9yZGVyU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBCb29sZWFuIHF1ZXJ5IHBhcmFtZXRlciBzY2hlbWFcbiAqIEhhbmRsZXMgc3RyaW5nIFwidHJ1ZVwiL1wiZmFsc2VcIiBhbmQgYm9vbGVhbiB2YWx1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IEJvb2xlYW5RdWVyeVNjaGVtYSA9IHoudW5pb24oW1xuICB6LmJvb2xlYW4oKSxcbiAgei5lbnVtKFsndHJ1ZScsICdmYWxzZSddKS50cmFuc2Zvcm0odmFsID0+IHZhbCA9PT0gJ3RydWUnKSxcbiAgei5zdHJpbmcoKS50cmFuc2Zvcm0odmFsID0+IHZhbCA9PT0gJ3RydWUnKSxcbl0pO1xuXG4vKipcbiAqIFVVSUQgc2NoZW1hIHdpdGggdmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgVVVJRFNjaGVtYSA9IHouc3RyaW5nKCkudXVpZCh7XG4gIG1lc3NhZ2U6ICdJbnZhbGlkIFVVSUQgZm9ybWF0Jyxcbn0pO1xuXG4vKipcbiAqIE9wdGlvbmFsIFVVSUQgc2NoZW1hIChmb3IgcGFydGlhbCBVVUlEcyBvciBwcmVmaXhlcylcbiAqL1xuZXhwb3J0IGNvbnN0IFVVSURQcmVmaXhTY2hlbWEgPSB6LnN0cmluZygpLnJlZ2V4KC9eWzAtOWEtZi1dKyQvaSwge1xuICBtZXNzYWdlOiAnSW52YWxpZCBVVUlEIHByZWZpeCBmb3JtYXQnLFxufSk7XG5cbi8qKlxuICogQmFzZSBmaWx0ZXIgc2NoZW1hIGZvciBlbnRpdGllcyB3aXRoIGNvbW1vbiBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VGaWx0ZXJTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnVuaW9uKFtVVUlEU2NoZW1hLCB6LmFycmF5KFVVSURTY2hlbWEpLCBVVUlEUHJlZml4U2NoZW1hXSkub3B0aW9uYWwoKSxcbiAgYWNjZXNzTW9kaWZpZXI6IEFjY2Vzc01vZGlmaWVyU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEluZmVyIFR5cGVTY3JpcHQgdHlwZXMgZnJvbSBzY2hlbWFzXG4gKiBOb3RlOiBQcmVmaXhlZCB3aXRoIFwiVmFsaWRhdGVkXCIgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgdHlwZSBkZWZpbml0aW9uc1xuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRBY2Nlc3NNb2RpZmllciA9IHouaW5mZXI8dHlwZW9mIEFjY2Vzc01vZGlmaWVyU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZFNvcnRPcmRlciA9IHouaW5mZXI8dHlwZW9mIFNvcnRPcmRlclNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRQYWdpbmF0aW9uUGFyYW1zID0gei5pbmZlcjx0eXBlb2YgUGFnaW5hdGlvblNjaGVtYT47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZWRCYXNlRmlsdGVyID0gei5pbmZlcjx0eXBlb2YgQmFzZUZpbHRlclNjaGVtYT47XG4iXX0=
@@ -1,6 +1,6 @@
1
- export * from './common-schemas';
2
- export * from './pipeline-schemas';
3
- export * from './plugin-schemas';
4
- export * from './message-schemas';
5
- export * from './ai-schemas';
6
- export * from './middleware';
1
+ export * from './common-schemas.js';
2
+ export * from './pipeline-schemas.js';
3
+ export * from './plugin-schemas.js';
4
+ export * from './message-schemas.js';
5
+ export * from './ai-schemas.js';
6
+ export * from './middleware.js';
@@ -1,25 +1,9 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- var desc = Object.getOwnPropertyDescriptor(m, k);
7
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
- desc = { enumerable: true, get: function() { return m[k]; } };
9
- }
10
- Object.defineProperty(o, k2, desc);
11
- }) : (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- o[k2] = m[k];
14
- }));
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- __exportStar(require("./common-schemas"), exports);
20
- __exportStar(require("./pipeline-schemas"), exports);
21
- __exportStar(require("./plugin-schemas"), exports);
22
- __exportStar(require("./message-schemas"), exports);
23
- __exportStar(require("./ai-schemas"), exports);
24
- __exportStar(require("./middleware"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV0QyxtREFBaUM7QUFDakMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsK0NBQTZCO0FBQzdCLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQgKiBmcm9tICcuL2NvbW1vbi1zY2hlbWFzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUtc2NoZW1hcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1zY2hlbWFzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZS1zY2hlbWFzJztcbmV4cG9ydCAqIGZyb20gJy4vYWktc2NoZW1hcyc7XG5leHBvcnQgKiBmcm9tICcuL21pZGRsZXdhcmUnO1xuIl19
3
+ export * from './common-schemas.js';
4
+ export * from './pipeline-schemas.js';
5
+ export * from './plugin-schemas.js';
6
+ export * from './message-schemas.js';
7
+ export * from './ai-schemas.js';
8
+ export * from './middleware.js';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS1zY2hlbWFzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2luLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlLXNjaGVtYXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9haS1zY2hlbWFzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWlkZGxld2FyZS5qcyc7XG4iXX0=
@@ -1,25 +1,22 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.MessageReplySchema = exports.MessageCreateSchema = exports.MessageFilterSchema = exports.MessageChannelSchema = exports.MessagePrioritySchema = exports.MessageTypeSchema = void 0;
6
- const zod_1 = require("zod");
7
- const common_schemas_1 = require("./common-schemas");
3
+ import { z } from 'zod';
4
+ import { BaseFilterSchema, BooleanQuerySchema } from './common-schemas.js';
8
5
  /**
9
6
  * Message type schema
10
7
  */
11
- exports.MessageTypeSchema = zod_1.z.enum(['announcement', 'conversation']);
8
+ export const MessageTypeSchema = z.enum(['announcement', 'conversation']);
12
9
  /**
13
10
  * Message priority schema
14
11
  */
15
- exports.MessagePrioritySchema = zod_1.z.enum(['normal', 'high', 'urgent']);
12
+ export const MessagePrioritySchema = z.enum(['normal', 'high', 'urgent']);
16
13
  /**
17
14
  * Channel/inbox-bucket schema. Open-ended string up to 50 chars so we
18
15
  * can add new channels (support, help, billing, …) without a schema
19
16
  * migration. Constrained to a-z/0-9/dash/underscore for URL safety and
20
17
  * to keep filter conditions trivially indexable.
21
18
  */
22
- exports.MessageChannelSchema = zod_1.z.string().min(1).max(50).regex(/^[a-z0-9_-]+$/);
19
+ export const MessageChannelSchema = z.string().min(1).max(50).regex(/^[a-z0-9_-]+$/);
23
20
  /**
24
21
  * Message filter schema for query parameters.
25
22
  *
@@ -33,29 +30,29 @@ exports.MessageChannelSchema = zod_1.z.string().min(1).max(50).regex(/^[a-z0-9_-
33
30
  * `isRead` is honored by `buildMessageConditions` in pipeline-data via a
34
31
  * JSONB `?` membership check on `messages.read_by` for the requesting org.
35
32
  */
36
- exports.MessageFilterSchema = common_schemas_1.BaseFilterSchema.extend({
37
- threadId: zod_1.z.union([zod_1.z.string().uuid(), zod_1.z.literal('root'), zod_1.z.null()]).optional(),
38
- recipientOrgId: zod_1.z.string().min(1).optional(),
39
- messageType: exports.MessageTypeSchema.optional(),
40
- isRead: common_schemas_1.BooleanQuerySchema.optional(),
41
- priority: exports.MessagePrioritySchema.optional(),
42
- channel: exports.MessageChannelSchema.optional(),
33
+ export const MessageFilterSchema = BaseFilterSchema.extend({
34
+ threadId: z.union([z.string().uuid(), z.literal('root'), z.null()]).optional(),
35
+ recipientOrgId: z.string().min(1).optional(),
36
+ messageType: MessageTypeSchema.optional(),
37
+ isRead: BooleanQuerySchema.optional(),
38
+ priority: MessagePrioritySchema.optional(),
39
+ channel: MessageChannelSchema.optional(),
43
40
  });
44
41
  /**
45
42
  * Message creation schema
46
43
  */
47
- exports.MessageCreateSchema = zod_1.z.object({
48
- recipientOrgId: zod_1.z.string().min(1, 'Recipient organization ID is required'),
49
- messageType: exports.MessageTypeSchema.optional().default('conversation'),
50
- channel: exports.MessageChannelSchema.optional(),
51
- subject: zod_1.z.string().min(1, 'Subject is required'),
52
- content: zod_1.z.string().min(1, 'Content is required'),
53
- priority: exports.MessagePrioritySchema.optional().default('normal'),
44
+ export const MessageCreateSchema = z.object({
45
+ recipientOrgId: z.string().min(1, 'Recipient organization ID is required'),
46
+ messageType: MessageTypeSchema.optional().default('conversation'),
47
+ channel: MessageChannelSchema.optional(),
48
+ subject: z.string().min(1, 'Subject is required'),
49
+ content: z.string().min(1, 'Content is required'),
50
+ priority: MessagePrioritySchema.optional().default('normal'),
54
51
  });
55
52
  /**
56
53
  * Message reply schema
57
54
  */
58
- exports.MessageReplySchema = zod_1.z.object({
59
- content: zod_1.z.string().min(1, 'Content is required'),
55
+ export const MessageReplySchema = z.object({
56
+ content: z.string().min(1, 'Content is required'),
60
57
  });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWVzc2FnZS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDOzs7QUFFdEMsNkJBQXdCO0FBQ3hCLHFEQUF3RTtBQUV4RTs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRTFFOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBRTFFOzs7OztHQUtHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxpQ0FBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDekQsUUFBUSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM5RSxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsV0FBVyxFQUFFLHlCQUFpQixDQUFDLFFBQVEsRUFBRTtJQUN6QyxNQUFNLEVBQUUsbUNBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFFBQVEsRUFBRSw2QkFBcUIsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsT0FBTyxFQUFFLDRCQUFvQixDQUFDLFFBQVEsRUFBRTtDQUN6QyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsdUNBQXVDLENBQUM7SUFDMUUsV0FBVyxFQUFFLHlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDakUsT0FBTyxFQUFFLDRCQUFvQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDakQsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDO0lBQ2pELFFBQVEsRUFBRSw2QkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQzdELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztDQUNsRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzJztcblxuLyoqXG4gKiBNZXNzYWdlIHR5cGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlVHlwZVNjaGVtYSA9IHouZW51bShbJ2Fubm91bmNlbWVudCcsICdjb252ZXJzYXRpb24nXSk7XG5cbi8qKlxuICogTWVzc2FnZSBwcmlvcml0eSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VQcmlvcml0eVNjaGVtYSA9IHouZW51bShbJ25vcm1hbCcsICdoaWdoJywgJ3VyZ2VudCddKTtcblxuLyoqXG4gKiBDaGFubmVsL2luYm94LWJ1Y2tldCBzY2hlbWEuIE9wZW4tZW5kZWQgc3RyaW5nIHVwIHRvIDUwIGNoYXJzIHNvIHdlXG4gKiBjYW4gYWRkIG5ldyBjaGFubmVscyAoc3VwcG9ydCwgaGVscCwgYmlsbGluZywg4oCmKSB3aXRob3V0IGEgc2NoZW1hXG4gKiBtaWdyYXRpb24uIENvbnN0cmFpbmVkIHRvIGEtei8wLTkvZGFzaC91bmRlcnNjb3JlIGZvciBVUkwgc2FmZXR5IGFuZFxuICogdG8ga2VlcCBmaWx0ZXIgY29uZGl0aW9ucyB0cml2aWFsbHkgaW5kZXhhYmxlLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUNoYW5uZWxTY2hlbWEgPSB6LnN0cmluZygpLm1pbigxKS5tYXgoNTApLnJlZ2V4KC9eW2EtejAtOV8tXSskLyk7XG5cbi8qKlxuICogTWVzc2FnZSBmaWx0ZXIgc2NoZW1hIGZvciBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIENvbnZlbnRpb24gZm9yIGB0aHJlYWRJZGA6XG4gKiAtIE9taXR0ZWQgKHVuZGVmaW5lZCk6IG5vIGZpbHRlciBhcHBsaWVkIOKAlCByZXR1cm5zIG1lc3NhZ2VzIHJlZ2FyZGxlc3Mgb2YgdGhyZWFkLlxuICogLSBgJ3Jvb3QnYCBvciBgbnVsbGA6IGZpbHRlciBmb3Igcm9vdCBtZXNzYWdlcyBvbmx5ICh0cmFuc2xhdGVkIHRvIGB0aHJlYWRJZCBJUyBOVUxMYFxuICogICBieSB0aGUgcm91dGUgbGF5ZXIgLyBxdWVyeSBidWlsZGVyKS4gVGhlIHN0cmluZyBzZW50aW5lbCBgJ3Jvb3QnYCBpcyB0aGVcbiAqICAgd2lyZSBmb3JtLCBzaW5jZSBVUkwgcXVlcnkgcGFyYW1zIGNhbid0IGNhcnJ5IGEgdHJ1ZSBgbnVsbGAuXG4gKiAtIEEgVVVJRDogZmlsdGVyIGZvciBtZXNzYWdlcyBpbiB0aGF0IHNwZWNpZmljIHRocmVhZC5cbiAqXG4gKiBgaXNSZWFkYCBpcyBob25vcmVkIGJ5IGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCBpbiBwaXBlbGluZS1kYXRhIHZpYSBhXG4gKiBKU09OQiBgP2AgbWVtYmVyc2hpcCBjaGVjayBvbiBgbWVzc2FnZXMucmVhZF9ieWAgZm9yIHRoZSByZXF1ZXN0aW5nIG9yZy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHRocmVhZElkOiB6LnVuaW9uKFt6LnN0cmluZygpLnV1aWQoKSwgei5saXRlcmFsKCdyb290JyksIHoubnVsbCgpXSkub3B0aW9uYWwoKSxcbiAgcmVjaXBpZW50T3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc1JlYWQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGNoYW5uZWw6IE1lc3NhZ2VDaGFubmVsU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIGNyZWF0aW9uIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUNyZWF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcmVjaXBpZW50T3JnSWQ6IHouc3RyaW5nKCkubWluKDEsICdSZWNpcGllbnQgb3JnYW5pemF0aW9uIElEIGlzIHJlcXVpcmVkJyksXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZVNjaGVtYS5vcHRpb25hbCgpLmRlZmF1bHQoJ2NvbnZlcnNhdGlvbicpLFxuICBjaGFubmVsOiBNZXNzYWdlQ2hhbm5lbFNjaGVtYS5vcHRpb25hbCgpLFxuICBzdWJqZWN0OiB6LnN0cmluZygpLm1pbigxLCAnU3ViamVjdCBpcyByZXF1aXJlZCcpLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnbm9ybWFsJyksXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIHJlcGx5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVJlcGx5U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLFxufSk7XG5cbi8qKlxuICogSW5mZXIgVHlwZVNjcmlwdCB0eXBlcyBmcm9tIHNjaGVtYXNcbiAqIE5vdGU6IFByZWZpeGVkIHdpdGggXCJWYWxpZGF0ZWRcIiB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBleGlzdGluZyB0eXBlIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VGaWx0ZXIgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlRmlsdGVyU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VDcmVhdGUgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlQ3JlYXRlU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VSZXBseSA9IHouaW5mZXI8dHlwZW9mIE1lc3NhZ2VSZXBseVNjaGVtYT47XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWVzc2FnZS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUUxRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFMUU7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckY7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3pELFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzVDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7SUFDekMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUNyQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFO0lBQzFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7Q0FDekMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSx1Q0FBdUMsQ0FBQztJQUMxRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNqRSxPQUFPLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFO0lBQ3hDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztJQUNqRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDakQsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Q0FDN0QsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztDQUNsRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcblxuLyoqXG4gKiBNZXNzYWdlIHR5cGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlVHlwZVNjaGVtYSA9IHouZW51bShbJ2Fubm91bmNlbWVudCcsICdjb252ZXJzYXRpb24nXSk7XG5cbi8qKlxuICogTWVzc2FnZSBwcmlvcml0eSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VQcmlvcml0eVNjaGVtYSA9IHouZW51bShbJ25vcm1hbCcsICdoaWdoJywgJ3VyZ2VudCddKTtcblxuLyoqXG4gKiBDaGFubmVsL2luYm94LWJ1Y2tldCBzY2hlbWEuIE9wZW4tZW5kZWQgc3RyaW5nIHVwIHRvIDUwIGNoYXJzIHNvIHdlXG4gKiBjYW4gYWRkIG5ldyBjaGFubmVscyAoc3VwcG9ydCwgaGVscCwgYmlsbGluZywg4oCmKSB3aXRob3V0IGEgc2NoZW1hXG4gKiBtaWdyYXRpb24uIENvbnN0cmFpbmVkIHRvIGEtei8wLTkvZGFzaC91bmRlcnNjb3JlIGZvciBVUkwgc2FmZXR5IGFuZFxuICogdG8ga2VlcCBmaWx0ZXIgY29uZGl0aW9ucyB0cml2aWFsbHkgaW5kZXhhYmxlLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUNoYW5uZWxTY2hlbWEgPSB6LnN0cmluZygpLm1pbigxKS5tYXgoNTApLnJlZ2V4KC9eW2EtejAtOV8tXSskLyk7XG5cbi8qKlxuICogTWVzc2FnZSBmaWx0ZXIgc2NoZW1hIGZvciBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIENvbnZlbnRpb24gZm9yIGB0aHJlYWRJZGA6XG4gKiAtIE9taXR0ZWQgKHVuZGVmaW5lZCk6IG5vIGZpbHRlciBhcHBsaWVkIOKAlCByZXR1cm5zIG1lc3NhZ2VzIHJlZ2FyZGxlc3Mgb2YgdGhyZWFkLlxuICogLSBgJ3Jvb3QnYCBvciBgbnVsbGA6IGZpbHRlciBmb3Igcm9vdCBtZXNzYWdlcyBvbmx5ICh0cmFuc2xhdGVkIHRvIGB0aHJlYWRJZCBJUyBOVUxMYFxuICogICBieSB0aGUgcm91dGUgbGF5ZXIgLyBxdWVyeSBidWlsZGVyKS4gVGhlIHN0cmluZyBzZW50aW5lbCBgJ3Jvb3QnYCBpcyB0aGVcbiAqICAgd2lyZSBmb3JtLCBzaW5jZSBVUkwgcXVlcnkgcGFyYW1zIGNhbid0IGNhcnJ5IGEgdHJ1ZSBgbnVsbGAuXG4gKiAtIEEgVVVJRDogZmlsdGVyIGZvciBtZXNzYWdlcyBpbiB0aGF0IHNwZWNpZmljIHRocmVhZC5cbiAqXG4gKiBgaXNSZWFkYCBpcyBob25vcmVkIGJ5IGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCBpbiBwaXBlbGluZS1kYXRhIHZpYSBhXG4gKiBKU09OQiBgP2AgbWVtYmVyc2hpcCBjaGVjayBvbiBgbWVzc2FnZXMucmVhZF9ieWAgZm9yIHRoZSByZXF1ZXN0aW5nIG9yZy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHRocmVhZElkOiB6LnVuaW9uKFt6LnN0cmluZygpLnV1aWQoKSwgei5saXRlcmFsKCdyb290JyksIHoubnVsbCgpXSkub3B0aW9uYWwoKSxcbiAgcmVjaXBpZW50T3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc1JlYWQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGNoYW5uZWw6IE1lc3NhZ2VDaGFubmVsU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIGNyZWF0aW9uIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUNyZWF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcmVjaXBpZW50T3JnSWQ6IHouc3RyaW5nKCkubWluKDEsICdSZWNpcGllbnQgb3JnYW5pemF0aW9uIElEIGlzIHJlcXVpcmVkJyksXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZVNjaGVtYS5vcHRpb25hbCgpLmRlZmF1bHQoJ2NvbnZlcnNhdGlvbicpLFxuICBjaGFubmVsOiBNZXNzYWdlQ2hhbm5lbFNjaGVtYS5vcHRpb25hbCgpLFxuICBzdWJqZWN0OiB6LnN0cmluZygpLm1pbigxLCAnU3ViamVjdCBpcyByZXF1aXJlZCcpLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCkuZGVmYXVsdCgnbm9ybWFsJyksXG59KTtcblxuLyoqXG4gKiBNZXNzYWdlIHJlcGx5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVJlcGx5U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLFxufSk7XG5cbi8qKlxuICogSW5mZXIgVHlwZVNjcmlwdCB0eXBlcyBmcm9tIHNjaGVtYXNcbiAqIE5vdGU6IFByZWZpeGVkIHdpdGggXCJWYWxpZGF0ZWRcIiB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBleGlzdGluZyB0eXBlIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VGaWx0ZXIgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlRmlsdGVyU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VDcmVhdGUgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlQ3JlYXRlU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlZE1lc3NhZ2VSZXBseSA9IHouaW5mZXI8dHlwZW9mIE1lc3NhZ2VSZXBseVNjaGVtYT47XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { Request } from 'express';
2
- import { ZodSchema, ZodError } from 'zod';
1
+ import type { Request } from 'express';
2
+ import { ZodError, type ZodSchema } from 'zod';
3
3
  /**
4
4
  * Result type for validation operations
5
5
  */
@@ -1,12 +1,6 @@
1
- "use strict";
2
1
  // Copyright 2026 Pipeline Builder Contributors
3
2
  // SPDX-License-Identifier: Apache-2.0
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.validate = validate;
6
- exports.validateQuery = validateQuery;
7
- exports.validateBody = validateBody;
8
- exports.validateParams = validateParams;
9
- const zod_1 = require("zod");
3
+ import { ZodError } from 'zod';
10
4
  /**
11
5
  * Validate arbitrary data against a Zod schema.
12
6
  *
@@ -27,12 +21,12 @@ const zod_1 = require("zod");
27
21
  * const parsed = result.value;
28
22
  * ```
29
23
  */
30
- function validate(data, schema) {
24
+ export function validate(data, schema) {
31
25
  try {
32
26
  return { ok: true, value: schema.parse(data) };
33
27
  }
34
28
  catch (error) {
35
- if (error instanceof zod_1.ZodError) {
29
+ if (error instanceof ZodError) {
36
30
  const firstIssue = error.issues[0];
37
31
  const message = firstIssue
38
32
  ? `${firstIssue.path.join('.')}: ${firstIssue.message}`
@@ -52,7 +46,7 @@ function validate(data, schema) {
52
46
  * const filter = result.value;
53
47
  * ```
54
48
  */
55
- function validateQuery(req, schema) {
49
+ export function validateQuery(req, schema) {
56
50
  return validate(req.query, schema);
57
51
  }
58
52
  /**
@@ -65,13 +59,13 @@ function validateQuery(req, schema) {
65
59
  * const data = result.value;
66
60
  * ```
67
61
  */
68
- function validateBody(req, schema) {
62
+ export function validateBody(req, schema) {
69
63
  return validate(req.body, schema);
70
64
  }
71
65
  /**
72
66
  * Validate request path parameters with a Zod schema.
73
67
  */
74
- function validateParams(req, schema) {
68
+ export function validateParams(req, schema) {
75
69
  return validate(req.params, schema);
76
70
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7O0FBZ0N0Qyw0QkFnQkM7QUFZRCxzQ0FFQztBQVlELG9DQUVDO0FBS0Qsd0NBRUM7QUFoRkQsNkJBQTBDO0FBUzFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsU0FBZ0IsUUFBUSxDQUN0QixJQUFhLEVBQ2IsTUFBb0I7SUFFcEIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsVUFBVTtnQkFDeEIsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDdkQsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGFBQWEsQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDakUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFJLEdBQVksRUFBRSxNQUFvQjtJQUNoRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDbEUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IFpvZFNjaGVtYSwgWm9kRXJyb3IgfSBmcm9tICd6b2QnO1xuXG4vKipcbiAqIFJlc3VsdCB0eXBlIGZvciB2YWxpZGF0aW9uIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdDxUPiA9XG4gIHwgeyBvazogdHJ1ZTsgdmFsdWU6IFQgfVxuICB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyB6b2RFcnJvcj86IFpvZEVycm9yIH07XG5cbi8qKlxuICogVmFsaWRhdGUgYXJiaXRyYXJ5IGRhdGEgYWdhaW5zdCBhIFpvZCBzY2hlbWEuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEV4cHJlc3Mtc3BlY2lmaWMgaGVscGVyc1xuICogKGB2YWxpZGF0ZUJvZHlgLCBgdmFsaWRhdGVRdWVyeWAsIGB2YWxpZGF0ZVBhcmFtc2ApLiBJdCBjYW4gYWxzbyBiZSBjYWxsZWRcbiAqIGRpcmVjdGx5IHdoZW4gdmFsaWRhdGluZyBkYXRhIHRoYXQgZG9lc24ndCBjb21lIGZyb20gYSByZXF1ZXN0IG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBzY2hlbWEgLSBab2Qgc2NoZW1hIGZvciB2YWxpZGF0aW9uXG4gKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdCB3aXRoIHBhcnNlZCBkYXRhIG9yIGVycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlKHNvbWVEYXRhLCBNeVNjaGVtYSk7XG4gKiBpZiAoIXJlc3VsdC5vaykge1xuICogICByZXR1cm4gc2VuZEJhZFJlcXVlc3QocmVzLCByZXN1bHQuZXJyb3IpO1xuICogfVxuICogY29uc3QgcGFyc2VkID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZTxUPihcbiAgZGF0YTogdW5rbm93bixcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4pOiBWYWxpZGF0aW9uUmVzdWx0PFQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWU6IHNjaGVtYS5wYXJzZShkYXRhKSB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaXJzdElzc3VlID0gZXJyb3IuaXNzdWVzWzBdO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGZpcnN0SXNzdWVcbiAgICAgICAgPyBgJHtmaXJzdElzc3VlLnBhdGguam9pbignLicpfTogJHtmaXJzdElzc3VlLm1lc3NhZ2V9YFxuICAgICAgICA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiBtZXNzYWdlLCB6b2RFcnJvcjogZXJyb3IgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ1ZhbGlkYXRpb24gZmFpbGVkJyB9O1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgcmVxdWVzdCBxdWVyeSBwYXJhbWV0ZXJzIHdpdGggYSBab2Qgc2NoZW1hLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXJ5KHJlcSwgUGlwZWxpbmVGaWx0ZXJTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBmaWx0ZXIgPSByZXN1bHQudmFsdWU7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVlcnk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLnF1ZXJ5LCBzY2hlbWEpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHJlcXVlc3QgYm9keSB3aXRoIGEgWm9kIHNjaGVtYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVCb2R5KHJlcSwgUGlwZWxpbmVDcmVhdGVTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBkYXRhID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUJvZHk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLmJvZHksIHNjaGVtYSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgcmVxdWVzdCBwYXRoIHBhcmFtZXRlcnMgd2l0aCBhIFpvZCBzY2hlbWEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhcmFtczxUPihyZXE6IFJlcXVlc3QsIHNjaGVtYTogWm9kU2NoZW1hPFQ+KTogVmFsaWRhdGlvblJlc3VsdDxUPiB7XG4gIHJldHVybiB2YWxpZGF0ZShyZXEucGFyYW1zLCBzY2hlbWEpO1xufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUd0QyxPQUFPLEVBQUUsUUFBUSxFQUFrQixNQUFNLEtBQUssQ0FBQztBQVMvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLElBQWEsRUFDYixNQUFvQjtJQUVwQixJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxVQUFVO2dCQUN4QixDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUN2RCxDQUFDLENBQUMsbUJBQW1CLENBQUM7WUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDakUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDaEUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFJLEdBQVksRUFBRSxNQUFvQjtJQUNsRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBab2RFcnJvciwgdHlwZSBab2RTY2hlbWEgfSBmcm9tICd6b2QnO1xuXG4vKipcbiAqIFJlc3VsdCB0eXBlIGZvciB2YWxpZGF0aW9uIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdDxUPiA9XG4gIHwgeyBvazogdHJ1ZTsgdmFsdWU6IFQgfVxuICB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyB6b2RFcnJvcj86IFpvZEVycm9yIH07XG5cbi8qKlxuICogVmFsaWRhdGUgYXJiaXRyYXJ5IGRhdGEgYWdhaW5zdCBhIFpvZCBzY2hlbWEuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEV4cHJlc3Mtc3BlY2lmaWMgaGVscGVyc1xuICogKGB2YWxpZGF0ZUJvZHlgLCBgdmFsaWRhdGVRdWVyeWAsIGB2YWxpZGF0ZVBhcmFtc2ApLiBJdCBjYW4gYWxzbyBiZSBjYWxsZWRcbiAqIGRpcmVjdGx5IHdoZW4gdmFsaWRhdGluZyBkYXRhIHRoYXQgZG9lc24ndCBjb21lIGZyb20gYSByZXF1ZXN0IG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBzY2hlbWEgLSBab2Qgc2NoZW1hIGZvciB2YWxpZGF0aW9uXG4gKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdCB3aXRoIHBhcnNlZCBkYXRhIG9yIGVycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlKHNvbWVEYXRhLCBNeVNjaGVtYSk7XG4gKiBpZiAoIXJlc3VsdC5vaykge1xuICogICByZXR1cm4gc2VuZEJhZFJlcXVlc3QocmVzLCByZXN1bHQuZXJyb3IpO1xuICogfVxuICogY29uc3QgcGFyc2VkID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZTxUPihcbiAgZGF0YTogdW5rbm93bixcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4pOiBWYWxpZGF0aW9uUmVzdWx0PFQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWU6IHNjaGVtYS5wYXJzZShkYXRhKSB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaXJzdElzc3VlID0gZXJyb3IuaXNzdWVzWzBdO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGZpcnN0SXNzdWVcbiAgICAgICAgPyBgJHtmaXJzdElzc3VlLnBhdGguam9pbignLicpfTogJHtmaXJzdElzc3VlLm1lc3NhZ2V9YFxuICAgICAgICA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiBtZXNzYWdlLCB6b2RFcnJvcjogZXJyb3IgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ1ZhbGlkYXRpb24gZmFpbGVkJyB9O1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgcmVxdWVzdCBxdWVyeSBwYXJhbWV0ZXJzIHdpdGggYSBab2Qgc2NoZW1hLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXJ5KHJlcSwgUGlwZWxpbmVGaWx0ZXJTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBmaWx0ZXIgPSByZXN1bHQudmFsdWU7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVlcnk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLnF1ZXJ5LCBzY2hlbWEpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHJlcXVlc3QgYm9keSB3aXRoIGEgWm9kIHNjaGVtYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVCb2R5KHJlcSwgUGlwZWxpbmVDcmVhdGVTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBkYXRhID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUJvZHk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLmJvZHksIHNjaGVtYSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgcmVxdWVzdCBwYXRoIHBhcmFtZXRlcnMgd2l0aCBhIFpvZCBzY2hlbWEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBhcmFtczxUPihyZXE6IFJlcXVlc3QsIHNjaGVtYTogWm9kU2NoZW1hPFQ+KTogVmFsaWRhdGlvblJlc3VsdDxUPiB7XG4gIHJldHVybiB2YWxpZGF0ZShyZXEucGFyYW1zLCBzY2hlbWEpO1xufVxuIl19