@jskit-ai/jskit-catalog 0.1.30 → 0.1.32
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/catalog/packages.json +588 -122
- package/package.json +1 -1
package/catalog/packages.json
CHANGED
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
"packages": [
|
|
7
7
|
{
|
|
8
8
|
"packageId": "@jskit-ai/assistant",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.32",
|
|
10
10
|
"descriptor": {
|
|
11
11
|
"packageVersion": 1,
|
|
12
12
|
"packageId": "@jskit-ai/assistant",
|
|
13
|
-
"version": "0.1.
|
|
13
|
+
"version": "0.1.32",
|
|
14
14
|
"kind": "runtime",
|
|
15
15
|
"description": "Unified assistant module with streaming chat, transcript persistence, service-aware tool execution, and workspace UI.",
|
|
16
16
|
"options": {
|
|
@@ -121,14 +121,14 @@
|
|
|
121
121
|
"mutations": {
|
|
122
122
|
"dependencies": {
|
|
123
123
|
"runtime": {
|
|
124
|
-
"@jskit-ai/assistant": "0.1.
|
|
125
|
-
"@jskit-ai/auth-core": "0.1.
|
|
126
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
127
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
128
|
-
"@jskit-ai/kernel": "0.1.
|
|
129
|
-
"@jskit-ai/realtime": "0.1.
|
|
130
|
-
"@jskit-ai/users-core": "0.1.
|
|
131
|
-
"@jskit-ai/users-web": "0.1.
|
|
124
|
+
"@jskit-ai/assistant": "0.1.32",
|
|
125
|
+
"@jskit-ai/auth-core": "0.1.23",
|
|
126
|
+
"@jskit-ai/database-runtime": "0.1.24",
|
|
127
|
+
"@jskit-ai/http-runtime": "0.1.23",
|
|
128
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
129
|
+
"@jskit-ai/realtime": "0.1.23",
|
|
130
|
+
"@jskit-ai/users-core": "0.1.33",
|
|
131
|
+
"@jskit-ai/users-web": "0.1.38",
|
|
132
132
|
"@tanstack/vue-query": "^5.90.5",
|
|
133
133
|
"dompurify": "^3.3.3",
|
|
134
134
|
"marked": "^17.0.4",
|
|
@@ -301,11 +301,11 @@
|
|
|
301
301
|
},
|
|
302
302
|
{
|
|
303
303
|
"packageId": "@jskit-ai/auth-core",
|
|
304
|
-
"version": "0.1.
|
|
304
|
+
"version": "0.1.23",
|
|
305
305
|
"descriptor": {
|
|
306
306
|
"packageVersion": 1,
|
|
307
307
|
"packageId": "@jskit-ai/auth-core",
|
|
308
|
-
"version": "0.1.
|
|
308
|
+
"version": "0.1.23",
|
|
309
309
|
"kind": "runtime",
|
|
310
310
|
"dependsOn": [
|
|
311
311
|
"@jskit-ai/value-app-config-shared"
|
|
@@ -373,7 +373,7 @@
|
|
|
373
373
|
"mutations": {
|
|
374
374
|
"dependencies": {
|
|
375
375
|
"runtime": {
|
|
376
|
-
"@jskit-ai/kernel": "0.1.
|
|
376
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
377
377
|
"@fastify/cookie": "^11.0.2",
|
|
378
378
|
"@fastify/csrf-protection": "^7.1.0",
|
|
379
379
|
"@fastify/rate-limit": "^10.3.0"
|
|
@@ -391,11 +391,11 @@
|
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"packageId": "@jskit-ai/auth-provider-supabase-core",
|
|
394
|
-
"version": "0.1.
|
|
394
|
+
"version": "0.1.23",
|
|
395
395
|
"descriptor": {
|
|
396
396
|
"packageVersion": 1,
|
|
397
397
|
"packageId": "@jskit-ai/auth-provider-supabase-core",
|
|
398
|
-
"version": "0.1.
|
|
398
|
+
"version": "0.1.23",
|
|
399
399
|
"kind": "runtime",
|
|
400
400
|
"options": {
|
|
401
401
|
"auth-supabase-url": {
|
|
@@ -477,8 +477,8 @@
|
|
|
477
477
|
"mutations": {
|
|
478
478
|
"dependencies": {
|
|
479
479
|
"runtime": {
|
|
480
|
-
"@jskit-ai/auth-core": "0.1.
|
|
481
|
-
"@jskit-ai/kernel": "0.1.
|
|
480
|
+
"@jskit-ai/auth-core": "0.1.23",
|
|
481
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
482
482
|
"dotenv": "^16.4.5",
|
|
483
483
|
"@supabase/supabase-js": "^2.57.4",
|
|
484
484
|
"jose": "^6.1.0"
|
|
@@ -543,11 +543,11 @@
|
|
|
543
543
|
},
|
|
544
544
|
{
|
|
545
545
|
"packageId": "@jskit-ai/auth-web",
|
|
546
|
-
"version": "0.1.
|
|
546
|
+
"version": "0.1.25",
|
|
547
547
|
"descriptor": {
|
|
548
548
|
"packageVersion": 1,
|
|
549
549
|
"packageId": "@jskit-ai/auth-web",
|
|
550
|
-
"version": "0.1.
|
|
550
|
+
"version": "0.1.25",
|
|
551
551
|
"kind": "runtime",
|
|
552
552
|
"description": "Auth web module: Fastify auth routes plus web login/sign-out scaffolds.",
|
|
553
553
|
"dependsOn": [
|
|
@@ -777,10 +777,10 @@
|
|
|
777
777
|
"@tanstack/vue-query": "5.92.12",
|
|
778
778
|
"@mdi/js": "^7.4.47",
|
|
779
779
|
"@fastify/type-provider-typebox": "^6.1.0",
|
|
780
|
-
"@jskit-ai/auth-core": "0.1.
|
|
781
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
782
|
-
"@jskit-ai/kernel": "0.1.
|
|
783
|
-
"@jskit-ai/shell-web": "0.1.
|
|
780
|
+
"@jskit-ai/auth-core": "0.1.23",
|
|
781
|
+
"@jskit-ai/http-runtime": "0.1.23",
|
|
782
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
783
|
+
"@jskit-ai/shell-web": "0.1.23",
|
|
784
784
|
"vuetify": "^4.0.0"
|
|
785
785
|
},
|
|
786
786
|
"dev": {}
|
|
@@ -850,11 +850,11 @@
|
|
|
850
850
|
},
|
|
851
851
|
{
|
|
852
852
|
"packageId": "@jskit-ai/crud-core",
|
|
853
|
-
"version": "0.1.
|
|
853
|
+
"version": "0.1.32",
|
|
854
854
|
"descriptor": {
|
|
855
855
|
"packageVersion": 1,
|
|
856
856
|
"packageId": "@jskit-ai/crud-core",
|
|
857
|
-
"version": "0.1.
|
|
857
|
+
"version": "0.1.32",
|
|
858
858
|
"kind": "runtime",
|
|
859
859
|
"description": "Shared CRUD helpers used by CRUD modules.",
|
|
860
860
|
"dependsOn": [
|
|
@@ -881,7 +881,7 @@
|
|
|
881
881
|
"mutations": {
|
|
882
882
|
"dependencies": {
|
|
883
883
|
"runtime": {
|
|
884
|
-
"@jskit-ai/crud-core": "0.1.
|
|
884
|
+
"@jskit-ai/crud-core": "0.1.32"
|
|
885
885
|
},
|
|
886
886
|
"dev": {}
|
|
887
887
|
},
|
|
@@ -895,11 +895,11 @@
|
|
|
895
895
|
},
|
|
896
896
|
{
|
|
897
897
|
"packageId": "@jskit-ai/crud-server-generator",
|
|
898
|
-
"version": "0.1.
|
|
898
|
+
"version": "0.1.32",
|
|
899
899
|
"descriptor": {
|
|
900
900
|
"packageVersion": 1,
|
|
901
901
|
"packageId": "@jskit-ai/crud-server-generator",
|
|
902
|
-
"version": "0.1.
|
|
902
|
+
"version": "0.1.32",
|
|
903
903
|
"kind": "generator",
|
|
904
904
|
"description": "CRUD server generator with routes, actions, and persistence scaffolding.",
|
|
905
905
|
"options": {
|
|
@@ -980,10 +980,39 @@
|
|
|
980
980
|
}
|
|
981
981
|
},
|
|
982
982
|
"metadata": {
|
|
983
|
+
"generatorPrimarySubcommand": "scaffold",
|
|
983
984
|
"generatorSubcommands": {
|
|
984
|
-
"
|
|
985
|
+
"scaffold": {
|
|
986
|
+
"description": "Scaffold a CRUD resource package for a table (same behavior as running generate with no subcommand).",
|
|
987
|
+
"optionNames": [
|
|
988
|
+
"namespace",
|
|
989
|
+
"surface",
|
|
990
|
+
"ownership-filter",
|
|
991
|
+
"table-name",
|
|
992
|
+
"id-column",
|
|
993
|
+
"directory-prefix"
|
|
994
|
+
]
|
|
995
|
+
},
|
|
996
|
+
"scaffold-field": {
|
|
985
997
|
"entrypoint": "src/server/subcommands/addField.js",
|
|
986
|
-
"export": "runGeneratorSubcommand"
|
|
998
|
+
"export": "runGeneratorSubcommand",
|
|
999
|
+
"description": "Patch one writable field into an existing generated CRUD resource module.",
|
|
1000
|
+
"positionalArgs": [
|
|
1001
|
+
{
|
|
1002
|
+
"name": "<fieldKey>",
|
|
1003
|
+
"required": true,
|
|
1004
|
+
"description": "Resource field key (camelCase) resolved from the DB snapshot."
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"name": "<targetFile>",
|
|
1008
|
+
"required": true,
|
|
1009
|
+
"description": "Path to the generated CRUD resource file relative to app root."
|
|
1010
|
+
}
|
|
1011
|
+
],
|
|
1012
|
+
"optionNames": [
|
|
1013
|
+
"table-name",
|
|
1014
|
+
"id-column"
|
|
1015
|
+
]
|
|
987
1016
|
}
|
|
988
1017
|
},
|
|
989
1018
|
"apiSummary": {
|
|
@@ -1005,13 +1034,13 @@
|
|
|
1005
1034
|
"mutations": {
|
|
1006
1035
|
"dependencies": {
|
|
1007
1036
|
"runtime": {
|
|
1008
|
-
"@jskit-ai/auth-core": "0.1.
|
|
1009
|
-
"@jskit-ai/crud-core": "0.1.
|
|
1010
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
1011
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
1012
|
-
"@jskit-ai/kernel": "0.1.
|
|
1013
|
-
"@jskit-ai/realtime": "0.1.
|
|
1014
|
-
"@jskit-ai/users-core": "0.1.
|
|
1037
|
+
"@jskit-ai/auth-core": "0.1.23",
|
|
1038
|
+
"@jskit-ai/crud-core": "0.1.32",
|
|
1039
|
+
"@jskit-ai/database-runtime": "0.1.24",
|
|
1040
|
+
"@jskit-ai/http-runtime": "0.1.23",
|
|
1041
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
1042
|
+
"@jskit-ai/realtime": "0.1.23",
|
|
1043
|
+
"@jskit-ai/users-core": "0.1.33",
|
|
1015
1044
|
"@local/${option:namespace|kebab}": "file:packages/${option:namespace|kebab}",
|
|
1016
1045
|
"typebox": "^1.0.81"
|
|
1017
1046
|
},
|
|
@@ -1118,17 +1147,28 @@
|
|
|
1118
1147
|
}
|
|
1119
1148
|
}
|
|
1120
1149
|
],
|
|
1121
|
-
"text": [
|
|
1150
|
+
"text": [
|
|
1151
|
+
{
|
|
1152
|
+
"op": "append-text",
|
|
1153
|
+
"file": "config/roles.js",
|
|
1154
|
+
"position": "bottom",
|
|
1155
|
+
"skipIfContains": "\"crud.${option:namespace|snake}.list\"",
|
|
1156
|
+
"value": "\nroleCatalog.roles.member.permissions.push(\n \"crud.${option:namespace|snake}.list\",\n \"crud.${option:namespace|snake}.view\",\n \"crud.${option:namespace|snake}.create\",\n \"crud.${option:namespace|snake}.update\",\n \"crud.${option:namespace|snake}.delete\"\n);\n",
|
|
1157
|
+
"reason": "Grant generated CRUD action permissions to the default member role in the app-owned role catalog.",
|
|
1158
|
+
"category": "crud",
|
|
1159
|
+
"id": "crud-role-catalog-permissions-${option:namespace|snake}"
|
|
1160
|
+
}
|
|
1161
|
+
]
|
|
1122
1162
|
}
|
|
1123
1163
|
}
|
|
1124
1164
|
},
|
|
1125
1165
|
{
|
|
1126
1166
|
"packageId": "@jskit-ai/crud-ui-generator",
|
|
1127
|
-
"version": "0.1.
|
|
1167
|
+
"version": "0.1.7",
|
|
1128
1168
|
"descriptor": {
|
|
1129
1169
|
"packageVersion": 1,
|
|
1130
1170
|
"packageId": "@jskit-ai/crud-ui-generator",
|
|
1131
|
-
"version": "0.1.
|
|
1171
|
+
"version": "0.1.7",
|
|
1132
1172
|
"kind": "generator",
|
|
1133
1173
|
"description": "Generate app-local CRUD UI scaffolds from resource validators.",
|
|
1134
1174
|
"options": {
|
|
@@ -1207,6 +1247,20 @@
|
|
|
1207
1247
|
"defaultValue": "",
|
|
1208
1248
|
"promptLabel": "Menu placement",
|
|
1209
1249
|
"promptHint": "Optional host:position target (defaults to ShellLayout default outlet)."
|
|
1250
|
+
},
|
|
1251
|
+
"placement-component-token": {
|
|
1252
|
+
"required": false,
|
|
1253
|
+
"inputType": "text",
|
|
1254
|
+
"defaultValue": "",
|
|
1255
|
+
"promptLabel": "Placement component token",
|
|
1256
|
+
"promptHint": "Optional component token override for generated menu placement. Use local.main.ui.tab-link-item for routed tab links (auto-provisions src/components/TabLinkItem.vue + MainClientProvider registration)."
|
|
1257
|
+
},
|
|
1258
|
+
"placement-to": {
|
|
1259
|
+
"required": false,
|
|
1260
|
+
"inputType": "text",
|
|
1261
|
+
"defaultValue": "",
|
|
1262
|
+
"promptLabel": "Placement to",
|
|
1263
|
+
"promptHint": "Optional explicit props.to value for generated menu placement (example: ./pets). Required when adding placement for dynamic directory-prefix/route-path values."
|
|
1210
1264
|
}
|
|
1211
1265
|
},
|
|
1212
1266
|
"dependsOn": [],
|
|
@@ -1248,7 +1302,7 @@
|
|
|
1248
1302
|
"mutations": {
|
|
1249
1303
|
"dependencies": {
|
|
1250
1304
|
"runtime": {
|
|
1251
|
-
"@jskit-ai/users-web": "0.1.
|
|
1305
|
+
"@jskit-ai/users-web": "0.1.38"
|
|
1252
1306
|
},
|
|
1253
1307
|
"dev": {}
|
|
1254
1308
|
},
|
|
@@ -1294,7 +1348,7 @@
|
|
|
1294
1348
|
}
|
|
1295
1349
|
},
|
|
1296
1350
|
{
|
|
1297
|
-
"from": "templates/src/pages/admin/ui-generator/
|
|
1351
|
+
"from": "templates/src/pages/admin/ui-generator/NewWrapperElement.vue",
|
|
1298
1352
|
"toSurface": "${option:surface|lower}",
|
|
1299
1353
|
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/new.vue",
|
|
1300
1354
|
"reason": "Install generated new page.",
|
|
@@ -1305,14 +1359,24 @@
|
|
|
1305
1359
|
"export": "buildUiTemplateContext"
|
|
1306
1360
|
},
|
|
1307
1361
|
"when": {
|
|
1308
|
-
"
|
|
1309
|
-
|
|
1310
|
-
|
|
1362
|
+
"all": [
|
|
1363
|
+
{
|
|
1364
|
+
"option": "operations",
|
|
1365
|
+
"in": [
|
|
1366
|
+
"new"
|
|
1367
|
+
]
|
|
1368
|
+
},
|
|
1369
|
+
{
|
|
1370
|
+
"option": "operations",
|
|
1371
|
+
"in": [
|
|
1372
|
+
"edit"
|
|
1373
|
+
]
|
|
1374
|
+
}
|
|
1311
1375
|
]
|
|
1312
1376
|
}
|
|
1313
1377
|
},
|
|
1314
1378
|
{
|
|
1315
|
-
"from": "templates/src/pages/admin/ui-generator/
|
|
1379
|
+
"from": "templates/src/pages/admin/ui-generator/EditWrapperElement.vue",
|
|
1316
1380
|
"toSurface": "${option:surface|lower}",
|
|
1317
1381
|
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/[${option:id-param|trim}]/edit.vue",
|
|
1318
1382
|
"reason": "Install generated edit page.",
|
|
@@ -1323,9 +1387,131 @@
|
|
|
1323
1387
|
"export": "buildUiTemplateContext"
|
|
1324
1388
|
},
|
|
1325
1389
|
"when": {
|
|
1326
|
-
"
|
|
1327
|
-
|
|
1328
|
-
|
|
1390
|
+
"all": [
|
|
1391
|
+
{
|
|
1392
|
+
"option": "operations",
|
|
1393
|
+
"in": [
|
|
1394
|
+
"new"
|
|
1395
|
+
]
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
"option": "operations",
|
|
1399
|
+
"in": [
|
|
1400
|
+
"edit"
|
|
1401
|
+
]
|
|
1402
|
+
}
|
|
1403
|
+
]
|
|
1404
|
+
}
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
"from": "templates/src/pages/admin/ui-generator/AddEditForm.vue",
|
|
1408
|
+
"toSurface": "${option:surface|lower}",
|
|
1409
|
+
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/_components/${option:namespace|singular|pascal|default(Record)}AddEditForm.vue",
|
|
1410
|
+
"reason": "Install generated shared add/edit form component.",
|
|
1411
|
+
"category": "ui-generator",
|
|
1412
|
+
"id": "ui-generator-page-add-edit-form-${option:namespace|snake}",
|
|
1413
|
+
"templateContext": {
|
|
1414
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
1415
|
+
"export": "buildUiTemplateContext"
|
|
1416
|
+
},
|
|
1417
|
+
"when": {
|
|
1418
|
+
"all": [
|
|
1419
|
+
{
|
|
1420
|
+
"option": "operations",
|
|
1421
|
+
"in": [
|
|
1422
|
+
"new"
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"option": "operations",
|
|
1427
|
+
"in": [
|
|
1428
|
+
"edit"
|
|
1429
|
+
]
|
|
1430
|
+
}
|
|
1431
|
+
]
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"from": "templates/src/pages/admin/ui-generator/AddEditFormFields.js",
|
|
1436
|
+
"toSurface": "${option:surface|lower}",
|
|
1437
|
+
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/_components/${option:namespace|singular|pascal|default(Record)}AddEditFormFields.js",
|
|
1438
|
+
"reason": "Install generated shared add/edit form field definitions.",
|
|
1439
|
+
"category": "ui-generator",
|
|
1440
|
+
"id": "ui-generator-page-add-edit-form-fields-${option:namespace|snake}",
|
|
1441
|
+
"templateContext": {
|
|
1442
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
1443
|
+
"export": "buildUiTemplateContext"
|
|
1444
|
+
},
|
|
1445
|
+
"when": {
|
|
1446
|
+
"all": [
|
|
1447
|
+
{
|
|
1448
|
+
"option": "operations",
|
|
1449
|
+
"in": [
|
|
1450
|
+
"new"
|
|
1451
|
+
]
|
|
1452
|
+
},
|
|
1453
|
+
{
|
|
1454
|
+
"option": "operations",
|
|
1455
|
+
"in": [
|
|
1456
|
+
"edit"
|
|
1457
|
+
]
|
|
1458
|
+
}
|
|
1459
|
+
]
|
|
1460
|
+
}
|
|
1461
|
+
},
|
|
1462
|
+
{
|
|
1463
|
+
"from": "templates/src/pages/admin/ui-generator/NewElement.vue",
|
|
1464
|
+
"toSurface": "${option:surface|lower}",
|
|
1465
|
+
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/new.vue",
|
|
1466
|
+
"reason": "Install generated new page.",
|
|
1467
|
+
"category": "ui-generator",
|
|
1468
|
+
"id": "ui-generator-page-new-standalone-${option:namespace|snake}",
|
|
1469
|
+
"templateContext": {
|
|
1470
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
1471
|
+
"export": "buildUiTemplateContext"
|
|
1472
|
+
},
|
|
1473
|
+
"when": {
|
|
1474
|
+
"all": [
|
|
1475
|
+
{
|
|
1476
|
+
"option": "operations",
|
|
1477
|
+
"in": [
|
|
1478
|
+
"new"
|
|
1479
|
+
]
|
|
1480
|
+
},
|
|
1481
|
+
{
|
|
1482
|
+
"option": "operations",
|
|
1483
|
+
"notIn": [
|
|
1484
|
+
"edit"
|
|
1485
|
+
]
|
|
1486
|
+
}
|
|
1487
|
+
]
|
|
1488
|
+
}
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
"from": "templates/src/pages/admin/ui-generator/EditElement.vue",
|
|
1492
|
+
"toSurface": "${option:surface|lower}",
|
|
1493
|
+
"toSurfacePath": "${option:directory-prefix|pathprefix}${option:container|pathprefix}${option:route-path|path}/[${option:id-param|trim}]/edit.vue",
|
|
1494
|
+
"reason": "Install generated edit page.",
|
|
1495
|
+
"category": "ui-generator",
|
|
1496
|
+
"id": "ui-generator-page-edit-standalone-${option:namespace|snake}",
|
|
1497
|
+
"templateContext": {
|
|
1498
|
+
"entrypoint": "src/server/buildTemplateContext.js",
|
|
1499
|
+
"export": "buildUiTemplateContext"
|
|
1500
|
+
},
|
|
1501
|
+
"when": {
|
|
1502
|
+
"all": [
|
|
1503
|
+
{
|
|
1504
|
+
"option": "operations",
|
|
1505
|
+
"in": [
|
|
1506
|
+
"edit"
|
|
1507
|
+
]
|
|
1508
|
+
},
|
|
1509
|
+
{
|
|
1510
|
+
"option": "operations",
|
|
1511
|
+
"notIn": [
|
|
1512
|
+
"new"
|
|
1513
|
+
]
|
|
1514
|
+
}
|
|
1329
1515
|
]
|
|
1330
1516
|
}
|
|
1331
1517
|
}
|
|
@@ -1336,7 +1522,7 @@
|
|
|
1336
1522
|
"file": "src/placement.js",
|
|
1337
1523
|
"position": "bottom",
|
|
1338
1524
|
"skipIfContains": "jskit:ui-generator.menu:${option:namespace|kebab}:${option:directory-prefix|path}:${option:container|path}:${option:route-path|path}",
|
|
1339
|
-
"value": "\n// jskit:ui-generator.menu:${option:namespace|kebab}:${option:directory-prefix|path}:${option:container|path}:${option:route-path|path}\n{\n addPlacement({\n id: \"ui-generator.${option:namespace|kebab}.menu\",\n host: \"__JSKIT_UI_MENU_PLACEMENT_HOST__\",\n position: \"__JSKIT_UI_MENU_PLACEMENT_POSITION__\",\n surfaces: [\"${option:surface|lower}\"],\n order: 155,\n componentToken: \"__JSKIT_UI_MENU_COMPONENT_TOKEN__\",\n props: {\n label: \"${option:namespace|plural|pascal}\",\n surface: \"${option:surface|lower}\",\n workspaceSuffix: \"
|
|
1525
|
+
"value": "\n// jskit:ui-generator.menu:${option:namespace|kebab}:${option:directory-prefix|path}:${option:container|path}:${option:route-path|path}\n{\n addPlacement({\n id: \"ui-generator.${option:namespace|kebab}.menu\",\n host: \"__JSKIT_UI_MENU_PLACEMENT_HOST__\",\n position: \"__JSKIT_UI_MENU_PLACEMENT_POSITION__\",\n surfaces: [\"${option:surface|lower}\"],\n order: 155,\n componentToken: \"__JSKIT_UI_MENU_COMPONENT_TOKEN__\",\n props: {\n label: \"${option:namespace|plural|pascal}\",\n surface: \"${option:surface|lower}\",\n workspaceSuffix: \"__JSKIT_UI_MENU_WORKSPACE_SUFFIX__\",\n nonWorkspaceSuffix: \"__JSKIT_UI_MENU_NON_WORKSPACE_SUFFIX__\",\n__JSKIT_UI_MENU_TO_PROP_LINE__ },\n when: ({ auth }) => Boolean(auth?.authenticated)\n });\n}\n",
|
|
1340
1526
|
"reason": "Append generated UI menu placement.",
|
|
1341
1527
|
"category": "ui-generator",
|
|
1342
1528
|
"id": "ui-generator-placement-menu",
|
|
@@ -1353,8 +1539,32 @@
|
|
|
1353
1539
|
]
|
|
1354
1540
|
},
|
|
1355
1541
|
{
|
|
1356
|
-
"
|
|
1357
|
-
|
|
1542
|
+
"any": [
|
|
1543
|
+
{
|
|
1544
|
+
"all": [
|
|
1545
|
+
{
|
|
1546
|
+
"option": "route-path",
|
|
1547
|
+
"notContains": "["
|
|
1548
|
+
},
|
|
1549
|
+
{
|
|
1550
|
+
"option": "directory-prefix",
|
|
1551
|
+
"notContains": "["
|
|
1552
|
+
}
|
|
1553
|
+
]
|
|
1554
|
+
},
|
|
1555
|
+
{
|
|
1556
|
+
"all": [
|
|
1557
|
+
{
|
|
1558
|
+
"option": "placement",
|
|
1559
|
+
"contains": ":"
|
|
1560
|
+
},
|
|
1561
|
+
{
|
|
1562
|
+
"option": "placement-to",
|
|
1563
|
+
"notEquals": ""
|
|
1564
|
+
}
|
|
1565
|
+
]
|
|
1566
|
+
}
|
|
1567
|
+
]
|
|
1358
1568
|
}
|
|
1359
1569
|
]
|
|
1360
1570
|
}
|
|
@@ -1365,11 +1575,11 @@
|
|
|
1365
1575
|
},
|
|
1366
1576
|
{
|
|
1367
1577
|
"packageId": "@jskit-ai/database-runtime",
|
|
1368
|
-
"version": "0.1.
|
|
1578
|
+
"version": "0.1.24",
|
|
1369
1579
|
"descriptor": {
|
|
1370
1580
|
"packageVersion": 1,
|
|
1371
1581
|
"packageId": "@jskit-ai/database-runtime",
|
|
1372
|
-
"version": "0.1.
|
|
1582
|
+
"version": "0.1.24",
|
|
1373
1583
|
"kind": "runtime",
|
|
1374
1584
|
"dependsOn": [
|
|
1375
1585
|
"@jskit-ai/kernel"
|
|
@@ -1426,7 +1636,7 @@
|
|
|
1426
1636
|
"mutations": {
|
|
1427
1637
|
"dependencies": {
|
|
1428
1638
|
"runtime": {
|
|
1429
|
-
"@jskit-ai/kernel": "0.1.
|
|
1639
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
1430
1640
|
"dotenv": "^16.4.5",
|
|
1431
1641
|
"knex": "^3.1.0"
|
|
1432
1642
|
},
|
|
@@ -1461,11 +1671,11 @@
|
|
|
1461
1671
|
},
|
|
1462
1672
|
{
|
|
1463
1673
|
"packageId": "@jskit-ai/database-runtime-mysql",
|
|
1464
|
-
"version": "0.1.
|
|
1674
|
+
"version": "0.1.23",
|
|
1465
1675
|
"descriptor": {
|
|
1466
1676
|
"packageVersion": 1,
|
|
1467
1677
|
"packageId": "@jskit-ai/database-runtime-mysql",
|
|
1468
|
-
"version": "0.1.
|
|
1678
|
+
"version": "0.1.23",
|
|
1469
1679
|
"kind": "runtime",
|
|
1470
1680
|
"options": {
|
|
1471
1681
|
"db-host": {
|
|
@@ -1555,7 +1765,7 @@
|
|
|
1555
1765
|
"mutations": {
|
|
1556
1766
|
"dependencies": {
|
|
1557
1767
|
"runtime": {
|
|
1558
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
1768
|
+
"@jskit-ai/database-runtime": "0.1.24",
|
|
1559
1769
|
"mysql2": "^3.11.2"
|
|
1560
1770
|
},
|
|
1561
1771
|
"dev": {}
|
|
@@ -1626,11 +1836,11 @@
|
|
|
1626
1836
|
},
|
|
1627
1837
|
{
|
|
1628
1838
|
"packageId": "@jskit-ai/database-runtime-postgres",
|
|
1629
|
-
"version": "0.1.
|
|
1839
|
+
"version": "0.1.23",
|
|
1630
1840
|
"descriptor": {
|
|
1631
1841
|
"packageVersion": 1,
|
|
1632
1842
|
"packageId": "@jskit-ai/database-runtime-postgres",
|
|
1633
|
-
"version": "0.1.
|
|
1843
|
+
"version": "0.1.23",
|
|
1634
1844
|
"kind": "runtime",
|
|
1635
1845
|
"options": {
|
|
1636
1846
|
"db-host": {
|
|
@@ -1720,7 +1930,7 @@
|
|
|
1720
1930
|
"mutations": {
|
|
1721
1931
|
"dependencies": {
|
|
1722
1932
|
"runtime": {
|
|
1723
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
1933
|
+
"@jskit-ai/database-runtime": "0.1.24",
|
|
1724
1934
|
"pg": "^8.13.1"
|
|
1725
1935
|
},
|
|
1726
1936
|
"dev": {}
|
|
@@ -1791,11 +2001,11 @@
|
|
|
1791
2001
|
},
|
|
1792
2002
|
{
|
|
1793
2003
|
"packageId": "@jskit-ai/http-runtime",
|
|
1794
|
-
"version": "0.1.
|
|
2004
|
+
"version": "0.1.23",
|
|
1795
2005
|
"descriptor": {
|
|
1796
2006
|
"packageVersion": 1,
|
|
1797
2007
|
"packageId": "@jskit-ai/http-runtime",
|
|
1798
|
-
"version": "0.1.
|
|
2008
|
+
"version": "0.1.23",
|
|
1799
2009
|
"kind": "runtime",
|
|
1800
2010
|
"dependsOn": [],
|
|
1801
2011
|
"capabilities": {
|
|
@@ -1861,7 +2071,7 @@
|
|
|
1861
2071
|
"mutations": {
|
|
1862
2072
|
"dependencies": {
|
|
1863
2073
|
"runtime": {
|
|
1864
|
-
"@jskit-ai/kernel": "0.1.
|
|
2074
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
1865
2075
|
"@fastify/type-provider-typebox": "^6.1.0",
|
|
1866
2076
|
"typebox": "^1.0.81"
|
|
1867
2077
|
},
|
|
@@ -1877,11 +2087,11 @@
|
|
|
1877
2087
|
},
|
|
1878
2088
|
{
|
|
1879
2089
|
"packageId": "@jskit-ai/realtime",
|
|
1880
|
-
"version": "0.1.
|
|
2090
|
+
"version": "0.1.23",
|
|
1881
2091
|
"descriptor": {
|
|
1882
2092
|
"packageVersion": 1,
|
|
1883
2093
|
"packageId": "@jskit-ai/realtime",
|
|
1884
|
-
"version": "0.1.
|
|
2094
|
+
"version": "0.1.23",
|
|
1885
2095
|
"kind": "runtime",
|
|
1886
2096
|
"description": "Thin, generic realtime runtime wrappers for socket.io server and client.",
|
|
1887
2097
|
"options": {
|
|
@@ -1977,7 +2187,7 @@
|
|
|
1977
2187
|
"mutations": {
|
|
1978
2188
|
"dependencies": {
|
|
1979
2189
|
"runtime": {
|
|
1980
|
-
"@jskit-ai/kernel": "0.1.
|
|
2190
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
1981
2191
|
"@socket.io/redis-adapter": "^8.3.0",
|
|
1982
2192
|
"redis": "^5.8.2",
|
|
1983
2193
|
"socket.io": "^4.8.3",
|
|
@@ -2026,11 +2236,11 @@
|
|
|
2026
2236
|
},
|
|
2027
2237
|
{
|
|
2028
2238
|
"packageId": "@jskit-ai/shell-web",
|
|
2029
|
-
"version": "0.1.
|
|
2239
|
+
"version": "0.1.23",
|
|
2030
2240
|
"descriptor": {
|
|
2031
2241
|
"packageVersion": 1,
|
|
2032
2242
|
"packageId": "@jskit-ai/shell-web",
|
|
2033
|
-
"version": "0.1.
|
|
2243
|
+
"version": "0.1.23",
|
|
2034
2244
|
"kind": "runtime",
|
|
2035
2245
|
"description": "Web shell layout runtime with outlet-based placement contributions.",
|
|
2036
2246
|
"dependsOn": [],
|
|
@@ -2124,7 +2334,7 @@
|
|
|
2124
2334
|
"dependencies": {
|
|
2125
2335
|
"runtime": {
|
|
2126
2336
|
"@tanstack/vue-query": "^5.90.5",
|
|
2127
|
-
"@jskit-ai/kernel": "0.1.
|
|
2337
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
2128
2338
|
"vuetify": "^4.0.0"
|
|
2129
2339
|
},
|
|
2130
2340
|
"dev": {}
|
|
@@ -2205,11 +2415,11 @@
|
|
|
2205
2415
|
},
|
|
2206
2416
|
{
|
|
2207
2417
|
"packageId": "@jskit-ai/storage-runtime",
|
|
2208
|
-
"version": "0.1.
|
|
2418
|
+
"version": "0.1.23",
|
|
2209
2419
|
"descriptor": {
|
|
2210
2420
|
"packageVersion": 1,
|
|
2211
2421
|
"packageId": "@jskit-ai/storage-runtime",
|
|
2212
|
-
"version": "0.1.
|
|
2422
|
+
"version": "0.1.23",
|
|
2213
2423
|
"kind": "runtime",
|
|
2214
2424
|
"dependsOn": [
|
|
2215
2425
|
"@jskit-ai/kernel"
|
|
@@ -2258,7 +2468,7 @@
|
|
|
2258
2468
|
"mutations": {
|
|
2259
2469
|
"dependencies": {
|
|
2260
2470
|
"runtime": {
|
|
2261
|
-
"@jskit-ai/kernel": "0.1.
|
|
2471
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
2262
2472
|
"unstorage": "^1.17.3"
|
|
2263
2473
|
},
|
|
2264
2474
|
"dev": {}
|
|
@@ -2274,11 +2484,11 @@
|
|
|
2274
2484
|
},
|
|
2275
2485
|
{
|
|
2276
2486
|
"packageId": "@jskit-ai/ui-generator",
|
|
2277
|
-
"version": "0.1.
|
|
2487
|
+
"version": "0.1.7",
|
|
2278
2488
|
"descriptor": {
|
|
2279
2489
|
"packageVersion": 1,
|
|
2280
2490
|
"packageId": "@jskit-ai/ui-generator",
|
|
2281
|
-
"version": "0.1.
|
|
2491
|
+
"version": "0.1.7",
|
|
2282
2492
|
"kind": "generator",
|
|
2283
2493
|
"description": "Generate app-local non-CRUD UI pages and outlet elements.",
|
|
2284
2494
|
"options": {
|
|
@@ -2310,12 +2520,61 @@
|
|
|
2310
2520
|
"promptLabel": "Page directory prefix",
|
|
2311
2521
|
"promptHint": "Optional subpath under the selected surface pages root (example: crm or ops/team-a)."
|
|
2312
2522
|
},
|
|
2523
|
+
"route-path": {
|
|
2524
|
+
"required": false,
|
|
2525
|
+
"inputType": "text",
|
|
2526
|
+
"defaultValue": "",
|
|
2527
|
+
"promptLabel": "Route path",
|
|
2528
|
+
"promptHint": "Optional explicit container route path (example: contact-tools or contacts/[contactId]). Defaults to --name."
|
|
2529
|
+
},
|
|
2313
2530
|
"placement": {
|
|
2314
2531
|
"required": false,
|
|
2315
2532
|
"inputType": "text",
|
|
2316
2533
|
"defaultValue": "",
|
|
2317
2534
|
"promptLabel": "Placement target",
|
|
2318
2535
|
"promptHint": "Optional host:position target (defaults to app ShellOutlet default target)."
|
|
2536
|
+
},
|
|
2537
|
+
"placement-component-token": {
|
|
2538
|
+
"required": false,
|
|
2539
|
+
"inputType": "text",
|
|
2540
|
+
"defaultValue": "",
|
|
2541
|
+
"promptLabel": "Placement component token",
|
|
2542
|
+
"promptHint": "Optional component token override for generated menu placement (example: local.main.ui.tab-link-item)."
|
|
2543
|
+
},
|
|
2544
|
+
"placement-to": {
|
|
2545
|
+
"required": false,
|
|
2546
|
+
"inputType": "text",
|
|
2547
|
+
"defaultValue": "",
|
|
2548
|
+
"promptLabel": "Placement to",
|
|
2549
|
+
"promptHint": "Optional explicit props.to value for generated menu placement (example: ./notes). If omitted and directory-prefix includes a nestedChildren route group, defaults to ./<page-slug>."
|
|
2550
|
+
},
|
|
2551
|
+
"file": {
|
|
2552
|
+
"required": false,
|
|
2553
|
+
"inputType": "text",
|
|
2554
|
+
"defaultValue": "",
|
|
2555
|
+
"promptLabel": "Target Vue file",
|
|
2556
|
+
"promptHint": "Vue SFC path relative to app root (used by outlet subcommand)."
|
|
2557
|
+
},
|
|
2558
|
+
"host": {
|
|
2559
|
+
"required": false,
|
|
2560
|
+
"inputType": "text",
|
|
2561
|
+
"defaultValue": "",
|
|
2562
|
+
"promptLabel": "Outlet host",
|
|
2563
|
+
"promptHint": "ShellOutlet host value to inject into target file."
|
|
2564
|
+
},
|
|
2565
|
+
"position": {
|
|
2566
|
+
"required": false,
|
|
2567
|
+
"inputType": "text",
|
|
2568
|
+
"defaultValue": "sub-pages",
|
|
2569
|
+
"promptLabel": "Outlet position",
|
|
2570
|
+
"promptHint": "ShellOutlet position value to inject into target file."
|
|
2571
|
+
},
|
|
2572
|
+
"mode": {
|
|
2573
|
+
"required": false,
|
|
2574
|
+
"inputType": "text",
|
|
2575
|
+
"defaultValue": "routed",
|
|
2576
|
+
"promptLabel": "Outlet mode",
|
|
2577
|
+
"promptHint": "routed | outlet-only (routed injects RouterView when missing)."
|
|
2319
2578
|
}
|
|
2320
2579
|
},
|
|
2321
2580
|
"dependsOn": [],
|
|
@@ -2336,13 +2595,55 @@
|
|
|
2336
2595
|
"metadata": {
|
|
2337
2596
|
"generatorPrimarySubcommand": "page",
|
|
2338
2597
|
"generatorSubcommands": {
|
|
2598
|
+
"page": {
|
|
2599
|
+
"description": "Scaffold a non-CRUD page and add a menu placement entry.",
|
|
2600
|
+
"optionNames": [
|
|
2601
|
+
"name",
|
|
2602
|
+
"surface",
|
|
2603
|
+
"directory-prefix",
|
|
2604
|
+
"placement",
|
|
2605
|
+
"placement-component-token",
|
|
2606
|
+
"placement-to"
|
|
2607
|
+
]
|
|
2608
|
+
},
|
|
2339
2609
|
"element": {
|
|
2340
2610
|
"entrypoint": "src/server/subcommands/element.js",
|
|
2341
|
-
"export": "runGeneratorSubcommand"
|
|
2611
|
+
"export": "runGeneratorSubcommand",
|
|
2612
|
+
"description": "Scaffold a reusable UI element component and register a placement.",
|
|
2613
|
+
"optionNames": [
|
|
2614
|
+
"name",
|
|
2615
|
+
"surface",
|
|
2616
|
+
"path",
|
|
2617
|
+
"placement"
|
|
2618
|
+
]
|
|
2342
2619
|
},
|
|
2343
2620
|
"container": {
|
|
2344
2621
|
"entrypoint": "src/server/subcommands/container.js",
|
|
2345
|
-
"export": "runGeneratorSubcommand"
|
|
2622
|
+
"export": "runGeneratorSubcommand",
|
|
2623
|
+
"description": "Scaffold a routed section container page with a tab outlet. Adds a menu entry only when --placement is passed.",
|
|
2624
|
+
"optionNames": [
|
|
2625
|
+
"name",
|
|
2626
|
+
"surface",
|
|
2627
|
+
"directory-prefix",
|
|
2628
|
+
"route-path",
|
|
2629
|
+
"path",
|
|
2630
|
+
"placement"
|
|
2631
|
+
]
|
|
2632
|
+
},
|
|
2633
|
+
"outlet": {
|
|
2634
|
+
"entrypoint": "src/server/subcommands/outlet.js",
|
|
2635
|
+
"export": "runGeneratorSubcommand",
|
|
2636
|
+
"description": "Inject a ShellOutlet block into an existing Vue page/component.",
|
|
2637
|
+
"optionNames": [
|
|
2638
|
+
"file",
|
|
2639
|
+
"host",
|
|
2640
|
+
"position",
|
|
2641
|
+
"mode"
|
|
2642
|
+
],
|
|
2643
|
+
"requiredOptionNames": [
|
|
2644
|
+
"file",
|
|
2645
|
+
"host"
|
|
2646
|
+
]
|
|
2346
2647
|
}
|
|
2347
2648
|
},
|
|
2348
2649
|
"apiSummary": {
|
|
@@ -2361,7 +2662,7 @@
|
|
|
2361
2662
|
"mutations": {
|
|
2362
2663
|
"dependencies": {
|
|
2363
2664
|
"runtime": {
|
|
2364
|
-
"@jskit-ai/users-web": "0.1.
|
|
2665
|
+
"@jskit-ai/users-web": "0.1.38"
|
|
2365
2666
|
},
|
|
2366
2667
|
"dev": {}
|
|
2367
2668
|
},
|
|
@@ -2385,7 +2686,7 @@
|
|
|
2385
2686
|
"file": "src/placement.js",
|
|
2386
2687
|
"position": "bottom",
|
|
2387
2688
|
"skipIfContains": "jskit:ui-generator.page.menu:${option:surface|lower}:${option:directory-prefix|path}:${option:name|path}",
|
|
2388
|
-
"value": "\n// jskit:ui-generator.page.menu:${option:surface|lower}:${option:directory-prefix|path}:${option:name|path}\n{\n addPlacement({\n id: \"ui-generator.page.${option:name|kebab}.menu\",\n host: \"__JSKIT_UI_MENU_PLACEMENT_HOST__\",\n position: \"__JSKIT_UI_MENU_PLACEMENT_POSITION__\",\n surfaces: [\"${option:surface|lower}\"],\n order: 155,\n componentToken: \"
|
|
2689
|
+
"value": "\n// jskit:ui-generator.page.menu:${option:surface|lower}:${option:directory-prefix|path}:${option:name|path}\n{\n addPlacement({\n id: \"ui-generator.page.${option:name|kebab}.menu\",\n host: \"__JSKIT_UI_MENU_PLACEMENT_HOST__\",\n position: \"__JSKIT_UI_MENU_PLACEMENT_POSITION__\",\n surfaces: [\"${option:surface|lower}\"],\n order: 155,\n componentToken: \"__JSKIT_UI_MENU_COMPONENT_TOKEN__\",\n props: {\n label: \"${option:name|trim}\",\n surface: \"${option:surface|lower}\",\n workspaceSuffix: \"__JSKIT_UI_MENU_WORKSPACE_SUFFIX__\",\n nonWorkspaceSuffix: \"__JSKIT_UI_MENU_NON_WORKSPACE_SUFFIX__\",\n__JSKIT_UI_MENU_TO_PROP_LINE__ },\n when: ({ auth }) => Boolean(auth?.authenticated)\n });\n}\n",
|
|
2389
2690
|
"reason": "Append generated UI page menu placement.",
|
|
2390
2691
|
"category": "ui-generator",
|
|
2391
2692
|
"id": "ui-generator-page-placement-menu-${option:name|snake}",
|
|
@@ -2398,19 +2699,197 @@
|
|
|
2398
2699
|
}
|
|
2399
2700
|
}
|
|
2400
2701
|
},
|
|
2702
|
+
{
|
|
2703
|
+
"packageId": "@jskit-ai/uploads-image-web",
|
|
2704
|
+
"version": "0.1.2",
|
|
2705
|
+
"descriptor": {
|
|
2706
|
+
"packageVersion": 1,
|
|
2707
|
+
"packageId": "@jskit-ai/uploads-image-web",
|
|
2708
|
+
"version": "0.1.2",
|
|
2709
|
+
"kind": "runtime",
|
|
2710
|
+
"description": "Reusable client-side image upload runtime with pre-upload image editing.",
|
|
2711
|
+
"dependsOn": [
|
|
2712
|
+
"@jskit-ai/uploads-runtime"
|
|
2713
|
+
],
|
|
2714
|
+
"capabilities": {
|
|
2715
|
+
"provides": [
|
|
2716
|
+
"runtime.uploads.image-web"
|
|
2717
|
+
],
|
|
2718
|
+
"requires": []
|
|
2719
|
+
},
|
|
2720
|
+
"runtime": {
|
|
2721
|
+
"server": {
|
|
2722
|
+
"providers": []
|
|
2723
|
+
},
|
|
2724
|
+
"client": {
|
|
2725
|
+
"providers": []
|
|
2726
|
+
}
|
|
2727
|
+
},
|
|
2728
|
+
"metadata": {
|
|
2729
|
+
"client": {
|
|
2730
|
+
"optimizeDeps": {
|
|
2731
|
+
"include": [
|
|
2732
|
+
"@uppy/core",
|
|
2733
|
+
"@uppy/dashboard",
|
|
2734
|
+
"@uppy/image-editor",
|
|
2735
|
+
"@uppy/compressor",
|
|
2736
|
+
"@uppy/xhr-upload"
|
|
2737
|
+
]
|
|
2738
|
+
}
|
|
2739
|
+
},
|
|
2740
|
+
"apiSummary": {
|
|
2741
|
+
"surfaces": [
|
|
2742
|
+
{
|
|
2743
|
+
"subpath": "./client",
|
|
2744
|
+
"summary": "Exports reusable image upload client runtime helpers."
|
|
2745
|
+
},
|
|
2746
|
+
{
|
|
2747
|
+
"subpath": "./client/composables/createImageUploadRuntime",
|
|
2748
|
+
"summary": "Exports the reusable image upload runtime factory."
|
|
2749
|
+
},
|
|
2750
|
+
{
|
|
2751
|
+
"subpath": "./client/composables/createManagedImageAssetRuntime",
|
|
2752
|
+
"summary": "Exports the managed image asset runtime factory for upload and optional delete flows."
|
|
2753
|
+
},
|
|
2754
|
+
{
|
|
2755
|
+
"subpath": "./client/styles",
|
|
2756
|
+
"summary": "Exports Uppy CSS side effects for image upload UIs."
|
|
2757
|
+
},
|
|
2758
|
+
{
|
|
2759
|
+
"subpath": "./shared",
|
|
2760
|
+
"summary": "Exports shared image upload defaults."
|
|
2761
|
+
}
|
|
2762
|
+
],
|
|
2763
|
+
"containerTokens": {
|
|
2764
|
+
"server": [],
|
|
2765
|
+
"client": []
|
|
2766
|
+
}
|
|
2767
|
+
}
|
|
2768
|
+
},
|
|
2769
|
+
"mutations": {
|
|
2770
|
+
"dependencies": {
|
|
2771
|
+
"runtime": {
|
|
2772
|
+
"@jskit-ai/uploads-runtime": "0.1.2",
|
|
2773
|
+
"@uppy/compressor": "^3.1.0",
|
|
2774
|
+
"@uppy/core": "^5.2.0",
|
|
2775
|
+
"@uppy/dashboard": "^5.1.1",
|
|
2776
|
+
"@uppy/image-editor": "^4.2.0",
|
|
2777
|
+
"@uppy/xhr-upload": "^5.1.1"
|
|
2778
|
+
},
|
|
2779
|
+
"dev": {}
|
|
2780
|
+
},
|
|
2781
|
+
"packageJson": {
|
|
2782
|
+
"scripts": {}
|
|
2783
|
+
},
|
|
2784
|
+
"procfile": {},
|
|
2785
|
+
"files": [],
|
|
2786
|
+
"text": []
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
},
|
|
2790
|
+
{
|
|
2791
|
+
"packageId": "@jskit-ai/uploads-runtime",
|
|
2792
|
+
"version": "0.1.2",
|
|
2793
|
+
"descriptor": {
|
|
2794
|
+
"packageVersion": 1,
|
|
2795
|
+
"packageId": "@jskit-ai/uploads-runtime",
|
|
2796
|
+
"version": "0.1.2",
|
|
2797
|
+
"kind": "runtime",
|
|
2798
|
+
"description": "Reusable upload runtime primitives for multipart parsing, policy validation, and blob storage.",
|
|
2799
|
+
"dependsOn": [
|
|
2800
|
+
"@jskit-ai/kernel"
|
|
2801
|
+
],
|
|
2802
|
+
"capabilities": {
|
|
2803
|
+
"provides": [
|
|
2804
|
+
"runtime.uploads"
|
|
2805
|
+
],
|
|
2806
|
+
"requires": []
|
|
2807
|
+
},
|
|
2808
|
+
"runtime": {
|
|
2809
|
+
"server": {
|
|
2810
|
+
"providerEntrypoint": "src/server/providers/UploadsRuntimeServiceProvider.js",
|
|
2811
|
+
"providers": [
|
|
2812
|
+
{
|
|
2813
|
+
"entrypoint": "src/server/providers/UploadsRuntimeServiceProvider.js",
|
|
2814
|
+
"export": "UploadsRuntimeServiceProvider"
|
|
2815
|
+
}
|
|
2816
|
+
]
|
|
2817
|
+
},
|
|
2818
|
+
"client": {
|
|
2819
|
+
"providers": []
|
|
2820
|
+
}
|
|
2821
|
+
},
|
|
2822
|
+
"metadata": {
|
|
2823
|
+
"apiSummary": {
|
|
2824
|
+
"surfaces": [
|
|
2825
|
+
{
|
|
2826
|
+
"subpath": "./server/providers/UploadsRuntimeServiceProvider",
|
|
2827
|
+
"summary": "Exports uploads runtime server provider."
|
|
2828
|
+
},
|
|
2829
|
+
{
|
|
2830
|
+
"subpath": "./server/multipart/registerMultipartSupport",
|
|
2831
|
+
"summary": "Exports Fastify multipart registration helper."
|
|
2832
|
+
},
|
|
2833
|
+
{
|
|
2834
|
+
"subpath": "./server/multipart/readSingleMultipartFile",
|
|
2835
|
+
"summary": "Exports a convenience helper for single-file multipart uploads."
|
|
2836
|
+
},
|
|
2837
|
+
{
|
|
2838
|
+
"subpath": "./server/policy/uploadPolicy",
|
|
2839
|
+
"summary": "Exports upload policy normalization and stream validation helpers."
|
|
2840
|
+
},
|
|
2841
|
+
{
|
|
2842
|
+
"subpath": "./server/storage/createUploadStorageService",
|
|
2843
|
+
"summary": "Exports raw upload storage helpers backed by jskit.storage."
|
|
2844
|
+
},
|
|
2845
|
+
{
|
|
2846
|
+
"subpath": "./shared",
|
|
2847
|
+
"summary": "Exports shared upload policy defaults and normalization helpers."
|
|
2848
|
+
},
|
|
2849
|
+
{
|
|
2850
|
+
"subpath": "./client",
|
|
2851
|
+
"summary": "Exports no client runtime API today (reserved client entrypoint)."
|
|
2852
|
+
}
|
|
2853
|
+
],
|
|
2854
|
+
"containerTokens": {
|
|
2855
|
+
"server": [
|
|
2856
|
+
"runtime.uploads"
|
|
2857
|
+
],
|
|
2858
|
+
"client": []
|
|
2859
|
+
}
|
|
2860
|
+
}
|
|
2861
|
+
},
|
|
2862
|
+
"mutations": {
|
|
2863
|
+
"dependencies": {
|
|
2864
|
+
"runtime": {
|
|
2865
|
+
"@fastify/multipart": "^9.4.0",
|
|
2866
|
+
"@jskit-ai/kernel": "0.1.24"
|
|
2867
|
+
},
|
|
2868
|
+
"dev": {}
|
|
2869
|
+
},
|
|
2870
|
+
"packageJson": {
|
|
2871
|
+
"scripts": {}
|
|
2872
|
+
},
|
|
2873
|
+
"procfile": {},
|
|
2874
|
+
"files": [],
|
|
2875
|
+
"text": []
|
|
2876
|
+
}
|
|
2877
|
+
}
|
|
2878
|
+
},
|
|
2401
2879
|
{
|
|
2402
2880
|
"packageId": "@jskit-ai/users-core",
|
|
2403
|
-
"version": "0.1.
|
|
2881
|
+
"version": "0.1.33",
|
|
2404
2882
|
"descriptor": {
|
|
2405
2883
|
"packageVersion": 1,
|
|
2406
2884
|
"packageId": "@jskit-ai/users-core",
|
|
2407
|
-
"version": "0.1.
|
|
2885
|
+
"version": "0.1.33",
|
|
2408
2886
|
"kind": "runtime",
|
|
2409
2887
|
"description": "Users/workspace domain runtime plus HTTP routes for workspace, account, and console features.",
|
|
2410
2888
|
"dependsOn": [
|
|
2411
2889
|
"@jskit-ai/auth-core",
|
|
2412
2890
|
"@jskit-ai/database-runtime",
|
|
2413
2891
|
"@jskit-ai/http-runtime",
|
|
2892
|
+
"@jskit-ai/uploads-runtime",
|
|
2414
2893
|
"@jskit-ai/storage-runtime"
|
|
2415
2894
|
],
|
|
2416
2895
|
"capabilities": {
|
|
@@ -2422,6 +2901,7 @@
|
|
|
2422
2901
|
"runtime.actions",
|
|
2423
2902
|
"runtime.database",
|
|
2424
2903
|
"runtime.storage",
|
|
2904
|
+
"runtime.uploads",
|
|
2425
2905
|
"auth.provider",
|
|
2426
2906
|
"auth.policy"
|
|
2427
2907
|
]
|
|
@@ -2495,7 +2975,7 @@
|
|
|
2495
2975
|
{
|
|
2496
2976
|
"method": "GET",
|
|
2497
2977
|
"path": "/api/w/:workspaceSlug/roles",
|
|
2498
|
-
"summary": "Get
|
|
2978
|
+
"summary": "Get role catalog by workspace slug."
|
|
2499
2979
|
},
|
|
2500
2980
|
{
|
|
2501
2981
|
"method": "GET",
|
|
@@ -2598,11 +3078,11 @@
|
|
|
2598
3078
|
"mutations": {
|
|
2599
3079
|
"dependencies": {
|
|
2600
3080
|
"runtime": {
|
|
2601
|
-
"@jskit-ai/auth-core": "0.1.
|
|
2602
|
-
"@jskit-ai/database-runtime": "0.1.
|
|
2603
|
-
"@jskit-ai/http-runtime": "0.1.
|
|
2604
|
-
"@jskit-ai/kernel": "0.1.
|
|
2605
|
-
"@
|
|
3081
|
+
"@jskit-ai/auth-core": "0.1.23",
|
|
3082
|
+
"@jskit-ai/database-runtime": "0.1.24",
|
|
3083
|
+
"@jskit-ai/http-runtime": "0.1.23",
|
|
3084
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
3085
|
+
"@jskit-ai/uploads-runtime": "0.1.2",
|
|
2606
3086
|
"@fastify/type-provider-typebox": "^6.1.0",
|
|
2607
3087
|
"typebox": "^1.0.81"
|
|
2608
3088
|
},
|
|
@@ -2690,12 +3170,12 @@
|
|
|
2690
3170
|
"id": "users-core-app-owned-user-settings-fields"
|
|
2691
3171
|
},
|
|
2692
3172
|
{
|
|
2693
|
-
"from": "templates/config/
|
|
2694
|
-
"to": "config/
|
|
3173
|
+
"from": "templates/config/roles.js",
|
|
3174
|
+
"to": "config/roles.js",
|
|
2695
3175
|
"preserveOnRemove": true,
|
|
2696
|
-
"reason": "Install app-owned
|
|
3176
|
+
"reason": "Install app-owned role catalog in a dedicated config file.",
|
|
2697
3177
|
"category": "users-core",
|
|
2698
|
-
"id": "users-core-app-owned-
|
|
3178
|
+
"id": "users-core-app-owned-role-catalog-config"
|
|
2699
3179
|
}
|
|
2700
3180
|
],
|
|
2701
3181
|
"text": [
|
|
@@ -2762,11 +3242,11 @@
|
|
|
2762
3242
|
"op": "append-text",
|
|
2763
3243
|
"file": "config/public.js",
|
|
2764
3244
|
"position": "top",
|
|
2765
|
-
"skipIfContains": "import {
|
|
2766
|
-
"value": "import {
|
|
2767
|
-
"reason": "Load app-owned
|
|
3245
|
+
"skipIfContains": "import { roleCatalog } from \"./roles.js\";",
|
|
3246
|
+
"value": "import { roleCatalog } from \"./roles.js\";\n",
|
|
3247
|
+
"reason": "Load app-owned role catalog from dedicated config file.",
|
|
2768
3248
|
"category": "users-core",
|
|
2769
|
-
"id": "users-core-
|
|
3249
|
+
"id": "users-core-role-catalog-public-import"
|
|
2770
3250
|
},
|
|
2771
3251
|
{
|
|
2772
3252
|
"op": "append-text",
|
|
@@ -2829,11 +3309,11 @@
|
|
|
2829
3309
|
"op": "append-text",
|
|
2830
3310
|
"file": "config/public.js",
|
|
2831
3311
|
"position": "bottom",
|
|
2832
|
-
"skipIfContains": "config.
|
|
2833
|
-
"value": "\nconfig.
|
|
2834
|
-
"reason": "Bind app-owned
|
|
3312
|
+
"skipIfContains": "config.roleCatalog = roleCatalog;",
|
|
3313
|
+
"value": "\nconfig.roleCatalog = roleCatalog;\n",
|
|
3314
|
+
"reason": "Bind app-owned role catalog onto public config.",
|
|
2835
3315
|
"category": "users-core",
|
|
2836
|
-
"id": "users-core-
|
|
3316
|
+
"id": "users-core-role-catalog-public-config"
|
|
2837
3317
|
},
|
|
2838
3318
|
{
|
|
2839
3319
|
"op": "append-text",
|
|
@@ -2881,16 +3361,17 @@
|
|
|
2881
3361
|
},
|
|
2882
3362
|
{
|
|
2883
3363
|
"packageId": "@jskit-ai/users-web",
|
|
2884
|
-
"version": "0.1.
|
|
3364
|
+
"version": "0.1.38",
|
|
2885
3365
|
"descriptor": {
|
|
2886
3366
|
"packageVersion": 1,
|
|
2887
3367
|
"packageId": "@jskit-ai/users-web",
|
|
2888
|
-
"version": "0.1.
|
|
3368
|
+
"version": "0.1.38",
|
|
2889
3369
|
"kind": "runtime",
|
|
2890
3370
|
"description": "Users web module: workspace selector shell element plus workspace/profile/members UI elements.",
|
|
2891
3371
|
"dependsOn": [
|
|
2892
3372
|
"@jskit-ai/http-runtime",
|
|
2893
3373
|
"@jskit-ai/shell-web",
|
|
3374
|
+
"@jskit-ai/uploads-image-web",
|
|
2894
3375
|
"@jskit-ai/users-core"
|
|
2895
3376
|
],
|
|
2896
3377
|
"capabilities": {
|
|
@@ -2916,17 +3397,6 @@
|
|
|
2916
3397
|
}
|
|
2917
3398
|
},
|
|
2918
3399
|
"metadata": {
|
|
2919
|
-
"client": {
|
|
2920
|
-
"optimizeDeps": {
|
|
2921
|
-
"include": [
|
|
2922
|
-
"@uppy/core",
|
|
2923
|
-
"@uppy/dashboard",
|
|
2924
|
-
"@uppy/image-editor",
|
|
2925
|
-
"@uppy/compressor",
|
|
2926
|
-
"@uppy/xhr-upload"
|
|
2927
|
-
]
|
|
2928
|
-
}
|
|
2929
|
-
},
|
|
2930
3400
|
"apiSummary": {
|
|
2931
3401
|
"surfaces": [
|
|
2932
3402
|
{
|
|
@@ -3149,16 +3619,12 @@
|
|
|
3149
3619
|
"runtime": {
|
|
3150
3620
|
"@tanstack/vue-query": "5.92.12",
|
|
3151
3621
|
"@mdi/js": "^7.4.47",
|
|
3152
|
-
"@
|
|
3153
|
-
"@
|
|
3154
|
-
"@
|
|
3155
|
-
"@
|
|
3156
|
-
"@
|
|
3157
|
-
"@jskit-ai/
|
|
3158
|
-
"@jskit-ai/realtime": "0.1.21",
|
|
3159
|
-
"@jskit-ai/kernel": "0.1.22",
|
|
3160
|
-
"@jskit-ai/shell-web": "0.1.21",
|
|
3161
|
-
"@jskit-ai/users-core": "0.1.31",
|
|
3622
|
+
"@jskit-ai/http-runtime": "0.1.23",
|
|
3623
|
+
"@jskit-ai/realtime": "0.1.23",
|
|
3624
|
+
"@jskit-ai/kernel": "0.1.24",
|
|
3625
|
+
"@jskit-ai/shell-web": "0.1.23",
|
|
3626
|
+
"@jskit-ai/uploads-image-web": "0.1.2",
|
|
3627
|
+
"@jskit-ai/users-core": "0.1.33",
|
|
3162
3628
|
"vuetify": "^4.0.0"
|
|
3163
3629
|
},
|
|
3164
3630
|
"dev": {}
|