@webiny/db-dynamodb 6.1.0-beta.3 → 6.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/exports/api/db.d.ts +2 -0
  2. package/exports/api/db.js +4 -0
  3. package/exports/api/db.js.map +1 -0
  4. package/feature/FilterUtil/FilterUtil.d.ts +11 -0
  5. package/feature/FilterUtil/FilterUtil.js +28 -0
  6. package/feature/FilterUtil/FilterUtil.js.map +1 -0
  7. package/feature/FilterUtil/abstractions/FilterUtil.d.ts +17 -0
  8. package/feature/FilterUtil/abstractions/FilterUtil.js +4 -0
  9. package/feature/FilterUtil/abstractions/FilterUtil.js.map +1 -0
  10. package/feature/FilterUtil/createFilters.d.ts +22 -0
  11. package/{utils/filter.js → feature/FilterUtil/createFilters.js} +20 -64
  12. package/feature/FilterUtil/createFilters.js.map +1 -0
  13. package/feature/FilterUtil/extractWhereArgs.d.ts +7 -0
  14. package/feature/FilterUtil/extractWhereArgs.js +24 -0
  15. package/feature/FilterUtil/extractWhereArgs.js.map +1 -0
  16. package/feature/FilterUtil/feature.d.ts +1 -0
  17. package/feature/FilterUtil/feature.js +10 -0
  18. package/feature/FilterUtil/feature.js.map +1 -0
  19. package/feature/FilterUtil/index.d.ts +2 -0
  20. package/feature/FilterUtil/index.js +4 -0
  21. package/feature/FilterUtil/index.js.map +1 -0
  22. package/feature/ValueFilter/ValueFilterRegistry.d.ts +12 -0
  23. package/feature/ValueFilter/ValueFilterRegistry.js +23 -0
  24. package/feature/ValueFilter/ValueFilterRegistry.js.map +1 -0
  25. package/feature/ValueFilter/abstractions/ValueFilter.d.ts +22 -0
  26. package/feature/ValueFilter/abstractions/ValueFilter.js +4 -0
  27. package/feature/ValueFilter/abstractions/ValueFilter.js.map +1 -0
  28. package/feature/ValueFilter/abstractions/ValueFilterRegistry.d.ts +10 -0
  29. package/feature/ValueFilter/abstractions/ValueFilterRegistry.js +4 -0
  30. package/feature/ValueFilter/abstractions/ValueFilterRegistry.js.map +1 -0
  31. package/feature/ValueFilter/feature.d.ts +1 -0
  32. package/feature/ValueFilter/feature.js +32 -0
  33. package/feature/ValueFilter/feature.js.map +1 -0
  34. package/feature/ValueFilter/filters/AndInFilter.d.ts +11 -0
  35. package/feature/ValueFilter/filters/AndInFilter.js +32 -0
  36. package/feature/ValueFilter/filters/AndInFilter.js.map +1 -0
  37. package/feature/ValueFilter/filters/BetweenFilter.d.ts +11 -0
  38. package/{plugins/filters/between.js → feature/ValueFilter/filters/BetweenFilter.js} +17 -9
  39. package/feature/ValueFilter/filters/BetweenFilter.js.map +1 -0
  40. package/feature/ValueFilter/filters/ContainsFilter.d.ts +11 -0
  41. package/{plugins/filters/contains.js → feature/ValueFilter/filters/ContainsFilter.js} +16 -8
  42. package/feature/ValueFilter/filters/ContainsFilter.js.map +1 -0
  43. package/feature/ValueFilter/filters/EqFilter.d.ts +11 -0
  44. package/{plugins/filters/eq.js → feature/ValueFilter/filters/EqFilter.js} +16 -8
  45. package/feature/ValueFilter/filters/EqFilter.js.map +1 -0
  46. package/feature/ValueFilter/filters/FuzzyFilter.d.ts +11 -0
  47. package/{plugins/filters/fuzzy.js → feature/ValueFilter/filters/FuzzyFilter.js} +16 -8
  48. package/feature/ValueFilter/filters/FuzzyFilter.js.map +1 -0
  49. package/feature/ValueFilter/filters/GtFilter.d.ts +11 -0
  50. package/feature/ValueFilter/filters/GtFilter.js +22 -0
  51. package/feature/ValueFilter/filters/GtFilter.js.map +1 -0
  52. package/feature/ValueFilter/filters/GteFilter.d.ts +11 -0
  53. package/feature/ValueFilter/filters/GteFilter.js +22 -0
  54. package/feature/ValueFilter/filters/GteFilter.js.map +1 -0
  55. package/feature/ValueFilter/filters/InFilter.d.ts +11 -0
  56. package/feature/ValueFilter/filters/InFilter.js +32 -0
  57. package/feature/ValueFilter/filters/InFilter.js.map +1 -0
  58. package/feature/ValueFilter/filters/LtFilter.d.ts +11 -0
  59. package/feature/ValueFilter/filters/LtFilter.js +22 -0
  60. package/feature/ValueFilter/filters/LtFilter.js.map +1 -0
  61. package/feature/ValueFilter/filters/LteFilter.d.ts +11 -0
  62. package/feature/ValueFilter/filters/LteFilter.js +22 -0
  63. package/feature/ValueFilter/filters/LteFilter.js.map +1 -0
  64. package/feature/ValueFilter/filters/StartsWithFilter.d.ts +11 -0
  65. package/{plugins/filters/startsWith.js → feature/ValueFilter/filters/StartsWithFilter.js} +22 -11
  66. package/feature/ValueFilter/filters/StartsWithFilter.js.map +1 -0
  67. package/feature/ValueFilter/index.d.ts +3 -0
  68. package/feature/ValueFilter/index.js +5 -0
  69. package/feature/ValueFilter/index.js.map +1 -0
  70. package/index.d.ts +1 -0
  71. package/index.js +9 -0
  72. package/index.js.map +1 -1
  73. package/package.json +16 -13
  74. package/plugins/definitions/ValueTransformPlugin.d.ts +1 -6
  75. package/plugins/definitions/ValueTransformPlugin.js +0 -6
  76. package/plugins/definitions/ValueTransformPlugin.js.map +1 -1
  77. package/plugins/index.d.ts +0 -5
  78. package/plugins/index.js +0 -10
  79. package/plugins/index.js.map +1 -1
  80. package/utils/index.d.ts +1 -5
  81. package/utils/index.js +1 -5
  82. package/utils/index.js.map +1 -1
  83. package/plugins/definitions/AttributePlugin.d.ts +0 -18
  84. package/plugins/definitions/AttributePlugin.js +0 -38
  85. package/plugins/definitions/AttributePlugin.js.map +0 -1
  86. package/plugins/definitions/FieldPathPlugin.d.ts +0 -22
  87. package/plugins/definitions/FieldPathPlugin.js +0 -26
  88. package/plugins/definitions/FieldPathPlugin.js.map +0 -1
  89. package/plugins/definitions/ValueFilterPlugin.d.ts +0 -22
  90. package/plugins/definitions/ValueFilterPlugin.js +0 -35
  91. package/plugins/definitions/ValueFilterPlugin.js.map +0 -1
  92. package/plugins/filters/andIn.d.ts +0 -3
  93. package/plugins/filters/andIn.js +0 -24
  94. package/plugins/filters/andIn.js.map +0 -1
  95. package/plugins/filters/between.d.ts +0 -3
  96. package/plugins/filters/between.js.map +0 -1
  97. package/plugins/filters/contains.d.ts +0 -3
  98. package/plugins/filters/contains.js.map +0 -1
  99. package/plugins/filters/eq.d.ts +0 -3
  100. package/plugins/filters/eq.js.map +0 -1
  101. package/plugins/filters/fuzzy.d.ts +0 -3
  102. package/plugins/filters/fuzzy.js.map +0 -1
  103. package/plugins/filters/gt.d.ts +0 -3
  104. package/plugins/filters/gt.js +0 -14
  105. package/plugins/filters/gt.js.map +0 -1
  106. package/plugins/filters/gte.d.ts +0 -3
  107. package/plugins/filters/gte.js +0 -14
  108. package/plugins/filters/gte.js.map +0 -1
  109. package/plugins/filters/in.d.ts +0 -3
  110. package/plugins/filters/in.js +0 -24
  111. package/plugins/filters/in.js.map +0 -1
  112. package/plugins/filters/index.d.ts +0 -2
  113. package/plugins/filters/index.js +0 -14
  114. package/plugins/filters/index.js.map +0 -1
  115. package/plugins/filters/lt.d.ts +0 -3
  116. package/plugins/filters/lt.js +0 -14
  117. package/plugins/filters/lt.js.map +0 -1
  118. package/plugins/filters/lte.d.ts +0 -3
  119. package/plugins/filters/lte.js +0 -14
  120. package/plugins/filters/lte.js.map +0 -1
  121. package/plugins/filters/startsWith.d.ts +0 -3
  122. package/plugins/filters/startsWith.js.map +0 -1
  123. package/utils/attributes.d.ts +0 -10
  124. package/utils/attributes.js +0 -19
  125. package/utils/attributes.js.map +0 -1
  126. package/utils/filter.d.ts +0 -12
  127. package/utils/filter.js.map +0 -1
  128. package/utils/listResponse.d.ts +0 -13
  129. package/utils/listResponse.js +0 -25
  130. package/utils/listResponse.js.map +0 -1
  131. package/utils/update.d.ts +0 -12
  132. package/utils/update.js +0 -12
  133. package/utils/update.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["dotProp","WebinyError","ValueFilterPlugin","getMappedPlugins","params","plugins","byType","type","reduce","plugin","op","property","extractWhereArgs","key","result","split","field","shift","rawOp","length","join","operation","negate","match","replace","findFilterPlugin","multiSearchFieldOperations","createFilters","where","fields","keys","Object","filterPlugins","filters","compareValue","undefined","includes","data","transformValue","paths","map","fieldPlugin","find","getField","value","getPath","filterPlugin","push","path","transform","Array","isArray","v","createFilterCallable","item","filter","some","getProperty","matched","matches","filterItems","items"],"sources":["filter.ts"],"sourcesContent":["import * as dotProp from \"dot-prop\";\nimport WebinyError from \"@webiny/error\";\nimport type { Plugin, PluginsContainer } from \"@webiny/plugins\";\nimport { ValueFilterPlugin } from \"~/plugins/definitions/ValueFilterPlugin.js\";\nimport type { FieldPlugin } from \"~/plugins/definitions/FieldPlugin.js\";\nimport type { DynamoDbContainsFilter } from \"~/types.js\";\n\ntype TransformValue = (value: any) => any;\n\nexport interface Params<T = any> {\n plugins: PluginsContainer;\n items: T[];\n where: Record<string, any>;\n /**\n * An array of fields that require some special operation.\n */\n fields: FieldPlugin[];\n}\n\ninterface MappedPluginParams<T extends Plugin = Plugin> {\n plugins: PluginsContainer;\n type: string;\n property: keyof T;\n}\n\ninterface Filter {\n operation: string;\n compareValue: any;\n filterPlugin: ValueFilterPlugin;\n transformValue?: TransformValue;\n paths: string[];\n negate: boolean;\n}\n\nconst getMappedPlugins = <T extends Plugin>(params: MappedPluginParams<T>): Record<string, T> => {\n return params.plugins.byType<T>(params.type).reduce(\n (plugins, plugin) => {\n /**\n * We expect op to be a string, that is why we cast.\n */\n const op = plugin[params.property] as unknown as string;\n plugins[op] = plugin;\n return plugins;\n },\n {} as Record<string, T>\n );\n};\n\ninterface ExtractWhereArgsResult {\n field: string;\n operation: string;\n negate: boolean;\n}\nconst extractWhereArgs = (key: string): ExtractWhereArgsResult => {\n const result = key.split(\"_\");\n const field = result.shift() as string;\n const rawOp = result.length === 0 ? \"eq\" : result.join(\"_\");\n /**\n * When rawOp is not, it means it is equal negated so just return that.\n */\n if (rawOp === \"not\") {\n return {\n field,\n operation: \"eq\",\n negate: true\n };\n }\n const negate = rawOp.match(\"not_\") !== null;\n const operation = rawOp.replace(\"not_\", \"\");\n return {\n field,\n operation,\n negate\n };\n};\n\nconst findFilterPlugin = (\n plugins: Record<string, ValueFilterPlugin>,\n operation: string\n): ValueFilterPlugin => {\n if (plugins[operation]) {\n return plugins[operation];\n }\n throw new WebinyError(`Missing filter plugin definition.`, \"FILTER_PLUGIN_ERROR\", {\n operation\n });\n};\n\nconst multiSearchFieldOperations = [\"contains\", \"fuzzy\"];\n\nconst createFilters = (params: Omit<Params, \"items\">): Filter[] => {\n const { plugins, where, fields } = params;\n\n const keys = Object.keys(where);\n /**\n * Skip everything if there are no conditions to be applied.\n */\n if (keys.length === 0) {\n return [];\n }\n const filterPlugins = getMappedPlugins<ValueFilterPlugin>({\n plugins,\n type: ValueFilterPlugin.type,\n property: \"operation\"\n });\n\n return keys.reduce((filters, key) => {\n const compareValue = where[key];\n if (compareValue === undefined) {\n return filters;\n }\n /**\n * @see DynamoDbContainsFilter\n */\n if (multiSearchFieldOperations.includes(key) === true) {\n const data: DynamoDbContainsFilter = compareValue;\n let transformValue: TransformValue | undefined = undefined;\n const paths = data.fields.map(field => {\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n return fieldPlugin.getPath();\n }\n return field;\n });\n\n const filterPlugin = findFilterPlugin(filterPlugins, key);\n filters.push({\n operation: filterPlugin.operation,\n compareValue: data.value,\n filterPlugin,\n transformValue,\n paths,\n negate: false\n });\n return filters;\n }\n\n const { field, operation, negate } = extractWhereArgs(key);\n\n const filterPlugin = findFilterPlugin(filterPlugins, operation);\n\n const fieldPlugin = fields.find(plugin => plugin.getField() === field);\n let path: string = field;\n let transformValue: TransformValue | undefined = undefined;\n if (fieldPlugin) {\n transformValue = (value: any) => {\n return fieldPlugin.transformValue(value);\n };\n path = fieldPlugin.getPath();\n }\n\n filters.push({\n operation: filterPlugin.operation,\n compareValue,\n filterPlugin,\n transformValue,\n paths: [path],\n negate\n });\n\n return filters;\n }, [] as Filter[]);\n};\n/**\n * Transforms the value with given transformer callable.\n */\nconst transform = (value: any, transformValue?: TransformValue): any => {\n if (!transformValue) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(v => transformValue(v));\n }\n return transformValue(value);\n};\n/**\n * Creates a filter callable that we can send to the .filter() method of the array.\n */\nconst createFilterCallable = (params: Omit<Params, \"items\">): ((item: any) => boolean) | null => {\n const filters = createFilters(params);\n /**\n * Just return null so there are no filters to be applied.\n * Later in the code we check for null so we do not loop through the items.\n */\n if (filters.length === 0) {\n return null;\n }\n\n return (item: any) => {\n for (const filter of filters) {\n const result = filter.paths.some(path => {\n const value = transform(dotProp.getProperty(item, path), filter.transformValue);\n const compareValue = transform(filter.compareValue, filter.transformValue);\n const matched = filter.filterPlugin.matches({\n value,\n compareValue\n });\n\n return filter.negate ? !matched : matched;\n });\n if (result === false) {\n return false;\n }\n }\n return true;\n };\n};\n\nexport function filterItems<T = any>(params: Params<T>): T[] {\n const filter = createFilterCallable(params);\n /**\n * No point in going through all the items when there are no filters to be applied.\n */\n if (!filter) {\n return params.items;\n }\n return params.items.filter(filter);\n}\n"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,UAAU;AACnC,OAAOC,WAAW,MAAM,eAAe;AAEvC,SAASC,iBAAiB;AA+B1B,MAAMC,gBAAgB,GAAsBC,MAA6B,IAAwB;EAC7F,OAAOA,MAAM,CAACC,OAAO,CAACC,MAAM,CAAIF,MAAM,CAACG,IAAI,CAAC,CAACC,MAAM,CAC/C,CAACH,OAAO,EAAEI,MAAM,KAAK;IACjB;AACZ;AACA;IACY,MAAMC,EAAE,GAAGD,MAAM,CAACL,MAAM,CAACO,QAAQ,CAAsB;IACvDN,OAAO,CAACK,EAAE,CAAC,GAAGD,MAAM;IACpB,OAAOJ,OAAO;EAClB,CAAC,EACD,CAAC,CACL,CAAC;AACL,CAAC;AAOD,MAAMO,gBAAgB,GAAIC,GAAW,IAA6B;EAC9D,MAAMC,MAAM,GAAGD,GAAG,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7B,MAAMC,KAAK,GAAGF,MAAM,CAACG,KAAK,CAAC,CAAW;EACtC,MAAMC,KAAK,GAAGJ,MAAM,CAACK,MAAM,KAAK,CAAC,GAAG,IAAI,GAAGL,MAAM,CAACM,IAAI,CAAC,GAAG,CAAC;EAC3D;AACJ;AACA;EACI,IAAIF,KAAK,KAAK,KAAK,EAAE;IACjB,OAAO;MACHF,KAAK;MACLK,SAAS,EAAE,IAAI;MACfC,MAAM,EAAE;IACZ,CAAC;EACL;EACA,MAAMA,MAAM,GAAGJ,KAAK,CAACK,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI;EAC3C,MAAMF,SAAS,GAAGH,KAAK,CAACM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAC3C,OAAO;IACHR,KAAK;IACLK,SAAS;IACTC;EACJ,CAAC;AACL,CAAC;AAED,MAAMG,gBAAgB,GAAGA,CACrBpB,OAA0C,EAC1CgB,SAAiB,KACG;EACpB,IAAIhB,OAAO,CAACgB,SAAS,CAAC,EAAE;IACpB,OAAOhB,OAAO,CAACgB,SAAS,CAAC;EAC7B;EACA,MAAM,IAAIpB,WAAW,CAAC,mCAAmC,EAAE,qBAAqB,EAAE;IAC9EoB;EACJ,CAAC,CAAC;AACN,CAAC;AAED,MAAMK,0BAA0B,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC;AAExD,MAAMC,aAAa,GAAIvB,MAA6B,IAAe;EAC/D,MAAM;IAAEC,OAAO;IAAEuB,KAAK;IAAEC;EAAO,CAAC,GAAGzB,MAAM;EAEzC,MAAM0B,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACF,KAAK,CAAC;EAC/B;AACJ;AACA;EACI,IAAIE,IAAI,CAACX,MAAM,KAAK,CAAC,EAAE;IACnB,OAAO,EAAE;EACb;EACA,MAAMa,aAAa,GAAG7B,gBAAgB,CAAoB;IACtDE,OAAO;IACPE,IAAI,EAAEL,iBAAiB,CAACK,IAAI;IAC5BI,QAAQ,EAAE;EACd,CAAC,CAAC;EAEF,OAAOmB,IAAI,CAACtB,MAAM,CAAC,CAACyB,OAAO,EAAEpB,GAAG,KAAK;IACjC,MAAMqB,YAAY,GAAGN,KAAK,CAACf,GAAG,CAAC;IAC/B,IAAIqB,YAAY,KAAKC,SAAS,EAAE;MAC5B,OAAOF,OAAO;IAClB;IACA;AACR;AACA;IACQ,IAAIP,0BAA0B,CAACU,QAAQ,CAACvB,GAAG,CAAC,KAAK,IAAI,EAAE;MACnD,MAAMwB,IAA4B,GAAGH,YAAY;MACjD,IAAII,cAA0C,GAAGH,SAAS;MAC1D,MAAMI,KAAK,GAAGF,IAAI,CAACR,MAAM,CAACW,GAAG,CAACxB,KAAK,IAAI;QACnC,MAAMyB,WAAW,GAAGZ,MAAM,CAACa,IAAI,CAACjC,MAAM,IAAIA,MAAM,CAACkC,QAAQ,CAAC,CAAC,KAAK3B,KAAK,CAAC;QACtE,IAAIyB,WAAW,EAAE;UACbH,cAAc,GAAIM,KAAU,IAAK;YAC7B,OAAOH,WAAW,CAACH,cAAc,CAACM,KAAK,CAAC;UAC5C,CAAC;UACD,OAAOH,WAAW,CAACI,OAAO,CAAC,CAAC;QAChC;QACA,OAAO7B,KAAK;MAChB,CAAC,CAAC;MAEF,MAAM8B,YAAY,GAAGrB,gBAAgB,CAACO,aAAa,EAAEnB,GAAG,CAAC;MACzDoB,OAAO,CAACc,IAAI,CAAC;QACT1B,SAAS,EAAEyB,YAAY,CAACzB,SAAS;QACjCa,YAAY,EAAEG,IAAI,CAACO,KAAK;QACxBE,YAAY;QACZR,cAAc;QACdC,KAAK;QACLjB,MAAM,EAAE;MACZ,CAAC,CAAC;MACF,OAAOW,OAAO;IAClB;IAEA,MAAM;MAAEjB,KAAK;MAAEK,SAAS;MAAEC;IAAO,CAAC,GAAGV,gBAAgB,CAACC,GAAG,CAAC;IAE1D,MAAMiC,YAAY,GAAGrB,gBAAgB,CAACO,aAAa,EAAEX,SAAS,CAAC;IAE/D,MAAMoB,WAAW,GAAGZ,MAAM,CAACa,IAAI,CAACjC,MAAM,IAAIA,MAAM,CAACkC,QAAQ,CAAC,CAAC,KAAK3B,KAAK,CAAC;IACtE,IAAIgC,IAAY,GAAGhC,KAAK;IACxB,IAAIsB,cAA0C,GAAGH,SAAS;IAC1D,IAAIM,WAAW,EAAE;MACbH,cAAc,GAAIM,KAAU,IAAK;QAC7B,OAAOH,WAAW,CAACH,cAAc,CAACM,KAAK,CAAC;MAC5C,CAAC;MACDI,IAAI,GAAGP,WAAW,CAACI,OAAO,CAAC,CAAC;IAChC;IAEAZ,OAAO,CAACc,IAAI,CAAC;MACT1B,SAAS,EAAEyB,YAAY,CAACzB,SAAS;MACjCa,YAAY;MACZY,YAAY;MACZR,cAAc;MACdC,KAAK,EAAE,CAACS,IAAI,CAAC;MACb1B;IACJ,CAAC,CAAC;IAEF,OAAOW,OAAO;EAClB,CAAC,EAAE,EAAc,CAAC;AACtB,CAAC;AACD;AACA;AACA;AACA,MAAMgB,SAAS,GAAGA,CAACL,KAAU,EAAEN,cAA+B,KAAU;EACpE,IAAI,CAACA,cAAc,EAAE;IACjB,OAAOM,KAAK;EAChB;EACA,IAAIM,KAAK,CAACC,OAAO,CAACP,KAAK,CAAC,EAAE;IACtB,OAAOA,KAAK,CAACJ,GAAG,CAACY,CAAC,IAAId,cAAc,CAACc,CAAC,CAAC,CAAC;EAC5C;EACA,OAAOd,cAAc,CAACM,KAAK,CAAC;AAChC,CAAC;AACD;AACA;AACA;AACA,MAAMS,oBAAoB,GAAIjD,MAA6B,IAAsC;EAC7F,MAAM6B,OAAO,GAAGN,aAAa,CAACvB,MAAM,CAAC;EACrC;AACJ;AACA;AACA;EACI,IAAI6B,OAAO,CAACd,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO,IAAI;EACf;EAEA,OAAQmC,IAAS,IAAK;IAClB,KAAK,MAAMC,MAAM,IAAItB,OAAO,EAAE;MAC1B,MAAMnB,MAAM,GAAGyC,MAAM,CAAChB,KAAK,CAACiB,IAAI,CAACR,IAAI,IAAI;QACrC,MAAMJ,KAAK,GAAGK,SAAS,CAACjD,OAAO,CAACyD,WAAW,CAACH,IAAI,EAAEN,IAAI,CAAC,EAAEO,MAAM,CAACjB,cAAc,CAAC;QAC/E,MAAMJ,YAAY,GAAGe,SAAS,CAACM,MAAM,CAACrB,YAAY,EAAEqB,MAAM,CAACjB,cAAc,CAAC;QAC1E,MAAMoB,OAAO,GAAGH,MAAM,CAACT,YAAY,CAACa,OAAO,CAAC;UACxCf,KAAK;UACLV;QACJ,CAAC,CAAC;QAEF,OAAOqB,MAAM,CAACjC,MAAM,GAAG,CAACoC,OAAO,GAAGA,OAAO;MAC7C,CAAC,CAAC;MACF,IAAI5C,MAAM,KAAK,KAAK,EAAE;QAClB,OAAO,KAAK;MAChB;IACJ;IACA,OAAO,IAAI;EACf,CAAC;AACL,CAAC;AAED,OAAO,SAAS8C,WAAWA,CAAUxD,MAAiB,EAAO;EACzD,MAAMmD,MAAM,GAAGF,oBAAoB,CAACjD,MAAM,CAAC;EAC3C;AACJ;AACA;EACI,IAAI,CAACmD,MAAM,EAAE;IACT,OAAOnD,MAAM,CAACyD,KAAK;EACvB;EACA,OAAOzD,MAAM,CAACyD,KAAK,CAACN,MAAM,CAACA,MAAM,CAAC;AACtC","ignoreList":[]}
@@ -1,13 +0,0 @@
1
- interface MetaResponse {
2
- cursor: string | null;
3
- totalCount: number;
4
- hasMoreItems: boolean;
5
- }
6
- interface CreateListResponseParams<T> {
7
- items: T[];
8
- after?: string | null;
9
- totalCount: number;
10
- limit: number;
11
- }
12
- export declare function createListResponse<T>(params: CreateListResponseParams<T>): [T[], MetaResponse];
13
- export {};
@@ -1,25 +0,0 @@
1
- import { decodeCursor, encodeCursor } from "./cursor.js";
2
- export function createListResponse(params) {
3
- const {
4
- items: initialItems,
5
- after,
6
- totalCount,
7
- limit
8
- } = params;
9
- let start = Number(decodeCursor(after));
10
- if (isNaN(start) === true) {
11
- start = 0;
12
- }
13
- const hasMoreItems = totalCount > start + limit;
14
- const end = limit > totalCount + start + limit ? undefined : start + limit;
15
- const items = end ? initialItems.slice(start, end) : initialItems;
16
- const cursor = items.length > 0 ? encodeCursor(start + limit) : null;
17
- const meta = {
18
- hasMoreItems,
19
- totalCount,
20
- cursor
21
- };
22
- return [items, meta];
23
- }
24
-
25
- //# sourceMappingURL=listResponse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["decodeCursor","encodeCursor","createListResponse","params","items","initialItems","after","totalCount","limit","start","Number","isNaN","hasMoreItems","end","undefined","slice","cursor","length","meta"],"sources":["listResponse.ts"],"sourcesContent":["import { decodeCursor, encodeCursor } from \"~/utils/cursor.js\";\n\ninterface MetaResponse {\n cursor: string | null;\n totalCount: number;\n hasMoreItems: boolean;\n}\n\ninterface CreateListResponseParams<T> {\n items: T[];\n after?: string | null;\n totalCount: number;\n limit: number;\n}\n\nexport function createListResponse<T>(params: CreateListResponseParams<T>): [T[], MetaResponse] {\n const { items: initialItems, after, totalCount, limit } = params;\n let start = Number(decodeCursor(after));\n if (isNaN(start) === true) {\n start = 0;\n }\n const hasMoreItems = totalCount > start + limit;\n const end = limit > totalCount + start + limit ? undefined : start + limit;\n const items = end ? initialItems.slice(start, end) : initialItems;\n\n const cursor = items.length > 0 ? encodeCursor(start + limit) : null;\n\n const meta = {\n hasMoreItems,\n totalCount,\n cursor\n };\n\n return [items, meta];\n}\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,YAAY;AAenC,OAAO,SAASC,kBAAkBA,CAAIC,MAAmC,EAAuB;EAC5F,MAAM;IAAEC,KAAK,EAAEC,YAAY;IAAEC,KAAK;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAAGL,MAAM;EAChE,IAAIM,KAAK,GAAGC,MAAM,CAACV,YAAY,CAACM,KAAK,CAAC,CAAC;EACvC,IAAIK,KAAK,CAACF,KAAK,CAAC,KAAK,IAAI,EAAE;IACvBA,KAAK,GAAG,CAAC;EACb;EACA,MAAMG,YAAY,GAAGL,UAAU,GAAGE,KAAK,GAAGD,KAAK;EAC/C,MAAMK,GAAG,GAAGL,KAAK,GAAGD,UAAU,GAAGE,KAAK,GAAGD,KAAK,GAAGM,SAAS,GAAGL,KAAK,GAAGD,KAAK;EAC1E,MAAMJ,KAAK,GAAGS,GAAG,GAAGR,YAAY,CAACU,KAAK,CAACN,KAAK,EAAEI,GAAG,CAAC,GAAGR,YAAY;EAEjE,MAAMW,MAAM,GAAGZ,KAAK,CAACa,MAAM,GAAG,CAAC,GAAGhB,YAAY,CAACQ,KAAK,GAAGD,KAAK,CAAC,GAAG,IAAI;EAEpE,MAAMU,IAAI,GAAG;IACTN,YAAY;IACZL,UAAU;IACVS;EACJ,CAAC;EAED,OAAO,CAACZ,KAAK,EAAEc,IAAI,CAAC;AACxB","ignoreList":[]}
package/utils/update.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { Entity } from "../toolbox.js";
2
- interface Params {
3
- entity: Entity;
4
- item: {
5
- PK: string;
6
- SK: string;
7
- TYPE?: string;
8
- [key: string]: any;
9
- };
10
- }
11
- export declare const update: (params: Params) => Promise<import("@aws-sdk/lib-dynamodb").UpdateCommandOutput>;
12
- export {};
package/utils/update.js DELETED
@@ -1,12 +0,0 @@
1
- export const update = async params => {
2
- const {
3
- entity,
4
- item
5
- } = params;
6
- return await entity.update(item, {
7
- execute: true,
8
- strictSchemaCheck: false
9
- });
10
- };
11
-
12
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["update","params","entity","item","execute","strictSchemaCheck"],"sources":["update.ts"],"sourcesContent":["import type { Entity } from \"~/toolbox.js\";\n\ninterface Params {\n entity: Entity;\n item: {\n PK: string;\n SK: string;\n TYPE?: string;\n [key: string]: any;\n };\n}\n\nexport const update = async (params: Params) => {\n const { entity, item } = params;\n\n return await entity.update(item, {\n execute: true,\n strictSchemaCheck: false\n });\n};\n"],"mappings":"AAYA,OAAO,MAAMA,MAAM,GAAG,MAAOC,MAAc,IAAK;EAC5C,MAAM;IAAEC,MAAM;IAAEC;EAAK,CAAC,GAAGF,MAAM;EAE/B,OAAO,MAAMC,MAAM,CAACF,MAAM,CAACG,IAAI,EAAE;IAC7BC,OAAO,EAAE,IAAI;IACbC,iBAAiB,EAAE;EACvB,CAAC,CAAC;AACN,CAAC","ignoreList":[]}