@jskit-ai/jskit-catalog 0.1.66 → 0.1.67

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.
Files changed (2) hide show
  1. package/catalog/packages.json +427 -128
  2. package/package.json +1 -1
@@ -6,11 +6,11 @@
6
6
  "packages": [
7
7
  {
8
8
  "packageId": "@jskit-ai/assistant",
9
- "version": "0.1.67",
9
+ "version": "0.1.68",
10
10
  "descriptor": {
11
11
  "packageVersion": 1,
12
12
  "packageId": "@jskit-ai/assistant",
13
- "version": "0.1.67",
13
+ "version": "0.1.68",
14
14
  "kind": "generator",
15
15
  "description": "Install assistant runtime/config for one surface and scaffold assistant pages at explicit target files.",
16
16
  "options": {
@@ -356,11 +356,11 @@
356
356
  },
357
357
  {
358
358
  "packageId": "@jskit-ai/assistant-core",
359
- "version": "0.1.34",
359
+ "version": "0.1.35",
360
360
  "descriptor": {
361
361
  "packageVersion": 1,
362
362
  "packageId": "@jskit-ai/assistant-core",
363
- "version": "0.1.34",
363
+ "version": "0.1.35",
364
364
  "kind": "runtime",
365
365
  "description": "Reusable assistant client/server/shared primitives without surface-specific routes or settings ownership.",
366
366
  "dependsOn": [
@@ -408,11 +408,11 @@
408
408
  "mutations": {
409
409
  "dependencies": {
410
410
  "runtime": {
411
- "@jskit-ai/http-runtime": "0.1.57",
412
- "@jskit-ai/kernel": "0.1.58",
413
- "@jskit-ai/resource-core": "0.1.3",
414
- "@jskit-ai/resource-crud-core": "0.1.3",
415
- "@jskit-ai/users-core": "0.1.68",
411
+ "@jskit-ai/http-runtime": "0.1.58",
412
+ "@jskit-ai/kernel": "0.1.59",
413
+ "@jskit-ai/resource-core": "0.1.4",
414
+ "@jskit-ai/resource-crud-core": "0.1.4",
415
+ "@jskit-ai/users-core": "0.1.69",
416
416
  "@tanstack/vue-query": "^5.90.5",
417
417
  "dompurify": "^3.3.3",
418
418
  "json-rest-schema": "1.x.x",
@@ -433,11 +433,11 @@
433
433
  },
434
434
  {
435
435
  "packageId": "@jskit-ai/assistant-runtime",
436
- "version": "0.1.29",
436
+ "version": "0.1.30",
437
437
  "descriptor": {
438
438
  "packageVersion": 1,
439
439
  "packageId": "@jskit-ai/assistant-runtime",
440
- "version": "0.1.29",
440
+ "version": "0.1.30",
441
441
  "kind": "runtime",
442
442
  "description": "Shared assistant runtime with per-surface assistant registration.",
443
443
  "dependsOn": [
@@ -512,13 +512,13 @@
512
512
  "mutations": {
513
513
  "dependencies": {
514
514
  "runtime": {
515
- "@jskit-ai/assistant-core": "0.1.34",
516
- "@jskit-ai/database-runtime": "0.1.58",
517
- "@jskit-ai/http-runtime": "0.1.57",
518
- "@jskit-ai/kernel": "0.1.58",
519
- "@jskit-ai/shell-web": "0.1.57",
520
- "@jskit-ai/users-core": "0.1.68",
521
- "@jskit-ai/users-web": "0.1.73",
515
+ "@jskit-ai/assistant-core": "0.1.35",
516
+ "@jskit-ai/database-runtime": "0.1.59",
517
+ "@jskit-ai/http-runtime": "0.1.58",
518
+ "@jskit-ai/kernel": "0.1.59",
519
+ "@jskit-ai/shell-web": "0.1.58",
520
+ "@jskit-ai/users-core": "0.1.69",
521
+ "@jskit-ai/users-web": "0.1.74",
522
522
  "@tanstack/vue-query": "^5.90.5",
523
523
  "vuetify": "^4.0.0"
524
524
  },
@@ -575,11 +575,11 @@
575
575
  },
576
576
  {
577
577
  "packageId": "@jskit-ai/auth-core",
578
- "version": "0.1.57",
578
+ "version": "0.1.58",
579
579
  "descriptor": {
580
580
  "packageVersion": 1,
581
581
  "packageId": "@jskit-ai/auth-core",
582
- "version": "0.1.57",
582
+ "version": "0.1.58",
583
583
  "kind": "runtime",
584
584
  "dependsOn": [
585
585
  "@jskit-ai/value-app-config-shared"
@@ -647,7 +647,7 @@
647
647
  "mutations": {
648
648
  "dependencies": {
649
649
  "runtime": {
650
- "@jskit-ai/kernel": "0.1.58",
650
+ "@jskit-ai/kernel": "0.1.59",
651
651
  "@fastify/cookie": "^11.0.2",
652
652
  "@fastify/csrf-protection": "^7.1.0",
653
653
  "@fastify/rate-limit": "^10.3.0"
@@ -665,11 +665,11 @@
665
665
  },
666
666
  {
667
667
  "packageId": "@jskit-ai/auth-provider-supabase-core",
668
- "version": "0.1.57",
668
+ "version": "0.1.58",
669
669
  "descriptor": {
670
670
  "packageVersion": 1,
671
671
  "packageId": "@jskit-ai/auth-provider-supabase-core",
672
- "version": "0.1.57",
672
+ "version": "0.1.58",
673
673
  "kind": "runtime",
674
674
  "options": {
675
675
  "auth-supabase-url": {
@@ -751,8 +751,8 @@
751
751
  "mutations": {
752
752
  "dependencies": {
753
753
  "runtime": {
754
- "@jskit-ai/auth-core": "0.1.57",
755
- "@jskit-ai/kernel": "0.1.58",
754
+ "@jskit-ai/auth-core": "0.1.58",
755
+ "@jskit-ai/kernel": "0.1.59",
756
756
  "dotenv": "^16.4.5",
757
757
  "@supabase/supabase-js": "^2.57.4",
758
758
  "jose": "^6.1.0"
@@ -817,11 +817,11 @@
817
817
  },
818
818
  {
819
819
  "packageId": "@jskit-ai/auth-web",
820
- "version": "0.1.59",
820
+ "version": "0.1.60",
821
821
  "descriptor": {
822
822
  "packageVersion": 1,
823
823
  "packageId": "@jskit-ai/auth-web",
824
- "version": "0.1.59",
824
+ "version": "0.1.60",
825
825
  "kind": "runtime",
826
826
  "description": "Auth web module: Fastify auth routes plus web login/sign-out scaffolds.",
827
827
  "dependsOn": [
@@ -1047,10 +1047,10 @@
1047
1047
  "runtime": {
1048
1048
  "@tanstack/vue-query": "5.92.12",
1049
1049
  "@mdi/js": "^7.4.47",
1050
- "@jskit-ai/auth-core": "0.1.57",
1051
- "@jskit-ai/http-runtime": "0.1.57",
1052
- "@jskit-ai/kernel": "0.1.58",
1053
- "@jskit-ai/shell-web": "0.1.57",
1050
+ "@jskit-ai/auth-core": "0.1.58",
1051
+ "@jskit-ai/http-runtime": "0.1.58",
1052
+ "@jskit-ai/kernel": "0.1.59",
1053
+ "@jskit-ai/shell-web": "0.1.58",
1054
1054
  "vuetify": "^4.0.0"
1055
1055
  },
1056
1056
  "dev": {}
@@ -1120,11 +1120,11 @@
1120
1120
  },
1121
1121
  {
1122
1122
  "packageId": "@jskit-ai/console-core",
1123
- "version": "0.1.21",
1123
+ "version": "0.1.22",
1124
1124
  "descriptor": {
1125
1125
  "packageVersion": 1,
1126
1126
  "packageId": "@jskit-ai/console-core",
1127
- "version": "0.1.21",
1127
+ "version": "0.1.22",
1128
1128
  "kind": "runtime",
1129
1129
  "description": "Console runtime: console settings schema, bootstrap flags, actions, and HTTP routes.",
1130
1130
  "dependsOn": [
@@ -1197,12 +1197,12 @@
1197
1197
  "mutations": {
1198
1198
  "dependencies": {
1199
1199
  "runtime": {
1200
- "@jskit-ai/auth-core": "0.1.57",
1201
- "@jskit-ai/database-runtime": "0.1.58",
1202
- "@jskit-ai/http-runtime": "0.1.57",
1203
- "@jskit-ai/kernel": "0.1.58",
1204
- "@jskit-ai/resource-crud-core": "0.1.3",
1205
- "@jskit-ai/users-core": "0.1.68"
1200
+ "@jskit-ai/auth-core": "0.1.58",
1201
+ "@jskit-ai/database-runtime": "0.1.59",
1202
+ "@jskit-ai/http-runtime": "0.1.58",
1203
+ "@jskit-ai/kernel": "0.1.59",
1204
+ "@jskit-ai/resource-crud-core": "0.1.4",
1205
+ "@jskit-ai/users-core": "0.1.69"
1206
1206
  },
1207
1207
  "dev": {}
1208
1208
  },
@@ -1227,11 +1227,11 @@
1227
1227
  },
1228
1228
  {
1229
1229
  "packageId": "@jskit-ai/console-web",
1230
- "version": "0.1.26",
1230
+ "version": "0.1.27",
1231
1231
  "descriptor": {
1232
1232
  "packageVersion": 1,
1233
1233
  "packageId": "@jskit-ai/console-web",
1234
- "version": "0.1.26",
1234
+ "version": "0.1.27",
1235
1235
  "kind": "runtime",
1236
1236
  "description": "Authenticated console surface scaffold and surface policy wiring.",
1237
1237
  "dependsOn": [
@@ -1310,9 +1310,9 @@
1310
1310
  "mutations": {
1311
1311
  "dependencies": {
1312
1312
  "runtime": {
1313
- "@jskit-ai/auth-web": "0.1.59",
1314
- "@jskit-ai/console-core": "0.1.21",
1315
- "@jskit-ai/shell-web": "0.1.57"
1313
+ "@jskit-ai/auth-web": "0.1.60",
1314
+ "@jskit-ai/console-core": "0.1.22",
1315
+ "@jskit-ai/shell-web": "0.1.58"
1316
1316
  },
1317
1317
  "dev": {}
1318
1318
  },
@@ -1409,11 +1409,11 @@
1409
1409
  },
1410
1410
  {
1411
1411
  "packageId": "@jskit-ai/crud-core",
1412
- "version": "0.1.66",
1412
+ "version": "0.1.67",
1413
1413
  "descriptor": {
1414
1414
  "packageVersion": 1,
1415
1415
  "packageId": "@jskit-ai/crud-core",
1416
- "version": "0.1.66",
1416
+ "version": "0.1.67",
1417
1417
  "kind": "runtime",
1418
1418
  "description": "Shared CRUD helpers used by CRUD modules.",
1419
1419
  "dependsOn": [
@@ -1442,7 +1442,7 @@
1442
1442
  "mutations": {
1443
1443
  "dependencies": {
1444
1444
  "runtime": {
1445
- "@jskit-ai/crud-core": "0.1.66"
1445
+ "@jskit-ai/crud-core": "0.1.67"
1446
1446
  },
1447
1447
  "dev": {}
1448
1448
  },
@@ -1456,11 +1456,11 @@
1456
1456
  },
1457
1457
  {
1458
1458
  "packageId": "@jskit-ai/crud-server-generator",
1459
- "version": "0.1.66",
1459
+ "version": "0.1.67",
1460
1460
  "descriptor": {
1461
1461
  "packageVersion": 1,
1462
1462
  "packageId": "@jskit-ai/crud-server-generator",
1463
- "version": "0.1.66",
1463
+ "version": "0.1.67",
1464
1464
  "kind": "generator",
1465
1465
  "description": "CRUD server generator with routes, actions, and persistence scaffolding.",
1466
1466
  "options": {
@@ -1619,14 +1619,14 @@
1619
1619
  "mutations": {
1620
1620
  "dependencies": {
1621
1621
  "runtime": {
1622
- "@jskit-ai/auth-core": "0.1.57",
1623
- "@jskit-ai/crud-core": "0.1.66",
1624
- "@jskit-ai/database-runtime": "0.1.58",
1625
- "@jskit-ai/http-runtime": "0.1.57",
1626
- "@jskit-ai/json-rest-api-core": "0.1.3",
1627
- "@jskit-ai/kernel": "0.1.58",
1628
- "@jskit-ai/realtime": "0.1.57",
1629
- "@jskit-ai/resource-crud-core": "0.1.3",
1622
+ "@jskit-ai/auth-core": "0.1.58",
1623
+ "@jskit-ai/crud-core": "0.1.67",
1624
+ "@jskit-ai/database-runtime": "0.1.59",
1625
+ "@jskit-ai/http-runtime": "0.1.58",
1626
+ "@jskit-ai/json-rest-api-core": "0.1.4",
1627
+ "@jskit-ai/kernel": "0.1.59",
1628
+ "@jskit-ai/realtime": "0.1.58",
1629
+ "@jskit-ai/resource-crud-core": "0.1.4",
1630
1630
  "@local/${option:namespace|kebab}": "file:packages/${option:namespace|kebab}"
1631
1631
  },
1632
1632
  "dev": {}
@@ -1754,11 +1754,11 @@
1754
1754
  },
1755
1755
  {
1756
1756
  "packageId": "@jskit-ai/crud-ui-generator",
1757
- "version": "0.1.41",
1757
+ "version": "0.1.42",
1758
1758
  "descriptor": {
1759
1759
  "packageVersion": 1,
1760
1760
  "packageId": "@jskit-ai/crud-ui-generator",
1761
- "version": "0.1.41",
1761
+ "version": "0.1.42",
1762
1762
  "kind": "generator",
1763
1763
  "description": "Generate CRUD route trees from resource validators at an explicit route root relative to src/pages/.",
1764
1764
  "options": {
@@ -1805,6 +1805,18 @@
1805
1805
  "promptLabel": "Route id param",
1806
1806
  "promptHint": "Route param used by view and edit pages (default: recordId)."
1807
1807
  },
1808
+ "parent-title": {
1809
+ "required": false,
1810
+ "inputType": "text",
1811
+ "defaultValue": "contextual",
1812
+ "validationType": "enum",
1813
+ "allowedValues": [
1814
+ "contextual",
1815
+ "none"
1816
+ ],
1817
+ "promptLabel": "Parent title mode",
1818
+ "promptHint": "Whether list pages should show a parent-aware heading: contextual | none."
1819
+ },
1808
1820
  "force": {
1809
1821
  "required": false,
1810
1822
  "inputType": "flag",
@@ -1871,6 +1883,7 @@
1871
1883
  "operations",
1872
1884
  "display-fields",
1873
1885
  "id-param",
1886
+ "parent-title",
1874
1887
  "link-placement",
1875
1888
  "link-component-token",
1876
1889
  "namespace",
@@ -1895,7 +1908,8 @@
1895
1908
  "lines": [
1896
1909
  "npx jskit generate crud-ui-generator crud \\",
1897
1910
  " admin/catalog/index/products \\",
1898
- " --resource-file packages/products/src/shared/productResource.js"
1911
+ " --resource-file packages/products/src/shared/productResource.js \\",
1912
+ " --parent-title contextual"
1899
1913
  ]
1900
1914
  },
1901
1915
  {
@@ -1906,6 +1920,7 @@
1906
1920
  " --resource-file packages/pets/src/shared/petResource.js \\",
1907
1921
  " --id-param petId \\",
1908
1922
  " --display-fields name,breedId,sex \\",
1923
+ " --parent-title none \\",
1909
1924
  " --force"
1910
1925
  ]
1911
1926
  }
@@ -1933,7 +1948,7 @@
1933
1948
  "mutations": {
1934
1949
  "dependencies": {
1935
1950
  "runtime": {
1936
- "@jskit-ai/users-web": "0.1.73"
1951
+ "@jskit-ai/users-web": "0.1.74"
1937
1952
  },
1938
1953
  "dev": {}
1939
1954
  },
@@ -2166,11 +2181,11 @@
2166
2181
  },
2167
2182
  {
2168
2183
  "packageId": "@jskit-ai/database-runtime",
2169
- "version": "0.1.58",
2184
+ "version": "0.1.59",
2170
2185
  "descriptor": {
2171
2186
  "packageVersion": 1,
2172
2187
  "packageId": "@jskit-ai/database-runtime",
2173
- "version": "0.1.58",
2188
+ "version": "0.1.59",
2174
2189
  "kind": "runtime",
2175
2190
  "dependsOn": [
2176
2191
  "@jskit-ai/kernel"
@@ -2227,7 +2242,7 @@
2227
2242
  "mutations": {
2228
2243
  "dependencies": {
2229
2244
  "runtime": {
2230
- "@jskit-ai/kernel": "0.1.58",
2245
+ "@jskit-ai/kernel": "0.1.59",
2231
2246
  "dotenv": "^16.4.5",
2232
2247
  "knex": "^3.1.0"
2233
2248
  },
@@ -2262,11 +2277,11 @@
2262
2277
  },
2263
2278
  {
2264
2279
  "packageId": "@jskit-ai/database-runtime-mysql",
2265
- "version": "0.1.57",
2280
+ "version": "0.1.58",
2266
2281
  "descriptor": {
2267
2282
  "packageVersion": 1,
2268
2283
  "packageId": "@jskit-ai/database-runtime-mysql",
2269
- "version": "0.1.57",
2284
+ "version": "0.1.58",
2270
2285
  "kind": "runtime",
2271
2286
  "options": {
2272
2287
  "db-host": {
@@ -2356,7 +2371,7 @@
2356
2371
  "mutations": {
2357
2372
  "dependencies": {
2358
2373
  "runtime": {
2359
- "@jskit-ai/database-runtime": "0.1.58",
2374
+ "@jskit-ai/database-runtime": "0.1.59",
2360
2375
  "mysql2": "^3.11.2"
2361
2376
  },
2362
2377
  "dev": {}
@@ -2427,11 +2442,11 @@
2427
2442
  },
2428
2443
  {
2429
2444
  "packageId": "@jskit-ai/database-runtime-postgres",
2430
- "version": "0.1.57",
2445
+ "version": "0.1.58",
2431
2446
  "descriptor": {
2432
2447
  "packageVersion": 1,
2433
2448
  "packageId": "@jskit-ai/database-runtime-postgres",
2434
- "version": "0.1.57",
2449
+ "version": "0.1.58",
2435
2450
  "kind": "runtime",
2436
2451
  "options": {
2437
2452
  "db-host": {
@@ -2521,7 +2536,7 @@
2521
2536
  "mutations": {
2522
2537
  "dependencies": {
2523
2538
  "runtime": {
2524
- "@jskit-ai/database-runtime": "0.1.58",
2539
+ "@jskit-ai/database-runtime": "0.1.59",
2525
2540
  "pg": "^8.13.1"
2526
2541
  },
2527
2542
  "dev": {}
@@ -2590,13 +2605,297 @@
2590
2605
  }
2591
2606
  }
2592
2607
  },
2608
+ {
2609
+ "packageId": "@jskit-ai/feature-server-generator",
2610
+ "version": "0.1.1",
2611
+ "descriptor": {
2612
+ "packageVersion": 1,
2613
+ "packageId": "@jskit-ai/feature-server-generator",
2614
+ "version": "0.1.1",
2615
+ "kind": "generator",
2616
+ "description": "Scaffold substantial non-CRUD server feature packages with provider, actions, service, and optional persistence seams.",
2617
+ "options": {
2618
+ "feature-name": {
2619
+ "required": true,
2620
+ "inputType": "text",
2621
+ "defaultValue": "",
2622
+ "promptLabel": "Feature name",
2623
+ "promptHint": "Required feature slug (example: booking-engine, availability-engine, billing-engine)."
2624
+ },
2625
+ "mode": {
2626
+ "required": false,
2627
+ "inputType": "text",
2628
+ "defaultValue": "json-rest",
2629
+ "validationType": "enum",
2630
+ "allowedValues": [
2631
+ "json-rest",
2632
+ "orchestrator",
2633
+ "custom-knex"
2634
+ ],
2635
+ "promptLabel": "Scaffold mode",
2636
+ "promptHint": "json-rest | orchestrator | custom-knex"
2637
+ },
2638
+ "surface": {
2639
+ "required": false,
2640
+ "inputType": "text",
2641
+ "validationType": "enabled-surface-id",
2642
+ "promptLabel": "Target surface",
2643
+ "promptHint": "Optional surface id for generated action and route metadata."
2644
+ },
2645
+ "route-prefix": {
2646
+ "required": false,
2647
+ "inputType": "text",
2648
+ "defaultValue": "",
2649
+ "promptLabel": "Route prefix",
2650
+ "promptHint": "Optional relative API path (example: admin/booking-engine)."
2651
+ },
2652
+ "force": {
2653
+ "required": false,
2654
+ "inputType": "flag",
2655
+ "defaultValue": "",
2656
+ "promptLabel": "Force overwrite",
2657
+ "promptHint": "Overwrite generated scaffold files if the feature package directory already exists."
2658
+ }
2659
+ },
2660
+ "dependsOn": [],
2661
+ "capabilities": {
2662
+ "provides": [
2663
+ "feature-server-generator"
2664
+ ],
2665
+ "requires": []
2666
+ },
2667
+ "runtime": {
2668
+ "server": {
2669
+ "providers": []
2670
+ },
2671
+ "client": {
2672
+ "providers": []
2673
+ }
2674
+ },
2675
+ "metadata": {
2676
+ "generatorPrimarySubcommand": "scaffold",
2677
+ "generatorSubcommands": {
2678
+ "scaffold": {
2679
+ "description": "Create a dedicated non-CRUD server feature package with provider, actions, service, and optional repository/routes.",
2680
+ "longDescription": [
2681
+ "This is the standard JSKIT starting point for substantial non-CRUD server features such as engines, workflows, and policy services.",
2682
+ "The default mode is json-rest. Use orchestrator for non-persistent coordination packages, or custom-knex only when raw knex is an explicit exception."
2683
+ ],
2684
+ "positionalArgs": [
2685
+ {
2686
+ "name": "feature-name",
2687
+ "required": true,
2688
+ "description": "Feature slug used for the package path, provider name, inline action ids, and default container tokens."
2689
+ }
2690
+ ],
2691
+ "optionNames": [
2692
+ "feature-name",
2693
+ "mode",
2694
+ "surface",
2695
+ "route-prefix",
2696
+ "force"
2697
+ ],
2698
+ "createTarget": {
2699
+ "pathTemplate": "packages/${option:feature-name|kebab}",
2700
+ "label": "package directory",
2701
+ "allowExistingEmptyDirectory": false
2702
+ },
2703
+ "notes": [
2704
+ "json-rest emits a repository that starts from internal json-rest-api seams.",
2705
+ "orchestrator omits repository.js entirely and keeps the service focused on coordination.",
2706
+ "custom-knex is the explicit weird/custom lane and emits a repository wired to jskit.database.knex.",
2707
+ "If --route-prefix is omitted, registerRoutes.js is not generated."
2708
+ ],
2709
+ "examples": [
2710
+ {
2711
+ "label": "Default persistent feature",
2712
+ "lines": [
2713
+ "npx jskit generate feature-server-generator scaffold \\",
2714
+ " booking-engine"
2715
+ ]
2716
+ },
2717
+ {
2718
+ "label": "Non-persistent orchestrator",
2719
+ "lines": [
2720
+ "npx jskit generate feature-server-generator scaffold \\",
2721
+ " availability-engine \\",
2722
+ " --mode orchestrator"
2723
+ ]
2724
+ },
2725
+ {
2726
+ "label": "Another default persistent feature",
2727
+ "lines": [
2728
+ "npx jskit generate feature-server-generator scaffold \\",
2729
+ " billing-engine"
2730
+ ]
2731
+ },
2732
+ {
2733
+ "label": "Rare explicit custom-knex feature",
2734
+ "lines": [
2735
+ "npx jskit generate feature-server-generator scaffold \\",
2736
+ " invoice-rollup \\",
2737
+ " --mode custom-knex \\",
2738
+ " --route-prefix admin/invoice-rollup \\",
2739
+ " --surface admin"
2740
+ ]
2741
+ }
2742
+ ]
2743
+ }
2744
+ },
2745
+ "apiSummary": {
2746
+ "surfaces": [
2747
+ {
2748
+ "subpath": "./server/buildTemplateContext",
2749
+ "summary": "Builds deterministic non-CRUD feature server scaffold template context values."
2750
+ }
2751
+ ],
2752
+ "containerTokens": {
2753
+ "server": [],
2754
+ "client": []
2755
+ }
2756
+ },
2757
+ "jskit": {
2758
+ "ownershipGuidance": {
2759
+ "title": "Standard non-CRUD server lane",
2760
+ "summary": "Use this generator when a substantial server feature should become its own package instead of growing inside packages/main.",
2761
+ "responsibilities": [
2762
+ "provider: wires DI, actions, repository, and optional routes",
2763
+ "service: owns orchestration and must not talk to persistence directly",
2764
+ "repository: owns persistence; default-lane persistent scaffolds start from internal json-rest-api",
2765
+ "packages/main: stays composition/glue only"
2766
+ ],
2767
+ "examples": [
2768
+ "jskit generate feature-server-generator scaffold booking-engine",
2769
+ "jskit generate feature-server-generator scaffold availability-engine --mode orchestrator",
2770
+ "jskit generate feature-server-generator scaffold billing-engine"
2771
+ ]
2772
+ }
2773
+ }
2774
+ },
2775
+ "mutations": {
2776
+ "dependencies": {
2777
+ "runtime": {
2778
+ "@jskit-ai/database-runtime": "0.1.59",
2779
+ "@jskit-ai/database-runtime-mysql": "0.1.58",
2780
+ "@jskit-ai/json-rest-api-core": "0.1.4",
2781
+ "@jskit-ai/kernel": "0.1.59",
2782
+ "json-rest-schema": "1.x.x",
2783
+ "@local/${option:feature-name|kebab}": "file:packages/${option:feature-name|kebab}"
2784
+ },
2785
+ "dev": {}
2786
+ },
2787
+ "packageJson": {
2788
+ "scripts": {}
2789
+ },
2790
+ "procfile": {},
2791
+ "files": [
2792
+ {
2793
+ "from": "templates/src/local-package/package.json",
2794
+ "to": "packages/${option:feature-name|kebab}/package.json",
2795
+ "reason": "Install app-local non-CRUD feature package manifest.",
2796
+ "category": "feature-server-generator",
2797
+ "id": "feature-server-package-json-${option:feature-name|snake}"
2798
+ },
2799
+ {
2800
+ "from": "templates/src/local-package/package.descriptor.mjs",
2801
+ "to": "packages/${option:feature-name|kebab}/package.descriptor.mjs",
2802
+ "reason": "Install app-local non-CRUD feature package descriptor.",
2803
+ "category": "feature-server-generator",
2804
+ "id": "feature-server-package-descriptor-${option:feature-name|snake}",
2805
+ "templateContext": {
2806
+ "entrypoint": "src/server/buildTemplateContext.js",
2807
+ "export": "buildTemplateContext"
2808
+ }
2809
+ },
2810
+ {
2811
+ "from": "templates/src/local-package/server/FeatureProvider.js",
2812
+ "to": "packages/${option:feature-name|kebab}/src/server/${option:feature-name|pascal}Provider.js",
2813
+ "reason": "Install app-local non-CRUD feature provider.",
2814
+ "category": "feature-server-generator",
2815
+ "id": "feature-server-provider-${option:feature-name|snake}",
2816
+ "templateContext": {
2817
+ "entrypoint": "src/server/buildTemplateContext.js",
2818
+ "export": "buildTemplateContext"
2819
+ }
2820
+ },
2821
+ {
2822
+ "from": "templates/src/local-package/server/inputSchemas.js",
2823
+ "to": "packages/${option:feature-name|kebab}/src/server/inputSchemas.js",
2824
+ "reason": "Install generated feature action and route validators.",
2825
+ "category": "feature-server-generator",
2826
+ "id": "feature-server-input-schemas-${option:feature-name|snake}"
2827
+ },
2828
+ {
2829
+ "from": "templates/src/local-package/server/actions.js",
2830
+ "to": "packages/${option:feature-name|kebab}/src/server/actions.js",
2831
+ "reason": "Install generated feature action definitions.",
2832
+ "category": "feature-server-generator",
2833
+ "id": "feature-server-actions-${option:feature-name|snake}",
2834
+ "templateContext": {
2835
+ "entrypoint": "src/server/buildTemplateContext.js",
2836
+ "export": "buildTemplateContext"
2837
+ }
2838
+ },
2839
+ {
2840
+ "from": "templates/src/local-package/server/service.js",
2841
+ "to": "packages/${option:feature-name|kebab}/src/server/service.js",
2842
+ "reason": "Install generated feature service.",
2843
+ "category": "feature-server-generator",
2844
+ "id": "feature-server-service-${option:feature-name|snake}",
2845
+ "templateContext": {
2846
+ "entrypoint": "src/server/buildTemplateContext.js",
2847
+ "export": "buildTemplateContext"
2848
+ }
2849
+ },
2850
+ {
2851
+ "from": "templates/src/local-package/server/registerRoutes.js",
2852
+ "to": "packages/${option:feature-name|kebab}/src/server/registerRoutes.js",
2853
+ "reason": "Install generated feature route registration.",
2854
+ "category": "feature-server-generator",
2855
+ "id": "feature-server-routes-${option:feature-name|snake}",
2856
+ "templateContext": {
2857
+ "entrypoint": "src/server/buildTemplateContext.js",
2858
+ "export": "buildTemplateContext"
2859
+ },
2860
+ "when": {
2861
+ "option": "route-prefix",
2862
+ "hasText": true
2863
+ }
2864
+ },
2865
+ {
2866
+ "from": "templates/src/local-package/server/repositoryJsonRest.js",
2867
+ "to": "packages/${option:feature-name|kebab}/src/server/repository.js",
2868
+ "reason": "Install generated feature repository with internal json-rest-api seam.",
2869
+ "category": "feature-server-generator",
2870
+ "id": "feature-server-repository-json-rest-${option:feature-name|snake}",
2871
+ "when": {
2872
+ "option": "mode",
2873
+ "equals": "json-rest"
2874
+ }
2875
+ },
2876
+ {
2877
+ "from": "templates/src/local-package/server/repositoryCustomKnex.js",
2878
+ "to": "packages/${option:feature-name|kebab}/src/server/repository.js",
2879
+ "reason": "Install generated feature repository with explicit knex seam.",
2880
+ "category": "feature-server-generator",
2881
+ "id": "feature-server-repository-custom-knex-${option:feature-name|snake}",
2882
+ "when": {
2883
+ "option": "mode",
2884
+ "equals": "custom-knex"
2885
+ }
2886
+ }
2887
+ ],
2888
+ "text": []
2889
+ }
2890
+ }
2891
+ },
2593
2892
  {
2594
2893
  "packageId": "@jskit-ai/http-runtime",
2595
- "version": "0.1.57",
2894
+ "version": "0.1.58",
2596
2895
  "descriptor": {
2597
2896
  "packageVersion": 1,
2598
2897
  "packageId": "@jskit-ai/http-runtime",
2599
- "version": "0.1.57",
2898
+ "version": "0.1.58",
2600
2899
  "kind": "runtime",
2601
2900
  "dependsOn": [],
2602
2901
  "capabilities": {
@@ -2662,7 +2961,7 @@
2662
2961
  "mutations": {
2663
2962
  "dependencies": {
2664
2963
  "runtime": {
2665
- "@jskit-ai/kernel": "0.1.58"
2964
+ "@jskit-ai/kernel": "0.1.59"
2666
2965
  },
2667
2966
  "dev": {}
2668
2967
  },
@@ -2676,11 +2975,11 @@
2676
2975
  },
2677
2976
  {
2678
2977
  "packageId": "@jskit-ai/json-rest-api-core",
2679
- "version": "0.1.3",
2978
+ "version": "0.1.4",
2680
2979
  "descriptor": {
2681
2980
  "packageVersion": 1,
2682
2981
  "packageId": "@jskit-ai/json-rest-api-core",
2683
- "version": "0.1.3",
2982
+ "version": "0.1.4",
2684
2983
  "kind": "runtime",
2685
2984
  "description": "Shared internal json-rest-api host runtime for JSKIT server packages.",
2686
2985
  "dependsOn": [
@@ -2740,11 +3039,11 @@
2740
3039
  },
2741
3040
  {
2742
3041
  "packageId": "@jskit-ai/realtime",
2743
- "version": "0.1.57",
3042
+ "version": "0.1.58",
2744
3043
  "descriptor": {
2745
3044
  "packageVersion": 1,
2746
3045
  "packageId": "@jskit-ai/realtime",
2747
- "version": "0.1.57",
3046
+ "version": "0.1.58",
2748
3047
  "kind": "runtime",
2749
3048
  "description": "Thin, generic realtime runtime wrappers for socket.io server and client.",
2750
3049
  "options": {
@@ -2839,7 +3138,7 @@
2839
3138
  "mutations": {
2840
3139
  "dependencies": {
2841
3140
  "runtime": {
2842
- "@jskit-ai/kernel": "0.1.58",
3141
+ "@jskit-ai/kernel": "0.1.59",
2843
3142
  "@socket.io/redis-adapter": "^8.3.0",
2844
3143
  "redis": "^5.8.2",
2845
3144
  "socket.io": "^4.8.3",
@@ -2888,11 +3187,11 @@
2888
3187
  },
2889
3188
  {
2890
3189
  "packageId": "@jskit-ai/resource-core",
2891
- "version": "0.1.3",
3190
+ "version": "0.1.4",
2892
3191
  "descriptor": {
2893
3192
  "packageVersion": 1,
2894
3193
  "packageId": "@jskit-ai/resource-core",
2895
- "version": "0.1.3",
3194
+ "version": "0.1.4",
2896
3195
  "kind": "runtime",
2897
3196
  "description": "Generic resource-definition helpers and schema-definition normalization.",
2898
3197
  "dependsOn": [
@@ -2915,7 +3214,7 @@
2915
3214
  "mutations": {
2916
3215
  "dependencies": {
2917
3216
  "runtime": {
2918
- "@jskit-ai/resource-core": "0.1.3"
3217
+ "@jskit-ai/resource-core": "0.1.4"
2919
3218
  },
2920
3219
  "dev": {}
2921
3220
  },
@@ -2930,11 +3229,11 @@
2930
3229
  },
2931
3230
  {
2932
3231
  "packageId": "@jskit-ai/resource-crud-core",
2933
- "version": "0.1.3",
3232
+ "version": "0.1.4",
2934
3233
  "descriptor": {
2935
3234
  "packageVersion": 1,
2936
3235
  "packageId": "@jskit-ai/resource-crud-core",
2937
- "version": "0.1.3",
3236
+ "version": "0.1.4",
2938
3237
  "kind": "runtime",
2939
3238
  "description": "CRUD-specific resource-definition helpers and namespace support.",
2940
3239
  "dependsOn": [
@@ -2958,7 +3257,7 @@
2958
3257
  "mutations": {
2959
3258
  "dependencies": {
2960
3259
  "runtime": {
2961
- "@jskit-ai/resource-crud-core": "0.1.3"
3260
+ "@jskit-ai/resource-crud-core": "0.1.4"
2962
3261
  },
2963
3262
  "dev": {}
2964
3263
  },
@@ -2973,11 +3272,11 @@
2973
3272
  },
2974
3273
  {
2975
3274
  "packageId": "@jskit-ai/shell-web",
2976
- "version": "0.1.57",
3275
+ "version": "0.1.58",
2977
3276
  "descriptor": {
2978
3277
  "packageVersion": 1,
2979
3278
  "packageId": "@jskit-ai/shell-web",
2980
- "version": "0.1.57",
3279
+ "version": "0.1.58",
2981
3280
  "kind": "runtime",
2982
3281
  "description": "Web shell layout runtime with outlet-based placement contributions.",
2983
3282
  "dependsOn": [],
@@ -3114,7 +3413,7 @@
3114
3413
  "runtime": {
3115
3414
  "@mdi/js": "^7.4.47",
3116
3415
  "@tanstack/vue-query": "^5.90.5",
3117
- "@jskit-ai/kernel": "0.1.58",
3416
+ "@jskit-ai/kernel": "0.1.59",
3118
3417
  "vuetify": "^4.0.0"
3119
3418
  },
3120
3419
  "dev": {}
@@ -3299,11 +3598,11 @@
3299
3598
  },
3300
3599
  {
3301
3600
  "packageId": "@jskit-ai/storage-runtime",
3302
- "version": "0.1.57",
3601
+ "version": "0.1.58",
3303
3602
  "descriptor": {
3304
3603
  "packageVersion": 1,
3305
3604
  "packageId": "@jskit-ai/storage-runtime",
3306
- "version": "0.1.57",
3605
+ "version": "0.1.58",
3307
3606
  "kind": "runtime",
3308
3607
  "dependsOn": [
3309
3608
  "@jskit-ai/kernel"
@@ -3352,7 +3651,7 @@
3352
3651
  "mutations": {
3353
3652
  "dependencies": {
3354
3653
  "runtime": {
3355
- "@jskit-ai/kernel": "0.1.58",
3654
+ "@jskit-ai/kernel": "0.1.59",
3356
3655
  "unstorage": "^1.17.3"
3357
3656
  },
3358
3657
  "dev": {}
@@ -3368,11 +3667,11 @@
3368
3667
  },
3369
3668
  {
3370
3669
  "packageId": "@jskit-ai/ui-generator",
3371
- "version": "0.1.41",
3670
+ "version": "0.1.42",
3372
3671
  "descriptor": {
3373
3672
  "packageVersion": 1,
3374
3673
  "packageId": "@jskit-ai/ui-generator",
3375
- "version": "0.1.41",
3674
+ "version": "0.1.42",
3376
3675
  "kind": "generator",
3377
3676
  "description": "Create non-CRUD pages, reusable UI elements, and subpage hosts.",
3378
3677
  "options": {
@@ -3671,7 +3970,7 @@
3671
3970
  "mutations": {
3672
3971
  "dependencies": {
3673
3972
  "runtime": {
3674
- "@jskit-ai/users-web": "0.1.73"
3973
+ "@jskit-ai/users-web": "0.1.74"
3675
3974
  },
3676
3975
  "dev": {}
3677
3976
  },
@@ -3686,11 +3985,11 @@
3686
3985
  },
3687
3986
  {
3688
3987
  "packageId": "@jskit-ai/uploads-image-web",
3689
- "version": "0.1.36",
3988
+ "version": "0.1.37",
3690
3989
  "descriptor": {
3691
3990
  "packageVersion": 1,
3692
3991
  "packageId": "@jskit-ai/uploads-image-web",
3693
- "version": "0.1.36",
3992
+ "version": "0.1.37",
3694
3993
  "kind": "runtime",
3695
3994
  "description": "Reusable client-side image upload runtime with pre-upload image editing.",
3696
3995
  "dependsOn": [
@@ -3754,7 +4053,7 @@
3754
4053
  "mutations": {
3755
4054
  "dependencies": {
3756
4055
  "runtime": {
3757
- "@jskit-ai/uploads-runtime": "0.1.36",
4056
+ "@jskit-ai/uploads-runtime": "0.1.37",
3758
4057
  "@uppy/compressor": "^3.1.0",
3759
4058
  "@uppy/core": "^5.2.0",
3760
4059
  "@uppy/dashboard": "^5.1.1",
@@ -3774,11 +4073,11 @@
3774
4073
  },
3775
4074
  {
3776
4075
  "packageId": "@jskit-ai/uploads-runtime",
3777
- "version": "0.1.36",
4076
+ "version": "0.1.37",
3778
4077
  "descriptor": {
3779
4078
  "packageVersion": 1,
3780
4079
  "packageId": "@jskit-ai/uploads-runtime",
3781
- "version": "0.1.36",
4080
+ "version": "0.1.37",
3782
4081
  "kind": "runtime",
3783
4082
  "description": "Reusable upload runtime primitives for multipart parsing, policy validation, and blob storage.",
3784
4083
  "dependsOn": [
@@ -3848,7 +4147,7 @@
3848
4147
  "dependencies": {
3849
4148
  "runtime": {
3850
4149
  "@fastify/multipart": "^9.4.0",
3851
- "@jskit-ai/kernel": "0.1.58"
4150
+ "@jskit-ai/kernel": "0.1.59"
3852
4151
  },
3853
4152
  "dev": {}
3854
4153
  },
@@ -3863,11 +4162,11 @@
3863
4162
  },
3864
4163
  {
3865
4164
  "packageId": "@jskit-ai/users-core",
3866
- "version": "0.1.68",
4165
+ "version": "0.1.69",
3867
4166
  "descriptor": {
3868
4167
  "packageVersion": 1,
3869
4168
  "packageId": "@jskit-ai/users-core",
3870
- "version": "0.1.68",
4169
+ "version": "0.1.69",
3871
4170
  "kind": "runtime",
3872
4171
  "description": "Users/account runtime plus HTTP routes for account features.",
3873
4172
  "dependsOn": [
@@ -3997,16 +4296,16 @@
3997
4296
  "mutations": {
3998
4297
  "dependencies": {
3999
4298
  "runtime": {
4000
- "@jskit-ai/auth-core": "0.1.57",
4001
- "@jskit-ai/crud-core": "0.1.66",
4002
- "@jskit-ai/database-runtime": "0.1.58",
4003
- "@jskit-ai/http-runtime": "0.1.57",
4004
- "@jskit-ai/json-rest-api-core": "0.1.3",
4005
- "@jskit-ai/kernel": "0.1.58",
4006
- "@jskit-ai/resource-core": "0.1.3",
4007
- "@jskit-ai/resource-crud-core": "0.1.3",
4299
+ "@jskit-ai/auth-core": "0.1.58",
4300
+ "@jskit-ai/crud-core": "0.1.67",
4301
+ "@jskit-ai/database-runtime": "0.1.59",
4302
+ "@jskit-ai/http-runtime": "0.1.58",
4303
+ "@jskit-ai/json-rest-api-core": "0.1.4",
4304
+ "@jskit-ai/kernel": "0.1.59",
4305
+ "@jskit-ai/resource-core": "0.1.4",
4306
+ "@jskit-ai/resource-crud-core": "0.1.4",
4008
4307
  "@local/users": "file:packages/users",
4009
- "@jskit-ai/uploads-runtime": "0.1.36"
4308
+ "@jskit-ai/uploads-runtime": "0.1.37"
4010
4309
  },
4011
4310
  "dev": {}
4012
4311
  },
@@ -4223,11 +4522,11 @@
4223
4522
  },
4224
4523
  {
4225
4524
  "packageId": "@jskit-ai/users-web",
4226
- "version": "0.1.73",
4525
+ "version": "0.1.74",
4227
4526
  "descriptor": {
4228
4527
  "packageVersion": 1,
4229
4528
  "packageId": "@jskit-ai/users-web",
4230
- "version": "0.1.73",
4529
+ "version": "0.1.74",
4231
4530
  "kind": "runtime",
4232
4531
  "description": "Users web module: account/profile UI plus shared users web widgets.",
4233
4532
  "dependsOn": [
@@ -4423,12 +4722,12 @@
4423
4722
  "runtime": {
4424
4723
  "@tanstack/vue-query": "5.92.12",
4425
4724
  "@mdi/js": "^7.4.47",
4426
- "@jskit-ai/http-runtime": "0.1.57",
4427
- "@jskit-ai/realtime": "0.1.57",
4428
- "@jskit-ai/kernel": "0.1.58",
4429
- "@jskit-ai/shell-web": "0.1.57",
4430
- "@jskit-ai/uploads-image-web": "0.1.36",
4431
- "@jskit-ai/users-core": "0.1.68",
4725
+ "@jskit-ai/http-runtime": "0.1.58",
4726
+ "@jskit-ai/realtime": "0.1.58",
4727
+ "@jskit-ai/kernel": "0.1.59",
4728
+ "@jskit-ai/shell-web": "0.1.58",
4729
+ "@jskit-ai/uploads-image-web": "0.1.37",
4730
+ "@jskit-ai/users-core": "0.1.69",
4432
4731
  "vuetify": "^4.0.0"
4433
4732
  },
4434
4733
  "dev": {}
@@ -4578,11 +4877,11 @@
4578
4877
  },
4579
4878
  {
4580
4879
  "packageId": "@jskit-ai/workspaces-core",
4581
- "version": "0.1.34",
4880
+ "version": "0.1.35",
4582
4881
  "descriptor": {
4583
4882
  "packageVersion": 1,
4584
4883
  "packageId": "@jskit-ai/workspaces-core",
4585
- "version": "0.1.34",
4884
+ "version": "0.1.35",
4586
4885
  "kind": "runtime",
4587
4886
  "description": "Workspace tenancy runtime plus HTTP routes, role catalog, and workspace config scaffolding.",
4588
4887
  "dependsOn": [
@@ -4697,10 +4996,10 @@
4697
4996
  "mutations": {
4698
4997
  "dependencies": {
4699
4998
  "runtime": {
4700
- "@jskit-ai/json-rest-api-core": "0.1.3",
4701
- "@jskit-ai/resource-core": "0.1.3",
4702
- "@jskit-ai/resource-crud-core": "0.1.3",
4703
- "@jskit-ai/users-core": "0.1.68"
4999
+ "@jskit-ai/json-rest-api-core": "0.1.4",
5000
+ "@jskit-ai/resource-core": "0.1.4",
5001
+ "@jskit-ai/resource-crud-core": "0.1.4",
5002
+ "@jskit-ai/users-core": "0.1.69"
4704
5003
  },
4705
5004
  "dev": {}
4706
5005
  },
@@ -4872,11 +5171,11 @@
4872
5171
  },
4873
5172
  {
4874
5173
  "packageId": "@jskit-ai/workspaces-web",
4875
- "version": "0.1.34",
5174
+ "version": "0.1.35",
4876
5175
  "descriptor": {
4877
5176
  "packageVersion": 1,
4878
5177
  "packageId": "@jskit-ai/workspaces-web",
4879
- "version": "0.1.34",
5178
+ "version": "0.1.35",
4880
5179
  "kind": "runtime",
4881
5180
  "description": "Workspace web module: workspace selector, tools widget, workspace surfaces, and members/settings UI.",
4882
5181
  "dependsOn": [
@@ -5063,8 +5362,8 @@
5063
5362
  "mutations": {
5064
5363
  "dependencies": {
5065
5364
  "runtime": {
5066
- "@jskit-ai/workspaces-core": "0.1.34",
5067
- "@jskit-ai/users-web": "0.1.73",
5365
+ "@jskit-ai/workspaces-core": "0.1.35",
5366
+ "@jskit-ai/users-web": "0.1.74",
5068
5367
  "vuetify": "^4.0.0"
5069
5368
  },
5070
5369
  "dev": {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/jskit-catalog",
3
- "version": "0.1.66",
3
+ "version": "0.1.67",
4
4
  "description": "Published metadata catalog for JSKIT package descriptors.",
5
5
  "type": "module",
6
6
  "files": [