@zajno/common 2.7.7 → 2.8.1

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.
Files changed (53) hide show
  1. package/cjs/lazy/extensions.js +48 -0
  2. package/cjs/lazy/extensions.js.map +1 -0
  3. package/cjs/lazy/lazy.js +35 -14
  4. package/cjs/lazy/lazy.js.map +1 -1
  5. package/cjs/lazy/light.js +11 -1
  6. package/cjs/lazy/light.js.map +1 -1
  7. package/cjs/lazy/promise.js +139 -18
  8. package/cjs/lazy/promise.js.map +1 -1
  9. package/cjs/models/Loading.js.map +1 -1
  10. package/cjs/structures/extendObject.js +8 -0
  11. package/cjs/structures/extendObject.js.map +1 -0
  12. package/cjs/structures/path/utils/indexTrim.js +3 -3
  13. package/cjs/structures/path/utils/indexTrim.js.map +1 -1
  14. package/cjs/structures/promiseCache.js +126 -19
  15. package/cjs/structures/promiseCache.js.map +1 -1
  16. package/cjs/structures/promiseProxy.js +2 -5
  17. package/cjs/structures/promiseProxy.js.map +1 -1
  18. package/cjs/structures/tempoCache.js.map +1 -1
  19. package/esm/lazy/extensions.js +45 -0
  20. package/esm/lazy/extensions.js.map +1 -0
  21. package/esm/lazy/lazy.js +35 -14
  22. package/esm/lazy/lazy.js.map +1 -1
  23. package/esm/lazy/light.js +11 -1
  24. package/esm/lazy/light.js.map +1 -1
  25. package/esm/lazy/promise.js +139 -18
  26. package/esm/lazy/promise.js.map +1 -1
  27. package/esm/models/Loading.js.map +1 -1
  28. package/esm/structures/extendObject.js +5 -0
  29. package/esm/structures/extendObject.js.map +1 -0
  30. package/esm/structures/path/utils/indexTrim.js +3 -3
  31. package/esm/structures/path/utils/indexTrim.js.map +1 -1
  32. package/esm/structures/promiseCache.js +126 -19
  33. package/esm/structures/promiseCache.js.map +1 -1
  34. package/esm/structures/promiseProxy.js +2 -5
  35. package/esm/structures/promiseProxy.js.map +1 -1
  36. package/esm/structures/tempoCache.js.map +1 -1
  37. package/package.json +1 -1
  38. package/tsconfig.cjs.tsbuildinfo +1 -1
  39. package/tsconfig.esm.tsbuildinfo +1 -1
  40. package/tsconfig.types.tsbuildinfo +1 -1
  41. package/types/lazy/extensions.d.ts +10 -0
  42. package/types/lazy/lazy.d.ts +8 -3
  43. package/types/lazy/light.d.ts +3 -1
  44. package/types/lazy/promise.d.ts +63 -10
  45. package/types/lazy/types.d.ts +106 -8
  46. package/types/models/Loading.d.ts +4 -4
  47. package/types/models/Model.d.ts +2 -2
  48. package/types/models/types.d.ts +1 -1
  49. package/types/structures/extendObject.d.ts +13 -0
  50. package/types/structures/path/utils/indexTrim.d.ts +2 -1
  51. package/types/structures/promiseCache.d.ts +127 -12
  52. package/types/structures/promiseProxy.d.ts +10 -6
  53. package/types/structures/tempoCache.d.ts +3 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.7.7",
3
+ "version": "2.8.1",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "private": false,
6
6
  "type": "module",
