@happyvertical/smrt-features 0.51.31 → 0.51.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { SmrtObject } from '@happyvertical/smrt-core';
2
- import { FeatureDefinitionOptions, FeatureMetadata } from './types.js';
2
+ import type { FeatureDefinitionOptions, FeatureMetadata } from './types.js';
3
3
  export declare class FeatureDefinition extends SmrtObject {
4
4
  featureKey: string;
5
5
  packageName: string;
@@ -1,6 +1,6 @@
1
1
  import { SmrtCollection } from '@happyvertical/smrt-core';
2
2
  import { FeatureDefinition } from './feature-definition.js';
3
- import { FeatureDefinitionSeed } from './types.js';
3
+ import type { FeatureDefinitionSeed } from './types.js';
4
4
  export declare class FeatureDefinitionCollection extends SmrtCollection<FeatureDefinition> {
5
5
  static readonly _itemClass: typeof FeatureDefinition;
6
6
  findByFeatureKey(featureKey: string): Promise<FeatureDefinition | null>;
@@ -1,6 +1,6 @@
1
- import { FeatureOverride } from './feature-override.js';
2
- import { FeatureOverrideCollection } from './feature-overrides.js';
3
- import { FeatureOverrideEffect, FeatureScopeType } from './types.js';
1
+ import type { FeatureOverride } from './feature-override.js';
2
+ import type { FeatureOverrideCollection } from './feature-overrides.js';
3
+ import type { FeatureOverrideEffect, FeatureScopeType } from './types.js';
4
4
  /** One override write the host must authorize before it runs (#3013). */
5
5
  export interface FeatureOverrideWriteRequest {
6
6
  operation: 'set' | 'remove';
@@ -1,5 +1,5 @@
1
1
  import { SmrtObject } from '@happyvertical/smrt-core';
2
- import { FeatureOverrideEffect, FeatureOverrideOptions, FeatureScopeType } from './types.js';
2
+ import { FeatureOverrideEffect, type FeatureOverrideOptions, type FeatureScopeType } from './types.js';
3
3
  export declare class FeatureOverride extends SmrtObject {
4
4
  featureKey: string;
5
5
  scopeType: FeatureScopeType;
@@ -1,6 +1,6 @@
1
1
  import { SmrtCollection } from '@happyvertical/smrt-core';
2
2
  import { FeatureOverride } from './feature-override.js';
3
- import { FeatureOverrideEffect, FeatureScopeType } from './types.js';
3
+ import { type FeatureOverrideEffect, type FeatureScopeType } from './types.js';
4
4
  export declare class FeatureOverrideCollection extends SmrtCollection<FeatureOverride> {
5
5
  static readonly _itemClass: typeof FeatureOverride;
6
6
  findByFeatureKey(featureKey: string): Promise<FeatureOverride[]>;
@@ -1,5 +1,5 @@
1
- import { SmrtClassOptions } from '@happyvertical/smrt-core';
2
- import { FeatureResolutionContext, FeatureResolverOptions, FeatureTargetConstructor } from './types.js';
1
+ import type { SmrtClassOptions } from '@happyvertical/smrt-core';
2
+ import { type FeatureResolutionContext, type FeatureResolverOptions, type FeatureTargetConstructor } from './types.js';
3
3
  export declare class FeatureResolver {
4
4
  private readonly options;
5
5
  private readonly resolverOptions;
@@ -1,10 +1,10 @@
1
- import { SmrtClassOptions } from '@happyvertical/smrt-core';
1
+ import type { SmrtClassOptions } from '@happyvertical/smrt-core';
2
2
  import { FeatureDefinitionCollection } from './feature-definitions.js';
3
- import { FeatureOverride } from './feature-override.js';
4
- import { FeatureOverrideAuthorizer } from './feature-override-service.js';
3
+ import type { FeatureOverride } from './feature-override.js';
4
+ import { type FeatureOverrideAuthorizer } from './feature-override-service.js';
5
5
  import { FeatureOverrideCollection } from './feature-overrides.js';
6
6
  import { FeatureResolver } from './feature-resolver.js';
7
- import { FeatureMetadata, FeatureOverrideEffect, FeatureResolverOptions, FeatureScopeType } from './types.js';
7
+ import { type FeatureMetadata, FeatureOverrideEffect, type FeatureResolverOptions, type FeatureScopeType } from './types.js';
8
8
  /**
9
9
  * One feature, rendered for a management screen: the code-owned definition,
10
10
  * the value that is actually in effect for the requested tenant, and the raw
@@ -1,6 +1,6 @@
1
- import { SmrtClassOptions } from '@happyvertical/smrt-core';
2
- import { SmartObjectManifest } from '@happyvertical/smrt-core/manifest';
3
- import { FeatureSyncResult, SyncDefinitionsOptions, SyncManifestOptions } from './types.js';
1
+ import { type SmrtClassOptions } from '@happyvertical/smrt-core';
2
+ import type { SmartObjectManifest } from '@happyvertical/smrt-core/manifest';
3
+ import type { FeatureSyncResult, SyncDefinitionsOptions, SyncManifestOptions } from './types.js';
4
4
  export declare class FeatureSyncService {
5
5
  private readonly options;
6
6
  private featureDefinitions;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * @happyvertical/smrt-features
3
+ *
4
+ * Code-first feature flags for the SMRT framework.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import './__smrt-register__.js';
1
9
  export { FeatureDefinition } from './feature-definition.js';
2
10
  export { FeatureDefinitionCollection } from './feature-definitions.js';
3
11
  export { FeatureOverride } from './feature-override.js';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { FeatureOverrideEffect, GLOBAL_FEATURE_SCOPE_ID } from "./types.js";
2
2
  import { ObjectRegistry, SmrtCollection, SmrtObject, createQualifiedName, isQualifiedName, parseQualifiedName, smrt } from "@happyvertical/smrt-core";
3
3
  import { importWorkspaceModule } from "@happyvertical/smrt-core/utils/import-workspace-module";
4
4
  //#region src/__smrt-register__.ts
5
- ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-features\",\"packageVersion\":\"0.51.31\",\"objects\":{\"@happyvertical/smrt-features:FeatureDefinition\":{\"name\":\"featuredefinition\",\"className\":\"FeatureDefinition\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureDefinition\",\"collection\":\"featuredefinitions\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-definition.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{\"featureKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"qualifiedClassName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"className\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"localId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultEnabled\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"label\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"visibility\":{\"type\":\"text\",\"required\":false,\"default\":\"public\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"FeatureMetadata\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"FeatureMetadata | null\",\"optional\":false,\"unionBranches\":[{\"type\":\"FeatureMetadata\"},{\"type\":\"null\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_definitions\",\"api\":false,\"cli\":false,\"mcp\":false,\"conflictColumns\":[\"feature_key\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FeatureDefinition\",\"collectionExportName\":\"FeatureDefinitionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_definitions\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_definitions\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"qualified_class_name\\\" TEXT DEFAULT '',\\n \\\"class_name\\\" TEXT DEFAULT '',\\n \\\"local_id\\\" TEXT DEFAULT '',\\n \\\"default_enabled\\\" BOOLEAN DEFAULT FALSE,\\n \\\"label\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT '',\\n \\\"visibility\\\" TEXT DEFAULT 'public'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"qualified_class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"local_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"label\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"visibility\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"public\"}},\"indexes\":[{\"name\":\"_smrt_feature_definitions_feature_key_idx\",\"columns\":[\"feature_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_definitions_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_definitions_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"8813204c\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureDefinitionCollection\":{\"name\":\"featuredefinitioncollection\",\"className\":\"FeatureDefinitionCollection\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureDefinitionCollection\",\"collection\":\"featuredefinitions\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-definitions.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{},\"methods\":{\"findByFeatureKey\":{\"name\":\"findByFeatureKey\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureDefinition | null>\",\"isStatic\":false,\"isPublic\":true},\"findByPackageName\":{\"name\":\"findByPackageName\",\"async\":true,\"parameters\":[{\"name\":\"packageName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureDefinition[]>\",\"isStatic\":false,\"isPublic\":true},\"upsertDefinition\":{\"name\":\"upsertDefinition\",\"async\":true,\"parameters\":[{\"name\":\"seed\",\"type\":\"FeatureDefinitionSeed\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_definitions\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FeatureDefinition\",\"exportName\":\"FeatureDefinitionCollection\",\"collectionExportName\":\"FeatureDefinitionCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_definitions\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_definitions\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"qualified_class_name\\\" TEXT DEFAULT '',\\n \\\"class_name\\\" TEXT DEFAULT '',\\n \\\"local_id\\\" TEXT DEFAULT '',\\n \\\"default_enabled\\\" BOOLEAN DEFAULT FALSE,\\n \\\"label\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT '',\\n \\\"visibility\\\" TEXT DEFAULT 'public'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"qualified_class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"local_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"label\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"visibility\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"public\"}},\"indexes\":[{\"name\":\"_smrt_feature_definitions_feature_key_idx\",\"columns\":[\"feature_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_definitions_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_definitions_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"8813204c\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureOverride\":{\"name\":\"featureoverride\",\"className\":\"FeatureOverride\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureOverride\",\"collection\":\"featureoverrides\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-override.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{\"featureKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"scopeType\":{\"type\":\"text\",\"required\":false,\"default\":\"global\"},\"scopeId\":{\"type\":\"text\",\"required\":false},\"effect\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"isInherit\":{\"name\":\"isInherit\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isEnabled\":{\"name\":\"isEnabled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDisabled\":{\"name\":\"isDisabled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_overrides\",\"api\":false,\"cli\":false,\"mcp\":false,\"conflictColumns\":[\"feature_key\",\"scope_type\",\"scope_id\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FeatureOverride\",\"collectionExportName\":\"FeatureOverrideCollection\",\"schema\":{\"tableName\":\"_smrt_feature_overrides\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_overrides\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"scope_type\\\" TEXT DEFAULT 'global',\\n \\\"scope_id\\\" TEXT,\\n \\\"effect\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"scope_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"global\"},\"scope_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effect\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_feature_overrides_feature_key_scope_type_idx\",\"columns\":[\"feature_key\",\"scope_type\",\"scope_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_overrides_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_overrides_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"d61cf901\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureOverrideCollection\":{\"name\":\"featureoverridecollection\",\"className\":\"FeatureOverrideCollection\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureOverrideCollection\",\"collection\":\"featureoverrides\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-overrides.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{},\"methods\":{\"findByFeatureKey\":{\"name\":\"findByFeatureKey\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFeatureAndScope\":{\"name\":\"findByFeatureAndScope\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getGlobalOverride\":{\"name\":\"getGlobalOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getTenantOverride\":{\"name\":\"getTenantOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getOverrideMap\":{\"name\":\"getOverrideMap\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeIds\",\"type\":\"string[]\",\"optional\":false}],\"returnType\":\"Promise<Map<string, FeatureOverride>>\",\"isStatic\":false,\"isPublic\":true},\"setOverride\":{\"name\":\"setOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"setGlobalOverride\":{\"name\":\"setGlobalOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"setTenantOverride\":{\"name\":\"setTenantOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"removeOverride\":{\"name\":\"removeOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_overrides\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FeatureOverride\",\"exportName\":\"FeatureOverrideCollection\",\"collectionExportName\":\"FeatureOverrideCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_overrides\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_overrides\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"scope_type\\\" TEXT DEFAULT 'global',\\n \\\"scope_id\\\" TEXT,\\n \\\"effect\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"scope_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"global\"},\"scope_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effect\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_feature_overrides_feature_key_scope_type_idx\",\"columns\":[\"feature_key\",\"scope_type\",\"scope_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_overrides_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_overrides_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"d61cf901\"},\"importPath\":\"@happyvertical/smrt-features\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-users\"]}"));
5
+ ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-features\",\"packageVersion\":\"0.51.36\",\"objects\":{\"@happyvertical/smrt-features:FeatureDefinition\":{\"name\":\"featuredefinition\",\"className\":\"FeatureDefinition\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureDefinition\",\"collection\":\"featuredefinitions\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-definition.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{\"featureKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"qualifiedClassName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"className\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"localId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultEnabled\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"label\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"visibility\":{\"type\":\"text\",\"required\":false,\"default\":\"public\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"FeatureMetadata\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"FeatureMetadata | null\",\"optional\":false,\"unionBranches\":[{\"type\":\"FeatureMetadata\"},{\"type\":\"null\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_definitions\",\"api\":false,\"cli\":false,\"mcp\":false,\"conflictColumns\":[\"feature_key\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FeatureDefinition\",\"collectionExportName\":\"FeatureDefinitionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_definitions\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_definitions\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"qualified_class_name\\\" TEXT DEFAULT '',\\n \\\"class_name\\\" TEXT DEFAULT '',\\n \\\"local_id\\\" TEXT DEFAULT '',\\n \\\"default_enabled\\\" BOOLEAN DEFAULT FALSE,\\n \\\"label\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT '',\\n \\\"visibility\\\" TEXT DEFAULT 'public'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"qualified_class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"local_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"label\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"visibility\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"public\"}},\"indexes\":[{\"name\":\"_smrt_feature_definitions_feature_key_idx\",\"columns\":[\"feature_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_definitions_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_definitions_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"8813204c\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureDefinitionCollection\":{\"name\":\"featuredefinitioncollection\",\"className\":\"FeatureDefinitionCollection\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureDefinitionCollection\",\"collection\":\"featuredefinitions\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-definitions.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{},\"methods\":{\"findByFeatureKey\":{\"name\":\"findByFeatureKey\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureDefinition | null>\",\"isStatic\":false,\"isPublic\":true},\"findByPackageName\":{\"name\":\"findByPackageName\",\"async\":true,\"parameters\":[{\"name\":\"packageName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureDefinition[]>\",\"isStatic\":false,\"isPublic\":true},\"upsertDefinition\":{\"name\":\"upsertDefinition\",\"async\":true,\"parameters\":[{\"name\":\"seed\",\"type\":\"FeatureDefinitionSeed\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_definitions\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FeatureDefinition\",\"exportName\":\"FeatureDefinitionCollection\",\"collectionExportName\":\"FeatureDefinitionCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_definitions\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_definitions\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"qualified_class_name\\\" TEXT DEFAULT '',\\n \\\"class_name\\\" TEXT DEFAULT '',\\n \\\"local_id\\\" TEXT DEFAULT '',\\n \\\"default_enabled\\\" BOOLEAN DEFAULT FALSE,\\n \\\"label\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"metadata\\\" TEXT DEFAULT '',\\n \\\"visibility\\\" TEXT DEFAULT 'public'\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"qualified_class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"class_name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"local_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"default_enabled\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"unique\":false,\"default\":false},\"label\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"visibility\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"public\"}},\"indexes\":[{\"name\":\"_smrt_feature_definitions_feature_key_idx\",\"columns\":[\"feature_key\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_definitions_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_definitions_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"8813204c\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureOverride\":{\"name\":\"featureoverride\",\"className\":\"FeatureOverride\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureOverride\",\"collection\":\"featureoverrides\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-override.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{\"featureKey\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"scopeType\":{\"type\":\"text\",\"required\":false,\"default\":\"global\"},\"scopeId\":{\"type\":\"text\",\"required\":false},\"effect\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"isInherit\":{\"name\":\"isInherit\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isEnabled\":{\"name\":\"isEnabled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDisabled\":{\"name\":\"isDisabled\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_overrides\",\"api\":false,\"cli\":false,\"mcp\":false,\"conflictColumns\":[\"feature_key\",\"scope_type\",\"scope_id\"]},\"extends\":\"SmrtObject\",\"exportName\":\"FeatureOverride\",\"collectionExportName\":\"FeatureOverrideCollection\",\"schema\":{\"tableName\":\"_smrt_feature_overrides\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_overrides\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"scope_type\\\" TEXT DEFAULT 'global',\\n \\\"scope_id\\\" TEXT,\\n \\\"effect\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"scope_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"global\"},\"scope_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effect\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_feature_overrides_feature_key_scope_type_idx\",\"columns\":[\"feature_key\",\"scope_type\",\"scope_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_overrides_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_overrides_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"d61cf901\"},\"importPath\":\"@happyvertical/smrt-features\"},\"@happyvertical/smrt-features:FeatureOverrideCollection\":{\"name\":\"featureoverridecollection\",\"className\":\"FeatureOverrideCollection\",\"qualifiedName\":\"@happyvertical/smrt-features:FeatureOverrideCollection\",\"collection\":\"featureoverrides\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/features/src/feature-overrides.ts\",\"packageName\":\"@happyvertical/smrt-features\",\"fields\":{},\"methods\":{\"findByFeatureKey\":{\"name\":\"findByFeatureKey\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFeatureAndScope\":{\"name\":\"findByFeatureAndScope\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getGlobalOverride\":{\"name\":\"getGlobalOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getTenantOverride\":{\"name\":\"getTenantOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride | null>\",\"isStatic\":false,\"isPublic\":true},\"getOverrideMap\":{\"name\":\"getOverrideMap\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeIds\",\"type\":\"string[]\",\"optional\":false}],\"returnType\":\"Promise<Map<string, FeatureOverride>>\",\"isStatic\":false,\"isPublic\":true},\"setOverride\":{\"name\":\"setOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"setGlobalOverride\":{\"name\":\"setGlobalOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"setTenantOverride\":{\"name\":\"setTenantOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false},{\"name\":\"effect\",\"type\":\"FeatureOverrideEffect\",\"optional\":false}],\"returnType\":\"Promise<FeatureOverride>\",\"isStatic\":false,\"isPublic\":true},\"removeOverride\":{\"name\":\"removeOverride\",\"async\":true,\"parameters\":[{\"name\":\"featureKey\",\"type\":\"string\",\"optional\":false},{\"name\":\"scopeType\",\"type\":\"FeatureScopeType\",\"optional\":false},{\"name\":\"scopeId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableName\":\"_smrt_feature_overrides\",\"api\":false,\"mcp\":false,\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"FeatureOverride\",\"exportName\":\"FeatureOverrideCollection\",\"collectionExportName\":\"FeatureOverrideCollectionCollection\",\"schema\":{\"tableName\":\"_smrt_feature_overrides\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"_smrt_feature_overrides\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"feature_key\\\" TEXT DEFAULT '',\\n \\\"scope_type\\\" TEXT DEFAULT 'global',\\n \\\"scope_id\\\" TEXT,\\n \\\"effect\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"feature_key\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"scope_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"global\"},\"scope_id\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"effect\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false}},\"indexes\":[{\"name\":\"_smrt_feature_overrides_feature_key_scope_type_idx\",\"columns\":[\"feature_key\",\"scope_type\",\"scope_id\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"_smrt_feature_overrides_slug_context_idx\",\"columns\":[\"slug\",\"context\"]},{\"name\":\"_smrt_feature_overrides_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"d61cf901\"},\"importPath\":\"@happyvertical/smrt-features\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-users\"]}"));
6
6
  //#endregion
7
7
  //#region src/utils.ts
8
8
  function createFeatureKey(qualifiedClassName, localId) {
@@ -1,4 +1,5 @@
1
- import { SmrtClassOptions, SmrtCollectionOptions } from '@happyvertical/smrt-core';
1
+ /** Collection options for framework-internal, correctness-critical reads. @packageDocumentation */
2
+ import type { SmrtClassOptions, SmrtCollectionOptions } from '@happyvertical/smrt-core';
2
3
  /**
3
4
  * The caller's options with its list bounds removed.
4
5
  *
@@ -2,7 +2,7 @@
2
2
  "version": "1.0.0",
3
3
  "timestamp": 0,
4
4
  "packageName": "@happyvertical/smrt-features",
5
- "packageVersion": "0.51.31",
5
+ "packageVersion": "0.51.36",
6
6
  "objects": {
7
7
  "@happyvertical/smrt-features:FeatureDefinition": {
8
8
  "name": "featuredefinition",
@@ -3,12 +3,12 @@
3
3
  "sensitiveFieldsExcluded": true,
4
4
  "generatedAt": "1970-01-01T00:00:00.000Z",
5
5
  "packageName": "@happyvertical/smrt-features",
6
- "packageVersion": "0.51.31",
6
+ "packageVersion": "0.51.36",
7
7
  "sourceManifestPath": "dist/manifest.json",
8
8
  "agentDocPath": "AGENTS.md",
9
9
  "sourceHashes": {
10
- "manifest": "612265f946c56bd84ccab6305589d205357a4396cb35de2ba92d960f941e4037",
11
- "packageJson": "58065530542511528b32243b6429819a1528aac43d872c339dd8b4b49da5132c",
10
+ "manifest": "50303618282a0247d181a306ef4ce0bf23a88c4b54e66636c9baba9363501690",
11
+ "packageJson": "30015f95a981c9cb25ecb7ec76730fbdb807dbd336ef8116fb3660b94c0e9e33",
12
12
  "agents": "9e350e9338ed878227fa9152a33d0fe8a804c6567e51876f6ba3bd56967a4deb"
13
13
  },
14
14
  "exports": [
@@ -29,7 +29,7 @@
29
29
  "jsdom": "^29.1.1",
30
30
  "svelte": "^5.57.1",
31
31
  "svelte-check": "^4.7.6",
32
- "typescript": "5.9.3",
32
+ "typescript": "6.0.3",
33
33
  "vite": "8.1.4",
34
34
  "vitest": "4.1.10"
35
35
  },
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { SmartObjectManifest, SmrtClassOptions, SmrtObject } from '@happyvertical/smrt-core';
1
+ import type { SmartObjectManifest, SmrtClassOptions, SmrtObject } from '@happyvertical/smrt-core';
2
2
  export declare const GLOBAL_FEATURE_SCOPE_ID = "*";
3
3
  export type FeatureScopeType = 'global' | 'tenant';
4
4
  /**
package/dist/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { SmartObjectConfig } from '@happyvertical/smrt-core';
2
- import { SmartObjectManifest } from '@happyvertical/smrt-core/manifest';
3
- import { FeatureDefinitionSeed, FeatureMetadata, FeatureTargetConstructor } from './types.js';
1
+ import { type SmartObjectConfig } from '@happyvertical/smrt-core';
2
+ import type { SmartObjectManifest } from '@happyvertical/smrt-core/manifest';
3
+ import type { FeatureDefinitionSeed, FeatureMetadata, FeatureTargetConstructor } from './types.js';
4
4
  export type RegistryEntryLike = {
5
5
  name: string;
6
6
  qualifiedName?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-features",
3
- "version": "0.51.31",
3
+ "version": "0.51.36",
4
4
  "description": "Code-first feature flags and tenant-aware overrides for the SMRT framework",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,20 +24,20 @@
24
24
  "./manifest.json": "./dist/manifest.json"
25
25
  },
26
26
  "dependencies": {
27
- "@happyvertical/smrt-core": "0.51.31",
28
- "@happyvertical/smrt-ui": "0.51.31"
27
+ "@happyvertical/smrt-core": "0.51.36",
28
+ "@happyvertical/smrt-ui": "0.51.36"
29
29
  },
30
30
  "devDependencies": {
31
- "@happyvertical/smrt-cli": "0.51.31",
32
- "@happyvertical/smrt-users": "0.51.31",
33
- "@happyvertical/smrt-vitest": "0.51.31",
31
+ "@happyvertical/smrt-cli": "0.51.36",
32
+ "@happyvertical/smrt-users": "0.51.36",
33
+ "@happyvertical/smrt-vitest": "0.51.36",
34
34
  "@sveltejs/package": "^2.5.8",
35
35
  "@sveltejs/vite-plugin-svelte": "^7.3.0",
36
36
  "@types/node": "24.13.6",
37
37
  "jsdom": "^29.1.1",
38
38
  "svelte": "^5.57.1",
39
39
  "svelte-check": "^4.7.6",
40
- "typescript": "5.9.3",
40
+ "typescript": "6.0.3",
41
41
  "vite": "8.1.4",
42
42
  "vitest": "4.1.10"
43
43
  },