@jaypie/fabric 0.2.3 → 0.2.4

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.
@@ -32,9 +32,17 @@ export interface IndexDefinition {
32
32
  export interface ModelSchema {
33
33
  /** The model name (e.g., "record", "message", "chat") */
34
34
  model: string;
35
- /** Custom indexes for this model (empty array if not specified) */
35
+ /** Custom indexes for this model (uses DEFAULT_INDEXES if not specified) */
36
36
  indexes?: IndexDefinition[];
37
37
  }
38
+ /**
39
+ * Default indexes for the DynamoDB GSI pattern.
40
+ * These are used when a model does not specify custom indexes.
41
+ *
42
+ * @deprecated Restored in 0.2.4 to unblock consumers. Will be removed in
43
+ * 0.3.0 — register model indexes explicitly with `registerModel()` instead.
44
+ */
45
+ export declare const DEFAULT_INDEXES: IndexDefinition[];
38
46
  /**
39
47
  * Default sort key fields when sk is not specified
40
48
  */
@@ -6,7 +6,7 @@ export { fabric, fabricArray, fabricBoolean, fabricNumber, fabricObject, fabricS
6
6
  export { DateType, fabricDate, isDateType, isValidDate, resolveFromDate, } from "./resolve-date.js";
7
7
  export { computeResolvedName, resolveWithFallback } from "./helpers/index.js";
8
8
  export type { ResolvedNameModel } from "./helpers/index.js";
9
- export { ARCHIVED_SUFFIX, buildCompositeKey, calculateIndexSuffix, calculateScope, clearRegistry, DEFAULT_SORT_KEY, DELETED_SUFFIX, generateIndexName, getAllRegisteredIndexes, getModelIndexes, getModelSchema, getRegisteredModels, isModelRegistered, populateIndexKeys, registerModel, tryBuildCompositeKey, } from "./index/index.js";
9
+ export { ARCHIVED_SUFFIX, buildCompositeKey, calculateIndexSuffix, calculateScope, clearRegistry, DEFAULT_INDEXES, DEFAULT_SORT_KEY, DELETED_SUFFIX, generateIndexName, getAllRegisteredIndexes, getModelIndexes, getModelSchema, getRegisteredModels, isModelRegistered, populateIndexKeys, registerModel, tryBuildCompositeKey, } from "./index/index.js";
10
10
  export type { IndexableModel, IndexDefinition, IndexField, ModelSchema, } from "./index/index.js";
11
11
  export { BOOLEAN_TYPE, DATE_TYPE, DATETIME_TYPE, DOLLARS_TYPE, ELEMENTARY_TYPE_REGISTRY, ELEMENTARY_TYPES, getAllElementaryTypes, getElementaryType, isElementaryType, isFieldDefinition, MULTISELECT_TYPE, NUMBER_TYPE, REFERENCE_TYPE, SELECT_TYPE, TEXT_TYPE, TEXTAREA_TYPE, } from "./types/index.js";
12
12
  export type { ElementaryType, ElementaryTypeDefinition, FieldDefinition, FieldRef, ValidationRule, } from "./types/index.js";
package/dist/esm/index.js CHANGED
@@ -774,6 +774,43 @@ function computeResolvedName(model) {
774
774
  * GSIs and auto-detect which index to use for queries.
775
775
  */
776
776
  // =============================================================================
777
+ // Default Indexes
778
+ // =============================================================================
779
+ /**
780
+ * Default indexes for the DynamoDB GSI pattern.
781
+ * These are used when a model does not specify custom indexes.
782
+ *
783
+ * @deprecated Restored in 0.2.4 to unblock consumers. Will be removed in
784
+ * 0.3.0 — register model indexes explicitly with `registerModel()` instead.
785
+ */
786
+ const DEFAULT_INDEXES = [
787
+ { name: "indexScope", pk: ["scope", "model"], sk: ["sequence"] },
788
+ {
789
+ name: "indexAlias",
790
+ pk: ["scope", "model", "alias"],
791
+ sk: ["sequence"],
792
+ sparse: true,
793
+ },
794
+ {
795
+ name: "indexCategory",
796
+ pk: ["scope", "model", "category"],
797
+ sk: ["sequence"],
798
+ sparse: true,
799
+ },
800
+ {
801
+ name: "indexType",
802
+ pk: ["scope", "model", "type"],
803
+ sk: ["sequence"],
804
+ sparse: true,
805
+ },
806
+ {
807
+ name: "indexXid",
808
+ pk: ["scope", "model", "xid"],
809
+ sk: ["sequence"],
810
+ sparse: true,
811
+ },
812
+ ];
813
+ // =============================================================================
777
814
  // Constants
778
815
  // =============================================================================
779
816
  /**
@@ -949,14 +986,17 @@ function getModelSchema(model) {
949
986
  * Get index definitions for a model
950
987
  *
951
988
  * Returns the model's custom indexes if registered,
952
- * otherwise returns an empty array.
989
+ * otherwise returns DEFAULT_INDEXES.
990
+ *
991
+ * @deprecated The fallback to DEFAULT_INDEXES will be removed in 0.3.0.
992
+ * Register model indexes explicitly with `registerModel()`.
953
993
  *
954
994
  * @param model - Model name to get indexes for
955
995
  * @returns Array of index definitions
956
996
  */
957
997
  function getModelIndexes(model) {
958
998
  const schema = MODEL_REGISTRY.get(model);
959
- return schema?.indexes ?? [];
999
+ return schema?.indexes ?? DEFAULT_INDEXES;
960
1000
  }
961
1001
  /**
962
1002
  * Get all registered models
@@ -1747,5 +1787,5 @@ function isStatus(value) {
1747
1787
  STATUS_VALUES.includes(value));
1748
1788
  }
1749
1789
 
1750
- export { APEX, ARCHIVED_SUFFIX, BOOLEAN_TYPE, DATETIME_TYPE, DATE_TYPE, DEFAULT_SORT_KEY, DELETED_SUFFIX, DOLLARS_TYPE, DateType, ELEMENTARY_TYPES, ELEMENTARY_TYPE_REGISTRY, FABRIC_MODEL_AUTO_FIELDS, FABRIC_MODEL_FIELDS, FABRIC_MODEL_REQUIRED_FIELDS, FABRIC_MODEL_TIMESTAMP_FIELDS, FABRIC_VERSION, MULTISELECT_TYPE, NUMBER_TYPE, REFERENCE_TYPE, SELECT_TYPE, SEPARATOR, STATUS_VALUES, SYSTEM_MODELS, StatusType, TEXTAREA_TYPE, TEXT_TYPE, buildCompositeKey, calculateIndexSuffix, calculateScope, clearRegistry, computeResolvedName, createFabricModelInput, createServiceSuite, fabric, fabricArray, fabricBoolean, fabricDate, fabricNumber, fabricObject, fabricService, fabricString, generateIndexName, getAllElementaryTypes, getAllRegisteredIndexes, getElementaryType, getModelIndexes, getModelSchema, getRegisteredModels, hasFabricModelShape, isAutoField, isDateType, isElementaryType, isFabricModel, isFieldDefinition, isModelRegistered, isService, isStatus, isTimestampField, isValidDate, pickFabricModelFields, populateIndexKeys, registerModel, resolveFromArray, resolveFromDate, resolveFromObject, resolveService, resolveWithFallback, tryBuildCompositeKey };
1790
+ export { APEX, ARCHIVED_SUFFIX, BOOLEAN_TYPE, DATETIME_TYPE, DATE_TYPE, DEFAULT_INDEXES, DEFAULT_SORT_KEY, DELETED_SUFFIX, DOLLARS_TYPE, DateType, ELEMENTARY_TYPES, ELEMENTARY_TYPE_REGISTRY, FABRIC_MODEL_AUTO_FIELDS, FABRIC_MODEL_FIELDS, FABRIC_MODEL_REQUIRED_FIELDS, FABRIC_MODEL_TIMESTAMP_FIELDS, FABRIC_VERSION, MULTISELECT_TYPE, NUMBER_TYPE, REFERENCE_TYPE, SELECT_TYPE, SEPARATOR, STATUS_VALUES, SYSTEM_MODELS, StatusType, TEXTAREA_TYPE, TEXT_TYPE, buildCompositeKey, calculateIndexSuffix, calculateScope, clearRegistry, computeResolvedName, createFabricModelInput, createServiceSuite, fabric, fabricArray, fabricBoolean, fabricDate, fabricNumber, fabricObject, fabricService, fabricString, generateIndexName, getAllElementaryTypes, getAllRegisteredIndexes, getElementaryType, getModelIndexes, getModelSchema, getRegisteredModels, hasFabricModelShape, isAutoField, isDateType, isElementaryType, isFabricModel, isFieldDefinition, isModelRegistered, isService, isStatus, isTimestampField, isValidDate, pickFabricModelFields, populateIndexKeys, registerModel, resolveFromArray, resolveFromDate, resolveFromObject, resolveService, resolveWithFallback, tryBuildCompositeKey };
1751
1791
  //# sourceMappingURL=index.js.map