@@ -1 +1 @@
1
- {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
1
+ {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/extensions.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/extendobject.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
@@ -1 +1 @@
1
- {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
1
+ {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/extensions.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/extendobject.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
@@ -1 +1 @@
1
- {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
1
+ {"root":["../src/api/builder.ts","../src/api/call.config.ts","../src/api/call.ts","../src/api/call.types.ts","../src/api/config.ts","../src/api/endpoint.ts","../src/api/endpoint.types.ts","../src/api/error.ts","../src/api/hooks.ts","../src/api/index.ts","../src/api/interceptor.ts","../src/api/logging.ts","../src/api/methods.ts","../src/api/statuscodes.ts","../src/api/extensions/contenttype.ts","../src/api/extensions/endpointhooks.ts","../src/api/extensions/index.ts","../src/api/extensions/validation.ts","../src/async/arrays.ts","../src/async/index.ts","../src/async/manualpromise.ts","../src/async/misc.ts","../src/async/timeout.ts","../src/dates/calc.ts","../src/dates/calendarindex.ts","../src/dates/convert.ts","../src/dates/datex.ts","../src/dates/decompose.ts","../src/dates/format.ts","../src/dates/index.ts","../src/dates/parse.ts","../src/dates/period.ts","../src/dates/shift.ts","../src/dates/types.ts","../src/dates/tz.ts","../src/dates/yeardate.ts","../src/fields/filter.ts","../src/fields/index.ts","../src/fields/skip.ts","../src/fields/transfer.ts","../src/fields/update.ts","../src/functions/assert.ts","../src/functions/disposer.symbols.ts","../src/functions/disposer.ts","../src/functions/index.ts","../src/functions/safe.ts","../src/functions/throttle.ts","../src/lazy/extensions.ts","../src/lazy/index.ts","../src/lazy/lazy.ts","../src/lazy/light.ts","../src/lazy/promise.ts","../src/lazy/types.ts","../src/localization/localizationmanager.ts","../src/localization/localizedvalidationerrors.ts","../src/localization/abstractions.ts","../src/localization/index.ts","../src/localization/defaults/validationerrorslocalization.ts","../src/localization/defaults/defaultshape.ts","../src/logger/batch.ts","../src/logger/console.ts","../src/logger/empty.ts","../src/logger/index.ts","../src/logger/loggable.ts","../src/logger/manager.ts","../src/logger/named.ts","../src/logger/provider.ts","../src/logger/proxy.ts","../src/logger/types.ts","../src/logger/buffered/base.ts","../src/logger/buffered/buffered.logger.ts","../src/logger/buffered/buffered.memory.ts","../src/logger/buffered/index.ts","../src/logger/buffered/file/buffered.file.ts","../src/logger/buffered/file/index.ts","../src/math/arrays.ts","../src/math/calc.ts","../src/math/distribution.ts","../src/math/index.ts","../src/math/object/helpers.ts","../src/math/object/index.ts","../src/math/object/math.composite.ts","../src/math/object/math.ts","../src/math/object/ops.composite.ts","../src/math/object/ops.ts","../src/math/object/types.ts","../src/models/entitywithstatus.ts","../src/models/file.ts","../src/models/loading.ts","../src/models/logicmodel.ts","../src/models/model.ts","../src/models/valuescollector.ts","../src/models/types.ts","../src/models/wrappers.ts","../src/observing/event.late.ts","../src/observing/event.ts","../src/observing/progresstracker.ts","../src/observing/throttledevent.ts","../src/observing/timeout.ts","../src/observing/timer.ts","../src/observing/transition.ts","../src/storage/index.ts","../src/storage/types.ts","../src/storage/wrappers.ts","../src/structures/expire.ts","../src/structures/extendobject.ts","../src/structures/linkedlist.ts","../src/structures/nameof.ts","../src/structures/pool.ts","../src/structures/promisecache.ts","../src/structures/promiseextended.ts","../src/structures/promiseproxy.ts","../src/structures/singleton.ts","../src/structures/subscribersmap.ts","../src/structures/tempocache.ts","../src/structures/helpers/enum.ts","../src/structures/helpers/name.ts","../src/structures/path/builder.helpers.ts","../src/structures/path/builder.ts","../src/structures/path/index.ts","../src/structures/path/types.helpers.ts","../src/structures/path/types.ts","../src/structures/path/utils/combineurls.ts","../src/structures/path/utils/index.ts","../src/structures/path/utils/indextrim.ts","../src/structures/path/utils/optionals.ts","../src/structures/queue/parallel.ts","../src/structures/queue/tasks.ts","../src/types/arrays.ts","../src/types/comparator.ts","../src/types/deep.ts","../src/types/functions.ts","../src/types/getter.ts","../src/types/ident.ts","../src/types/index.ts","../src/types/misc.ts","../src/validation/validationerrors.ts","../src/validation/creditcard.ts","../src/validation/emails.ts","../src/validation/helpers.ts","../src/validation/index.ts","../src/validation/throwers.ts","../src/validation/types.ts","../src/validation/validationerror.ts","../src/validation/validators.ts","../src/validation/wrappers.ts"],"version":"5.7.3"}
@@ -0,0 +1,10 @@
1
+ import type { IKeyedStorage, IKeyedStorageSync } from '../storage/types.js';
2
+ import type { ILazyPromiseExtension } from './types.js';
3
+ export interface ICachedLazyPromiseExtension<T, TStorage extends IKeyedStorage<T> | IKeyedStorageSync<T>> {
4
+ readonly cache: TStorage;
5
+ /** Resets the current value to undefined and cleans up the cache. */
6
+ resetWithCache(): void;
7
+ /** Sets the current value and updates the cache. */
8
+ setCachedInstance(value: T | undefined): T | undefined;
9
+ }
10
+ export declare function createCacheExtension<T, TStorage extends IKeyedStorage<T> | IKeyedStorageSync<T>>(storage: TStorage): ILazyPromiseExtension<T, ICachedLazyPromiseExtension<T, TStorage>>;
@@ -1,21 +1,26 @@
1
+ import { type IDisposable } from '../functions/disposer.js';
2
+ import type { IResettableModel } from '../models/types.js';
1
3
  import type { IExpireTracker } from '../structures/expire.js';
2
4
  import type { ILazy } from './types.js';
3
- export declare class Lazy<T> implements ILazy<T> {
5
+ export declare class Lazy<T> implements ILazy<T>, IDisposable, IResettableModel {
4
6
  protected readonly _factory: (() => T);
5
7
  protected _instance: T | undefined;
6
8
  private _expireTracker;
7
9
  private _disposer?;
10
+ private _error;
8
11
  constructor(_factory: (() => T));
9
12
  get hasValue(): boolean;
10
- get value(): NonNullable<T>;
13
+ get value(): T;
11
14
  get currentValue(): T | undefined;
15
+ get error(): string | null;
12
16
  /** Override me: additional way to make sure instance is valid */
13
17
  protected get isValid(): boolean;
14
18
  withDisposer(disposer: (prev: T) => void): this;
15
19
  withExpire(tracker: IExpireTracker | undefined): this;
16
- private ensureInstance;
17
20
  prewarm(): this;
18
21
  setInstance(instance: T | undefined): void;
19
22
  reset(): void;
20
23
  dispose(): void;
24
+ private ensureInstance;
25
+ protected parseError(err: unknown): string;
21
26
  }
@@ -1,2 +1,4 @@
1
+ import type { IDisposable } from '../functions/disposer.js';
2
+ import type { IResettableModel } from '../models/types.js';
1
3
  import type { ILazy } from './types.js';
2
- export declare function createLazy<T>(factory: () => T): ILazy<T>;
4
+ export declare function createLazy<T>(factory: () => T): ILazy<T> & IDisposable & IResettableModel;
@@ -1,23 +1,76 @@
1
+ import { type IDisposable } from '../functions/disposer.js';
2
+ import type { IResettableModel } from '../models/types.js';
1
3
  import type { IExpireTracker } from '../structures/expire.js';
2
- import type { ILazyPromise } from './types.js';
3
- export declare class LazyPromise<T> implements ILazyPromise<T> {
4
- private readonly _factory;
5
- private readonly initial;
4
+ import type { IControllableLazyPromise, ILazyPromiseExtension, LazyFactory } from './types.js';
5
+ export declare class LazyPromise<T, TInitial extends T | undefined = undefined> implements IControllableLazyPromise<T, TInitial>, IDisposable, IResettableModel {
6
+ private _factory;
7
+ private readonly _initial;
6
8
  private _instance;
7
- private _busy;
9
+ private _isLoading;
8
10
  private _promise;
9
11
  private _expireTracker;
10
- constructor(_factory: () => Promise<T>, initial?: T | undefined);
11
- get busy(): boolean | null;
12
+ private _lastRefreshingPromise;
13
+ private _error;
14
+ constructor(factory: LazyFactory<T>, initial?: TInitial);
15
+ get isLoading(): boolean | null;
12
16
  get hasValue(): boolean;
17
+ get error(): string | null;
13
18
  get promise(): Promise<T>;
14
- get value(): NonNullable<T>;
19
+ get value(): T | TInitial;
15
20
  /** does not calls factory */
16
- get currentValue(): T | undefined;
21
+ get currentValue(): T | TInitial;
17
22
  withExpire(tracker: IExpireTracker | undefined): this;
23
+ /**
24
+ * Extends this instance with additional functionality by applying extensions in place.
25
+ *
26
+ * **Capabilities:**
27
+ * - `overrideFactory`: Wrap the factory function (logging, retry, caching, etc.)
28
+ * - `extendShape`: Add custom properties/methods to the instance
29
+ *
30
+ * **Type Safety:**
31
+ * - Use `ILazyPromiseExtension<any>` for universal extensions
32
+ * - Use `ILazyPromiseExtension<ConcreteType>` for type-specific extensions (e.g., number-only)
33
+ *
34
+ * **Note:** Extensions mutate the instance and can be chained. Subclasses preserve their type.
35
+ *
36
+ * @param extension - Configuration with factory override and/or shape extensions
37
+ * @returns The same instance (this) with applied extensions
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * // Universal logging extension
42
+ * const logged = lazy.extend({
43
+ * overrideFactory: (factory) => async (refreshing) => {
44
+ * console.log('Loading...');
45
+ * return await factory(refreshing);
46
+ * }
47
+ * });
48
+ *
49
+ * // Type-specific extension with custom methods
50
+ * const enhanced = lazyNumber.extend<{ double: () => number | undefined }>({
51
+ * extendShape: (instance) => Object.assign(instance, {
52
+ * double: () => instance.currentValue !== undefined
53
+ * ? instance.currentValue * 2
54
+ * : undefined
55
+ * })
56
+ * });
57
+ *
58
+ * // Chaining multiple extensions
59
+ * const composed = lazy
60
+ * .extend(cacheExtension)
61
+ * .extend(loggingExtension);
62
+ * ```
63
+ */
64
+ extend<TExtShape extends object = object>(extension: Partial<ILazyPromiseExtension<any, TExtShape>>): object extends TExtShape ? this : this & TExtShape;
18
65
  protected ensureInstanceLoading(): void;
66
+ protected doLoad(): void;
19
67
  protected onResolved(res: T): T;
20
- setInstance(res: T | undefined): T | undefined;
68
+ protected onRejected(e: unknown): T;
69
+ setInstance(res: T): T;
70
+ protected setError(err: unknown): void;
71
+ protected clearError(): void;
72
+ refresh(): Promise<T>;
21
73
  reset(): void;
22
74
  dispose(): void;
75
+ protected parseError(err: unknown): string;
23
76
  }
@@ -1,12 +1,110 @@
1
- import type { IDisposable } from '../functions/disposer.js';
2
- import type { IResetableModel } from '../models/types.js';
3
- export type ILazy<T> = IDisposable & IResetableModel & {
1
+ import type { IResettableModel } from '../models/types.js';
2
+ /** Represents a lazily loaded value. */
3
+ export interface ILazy<T> {
4
+ /** Returns current value. If not loaded, loading is triggered. */
4
5
  readonly value: T;
6
+ /** Returns whether has current value. Accessing this property does not trigger loading. */
5
7
  readonly hasValue: boolean;
6
- /** should not call the factory or change the value either way */
8
+ /** Returns current value or undefined if not present. Accessing this property does not trigger loading. */
7
9
  readonly currentValue: T | undefined;
8
- };
9
- export type ILazyPromise<T> = ILazy<T> & {
10
- readonly busy: boolean | null;
10
+ /** Returns error message if loading failed, null otherwise. Accessing this property does not trigger loading. */
11
+ readonly error: string | null;
12
+ }
13
+ /** Represents a lazily asynchronously loaded value. */
14
+ export interface ILazyPromise<T, TInitial extends T | undefined = undefined> extends ILazy<T | TInitial> {
15
+ /**
16
+ * Returns true if loading is in progress, false if loading is completed, null if loading was not initiated.
17
+ *
18
+ * Accessing this property does not trigger loading.
19
+ */
20
+ readonly isLoading: boolean | null;
21
+ /** Returns the promise for the current value. If not loaded, accessing this property triggers loading. */
11
22
  readonly promise: Promise<T>;
12
- };
23
+ /**
24
+ * Refreshes the value by re-executing the factory function.
25
+ * The factory will be called with `refreshing: true` parameter.
26
+ * If multiple refreshes are called concurrently, only the last one will update the instance.
27
+ *
28
+ * **⚠️ Use sparingly:** This method should only be called when you explicitly need fresh data.
29
+ * Over-using refresh defeats the purpose of lazy loading and caching.
30
+ *
31
+ * **Common valid use cases:**
32
+ * - User-initiated refresh action (pull-to-refresh, refresh button)
33
+ * - Cache invalidation after a mutation (e.g., after updating data on server)
34
+ * - Time-based refresh with proper debouncing/throttling
35
+ * - Recovery from an error state
36
+ *
37
+ * **Anti-patterns to avoid:**
38
+ * - Calling refresh on every render or component mount
39
+ * - Using refresh instead of proper cache expiration (use `withExpire` instead)
40
+ * - Calling refresh in loops or high-frequency events without debouncing
41
+ * - Using refresh as a substitute for real-time updates (consider WebSockets/polling instead)
42
+ *
43
+ * @returns Promise that resolves to the refreshed value, or current value if refresh fails.
44
+ */
45
+ refresh(): Promise<T>;
46
+ }
47
+ /**
48
+ * Represents a controllable lazy promise with manual state management capabilities.
49
+ * Extends ILazyPromise and IResettableModel with methods to manually set values and reset state.
50
+ * Use this interface in extensions that need direct control over the lazy value lifecycle.
51
+ */
52
+ export interface IControllableLazyPromise<T, TInitial extends T | undefined = undefined> extends ILazyPromise<T, TInitial>, IResettableModel {
53
+ /**
54
+ * Manually sets the instance value and marks loading as complete.
55
+ * Useful for cache synchronization and manual state management.
56
+ *
57
+ * @param value - The value to set
58
+ * @returns The value that was set
59
+ */
60
+ setInstance(value: T): T;
61
+ }
62
+ /**
63
+ * Factory function to retrieve the fresh value.
64
+ *
65
+ * @param refreshing - indicates whether manual refresh is requested
66
+ * */
67
+ export type LazyFactory<T> = (refreshing?: boolean) => Promise<T>;
68
+ /**
69
+ * Extension for LazyPromise instances.
70
+ *
71
+ * @template T - The type of value the extension is compatible with. Use `any` for universal extensions.
72
+ * @template TExtShape - Additional shape added to the extended instance (properties/methods).
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Type-specific extension (only for numbers)
77
+ * const doublingExtension: ILazyPromiseExtension<number> = {
78
+ * overrideFactory: (original) => async (refreshing) => {
79
+ * const result = await original(refreshing);
80
+ * return result * 2;
81
+ * }
82
+ * };
83
+ *
84
+ * // Universal extension (works with any type)
85
+ * const loggingExtension: ILazyPromiseExtension<any> = {
86
+ * overrideFactory: (original) => async (refreshing) => {
87
+ * console.log('Loading...');
88
+ * return await original(refreshing);
89
+ * }
90
+ * };
91
+ * ```
92
+ */
93
+ export interface ILazyPromiseExtension<T = any, TExtShape extends object = object> {
94
+ /**
95
+ * Override or wrap the factory function.
96
+ * @param original - The original factory function
97
+ * @param target - The LazyPromise instance being extended
98
+ * @returns A new factory function
99
+ */
100
+ overrideFactory?: <TInitial extends T | undefined = undefined>(original: LazyFactory<T>, target: ILazyPromise<T, TInitial>) => LazyFactory<T>;
101
+ /**
102
+ * Extend the instance with additional properties/methods.
103
+ * Receives IControllableLazyPromise which includes setInstance() and reset() methods
104
+ * for manual state management and cache synchronization.
105
+ *
106
+ * @param previous - The controllable LazyPromise instance to extend
107
+ * @returns The instance with additional shape
108
+ */
109
+ extendShape?: <TInitial extends T | undefined = undefined>(previous: IControllableLazyPromise<T, TInitial>) => IControllableLazyPromise<T, TInitial> & TExtShape;
110
+ }
@@ -1,4 +1,4 @@
1
- import type { IResetableModel, IValueModel } from './types.js';
1
+ import type { IResettableModel, IValueModel } from './types.js';
2
2
  export type LoadingWorker<T> = () => (T | Promise<T>);
3
3
  export type LoadingResult<T = unknown> = {
4
4
  aborted: true;
@@ -7,8 +7,8 @@ export type LoadingResult<T = unknown> = {
7
7
  result: T;
8
8
  };
9
9
  export declare function withLoading<T>(this: void, model: IValueModel<boolean>, cb: LoadingWorker<T>, exclusive?: boolean | 'throw'): Promise<LoadingResult<T>>;
10
- export declare class LoadingModel implements IValueModel<boolean>, IResetableModel {
11
- protected readonly _number: IValueModel<number> & IResetableModel;
10
+ export declare class LoadingModel implements IValueModel<boolean>, IResettableModel {
11
+ protected readonly _number: IValueModel<number> & IResettableModel;
12
12
  protected _firstInit: boolean;
13
13
  /**
14
14
  * @param useFirstInit - if true, then `isLoading` will be returning 'true' until first `useLoading` call. Defaults to false.
@@ -27,7 +27,7 @@ export declare class LoadingModel implements IValueModel<boolean>, IResetableMod
27
27
  /** override me
28
28
  *
29
29
  * Called in the ctor. Should be pure and should NOT access `this`. */
30
- protected pureConstructNumberModel(): IValueModel<number> & IResetableModel;
30
+ protected pureConstructNumberModel(): IValueModel<number> & IResettableModel;
31
31
  }
32
32
  export declare class ExclusiveLoadingError extends Error {
33
33
  readonly actionName?: string | undefined;
@@ -1,7 +1,7 @@
1
- import type { IResetableModel, IValueModel } from './types.js';
1
+ import type { IResettableModel, IValueModel } from './types.js';
2
2
  import { Getter } from '../types/getter.js';
3
3
  import type { Nullable } from '../types/misc.js';
4
- export declare class Model<T> implements IValueModel<Nullable<T>>, IResetableModel {
4
+ export declare class Model<T> implements IValueModel<Nullable<T>>, IResettableModel {
5
5
  private _value;
6
6
  private readonly _defaultValue;
7
7
  constructor(v?: Getter<Nullable<T>>);
@@ -7,7 +7,7 @@ export interface IValueModel<TValue> extends IValueModelReadonly<TValue> {
7
7
  export interface ILabel<T> {
8
8
  readonly label: T;
9
9
  }
10
- export interface IResetableModel {
10
+ export interface IResettableModel {
11
11
  readonly reset: () => void;
12
12
  readonly isDefault?: boolean;
13
13
  }
@@ -0,0 +1,13 @@
1
+ type BasePropertyDescriptor = Pick<PropertyDescriptor, 'configurable' | 'enumerable' | 'writable'>;
2
+ type PropertyDescriptorTyped<T> = BasePropertyDescriptor & ({
3
+ value: T;
4
+ } | {
5
+ get: () => T;
6
+ set?: (value: T) => void;
7
+ });
8
+ type ExtensionMap<T extends object> = {
9
+ [K in keyof T]: PropertyDescriptorTyped<T[K]>;
10
+ };
11
+ /** Type-safe version of `Object.defineProperties` */
12
+ export declare function extendObject<T extends object, TExtension extends object>(base: T, extensionDescriptorsMap: ExtensionMap<TExtension>): T & TExtension;
13
+ export {};
@@ -1 +1,2 @@
1
- export declare function indexTrim(str: string | null | undefined, ch: string): string;
1
+ export type TrimChar<T extends string, C extends string> = [T] extends undefined ? '' : T extends `${C}${infer R}` ? TrimChar<R, C> : T extends `${infer R}${C}` ? TrimChar<R, C> : T;
2
+ export declare function indexTrim<T extends string, C extends string>(str: T | null | undefined, ch: C): TrimChar<T, C>;