@scalar/types 0.1.14 → 0.1.15

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 +1 @@
1
- {"version":3,"file":"security-scheme.d.ts","sourceRoot":"","sources":["../../src/entities/security-scheme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security-scheme.d.ts","sourceRoot":"","sources":["../../src/entities/security-scheme.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,9 @@ const flowsCommon = z.object({
67
67
  /** Extension to save the client Id associated with an oauth flow */
68
68
  "x-scalar-client-id": z.string().optional().default(""),
69
69
  /** The auth token */
70
- "token": z.string().default("")
70
+ "token": z.string().default(""),
71
+ /** Additional query parameters for the OAuth authorization request. Example: { prompt: 'consent', audience: 'scalar' }. */
72
+ "x-scalar-security-query": z.record(z.string(), z.string()).optional()
71
73
  });
72
74
  const defaultRedirectUri = typeof window !== "undefined" ? window.location.origin + window.location.pathname : "";
73
75
  const pkceOptions = ["SHA-256", "plain", "no"];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/entities/security-scheme.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\n\nimport { type ENTITY_BRANDS, nanoidSchema } from '../utils/nanoid'\n\n// ---------------------------------------------------------------------------\n// COMMON PROPS FOR ALL SECURITY SCHEMES\n\n/** Some common properties used in all security schemes */\nconst commonProps = z.object({\n /* A description for security scheme. CommonMark syntax MAY be used for rich text representation. */\n description: z.string().optional(),\n})\n\nconst extendedSecuritySchema = z.object({\n uid: nanoidSchema.brand<ENTITY_BRANDS['SECURITY_SCHEME']>(),\n /** The name key that links a security requirement to a security object */\n nameKey: z.string().optional().default(''),\n})\n\n// ---------------------------------------------------------------------------\n// API KEY\n\nexport const securitySchemeApiKeyIn = ['query', 'header', 'cookie'] as const\n\nconst oasSecuritySchemeApiKey = commonProps.extend({\n type: z.literal('apiKey'),\n /** REQUIRED. The name of the header, query or cookie parameter to be used. */\n name: z.string().optional().default(''),\n /** REQUIRED. The location of the API key. Valid values are \"query\", \"header\" or \"cookie\". */\n in: z.enum(securitySchemeApiKeyIn).optional().default('header').catch('header'),\n})\n\nconst apiKeyValueSchema = z.object({\n value: z.string().default(''),\n})\n\nexport const securityApiKeySchema = oasSecuritySchemeApiKey.merge(extendedSecuritySchema).merge(apiKeyValueSchema)\nexport type SecuritySchemeApiKey = z.infer<typeof securityApiKeySchema>\n\n// ---------------------------------------------------------------------------\n// HTTP\n\nconst oasSecuritySchemeHttp = commonProps.extend({\n type: z.literal('http'),\n /**\n * REQUIRED. The name of the HTTP Authorization scheme to be used in the Authorization header as defined in\n * [RFC7235]. The values used SHOULD be registered in the IANA Authentication Scheme registry.\n */\n scheme: z\n .string()\n .toLowerCase()\n .pipe(z.enum(['basic', 'bearer']))\n .optional()\n .default('basic'),\n /**\n * A hint to the client to identify how the bearer token is formatted.\n * Bearer tokens are usually generated by an authorization server, so\n * this information is primarily for documentation purposes.\n */\n bearerFormat: z\n .union([z.literal('JWT'), z.string()])\n .optional()\n .default('JWT'),\n})\n\nconst httpValueSchema = z.object({\n username: z.string().default(''),\n password: z.string().default(''),\n token: z.string().default(''),\n})\n\nexport const securityHttpSchema = oasSecuritySchemeHttp.merge(extendedSecuritySchema).merge(httpValueSchema)\nexport type SecuritySchemaHttp = z.infer<typeof securityHttpSchema>\n\n// ---------------------------------------------------------------------------\n// OPENID CONNECT\nconst oasSecuritySchemeOpenId = commonProps.extend({\n type: z.literal('openIdConnect'),\n /**\n * REQUIRED. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the\n * form of a URL. The OpenID Connect standard requires the use of TLS.\n */\n openIdConnectUrl: z.string().optional().default(''),\n})\n\nexport const securityOpenIdSchema = oasSecuritySchemeOpenId.merge(extendedSecuritySchema)\nexport type SecuritySchemaOpenId = z.infer<typeof securityOpenIdSchema>\n\n// ---------------------------------------------------------------------------\n\n/**\n * REQUIRED. The authorization URL to be used for this flow. This MUST be in\n * the form of a URL. The OAuth2 standard requires the use of TLS.\n */\nconst authorizationUrl = z.string().default('')\n\n/**\n * REQUIRED. The token URL to be used for this flow. This MUST be in the\n * form of a URL. The OAuth2 standard requires the use of TLS.\n */\nconst tokenUrl = z.string().default('')\n\n/** Common properties used across all oauth2 flows */\nconst flowsCommon = z.object({\n /**\n * The URL to be used for obtaining refresh tokens. This MUST be in the form of a\n * URL. The OAuth2 standard requires the use of TLS.\n */\n 'refreshUrl': z.string().optional().default(''),\n /**\n * REQUIRED. The available scopes for the OAuth2 security scheme. A map\n * between the scope name and a short description for it. The map MAY be empty.\n */\n 'scopes': z.record(z.string(), z.string().optional().default('')).optional().default({}).catch({}),\n 'selectedScopes': z.array(z.string()).optional().default([]),\n /** Extension to save the client Id associated with an oauth flow */\n 'x-scalar-client-id': z.string().optional().default(''),\n /** The auth token */\n 'token': z.string().default(''),\n})\n\n/** Setup a default redirect uri if we can */\nconst defaultRedirectUri = typeof window !== 'undefined' ? window.location.origin + window.location.pathname : ''\n\n/** Options for the x-usePkce extension */\nexport const pkceOptions = ['SHA-256', 'plain', 'no'] as const\n\n/** Oauth2 security scheme */\nconst oasSecuritySchemeOauth2 = commonProps.extend({\n type: z.literal('oauth2'),\n /** The default scopes for the oauth flow */\n 'x-default-scopes': z.string().or(z.array(z.string())).optional(),\n /** REQUIRED. An object containing configuration information for the flow types supported. */\n flows: z\n .object({\n /** Configuration for the OAuth Implicit flow */\n implicit: flowsCommon.extend({\n 'type': z.literal('implicit').default('implicit'),\n authorizationUrl,\n 'x-scalar-redirect-uri': z.string().optional().default(defaultRedirectUri),\n }),\n /** Configuration for the OAuth Resource Owner Password flow */\n password: flowsCommon.extend({\n type: z.literal('password').default('password'),\n tokenUrl,\n clientSecret: z.string().default(''),\n username: z.string().default(''),\n password: z.string().default(''),\n }),\n /** Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0. */\n clientCredentials: flowsCommon.extend({\n type: z.literal('clientCredentials').default('clientCredentials'),\n tokenUrl,\n clientSecret: z.string().default(''),\n }),\n /** Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.*/\n authorizationCode: flowsCommon.extend({\n 'type': z.literal('authorizationCode').default('authorizationCode'),\n authorizationUrl,\n 'x-usePkce': z.enum(pkceOptions).optional().default('no'),\n 'x-scalar-redirect-uri': z.string().optional().default(defaultRedirectUri),\n tokenUrl,\n 'clientSecret': z.string().default(''),\n }),\n })\n .partial()\n .default({\n implicit: { type: 'implicit', authorizationUrl: 'http://localhost:8080' },\n }),\n})\n\nexport const securityOauthSchema = oasSecuritySchemeOauth2.merge(extendedSecuritySchema)\n\nexport type SecuritySchemeOauth2 = z.infer<typeof securityOauthSchema>\nexport type SecuritySchemeOauth2Payload = z.input<typeof securityOauthSchema>\nexport type Oauth2Flow = NonNullable<\n SecuritySchemeOauth2['flows']['authorizationCode' | 'clientCredentials' | 'implicit' | 'password']\n>\n/** Payload for the oauth 2 flows + extensions */\nexport type Oauth2FlowPayload = NonNullable<SecuritySchemeOauth2Payload['flows']>[\n | 'authorizationCode'\n | 'clientCredentials'\n | 'implicit'\n | 'password'] &\n Record<`x-${string}`, string>\n\n// ---------------------------------------------------------------------------\n// Final Types\n\n/**\n * Security Requirement\n * Lists the required security schemes to execute this operation OR the whole collection/spec.\n * The name used for each property MUST correspond to a security scheme declared in the Security\n * Schemes under the Components Object.\n *\n * The key (name) here will be matched to the key of the securityScheme for linking\n *\n * @see https://spec.openapis.org/oas/latest.html#security-requirement-object\n */\nexport const oasSecurityRequirementSchema = z.record(z.string(), z.array(z.string()).optional().default([]))\n\n/** OAS Compliant security schemes */\nexport const oasSecuritySchemeSchema = z.union([\n oasSecuritySchemeApiKey,\n oasSecuritySchemeHttp,\n oasSecuritySchemeOauth2,\n oasSecuritySchemeOpenId,\n])\n\n/** Extended security schemes for workspace usage */\nexport const securitySchemeSchema = z\n .discriminatedUnion('type', [securityApiKeySchema, securityHttpSchema, securityOpenIdSchema, securityOauthSchema])\n .transform((data) => {\n // Set selected scopes from x-default-scopes\n if (data.type === 'oauth2' && data['x-default-scopes']?.length) {\n const keys = Object.keys(data.flows) as Array<keyof typeof data.flows>\n keys.forEach((key) => {\n if (data.flows[key]?.selectedScopes && data['x-default-scopes']) {\n data.flows[key].selectedScopes = [data['x-default-scopes']].flat()\n }\n })\n }\n return data\n })\n\n/**\n * Security Scheme Object\n *\n * @see https://spec.openapis.org/oas/latest.html#security-scheme-object\n */\nexport type SecurityScheme = z.infer<typeof securitySchemeSchema>\nexport type SecuritySchemePayload = z.input<typeof securitySchemeSchema>\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { z } from 'zod'\n\nimport { type ENTITY_BRANDS, nanoidSchema } from '../utils/nanoid'\n\n// ---------------------------------------------------------------------------\n// COMMON PROPS FOR ALL SECURITY SCHEMES\n\n/** Some common properties used in all security schemes */\nconst commonProps = z.object({\n /* A description for security scheme. CommonMark syntax MAY be used for rich text representation. */\n description: z.string().optional(),\n})\n\nconst extendedSecuritySchema = z.object({\n uid: nanoidSchema.brand<ENTITY_BRANDS['SECURITY_SCHEME']>(),\n /** The name key that links a security requirement to a security object */\n nameKey: z.string().optional().default(''),\n})\n\n// ---------------------------------------------------------------------------\n// API KEY\n\nexport const securitySchemeApiKeyIn = ['query', 'header', 'cookie'] as const\n\nconst oasSecuritySchemeApiKey = commonProps.extend({\n type: z.literal('apiKey'),\n /** REQUIRED. The name of the header, query or cookie parameter to be used. */\n name: z.string().optional().default(''),\n /** REQUIRED. The location of the API key. Valid values are \"query\", \"header\" or \"cookie\". */\n in: z.enum(securitySchemeApiKeyIn).optional().default('header').catch('header'),\n})\n\nconst apiKeyValueSchema = z.object({\n value: z.string().default(''),\n})\n\nexport const securityApiKeySchema = oasSecuritySchemeApiKey.merge(extendedSecuritySchema).merge(apiKeyValueSchema)\nexport type SecuritySchemeApiKey = z.infer<typeof securityApiKeySchema>\n\n// ---------------------------------------------------------------------------\n// HTTP\n\nconst oasSecuritySchemeHttp = commonProps.extend({\n type: z.literal('http'),\n /**\n * REQUIRED. The name of the HTTP Authorization scheme to be used in the Authorization header as defined in\n * [RFC7235]. The values used SHOULD be registered in the IANA Authentication Scheme registry.\n */\n scheme: z\n .string()\n .toLowerCase()\n .pipe(z.enum(['basic', 'bearer']))\n .optional()\n .default('basic'),\n /**\n * A hint to the client to identify how the bearer token is formatted.\n * Bearer tokens are usually generated by an authorization server, so\n * this information is primarily for documentation purposes.\n */\n bearerFormat: z\n .union([z.literal('JWT'), z.string()])\n .optional()\n .default('JWT'),\n})\n\nconst httpValueSchema = z.object({\n username: z.string().default(''),\n password: z.string().default(''),\n token: z.string().default(''),\n})\n\nexport const securityHttpSchema = oasSecuritySchemeHttp.merge(extendedSecuritySchema).merge(httpValueSchema)\nexport type SecuritySchemaHttp = z.infer<typeof securityHttpSchema>\n\n// ---------------------------------------------------------------------------\n// OPENID CONNECT\nconst oasSecuritySchemeOpenId = commonProps.extend({\n type: z.literal('openIdConnect'),\n /**\n * REQUIRED. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the\n * form of a URL. The OpenID Connect standard requires the use of TLS.\n */\n openIdConnectUrl: z.string().optional().default(''),\n})\n\nexport const securityOpenIdSchema = oasSecuritySchemeOpenId.merge(extendedSecuritySchema)\nexport type SecuritySchemaOpenId = z.infer<typeof securityOpenIdSchema>\n\n// ---------------------------------------------------------------------------\n\n/**\n * REQUIRED. The authorization URL to be used for this flow. This MUST be in\n * the form of a URL. The OAuth2 standard requires the use of TLS.\n */\nconst authorizationUrl = z.string().default('')\n\n/**\n * REQUIRED. The token URL to be used for this flow. This MUST be in the\n * form of a URL. The OAuth2 standard requires the use of TLS.\n */\nconst tokenUrl = z.string().default('')\n\n/** Common properties used across all oauth2 flows */\nconst flowsCommon = z.object({\n /**\n * The URL to be used for obtaining refresh tokens. This MUST be in the form of a\n * URL. The OAuth2 standard requires the use of TLS.\n */\n 'refreshUrl': z.string().optional().default(''),\n /**\n * REQUIRED. The available scopes for the OAuth2 security scheme. A map\n * between the scope name and a short description for it. The map MAY be empty.\n */\n 'scopes': z.record(z.string(), z.string().optional().default('')).optional().default({}).catch({}),\n 'selectedScopes': z.array(z.string()).optional().default([]),\n /** Extension to save the client Id associated with an oauth flow */\n 'x-scalar-client-id': z.string().optional().default(''),\n /** The auth token */\n 'token': z.string().default(''),\n /** Additional query parameters for the OAuth authorization request. Example: { prompt: 'consent', audience: 'scalar' }. */\n 'x-scalar-security-query': z.record(z.string(), z.string()).optional(),\n})\n\n/** Setup a default redirect uri if we can */\nconst defaultRedirectUri = typeof window !== 'undefined' ? window.location.origin + window.location.pathname : ''\n\n/** Options for the x-usePkce extension */\nexport const pkceOptions = ['SHA-256', 'plain', 'no'] as const\n\n/** Oauth2 security scheme */\nconst oasSecuritySchemeOauth2 = commonProps.extend({\n type: z.literal('oauth2'),\n /** The default scopes for the oauth flow */\n 'x-default-scopes': z.string().or(z.array(z.string())).optional(),\n /** REQUIRED. An object containing configuration information for the flow types supported. */\n flows: z\n .object({\n /** Configuration for the OAuth Implicit flow */\n implicit: flowsCommon.extend({\n 'type': z.literal('implicit').default('implicit'),\n authorizationUrl,\n 'x-scalar-redirect-uri': z.string().optional().default(defaultRedirectUri),\n }),\n /** Configuration for the OAuth Resource Owner Password flow */\n password: flowsCommon.extend({\n type: z.literal('password').default('password'),\n tokenUrl,\n clientSecret: z.string().default(''),\n username: z.string().default(''),\n password: z.string().default(''),\n }),\n /** Configuration for the OAuth Client Credentials flow. Previously called application in OpenAPI 2.0. */\n clientCredentials: flowsCommon.extend({\n type: z.literal('clientCredentials').default('clientCredentials'),\n tokenUrl,\n clientSecret: z.string().default(''),\n }),\n /** Configuration for the OAuth Authorization Code flow. Previously called accessCode in OpenAPI 2.0.*/\n authorizationCode: flowsCommon.extend({\n 'type': z.literal('authorizationCode').default('authorizationCode'),\n authorizationUrl,\n 'x-usePkce': z.enum(pkceOptions).optional().default('no'),\n 'x-scalar-redirect-uri': z.string().optional().default(defaultRedirectUri),\n tokenUrl,\n 'clientSecret': z.string().default(''),\n }),\n })\n .partial()\n .default({\n implicit: { type: 'implicit', authorizationUrl: 'http://localhost:8080' },\n }),\n})\n\nexport const securityOauthSchema = oasSecuritySchemeOauth2.merge(extendedSecuritySchema)\n\nexport type SecuritySchemeOauth2 = z.infer<typeof securityOauthSchema>\nexport type SecuritySchemeOauth2Payload = z.input<typeof securityOauthSchema>\nexport type Oauth2Flow = NonNullable<\n SecuritySchemeOauth2['flows']['authorizationCode' | 'clientCredentials' | 'implicit' | 'password']\n>\n/** Payload for the oauth 2 flows + extensions */\nexport type Oauth2FlowPayload = NonNullable<SecuritySchemeOauth2Payload['flows']>[\n | 'authorizationCode'\n | 'clientCredentials'\n | 'implicit'\n | 'password'] &\n Record<`x-${string}`, string>\n\n// ---------------------------------------------------------------------------\n// Final Types\n\n/**\n * Security Requirement\n * Lists the required security schemes to execute this operation OR the whole collection/spec.\n * The name used for each property MUST correspond to a security scheme declared in the Security\n * Schemes under the Components Object.\n *\n * The key (name) here will be matched to the key of the securityScheme for linking\n *\n * @see https://spec.openapis.org/oas/latest.html#security-requirement-object\n */\nexport const oasSecurityRequirementSchema = z.record(z.string(), z.array(z.string()).optional().default([]))\n\n/** OAS Compliant security schemes */\nexport const oasSecuritySchemeSchema = z.union([\n oasSecuritySchemeApiKey,\n oasSecuritySchemeHttp,\n oasSecuritySchemeOauth2,\n oasSecuritySchemeOpenId,\n])\n\n/** Extended security schemes for workspace usage */\nexport const securitySchemeSchema = z\n .discriminatedUnion('type', [securityApiKeySchema, securityHttpSchema, securityOpenIdSchema, securityOauthSchema])\n .transform((data) => {\n // Set selected scopes from x-default-scopes\n if (data.type === 'oauth2' && data['x-default-scopes']?.length) {\n const keys = Object.keys(data.flows) as Array<keyof typeof data.flows>\n keys.forEach((key) => {\n if (data.flows[key]?.selectedScopes && data['x-default-scopes']) {\n data.flows[key].selectedScopes = [data['x-default-scopes']].flat()\n }\n })\n }\n return data\n })\n\n/**\n * Security Scheme Object\n *\n * @see https://spec.openapis.org/oas/latest.html#security-scheme-object\n */\nexport type SecurityScheme = z.infer<typeof securitySchemeSchema>\nexport type SecuritySchemePayload = z.input<typeof securitySchemeSchema>\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -173,7 +173,10 @@ describe("Security Schemas", () => {
173
173
  "write:api": "Write access"
174
174
  },
