@inkeep/agents-core 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { user, session, account, organization, member, invitation, verification } from '../chunk-NOPEANIU.js';
2
+ import { external_exports } from '../chunk-OUXC23J7.js';
2
3
  import { createSelectSchema, createInsertSchema } from 'drizzle-zod';
3
- import { z } from 'zod';
4
4
 
5
5
  var UserSelectSchema = createSelectSchema(user);
6
6
  var UserInsertSchema = createInsertSchema(user);
@@ -16,24 +16,24 @@ var InvitationSelectSchema = createSelectSchema(invitation);
16
16
  var InvitationInsertSchema = createInsertSchema(invitation);
17
17
  var VerificationSelectSchema = createSelectSchema(verification);
18
18
  var VerificationInsertSchema = createInsertSchema(verification);
19
- var UserOrganizationSchema = z.object({
20
- id: z.string(),
21
- userId: z.string(),
22
- organizationId: z.string(),
23
- role: z.string(),
24
- createdAt: z.union([z.string(), z.date()]).transform((val) => val instanceof Date ? val.toISOString() : val),
25
- organizationName: z.string().nullable(),
26
- organizationSlug: z.string().nullable()
19
+ var UserOrganizationSchema = external_exports.object({
20
+ id: external_exports.string(),
21
+ userId: external_exports.string(),
22
+ organizationId: external_exports.string(),
23
+ role: external_exports.string(),
24
+ createdAt: external_exports.union([external_exports.string(), external_exports.date()]).transform((val) => val instanceof Date ? val.toISOString() : val),
25
+ organizationName: external_exports.string().nullable(),
26
+ organizationSlug: external_exports.string().nullable()
27
27
  });
28
- var UserOrganizationsResponseSchema = z.array(UserOrganizationSchema);
29
- var AddUserToOrganizationRequestSchema = z.object({
30
- organizationId: z.string(),
31
- role: z.string().default("member")
28
+ var UserOrganizationsResponseSchema = external_exports.array(UserOrganizationSchema);
29
+ var AddUserToOrganizationRequestSchema = external_exports.object({
30
+ organizationId: external_exports.string(),
31
+ role: external_exports.string().default("member")
32
32
  });
33
- var AddUserToOrganizationResponseSchema = z.object({
34
- organizationId: z.string(),
35
- role: z.string(),
36
- createdAt: z.string()
33
+ var AddUserToOrganizationResponseSchema = external_exports.object({
34
+ organizationId: external_exports.string(),
35
+ role: external_exports.string(),
36
+ createdAt: external_exports.string()
37
37
  });
38
38
 
39
39
  export { AccountInsertSchema, AccountSelectSchema, AddUserToOrganizationRequestSchema, AddUserToOrganizationResponseSchema, InvitationInsertSchema, InvitationSelectSchema, MemberInsertSchema, MemberSelectSchema, OrganizationInsertSchema, OrganizationSelectSchema, SessionInsertSchema, SessionSelectSchema, UserInsertSchema, UserOrganizationSchema, UserOrganizationsResponseSchema, UserSelectSchema, VerificationInsertSchema, VerificationSelectSchema };
@@ -2,14 +2,15 @@ import * as better_auth_plugins from 'better-auth/plugins';
2
2
  import * as _better_auth_sso from '@better-auth/sso';
3
3
  import * as zod from 'zod';
4
4
  import * as better_auth from 'better-auth';
5
+ import { BetterAuthAdvancedOptions } from 'better-auth';
5
6
  import { GoogleOptions } from 'better-auth/social-providers';
6
- import { D as DatabaseClient } from '../client-HrEgt7wv.js';
7
+ import { D as DatabaseClient } from '../client-CnpNkGsH.js';
7
8
  import 'drizzle-orm/node-postgres';
8
9
  import 'drizzle-orm/pglite';
9
- import '../schema-CoC3tYFX.js';
10
+ import '../schema-Cgkp_geg.js';
10
11
  import 'drizzle-orm';
11
12
  import 'drizzle-orm/pg-core';
12
- import '../utility-C4QAannk.js';
13
+ import '../utility-C_tTZ7-k.js';
13
14
  import 'drizzle-zod';
14
15
  import '@hono/zod-openapi';
15
16
  import './auth-schema.js';
@@ -68,12 +69,14 @@ interface BetterAuthConfig {
68
69
  socialProviders?: {
69
70
  google?: GoogleOptions;
70
71
  };
72
+ advanced?: BetterAuthAdvancedOptions;
71
73
  }
72
74
  interface UserAuthConfig {
73
75
  ssoProviders?: SSOProviderConfig[];
74
76
  socialProviders?: {
75
77
  google?: GoogleOptions;
76
78
  };
79
+ advanced?: BetterAuthAdvancedOptions;
77
80
  }
78
81
  declare function createAuth(config: BetterAuthConfig): better_auth.Auth<{
79
82
  baseURL: string;
@@ -94,9 +97,31 @@ declare function createAuth(config: BetterAuthConfig): better_auth.Auth<{
94
97
  updateAge: number;
95
98
  };
96
99
  advanced: {
100
+ ipAddress?: {
101
+ ipAddressHeaders?: string[];
102
+ disableIpTracking?: boolean;
103
+ } | undefined;
104
+ useSecureCookies?: boolean | undefined;
105
+ disableCSRFCheck?: boolean | undefined;
106
+ disableOriginCheck?: boolean | undefined;
97
107
  crossSubDomainCookies: {
98
- enabled: true;
108
+ enabled: boolean;
109
+ additionalCookies?: string[];
110
+ domain?: string;
99
111
  };
112
+ cookies?: {
113
+ [key: string]: {
114
+ name?: string;
115
+ attributes?: better_auth.CookieOptions;
116
+ };
117
+ } | undefined;
118
+ defaultCookieAttributes?: better_auth.CookieOptions | undefined;
119
+ cookiePrefix?: string | undefined;
120
+ database?: {
121
+ defaultFindManyLimit?: number;
122
+ useNumberId?: boolean;
123
+ generateId?: better_auth.GenerateIdFn | false | "serial" | "uuid";
124
+ } | undefined;
100
125
  };
101
126
  trustedOrigins: string[];
102
127
  plugins: [{
package/dist/auth/auth.js CHANGED
@@ -1,12 +1,36 @@
1
- import { generateId } from '../chunk-4OISWRFK.js';
1
+ import { generateId } from '../chunk-ICZLNCX7.js';
2
2
  import { ssoProvider } from '../chunk-NOPEANIU.js';
3
3
  import { ownerRole, adminRole, memberRole, ac } from '../chunk-VMSYBWFH.js';
4
4
  import { sso } from '@better-auth/sso';
5
- import { betterAuth } from 'better-auth';
5
+ import { betterAuth, env } from 'better-auth';
6
6
  import { drizzleAdapter } from 'better-auth/adapters/drizzle';
7
7
  import { organization } from 'better-auth/plugins';
8
8
  import { eq } from 'drizzle-orm';
9
9
 
10
+ function extractCookieDomain(baseURL) {
11
+ try {
12
+ const url = new URL(baseURL);
13
+ const hostname = url.hostname;
14
+ if (hostname === "localhost" || hostname.match(/^\d+\.\d+\.\d+\.\d+$/)) {
15
+ return void 0;
16
+ }
17
+ const parts = hostname.split(".");
18
+ if (parts.length < 2) {
19
+ return void 0;
20
+ }
21
+ let domainParts;
22
+ if (parts.length === 3) {
23
+ domainParts = parts;
24
+ } else if (parts.length > 3) {
25
+ domainParts = parts.slice(1);
26
+ } else {
27
+ domainParts = parts;
28
+ }
29
+ return `.${domainParts.join(".")}`;
30
+ } catch {
31
+ return void 0;
32
+ }
33
+ }
10
34
  async function registerSSOProvider(dbClient, provider) {
11
35
  try {
12
36
  const existing = await dbClient.select().from(ssoProvider).where(eq(ssoProvider.providerId, provider.providerId)).limit(1);
@@ -31,6 +55,7 @@ async function registerSSOProvider(dbClient, provider) {
31
55
  }
32
56
  }
33
57
  function createAuth(config) {
58
+ const cookieDomain = extractCookieDomain(config.baseURL);
34
59
  const auth2 = betterAuth({
35
60
  baseURL: config.baseURL,
36
61
  secret: config.secret,
@@ -53,10 +78,17 @@ function createAuth(config) {
53
78
  },
54
79
  advanced: {
55
80
  crossSubDomainCookies: {
56
- enabled: true
57
- }
81
+ enabled: true,
82
+ ...cookieDomain && { domain: cookieDomain }
83
+ },
84
+ ...config.advanced
58
85
  },
59
- trustedOrigins: ["http://localhost:3000", "http://localhost:3002", config.baseURL],
86
+ trustedOrigins: [
87
+ "http://localhost:3000",
88
+ "http://localhost:3002",
89
+ env.INKEEP_AGENTS_MANAGE_UI_URL,
90
+ env.INKEEP_AGENTS_MANAGE_API_URL
91
+ ],
60
92
  plugins: [
61
93
  sso(),
62
94
  organization({
@@ -1,5 +1,5 @@
1
- import { AgentWithinContextOfProjectSchema, resourceIdSchema, MAX_ID_LENGTH } from './chunk-ZCEKN54E.js';
2
- import { z } from 'zod';
1
+ import { AgentWithinContextOfProjectSchema, resourceIdSchema, MAX_ID_LENGTH } from './chunk-VQXQOGJU.js';
2
+ import { external_exports } from './chunk-OUXC23J7.js';
3
3
 
4
4
  // src/validation/cycleDetection.ts
5
5
  function detectDelegationCycles(agentData) {
@@ -181,42 +181,44 @@ function validateAgentStructure(agentData, projectResources) {
181
181
  }
182
182
  validateAgentRelationships(agentData);
183
183
  }
184
- var TransferDataSchema = z.object({
185
- fromSubAgent: z.string().describe("ID of the sub-agent transferring control"),
186
- targetSubAgent: z.string().describe("ID of the sub-agent receiving control"),
187
- reason: z.string().optional().describe("Reason for the transfer"),
188
- context: z.any().optional().describe("Additional context data")
184
+
185
+ // src/validation/event-schemas.ts
186
+ var TransferDataSchema = external_exports.object({
187
+ fromSubAgent: external_exports.string().describe("ID of the sub-agent transferring control"),
188
+ targetSubAgent: external_exports.string().describe("ID of the sub-agent receiving control"),
189
+ reason: external_exports.string().optional().describe("Reason for the transfer"),
190
+ context: external_exports.any().optional().describe("Additional context data")
189
191
  });
190
- var DelegationSentDataSchema = z.object({
191
- delegationId: z.string().describe("Unique identifier for this delegation"),
192
- fromSubAgent: z.string().describe("ID of the delegating sub-agent"),
193
- targetSubAgent: z.string().describe("ID of the sub-agent receiving the delegation"),
194
- taskDescription: z.string().describe("Description of the delegated task"),
195
- context: z.any().optional().describe("Additional context data")
192
+ var DelegationSentDataSchema = external_exports.object({
193
+ delegationId: external_exports.string().describe("Unique identifier for this delegation"),
194
+ fromSubAgent: external_exports.string().describe("ID of the delegating sub-agent"),
195
+ targetSubAgent: external_exports.string().describe("ID of the sub-agent receiving the delegation"),
196
+ taskDescription: external_exports.string().describe("Description of the delegated task"),
197
+ context: external_exports.any().optional().describe("Additional context data")
196
198
  });
197
- var DelegationReturnedDataSchema = z.object({
198
- delegationId: z.string().describe("Unique identifier matching the original delegation"),
199
- fromSubAgent: z.string().describe("ID of the sub-agent that completed the task"),
200
- targetSubAgent: z.string().describe("ID of the sub-agent receiving the result"),
201
- result: z.any().optional().describe("Result data from the delegated task")
199
+ var DelegationReturnedDataSchema = external_exports.object({
200
+ delegationId: external_exports.string().describe("Unique identifier matching the original delegation"),
201
+ fromSubAgent: external_exports.string().describe("ID of the sub-agent that completed the task"),
202
+ targetSubAgent: external_exports.string().describe("ID of the sub-agent receiving the result"),
203
+ result: external_exports.any().optional().describe("Result data from the delegated task")
202
204
  });
203
- var DataOperationDetailsSchema = z.object({
204
- timestamp: z.number().describe("Unix timestamp in milliseconds"),
205
- subAgentId: z.string().describe("ID of the sub-agent that generated this data"),
206
- data: z.any().describe("The actual data payload")
205
+ var DataOperationDetailsSchema = external_exports.object({
206
+ timestamp: external_exports.number().describe("Unix timestamp in milliseconds"),
207
+ subAgentId: external_exports.string().describe("ID of the sub-agent that generated this data"),
208
+ data: external_exports.any().describe("The actual data payload")
207
209
  });
208
- var DataOperationEventSchema = z.object({
209
- type: z.string().describe("Event type identifier"),
210
- label: z.string().describe("Human-readable label for the event"),
210
+ var DataOperationEventSchema = external_exports.object({
211
+ type: external_exports.string().describe("Event type identifier"),
212
+ label: external_exports.string().describe("Human-readable label for the event"),
211
213
  details: DataOperationDetailsSchema
212
214
  });
213
- var A2AMessageMetadataSchema = z.object({
214
- fromSubAgentId: z.string().optional().describe("ID of the sending sub-agent"),
215
- toSubAgentId: z.string().optional().describe("ID of the receiving sub-agent"),
216
- fromExternalAgentId: z.string().optional().describe("ID of the sending external agent"),
217
- toExternalAgentId: z.string().optional().describe("ID of the receiving external agent"),
218
- taskId: z.string().optional().describe("Associated task ID"),
219
- a2aTaskId: z.string().optional().describe("A2A-specific task ID")
215
+ var A2AMessageMetadataSchema = external_exports.object({
216
+ fromSubAgentId: external_exports.string().optional().describe("ID of the sending sub-agent"),
217
+ toSubAgentId: external_exports.string().optional().describe("ID of the receiving sub-agent"),
218
+ fromExternalAgentId: external_exports.string().optional().describe("ID of the sending external agent"),
219
+ toExternalAgentId: external_exports.string().optional().describe("ID of the receiving external agent"),
220
+ taskId: external_exports.string().optional().describe("Associated task ID"),
221
+ a2aTaskId: external_exports.string().optional().describe("A2A-specific task ID")
220
222
  });
221
223
 
222
224
  // src/validation/id-validation.ts
@@ -339,48 +341,50 @@ function validateRender(render) {
339
341
  errors
340
342
  };
341
343
  }
342
- var TextStartEventSchema = z.object({
343
- type: z.literal("text-start"),
344
- id: z.string()
344
+
345
+ // src/validation/stream-event-schemas.ts
346
+ var TextStartEventSchema = external_exports.object({
347
+ type: external_exports.literal("text-start"),
348
+ id: external_exports.string()
345
349
  });
346
- var TextDeltaEventSchema = z.object({
347
- type: z.literal("text-delta"),
348
- id: z.string(),
349
- delta: z.string()
350
+ var TextDeltaEventSchema = external_exports.object({
351
+ type: external_exports.literal("text-delta"),
352
+ id: external_exports.string(),
353
+ delta: external_exports.string()
350
354
  });
351
- var TextEndEventSchema = z.object({
352
- type: z.literal("text-end"),
353
- id: z.string()
355
+ var TextEndEventSchema = external_exports.object({
356
+ type: external_exports.literal("text-end"),
357
+ id: external_exports.string()
354
358
  });
355
- var DataComponentStreamEventSchema = z.object({
356
- type: z.literal("data-component"),
357
- id: z.string(),
358
- data: z.any()
359
+ var DataComponentStreamEventSchema = external_exports.object({
360
+ type: external_exports.literal("data-component"),
361
+ id: external_exports.string(),
362
+ data: external_exports.any()
359
363
  });
360
- var DataOperationStreamEventSchema = z.object({
361
- type: z.literal("data-operation"),
362
- data: z.any()
364
+ var DataOperationStreamEventSchema = external_exports.object({
365
+ type: external_exports.literal("data-operation"),
366
+ data: external_exports.any()
363
367
  // Contains OperationEvent types (AgentInitializingEvent, CompletionEvent, etc.)
364
368
  });
365
- var DataSummaryStreamEventSchema = z.object({
366
- type: z.literal("data-summary"),
367
- data: z.any()
369
+ var DataSummaryStreamEventSchema = external_exports.object({
370
+ type: external_exports.literal("data-summary"),
371
+ data: external_exports.any()
368
372
  // Contains SummaryEvent from entities.ts
369
373
  });
370
- var StreamErrorEventSchema = z.object({
371
- type: z.literal("error"),
372
- error: z.string()
374
+ var StreamErrorEventSchema = external_exports.object({
375
+ type: external_exports.literal("error"),
376
+ error: external_exports.string()
373
377
  });
374
- var StreamFinishEventSchema = z.object({
375
- type: z.literal("finish"),
376
- finishReason: z.string().optional(),
377
- usage: z.object({
378
- promptTokens: z.number().optional(),
379
- completionTokens: z.number().optional(),
380
- totalTokens: z.number().optional()
378
+ var StreamFinishEventSchema = external_exports.object({
379
+ type: external_exports.literal("finish"),
380
+ finishReason: external_exports.string().optional(),
381
+ usage: external_exports.object({
382
+ promptTokens: external_exports.number().optional(),
383
+ completionTokens: external_exports.number().optional(),
384
+ totalTokens: external_exports.number().optional()
381
385
  }).optional()
382
386
  });
383
- var StreamEventSchema = z.discriminatedUnion("type", [
387
+ var StreamEventSchema = external_exports.discriminatedUnion("type", [
384
388
  TextStartEventSchema,
385
389
  TextDeltaEventSchema,
386
390
  TextEndEventSchema,
@@ -0,0 +1,320 @@
1
+ import { external_exports } from './chunk-OUXC23J7.js';
2
+
3
+ // ../../node_modules/.pnpm/@asteasolutions+zod-to-openapi@8.1.0_zod@4.1.12/node_modules/@asteasolutions/zod-to-openapi/dist/index.mjs
4
+ function __rest(s, e) {
5
+ var t = {};
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
7
+ t[p] = s[p];
8
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
9
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
10
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
11
+ t[p[i]] = s[p[i]];
12
+ }
13
+ return t;
14
+ }
15
+ var ZodTypeKeys = {
16
+ ZodAny: "any",
17
+ ZodArray: "array",
18
+ ZodBigInt: "bigint",
19
+ ZodBoolean: "boolean",
20
+ ZodDefault: "default",
21
+ ZodTransform: "transform",
22
+ ZodEnum: "enum",
23
+ ZodIntersection: "intersection",
24
+ ZodLiteral: "literal",
25
+ ZodNever: "never",
26
+ ZodNull: "null",
27
+ ZodNullable: "nullable",
28
+ ZodNumber: "number",
29
+ ZodNonOptional: "nonoptional",
30
+ ZodObject: "object",
31
+ ZodOptional: "optional",
32
+ ZodPipe: "pipe",
33
+ ZodReadonly: "readonly",
34
+ ZodRecord: "record",
35
+ ZodString: "string",
36
+ ZodTuple: "tuple",
37
+ ZodType: "type",
38
+ ZodUnion: "union",
39
+ ZodDiscriminatedUnion: "union",
40
+ ZodUnknown: "unknown",
41
+ ZodVoid: "void",
42
+ ZodDate: "date"
43
+ };
44
+ function isZodType(schema, typeNames) {
45
+ const typeNamesArray = Array.isArray(typeNames) ? typeNames : [typeNames];
46
+ return typeNamesArray.some((typeName) => {
47
+ var _a;
48
+ const typeNameMatch = ((_a = schema === null || schema === void 0 ? void 0 : schema.def) === null || _a === void 0 ? void 0 : _a.type) === ZodTypeKeys[typeName];
49
+ if (typeName === "ZodDiscriminatedUnion") {
50
+ return typeNameMatch && "discriminator" in schema.def;
51
+ }
52
+ return typeNameMatch;
53
+ });
54
+ }
55
+ function isAnyZodType(schema) {
56
+ return "def" in schema;
57
+ }
58
+ var $ZodRegistry = class {
59
+ constructor() {
60
+ this._map = /* @__PURE__ */ new Map();
61
+ this._idmap = /* @__PURE__ */ new Map();
62
+ }
63
+ add(schema, ..._meta) {
64
+ const meta = _meta[0];
65
+ this._map.set(schema, meta);
66
+ if (meta && typeof meta === "object" && "id" in meta) {
67
+ if (this._idmap.has(meta.id)) {
68
+ throw new Error(`ID ${meta.id} already exists in the registry`);
69
+ }
70
+ this._idmap.set(meta.id, schema);
71
+ }
72
+ return this;
73
+ }
74
+ clear() {
75
+ this._map = /* @__PURE__ */ new Map();
76
+ this._idmap = /* @__PURE__ */ new Map();
77
+ return this;
78
+ }
79
+ remove(schema) {
80
+ const meta = this._map.get(schema);
81
+ if (meta && typeof meta === "object" && "id" in meta) {
82
+ this._idmap.delete(meta.id);
83
+ }
84
+ this._map.delete(schema);
85
+ return this;
86
+ }
87
+ get(schema) {
88
+ const p = schema._zod.parent;
89
+ if (p) {
90
+ const pm = { ...this.get(p) ?? {} };
91
+ delete pm.id;
92
+ return { ...pm, ...this._map.get(schema) };
93
+ }
94
+ return this._map.get(schema);
95
+ }
96
+ has(schema) {
97
+ return this._map.has(schema);
98
+ }
99
+ };
100
+ function registry() {
101
+ return new $ZodRegistry();
102
+ }
103
+ function isUndefined(value) {
104
+ return value === void 0;
105
+ }
106
+ function omit(object, keys) {
107
+ const result = {};
108
+ Object.entries(object).forEach(([key, value]) => {
109
+ if (!keys.some((keyToOmit) => keyToOmit === key)) {
110
+ result[key] = value;
111
+ }
112
+ });
113
+ return result;
114
+ }
115
+ function omitBy(object, predicate) {
116
+ const result = {};
117
+ Object.entries(object).forEach(([key, value]) => {
118
+ if (!predicate(value, key)) {
119
+ result[key] = value;
120
+ }
121
+ });
122
+ return result;
123
+ }
124
+ var zodToOpenAPIRegistry = registry();
125
+ var Metadata = class {
126
+ static collectMetadata(schema, metadata) {
127
+ const currentMetadata = this.getMetadataFromRegistry(schema);
128
+ const _internal = Object.assign(Object.assign({}, currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata._internal), metadata === null || metadata === void 0 ? void 0 : metadata._internal);
129
+ const param = Object.assign(Object.assign({}, currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param), metadata === null || metadata === void 0 ? void 0 : metadata.param);
130
+ const totalMetadata = Object.assign(Object.assign(Object.assign(Object.assign({}, Object.keys(_internal).length > 0 ? { _internal } : {}), currentMetadata), metadata), Object.keys(param).length > 0 ? { param } : {});
131
+ if (isZodType(schema, [
132
+ "ZodOptional",
133
+ "ZodNullable",
134
+ "ZodDefault",
135
+ "ZodReadonly",
136
+ "ZodNonOptional"
137
+ ]) && isAnyZodType(schema._zod.def.innerType)) {
138
+ return this.collectMetadata(schema._zod.def.innerType, totalMetadata);
139
+ }
140
+ if (isZodType(schema, "ZodPipe")) {
141
+ const inSchema = schema._zod.def.in;
142
+ const outSchema = schema._zod.def.out;
143
+ if (isZodType(inSchema, "ZodTransform") && isAnyZodType(outSchema)) {
144
+ return this.collectMetadata(outSchema, totalMetadata);
145
+ }
146
+ if (isAnyZodType(inSchema)) {
147
+ return this.collectMetadata(inSchema, totalMetadata);
148
+ }
149
+ }
150
+ return totalMetadata;
151
+ }
152
+ /**
153
+ * @deprecated Use one of `getOpenApiMetadata` or `getInternalMetadata` instead
154
+ */
155
+ static getMetadata(zodSchema) {
156
+ return this.collectMetadata(zodSchema);
157
+ }
158
+ static getOpenApiMetadata(zodSchema) {
159
+ const metadata = this.collectMetadata(zodSchema);
160
+ const _a = metadata !== null && metadata !== void 0 ? metadata : {}, rest = __rest(_a, ["_internal"]);
161
+ return rest;
162
+ }
163
+ static getInternalMetadata(zodSchema) {
164
+ var _a;
165
+ return (_a = this.collectMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a._internal;
166
+ }
167
+ static getParamMetadata(zodSchema) {
168
+ const metadata = this.collectMetadata(zodSchema);
169
+ return Object.assign(Object.assign({}, metadata), {
170
+ // A description provided from .openapi() should be taken with higher precedence
171
+ param: Object.assign(Object.assign({}, (metadata === null || metadata === void 0 ? void 0 : metadata.description) ? { description: metadata.description } : {}), metadata === null || metadata === void 0 ? void 0 : metadata.param)
172
+ });
173
+ }
174
+ /**
175
+ * A method that omits all custom keys added to the regular OpenAPI
176
+ * metadata properties
177
+ */
178
+ static buildSchemaMetadata(metadata) {
179
+ return omitBy(omit(metadata, ["param", "_internal"]), isUndefined);
180
+ }
181
+ static buildParameterMetadata(metadata) {
182
+ return omitBy(metadata, isUndefined);
183
+ }
184
+ static applySchemaMetadata(initialData, metadata) {
185
+ return omitBy(Object.assign(Object.assign({}, initialData), this.buildSchemaMetadata(metadata)), isUndefined);
186
+ }
187
+ static getRefId(zodSchema) {
188
+ var _a;
189
+ return (_a = this.getInternalMetadata(zodSchema)) === null || _a === void 0 ? void 0 : _a.refId;
190
+ }
191
+ static unwrapChained(schema) {
192
+ return this.unwrapUntil(schema);
193
+ }
194
+ static getDefaultValue(zodSchema) {
195
+ const unwrapped = this.unwrapUntil(zodSchema, "ZodDefault");
196
+ return unwrapped === null || unwrapped === void 0 ? void 0 : unwrapped._zod.def.defaultValue;
197
+ }
198
+ static unwrapUntil(schema, typeName) {
199
+ if (typeName && isZodType(schema, typeName)) {
200
+ return schema;
201
+ }
202
+ if (isZodType(schema, [
203
+ "ZodOptional",
204
+ "ZodNullable",
205
+ "ZodDefault",
206
+ "ZodReadonly",
207
+ "ZodNonOptional"
208
+ ]) && isAnyZodType(schema._zod.def.innerType)) {
209
+ return this.unwrapUntil(schema._zod.def.innerType, typeName);
210
+ }
211
+ if (isZodType(schema, "ZodPipe")) {
212
+ const inSchema = schema._zod.def.in;
213
+ const outSchema = schema._zod.def.out;
214
+ if (isZodType(inSchema, "ZodTransform") && isAnyZodType(outSchema)) {
215
+ return this.unwrapUntil(outSchema, typeName);
216
+ }
217
+ if (isAnyZodType(inSchema)) {
218
+ return this.unwrapUntil(inSchema, typeName);
219
+ }
220
+ }
221
+ return typeName ? void 0 : schema;
222
+ }
223
+ static getMetadataFromInternalRegistry(zodSchema) {
224
+ return zodToOpenAPIRegistry.get(zodSchema);
225
+ }
226
+ static getMetadataFromRegistry(zodSchema) {
227
+ const internal = this.getMetadataFromInternalRegistry(zodSchema);
228
+ const general = zodSchema.meta();
229
+ if (!internal) {
230
+ return general;
231
+ }
232
+ const { _internal } = internal, rest = __rest(internal, ["_internal"]);
233
+ const _a = general !== null && general !== void 0 ? general : {}, { id, title } = _a, restGeneral = __rest(_a, ["id", "title"]);
234
+ return Object.assign(Object.assign(Object.assign({ _internal: Object.assign(Object.assign({}, id ? { refId: id } : {}), _internal) }, rest), title ? { description: title } : {}), restGeneral);
235
+ }
236
+ static setMetadataInRegistry(zodSchema, metadata) {
237
+ zodToOpenAPIRegistry.add(zodSchema, metadata);
238
+ }
239
+ };
240
+ function preserveMetadataFromModifier(zodSchema, modifier) {
241
+ const zodModifier = zodSchema[modifier];
242
+ if (typeof zodModifier !== "function") {
243
+ return;
244
+ }
245
+ zodSchema[modifier] = function(...args) {
246
+ const result = zodModifier.apply(this, args);
247
+ const meta = Metadata.getMetadataFromRegistry(this);
248
+ if (meta) {
249
+ Metadata.setMetadataInRegistry(result, meta);
250
+ }
251
+ return result;
252
+ };
253
+ }
254
+ function extendZodWithOpenApi(zod) {
255
+ if (typeof zod.ZodType.prototype.openapi !== "undefined") {
256
+ return;
257
+ }
258
+ zod.ZodType.prototype.openapi = function(...args) {
259
+ const { refId, metadata, options } = getOpenApiConfiguration(...args);
260
+ const _a = metadata !== null && metadata !== void 0 ? metadata : {}, { param } = _a, restOfOpenApi = __rest(_a, ["param"]);
261
+ const allMetadata = Metadata.getMetadataFromRegistry(this);
262
+ const _b = allMetadata !== null && allMetadata !== void 0 ? allMetadata : {}, { _internal: internalMetadata } = _b, currentMetadata = __rest(_b, ["_internal"]);
263
+ const _internal = Object.assign(Object.assign(Object.assign({}, internalMetadata), options), refId ? { refId } : void 0);
264
+ const resultMetadata = Object.assign(Object.assign(Object.assign({}, currentMetadata), restOfOpenApi), (currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param) || param ? {
265
+ param: Object.assign(Object.assign({}, currentMetadata === null || currentMetadata === void 0 ? void 0 : currentMetadata.param), param)
266
+ } : void 0);
267
+ const result = new this.constructor(this._def);
268
+ Metadata.setMetadataInRegistry(result, Object.assign(Object.assign({}, Object.keys(_internal).length > 0 ? { _internal } : void 0), resultMetadata));
269
+ if (isZodType(result, "ZodObject")) {
270
+ const currentMetadata2 = Metadata.getMetadataFromRegistry(result);
271
+ const originalExtend = result.extend;
272
+ result.extend = function(...args2) {
273
+ const extendedResult = originalExtend.apply(result, args2);
274
+ const _a2 = currentMetadata2 !== null && currentMetadata2 !== void 0 ? currentMetadata2 : {}, { _internal: _internal2 } = _a2, rest = __rest(_a2, ["_internal"]);
275
+ Metadata.setMetadataInRegistry(extendedResult, {
276
+ _internal: {
277
+ extendedFrom: (_internal2 === null || _internal2 === void 0 ? void 0 : _internal2.refId) ? { refId: _internal2.refId, schema: result } : _internal2 === null || _internal2 === void 0 ? void 0 : _internal2.extendedFrom
278
+ }
279
+ });
280
+ return extendedResult.openapi(rest);
281
+ };
282
+ preserveMetadataFromModifier(result, "catchall");
283
+ }
284
+ preserveMetadataFromModifier(result, "optional");
285
+ preserveMetadataFromModifier(result, "nullable");
286
+ preserveMetadataFromModifier(result, "default");
287
+ preserveMetadataFromModifier(result, "transform");
288
+ preserveMetadataFromModifier(result, "refine");
289
+ preserveMetadataFromModifier(result, "length");
290
+ preserveMetadataFromModifier(result, "min");
291
+ preserveMetadataFromModifier(result, "max");
292
+ const originalMeta = result.meta;
293
+ result.meta = function(...args2) {
294
+ const result2 = originalMeta.apply(this, args2);
295
+ if (args2[0]) {
296
+ const meta = Metadata.getMetadataFromInternalRegistry(this);
297
+ if (meta) {
298
+ Metadata.setMetadataInRegistry(result2, Object.assign(Object.assign({}, meta), args2[0]));
299
+ }
300
+ }
301
+ return result2;
302
+ };
303
+ return result;
304
+ };
305
+ }
306
+ function getOpenApiConfiguration(refOrOpenapi, metadataOrOptions, options) {
307
+ if (typeof refOrOpenapi === "string") {
308
+ return {
309
+ refId: refOrOpenapi,
310
+ metadata: metadataOrOptions,
311
+ options
312
+ };
313
+ }
314
+ return {
315
+ refId: void 0,
316
+ metadata: refOrOpenapi,
317
+ options: metadataOrOptions
318
+ };
319
+ }
320
+ extendZodWithOpenApi(external_exports);