@lssm/lib.feature-flags 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229
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 +2 -0
- package/dist/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/index.js +2 -6
- package/dist/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/contracts/dist/docs/presentations.js +2 -1
- package/dist/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/contracts/dist/docs/registry.js +2 -1
- package/dist/contracts/dist/docs/registry.js.map +1 -0
- package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/contracts/dist/events.js +2 -1
- package/dist/contracts/dist/events.js.map +1 -0
- package/dist/contracts/dist/index.js +2 -1
- package/dist/contracts/dist/integrations/contracts.js +65 -66
- package/dist/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/contracts/dist/llm/exporters.js +2 -1
- package/dist/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/contracts/dist/onboarding-base.js +22 -23
- package/dist/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/contracts/dist/ownership.js +4 -2
- package/dist/contracts/dist/ownership.js.map +1 -0
- package/dist/contracts/dist/presentations.v2.js +2 -1
- package/dist/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/contracts/dist/regenerator/service.js +2 -1
- package/dist/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/contracts/dist/schema/dist/index.js +3873 -6
- package/dist/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/contracts/dist/spec.js +2 -1
- package/dist/contracts/dist/spec.js.map +1 -0
- package/dist/contracts/index.d.ts +261 -260
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +117 -118
- package/dist/contracts/index.js.map +1 -0
- package/dist/docs/feature-flags.docblock.js +2 -1
- package/dist/docs/feature-flags.docblock.js.map +1 -0
- package/dist/entities/index.d.ts +160 -159
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +93 -93
- package/dist/entities/index.js.map +1 -0
- package/dist/evaluation/index.d.ts +2 -1
- package/dist/evaluation/index.d.ts.map +1 -0
- package/dist/evaluation/index.js +2 -1
- package/dist/evaluation/index.js.map +1 -0
- package/dist/events.d.ts +2 -1
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +81 -82
- package/dist/events.js.map +1 -0
- package/dist/feature-flags.feature.d.ts +2 -1
- package/dist/feature-flags.feature.d.ts.map +1 -0
- package/dist/feature-flags.feature.js +2 -1
- package/dist/feature-flags.feature.js.map +1 -0
- package/dist/schema/dist/index.js +4889 -6
- package/dist/schema/dist/index.js.map +1 -0
- package/package.json +7 -6
- package/dist/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/contracts/dist/schema/dist/SchemaModel.js +0 -34
- package/dist/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/schema/dist/EnumType.js +0 -2
- package/dist/schema/dist/FieldType.js +0 -49
- package/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/schema/dist/SchemaModel.js +0 -39
- package/dist/schema/dist/entity/defineEntity.js +0 -236
- package/dist/schema/dist/entity/index.js +0 -2
- package/dist/schema/dist/entity/types.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../../src/contracts/index.ts"],"sourcesContent":["import { ScalarTypeEnum, defineSchemaModel } from '@lssm/lib.schema';\nimport { defineCommand, defineQuery } from '@lssm/lib.contracts';\n\nconst OWNERS = ['platform.feature-flags'] as const;\n\n// ============ Schema Models ============\n\nexport const FeatureFlagModel = defineSchemaModel({\n name: 'FeatureFlag',\n description: 'Represents a feature flag',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n defaultValue: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: true },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n tags: { type: ScalarTypeEnum.JSON(), isOptional: true },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n updatedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const TargetingRuleModel = defineSchemaModel({\n name: 'TargetingRule',\n description: 'Represents a targeting rule',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n priority: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n enabled: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n attribute: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n operator: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n value: { type: ScalarTypeEnum.JSON(), isOptional: false },\n rolloutPercentage: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n serveValue: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n serveVariant: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nexport const ExperimentModel = defineSchemaModel({\n name: 'Experiment',\n description: 'Represents an experiment',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n hypothesis: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: false },\n metrics: { type: ScalarTypeEnum.JSON(), isOptional: true },\n audiencePercentage: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: false,\n },\n startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n endedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n winningVariant: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n results: { type: ScalarTypeEnum.JSON(), isOptional: true },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const EvaluationResultModel = defineSchemaModel({\n name: 'EvaluationResult',\n description: 'Result of flag evaluation',\n fields: {\n enabled: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n variant: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n ruleId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\n// ============ Input/Output Models ============\n\nconst CreateFlagInput = defineSchemaModel({\n name: 'CreateFlagInput',\n description: 'Input for creating a feature flag',\n fields: {\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n defaultValue: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: true },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n tags: { type: ScalarTypeEnum.JSON(), isOptional: true },\n },\n});\n\nconst UpdateFlagInput = defineSchemaModel({\n name: 'UpdateFlagInput',\n description: 'Input for updating a feature flag',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n defaultValue: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: true },\n tags: { type: ScalarTypeEnum.JSON(), isOptional: true },\n },\n});\n\nconst DeleteFlagInput = defineSchemaModel({\n name: 'DeleteFlagInput',\n description: 'Input for deleting a feature flag',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst ToggleFlagInput = defineSchemaModel({\n name: 'ToggleFlagInput',\n description: 'Input for toggling a feature flag',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst GetFlagInput = defineSchemaModel({\n name: 'GetFlagInput',\n description: 'Input for getting a feature flag',\n fields: {\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nconst ListFlagsInput = defineSchemaModel({\n name: 'ListFlagsInput',\n description: 'Input for listing feature flags',\n fields: {\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n status: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n tags: { type: ScalarTypeEnum.JSON(), isOptional: true },\n limit: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n offset: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n },\n});\n\nconst ListFlagsOutput = defineSchemaModel({\n name: 'ListFlagsOutput',\n description: 'Output for listing feature flags',\n fields: {\n flags: { type: FeatureFlagModel, isArray: true, isOptional: false },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n },\n});\n\nconst EvaluateFlagInput = defineSchemaModel({\n name: 'EvaluateFlagInput',\n description: 'Input for evaluating a feature flag',\n fields: {\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n context: { type: ScalarTypeEnum.JSON(), isOptional: false },\n },\n});\n\nconst CreateRuleInput = defineSchemaModel({\n name: 'CreateRuleInput',\n description: 'Input for creating a targeting rule',\n fields: {\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n priority: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },\n attribute: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n operator: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n value: { type: ScalarTypeEnum.JSON(), isOptional: false },\n rolloutPercentage: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n serveValue: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n serveVariant: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nconst DeleteRuleInput = defineSchemaModel({\n name: 'DeleteRuleInput',\n description: 'Input for deleting a targeting rule',\n fields: {\n ruleId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst CreateExperimentInput = defineSchemaModel({\n name: 'CreateExperimentInput',\n description: 'Input for creating an experiment',\n fields: {\n key: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n hypothesis: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n flagId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n variants: { type: ScalarTypeEnum.JSON(), isOptional: false },\n metrics: { type: ScalarTypeEnum.JSON(), isOptional: true },\n audiencePercentage: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n },\n scheduledStartAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n scheduledEndAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n orgId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n});\n\nconst StartExperimentInput = defineSchemaModel({\n name: 'StartExperimentInput',\n description: 'Input for starting an experiment',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst StopExperimentInput = defineSchemaModel({\n name: 'StopExperimentInput',\n description: 'Input for stopping an experiment',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n winningVariant: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n },\n});\n\nconst GetExperimentInput = defineSchemaModel({\n name: 'GetExperimentInput',\n description: 'Input for getting an experiment',\n fields: {\n experimentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n },\n});\n\nconst SuccessOutput = defineSchemaModel({\n name: 'SuccessOutput',\n description: 'Generic success output',\n fields: {\n success: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n },\n});\n\n// ============ Contracts ============\n\n/**\n * Create a feature flag.\n */\nexport const CreateFlagContract = defineCommand({\n meta: {\n name: 'flag.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'create'],\n description: 'Create a new feature flag.',\n goal: 'Define a new feature flag for toggling features.',\n context: 'Called when setting up a new feature flag.',\n },\n io: {\n input: CreateFlagInput,\n output: FeatureFlagModel,\n errors: {\n KEY_ALREADY_EXISTS: {\n description: 'Flag key already exists',\n http: 409,\n gqlCode: 'FLAG_KEY_EXISTS',\n when: 'A flag with this key already exists',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Update a feature flag.\n */\nexport const UpdateFlagContract = defineCommand({\n meta: {\n name: 'flag.update',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'update'],\n description: 'Update an existing feature flag.',\n goal: 'Modify flag configuration.',\n context: 'Called when adjusting flag settings.',\n },\n io: {\n input: UpdateFlagInput,\n output: FeatureFlagModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag ID is invalid',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Delete a feature flag.\n */\nexport const DeleteFlagContract = defineCommand({\n meta: {\n name: 'flag.delete',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'delete'],\n description: 'Delete a feature flag.',\n goal: 'Remove a feature flag and all its rules.',\n context: 'Called when a flag is no longer needed.',\n },\n io: {\n input: DeleteFlagInput,\n output: SuccessOutput,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag ID is invalid',\n },\n FLAG_HAS_ACTIVE_EXPERIMENT: {\n description: 'Flag has an active experiment',\n http: 409,\n gqlCode: 'FLAG_HAS_ACTIVE_EXPERIMENT',\n when: 'Cannot delete flag with running experiment',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Toggle a feature flag status.\n */\nexport const ToggleFlagContract = defineCommand({\n meta: {\n name: 'flag.toggle',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'toggle'],\n description: 'Toggle a feature flag status.',\n goal: 'Quickly enable or disable a feature.',\n context: 'Called when turning a feature on or off.',\n },\n io: {\n input: ToggleFlagInput,\n output: FeatureFlagModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag ID is invalid',\n },\n INVALID_STATUS: {\n description: 'Invalid status value',\n http: 400,\n gqlCode: 'INVALID_STATUS',\n when: 'Status must be OFF, ON, or GRADUAL',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Get a feature flag by key.\n */\nexport const GetFlagContract = defineQuery({\n meta: {\n name: 'flag.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'get'],\n description: 'Get a feature flag by key.',\n goal: 'Retrieve flag configuration.',\n context: 'Called to inspect flag details.',\n },\n io: {\n input: GetFlagInput,\n output: FeatureFlagModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag key is invalid',\n },\n },\n },\n policy: {\n auth: 'user',\n },\n});\n\n/**\n * List feature flags.\n */\nexport const ListFlagsContract = defineQuery({\n meta: {\n name: 'flag.list',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'list'],\n description: 'List all feature flags.',\n goal: 'View all configured flags.',\n context: 'Admin dashboard.',\n },\n io: {\n input: ListFlagsInput,\n output: ListFlagsOutput,\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Evaluate a feature flag.\n */\nexport const EvaluateFlagContract = defineQuery({\n meta: {\n name: 'flag.evaluate',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'evaluate'],\n description: 'Evaluate a feature flag for a given context.',\n goal: 'Determine if a feature should be enabled.',\n context: 'Called at runtime to check feature availability.',\n },\n io: {\n input: EvaluateFlagInput,\n output: EvaluationResultModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag key is invalid',\n },\n },\n },\n policy: {\n auth: 'anonymous',\n },\n});\n\n/**\n * Create a targeting rule.\n */\nexport const CreateRuleContract = defineCommand({\n meta: {\n name: 'flag.rule.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'rule', 'create'],\n description: 'Create a targeting rule for a flag.',\n goal: 'Add conditional targeting to a flag.',\n context: 'Called when setting up targeting.',\n },\n io: {\n input: CreateRuleInput,\n output: TargetingRuleModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag ID is invalid',\n },\n INVALID_OPERATOR: {\n description: 'Invalid operator',\n http: 400,\n gqlCode: 'INVALID_OPERATOR',\n when: 'Operator is not supported',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Delete a targeting rule.\n */\nexport const DeleteRuleContract = defineCommand({\n meta: {\n name: 'flag.rule.delete',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'rule', 'delete'],\n description: 'Delete a targeting rule.',\n goal: 'Remove a targeting rule from a flag.',\n context: 'Called when removing targeting conditions.',\n },\n io: {\n input: DeleteRuleInput,\n output: SuccessOutput,\n errors: {\n RULE_NOT_FOUND: {\n description: 'Rule does not exist',\n http: 404,\n gqlCode: 'RULE_NOT_FOUND',\n when: 'Rule ID is invalid',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Create an experiment.\n */\nexport const CreateExperimentContract = defineCommand({\n meta: {\n name: 'experiment.create',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'experiment', 'create'],\n description: 'Create an A/B test experiment.',\n goal: 'Set up an experiment with variants.',\n context: 'Called when setting up A/B testing.',\n },\n io: {\n input: CreateExperimentInput,\n output: ExperimentModel,\n errors: {\n FLAG_NOT_FOUND: {\n description: 'Flag does not exist',\n http: 404,\n gqlCode: 'FLAG_NOT_FOUND',\n when: 'Flag ID is invalid',\n },\n EXPERIMENT_KEY_EXISTS: {\n description: 'Experiment key already exists',\n http: 409,\n gqlCode: 'EXPERIMENT_KEY_EXISTS',\n when: 'An experiment with this key already exists',\n },\n INVALID_VARIANTS: {\n description: 'Invalid variant configuration',\n http: 400,\n gqlCode: 'INVALID_VARIANTS',\n when: 'Variant percentages must sum to 100',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Start an experiment.\n */\nexport const StartExperimentContract = defineCommand({\n meta: {\n name: 'experiment.start',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'experiment', 'start'],\n description: 'Start an experiment.',\n goal: 'Begin collecting data for an experiment.',\n context: 'Called when ready to run an A/B test.',\n },\n io: {\n input: StartExperimentInput,\n output: ExperimentModel,\n errors: {\n EXPERIMENT_NOT_FOUND: {\n description: 'Experiment does not exist',\n http: 404,\n gqlCode: 'EXPERIMENT_NOT_FOUND',\n when: 'Experiment ID is invalid',\n },\n EXPERIMENT_ALREADY_RUNNING: {\n description: 'Experiment is already running',\n http: 409,\n gqlCode: 'EXPERIMENT_ALREADY_RUNNING',\n when: 'Cannot start an experiment that is already running',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Stop an experiment.\n */\nexport const StopExperimentContract = defineCommand({\n meta: {\n name: 'experiment.stop',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'experiment', 'stop'],\n description: 'Stop an experiment.',\n goal: 'End an experiment and optionally declare a winner.',\n context: 'Called when concluding an A/B test.',\n },\n io: {\n input: StopExperimentInput,\n output: ExperimentModel,\n errors: {\n EXPERIMENT_NOT_FOUND: {\n description: 'Experiment does not exist',\n http: 404,\n gqlCode: 'EXPERIMENT_NOT_FOUND',\n when: 'Experiment ID is invalid',\n },\n EXPERIMENT_NOT_RUNNING: {\n description: 'Experiment is not running',\n http: 409,\n gqlCode: 'EXPERIMENT_NOT_RUNNING',\n when: 'Cannot stop an experiment that is not running',\n },\n },\n },\n policy: {\n auth: 'admin',\n },\n});\n\n/**\n * Get an experiment.\n */\nexport const GetExperimentContract = defineQuery({\n meta: {\n name: 'experiment.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['feature-flags', 'experiment', 'get'],\n description: 'Get experiment details.',\n goal: 'View experiment configuration and results.',\n context: 'Called to inspect experiment status.',\n },\n io: {\n input: GetExperimentInput,\n output: ExperimentModel,\n errors: {\n EXPERIMENT_NOT_FOUND: {\n description: 'Experiment does not exist',\n http: 404,\n gqlCode: 'EXPERIMENT_NOT_FOUND',\n when: 'Experiment ID is invalid',\n },\n },\n },\n policy: {\n auth: 'user',\n },\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-flags.docblock.js","names":[],"sources":["../../src/docs/feature-flags.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '@lssm/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 \\`@lssm/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 '@lssm/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"}
|
package/dist/entities/index.d.ts
CHANGED
|
@@ -1,200 +1,201 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema413 from "@lssm/lib.schema";
|
|
2
2
|
import { ModuleSchemaContribution } from "@lssm/lib.schema";
|
|
3
3
|
|
|
4
4
|
//#region src/entities/index.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Feature flag status enum.
|
|
7
7
|
*/
|
|
8
|
-
declare const FlagStatusEnum:
|
|
8
|
+
declare const FlagStatusEnum: _lssm_lib_schema413.EntityEnumDef;
|
|
9
9
|
/**
|
|
10
10
|
* Targeting rule operator enum.
|
|
11
11
|
*/
|
|
12
|
-
declare const RuleOperatorEnum:
|
|
12
|
+
declare const RuleOperatorEnum: _lssm_lib_schema413.EntityEnumDef;
|
|
13
13
|
/**
|
|
14
14
|
* Experiment status enum.
|
|
15
15
|
*/
|
|
16
|
-
declare const ExperimentStatusEnum:
|
|
16
|
+
declare const ExperimentStatusEnum: _lssm_lib_schema413.EntityEnumDef;
|
|
17
17
|
/**
|
|
18
18
|
* FeatureFlag entity - defines a feature flag.
|
|
19
19
|
*/
|
|
20
|
-
declare const FeatureFlagEntity:
|
|
21
|
-
id:
|
|
22
|
-
key:
|
|
23
|
-
name:
|
|
24
|
-
description:
|
|
25
|
-
status:
|
|
26
|
-
defaultValue:
|
|
27
|
-
variants:
|
|
28
|
-
orgId:
|
|
29
|
-
tags:
|
|
30
|
-
metadata:
|
|
31
|
-
createdAt:
|
|
32
|
-
updatedAt:
|
|
33
|
-
targetingRules:
|
|
34
|
-
experiments:
|
|
35
|
-
evaluations:
|
|
20
|
+
declare const FeatureFlagEntity: _lssm_lib_schema413.EntitySpec<{
|
|
21
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
22
|
+
key: _lssm_lib_schema413.EntityScalarField;
|
|
23
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
24
|
+
description: _lssm_lib_schema413.EntityScalarField;
|
|
25
|
+
status: _lssm_lib_schema413.EntityEnumField;
|
|
26
|
+
defaultValue: _lssm_lib_schema413.EntityScalarField;
|
|
27
|
+
variants: _lssm_lib_schema413.EntityScalarField;
|
|
28
|
+
orgId: _lssm_lib_schema413.EntityScalarField;
|
|
29
|
+
tags: _lssm_lib_schema413.EntityScalarField;
|
|
30
|
+
metadata: _lssm_lib_schema413.EntityScalarField;
|
|
31
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
32
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
33
|
+
targetingRules: _lssm_lib_schema413.EntityRelationField;
|
|
34
|
+
experiments: _lssm_lib_schema413.EntityRelationField;
|
|
35
|
+
evaluations: _lssm_lib_schema413.EntityRelationField;
|
|
36
36
|
}>;
|
|
37
37
|
/**
|
|
38
38
|
* FlagTargetingRule entity - conditions for targeting.
|
|
39
39
|
*/
|
|
40
|
-
declare const FlagTargetingRuleEntity:
|
|
41
|
-
id:
|
|
42
|
-
flagId:
|
|
43
|
-
name:
|
|
44
|
-
priority:
|
|
45
|
-
enabled:
|
|
46
|
-
attribute:
|
|
47
|
-
operator:
|
|
48
|
-
value:
|
|
49
|
-
rolloutPercentage:
|
|
50
|
-
serveValue:
|
|
51
|
-
serveVariant:
|
|
52
|
-
createdAt:
|
|
53
|
-
updatedAt:
|
|
54
|
-
flag:
|
|
40
|
+
declare const FlagTargetingRuleEntity: _lssm_lib_schema413.EntitySpec<{
|
|
41
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
42
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
43
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
44
|
+
priority: _lssm_lib_schema413.EntityScalarField;
|
|
45
|
+
enabled: _lssm_lib_schema413.EntityScalarField;
|
|
46
|
+
attribute: _lssm_lib_schema413.EntityScalarField;
|
|
47
|
+
operator: _lssm_lib_schema413.EntityEnumField;
|
|
48
|
+
value: _lssm_lib_schema413.EntityScalarField;
|
|
49
|
+
rolloutPercentage: _lssm_lib_schema413.EntityScalarField;
|
|
50
|
+
serveValue: _lssm_lib_schema413.EntityScalarField;
|
|
51
|
+
serveVariant: _lssm_lib_schema413.EntityScalarField;
|
|
52
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
53
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
54
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
55
55
|
}>;
|
|
56
56
|
/**
|
|
57
57
|
* Experiment entity - A/B test configuration.
|
|
58
58
|
*/
|
|
59
|
-
declare const ExperimentEntity:
|
|
60
|
-
id:
|
|
61
|
-
key:
|
|
62
|
-
name:
|
|
63
|
-
description:
|
|
64
|
-
hypothesis:
|
|
65
|
-
flagId:
|
|
66
|
-
status:
|
|
67
|
-
variants:
|
|
68
|
-
metrics:
|
|
69
|
-
audiencePercentage:
|
|
70
|
-
audienceFilter:
|
|
71
|
-
scheduledStartAt:
|
|
72
|
-
scheduledEndAt:
|
|
73
|
-
startedAt:
|
|
74
|
-
endedAt:
|
|
75
|
-
winningVariant:
|
|
76
|
-
results:
|
|
77
|
-
orgId:
|
|
78
|
-
createdAt:
|
|
79
|
-
updatedAt:
|
|
80
|
-
flag:
|
|
81
|
-
assignments:
|
|
59
|
+
declare const ExperimentEntity: _lssm_lib_schema413.EntitySpec<{
|
|
60
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
61
|
+
key: _lssm_lib_schema413.EntityScalarField;
|
|
62
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
63
|
+
description: _lssm_lib_schema413.EntityScalarField;
|
|
64
|
+
hypothesis: _lssm_lib_schema413.EntityScalarField;
|
|
65
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
66
|
+
status: _lssm_lib_schema413.EntityEnumField;
|
|
67
|
+
variants: _lssm_lib_schema413.EntityScalarField;
|
|
68
|
+
metrics: _lssm_lib_schema413.EntityScalarField;
|
|
69
|
+
audiencePercentage: _lssm_lib_schema413.EntityScalarField;
|
|
70
|
+
audienceFilter: _lssm_lib_schema413.EntityScalarField;
|
|
71
|
+
scheduledStartAt: _lssm_lib_schema413.EntityScalarField;
|
|
72
|
+
scheduledEndAt: _lssm_lib_schema413.EntityScalarField;
|
|
73
|
+
startedAt: _lssm_lib_schema413.EntityScalarField;
|
|
74
|
+
endedAt: _lssm_lib_schema413.EntityScalarField;
|
|
75
|
+
winningVariant: _lssm_lib_schema413.EntityScalarField;
|
|
76
|
+
results: _lssm_lib_schema413.EntityScalarField;
|
|
77
|
+
orgId: _lssm_lib_schema413.EntityScalarField;
|
|
78
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
79
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
80
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
81
|
+
assignments: _lssm_lib_schema413.EntityRelationField;
|
|
82
82
|
}>;
|
|
83
83
|
/**
|
|
84
84
|
* ExperimentAssignment entity - tracks which variant a subject is assigned to.
|
|
85
85
|
*/
|
|
86
|
-
declare const ExperimentAssignmentEntity:
|
|
87
|
-
id:
|
|
88
|
-
experimentId:
|
|
89
|
-
subjectType:
|
|
90
|
-
subjectId:
|
|
91
|
-
variant:
|
|
92
|
-
bucket:
|
|
93
|
-
context:
|
|
94
|
-
assignedAt:
|
|
95
|
-
experiment:
|
|
86
|
+
declare const ExperimentAssignmentEntity: _lssm_lib_schema413.EntitySpec<{
|
|
87
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
88
|
+
experimentId: _lssm_lib_schema413.EntityScalarField;
|
|
89
|
+
subjectType: _lssm_lib_schema413.EntityScalarField;
|
|
90
|
+
subjectId: _lssm_lib_schema413.EntityScalarField;
|
|
91
|
+
variant: _lssm_lib_schema413.EntityScalarField;
|
|
92
|
+
bucket: _lssm_lib_schema413.EntityScalarField;
|
|
93
|
+
context: _lssm_lib_schema413.EntityScalarField;
|
|
94
|
+
assignedAt: _lssm_lib_schema413.EntityScalarField;
|
|
95
|
+
experiment: _lssm_lib_schema413.EntityRelationField;
|
|
96
96
|
}>;
|
|
97
97
|
/**
|
|
98
98
|
* FlagEvaluation entity - evaluation log for analytics.
|
|
99
99
|
*/
|
|
100
|
-
declare const FlagEvaluationEntity:
|
|
101
|
-
id:
|
|
102
|
-
flagId:
|
|
103
|
-
flagKey:
|
|
104
|
-
subjectType:
|
|
105
|
-
subjectId:
|
|
106
|
-
result:
|
|
107
|
-
variant:
|
|
108
|
-
matchedRuleId:
|
|
109
|
-
reason:
|
|
110
|
-
context:
|
|
111
|
-
evaluatedAt:
|
|
112
|
-
flag:
|
|
100
|
+
declare const FlagEvaluationEntity: _lssm_lib_schema413.EntitySpec<{
|
|
101
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
102
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
103
|
+
flagKey: _lssm_lib_schema413.EntityScalarField;
|
|
104
|
+
subjectType: _lssm_lib_schema413.EntityScalarField;
|
|
105
|
+
subjectId: _lssm_lib_schema413.EntityScalarField;
|
|
106
|
+
result: _lssm_lib_schema413.EntityScalarField;
|
|
107
|
+
variant: _lssm_lib_schema413.EntityScalarField;
|
|
108
|
+
matchedRuleId: _lssm_lib_schema413.EntityScalarField;
|
|
109
|
+
reason: _lssm_lib_schema413.EntityScalarField;
|
|
110
|
+
context: _lssm_lib_schema413.EntityScalarField;
|
|
111
|
+
evaluatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
112
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
113
113
|
}>;
|
|
114
114
|
/**
|
|
115
115
|
* All feature flag entities for schema composition.
|
|
116
116
|
*/
|
|
117
|
-
declare const featureFlagEntities: (
|
|
118
|
-
id:
|
|
119
|
-
key:
|
|
120
|
-
name:
|
|
121
|
-
description:
|
|
122
|
-
status:
|
|
123
|
-
defaultValue:
|
|
124
|
-
variants:
|
|
125
|
-
orgId:
|
|
126
|
-
tags:
|
|
127
|
-
metadata:
|
|
128
|
-
createdAt:
|
|
129
|
-
updatedAt:
|
|
130
|
-
targetingRules:
|
|
131
|
-
experiments:
|
|
132
|
-
evaluations:
|
|
133
|
-
}> |
|
|
134
|
-
id:
|
|
135
|
-
flagId:
|
|
136
|
-
name:
|
|
137
|
-
priority:
|
|
138
|
-
enabled:
|
|
139
|
-
attribute:
|
|
140
|
-
operator:
|
|
141
|
-
value:
|
|
142
|
-
rolloutPercentage:
|
|
143
|
-
serveValue:
|
|
144
|
-
serveVariant:
|
|
145
|
-
createdAt:
|
|
146
|
-
updatedAt:
|
|
147
|
-
flag:
|
|
148
|
-
}> |
|
|
149
|
-
id:
|
|
150
|
-
key:
|
|
151
|
-
name:
|
|
152
|
-
description:
|
|
153
|
-
hypothesis:
|
|
154
|
-
flagId:
|
|
155
|
-
status:
|
|
156
|
-
variants:
|
|
157
|
-
metrics:
|
|
158
|
-
audiencePercentage:
|
|
159
|
-
audienceFilter:
|
|
160
|
-
scheduledStartAt:
|
|
161
|
-
scheduledEndAt:
|
|
162
|
-
startedAt:
|
|
163
|
-
endedAt:
|
|
164
|
-
winningVariant:
|
|
165
|
-
results:
|
|
166
|
-
orgId:
|
|
167
|
-
createdAt:
|
|
168
|
-
updatedAt:
|
|
169
|
-
flag:
|
|
170
|
-
assignments:
|
|
171
|
-
}> |
|
|
172
|
-
id:
|
|
173
|
-
experimentId:
|
|
174
|
-
subjectType:
|
|
175
|
-
subjectId:
|
|
176
|
-
variant:
|
|
177
|
-
bucket:
|
|
178
|
-
context:
|
|
179
|
-
assignedAt:
|
|
180
|
-
experiment:
|
|
181
|
-
}> |
|
|
182
|
-
id:
|
|
183
|
-
flagId:
|
|
184
|
-
flagKey:
|
|
185
|
-
subjectType:
|
|
186
|
-
subjectId:
|
|
187
|
-
result:
|
|
188
|
-
variant:
|
|
189
|
-
matchedRuleId:
|
|
190
|
-
reason:
|
|
191
|
-
context:
|
|
192
|
-
evaluatedAt:
|
|
193
|
-
flag:
|
|
117
|
+
declare const featureFlagEntities: (_lssm_lib_schema413.EntitySpec<{
|
|
118
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
119
|
+
key: _lssm_lib_schema413.EntityScalarField;
|
|
120
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
121
|
+
description: _lssm_lib_schema413.EntityScalarField;
|
|
122
|
+
status: _lssm_lib_schema413.EntityEnumField;
|
|
123
|
+
defaultValue: _lssm_lib_schema413.EntityScalarField;
|
|
124
|
+
variants: _lssm_lib_schema413.EntityScalarField;
|
|
125
|
+
orgId: _lssm_lib_schema413.EntityScalarField;
|
|
126
|
+
tags: _lssm_lib_schema413.EntityScalarField;
|
|
127
|
+
metadata: _lssm_lib_schema413.EntityScalarField;
|
|
128
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
129
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
130
|
+
targetingRules: _lssm_lib_schema413.EntityRelationField;
|
|
131
|
+
experiments: _lssm_lib_schema413.EntityRelationField;
|
|
132
|
+
evaluations: _lssm_lib_schema413.EntityRelationField;
|
|
133
|
+
}> | _lssm_lib_schema413.EntitySpec<{
|
|
134
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
135
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
136
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
137
|
+
priority: _lssm_lib_schema413.EntityScalarField;
|
|
138
|
+
enabled: _lssm_lib_schema413.EntityScalarField;
|
|
139
|
+
attribute: _lssm_lib_schema413.EntityScalarField;
|
|
140
|
+
operator: _lssm_lib_schema413.EntityEnumField;
|
|
141
|
+
value: _lssm_lib_schema413.EntityScalarField;
|
|
142
|
+
rolloutPercentage: _lssm_lib_schema413.EntityScalarField;
|
|
143
|
+
serveValue: _lssm_lib_schema413.EntityScalarField;
|
|
144
|
+
serveVariant: _lssm_lib_schema413.EntityScalarField;
|
|
145
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
146
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
147
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
148
|
+
}> | _lssm_lib_schema413.EntitySpec<{
|
|
149
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
150
|
+
key: _lssm_lib_schema413.EntityScalarField;
|
|
151
|
+
name: _lssm_lib_schema413.EntityScalarField;
|
|
152
|
+
description: _lssm_lib_schema413.EntityScalarField;
|
|
153
|
+
hypothesis: _lssm_lib_schema413.EntityScalarField;
|
|
154
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
155
|
+
status: _lssm_lib_schema413.EntityEnumField;
|
|
156
|
+
variants: _lssm_lib_schema413.EntityScalarField;
|
|
157
|
+
metrics: _lssm_lib_schema413.EntityScalarField;
|
|
158
|
+
audiencePercentage: _lssm_lib_schema413.EntityScalarField;
|
|
159
|
+
audienceFilter: _lssm_lib_schema413.EntityScalarField;
|
|
160
|
+
scheduledStartAt: _lssm_lib_schema413.EntityScalarField;
|
|
161
|
+
scheduledEndAt: _lssm_lib_schema413.EntityScalarField;
|
|
162
|
+
startedAt: _lssm_lib_schema413.EntityScalarField;
|
|
163
|
+
endedAt: _lssm_lib_schema413.EntityScalarField;
|
|
164
|
+
winningVariant: _lssm_lib_schema413.EntityScalarField;
|
|
165
|
+
results: _lssm_lib_schema413.EntityScalarField;
|
|
166
|
+
orgId: _lssm_lib_schema413.EntityScalarField;
|
|
167
|
+
createdAt: _lssm_lib_schema413.EntityScalarField;
|
|
168
|
+
updatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
169
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
170
|
+
assignments: _lssm_lib_schema413.EntityRelationField;
|
|
171
|
+
}> | _lssm_lib_schema413.EntitySpec<{
|
|
172
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
173
|
+
experimentId: _lssm_lib_schema413.EntityScalarField;
|
|
174
|
+
subjectType: _lssm_lib_schema413.EntityScalarField;
|
|
175
|
+
subjectId: _lssm_lib_schema413.EntityScalarField;
|
|
176
|
+
variant: _lssm_lib_schema413.EntityScalarField;
|
|
177
|
+
bucket: _lssm_lib_schema413.EntityScalarField;
|
|
178
|
+
context: _lssm_lib_schema413.EntityScalarField;
|
|
179
|
+
assignedAt: _lssm_lib_schema413.EntityScalarField;
|
|
180
|
+
experiment: _lssm_lib_schema413.EntityRelationField;
|
|
181
|
+
}> | _lssm_lib_schema413.EntitySpec<{
|
|
182
|
+
id: _lssm_lib_schema413.EntityScalarField;
|
|
183
|
+
flagId: _lssm_lib_schema413.EntityScalarField;
|
|
184
|
+
flagKey: _lssm_lib_schema413.EntityScalarField;
|
|
185
|
+
subjectType: _lssm_lib_schema413.EntityScalarField;
|
|
186
|
+
subjectId: _lssm_lib_schema413.EntityScalarField;
|
|
187
|
+
result: _lssm_lib_schema413.EntityScalarField;
|
|
188
|
+
variant: _lssm_lib_schema413.EntityScalarField;
|
|
189
|
+
matchedRuleId: _lssm_lib_schema413.EntityScalarField;
|
|
190
|
+
reason: _lssm_lib_schema413.EntityScalarField;
|
|
191
|
+
context: _lssm_lib_schema413.EntityScalarField;
|
|
192
|
+
evaluatedAt: _lssm_lib_schema413.EntityScalarField;
|
|
193
|
+
flag: _lssm_lib_schema413.EntityRelationField;
|
|
194
194
|
}>)[];
|
|
195
195
|
/**
|
|
196
196
|
* Module schema contribution for feature flags.
|
|
197
197
|
*/
|
|
198
198
|
declare const featureFlagsSchemaContribution: ModuleSchemaContribution;
|
|
199
199
|
//#endregion
|
|
200
|
-
export { ExperimentAssignmentEntity, ExperimentEntity, ExperimentStatusEnum, FeatureFlagEntity, FlagEvaluationEntity, FlagStatusEnum, FlagTargetingRuleEntity, RuleOperatorEnum, featureFlagEntities, featureFlagsSchemaContribution };
|
|
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":";;;;;;;AAMa,cAAA,cAKX,EAAA,mBAAA,CALyB,aAKzB;AAKF;AAsBA;AAUA;AA4DE,cA5FW,gBA4FX,EA3EA,mBAAA,CAjB2B,aA4F3B;;;;cAtEW,sBAKX,mBAAA,CAL+B;;;;cAUpB,uCAAiB;MA4D5B,mBAAA,CAAA;;;;;;iDA5D4B;EAAA,KAAA,uCAAA;EAiEjB,IAAA,uCAyDX;EAAA,QAAA,uCAAA;;;;;;;;;;cAzDW,6CAAuB;MAyDlC,mBAAA,CAAA;;;iDAzDkC;EAAA,OAAA,uCAAA;EA8DvB,SAAA,uCA2FX;EAAA,QAAA,qCAAA;;;;;;;;;;;;cA3FW,sCAAgB;MA2F3B,mBAAA,CAAA;;;;;;;;;oBA3F2B,uCAAA;EAAA,cAAA,uCAAA;EAgGhB,gBAAA,uCAuCX;EAAA,cAAA,uCAAA;;;;;;;;;sDAvCqC;CAAA,CAAA;AA4CvC;;;cA5Ca,gDAA0B;MAuCrC,mBAAA,CAAA;;;;;;;;;;;AA+DF;;cA1Da,0CAAoB;MAqD/B,mBAAA,CAAA;;;;;;;;;;;;;;;;cAKW,0CAAmB;MAM/B,mBAAA,CAAA;;;;;;;;;;;;;;;;MAN+B,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnB,MAAA,uCAAgC;;;;;;;;;;;;;;;;;;;;;cAAhC,gCAAgC"}
|