@fabricorg/experiments-api-protocol 0.1.2 → 0.1.3
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.
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -266,7 +266,8 @@ var TestRunListInput = zod.z.object({
|
|
|
266
266
|
status: TestRunStatus.optional(),
|
|
267
267
|
source: CreateTestRunInput.shape.source.optional(),
|
|
268
268
|
suite: zod.z.string().min(1).max(240).optional(),
|
|
269
|
-
limit: zod.z.coerce.number().int().min(1).max(200).optional()
|
|
269
|
+
limit: zod.z.coerce.number().int().min(1).max(200).optional(),
|
|
270
|
+
offset: zod.z.coerce.number().int().min(0).max(1e5).optional()
|
|
270
271
|
});
|
|
271
272
|
var TestRunListResponse = zod.z.object({
|
|
272
273
|
runs: zod.z.array(TestRun.omit({ cases: true }))
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/endpoints.ts","../src/errors.ts"],"names":["z","Project","Property","Environment","Feature","FeatureRule","EnvironmentPublication","Experiment","ExperimentState","ExperimentSpecBase","ExperimentId","ActionId","CreateProjectInput","CreatePropertyInput","CreateEnvironmentInput","CreateFeatureInput","CreateFeatureRuleInput"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n ActionId,\n CreateEnvironmentInput,\n CreateFeatureInput,\n CreateFeatureRuleInput,\n CreateProjectInput,\n CreatePropertyInput,\n Environment,\n EnvironmentPublication,\n Experiment,\n ExperimentId,\n ExperimentSpec,\n ExperimentSpecBase,\n ExperimentState,\n Feature,\n FeatureRule,\n Project,\n Property,\n} from '@fabricorg/experiments-domain';\nimport { z } from 'zod';\n\n/**\n * Each endpoint declares method, path template, request schema, and response\n * schema. The server registers handlers against this table; the api-client\n * derives its method signatures from it. Drift between client and server is\n * impossible by construction.\n */\n\nexport interface EndpointDef<\n TParams extends z.ZodTypeAny = z.ZodTypeAny,\n TResponse extends z.ZodTypeAny = z.ZodTypeAny,\n> {\n method: 'GET' | 'POST' | 'DELETE';\n /** Path with `:param` placeholders, e.g. `/v1/orgs/:orgId/experiments`. */\n path: string;\n /** Request schema. For GET, used to validate query params; otherwise body. */\n params: TParams;\n response: TResponse;\n /** True if this endpoint mutates state — server applies idempotency cache. */\n mutates: boolean;\n /** Required role on the active org. `null` = any authenticated session. */\n requiresRole: 'owner' | 'admin' | 'experimenter' | 'viewer' | null;\n}\n\nconst Empty = z.object({});\n\n// ---- tenants ----------------------------------------------------------------\n\nexport const TenantSelf = z.object({\n organization: z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.string().datetime(),\n }),\n member: z.object({\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n }),\n user: z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n }),\n});\nexport type TenantSelf = z.infer<typeof TenantSelf>;\n\n// ---- workspace hierarchy ---------------------------------------------------\n\nexport const ProjectListResponse = z.object({ projects: z.array(Project) });\nexport const PropertyListResponse = z.object({ properties: z.array(Property) });\nexport const EnvironmentListResponse = z.object({ environments: z.array(Environment) });\nexport const FeatureListResponse = z.object({ features: z.array(Feature) });\nexport const FeatureRuleListResponse = z.object({ rules: z.array(FeatureRule) });\nexport const PublicationListResponse = z.object({ publications: z.array(EnvironmentPublication) });\nexport const PromoteEnvironmentInput = z.object({ sourceEnvironmentId: z.string().uuid() });\nexport const PromoteEnvironmentResponse = z.object({\n sourceEnvironmentId: z.string().uuid(),\n sourceVersion: z.number().int().positive(),\n targetEnvironmentId: z.string().uuid(),\n promotedRuleCount: z.number().int().nonnegative(),\n});\n\n// ---- experiments ------------------------------------------------------------\n\nexport const ExperimentSummary = z.object({\n id: Experiment.shape.id,\n name: Experiment.shape.name,\n state: ExperimentState,\n updatedAt: z.string().datetime(),\n});\nexport type ExperimentSummary = z.infer<typeof ExperimentSummary>;\n\nexport const ExperimentListResponse = z.object({\n experiments: z.array(ExperimentSummary),\n});\nexport type ExperimentListResponse = z.infer<typeof ExperimentListResponse>;\n\nexport const CreateExperimentInput = ExperimentSpecBase;\nexport type CreateExperimentInput = z.infer<typeof CreateExperimentInput>;\n\nexport const CreateExperimentResponse = z.object({\n experimentId: ExperimentId,\n idempotent: z.boolean().optional(),\n});\nexport type CreateExperimentResponse = z.infer<typeof CreateExperimentResponse>;\n\n/**\n * Aggregate row per variant for a given metric over an optional time window.\n * Sourced from the warehouse adapter (Databricks in prod, Local in dev).\n */\nexport const AggregateRow = z.object({\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionSum: z.number(),\n failureCount: z.number().int().nonnegative().default(0),\n});\nexport type AggregateRow = z.infer<typeof AggregateRow>;\n\nexport const AggregateInput = z.object({\n metric: z.string().min(1).max(120),\n fromIso: z.string().datetime().optional(),\n untilIso: z.string().datetime().optional(),\n segmentKey: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[A-Za-z0-9_.-]+$/)\n .optional(),\n prePeriodDays: z.coerce.number().int().min(1).max(365).optional(),\n});\nexport type AggregateInput = z.infer<typeof AggregateInput>;\n\nexport const AggregateResponse = z.object({\n experimentId: ExperimentId,\n metric: z.string(),\n rows: z.array(AggregateRow),\n /** ISO datetime — when this aggregate was computed. SDKs may cache by this. */\n computedAt: z.string().datetime(),\n analytics: z\n .object({\n variants: z.array(\n z.object({\n variantKey: z.string(),\n exposedSubjects: z.number().int().nonnegative(),\n convertedSubjects: z.number().int().nonnegative(),\n meanTimeToConvertMs: z.number().nonnegative().nullable(),\n medianTimeToConvertMs: z.number().nonnegative().nullable(),\n p90TimeToConvertMs: z.number().nonnegative().nullable(),\n meanConversionDepth: z.number().nonnegative(),\n conversionDepth: z.object({\n oneOrMore: z.number().int().nonnegative(),\n twoOrMore: z.number().int().nonnegative(),\n threeOrMore: z.number().int().nonnegative(),\n }),\n cupedAdjustedRate: z.number().nullable(),\n cupedLift: z.number().nullable(),\n }),\n ),\n segments: z.array(\n z.object({\n segmentValue: z.string(),\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionRate: z.number().min(0).max(1),\n }),\n ),\n segmentKey: z.string().optional(),\n cuped: z.object({\n available: z.boolean(),\n prePeriodDays: z.number().int().positive(),\n theta: z.number().nullable(),\n varianceReduction: z.number().nullable(),\n }),\n })\n .optional(),\n});\nexport type AggregateResponse = z.infer<typeof AggregateResponse>;\n\nexport const InvokeActionInput = z.object({\n actionId: ActionId,\n params: z.record(z.unknown()),\n /** Optional client-supplied idempotency key. */\n idempotencyKey: z.string().min(8).max(128).optional(),\n});\nexport type InvokeActionInput = z.infer<typeof InvokeActionInput>;\n\nexport const InvokeActionResponse = z.object({\n success: z.boolean(),\n data: z.record(z.unknown()).optional(),\n error: z.string().optional(),\n});\nexport type InvokeActionResponse = z.infer<typeof InvokeActionResponse>;\n\n// ---- manifests --------------------------------------------------------------\n\n/** Result of pushing the signed manifest to the Cloudflare manifest-worker. */\nexport const EdgePushResult = z.object({\n pushed: z.boolean(),\n reason: z.string().optional(),\n status: z.number().int().optional(),\n});\nexport type EdgePushResult = z.infer<typeof EdgePushResult>;\n\nexport const PublishManifestResponse = z.object({\n manifestVersion: z.number().int().nonnegative(),\n contentHash: z.string().regex(/^[0-9a-f]{64}$/),\n experimentCount: z.number().int().nonnegative(),\n /** Edge push status. `pushed: false` with `reason: 'unconfigured'` is normal in local dev. */\n edgePush: EdgePushResult,\n});\nexport type PublishManifestResponse = z.infer<typeof PublishManifestResponse>;\n\nexport const ManifestKey = z.object({\n keyId: z.string(),\n publicKeyHex: z.string().regex(/^[0-9a-f]+$/),\n status: z.enum(['active', 'retiring', 'retired']),\n createdAt: z.string().datetime(),\n retiredAt: z.string().datetime().nullable(),\n});\nexport type ManifestKey = z.infer<typeof ManifestKey>;\n\nexport const ManifestKeysResponse = z.object({ keys: z.array(ManifestKey) });\nexport type ManifestKeysResponse = z.infer<typeof ManifestKeysResponse>;\n\n// ---- preview tokens ---------------------------------------------------------\n\nexport const PreviewSignInput = z.object({\n experimentId: ExperimentId,\n variantKey: z.string().min(1).max(32),\n /** Token TTL in seconds. Clamped server-side to [60, 3600]; default 900. */\n ttlSeconds: z.number().int().min(60).max(3600).optional(),\n});\nexport type PreviewSignInput = z.infer<typeof PreviewSignInput>;\n\nexport const PreviewSignResponse = z.object({\n token: z.string(),\n /** ISO datetime when the token expires. */\n expiresAt: z.string().datetime(),\n /** ID of the public JWKS key used to sign — exposed for debugging only. */\n keyId: z.string(),\n /** Unique JWT id for audit/debugging and future replay controls. */\n jti: z.string(),\n});\nexport type PreviewSignResponse = z.infer<typeof PreviewSignResponse>;\n\n// ---- audit ------------------------------------------------------------------\n\nexport const AuditEvent = z.object({\n id: z.string(),\n type: z.string(),\n experimentId: z.string(),\n actorId: z.string(),\n at: z.string().datetime(),\n payload: z.record(z.unknown()),\n});\nexport type AuditEvent = z.infer<typeof AuditEvent>;\n\nexport const AuditListResponse = z.object({ events: z.array(AuditEvent) });\nexport type AuditListResponse = z.infer<typeof AuditListResponse>;\n\nexport const AuditExport = z.object({\n id: z.string(),\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n status: z.enum(['active', 'paused', 'failed']),\n lastCursorAt: z.string().datetime().nullable(),\n});\nexport const AuditExportListResponse = z.object({ exports: z.array(AuditExport) });\n\nexport const CreateAuditExportInput = z.object({\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n /** Free-form config; encrypted at rest. Schema enforced by destination kind. */\n config: z.record(z.unknown()),\n});\n\n// ---- api keys ---------------------------------------------------------------\n\nexport const ApiKeySummary = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n scopes: z.array(z.enum(['read', 'write', 'admin'])),\n createdAt: z.string().datetime(),\n lastUsedAt: z.string().datetime().nullable(),\n expiresAt: z.string().datetime().nullable(),\n});\nexport const ApiKeyListResponse = z.object({ keys: z.array(ApiKeySummary) });\n\nexport const CreateApiKeyInput = z.object({\n name: z.string().min(1).max(120),\n /** ISO datetime of expiry; null for non-expiring (not recommended in prod). */\n expiresAt: z.string().datetime().nullable(),\n /** Role assigned to the key. Defaults to the creator's role. */\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']).optional(),\n /** Permission scopes assigned to the key. Defaults are derived from role. */\n scopes: z.array(z.enum(['read', 'write', 'admin'])).optional(),\n});\nexport type CreateApiKeyInput = z.infer<typeof CreateApiKeyInput>;\n\nexport const CreateApiKeyResponse = ApiKeySummary.extend({\n /** Plaintext key, returned exactly once at creation time. */\n key: z.string(),\n});\nexport type CreateApiKeyResponse = z.infer<typeof CreateApiKeyResponse>;\n\n// ---- SAML / SSO --------------------------------------------------------------\n\nexport const SamlConfig = z\n .object({\n enabled: z.boolean(),\n connectionId: z.string().min(1).max(200).nullable(),\n issuer: z.string().min(1).max(500).nullable(),\n ssoUrl: z.string().url().nullable(),\n certificate: z.string().min(1).max(10000).nullable(),\n })\n .refine(\n (value) =>\n !value.enabled ||\n Boolean(value.connectionId && value.issuer && value.ssoUrl && value.certificate),\n {\n message: 'connectionId, issuer, ssoUrl, certificate required when SAML is enabled',\n },\n );\nexport type SamlConfig = z.infer<typeof SamlConfig>;\n\n// ---- quality / test evidence ------------------------------------------------\n\nexport const TestRunStatus = z.enum(['running', 'passed', 'failed', 'skipped', 'canceled']);\nexport type TestRunStatus = z.infer<typeof TestRunStatus>;\n\nexport const TestCaseStatus = z.enum([\n 'passed',\n 'failed',\n 'skipped',\n 'pending',\n 'undefined',\n 'unknown',\n]);\n\nexport const TestCaseResult = z.object({\n id: z.string().max(240).optional(),\n name: z.string().min(1).max(500),\n uri: z.string().max(1000).optional(),\n status: TestCaseStatus,\n durationMs: z.number().int().nonnegative().max(86_400_000),\n tags: z.array(z.string().max(120)).max(100).default([]),\n error: z.string().max(65_536).optional(),\n statementId: z.string().max(240).optional(),\n resourceUrl: z.string().url().max(4000).optional(),\n details: z.record(z.unknown()).optional(),\n});\nexport type TestCaseResult = z.infer<typeof TestCaseResult>;\n\nexport const TestRunSummary = z.object({\n total: z.number().int().nonnegative(),\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n skipped: z.number().int().nonnegative(),\n pending: z.number().int().nonnegative().default(0),\n});\n\nexport const TestRunArtifact = z.object({\n name: z.string().min(1).max(240),\n url: z.string().url().max(4000),\n mediaType: z.string().max(240).optional(),\n});\n\nexport const CreateTestRunInput = z.object({\n externalId: z.string().min(1).max(300).optional(),\n source: z.enum(['bdd', 'live-suite', 'junit', 'cli', 'other']),\n suite: z.string().min(1).max(240),\n status: TestRunStatus,\n startedAt: z.string().datetime().nullable().optional(),\n finishedAt: z.string().datetime().nullable().optional(),\n durationMs: z.number().int().nonnegative().max(604_800_000).default(0),\n summary: TestRunSummary,\n environment: z.record(z.unknown()).default({}),\n revision: z.record(z.unknown()).default({}),\n cases: z.array(TestCaseResult).max(2000).default([]),\n artifacts: z.array(TestRunArtifact).max(100).default([]),\n});\nexport type CreateTestRunInput = z.infer<typeof CreateTestRunInput>;\n\nexport const TestRun = CreateTestRunInput.extend({\n id: z.string().uuid(),\n orgId: z.string(),\n createdBy: z.string(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\nexport type TestRun = z.infer<typeof TestRun>;\n\nexport const TestRunListInput = z.object({\n status: TestRunStatus.optional(),\n source: CreateTestRunInput.shape.source.optional(),\n suite: z.string().min(1).max(240).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n});\nexport const TestRunListResponse = z.object({\n runs: z.array(TestRun.omit({ cases: true })),\n});\n\n// ---- the registry ----------------------------------------------------------\n\nexport const endpoints = {\n 'tenants.me': {\n method: 'GET',\n path: '/v1/tenants/me',\n params: Empty,\n response: TenantSelf,\n mutates: false,\n requiresRole: null,\n },\n\n 'experiments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments',\n params: Empty,\n response: ExperimentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments',\n params: CreateExperimentInput,\n response: CreateExperimentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId',\n params: Empty,\n response: Experiment,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.invokeAction': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments/actions',\n params: InvokeActionInput,\n response: InvokeActionResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.aggregate': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId/aggregate',\n params: AggregateInput,\n response: AggregateResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'projects.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects',\n params: Empty,\n response: ProjectListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'projects.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects',\n params: CreateProjectInput,\n response: Project,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'properties.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: Empty,\n response: PropertyListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'properties.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: CreatePropertyInput,\n response: Property,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: Empty,\n response: EnvironmentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: CreateEnvironmentInput,\n response: Environment,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'features.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: Empty,\n response: FeatureListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'features.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: CreateFeatureInput,\n response: Feature,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'rules.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: Empty,\n response: FeatureRuleListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'rules.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: CreateFeatureRuleInput,\n response: FeatureRule,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/publish',\n params: Empty,\n response: EnvironmentPublication,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publications': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/publications',\n params: Empty,\n response: PublicationListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.promote': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/promote',\n params: PromoteEnvironmentInput,\n response: PromoteEnvironmentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'configuration.getPublished': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/configuration',\n params: Empty,\n response: EnvironmentPublication,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'manifests.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/publish',\n params: Empty,\n response: PublishManifestResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'manifests.getKeys': {\n method: 'GET',\n path: '/v1/orgs/:orgId/manifests/keys',\n params: Empty,\n response: ManifestKeysResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'manifests.rotateKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/rotate',\n params: z.object({ keyId: z.string().min(1).max(128) }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n 'manifests.retireKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/retire',\n params: z.object({ keyId: z.string() }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'preview.sign': {\n method: 'POST',\n path: '/v1/orgs/:orgId/preview/sign',\n params: PreviewSignInput,\n response: PreviewSignResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n\n 'audit.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit',\n params: Empty,\n response: AuditListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'audit.exports.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit/exports',\n params: Empty,\n response: AuditExportListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'audit.exports.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/audit/exports',\n params: CreateAuditExportInput,\n response: AuditExport,\n mutates: true,\n requiresRole: 'admin',\n },\n 'audit.exports.delete': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/audit/exports/:exportId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'apiKeys.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/api-keys',\n params: Empty,\n response: ApiKeyListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'apiKeys.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/api-keys',\n params: CreateApiKeyInput,\n response: CreateApiKeyResponse,\n mutates: true,\n requiresRole: 'admin',\n },\n 'apiKeys.revoke': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/api-keys/:keyId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'saml.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/saml',\n params: Empty,\n response: SamlConfig,\n mutates: false,\n requiresRole: 'owner',\n },\n 'saml.update': {\n method: 'POST',\n path: '/v1/orgs/:orgId/saml',\n params: SamlConfig,\n response: SamlConfig,\n mutates: true,\n requiresRole: 'owner',\n },\n\n 'testRuns.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs',\n params: TestRunListInput,\n response: TestRunListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'testRuns.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/test-runs',\n params: CreateTestRunInput,\n response: TestRun,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'testRuns.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs/:runId',\n params: Empty,\n response: TestRun,\n mutates: false,\n requiresRole: 'viewer',\n },\n} satisfies Record<string, EndpointDef>;\n\nexport type EndpointName = keyof typeof endpoints;\nexport type EndpointParams<E extends EndpointName> = z.infer<(typeof endpoints)[E]['params']>;\nexport type EndpointResponse<E extends EndpointName> = z.infer<(typeof endpoints)[E]['response']>;\n\n/** Substitute path parameters in a path template. */\nexport function buildPath(template: string, pathParams: Record<string, string>): string {\n return template.replace(/:([a-zA-Z][a-zA-Z0-9_]*)/g, (_, name) => {\n const v = pathParams[name];\n if (v == null) throw new Error(`Missing path parameter: ${name}`);\n return encodeURIComponent(v);\n });\n}\n","import { z } from 'zod';\n\nexport const ApiError = z.object({\n code: z.enum([\n 'UNAUTHENTICATED',\n 'FORBIDDEN',\n 'NOT_FOUND',\n 'VALIDATION_FAILED',\n 'CONFLICT',\n 'RATE_LIMITED',\n 'INTERNAL',\n ]),\n message: z.string(),\n details: z.record(z.unknown()).optional(),\n});\nexport type ApiError = z.infer<typeof ApiError>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/endpoints.ts","../src/errors.ts"],"names":["z","Project","Property","Environment","Feature","FeatureRule","EnvironmentPublication","Experiment","ExperimentState","ExperimentSpecBase","ExperimentId","ActionId","CreateProjectInput","CreatePropertyInput","CreateEnvironmentInput","CreateFeatureInput","CreateFeatureRuleInput"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\n ActionId,\n CreateEnvironmentInput,\n CreateFeatureInput,\n CreateFeatureRuleInput,\n CreateProjectInput,\n CreatePropertyInput,\n Environment,\n EnvironmentPublication,\n Experiment,\n ExperimentId,\n ExperimentSpec,\n ExperimentSpecBase,\n ExperimentState,\n Feature,\n FeatureRule,\n Project,\n Property,\n} from '@fabricorg/experiments-domain';\nimport { z } from 'zod';\n\n/**\n * Each endpoint declares method, path template, request schema, and response\n * schema. The server registers handlers against this table; the api-client\n * derives its method signatures from it. Drift between client and server is\n * impossible by construction.\n */\n\nexport interface EndpointDef<\n TParams extends z.ZodTypeAny = z.ZodTypeAny,\n TResponse extends z.ZodTypeAny = z.ZodTypeAny,\n> {\n method: 'GET' | 'POST' | 'DELETE';\n /** Path with `:param` placeholders, e.g. `/v1/orgs/:orgId/experiments`. */\n path: string;\n /** Request schema. For GET, used to validate query params; otherwise body. */\n params: TParams;\n response: TResponse;\n /** True if this endpoint mutates state — server applies idempotency cache. */\n mutates: boolean;\n /** Required role on the active org. `null` = any authenticated session. */\n requiresRole: 'owner' | 'admin' | 'experimenter' | 'viewer' | null;\n}\n\nconst Empty = z.object({});\n\n// ---- tenants ----------------------------------------------------------------\n\nexport const TenantSelf = z.object({\n organization: z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.string().datetime(),\n }),\n member: z.object({\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n }),\n user: z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n }),\n});\nexport type TenantSelf = z.infer<typeof TenantSelf>;\n\n// ---- workspace hierarchy ---------------------------------------------------\n\nexport const ProjectListResponse = z.object({ projects: z.array(Project) });\nexport const PropertyListResponse = z.object({ properties: z.array(Property) });\nexport const EnvironmentListResponse = z.object({ environments: z.array(Environment) });\nexport const FeatureListResponse = z.object({ features: z.array(Feature) });\nexport const FeatureRuleListResponse = z.object({ rules: z.array(FeatureRule) });\nexport const PublicationListResponse = z.object({ publications: z.array(EnvironmentPublication) });\nexport const PromoteEnvironmentInput = z.object({ sourceEnvironmentId: z.string().uuid() });\nexport const PromoteEnvironmentResponse = z.object({\n sourceEnvironmentId: z.string().uuid(),\n sourceVersion: z.number().int().positive(),\n targetEnvironmentId: z.string().uuid(),\n promotedRuleCount: z.number().int().nonnegative(),\n});\n\n// ---- experiments ------------------------------------------------------------\n\nexport const ExperimentSummary = z.object({\n id: Experiment.shape.id,\n name: Experiment.shape.name,\n state: ExperimentState,\n updatedAt: z.string().datetime(),\n});\nexport type ExperimentSummary = z.infer<typeof ExperimentSummary>;\n\nexport const ExperimentListResponse = z.object({\n experiments: z.array(ExperimentSummary),\n});\nexport type ExperimentListResponse = z.infer<typeof ExperimentListResponse>;\n\nexport const CreateExperimentInput = ExperimentSpecBase;\nexport type CreateExperimentInput = z.infer<typeof CreateExperimentInput>;\n\nexport const CreateExperimentResponse = z.object({\n experimentId: ExperimentId,\n idempotent: z.boolean().optional(),\n});\nexport type CreateExperimentResponse = z.infer<typeof CreateExperimentResponse>;\n\n/**\n * Aggregate row per variant for a given metric over an optional time window.\n * Sourced from the warehouse adapter (Databricks in prod, Local in dev).\n */\nexport const AggregateRow = z.object({\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionSum: z.number(),\n failureCount: z.number().int().nonnegative().default(0),\n});\nexport type AggregateRow = z.infer<typeof AggregateRow>;\n\nexport const AggregateInput = z.object({\n metric: z.string().min(1).max(120),\n fromIso: z.string().datetime().optional(),\n untilIso: z.string().datetime().optional(),\n segmentKey: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[A-Za-z0-9_.-]+$/)\n .optional(),\n prePeriodDays: z.coerce.number().int().min(1).max(365).optional(),\n});\nexport type AggregateInput = z.infer<typeof AggregateInput>;\n\nexport const AggregateResponse = z.object({\n experimentId: ExperimentId,\n metric: z.string(),\n rows: z.array(AggregateRow),\n /** ISO datetime — when this aggregate was computed. SDKs may cache by this. */\n computedAt: z.string().datetime(),\n analytics: z\n .object({\n variants: z.array(\n z.object({\n variantKey: z.string(),\n exposedSubjects: z.number().int().nonnegative(),\n convertedSubjects: z.number().int().nonnegative(),\n meanTimeToConvertMs: z.number().nonnegative().nullable(),\n medianTimeToConvertMs: z.number().nonnegative().nullable(),\n p90TimeToConvertMs: z.number().nonnegative().nullable(),\n meanConversionDepth: z.number().nonnegative(),\n conversionDepth: z.object({\n oneOrMore: z.number().int().nonnegative(),\n twoOrMore: z.number().int().nonnegative(),\n threeOrMore: z.number().int().nonnegative(),\n }),\n cupedAdjustedRate: z.number().nullable(),\n cupedLift: z.number().nullable(),\n }),\n ),\n segments: z.array(\n z.object({\n segmentValue: z.string(),\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionRate: z.number().min(0).max(1),\n }),\n ),\n segmentKey: z.string().optional(),\n cuped: z.object({\n available: z.boolean(),\n prePeriodDays: z.number().int().positive(),\n theta: z.number().nullable(),\n varianceReduction: z.number().nullable(),\n }),\n })\n .optional(),\n});\nexport type AggregateResponse = z.infer<typeof AggregateResponse>;\n\nexport const InvokeActionInput = z.object({\n actionId: ActionId,\n params: z.record(z.unknown()),\n /** Optional client-supplied idempotency key. */\n idempotencyKey: z.string().min(8).max(128).optional(),\n});\nexport type InvokeActionInput = z.infer<typeof InvokeActionInput>;\n\nexport const InvokeActionResponse = z.object({\n success: z.boolean(),\n data: z.record(z.unknown()).optional(),\n error: z.string().optional(),\n});\nexport type InvokeActionResponse = z.infer<typeof InvokeActionResponse>;\n\n// ---- manifests --------------------------------------------------------------\n\n/** Result of pushing the signed manifest to the Cloudflare manifest-worker. */\nexport const EdgePushResult = z.object({\n pushed: z.boolean(),\n reason: z.string().optional(),\n status: z.number().int().optional(),\n});\nexport type EdgePushResult = z.infer<typeof EdgePushResult>;\n\nexport const PublishManifestResponse = z.object({\n manifestVersion: z.number().int().nonnegative(),\n contentHash: z.string().regex(/^[0-9a-f]{64}$/),\n experimentCount: z.number().int().nonnegative(),\n /** Edge push status. `pushed: false` with `reason: 'unconfigured'` is normal in local dev. */\n edgePush: EdgePushResult,\n});\nexport type PublishManifestResponse = z.infer<typeof PublishManifestResponse>;\n\nexport const ManifestKey = z.object({\n keyId: z.string(),\n publicKeyHex: z.string().regex(/^[0-9a-f]+$/),\n status: z.enum(['active', 'retiring', 'retired']),\n createdAt: z.string().datetime(),\n retiredAt: z.string().datetime().nullable(),\n});\nexport type ManifestKey = z.infer<typeof ManifestKey>;\n\nexport const ManifestKeysResponse = z.object({ keys: z.array(ManifestKey) });\nexport type ManifestKeysResponse = z.infer<typeof ManifestKeysResponse>;\n\n// ---- preview tokens ---------------------------------------------------------\n\nexport const PreviewSignInput = z.object({\n experimentId: ExperimentId,\n variantKey: z.string().min(1).max(32),\n /** Token TTL in seconds. Clamped server-side to [60, 3600]; default 900. */\n ttlSeconds: z.number().int().min(60).max(3600).optional(),\n});\nexport type PreviewSignInput = z.infer<typeof PreviewSignInput>;\n\nexport const PreviewSignResponse = z.object({\n token: z.string(),\n /** ISO datetime when the token expires. */\n expiresAt: z.string().datetime(),\n /** ID of the public JWKS key used to sign — exposed for debugging only. */\n keyId: z.string(),\n /** Unique JWT id for audit/debugging and future replay controls. */\n jti: z.string(),\n});\nexport type PreviewSignResponse = z.infer<typeof PreviewSignResponse>;\n\n// ---- audit ------------------------------------------------------------------\n\nexport const AuditEvent = z.object({\n id: z.string(),\n type: z.string(),\n experimentId: z.string(),\n actorId: z.string(),\n at: z.string().datetime(),\n payload: z.record(z.unknown()),\n});\nexport type AuditEvent = z.infer<typeof AuditEvent>;\n\nexport const AuditListResponse = z.object({ events: z.array(AuditEvent) });\nexport type AuditListResponse = z.infer<typeof AuditListResponse>;\n\nexport const AuditExport = z.object({\n id: z.string(),\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n status: z.enum(['active', 'paused', 'failed']),\n lastCursorAt: z.string().datetime().nullable(),\n});\nexport const AuditExportListResponse = z.object({ exports: z.array(AuditExport) });\n\nexport const CreateAuditExportInput = z.object({\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n /** Free-form config; encrypted at rest. Schema enforced by destination kind. */\n config: z.record(z.unknown()),\n});\n\n// ---- api keys ---------------------------------------------------------------\n\nexport const ApiKeySummary = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n scopes: z.array(z.enum(['read', 'write', 'admin'])),\n createdAt: z.string().datetime(),\n lastUsedAt: z.string().datetime().nullable(),\n expiresAt: z.string().datetime().nullable(),\n});\nexport const ApiKeyListResponse = z.object({ keys: z.array(ApiKeySummary) });\n\nexport const CreateApiKeyInput = z.object({\n name: z.string().min(1).max(120),\n /** ISO datetime of expiry; null for non-expiring (not recommended in prod). */\n expiresAt: z.string().datetime().nullable(),\n /** Role assigned to the key. Defaults to the creator's role. */\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']).optional(),\n /** Permission scopes assigned to the key. Defaults are derived from role. */\n scopes: z.array(z.enum(['read', 'write', 'admin'])).optional(),\n});\nexport type CreateApiKeyInput = z.infer<typeof CreateApiKeyInput>;\n\nexport const CreateApiKeyResponse = ApiKeySummary.extend({\n /** Plaintext key, returned exactly once at creation time. */\n key: z.string(),\n});\nexport type CreateApiKeyResponse = z.infer<typeof CreateApiKeyResponse>;\n\n// ---- SAML / SSO --------------------------------------------------------------\n\nexport const SamlConfig = z\n .object({\n enabled: z.boolean(),\n connectionId: z.string().min(1).max(200).nullable(),\n issuer: z.string().min(1).max(500).nullable(),\n ssoUrl: z.string().url().nullable(),\n certificate: z.string().min(1).max(10000).nullable(),\n })\n .refine(\n (value) =>\n !value.enabled ||\n Boolean(value.connectionId && value.issuer && value.ssoUrl && value.certificate),\n {\n message: 'connectionId, issuer, ssoUrl, certificate required when SAML is enabled',\n },\n );\nexport type SamlConfig = z.infer<typeof SamlConfig>;\n\n// ---- quality / test evidence ------------------------------------------------\n\nexport const TestRunStatus = z.enum(['running', 'passed', 'failed', 'skipped', 'canceled']);\nexport type TestRunStatus = z.infer<typeof TestRunStatus>;\n\nexport const TestCaseStatus = z.enum([\n 'passed',\n 'failed',\n 'skipped',\n 'pending',\n 'undefined',\n 'unknown',\n]);\n\nexport const TestCaseResult = z.object({\n id: z.string().max(240).optional(),\n name: z.string().min(1).max(500),\n uri: z.string().max(1000).optional(),\n status: TestCaseStatus,\n durationMs: z.number().int().nonnegative().max(86_400_000),\n tags: z.array(z.string().max(120)).max(100).default([]),\n error: z.string().max(65_536).optional(),\n statementId: z.string().max(240).optional(),\n resourceUrl: z.string().url().max(4000).optional(),\n details: z.record(z.unknown()).optional(),\n});\nexport type TestCaseResult = z.infer<typeof TestCaseResult>;\n\nexport const TestRunSummary = z.object({\n total: z.number().int().nonnegative(),\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n skipped: z.number().int().nonnegative(),\n pending: z.number().int().nonnegative().default(0),\n});\n\nexport const TestRunArtifact = z.object({\n name: z.string().min(1).max(240),\n url: z.string().url().max(4000),\n mediaType: z.string().max(240).optional(),\n});\n\nexport const CreateTestRunInput = z.object({\n externalId: z.string().min(1).max(300).optional(),\n source: z.enum(['bdd', 'live-suite', 'junit', 'cli', 'other']),\n suite: z.string().min(1).max(240),\n status: TestRunStatus,\n startedAt: z.string().datetime().nullable().optional(),\n finishedAt: z.string().datetime().nullable().optional(),\n durationMs: z.number().int().nonnegative().max(604_800_000).default(0),\n summary: TestRunSummary,\n environment: z.record(z.unknown()).default({}),\n revision: z.record(z.unknown()).default({}),\n cases: z.array(TestCaseResult).max(2000).default([]),\n artifacts: z.array(TestRunArtifact).max(100).default([]),\n});\nexport type CreateTestRunInput = z.infer<typeof CreateTestRunInput>;\n\nexport const TestRun = CreateTestRunInput.extend({\n id: z.string().uuid(),\n orgId: z.string(),\n createdBy: z.string(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\nexport type TestRun = z.infer<typeof TestRun>;\n\nexport const TestRunListInput = z.object({\n status: TestRunStatus.optional(),\n source: CreateTestRunInput.shape.source.optional(),\n suite: z.string().min(1).max(240).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n offset: z.coerce.number().int().min(0).max(100_000).optional(),\n});\nexport const TestRunListResponse = z.object({\n runs: z.array(TestRun.omit({ cases: true })),\n});\n\n// ---- the registry ----------------------------------------------------------\n\nexport const endpoints = {\n 'tenants.me': {\n method: 'GET',\n path: '/v1/tenants/me',\n params: Empty,\n response: TenantSelf,\n mutates: false,\n requiresRole: null,\n },\n\n 'experiments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments',\n params: Empty,\n response: ExperimentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments',\n params: CreateExperimentInput,\n response: CreateExperimentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId',\n params: Empty,\n response: Experiment,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.invokeAction': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments/actions',\n params: InvokeActionInput,\n response: InvokeActionResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.aggregate': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId/aggregate',\n params: AggregateInput,\n response: AggregateResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'projects.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects',\n params: Empty,\n response: ProjectListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'projects.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects',\n params: CreateProjectInput,\n response: Project,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'properties.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: Empty,\n response: PropertyListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'properties.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: CreatePropertyInput,\n response: Property,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: Empty,\n response: EnvironmentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: CreateEnvironmentInput,\n response: Environment,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'features.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: Empty,\n response: FeatureListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'features.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: CreateFeatureInput,\n response: Feature,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'rules.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: Empty,\n response: FeatureRuleListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'rules.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: CreateFeatureRuleInput,\n response: FeatureRule,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/publish',\n params: Empty,\n response: EnvironmentPublication,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publications': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/publications',\n params: Empty,\n response: PublicationListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.promote': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/promote',\n params: PromoteEnvironmentInput,\n response: PromoteEnvironmentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'configuration.getPublished': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/configuration',\n params: Empty,\n response: EnvironmentPublication,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'manifests.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/publish',\n params: Empty,\n response: PublishManifestResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'manifests.getKeys': {\n method: 'GET',\n path: '/v1/orgs/:orgId/manifests/keys',\n params: Empty,\n response: ManifestKeysResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'manifests.rotateKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/rotate',\n params: z.object({ keyId: z.string().min(1).max(128) }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n 'manifests.retireKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/retire',\n params: z.object({ keyId: z.string() }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'preview.sign': {\n method: 'POST',\n path: '/v1/orgs/:orgId/preview/sign',\n params: PreviewSignInput,\n response: PreviewSignResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n\n 'audit.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit',\n params: Empty,\n response: AuditListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'audit.exports.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit/exports',\n params: Empty,\n response: AuditExportListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'audit.exports.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/audit/exports',\n params: CreateAuditExportInput,\n response: AuditExport,\n mutates: true,\n requiresRole: 'admin',\n },\n 'audit.exports.delete': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/audit/exports/:exportId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'apiKeys.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/api-keys',\n params: Empty,\n response: ApiKeyListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'apiKeys.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/api-keys',\n params: CreateApiKeyInput,\n response: CreateApiKeyResponse,\n mutates: true,\n requiresRole: 'admin',\n },\n 'apiKeys.revoke': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/api-keys/:keyId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'saml.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/saml',\n params: Empty,\n response: SamlConfig,\n mutates: false,\n requiresRole: 'owner',\n },\n 'saml.update': {\n method: 'POST',\n path: '/v1/orgs/:orgId/saml',\n params: SamlConfig,\n response: SamlConfig,\n mutates: true,\n requiresRole: 'owner',\n },\n\n 'testRuns.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs',\n params: TestRunListInput,\n response: TestRunListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'testRuns.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/test-runs',\n params: CreateTestRunInput,\n response: TestRun,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'testRuns.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs/:runId',\n params: Empty,\n response: TestRun,\n mutates: false,\n requiresRole: 'viewer',\n },\n} satisfies Record<string, EndpointDef>;\n\nexport type EndpointName = keyof typeof endpoints;\nexport type EndpointParams<E extends EndpointName> = z.infer<(typeof endpoints)[E]['params']>;\nexport type EndpointResponse<E extends EndpointName> = z.infer<(typeof endpoints)[E]['response']>;\n\n/** Substitute path parameters in a path template. */\nexport function buildPath(template: string, pathParams: Record<string, string>): string {\n return template.replace(/:([a-zA-Z][a-zA-Z0-9_]*)/g, (_, name) => {\n const v = pathParams[name];\n if (v == null) throw new Error(`Missing path parameter: ${name}`);\n return encodeURIComponent(v);\n });\n}\n","import { z } from 'zod';\n\nexport const ApiError = z.object({\n code: z.enum([\n 'UNAUTHENTICATED',\n 'FORBIDDEN',\n 'NOT_FOUND',\n 'VALIDATION_FAILED',\n 'CONFLICT',\n 'RATE_LIMITED',\n 'INTERNAL',\n ]),\n message: z.string(),\n details: z.record(z.unknown()).optional(),\n});\nexport type ApiError = z.infer<typeof ApiError>;\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -3785,16 +3785,19 @@ declare const TestRunListInput: z.ZodObject<{
|
|
|
3785
3785
|
source: z.ZodOptional<z.ZodEnum<["bdd", "live-suite", "junit", "cli", "other"]>>;
|
|
3786
3786
|
suite: z.ZodOptional<z.ZodString>;
|
|
3787
3787
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
3788
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
3788
3789
|
}, "strip", z.ZodTypeAny, {
|
|
3789
3790
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
3790
3791
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
3791
3792
|
suite?: string | undefined;
|
|
3792
3793
|
limit?: number | undefined;
|
|
3794
|
+
offset?: number | undefined;
|
|
3793
3795
|
}, {
|
|
3794
3796
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
3795
3797
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
3796
3798
|
suite?: string | undefined;
|
|
3797
3799
|
limit?: number | undefined;
|
|
3800
|
+
offset?: number | undefined;
|
|
3798
3801
|
}>;
|
|
3799
3802
|
declare const TestRunListResponse: z.ZodObject<{
|
|
3800
3803
|
runs: z.ZodArray<z.ZodObject<Omit<{
|
|
@@ -10959,16 +10962,19 @@ declare const endpoints: {
|
|
|
10959
10962
|
source: z.ZodOptional<z.ZodEnum<["bdd", "live-suite", "junit", "cli", "other"]>>;
|
|
10960
10963
|
suite: z.ZodOptional<z.ZodString>;
|
|
10961
10964
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
10965
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
10962
10966
|
}, "strip", z.ZodTypeAny, {
|
|
10963
10967
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
10964
10968
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
10965
10969
|
suite?: string | undefined;
|
|
10966
10970
|
limit?: number | undefined;
|
|
10971
|
+
offset?: number | undefined;
|
|
10967
10972
|
}, {
|
|
10968
10973
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
10969
10974
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
10970
10975
|
suite?: string | undefined;
|
|
10971
10976
|
limit?: number | undefined;
|
|
10977
|
+
offset?: number | undefined;
|
|
10972
10978
|
}>;
|
|
10973
10979
|
response: z.ZodObject<{
|
|
10974
10980
|
runs: z.ZodArray<z.ZodObject<Omit<{
|
package/dist/index.d.ts
CHANGED
|
@@ -3785,16 +3785,19 @@ declare const TestRunListInput: z.ZodObject<{
|
|
|
3785
3785
|
source: z.ZodOptional<z.ZodEnum<["bdd", "live-suite", "junit", "cli", "other"]>>;
|
|
3786
3786
|
suite: z.ZodOptional<z.ZodString>;
|
|
3787
3787
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
3788
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
3788
3789
|
}, "strip", z.ZodTypeAny, {
|
|
3789
3790
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
3790
3791
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
3791
3792
|
suite?: string | undefined;
|
|
3792
3793
|
limit?: number | undefined;
|
|
3794
|
+
offset?: number | undefined;
|
|
3793
3795
|
}, {
|
|
3794
3796
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
3795
3797
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
3796
3798
|
suite?: string | undefined;
|
|
3797
3799
|
limit?: number | undefined;
|
|
3800
|
+
offset?: number | undefined;
|
|
3798
3801
|
}>;
|
|
3799
3802
|
declare const TestRunListResponse: z.ZodObject<{
|
|
3800
3803
|
runs: z.ZodArray<z.ZodObject<Omit<{
|
|
@@ -10959,16 +10962,19 @@ declare const endpoints: {
|
|
|
10959
10962
|
source: z.ZodOptional<z.ZodEnum<["bdd", "live-suite", "junit", "cli", "other"]>>;
|
|
10960
10963
|
suite: z.ZodOptional<z.ZodString>;
|
|
10961
10964
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
10965
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
10962
10966
|
}, "strip", z.ZodTypeAny, {
|
|
10963
10967
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
10964
10968
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
10965
10969
|
suite?: string | undefined;
|
|
10966
10970
|
limit?: number | undefined;
|
|
10971
|
+
offset?: number | undefined;
|
|
10967
10972
|
}, {
|
|
10968
10973
|
status?: "running" | "failed" | "passed" | "skipped" | "canceled" | undefined;
|
|
10969
10974
|
source?: "bdd" | "live-suite" | "junit" | "cli" | "other" | undefined;
|
|
10970
10975
|
suite?: string | undefined;
|
|
10971
10976
|
limit?: number | undefined;
|
|
10977
|
+
offset?: number | undefined;
|
|
10972
10978
|
}>;
|
|
10973
10979
|
response: z.ZodObject<{
|
|
10974
10980
|
runs: z.ZodArray<z.ZodObject<Omit<{
|
package/dist/index.js
CHANGED
|
@@ -264,7 +264,8 @@ var TestRunListInput = z.object({
|
|
|
264
264
|
status: TestRunStatus.optional(),
|
|
265
265
|
source: CreateTestRunInput.shape.source.optional(),
|
|
266
266
|
suite: z.string().min(1).max(240).optional(),
|
|
267
|
-
limit: z.coerce.number().int().min(1).max(200).optional()
|
|
267
|
+
limit: z.coerce.number().int().min(1).max(200).optional(),
|
|
268
|
+
offset: z.coerce.number().int().min(0).max(1e5).optional()
|
|
268
269
|
});
|
|
269
270
|
var TestRunListResponse = z.object({
|
|
270
271
|
runs: z.array(TestRun.omit({ cases: true }))
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/endpoints.ts","../src/errors.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import {\n ActionId,\n CreateEnvironmentInput,\n CreateFeatureInput,\n CreateFeatureRuleInput,\n CreateProjectInput,\n CreatePropertyInput,\n Environment,\n EnvironmentPublication,\n Experiment,\n ExperimentId,\n ExperimentSpec,\n ExperimentSpecBase,\n ExperimentState,\n Feature,\n FeatureRule,\n Project,\n Property,\n} from '@fabricorg/experiments-domain';\nimport { z } from 'zod';\n\n/**\n * Each endpoint declares method, path template, request schema, and response\n * schema. The server registers handlers against this table; the api-client\n * derives its method signatures from it. Drift between client and server is\n * impossible by construction.\n */\n\nexport interface EndpointDef<\n TParams extends z.ZodTypeAny = z.ZodTypeAny,\n TResponse extends z.ZodTypeAny = z.ZodTypeAny,\n> {\n method: 'GET' | 'POST' | 'DELETE';\n /** Path with `:param` placeholders, e.g. `/v1/orgs/:orgId/experiments`. */\n path: string;\n /** Request schema. For GET, used to validate query params; otherwise body. */\n params: TParams;\n response: TResponse;\n /** True if this endpoint mutates state — server applies idempotency cache. */\n mutates: boolean;\n /** Required role on the active org. `null` = any authenticated session. */\n requiresRole: 'owner' | 'admin' | 'experimenter' | 'viewer' | null;\n}\n\nconst Empty = z.object({});\n\n// ---- tenants ----------------------------------------------------------------\n\nexport const TenantSelf = z.object({\n organization: z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.string().datetime(),\n }),\n member: z.object({\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n }),\n user: z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n }),\n});\nexport type TenantSelf = z.infer<typeof TenantSelf>;\n\n// ---- workspace hierarchy ---------------------------------------------------\n\nexport const ProjectListResponse = z.object({ projects: z.array(Project) });\nexport const PropertyListResponse = z.object({ properties: z.array(Property) });\nexport const EnvironmentListResponse = z.object({ environments: z.array(Environment) });\nexport const FeatureListResponse = z.object({ features: z.array(Feature) });\nexport const FeatureRuleListResponse = z.object({ rules: z.array(FeatureRule) });\nexport const PublicationListResponse = z.object({ publications: z.array(EnvironmentPublication) });\nexport const PromoteEnvironmentInput = z.object({ sourceEnvironmentId: z.string().uuid() });\nexport const PromoteEnvironmentResponse = z.object({\n sourceEnvironmentId: z.string().uuid(),\n sourceVersion: z.number().int().positive(),\n targetEnvironmentId: z.string().uuid(),\n promotedRuleCount: z.number().int().nonnegative(),\n});\n\n// ---- experiments ------------------------------------------------------------\n\nexport const ExperimentSummary = z.object({\n id: Experiment.shape.id,\n name: Experiment.shape.name,\n state: ExperimentState,\n updatedAt: z.string().datetime(),\n});\nexport type ExperimentSummary = z.infer<typeof ExperimentSummary>;\n\nexport const ExperimentListResponse = z.object({\n experiments: z.array(ExperimentSummary),\n});\nexport type ExperimentListResponse = z.infer<typeof ExperimentListResponse>;\n\nexport const CreateExperimentInput = ExperimentSpecBase;\nexport type CreateExperimentInput = z.infer<typeof CreateExperimentInput>;\n\nexport const CreateExperimentResponse = z.object({\n experimentId: ExperimentId,\n idempotent: z.boolean().optional(),\n});\nexport type CreateExperimentResponse = z.infer<typeof CreateExperimentResponse>;\n\n/**\n * Aggregate row per variant for a given metric over an optional time window.\n * Sourced from the warehouse adapter (Databricks in prod, Local in dev).\n */\nexport const AggregateRow = z.object({\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionSum: z.number(),\n failureCount: z.number().int().nonnegative().default(0),\n});\nexport type AggregateRow = z.infer<typeof AggregateRow>;\n\nexport const AggregateInput = z.object({\n metric: z.string().min(1).max(120),\n fromIso: z.string().datetime().optional(),\n untilIso: z.string().datetime().optional(),\n segmentKey: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[A-Za-z0-9_.-]+$/)\n .optional(),\n prePeriodDays: z.coerce.number().int().min(1).max(365).optional(),\n});\nexport type AggregateInput = z.infer<typeof AggregateInput>;\n\nexport const AggregateResponse = z.object({\n experimentId: ExperimentId,\n metric: z.string(),\n rows: z.array(AggregateRow),\n /** ISO datetime — when this aggregate was computed. SDKs may cache by this. */\n computedAt: z.string().datetime(),\n analytics: z\n .object({\n variants: z.array(\n z.object({\n variantKey: z.string(),\n exposedSubjects: z.number().int().nonnegative(),\n convertedSubjects: z.number().int().nonnegative(),\n meanTimeToConvertMs: z.number().nonnegative().nullable(),\n medianTimeToConvertMs: z.number().nonnegative().nullable(),\n p90TimeToConvertMs: z.number().nonnegative().nullable(),\n meanConversionDepth: z.number().nonnegative(),\n conversionDepth: z.object({\n oneOrMore: z.number().int().nonnegative(),\n twoOrMore: z.number().int().nonnegative(),\n threeOrMore: z.number().int().nonnegative(),\n }),\n cupedAdjustedRate: z.number().nullable(),\n cupedLift: z.number().nullable(),\n }),\n ),\n segments: z.array(\n z.object({\n segmentValue: z.string(),\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionRate: z.number().min(0).max(1),\n }),\n ),\n segmentKey: z.string().optional(),\n cuped: z.object({\n available: z.boolean(),\n prePeriodDays: z.number().int().positive(),\n theta: z.number().nullable(),\n varianceReduction: z.number().nullable(),\n }),\n })\n .optional(),\n});\nexport type AggregateResponse = z.infer<typeof AggregateResponse>;\n\nexport const InvokeActionInput = z.object({\n actionId: ActionId,\n params: z.record(z.unknown()),\n /** Optional client-supplied idempotency key. */\n idempotencyKey: z.string().min(8).max(128).optional(),\n});\nexport type InvokeActionInput = z.infer<typeof InvokeActionInput>;\n\nexport const InvokeActionResponse = z.object({\n success: z.boolean(),\n data: z.record(z.unknown()).optional(),\n error: z.string().optional(),\n});\nexport type InvokeActionResponse = z.infer<typeof InvokeActionResponse>;\n\n// ---- manifests --------------------------------------------------------------\n\n/** Result of pushing the signed manifest to the Cloudflare manifest-worker. */\nexport const EdgePushResult = z.object({\n pushed: z.boolean(),\n reason: z.string().optional(),\n status: z.number().int().optional(),\n});\nexport type EdgePushResult = z.infer<typeof EdgePushResult>;\n\nexport const PublishManifestResponse = z.object({\n manifestVersion: z.number().int().nonnegative(),\n contentHash: z.string().regex(/^[0-9a-f]{64}$/),\n experimentCount: z.number().int().nonnegative(),\n /** Edge push status. `pushed: false` with `reason: 'unconfigured'` is normal in local dev. */\n edgePush: EdgePushResult,\n});\nexport type PublishManifestResponse = z.infer<typeof PublishManifestResponse>;\n\nexport const ManifestKey = z.object({\n keyId: z.string(),\n publicKeyHex: z.string().regex(/^[0-9a-f]+$/),\n status: z.enum(['active', 'retiring', 'retired']),\n createdAt: z.string().datetime(),\n retiredAt: z.string().datetime().nullable(),\n});\nexport type ManifestKey = z.infer<typeof ManifestKey>;\n\nexport const ManifestKeysResponse = z.object({ keys: z.array(ManifestKey) });\nexport type ManifestKeysResponse = z.infer<typeof ManifestKeysResponse>;\n\n// ---- preview tokens ---------------------------------------------------------\n\nexport const PreviewSignInput = z.object({\n experimentId: ExperimentId,\n variantKey: z.string().min(1).max(32),\n /** Token TTL in seconds. Clamped server-side to [60, 3600]; default 900. */\n ttlSeconds: z.number().int().min(60).max(3600).optional(),\n});\nexport type PreviewSignInput = z.infer<typeof PreviewSignInput>;\n\nexport const PreviewSignResponse = z.object({\n token: z.string(),\n /** ISO datetime when the token expires. */\n expiresAt: z.string().datetime(),\n /** ID of the public JWKS key used to sign — exposed for debugging only. */\n keyId: z.string(),\n /** Unique JWT id for audit/debugging and future replay controls. */\n jti: z.string(),\n});\nexport type PreviewSignResponse = z.infer<typeof PreviewSignResponse>;\n\n// ---- audit ------------------------------------------------------------------\n\nexport const AuditEvent = z.object({\n id: z.string(),\n type: z.string(),\n experimentId: z.string(),\n actorId: z.string(),\n at: z.string().datetime(),\n payload: z.record(z.unknown()),\n});\nexport type AuditEvent = z.infer<typeof AuditEvent>;\n\nexport const AuditListResponse = z.object({ events: z.array(AuditEvent) });\nexport type AuditListResponse = z.infer<typeof AuditListResponse>;\n\nexport const AuditExport = z.object({\n id: z.string(),\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n status: z.enum(['active', 'paused', 'failed']),\n lastCursorAt: z.string().datetime().nullable(),\n});\nexport const AuditExportListResponse = z.object({ exports: z.array(AuditExport) });\n\nexport const CreateAuditExportInput = z.object({\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n /** Free-form config; encrypted at rest. Schema enforced by destination kind. */\n config: z.record(z.unknown()),\n});\n\n// ---- api keys ---------------------------------------------------------------\n\nexport const ApiKeySummary = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n scopes: z.array(z.enum(['read', 'write', 'admin'])),\n createdAt: z.string().datetime(),\n lastUsedAt: z.string().datetime().nullable(),\n expiresAt: z.string().datetime().nullable(),\n});\nexport const ApiKeyListResponse = z.object({ keys: z.array(ApiKeySummary) });\n\nexport const CreateApiKeyInput = z.object({\n name: z.string().min(1).max(120),\n /** ISO datetime of expiry; null for non-expiring (not recommended in prod). */\n expiresAt: z.string().datetime().nullable(),\n /** Role assigned to the key. Defaults to the creator's role. */\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']).optional(),\n /** Permission scopes assigned to the key. Defaults are derived from role. */\n scopes: z.array(z.enum(['read', 'write', 'admin'])).optional(),\n});\nexport type CreateApiKeyInput = z.infer<typeof CreateApiKeyInput>;\n\nexport const CreateApiKeyResponse = ApiKeySummary.extend({\n /** Plaintext key, returned exactly once at creation time. */\n key: z.string(),\n});\nexport type CreateApiKeyResponse = z.infer<typeof CreateApiKeyResponse>;\n\n// ---- SAML / SSO --------------------------------------------------------------\n\nexport const SamlConfig = z\n .object({\n enabled: z.boolean(),\n connectionId: z.string().min(1).max(200).nullable(),\n issuer: z.string().min(1).max(500).nullable(),\n ssoUrl: z.string().url().nullable(),\n certificate: z.string().min(1).max(10000).nullable(),\n })\n .refine(\n (value) =>\n !value.enabled ||\n Boolean(value.connectionId && value.issuer && value.ssoUrl && value.certificate),\n {\n message: 'connectionId, issuer, ssoUrl, certificate required when SAML is enabled',\n },\n );\nexport type SamlConfig = z.infer<typeof SamlConfig>;\n\n// ---- quality / test evidence ------------------------------------------------\n\nexport const TestRunStatus = z.enum(['running', 'passed', 'failed', 'skipped', 'canceled']);\nexport type TestRunStatus = z.infer<typeof TestRunStatus>;\n\nexport const TestCaseStatus = z.enum([\n 'passed',\n 'failed',\n 'skipped',\n 'pending',\n 'undefined',\n 'unknown',\n]);\n\nexport const TestCaseResult = z.object({\n id: z.string().max(240).optional(),\n name: z.string().min(1).max(500),\n uri: z.string().max(1000).optional(),\n status: TestCaseStatus,\n durationMs: z.number().int().nonnegative().max(86_400_000),\n tags: z.array(z.string().max(120)).max(100).default([]),\n error: z.string().max(65_536).optional(),\n statementId: z.string().max(240).optional(),\n resourceUrl: z.string().url().max(4000).optional(),\n details: z.record(z.unknown()).optional(),\n});\nexport type TestCaseResult = z.infer<typeof TestCaseResult>;\n\nexport const TestRunSummary = z.object({\n total: z.number().int().nonnegative(),\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n skipped: z.number().int().nonnegative(),\n pending: z.number().int().nonnegative().default(0),\n});\n\nexport const TestRunArtifact = z.object({\n name: z.string().min(1).max(240),\n url: z.string().url().max(4000),\n mediaType: z.string().max(240).optional(),\n});\n\nexport const CreateTestRunInput = z.object({\n externalId: z.string().min(1).max(300).optional(),\n source: z.enum(['bdd', 'live-suite', 'junit', 'cli', 'other']),\n suite: z.string().min(1).max(240),\n status: TestRunStatus,\n startedAt: z.string().datetime().nullable().optional(),\n finishedAt: z.string().datetime().nullable().optional(),\n durationMs: z.number().int().nonnegative().max(604_800_000).default(0),\n summary: TestRunSummary,\n environment: z.record(z.unknown()).default({}),\n revision: z.record(z.unknown()).default({}),\n cases: z.array(TestCaseResult).max(2000).default([]),\n artifacts: z.array(TestRunArtifact).max(100).default([]),\n});\nexport type CreateTestRunInput = z.infer<typeof CreateTestRunInput>;\n\nexport const TestRun = CreateTestRunInput.extend({\n id: z.string().uuid(),\n orgId: z.string(),\n createdBy: z.string(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\nexport type TestRun = z.infer<typeof TestRun>;\n\nexport const TestRunListInput = z.object({\n status: TestRunStatus.optional(),\n source: CreateTestRunInput.shape.source.optional(),\n suite: z.string().min(1).max(240).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n});\nexport const TestRunListResponse = z.object({\n runs: z.array(TestRun.omit({ cases: true })),\n});\n\n// ---- the registry ----------------------------------------------------------\n\nexport const endpoints = {\n 'tenants.me': {\n method: 'GET',\n path: '/v1/tenants/me',\n params: Empty,\n response: TenantSelf,\n mutates: false,\n requiresRole: null,\n },\n\n 'experiments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments',\n params: Empty,\n response: ExperimentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments',\n params: CreateExperimentInput,\n response: CreateExperimentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId',\n params: Empty,\n response: Experiment,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.invokeAction': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments/actions',\n params: InvokeActionInput,\n response: InvokeActionResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.aggregate': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId/aggregate',\n params: AggregateInput,\n response: AggregateResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'projects.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects',\n params: Empty,\n response: ProjectListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'projects.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects',\n params: CreateProjectInput,\n response: Project,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'properties.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: Empty,\n response: PropertyListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'properties.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: CreatePropertyInput,\n response: Property,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: Empty,\n response: EnvironmentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: CreateEnvironmentInput,\n response: Environment,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'features.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: Empty,\n response: FeatureListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'features.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: CreateFeatureInput,\n response: Feature,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'rules.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: Empty,\n response: FeatureRuleListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'rules.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: CreateFeatureRuleInput,\n response: FeatureRule,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/publish',\n params: Empty,\n response: EnvironmentPublication,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publications': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/publications',\n params: Empty,\n response: PublicationListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.promote': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/promote',\n params: PromoteEnvironmentInput,\n response: PromoteEnvironmentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'configuration.getPublished': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/configuration',\n params: Empty,\n response: EnvironmentPublication,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'manifests.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/publish',\n params: Empty,\n response: PublishManifestResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'manifests.getKeys': {\n method: 'GET',\n path: '/v1/orgs/:orgId/manifests/keys',\n params: Empty,\n response: ManifestKeysResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'manifests.rotateKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/rotate',\n params: z.object({ keyId: z.string().min(1).max(128) }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n 'manifests.retireKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/retire',\n params: z.object({ keyId: z.string() }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'preview.sign': {\n method: 'POST',\n path: '/v1/orgs/:orgId/preview/sign',\n params: PreviewSignInput,\n response: PreviewSignResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n\n 'audit.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit',\n params: Empty,\n response: AuditListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'audit.exports.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit/exports',\n params: Empty,\n response: AuditExportListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'audit.exports.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/audit/exports',\n params: CreateAuditExportInput,\n response: AuditExport,\n mutates: true,\n requiresRole: 'admin',\n },\n 'audit.exports.delete': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/audit/exports/:exportId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'apiKeys.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/api-keys',\n params: Empty,\n response: ApiKeyListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'apiKeys.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/api-keys',\n params: CreateApiKeyInput,\n response: CreateApiKeyResponse,\n mutates: true,\n requiresRole: 'admin',\n },\n 'apiKeys.revoke': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/api-keys/:keyId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'saml.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/saml',\n params: Empty,\n response: SamlConfig,\n mutates: false,\n requiresRole: 'owner',\n },\n 'saml.update': {\n method: 'POST',\n path: '/v1/orgs/:orgId/saml',\n params: SamlConfig,\n response: SamlConfig,\n mutates: true,\n requiresRole: 'owner',\n },\n\n 'testRuns.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs',\n params: TestRunListInput,\n response: TestRunListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'testRuns.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/test-runs',\n params: CreateTestRunInput,\n response: TestRun,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'testRuns.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs/:runId',\n params: Empty,\n response: TestRun,\n mutates: false,\n requiresRole: 'viewer',\n },\n} satisfies Record<string, EndpointDef>;\n\nexport type EndpointName = keyof typeof endpoints;\nexport type EndpointParams<E extends EndpointName> = z.infer<(typeof endpoints)[E]['params']>;\nexport type EndpointResponse<E extends EndpointName> = z.infer<(typeof endpoints)[E]['response']>;\n\n/** Substitute path parameters in a path template. */\nexport function buildPath(template: string, pathParams: Record<string, string>): string {\n return template.replace(/:([a-zA-Z][a-zA-Z0-9_]*)/g, (_, name) => {\n const v = pathParams[name];\n if (v == null) throw new Error(`Missing path parameter: ${name}`);\n return encodeURIComponent(v);\n });\n}\n","import { z } from 'zod';\n\nexport const ApiError = z.object({\n code: z.enum([\n 'UNAUTHENTICATED',\n 'FORBIDDEN',\n 'NOT_FOUND',\n 'VALIDATION_FAILED',\n 'CONFLICT',\n 'RATE_LIMITED',\n 'INTERNAL',\n ]),\n message: z.string(),\n details: z.record(z.unknown()).optional(),\n});\nexport type ApiError = z.infer<typeof ApiError>;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/endpoints.ts","../src/errors.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import {\n ActionId,\n CreateEnvironmentInput,\n CreateFeatureInput,\n CreateFeatureRuleInput,\n CreateProjectInput,\n CreatePropertyInput,\n Environment,\n EnvironmentPublication,\n Experiment,\n ExperimentId,\n ExperimentSpec,\n ExperimentSpecBase,\n ExperimentState,\n Feature,\n FeatureRule,\n Project,\n Property,\n} from '@fabricorg/experiments-domain';\nimport { z } from 'zod';\n\n/**\n * Each endpoint declares method, path template, request schema, and response\n * schema. The server registers handlers against this table; the api-client\n * derives its method signatures from it. Drift between client and server is\n * impossible by construction.\n */\n\nexport interface EndpointDef<\n TParams extends z.ZodTypeAny = z.ZodTypeAny,\n TResponse extends z.ZodTypeAny = z.ZodTypeAny,\n> {\n method: 'GET' | 'POST' | 'DELETE';\n /** Path with `:param` placeholders, e.g. `/v1/orgs/:orgId/experiments`. */\n path: string;\n /** Request schema. For GET, used to validate query params; otherwise body. */\n params: TParams;\n response: TResponse;\n /** True if this endpoint mutates state — server applies idempotency cache. */\n mutates: boolean;\n /** Required role on the active org. `null` = any authenticated session. */\n requiresRole: 'owner' | 'admin' | 'experimenter' | 'viewer' | null;\n}\n\nconst Empty = z.object({});\n\n// ---- tenants ----------------------------------------------------------------\n\nexport const TenantSelf = z.object({\n organization: z.object({\n id: z.string(),\n name: z.string(),\n slug: z.string(),\n createdAt: z.string().datetime(),\n }),\n member: z.object({\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n }),\n user: z.object({\n id: z.string(),\n email: z.string().email(),\n name: z.string().nullable(),\n }),\n});\nexport type TenantSelf = z.infer<typeof TenantSelf>;\n\n// ---- workspace hierarchy ---------------------------------------------------\n\nexport const ProjectListResponse = z.object({ projects: z.array(Project) });\nexport const PropertyListResponse = z.object({ properties: z.array(Property) });\nexport const EnvironmentListResponse = z.object({ environments: z.array(Environment) });\nexport const FeatureListResponse = z.object({ features: z.array(Feature) });\nexport const FeatureRuleListResponse = z.object({ rules: z.array(FeatureRule) });\nexport const PublicationListResponse = z.object({ publications: z.array(EnvironmentPublication) });\nexport const PromoteEnvironmentInput = z.object({ sourceEnvironmentId: z.string().uuid() });\nexport const PromoteEnvironmentResponse = z.object({\n sourceEnvironmentId: z.string().uuid(),\n sourceVersion: z.number().int().positive(),\n targetEnvironmentId: z.string().uuid(),\n promotedRuleCount: z.number().int().nonnegative(),\n});\n\n// ---- experiments ------------------------------------------------------------\n\nexport const ExperimentSummary = z.object({\n id: Experiment.shape.id,\n name: Experiment.shape.name,\n state: ExperimentState,\n updatedAt: z.string().datetime(),\n});\nexport type ExperimentSummary = z.infer<typeof ExperimentSummary>;\n\nexport const ExperimentListResponse = z.object({\n experiments: z.array(ExperimentSummary),\n});\nexport type ExperimentListResponse = z.infer<typeof ExperimentListResponse>;\n\nexport const CreateExperimentInput = ExperimentSpecBase;\nexport type CreateExperimentInput = z.infer<typeof CreateExperimentInput>;\n\nexport const CreateExperimentResponse = z.object({\n experimentId: ExperimentId,\n idempotent: z.boolean().optional(),\n});\nexport type CreateExperimentResponse = z.infer<typeof CreateExperimentResponse>;\n\n/**\n * Aggregate row per variant for a given metric over an optional time window.\n * Sourced from the warehouse adapter (Databricks in prod, Local in dev).\n */\nexport const AggregateRow = z.object({\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionSum: z.number(),\n failureCount: z.number().int().nonnegative().default(0),\n});\nexport type AggregateRow = z.infer<typeof AggregateRow>;\n\nexport const AggregateInput = z.object({\n metric: z.string().min(1).max(120),\n fromIso: z.string().datetime().optional(),\n untilIso: z.string().datetime().optional(),\n segmentKey: z\n .string()\n .min(1)\n .max(80)\n .regex(/^[A-Za-z0-9_.-]+$/)\n .optional(),\n prePeriodDays: z.coerce.number().int().min(1).max(365).optional(),\n});\nexport type AggregateInput = z.infer<typeof AggregateInput>;\n\nexport const AggregateResponse = z.object({\n experimentId: ExperimentId,\n metric: z.string(),\n rows: z.array(AggregateRow),\n /** ISO datetime — when this aggregate was computed. SDKs may cache by this. */\n computedAt: z.string().datetime(),\n analytics: z\n .object({\n variants: z.array(\n z.object({\n variantKey: z.string(),\n exposedSubjects: z.number().int().nonnegative(),\n convertedSubjects: z.number().int().nonnegative(),\n meanTimeToConvertMs: z.number().nonnegative().nullable(),\n medianTimeToConvertMs: z.number().nonnegative().nullable(),\n p90TimeToConvertMs: z.number().nonnegative().nullable(),\n meanConversionDepth: z.number().nonnegative(),\n conversionDepth: z.object({\n oneOrMore: z.number().int().nonnegative(),\n twoOrMore: z.number().int().nonnegative(),\n threeOrMore: z.number().int().nonnegative(),\n }),\n cupedAdjustedRate: z.number().nullable(),\n cupedLift: z.number().nullable(),\n }),\n ),\n segments: z.array(\n z.object({\n segmentValue: z.string(),\n variantKey: z.string(),\n exposureCount: z.number().int().nonnegative(),\n conversionCount: z.number().int().nonnegative(),\n conversionRate: z.number().min(0).max(1),\n }),\n ),\n segmentKey: z.string().optional(),\n cuped: z.object({\n available: z.boolean(),\n prePeriodDays: z.number().int().positive(),\n theta: z.number().nullable(),\n varianceReduction: z.number().nullable(),\n }),\n })\n .optional(),\n});\nexport type AggregateResponse = z.infer<typeof AggregateResponse>;\n\nexport const InvokeActionInput = z.object({\n actionId: ActionId,\n params: z.record(z.unknown()),\n /** Optional client-supplied idempotency key. */\n idempotencyKey: z.string().min(8).max(128).optional(),\n});\nexport type InvokeActionInput = z.infer<typeof InvokeActionInput>;\n\nexport const InvokeActionResponse = z.object({\n success: z.boolean(),\n data: z.record(z.unknown()).optional(),\n error: z.string().optional(),\n});\nexport type InvokeActionResponse = z.infer<typeof InvokeActionResponse>;\n\n// ---- manifests --------------------------------------------------------------\n\n/** Result of pushing the signed manifest to the Cloudflare manifest-worker. */\nexport const EdgePushResult = z.object({\n pushed: z.boolean(),\n reason: z.string().optional(),\n status: z.number().int().optional(),\n});\nexport type EdgePushResult = z.infer<typeof EdgePushResult>;\n\nexport const PublishManifestResponse = z.object({\n manifestVersion: z.number().int().nonnegative(),\n contentHash: z.string().regex(/^[0-9a-f]{64}$/),\n experimentCount: z.number().int().nonnegative(),\n /** Edge push status. `pushed: false` with `reason: 'unconfigured'` is normal in local dev. */\n edgePush: EdgePushResult,\n});\nexport type PublishManifestResponse = z.infer<typeof PublishManifestResponse>;\n\nexport const ManifestKey = z.object({\n keyId: z.string(),\n publicKeyHex: z.string().regex(/^[0-9a-f]+$/),\n status: z.enum(['active', 'retiring', 'retired']),\n createdAt: z.string().datetime(),\n retiredAt: z.string().datetime().nullable(),\n});\nexport type ManifestKey = z.infer<typeof ManifestKey>;\n\nexport const ManifestKeysResponse = z.object({ keys: z.array(ManifestKey) });\nexport type ManifestKeysResponse = z.infer<typeof ManifestKeysResponse>;\n\n// ---- preview tokens ---------------------------------------------------------\n\nexport const PreviewSignInput = z.object({\n experimentId: ExperimentId,\n variantKey: z.string().min(1).max(32),\n /** Token TTL in seconds. Clamped server-side to [60, 3600]; default 900. */\n ttlSeconds: z.number().int().min(60).max(3600).optional(),\n});\nexport type PreviewSignInput = z.infer<typeof PreviewSignInput>;\n\nexport const PreviewSignResponse = z.object({\n token: z.string(),\n /** ISO datetime when the token expires. */\n expiresAt: z.string().datetime(),\n /** ID of the public JWKS key used to sign — exposed for debugging only. */\n keyId: z.string(),\n /** Unique JWT id for audit/debugging and future replay controls. */\n jti: z.string(),\n});\nexport type PreviewSignResponse = z.infer<typeof PreviewSignResponse>;\n\n// ---- audit ------------------------------------------------------------------\n\nexport const AuditEvent = z.object({\n id: z.string(),\n type: z.string(),\n experimentId: z.string(),\n actorId: z.string(),\n at: z.string().datetime(),\n payload: z.record(z.unknown()),\n});\nexport type AuditEvent = z.infer<typeof AuditEvent>;\n\nexport const AuditListResponse = z.object({ events: z.array(AuditEvent) });\nexport type AuditListResponse = z.infer<typeof AuditListResponse>;\n\nexport const AuditExport = z.object({\n id: z.string(),\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n status: z.enum(['active', 'paused', 'failed']),\n lastCursorAt: z.string().datetime().nullable(),\n});\nexport const AuditExportListResponse = z.object({ exports: z.array(AuditExport) });\n\nexport const CreateAuditExportInput = z.object({\n destinationKind: z.enum(['s3', 'r2', 'splunk-hec']),\n /** Free-form config; encrypted at rest. Schema enforced by destination kind. */\n config: z.record(z.unknown()),\n});\n\n// ---- api keys ---------------------------------------------------------------\n\nexport const ApiKeySummary = z.object({\n id: z.string(),\n name: z.string(),\n prefix: z.string(),\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']),\n scopes: z.array(z.enum(['read', 'write', 'admin'])),\n createdAt: z.string().datetime(),\n lastUsedAt: z.string().datetime().nullable(),\n expiresAt: z.string().datetime().nullable(),\n});\nexport const ApiKeyListResponse = z.object({ keys: z.array(ApiKeySummary) });\n\nexport const CreateApiKeyInput = z.object({\n name: z.string().min(1).max(120),\n /** ISO datetime of expiry; null for non-expiring (not recommended in prod). */\n expiresAt: z.string().datetime().nullable(),\n /** Role assigned to the key. Defaults to the creator's role. */\n role: z.enum(['owner', 'admin', 'experimenter', 'viewer']).optional(),\n /** Permission scopes assigned to the key. Defaults are derived from role. */\n scopes: z.array(z.enum(['read', 'write', 'admin'])).optional(),\n});\nexport type CreateApiKeyInput = z.infer<typeof CreateApiKeyInput>;\n\nexport const CreateApiKeyResponse = ApiKeySummary.extend({\n /** Plaintext key, returned exactly once at creation time. */\n key: z.string(),\n});\nexport type CreateApiKeyResponse = z.infer<typeof CreateApiKeyResponse>;\n\n// ---- SAML / SSO --------------------------------------------------------------\n\nexport const SamlConfig = z\n .object({\n enabled: z.boolean(),\n connectionId: z.string().min(1).max(200).nullable(),\n issuer: z.string().min(1).max(500).nullable(),\n ssoUrl: z.string().url().nullable(),\n certificate: z.string().min(1).max(10000).nullable(),\n })\n .refine(\n (value) =>\n !value.enabled ||\n Boolean(value.connectionId && value.issuer && value.ssoUrl && value.certificate),\n {\n message: 'connectionId, issuer, ssoUrl, certificate required when SAML is enabled',\n },\n );\nexport type SamlConfig = z.infer<typeof SamlConfig>;\n\n// ---- quality / test evidence ------------------------------------------------\n\nexport const TestRunStatus = z.enum(['running', 'passed', 'failed', 'skipped', 'canceled']);\nexport type TestRunStatus = z.infer<typeof TestRunStatus>;\n\nexport const TestCaseStatus = z.enum([\n 'passed',\n 'failed',\n 'skipped',\n 'pending',\n 'undefined',\n 'unknown',\n]);\n\nexport const TestCaseResult = z.object({\n id: z.string().max(240).optional(),\n name: z.string().min(1).max(500),\n uri: z.string().max(1000).optional(),\n status: TestCaseStatus,\n durationMs: z.number().int().nonnegative().max(86_400_000),\n tags: z.array(z.string().max(120)).max(100).default([]),\n error: z.string().max(65_536).optional(),\n statementId: z.string().max(240).optional(),\n resourceUrl: z.string().url().max(4000).optional(),\n details: z.record(z.unknown()).optional(),\n});\nexport type TestCaseResult = z.infer<typeof TestCaseResult>;\n\nexport const TestRunSummary = z.object({\n total: z.number().int().nonnegative(),\n passed: z.number().int().nonnegative(),\n failed: z.number().int().nonnegative(),\n skipped: z.number().int().nonnegative(),\n pending: z.number().int().nonnegative().default(0),\n});\n\nexport const TestRunArtifact = z.object({\n name: z.string().min(1).max(240),\n url: z.string().url().max(4000),\n mediaType: z.string().max(240).optional(),\n});\n\nexport const CreateTestRunInput = z.object({\n externalId: z.string().min(1).max(300).optional(),\n source: z.enum(['bdd', 'live-suite', 'junit', 'cli', 'other']),\n suite: z.string().min(1).max(240),\n status: TestRunStatus,\n startedAt: z.string().datetime().nullable().optional(),\n finishedAt: z.string().datetime().nullable().optional(),\n durationMs: z.number().int().nonnegative().max(604_800_000).default(0),\n summary: TestRunSummary,\n environment: z.record(z.unknown()).default({}),\n revision: z.record(z.unknown()).default({}),\n cases: z.array(TestCaseResult).max(2000).default([]),\n artifacts: z.array(TestRunArtifact).max(100).default([]),\n});\nexport type CreateTestRunInput = z.infer<typeof CreateTestRunInput>;\n\nexport const TestRun = CreateTestRunInput.extend({\n id: z.string().uuid(),\n orgId: z.string(),\n createdBy: z.string(),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n});\nexport type TestRun = z.infer<typeof TestRun>;\n\nexport const TestRunListInput = z.object({\n status: TestRunStatus.optional(),\n source: CreateTestRunInput.shape.source.optional(),\n suite: z.string().min(1).max(240).optional(),\n limit: z.coerce.number().int().min(1).max(200).optional(),\n offset: z.coerce.number().int().min(0).max(100_000).optional(),\n});\nexport const TestRunListResponse = z.object({\n runs: z.array(TestRun.omit({ cases: true })),\n});\n\n// ---- the registry ----------------------------------------------------------\n\nexport const endpoints = {\n 'tenants.me': {\n method: 'GET',\n path: '/v1/tenants/me',\n params: Empty,\n response: TenantSelf,\n mutates: false,\n requiresRole: null,\n },\n\n 'experiments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments',\n params: Empty,\n response: ExperimentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments',\n params: CreateExperimentInput,\n response: CreateExperimentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId',\n params: Empty,\n response: Experiment,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'experiments.invokeAction': {\n method: 'POST',\n path: '/v1/orgs/:orgId/experiments/actions',\n params: InvokeActionInput,\n response: InvokeActionResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'experiments.aggregate': {\n method: 'GET',\n path: '/v1/orgs/:orgId/experiments/:experimentId/aggregate',\n params: AggregateInput,\n response: AggregateResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'projects.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects',\n params: Empty,\n response: ProjectListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'projects.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects',\n params: CreateProjectInput,\n response: Project,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'properties.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: Empty,\n response: PropertyListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'properties.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/properties',\n params: CreatePropertyInput,\n response: Property,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: Empty,\n response: EnvironmentListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/environments',\n params: CreateEnvironmentInput,\n response: Environment,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'features.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: Empty,\n response: FeatureListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'features.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/projects/:projectId/features',\n params: CreateFeatureInput,\n response: Feature,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'rules.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: Empty,\n response: FeatureRuleListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'rules.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/features/:featureId/rules',\n params: CreateFeatureRuleInput,\n response: FeatureRule,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/publish',\n params: Empty,\n response: EnvironmentPublication,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'environments.publications': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/publications',\n params: Empty,\n response: PublicationListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'environments.promote': {\n method: 'POST',\n path: '/v1/orgs/:orgId/environments/:environmentId/promote',\n params: PromoteEnvironmentInput,\n response: PromoteEnvironmentResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'configuration.getPublished': {\n method: 'GET',\n path: '/v1/orgs/:orgId/environments/:environmentId/configuration',\n params: Empty,\n response: EnvironmentPublication,\n mutates: false,\n requiresRole: 'viewer',\n },\n\n 'manifests.publish': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/publish',\n params: Empty,\n response: PublishManifestResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'manifests.getKeys': {\n method: 'GET',\n path: '/v1/orgs/:orgId/manifests/keys',\n params: Empty,\n response: ManifestKeysResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'manifests.rotateKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/rotate',\n params: z.object({ keyId: z.string().min(1).max(128) }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n 'manifests.retireKey': {\n method: 'POST',\n path: '/v1/orgs/:orgId/manifests/keys/retire',\n params: z.object({ keyId: z.string() }),\n response: ManifestKey,\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'preview.sign': {\n method: 'POST',\n path: '/v1/orgs/:orgId/preview/sign',\n params: PreviewSignInput,\n response: PreviewSignResponse,\n mutates: true,\n requiresRole: 'experimenter',\n },\n\n 'audit.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit',\n params: Empty,\n response: AuditListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'audit.exports.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/audit/exports',\n params: Empty,\n response: AuditExportListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'audit.exports.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/audit/exports',\n params: CreateAuditExportInput,\n response: AuditExport,\n mutates: true,\n requiresRole: 'admin',\n },\n 'audit.exports.delete': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/audit/exports/:exportId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'apiKeys.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/api-keys',\n params: Empty,\n response: ApiKeyListResponse,\n mutates: false,\n requiresRole: 'admin',\n },\n 'apiKeys.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/api-keys',\n params: CreateApiKeyInput,\n response: CreateApiKeyResponse,\n mutates: true,\n requiresRole: 'admin',\n },\n 'apiKeys.revoke': {\n method: 'DELETE',\n path: '/v1/orgs/:orgId/api-keys/:keyId',\n params: Empty,\n response: z.object({ ok: z.literal(true) }),\n mutates: true,\n requiresRole: 'admin',\n },\n\n 'saml.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/saml',\n params: Empty,\n response: SamlConfig,\n mutates: false,\n requiresRole: 'owner',\n },\n 'saml.update': {\n method: 'POST',\n path: '/v1/orgs/:orgId/saml',\n params: SamlConfig,\n response: SamlConfig,\n mutates: true,\n requiresRole: 'owner',\n },\n\n 'testRuns.list': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs',\n params: TestRunListInput,\n response: TestRunListResponse,\n mutates: false,\n requiresRole: 'viewer',\n },\n 'testRuns.create': {\n method: 'POST',\n path: '/v1/orgs/:orgId/test-runs',\n params: CreateTestRunInput,\n response: TestRun,\n mutates: true,\n requiresRole: 'experimenter',\n },\n 'testRuns.get': {\n method: 'GET',\n path: '/v1/orgs/:orgId/test-runs/:runId',\n params: Empty,\n response: TestRun,\n mutates: false,\n requiresRole: 'viewer',\n },\n} satisfies Record<string, EndpointDef>;\n\nexport type EndpointName = keyof typeof endpoints;\nexport type EndpointParams<E extends EndpointName> = z.infer<(typeof endpoints)[E]['params']>;\nexport type EndpointResponse<E extends EndpointName> = z.infer<(typeof endpoints)[E]['response']>;\n\n/** Substitute path parameters in a path template. */\nexport function buildPath(template: string, pathParams: Record<string, string>): string {\n return template.replace(/:([a-zA-Z][a-zA-Z0-9_]*)/g, (_, name) => {\n const v = pathParams[name];\n if (v == null) throw new Error(`Missing path parameter: ${name}`);\n return encodeURIComponent(v);\n });\n}\n","import { z } from 'zod';\n\nexport const ApiError = z.object({\n code: z.enum([\n 'UNAUTHENTICATED',\n 'FORBIDDEN',\n 'NOT_FOUND',\n 'VALIDATION_FAILED',\n 'CONFLICT',\n 'RATE_LIMITED',\n 'INTERNAL',\n ]),\n message: z.string(),\n details: z.record(z.unknown()).optional(),\n});\nexport type ApiError = z.infer<typeof ApiError>;\n"]}
|