@contractspec/lib.feature-flags 0.0.0-canary-20260113162409
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/LICENSE +21 -0
- package/README.md +173 -0
- package/dist/contracts/index.d.ts +1010 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +908 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/src/app-config/lifecycle.d.ts +1 -0
- package/dist/contracts/src/app-config/runtime.d.ts +13 -0
- package/dist/contracts/src/app-config/spec.d.ts +9 -0
- package/dist/contracts/src/app-config/validation.d.ts +8 -0
- package/dist/contracts/src/capabilities/capabilities.d.ts +33 -0
- package/dist/contracts/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/contracts/src/capabilities/index.d.ts +2 -0
- package/dist/contracts/src/capabilities/openbanking.d.ts +1 -0
- package/dist/contracts/src/client/index.d.ts +1 -0
- package/dist/contracts/src/client/react/drivers/rn-reusables.d.ts +1 -0
- package/dist/contracts/src/client/react/drivers/shadcn.d.ts +1 -0
- package/dist/contracts/src/client/react/feature-render.d.ts +3 -0
- package/dist/contracts/src/client/react/form-render.d.ts +4 -0
- package/dist/contracts/src/client/react/index.d.ts +4 -0
- package/dist/contracts/src/contract-registry/index.d.ts +2 -0
- package/dist/contracts/src/contract-registry/schemas.d.ts +2 -0
- package/dist/contracts/src/contract-registry/types.d.ts +1 -0
- package/dist/contracts/src/data-views/index.d.ts +3 -0
- package/dist/contracts/src/data-views/registry.d.ts +2 -0
- package/dist/contracts/src/data-views/spec.d.ts +2 -0
- package/dist/contracts/src/data-views/types.d.ts +2 -0
- package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/index.d.ts +25 -0
- package/dist/contracts/src/docs/presentations.d.ts +2 -0
- package/dist/contracts/src/docs/registry.d.ts +10 -0
- package/dist/contracts/src/docs/registry.d.ts.map +1 -0
- package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/contracts/README.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +1 -0
- package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +1 -0
- package/dist/contracts/src/events.d.ts +25 -0
- package/dist/contracts/src/events.d.ts.map +1 -0
- package/dist/contracts/src/examples/index.d.ts +4 -0
- package/dist/contracts/src/examples/registry.d.ts +2 -0
- package/dist/contracts/src/examples/schema.d.ts +2 -0
- package/dist/contracts/src/examples/types.d.ts +3 -0
- package/dist/contracts/src/examples/validation.d.ts +1 -0
- package/dist/contracts/src/experiments/evaluator.d.ts +2 -0
- package/dist/contracts/src/experiments/spec-resolver.d.ts +4 -0
- package/dist/contracts/src/experiments/spec.d.ts +13 -0
- package/dist/contracts/src/experiments/spec.d.ts.map +1 -0
- package/dist/contracts/src/features/index.d.ts +4 -0
- package/dist/contracts/src/features/install.d.ts +6 -0
- package/dist/contracts/src/features/registry.d.ts +2 -0
- package/dist/contracts/src/features/types.d.ts +86 -0
- package/dist/contracts/src/features/types.d.ts.map +1 -0
- package/dist/contracts/src/features/validation.d.ts +2 -0
- package/dist/contracts/src/forms/forms.d.ts +3 -0
- package/dist/contracts/src/forms/index.d.ts +1 -0
- package/dist/contracts/src/index.d.ts +51 -0
- package/dist/contracts/src/install.d.ts +7 -0
- package/dist/contracts/src/integrations/connection.d.ts +1 -0
- package/dist/contracts/src/integrations/index.d.ts +6 -0
- package/dist/contracts/src/integrations/openbanking/contracts/accounts.d.ts +4 -0
- package/dist/contracts/src/integrations/openbanking/contracts/balances.d.ts +4 -0
- package/dist/contracts/src/integrations/openbanking/contracts/index.d.ts +5 -0
- package/dist/contracts/src/integrations/openbanking/contracts/transactions.d.ts +4 -0
- package/dist/contracts/src/integrations/openbanking/guards.d.ts +1 -0
- package/dist/contracts/src/integrations/openbanking/models.d.ts +1 -0
- package/dist/contracts/src/integrations/openbanking/openbanking.feature.d.ts +1 -0
- package/dist/contracts/src/integrations/operations.d.ts +4 -0
- package/dist/contracts/src/integrations/providers/elevenlabs.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/gcs-storage.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/gmail.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/google-calendar.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/index.d.ts +11 -0
- package/dist/contracts/src/integrations/providers/mistral.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/postmark.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/powens.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/qdrant.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/registry.d.ts +1 -0
- package/dist/contracts/src/integrations/providers/stripe.d.ts +2 -0
- package/dist/contracts/src/integrations/providers/twilio-sms.d.ts +2 -0
- package/dist/contracts/src/integrations/spec.d.ts +3 -0
- package/dist/contracts/src/jsonschema.d.ts +4 -0
- package/dist/contracts/src/knowledge/index.d.ts +2 -0
- package/dist/contracts/src/knowledge/operations.d.ts +4 -0
- package/dist/contracts/src/knowledge/spaces/email-threads.d.ts +1 -0
- package/dist/contracts/src/knowledge/spaces/financial-docs.d.ts +1 -0
- package/dist/contracts/src/knowledge/spaces/financial-overview.d.ts +1 -0
- package/dist/contracts/src/knowledge/spaces/index.d.ts +6 -0
- package/dist/contracts/src/knowledge/spaces/product-canon.d.ts +1 -0
- package/dist/contracts/src/knowledge/spaces/support-faq.d.ts +1 -0
- package/dist/contracts/src/knowledge/spaces/uploaded-docs.d.ts +1 -0
- package/dist/contracts/src/knowledge/spec.d.ts +3 -0
- package/dist/contracts/src/llm/exporters.d.ts +7 -0
- package/dist/contracts/src/llm/index.d.ts +3 -0
- package/dist/contracts/src/llm/prompts.d.ts +2 -0
- package/dist/contracts/src/llm/types.d.ts +5 -0
- package/dist/contracts/src/migrations.d.ts +1 -0
- package/dist/contracts/src/model-registry.d.ts +1 -0
- package/dist/contracts/src/onboarding-base.d.ts +2 -0
- package/dist/contracts/src/openapi.d.ts +1 -0
- package/dist/contracts/src/operations/index.d.ts +2 -0
- package/dist/contracts/src/operations/operation.d.ts +170 -0
- package/dist/contracts/src/operations/operation.d.ts.map +1 -0
- package/dist/contracts/src/operations/registry.d.ts +6 -0
- package/dist/contracts/src/ownership.d.ts +61 -0
- package/dist/contracts/src/ownership.d.ts.map +1 -0
- package/dist/contracts/src/policy/engine.d.ts +3 -0
- package/dist/contracts/src/policy/index.d.ts +4 -0
- package/dist/contracts/src/policy/opa-adapter.d.ts +3 -0
- package/dist/contracts/src/policy/registry.d.ts +2 -0
- package/dist/contracts/src/policy/spec.d.ts +11 -0
- package/dist/contracts/src/policy/spec.d.ts.map +1 -0
- package/dist/contracts/src/presentations/index.d.ts +3 -0
- package/dist/contracts/src/presentations/presentations.d.ts +9 -0
- package/dist/contracts/src/presentations/presentations.d.ts.map +1 -0
- package/dist/contracts/src/presentations/registry.d.ts +2 -0
- package/dist/contracts/src/presentations/transform-engine.d.ts +2 -0
- package/dist/contracts/src/prompt.d.ts +2 -0
- package/dist/contracts/src/promptRegistry.d.ts +2 -0
- package/dist/contracts/src/regenerator/adapters.d.ts +1 -0
- package/dist/contracts/src/regenerator/executor.d.ts +1 -0
- package/dist/contracts/src/regenerator/index.d.ts +6 -0
- package/dist/contracts/src/regenerator/service.d.ts +2 -0
- package/dist/contracts/src/regenerator/sinks.d.ts +2 -0
- package/dist/contracts/src/regenerator/types.d.ts +3 -0
- package/dist/contracts/src/regenerator/utils.d.ts +1 -0
- package/dist/contracts/src/registry-utils.d.ts +1 -0
- package/dist/contracts/src/registry.d.ts +3 -0
- package/dist/contracts/src/resources.d.ts +19 -0
- package/dist/contracts/src/resources.d.ts.map +1 -0
- package/dist/contracts/src/schema-to-markdown.d.ts +1 -0
- package/dist/contracts/src/server/graphql-pothos.d.ts +7 -0
- package/dist/contracts/src/server/index.d.ts +7 -0
- package/dist/contracts/src/server/mcp/createMcpServer.d.ts +5 -0
- package/dist/contracts/src/server/mcp/mcpTypes.d.ts +2 -0
- package/dist/contracts/src/server/provider-mcp.d.ts +1 -0
- package/dist/contracts/src/server/rest-elysia.d.ts +3 -0
- package/dist/contracts/src/server/rest-express.d.ts +3 -0
- package/dist/contracts/src/server/rest-generic.d.ts +2 -0
- package/dist/contracts/src/server/rest-next-app.d.ts +3 -0
- package/dist/contracts/src/server/rest-next-pages.d.ts +3 -0
- package/dist/contracts/src/telemetry/anomaly.d.ts +2 -0
- package/dist/contracts/src/telemetry/index.d.ts +3 -0
- package/dist/contracts/src/telemetry/spec.d.ts +2 -0
- package/dist/contracts/src/telemetry/tracker.d.ts +2 -0
- package/dist/contracts/src/tests/index.d.ts +2 -0
- package/dist/contracts/src/tests/runner.d.ts +3 -0
- package/dist/contracts/src/tests/spec.d.ts +11 -0
- package/dist/contracts/src/tests/spec.d.ts.map +1 -0
- package/dist/contracts/src/themes.d.ts +2 -0
- package/dist/contracts/src/types.d.ts +5 -0
- package/dist/contracts/src/workflow/adapters/db-adapter.d.ts +1 -0
- package/dist/contracts/src/workflow/adapters/file-adapter.d.ts +1 -0
- package/dist/contracts/src/workflow/adapters/index.d.ts +3 -0
- package/dist/contracts/src/workflow/adapters/memory-store.d.ts +1 -0
- package/dist/contracts/src/workflow/index.d.ts +5 -0
- package/dist/contracts/src/workflow/overview.docblock.d.ts +1 -0
- package/dist/contracts/src/workflow/runner.d.ts +5 -0
- package/dist/contracts/src/workflow/spec.d.ts +5 -0
- package/dist/contracts/src/workflow/state.d.ts +1 -0
- package/dist/contracts/src/workflow/validation.d.ts +3 -0
- package/dist/contracts/src/workspace-config/contractsrc-schema.d.ts +1 -0
- package/dist/contracts/src/workspace-config/index.d.ts +1 -0
- package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +1 -0
- package/dist/docs/feature-flags.docblock.d.ts +1 -0
- package/dist/docs/feature-flags.docblock.js +76 -0
- package/dist/docs/feature-flags.docblock.js.map +1 -0
- package/dist/docs/index.d.ts +1 -0
- package/dist/docs/index.js +1 -0
- package/dist/entities/index.d.ts +201 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +325 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/evaluation/index.d.ts +163 -0
- package/dist/evaluation/index.d.ts.map +1 -0
- package/dist/evaluation/index.js +221 -0
- package/dist/evaluation/index.js.map +1 -0
- package/dist/events.d.ts +628 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +536 -0
- package/dist/events.js.map +1 -0
- package/dist/feature-flags.capability.d.ts +9 -0
- package/dist/feature-flags.capability.d.ts.map +1 -0
- package/dist/feature-flags.capability.js +25 -0
- package/dist/feature-flags.capability.js.map +1 -0
- package/dist/feature-flags.feature.d.ts +12 -0
- package/dist/feature-flags.feature.d.ts.map +1 -0
- package/dist/feature-flags.feature.js +148 -0
- package/dist/feature-flags.feature.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +8 -0
- package/dist/schema/src/EnumType.d.ts +36 -0
- package/dist/schema/src/EnumType.d.ts.map +1 -0
- package/dist/schema/src/FieldType.d.ts +30 -0
- package/dist/schema/src/FieldType.d.ts.map +1 -0
- package/dist/schema/src/GraphQLSchemaType.d.ts +2 -0
- package/dist/schema/src/JsonSchemaType.d.ts +2 -0
- package/dist/schema/src/ScalarTypeEnum.d.ts +1 -0
- package/dist/schema/src/SchemaModel.d.ts +70 -0
- package/dist/schema/src/SchemaModel.d.ts.map +1 -0
- package/dist/schema/src/SchemaModelType.d.ts +38 -0
- package/dist/schema/src/SchemaModelType.d.ts.map +1 -0
- package/dist/schema/src/ZodSchemaType.d.ts +2 -0
- package/dist/schema/src/entity/defineEntity.d.ts +1 -0
- package/dist/schema/src/entity/generator.d.ts +1 -0
- package/dist/schema/src/entity/index.d.ts +3 -0
- package/dist/schema/src/entity/types.d.ts +146 -0
- package/dist/schema/src/entity/types.d.ts.map +1 -0
- package/dist/schema/src/index.d.ts +10 -0
- package/package.json +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec.d.ts","names":[],"sources":["../../../../../contracts/src/tests/spec.ts"],"sourcesContent":[],"mappings":";;;;UAiFiB,WAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../state.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../state.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../state.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../docs/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./spec.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "zod";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./contractsrc-schema.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../docs/index.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
|
|
2
|
+
|
|
3
|
+
//#region src/docs/feature-flags.docblock.ts
|
|
4
|
+
registerDocBlocks([{
|
|
5
|
+
id: "docs.feature-flags.overview",
|
|
6
|
+
title: "Feature Flags & Experiments",
|
|
7
|
+
summary: "Reusable, spec-first feature flag and experiment module with targeting, gradual rollout, multivariate variants, and evaluation logging.",
|
|
8
|
+
kind: "reference",
|
|
9
|
+
visibility: "public",
|
|
10
|
+
route: "/docs/feature-flags/overview",
|
|
11
|
+
tags: [
|
|
12
|
+
"feature-flags",
|
|
13
|
+
"experiments",
|
|
14
|
+
"progressive-delivery"
|
|
15
|
+
],
|
|
16
|
+
body: `## What this module provides
|
|
17
|
+
|
|
18
|
+
- **Entities**: FeatureFlag, FlagTargetingRule, Experiment, ExperimentAssignment, FlagEvaluation.
|
|
19
|
+
- **Contracts**: create/update/delete/toggle/list/get flags; create/delete rules; evaluate flags; create/start/stop/get experiments.
|
|
20
|
+
- **Events**: flag.created/updated/deleted/toggled, rule.created/deleted, experiment.created/started/stopped, flag.evaluated, experiment.variant_assigned.
|
|
21
|
+
- **Evaluation Engine**: Deterministic evaluator with gradual rollout, rule priority, audience filters, and experiment bucketing.
|
|
22
|
+
|
|
23
|
+
## How to use
|
|
24
|
+
|
|
25
|
+
1) Compose schema
|
|
26
|
+
- Add \`featureFlagsSchemaContribution\` to your module composition.
|
|
27
|
+
|
|
28
|
+
2) Register contracts/events
|
|
29
|
+
- Import exports from \`@contractspec/lib.feature-flags\` into your spec registry.
|
|
30
|
+
|
|
31
|
+
3) Evaluate at runtime
|
|
32
|
+
- Instantiate \`FlagEvaluator\` with a repository implementation and optional logger.
|
|
33
|
+
- Evaluate with context attributes (userId, orgId, plan, segment, sessionId, attributes).
|
|
34
|
+
|
|
35
|
+
4) Wire observability
|
|
36
|
+
- Emit audit trail on config changes; emit \`flag.evaluated\` for analytics.
|
|
37
|
+
|
|
38
|
+
## Usage example
|
|
39
|
+
|
|
40
|
+
\`\`\`ts
|
|
41
|
+
import {
|
|
42
|
+
FlagEvaluator,
|
|
43
|
+
InMemoryFlagRepository,
|
|
44
|
+
} from '@contractspec/lib.feature-flags';
|
|
45
|
+
|
|
46
|
+
const repo = new InMemoryFlagRepository();
|
|
47
|
+
repo.addFlag({
|
|
48
|
+
id: 'flag-1',
|
|
49
|
+
key: 'new_dashboard',
|
|
50
|
+
status: 'GRADUAL',
|
|
51
|
+
defaultValue: false,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const evaluator = new FlagEvaluator({ repository: repo });
|
|
55
|
+
const result = await evaluator.evaluate('new_dashboard', {
|
|
56
|
+
userId: 'user-123',
|
|
57
|
+
orgId: 'org-456',
|
|
58
|
+
plan: 'pro',
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (result.enabled) {
|
|
62
|
+
// serve the new dashboard
|
|
63
|
+
}
|
|
64
|
+
\`\`\`,
|
|
65
|
+
|
|
66
|
+
## Guardrails
|
|
67
|
+
|
|
68
|
+
- Keep flag keys stable and human-readable; avoid PII in context.
|
|
69
|
+
- Ensure experiments’ variant percentages sum to 100; default flag status to OFF.
|
|
70
|
+
- Use org-scoped flags for multi-tenant isolation.
|
|
71
|
+
- Log evaluations only when needed to control volume; prefer sampling for noisy paths.
|
|
72
|
+
`
|
|
73
|
+
}]);
|
|
74
|
+
|
|
75
|
+
//#endregion
|
|
76
|
+
//# sourceMappingURL=feature-flags.docblock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-flags.docblock.js","names":[],"sources":["../../src/docs/feature-flags.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst featureFlagsDocBlocks: DocBlock[] = [\n {\n id: 'docs.feature-flags.overview',\n title: 'Feature Flags & Experiments',\n summary:\n 'Reusable, spec-first feature flag and experiment module with targeting, gradual rollout, multivariate variants, and evaluation logging.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/feature-flags/overview',\n tags: ['feature-flags', 'experiments', 'progressive-delivery'],\n body: `## What this module provides\n\n- **Entities**: FeatureFlag, FlagTargetingRule, Experiment, ExperimentAssignment, FlagEvaluation.\n- **Contracts**: create/update/delete/toggle/list/get flags; create/delete rules; evaluate flags; create/start/stop/get experiments.\n- **Events**: flag.created/updated/deleted/toggled, rule.created/deleted, experiment.created/started/stopped, flag.evaluated, experiment.variant_assigned.\n- **Evaluation Engine**: Deterministic evaluator with gradual rollout, rule priority, audience filters, and experiment bucketing.\n\n## How to use\n\n1) Compose schema\n - Add \\`featureFlagsSchemaContribution\\` to your module composition.\n\n2) Register contracts/events\n - Import exports from \\`@contractspec/lib.feature-flags\\` into your spec registry.\n\n3) Evaluate at runtime\n - Instantiate \\`FlagEvaluator\\` with a repository implementation and optional logger.\n - Evaluate with context attributes (userId, orgId, plan, segment, sessionId, attributes).\n\n4) Wire observability\n - Emit audit trail on config changes; emit \\`flag.evaluated\\` for analytics.\n\n## Usage example\n\n${'```'}ts\nimport {\n FlagEvaluator,\n InMemoryFlagRepository,\n} from '@contractspec/lib.feature-flags';\n\nconst repo = new InMemoryFlagRepository();\nrepo.addFlag({\n id: 'flag-1',\n key: 'new_dashboard',\n status: 'GRADUAL',\n defaultValue: false,\n});\n\nconst evaluator = new FlagEvaluator({ repository: repo });\nconst result = await evaluator.evaluate('new_dashboard', {\n userId: 'user-123',\n orgId: 'org-456',\n plan: 'pro',\n});\n\nif (result.enabled) {\n // serve the new dashboard\n}\n${'```'},\n\n## Guardrails\n\n- Keep flag keys stable and human-readable; avoid PII in context.\n- Ensure experiments’ variant percentages sum to 100; default flag status to OFF.\n- Use org-scoped flags for multi-tenant isolation.\n- Log evaluations only when needed to control volume; prefer sampling for noisy paths.\n`,\n },\n];\n\nregisterDocBlocks(featureFlagsDocBlocks);\n"],"mappings":";;;AAyEA,kBAtE0C,CACxC;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAiB;EAAe;EAAuB;CAC9D,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDP,CACF,CAEuC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./feature-flags.docblock.js";
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { EntityEnumDef, EntityEnumField, EntityRelationField, EntityScalarField, EntitySpec, ModuleSchemaContribution } from "../schema/src/entity/types.js";
|
|
2
|
+
import "../schema/src/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/entities/index.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Feature flag status enum.
|
|
7
|
+
*/
|
|
8
|
+
declare const FlagStatusEnum: EntityEnumDef;
|
|
9
|
+
/**
|
|
10
|
+
* Targeting rule operator enum.
|
|
11
|
+
*/
|
|
12
|
+
declare const RuleOperatorEnum: EntityEnumDef;
|
|
13
|
+
/**
|
|
14
|
+
* Experiment status enum.
|
|
15
|
+
*/
|
|
16
|
+
declare const ExperimentStatusEnum: EntityEnumDef;
|
|
17
|
+
/**
|
|
18
|
+
* FeatureFlag entity - defines a feature flag.
|
|
19
|
+
*/
|
|
20
|
+
declare const FeatureFlagEntity: EntitySpec<{
|
|
21
|
+
id: EntityScalarField;
|
|
22
|
+
key: EntityScalarField;
|
|
23
|
+
name: EntityScalarField;
|
|
24
|
+
description: EntityScalarField;
|
|
25
|
+
status: EntityEnumField;
|
|
26
|
+
defaultValue: EntityScalarField;
|
|
27
|
+
variants: EntityScalarField;
|
|
28
|
+
orgId: EntityScalarField;
|
|
29
|
+
tags: EntityScalarField;
|
|
30
|
+
metadata: EntityScalarField;
|
|
31
|
+
createdAt: EntityScalarField;
|
|
32
|
+
updatedAt: EntityScalarField;
|
|
33
|
+
targetingRules: EntityRelationField;
|
|
34
|
+
experiments: EntityRelationField;
|
|
35
|
+
evaluations: EntityRelationField;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* FlagTargetingRule entity - conditions for targeting.
|
|
39
|
+
*/
|
|
40
|
+
declare const FlagTargetingRuleEntity: EntitySpec<{
|
|
41
|
+
id: EntityScalarField;
|
|
42
|
+
flagId: EntityScalarField;
|
|
43
|
+
name: EntityScalarField;
|
|
44
|
+
priority: EntityScalarField;
|
|
45
|
+
enabled: EntityScalarField;
|
|
46
|
+
attribute: EntityScalarField;
|
|
47
|
+
operator: EntityEnumField;
|
|
48
|
+
value: EntityScalarField;
|
|
49
|
+
rolloutPercentage: EntityScalarField;
|
|
50
|
+
serveValue: EntityScalarField;
|
|
51
|
+
serveVariant: EntityScalarField;
|
|
52
|
+
createdAt: EntityScalarField;
|
|
53
|
+
updatedAt: EntityScalarField;
|
|
54
|
+
flag: EntityRelationField;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Experiment entity - A/B test configuration.
|
|
58
|
+
*/
|
|
59
|
+
declare const ExperimentEntity: EntitySpec<{
|
|
60
|
+
id: EntityScalarField;
|
|
61
|
+
key: EntityScalarField;
|
|
62
|
+
name: EntityScalarField;
|
|
63
|
+
description: EntityScalarField;
|
|
64
|
+
hypothesis: EntityScalarField;
|
|
65
|
+
flagId: EntityScalarField;
|
|
66
|
+
status: EntityEnumField;
|
|
67
|
+
variants: EntityScalarField;
|
|
68
|
+
metrics: EntityScalarField;
|
|
69
|
+
audiencePercentage: EntityScalarField;
|
|
70
|
+
audienceFilter: EntityScalarField;
|
|
71
|
+
scheduledStartAt: EntityScalarField;
|
|
72
|
+
scheduledEndAt: EntityScalarField;
|
|
73
|
+
startedAt: EntityScalarField;
|
|
74
|
+
endedAt: EntityScalarField;
|
|
75
|
+
winningVariant: EntityScalarField;
|
|
76
|
+
results: EntityScalarField;
|
|
77
|
+
orgId: EntityScalarField;
|
|
78
|
+
createdAt: EntityScalarField;
|
|
79
|
+
updatedAt: EntityScalarField;
|
|
80
|
+
flag: EntityRelationField;
|
|
81
|
+
assignments: EntityRelationField;
|
|
82
|
+
}>;
|
|
83
|
+
/**
|
|
84
|
+
* ExperimentAssignment entity - tracks which variant a subject is assigned to.
|
|
85
|
+
*/
|
|
86
|
+
declare const ExperimentAssignmentEntity: EntitySpec<{
|
|
87
|
+
id: EntityScalarField;
|
|
88
|
+
experimentId: EntityScalarField;
|
|
89
|
+
subjectType: EntityScalarField;
|
|
90
|
+
subjectId: EntityScalarField;
|
|
91
|
+
variant: EntityScalarField;
|
|
92
|
+
bucket: EntityScalarField;
|
|
93
|
+
context: EntityScalarField;
|
|
94
|
+
assignedAt: EntityScalarField;
|
|
95
|
+
experiment: EntityRelationField;
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* FlagEvaluation entity - evaluation log for analytics.
|
|
99
|
+
*/
|
|
100
|
+
declare const FlagEvaluationEntity: EntitySpec<{
|
|
101
|
+
id: EntityScalarField;
|
|
102
|
+
flagId: EntityScalarField;
|
|
103
|
+
flagKey: EntityScalarField;
|
|
104
|
+
subjectType: EntityScalarField;
|
|
105
|
+
subjectId: EntityScalarField;
|
|
106
|
+
result: EntityScalarField;
|
|
107
|
+
variant: EntityScalarField;
|
|
108
|
+
matchedRuleId: EntityScalarField;
|
|
109
|
+
reason: EntityScalarField;
|
|
110
|
+
context: EntityScalarField;
|
|
111
|
+
evaluatedAt: EntityScalarField;
|
|
112
|
+
flag: EntityRelationField;
|
|
113
|
+
}>;
|
|
114
|
+
/**
|
|
115
|
+
* All feature flag entities for schema composition.
|
|
116
|
+
*/
|
|
117
|
+
declare const featureFlagEntities: (EntitySpec<{
|
|
118
|
+
id: EntityScalarField;
|
|
119
|
+
key: EntityScalarField;
|
|
120
|
+
name: EntityScalarField;
|
|
121
|
+
description: EntityScalarField;
|
|
122
|
+
status: EntityEnumField;
|
|
123
|
+
defaultValue: EntityScalarField;
|
|
124
|
+
variants: EntityScalarField;
|
|
125
|
+
orgId: EntityScalarField;
|
|
126
|
+
tags: EntityScalarField;
|
|
127
|
+
metadata: EntityScalarField;
|
|
128
|
+
createdAt: EntityScalarField;
|
|
129
|
+
updatedAt: EntityScalarField;
|
|
130
|
+
targetingRules: EntityRelationField;
|
|
131
|
+
experiments: EntityRelationField;
|
|
132
|
+
evaluations: EntityRelationField;
|
|
133
|
+
}> | EntitySpec<{
|
|
134
|
+
id: EntityScalarField;
|
|
135
|
+
flagId: EntityScalarField;
|
|
136
|
+
name: EntityScalarField;
|
|
137
|
+
priority: EntityScalarField;
|
|
138
|
+
enabled: EntityScalarField;
|
|
139
|
+
attribute: EntityScalarField;
|
|
140
|
+
operator: EntityEnumField;
|
|
141
|
+
value: EntityScalarField;
|
|
142
|
+
rolloutPercentage: EntityScalarField;
|
|
143
|
+
serveValue: EntityScalarField;
|
|
144
|
+
serveVariant: EntityScalarField;
|
|
145
|
+
createdAt: EntityScalarField;
|
|
146
|
+
updatedAt: EntityScalarField;
|
|
147
|
+
flag: EntityRelationField;
|
|
148
|
+
}> | EntitySpec<{
|
|
149
|
+
id: EntityScalarField;
|
|
150
|
+
key: EntityScalarField;
|
|
151
|
+
name: EntityScalarField;
|
|
152
|
+
description: EntityScalarField;
|
|
153
|
+
hypothesis: EntityScalarField;
|
|
154
|
+
flagId: EntityScalarField;
|
|
155
|
+
status: EntityEnumField;
|
|
156
|
+
variants: EntityScalarField;
|
|
157
|
+
metrics: EntityScalarField;
|
|
158
|
+
audiencePercentage: EntityScalarField;
|
|
159
|
+
audienceFilter: EntityScalarField;
|
|
160
|
+
scheduledStartAt: EntityScalarField;
|
|
161
|
+
scheduledEndAt: EntityScalarField;
|
|
162
|
+
startedAt: EntityScalarField;
|
|
163
|
+
endedAt: EntityScalarField;
|
|
164
|
+
winningVariant: EntityScalarField;
|
|
165
|
+
results: EntityScalarField;
|
|
166
|
+
orgId: EntityScalarField;
|
|
167
|
+
createdAt: EntityScalarField;
|
|
168
|
+
updatedAt: EntityScalarField;
|
|
169
|
+
flag: EntityRelationField;
|
|
170
|
+
assignments: EntityRelationField;
|
|
171
|
+
}> | EntitySpec<{
|
|
172
|
+
id: EntityScalarField;
|
|
173
|
+
experimentId: EntityScalarField;
|
|
174
|
+
subjectType: EntityScalarField;
|
|
175
|
+
subjectId: EntityScalarField;
|
|
176
|
+
variant: EntityScalarField;
|
|
177
|
+
bucket: EntityScalarField;
|
|
178
|
+
context: EntityScalarField;
|
|
179
|
+
assignedAt: EntityScalarField;
|
|
180
|
+
experiment: EntityRelationField;
|
|
181
|
+
}> | EntitySpec<{
|
|
182
|
+
id: EntityScalarField;
|
|
183
|
+
flagId: EntityScalarField;
|
|
184
|
+
flagKey: EntityScalarField;
|
|
185
|
+
subjectType: EntityScalarField;
|
|
186
|
+
subjectId: EntityScalarField;
|
|
187
|
+
result: EntityScalarField;
|
|
188
|
+
variant: EntityScalarField;
|
|
189
|
+
matchedRuleId: EntityScalarField;
|
|
190
|
+
reason: EntityScalarField;
|
|
191
|
+
context: EntityScalarField;
|
|
192
|
+
evaluatedAt: EntityScalarField;
|
|
193
|
+
flag: EntityRelationField;
|
|
194
|
+
}>)[];
|
|
195
|
+
/**
|
|
196
|
+
* Module schema contribution for feature flags.
|
|
197
|
+
*/
|
|
198
|
+
declare const featureFlagsSchemaContribution: ModuleSchemaContribution;
|
|
199
|
+
//#endregion
|
|
200
|
+
export { ExperimentAssignmentEntity, ExperimentEntity, ExperimentStatusEnum, FeatureFlagEntity, FlagEvaluationEntity, FlagStatusEnum, FlagTargetingRuleEntity, RuleOperatorEnum, featureFlagEntities, featureFlagsSchemaContribution };
|
|
201
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/entities/index.ts"],"sourcesContent":[],"mappings":";;;;;;;AAWa,cAAA,cAKX,EAAA,aAAA;AAKF;AAsBA;AAUA;AA4DE,cA5FW,gBA4FX,EA3EA,aA2EA;;;;cAtEW,sBAKX;;;;cAKW;MA4DX;;;;;;;EA5D4B,KAAA,mBAAA;EAiEjB,IAAA,mBAyDX;EAAA,QAAA,mBAAA;;;;;;;;;;cAzDW;MAyDX;;;;EAzDkC,OAAA,mBAAA;EA8DvB,SAAA,mBA2FX;EAAA,QAAA,iBAAA;;;;;;;;;;;;cA3FW;MA2FX;;;;;;;;;;EA3F2B,cAAA,mBAAA;EAgGhB,gBAAA,mBAuCX;EAAA,cAAA,mBAAA;;;;;;;;;;CAvCqC,CAAA;AA4CvC;;;cA5Ca;MAuCX;;;;;;;;;;;AA+DF;;cA1Da;MAqDX;;;;;;;;;;;;;;;;cAKW;MAMZ;;;;;;;;;;;;;;;;MAN+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnB,MAAA,mBAAgC;;;;;;;;;;;;;;;;;;;;;cAAhC,gCAAgC"}
|