175
175
  clientSecret: "client-secret",
176
- token: "access-token-456"
176
+ token: "access-token-456",
177
+ "x-scalar-security-query": {
178
+ prompt: "consent"
179
+ }
177
180
  }
178
181
  }
179
182
  };
@@ -211,7 +214,11 @@ describe("Security Schemas", () => {
211
214
  username: "testuser",
212
215
  password: "testpass",
213
216
  clientSecret: "client-secret",
214
- token: "access-token-101"
217
+ token: "access-token-101",
218
+ "x-scalar-security-query": {
219
+ prompt: "consent",
220
+ audience: "scalar"
221
+ }
215
222
  }
216
223
  }
217
224
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/entities/security-scheme.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\nimport {\n oasSecurityRequirementSchema,\n pkceOptions,\n securityApiKeySchema,\n securityHttpSchema,\n securityOauthSchema,\n securityOpenIdSchema,\n securitySchemeSchema,\n} from './security-scheme'\n\ndescribe('Security Schemas', () => {\n describe('API Key Schema', () => {\n it('should validate a valid API key schema', () => {\n const apiKey = {\n type: 'apiKey',\n name: 'api_key',\n in: 'header',\n description: 'API Key Authentication',\n uid: 'apikey123',\n nameKey: 'x-api-key',\n value: 'test-api-key',\n }\n\n const result = securityApiKeySchema.safeParse(apiKey)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalApiKey = {\n type: 'apiKey',\n uid: 'apikey123',\n }\n\n const result = securityApiKeySchema.parse(minimalApiKey)\n expect(result).toEqual({\n type: 'apiKey',\n uid: 'apikey123',\n name: '',\n in: 'header',\n nameKey: '',\n value: '',\n })\n })\n })\n\n describe('HTTP Schema', () => {\n it('should validate a valid HTTP basic schema', () => {\n const httpBasic = {\n type: 'http',\n scheme: 'basic',\n description: 'Basic HTTP Authentication',\n uid: 'http123',\n username: 'user',\n password: 'pass',\n }\n\n const result = securityHttpSchema.safeParse(httpBasic)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid HTTP bearer schema', () => {\n const httpBearer = {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n description: 'Bearer Authentication',\n uid: 'http456',\n token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',\n }\n\n const result = securityHttpSchema.safeParse(httpBearer)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalHttp = {\n type: 'http',\n uid: 'http123',\n }\n\n const result = securityHttpSchema.parse(minimalHttp)\n expect(result).toEqual({\n type: 'http',\n uid: 'http123',\n scheme: 'basic',\n bearerFormat: 'JWT',\n nameKey: '',\n username: '',\n password: '',\n token: '',\n })\n })\n\n it('should reject invalid scheme values', () => {\n const invalidHttp = {\n type: 'http',\n scheme: 'digest',\n uid: 'http123',\n }\n\n const result = securityHttpSchema.safeParse(invalidHttp)\n expect(result.success).toBe(false)\n })\n })\n\n describe('OpenID Connect Schema', () => {\n it('should validate a valid OpenID schema', () => {\n const openId = {\n type: 'openIdConnect',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n description: 'OpenID Connect',\n uid: 'openid123',\n nameKey: 'openid',\n }\n\n const result = securityOpenIdSchema.safeParse(openId)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalOpenId = {\n type: 'openIdConnect',\n uid: 'openid123',\n }\n\n const result = securityOpenIdSchema.parse(minimalOpenId)\n expect(result).toEqual({\n type: 'openIdConnect',\n uid: 'openid123',\n openIdConnectUrl: '',\n nameKey: '',\n })\n })\n })\n\n describe('OAuth2 Schema', () => {\n it('should validate a valid OAuth2 implicit flow schema', () => {\n const oauth2Implicit = {\n type: 'oauth2',\n description: 'OAuth2 Implicit Flow',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: {\n 'read:api': 'Read access',\n 'write:api': 'Write access',\n },\n selectedScopes: ['read:api'],\n token: 'access-token-123',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Implicit)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 with missing scopes', () => {\n const oauth2Implicit = {\n type: 'oauth2',\n description: 'OAuth2 Implicit Flow',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: null,\n selectedScopes: ['read:api'],\n token: 'access-token-123',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Implicit)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 authorization code flow schema', () => {\n const oauth2AuthCode = {\n type: 'oauth2',\n description: 'OAuth2 Authorization Code Flow',\n uid: 'oauth456',\n flows: {\n authorizationCode: {\n type: 'authorizationCode',\n authorizationUrl: 'https://example.com/oauth/authorize',\n tokenUrl: 'https://example.com/oauth/token',\n 'x-usePkce': 'SHA-256',\n scopes: {\n 'read:api': 'Read access',\n 'write:api': 'Write access',\n },\n clientSecret: 'client-secret',\n token: 'access-token-456',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2AuthCode)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 client credentials flow schema', () => {\n const oauth2ClientCreds = {\n type: 'oauth2',\n description: 'OAuth2 Client Credentials Flow',\n uid: 'oauth789',\n flows: {\n clientCredentials: {\n type: 'clientCredentials',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n clientSecret: 'client-secret',\n token: 'access-token-789',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2ClientCreds)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 password flow schema', () => {\n const oauth2Password = {\n type: 'oauth2',\n description: 'OAuth2 Password Flow',\n uid: 'oauth101',\n flows: {\n password: {\n type: 'password',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n username: 'testuser',\n password: 'testpass',\n clientSecret: 'client-secret',\n token: 'access-token-101',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Password)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalOauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n }\n\n const result = securityOauthSchema.parse(minimalOauth2)\n expect(result.flows.implicit).toBeDefined()\n expect(result.flows.implicit?.authorizationUrl).toBe('http://localhost:8080')\n expect(result.flows.implicit?.scopes).toEqual({})\n expect(result.flows.implicit?.selectedScopes).toEqual([])\n expect(result.flows.implicit?.token).toBe('')\n expect(result.nameKey).toBe('')\n })\n\n it('should validate PKCE options', () => {\n expect(pkceOptions).toContain('SHA-256')\n expect(pkceOptions).toContain('plain')\n expect(pkceOptions).toContain('no')\n })\n\n it('should apply x-default-scopes', () => {\n const oauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n 'x-default-scopes': ['read:api', 'write:api'],\n }\n\n const result = securitySchemeSchema.parse(oauth2)\n if (result.type !== 'oauth2') {\n throw new Error('Expected oauth2 schema')\n }\n expect(result['x-default-scopes']).toEqual(['read:api', 'write:api'])\n expect(result.flows.implicit?.selectedScopes).toEqual(['read:api', 'write:api'])\n })\n })\n\n describe('Security Requirement Schema', () => {\n it('should validate a valid security requirement', () => {\n const securityRequirement = {\n 'api_key': [],\n 'oauth2': ['read:api', 'write:api'],\n }\n\n const result = oasSecurityRequirementSchema.safeParse(securityRequirement)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values for empty scopes', () => {\n const securityRequirement = {\n 'api_key': undefined,\n }\n\n const result = oasSecurityRequirementSchema.parse(securityRequirement)\n expect(result).toEqual({\n 'api_key': [],\n })\n })\n })\n\n describe('Combined Security Scheme', () => {\n it('should validate all security scheme types', () => {\n const apiKey = {\n type: 'apiKey',\n name: 'api_key',\n in: 'header',\n uid: 'apikey123',\n value: 'test-api-key',\n }\n\n const http = {\n type: 'http',\n scheme: 'bearer',\n uid: 'http123',\n token: 'bearer-token',\n }\n\n const openId = {\n type: 'openIdConnect',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n uid: 'openid123',\n }\n\n const oauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: {},\n token: '',\n },\n },\n }\n\n expect(securitySchemeSchema.safeParse(apiKey).success).toBe(true)\n expect(securitySchemeSchema.safeParse(http).success).toBe(true)\n expect(securitySchemeSchema.safeParse(openId).success).toBe(true)\n expect(securitySchemeSchema.safeParse(oauth2).success).toBe(true)\n })\n })\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { describe, expect, it } from 'vitest'\nimport {\n oasSecurityRequirementSchema,\n pkceOptions,\n securityApiKeySchema,\n securityHttpSchema,\n securityOauthSchema,\n securityOpenIdSchema,\n securitySchemeSchema,\n} from './security-scheme'\n\ndescribe('Security Schemas', () => {\n describe('API Key Schema', () => {\n it('should validate a valid API key schema', () => {\n const apiKey = {\n type: 'apiKey',\n name: 'api_key',\n in: 'header',\n description: 'API Key Authentication',\n uid: 'apikey123',\n nameKey: 'x-api-key',\n value: 'test-api-key',\n }\n\n const result = securityApiKeySchema.safeParse(apiKey)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalApiKey = {\n type: 'apiKey',\n uid: 'apikey123',\n }\n\n const result = securityApiKeySchema.parse(minimalApiKey)\n expect(result).toEqual({\n type: 'apiKey',\n uid: 'apikey123',\n name: '',\n in: 'header',\n nameKey: '',\n value: '',\n })\n })\n })\n\n describe('HTTP Schema', () => {\n it('should validate a valid HTTP basic schema', () => {\n const httpBasic = {\n type: 'http',\n scheme: 'basic',\n description: 'Basic HTTP Authentication',\n uid: 'http123',\n username: 'user',\n password: 'pass',\n }\n\n const result = securityHttpSchema.safeParse(httpBasic)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid HTTP bearer schema', () => {\n const httpBearer = {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n description: 'Bearer Authentication',\n uid: 'http456',\n token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',\n }\n\n const result = securityHttpSchema.safeParse(httpBearer)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalHttp = {\n type: 'http',\n uid: 'http123',\n }\n\n const result = securityHttpSchema.parse(minimalHttp)\n expect(result).toEqual({\n type: 'http',\n uid: 'http123',\n scheme: 'basic',\n bearerFormat: 'JWT',\n nameKey: '',\n username: '',\n password: '',\n token: '',\n })\n })\n\n it('should reject invalid scheme values', () => {\n const invalidHttp = {\n type: 'http',\n scheme: 'digest',\n uid: 'http123',\n }\n\n const result = securityHttpSchema.safeParse(invalidHttp)\n expect(result.success).toBe(false)\n })\n })\n\n describe('OpenID Connect Schema', () => {\n it('should validate a valid OpenID schema', () => {\n const openId = {\n type: 'openIdConnect',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n description: 'OpenID Connect',\n uid: 'openid123',\n nameKey: 'openid',\n }\n\n const result = securityOpenIdSchema.safeParse(openId)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalOpenId = {\n type: 'openIdConnect',\n uid: 'openid123',\n }\n\n const result = securityOpenIdSchema.parse(minimalOpenId)\n expect(result).toEqual({\n type: 'openIdConnect',\n uid: 'openid123',\n openIdConnectUrl: '',\n nameKey: '',\n })\n })\n })\n\n describe('OAuth2 Schema', () => {\n it('should validate a valid OAuth2 implicit flow schema', () => {\n const oauth2Implicit = {\n type: 'oauth2',\n description: 'OAuth2 Implicit Flow',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: {\n 'read:api': 'Read access',\n 'write:api': 'Write access',\n },\n selectedScopes: ['read:api'],\n token: 'access-token-123',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Implicit)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 with missing scopes', () => {\n const oauth2Implicit = {\n type: 'oauth2',\n description: 'OAuth2 Implicit Flow',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: null,\n selectedScopes: ['read:api'],\n token: 'access-token-123',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Implicit)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 authorization code flow schema', () => {\n const oauth2AuthCode = {\n type: 'oauth2',\n description: 'OAuth2 Authorization Code Flow',\n uid: 'oauth456',\n flows: {\n authorizationCode: {\n type: 'authorizationCode',\n authorizationUrl: 'https://example.com/oauth/authorize',\n tokenUrl: 'https://example.com/oauth/token',\n 'x-usePkce': 'SHA-256',\n scopes: {\n 'read:api': 'Read access',\n 'write:api': 'Write access',\n },\n clientSecret: 'client-secret',\n token: 'access-token-456',\n 'x-scalar-security-query': {\n prompt: 'consent',\n },\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2AuthCode)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 client credentials flow schema', () => {\n const oauth2ClientCreds = {\n type: 'oauth2',\n description: 'OAuth2 Client Credentials Flow',\n uid: 'oauth789',\n flows: {\n clientCredentials: {\n type: 'clientCredentials',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n clientSecret: 'client-secret',\n token: 'access-token-789',\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2ClientCreds)\n expect(result.success).toBe(true)\n })\n\n it('should validate a valid OAuth2 password flow schema', () => {\n const oauth2Password = {\n type: 'oauth2',\n description: 'OAuth2 Password Flow',\n uid: 'oauth101',\n flows: {\n password: {\n type: 'password',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n username: 'testuser',\n password: 'testpass',\n clientSecret: 'client-secret',\n token: 'access-token-101',\n 'x-scalar-security-query': {\n prompt: 'consent',\n audience: 'scalar',\n },\n },\n },\n }\n\n const result = securityOauthSchema.safeParse(oauth2Password)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values', () => {\n const minimalOauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n }\n\n const result = securityOauthSchema.parse(minimalOauth2)\n expect(result.flows.implicit).toBeDefined()\n expect(result.flows.implicit?.authorizationUrl).toBe('http://localhost:8080')\n expect(result.flows.implicit?.scopes).toEqual({})\n expect(result.flows.implicit?.selectedScopes).toEqual([])\n expect(result.flows.implicit?.token).toBe('')\n expect(result.nameKey).toBe('')\n })\n\n it('should validate PKCE options', () => {\n expect(pkceOptions).toContain('SHA-256')\n expect(pkceOptions).toContain('plain')\n expect(pkceOptions).toContain('no')\n })\n\n it('should apply x-default-scopes', () => {\n const oauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n 'x-default-scopes': ['read:api', 'write:api'],\n }\n\n const result = securitySchemeSchema.parse(oauth2)\n if (result.type !== 'oauth2') {\n throw new Error('Expected oauth2 schema')\n }\n expect(result['x-default-scopes']).toEqual(['read:api', 'write:api'])\n expect(result.flows.implicit?.selectedScopes).toEqual(['read:api', 'write:api'])\n })\n })\n\n describe('Security Requirement Schema', () => {\n it('should validate a valid security requirement', () => {\n const securityRequirement = {\n 'api_key': [],\n 'oauth2': ['read:api', 'write:api'],\n }\n\n const result = oasSecurityRequirementSchema.safeParse(securityRequirement)\n expect(result.success).toBe(true)\n })\n\n it('should apply default values for empty scopes', () => {\n const securityRequirement = {\n 'api_key': undefined,\n }\n\n const result = oasSecurityRequirementSchema.parse(securityRequirement)\n expect(result).toEqual({\n 'api_key': [],\n })\n })\n })\n\n describe('Combined Security Scheme', () => {\n it('should validate all security scheme types', () => {\n const apiKey = {\n type: 'apiKey',\n name: 'api_key',\n in: 'header',\n uid: 'apikey123',\n value: 'test-api-key',\n }\n\n const http = {\n type: 'http',\n scheme: 'bearer',\n uid: 'http123',\n token: 'bearer-token',\n }\n\n const openId = {\n type: 'openIdConnect',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n uid: 'openid123',\n }\n\n const oauth2 = {\n type: 'oauth2',\n uid: 'oauth123',\n flows: {\n implicit: {\n type: 'implicit',\n authorizationUrl: 'https://example.com/oauth/authorize',\n scopes: {},\n token: '',\n },\n },\n }\n\n expect(securitySchemeSchema.safeParse(apiKey).success).toBe(true)\n expect(securitySchemeSchema.safeParse(http).success).toBe(true)\n expect(securitySchemeSchema.safeParse(openId).success).toBe(true)\n expect(securitySchemeSchema.safeParse(oauth2).success).toBe(true)\n })\n })\n})\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import type { Request as HarRequest } from 'har-format';
2
- export type { Request as HarRequest } from 'har-format';
2
+ export type { Request as HarRequest, Param as FormDataParam } from 'har-format';
3
3
  /**
4
4
  * List of available clients
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"snippetz.d.ts","sourceRoot":"","sources":["../../src/snippetz/snippetz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,YAAY,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,wjBAoCpB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAA;AAEvD,2BAA2B;AAC3B,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1F,iCAAiC;AACjC,MAAM,MAAM,MAAM,GAAG;KAClB,CAAC,IAAI,QAAQ,GAAG;QACf,GAAG,EAAE,CAAC,CAAA;QACN,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB;CACF,CAAC,QAAQ,CAAC,CAAA;AAEX,kBAAkB;AAClB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,QAAQ,GACvD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3E,CAAC,GACD,KAAK,GACP,KAAK,CAAA;AAET,uCAAuC;AACvC,MAAM,MAAM,MAAM,GAAG;IACnB,mCAAmC;IACnC,MAAM,EAAE,QAAQ,CAAA;IAChB,oCAAoC;IACpC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,mBAAmB,KAAK,MAAM,CAAA;CACzF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,mDAAmD;IACnD,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,CAAA"}
1
+ {"version":3,"file":"snippetz.d.ts","sourceRoot":"","sources":["../../src/snippetz/snippetz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvD,YAAY,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,wjBAoCpB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAA;AAEvD,2BAA2B;AAC3B,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1F,iCAAiC;AACjC,MAAM,MAAM,MAAM,GAAG;KAClB,CAAC,IAAI,QAAQ,GAAG;QACf,GAAG,EAAE,CAAC,CAAA;QACN,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO,EAAE,MAAM,EAAE,CAAA;KAClB;CACF,CAAC,QAAQ,CAAC,CAAA;AAEX,kBAAkB;AAClB,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,QAAQ,GACvD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3E,CAAC,GACD,KAAK,GACP,KAAK,CAAA;AAET,uCAAuC;AACvC,MAAM,MAAM,MAAM,GAAG;IACnB,mCAAmC;IACnC,MAAM,EAAE,QAAQ,CAAA;IAChB,oCAAoC;IACpC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,mBAAmB,KAAK,MAAM,CAAA;CACzF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,mDAAmD;IACnD,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/snippetz/snippetz.ts"],
4
- "sourcesContent": ["import type { Request as HarRequest } from 'har-format'\n\nexport type { Request as HarRequest } from 'har-format'\n\n/**\n * List of available clients\n */\nexport const AVAILABLE_CLIENTS = [\n 'c/libcurl',\n 'clojure/clj_http',\n 'csharp/httpclient',\n 'csharp/restsharp',\n 'go/native',\n 'http/http1.1',\n 'java/asynchttp',\n 'java/nethttp',\n 'java/okhttp',\n 'java/unirest',\n 'js/axios',\n 'js/fetch',\n 'js/jquery',\n 'js/ofetch',\n 'js/xhr',\n 'kotlin/okhttp',\n 'node/axios',\n 'node/fetch',\n 'node/ofetch',\n 'node/undici',\n 'objc/nsurlsession',\n 'ocaml/cohttp',\n 'php/curl',\n 'php/guzzle',\n 'powershell/restmethod',\n 'powershell/webrequest',\n 'python/python3',\n 'python/requests',\n 'r/httr',\n 'ruby/native',\n 'shell/curl',\n 'shell/httpie',\n 'shell/wget',\n 'swift/nsurlsession',\n 'dart/http',\n] as const\n\nexport type AvailableClients = typeof AVAILABLE_CLIENTS\n\n/** Programming language */\nexport type TargetId = AvailableClients[number] extends `${infer T}/${string}` ? T : never\n\n/** Configuration for a target */\nexport type Target = {\n [K in TargetId]: {\n key: K\n title: string\n default: ClientId<K>\n clients: Plugin[]\n }\n}[TargetId]\n\n/** HTTP client */\nexport type ClientId<T extends string> = T extends TargetId\n ? Extract<AvailableClients[number], `${T}/${string}`> extends `${T}/${infer C}`\n ? C\n : never\n : never\n\n/** What any plugins needs to return */\nexport type Plugin = {\n /** The language or environment. */\n target: TargetId\n /** The identifier of the client. */\n client: ClientId<TargetId>\n /** The title of the client. */\n title: string\n /** The actual source code. */\n generate: (request?: Partial<HarRequest>, configuration?: PluginConfiguration) => string\n}\n\n/**\n * Optional configuration for any plugin\n */\nexport type PluginConfiguration = {\n /** Credentials to add HTTP Basic Authentication */\n auth?: { username: string; password: string }\n}\n"],
4
+ "sourcesContent": ["import type { Request as HarRequest } from 'har-format'\n\nexport type { Request as HarRequest, Param as FormDataParam } from 'har-format'\n\n/**\n * List of available clients\n */\nexport const AVAILABLE_CLIENTS = [\n 'c/libcurl',\n 'clojure/clj_http',\n 'csharp/httpclient',\n 'csharp/restsharp',\n 'go/native',\n 'http/http1.1',\n 'java/asynchttp',\n 'java/nethttp',\n 'java/okhttp',\n 'java/unirest',\n 'js/axios',\n 'js/fetch',\n 'js/jquery',\n 'js/ofetch',\n 'js/xhr',\n 'kotlin/okhttp',\n 'node/axios',\n 'node/fetch',\n 'node/ofetch',\n 'node/undici',\n 'objc/nsurlsession',\n 'ocaml/cohttp',\n 'php/curl',\n 'php/guzzle',\n 'powershell/restmethod',\n 'powershell/webrequest',\n 'python/python3',\n 'python/requests',\n 'r/httr',\n 'ruby/native',\n 'shell/curl',\n 'shell/httpie',\n 'shell/wget',\n 'swift/nsurlsession',\n 'dart/http',\n] as const\n\nexport type AvailableClients = typeof AVAILABLE_CLIENTS\n\n/** Programming language */\nexport type TargetId = AvailableClients[number] extends `${infer T}/${string}` ? T : never\n\n/** Configuration for a target */\nexport type Target = {\n [K in TargetId]: {\n key: K\n title: string\n default: ClientId<K>\n clients: Plugin[]\n }\n}[TargetId]\n\n/** HTTP client */\nexport type ClientId<T extends string> = T extends TargetId\n ? Extract<AvailableClients[number], `${T}/${string}`> extends `${T}/${infer C}`\n ? C\n : never\n : never\n\n/** What any plugins needs to return */\nexport type Plugin = {\n /** The language or environment. */\n target: TargetId\n /** The identifier of the client. */\n client: ClientId<TargetId>\n /** The title of the client. */\n title: string\n /** The actual source code. */\n generate: (request?: Partial<HarRequest>, configuration?: PluginConfiguration) => string\n}\n\n/**\n * Optional configuration for any plugin\n */\nexport type PluginConfiguration = {\n /** Credentials to add HTTP Basic Authentication */\n auth?: { username: string; password: string }\n}\n"],
5
5
  "mappings": "AAOO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "scalar",
17
17
  "references"
18
18
  ],
19
- "version": "0.1.14",
19
+ "version": "0.1.15",
20
20
  "engines": {
21
21
  "node": ">=18"
22
22
  },
@@ -61,12 +61,12 @@
61
61
  "dependencies": {
62
62
  "nanoid": "^5.1.5",
63
63
  "zod": "3.24.1",
64
- "@scalar/openapi-types": "0.2.2"
64
+ "@scalar/openapi-types": "0.2.3"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/har-format": "^1.2.15",
68
68
  "type-fest": "^4.20.0",
69
- "vite": "^5.4.10",
69
+ "vite": "5.4.19",
70
70
  "@scalar/build-tooling": "0.1.19"
71
71
  },
72
72
  "scripts": {