@igstack/app-catalog-backend-core 6.9.0 → 6.10.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/db/syncAppCatalog.mjs +1 -0
- package/dist/db/syncAppCatalog.mjs.map +1 -1
- package/dist/generated/prisma/internal/class.mjs +4 -4
- package/dist/generated/prisma/internal/class.mjs.map +1 -1
- package/dist/generated/prisma/internal/prismaNamespace.d.mts +1 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.mts.map +1 -1
- package/dist/generated/prisma/models/DbApprovalMethod.d.mts +1 -1
- package/dist/generated/prisma/models/DbAsset.d.mts +1 -1
- package/dist/generated/prisma/models/DbFeedback.d.mts +1 -1
- package/dist/generated/prisma/models/DbResource.d.mts +44 -1
- package/dist/generated/prisma/models/DbResource.d.mts.map +1 -1
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +2 -2
- package/dist/modules/appCatalog/service.d.mts +0 -1
- package/dist/modules/appCatalog/service.d.mts.map +1 -1
- package/dist/modules/appCatalog/service.mjs +2 -0
- package/dist/modules/appCatalog/service.mjs.map +1 -1
- package/dist/modules/feedback/feedbackRouter.mjs.map +1 -1
- package/dist/modules/feedback/service.d.mts +8 -1
- package/dist/modules/feedback/service.d.mts.map +1 -1
- package/dist/modules/feedback/service.mjs +12 -3
- package/dist/modules/feedback/service.mjs.map +1 -1
- package/dist/types/common/appCatalogTypes.d.mts +26 -1
- package/dist/types/common/appCatalogTypes.d.mts.map +1 -1
- package/package.json +4 -4
- package/prisma/schema.prisma +2 -0
- package/src/__tests__/rowToResourceClaims.test.ts +48 -0
- package/src/__tests__/stripHiddenText.test.ts +111 -0
- package/src/db/syncAppCatalog.ts +1 -0
- package/src/generated/prisma/internal/class.ts +4 -4
- package/src/generated/prisma/internal/prismaNamespace.ts +1 -0
- package/src/generated/prisma/internal/prismaNamespaceBrowser.ts +1 -0
- package/src/generated/prisma/models/DbResource.ts +45 -1
- package/src/index.ts +1 -0
- package/src/modules/appCatalog/service.ts +6 -1
- package/src/modules/feedback/feedbackRouter.ts +4 -2
- package/src/modules/feedback/service.ts +20 -2
- package/src/prisma-json-types.d.ts +3 -0
- package/src/types/common/appCatalogTypes.ts +26 -0
|
@@ -100,6 +100,7 @@ export type DbResourceCountAggregateOutputType = {
|
|
|
100
100
|
urlIssues: number
|
|
101
101
|
tiers:PrismaJson.TierVariant[]
|
|
102
102
|
quickJumps:PrismaJson.QuickJump[]
|
|
103
|
+
claims:PrismaJson.Claim[]
|
|
103
104
|
childrenLabel: number
|
|
104
105
|
parentSlug: number
|
|
105
106
|
tier: number
|
|
@@ -191,6 +192,7 @@ export type DbResourceCountAggregateInputType = {
|
|
|
191
192
|
urlIssues?: true
|
|
192
193
|
tiers?: true
|
|
193
194
|
quickJumps?: true
|
|
195
|
+
claims?: true
|
|
194
196
|
childrenLabel?: true
|
|
195
197
|
parentSlug?: true
|
|
196
198
|
tier?: true
|
|
@@ -303,6 +305,7 @@ export type DbResourceGroupByOutputType = {
|
|
|
303
305
|
urlIssues: string[]
|
|
304
306
|
tiers:PrismaJson.TierVariant[] | null
|
|
305
307
|
quickJumps:PrismaJson.QuickJump[] | null
|
|
308
|
+
claims:PrismaJson.Claim[] | null
|
|
306
309
|
childrenLabel: string | null
|
|
307
310
|
parentSlug: string | null
|
|
308
311
|
tier: string | null
|
|
@@ -363,6 +366,7 @@ export type DbResourceWhereInput = {
|
|
|
363
366
|
urlIssues?: Prisma.StringNullableListFilter<"DbResource">
|
|
364
367
|
tiers?: Prisma.JsonNullableFilter<"DbResource">
|
|
365
368
|
quickJumps?: Prisma.JsonNullableFilter<"DbResource">
|
|
369
|
+
claims?: Prisma.JsonNullableFilter<"DbResource">
|
|
366
370
|
childrenLabel?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
367
371
|
parentSlug?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
368
372
|
tier?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
@@ -406,6 +410,7 @@ export type DbResourceOrderByWithRelationInput = {
|
|
|
406
410
|
urlIssues?: Prisma.SortOrder
|
|
407
411
|
tiers?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
408
412
|
quickJumps?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
413
|
+
claims?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
409
414
|
childrenLabel?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
410
415
|
parentSlug?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
411
416
|
tier?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
@@ -452,6 +457,7 @@ export type DbResourceWhereUniqueInput = Prisma.AtLeast<{
|
|
|
452
457
|
urlIssues?: Prisma.StringNullableListFilter<"DbResource">
|
|
453
458
|
tiers?: Prisma.JsonNullableFilter<"DbResource">
|
|
454
459
|
quickJumps?: Prisma.JsonNullableFilter<"DbResource">
|
|
460
|
+
claims?: Prisma.JsonNullableFilter<"DbResource">
|
|
455
461
|
childrenLabel?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
456
462
|
parentSlug?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
457
463
|
tier?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
@@ -495,6 +501,7 @@ export type DbResourceOrderByWithAggregationInput = {
|
|
|
495
501
|
urlIssues?: Prisma.SortOrder
|
|
496
502
|
tiers?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
497
503
|
quickJumps?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
504
|
+
claims?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
498
505
|
childrenLabel?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
499
506
|
parentSlug?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
500
507
|
tier?: Prisma.SortOrderInput | Prisma.SortOrder
|
|
@@ -540,6 +547,7 @@ export type DbResourceScalarWhereWithAggregatesInput = {
|
|
|
540
547
|
urlIssues?: Prisma.StringNullableListFilter<"DbResource">
|
|
541
548
|
tiers?: Prisma.JsonNullableWithAggregatesFilter<"DbResource">
|
|
542
549
|
quickJumps?: Prisma.JsonNullableWithAggregatesFilter<"DbResource">
|
|
550
|
+
claims?: Prisma.JsonNullableWithAggregatesFilter<"DbResource">
|
|
543
551
|
childrenLabel?: Prisma.StringNullableWithAggregatesFilter<"DbResource"> | string | null
|
|
544
552
|
parentSlug?: Prisma.StringNullableWithAggregatesFilter<"DbResource"> | string | null
|
|
545
553
|
tier?: Prisma.StringNullableWithAggregatesFilter<"DbResource"> | string | null
|
|
@@ -579,6 +587,7 @@ export type DbResourceCreateInput = {
|
|
|
579
587
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
580
588
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
581
589
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
590
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
582
591
|
childrenLabel?: string | null
|
|
583
592
|
tier?: string | null
|
|
584
593
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -621,6 +630,7 @@ export type DbResourceUncheckedCreateInput = {
|
|
|
621
630
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
622
631
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
623
632
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
633
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
624
634
|
childrenLabel?: string | null
|
|
625
635
|
parentSlug?: string | null
|
|
626
636
|
tier?: string | null
|
|
@@ -663,6 +673,7 @@ export type DbResourceUpdateInput = {
|
|
|
663
673
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
664
674
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
665
675
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
676
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
666
677
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
667
678
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
668
679
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -705,6 +716,7 @@ export type DbResourceUncheckedUpdateInput = {
|
|
|
705
716
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
706
717
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
707
718
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
719
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
708
720
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
709
721
|
parentSlug?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
710
722
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
@@ -747,6 +759,7 @@ export type DbResourceCreateManyInput = {
|
|
|
747
759
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
748
760
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
749
761
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
762
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
750
763
|
childrenLabel?: string | null
|
|
751
764
|
parentSlug?: string | null
|
|
752
765
|
tier?: string | null
|
|
@@ -786,6 +799,7 @@ export type DbResourceUpdateManyMutationInput = {
|
|
|
786
799
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
787
800
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
788
801
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
802
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
789
803
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
790
804
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
791
805
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -824,6 +838,7 @@ export type DbResourceUncheckedUpdateManyInput = {
|
|
|
824
838
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
825
839
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
826
840
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
841
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
827
842
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
828
843
|
parentSlug?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
829
844
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
@@ -878,6 +893,7 @@ export type DbResourceCountOrderByAggregateInput = {
|
|
|
878
893
|
urlIssues?: Prisma.SortOrder
|
|
879
894
|
tiers?: Prisma.SortOrder
|
|
880
895
|
quickJumps?: Prisma.SortOrder
|
|
896
|
+
claims?: Prisma.SortOrder
|
|
881
897
|
childrenLabel?: Prisma.SortOrder
|
|
882
898
|
parentSlug?: Prisma.SortOrder
|
|
883
899
|
tier?: Prisma.SortOrder
|
|
@@ -1123,6 +1139,7 @@ export type DbResourceCreateWithoutChildrenInput = {
|
|
|
1123
1139
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1124
1140
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1125
1141
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1142
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1126
1143
|
childrenLabel?: string | null
|
|
1127
1144
|
tier?: string | null
|
|
1128
1145
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1164,6 +1181,7 @@ export type DbResourceUncheckedCreateWithoutChildrenInput = {
|
|
|
1164
1181
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1165
1182
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1166
1183
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1184
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1167
1185
|
childrenLabel?: string | null
|
|
1168
1186
|
parentSlug?: string | null
|
|
1169
1187
|
tier?: string | null
|
|
@@ -1210,6 +1228,7 @@ export type DbResourceCreateWithoutParentInput = {
|
|
|
1210
1228
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1211
1229
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1212
1230
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1231
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1213
1232
|
childrenLabel?: string | null
|
|
1214
1233
|
tier?: string | null
|
|
1215
1234
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1251,6 +1270,7 @@ export type DbResourceUncheckedCreateWithoutParentInput = {
|
|
|
1251
1270
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1252
1271
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1253
1272
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1273
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1254
1274
|
childrenLabel?: string | null
|
|
1255
1275
|
tier?: string | null
|
|
1256
1276
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1313,6 +1333,7 @@ export type DbResourceUpdateWithoutChildrenInput = {
|
|
|
1313
1333
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1314
1334
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1315
1335
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1336
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1316
1337
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1317
1338
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1318
1339
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -1354,6 +1375,7 @@ export type DbResourceUncheckedUpdateWithoutChildrenInput = {
|
|
|
1354
1375
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1355
1376
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1356
1377
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1378
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1357
1379
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1358
1380
|
parentSlug?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1359
1381
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
@@ -1414,6 +1436,7 @@ export type DbResourceScalarWhereInput = {
|
|
|
1414
1436
|
urlIssues?: Prisma.StringNullableListFilter<"DbResource">
|
|
1415
1437
|
tiers?: Prisma.JsonNullableFilter<"DbResource">
|
|
1416
1438
|
quickJumps?: Prisma.JsonNullableFilter<"DbResource">
|
|
1439
|
+
claims?: Prisma.JsonNullableFilter<"DbResource">
|
|
1417
1440
|
childrenLabel?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
1418
1441
|
parentSlug?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
1419
1442
|
tier?: Prisma.StringNullableFilter<"DbResource"> | string | null
|
|
@@ -1453,6 +1476,7 @@ export type DbResourceCreateWithoutFeedbackInput = {
|
|
|
1453
1476
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1454
1477
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1455
1478
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1479
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1456
1480
|
childrenLabel?: string | null
|
|
1457
1481
|
tier?: string | null
|
|
1458
1482
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1494,6 +1518,7 @@ export type DbResourceUncheckedCreateWithoutFeedbackInput = {
|
|
|
1494
1518
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1495
1519
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1496
1520
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1521
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1497
1522
|
childrenLabel?: string | null
|
|
1498
1523
|
parentSlug?: string | null
|
|
1499
1524
|
tier?: string | null
|
|
@@ -1551,6 +1576,7 @@ export type DbResourceUpdateWithoutFeedbackInput = {
|
|
|
1551
1576
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1552
1577
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1553
1578
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1579
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1554
1580
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1555
1581
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1556
1582
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -1592,6 +1618,7 @@ export type DbResourceUncheckedUpdateWithoutFeedbackInput = {
|
|
|
1592
1618
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1593
1619
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1594
1620
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1621
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1595
1622
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1596
1623
|
parentSlug?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1597
1624
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
@@ -1633,6 +1660,7 @@ export type DbResourceCreateWithoutSourceRefsInput = {
|
|
|
1633
1660
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1634
1661
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1635
1662
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1663
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1636
1664
|
childrenLabel?: string | null
|
|
1637
1665
|
tier?: string | null
|
|
1638
1666
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1674,6 +1702,7 @@ export type DbResourceUncheckedCreateWithoutSourceRefsInput = {
|
|
|
1674
1702
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1675
1703
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1676
1704
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1705
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1677
1706
|
childrenLabel?: string | null
|
|
1678
1707
|
parentSlug?: string | null
|
|
1679
1708
|
tier?: string | null
|
|
@@ -1731,6 +1760,7 @@ export type DbResourceUpdateWithoutSourceRefsInput = {
|
|
|
1731
1760
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1732
1761
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1733
1762
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1763
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1734
1764
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1735
1765
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1736
1766
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -1772,6 +1802,7 @@ export type DbResourceUncheckedUpdateWithoutSourceRefsInput = {
|
|
|
1772
1802
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1773
1803
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1774
1804
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1805
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1775
1806
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1776
1807
|
parentSlug?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1777
1808
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
@@ -1813,6 +1844,7 @@ export type DbResourceCreateManyParentInput = {
|
|
|
1813
1844
|
urlIssues?: Prisma.DbResourceCreateurlIssuesInput | string[]
|
|
1814
1845
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1815
1846
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1847
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1816
1848
|
childrenLabel?: string | null
|
|
1817
1849
|
tier?: string | null
|
|
1818
1850
|
aliases?: Prisma.DbResourceCreatealiasesInput | string[]
|
|
@@ -1851,6 +1883,7 @@ export type DbResourceUpdateWithoutParentInput = {
|
|
|
1851
1883
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1852
1884
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1853
1885
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1886
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1854
1887
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1855
1888
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1856
1889
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -1892,6 +1925,7 @@ export type DbResourceUncheckedUpdateWithoutParentInput = {
|
|
|
1892
1925
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1893
1926
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1894
1927
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1928
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1895
1929
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1896
1930
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1897
1931
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -1933,6 +1967,7 @@ export type DbResourceUncheckedUpdateManyWithoutParentInput = {
|
|
|
1933
1967
|
urlIssues?: Prisma.DbResourceUpdateurlIssuesInput | string[]
|
|
1934
1968
|
tiers?:PrismaJson.TierVariant[] | Prisma.NullableJsonNullValueInput
|
|
1935
1969
|
quickJumps?:PrismaJson.QuickJump[] | Prisma.NullableJsonNullValueInput
|
|
1970
|
+
claims?:PrismaJson.Claim[] | Prisma.NullableJsonNullValueInput
|
|
1936
1971
|
childrenLabel?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1937
1972
|
tier?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
|
|
1938
1973
|
aliases?: Prisma.DbResourceUpdatealiasesInput | string[]
|
|
@@ -2020,6 +2055,7 @@ export type DbResourceSelect<ExtArgs extends runtime.Types.Extensions.InternalAr
|
|
|
2020
2055
|
urlIssues?: boolean
|
|
2021
2056
|
tiers?: boolean
|
|
2022
2057
|
quickJumps?: boolean
|
|
2058
|
+
claims?: boolean
|
|
2023
2059
|
childrenLabel?: boolean
|
|
2024
2060
|
parentSlug?: boolean
|
|
2025
2061
|
tier?: boolean
|
|
@@ -2064,6 +2100,7 @@ export type DbResourceSelectCreateManyAndReturn<ExtArgs extends runtime.Types.Ex
|
|
|
2064
2100
|
urlIssues?: boolean
|
|
2065
2101
|
tiers?: boolean
|
|
2066
2102
|
quickJumps?: boolean
|
|
2103
|
+
claims?: boolean
|
|
2067
2104
|
childrenLabel?: boolean
|
|
2068
2105
|
parentSlug?: boolean
|
|
2069
2106
|
tier?: boolean
|
|
@@ -2104,6 +2141,7 @@ export type DbResourceSelectUpdateManyAndReturn<ExtArgs extends runtime.Types.Ex
|
|
|
2104
2141
|
urlIssues?: boolean
|
|
2105
2142
|
tiers?: boolean
|
|
2106
2143
|
quickJumps?: boolean
|
|
2144
|
+
claims?: boolean
|
|
2107
2145
|
childrenLabel?: boolean
|
|
2108
2146
|
parentSlug?: boolean
|
|
2109
2147
|
tier?: boolean
|
|
@@ -2144,6 +2182,7 @@ export type DbResourceSelectScalar = {
|
|
|
2144
2182
|
urlIssues?: boolean
|
|
2145
2183
|
tiers?: boolean
|
|
2146
2184
|
quickJumps?: boolean
|
|
2185
|
+
claims?: boolean
|
|
2147
2186
|
childrenLabel?: boolean
|
|
2148
2187
|
parentSlug?: boolean
|
|
2149
2188
|
tier?: boolean
|
|
@@ -2159,7 +2198,7 @@ export type DbResourceSelectScalar = {
|
|
|
2159
2198
|
updatedAt?: boolean
|
|
2160
2199
|
}
|
|
2161
2200
|
|
|
2162
|
-
export type DbResourceOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "slug" | "type" | "displayName" | "abbreviation" | "nicknames" | "description" | "access" | "teams" | "accessRequest" | "notes" | "background" | "tags" | "appUrl" | "links" | "iconName" | "screenshotIds" | "deprecated" | "aiPrompt" | "aiMemory" | "urlIssues" | "tiers" | "quickJumps" | "childrenLabel" | "parentSlug" | "tier" | "aliases" | "ownerPersonSlug" | "approverSlugs" | "accessComments" | "extra" | "lastCheckedAt" | "nextCheckAfter" | "lastContentChangeAt" | "createdAt" | "updatedAt", ExtArgs["result"]["dbResource"]>
|
|
2201
|
+
export type DbResourceOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "slug" | "type" | "displayName" | "abbreviation" | "nicknames" | "description" | "access" | "teams" | "accessRequest" | "notes" | "background" | "tags" | "appUrl" | "links" | "iconName" | "screenshotIds" | "deprecated" | "aiPrompt" | "aiMemory" | "urlIssues" | "tiers" | "quickJumps" | "claims" | "childrenLabel" | "parentSlug" | "tier" | "aliases" | "ownerPersonSlug" | "approverSlugs" | "accessComments" | "extra" | "lastCheckedAt" | "nextCheckAfter" | "lastContentChangeAt" | "createdAt" | "updatedAt", ExtArgs["result"]["dbResource"]>
|
|
2163
2202
|
export type DbResourceInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
|
2164
2203
|
sourceRefs?: boolean | Prisma.DbResource$sourceRefsArgs<ExtArgs>
|
|
2165
2204
|
feedback?: boolean | Prisma.DbResource$feedbackArgs<ExtArgs>
|
|
@@ -2224,6 +2263,10 @@ export type $DbResourcePayload<ExtArgs extends runtime.Types.Extensions.Internal
|
|
|
2224
2263
|
* [QuickJump[]]
|
|
2225
2264
|
*/
|
|
2226
2265
|
quickJumps:PrismaJson.QuickJump[] | null
|
|
2266
|
+
/**
|
|
2267
|
+
* [Claim[]] Statements the card text is built from; see Claim in appCatalogTypes.
|
|
2268
|
+
*/
|
|
2269
|
+
claims:PrismaJson.Claim[] | null
|
|
2227
2270
|
childrenLabel: string | null
|
|
2228
2271
|
parentSlug: string | null
|
|
2229
2272
|
tier: string | null
|
|
@@ -2690,6 +2733,7 @@ export interface DbResourceFieldRefs {
|
|
|
2690
2733
|
readonly urlIssues: Prisma.FieldRef<"DbResource", 'String[]'>
|
|
2691
2734
|
readonly tiers: Prisma.FieldRef<"DbResource", 'Json'>
|
|
2692
2735
|
readonly quickJumps: Prisma.FieldRef<"DbResource", 'Json'>
|
|
2736
|
+
readonly claims: Prisma.FieldRef<"DbResource", 'Json'>
|
|
2693
2737
|
readonly childrenLabel: Prisma.FieldRef<"DbResource", 'String'>
|
|
2694
2738
|
readonly parentSlug: Prisma.FieldRef<"DbResource", 'String'>
|
|
2695
2739
|
readonly tier: Prisma.FieldRef<"DbResource", 'String'>
|
package/src/index.ts
CHANGED
|
@@ -128,7 +128,7 @@ export async function getApprovalMethodsFromPrisma(): Promise<
|
|
|
128
128
|
})
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
function rowToResource(row: ResourceRowWithSourceRefs): Resource {
|
|
131
|
+
export function rowToResource(row: ResourceRowWithSourceRefs): Resource {
|
|
132
132
|
const accessRequest =
|
|
133
133
|
row.accessRequest as unknown as Resource['accessRequest']
|
|
134
134
|
const teams = (row.teams as unknown as string[] | null) ?? []
|
|
@@ -172,6 +172,10 @@ function rowToResource(row: ResourceRowWithSourceRefs): Resource {
|
|
|
172
172
|
row.quickJumps == null
|
|
173
173
|
? undefined
|
|
174
174
|
: (row.quickJumps as unknown as Resource['quickJumps'])
|
|
175
|
+
const claims =
|
|
176
|
+
row.claims == null
|
|
177
|
+
? undefined
|
|
178
|
+
: (row.claims as unknown as Resource['claims'])
|
|
175
179
|
const freshness = computeFreshness({
|
|
176
180
|
lastCheckedAt: row.lastCheckedAt ? row.lastCheckedAt.toISOString() : null,
|
|
177
181
|
nextCheckAfter: row.nextCheckAfter
|
|
@@ -205,6 +209,7 @@ function rowToResource(row: ResourceRowWithSourceRefs): Resource {
|
|
|
205
209
|
urlIssues,
|
|
206
210
|
tiers,
|
|
207
211
|
quickJumps,
|
|
212
|
+
claims,
|
|
208
213
|
childrenLabel: row.childrenLabel ?? undefined,
|
|
209
214
|
// Fields from former SubResource
|
|
210
215
|
parentSlug: row.parentSlug ?? undefined,
|
|
@@ -69,8 +69,10 @@ export function createFeedbackRouter() {
|
|
|
69
69
|
.object({
|
|
70
70
|
resourceSlug: z.string().optional(),
|
|
71
71
|
subject: z.string().max(MAX_SUBJECT_LENGTH).optional(),
|
|
72
|
-
// Both optional
|
|
73
|
-
//
|
|
72
|
+
// Both optional: a note can be words, screenshots or both, and a
|
|
73
|
+
// catalog-level ask may carry only its subject. The entry's input asks
|
|
74
|
+
// for words or an image, but the API still stores an empty note as a
|
|
75
|
+
// bare flag, which is what older rows are.
|
|
74
76
|
body: z.string().max(MAX_BODY_LENGTH).optional(),
|
|
75
77
|
attachmentIds: z.array(z.string()).max(MAX_ATTACHMENTS).optional(),
|
|
76
78
|
})
|
|
@@ -134,6 +134,23 @@ export async function listMyFeedback(
|
|
|
134
134
|
return rows.map((row) => toView(row, actor))
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Strips invisible characters from text that AI agents will read.
|
|
139
|
+
*
|
|
140
|
+
* Removes zero-width characters (except ZWJ, needed for emoji), directional marks/overrides,
|
|
141
|
+
* and Unicode tag characters that could hide instructions or disguise links.
|
|
142
|
+
*/
|
|
143
|
+
export function stripHiddenText(text: string): string {
|
|
144
|
+
// Zero-width: U+200B, U+200C, U+2060, U+FEFF
|
|
145
|
+
// Directional: U+200E-U+200F, U+202A-U+202E, U+2066-U+2069
|
|
146
|
+
// Tag chars: U+E0000-U+E007F
|
|
147
|
+
// Preserves U+200D (ZWJ) for emoji
|
|
148
|
+
return text.replace(
|
|
149
|
+
/[\u{200B}\u{200C}\u{200E}-\u{200F}\u{202A}-\u{202E}\u{2060}\u{2066}-\u{2069}\u{E0000}-\u{E007F}\u{FEFF}]/gu,
|
|
150
|
+
'',
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
|
|
137
154
|
export class FeedbackError extends Error {
|
|
138
155
|
constructor(
|
|
139
156
|
readonly reason:
|
|
@@ -151,7 +168,8 @@ export class FeedbackError extends Error {
|
|
|
151
168
|
|
|
152
169
|
function normaliseBody(body: string | undefined | null): string | null {
|
|
153
170
|
if (body === undefined || body === null) return null
|
|
154
|
-
const
|
|
171
|
+
const stripped = stripHiddenText(body)
|
|
172
|
+
const trimmed = stripped.trim()
|
|
155
173
|
// A bare flag is a valid signal, so empty is stored as absent rather than refused.
|
|
156
174
|
return trimmed ? trimmed.slice(0, MAX_BODY_LENGTH) : null
|
|
157
175
|
}
|
|
@@ -198,7 +216,7 @@ export async function addFeedback(
|
|
|
198
216
|
resourceId,
|
|
199
217
|
subject: resourceId
|
|
200
218
|
? null
|
|
201
|
-
: subject
|
|
219
|
+
: stripHiddenText(subject!).trim().slice(0, MAX_SUBJECT_LENGTH),
|
|
202
220
|
authorHash: actor.hash,
|
|
203
221
|
authorAlias: actor.alias,
|
|
204
222
|
body: normaliseBody(body),
|
|
@@ -35,6 +35,9 @@ declare global {
|
|
|
35
35
|
// DbResource.quickJumps - Deep links that take one typed identifier
|
|
36
36
|
type QuickJump = import('./types/index').QuickJump
|
|
37
37
|
|
|
38
|
+
// DbResource.claims - Validated descriptions shown on Documentation tab
|
|
39
|
+
type Claim = import('./types/index').Claim
|
|
40
|
+
|
|
38
41
|
// DbResource.extra - Arbitrary extra data
|
|
39
42
|
type SubResourceExtra = Record<string, unknown>
|
|
40
43
|
}
|
|
@@ -154,6 +154,30 @@ export interface Freshness {
|
|
|
154
154
|
isStale: boolean
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
/**
|
|
158
|
+
* One plain statement about an entry, kept so the card can say why it says what it
|
|
159
|
+
* says. Active claims are an input the card text must honour, and they win over a
|
|
160
|
+
* source that contradicts them. Review claims are recorded but not yet verified;
|
|
161
|
+
* they never drive card text. Archived claims are kept with the reason they
|
|
162
|
+
* stopped applying, and are ignored.
|
|
163
|
+
*/
|
|
164
|
+
export interface Claim {
|
|
165
|
+
/** One plain statement about the app, phrased as a fact. */
|
|
166
|
+
text: string
|
|
167
|
+
/** ISO date the claim was recorded. */
|
|
168
|
+
addedAt: string
|
|
169
|
+
/** Where it came from: `feedback:<id>`, a person or team, or a URL. */
|
|
170
|
+
origin?: string
|
|
171
|
+
/**
|
|
172
|
+
* `active` = verified, drives card text; `review` = recorded but not yet
|
|
173
|
+
* verified, never drives card text; `archived` = stopped applying.
|
|
174
|
+
*/
|
|
175
|
+
status: 'active' | 'review' | 'archived'
|
|
176
|
+
/** Required when status is 'archived'. */
|
|
177
|
+
archiveReason?: string
|
|
178
|
+
archivedAt?: string
|
|
179
|
+
}
|
|
180
|
+
|
|
157
181
|
/**
|
|
158
182
|
* Resource entry in the catalog (application or sub-resource).
|
|
159
183
|
* Unified model: applications have no parentSlug; sub-resources have parentSlug.
|
|
@@ -209,6 +233,8 @@ export interface Resource {
|
|
|
209
233
|
tiers?: TierVariant[]
|
|
210
234
|
/** Deep links that take one typed identifier — see {@link QuickJump}. */
|
|
211
235
|
quickJumps?: QuickJump[]
|
|
236
|
+
/** Why the card says what it says — see {@link Claim}. */
|
|
237
|
+
claims?: Claim[]
|
|
212
238
|
/**
|
|
213
239
|
* What this resource's children are called, as a plural noun ("Accounts",
|
|
214
240
|
* "Namespaces", "Databases"). Set on the PARENT, not the children.
|