@igstack/app-catalog-backend-core 0.3.1-alpha-20260405015231 → 0.4.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.d.mts +3 -5
- package/dist/db/syncAppCatalog.d.mts.map +1 -1
- package/dist/db/syncAppCatalog.mjs +49 -57
- package/dist/db/syncAppCatalog.mjs.map +1 -1
- package/dist/db/tableSyncMagazine.d.mts +3 -7
- package/dist/db/tableSyncMagazine.d.mts.map +1 -1
- package/dist/db/tableSyncMagazine.mjs +3 -7
- package/dist/db/tableSyncMagazine.mjs.map +1 -1
- package/dist/db/tableSyncPrismaAdapter.mjs.map +1 -1
- package/dist/generated/prisma/client.mjs.map +1 -1
- package/dist/generated/prisma/internal/class.d.mts +5 -17
- package/dist/generated/prisma/internal/class.d.mts.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 +46 -132
- package/dist/generated/prisma/internal/prismaNamespace.d.mts.map +1 -1
- package/dist/generated/prisma/models/DbResource.d.mts +2433 -0
- package/dist/generated/prisma/models/DbResource.d.mts.map +1 -0
- package/dist/generated/prisma/models/SourceReference.d.mts +90 -90
- package/dist/generated/prisma/models/SourceReference.d.mts.map +1 -1
- package/dist/generated/prisma/models.d.mts +2 -3
- package/dist/index.d.mts +3 -4
- package/dist/modules/appCatalog/checkLinks.mjs +1 -1
- package/dist/modules/appCatalog/checkLinks.mjs.map +1 -1
- package/dist/modules/appCatalog/service.mjs +26 -34
- package/dist/modules/appCatalog/service.mjs.map +1 -1
- package/dist/modules/assets/screenshotRestController.mjs +2 -2
- package/dist/modules/assets/screenshotRestController.mjs.map +1 -1
- package/dist/modules/assets/syncAssets.mjs +4 -4
- package/dist/modules/assets/syncAssets.mjs.map +1 -1
- package/dist/modules/lighthouseKeeper/tools.mjs +1 -1
- package/dist/modules/lighthouseKeeper/tools.mjs.map +1 -1
- package/dist/server/controller.d.mts +2 -2
- package/dist/server/controller.mjs.map +1 -1
- package/dist/types/common/appCatalogTypes.d.mts +26 -9
- package/dist/types/common/appCatalogTypes.d.mts.map +1 -1
- package/dist/types/common/approvalMethodTypes.d.mts +5 -1
- package/dist/types/common/approvalMethodTypes.d.mts.map +1 -1
- package/package.json +3 -3
- package/prisma/schema.prisma +53 -62
- package/src/db/syncAppCatalog.ts +68 -73
- package/src/db/tableSyncMagazine.ts +3 -7
- package/src/db/tableSyncPrismaAdapter.ts +1 -1
- package/src/generated/prisma/browser.ts +2 -7
- package/src/generated/prisma/client.ts +2 -7
- package/src/generated/prisma/internal/class.ts +8 -18
- package/src/generated/prisma/internal/prismaNamespace.ts +43 -131
- package/src/generated/prisma/internal/prismaNamespaceBrowser.ts +7 -20
- package/src/generated/prisma/models/DbResource.ts +2701 -0
- package/src/generated/prisma/models/SourceReference.ts +89 -89
- package/src/generated/prisma/models.ts +1 -2
- package/src/index.ts +1 -1
- package/src/modules/appCatalog/checkLinks.ts +7 -7
- package/src/modules/appCatalog/service.ts +51 -62
- package/src/modules/assets/screenshotRestController.ts +2 -2
- package/src/modules/assets/screenshotRouter.ts +2 -2
- package/src/modules/assets/syncAssets.ts +4 -4
- package/src/modules/lighthouseKeeper/tools.ts +1 -1
- package/src/prisma-json-types.d.ts +8 -8
- package/src/server/controller.ts +2 -2
- package/src/types/common/appCatalogTypes.ts +28 -9
- package/src/types/common/approvalMethodTypes.ts +6 -0
- package/src/types/index.ts +0 -1
- package/dist/generated/prisma/models/DbAppForCatalog.d.mts +0 -1778
- package/dist/generated/prisma/models/DbAppForCatalog.d.mts.map +0 -1
- package/dist/generated/prisma/models/DbSubResource.d.mts +0 -1468
- package/dist/generated/prisma/models/DbSubResource.d.mts.map +0 -1
- package/dist/types/common/subResourceTypes.d.mts +0 -24
- package/dist/types/common/subResourceTypes.d.mts.map +0 -1
- package/src/generated/prisma/models/DbAppForCatalog.ts +0 -2014
- package/src/generated/prisma/models/DbSubResource.ts +0 -1692
- package/src/types/common/subResourceTypes.ts +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceReference.d.mts","names":[],"sources":["../../../../src/generated/prisma/models/SourceReference.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SourceReference.d.mts","names":[],"sources":["../../../../src/generated/prisma/models/SourceReference.ts"],"mappings":"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"}
|
|
@@ -6,10 +6,9 @@ import { $DbPersonPayload, AggregateDbPerson, DbPerson$membershipsArgs, DbPerson
|
|
|
6
6
|
import { $DbGroupPayload, AggregateDbGroup, DbGroup$membershipsArgs, DbGroupAggregateArgs, DbGroupCountAggregateInputType, DbGroupCountAggregateOutputType, DbGroupCountArgs, DbGroupCountOrderByAggregateInput, DbGroupCountOutputTypeCountMembershipsArgs, DbGroupCountOutputTypeDefaultArgs, DbGroupCountOutputTypeSelect, DbGroupCreateArgs, DbGroupCreateInput, DbGroupCreateManyAndReturnArgs, DbGroupCreateManyArgs, DbGroupCreateManyInput, DbGroupCreateNestedOneWithoutMembershipsInput, DbGroupCreateOrConnectWithoutMembershipsInput, DbGroupCreateWithoutMembershipsInput, DbGroupDefaultArgs, DbGroupDelegate, DbGroupDeleteArgs, DbGroupDeleteManyArgs, DbGroupFieldRefs, DbGroupFindFirstArgs, DbGroupFindFirstOrThrowArgs, DbGroupFindManyArgs, DbGroupFindUniqueArgs, DbGroupFindUniqueOrThrowArgs, DbGroupGroupByArgs, DbGroupGroupByOutputType, DbGroupInclude, DbGroupMaxAggregateInputType, DbGroupMaxAggregateOutputType, DbGroupMaxOrderByAggregateInput, DbGroupMinAggregateInputType, DbGroupMinAggregateOutputType, DbGroupMinOrderByAggregateInput, DbGroupOmit, DbGroupOrderByWithAggregationInput, DbGroupOrderByWithRelationInput, DbGroupScalarRelationFilter, DbGroupScalarWhereWithAggregatesInput, DbGroupSelect, DbGroupSelectCreateManyAndReturn, DbGroupSelectUpdateManyAndReturn, DbGroupUncheckedCreateInput, DbGroupUncheckedCreateWithoutMembershipsInput, DbGroupUncheckedUpdateInput, DbGroupUncheckedUpdateManyInput, DbGroupUncheckedUpdateWithoutMembershipsInput, DbGroupUpdateArgs, DbGroupUpdateInput, DbGroupUpdateManyAndReturnArgs, DbGroupUpdateManyArgs, DbGroupUpdateManyMutationInput, DbGroupUpdateOneRequiredWithoutMembershipsNestedInput, DbGroupUpdateToOneWithWhereWithoutMembershipsInput, DbGroupUpdateWithoutMembershipsInput, DbGroupUpsertArgs, DbGroupUpsertWithoutMembershipsInput, DbGroupWhereInput, DbGroupWhereUniqueInput, GetDbGroupAggregateType, Prisma__DbGroupClient } from "./models/DbGroup.mjs";
|
|
7
7
|
import { $DbGroupMembershipPayload, AggregateDbGroupMembership, DbGroupMembershipAggregateArgs, DbGroupMembershipAvgAggregateInputType, DbGroupMembershipAvgAggregateOutputType, DbGroupMembershipAvgOrderByAggregateInput, DbGroupMembershipCountAggregateInputType, DbGroupMembershipCountAggregateOutputType, DbGroupMembershipCountArgs, DbGroupMembershipCountOrderByAggregateInput, DbGroupMembershipCreateArgs, DbGroupMembershipCreateInput, DbGroupMembershipCreateManyAndReturnArgs, DbGroupMembershipCreateManyArgs, DbGroupMembershipCreateManyGroupInput, DbGroupMembershipCreateManyGroupInputEnvelope, DbGroupMembershipCreateManyInput, DbGroupMembershipCreateManyPersonInput, DbGroupMembershipCreateManyPersonInputEnvelope, DbGroupMembershipCreateNestedManyWithoutGroupInput, DbGroupMembershipCreateNestedManyWithoutPersonInput, DbGroupMembershipCreateOrConnectWithoutGroupInput, DbGroupMembershipCreateOrConnectWithoutPersonInput, DbGroupMembershipCreateWithoutGroupInput, DbGroupMembershipCreateWithoutPersonInput, DbGroupMembershipDelegate, DbGroupMembershipDeleteArgs, DbGroupMembershipDeleteManyArgs, DbGroupMembershipFieldRefs, DbGroupMembershipFindFirstArgs, DbGroupMembershipFindFirstOrThrowArgs, DbGroupMembershipFindManyArgs, DbGroupMembershipFindUniqueArgs, DbGroupMembershipFindUniqueOrThrowArgs, DbGroupMembershipGroupByArgs, DbGroupMembershipGroupByOutputType, DbGroupMembershipGroupSlugPersonSlugCompoundUniqueInput, DbGroupMembershipInclude, DbGroupMembershipIncludeCreateManyAndReturn, DbGroupMembershipIncludeUpdateManyAndReturn, DbGroupMembershipListRelationFilter, DbGroupMembershipMaxAggregateInputType, DbGroupMembershipMaxAggregateOutputType, DbGroupMembershipMaxOrderByAggregateInput, DbGroupMembershipMinAggregateInputType, DbGroupMembershipMinAggregateOutputType, DbGroupMembershipMinOrderByAggregateInput, DbGroupMembershipOmit, DbGroupMembershipOrderByRelationAggregateInput, DbGroupMembershipOrderByWithAggregationInput, DbGroupMembershipOrderByWithRelationInput, DbGroupMembershipScalarWhereInput, DbGroupMembershipScalarWhereWithAggregatesInput, DbGroupMembershipSelect, DbGroupMembershipSelectCreateManyAndReturn, DbGroupMembershipSelectUpdateManyAndReturn, DbGroupMembershipSumAggregateInputType, DbGroupMembershipSumAggregateOutputType, DbGroupMembershipSumOrderByAggregateInput, DbGroupMembershipUncheckedCreateInput, DbGroupMembershipUncheckedCreateNestedManyWithoutGroupInput, DbGroupMembershipUncheckedCreateNestedManyWithoutPersonInput, DbGroupMembershipUncheckedCreateWithoutGroupInput, DbGroupMembershipUncheckedCreateWithoutPersonInput, DbGroupMembershipUncheckedUpdateInput, DbGroupMembershipUncheckedUpdateManyInput, DbGroupMembershipUncheckedUpdateManyWithoutGroupInput, DbGroupMembershipUncheckedUpdateManyWithoutGroupNestedInput, DbGroupMembershipUncheckedUpdateManyWithoutPersonInput, DbGroupMembershipUncheckedUpdateManyWithoutPersonNestedInput, DbGroupMembershipUncheckedUpdateWithoutGroupInput, DbGroupMembershipUncheckedUpdateWithoutPersonInput, DbGroupMembershipUpdateArgs, DbGroupMembershipUpdateInput, DbGroupMembershipUpdateManyAndReturnArgs, DbGroupMembershipUpdateManyArgs, DbGroupMembershipUpdateManyMutationInput, DbGroupMembershipUpdateManyWithWhereWithoutGroupInput, DbGroupMembershipUpdateManyWithWhereWithoutPersonInput, DbGroupMembershipUpdateManyWithoutGroupNestedInput, DbGroupMembershipUpdateManyWithoutPersonNestedInput, DbGroupMembershipUpdateWithWhereUniqueWithoutGroupInput, DbGroupMembershipUpdateWithWhereUniqueWithoutPersonInput, DbGroupMembershipUpdateWithoutGroupInput, DbGroupMembershipUpdateWithoutPersonInput, DbGroupMembershipUpsertArgs, DbGroupMembershipUpsertWithWhereUniqueWithoutGroupInput, DbGroupMembershipUpsertWithWhereUniqueWithoutPersonInput, DbGroupMembershipWhereInput, DbGroupMembershipWhereUniqueInput, GetDbGroupMembershipAggregateType, IntFieldUpdateOperationsInput, Prisma__DbGroupMembershipClient } from "./models/DbGroupMembership.mjs";
|
|
8
8
|
import { $DbApprovalMethodPayload, AggregateDbApprovalMethod, DbApprovalMethodAggregateArgs, DbApprovalMethodCountAggregateInputType, DbApprovalMethodCountAggregateOutputType, DbApprovalMethodCountArgs, DbApprovalMethodCountOrderByAggregateInput, DbApprovalMethodCreateArgs, DbApprovalMethodCreateInput, DbApprovalMethodCreateManyAndReturnArgs, DbApprovalMethodCreateManyArgs, DbApprovalMethodCreateManyInput, DbApprovalMethodCreatedeprecatedAliasesInput, DbApprovalMethodDelegate, DbApprovalMethodDeleteArgs, DbApprovalMethodDeleteManyArgs, DbApprovalMethodFieldRefs, DbApprovalMethodFindFirstArgs, DbApprovalMethodFindFirstOrThrowArgs, DbApprovalMethodFindManyArgs, DbApprovalMethodFindUniqueArgs, DbApprovalMethodFindUniqueOrThrowArgs, DbApprovalMethodGroupByArgs, DbApprovalMethodGroupByOutputType, DbApprovalMethodMaxAggregateInputType, DbApprovalMethodMaxAggregateOutputType, DbApprovalMethodMaxOrderByAggregateInput, DbApprovalMethodMinAggregateInputType, DbApprovalMethodMinAggregateOutputType, DbApprovalMethodMinOrderByAggregateInput, DbApprovalMethodOmit, DbApprovalMethodOrderByWithAggregationInput, DbApprovalMethodOrderByWithRelationInput, DbApprovalMethodScalarWhereWithAggregatesInput, DbApprovalMethodSelect, DbApprovalMethodSelectCreateManyAndReturn, DbApprovalMethodSelectUpdateManyAndReturn, DbApprovalMethodTypeDisplayNameCompoundUniqueInput, DbApprovalMethodUncheckedCreateInput, DbApprovalMethodUncheckedUpdateInput, DbApprovalMethodUncheckedUpdateManyInput, DbApprovalMethodUpdateArgs, DbApprovalMethodUpdateInput, DbApprovalMethodUpdateManyAndReturnArgs, DbApprovalMethodUpdateManyArgs, DbApprovalMethodUpdateManyMutationInput, DbApprovalMethodUpdatedeprecatedAliasesInput, DbApprovalMethodUpsertArgs, DbApprovalMethodWhereInput, DbApprovalMethodWhereUniqueInput, EnumApprovalMethodTypeFieldUpdateOperationsInput, GetDbApprovalMethodAggregateType, Prisma__DbApprovalMethodClient, StringNullableListFilter } from "./models/DbApprovalMethod.mjs";
|
|
9
|
-
import { $
|
|
10
|
-
import { $DbSubResourcePayload, AggregateDbSubResource, DbSubResourceAggregateArgs, DbSubResourceCountAggregateInputType, DbSubResourceCountAggregateOutputType, DbSubResourceCountArgs, DbSubResourceCountOrderByAggregateInput, DbSubResourceCreateArgs, DbSubResourceCreateInput, DbSubResourceCreateManyAndReturnArgs, DbSubResourceCreateManyAppInput, DbSubResourceCreateManyAppInputEnvelope, DbSubResourceCreateManyArgs, DbSubResourceCreateManyInput, DbSubResourceCreateNestedManyWithoutAppInput, DbSubResourceCreateOrConnectWithoutAppInput, DbSubResourceCreateWithoutAppInput, DbSubResourceCreateaccessMaintainerGroupSlugsInput, DbSubResourceCreatealiasesInput, DbSubResourceDelegate, DbSubResourceDeleteArgs, DbSubResourceDeleteManyArgs, DbSubResourceFieldRefs, DbSubResourceFindFirstArgs, DbSubResourceFindFirstOrThrowArgs, DbSubResourceFindManyArgs, DbSubResourceFindUniqueArgs, DbSubResourceFindUniqueOrThrowArgs, DbSubResourceGroupByArgs, DbSubResourceGroupByOutputType, DbSubResourceInclude, DbSubResourceIncludeCreateManyAndReturn, DbSubResourceIncludeUpdateManyAndReturn, DbSubResourceListRelationFilter, DbSubResourceMaxAggregateInputType, DbSubResourceMaxAggregateOutputType, DbSubResourceMaxOrderByAggregateInput, DbSubResourceMinAggregateInputType, DbSubResourceMinAggregateOutputType, DbSubResourceMinOrderByAggregateInput, DbSubResourceOmit, DbSubResourceOrderByRelationAggregateInput, DbSubResourceOrderByWithAggregationInput, DbSubResourceOrderByWithRelationInput, DbSubResourceScalarWhereInput, DbSubResourceScalarWhereWithAggregatesInput, DbSubResourceSelect, DbSubResourceSelectCreateManyAndReturn, DbSubResourceSelectUpdateManyAndReturn, DbSubResourceUncheckedCreateInput, DbSubResourceUncheckedCreateNestedManyWithoutAppInput, DbSubResourceUncheckedCreateWithoutAppInput, DbSubResourceUncheckedUpdateInput, DbSubResourceUncheckedUpdateManyInput, DbSubResourceUncheckedUpdateManyWithoutAppInput, DbSubResourceUncheckedUpdateManyWithoutAppNestedInput, DbSubResourceUncheckedUpdateWithoutAppInput, DbSubResourceUpdateArgs, DbSubResourceUpdateInput, DbSubResourceUpdateManyAndReturnArgs, DbSubResourceUpdateManyArgs, DbSubResourceUpdateManyMutationInput, DbSubResourceUpdateManyWithWhereWithoutAppInput, DbSubResourceUpdateManyWithoutAppNestedInput, DbSubResourceUpdateWithWhereUniqueWithoutAppInput, DbSubResourceUpdateWithoutAppInput, DbSubResourceUpdateaccessMaintainerGroupSlugsInput, DbSubResourceUpdatealiasesInput, DbSubResourceUpsertArgs, DbSubResourceUpsertWithWhereUniqueWithoutAppInput, DbSubResourceWhereInput, DbSubResourceWhereUniqueInput, GetDbSubResourceAggregateType, Prisma__DbSubResourceClient } from "./models/DbSubResource.mjs";
|
|
9
|
+
import { $DbResourcePayload, AggregateDbResource, DbResource$childrenArgs, DbResource$parentArgs, DbResource$sourceRefsArgs, DbResourceAggregateArgs, DbResourceCountAggregateInputType, DbResourceCountAggregateOutputType, DbResourceCountArgs, DbResourceCountOrderByAggregateInput, DbResourceCountOutputTypeCountChildrenArgs, DbResourceCountOutputTypeCountSourceRefsArgs, DbResourceCountOutputTypeDefaultArgs, DbResourceCountOutputTypeSelect, DbResourceCreateArgs, DbResourceCreateInput, DbResourceCreateManyAndReturnArgs, DbResourceCreateManyArgs, DbResourceCreateManyInput, DbResourceCreateManyParentInput, DbResourceCreateManyParentInputEnvelope, DbResourceCreateNestedManyWithoutParentInput, DbResourceCreateNestedOneWithoutChildrenInput, DbResourceCreateNestedOneWithoutSourceRefsInput, DbResourceCreateOrConnectWithoutChildrenInput, DbResourceCreateOrConnectWithoutParentInput, DbResourceCreateOrConnectWithoutSourceRefsInput, DbResourceCreateWithoutChildrenInput, DbResourceCreateWithoutParentInput, DbResourceCreateWithoutSourceRefsInput, DbResourceCreateaccessMaintainerGroupSlugsInput, DbResourceCreatealiasesInput, DbResourceCreatenicknamesInput, DbResourceCreatescreenshotIdsInput, DbResourceCreatetagsInput, DbResourceCreateteamsInput, DbResourceCreateurlIssuesInput, DbResourceDefaultArgs, DbResourceDelegate, DbResourceDeleteArgs, DbResourceDeleteManyArgs, DbResourceFieldRefs, DbResourceFindFirstArgs, DbResourceFindFirstOrThrowArgs, DbResourceFindManyArgs, DbResourceFindUniqueArgs, DbResourceFindUniqueOrThrowArgs, DbResourceGroupByArgs, DbResourceGroupByOutputType, DbResourceInclude, DbResourceIncludeCreateManyAndReturn, DbResourceIncludeUpdateManyAndReturn, DbResourceListRelationFilter, DbResourceMaxAggregateInputType, DbResourceMaxAggregateOutputType, DbResourceMaxOrderByAggregateInput, DbResourceMinAggregateInputType, DbResourceMinAggregateOutputType, DbResourceMinOrderByAggregateInput, DbResourceNullableScalarRelationFilter, DbResourceOmit, DbResourceOrderByRelationAggregateInput, DbResourceOrderByWithAggregationInput, DbResourceOrderByWithRelationInput, DbResourceScalarRelationFilter, DbResourceScalarWhereInput, DbResourceScalarWhereWithAggregatesInput, DbResourceSelect, DbResourceSelectCreateManyAndReturn, DbResourceSelectUpdateManyAndReturn, DbResourceUncheckedCreateInput, DbResourceUncheckedCreateNestedManyWithoutParentInput, DbResourceUncheckedCreateWithoutChildrenInput, DbResourceUncheckedCreateWithoutParentInput, DbResourceUncheckedCreateWithoutSourceRefsInput, DbResourceUncheckedUpdateInput, DbResourceUncheckedUpdateManyInput, DbResourceUncheckedUpdateManyWithoutParentInput, DbResourceUncheckedUpdateManyWithoutParentNestedInput, DbResourceUncheckedUpdateWithoutChildrenInput, DbResourceUncheckedUpdateWithoutParentInput, DbResourceUncheckedUpdateWithoutSourceRefsInput, DbResourceUpdateArgs, DbResourceUpdateInput, DbResourceUpdateManyAndReturnArgs, DbResourceUpdateManyArgs, DbResourceUpdateManyMutationInput, DbResourceUpdateManyWithWhereWithoutParentInput, DbResourceUpdateManyWithoutParentNestedInput, DbResourceUpdateOneRequiredWithoutSourceRefsNestedInput, DbResourceUpdateOneWithoutChildrenNestedInput, DbResourceUpdateToOneWithWhereWithoutChildrenInput, DbResourceUpdateToOneWithWhereWithoutSourceRefsInput, DbResourceUpdateWithWhereUniqueWithoutParentInput, DbResourceUpdateWithoutChildrenInput, DbResourceUpdateWithoutParentInput, DbResourceUpdateWithoutSourceRefsInput, DbResourceUpdateaccessMaintainerGroupSlugsInput, DbResourceUpdatealiasesInput, DbResourceUpdatenicknamesInput, DbResourceUpdatescreenshotIdsInput, DbResourceUpdatetagsInput, DbResourceUpdateteamsInput, DbResourceUpdateurlIssuesInput, DbResourceUpsertArgs, DbResourceUpsertWithWhereUniqueWithoutParentInput, DbResourceUpsertWithoutChildrenInput, DbResourceUpsertWithoutSourceRefsInput, DbResourceWhereInput, DbResourceWhereUniqueInput, GetDbResourceAggregateType, Prisma__DbResourceClient } from "./models/DbResource.mjs";
|
|
11
10
|
import { $DbAppTagDefinitionPayload, AggregateDbAppTagDefinition, DbAppTagDefinitionAggregateArgs, DbAppTagDefinitionCountAggregateInputType, DbAppTagDefinitionCountAggregateOutputType, DbAppTagDefinitionCountArgs, DbAppTagDefinitionCountOrderByAggregateInput, DbAppTagDefinitionCreateArgs, DbAppTagDefinitionCreateInput, DbAppTagDefinitionCreateManyAndReturnArgs, DbAppTagDefinitionCreateManyArgs, DbAppTagDefinitionCreateManyInput, DbAppTagDefinitionDelegate, DbAppTagDefinitionDeleteArgs, DbAppTagDefinitionDeleteManyArgs, DbAppTagDefinitionFieldRefs, DbAppTagDefinitionFindFirstArgs, DbAppTagDefinitionFindFirstOrThrowArgs, DbAppTagDefinitionFindManyArgs, DbAppTagDefinitionFindUniqueArgs, DbAppTagDefinitionFindUniqueOrThrowArgs, DbAppTagDefinitionGroupByArgs, DbAppTagDefinitionGroupByOutputType, DbAppTagDefinitionMaxAggregateInputType, DbAppTagDefinitionMaxAggregateOutputType, DbAppTagDefinitionMaxOrderByAggregateInput, DbAppTagDefinitionMinAggregateInputType, DbAppTagDefinitionMinAggregateOutputType, DbAppTagDefinitionMinOrderByAggregateInput, DbAppTagDefinitionOmit, DbAppTagDefinitionOrderByWithAggregationInput, DbAppTagDefinitionOrderByWithRelationInput, DbAppTagDefinitionScalarWhereWithAggregatesInput, DbAppTagDefinitionSelect, DbAppTagDefinitionSelectCreateManyAndReturn, DbAppTagDefinitionSelectUpdateManyAndReturn, DbAppTagDefinitionUncheckedCreateInput, DbAppTagDefinitionUncheckedUpdateInput, DbAppTagDefinitionUncheckedUpdateManyInput, DbAppTagDefinitionUpdateArgs, DbAppTagDefinitionUpdateInput, DbAppTagDefinitionUpdateManyAndReturnArgs, DbAppTagDefinitionUpdateManyArgs, DbAppTagDefinitionUpdateManyMutationInput, DbAppTagDefinitionUpsertArgs, DbAppTagDefinitionWhereInput, DbAppTagDefinitionWhereUniqueInput, GetDbAppTagDefinitionAggregateType, Prisma__DbAppTagDefinitionClient } from "./models/DbAppTagDefinition.mjs";
|
|
12
11
|
import { $DbAssetPayload, AggregateDbAsset, BytesFieldUpdateOperationsInput, DbAssetAggregateArgs, DbAssetAvgAggregateInputType, DbAssetAvgAggregateOutputType, DbAssetAvgOrderByAggregateInput, DbAssetCountAggregateInputType, DbAssetCountAggregateOutputType, DbAssetCountArgs, DbAssetCountOrderByAggregateInput, DbAssetCreateArgs, DbAssetCreateInput, DbAssetCreateManyAndReturnArgs, DbAssetCreateManyArgs, DbAssetCreateManyInput, DbAssetDelegate, DbAssetDeleteArgs, DbAssetDeleteManyArgs, DbAssetFieldRefs, DbAssetFindFirstArgs, DbAssetFindFirstOrThrowArgs, DbAssetFindManyArgs, DbAssetFindUniqueArgs, DbAssetFindUniqueOrThrowArgs, DbAssetGroupByArgs, DbAssetGroupByOutputType, DbAssetMaxAggregateInputType, DbAssetMaxAggregateOutputType, DbAssetMaxOrderByAggregateInput, DbAssetMinAggregateInputType, DbAssetMinAggregateOutputType, DbAssetMinOrderByAggregateInput, DbAssetOmit, DbAssetOrderByWithAggregationInput, DbAssetOrderByWithRelationInput, DbAssetScalarWhereWithAggregatesInput, DbAssetSelect, DbAssetSelectCreateManyAndReturn, DbAssetSelectUpdateManyAndReturn, DbAssetSumAggregateInputType, DbAssetSumAggregateOutputType, DbAssetSumOrderByAggregateInput, DbAssetUncheckedCreateInput, DbAssetUncheckedUpdateInput, DbAssetUncheckedUpdateManyInput, DbAssetUpdateArgs, DbAssetUpdateInput, DbAssetUpdateManyAndReturnArgs, DbAssetUpdateManyArgs, DbAssetUpdateManyMutationInput, DbAssetUpsertArgs, DbAssetWhereInput, DbAssetWhereUniqueInput, EnumAssetTypeFieldUpdateOperationsInput, GetDbAssetAggregateType, NullableIntFieldUpdateOperationsInput, Prisma__DbAssetClient } from "./models/DbAsset.mjs";
|
|
13
12
|
import { $SourcePayload, AggregateSource, GetSourceAggregateType, Prisma__SourceClient, Source$referencesArgs, SourceAggregateArgs, SourceCountAggregateInputType, SourceCountAggregateOutputType, SourceCountArgs, SourceCountOrderByAggregateInput, SourceCountOutputTypeCountReferencesArgs, SourceCountOutputTypeDefaultArgs, SourceCountOutputTypeSelect, SourceCreateArgs, SourceCreateInput, SourceCreateManyAndReturnArgs, SourceCreateManyArgs, SourceCreateManyInput, SourceCreateNestedOneWithoutReferencesInput, SourceCreateOrConnectWithoutReferencesInput, SourceCreateWithoutReferencesInput, SourceDefaultArgs, SourceDelegate, SourceDeleteArgs, SourceDeleteManyArgs, SourceFieldRefs, SourceFindFirstArgs, SourceFindFirstOrThrowArgs, SourceFindManyArgs, SourceFindUniqueArgs, SourceFindUniqueOrThrowArgs, SourceGroupByArgs, SourceGroupByOutputType, SourceInclude, SourceMaxAggregateInputType, SourceMaxAggregateOutputType, SourceMaxOrderByAggregateInput, SourceMinAggregateInputType, SourceMinAggregateOutputType, SourceMinOrderByAggregateInput, SourceOmit, SourceOrderByWithAggregationInput, SourceOrderByWithRelationInput, SourceScalarRelationFilter, SourceScalarWhereWithAggregatesInput, SourceSelect, SourceSelectCreateManyAndReturn, SourceSelectUpdateManyAndReturn, SourceUncheckedCreateInput, SourceUncheckedCreateWithoutReferencesInput, SourceUncheckedUpdateInput, SourceUncheckedUpdateManyInput, SourceUncheckedUpdateWithoutReferencesInput, SourceUpdateArgs, SourceUpdateInput, SourceUpdateManyAndReturnArgs, SourceUpdateManyArgs, SourceUpdateManyMutationInput, SourceUpdateOneRequiredWithoutReferencesNestedInput, SourceUpdateToOneWithWhereWithoutReferencesInput, SourceUpdateWithoutReferencesInput, SourceUpsertArgs, SourceUpsertWithoutReferencesInput, SourceWhereInput, SourceWhereUniqueInput } from "./models/Source.mjs";
|
|
14
|
-
import { $SourceReferencePayload, AggregateSourceReference, GetSourceReferenceAggregateType, Prisma__SourceReferenceClient, SourceReferenceAggregateArgs,
|
|
13
|
+
import { $SourceReferencePayload, AggregateSourceReference, GetSourceReferenceAggregateType, Prisma__SourceReferenceClient, SourceReferenceAggregateArgs, SourceReferenceAvgAggregateInputType, SourceReferenceAvgAggregateOutputType, SourceReferenceAvgOrderByAggregateInput, SourceReferenceCountAggregateInputType, SourceReferenceCountAggregateOutputType, SourceReferenceCountArgs, SourceReferenceCountOrderByAggregateInput, SourceReferenceCreateArgs, SourceReferenceCreateInput, SourceReferenceCreateManyAndReturnArgs, SourceReferenceCreateManyArgs, SourceReferenceCreateManyInput, SourceReferenceCreateManyResourceInput, SourceReferenceCreateManyResourceInputEnvelope, SourceReferenceCreateManySourceInput, SourceReferenceCreateManySourceInputEnvelope, SourceReferenceCreateNestedManyWithoutResourceInput, SourceReferenceCreateNestedManyWithoutSourceInput, SourceReferenceCreateOrConnectWithoutResourceInput, SourceReferenceCreateOrConnectWithoutSourceInput, SourceReferenceCreateWithoutResourceInput, SourceReferenceCreateWithoutSourceInput, SourceReferenceCreateexcerptsInput, SourceReferenceDelegate, SourceReferenceDeleteArgs, SourceReferenceDeleteManyArgs, SourceReferenceFieldRefs, SourceReferenceFindFirstArgs, SourceReferenceFindFirstOrThrowArgs, SourceReferenceFindManyArgs, SourceReferenceFindUniqueArgs, SourceReferenceFindUniqueOrThrowArgs, SourceReferenceGroupByArgs, SourceReferenceGroupByOutputType, SourceReferenceInclude, SourceReferenceIncludeCreateManyAndReturn, SourceReferenceIncludeUpdateManyAndReturn, SourceReferenceListRelationFilter, SourceReferenceMaxAggregateInputType, SourceReferenceMaxAggregateOutputType, SourceReferenceMaxOrderByAggregateInput, SourceReferenceMinAggregateInputType, SourceReferenceMinAggregateOutputType, SourceReferenceMinOrderByAggregateInput, SourceReferenceOmit, SourceReferenceOrderByRelationAggregateInput, SourceReferenceOrderByWithAggregationInput, SourceReferenceOrderByWithRelationInput, SourceReferenceResourceIdUrlCompoundUniqueInput, SourceReferenceScalarWhereInput, SourceReferenceScalarWhereWithAggregatesInput, SourceReferenceSelect, SourceReferenceSelectCreateManyAndReturn, SourceReferenceSelectUpdateManyAndReturn, SourceReferenceSumAggregateInputType, SourceReferenceSumAggregateOutputType, SourceReferenceSumOrderByAggregateInput, SourceReferenceUncheckedCreateInput, SourceReferenceUncheckedCreateNestedManyWithoutResourceInput, SourceReferenceUncheckedCreateNestedManyWithoutSourceInput, SourceReferenceUncheckedCreateWithoutResourceInput, SourceReferenceUncheckedCreateWithoutSourceInput, SourceReferenceUncheckedUpdateInput, SourceReferenceUncheckedUpdateManyInput, SourceReferenceUncheckedUpdateManyWithoutResourceInput, SourceReferenceUncheckedUpdateManyWithoutResourceNestedInput, SourceReferenceUncheckedUpdateManyWithoutSourceInput, SourceReferenceUncheckedUpdateManyWithoutSourceNestedInput, SourceReferenceUncheckedUpdateWithoutResourceInput, SourceReferenceUncheckedUpdateWithoutSourceInput, SourceReferenceUpdateArgs, SourceReferenceUpdateInput, SourceReferenceUpdateManyAndReturnArgs, SourceReferenceUpdateManyArgs, SourceReferenceUpdateManyMutationInput, SourceReferenceUpdateManyWithWhereWithoutResourceInput, SourceReferenceUpdateManyWithWhereWithoutSourceInput, SourceReferenceUpdateManyWithoutResourceNestedInput, SourceReferenceUpdateManyWithoutSourceNestedInput, SourceReferenceUpdateWithWhereUniqueWithoutResourceInput, SourceReferenceUpdateWithWhereUniqueWithoutSourceInput, SourceReferenceUpdateWithoutResourceInput, SourceReferenceUpdateWithoutSourceInput, SourceReferenceUpdateexcerptsInput, SourceReferenceUpsertArgs, SourceReferenceUpsertWithWhereUniqueWithoutResourceInput, SourceReferenceUpsertWithWhereUniqueWithoutSourceInput, SourceReferenceWhereInput, SourceReferenceWhereUniqueInput } from "./models/SourceReference.mjs";
|
|
15
14
|
import { BoolFilter, BoolWithAggregatesFilter, BytesFilter, BytesWithAggregatesFilter, DateTimeFilter, DateTimeNullableFilter, DateTimeNullableWithAggregatesFilter, DateTimeWithAggregatesFilter, EnumApprovalMethodTypeFilter, EnumApprovalMethodTypeWithAggregatesFilter, EnumAssetTypeFilter, EnumAssetTypeWithAggregatesFilter, IntFilter, IntNullableFilter, IntNullableWithAggregatesFilter, IntWithAggregatesFilter, JsonFilter, JsonFilterBase, JsonNullableFilter, JsonNullableFilterBase, JsonNullableWithAggregatesFilter, JsonNullableWithAggregatesFilterBase, JsonWithAggregatesFilter, JsonWithAggregatesFilterBase, NestedBoolFilter, NestedBoolWithAggregatesFilter, NestedBytesFilter, NestedBytesWithAggregatesFilter, NestedDateTimeFilter, NestedDateTimeNullableFilter, NestedDateTimeNullableWithAggregatesFilter, NestedDateTimeWithAggregatesFilter, NestedEnumApprovalMethodTypeFilter, NestedEnumApprovalMethodTypeWithAggregatesFilter, NestedEnumAssetTypeFilter, NestedEnumAssetTypeWithAggregatesFilter, NestedFloatFilter, NestedFloatNullableFilter, NestedIntFilter, NestedIntNullableFilter, NestedIntNullableWithAggregatesFilter, NestedIntWithAggregatesFilter, NestedJsonFilter, NestedJsonFilterBase, NestedJsonNullableFilter, NestedJsonNullableFilterBase, NestedStringFilter, NestedStringNullableFilter, NestedStringNullableWithAggregatesFilter, NestedStringWithAggregatesFilter, SortOrderInput, StringFilter, StringNullableFilter, StringNullableWithAggregatesFilter, StringWithAggregatesFilter } from "./commonInputTypes.mjs";
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { AcMetaDictionary, Tag } from "./types/common/sharedTypes.mjs";
|
|
2
2
|
import { AcResourceIndexed } from "./types/common/resourceTypes.mjs";
|
|
3
|
-
import { AppAccessRequest, AppRole, ApprovalMethod, ApprovalMethodConfig, ApprovalMethodType, ApprovalUrl, CustomConfig, PersonTeamConfig, ServiceConfig } from "./types/common/approvalMethodTypes.mjs";
|
|
3
|
+
import { AccessRequest, AppAccessRequest, AppRole, ApprovalMethod, ApprovalMethodConfig, ApprovalMethodType, ApprovalUrl, CustomConfig, PersonTeamConfig, Role, ServiceConfig } from "./types/common/approvalMethodTypes.mjs";
|
|
4
4
|
import { Group, Person } from "./types/common/personGroupTypes.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import { AppApprovalMethod, AppCatalogData, AppCategory, AppForCatalog, AppTierVariant, AppVersionInfo, GroupingTagDefinition, GroupingTagValue, SourceReference, VersionInfo } from "./types/common/appCatalogTypes.mjs";
|
|
5
|
+
import { AppApprovalMethod, AppCatalogData, AppCategory, AppVersionInfo, GroupingTagDefinition, GroupingTagValue, Resource, SourceReference, TierVariant, VersionInfo } from "./types/common/appCatalogTypes.mjs";
|
|
7
6
|
import { AcEnvIndexed } from "./types/common/env/envTypes.mjs";
|
|
8
7
|
import { AcAppPageIndexed, AcAppUiIndexed } from "./types/common/app/ui/appUiTypes.mjs";
|
|
9
8
|
import { AcAppIndexed } from "./types/common/app/appTypes.mjs";
|
|
@@ -35,4 +34,4 @@ import { injectCustomScripts } from "./middleware/htmlInjection.mjs";
|
|
|
35
34
|
import { runLighthouseKeeperDemo } from "./modules/lighthouseKeeper/demo.mjs";
|
|
36
35
|
import { APP_CATALOG_AI_SYSTEM_PROMPT, createAppCatalogAITools } from "./modules/lighthouseKeeper/tools.mjs";
|
|
37
36
|
import { getBuildPipelineId, getFrontendPackageVersion, getVersionInfo } from "./utils/versionUtils.mjs";
|
|
38
|
-
export { APP_CATALOG_AI_SYSTEM_PROMPT, AcAppIndexed, AcAppPageIndexed, AcAppUiIndexed, AcAppsMeta, type AcAuthConfig, AcBackendAppDto, AcBackendAppInput, AcBackendAppUIBaseInput, AcBackendAppUIInput, AcBackendCredentialInput, AcBackendDataFreshness, AcBackendDataSourceInput, AcBackendDataSourceInputCommon, AcBackendDataSourceInputDb, AcBackendDataSourceInputKafka, AcBackendDataVersion, AcBackendDeployableInput, AcBackendDeployment, AcBackendDeploymentInput, AcBackendEnvironmentInput, AcBackendPageInput, type AcBackendProvider, AcBackendTagDescriptionDataIndexed, AcBackendTagFixedTagValue, AcBackendTagsDescriptionDataIndexed, AcBackendUiDefaultsInput, AcBackendVersionsRequestParams, AcBackendVersionsReturn, AcContextIndexed, type AcDatabaseConfig, AcDatabaseManager, AcEnvIndexed, type AcFeatureToggles, type AcLifecycleHooks, type AcLighthouseKeeperConfig, type AcMcpServerConfig, AcMetaDictionary, type AcMiddlewareOptions, type AcMiddlewareResult, AcResourceIndexed, type AcStaticControllerContract, type AcTrpcContext, type AcTrpcContextOptions, AppAccessRequest, AppApprovalMethod, AppCatalogCompanySpecificBackend, AppCatalogData, AppCategory,
|
|
37
|
+
export { APP_CATALOG_AI_SYSTEM_PROMPT, AcAppIndexed, AcAppPageIndexed, AcAppUiIndexed, AcAppsMeta, type AcAuthConfig, AcBackendAppDto, AcBackendAppInput, AcBackendAppUIBaseInput, AcBackendAppUIInput, AcBackendCredentialInput, AcBackendDataFreshness, AcBackendDataSourceInput, AcBackendDataSourceInputCommon, AcBackendDataSourceInputDb, AcBackendDataSourceInputKafka, AcBackendDataVersion, AcBackendDeployableInput, AcBackendDeployment, AcBackendDeploymentInput, AcBackendEnvironmentInput, AcBackendPageInput, type AcBackendProvider, AcBackendTagDescriptionDataIndexed, AcBackendTagFixedTagValue, AcBackendTagsDescriptionDataIndexed, AcBackendUiDefaultsInput, AcBackendVersionsRequestParams, AcBackendVersionsReturn, AcContextIndexed, type AcDatabaseConfig, AcDatabaseManager, AcEnvIndexed, type AcFeatureToggles, type AcLifecycleHooks, type AcLighthouseKeeperConfig, type AcMcpServerConfig, AcMetaDictionary, type AcMiddlewareOptions, type AcMiddlewareResult, AcResourceIndexed, type AcStaticControllerContract, type AcTrpcContext, type AcTrpcContextOptions, AccessRequest, AppAccessRequest, AppApprovalMethod, AppCatalogCompanySpecificBackend, AppCatalogData, AppCategory, AppRole, AppVersionInfo, ApprovalMethod, ApprovalMethodConfig, ApprovalMethodType, ApprovalUrl, type AssetRestControllerConfig, type AuthRouter, type BetterAuth, CustomConfig, Group, GroupingTagDefinition, GroupingTagValue, type IconRestControllerConfig, type MakeTFromPrismaModel, type MiddlewareContext, type ObjectKeys, Person, PersonTeamConfig, type Resource, Role, type ScalarFilter, type ScalarKeys, type ScreenshotRestControllerConfig, ServiceConfig, SourceReference, type SyncAppCatalogResult, type SyncAssetsConfig, TABLE_SYNC_MAGAZINE, type TRPCRouter, type TableSyncMagazine, type TableSyncMagazineModelNameKey, type TableSyncParamsPrisma, Tag, TierVariant, type UpsertIconInput, VersionInfo, checkAllLinks, connectDb, createAcMiddleware, createAcTrpcContext, createAppCatalogAITools, createAuth, createAuthRouter, createTrpcRouter, disconnectDb, getAssetByName, getBuildPipelineId, getDbClient, getFrontendPackageVersion, getVersionInfo, injectCustomScripts, printLinkCheckReport, registerAssetRestController, registerAuthRoutes, registerIconRestController, registerScreenshotRestController, runLighthouseKeeperDemo, setDbClient, staticControllerContract, syncAppCatalog, syncAssets, tableSyncPrisma, upsertIcon, upsertIcons };
|
|
@@ -79,7 +79,7 @@ function formatStatus(status, error) {
|
|
|
79
79
|
return `${status}`;
|
|
80
80
|
}
|
|
81
81
|
async function getAppsFromDb() {
|
|
82
|
-
return (await getDbClient().
|
|
82
|
+
return (await getDbClient().dbResource.findMany({ include: { sourceRefs: true } })).map((row) => {
|
|
83
83
|
const accessRequest = row.accessRequest;
|
|
84
84
|
const teams = row.teams ?? [];
|
|
85
85
|
const tags = row.tags ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkLinks.mjs","names":[],"sources":["../../../src/modules/appCatalog/checkLinks.ts"],"sourcesContent":["import type { AppForCatalog } from '../../types/common/appCatalogTypes'\nimport { getDbClient } from '../../db/client'\n\ninterface LinkCheck {\n url: string\n status: number | null\n error?: string\n appSlug: string\n linkType: 'appUrl' | 'sources' | 'accessRequest.urls'\n}\n\ninterface CheckLinksOptions {\n maxConcurrent?: number\n timeout?: number\n maxRetries?: number\n onProgress?: (result: LinkCheck) => void\n}\n\nasync function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nfunction classifyNetworkError(err: unknown): string {\n // Node's fetch wraps the real error in error.cause\n const cause =\n err instanceof Error && 'cause' in err && err.cause instanceof Error\n ? err.cause\n : null\n\n const hasCode = (obj: unknown): obj is { code: string } =>\n obj != null && typeof obj === 'object' && 'code' in obj\n\n const code =\n (hasCode(cause) ? cause.code : null) ?? (hasCode(err) ? err.code : null)\n const causeMsg = cause?.message ?? ''\n const topMsg = err instanceof Error ? err.message : String(err)\n\n if (code) {\n switch (code) {\n case 'ENOTFOUND':\n case 'EAI_AGAIN':\n return `DNS resolution failed (${code})`\n case 'ECONNREFUSED':\n return `Connection refused (${code})`\n case 'ETIMEDOUT':\n case 'ECONNRESET':\n return `Connection timeout (${code})`\n case 'ENETUNREACH':\n case 'EHOSTUNREACH':\n return `Network unreachable (${code})`\n case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':\n return `SSL certificate error: unable to verify certificate (${code})`\n case 'CERT_HAS_EXPIRED':\n return `SSL certificate error: certificate expired (${code})`\n case 'ERR_TLS_CERT_ALTNAME_INVALID':\n return `SSL certificate error: hostname mismatch (${code})`\n case 'DEPTH_ZERO_SELF_SIGNED_CERT':\n case 'SELF_SIGNED_CERT_IN_CHAIN':\n return `SSL certificate error: self-signed certificate (${code})`\n default:\n if (code.startsWith('ERR_TLS') || code.startsWith('CERT'))\n return `SSL/TLS error (${code}): ${causeMsg || topMsg}`\n return `Network error (${code}): ${causeMsg || topMsg}`\n }\n }\n\n const msg = causeMsg || topMsg\n if (/certificate/i.test(msg) || /SSL|TLS/i.test(msg))\n return `SSL/TLS error: ${msg}`\n if (/abort|timeout/i.test(msg)) return `Request timeout: ${msg}`\n if (/dns|resolve/i.test(msg)) return `DNS error: ${msg}`\n\n return causeMsg || topMsg\n}\n\nasync function checkUrlWithRetry(\n url: string,\n options: {\n timeout: number\n maxRetries: number\n },\n): Promise<{ status: number | null; error?: string }> {\n let lastError: string | undefined\n\n for (let attempt = 0; attempt <= options.maxRetries; attempt++) {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n redirect: 'manual', // Don't follow redirects\n signal: AbortSignal.timeout(options.timeout),\n })\n return { status: response.status }\n } catch (error: unknown) {\n const errorMessage = classifyNetworkError(error)\n lastError = errorMessage\n\n // Check if it's a retryable error (timeout or transient network issues)\n const isRetryable =\n errorMessage.includes('timeout') ||\n errorMessage.includes('ECONNRESET') ||\n errorMessage.includes('ETIMEDOUT') ||\n errorMessage.includes('EAI_AGAIN')\n\n if (isRetryable && attempt < options.maxRetries) {\n // Exponential backoff: 1s, 2s, 4s\n const backoffMs = 1000 * 2 ** attempt\n await sleep(backoffMs)\n continue\n }\n\n break\n }\n }\n\n return { status: null, error: lastError }\n}\n\nfunction getStatusEmoji(status: number | null): string {\n if (status === null) return '❌'\n if (status >= 200 && status < 300) return '✅'\n if (status >= 300 && status < 400) return '🔀'\n if (status === 403) return '🔒' // 403 is not an error, just forbidden\n if (status && status >= 400 && status < 500) return '⚠️'\n return '❌'\n}\n\nfunction isWorkingLink(status: number | null): boolean {\n if (status === null) return false\n // 2xx, 3xx, and 403 are considered working\n if (status >= 200 && status < 400) return true\n if (status === 403) return true\n return false\n}\n\nfunction isBrokenLink(status: number | null): boolean {\n if (status === null) return true\n // 403 is not broken\n if (status === 403) return false\n // 4xx (except 403) and 5xx are broken\n return status >= 400\n}\n\nfunction formatStatus(status: number | null, error?: string): string {\n if (status === null) {\n return `ERROR: ${error || 'Unknown error'}`\n }\n return `${status}`\n}\n\nasync function getAppsFromDb(): Promise<AppForCatalog[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbAppForCatalog.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map((row) => {\n const accessRequest =\n row.accessRequest as unknown as AppForCatalog['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as AppForCatalog['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as AppForCatalog['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as AppForCatalog['deprecated'])\n\n return {\n id: row.id,\n slug: row.slug,\n displayName: row.displayName,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n }\n })\n}\n\n/**\n * Check all links in the app catalog and return a report\n */\nexport async function checkAllLinks(options: CheckLinksOptions = {}): Promise<{\n total: number\n working: number\n broken: number\n redirects: number\n checks: LinkCheck[]\n}> {\n const {\n maxConcurrent = 10,\n timeout = 60000,\n maxRetries = 3,\n onProgress,\n } = options\n\n const apps = await getAppsFromDb()\n const checks: Omit<LinkCheck, 'status' | 'error'>[] = []\n\n // Collect all links\n for (const app of apps) {\n // Check appUrl\n if (app.appUrl) {\n checks.push({\n url: app.appUrl,\n appSlug: app.slug,\n linkType: 'appUrl',\n })\n }\n\n // Check sources\n if (app.sources && app.sources.length > 0) {\n for (const source of app.sources) {\n const url = typeof source === 'string' ? source : source.url\n checks.push({\n url,\n appSlug: app.slug,\n linkType: 'sources',\n })\n }\n }\n\n // Check accessRequest.urls\n if (app.accessRequest?.urls && app.accessRequest.urls.length > 0) {\n for (const link of app.accessRequest.urls) {\n checks.push({\n url: link.url,\n appSlug: app.slug,\n linkType: 'accessRequest.urls',\n })\n }\n }\n }\n\n // Check all links with concurrency control\n const results: LinkCheck[] = []\n const queue = [...checks]\n const inProgress = new Set<Promise<void>>()\n\n while (queue.length > 0 || inProgress.size > 0) {\n // Start new requests up to maxConcurrent\n while (queue.length > 0 && inProgress.size < maxConcurrent) {\n const check = queue.shift()!\n\n const promise = (async () => {\n const result = await checkUrlWithRetry(check.url, {\n timeout,\n maxRetries,\n })\n\n const linkCheck: LinkCheck = {\n ...check,\n status: result.status,\n error: result.error,\n }\n results.push(linkCheck)\n\n // Stream result if callback provided\n if (onProgress) {\n onProgress(linkCheck)\n }\n })()\n\n inProgress.add(promise)\n\n // Clean up when promise completes\n void promise.finally(() => {\n inProgress.delete(promise)\n })\n }\n\n // Wait for at least one to complete before continuing\n if (inProgress.size > 0) {\n await Promise.race(inProgress)\n }\n }\n\n const working = results.filter((r) => isWorkingLink(r.status))\n const broken = results.filter((r) => isBrokenLink(r.status))\n const redirects = results.filter(\n (r) => r.status && r.status >= 300 && r.status < 400,\n )\n\n return {\n total: results.length,\n working: working.length,\n broken: broken.length,\n redirects: redirects.length,\n checks: results,\n }\n}\n\n/**\n * Print a formatted report of link check results\n */\nexport function printLinkCheckReport(report: {\n total: number\n working: number\n broken: number\n redirects: number\n checks: LinkCheck[]\n}): void {\n console.log('📊 Results:\\n')\n console.log(`✅ Working links: ${report.working}`)\n console.log(`❌ Broken links: ${report.broken}`)\n console.log(`🔀 Redirects: ${report.redirects}`)\n console.log()\n\n const broken = report.checks.filter((r) => isBrokenLink(r.status))\n const redirects = report.checks.filter(\n (r) => r.status && r.status >= 300 && r.status < 400,\n )\n\n // Show broken links\n if (broken.length > 0) {\n console.log('❌ Broken Links:\\n')\n for (const link of broken) {\n console.log(\n ` ${getStatusEmoji(link.status)} [${link.appSlug}] ${link.linkType}`,\n )\n console.log(` ${link.url}`)\n console.log(` Status: ${formatStatus(link.status, link.error)}`)\n console.log()\n }\n }\n\n // Show redirects\n if (redirects.length > 0) {\n console.log('🔀 Redirects:\\n')\n for (const link of redirects) {\n console.log(\n ` ${getStatusEmoji(link.status)} [${link.appSlug}] ${link.linkType}`,\n )\n console.log(` ${link.url}`)\n console.log(` Status: ${formatStatus(link.status, link.error)}`)\n console.log()\n }\n }\n\n // Summary by app\n const appStats = new Map<\n string,\n { working: number; broken: number; total: number }\n >()\n for (const result of report.checks) {\n const stats = appStats.get(result.appSlug) || {\n working: 0,\n broken: 0,\n total: 0,\n }\n stats.total++\n if (isWorkingLink(result.status)) {\n stats.working++\n } else {\n stats.broken++\n }\n appStats.set(result.appSlug, stats)\n }\n\n const appsWithBrokenLinks = Array.from(appStats.entries())\n .filter(([_, stats]) => stats.broken > 0)\n .sort((a, b) => b[1].broken - a[1].broken)\n\n if (appsWithBrokenLinks.length > 0) {\n console.log('📱 Apps with broken links:\\n')\n for (const [appSlug, stats] of appsWithBrokenLinks) {\n console.log(` ${appSlug}: ${stats.broken}/${stats.total} broken`)\n }\n console.log()\n }\n\n if (broken.length > 0) {\n console.log(`\\n❌ Found ${broken.length} broken link(s)`)\n } else {\n console.log('\\n✅ All links are working!')\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkLinks.mjs","names":[],"sources":["../../../src/modules/appCatalog/checkLinks.ts"],"sourcesContent":["import type { Resource } from '../../types/common/appCatalogTypes'\nimport { getDbClient } from '../../db/client'\n\ninterface LinkCheck {\n url: string\n status: number | null\n error?: string\n appSlug: string\n linkType: 'appUrl' | 'sources' | 'accessRequest.urls'\n}\n\ninterface CheckLinksOptions {\n maxConcurrent?: number\n timeout?: number\n maxRetries?: number\n onProgress?: (result: LinkCheck) => void\n}\n\nasync function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nfunction classifyNetworkError(err: unknown): string {\n // Node's fetch wraps the real error in error.cause\n const cause =\n err instanceof Error && 'cause' in err && err.cause instanceof Error\n ? err.cause\n : null\n\n const hasCode = (obj: unknown): obj is { code: string } =>\n obj != null && typeof obj === 'object' && 'code' in obj\n\n const code =\n (hasCode(cause) ? cause.code : null) ?? (hasCode(err) ? err.code : null)\n const causeMsg = cause?.message ?? ''\n const topMsg = err instanceof Error ? err.message : String(err)\n\n if (code) {\n switch (code) {\n case 'ENOTFOUND':\n case 'EAI_AGAIN':\n return `DNS resolution failed (${code})`\n case 'ECONNREFUSED':\n return `Connection refused (${code})`\n case 'ETIMEDOUT':\n case 'ECONNRESET':\n return `Connection timeout (${code})`\n case 'ENETUNREACH':\n case 'EHOSTUNREACH':\n return `Network unreachable (${code})`\n case 'UNABLE_TO_VERIFY_LEAF_SIGNATURE':\n return `SSL certificate error: unable to verify certificate (${code})`\n case 'CERT_HAS_EXPIRED':\n return `SSL certificate error: certificate expired (${code})`\n case 'ERR_TLS_CERT_ALTNAME_INVALID':\n return `SSL certificate error: hostname mismatch (${code})`\n case 'DEPTH_ZERO_SELF_SIGNED_CERT':\n case 'SELF_SIGNED_CERT_IN_CHAIN':\n return `SSL certificate error: self-signed certificate (${code})`\n default:\n if (code.startsWith('ERR_TLS') || code.startsWith('CERT'))\n return `SSL/TLS error (${code}): ${causeMsg || topMsg}`\n return `Network error (${code}): ${causeMsg || topMsg}`\n }\n }\n\n const msg = causeMsg || topMsg\n if (/certificate/i.test(msg) || /SSL|TLS/i.test(msg))\n return `SSL/TLS error: ${msg}`\n if (/abort|timeout/i.test(msg)) return `Request timeout: ${msg}`\n if (/dns|resolve/i.test(msg)) return `DNS error: ${msg}`\n\n return causeMsg || topMsg\n}\n\nasync function checkUrlWithRetry(\n url: string,\n options: {\n timeout: number\n maxRetries: number\n },\n): Promise<{ status: number | null; error?: string }> {\n let lastError: string | undefined\n\n for (let attempt = 0; attempt <= options.maxRetries; attempt++) {\n try {\n const response = await fetch(url, {\n method: 'HEAD',\n redirect: 'manual', // Don't follow redirects\n signal: AbortSignal.timeout(options.timeout),\n })\n return { status: response.status }\n } catch (error: unknown) {\n const errorMessage = classifyNetworkError(error)\n lastError = errorMessage\n\n // Check if it's a retryable error (timeout or transient network issues)\n const isRetryable =\n errorMessage.includes('timeout') ||\n errorMessage.includes('ECONNRESET') ||\n errorMessage.includes('ETIMEDOUT') ||\n errorMessage.includes('EAI_AGAIN')\n\n if (isRetryable && attempt < options.maxRetries) {\n // Exponential backoff: 1s, 2s, 4s\n const backoffMs = 1000 * 2 ** attempt\n await sleep(backoffMs)\n continue\n }\n\n break\n }\n }\n\n return { status: null, error: lastError }\n}\n\nfunction getStatusEmoji(status: number | null): string {\n if (status === null) return '❌'\n if (status >= 200 && status < 300) return '✅'\n if (status >= 300 && status < 400) return '🔀'\n if (status === 403) return '🔒' // 403 is not an error, just forbidden\n if (status && status >= 400 && status < 500) return '⚠️'\n return '❌'\n}\n\nfunction isWorkingLink(status: number | null): boolean {\n if (status === null) return false\n // 2xx, 3xx, and 403 are considered working\n if (status >= 200 && status < 400) return true\n if (status === 403) return true\n return false\n}\n\nfunction isBrokenLink(status: number | null): boolean {\n if (status === null) return true\n // 403 is not broken\n if (status === 403) return false\n // 4xx (except 403) and 5xx are broken\n return status >= 400\n}\n\nfunction formatStatus(status: number | null, error?: string): string {\n if (status === null) {\n return `ERROR: ${error || 'Unknown error'}`\n }\n return `${status}`\n}\n\nasync function getAppsFromDb(): Promise<Resource[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbResource.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map((row) => {\n const accessRequest =\n row.accessRequest as unknown as Resource['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as Resource['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as Resource['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as Resource['deprecated'])\n\n return {\n id: row.id,\n slug: row.slug,\n displayName: row.displayName,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n }\n })\n}\n\n/**\n * Check all links in the app catalog and return a report\n */\nexport async function checkAllLinks(options: CheckLinksOptions = {}): Promise<{\n total: number\n working: number\n broken: number\n redirects: number\n checks: LinkCheck[]\n}> {\n const {\n maxConcurrent = 10,\n timeout = 60000,\n maxRetries = 3,\n onProgress,\n } = options\n\n const apps = await getAppsFromDb()\n const checks: Omit<LinkCheck, 'status' | 'error'>[] = []\n\n // Collect all links\n for (const app of apps) {\n // Check appUrl\n if (app.appUrl) {\n checks.push({\n url: app.appUrl,\n appSlug: app.slug,\n linkType: 'appUrl',\n })\n }\n\n // Check sources\n if (app.sources && app.sources.length > 0) {\n for (const source of app.sources) {\n const url = typeof source === 'string' ? source : source.url\n checks.push({\n url,\n appSlug: app.slug,\n linkType: 'sources',\n })\n }\n }\n\n // Check accessRequest.urls\n if (app.accessRequest?.urls && app.accessRequest.urls.length > 0) {\n for (const link of app.accessRequest.urls) {\n checks.push({\n url: link.url,\n appSlug: app.slug,\n linkType: 'accessRequest.urls',\n })\n }\n }\n }\n\n // Check all links with concurrency control\n const results: LinkCheck[] = []\n const queue = [...checks]\n const inProgress = new Set<Promise<void>>()\n\n while (queue.length > 0 || inProgress.size > 0) {\n // Start new requests up to maxConcurrent\n while (queue.length > 0 && inProgress.size < maxConcurrent) {\n const check = queue.shift()!\n\n const promise = (async () => {\n const result = await checkUrlWithRetry(check.url, {\n timeout,\n maxRetries,\n })\n\n const linkCheck: LinkCheck = {\n ...check,\n status: result.status,\n error: result.error,\n }\n results.push(linkCheck)\n\n // Stream result if callback provided\n if (onProgress) {\n onProgress(linkCheck)\n }\n })()\n\n inProgress.add(promise)\n\n // Clean up when promise completes\n void promise.finally(() => {\n inProgress.delete(promise)\n })\n }\n\n // Wait for at least one to complete before continuing\n if (inProgress.size > 0) {\n await Promise.race(inProgress)\n }\n }\n\n const working = results.filter((r) => isWorkingLink(r.status))\n const broken = results.filter((r) => isBrokenLink(r.status))\n const redirects = results.filter(\n (r) => r.status && r.status >= 300 && r.status < 400,\n )\n\n return {\n total: results.length,\n working: working.length,\n broken: broken.length,\n redirects: redirects.length,\n checks: results,\n }\n}\n\n/**\n * Print a formatted report of link check results\n */\nexport function printLinkCheckReport(report: {\n total: number\n working: number\n broken: number\n redirects: number\n checks: LinkCheck[]\n}): void {\n console.log('📊 Results:\\n')\n console.log(`✅ Working links: ${report.working}`)\n console.log(`❌ Broken links: ${report.broken}`)\n console.log(`🔀 Redirects: ${report.redirects}`)\n console.log()\n\n const broken = report.checks.filter((r) => isBrokenLink(r.status))\n const redirects = report.checks.filter(\n (r) => r.status && r.status >= 300 && r.status < 400,\n )\n\n // Show broken links\n if (broken.length > 0) {\n console.log('❌ Broken Links:\\n')\n for (const link of broken) {\n console.log(\n ` ${getStatusEmoji(link.status)} [${link.appSlug}] ${link.linkType}`,\n )\n console.log(` ${link.url}`)\n console.log(` Status: ${formatStatus(link.status, link.error)}`)\n console.log()\n }\n }\n\n // Show redirects\n if (redirects.length > 0) {\n console.log('🔀 Redirects:\\n')\n for (const link of redirects) {\n console.log(\n ` ${getStatusEmoji(link.status)} [${link.appSlug}] ${link.linkType}`,\n )\n console.log(` ${link.url}`)\n console.log(` Status: ${formatStatus(link.status, link.error)}`)\n console.log()\n }\n }\n\n // Summary by app\n const appStats = new Map<\n string,\n { working: number; broken: number; total: number }\n >()\n for (const result of report.checks) {\n const stats = appStats.get(result.appSlug) || {\n working: 0,\n broken: 0,\n total: 0,\n }\n stats.total++\n if (isWorkingLink(result.status)) {\n stats.working++\n } else {\n stats.broken++\n }\n appStats.set(result.appSlug, stats)\n }\n\n const appsWithBrokenLinks = Array.from(appStats.entries())\n .filter(([_, stats]) => stats.broken > 0)\n .sort((a, b) => b[1].broken - a[1].broken)\n\n if (appsWithBrokenLinks.length > 0) {\n console.log('📱 Apps with broken links:\\n')\n for (const [appSlug, stats] of appsWithBrokenLinks) {\n console.log(` ${appSlug}: ${stats.broken}/${stats.total} broken`)\n }\n console.log()\n }\n\n if (broken.length > 0) {\n console.log(`\\n❌ Found ${broken.length} broken link(s)`)\n } else {\n console.log('\\n✅ All links are working!')\n }\n}\n"],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ import { omit } from "radashi";
|
|
|
6
6
|
async function getGroupingTagDefinitionsFromPrisma() {
|
|
7
7
|
const prisma = getDbClient();
|
|
8
8
|
const rows = await prisma.dbAppTagDefinition.findMany();
|
|
9
|
-
const
|
|
9
|
+
const resources = await prisma.dbResource.findMany({ select: { tags: true } });
|
|
10
10
|
const tagCounts = /* @__PURE__ */ new Map();
|
|
11
|
-
for (const
|
|
12
|
-
const tags =
|
|
11
|
+
for (const resource of resources) {
|
|
12
|
+
const tags = resource.tags ?? [];
|
|
13
13
|
for (const tag of tags) {
|
|
14
14
|
const [prefix, value] = tag.split(":");
|
|
15
15
|
if (prefix && value) {
|
|
@@ -72,7 +72,7 @@ async function getApprovalMethodsFromPrisma() {
|
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function rowToResource(row) {
|
|
76
76
|
const accessRequest = row.accessRequest;
|
|
77
77
|
const teams = row.teams ?? [];
|
|
78
78
|
const tags = row.tags ?? [];
|
|
@@ -94,6 +94,7 @@ function rowToAppForCatalog(row) {
|
|
|
94
94
|
return {
|
|
95
95
|
id: row.id,
|
|
96
96
|
slug: row.slug,
|
|
97
|
+
type: row.type,
|
|
97
98
|
displayName: row.displayName,
|
|
98
99
|
abbreviation,
|
|
99
100
|
nicknames,
|
|
@@ -109,11 +110,19 @@ function rowToAppForCatalog(row) {
|
|
|
109
110
|
deprecated,
|
|
110
111
|
aiPrompt,
|
|
111
112
|
urlIssues,
|
|
112
|
-
tiers
|
|
113
|
+
tiers,
|
|
114
|
+
parentSlug: row.parentSlug ?? void 0,
|
|
115
|
+
tier: row.tier ?? void 0,
|
|
116
|
+
familySlug: row.familySlug ?? void 0,
|
|
117
|
+
aliases: row.aliases.length ? row.aliases : void 0,
|
|
118
|
+
ownerPersonSlug: row.ownerPersonSlug ?? void 0,
|
|
119
|
+
accessMaintainerGroupSlugs: row.accessMaintainerGroupSlugs.length ? row.accessMaintainerGroupSlugs : void 0,
|
|
120
|
+
accessComments: row.accessComments ?? void 0,
|
|
121
|
+
extra: row.extra ? row.extra : void 0
|
|
113
122
|
};
|
|
114
123
|
}
|
|
115
|
-
async function
|
|
116
|
-
return (await getDbClient().
|
|
124
|
+
async function getResourcesFromPrisma() {
|
|
125
|
+
return (await getDbClient().dbResource.findMany({ include: { sourceRefs: true } })).map(rowToResource);
|
|
117
126
|
}
|
|
118
127
|
async function updateApp(input) {
|
|
119
128
|
const prisma = getDbClient();
|
|
@@ -125,7 +134,7 @@ async function updateApp(input) {
|
|
|
125
134
|
if (data.appUrl !== void 0) updatePayload.appUrl = data.appUrl;
|
|
126
135
|
if (data.description !== void 0) updatePayload.description = data.description;
|
|
127
136
|
if (data.aiPrompt !== void 0) updatePayload.aiPrompt = data.aiPrompt;
|
|
128
|
-
const updated = await prisma.
|
|
137
|
+
const updated = await prisma.dbResource.update({
|
|
129
138
|
where: { id },
|
|
130
139
|
data: updatePayload,
|
|
131
140
|
include: { sourceRefs: true }
|
|
@@ -138,20 +147,20 @@ async function updateApp(input) {
|
|
|
138
147
|
create: { slug: sourceSlug },
|
|
139
148
|
update: {}
|
|
140
149
|
});
|
|
141
|
-
await prisma.sourceReference.deleteMany({ where: {
|
|
150
|
+
await prisma.sourceReference.deleteMany({ where: { resourceId: updated.id } });
|
|
142
151
|
if (urls.length > 0) await prisma.sourceReference.createMany({ data: urls.map((url) => ({
|
|
143
|
-
|
|
152
|
+
resourceId: updated.id,
|
|
144
153
|
sourceSlug: parseSourceSlug(url),
|
|
145
154
|
url: url.trim()
|
|
146
155
|
})) });
|
|
147
|
-
const refetched = await prisma.
|
|
156
|
+
const refetched = await prisma.dbResource.findUnique({
|
|
148
157
|
where: { id },
|
|
149
158
|
include: { sourceRefs: true }
|
|
150
159
|
});
|
|
151
|
-
if (!refetched) throw new Error("
|
|
152
|
-
return
|
|
160
|
+
if (!refetched) throw new Error("Resource not found after update");
|
|
161
|
+
return rowToResource(refetched);
|
|
153
162
|
}
|
|
154
|
-
return
|
|
163
|
+
return rowToResource(updated);
|
|
155
164
|
}
|
|
156
165
|
async function getPersonsFromPrisma() {
|
|
157
166
|
return (await getDbClient().dbPerson.findMany()).map((row) => ({
|
|
@@ -169,30 +178,13 @@ async function getGroupsFromPrisma() {
|
|
|
169
178
|
memberSlugs: row.memberships.map((m) => m.personSlug)
|
|
170
179
|
}));
|
|
171
180
|
}
|
|
172
|
-
async function
|
|
173
|
-
return (await getDbClient().dbSubResource.findMany()).map((row) => ({
|
|
174
|
-
slug: row.slug,
|
|
175
|
-
displayName: row.displayName,
|
|
176
|
-
description: row.description ?? void 0,
|
|
177
|
-
appSlug: row.appSlug,
|
|
178
|
-
familySlug: row.familySlug ?? void 0,
|
|
179
|
-
tierSlug: row.tierSlug ?? void 0,
|
|
180
|
-
aliases: row.aliases,
|
|
181
|
-
ownerPersonSlug: row.ownerPersonSlug ?? void 0,
|
|
182
|
-
accessMaintainerGroupSlugs: row.accessMaintainerGroupSlugs,
|
|
183
|
-
accessRequest: row.accessRequest ? row.accessRequest : void 0,
|
|
184
|
-
accessComments: row.accessComments ?? void 0,
|
|
185
|
-
extra: row.extra ? row.extra : void 0
|
|
186
|
-
}));
|
|
187
|
-
}
|
|
188
|
-
async function getAppCatalogData(getAppsOptional) {
|
|
181
|
+
async function getAppCatalogData(getResourcesOptional) {
|
|
189
182
|
return {
|
|
190
|
-
|
|
183
|
+
resources: getResourcesOptional ? await getResourcesOptional() : await getResourcesFromPrisma(),
|
|
191
184
|
tagsDefinitions: await getGroupingTagDefinitionsFromPrisma(),
|
|
192
185
|
approvalMethods: await getApprovalMethodsFromPrisma(),
|
|
193
186
|
persons: await getPersonsFromPrisma(),
|
|
194
|
-
groups: await getGroupsFromPrisma()
|
|
195
|
-
subResources: await getSubResourcesFromPrisma()
|
|
187
|
+
groups: await getGroupsFromPrisma()
|
|
196
188
|
};
|
|
197
189
|
}
|
|
198
190
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.mjs","names":[],"sources":["../../../src/modules/appCatalog/service.ts"],"sourcesContent":["import { getDbClient } from '../../db/client'\nimport type { Prisma } from '../../generated/prisma/client'\nimport type {\n AppApprovalMethod,\n AppCatalogData,\n AppCategory,\n AppForCatalog,\n GroupingTagDefinition,\n} from '../../types/common/appCatalogTypes'\nimport type {\n CustomConfig,\n ServiceConfig,\n} from '../../types/common/approvalMethodTypes'\nimport type { Group, Person } from '../../types/common/personGroupTypes'\nimport type { SubResource } from '../../types/common/subResourceTypes'\nimport { omit } from 'radashi'\nimport { parseSourceSlug } from '../../utils/parseSourceSlug'\n\n/** Prisma query result for DbAppForCatalog with sourceRefs included (used by rowToAppForCatalog) */\ntype AppRowWithSourceRefs = Prisma.DbAppForCatalogGetPayload<{\n include: { sourceRefs: true }\n}>\n\nfunction capitalize(word: string): string {\n if (!word) return word\n return word.charAt(0).toUpperCase() + word.slice(1)\n}\n\nexport async function getGroupingTagDefinitionsFromPrisma(): Promise<\n GroupingTagDefinition[]\n> {\n const prisma = getDbClient()\n\n // Fetch all tag definitions\n const rows = await prisma.dbAppTagDefinition.findMany()\n\n // Fetch all apps to count tag usage\n const apps = await prisma.dbAppForCatalog.findMany({\n select: { tags: true },\n })\n\n // Count tag values across all apps\n const tagCounts = new Map<string, Map<string, number>>()\n\n for (const app of apps) {\n const tags = (app.tags as unknown as string[] | null) ?? []\n for (const tag of tags) {\n const [prefix, value] = tag.split(':')\n if (prefix && value) {\n if (!tagCounts.has(prefix)) {\n tagCounts.set(prefix, new Map())\n }\n const prefixCounts = tagCounts.get(prefix)!\n prefixCounts.set(value, (prefixCounts.get(value) ?? 0) + 1)\n }\n }\n }\n\n // Sort values by count and return definitions\n return rows.map((row) => {\n const definition = omit(row, ['id', 'updatedAt', 'createdAt'])\n const counts = tagCounts.get(definition.prefix) ?? new Map()\n\n // Sort values by count (descending)\n const sortedValues = [...definition.values].sort((a, b) => {\n const countA = counts.get(a.value) ?? 0\n const countB = counts.get(b.value) ?? 0\n return countB - countA\n })\n\n return {\n ...definition,\n values: sortedValues,\n }\n })\n}\n\nexport async function getApprovalMethodsFromPrisma(): Promise<\n AppApprovalMethod[]\n> {\n const prisma = getDbClient()\n\n // Fetch all apps\n const rows = await prisma.dbApprovalMethod.findMany()\n\n return rows.map((row) => {\n // Handle discriminated union by explicitly narrowing based on type\n const baseFields = {\n slug: row.slug,\n displayName: row.displayName,\n }\n\n // Provide default empty config if null, as AppApprovalMethod discriminated union requires config\n const config = row.config ?? {}\n\n switch (row.type) {\n case 'service':\n return {\n ...baseFields,\n type: 'service' as const,\n config: config as ServiceConfig,\n }\n case 'custom':\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n case 'noAccessRequired':\n return {\n ...baseFields,\n type: 'noAccessRequired' as const,\n config: config as CustomConfig,\n }\n case 'unknown':\n return {\n ...baseFields,\n type: 'unknown' as const,\n config: config as CustomConfig,\n }\n case 'personTeam':\n // Legacy: map personTeam to custom\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n }\n })\n}\n\nfunction rowToAppForCatalog(row: AppRowWithSourceRefs): AppForCatalog {\n const accessRequest =\n row.accessRequest as unknown as AppForCatalog['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as AppForCatalog['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as AppForCatalog['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const abbreviation = row.abbreviation == null ? undefined : row.abbreviation\n const nicknames = (row.nicknames as unknown as string[] | null)?.length\n ? (row.nicknames as unknown as string[])\n : undefined\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as AppForCatalog['deprecated'])\n const aiPrompt = row.aiPrompt == null ? undefined : row.aiPrompt\n const urlIssues = (row.urlIssues as unknown as string[] | null)?.length\n ? (row.urlIssues as unknown as string[])\n : undefined\n const tiers =\n row.tiers == null\n ? undefined\n : (row.tiers as unknown as AppForCatalog['tiers'])\n\n return {\n id: row.id,\n slug: row.slug,\n displayName: row.displayName,\n abbreviation,\n nicknames,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n aiPrompt,\n urlIssues,\n tiers,\n }\n}\n\nexport async function getAppsFromPrisma(): Promise<AppForCatalog[]> {\n const prisma = getDbClient()\n\n const rows = await prisma.dbAppForCatalog.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map(rowToAppForCatalog)\n}\n\nexport interface UpdateAppInput {\n id: string\n data: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n sources?: string[]\n aiPrompt?: string | null\n }\n}\n\nexport async function updateApp(input: UpdateAppInput): Promise<AppForCatalog> {\n const prisma = getDbClient()\n const { id, data } = input\n\n const updatePayload: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n aiPrompt?: string | null\n } = {}\n if (data.displayName !== undefined)\n updatePayload.displayName = data.displayName\n if (data.abbreviation !== undefined)\n updatePayload.abbreviation = data.abbreviation\n if (data.slug !== undefined) updatePayload.slug = data.slug\n if (data.appUrl !== undefined) updatePayload.appUrl = data.appUrl\n if (data.description !== undefined)\n updatePayload.description = data.description\n if (data.aiPrompt !== undefined) updatePayload.aiPrompt = data.aiPrompt\n\n const updated = await prisma.dbAppForCatalog.update({\n where: { id },\n data: updatePayload,\n include: { sourceRefs: true },\n })\n\n if (data.sources !== undefined) {\n const urls = [...new Set(data.sources.map((u) => u.trim()).filter(Boolean))]\n const uniqueSourceSlugs = [...new Set(urls.map(parseSourceSlug))]\n\n for (const sourceSlug of uniqueSourceSlugs) {\n await prisma.source.upsert({\n where: { slug: sourceSlug },\n create: { slug: sourceSlug },\n update: {},\n })\n }\n\n await prisma.sourceReference.deleteMany({\n where: { appId: updated.id },\n })\n\n if (urls.length > 0) {\n await prisma.sourceReference.createMany({\n data: urls.map((url) => ({\n appId: updated.id,\n sourceSlug: parseSourceSlug(url),\n url: url.trim(),\n })),\n })\n }\n\n const refetched = await prisma.dbAppForCatalog.findUnique({\n where: { id },\n include: { sourceRefs: true },\n })\n if (!refetched) throw new Error('App not found after update')\n return rowToAppForCatalog(refetched)\n }\n\n return rowToAppForCatalog(updated)\n}\n\nexport function deriveCategories(apps: AppForCatalog[]): AppCategory[] {\n const tagSet = new Set<string>()\n for (const app of apps) {\n for (const tag of app.tags ?? []) {\n const normalized = tag.trim().toLowerCase()\n if (normalized) tagSet.add(normalized)\n }\n }\n const categories: AppCategory[] = [{ id: 'all', name: 'All' }]\n for (const tag of Array.from(tagSet).sort()) {\n categories.push({ id: tag, name: capitalize(tag) })\n }\n return categories\n}\n\nexport async function getPersonsFromPrisma(): Promise<Person[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbPerson.findMany()\n return rows.map((row) => ({\n slug: row.slug,\n firstName: row.firstName,\n lastName: row.lastName,\n email: row.email ?? undefined,\n }))\n}\n\nexport async function getGroupsFromPrisma(): Promise<Group[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbGroup.findMany({\n include: { memberships: true },\n })\n return rows.map((row) => ({\n slug: row.slug,\n displayName: row.displayName ?? undefined,\n email: row.email ?? undefined,\n memberSlugs: row.memberships.map((m) => m.personSlug),\n }))\n}\n\nexport async function getSubResourcesFromPrisma(): Promise<SubResource[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbSubResource.findMany()\n return rows.map((row) => ({\n slug: row.slug,\n displayName: row.displayName,\n description: row.description ?? undefined,\n appSlug: row.appSlug,\n familySlug: row.familySlug ?? undefined,\n tierSlug: row.tierSlug ?? undefined,\n aliases: row.aliases as unknown as string[],\n ownerPersonSlug: row.ownerPersonSlug ?? undefined,\n accessMaintainerGroupSlugs:\n row.accessMaintainerGroupSlugs as unknown as string[],\n accessRequest: row.accessRequest\n ? (row.accessRequest as unknown as SubResource['accessRequest'])\n : undefined,\n accessComments: row.accessComments ?? undefined,\n extra: row.extra\n ? (row.extra as unknown as Record<string, unknown>)\n : undefined,\n }))\n}\n\nexport async function getAppCatalogData(\n getAppsOptional?: () => Promise<AppForCatalog[]>,\n): Promise<AppCatalogData> {\n const apps = getAppsOptional\n ? await getAppsOptional()\n : await getAppsFromPrisma()\n\n return {\n apps,\n tagsDefinitions: await getGroupingTagDefinitionsFromPrisma(),\n approvalMethods: await getApprovalMethodsFromPrisma(),\n persons: await getPersonsFromPrisma(),\n groups: await getGroupsFromPrisma(),\n subResources: await getSubResourcesFromPrisma(),\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.mjs","names":[],"sources":["../../../src/modules/appCatalog/service.ts"],"sourcesContent":["import { getDbClient } from '../../db/client'\nimport type { Prisma } from '../../generated/prisma/client'\nimport type {\n AppApprovalMethod,\n AppCatalogData,\n AppCategory,\n GroupingTagDefinition,\n Resource,\n} from '../../types/common/appCatalogTypes'\nimport type {\n CustomConfig,\n ServiceConfig,\n} from '../../types/common/approvalMethodTypes'\nimport type { Group, Person } from '../../types/common/personGroupTypes'\nimport { omit } from 'radashi'\nimport { parseSourceSlug } from '../../utils/parseSourceSlug'\n\n/** Prisma query result for DbResource with sourceRefs included (used by rowToResource) */\ntype ResourceRowWithSourceRefs = Prisma.DbResourceGetPayload<{\n include: { sourceRefs: true }\n}>\n\nfunction capitalize(word: string): string {\n if (!word) return word\n return word.charAt(0).toUpperCase() + word.slice(1)\n}\n\nexport async function getGroupingTagDefinitionsFromPrisma(): Promise<\n GroupingTagDefinition[]\n> {\n const prisma = getDbClient()\n\n // Fetch all tag definitions\n const rows = await prisma.dbAppTagDefinition.findMany()\n\n // Fetch all resources to count tag usage\n const resources = await prisma.dbResource.findMany({\n select: { tags: true },\n })\n\n // Count tag values across all resources\n const tagCounts = new Map<string, Map<string, number>>()\n\n for (const resource of resources) {\n const tags = (resource.tags as unknown as string[] | null) ?? []\n for (const tag of tags) {\n const [prefix, value] = tag.split(':')\n if (prefix && value) {\n if (!tagCounts.has(prefix)) {\n tagCounts.set(prefix, new Map())\n }\n const prefixCounts = tagCounts.get(prefix)!\n prefixCounts.set(value, (prefixCounts.get(value) ?? 0) + 1)\n }\n }\n }\n\n // Sort values by count and return definitions\n return rows.map((row) => {\n const definition = omit(row, ['id', 'updatedAt', 'createdAt'])\n const counts = tagCounts.get(definition.prefix) ?? new Map()\n\n // Sort values by count (descending)\n const sortedValues = [...definition.values].sort((a, b) => {\n const countA = counts.get(a.value) ?? 0\n const countB = counts.get(b.value) ?? 0\n return countB - countA\n })\n\n return {\n ...definition,\n values: sortedValues,\n }\n })\n}\n\nexport async function getApprovalMethodsFromPrisma(): Promise<\n AppApprovalMethod[]\n> {\n const prisma = getDbClient()\n\n // Fetch all approval methods\n const rows = await prisma.dbApprovalMethod.findMany()\n\n return rows.map((row) => {\n // Handle discriminated union by explicitly narrowing based on type\n const baseFields = {\n slug: row.slug,\n displayName: row.displayName,\n }\n\n // Provide default empty config if null, as AppApprovalMethod discriminated union requires config\n const config = row.config ?? {}\n\n switch (row.type) {\n case 'service':\n return {\n ...baseFields,\n type: 'service' as const,\n config: config as ServiceConfig,\n }\n case 'custom':\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n case 'noAccessRequired':\n return {\n ...baseFields,\n type: 'noAccessRequired' as const,\n config: config as CustomConfig,\n }\n case 'unknown':\n return {\n ...baseFields,\n type: 'unknown' as const,\n config: config as CustomConfig,\n }\n case 'personTeam':\n // Legacy: map personTeam to custom\n return {\n ...baseFields,\n type: 'custom' as const,\n config: config as CustomConfig,\n }\n }\n })\n}\n\nfunction rowToResource(row: ResourceRowWithSourceRefs): Resource {\n const accessRequest =\n row.accessRequest as unknown as Resource['accessRequest']\n const teams = (row.teams as unknown as string[] | null) ?? []\n const tags = (row.tags as unknown as Resource['tags']) ?? []\n const screenshotIds =\n (row.screenshotIds as unknown as Resource['screenshotIds']) ?? []\n const sources = row.sourceRefs.map((ref) => ({\n sourceSlug: ref.sourceSlug,\n url: ref.url,\n parseDate: ref.parseDate ? ref.parseDate.toISOString() : null,\n }))\n const notes = row.notes == null ? undefined : row.notes\n const appUrl = row.appUrl == null ? undefined : row.appUrl\n const iconName = row.iconName == null ? undefined : row.iconName\n const abbreviation = row.abbreviation == null ? undefined : row.abbreviation\n const nicknames = (row.nicknames as unknown as string[] | null)?.length\n ? (row.nicknames as unknown as string[])\n : undefined\n const deprecated =\n row.deprecated == null\n ? undefined\n : (row.deprecated as unknown as Resource['deprecated'])\n const aiPrompt = row.aiPrompt == null ? undefined : row.aiPrompt\n const urlIssues = (row.urlIssues as unknown as string[] | null)?.length\n ? (row.urlIssues as unknown as string[])\n : undefined\n const tiers =\n row.tiers == null ? undefined : (row.tiers as unknown as Resource['tiers'])\n\n return {\n id: row.id,\n slug: row.slug,\n type: row.type,\n displayName: row.displayName,\n abbreviation,\n nicknames,\n description: row.description,\n accessRequest,\n teams,\n notes,\n tags,\n appUrl,\n iconName,\n screenshotIds,\n sources,\n deprecated,\n aiPrompt,\n urlIssues,\n tiers,\n // Fields from former SubResource\n parentSlug: row.parentSlug ?? undefined,\n tier: row.tier ?? undefined,\n familySlug: row.familySlug ?? undefined,\n aliases: row.aliases.length ? row.aliases : undefined,\n ownerPersonSlug: row.ownerPersonSlug ?? undefined,\n accessMaintainerGroupSlugs: row.accessMaintainerGroupSlugs.length\n ? row.accessMaintainerGroupSlugs\n : undefined,\n accessComments: row.accessComments ?? undefined,\n extra: row.extra\n ? (row.extra as unknown as Record<string, unknown>)\n : undefined,\n }\n}\n\nexport async function getResourcesFromPrisma(): Promise<Resource[]> {\n const prisma = getDbClient()\n\n const rows = await prisma.dbResource.findMany({\n include: {\n sourceRefs: true,\n },\n })\n\n return rows.map(rowToResource)\n}\n\n/** @deprecated Use getResourcesFromPrisma instead */\nexport const getAppsFromPrisma = getResourcesFromPrisma\n\nexport interface UpdateAppInput {\n id: string\n data: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n sources?: string[]\n aiPrompt?: string | null\n }\n}\n\nexport async function updateApp(input: UpdateAppInput): Promise<Resource> {\n const prisma = getDbClient()\n const { id, data } = input\n\n const updatePayload: {\n displayName?: string\n abbreviation?: string | null\n slug?: string\n appUrl?: string\n description?: string\n aiPrompt?: string | null\n } = {}\n if (data.displayName !== undefined)\n updatePayload.displayName = data.displayName\n if (data.abbreviation !== undefined)\n updatePayload.abbreviation = data.abbreviation\n if (data.slug !== undefined) updatePayload.slug = data.slug\n if (data.appUrl !== undefined) updatePayload.appUrl = data.appUrl\n if (data.description !== undefined)\n updatePayload.description = data.description\n if (data.aiPrompt !== undefined) updatePayload.aiPrompt = data.aiPrompt\n\n const updated = await prisma.dbResource.update({\n where: { id },\n data: updatePayload,\n include: { sourceRefs: true },\n })\n\n if (data.sources !== undefined) {\n const urls = [...new Set(data.sources.map((u) => u.trim()).filter(Boolean))]\n const uniqueSourceSlugs = [...new Set(urls.map(parseSourceSlug))]\n\n for (const sourceSlug of uniqueSourceSlugs) {\n await prisma.source.upsert({\n where: { slug: sourceSlug },\n create: { slug: sourceSlug },\n update: {},\n })\n }\n\n await prisma.sourceReference.deleteMany({\n where: { resourceId: updated.id },\n })\n\n if (urls.length > 0) {\n await prisma.sourceReference.createMany({\n data: urls.map((url) => ({\n resourceId: updated.id,\n sourceSlug: parseSourceSlug(url),\n url: url.trim(),\n })),\n })\n }\n\n const refetched = await prisma.dbResource.findUnique({\n where: { id },\n include: { sourceRefs: true },\n })\n if (!refetched) throw new Error('Resource not found after update')\n return rowToResource(refetched)\n }\n\n return rowToResource(updated)\n}\n\nexport function deriveCategories(resources: Resource[]): AppCategory[] {\n const tagSet = new Set<string>()\n for (const resource of resources) {\n for (const tag of resource.tags ?? []) {\n const normalized = tag.trim().toLowerCase()\n if (normalized) tagSet.add(normalized)\n }\n }\n const categories: AppCategory[] = [{ id: 'all', name: 'All' }]\n for (const tag of Array.from(tagSet).sort()) {\n categories.push({ id: tag, name: capitalize(tag) })\n }\n return categories\n}\n\nexport async function getPersonsFromPrisma(): Promise<Person[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbPerson.findMany()\n return rows.map((row) => ({\n slug: row.slug,\n firstName: row.firstName,\n lastName: row.lastName,\n email: row.email ?? undefined,\n }))\n}\n\nexport async function getGroupsFromPrisma(): Promise<Group[]> {\n const prisma = getDbClient()\n const rows = await prisma.dbGroup.findMany({\n include: { memberships: true },\n })\n return rows.map((row) => ({\n slug: row.slug,\n displayName: row.displayName ?? undefined,\n email: row.email ?? undefined,\n memberSlugs: row.memberships.map((m) => m.personSlug),\n }))\n}\n\nexport async function getAppCatalogData(\n getResourcesOptional?: () => Promise<Resource[]>,\n): Promise<AppCatalogData> {\n const resources = getResourcesOptional\n ? await getResourcesOptional()\n : await getResourcesFromPrisma()\n\n return {\n resources,\n tagsDefinitions: await getGroupingTagDefinitionsFromPrisma(),\n approvalMethods: await getApprovalMethodsFromPrisma(),\n persons: await getPersonsFromPrisma(),\n groups: await getGroupsFromPrisma(),\n }\n}\n"],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ function registerScreenshotRestController(router, config) {
|
|
|
16
16
|
try {
|
|
17
17
|
const { appSlug } = req.params;
|
|
18
18
|
const prisma = getDbClient();
|
|
19
|
-
const app = await prisma.
|
|
19
|
+
const app = await prisma.dbResource.findUnique({
|
|
20
20
|
where: { slug: appSlug },
|
|
21
21
|
select: { screenshotIds: true }
|
|
22
22
|
});
|
|
@@ -50,7 +50,7 @@ function registerScreenshotRestController(router, config) {
|
|
|
50
50
|
try {
|
|
51
51
|
const { appSlug } = req.params;
|
|
52
52
|
const prisma = getDbClient();
|
|
53
|
-
const app = await prisma.
|
|
53
|
+
const app = await prisma.dbResource.findUnique({
|
|
54
54
|
where: { slug: appSlug },
|
|
55
55
|
select: { screenshotIds: true }
|
|
56
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenshotRestController.mjs","names":[],"sources":["../../../src/modules/assets/screenshotRestController.ts"],"sourcesContent":["import type { Request, Response, Router } from 'express'\nimport sharp from 'sharp'\nimport { getDbClient } from '../../db'\n\nexport interface ScreenshotRestControllerConfig {\n /**\n * Base path for screenshot endpoints (e.g., '/api/screenshots')\n */\n basePath: string\n}\n\n/**\n * Registers REST endpoints for screenshot retrieval\n *\n * Endpoints:\n * - GET {basePath}/app/:appId - Get all screenshots for an app\n * - GET {basePath}/:id - Get screenshot binary by ID\n * - GET {basePath}/:id/metadata - Get screenshot metadata only\n */\nexport function registerScreenshotRestController(\n router: Router,\n config: ScreenshotRestControllerConfig,\n): void {\n const { basePath } = config\n\n // Get all screenshots for an app\n router.get(\n `${basePath}/app/:appSlug`,\n async (req: Request, res: Response) => {\n try {\n const { appSlug } = req.params\n\n const prisma = getDbClient()\n\n // Find app by slug\n const app = await prisma.
|
|
1
|
+
{"version":3,"file":"screenshotRestController.mjs","names":[],"sources":["../../../src/modules/assets/screenshotRestController.ts"],"sourcesContent":["import type { Request, Response, Router } from 'express'\nimport sharp from 'sharp'\nimport { getDbClient } from '../../db'\n\nexport interface ScreenshotRestControllerConfig {\n /**\n * Base path for screenshot endpoints (e.g., '/api/screenshots')\n */\n basePath: string\n}\n\n/**\n * Registers REST endpoints for screenshot retrieval\n *\n * Endpoints:\n * - GET {basePath}/app/:appId - Get all screenshots for an app\n * - GET {basePath}/:id - Get screenshot binary by ID\n * - GET {basePath}/:id/metadata - Get screenshot metadata only\n */\nexport function registerScreenshotRestController(\n router: Router,\n config: ScreenshotRestControllerConfig,\n): void {\n const { basePath } = config\n\n // Get all screenshots for an app\n router.get(\n `${basePath}/app/:appSlug`,\n async (req: Request, res: Response) => {\n try {\n const { appSlug } = req.params\n\n const prisma = getDbClient()\n\n // Find app by slug\n const app = await prisma.dbResource.findUnique({\n where: { slug: appSlug },\n select: { screenshotIds: true },\n })\n\n if (!app) {\n res.status(404).json({ error: 'App not found' })\n return\n }\n\n // Fetch all screenshots for the app, then sort by screenshotIds order\n const results = await prisma.dbAsset.findMany({\n where: {\n id: { in: app.screenshotIds },\n assetType: 'screenshot',\n },\n select: {\n id: true,\n name: true,\n mimeType: true,\n fileSize: true,\n width: true,\n height: true,\n createdAt: true,\n },\n })\n\n const screenshots = app.screenshotIds\n .map((id) => results.find((r) => r.id === id))\n .filter((r) => r !== undefined)\n\n res.json(screenshots)\n } catch (error) {\n console.error('Error fetching app screenshots:', error)\n res.status(500).json({ error: 'Failed to fetch screenshots' })\n }\n },\n )\n\n // Get first screenshot for an app (convenience endpoint)\n router.get(\n `${basePath}/app/:appSlug/first`,\n async (req: Request, res: Response) => {\n try {\n const { appSlug } = req.params\n\n const prisma = getDbClient()\n\n // Find app by slug\n const app = await prisma.dbResource.findUnique({\n where: { slug: appSlug },\n select: { screenshotIds: true },\n })\n\n if (!app || app.screenshotIds.length === 0) {\n res.status(404).json({ error: 'No screenshots found' })\n return\n }\n\n // Fetch first screenshot\n const screenshot = await prisma.dbAsset.findUnique({\n where: { id: app.screenshotIds[0] },\n select: {\n id: true,\n name: true,\n mimeType: true,\n fileSize: true,\n width: true,\n height: true,\n createdAt: true,\n },\n })\n\n if (!screenshot) {\n res.status(404).json({ error: 'Screenshot not found' })\n return\n }\n\n res.json(screenshot)\n } catch (error) {\n console.error('Error fetching first screenshot:', error)\n res.status(500).json({ error: 'Failed to fetch screenshot' })\n }\n },\n )\n\n // Get screenshot binary by ID\n router.get(`${basePath}/:id`, async (req: Request, res: Response) => {\n try {\n const { id } = req.params\n const sizeParam = req.query.size as string | undefined\n const targetSize = sizeParam ? parseInt(sizeParam, 10) : undefined\n\n const prisma = getDbClient()\n const screenshot = await prisma.dbAsset.findUnique({\n where: { id },\n select: {\n content: true,\n mimeType: true,\n name: true,\n },\n })\n\n if (!screenshot) {\n res.status(404).json({ error: 'Screenshot not found' })\n return\n }\n\n let content: Uint8Array | Buffer = screenshot.content\n\n // Resize if size parameter provided\n if (targetSize && targetSize > 0) {\n try {\n content = await sharp(screenshot.content)\n .resize(targetSize, targetSize, {\n fit: 'inside',\n withoutEnlargement: true,\n })\n .toBuffer()\n } catch (resizeError) {\n console.error('Error resizing screenshot:', resizeError)\n // Fall back to original if resize fails\n }\n }\n\n // Set appropriate headers\n res.setHeader('Content-Type', screenshot.mimeType)\n res.setHeader(\n 'Content-Disposition',\n `inline; filename=\"${screenshot.name}\"`,\n )\n res.setHeader('Cache-Control', 'public, max-age=86400') // Cache for 1 day\n\n // Send binary content\n res.send(content)\n } catch (error) {\n console.error('Error fetching screenshot:', error)\n res.status(500).json({ error: 'Failed to fetch screenshot' })\n }\n })\n\n // Get screenshot metadata only (no binary content)\n router.get(\n `${basePath}/:id/metadata`,\n async (req: Request, res: Response) => {\n try {\n const { id } = req.params\n\n const prisma = getDbClient()\n const screenshot = await prisma.dbAsset.findUnique({\n where: { id },\n select: {\n id: true,\n name: true,\n mimeType: true,\n fileSize: true,\n width: true,\n height: true,\n createdAt: true,\n updatedAt: true,\n },\n })\n\n if (!screenshot) {\n res.status(404).json({ error: 'Screenshot not found' })\n return\n }\n\n res.json(screenshot)\n } catch (error) {\n console.error('Error fetching screenshot metadata:', error)\n res.status(500).json({ error: 'Failed to fetch screenshot metadata' })\n }\n },\n )\n}\n"],"mappings":"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"}
|