payload 3.80.0-internal-debug.7019cc9 → 3.80.0-internal.0311fce
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/admin/elements/Nav.d.ts +10 -0
- package/dist/admin/elements/Nav.d.ts.map +1 -1
- package/dist/admin/elements/Nav.js.map +1 -1
- package/dist/admin/functions/index.d.ts +1 -38
- package/dist/admin/functions/index.d.ts.map +1 -1
- package/dist/admin/functions/index.js.map +1 -1
- package/dist/admin/types.d.ts +5 -4
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/hierarchyList.d.ts +9 -0
- package/dist/admin/views/hierarchyList.d.ts.map +1 -0
- package/dist/admin/views/hierarchyList.js +3 -0
- package/dist/admin/views/hierarchyList.js.map +1 -0
- package/dist/admin/views/index.d.ts +1 -3
- package/dist/admin/views/index.d.ts.map +1 -1
- package/dist/admin/views/index.js.map +1 -1
- package/dist/admin/views/list.d.ts +37 -1
- package/dist/admin/views/list.d.ts.map +1 -1
- package/dist/admin/views/list.js.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.js +1 -0
- package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.js +7 -0
- package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
- package/dist/collections/config/client.d.ts +3 -1
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +11 -0
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.js +1 -1
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +3 -7
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/types.d.ts +29 -7
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/operations/create.js +17 -17
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/findByID.js +3 -3
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +5 -4
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +0 -10
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -15
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +3 -26
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +26 -12
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/exports/shared.d.ts +2 -3
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +1 -2
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +4 -0
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
- package/dist/fields/config/sanitizeJoinField.js +3 -0
- package/dist/fields/config/sanitizeJoinField.js.map +1 -1
- package/dist/globals/config/types.d.ts +4 -0
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.d.ts +8 -0
- package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -0
- package/dist/hierarchy/addHierarchyToCollection.js +62 -0
- package/dist/hierarchy/addHierarchyToCollection.js.map +1 -0
- package/dist/hierarchy/buildParentField.d.ts +11 -0
- package/dist/hierarchy/buildParentField.d.ts.map +1 -0
- package/dist/hierarchy/buildParentField.js +42 -0
- package/dist/hierarchy/buildParentField.js.map +1 -0
- package/dist/hierarchy/constants.d.ts +15 -0
- package/dist/hierarchy/constants.d.ts.map +1 -0
- package/dist/hierarchy/constants.js +11 -0
- package/dist/hierarchy/constants.js.map +1 -0
- package/dist/hierarchy/createFolderField.d.ts +39 -0
- package/dist/hierarchy/createFolderField.d.ts.map +1 -0
- package/dist/hierarchy/createFolderField.js +54 -0
- package/dist/hierarchy/createFolderField.js.map +1 -0
- package/dist/hierarchy/createFoldersCollection.d.ts +57 -0
- package/dist/hierarchy/createFoldersCollection.d.ts.map +1 -0
- package/dist/hierarchy/createFoldersCollection.js +63 -0
- package/dist/hierarchy/createFoldersCollection.js.map +1 -0
- package/dist/hierarchy/createTagField.d.ts +44 -0
- package/dist/hierarchy/createTagField.d.ts.map +1 -0
- package/dist/hierarchy/createTagField.js +48 -0
- package/dist/hierarchy/createTagField.js.map +1 -0
- package/dist/hierarchy/createTagsCollection.d.ts +54 -0
- package/dist/hierarchy/createTagsCollection.d.ts.map +1 -0
- package/dist/hierarchy/createTagsCollection.js +56 -0
- package/dist/hierarchy/createTagsCollection.js.map +1 -0
- package/dist/hierarchy/endpoints/findRelated.d.ts +7 -0
- package/dist/hierarchy/endpoints/findRelated.d.ts.map +1 -0
- package/dist/hierarchy/endpoints/findRelated.js +36 -0
- package/dist/hierarchy/endpoints/findRelated.js.map +1 -0
- package/dist/hierarchy/getInitialTreeData.d.ts +24 -0
- package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -0
- package/dist/hierarchy/getInitialTreeData.js +120 -0
- package/dist/hierarchy/getInitialTreeData.js.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.d.ts +14 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.js +21 -0
- package/dist/hierarchy/hooks/collectionAfterDelete.js.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterRead.d.ts +27 -0
- package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionAfterRead.js +64 -0
- package/dist/hierarchy/hooks/collectionAfterRead.js.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.d.ts +19 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.js +90 -0
- package/dist/hierarchy/hooks/collectionBeforeChange.js.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts +15 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.js +20 -0
- package/dist/hierarchy/hooks/collectionBeforeDelete.js.map +1 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts +8 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js +108 -0
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.js.map +1 -0
- package/dist/hierarchy/injectHierarchyButton.d.ts +14 -0
- package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -0
- package/dist/hierarchy/injectHierarchyButton.js +37 -0
- package/dist/hierarchy/injectHierarchyButton.js.map +1 -0
- package/dist/hierarchy/operations/findRelatedDocuments.d.ts +24 -0
- package/dist/hierarchy/operations/findRelatedDocuments.d.ts.map +1 -0
- package/dist/hierarchy/operations/findRelatedDocuments.js +73 -0
- package/dist/hierarchy/operations/findRelatedDocuments.js.map +1 -0
- package/dist/hierarchy/operations/index.d.ts +2 -0
- package/dist/hierarchy/operations/index.d.ts.map +1 -0
- package/dist/hierarchy/operations/index.js +3 -0
- package/dist/hierarchy/operations/index.js.map +1 -0
- package/dist/hierarchy/resolveHierarchyCollections.d.ts +23 -0
- package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -0
- package/dist/hierarchy/resolveHierarchyCollections.js +312 -0
- package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts +14 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.js +125 -0
- package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -0
- package/dist/hierarchy/types.d.ts +137 -0
- package/dist/hierarchy/types.d.ts.map +1 -0
- package/dist/hierarchy/types.js +6 -0
- package/dist/hierarchy/types.js.map +1 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts +71 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.d.ts.map +1 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js +65 -0
- package/dist/hierarchy/utils/buildLocalizedHierarchyPaths.js.map +1 -0
- package/dist/hierarchy/utils/computePaths.d.ts +31 -0
- package/dist/hierarchy/utils/computePaths.d.ts.map +1 -0
- package/dist/hierarchy/utils/computePaths.js +371 -0
- package/dist/hierarchy/utils/computePaths.js.map +1 -0
- package/dist/hierarchy/utils/findUseAsTitle.d.ts +6 -0
- package/dist/hierarchy/utils/findUseAsTitle.d.ts.map +1 -0
- package/dist/hierarchy/utils/findUseAsTitle.js +72 -0
- package/dist/hierarchy/utils/findUseAsTitle.js.map +1 -0
- package/dist/hierarchy/utils/getAncestors.d.ts +34 -0
- package/dist/hierarchy/utils/getAncestors.d.ts.map +1 -0
- package/dist/hierarchy/utils/getAncestors.js +94 -0
- package/dist/hierarchy/utils/getAncestors.js.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.d.ts +30 -0
- package/dist/hierarchy/utils/getLocalizedValue.d.ts.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.js +46 -0
- package/dist/hierarchy/utils/getLocalizedValue.js.map +1 -0
- package/dist/hierarchy/utils/getLocalizedValue.spec.js +250 -0
- package/dist/hierarchy/utils/getLocalizedValue.spec.js.map +1 -0
- package/dist/index.bundled.d.ts +567 -280
- package/dist/index.d.ts +23 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/preferences/keys.d.ts +8 -4
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +7 -4
- package/dist/preferences/keys.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utilities/extractID.js +1 -1
- package/dist/utilities/extractID.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +13 -2
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/package.json +2 -2
- package/dist/admin/views/folderList.d.ts +0 -56
- package/dist/admin/views/folderList.d.ts.map +0 -1
- package/dist/admin/views/folderList.js +0 -3
- package/dist/admin/views/folderList.js.map +0 -1
- package/dist/folders/addFolderCollection.d.ts +0 -10
- package/dist/folders/addFolderCollection.d.ts.map +0 -1
- package/dist/folders/addFolderCollection.js +0 -26
- package/dist/folders/addFolderCollection.js.map +0 -1
- package/dist/folders/addFolderFieldToCollection.d.ts +0 -8
- package/dist/folders/addFolderFieldToCollection.d.ts.map +0 -1
- package/dist/folders/addFolderFieldToCollection.js +0 -20
- package/dist/folders/addFolderFieldToCollection.js.map +0 -1
- package/dist/folders/buildFolderField.d.ts +0 -8
- package/dist/folders/buildFolderField.d.ts.map +0 -1
- package/dist/folders/buildFolderField.js +0 -87
- package/dist/folders/buildFolderField.js.map +0 -1
- package/dist/folders/constants.d.ts +0 -3
- package/dist/folders/constants.d.ts.map +0 -1
- package/dist/folders/constants.js +0 -4
- package/dist/folders/constants.js.map +0 -1
- package/dist/folders/createFolderCollection.d.ts +0 -11
- package/dist/folders/createFolderCollection.d.ts.map +0 -1
- package/dist/folders/createFolderCollection.js +0 -115
- package/dist/folders/createFolderCollection.js.map +0 -1
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts +0 -8
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.d.ts.map +0 -1
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.js +0 -15
- package/dist/folders/hooks/deleteSubfoldersAfterDelete.js.map +0 -1
- package/dist/folders/hooks/dissasociateAfterDelete.d.ts +0 -8
- package/dist/folders/hooks/dissasociateAfterDelete.d.ts.map +0 -1
- package/dist/folders/hooks/dissasociateAfterDelete.js +0 -20
- package/dist/folders/hooks/dissasociateAfterDelete.js.map +0 -1
- package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts +0 -5
- package/dist/folders/hooks/ensureSafeCollectionsChange.d.ts.map +0 -1
- package/dist/folders/hooks/ensureSafeCollectionsChange.js +0 -107
- package/dist/folders/hooks/ensureSafeCollectionsChange.js.map +0 -1
- package/dist/folders/hooks/reparentChildFolder.d.ts +0 -24
- package/dist/folders/hooks/reparentChildFolder.d.ts.map +0 -1
- package/dist/folders/hooks/reparentChildFolder.js +0 -72
- package/dist/folders/hooks/reparentChildFolder.js.map +0 -1
- package/dist/folders/types.d.ts +0 -118
- package/dist/folders/types.d.ts.map +0 -1
- package/dist/folders/types.js +0 -3
- package/dist/folders/types.js.map +0 -1
- package/dist/folders/utils/buildFolderWhereConstraints.d.ts +0 -13
- package/dist/folders/utils/buildFolderWhereConstraints.d.ts.map +0 -1
- package/dist/folders/utils/buildFolderWhereConstraints.js +0 -45
- package/dist/folders/utils/buildFolderWhereConstraints.js.map +0 -1
- package/dist/folders/utils/formatFolderOrDocumentItem.d.ts +0 -12
- package/dist/folders/utils/formatFolderOrDocumentItem.d.ts.map +0 -1
- package/dist/folders/utils/formatFolderOrDocumentItem.js +0 -30
- package/dist/folders/utils/formatFolderOrDocumentItem.js.map +0 -1
- package/dist/folders/utils/getFolderBreadcrumbs.d.ts +0 -14
- package/dist/folders/utils/getFolderBreadcrumbs.d.ts.map +0 -1
- package/dist/folders/utils/getFolderBreadcrumbs.js +0 -45
- package/dist/folders/utils/getFolderBreadcrumbs.js.map +0 -1
- package/dist/folders/utils/getFolderData.d.ts +0 -33
- package/dist/folders/utils/getFolderData.d.ts.map +0 -1
- package/dist/folders/utils/getFolderData.js +0 -88
- package/dist/folders/utils/getFolderData.js.map +0 -1
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts +0 -24
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.d.ts.map +0 -1
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js +0 -66
- package/dist/folders/utils/getFoldersAndDocumentsFromJoin.js.map +0 -1
- package/dist/folders/utils/getOrphanedDocs.d.ts +0 -15
- package/dist/folders/utils/getOrphanedDocs.d.ts.map +0 -1
- package/dist/folders/utils/getOrphanedDocs.js +0 -40
- package/dist/folders/utils/getOrphanedDocs.js.map +0 -1
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Builds breadcrumbs up from child folder
|
|
3
|
-
* all the way up to root folder
|
|
4
|
-
*/ export const getFolderBreadcrumbs = async ({ breadcrumbs = [], folderID, req })=>{
|
|
5
|
-
const { payload, user } = req;
|
|
6
|
-
if (folderID && payload.config.folders) {
|
|
7
|
-
const folderFieldName = payload.config.folders.fieldName;
|
|
8
|
-
const folderQuery = await payload.find({
|
|
9
|
-
collection: payload.config.folders.slug,
|
|
10
|
-
depth: 0,
|
|
11
|
-
limit: 1,
|
|
12
|
-
overrideAccess: false,
|
|
13
|
-
req,
|
|
14
|
-
select: {
|
|
15
|
-
name: true,
|
|
16
|
-
[folderFieldName]: true,
|
|
17
|
-
folderType: true
|
|
18
|
-
},
|
|
19
|
-
user,
|
|
20
|
-
where: {
|
|
21
|
-
id: {
|
|
22
|
-
equals: folderID
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
const folder = folderQuery.docs[0];
|
|
27
|
-
if (folder) {
|
|
28
|
-
breadcrumbs.push({
|
|
29
|
-
id: folder.id,
|
|
30
|
-
name: folder.name,
|
|
31
|
-
folderType: folder.folderType
|
|
32
|
-
});
|
|
33
|
-
if (folder[folderFieldName]) {
|
|
34
|
-
return getFolderBreadcrumbs({
|
|
35
|
-
breadcrumbs,
|
|
36
|
-
folderID: typeof folder[folderFieldName] === 'number' || typeof folder[folderFieldName] === 'string' ? folder[folderFieldName] : folder[folderFieldName].id,
|
|
37
|
-
req
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return breadcrumbs.reverse();
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
//# sourceMappingURL=getFolderBreadcrumbs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/folders/utils/getFolderBreadcrumbs.ts"],"sourcesContent":["import type { Document, PayloadRequest } from '../../types/index.js'\nimport type { FolderBreadcrumb } from '../types.js'\n\ntype GetFolderBreadcrumbsArgs = {\n breadcrumbs?: FolderBreadcrumb[]\n folderID?: number | string\n req: PayloadRequest\n}\n/**\n * Builds breadcrumbs up from child folder\n * all the way up to root folder\n */\nexport const getFolderBreadcrumbs = async ({\n breadcrumbs = [],\n folderID,\n req,\n}: GetFolderBreadcrumbsArgs): Promise<FolderBreadcrumb[] | null> => {\n const { payload, user } = req\n if (folderID && payload.config.folders) {\n const folderFieldName: string = payload.config.folders.fieldName\n const folderQuery = await payload.find({\n collection: payload.config.folders.slug,\n depth: 0,\n limit: 1,\n overrideAccess: false,\n req,\n select: {\n name: true,\n [folderFieldName]: true,\n folderType: true,\n },\n user,\n where: {\n id: {\n equals: folderID,\n },\n },\n })\n\n const folder = folderQuery.docs[0] as Document\n\n if (folder) {\n breadcrumbs.push({\n id: folder.id,\n name: folder.name,\n folderType: folder.folderType,\n })\n if (folder[folderFieldName]) {\n return getFolderBreadcrumbs({\n breadcrumbs,\n folderID:\n typeof folder[folderFieldName] === 'number' ||\n typeof folder[folderFieldName] === 'string'\n ? folder[folderFieldName]\n : folder[folderFieldName].id,\n req,\n })\n }\n }\n }\n\n return breadcrumbs.reverse()\n}\n"],"names":["getFolderBreadcrumbs","breadcrumbs","folderID","req","payload","user","config","folders","folderFieldName","fieldName","folderQuery","find","collection","slug","depth","limit","overrideAccess","select","name","folderType","where","id","equals","folder","docs","push","reverse"],"mappings":"AAQA;;;CAGC,GACD,OAAO,MAAMA,uBAAuB,OAAO,EACzCC,cAAc,EAAE,EAChBC,QAAQ,EACRC,GAAG,EACsB;IACzB,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGF;IAC1B,IAAID,YAAYE,QAAQE,MAAM,CAACC,OAAO,EAAE;QACtC,MAAMC,kBAA0BJ,QAAQE,MAAM,CAACC,OAAO,CAACE,SAAS;QAChE,MAAMC,cAAc,MAAMN,QAAQO,IAAI,CAAC;YACrCC,YAAYR,QAAQE,MAAM,CAACC,OAAO,CAACM,IAAI;YACvCC,OAAO;YACPC,OAAO;YACPC,gBAAgB;YAChBb;YACAc,QAAQ;gBACNC,MAAM;gBACN,CAACV,gBAAgB,EAAE;gBACnBW,YAAY;YACd;YACAd;YACAe,OAAO;gBACLC,IAAI;oBACFC,QAAQpB;gBACV;YACF;QACF;QAEA,MAAMqB,SAASb,YAAYc,IAAI,CAAC,EAAE;QAElC,IAAID,QAAQ;YACVtB,YAAYwB,IAAI,CAAC;gBACfJ,IAAIE,OAAOF,EAAE;gBACbH,MAAMK,OAAOL,IAAI;gBACjBC,YAAYI,OAAOJ,UAAU;YAC/B;YACA,IAAII,MAAM,CAACf,gBAAgB,EAAE;gBAC3B,OAAOR,qBAAqB;oBAC1BC;oBACAC,UACE,OAAOqB,MAAM,CAACf,gBAAgB,KAAK,YACnC,OAAOe,MAAM,CAACf,gBAAgB,KAAK,WAC/Be,MAAM,CAACf,gBAAgB,GACvBe,MAAM,CAACf,gBAAgB,CAACa,EAAE;oBAChClB;gBACF;YACF;QACF;IACF;IAEA,OAAOF,YAAYyB,OAAO;AAC5B,EAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../index.js';
|
|
2
|
-
import type { PayloadRequest, Where } from '../../types/index.js';
|
|
3
|
-
import type { FolderSortKeys, GetFolderDataResult } from '../types.js';
|
|
4
|
-
type Args = {
|
|
5
|
-
/**
|
|
6
|
-
* Specify to query documents from a specific collection
|
|
7
|
-
* @default undefined
|
|
8
|
-
* @example 'posts'
|
|
9
|
-
*/
|
|
10
|
-
collectionSlug?: CollectionSlug;
|
|
11
|
-
/**
|
|
12
|
-
* Optional where clause to filter documents by
|
|
13
|
-
* @default undefined
|
|
14
|
-
*/
|
|
15
|
-
documentWhere?: Where;
|
|
16
|
-
/**
|
|
17
|
-
* The ID of the folder to query documents from
|
|
18
|
-
* @default undefined
|
|
19
|
-
*/
|
|
20
|
-
folderID?: number | string;
|
|
21
|
-
/** Optional where clause to filter subfolders by
|
|
22
|
-
* @default undefined
|
|
23
|
-
*/
|
|
24
|
-
folderWhere?: Where;
|
|
25
|
-
req: PayloadRequest;
|
|
26
|
-
sort: FolderSortKeys;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Query for documents, subfolders and breadcrumbs for a given folder
|
|
30
|
-
*/
|
|
31
|
-
export declare const getFolderData: ({ collectionSlug, documentWhere, folderID: _folderID, folderWhere, req, sort, }: Args) => Promise<GetFolderDataResult>;
|
|
32
|
-
export {};
|
|
33
|
-
//# sourceMappingURL=getFolderData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getFolderData.d.ts","sourceRoot":"","sources":["../../../src/folders/utils/getFolderData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAoB,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAOxF,KAAK,IAAI,GAAG;IACV;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAA;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,GAAG,EAAE,cAAc,CAAA;IACnB,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AACD;;GAEG;AACH,eAAO,MAAM,aAAa,oFAOvB,IAAI,KAAG,OAAO,CAAC,mBAAmB,CAqDpC,CAAA"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { parseDocumentID } from '../../index.js';
|
|
2
|
-
import { getFolderBreadcrumbs } from './getFolderBreadcrumbs.js';
|
|
3
|
-
import { queryDocumentsAndFoldersFromJoin } from './getFoldersAndDocumentsFromJoin.js';
|
|
4
|
-
import { getOrphanedDocs } from './getOrphanedDocs.js';
|
|
5
|
-
/**
|
|
6
|
-
* Query for documents, subfolders and breadcrumbs for a given folder
|
|
7
|
-
*/ export const getFolderData = async ({ collectionSlug, documentWhere, folderID: _folderID, folderWhere, req, sort = 'name' })=>{
|
|
8
|
-
const { payload } = req;
|
|
9
|
-
if (payload.config.folders === false) {
|
|
10
|
-
throw new Error('Folders are not enabled');
|
|
11
|
-
}
|
|
12
|
-
const parentFolderID = parseDocumentID({
|
|
13
|
-
id: _folderID,
|
|
14
|
-
collectionSlug: payload.config.folders.slug,
|
|
15
|
-
payload
|
|
16
|
-
});
|
|
17
|
-
const breadcrumbsPromise = getFolderBreadcrumbs({
|
|
18
|
-
folderID: parentFolderID,
|
|
19
|
-
req
|
|
20
|
-
});
|
|
21
|
-
if (parentFolderID) {
|
|
22
|
-
// subfolders and documents are queried together
|
|
23
|
-
const documentAndSubfolderPromise = queryDocumentsAndFoldersFromJoin({
|
|
24
|
-
documentWhere,
|
|
25
|
-
folderWhere,
|
|
26
|
-
parentFolderID,
|
|
27
|
-
req
|
|
28
|
-
});
|
|
29
|
-
const [breadcrumbs, result] = await Promise.all([
|
|
30
|
-
breadcrumbsPromise,
|
|
31
|
-
documentAndSubfolderPromise
|
|
32
|
-
]);
|
|
33
|
-
return {
|
|
34
|
-
breadcrumbs,
|
|
35
|
-
documents: sortDocs({
|
|
36
|
-
docs: result.documents,
|
|
37
|
-
sort
|
|
38
|
-
}),
|
|
39
|
-
folderAssignedCollections: result.folderAssignedCollections,
|
|
40
|
-
subfolders: sortDocs({
|
|
41
|
-
docs: result.subfolders,
|
|
42
|
-
sort
|
|
43
|
-
})
|
|
44
|
-
};
|
|
45
|
-
} else {
|
|
46
|
-
const subfoldersPromise = getOrphanedDocs({
|
|
47
|
-
collectionSlug: payload.config.folders.slug,
|
|
48
|
-
folderFieldName: payload.config.folders.fieldName,
|
|
49
|
-
req,
|
|
50
|
-
where: folderWhere
|
|
51
|
-
});
|
|
52
|
-
const [breadcrumbs, subfolders] = await Promise.all([
|
|
53
|
-
breadcrumbsPromise,
|
|
54
|
-
subfoldersPromise
|
|
55
|
-
]);
|
|
56
|
-
return {
|
|
57
|
-
breadcrumbs,
|
|
58
|
-
documents: [],
|
|
59
|
-
folderAssignedCollections: collectionSlug ? [
|
|
60
|
-
collectionSlug
|
|
61
|
-
] : undefined,
|
|
62
|
-
subfolders: sortDocs({
|
|
63
|
-
docs: subfolders,
|
|
64
|
-
sort
|
|
65
|
-
})
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
function sortDocs({ docs, sort }) {
|
|
70
|
-
if (!sort) {
|
|
71
|
-
return docs;
|
|
72
|
-
}
|
|
73
|
-
const isDesc = typeof sort === 'string' && sort.startsWith('-');
|
|
74
|
-
const sortKey = isDesc ? sort.slice(1) : sort;
|
|
75
|
-
return docs.sort((a, b)=>{
|
|
76
|
-
let result = 0;
|
|
77
|
-
if (sortKey === 'name') {
|
|
78
|
-
result = a.value._folderOrDocumentTitle.localeCompare(b.value._folderOrDocumentTitle);
|
|
79
|
-
} else if (sortKey === 'createdAt') {
|
|
80
|
-
result = new Date(a.value.createdAt || '').getTime() - new Date(b.value.createdAt || '').getTime();
|
|
81
|
-
} else if (sortKey === 'updatedAt') {
|
|
82
|
-
result = new Date(a.value.updatedAt || '').getTime() - new Date(b.value.updatedAt || '').getTime();
|
|
83
|
-
}
|
|
84
|
-
return isDesc ? -result : result;
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
//# sourceMappingURL=getFolderData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/folders/utils/getFolderData.ts"],"sourcesContent":["import type { CollectionSlug } from '../../index.js'\nimport type { PayloadRequest, Where } from '../../types/index.js'\nimport type { FolderOrDocument, FolderSortKeys, GetFolderDataResult } from '../types.js'\n\nimport { parseDocumentID } from '../../index.js'\nimport { getFolderBreadcrumbs } from './getFolderBreadcrumbs.js'\nimport { queryDocumentsAndFoldersFromJoin } from './getFoldersAndDocumentsFromJoin.js'\nimport { getOrphanedDocs } from './getOrphanedDocs.js'\n\ntype Args = {\n /**\n * Specify to query documents from a specific collection\n * @default undefined\n * @example 'posts'\n */\n collectionSlug?: CollectionSlug\n /**\n * Optional where clause to filter documents by\n * @default undefined\n */\n documentWhere?: Where\n /**\n * The ID of the folder to query documents from\n * @default undefined\n */\n folderID?: number | string\n /** Optional where clause to filter subfolders by\n * @default undefined\n */\n folderWhere?: Where\n req: PayloadRequest\n sort: FolderSortKeys\n}\n/**\n * Query for documents, subfolders and breadcrumbs for a given folder\n */\nexport const getFolderData = async ({\n collectionSlug,\n documentWhere,\n folderID: _folderID,\n folderWhere,\n req,\n sort = 'name',\n}: Args): Promise<GetFolderDataResult> => {\n const { payload } = req\n\n if (payload.config.folders === false) {\n throw new Error('Folders are not enabled')\n }\n\n const parentFolderID = parseDocumentID({\n id: _folderID,\n collectionSlug: payload.config.folders.slug,\n payload,\n })\n\n const breadcrumbsPromise = getFolderBreadcrumbs({\n folderID: parentFolderID,\n req,\n })\n\n if (parentFolderID) {\n // subfolders and documents are queried together\n const documentAndSubfolderPromise = queryDocumentsAndFoldersFromJoin({\n documentWhere,\n folderWhere,\n parentFolderID,\n req,\n })\n const [breadcrumbs, result] = await Promise.all([\n breadcrumbsPromise,\n documentAndSubfolderPromise,\n ])\n\n return {\n breadcrumbs,\n documents: sortDocs({ docs: result.documents, sort }),\n folderAssignedCollections: result.folderAssignedCollections,\n subfolders: sortDocs({ docs: result.subfolders, sort }),\n }\n } else {\n const subfoldersPromise = getOrphanedDocs({\n collectionSlug: payload.config.folders.slug,\n folderFieldName: payload.config.folders.fieldName,\n req,\n where: folderWhere,\n })\n const [breadcrumbs, subfolders] = await Promise.all([breadcrumbsPromise, subfoldersPromise])\n\n return {\n breadcrumbs,\n documents: [],\n folderAssignedCollections: collectionSlug ? [collectionSlug] : undefined,\n subfolders: sortDocs({ docs: subfolders, sort }),\n }\n }\n}\n\nfunction sortDocs({\n docs,\n sort,\n}: {\n docs: FolderOrDocument[]\n sort?: FolderSortKeys\n}): FolderOrDocument[] {\n if (!sort) {\n return docs\n }\n const isDesc = typeof sort === 'string' && sort.startsWith('-')\n const sortKey = (isDesc ? sort.slice(1) : sort) as FolderSortKeys\n\n return docs.sort((a, b) => {\n let result = 0\n if (sortKey === 'name') {\n result = a.value._folderOrDocumentTitle.localeCompare(b.value._folderOrDocumentTitle)\n } else if (sortKey === 'createdAt') {\n result =\n new Date(a.value.createdAt || '').getTime() - new Date(b.value.createdAt || '').getTime()\n } else if (sortKey === 'updatedAt') {\n result =\n new Date(a.value.updatedAt || '').getTime() - new Date(b.value.updatedAt || '').getTime()\n }\n return isDesc ? -result : result\n })\n}\n"],"names":["parseDocumentID","getFolderBreadcrumbs","queryDocumentsAndFoldersFromJoin","getOrphanedDocs","getFolderData","collectionSlug","documentWhere","folderID","_folderID","folderWhere","req","sort","payload","config","folders","Error","parentFolderID","id","slug","breadcrumbsPromise","documentAndSubfolderPromise","breadcrumbs","result","Promise","all","documents","sortDocs","docs","folderAssignedCollections","subfolders","subfoldersPromise","folderFieldName","fieldName","where","undefined","isDesc","startsWith","sortKey","slice","a","b","value","_folderOrDocumentTitle","localeCompare","Date","createdAt","getTime","updatedAt"],"mappings":"AAIA,SAASA,eAAe,QAAQ,iBAAgB;AAChD,SAASC,oBAAoB,QAAQ,4BAA2B;AAChE,SAASC,gCAAgC,QAAQ,sCAAqC;AACtF,SAASC,eAAe,QAAQ,uBAAsB;AA0BtD;;CAEC,GACD,OAAO,MAAMC,gBAAgB,OAAO,EAClCC,cAAc,EACdC,aAAa,EACbC,UAAUC,SAAS,EACnBC,WAAW,EACXC,GAAG,EACHC,OAAO,MAAM,EACR;IACL,MAAM,EAAEC,OAAO,EAAE,GAAGF;IAEpB,IAAIE,QAAQC,MAAM,CAACC,OAAO,KAAK,OAAO;QACpC,MAAM,IAAIC,MAAM;IAClB;IAEA,MAAMC,iBAAiBhB,gBAAgB;QACrCiB,IAAIT;QACJH,gBAAgBO,QAAQC,MAAM,CAACC,OAAO,CAACI,IAAI;QAC3CN;IACF;IAEA,MAAMO,qBAAqBlB,qBAAqB;QAC9CM,UAAUS;QACVN;IACF;IAEA,IAAIM,gBAAgB;QAClB,gDAAgD;QAChD,MAAMI,8BAA8BlB,iCAAiC;YACnEI;YACAG;YACAO;YACAN;QACF;QACA,MAAM,CAACW,aAAaC,OAAO,GAAG,MAAMC,QAAQC,GAAG,CAAC;YAC9CL;YACAC;SACD;QAED,OAAO;YACLC;YACAI,WAAWC,SAAS;gBAAEC,MAAML,OAAOG,SAAS;gBAAEd;YAAK;YACnDiB,2BAA2BN,OAAOM,yBAAyB;YAC3DC,YAAYH,SAAS;gBAAEC,MAAML,OAAOO,UAAU;gBAAElB;YAAK;QACvD;IACF,OAAO;QACL,MAAMmB,oBAAoB3B,gBAAgB;YACxCE,gBAAgBO,QAAQC,MAAM,CAACC,OAAO,CAACI,IAAI;YAC3Ca,iBAAiBnB,QAAQC,MAAM,CAACC,OAAO,CAACkB,SAAS;YACjDtB;YACAuB,OAAOxB;QACT;QACA,MAAM,CAACY,aAAaQ,WAAW,GAAG,MAAMN,QAAQC,GAAG,CAAC;YAACL;YAAoBW;SAAkB;QAE3F,OAAO;YACLT;YACAI,WAAW,EAAE;YACbG,2BAA2BvB,iBAAiB;gBAACA;aAAe,GAAG6B;YAC/DL,YAAYH,SAAS;gBAAEC,MAAME;gBAAYlB;YAAK;QAChD;IACF;AACF,EAAC;AAED,SAASe,SAAS,EAChBC,IAAI,EACJhB,IAAI,EAIL;IACC,IAAI,CAACA,MAAM;QACT,OAAOgB;IACT;IACA,MAAMQ,SAAS,OAAOxB,SAAS,YAAYA,KAAKyB,UAAU,CAAC;IAC3D,MAAMC,UAAWF,SAASxB,KAAK2B,KAAK,CAAC,KAAK3B;IAE1C,OAAOgB,KAAKhB,IAAI,CAAC,CAAC4B,GAAGC;QACnB,IAAIlB,SAAS;QACb,IAAIe,YAAY,QAAQ;YACtBf,SAASiB,EAAEE,KAAK,CAACC,sBAAsB,CAACC,aAAa,CAACH,EAAEC,KAAK,CAACC,sBAAsB;QACtF,OAAO,IAAIL,YAAY,aAAa;YAClCf,SACE,IAAIsB,KAAKL,EAAEE,KAAK,CAACI,SAAS,IAAI,IAAIC,OAAO,KAAK,IAAIF,KAAKJ,EAAEC,KAAK,CAACI,SAAS,IAAI,IAAIC,OAAO;QAC3F,OAAO,IAAIT,YAAY,aAAa;YAClCf,SACE,IAAIsB,KAAKL,EAAEE,KAAK,CAACM,SAAS,IAAI,IAAID,OAAO,KAAK,IAAIF,KAAKJ,EAAEC,KAAK,CAACM,SAAS,IAAI,IAAID,OAAO;QAC3F;QACA,OAAOX,SAAS,CAACb,SAASA;IAC5B;AACF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { CollectionSlug } from '../../index.js';
|
|
2
|
-
import type { PayloadRequest, Where } from '../../types/index.js';
|
|
3
|
-
import type { FolderOrDocument } from '../types.js';
|
|
4
|
-
type QueryDocumentsAndFoldersResults = {
|
|
5
|
-
documents: FolderOrDocument[];
|
|
6
|
-
folderAssignedCollections: CollectionSlug[];
|
|
7
|
-
subfolders: FolderOrDocument[];
|
|
8
|
-
};
|
|
9
|
-
type QueryDocumentsAndFoldersArgs = {
|
|
10
|
-
/**
|
|
11
|
-
* Optional where clause to filter documents by
|
|
12
|
-
* @default undefined
|
|
13
|
-
*/
|
|
14
|
-
documentWhere?: Where;
|
|
15
|
-
/** Optional where clause to filter subfolders by
|
|
16
|
-
* @default undefined
|
|
17
|
-
*/
|
|
18
|
-
folderWhere?: Where;
|
|
19
|
-
parentFolderID: number | string;
|
|
20
|
-
req: PayloadRequest;
|
|
21
|
-
};
|
|
22
|
-
export declare function queryDocumentsAndFoldersFromJoin({ documentWhere, folderWhere, parentFolderID, req, }: QueryDocumentsAndFoldersArgs): Promise<QueryDocumentsAndFoldersResults>;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=getFoldersAndDocumentsFromJoin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getFoldersAndDocumentsFromJoin.d.ts","sourceRoot":"","sources":["../../../src/folders/utils/getFoldersAndDocumentsFromJoin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAY,cAAc,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAMnD,KAAK,+BAA+B,GAAG;IACrC,SAAS,EAAE,gBAAgB,EAAE,CAAA;IAC7B,yBAAyB,EAAE,cAAc,EAAE,CAAA;IAC3C,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B,CAAA;AACD,KAAK,4BAA4B,GAAG;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE,KAAK,CAAA;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,cAAc,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,wBAAsB,gCAAgC,CAAC,EACrD,aAAa,EACb,WAAW,EACX,cAAc,EACd,GAAG,GACJ,EAAE,4BAA4B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAmEzE"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { APIError } from '../../errors/APIError.js';
|
|
2
|
-
import { combineWhereConstraints } from '../../utilities/combineWhereConstraints.js';
|
|
3
|
-
import { formatFolderOrDocumentItem } from './formatFolderOrDocumentItem.js';
|
|
4
|
-
export async function queryDocumentsAndFoldersFromJoin({ documentWhere, folderWhere, parentFolderID, req }) {
|
|
5
|
-
const { payload, user } = req;
|
|
6
|
-
if (payload.config.folders === false) {
|
|
7
|
-
throw new APIError('Folders are not enabled', 500);
|
|
8
|
-
}
|
|
9
|
-
const subfolderDoc = await payload.find({
|
|
10
|
-
collection: payload.config.folders.slug,
|
|
11
|
-
depth: 1,
|
|
12
|
-
joins: {
|
|
13
|
-
documentsAndFolders: {
|
|
14
|
-
limit: 100_000_000,
|
|
15
|
-
sort: 'name',
|
|
16
|
-
where: combineWhereConstraints([
|
|
17
|
-
folderWhere,
|
|
18
|
-
documentWhere
|
|
19
|
-
], 'or')
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
limit: 1,
|
|
23
|
-
overrideAccess: false,
|
|
24
|
-
req,
|
|
25
|
-
select: {
|
|
26
|
-
documentsAndFolders: true,
|
|
27
|
-
folderType: true
|
|
28
|
-
},
|
|
29
|
-
user,
|
|
30
|
-
where: {
|
|
31
|
-
id: {
|
|
32
|
-
equals: parentFolderID
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const childrenDocs = subfolderDoc?.docs[0]?.documentsAndFolders?.docs || [];
|
|
37
|
-
const results = childrenDocs.reduce((acc, doc)=>{
|
|
38
|
-
if (!payload.config.folders) {
|
|
39
|
-
return acc;
|
|
40
|
-
}
|
|
41
|
-
const { relationTo, value } = doc;
|
|
42
|
-
const item = formatFolderOrDocumentItem({
|
|
43
|
-
folderFieldName: payload.config.folders.fieldName,
|
|
44
|
-
isUpload: Boolean(payload.collections[relationTo].config.upload),
|
|
45
|
-
relationTo,
|
|
46
|
-
useAsTitle: payload.collections[relationTo].config.admin?.useAsTitle,
|
|
47
|
-
value
|
|
48
|
-
});
|
|
49
|
-
if (relationTo === payload.config.folders.slug) {
|
|
50
|
-
acc.subfolders.push(item);
|
|
51
|
-
} else {
|
|
52
|
-
acc.documents.push(item);
|
|
53
|
-
}
|
|
54
|
-
return acc;
|
|
55
|
-
}, {
|
|
56
|
-
documents: [],
|
|
57
|
-
subfolders: []
|
|
58
|
-
});
|
|
59
|
-
return {
|
|
60
|
-
documents: results.documents,
|
|
61
|
-
folderAssignedCollections: subfolderDoc?.docs[0]?.folderType || [],
|
|
62
|
-
subfolders: results.subfolders
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=getFoldersAndDocumentsFromJoin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/folders/utils/getFoldersAndDocumentsFromJoin.ts"],"sourcesContent":["import type { PaginatedDocs } from '../../database/types.js'\nimport type { CollectionSlug } from '../../index.js'\nimport type { Document, PayloadRequest, Where } from '../../types/index.js'\nimport type { FolderOrDocument } from '../types.js'\n\nimport { APIError } from '../../errors/APIError.js'\nimport { combineWhereConstraints } from '../../utilities/combineWhereConstraints.js'\nimport { formatFolderOrDocumentItem } from './formatFolderOrDocumentItem.js'\n\ntype QueryDocumentsAndFoldersResults = {\n documents: FolderOrDocument[]\n folderAssignedCollections: CollectionSlug[]\n subfolders: FolderOrDocument[]\n}\ntype QueryDocumentsAndFoldersArgs = {\n /**\n * Optional where clause to filter documents by\n * @default undefined\n */\n documentWhere?: Where\n /** Optional where clause to filter subfolders by\n * @default undefined\n */\n folderWhere?: Where\n parentFolderID: number | string\n req: PayloadRequest\n}\nexport async function queryDocumentsAndFoldersFromJoin({\n documentWhere,\n folderWhere,\n parentFolderID,\n req,\n}: QueryDocumentsAndFoldersArgs): Promise<QueryDocumentsAndFoldersResults> {\n const { payload, user } = req\n\n if (payload.config.folders === false) {\n throw new APIError('Folders are not enabled', 500)\n }\n\n const subfolderDoc = (await payload.find({\n collection: payload.config.folders.slug,\n depth: 1,\n joins: {\n documentsAndFolders: {\n limit: 100_000_000,\n sort: 'name',\n where: combineWhereConstraints([folderWhere, documentWhere], 'or'),\n },\n },\n limit: 1,\n overrideAccess: false,\n req,\n select: {\n documentsAndFolders: true,\n folderType: true,\n },\n user,\n where: {\n id: {\n equals: parentFolderID,\n },\n },\n })) as PaginatedDocs<Document>\n\n const childrenDocs = subfolderDoc?.docs[0]?.documentsAndFolders?.docs || []\n\n const results: QueryDocumentsAndFoldersResults = childrenDocs.reduce(\n (acc: QueryDocumentsAndFoldersResults, doc: Document) => {\n if (!payload.config.folders) {\n return acc\n }\n const { relationTo, value } = doc\n const item = formatFolderOrDocumentItem({\n folderFieldName: payload.config.folders.fieldName,\n isUpload: Boolean(payload.collections[relationTo]!.config.upload),\n relationTo,\n useAsTitle: payload.collections[relationTo]!.config.admin?.useAsTitle,\n value,\n })\n\n if (relationTo === payload.config.folders.slug) {\n acc.subfolders.push(item)\n } else {\n acc.documents.push(item)\n }\n\n return acc\n },\n {\n documents: [],\n subfolders: [],\n },\n )\n\n return {\n documents: results.documents,\n folderAssignedCollections: subfolderDoc?.docs[0]?.folderType || [],\n subfolders: results.subfolders,\n }\n}\n"],"names":["APIError","combineWhereConstraints","formatFolderOrDocumentItem","queryDocumentsAndFoldersFromJoin","documentWhere","folderWhere","parentFolderID","req","payload","user","config","folders","subfolderDoc","find","collection","slug","depth","joins","documentsAndFolders","limit","sort","where","overrideAccess","select","folderType","id","equals","childrenDocs","docs","results","reduce","acc","doc","relationTo","value","item","folderFieldName","fieldName","isUpload","Boolean","collections","upload","useAsTitle","admin","subfolders","push","documents","folderAssignedCollections"],"mappings":"AAKA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,uBAAuB,QAAQ,6CAA4C;AACpF,SAASC,0BAA0B,QAAQ,kCAAiC;AAoB5E,OAAO,eAAeC,iCAAiC,EACrDC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,GAAG,EAC0B;IAC7B,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGF;IAE1B,IAAIC,QAAQE,MAAM,CAACC,OAAO,KAAK,OAAO;QACpC,MAAM,IAAIX,SAAS,2BAA2B;IAChD;IAEA,MAAMY,eAAgB,MAAMJ,QAAQK,IAAI,CAAC;QACvCC,YAAYN,QAAQE,MAAM,CAACC,OAAO,CAACI,IAAI;QACvCC,OAAO;QACPC,OAAO;YACLC,qBAAqB;gBACnBC,OAAO;gBACPC,MAAM;gBACNC,OAAOpB,wBAAwB;oBAACI;oBAAaD;iBAAc,EAAE;YAC/D;QACF;QACAe,OAAO;QACPG,gBAAgB;QAChBf;QACAgB,QAAQ;YACNL,qBAAqB;YACrBM,YAAY;QACd;QACAf;QACAY,OAAO;YACLI,IAAI;gBACFC,QAAQpB;YACV;QACF;IACF;IAEA,MAAMqB,eAAef,cAAcgB,IAAI,CAAC,EAAE,EAAEV,qBAAqBU,QAAQ,EAAE;IAE3E,MAAMC,UAA2CF,aAAaG,MAAM,CAClE,CAACC,KAAsCC;QACrC,IAAI,CAACxB,QAAQE,MAAM,CAACC,OAAO,EAAE;YAC3B,OAAOoB;QACT;QACA,MAAM,EAAEE,UAAU,EAAEC,KAAK,EAAE,GAAGF;QAC9B,MAAMG,OAAOjC,2BAA2B;YACtCkC,iBAAiB5B,QAAQE,MAAM,CAACC,OAAO,CAAC0B,SAAS;YACjDC,UAAUC,QAAQ/B,QAAQgC,WAAW,CAACP,WAAW,CAAEvB,MAAM,CAAC+B,MAAM;YAChER;YACAS,YAAYlC,QAAQgC,WAAW,CAACP,WAAW,CAAEvB,MAAM,CAACiC,KAAK,EAAED;YAC3DR;QACF;QAEA,IAAID,eAAezB,QAAQE,MAAM,CAACC,OAAO,CAACI,IAAI,EAAE;YAC9CgB,IAAIa,UAAU,CAACC,IAAI,CAACV;QACtB,OAAO;YACLJ,IAAIe,SAAS,CAACD,IAAI,CAACV;QACrB;QAEA,OAAOJ;IACT,GACA;QACEe,WAAW,EAAE;QACbF,YAAY,EAAE;IAChB;IAGF,OAAO;QACLE,WAAWjB,QAAQiB,SAAS;QAC5BC,2BAA2BnC,cAAcgB,IAAI,CAAC,EAAE,EAAEJ,cAAc,EAAE;QAClEoB,YAAYf,QAAQe,UAAU;IAChC;AACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { CollectionSlug, PayloadRequest, Where } from '../../index.js';
|
|
2
|
-
import type { FolderOrDocument } from '../types.js';
|
|
3
|
-
type Args = {
|
|
4
|
-
collectionSlug: CollectionSlug;
|
|
5
|
-
folderFieldName: string;
|
|
6
|
-
req: PayloadRequest;
|
|
7
|
-
/**
|
|
8
|
-
* Optional where clause to filter documents by
|
|
9
|
-
* @default undefined
|
|
10
|
-
*/
|
|
11
|
-
where?: Where;
|
|
12
|
-
};
|
|
13
|
-
export declare function getOrphanedDocs({ collectionSlug, folderFieldName, req, where, }: Args): Promise<FolderOrDocument[]>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=getOrphanedDocs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getOrphanedDocs.d.ts","sourceRoot":"","sources":["../../../src/folders/utils/getOrphanedDocs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAKnD,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,cAAc,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AACD,wBAAsB,eAAe,CAAC,EACpC,cAAc,EACd,eAAe,EACf,GAAG,EACH,KAAK,GACN,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAwCpC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { combineWhereConstraints } from '../../utilities/combineWhereConstraints.js';
|
|
2
|
-
import { formatFolderOrDocumentItem } from './formatFolderOrDocumentItem.js';
|
|
3
|
-
export async function getOrphanedDocs({ collectionSlug, folderFieldName, req, where }) {
|
|
4
|
-
const { payload, user } = req;
|
|
5
|
-
const noParentFolderConstraint = {
|
|
6
|
-
or: [
|
|
7
|
-
{
|
|
8
|
-
[folderFieldName]: {
|
|
9
|
-
exists: false
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
[folderFieldName]: {
|
|
14
|
-
equals: null
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
]
|
|
18
|
-
};
|
|
19
|
-
const orphanedFolders = await payload.find({
|
|
20
|
-
collection: collectionSlug,
|
|
21
|
-
limit: 0,
|
|
22
|
-
overrideAccess: false,
|
|
23
|
-
req,
|
|
24
|
-
sort: payload.collections[collectionSlug]?.config.admin.useAsTitle,
|
|
25
|
-
user,
|
|
26
|
-
where: where ? combineWhereConstraints([
|
|
27
|
-
noParentFolderConstraint,
|
|
28
|
-
where
|
|
29
|
-
]) : noParentFolderConstraint
|
|
30
|
-
});
|
|
31
|
-
return orphanedFolders?.docs.map((doc)=>formatFolderOrDocumentItem({
|
|
32
|
-
folderFieldName,
|
|
33
|
-
isUpload: Boolean(payload.collections[collectionSlug]?.config.upload),
|
|
34
|
-
relationTo: collectionSlug,
|
|
35
|
-
useAsTitle: payload.collections[collectionSlug]?.config.admin.useAsTitle,
|
|
36
|
-
value: doc
|
|
37
|
-
})) || [];
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
//# sourceMappingURL=getOrphanedDocs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/folders/utils/getOrphanedDocs.ts"],"sourcesContent":["import type { CollectionSlug, PayloadRequest, Where } from '../../index.js'\nimport type { FolderOrDocument } from '../types.js'\n\nimport { combineWhereConstraints } from '../../utilities/combineWhereConstraints.js'\nimport { formatFolderOrDocumentItem } from './formatFolderOrDocumentItem.js'\n\ntype Args = {\n collectionSlug: CollectionSlug\n folderFieldName: string\n req: PayloadRequest\n /**\n * Optional where clause to filter documents by\n * @default undefined\n */\n where?: Where\n}\nexport async function getOrphanedDocs({\n collectionSlug,\n folderFieldName,\n req,\n where,\n}: Args): Promise<FolderOrDocument[]> {\n const { payload, user } = req\n const noParentFolderConstraint: Where = {\n or: [\n {\n [folderFieldName]: {\n exists: false,\n },\n },\n {\n [folderFieldName]: {\n equals: null,\n },\n },\n ],\n }\n\n const orphanedFolders = await payload.find({\n collection: collectionSlug,\n limit: 0,\n overrideAccess: false,\n req,\n sort: payload.collections[collectionSlug]?.config.admin.useAsTitle,\n user,\n where: where\n ? combineWhereConstraints([noParentFolderConstraint, where])\n : noParentFolderConstraint,\n })\n\n return (\n orphanedFolders?.docs.map((doc) =>\n formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: Boolean(payload.collections[collectionSlug]?.config.upload),\n relationTo: collectionSlug,\n useAsTitle: payload.collections[collectionSlug]?.config.admin.useAsTitle,\n value: doc,\n }),\n ) || []\n )\n}\n"],"names":["combineWhereConstraints","formatFolderOrDocumentItem","getOrphanedDocs","collectionSlug","folderFieldName","req","where","payload","user","noParentFolderConstraint","or","exists","equals","orphanedFolders","find","collection","limit","overrideAccess","sort","collections","config","admin","useAsTitle","docs","map","doc","isUpload","Boolean","upload","relationTo","value"],"mappings":"AAGA,SAASA,uBAAuB,QAAQ,6CAA4C;AACpF,SAASC,0BAA0B,QAAQ,kCAAiC;AAY5E,OAAO,eAAeC,gBAAgB,EACpCC,cAAc,EACdC,eAAe,EACfC,GAAG,EACHC,KAAK,EACA;IACL,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGH;IAC1B,MAAMI,2BAAkC;QACtCC,IAAI;YACF;gBACE,CAACN,gBAAgB,EAAE;oBACjBO,QAAQ;gBACV;YACF;YACA;gBACE,CAACP,gBAAgB,EAAE;oBACjBQ,QAAQ;gBACV;YACF;SACD;IACH;IAEA,MAAMC,kBAAkB,MAAMN,QAAQO,IAAI,CAAC;QACzCC,YAAYZ;QACZa,OAAO;QACPC,gBAAgB;QAChBZ;QACAa,MAAMX,QAAQY,WAAW,CAAChB,eAAe,EAAEiB,OAAOC,MAAMC;QACxDd;QACAF,OAAOA,QACHN,wBAAwB;YAACS;YAA0BH;SAAM,IACzDG;IACN;IAEA,OACEI,iBAAiBU,KAAKC,IAAI,CAACC,MACzBxB,2BAA2B;YACzBG;YACAsB,UAAUC,QAAQpB,QAAQY,WAAW,CAAChB,eAAe,EAAEiB,OAAOQ;YAC9DC,YAAY1B;YACZmB,YAAYf,QAAQY,WAAW,CAAChB,eAAe,EAAEiB,OAAOC,MAAMC;YAC9DQ,OAAOL;QACT,OACG,EAAE;AAEX"}
|