@@ -246,13 +246,15 @@ class Cloner {
246246 return false ;
247247 }
248248
249- // Make sure to not re-clone the same item it if has not been modified.
250- // eslint-disable-next-line max-len
251- const updatedCreated = ( updatedItem . created instanceof Date ) ? updatedItem . created . getTime ( ) : parseInt ( updatedItem . created , 10 ) ;
252- // eslint-disable-next-line max-len
253- const updatedModified = ( updatedItem . modified instanceof Date ) ? updatedItem . modified . getTime ( ) : parseInt ( updatedItem . modified , 10 ) ;
254- if ( srcCreated === updatedCreated && srcModified === updatedModified ) {
255- return false ;
249+ if ( updatedItem . _id ) {
250+ // Make sure to not re-clone the same item it if has not been modified.
251+ // eslint-disable-next-line max-len
252+ const updatedCreated = ( updatedItem . created instanceof Date ) ? updatedItem . created . getTime ( ) : parseInt ( updatedItem . created , 10 ) ;
253+ // eslint-disable-next-line max-len
254+ const updatedModified = ( updatedItem . modified instanceof Date ) ? updatedItem . modified . getTime ( ) : parseInt ( updatedItem . modified , 10 ) ;
255+ if ( srcCreated === updatedCreated && srcModified === updatedModified ) {
256+ return false ;
257+ }
256258 }
257259 return true ;
258260 }
@@ -425,9 +427,9 @@ class Cloner {
425427 * @param {* } query - The default query to decorate.
426428 * @returns - The decorated query.
427429 */
428- query ( query ) {
430+ query ( query , includeAll = false ) {
429431 let newQuery = _ . cloneDeep ( query ) ;
430- if ( ! this . options . all ) {
432+ if ( ! this . options . all && ! includeAll ) {
431433 newQuery . deleted = { $eq : null } ;
432434 }
433435 return newQuery ;
@@ -452,16 +454,18 @@ class Cloner {
452454 * @param {* } query - The default query to decorate.
453455 * @returns - The decorated query.
454456 */
455- itemQuery ( query ) {
457+ itemQuery ( query , includeAll = false ) {
456458 let newQuery = _ . cloneDeep ( query ) ;
457459 if ( this . options . deletedAfter ) {
458- newQuery [ '$or' ] = [
459- { deleted : { $eq : null } } ,
460- { deleted : { $gt : new Date ( parseInt ( this . options . deletedAfter , 10 ) ) } }
461- ] ;
460+ if ( ! includeAll ) {
461+ newQuery [ '$or' ] = [
462+ { deleted : { $eq : null } } ,
463+ { deleted : { $gt : new Date ( parseInt ( this . options . deletedAfter , 10 ) ) } }
464+ ] ;
465+ }
462466 }
463467 else {
464- newQuery = this . query ( newQuery ) ;
468+ newQuery = this . query ( newQuery , includeAll ) ;
465469 }
466470 // If it's OSS, then project would be undefined
467471 // eslint-disable-next-line no-prototype-builtins
@@ -475,8 +479,8 @@ class Cloner {
475479 * Adding a query for created and modified dates.
476480 * @param {* } query - The default query to decorate.
477481 */
478- afterQuery ( query , createdAfter , modifiedAfter ) {
479- const newQuery = this . itemQuery ( query ) ;
482+ afterQuery ( query , createdAfter , modifiedAfter , includeAll = false ) {
483+ const newQuery = this . itemQuery ( query , includeAll ) ;
480484 createdAfter = createdAfter || this . options . createdAfter ;
481485 modifiedAfter = modifiedAfter || this . options . modifiedAfter ;
482486 if ( createdAfter ) {
0 commit comments