@contractspec/lib.feature-flags 1.56.1 → 1.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/contracts/index.js +636 -0
- package/dist/browser/docs/feature-flags.docblock.js +71 -0
- package/dist/browser/docs/index.js +71 -0
- package/dist/browser/entities/index.js +306 -0
- package/dist/browser/evaluation/index.js +223 -0
- package/dist/browser/events.js +296 -0
- package/dist/browser/feature-flags.capability.js +28 -0
- package/dist/browser/feature-flags.feature.js +55 -0
- package/dist/browser/index.js +1583 -0
- package/dist/contracts/index.d.ts +944 -953
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +635 -906
- package/dist/docs/feature-flags.docblock.d.ts +2 -1
- package/dist/docs/feature-flags.docblock.d.ts.map +1 -0
- package/dist/docs/feature-flags.docblock.js +18 -22
- package/dist/docs/index.d.ts +2 -1
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +72 -1
- package/dist/entities/index.d.ts +159 -164
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +297 -315
- package/dist/evaluation/index.d.ts +119 -122
- package/dist/evaluation/index.d.ts.map +1 -1
- package/dist/evaluation/index.js +215 -212
- package/dist/events.d.ts +480 -489
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +272 -511
- package/dist/feature-flags.capability.d.ts +2 -8
- package/dist/feature-flags.capability.d.ts.map +1 -1
- package/dist/feature-flags.capability.js +29 -25
- package/dist/feature-flags.feature.d.ts +1 -7
- package/dist/feature-flags.feature.d.ts.map +1 -1
- package/dist/feature-flags.feature.js +54 -146
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1584 -8
- package/dist/node/contracts/index.js +636 -0
- package/dist/node/docs/feature-flags.docblock.js +71 -0
- package/dist/node/docs/index.js +71 -0
- package/dist/node/entities/index.js +306 -0
- package/dist/node/evaluation/index.js +223 -0
- package/dist/node/events.js +296 -0
- package/dist/node/feature-flags.capability.js +28 -0
- package/dist/node/feature-flags.feature.js +55 -0
- package/dist/node/index.js +1583 -0
- package/package.json +117 -30
- package/dist/contracts/index.js.map +0 -1
- package/dist/contracts/src/app-config/lifecycle.d.ts +0 -1
- package/dist/contracts/src/app-config/runtime.d.ts +0 -13
- package/dist/contracts/src/app-config/spec.d.ts +0 -9
- package/dist/contracts/src/app-config/validation.d.ts +0 -8
- package/dist/contracts/src/capabilities/capabilities.d.ts +0 -60
- package/dist/contracts/src/capabilities/capabilities.d.ts.map +0 -1
- package/dist/contracts/src/capabilities/context.d.ts +0 -1
- package/dist/contracts/src/capabilities/guards.d.ts +0 -4
- package/dist/contracts/src/capabilities/index.d.ts +0 -5
- package/dist/contracts/src/capabilities/openbanking.d.ts +0 -1
- package/dist/contracts/src/capabilities/validation.d.ts +0 -4
- package/dist/contracts/src/client/index.d.ts +0 -1
- package/dist/contracts/src/client/react/drivers/rn-reusables.d.ts +0 -1
- package/dist/contracts/src/client/react/drivers/shadcn.d.ts +0 -1
- package/dist/contracts/src/client/react/feature-render.d.ts +0 -3
- package/dist/contracts/src/client/react/form-render.d.ts +0 -4
- package/dist/contracts/src/client/react/index.d.ts +0 -4
- package/dist/contracts/src/contract-registry/index.d.ts +0 -2
- package/dist/contracts/src/contract-registry/schemas.d.ts +0 -2
- package/dist/contracts/src/contract-registry/types.d.ts +0 -1
- package/dist/contracts/src/data-views/index.d.ts +0 -4
- package/dist/contracts/src/data-views/registry.d.ts +0 -2
- package/dist/contracts/src/data-views/report/contractVerificationTable.d.ts +0 -1
- package/dist/contracts/src/data-views/spec.d.ts +0 -3
- package/dist/contracts/src/data-views/types.d.ts +0 -2
- package/dist/contracts/src/docs/accessibility_wcag_compliance_specs.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/capabilities/documentationSystem.capability.d.ts +0 -1
- package/dist/contracts/src/docs/capabilities/index.d.ts +0 -1
- package/dist/contracts/src/docs/commands/docsGenerate.command.d.ts +0 -2
- package/dist/contracts/src/docs/commands/docsPublish.command.d.ts +0 -2
- package/dist/contracts/src/docs/commands/index.d.ts +0 -2
- package/dist/contracts/src/docs/contracts.d.ts +0 -7
- package/dist/contracts/src/docs/events/docsGenerated.event.d.ts +0 -2
- package/dist/contracts/src/docs/events/docsPublished.event.d.ts +0 -2
- package/dist/contracts/src/docs/events/index.d.ts +0 -2
- package/dist/contracts/src/docs/forms/docsSearch.form.d.ts +0 -2
- package/dist/contracts/src/docs/forms/index.d.ts +0 -1
- package/dist/contracts/src/docs/index.d.ts +0 -33
- package/dist/contracts/src/docs/presentations/docsLayout.presentation.d.ts +0 -1
- package/dist/contracts/src/docs/presentations/docsReferencePage.presentation.d.ts +0 -1
- package/dist/contracts/src/docs/presentations/index.d.ts +0 -2
- package/dist/contracts/src/docs/presentations.d.ts +0 -2
- package/dist/contracts/src/docs/queries/contractReference.query.d.ts +0 -2
- package/dist/contracts/src/docs/queries/docsIndex.query.d.ts +0 -2
- package/dist/contracts/src/docs/queries/index.d.ts +0 -2
- package/dist/contracts/src/docs/registry.d.ts +0 -10
- package/dist/contracts/src/docs/registry.d.ts.map +0 -1
- package/dist/contracts/src/docs/tech/auth/better-auth-nextjs.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/README.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/openapi-export.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/contracts/openapi-import.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/lifecycle-stage-system.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/llm/llm-integration.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/mcp-endpoints.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/presentation-runtime.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/schema/README.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/learning-events.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/learning-journeys.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/platform-admin-panel.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/project-access-teams.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/project-routing.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/sandbox-unlogged.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/team-invitations.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/workspace-ops.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/studio/workspaces.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/telemetry-ingest.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/tech/vscode-extension.docblock.d.ts +0 -1
- package/dist/contracts/src/docs/views/contractReference.dataView.d.ts +0 -1
- package/dist/contracts/src/docs/views/docsIndex.dataView.d.ts +0 -1
- package/dist/contracts/src/docs/views/exampleCatalog.dataView.d.ts +0 -1
- package/dist/contracts/src/docs/views/index.d.ts +0 -3
- package/dist/contracts/src/events.d.ts +0 -45
- package/dist/contracts/src/events.d.ts.map +0 -1
- package/dist/contracts/src/examples/index.d.ts +0 -4
- package/dist/contracts/src/examples/registry.d.ts +0 -2
- package/dist/contracts/src/examples/schema.d.ts +0 -2
- package/dist/contracts/src/examples/types.d.ts +0 -3
- package/dist/contracts/src/examples/validation.d.ts +0 -1
- package/dist/contracts/src/experiments/evaluator.d.ts +0 -2
- package/dist/contracts/src/experiments/spec-resolver.d.ts +0 -4
- package/dist/contracts/src/experiments/spec.d.ts +0 -16
- package/dist/contracts/src/experiments/spec.d.ts.map +0 -1
- package/dist/contracts/src/features/index.d.ts +0 -4
- package/dist/contracts/src/features/install.d.ts +0 -6
- package/dist/contracts/src/features/registry.d.ts +0 -2
- package/dist/contracts/src/features/types.d.ts +0 -80
- package/dist/contracts/src/features/types.d.ts.map +0 -1
- package/dist/contracts/src/features/validation.d.ts +0 -2
- package/dist/contracts/src/forms/forms.d.ts +0 -3
- package/dist/contracts/src/forms/index.d.ts +0 -1
- package/dist/contracts/src/index.d.ts +0 -53
- package/dist/contracts/src/install.d.ts +0 -7
- package/dist/contracts/src/integrations/connection.d.ts +0 -1
- package/dist/contracts/src/integrations/index.d.ts +0 -6
- package/dist/contracts/src/integrations/openbanking/contracts/accounts.d.ts +0 -4
- package/dist/contracts/src/integrations/openbanking/contracts/balances.d.ts +0 -4
- package/dist/contracts/src/integrations/openbanking/contracts/index.d.ts +0 -5
- package/dist/contracts/src/integrations/openbanking/contracts/transactions.d.ts +0 -4
- package/dist/contracts/src/integrations/openbanking/guards.d.ts +0 -1
- package/dist/contracts/src/integrations/openbanking/models.d.ts +0 -1
- package/dist/contracts/src/integrations/openbanking/openbanking.feature.d.ts +0 -1
- package/dist/contracts/src/integrations/operations.d.ts +0 -4
- package/dist/contracts/src/integrations/providers/elevenlabs.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/gcs-storage.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/gmail.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/google-calendar.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/index.d.ts +0 -11
- package/dist/contracts/src/integrations/providers/mistral.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/postmark.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/powens.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/qdrant.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/registry.d.ts +0 -1
- package/dist/contracts/src/integrations/providers/stripe.d.ts +0 -2
- package/dist/contracts/src/integrations/providers/twilio-sms.d.ts +0 -2
- package/dist/contracts/src/integrations/spec.d.ts +0 -3
- package/dist/contracts/src/jsonschema.d.ts +0 -4
- package/dist/contracts/src/knowledge/index.d.ts +0 -2
- package/dist/contracts/src/knowledge/operations.d.ts +0 -4
- package/dist/contracts/src/knowledge/spaces/email-threads.d.ts +0 -1
- package/dist/contracts/src/knowledge/spaces/financial-docs.d.ts +0 -1
- package/dist/contracts/src/knowledge/spaces/financial-overview.d.ts +0 -1
- package/dist/contracts/src/knowledge/spaces/index.d.ts +0 -6
- package/dist/contracts/src/knowledge/spaces/product-canon.d.ts +0 -1
- package/dist/contracts/src/knowledge/spaces/support-faq.d.ts +0 -1
- package/dist/contracts/src/knowledge/spaces/uploaded-docs.d.ts +0 -1
- package/dist/contracts/src/knowledge/spec.d.ts +0 -3
- package/dist/contracts/src/llm/exporters.d.ts +0 -7
- package/dist/contracts/src/llm/index.d.ts +0 -3
- package/dist/contracts/src/llm/prompts.d.ts +0 -2
- package/dist/contracts/src/llm/types.d.ts +0 -5
- package/dist/contracts/src/migrations.d.ts +0 -1
- package/dist/contracts/src/model-registry.d.ts +0 -1
- package/dist/contracts/src/onboarding-base.d.ts +0 -2
- package/dist/contracts/src/openapi.d.ts +0 -1
- package/dist/contracts/src/operations/index.d.ts +0 -3
- package/dist/contracts/src/operations/operation.d.ts +0 -176
- package/dist/contracts/src/operations/operation.d.ts.map +0 -1
- package/dist/contracts/src/operations/registry.d.ts +0 -6
- package/dist/contracts/src/operations/report/getContractVerificationStatus.d.ts +0 -3
- package/dist/contracts/src/operations/report/index.d.ts +0 -4
- package/dist/contracts/src/ownership.d.ts +0 -164
- package/dist/contracts/src/ownership.d.ts.map +0 -1
- package/dist/contracts/src/policy/engine.d.ts +0 -3
- package/dist/contracts/src/policy/guards.d.ts +0 -1
- package/dist/contracts/src/policy/index.d.ts +0 -6
- package/dist/contracts/src/policy/opa-adapter.d.ts +0 -3
- package/dist/contracts/src/policy/registry.d.ts +0 -2
- package/dist/contracts/src/policy/spec.d.ts +0 -13
- package/dist/contracts/src/policy/spec.d.ts.map +0 -1
- package/dist/contracts/src/policy/validation.d.ts +0 -3
- package/dist/contracts/src/presentations/index.d.ts +0 -3
- package/dist/contracts/src/presentations/presentations.d.ts +0 -10
- package/dist/contracts/src/presentations/presentations.d.ts.map +0 -1
- package/dist/contracts/src/presentations/registry.d.ts +0 -2
- package/dist/contracts/src/presentations/transform-engine.d.ts +0 -2
- package/dist/contracts/src/prompt.d.ts +0 -2
- package/dist/contracts/src/promptRegistry.d.ts +0 -2
- package/dist/contracts/src/regenerator/adapters.d.ts +0 -1
- package/dist/contracts/src/regenerator/executor.d.ts +0 -1
- package/dist/contracts/src/regenerator/index.d.ts +0 -6
- package/dist/contracts/src/regenerator/service.d.ts +0 -2
- package/dist/contracts/src/regenerator/sinks.d.ts +0 -2
- package/dist/contracts/src/regenerator/types.d.ts +0 -3
- package/dist/contracts/src/regenerator/utils.d.ts +0 -1
- package/dist/contracts/src/registry-utils.d.ts +0 -1
- package/dist/contracts/src/registry.d.ts +0 -3
- package/dist/contracts/src/resources.d.ts +0 -19
- package/dist/contracts/src/resources.d.ts.map +0 -1
- package/dist/contracts/src/schema-to-markdown.d.ts +0 -1
- package/dist/contracts/src/serialization/index.d.ts +0 -1
- package/dist/contracts/src/serialization/serializers.d.ts +0 -7
- package/dist/contracts/src/server/graphql-pothos.d.ts +0 -7
- package/dist/contracts/src/server/index.d.ts +0 -7
- package/dist/contracts/src/server/mcp/createMcpServer.d.ts +0 -5
- package/dist/contracts/src/server/mcp/mcpTypes.d.ts +0 -2
- package/dist/contracts/src/server/provider-mcp.d.ts +0 -1
- package/dist/contracts/src/server/rest-elysia.d.ts +0 -3
- package/dist/contracts/src/server/rest-express.d.ts +0 -3
- package/dist/contracts/src/server/rest-generic.d.ts +0 -2
- package/dist/contracts/src/server/rest-next-app.d.ts +0 -3
- package/dist/contracts/src/server/rest-next-pages.d.ts +0 -3
- package/dist/contracts/src/telemetry/anomaly.d.ts +0 -2
- package/dist/contracts/src/telemetry/index.d.ts +0 -3
- package/dist/contracts/src/telemetry/spec.d.ts +0 -2
- package/dist/contracts/src/telemetry/tracker.d.ts +0 -3
- package/dist/contracts/src/tests/index.d.ts +0 -2
- package/dist/contracts/src/tests/runner.d.ts +0 -3
- package/dist/contracts/src/tests/spec.d.ts +0 -13
- package/dist/contracts/src/tests/spec.d.ts.map +0 -1
- package/dist/contracts/src/themes.d.ts +0 -2
- package/dist/contracts/src/types.d.ts +0 -5
- package/dist/contracts/src/versioning/refs.d.ts +0 -47
- package/dist/contracts/src/versioning/refs.d.ts.map +0 -1
- package/dist/contracts/src/workflow/adapters/db-adapter.d.ts +0 -1
- package/dist/contracts/src/workflow/adapters/file-adapter.d.ts +0 -1
- package/dist/contracts/src/workflow/adapters/index.d.ts +0 -3
- package/dist/contracts/src/workflow/adapters/memory-store.d.ts +0 -1
- package/dist/contracts/src/workflow/context.d.ts +0 -2
- package/dist/contracts/src/workflow/index.d.ts +0 -8
- package/dist/contracts/src/workflow/overview.docblock.d.ts +0 -1
- package/dist/contracts/src/workflow/runner.d.ts +0 -5
- package/dist/contracts/src/workflow/sla-monitor.d.ts +0 -2
- package/dist/contracts/src/workflow/spec.d.ts +0 -6
- package/dist/contracts/src/workflow/state.d.ts +0 -1
- package/dist/contracts/src/workflow/validation.d.ts +0 -5
- package/dist/contracts/src/workspace-config/contractsrc-schema.d.ts +0 -1
- package/dist/contracts/src/workspace-config/index.d.ts +0 -1
- package/dist/contracts/src/workspace-config/workspace-config.docblock.d.ts +0 -1
- package/dist/docs/feature-flags.docblock.js.map +0 -1
- package/dist/entities/index.js.map +0 -1
- package/dist/evaluation/index.js.map +0 -1
- package/dist/events.js.map +0 -1
- package/dist/feature-flags.capability.js.map +0 -1
- package/dist/feature-flags.feature.js.map +0 -1
- package/dist/schema/src/EnumType.d.ts +0 -36
- package/dist/schema/src/EnumType.d.ts.map +0 -1
- package/dist/schema/src/FieldType.d.ts +0 -30
- package/dist/schema/src/FieldType.d.ts.map +0 -1
- package/dist/schema/src/GraphQLSchemaType.d.ts +0 -2
- package/dist/schema/src/JsonSchemaType.d.ts +0 -2
- package/dist/schema/src/ScalarTypeEnum.d.ts +0 -1
- package/dist/schema/src/SchemaModel.d.ts +0 -70
- package/dist/schema/src/SchemaModel.d.ts.map +0 -1
- package/dist/schema/src/SchemaModelType.d.ts +0 -38
- package/dist/schema/src/SchemaModelType.d.ts.map +0 -1
- package/dist/schema/src/ZodSchemaType.d.ts +0 -2
- package/dist/schema/src/entity/defineEntity.d.ts +0 -1
- package/dist/schema/src/entity/generator.d.ts +0 -1
- package/dist/schema/src/entity/index.d.ts +0 -3
- package/dist/schema/src/entity/types.d.ts +0 -146
- package/dist/schema/src/entity/types.d.ts.map +0 -1
- package/dist/schema/src/index.d.ts +0 -10
|
@@ -1,109 +1,108 @@
|
|
|
1
|
-
//#region src/evaluation/index.d.ts
|
|
2
1
|
/**
|
|
3
2
|
* Feature flag evaluation engine.
|
|
4
3
|
*
|
|
5
4
|
* Provides deterministic evaluation of feature flags based on targeting rules
|
|
6
5
|
* and experiment assignments.
|
|
7
6
|
*/
|
|
8
|
-
interface EvaluationContext {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
7
|
+
export interface EvaluationContext {
|
|
8
|
+
/** User identifier */
|
|
9
|
+
userId?: string;
|
|
10
|
+
/** Organization identifier */
|
|
11
|
+
orgId?: string;
|
|
12
|
+
/** User's plan (free, pro, enterprise, etc.) */
|
|
13
|
+
plan?: string;
|
|
14
|
+
/** User segment or cohort */
|
|
15
|
+
segment?: string;
|
|
16
|
+
/** Session identifier for anonymous users */
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
/** Additional custom attributes */
|
|
19
|
+
attributes?: Record<string, unknown>;
|
|
21
20
|
}
|
|
22
|
-
interface FeatureFlag {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
export interface FeatureFlag {
|
|
22
|
+
id: string;
|
|
23
|
+
key: string;
|
|
24
|
+
status: 'OFF' | 'ON' | 'GRADUAL';
|
|
25
|
+
defaultValue: boolean;
|
|
26
|
+
variants?: VariantConfig[];
|
|
28
27
|
}
|
|
29
|
-
interface TargetingRule {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
export interface TargetingRule {
|
|
29
|
+
id: string;
|
|
30
|
+
priority: number;
|
|
31
|
+
enabled: boolean;
|
|
32
|
+
attribute: string;
|
|
33
|
+
operator: RuleOperator;
|
|
34
|
+
value: unknown;
|
|
35
|
+
rolloutPercentage?: number;
|
|
36
|
+
serveValue?: boolean;
|
|
37
|
+
serveVariant?: string;
|
|
39
38
|
}
|
|
40
|
-
interface Experiment {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
export interface Experiment {
|
|
40
|
+
id: string;
|
|
41
|
+
key: string;
|
|
42
|
+
status: 'DRAFT' | 'RUNNING' | 'PAUSED' | 'COMPLETED' | 'CANCELLED';
|
|
43
|
+
variants: ExperimentVariant[];
|
|
44
|
+
audiencePercentage: number;
|
|
45
|
+
audienceFilter?: Record<string, unknown>;
|
|
47
46
|
}
|
|
48
|
-
interface VariantConfig {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
export interface VariantConfig {
|
|
48
|
+
key: string;
|
|
49
|
+
name: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
weight?: number;
|
|
53
52
|
}
|
|
54
|
-
interface ExperimentVariant {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
export interface ExperimentVariant {
|
|
54
|
+
key: string;
|
|
55
|
+
name: string;
|
|
56
|
+
percentage: number;
|
|
58
57
|
}
|
|
59
|
-
interface EvaluationResult {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
58
|
+
export interface EvaluationResult {
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
variant?: string;
|
|
61
|
+
reason: EvaluationReason;
|
|
62
|
+
ruleId?: string;
|
|
63
|
+
experimentId?: string;
|
|
65
64
|
}
|
|
66
|
-
type EvaluationReason = 'FLAG_OFF' | 'FLAG_ON' | 'DEFAULT_VALUE' | 'RULE_MATCH' | 'PERCENTAGE_ROLLOUT' | 'EXPERIMENT_VARIANT' | 'FLAG_NOT_FOUND';
|
|
67
|
-
type RuleOperator = 'EQ' | 'NEQ' | 'IN' | 'NIN' | 'CONTAINS' | 'NOT_CONTAINS' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'PERCENTAGE';
|
|
65
|
+
export type EvaluationReason = 'FLAG_OFF' | 'FLAG_ON' | 'DEFAULT_VALUE' | 'RULE_MATCH' | 'PERCENTAGE_ROLLOUT' | 'EXPERIMENT_VARIANT' | 'FLAG_NOT_FOUND';
|
|
66
|
+
export type RuleOperator = 'EQ' | 'NEQ' | 'IN' | 'NIN' | 'CONTAINS' | 'NOT_CONTAINS' | 'GT' | 'GTE' | 'LT' | 'LTE' | 'PERCENTAGE';
|
|
68
67
|
/**
|
|
69
68
|
* Simple hash function for consistent bucketing.
|
|
70
69
|
* Uses a deterministic algorithm so the same input always produces the same bucket.
|
|
71
70
|
*/
|
|
72
|
-
declare function hashToBucket(value: string, seed?: string): number;
|
|
71
|
+
export declare function hashToBucket(value: string, seed?: string): number;
|
|
73
72
|
/**
|
|
74
73
|
* Get subject identifier from context for consistent hashing.
|
|
75
74
|
*/
|
|
76
|
-
declare function getSubjectId(context: EvaluationContext): string;
|
|
75
|
+
export declare function getSubjectId(context: EvaluationContext): string;
|
|
77
76
|
/**
|
|
78
77
|
* Evaluate a single targeting rule condition.
|
|
79
78
|
*/
|
|
80
|
-
declare function evaluateRuleCondition(rule: TargetingRule, context: EvaluationContext): boolean;
|
|
81
|
-
interface FlagRepository {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
79
|
+
export declare function evaluateRuleCondition(rule: TargetingRule, context: EvaluationContext): boolean;
|
|
80
|
+
export interface FlagRepository {
|
|
81
|
+
getFlag(key: string, orgId?: string): Promise<FeatureFlag | null>;
|
|
82
|
+
getRules(flagId: string): Promise<TargetingRule[]>;
|
|
83
|
+
getActiveExperiment(flagId: string): Promise<Experiment | null>;
|
|
84
|
+
getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
|
|
85
|
+
saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string, bucket: number): Promise<void>;
|
|
87
86
|
}
|
|
88
|
-
interface EvaluationLogger {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
87
|
+
export interface EvaluationLogger {
|
|
88
|
+
log(evaluation: {
|
|
89
|
+
flagId: string;
|
|
90
|
+
flagKey: string;
|
|
91
|
+
subjectType: string;
|
|
92
|
+
subjectId: string;
|
|
93
|
+
result: boolean;
|
|
94
|
+
variant?: string;
|
|
95
|
+
reason: string;
|
|
96
|
+
ruleId?: string;
|
|
97
|
+
experimentId?: string;
|
|
98
|
+
context?: EvaluationContext;
|
|
99
|
+
}): void;
|
|
101
100
|
}
|
|
102
|
-
interface FlagEvaluatorOptions {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
101
|
+
export interface FlagEvaluatorOptions {
|
|
102
|
+
repository: FlagRepository;
|
|
103
|
+
logger?: EvaluationLogger;
|
|
104
|
+
/** Whether to log evaluations (default: false for performance) */
|
|
105
|
+
logEvaluations?: boolean;
|
|
107
106
|
}
|
|
108
107
|
/**
|
|
109
108
|
* Feature flag evaluator.
|
|
@@ -114,50 +113,48 @@ interface FlagEvaluatorOptions {
|
|
|
114
113
|
* 3. Experiments (if running)
|
|
115
114
|
* 4. Default value (fallback)
|
|
116
115
|
*/
|
|
117
|
-
declare class FlagEvaluator {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
116
|
+
export declare class FlagEvaluator {
|
|
117
|
+
private repository;
|
|
118
|
+
private logger?;
|
|
119
|
+
private logEvaluations;
|
|
120
|
+
constructor(options: FlagEvaluatorOptions);
|
|
121
|
+
/**
|
|
122
|
+
* Evaluate a feature flag.
|
|
123
|
+
*/
|
|
124
|
+
evaluate(key: string, context: EvaluationContext): Promise<EvaluationResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Evaluate experiment and assign variant.
|
|
127
|
+
*/
|
|
128
|
+
private evaluateExperiment;
|
|
129
|
+
/**
|
|
130
|
+
* Assign a variant based on bucket and variant percentages.
|
|
131
|
+
*/
|
|
132
|
+
private assignVariant;
|
|
133
|
+
/**
|
|
134
|
+
* Create evaluation result.
|
|
135
|
+
*/
|
|
136
|
+
private makeResult;
|
|
137
|
+
/**
|
|
138
|
+
* Log evaluation and return result.
|
|
139
|
+
*/
|
|
140
|
+
private logAndReturn;
|
|
142
141
|
}
|
|
143
142
|
/**
|
|
144
143
|
* In-memory flag repository for testing and development.
|
|
145
144
|
*/
|
|
146
|
-
declare class InMemoryFlagRepository implements FlagRepository {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
145
|
+
export declare class InMemoryFlagRepository implements FlagRepository {
|
|
146
|
+
private flags;
|
|
147
|
+
private rules;
|
|
148
|
+
private experiments;
|
|
149
|
+
private assignments;
|
|
150
|
+
addFlag(flag: FeatureFlag): void;
|
|
151
|
+
addRule(flagId: string, rule: TargetingRule): void;
|
|
152
|
+
addExperiment(experiment: Experiment, flagId: string): void;
|
|
153
|
+
getFlag(key: string): Promise<FeatureFlag | null>;
|
|
154
|
+
getRules(flagId: string): Promise<TargetingRule[]>;
|
|
155
|
+
getActiveExperiment(flagId: string): Promise<Experiment | null>;
|
|
156
|
+
getExperimentAssignment(experimentId: string, subjectType: string, subjectId: string): Promise<string | null>;
|
|
157
|
+
saveExperimentAssignment(experimentId: string, subjectType: string, subjectId: string, variant: string): Promise<void>;
|
|
158
|
+
clear(): void;
|
|
160
159
|
}
|
|
161
|
-
//#endregion
|
|
162
|
-
export { EvaluationContext, EvaluationLogger, EvaluationReason, EvaluationResult, Experiment, ExperimentVariant, FeatureFlag, FlagEvaluator, FlagEvaluatorOptions, FlagRepository, InMemoryFlagRepository, RuleOperator, TargetingRule, VariantConfig, evaluateRuleCondition, getSubjectId, hashToBucket };
|
|
163
160
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluation/index.ts"],"names":[],"mappings":"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"}
|