@objectstack/cloud-connection 9.11.0 → 10.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -194,6 +194,14 @@ declare class MarketplaceInstallLocalPlugin implements Plugin$1 {
194
194
  private readonly ledger;
195
195
  private readonly storageDir;
196
196
  private readonly credentials;
197
+ /**
198
+ * Manifest ids already present in the engine registry at `kernel:ready`,
199
+ * BEFORE this plugin rehydrates its own ledger. These are genuine
200
+ * user/config-defined apps (AppPlugin from objectstack.config.ts). Used by
201
+ * findConflict to tell real local code apart from an orphaned marketplace
202
+ * install whose ledger entry went missing.
203
+ */
204
+ private readonly bootUserCodeIds;
197
205
  constructor(config?: MarketplaceInstallLocalPluginConfig);
198
206
  init: (_ctx: PluginContext$1) => Promise<void>;
199
207
  start: (ctx: PluginContext$1) => Promise<void>;
@@ -218,6 +226,12 @@ declare class MarketplaceInstallLocalPlugin implements Plugin$1 {
218
226
  * (refuse to avoid silently overwriting authored code)
219
227
  */
220
228
  private findConflict;
229
+ /**
230
+ * Record the manifest ids the engine registry already holds, called once at
231
+ * `kernel:ready` before rehydrate. Best-effort: a missing/empty registry
232
+ * just yields an empty snapshot (every later install is treated as fresh).
233
+ */
234
+ private captureBootUserCodeIds;
221
235
  /**
222
236
  * Pull a userId out of the request's better-auth session, if any.
223
237
  * Returns null when there is no signed-in user. v1 does not check
@@ -608,6 +622,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
608
622
  events?: Record<string, string> | undefined;
609
623
  style?: Record<string, string> | undefined;
610
624
  className?: string | undefined;
625
+ responsiveStyles?: {
626
+ large?: Record<string, string | number> | undefined;
627
+ medium?: Record<string, string | number> | undefined;
628
+ small?: Record<string, string | number> | undefined;
629
+ xsmall?: Record<string, string | number> | undefined;
630
+ } | undefined;
611
631
  visibility?: {
612
632
  dialect: "cel" | "js" | "cron" | "template";
613
633
  source?: string | undefined;
@@ -735,7 +755,7 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
735
755
  sourceView?: string | undefined;
736
756
  appearance?: {
737
757
  showDescription: boolean;
738
- allowedVisualizations?: ("map" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
758
+ allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
739
759
  } | undefined;
740
760
  userFilters?: {
741
761
  element: "tabs" | "toggle" | "dropdown";
@@ -801,6 +821,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
801
821
  events?: Record<string, string> | undefined;
802
822
  style?: Record<string, string> | undefined;
803
823
  className?: string | undefined;
824
+ responsiveStyles?: {
825
+ large?: Record<string, string | number> | undefined;
826
+ medium?: Record<string, string | number> | undefined;
827
+ small?: Record<string, string | number> | undefined;
828
+ xsmall?: Record<string, string | number> | undefined;
829
+ } | undefined;
804
830
  visibility?: {
805
831
  dialect: "cel" | "js" | "cron" | "template";
806
832
  source?: string | undefined;
@@ -861,6 +887,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
861
887
  events?: Record<string, string> | undefined;
862
888
  style?: Record<string, string> | undefined;
863
889
  className?: string | undefined;
890
+ responsiveStyles?: {
891
+ large?: Record<string, string | number> | undefined;
892
+ medium?: Record<string, string | number> | undefined;
893
+ small?: Record<string, string | number> | undefined;
894
+ xsmall?: Record<string, string | number> | undefined;
895
+ } | undefined;
864
896
  visibility?: {
865
897
  dialect: "cel" | "js" | "cron" | "template";
866
898
  source?: string | undefined;
@@ -922,6 +954,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
922
954
  events?: Record<string, string> | undefined;
923
955
  style?: Record<string, string> | undefined;
924
956
  className?: string | undefined;
957
+ responsiveStyles?: {
958
+ large?: Record<string, string | number> | undefined;
959
+ medium?: Record<string, string | number> | undefined;
960
+ small?: Record<string, string | number> | undefined;
961
+ xsmall?: Record<string, string | number> | undefined;
962
+ } | undefined;
925
963
  visibility?: {
926
964
  dialect: "cel" | "js" | "cron" | "template";
927
965
  source?: string | undefined;
@@ -982,6 +1020,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
982
1020
  events?: Record<string, string> | undefined;
983
1021
  style?: Record<string, string> | undefined;
984
1022
  className?: string | undefined;
1023
+ responsiveStyles?: {
1024
+ large?: Record<string, string | number> | undefined;
1025
+ medium?: Record<string, string | number> | undefined;
1026
+ small?: Record<string, string | number> | undefined;
1027
+ xsmall?: Record<string, string | number> | undefined;
1028
+ } | undefined;
985
1029
  visibility?: {
986
1030
  dialect: "cel" | "js" | "cron" | "template";
987
1031
  source?: string | undefined;
@@ -1043,6 +1087,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1043
1087
  events?: Record<string, string> | undefined;
1044
1088
  style?: Record<string, string> | undefined;
1045
1089
  className?: string | undefined;
1090
+ responsiveStyles?: {
1091
+ large?: Record<string, string | number> | undefined;
1092
+ medium?: Record<string, string | number> | undefined;
1093
+ small?: Record<string, string | number> | undefined;
1094
+ xsmall?: Record<string, string | number> | undefined;
1095
+ } | undefined;
1046
1096
  visibility?: {
1047
1097
  dialect: "cel" | "js" | "cron" | "template";
1048
1098
  source?: string | undefined;
@@ -1103,6 +1153,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1103
1153
  events?: Record<string, string> | undefined;
1104
1154
  style?: Record<string, string> | undefined;
1105
1155
  className?: string | undefined;
1156
+ responsiveStyles?: {
1157
+ large?: Record<string, string | number> | undefined;
1158
+ medium?: Record<string, string | number> | undefined;
1159
+ small?: Record<string, string | number> | undefined;
1160
+ xsmall?: Record<string, string | number> | undefined;
1161
+ } | undefined;
1106
1162
  visibility?: {
1107
1163
  dialect: "cel" | "js" | "cron" | "template";
1108
1164
  source?: string | undefined;
@@ -1164,6 +1220,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1164
1220
  events?: Record<string, string> | undefined;
1165
1221
  style?: Record<string, string> | undefined;
1166
1222
  className?: string | undefined;
1223
+ responsiveStyles?: {
1224
+ large?: Record<string, string | number> | undefined;
1225
+ medium?: Record<string, string | number> | undefined;
1226
+ small?: Record<string, string | number> | undefined;
1227
+ xsmall?: Record<string, string | number> | undefined;
1228
+ } | undefined;
1167
1229
  visibility?: {
1168
1230
  dialect: "cel" | "js" | "cron" | "template";
1169
1231
  source?: string | undefined;
@@ -1224,6 +1286,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1224
1286
  events?: Record<string, string> | undefined;
1225
1287
  style?: Record<string, string> | undefined;
1226
1288
  className?: string | undefined;
1289
+ responsiveStyles?: {
1290
+ large?: Record<string, string | number> | undefined;
1291
+ medium?: Record<string, string | number> | undefined;
1292
+ small?: Record<string, string | number> | undefined;
1293
+ xsmall?: Record<string, string | number> | undefined;
1294
+ } | undefined;
1227
1295
  visibility?: {
1228
1296
  dialect: "cel" | "js" | "cron" | "template";
1229
1297
  source?: string | undefined;
@@ -1285,6 +1353,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1285
1353
  events?: Record<string, string> | undefined;
1286
1354
  style?: Record<string, string> | undefined;
1287
1355
  className?: string | undefined;
1356
+ responsiveStyles?: {
1357
+ large?: Record<string, string | number> | undefined;
1358
+ medium?: Record<string, string | number> | undefined;
1359
+ small?: Record<string, string | number> | undefined;
1360
+ xsmall?: Record<string, string | number> | undefined;
1361
+ } | undefined;
1288
1362
  visibility?: {
1289
1363
  dialect: "cel" | "js" | "cron" | "template";
1290
1364
  source?: string | undefined;
@@ -1345,6 +1419,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1345
1419
  events?: Record<string, string> | undefined;
1346
1420
  style?: Record<string, string> | undefined;
1347
1421
  className?: string | undefined;
1422
+ responsiveStyles?: {
1423
+ large?: Record<string, string | number> | undefined;
1424
+ medium?: Record<string, string | number> | undefined;
1425
+ small?: Record<string, string | number> | undefined;
1426
+ xsmall?: Record<string, string | number> | undefined;
1427
+ } | undefined;
1348
1428
  visibility?: {
1349
1429
  dialect: "cel" | "js" | "cron" | "template";
1350
1430
  source?: string | undefined;
@@ -1406,6 +1486,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1406
1486
  events?: Record<string, string> | undefined;
1407
1487
  style?: Record<string, string> | undefined;
1408
1488
  className?: string | undefined;
1489
+ responsiveStyles?: {
1490
+ large?: Record<string, string | number> | undefined;
1491
+ medium?: Record<string, string | number> | undefined;
1492
+ small?: Record<string, string | number> | undefined;
1493
+ xsmall?: Record<string, string | number> | undefined;
1494
+ } | undefined;
1409
1495
  visibility?: {
1410
1496
  dialect: "cel" | "js" | "cron" | "template";
1411
1497
  source?: string | undefined;
@@ -1466,6 +1552,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1466
1552
  events?: Record<string, string> | undefined;
1467
1553
  style?: Record<string, string> | undefined;
1468
1554
  className?: string | undefined;
1555
+ responsiveStyles?: {
1556
+ large?: Record<string, string | number> | undefined;
1557
+ medium?: Record<string, string | number> | undefined;
1558
+ small?: Record<string, string | number> | undefined;
1559
+ xsmall?: Record<string, string | number> | undefined;
1560
+ } | undefined;
1469
1561
  visibility?: {
1470
1562
  dialect: "cel" | "js" | "cron" | "template";
1471
1563
  source?: string | undefined;
@@ -1527,6 +1619,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1527
1619
  events?: Record<string, string> | undefined;
1528
1620
  style?: Record<string, string> | undefined;
1529
1621
  className?: string | undefined;
1622
+ responsiveStyles?: {
1623
+ large?: Record<string, string | number> | undefined;
1624
+ medium?: Record<string, string | number> | undefined;
1625
+ small?: Record<string, string | number> | undefined;
1626
+ xsmall?: Record<string, string | number> | undefined;
1627
+ } | undefined;
1530
1628
  visibility?: {
1531
1629
  dialect: "cel" | "js" | "cron" | "template";
1532
1630
  source?: string | undefined;
@@ -1587,6 +1685,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1587
1685
  events?: Record<string, string> | undefined;
1588
1686
  style?: Record<string, string> | undefined;
1589
1687
  className?: string | undefined;
1688
+ responsiveStyles?: {
1689
+ large?: Record<string, string | number> | undefined;
1690
+ medium?: Record<string, string | number> | undefined;
1691
+ small?: Record<string, string | number> | undefined;
1692
+ xsmall?: Record<string, string | number> | undefined;
1693
+ } | undefined;
1590
1694
  visibility?: {
1591
1695
  dialect: "cel" | "js" | "cron" | "template";
1592
1696
  source?: string | undefined;
package/dist/index.d.ts CHANGED
@@ -194,6 +194,14 @@ declare class MarketplaceInstallLocalPlugin implements Plugin$1 {
194
194
  private readonly ledger;
195
195
  private readonly storageDir;
196
196
  private readonly credentials;
197
+ /**
198
+ * Manifest ids already present in the engine registry at `kernel:ready`,
199
+ * BEFORE this plugin rehydrates its own ledger. These are genuine
200
+ * user/config-defined apps (AppPlugin from objectstack.config.ts). Used by
201
+ * findConflict to tell real local code apart from an orphaned marketplace
202
+ * install whose ledger entry went missing.
203
+ */
204
+ private readonly bootUserCodeIds;
197
205
  constructor(config?: MarketplaceInstallLocalPluginConfig);
198
206
  init: (_ctx: PluginContext$1) => Promise<void>;
199
207
  start: (ctx: PluginContext$1) => Promise<void>;
@@ -218,6 +226,12 @@ declare class MarketplaceInstallLocalPlugin implements Plugin$1 {
218
226
  * (refuse to avoid silently overwriting authored code)
219
227
  */
220
228
  private findConflict;
229
+ /**
230
+ * Record the manifest ids the engine registry already holds, called once at
231
+ * `kernel:ready` before rehydrate. Best-effort: a missing/empty registry
232
+ * just yields an empty snapshot (every later install is treated as fresh).
233
+ */
234
+ private captureBootUserCodeIds;
221
235
  /**
222
236
  * Pull a userId out of the request's better-auth session, if any.
223
237
  * Returns null when there is no signed-in user. v1 does not check
@@ -608,6 +622,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
608
622
  events?: Record<string, string> | undefined;
609
623
  style?: Record<string, string> | undefined;
610
624
  className?: string | undefined;
625
+ responsiveStyles?: {
626
+ large?: Record<string, string | number> | undefined;
627
+ medium?: Record<string, string | number> | undefined;
628
+ small?: Record<string, string | number> | undefined;
629
+ xsmall?: Record<string, string | number> | undefined;
630
+ } | undefined;
611
631
  visibility?: {
612
632
  dialect: "cel" | "js" | "cron" | "template";
613
633
  source?: string | undefined;
@@ -735,7 +755,7 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
735
755
  sourceView?: string | undefined;
736
756
  appearance?: {
737
757
  showDescription: boolean;
738
- allowedVisualizations?: ("map" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
758
+ allowedVisualizations?: ("map" | "tree" | "grid" | "kanban" | "gallery" | "calendar" | "timeline" | "gantt" | "chart")[] | undefined;
739
759
  } | undefined;
740
760
  userFilters?: {
741
761
  element: "tabs" | "toggle" | "dropdown";
@@ -801,6 +821,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
801
821
  events?: Record<string, string> | undefined;
802
822
  style?: Record<string, string> | undefined;
803
823
  className?: string | undefined;
824
+ responsiveStyles?: {
825
+ large?: Record<string, string | number> | undefined;
826
+ medium?: Record<string, string | number> | undefined;
827
+ small?: Record<string, string | number> | undefined;
828
+ xsmall?: Record<string, string | number> | undefined;
829
+ } | undefined;
804
830
  visibility?: {
805
831
  dialect: "cel" | "js" | "cron" | "template";
806
832
  source?: string | undefined;
@@ -861,6 +887,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
861
887
  events?: Record<string, string> | undefined;
862
888
  style?: Record<string, string> | undefined;
863
889
  className?: string | undefined;
890
+ responsiveStyles?: {
891
+ large?: Record<string, string | number> | undefined;
892
+ medium?: Record<string, string | number> | undefined;
893
+ small?: Record<string, string | number> | undefined;
894
+ xsmall?: Record<string, string | number> | undefined;
895
+ } | undefined;
864
896
  visibility?: {
865
897
  dialect: "cel" | "js" | "cron" | "template";
866
898
  source?: string | undefined;
@@ -922,6 +954,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
922
954
  events?: Record<string, string> | undefined;
923
955
  style?: Record<string, string> | undefined;
924
956
  className?: string | undefined;
957
+ responsiveStyles?: {
958
+ large?: Record<string, string | number> | undefined;
959
+ medium?: Record<string, string | number> | undefined;
960
+ small?: Record<string, string | number> | undefined;
961
+ xsmall?: Record<string, string | number> | undefined;
962
+ } | undefined;
925
963
  visibility?: {
926
964
  dialect: "cel" | "js" | "cron" | "template";
927
965
  source?: string | undefined;
@@ -982,6 +1020,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
982
1020
  events?: Record<string, string> | undefined;
983
1021
  style?: Record<string, string> | undefined;
984
1022
  className?: string | undefined;
1023
+ responsiveStyles?: {
1024
+ large?: Record<string, string | number> | undefined;
1025
+ medium?: Record<string, string | number> | undefined;
1026
+ small?: Record<string, string | number> | undefined;
1027
+ xsmall?: Record<string, string | number> | undefined;
1028
+ } | undefined;
985
1029
  visibility?: {
986
1030
  dialect: "cel" | "js" | "cron" | "template";
987
1031
  source?: string | undefined;
@@ -1043,6 +1087,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1043
1087
  events?: Record<string, string> | undefined;
1044
1088
  style?: Record<string, string> | undefined;
1045
1089
  className?: string | undefined;
1090
+ responsiveStyles?: {
1091
+ large?: Record<string, string | number> | undefined;
1092
+ medium?: Record<string, string | number> | undefined;
1093
+ small?: Record<string, string | number> | undefined;
1094
+ xsmall?: Record<string, string | number> | undefined;
1095
+ } | undefined;
1046
1096
  visibility?: {
1047
1097
  dialect: "cel" | "js" | "cron" | "template";
1048
1098
  source?: string | undefined;
@@ -1103,6 +1153,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1103
1153
  events?: Record<string, string> | undefined;
1104
1154
  style?: Record<string, string> | undefined;
1105
1155
  className?: string | undefined;
1156
+ responsiveStyles?: {
1157
+ large?: Record<string, string | number> | undefined;
1158
+ medium?: Record<string, string | number> | undefined;
1159
+ small?: Record<string, string | number> | undefined;
1160
+ xsmall?: Record<string, string | number> | undefined;
1161
+ } | undefined;
1106
1162
  visibility?: {
1107
1163
  dialect: "cel" | "js" | "cron" | "template";
1108
1164
  source?: string | undefined;
@@ -1164,6 +1220,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1164
1220
  events?: Record<string, string> | undefined;
1165
1221
  style?: Record<string, string> | undefined;
1166
1222
  className?: string | undefined;
1223
+ responsiveStyles?: {
1224
+ large?: Record<string, string | number> | undefined;
1225
+ medium?: Record<string, string | number> | undefined;
1226
+ small?: Record<string, string | number> | undefined;
1227
+ xsmall?: Record<string, string | number> | undefined;
1228
+ } | undefined;
1167
1229
  visibility?: {
1168
1230
  dialect: "cel" | "js" | "cron" | "template";
1169
1231
  source?: string | undefined;
@@ -1224,6 +1286,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1224
1286
  events?: Record<string, string> | undefined;
1225
1287
  style?: Record<string, string> | undefined;
1226
1288
  className?: string | undefined;
1289
+ responsiveStyles?: {
1290
+ large?: Record<string, string | number> | undefined;
1291
+ medium?: Record<string, string | number> | undefined;
1292
+ small?: Record<string, string | number> | undefined;
1293
+ xsmall?: Record<string, string | number> | undefined;
1294
+ } | undefined;
1227
1295
  visibility?: {
1228
1296
  dialect: "cel" | "js" | "cron" | "template";
1229
1297
  source?: string | undefined;
@@ -1285,6 +1353,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1285
1353
  events?: Record<string, string> | undefined;
1286
1354
  style?: Record<string, string> | undefined;
1287
1355
  className?: string | undefined;
1356
+ responsiveStyles?: {
1357
+ large?: Record<string, string | number> | undefined;
1358
+ medium?: Record<string, string | number> | undefined;
1359
+ small?: Record<string, string | number> | undefined;
1360
+ xsmall?: Record<string, string | number> | undefined;
1361
+ } | undefined;
1288
1362
  visibility?: {
1289
1363
  dialect: "cel" | "js" | "cron" | "template";
1290
1364
  source?: string | undefined;
@@ -1345,6 +1419,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1345
1419
  events?: Record<string, string> | undefined;
1346
1420
  style?: Record<string, string> | undefined;
1347
1421
  className?: string | undefined;
1422
+ responsiveStyles?: {
1423
+ large?: Record<string, string | number> | undefined;
1424
+ medium?: Record<string, string | number> | undefined;
1425
+ small?: Record<string, string | number> | undefined;
1426
+ xsmall?: Record<string, string | number> | undefined;
1427
+ } | undefined;
1348
1428
  visibility?: {
1349
1429
  dialect: "cel" | "js" | "cron" | "template";
1350
1430
  source?: string | undefined;
@@ -1406,6 +1486,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1406
1486
  events?: Record<string, string> | undefined;
1407
1487
  style?: Record<string, string> | undefined;
1408
1488
  className?: string | undefined;
1489
+ responsiveStyles?: {
1490
+ large?: Record<string, string | number> | undefined;
1491
+ medium?: Record<string, string | number> | undefined;
1492
+ small?: Record<string, string | number> | undefined;
1493
+ xsmall?: Record<string, string | number> | undefined;
1494
+ } | undefined;
1409
1495
  visibility?: {
1410
1496
  dialect: "cel" | "js" | "cron" | "template";
1411
1497
  source?: string | undefined;
@@ -1466,6 +1552,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1466
1552
  events?: Record<string, string> | undefined;
1467
1553
  style?: Record<string, string> | undefined;
1468
1554
  className?: string | undefined;
1555
+ responsiveStyles?: {
1556
+ large?: Record<string, string | number> | undefined;
1557
+ medium?: Record<string, string | number> | undefined;
1558
+ small?: Record<string, string | number> | undefined;
1559
+ xsmall?: Record<string, string | number> | undefined;
1560
+ } | undefined;
1469
1561
  visibility?: {
1470
1562
  dialect: "cel" | "js" | "cron" | "template";
1471
1563
  source?: string | undefined;
@@ -1527,6 +1619,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1527
1619
  events?: Record<string, string> | undefined;
1528
1620
  style?: Record<string, string> | undefined;
1529
1621
  className?: string | undefined;
1622
+ responsiveStyles?: {
1623
+ large?: Record<string, string | number> | undefined;
1624
+ medium?: Record<string, string | number> | undefined;
1625
+ small?: Record<string, string | number> | undefined;
1626
+ xsmall?: Record<string, string | number> | undefined;
1627
+ } | undefined;
1530
1628
  visibility?: {
1531
1629
  dialect: "cel" | "js" | "cron" | "template";
1532
1630
  source?: string | undefined;
@@ -1587,6 +1685,12 @@ declare const CLOUD_CONNECTION_UI_BUNDLE: {
1587
1685
  events?: Record<string, string> | undefined;
1588
1686
  style?: Record<string, string> | undefined;
1589
1687
  className?: string | undefined;
1688
+ responsiveStyles?: {
1689
+ large?: Record<string, string | number> | undefined;
1690
+ medium?: Record<string, string | number> | undefined;
1691
+ small?: Record<string, string | number> | undefined;
1692
+ xsmall?: Record<string, string | number> | undefined;
1693
+ } | undefined;
1590
1694
  visibility?: {
1591
1695
  dialect: "cel" | "js" | "cron" | "template";
1592
1696
  source?: string | undefined;
package/dist/index.js CHANGED
@@ -509,14 +509,26 @@ var ConnectionCredentialStore = class {
509
509
 
510
510
  // src/marketplace-install-local-plugin.ts
511
511
  var ROUTE_BASE = "/api/v1/marketplace/install-local";
512
+ function manifestIdOf(p) {
513
+ return p?.manifest?.id ?? p?.id ?? p?.manifest?.name ?? void 0;
514
+ }
512
515
  var MarketplaceInstallLocalPlugin = class {
513
516
  constructor(config = {}) {
514
517
  this.name = "com.objectstack.runtime.marketplace-install-local";
515
518
  this.version = "1.0.0";
519
+ /**
520
+ * Manifest ids already present in the engine registry at `kernel:ready`,
521
+ * BEFORE this plugin rehydrates its own ledger. These are genuine
522
+ * user/config-defined apps (AppPlugin from objectstack.config.ts). Used by
523
+ * findConflict to tell real local code apart from an orphaned marketplace
524
+ * install whose ledger entry went missing.
525
+ */
526
+ this.bootUserCodeIds = /* @__PURE__ */ new Set();
516
527
  this.init = async (_ctx) => {
517
528
  };
518
529
  this.start = async (ctx) => {
519
530
  ctx.hook("kernel:ready", async () => {
531
+ this.captureBootUserCodeIds(ctx);
520
532
  try {
521
533
  const manifest = ctx.getService("manifest");
522
534
  manifest?.register?.(MARKETPLACE_INSTALLED_UI_BUNDLE);
@@ -814,17 +826,35 @@ var MarketplaceInstallLocalPlugin = class {
814
826
  if (this.ledger.has(manifestId)) {
815
827
  return "marketplace";
816
828
  }
829
+ if (this.bootUserCodeIds.has(manifestId)) {
830
+ return "user-code";
831
+ }
817
832
  try {
818
833
  const ql = ctx.getService("objectql");
819
834
  const packages = ql?.registry?.getAllPackages?.() ?? [];
820
- const hit = packages.find(
821
- (p) => (p?.manifest?.id ?? p?.id ?? p?.manifest?.name) === manifestId
822
- );
823
- if (hit) return "user-code";
835
+ if (packages.some((p) => manifestIdOf(p) === manifestId)) {
836
+ return "marketplace";
837
+ }
824
838
  } catch {
825
839
  }
826
840
  return "none";
827
841
  };
842
+ /**
843
+ * Record the manifest ids the engine registry already holds, called once at
844
+ * `kernel:ready` before rehydrate. Best-effort: a missing/empty registry
845
+ * just yields an empty snapshot (every later install is treated as fresh).
846
+ */
847
+ this.captureBootUserCodeIds = (ctx) => {
848
+ try {
849
+ const ql = ctx.getService("objectql");
850
+ const packages = ql?.registry?.getAllPackages?.() ?? [];
851
+ for (const p of packages) {
852
+ const id = manifestIdOf(p);
853
+ if (id) this.bootUserCodeIds.add(id);
854
+ }
855
+ } catch {
856
+ }
857
+ };
828
858
  /**
829
859
  * Pull a userId out of the request's better-auth session, if any.
830
860
  * Returns null when there is no signed-in user. v1 does not check
@@ -870,6 +900,20 @@ var MarketplaceInstallLocalPlugin = class {
870
900
  }
871
901
  }, 400);
872
902
  }
903
+ const inserted = summary.seeded.inserted ?? 0;
904
+ const updated = summary.seeded.updated ?? 0;
905
+ const errors = summary.seeded.errors ?? 0;
906
+ const wrote = inserted + updated > 0;
907
+ if (!wrote) {
908
+ return c.json({
909
+ success: false,
910
+ error: {
911
+ code: "reseed_no_rows",
912
+ message: errors > 0 ? `Reseed wrote no rows (${errors} error${errors === 1 ? "" : "s"}).${summary.seeded.errorSample ? ` First error: ${summary.seeded.errorSample}` : ""}` : "Reseed wrote no rows. The package declares no seedable records for this runtime.",
913
+ details: { inserted, updated, errors }
914
+ }
915
+ }, 422);
916
+ }
873
917
  try {
874
918
  entry.withSampleData = true;
875
919
  this.ledger.write(entry);
@@ -879,9 +923,9 @@ var MarketplaceInstallLocalPlugin = class {
879
923
  success: true,
880
924
  data: {
881
925
  manifestId,
882
- inserted: summary.seeded.inserted ?? 0,
883
- updated: summary.seeded.updated ?? 0,
884
- errors: summary.seeded.errors ?? 0,
926
+ inserted,
927
+ updated,
928
+ errors,
885
929
  withSampleData: true
886
930
  }
887
931
  }, 200);
@@ -1094,7 +1138,12 @@ var MarketplaceInstallLocalPlugin = class {
1094
1138
  mode: "inline",
1095
1139
  inserted: result.summary.totalInserted,
1096
1140
  updated: result.summary.totalUpdated,
1097
- errors: result.errors.length
1141
+ errors: result.errors.length,
1142
+ // Surface the first write/resolution failure so the
1143
+ // caller can report WHY nothing landed (e.g. a locked
1144
+ // DB, a missing table, a failed validation) instead of
1145
+ // a bare "0 rows".
1146
+ errorSample: result.errors[0]?.message
1098
1147
  };
1099
1148
  ctx.logger?.info?.(`[MarketplaceInstallLocal] inline seed for ${appId}${organizationId ? ` (org=${organizationId})` : ""}: inserted=${seedSummary.inserted} updated=${seedSummary.updated} errors=${seedSummary.errors}`);
1100
1149
  }