@ruya.sa/plugin-import-export 3.71.3
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/README.md +7 -0
- package/dist/components/CollectionField/index.d.ts +3 -0
- package/dist/components/CollectionField/index.d.ts.map +1 -0
- package/dist/components/CollectionField/index.js +29 -0
- package/dist/components/CollectionField/index.js.map +1 -0
- package/dist/components/ExportListMenuItem/index.d.ts +6 -0
- package/dist/components/ExportListMenuItem/index.d.ts.map +1 -0
- package/dist/components/ExportListMenuItem/index.js +44 -0
- package/dist/components/ExportListMenuItem/index.js.map +1 -0
- package/dist/components/ExportPreview/index.d.ts +4 -0
- package/dist/components/ExportPreview/index.d.ts.map +1 -0
- package/dist/components/ExportPreview/index.js +252 -0
- package/dist/components/ExportPreview/index.js.map +1 -0
- package/dist/components/ExportPreview/index.scss +36 -0
- package/dist/components/ExportSaveButton/index.d.ts +3 -0
- package/dist/components/ExportSaveButton/index.d.ts.map +1 -0
- package/dist/components/ExportSaveButton/index.js +110 -0
- package/dist/components/ExportSaveButton/index.js.map +1 -0
- package/dist/components/FieldsToExport/index.d.ts +3 -0
- package/dist/components/FieldsToExport/index.d.ts.map +1 -0
- package/dist/components/FieldsToExport/index.js +87 -0
- package/dist/components/FieldsToExport/index.js.map +1 -0
- package/dist/components/FieldsToExport/index.scss +0 -0
- package/dist/components/FieldsToExport/reduceFields.d.ts +13 -0
- package/dist/components/FieldsToExport/reduceFields.d.ts.map +1 -0
- package/dist/components/FieldsToExport/reduceFields.js +109 -0
- package/dist/components/FieldsToExport/reduceFields.js.map +1 -0
- package/dist/components/ImportCollectionField/index.d.ts +3 -0
- package/dist/components/ImportCollectionField/index.d.ts.map +1 -0
- package/dist/components/ImportCollectionField/index.js +17 -0
- package/dist/components/ImportCollectionField/index.js.map +1 -0
- package/dist/components/ImportExportProvider/index.d.ts +12 -0
- package/dist/components/ImportExportProvider/index.d.ts.map +1 -0
- package/dist/components/ImportExportProvider/index.js +20 -0
- package/dist/components/ImportExportProvider/index.js.map +1 -0
- package/dist/components/ImportListMenuItem/index.d.ts +6 -0
- package/dist/components/ImportListMenuItem/index.d.ts.map +1 -0
- package/dist/components/ImportListMenuItem/index.js +48 -0
- package/dist/components/ImportListMenuItem/index.js.map +1 -0
- package/dist/components/ImportPreview/index.d.ts +4 -0
- package/dist/components/ImportPreview/index.d.ts.map +1 -0
- package/dist/components/ImportPreview/index.js +624 -0
- package/dist/components/ImportPreview/index.js.map +1 -0
- package/dist/components/ImportPreview/index.scss +41 -0
- package/dist/components/ImportSaveButton/index.d.ts +2 -0
- package/dist/components/ImportSaveButton/index.d.ts.map +1 -0
- package/dist/components/ImportSaveButton/index.js +18 -0
- package/dist/components/ImportSaveButton/index.js.map +1 -0
- package/dist/components/Page/index.d.ts +4 -0
- package/dist/components/Page/index.d.ts.map +1 -0
- package/dist/components/Page/index.js +40 -0
- package/dist/components/Page/index.js.map +1 -0
- package/dist/components/Page/index.scss +5 -0
- package/dist/components/SelectionToUseField/index.d.ts +3 -0
- package/dist/components/SelectionToUseField/index.d.ts.map +1 -0
- package/dist/components/SelectionToUseField/index.js +128 -0
- package/dist/components/SelectionToUseField/index.js.map +1 -0
- package/dist/components/SortBy/index.d.ts +4 -0
- package/dist/components/SortBy/index.d.ts.map +1 -0
- package/dist/components/SortBy/index.js +133 -0
- package/dist/components/SortBy/index.js.map +1 -0
- package/dist/components/SortBy/index.scss +3 -0
- package/dist/components/SortOrder/index.d.ts +4 -0
- package/dist/components/SortOrder/index.d.ts.map +1 -0
- package/dist/components/SortOrder/index.js +121 -0
- package/dist/components/SortOrder/index.js.map +1 -0
- package/dist/components/SortOrder/index.scss +3 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +21 -0
- package/dist/constants.js.map +1 -0
- package/dist/export/batchProcessor.d.ts +107 -0
- package/dist/export/batchProcessor.d.ts.map +1 -0
- package/dist/export/batchProcessor.js +187 -0
- package/dist/export/batchProcessor.js.map +1 -0
- package/dist/export/createExport.d.ts +37 -0
- package/dist/export/createExport.d.ts.map +1 -0
- package/dist/export/createExport.js +385 -0
- package/dist/export/createExport.js.map +1 -0
- package/dist/export/getCreateExportCollectionTask.d.ts +16 -0
- package/dist/export/getCreateExportCollectionTask.d.ts.map +1 -0
- package/dist/export/getCreateExportCollectionTask.js +35 -0
- package/dist/export/getCreateExportCollectionTask.js.map +1 -0
- package/dist/export/getExportCollection.d.ts +8 -0
- package/dist/export/getExportCollection.d.ts.map +1 -0
- package/dist/export/getExportCollection.js +100 -0
- package/dist/export/getExportCollection.js.map +1 -0
- package/dist/export/getFields.d.ts +10 -0
- package/dist/export/getFields.d.ts.map +1 -0
- package/dist/export/getFields.js +244 -0
- package/dist/export/getFields.js.map +1 -0
- package/dist/export/handleDownload.d.ts +3 -0
- package/dist/export/handleDownload.d.ts.map +1 -0
- package/dist/export/handleDownload.js +42 -0
- package/dist/export/handleDownload.js.map +1 -0
- package/dist/export/handlePreview.d.ts +3 -0
- package/dist/export/handlePreview.d.ts.map +1 -0
- package/dist/export/handlePreview.js +163 -0
- package/dist/export/handlePreview.js.map +1 -0
- package/dist/exports/rsc.d.ts +15 -0
- package/dist/exports/rsc.d.ts.map +1 -0
- package/dist/exports/rsc.js +16 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/exports/types.d.ts +2 -0
- package/dist/exports/types.d.ts.map +1 -0
- package/dist/exports/types.js +3 -0
- package/dist/exports/types.js.map +1 -0
- package/dist/import/batchProcessor.d.ts +46 -0
- package/dist/import/batchProcessor.d.ts.map +1 -0
- package/dist/import/batchProcessor.js +529 -0
- package/dist/import/batchProcessor.js.map +1 -0
- package/dist/import/createImport.d.ts +45 -0
- package/dist/import/createImport.d.ts.map +1 -0
- package/dist/import/createImport.js +175 -0
- package/dist/import/createImport.js.map +1 -0
- package/dist/import/getCreateImportCollectionTask.d.ts +13 -0
- package/dist/import/getCreateImportCollectionTask.d.ts.map +1 -0
- package/dist/import/getCreateImportCollectionTask.js +81 -0
- package/dist/import/getCreateImportCollectionTask.js.map +1 -0
- package/dist/import/getFields.d.ts +7 -0
- package/dist/import/getFields.d.ts.map +1 -0
- package/dist/import/getFields.js +150 -0
- package/dist/import/getFields.js.map +1 -0
- package/dist/import/getImportCollection.d.ts +8 -0
- package/dist/import/getImportCollection.d.ts.map +1 -0
- package/dist/import/getImportCollection.js +258 -0
- package/dist/import/getImportCollection.js.map +1 -0
- package/dist/import/handlePreview.d.ts +3 -0
- package/dist/import/handlePreview.d.ts.map +1 -0
- package/dist/import/handlePreview.js +94 -0
- package/dist/import/handlePreview.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +120 -0
- package/dist/index.js.map +1 -0
- package/dist/translations/index.d.ts +6 -0
- package/dist/translations/index.d.ts.map +1 -0
- package/dist/translations/index.js +84 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/languages/ar.d.ts +4 -0
- package/dist/translations/languages/ar.d.ts.map +1 -0
- package/dist/translations/languages/ar.js +48 -0
- package/dist/translations/languages/ar.js.map +1 -0
- package/dist/translations/languages/az.d.ts +4 -0
- package/dist/translations/languages/az.d.ts.map +1 -0
- package/dist/translations/languages/az.js +48 -0
- package/dist/translations/languages/az.js.map +1 -0
- package/dist/translations/languages/bg.d.ts +4 -0
- package/dist/translations/languages/bg.d.ts.map +1 -0
- package/dist/translations/languages/bg.js +48 -0
- package/dist/translations/languages/bg.js.map +1 -0
- package/dist/translations/languages/bnBd.d.ts +4 -0
- package/dist/translations/languages/bnBd.d.ts.map +1 -0
- package/dist/translations/languages/bnBd.js +48 -0
- package/dist/translations/languages/bnBd.js.map +1 -0
- package/dist/translations/languages/bnIn.d.ts +4 -0
- package/dist/translations/languages/bnIn.d.ts.map +1 -0
- package/dist/translations/languages/bnIn.js +48 -0
- package/dist/translations/languages/bnIn.js.map +1 -0
- package/dist/translations/languages/ca.d.ts +4 -0
- package/dist/translations/languages/ca.d.ts.map +1 -0
- package/dist/translations/languages/ca.js +48 -0
- package/dist/translations/languages/ca.js.map +1 -0
- package/dist/translations/languages/cs.d.ts +4 -0
- package/dist/translations/languages/cs.d.ts.map +1 -0
- package/dist/translations/languages/cs.js +48 -0
- package/dist/translations/languages/cs.js.map +1 -0
- package/dist/translations/languages/da.d.ts +4 -0
- package/dist/translations/languages/da.d.ts.map +1 -0
- package/dist/translations/languages/da.js +48 -0
- package/dist/translations/languages/da.js.map +1 -0
- package/dist/translations/languages/de.d.ts +4 -0
- package/dist/translations/languages/de.d.ts.map +1 -0
- package/dist/translations/languages/de.js +48 -0
- package/dist/translations/languages/de.js.map +1 -0
- package/dist/translations/languages/en.d.ts +45 -0
- package/dist/translations/languages/en.d.ts.map +1 -0
- package/dist/translations/languages/en.js +48 -0
- package/dist/translations/languages/en.js.map +1 -0
- package/dist/translations/languages/es.d.ts +4 -0
- package/dist/translations/languages/es.d.ts.map +1 -0
- package/dist/translations/languages/es.js +48 -0
- package/dist/translations/languages/es.js.map +1 -0
- package/dist/translations/languages/et.d.ts +4 -0
- package/dist/translations/languages/et.d.ts.map +1 -0
- package/dist/translations/languages/et.js +48 -0
- package/dist/translations/languages/et.js.map +1 -0
- package/dist/translations/languages/fa.d.ts +4 -0
- package/dist/translations/languages/fa.d.ts.map +1 -0
- package/dist/translations/languages/fa.js +48 -0
- package/dist/translations/languages/fa.js.map +1 -0
- package/dist/translations/languages/fr.d.ts +4 -0
- package/dist/translations/languages/fr.d.ts.map +1 -0
- package/dist/translations/languages/fr.js +48 -0
- package/dist/translations/languages/fr.js.map +1 -0
- package/dist/translations/languages/he.d.ts +4 -0
- package/dist/translations/languages/he.d.ts.map +1 -0
- package/dist/translations/languages/he.js +48 -0
- package/dist/translations/languages/he.js.map +1 -0
- package/dist/translations/languages/hr.d.ts +4 -0
- package/dist/translations/languages/hr.d.ts.map +1 -0
- package/dist/translations/languages/hr.js +48 -0
- package/dist/translations/languages/hr.js.map +1 -0
- package/dist/translations/languages/hu.d.ts +4 -0
- package/dist/translations/languages/hu.d.ts.map +1 -0
- package/dist/translations/languages/hu.js +48 -0
- package/dist/translations/languages/hu.js.map +1 -0
- package/dist/translations/languages/hy.d.ts +4 -0
- package/dist/translations/languages/hy.d.ts.map +1 -0
- package/dist/translations/languages/hy.js +48 -0
- package/dist/translations/languages/hy.js.map +1 -0
- package/dist/translations/languages/id.d.ts +4 -0
- package/dist/translations/languages/id.d.ts.map +1 -0
- package/dist/translations/languages/id.js +48 -0
- package/dist/translations/languages/id.js.map +1 -0
- package/dist/translations/languages/is.d.ts +4 -0
- package/dist/translations/languages/is.d.ts.map +1 -0
- package/dist/translations/languages/is.js +48 -0
- package/dist/translations/languages/is.js.map +1 -0
- package/dist/translations/languages/it.d.ts +4 -0
- package/dist/translations/languages/it.d.ts.map +1 -0
- package/dist/translations/languages/it.js +48 -0
- package/dist/translations/languages/it.js.map +1 -0
- package/dist/translations/languages/ja.d.ts +4 -0
- package/dist/translations/languages/ja.d.ts.map +1 -0
- package/dist/translations/languages/ja.js +48 -0
- package/dist/translations/languages/ja.js.map +1 -0
- package/dist/translations/languages/ko.d.ts +4 -0
- package/dist/translations/languages/ko.d.ts.map +1 -0
- package/dist/translations/languages/ko.js +48 -0
- package/dist/translations/languages/ko.js.map +1 -0
- package/dist/translations/languages/lt.d.ts +4 -0
- package/dist/translations/languages/lt.d.ts.map +1 -0
- package/dist/translations/languages/lt.js +48 -0
- package/dist/translations/languages/lt.js.map +1 -0
- package/dist/translations/languages/lv.d.ts +4 -0
- package/dist/translations/languages/lv.d.ts.map +1 -0
- package/dist/translations/languages/lv.js +48 -0
- package/dist/translations/languages/lv.js.map +1 -0
- package/dist/translations/languages/my.d.ts +4 -0
- package/dist/translations/languages/my.d.ts.map +1 -0
- package/dist/translations/languages/my.js +48 -0
- package/dist/translations/languages/my.js.map +1 -0
- package/dist/translations/languages/nb.d.ts +4 -0
- package/dist/translations/languages/nb.d.ts.map +1 -0
- package/dist/translations/languages/nb.js +48 -0
- package/dist/translations/languages/nb.js.map +1 -0
- package/dist/translations/languages/nl.d.ts +4 -0
- package/dist/translations/languages/nl.d.ts.map +1 -0
- package/dist/translations/languages/nl.js +48 -0
- package/dist/translations/languages/nl.js.map +1 -0
- package/dist/translations/languages/pl.d.ts +4 -0
- package/dist/translations/languages/pl.d.ts.map +1 -0
- package/dist/translations/languages/pl.js +48 -0
- package/dist/translations/languages/pl.js.map +1 -0
- package/dist/translations/languages/pt.d.ts +4 -0
- package/dist/translations/languages/pt.d.ts.map +1 -0
- package/dist/translations/languages/pt.js +48 -0
- package/dist/translations/languages/pt.js.map +1 -0
- package/dist/translations/languages/ro.d.ts +4 -0
- package/dist/translations/languages/ro.d.ts.map +1 -0
- package/dist/translations/languages/ro.js +48 -0
- package/dist/translations/languages/ro.js.map +1 -0
- package/dist/translations/languages/rs.d.ts +4 -0
- package/dist/translations/languages/rs.d.ts.map +1 -0
- package/dist/translations/languages/rs.js +48 -0
- package/dist/translations/languages/rs.js.map +1 -0
- package/dist/translations/languages/rsLatin.d.ts +4 -0
- package/dist/translations/languages/rsLatin.d.ts.map +1 -0
- package/dist/translations/languages/rsLatin.js +48 -0
- package/dist/translations/languages/rsLatin.js.map +1 -0
- package/dist/translations/languages/ru.d.ts +4 -0
- package/dist/translations/languages/ru.d.ts.map +1 -0
- package/dist/translations/languages/ru.js +48 -0
- package/dist/translations/languages/ru.js.map +1 -0
- package/dist/translations/languages/sk.d.ts +4 -0
- package/dist/translations/languages/sk.d.ts.map +1 -0
- package/dist/translations/languages/sk.js +48 -0
- package/dist/translations/languages/sk.js.map +1 -0
- package/dist/translations/languages/sl.d.ts +4 -0
- package/dist/translations/languages/sl.d.ts.map +1 -0
- package/dist/translations/languages/sl.js +48 -0
- package/dist/translations/languages/sl.js.map +1 -0
- package/dist/translations/languages/sv.d.ts +4 -0
- package/dist/translations/languages/sv.d.ts.map +1 -0
- package/dist/translations/languages/sv.js +48 -0
- package/dist/translations/languages/sv.js.map +1 -0
- package/dist/translations/languages/ta.d.ts +4 -0
- package/dist/translations/languages/ta.d.ts.map +1 -0
- package/dist/translations/languages/ta.js +48 -0
- package/dist/translations/languages/ta.js.map +1 -0
- package/dist/translations/languages/th.d.ts +4 -0
- package/dist/translations/languages/th.d.ts.map +1 -0
- package/dist/translations/languages/th.js +48 -0
- package/dist/translations/languages/th.js.map +1 -0
- package/dist/translations/languages/tr.d.ts +4 -0
- package/dist/translations/languages/tr.d.ts.map +1 -0
- package/dist/translations/languages/tr.js +48 -0
- package/dist/translations/languages/tr.js.map +1 -0
- package/dist/translations/languages/translation-schema.json +114 -0
- package/dist/translations/languages/uk.d.ts +4 -0
- package/dist/translations/languages/uk.d.ts.map +1 -0
- package/dist/translations/languages/uk.js +48 -0
- package/dist/translations/languages/uk.js.map +1 -0
- package/dist/translations/languages/vi.d.ts +4 -0
- package/dist/translations/languages/vi.d.ts.map +1 -0
- package/dist/translations/languages/vi.js +48 -0
- package/dist/translations/languages/vi.js.map +1 -0
- package/dist/translations/languages/zh.d.ts +4 -0
- package/dist/translations/languages/zh.d.ts.map +1 -0
- package/dist/translations/languages/zh.js +48 -0
- package/dist/translations/languages/zh.js.map +1 -0
- package/dist/translations/languages/zhTw.d.ts +4 -0
- package/dist/translations/languages/zhTw.d.ts.map +1 -0
- package/dist/translations/languages/zhTw.js +48 -0
- package/dist/translations/languages/zhTw.js.map +1 -0
- package/dist/translations/types.d.ts +38 -0
- package/dist/translations/types.d.ts.map +1 -0
- package/dist/translations/types.js +3 -0
- package/dist/translations/types.js.map +1 -0
- package/dist/types.d.ts +221 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utilities/buildDisabledFieldRegex.d.ts +5 -0
- package/dist/utilities/buildDisabledFieldRegex.d.ts.map +1 -0
- package/dist/utilities/buildDisabledFieldRegex.js +12 -0
- package/dist/utilities/buildDisabledFieldRegex.js.map +1 -0
- package/dist/utilities/collectDisabledFieldPaths.d.ts +15 -0
- package/dist/utilities/collectDisabledFieldPaths.d.ts.map +1 -0
- package/dist/utilities/collectDisabledFieldPaths.js +61 -0
- package/dist/utilities/collectDisabledFieldPaths.js.map +1 -0
- package/dist/utilities/flattenObject.d.ts +11 -0
- package/dist/utilities/flattenObject.d.ts.map +1 -0
- package/dist/utilities/flattenObject.js +129 -0
- package/dist/utilities/flattenObject.js.map +1 -0
- package/dist/utilities/getExportFieldFunctions.d.ts +12 -0
- package/dist/utilities/getExportFieldFunctions.d.ts.map +1 -0
- package/dist/utilities/getExportFieldFunctions.js +102 -0
- package/dist/utilities/getExportFieldFunctions.js.map +1 -0
- package/dist/utilities/getFilename.d.ts +6 -0
- package/dist/utilities/getFilename.d.ts.map +1 -0
- package/dist/utilities/getFilename.js +13 -0
- package/dist/utilities/getFilename.js.map +1 -0
- package/dist/utilities/getFlattenedFieldKeys.d.ts +24 -0
- package/dist/utilities/getFlattenedFieldKeys.d.ts.map +1 -0
- package/dist/utilities/getFlattenedFieldKeys.js +95 -0
- package/dist/utilities/getFlattenedFieldKeys.js.map +1 -0
- package/dist/utilities/getImportFieldFunctions.d.ts +12 -0
- package/dist/utilities/getImportFieldFunctions.d.ts.map +1 -0
- package/dist/utilities/getImportFieldFunctions.js +130 -0
- package/dist/utilities/getImportFieldFunctions.js.map +1 -0
- package/dist/utilities/getPluginCollections.d.ts +39 -0
- package/dist/utilities/getPluginCollections.d.ts.map +1 -0
- package/dist/utilities/getPluginCollections.js +102 -0
- package/dist/utilities/getPluginCollections.js.map +1 -0
- package/dist/utilities/getSchemaColumns.d.ts +43 -0
- package/dist/utilities/getSchemaColumns.d.ts.map +1 -0
- package/dist/utilities/getSchemaColumns.js +163 -0
- package/dist/utilities/getSchemaColumns.js.map +1 -0
- package/dist/utilities/getSelect.d.ts +11 -0
- package/dist/utilities/getSelect.d.ts.map +1 -0
- package/dist/utilities/getSelect.js +27 -0
- package/dist/utilities/getSelect.js.map +1 -0
- package/dist/utilities/getvalueAtPath.d.ts +15 -0
- package/dist/utilities/getvalueAtPath.d.ts.map +1 -0
- package/dist/utilities/getvalueAtPath.js +49 -0
- package/dist/utilities/getvalueAtPath.js.map +1 -0
- package/dist/utilities/parseCSV.d.ts +11 -0
- package/dist/utilities/parseCSV.d.ts.map +1 -0
- package/dist/utilities/parseCSV.js +67 -0
- package/dist/utilities/parseCSV.js.map +1 -0
- package/dist/utilities/parseCSV.spec.js +169 -0
- package/dist/utilities/parseCSV.spec.js.map +1 -0
- package/dist/utilities/parseJSON.d.ts +11 -0
- package/dist/utilities/parseJSON.d.ts.map +1 -0
- package/dist/utilities/parseJSON.js +25 -0
- package/dist/utilities/parseJSON.js.map +1 -0
- package/dist/utilities/processRichTextField.d.ts +6 -0
- package/dist/utilities/processRichTextField.d.ts.map +1 -0
- package/dist/utilities/processRichTextField.js +45 -0
- package/dist/utilities/processRichTextField.js.map +1 -0
- package/dist/utilities/removeDisabledFields.d.ts +15 -0
- package/dist/utilities/removeDisabledFields.d.ts.map +1 -0
- package/dist/utilities/removeDisabledFields.js +66 -0
- package/dist/utilities/removeDisabledFields.js.map +1 -0
- package/dist/utilities/setNestedValue.d.ts +19 -0
- package/dist/utilities/setNestedValue.d.ts.map +1 -0
- package/dist/utilities/setNestedValue.js +55 -0
- package/dist/utilities/setNestedValue.js.map +1 -0
- package/dist/utilities/sortHelpers.d.ts +6 -0
- package/dist/utilities/sortHelpers.d.ts.map +1 -0
- package/dist/utilities/sortHelpers.js +14 -0
- package/dist/utilities/sortHelpers.js.map +1 -0
- package/dist/utilities/unflattenObject.d.ts +11 -0
- package/dist/utilities/unflattenObject.d.ts.map +1 -0
- package/dist/utilities/unflattenObject.js +431 -0
- package/dist/utilities/unflattenObject.js.map +1 -0
- package/dist/utilities/unflattenObject.spec.js +680 -0
- package/dist/utilities/unflattenObject.spec.js.map +1 -0
- package/dist/utilities/useBatchProcessor.d.ts +103 -0
- package/dist/utilities/useBatchProcessor.d.ts.map +1 -0
- package/dist/utilities/useBatchProcessor.js +88 -0
- package/dist/utilities/useBatchProcessor.js.map +1 -0
- package/dist/utilities/validateLimitValue.d.ts +3 -0
- package/dist/utilities/validateLimitValue.d.ts.map +1 -0
- package/dist/utilities/validateLimitValue.js +12 -0
- package/dist/utilities/validateLimitValue.js.map +1 -0
- package/license.md +22 -0
- package/package.json +90 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { FieldLabel, ReactSelect, useDocumentInfo, useField, useListQuery } from '@ruya.sa/ui';
|
|
4
|
+
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
5
|
+
import { applySortOrder, normalizeQueryParam, stripSortDash } from '../../utilities/sortHelpers.js';
|
|
6
|
+
import './index.scss';
|
|
7
|
+
const baseClass = 'sort-order-field';
|
|
8
|
+
const options = [
|
|
9
|
+
{
|
|
10
|
+
label: 'Ascending',
|
|
11
|
+
value: 'asc'
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
label: 'Descending',
|
|
15
|
+
value: 'desc'
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
const defaultOption = options[0];
|
|
19
|
+
export const SortOrder = (props)=>{
|
|
20
|
+
const { id } = useDocumentInfo();
|
|
21
|
+
const { query } = useListQuery();
|
|
22
|
+
// 'sortOrder' select field: 'asc' | 'desc'
|
|
23
|
+
const { setValue: setOrder, value: orderValueRaw } = useField();
|
|
24
|
+
// 'sort' text field: 'title' | '-title'
|
|
25
|
+
const { setValue: setSort, value: sortRaw } = useField({
|
|
26
|
+
path: 'sort'
|
|
27
|
+
});
|
|
28
|
+
// The current order value, defaulting to 'asc' for UI
|
|
29
|
+
const orderValue = orderValueRaw || 'asc';
|
|
30
|
+
// Map 'asc' | 'desc' to the option object for ReactSelect
|
|
31
|
+
const currentOption = useMemo(()=>options.find((o)=>o.value === orderValue) ?? defaultOption, [
|
|
32
|
+
orderValue
|
|
33
|
+
]);
|
|
34
|
+
const [displayed, setDisplayed] = useState(currentOption);
|
|
35
|
+
// One-time init guard so clearing `sort` doesn't rehydrate from query again
|
|
36
|
+
const didInitRef = useRef(false);
|
|
37
|
+
// Derive from list-view query.sort if present; otherwise fall back to groupBy
|
|
38
|
+
useEffect(()=>{
|
|
39
|
+
if (didInitRef.current) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Existing export -> don't initialize here
|
|
43
|
+
if (id) {
|
|
44
|
+
didInitRef.current = true;
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// If sort already has a value, treat as initialized
|
|
48
|
+
if (typeof sortRaw === 'string' && sortRaw.length > 0) {
|
|
49
|
+
didInitRef.current = true;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const qsSort = normalizeQueryParam(query?.sort);
|
|
53
|
+
const qsGroupBy = normalizeQueryParam(query?.groupBy);
|
|
54
|
+
if (qsSort) {
|
|
55
|
+
const isDesc = qsSort.startsWith('-');
|
|
56
|
+
const base = stripSortDash(qsSort);
|
|
57
|
+
const order = isDesc ? 'desc' : 'asc';
|
|
58
|
+
setOrder(order);
|
|
59
|
+
setSort(applySortOrder(base, order)); // combined: 'title' or '-title'
|
|
60
|
+
didInitRef.current = true;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Fallback: groupBy (always ascending)
|
|
64
|
+
if (qsGroupBy) {
|
|
65
|
+
setOrder('asc');
|
|
66
|
+
setSort(applySortOrder(qsGroupBy, 'asc')); // write 'groupByField' (no dash)
|
|
67
|
+
didInitRef.current = true;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Nothing to initialize
|
|
71
|
+
didInitRef.current = true;
|
|
72
|
+
}, [
|
|
73
|
+
id,
|
|
74
|
+
query?.sort,
|
|
75
|
+
query?.groupBy,
|
|
76
|
+
sortRaw,
|
|
77
|
+
setOrder,
|
|
78
|
+
setSort
|
|
79
|
+
]);
|
|
80
|
+
// Keep the select's displayed option in sync with the stored order
|
|
81
|
+
useEffect(()=>{
|
|
82
|
+
setDisplayed(currentOption ?? defaultOption);
|
|
83
|
+
}, [
|
|
84
|
+
currentOption
|
|
85
|
+
]);
|
|
86
|
+
// Handle manual order changes via ReactSelect:
|
|
87
|
+
// - update the order field
|
|
88
|
+
// - rewrite the combined "sort" string to add/remove the leading '-'
|
|
89
|
+
const onChange = (option)=>{
|
|
90
|
+
const next = option?.value ?? 'asc';
|
|
91
|
+
setOrder(next);
|
|
92
|
+
const base = stripSortDash(sortRaw);
|
|
93
|
+
if (base) {
|
|
94
|
+
setSort(applySortOrder(base, next));
|
|
95
|
+
}
|
|
96
|
+
setDisplayed(option ?? defaultOption);
|
|
97
|
+
};
|
|
98
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
99
|
+
className: baseClass,
|
|
100
|
+
children: [
|
|
101
|
+
/*#__PURE__*/ _jsx(FieldLabel, {
|
|
102
|
+
label: props.field.label,
|
|
103
|
+
path: props.path
|
|
104
|
+
}),
|
|
105
|
+
/*#__PURE__*/ _jsx(ReactSelect, {
|
|
106
|
+
className: baseClass,
|
|
107
|
+
disabled: props.readOnly,
|
|
108
|
+
inputId: `field-${props.path.replace(/\./g, '__')}`,
|
|
109
|
+
isClearable: false,
|
|
110
|
+
isSearchable: false,
|
|
111
|
+
// @ts-expect-error react-select option typing differs from our local type
|
|
112
|
+
onChange: onChange,
|
|
113
|
+
options: options,
|
|
114
|
+
// @ts-expect-error react-select option typing differs from our local type
|
|
115
|
+
value: displayed
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SortOrder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectFieldClientComponent } from '@ruya.sa/payload'\n\nimport { FieldLabel, ReactSelect, useDocumentInfo, useField, useListQuery } from '@ruya.sa/ui'\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\n\nimport { applySortOrder, normalizeQueryParam, stripSortDash } from '../../utilities/sortHelpers.js'\nimport './index.scss'\n\nconst baseClass = 'sort-order-field'\n\ntype Order = 'asc' | 'desc'\ntype OrderOption = { label: string; value: Order }\n\nconst options = [\n { label: 'Ascending', value: 'asc' as const },\n { label: 'Descending', value: 'desc' as const },\n] as const\n\nconst defaultOption: OrderOption = options[0]\n\nexport const SortOrder: SelectFieldClientComponent = (props) => {\n const { id } = useDocumentInfo()\n const { query } = useListQuery()\n\n // 'sortOrder' select field: 'asc' | 'desc'\n const { setValue: setOrder, value: orderValueRaw } = useField<Order>()\n\n // 'sort' text field: 'title' | '-title'\n const { setValue: setSort, value: sortRaw } = useField<string>({ path: 'sort' })\n\n // The current order value, defaulting to 'asc' for UI\n const orderValue: Order = orderValueRaw || 'asc'\n\n // Map 'asc' | 'desc' to the option object for ReactSelect\n const currentOption = useMemo<OrderOption>(\n () => options.find((o) => o.value === orderValue) ?? defaultOption,\n [orderValue],\n )\n const [displayed, setDisplayed] = useState<null | OrderOption>(currentOption)\n\n // One-time init guard so clearing `sort` doesn't rehydrate from query again\n const didInitRef = useRef(false)\n\n // Derive from list-view query.sort if present; otherwise fall back to groupBy\n useEffect(() => {\n if (didInitRef.current) {\n return\n }\n\n // Existing export -> don't initialize here\n if (id) {\n didInitRef.current = true\n return\n }\n\n // If sort already has a value, treat as initialized\n if (typeof sortRaw === 'string' && sortRaw.length > 0) {\n didInitRef.current = true\n return\n }\n\n const qsSort = normalizeQueryParam(query?.sort)\n const qsGroupBy = normalizeQueryParam(query?.groupBy)\n\n if (qsSort) {\n const isDesc = qsSort.startsWith('-')\n const base = stripSortDash(qsSort)\n const order: Order = isDesc ? 'desc' : 'asc'\n setOrder(order)\n setSort(applySortOrder(base, order)) // combined: 'title' or '-title'\n didInitRef.current = true\n return\n }\n\n // Fallback: groupBy (always ascending)\n if (qsGroupBy) {\n setOrder('asc')\n setSort(applySortOrder(qsGroupBy, 'asc')) // write 'groupByField' (no dash)\n didInitRef.current = true\n return\n }\n\n // Nothing to initialize\n didInitRef.current = true\n }, [id, query?.sort, query?.groupBy, sortRaw, setOrder, setSort])\n\n // Keep the select's displayed option in sync with the stored order\n useEffect(() => {\n setDisplayed(currentOption ?? defaultOption)\n }, [currentOption])\n\n // Handle manual order changes via ReactSelect:\n // - update the order field\n // - rewrite the combined \"sort\" string to add/remove the leading '-'\n const onChange = (option: null | OrderOption) => {\n const next = option?.value ?? 'asc'\n setOrder(next)\n\n const base = stripSortDash(sortRaw)\n if (base) {\n setSort(applySortOrder(base, next))\n }\n\n setDisplayed(option ?? defaultOption)\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={props.field.label} path={props.path} />\n <ReactSelect\n className={baseClass}\n disabled={props.readOnly}\n inputId={`field-${props.path.replace(/\\./g, '__')}`}\n isClearable={false}\n isSearchable={false}\n // @ts-expect-error react-select option typing differs from our local type\n onChange={onChange}\n options={options as unknown as OrderOption[]}\n // @ts-expect-error react-select option typing differs from our local type\n value={displayed}\n />\n </div>\n )\n}\n"],"names":["FieldLabel","ReactSelect","useDocumentInfo","useField","useListQuery","React","useEffect","useMemo","useRef","useState","applySortOrder","normalizeQueryParam","stripSortDash","baseClass","options","label","value","defaultOption","SortOrder","props","id","query","setValue","setOrder","orderValueRaw","setSort","sortRaw","path","orderValue","currentOption","find","o","displayed","setDisplayed","didInitRef","current","length","qsSort","sort","qsGroupBy","groupBy","isDesc","startsWith","base","order","onChange","option","next","div","className","field","disabled","readOnly","inputId","replace","isClearable","isSearchable"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default number of documents to show per page in preview
|
|
3
|
+
*/
|
|
4
|
+
export declare const DEFAULT_PREVIEW_LIMIT = 10;
|
|
5
|
+
/**
|
|
6
|
+
* Available options for preview per-page selector
|
|
7
|
+
*/
|
|
8
|
+
export declare const PREVIEW_LIMIT_OPTIONS: number[];
|
|
9
|
+
/**
|
|
10
|
+
* Maximum allowed preview limit to prevent performance issues
|
|
11
|
+
*/
|
|
12
|
+
export declare const MAX_PREVIEW_LIMIT = 100;
|
|
13
|
+
/**
|
|
14
|
+
* Minimum allowed preview limit
|
|
15
|
+
*/
|
|
16
|
+
export declare const MIN_PREVIEW_LIMIT = 1;
|
|
17
|
+
/**
|
|
18
|
+
* Minimum allowed preview page
|
|
19
|
+
*/
|
|
20
|
+
export declare const MIN_PREVIEW_PAGE = 1;
|
|
21
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,EAAiB,CAAA;AAE3D;;GAEG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default number of documents to show per page in preview
|
|
3
|
+
*/ export const DEFAULT_PREVIEW_LIMIT = 10;
|
|
4
|
+
/**
|
|
5
|
+
* Available options for preview per-page selector
|
|
6
|
+
*/ export const PREVIEW_LIMIT_OPTIONS = [
|
|
7
|
+
10,
|
|
8
|
+
25,
|
|
9
|
+
50
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Maximum allowed preview limit to prevent performance issues
|
|
13
|
+
*/ export const MAX_PREVIEW_LIMIT = 100;
|
|
14
|
+
/**
|
|
15
|
+
* Minimum allowed preview limit
|
|
16
|
+
*/ export const MIN_PREVIEW_LIMIT = 1;
|
|
17
|
+
/**
|
|
18
|
+
* Minimum allowed preview page
|
|
19
|
+
*/ export const MIN_PREVIEW_PAGE = 1;
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Default number of documents to show per page in preview\n */\nexport const DEFAULT_PREVIEW_LIMIT = 10\n\n/**\n * Available options for preview per-page selector\n */\nexport const PREVIEW_LIMIT_OPTIONS: number[] = [10, 25, 50]\n\n/**\n * Maximum allowed preview limit to prevent performance issues\n */\nexport const MAX_PREVIEW_LIMIT = 100\n\n/**\n * Minimum allowed preview limit\n */\nexport const MIN_PREVIEW_LIMIT = 1\n\n/**\n * Minimum allowed preview page\n */\nexport const MIN_PREVIEW_PAGE = 1\n"],"names":["DEFAULT_PREVIEW_LIMIT","PREVIEW_LIMIT_OPTIONS","MAX_PREVIEW_LIMIT","MIN_PREVIEW_LIMIT","MIN_PREVIEW_PAGE"],"mappings":"AAAA;;CAEC,GACD,OAAO,MAAMA,wBAAwB,GAAE;AAEvC;;CAEC,GACD,OAAO,MAAMC,wBAAkC;IAAC;IAAI;IAAI;CAAG,CAAA;AAE3D;;CAEC,GACD,OAAO,MAAMC,oBAAoB,IAAG;AAEpC;;CAEC,GACD,OAAO,MAAMC,oBAAoB,EAAC;AAElC;;CAEC,GACD,OAAO,MAAMC,mBAAmB,EAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export-specific batch processor for processing documents in batches during export.
|
|
3
|
+
* Uses the generic batch processing utilities from useBatchProcessor.
|
|
4
|
+
*/
|
|
5
|
+
import type { PayloadRequest, SelectType, Sort, TypedUser, Where } from '@ruya.sa/payload';
|
|
6
|
+
import { type BatchProcessorOptions } from '../utilities/useBatchProcessor.js';
|
|
7
|
+
/**
|
|
8
|
+
* Export-specific batch processor options
|
|
9
|
+
*/
|
|
10
|
+
export interface ExportBatchProcessorOptions extends BatchProcessorOptions {
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Find arguments for querying documents during export
|
|
15
|
+
*/
|
|
16
|
+
export interface ExportFindArgs {
|
|
17
|
+
collection: string;
|
|
18
|
+
depth: number;
|
|
19
|
+
draft: boolean;
|
|
20
|
+
limit: number;
|
|
21
|
+
locale?: string;
|
|
22
|
+
overrideAccess: boolean;
|
|
23
|
+
page?: number;
|
|
24
|
+
select?: SelectType;
|
|
25
|
+
sort?: Sort;
|
|
26
|
+
user?: TypedUser;
|
|
27
|
+
where?: Where;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Options for processing an export operation
|
|
31
|
+
*/
|
|
32
|
+
export interface ExportProcessOptions<TDoc = unknown> {
|
|
33
|
+
/**
|
|
34
|
+
* The slug of the collection to export
|
|
35
|
+
*/
|
|
36
|
+
collectionSlug: string;
|
|
37
|
+
/**
|
|
38
|
+
* Arguments to pass to payload.find()
|
|
39
|
+
*/
|
|
40
|
+
findArgs: ExportFindArgs;
|
|
41
|
+
/**
|
|
42
|
+
* The export format - affects column tracking for CSV
|
|
43
|
+
*/
|
|
44
|
+
format: 'csv' | 'json';
|
|
45
|
+
/**
|
|
46
|
+
* Maximum number of documents to export
|
|
47
|
+
*/
|
|
48
|
+
maxDocs: number;
|
|
49
|
+
/**
|
|
50
|
+
* The Payload request object
|
|
51
|
+
*/
|
|
52
|
+
req: PayloadRequest;
|
|
53
|
+
/**
|
|
54
|
+
* Starting page for pagination (default: 1)
|
|
55
|
+
*/
|
|
56
|
+
startPage?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Transform function to apply to each document
|
|
59
|
+
*/
|
|
60
|
+
transformDoc: (doc: TDoc) => Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Result from processing an export operation
|
|
64
|
+
*/
|
|
65
|
+
export interface ExportResult {
|
|
66
|
+
/**
|
|
67
|
+
* Discovered column names (for CSV exports)
|
|
68
|
+
*/
|
|
69
|
+
columns: string[];
|
|
70
|
+
/**
|
|
71
|
+
* Transformed documents ready for output
|
|
72
|
+
*/
|
|
73
|
+
docs: Record<string, unknown>[];
|
|
74
|
+
/**
|
|
75
|
+
* Total number of documents fetched
|
|
76
|
+
*/
|
|
77
|
+
fetchedCount: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Creates an export batch processor with the specified options.
|
|
81
|
+
*
|
|
82
|
+
* @param options - Configuration options for the batch processor
|
|
83
|
+
* @returns An object containing the processExport method
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* const processor = createExportBatchProcessor({ batchSize: 100, debug: true })
|
|
88
|
+
*
|
|
89
|
+
* const result = await processor.processExport({
|
|
90
|
+
* collectionSlug: 'posts',
|
|
91
|
+
* findArgs: { collection: 'posts', depth: 1, draft: false, limit: 100, overrideAccess: false },
|
|
92
|
+
* format: 'csv',
|
|
93
|
+
* maxDocs: 1000,
|
|
94
|
+
* req,
|
|
95
|
+
* transformDoc: (doc) => flattenObject({ doc }),
|
|
96
|
+
* })
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare function createExportBatchProcessor(options?: ExportBatchProcessorOptions): {
|
|
100
|
+
discoverColumns: <TDoc>(processOptions: ExportProcessOptions<TDoc>) => Promise<string[]>;
|
|
101
|
+
processExport: <TDoc>(processOptions: ExportProcessOptions<TDoc>) => Promise<ExportResult>;
|
|
102
|
+
streamExport: <TDoc>(processOptions: ExportProcessOptions<TDoc>) => AsyncGenerator<{
|
|
103
|
+
columns: string[];
|
|
104
|
+
docs: Record<string, unknown>[];
|
|
105
|
+
}>;
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=batchProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batchProcessor.d.ts","sourceRoot":"","sources":["../../src/export/batchProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAE1F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAE9E;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,OAAO;IAClD;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAA;IACxB;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,YAAY,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,2BAAgC;sBAiJnD,IAAI,kBACjB,oBAAoB,CAAC,IAAI,CAAC,KACzC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAzIS,IAAI,kBACf,oBAAoB,CAAC,IAAI,CAAC,KACzC,OAAO,CAAC,YAAY,CAAC;mBAsEK,IAAI,kBACf,oBAAoB,CAAC,IAAI,CAAC,KACzC,cAAc,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC;EAwH1E"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export-specific batch processor for processing documents in batches during export.
|
|
3
|
+
* Uses the generic batch processing utilities from useBatchProcessor.
|
|
4
|
+
*/ /**
|
|
5
|
+
* Creates an export batch processor with the specified options.
|
|
6
|
+
*
|
|
7
|
+
* @param options - Configuration options for the batch processor
|
|
8
|
+
* @returns An object containing the processExport method
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const processor = createExportBatchProcessor({ batchSize: 100, debug: true })
|
|
13
|
+
*
|
|
14
|
+
* const result = await processor.processExport({
|
|
15
|
+
* collectionSlug: 'posts',
|
|
16
|
+
* findArgs: { collection: 'posts', depth: 1, draft: false, limit: 100, overrideAccess: false },
|
|
17
|
+
* format: 'csv',
|
|
18
|
+
* maxDocs: 1000,
|
|
19
|
+
* req,
|
|
20
|
+
* transformDoc: (doc) => flattenObject({ doc }),
|
|
21
|
+
* })
|
|
22
|
+
* ```
|
|
23
|
+
*/ export function createExportBatchProcessor(options = {}) {
|
|
24
|
+
const batchSize = options.batchSize ?? 100;
|
|
25
|
+
const debug = options.debug ?? false;
|
|
26
|
+
/**
|
|
27
|
+
* Process an export operation by fetching and transforming documents in batches.
|
|
28
|
+
*
|
|
29
|
+
* @param processOptions - Options for the export operation
|
|
30
|
+
* @returns The export result containing transformed documents and column info
|
|
31
|
+
*/ const processExport = async (processOptions)=>{
|
|
32
|
+
const { findArgs, format, maxDocs, req, startPage = 1, transformDoc } = processOptions;
|
|
33
|
+
const docs = [];
|
|
34
|
+
const columnsSet = new Set();
|
|
35
|
+
const columns = [];
|
|
36
|
+
let currentPage = startPage;
|
|
37
|
+
let fetched = 0;
|
|
38
|
+
let hasNextPage = true;
|
|
39
|
+
while(hasNextPage){
|
|
40
|
+
const remaining = Math.max(0, maxDocs - fetched);
|
|
41
|
+
if (remaining === 0) {
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
const result = await req.payload.find({
|
|
45
|
+
...findArgs,
|
|
46
|
+
limit: Math.min(batchSize, remaining),
|
|
47
|
+
page: currentPage
|
|
48
|
+
});
|
|
49
|
+
if (debug) {
|
|
50
|
+
req.payload.logger.debug(`Processing export batch ${currentPage} with ${result.docs.length} documents`);
|
|
51
|
+
}
|
|
52
|
+
for (const doc of result.docs){
|
|
53
|
+
const transformedDoc = transformDoc(doc);
|
|
54
|
+
docs.push(transformedDoc);
|
|
55
|
+
// Track columns for CSV format
|
|
56
|
+
if (format === 'csv') {
|
|
57
|
+
for (const key of Object.keys(transformedDoc)){
|
|
58
|
+
if (!columnsSet.has(key)) {
|
|
59
|
+
columnsSet.add(key);
|
|
60
|
+
columns.push(key);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
fetched += result.docs.length;
|
|
66
|
+
hasNextPage = result.hasNextPage && fetched < maxDocs;
|
|
67
|
+
currentPage++;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
columns,
|
|
71
|
+
docs,
|
|
72
|
+
fetchedCount: fetched
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Async generator for streaming export - yields batches instead of collecting all.
|
|
77
|
+
* Useful for streaming exports where you want to process batches as they're fetched.
|
|
78
|
+
*
|
|
79
|
+
* @param processOptions - Options for the export operation
|
|
80
|
+
* @yields Batch results containing transformed documents and discovered columns
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* const processor = createExportBatchProcessor({ batchSize: 100 })
|
|
85
|
+
*
|
|
86
|
+
* for await (const batch of processor.streamExport({ ... })) {
|
|
87
|
+
* // Process each batch as it's yielded
|
|
88
|
+
* console.log(`Got ${batch.docs.length} documents`)
|
|
89
|
+
* }
|
|
90
|
+
* ```
|
|
91
|
+
*/ async function* streamExport(processOptions) {
|
|
92
|
+
const { findArgs, format, maxDocs, req, startPage = 1, transformDoc } = processOptions;
|
|
93
|
+
const columnsSet = new Set();
|
|
94
|
+
const columns = [];
|
|
95
|
+
let currentPage = startPage;
|
|
96
|
+
let fetched = 0;
|
|
97
|
+
let hasNextPage = true;
|
|
98
|
+
while(hasNextPage){
|
|
99
|
+
const remaining = Math.max(0, maxDocs - fetched);
|
|
100
|
+
if (remaining === 0) {
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
const result = await req.payload.find({
|
|
104
|
+
...findArgs,
|
|
105
|
+
limit: Math.min(batchSize, remaining),
|
|
106
|
+
page: currentPage
|
|
107
|
+
});
|
|
108
|
+
if (debug) {
|
|
109
|
+
req.payload.logger.debug(`Streaming export batch ${currentPage} with ${result.docs.length} documents`);
|
|
110
|
+
}
|
|
111
|
+
const batchDocs = [];
|
|
112
|
+
for (const doc of result.docs){
|
|
113
|
+
const transformedDoc = transformDoc(doc);
|
|
114
|
+
batchDocs.push(transformedDoc);
|
|
115
|
+
// Track columns for CSV format
|
|
116
|
+
if (format === 'csv') {
|
|
117
|
+
for (const key of Object.keys(transformedDoc)){
|
|
118
|
+
if (!columnsSet.has(key)) {
|
|
119
|
+
columnsSet.add(key);
|
|
120
|
+
columns.push(key);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
yield {
|
|
126
|
+
columns: [
|
|
127
|
+
...columns
|
|
128
|
+
],
|
|
129
|
+
docs: batchDocs
|
|
130
|
+
};
|
|
131
|
+
fetched += result.docs.length;
|
|
132
|
+
hasNextPage = result.hasNextPage && fetched < maxDocs;
|
|
133
|
+
currentPage++;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Discover all columns from the dataset by scanning through all batches.
|
|
138
|
+
* Useful for CSV exports where you need to know all columns before streaming.
|
|
139
|
+
*
|
|
140
|
+
* @param processOptions - Options for the export operation
|
|
141
|
+
* @returns Array of discovered column names
|
|
142
|
+
*/ const discoverColumns = async (processOptions)=>{
|
|
143
|
+
const { findArgs, maxDocs, req, startPage = 1, transformDoc } = processOptions;
|
|
144
|
+
const columnsSet = new Set();
|
|
145
|
+
const columns = [];
|
|
146
|
+
let currentPage = startPage;
|
|
147
|
+
let fetched = 0;
|
|
148
|
+
let hasNextPage = true;
|
|
149
|
+
while(hasNextPage){
|
|
150
|
+
const remaining = Math.max(0, maxDocs - fetched);
|
|
151
|
+
if (remaining === 0) {
|
|
152
|
+
break;
|
|
153
|
+
}
|
|
154
|
+
const result = await req.payload.find({
|
|
155
|
+
...findArgs,
|
|
156
|
+
limit: Math.min(batchSize, remaining),
|
|
157
|
+
page: currentPage
|
|
158
|
+
});
|
|
159
|
+
if (debug) {
|
|
160
|
+
req.payload.logger.debug(`Scanning columns from batch ${currentPage} with ${result.docs.length} documents`);
|
|
161
|
+
}
|
|
162
|
+
for (const doc of result.docs){
|
|
163
|
+
const transformedDoc = transformDoc(doc);
|
|
164
|
+
for (const key of Object.keys(transformedDoc)){
|
|
165
|
+
if (!columnsSet.has(key)) {
|
|
166
|
+
columnsSet.add(key);
|
|
167
|
+
columns.push(key);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
fetched += result.docs.length;
|
|
172
|
+
hasNextPage = result.hasNextPage && fetched < maxDocs;
|
|
173
|
+
currentPage++;
|
|
174
|
+
}
|
|
175
|
+
if (debug) {
|
|
176
|
+
req.payload.logger.debug(`Discovered ${columns.length} columns`);
|
|
177
|
+
}
|
|
178
|
+
return columns;
|
|
179
|
+
};
|
|
180
|
+
return {
|
|
181
|
+
discoverColumns,
|
|
182
|
+
processExport,
|
|
183
|
+
streamExport
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
//# sourceMappingURL=batchProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/export/batchProcessor.ts"],"sourcesContent":["/**\n * Export-specific batch processor for processing documents in batches during export.\n * Uses the generic batch processing utilities from useBatchProcessor.\n */\nimport type { PayloadRequest, SelectType, Sort, TypedUser, Where } from '@ruya.sa/payload'\n\nimport { type BatchProcessorOptions } from '../utilities/useBatchProcessor.js'\n\n/**\n * Export-specific batch processor options\n */\nexport interface ExportBatchProcessorOptions extends BatchProcessorOptions {\n debug?: boolean\n}\n\n/**\n * Find arguments for querying documents during export\n */\nexport interface ExportFindArgs {\n collection: string\n depth: number\n draft: boolean\n limit: number\n locale?: string\n overrideAccess: boolean\n page?: number\n select?: SelectType\n sort?: Sort\n user?: TypedUser\n where?: Where\n}\n\n/**\n * Options for processing an export operation\n */\nexport interface ExportProcessOptions<TDoc = unknown> {\n /**\n * The slug of the collection to export\n */\n collectionSlug: string\n /**\n * Arguments to pass to payload.find()\n */\n findArgs: ExportFindArgs\n /**\n * The export format - affects column tracking for CSV\n */\n format: 'csv' | 'json'\n /**\n * Maximum number of documents to export\n */\n maxDocs: number\n /**\n * The Payload request object\n */\n req: PayloadRequest\n /**\n * Starting page for pagination (default: 1)\n */\n startPage?: number\n /**\n * Transform function to apply to each document\n */\n transformDoc: (doc: TDoc) => Record<string, unknown>\n}\n\n/**\n * Result from processing an export operation\n */\nexport interface ExportResult {\n /**\n * Discovered column names (for CSV exports)\n */\n columns: string[]\n /**\n * Transformed documents ready for output\n */\n docs: Record<string, unknown>[]\n /**\n * Total number of documents fetched\n */\n fetchedCount: number\n}\n\n/**\n * Creates an export batch processor with the specified options.\n *\n * @param options - Configuration options for the batch processor\n * @returns An object containing the processExport method\n *\n * @example\n * ```ts\n * const processor = createExportBatchProcessor({ batchSize: 100, debug: true })\n *\n * const result = await processor.processExport({\n * collectionSlug: 'posts',\n * findArgs: { collection: 'posts', depth: 1, draft: false, limit: 100, overrideAccess: false },\n * format: 'csv',\n * maxDocs: 1000,\n * req,\n * transformDoc: (doc) => flattenObject({ doc }),\n * })\n * ```\n */\nexport function createExportBatchProcessor(options: ExportBatchProcessorOptions = {}) {\n const batchSize = options.batchSize ?? 100\n const debug = options.debug ?? false\n\n /**\n * Process an export operation by fetching and transforming documents in batches.\n *\n * @param processOptions - Options for the export operation\n * @returns The export result containing transformed documents and column info\n */\n const processExport = async <TDoc>(\n processOptions: ExportProcessOptions<TDoc>,\n ): Promise<ExportResult> => {\n const { findArgs, format, maxDocs, req, startPage = 1, transformDoc } = processOptions\n\n const docs: Record<string, unknown>[] = []\n const columnsSet = new Set<string>()\n const columns: string[] = []\n\n let currentPage = startPage\n let fetched = 0\n let hasNextPage = true\n\n while (hasNextPage) {\n const remaining = Math.max(0, maxDocs - fetched)\n\n if (remaining === 0) {\n break\n }\n\n const result = await req.payload.find({\n ...findArgs,\n limit: Math.min(batchSize, remaining),\n page: currentPage,\n })\n\n if (debug) {\n req.payload.logger.debug(\n `Processing export batch ${currentPage} with ${result.docs.length} documents`,\n )\n }\n\n for (const doc of result.docs) {\n const transformedDoc = transformDoc(doc as TDoc)\n docs.push(transformedDoc)\n\n // Track columns for CSV format\n if (format === 'csv') {\n for (const key of Object.keys(transformedDoc)) {\n if (!columnsSet.has(key)) {\n columnsSet.add(key)\n columns.push(key)\n }\n }\n }\n }\n\n fetched += result.docs.length\n hasNextPage = result.hasNextPage && fetched < maxDocs\n currentPage++\n }\n\n return { columns, docs, fetchedCount: fetched }\n }\n\n /**\n * Async generator for streaming export - yields batches instead of collecting all.\n * Useful for streaming exports where you want to process batches as they're fetched.\n *\n * @param processOptions - Options for the export operation\n * @yields Batch results containing transformed documents and discovered columns\n *\n * @example\n * ```ts\n * const processor = createExportBatchProcessor({ batchSize: 100 })\n *\n * for await (const batch of processor.streamExport({ ... })) {\n * // Process each batch as it's yielded\n * console.log(`Got ${batch.docs.length} documents`)\n * }\n * ```\n */\n async function* streamExport<TDoc>(\n processOptions: ExportProcessOptions<TDoc>,\n ): AsyncGenerator<{ columns: string[]; docs: Record<string, unknown>[] }> {\n const { findArgs, format, maxDocs, req, startPage = 1, transformDoc } = processOptions\n\n const columnsSet = new Set<string>()\n const columns: string[] = []\n\n let currentPage = startPage\n let fetched = 0\n let hasNextPage = true\n\n while (hasNextPage) {\n const remaining = Math.max(0, maxDocs - fetched)\n\n if (remaining === 0) {\n break\n }\n\n const result = await req.payload.find({\n ...findArgs,\n limit: Math.min(batchSize, remaining),\n page: currentPage,\n })\n\n if (debug) {\n req.payload.logger.debug(\n `Streaming export batch ${currentPage} with ${result.docs.length} documents`,\n )\n }\n\n const batchDocs: Record<string, unknown>[] = []\n\n for (const doc of result.docs) {\n const transformedDoc = transformDoc(doc as TDoc)\n batchDocs.push(transformedDoc)\n\n // Track columns for CSV format\n if (format === 'csv') {\n for (const key of Object.keys(transformedDoc)) {\n if (!columnsSet.has(key)) {\n columnsSet.add(key)\n columns.push(key)\n }\n }\n }\n }\n\n yield { columns: [...columns], docs: batchDocs }\n\n fetched += result.docs.length\n hasNextPage = result.hasNextPage && fetched < maxDocs\n currentPage++\n }\n }\n\n /**\n * Discover all columns from the dataset by scanning through all batches.\n * Useful for CSV exports where you need to know all columns before streaming.\n *\n * @param processOptions - Options for the export operation\n * @returns Array of discovered column names\n */\n const discoverColumns = async <TDoc>(\n processOptions: ExportProcessOptions<TDoc>,\n ): Promise<string[]> => {\n const { findArgs, maxDocs, req, startPage = 1, transformDoc } = processOptions\n\n const columnsSet = new Set<string>()\n const columns: string[] = []\n\n let currentPage = startPage\n let fetched = 0\n let hasNextPage = true\n\n while (hasNextPage) {\n const remaining = Math.max(0, maxDocs - fetched)\n\n if (remaining === 0) {\n break\n }\n\n const result = await req.payload.find({\n ...findArgs,\n limit: Math.min(batchSize, remaining),\n page: currentPage,\n })\n\n if (debug) {\n req.payload.logger.debug(\n `Scanning columns from batch ${currentPage} with ${result.docs.length} documents`,\n )\n }\n\n for (const doc of result.docs) {\n const transformedDoc = transformDoc(doc as TDoc)\n\n for (const key of Object.keys(transformedDoc)) {\n if (!columnsSet.has(key)) {\n columnsSet.add(key)\n columns.push(key)\n }\n }\n }\n\n fetched += result.docs.length\n hasNextPage = result.hasNextPage && fetched < maxDocs\n currentPage++\n }\n\n if (debug) {\n req.payload.logger.debug(`Discovered ${columns.length} columns`)\n }\n\n return columns\n }\n\n return {\n discoverColumns,\n processExport,\n streamExport,\n }\n}\n"],"names":["createExportBatchProcessor","options","batchSize","debug","processExport","processOptions","findArgs","format","maxDocs","req","startPage","transformDoc","docs","columnsSet","Set","columns","currentPage","fetched","hasNextPage","remaining","Math","max","result","payload","find","limit","min","page","logger","length","doc","transformedDoc","push","key","Object","keys","has","add","fetchedCount","streamExport","batchDocs","discoverColumns"],"mappings":"AAAA;;;CAGC,GAiFD;;;;;;;;;;;;;;;;;;;CAmBC,GACD,OAAO,SAASA,2BAA2BC,UAAuC,CAAC,CAAC;IAClF,MAAMC,YAAYD,QAAQC,SAAS,IAAI;IACvC,MAAMC,QAAQF,QAAQE,KAAK,IAAI;IAE/B;;;;;GAKC,GACD,MAAMC,gBAAgB,OACpBC;QAEA,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAEC,YAAY,CAAC,EAAEC,YAAY,EAAE,GAAGN;QAExE,MAAMO,OAAkC,EAAE;QAC1C,MAAMC,aAAa,IAAIC;QACvB,MAAMC,UAAoB,EAAE;QAE5B,IAAIC,cAAcN;QAClB,IAAIO,UAAU;QACd,IAAIC,cAAc;QAElB,MAAOA,YAAa;YAClB,MAAMC,YAAYC,KAAKC,GAAG,CAAC,GAAGb,UAAUS;YAExC,IAAIE,cAAc,GAAG;gBACnB;YACF;YAEA,MAAMG,SAAS,MAAMb,IAAIc,OAAO,CAACC,IAAI,CAAC;gBACpC,GAAGlB,QAAQ;gBACXmB,OAAOL,KAAKM,GAAG,CAACxB,WAAWiB;gBAC3BQ,MAAMX;YACR;YAEA,IAAIb,OAAO;gBACTM,IAAIc,OAAO,CAACK,MAAM,CAACzB,KAAK,CACtB,CAAC,wBAAwB,EAAEa,YAAY,MAAM,EAAEM,OAAOV,IAAI,CAACiB,MAAM,CAAC,UAAU,CAAC;YAEjF;YAEA,KAAK,MAAMC,OAAOR,OAAOV,IAAI,CAAE;gBAC7B,MAAMmB,iBAAiBpB,aAAamB;gBACpClB,KAAKoB,IAAI,CAACD;gBAEV,+BAA+B;gBAC/B,IAAIxB,WAAW,OAAO;oBACpB,KAAK,MAAM0B,OAAOC,OAAOC,IAAI,CAACJ,gBAAiB;wBAC7C,IAAI,CAAClB,WAAWuB,GAAG,CAACH,MAAM;4BACxBpB,WAAWwB,GAAG,CAACJ;4BACflB,QAAQiB,IAAI,CAACC;wBACf;oBACF;gBACF;YACF;YAEAhB,WAAWK,OAAOV,IAAI,CAACiB,MAAM;YAC7BX,cAAcI,OAAOJ,WAAW,IAAID,UAAUT;YAC9CQ;QACF;QAEA,OAAO;YAAED;YAASH;YAAM0B,cAAcrB;QAAQ;IAChD;IAEA;;;;;;;;;;;;;;;;GAgBC,GACD,gBAAgBsB,aACdlC,cAA0C;QAE1C,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAEC,YAAY,CAAC,EAAEC,YAAY,EAAE,GAAGN;QAExE,MAAMQ,aAAa,IAAIC;QACvB,MAAMC,UAAoB,EAAE;QAE5B,IAAIC,cAAcN;QAClB,IAAIO,UAAU;QACd,IAAIC,cAAc;QAElB,MAAOA,YAAa;YAClB,MAAMC,YAAYC,KAAKC,GAAG,CAAC,GAAGb,UAAUS;YAExC,IAAIE,cAAc,GAAG;gBACnB;YACF;YAEA,MAAMG,SAAS,MAAMb,IAAIc,OAAO,CAACC,IAAI,CAAC;gBACpC,GAAGlB,QAAQ;gBACXmB,OAAOL,KAAKM,GAAG,CAACxB,WAAWiB;gBAC3BQ,MAAMX;YACR;YAEA,IAAIb,OAAO;gBACTM,IAAIc,OAAO,CAACK,MAAM,CAACzB,KAAK,CACtB,CAAC,uBAAuB,EAAEa,YAAY,MAAM,EAAEM,OAAOV,IAAI,CAACiB,MAAM,CAAC,UAAU,CAAC;YAEhF;YAEA,MAAMW,YAAuC,EAAE;YAE/C,KAAK,MAAMV,OAAOR,OAAOV,IAAI,CAAE;gBAC7B,MAAMmB,iBAAiBpB,aAAamB;gBACpCU,UAAUR,IAAI,CAACD;gBAEf,+BAA+B;gBAC/B,IAAIxB,WAAW,OAAO;oBACpB,KAAK,MAAM0B,OAAOC,OAAOC,IAAI,CAACJ,gBAAiB;wBAC7C,IAAI,CAAClB,WAAWuB,GAAG,CAACH,MAAM;4BACxBpB,WAAWwB,GAAG,CAACJ;4BACflB,QAAQiB,IAAI,CAACC;wBACf;oBACF;gBACF;YACF;YAEA,MAAM;gBAAElB,SAAS;uBAAIA;iBAAQ;gBAAEH,MAAM4B;YAAU;YAE/CvB,WAAWK,OAAOV,IAAI,CAACiB,MAAM;YAC7BX,cAAcI,OAAOJ,WAAW,IAAID,UAAUT;YAC9CQ;QACF;IACF;IAEA;;;;;;GAMC,GACD,MAAMyB,kBAAkB,OACtBpC;QAEA,MAAM,EAAEC,QAAQ,EAAEE,OAAO,EAAEC,GAAG,EAAEC,YAAY,CAAC,EAAEC,YAAY,EAAE,GAAGN;QAEhE,MAAMQ,aAAa,IAAIC;QACvB,MAAMC,UAAoB,EAAE;QAE5B,IAAIC,cAAcN;QAClB,IAAIO,UAAU;QACd,IAAIC,cAAc;QAElB,MAAOA,YAAa;YAClB,MAAMC,YAAYC,KAAKC,GAAG,CAAC,GAAGb,UAAUS;YAExC,IAAIE,cAAc,GAAG;gBACnB;YACF;YAEA,MAAMG,SAAS,MAAMb,IAAIc,OAAO,CAACC,IAAI,CAAC;gBACpC,GAAGlB,QAAQ;gBACXmB,OAAOL,KAAKM,GAAG,CAACxB,WAAWiB;gBAC3BQ,MAAMX;YACR;YAEA,IAAIb,OAAO;gBACTM,IAAIc,OAAO,CAACK,MAAM,CAACzB,KAAK,CACtB,CAAC,4BAA4B,EAAEa,YAAY,MAAM,EAAEM,OAAOV,IAAI,CAACiB,MAAM,CAAC,UAAU,CAAC;YAErF;YAEA,KAAK,MAAMC,OAAOR,OAAOV,IAAI,CAAE;gBAC7B,MAAMmB,iBAAiBpB,aAAamB;gBAEpC,KAAK,MAAMG,OAAOC,OAAOC,IAAI,CAACJ,gBAAiB;oBAC7C,IAAI,CAAClB,WAAWuB,GAAG,CAACH,MAAM;wBACxBpB,WAAWwB,GAAG,CAACJ;wBACflB,QAAQiB,IAAI,CAACC;oBACf;gBACF;YACF;YAEAhB,WAAWK,OAAOV,IAAI,CAACiB,MAAM;YAC7BX,cAAcI,OAAOJ,WAAW,IAAID,UAAUT;YAC9CQ;QACF;QAEA,IAAIb,OAAO;YACTM,IAAIc,OAAO,CAACK,MAAM,CAACzB,KAAK,CAAC,CAAC,WAAW,EAAEY,QAAQc,MAAM,CAAC,QAAQ,CAAC;QACjE;QAEA,OAAOd;IACT;IAEA,OAAO;QACL0B;QACArC;QACAmC;IACF;AACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PayloadRequest, Sort, Where } from '@ruya.sa/payload';
|
|
2
|
+
export type Export = {
|
|
3
|
+
/**
|
|
4
|
+
* Number of documents to process in each batch during export
|
|
5
|
+
* @default 100
|
|
6
|
+
*/
|
|
7
|
+
batchSize?: number;
|
|
8
|
+
collectionSlug: string;
|
|
9
|
+
/**
|
|
10
|
+
* If true, enables debug logging
|
|
11
|
+
*/
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
drafts?: 'no' | 'yes';
|
|
14
|
+
exportsCollection: string;
|
|
15
|
+
fields?: string[];
|
|
16
|
+
format: 'csv' | 'json';
|
|
17
|
+
globals?: string[];
|
|
18
|
+
id: number | string;
|
|
19
|
+
limit?: number;
|
|
20
|
+
locale?: string;
|
|
21
|
+
name: string;
|
|
22
|
+
page?: number;
|
|
23
|
+
slug: string;
|
|
24
|
+
sort: Sort;
|
|
25
|
+
userCollection: string;
|
|
26
|
+
userID: number | string;
|
|
27
|
+
where?: Where;
|
|
28
|
+
};
|
|
29
|
+
export type CreateExportArgs = {
|
|
30
|
+
/**
|
|
31
|
+
* If true, stream the file instead of saving it
|
|
32
|
+
*/
|
|
33
|
+
download?: boolean;
|
|
34
|
+
req: PayloadRequest;
|
|
35
|
+
} & Export;
|
|
36
|
+
export declare const createExport: (args: CreateExportArgs) => Promise<Response | undefined>;
|
|
37
|
+
//# sourceMappingURL=createExport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExport.d.ts","sourceRoot":"","sources":["../../src/export/createExport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAa,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAe9E,MAAM,MAAM,MAAM,GAAG;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,MAAM,CAAA;AAEV,eAAO,MAAM,YAAY,SAAgB,gBAAgB,kCA2bxD,CAAA"}
|