@shop-os/modelkit 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -45,6 +45,7 @@ __export(index_exports, {
45
45
  arkAdapter: () => arkAdapter,
46
46
  aspectRatioToSize: () => aspectRatioToSize,
47
47
  classifyHttpError: () => classifyHttpError,
48
+ compareCatalogOrder: () => compareCatalogOrder,
48
49
  createDefaultModelKit: () => createDefaultModelKit,
49
50
  createModelKit: () => createModelKit,
50
51
  describe: () => describe,
@@ -82,6 +83,7 @@ __export(index_exports, {
82
83
  resolveVideoOptions: () => resolveVideoOptions,
83
84
  shouldRetry: () => shouldRetry,
84
85
  sleep: () => sleep,
86
+ sortCatalogRows: () => sortCatalogRows,
85
87
  streamObject: () => streamObject,
86
88
  streamText: () => streamText,
87
89
  textUsageEvent: () => textUsageEvent,
@@ -118,6 +120,22 @@ function isModelKitError(err) {
118
120
  return err instanceof ModelKitError;
119
121
  }
120
122
 
123
+ // src/catalog/order.ts
124
+ function compareCatalogOrder(a, b) {
125
+ const sa = a.display?.sortOrder;
126
+ const sb = b.display?.sortOrder;
127
+ if (sa !== void 0 && sb !== void 0 && sa !== sb) return sb - sa;
128
+ if (sa !== void 0 && sb === void 0) return -1;
129
+ if (sa === void 0 && sb !== void 0) return 1;
130
+ return compareText(a.label.toLowerCase(), b.label.toLowerCase()) || compareText(a.id, b.id);
131
+ }
132
+ function compareText(a, b) {
133
+ return a < b ? -1 : a > b ? 1 : 0;
134
+ }
135
+ function sortCatalogRows(rows) {
136
+ return [...rows].sort(compareCatalogOrder);
137
+ }
138
+
121
139
  // src/catalog/registry.ts
122
140
  var Catalog = class _Catalog {
123
141
  byId = /* @__PURE__ */ new Map();
@@ -174,11 +192,12 @@ var Catalog = class _Catalog {
174
192
  }
175
193
  return model;
176
194
  }
195
+ /** Rows in picker order: `display.sortOrder` descending, then label. See `compareCatalogOrder`. */
177
196
  list(filter = {}) {
178
197
  const lifecycles = filter.lifecycle ?? ["active"];
179
198
  return [...this.byId.values()].filter(
180
199
  (m) => (filter.type ? m.type === filter.type : true) && lifecycles.includes(m.lifecycle)
181
- );
200
+ ).sort(compareCatalogOrder);
182
201
  }
183
202
  /** Merge rows by id. Used for catalogOverride. */
184
203
  withOverrides(rows) {
@@ -7421,6 +7440,7 @@ var describe = (modelId) => createDefaultModelKit().describe(modelId);
7421
7440
  arkAdapter,
7422
7441
  aspectRatioToSize,
7423
7442
  classifyHttpError,
7443
+ compareCatalogOrder,
7424
7444
  createDefaultModelKit,
7425
7445
  createModelKit,
7426
7446
  describe,
@@ -7458,6 +7478,7 @@ var describe = (modelId) => createDefaultModelKit().describe(modelId);
7458
7478
  resolveVideoOptions,
7459
7479
  shouldRetry,
7460
7480
  sleep,
7481
+ sortCatalogRows,
7461
7482
  streamObject,
7462
7483
  streamText,
7463
7484
  textUsageEvent,