@strapi/utils 5.56.0 → 5.58.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 (149) hide show
  1. package/dist/async.js +2 -2
  2. package/dist/async.js.map +1 -1
  3. package/dist/async.mjs +1 -1
  4. package/dist/async.mjs.map +1 -1
  5. package/dist/content-types.d.ts.map +1 -1
  6. package/dist/content-types.js +8 -9
  7. package/dist/content-types.js.map +1 -1
  8. package/dist/content-types.mjs +6 -7
  9. package/dist/content-types.mjs.map +1 -1
  10. package/dist/convert-query-params.d.ts.map +1 -1
  11. package/dist/convert-query-params.js +33 -34
  12. package/dist/convert-query-params.js.map +1 -1
  13. package/dist/convert-query-params.mjs +23 -24
  14. package/dist/convert-query-params.mjs.map +1 -1
  15. package/dist/format-yup-error.js +3 -3
  16. package/dist/format-yup-error.js.map +1 -1
  17. package/dist/format-yup-error.mjs +1 -1
  18. package/dist/format-yup-error.mjs.map +1 -1
  19. package/dist/hooks.js +3 -3
  20. package/dist/hooks.js.map +1 -1
  21. package/dist/hooks.mjs +2 -2
  22. package/dist/hooks.mjs.map +1 -1
  23. package/dist/pagination.d.ts.map +1 -1
  24. package/dist/pagination.js +15 -18
  25. package/dist/pagination.js.map +1 -1
  26. package/dist/pagination.mjs +15 -18
  27. package/dist/pagination.mjs.map +1 -1
  28. package/dist/policy.d.ts +1 -1
  29. package/dist/policy.d.ts.map +1 -1
  30. package/dist/policy.js +1 -3
  31. package/dist/policy.js.map +1 -1
  32. package/dist/policy.mjs +1 -3
  33. package/dist/policy.mjs.map +1 -1
  34. package/dist/primitives/objects.d.ts +7 -1
  35. package/dist/primitives/objects.d.ts.map +1 -1
  36. package/dist/primitives/objects.js +5 -0
  37. package/dist/primitives/objects.js.map +1 -1
  38. package/dist/primitives/objects.mjs +5 -1
  39. package/dist/primitives/objects.mjs.map +1 -1
  40. package/dist/primitives/strings.d.ts.map +1 -1
  41. package/dist/primitives/strings.js +3 -7
  42. package/dist/primitives/strings.js.map +1 -1
  43. package/dist/primitives/strings.mjs +3 -7
  44. package/dist/primitives/strings.mjs.map +1 -1
  45. package/dist/provider-factory.js +4 -4
  46. package/dist/provider-factory.js.map +1 -1
  47. package/dist/provider-factory.mjs +1 -1
  48. package/dist/provider-factory.mjs.map +1 -1
  49. package/dist/relations.js +2 -2
  50. package/dist/relations.js.map +1 -1
  51. package/dist/relations.mjs +1 -1
  52. package/dist/relations.mjs.map +1 -1
  53. package/dist/sanitize/index.d.ts.map +1 -1
  54. package/dist/sanitize/index.js +8 -8
  55. package/dist/sanitize/index.js.map +1 -1
  56. package/dist/sanitize/index.mjs +7 -7
  57. package/dist/sanitize/index.mjs.map +1 -1
  58. package/dist/sanitize/sanitizers.js +10 -10
  59. package/dist/sanitize/sanitizers.js.map +1 -1
  60. package/dist/sanitize/sanitizers.mjs +4 -4
  61. package/dist/sanitize/sanitizers.mjs.map +1 -1
  62. package/dist/sanitize/visitors/remove-disallowed-fields.js +4 -4
  63. package/dist/sanitize/visitors/remove-disallowed-fields.js.map +1 -1
  64. package/dist/sanitize/visitors/remove-disallowed-fields.mjs +3 -3
  65. package/dist/sanitize/visitors/remove-disallowed-fields.mjs.map +1 -1
  66. package/dist/sanitize/visitors/remove-restricted-fields.js +2 -2
  67. package/dist/sanitize/visitors/remove-restricted-fields.js.map +1 -1
  68. package/dist/sanitize/visitors/remove-restricted-fields.mjs +2 -2
  69. package/dist/sanitize/visitors/remove-restricted-fields.mjs.map +1 -1
  70. package/dist/sanitize/visitors/remove-restricted-relations.js +9 -9
  71. package/dist/sanitize/visitors/remove-restricted-relations.js.map +1 -1
  72. package/dist/sanitize/visitors/remove-restricted-relations.mjs +4 -4
  73. package/dist/sanitize/visitors/remove-restricted-relations.mjs.map +1 -1
  74. package/dist/security.d.ts.map +1 -1
  75. package/dist/security.js +3 -3
  76. package/dist/security.js.map +1 -1
  77. package/dist/security.mjs +3 -3
  78. package/dist/security.mjs.map +1 -1
  79. package/dist/set-creator-fields.d.ts +4 -1
  80. package/dist/set-creator-fields.d.ts.map +1 -1
  81. package/dist/set-creator-fields.js +7 -4
  82. package/dist/set-creator-fields.js.map +1 -1
  83. package/dist/set-creator-fields.mjs +7 -4
  84. package/dist/set-creator-fields.mjs.map +1 -1
  85. package/dist/traverse/factory.js +8 -8
  86. package/dist/traverse/factory.js.map +1 -1
  87. package/dist/traverse/factory.mjs +8 -8
  88. package/dist/traverse/factory.mjs.map +1 -1
  89. package/dist/traverse/query-fields.js +7 -7
  90. package/dist/traverse/query-fields.js.map +1 -1
  91. package/dist/traverse/query-fields.mjs +3 -3
  92. package/dist/traverse/query-fields.mjs.map +1 -1
  93. package/dist/traverse/query-filters.js +12 -12
  94. package/dist/traverse/query-filters.js.map +1 -1
  95. package/dist/traverse/query-filters.mjs +7 -7
  96. package/dist/traverse/query-filters.mjs.map +1 -1
  97. package/dist/traverse/query-populate.d.ts.map +1 -1
  98. package/dist/traverse/query-populate.js +21 -21
  99. package/dist/traverse/query-populate.js.map +1 -1
  100. package/dist/traverse/query-populate.mjs +12 -12
  101. package/dist/traverse/query-populate.mjs.map +1 -1
  102. package/dist/traverse/query-sort.d.ts.map +1 -1
  103. package/dist/traverse/query-sort.js +16 -16
  104. package/dist/traverse/query-sort.js.map +1 -1
  105. package/dist/traverse/query-sort.mjs +6 -6
  106. package/dist/traverse/query-sort.mjs.map +1 -1
  107. package/dist/traverse-entity.d.ts.map +1 -1
  108. package/dist/traverse-entity.js +18 -18
  109. package/dist/traverse-entity.js.map +1 -1
  110. package/dist/traverse-entity.mjs +16 -16
  111. package/dist/traverse-entity.mjs.map +1 -1
  112. package/dist/validate/index.d.ts.map +1 -1
  113. package/dist/validate/index.js +5 -5
  114. package/dist/validate/index.js.map +1 -1
  115. package/dist/validate/index.mjs +3 -3
  116. package/dist/validate/index.mjs.map +1 -1
  117. package/dist/validate/utils.d.ts +2 -1
  118. package/dist/validate/utils.d.ts.map +1 -1
  119. package/dist/validate/utils.js +4 -4
  120. package/dist/validate/utils.js.map +1 -1
  121. package/dist/validate/utils.mjs +4 -4
  122. package/dist/validate/utils.mjs.map +1 -1
  123. package/dist/validate/validators.d.ts.map +1 -1
  124. package/dist/validate/validators.js +17 -9
  125. package/dist/validate/validators.js.map +1 -1
  126. package/dist/validate/validators.mjs +14 -6
  127. package/dist/validate/validators.mjs.map +1 -1
  128. package/dist/validate/visitors/throw-disallowed-fields.js +4 -4
  129. package/dist/validate/visitors/throw-disallowed-fields.js.map +1 -1
  130. package/dist/validate/visitors/throw-disallowed-fields.mjs +3 -3
  131. package/dist/validate/visitors/throw-disallowed-fields.mjs.map +1 -1
  132. package/dist/validate/visitors/throw-restricted-fields.js +2 -2
  133. package/dist/validate/visitors/throw-restricted-fields.js.map +1 -1
  134. package/dist/validate/visitors/throw-restricted-fields.mjs +2 -2
  135. package/dist/validate/visitors/throw-restricted-fields.mjs.map +1 -1
  136. package/dist/validate/visitors/throw-restricted-relations.js +6 -6
  137. package/dist/validate/visitors/throw-restricted-relations.js.map +1 -1
  138. package/dist/validate/visitors/throw-restricted-relations.mjs +2 -2
  139. package/dist/validate/visitors/throw-restricted-relations.mjs.map +1 -1
  140. package/dist/validators.js +3 -3
  141. package/dist/validators.js.map +1 -1
  142. package/dist/validators.mjs +3 -3
  143. package/dist/validators.mjs.map +1 -1
  144. package/dist/yup.d.ts.map +1 -1
  145. package/dist/yup.js +2 -3
  146. package/dist/yup.js.map +1 -1
  147. package/dist/yup.mjs +3 -4
  148. package/dist/yup.mjs.map +1 -1
  149. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import { isNil, merge, pipe, omit } from 'lodash/fp';
1
+ import { merge, flow, omit } from 'lodash';
2
2
  import { PaginationError } from './errors.mjs';
3
3
 
4
4
  const STRAPI_DEFAULTS = {
@@ -38,13 +38,13 @@ const withNoLimit = (pagination, maxLimit = -1)=>({
38
38
  limit: pagination.limit === -1 ? maxLimit : pagination.limit
39
39
  });
40
40
  const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
41
- const defaultValues = merge(STRAPI_DEFAULTS, defaults);
42
- const usePagePagination = !isNil(args.page) || !isNil(args.pageSize);
43
- const useOffsetPagination = !isNil(args.start) || !isNil(args.limit);
44
- const ensureValidValues = pipe(ensureMinValues, ensureMaxValues(maxLimit));
41
+ const defaultValues = merge({}, STRAPI_DEFAULTS, defaults);
42
+ const usePagePagination = args.page != null || args.pageSize != null;
43
+ const useOffsetPagination = args.start != null || args.limit != null;
44
+ const ensureValidValues = flow(ensureMinValues, ensureMaxValues(maxLimit));
45
45
  // If there is no pagination attribute, don't modify the payload
46
46
  if (!usePagePagination && !useOffsetPagination) {
47
- return merge(args, ensureValidValues(defaultValues.offset));
47
+ return merge({}, args, ensureValidValues(defaultValues.offset));
48
48
  }
49
49
  // If there is page & offset pagination attributes, throw an error
50
50
  if (usePagePagination && useOffsetPagination) {
@@ -56,7 +56,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
56
56
  };
57
57
  // Start / Limit
58
58
  if (useOffsetPagination) {
59
- const { start, limit } = merge(defaultValues.offset, args);
59
+ const { start, limit } = merge({}, defaultValues.offset, args);
60
60
  Object.assign(pagination, {
61
61
  start,
62
62
  limit
@@ -64,13 +64,13 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
64
64
  }
65
65
  // Page / PageSize
66
66
  if (usePagePagination) {
67
- const pageArgs = isNil(args.pageSize) ? omit([
67
+ const pageArgs = args.pageSize == null ? omit(args, [
68
68
  'pageSize'
69
- ], args) : {
69
+ ]) : {
70
70
  ...args,
71
71
  pageSize: Math.max(1, args.pageSize)
72
72
  };
73
- const { page, pageSize } = merge(defaultValues.page, pageArgs);
73
+ const { page, pageSize } = merge({}, defaultValues.page, pageArgs);
74
74
  const pageLimit = ensureValidValues({
75
75
  start: 0,
76
76
  limit: pageSize
@@ -82,10 +82,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
82
82
  }
83
83
  // Handle -1 limit
84
84
  Object.assign(pagination, withNoLimit(pagination, maxLimit));
85
- const replacePaginationAttributes = pipe(// Remove pagination attributes
86
- omit(paginationAttributes), // Merge the object with the new pagination + ensure minimum & maximum values
87
- merge(ensureValidValues(pagination)));
88
- return replacePaginationAttributes(args);
85
+ return merge({}, ensureValidValues(pagination), omit(args, paginationAttributes));
89
86
  };
90
87
  /**
91
88
  * Transform pagination information into a paginated response:
@@ -96,7 +93,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
96
93
  * total: number
97
94
  * }
98
95
  */ const transformPagedPaginationInfo = (paginationInfo, total)=>{
99
- if (!isNil(paginationInfo.page)) {
96
+ if (paginationInfo.page != null) {
100
97
  const page = paginationInfo.page;
101
98
  const pageSize = paginationInfo.pageSize ?? total;
102
99
  return {
@@ -106,7 +103,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
106
103
  total
107
104
  };
108
105
  }
109
- if (!isNil(paginationInfo.start)) {
106
+ if (paginationInfo.start != null) {
110
107
  const start = paginationInfo.start;
111
108
  const limit = paginationInfo.limit ?? total;
112
109
  // Start limit to page page size
@@ -134,7 +131,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
134
131
  * total: number
135
132
  * }
136
133
  */ const transformOffsetPaginationInfo = (paginationInfo, total)=>{
137
- if (!isNil(paginationInfo.page)) {
134
+ if (paginationInfo.page != null) {
138
135
  const limit = paginationInfo.pageSize ?? total;
139
136
  const start = (paginationInfo.page - 1) * limit;
140
137
  return {
@@ -143,7 +140,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {})=>{
143
140
  total
144
141
  };
145
142
  }
146
- if (!isNil(paginationInfo.start)) {
143
+ if (paginationInfo.start != null) {
147
144
  const start = paginationInfo.start;
148
145
  const limit = paginationInfo.limit ?? total;
149
146
  // Start limit to page page size
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.mjs","sources":["../src/pagination.ts"],"sourcesContent":["import { merge, pipe, omit, isNil } from 'lodash/fp';\nimport { PaginationError } from './errors';\n\ninterface PaginationArgs {\n page: number;\n pageSize: number | null;\n start: number;\n limit: number;\n}\n\nexport interface Pagination {\n start: number;\n limit: number;\n}\n\nexport interface PagePatinationInformation {\n page: number;\n pageSize: number;\n pageCount: number;\n total: number;\n}\n\nexport interface OffsetPaginationInformation {\n start: number;\n limit: number;\n total: number;\n}\n\nconst STRAPI_DEFAULTS = {\n offset: {\n start: 0,\n limit: 10,\n },\n page: {\n page: 1,\n pageSize: 10,\n },\n};\n\nconst paginationAttributes = ['start', 'limit', 'page', 'pageSize'];\n\nconst withMaxLimit = (limit: number, maxLimit = -1) => {\n if (maxLimit === -1 || limit < maxLimit) {\n return limit;\n }\n\n return maxLimit;\n};\n\n// Ensure minimum page & pageSize values (page >= 1, pageSize >= 0, start >= 0, limit >= 0)\nconst ensureMinValues = ({ start, limit }: Pagination) => ({\n start: Math.max(start, 0),\n limit: limit === -1 ? limit : Math.max(limit, 1),\n});\n\nconst ensureMaxValues =\n (maxLimit = -1) =>\n ({ start, limit }: { start: number; limit: number }) => ({\n start,\n limit: withMaxLimit(limit, maxLimit),\n });\n\n// Apply maxLimit as the limit when limit is -1\nconst withNoLimit = (pagination: Pagination, maxLimit = -1) => ({\n ...pagination,\n limit: pagination.limit === -1 ? maxLimit : pagination.limit,\n});\n\nconst withDefaultPagination = <T extends Partial<PaginationArgs>>(\n args: T,\n { defaults = {}, maxLimit = -1 } = {}\n) => {\n const defaultValues = merge(STRAPI_DEFAULTS, defaults);\n\n const usePagePagination = !isNil(args.page) || !isNil(args.pageSize);\n const useOffsetPagination = !isNil(args.start) || !isNil(args.limit);\n\n const ensureValidValues = pipe(ensureMinValues, ensureMaxValues(maxLimit));\n\n // If there is no pagination attribute, don't modify the payload\n if (!usePagePagination && !useOffsetPagination) {\n return merge(args, ensureValidValues(defaultValues.offset));\n }\n\n // If there is page & offset pagination attributes, throw an error\n if (usePagePagination && useOffsetPagination) {\n throw new PaginationError('Cannot use both page & offset pagination in the same query');\n }\n\n const pagination: Pagination = {\n start: 0,\n limit: 0,\n };\n\n // Start / Limit\n if (useOffsetPagination) {\n const { start, limit } = merge(defaultValues.offset, args);\n\n Object.assign(pagination, { start, limit });\n }\n\n // Page / PageSize\n if (usePagePagination) {\n const pageArgs = isNil(args.pageSize)\n ? omit(['pageSize'], args)\n : { ...args, pageSize: Math.max(1, args.pageSize) };\n const { page, pageSize } = merge(defaultValues.page, pageArgs);\n const pageLimit = ensureValidValues({ start: 0, limit: pageSize }).limit;\n\n Object.assign(pagination, {\n start: (page - 1) * pageLimit,\n limit: pageLimit,\n });\n }\n\n // Handle -1 limit\n Object.assign(pagination, withNoLimit(pagination, maxLimit));\n\n const replacePaginationAttributes = pipe(\n // Remove pagination attributes\n omit(paginationAttributes),\n // Merge the object with the new pagination + ensure minimum & maximum values\n merge(ensureValidValues(pagination))\n );\n\n return replacePaginationAttributes(args);\n};\n\n/**\n * Transform pagination information into a paginated response:\n * {\n * page: number,\n * pageSize: number,\n * pageCount: number,\n * total: number\n * }\n */\nconst transformPagedPaginationInfo = (\n paginationInfo: Partial<PaginationArgs>,\n total: number\n): PagePatinationInformation => {\n if (!isNil(paginationInfo.page)) {\n const page = paginationInfo.page;\n const pageSize = paginationInfo.pageSize ?? total;\n\n return {\n page,\n pageSize,\n pageCount: pageSize > 0 ? Math.ceil(total / pageSize) : 0,\n total,\n };\n }\n\n if (!isNil(paginationInfo.start)) {\n const start = paginationInfo.start;\n const limit = paginationInfo.limit ?? total;\n\n // Start limit to page page size\n return {\n page: Math.floor(start / limit) + 1,\n pageSize: limit,\n pageCount: limit > 0 ? Math.ceil(total / limit) : 0,\n total,\n };\n }\n\n // Default pagination\n return {\n ...paginationInfo,\n page: 1,\n pageSize: 10,\n pageCount: 1,\n total,\n };\n};\n\n/**\n * Transform pagination information into a offset response:\n * {\n * start: number,\n * limit: number,\n * total: number\n * }\n */\nconst transformOffsetPaginationInfo = (\n paginationInfo: Partial<PaginationArgs>,\n total: number\n): OffsetPaginationInformation => {\n if (!isNil(paginationInfo.page)) {\n const limit = paginationInfo.pageSize ?? total;\n const start = (paginationInfo.page - 1) * limit;\n\n return { start, limit, total };\n }\n\n if (!isNil(paginationInfo.start)) {\n const start = paginationInfo.start;\n const limit = paginationInfo.limit ?? total;\n\n // Start limit to page page size\n return { start, limit, total };\n }\n\n // Default pagination\n return {\n ...paginationInfo,\n start: 0,\n limit: 10,\n total,\n };\n};\n\nexport { withDefaultPagination, transformPagedPaginationInfo, transformOffsetPaginationInfo };\n"],"names":["STRAPI_DEFAULTS","offset","start","limit","page","pageSize","paginationAttributes","withMaxLimit","maxLimit","ensureMinValues","Math","max","ensureMaxValues","withNoLimit","pagination","withDefaultPagination","args","defaults","defaultValues","merge","usePagePagination","isNil","useOffsetPagination","ensureValidValues","pipe","PaginationError","Object","assign","pageArgs","omit","pageLimit","replacePaginationAttributes","transformPagedPaginationInfo","paginationInfo","total","pageCount","ceil","floor","transformOffsetPaginationInfo"],"mappings":"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"}
1
+ {"version":3,"file":"pagination.mjs","sources":["../src/pagination.ts"],"sourcesContent":["import { merge, flow, omit } from 'lodash';\nimport { PaginationError } from './errors';\n\ninterface PaginationArgs {\n page: number;\n pageSize: number | null;\n start: number;\n limit: number;\n}\n\nexport interface Pagination {\n start: number;\n limit: number;\n}\n\nexport interface PagePatinationInformation {\n page: number;\n pageSize: number;\n pageCount: number;\n total: number;\n}\n\nexport interface OffsetPaginationInformation {\n start: number;\n limit: number;\n total: number;\n}\n\nconst STRAPI_DEFAULTS = {\n offset: {\n start: 0,\n limit: 10,\n },\n page: {\n page: 1,\n pageSize: 10,\n },\n};\n\nconst paginationAttributes = ['start', 'limit', 'page', 'pageSize'];\n\nconst withMaxLimit = (limit: number, maxLimit = -1) => {\n if (maxLimit === -1 || limit < maxLimit) {\n return limit;\n }\n\n return maxLimit;\n};\n\n// Ensure minimum page & pageSize values (page >= 1, pageSize >= 0, start >= 0, limit >= 0)\nconst ensureMinValues = ({ start, limit }: Pagination) => ({\n start: Math.max(start, 0),\n limit: limit === -1 ? limit : Math.max(limit, 1),\n});\n\nconst ensureMaxValues =\n (maxLimit = -1) =>\n ({ start, limit }: { start: number; limit: number }) => ({\n start,\n limit: withMaxLimit(limit, maxLimit),\n });\n\n// Apply maxLimit as the limit when limit is -1\nconst withNoLimit = (pagination: Pagination, maxLimit = -1) => ({\n ...pagination,\n limit: pagination.limit === -1 ? maxLimit : pagination.limit,\n});\n\nconst withDefaultPagination = <T extends Partial<PaginationArgs>>(\n args: T,\n { defaults = {}, maxLimit = -1 } = {}\n) => {\n const defaultValues = merge({}, STRAPI_DEFAULTS, defaults);\n\n const usePagePagination = args.page != null || args.pageSize != null;\n const useOffsetPagination = args.start != null || args.limit != null;\n\n const ensureValidValues = flow(ensureMinValues, ensureMaxValues(maxLimit));\n\n // If there is no pagination attribute, don't modify the payload\n if (!usePagePagination && !useOffsetPagination) {\n return merge({}, args, ensureValidValues(defaultValues.offset));\n }\n\n // If there is page & offset pagination attributes, throw an error\n if (usePagePagination && useOffsetPagination) {\n throw new PaginationError('Cannot use both page & offset pagination in the same query');\n }\n\n const pagination: Pagination = {\n start: 0,\n limit: 0,\n };\n\n // Start / Limit\n if (useOffsetPagination) {\n const { start, limit } = merge({}, defaultValues.offset, args);\n\n Object.assign(pagination, { start, limit });\n }\n\n // Page / PageSize\n if (usePagePagination) {\n const pageArgs =\n args.pageSize == null\n ? omit(args, ['pageSize'])\n : { ...args, pageSize: Math.max(1, args.pageSize) };\n const { page, pageSize } = merge({}, defaultValues.page, pageArgs);\n const pageLimit = ensureValidValues({ start: 0, limit: pageSize }).limit;\n\n Object.assign(pagination, {\n start: (page - 1) * pageLimit,\n limit: pageLimit,\n });\n }\n\n // Handle -1 limit\n Object.assign(pagination, withNoLimit(pagination, maxLimit));\n\n return merge({}, ensureValidValues(pagination), omit(args, paginationAttributes));\n};\n\n/**\n * Transform pagination information into a paginated response:\n * {\n * page: number,\n * pageSize: number,\n * pageCount: number,\n * total: number\n * }\n */\nconst transformPagedPaginationInfo = (\n paginationInfo: Partial<PaginationArgs>,\n total: number\n): PagePatinationInformation => {\n if (paginationInfo.page != null) {\n const page = paginationInfo.page;\n const pageSize = paginationInfo.pageSize ?? total;\n\n return {\n page,\n pageSize,\n pageCount: pageSize > 0 ? Math.ceil(total / pageSize) : 0,\n total,\n };\n }\n\n if (paginationInfo.start != null) {\n const start = paginationInfo.start;\n const limit = paginationInfo.limit ?? total;\n\n // Start limit to page page size\n return {\n page: Math.floor(start / limit) + 1,\n pageSize: limit,\n pageCount: limit > 0 ? Math.ceil(total / limit) : 0,\n total,\n };\n }\n\n // Default pagination\n return {\n ...paginationInfo,\n page: 1,\n pageSize: 10,\n pageCount: 1,\n total,\n };\n};\n\n/**\n * Transform pagination information into a offset response:\n * {\n * start: number,\n * limit: number,\n * total: number\n * }\n */\nconst transformOffsetPaginationInfo = (\n paginationInfo: Partial<PaginationArgs>,\n total: number\n): OffsetPaginationInformation => {\n if (paginationInfo.page != null) {\n const limit = paginationInfo.pageSize ?? total;\n const start = (paginationInfo.page - 1) * limit;\n\n return { start, limit, total };\n }\n\n if (paginationInfo.start != null) {\n const start = paginationInfo.start;\n const limit = paginationInfo.limit ?? total;\n\n // Start limit to page page size\n return { start, limit, total };\n }\n\n // Default pagination\n return {\n ...paginationInfo,\n start: 0,\n limit: 10,\n total,\n };\n};\n\nexport { withDefaultPagination, transformPagedPaginationInfo, transformOffsetPaginationInfo };\n"],"names":["STRAPI_DEFAULTS","offset","start","limit","page","pageSize","paginationAttributes","withMaxLimit","maxLimit","ensureMinValues","Math","max","ensureMaxValues","withNoLimit","pagination","withDefaultPagination","args","defaults","defaultValues","merge","usePagePagination","useOffsetPagination","ensureValidValues","flow","PaginationError","Object","assign","pageArgs","omit","pageLimit","transformPagedPaginationInfo","paginationInfo","total","pageCount","ceil","floor","transformOffsetPaginationInfo"],"mappings":"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"}
package/dist/policy.d.ts CHANGED
@@ -9,7 +9,7 @@ declare const createPolicy: (options: Options) => {
9
9
  handler: (...args: any[]) => any;
10
10
  };
11
11
  declare const createPolicyContext: (type: string, ctx: object) => {
12
- is: import("lodash/fp").LodashEq1x1;
12
+ is: (otherType: unknown) => boolean;
13
13
  readonly type: string;
14
14
  } & object;
15
15
  export { createPolicy, createPolicyContext };
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAEA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;CAC9B;AAED,QAAA,MAAM,YAAY,GAAI,SAAS,OAAO;;wBAGF,OAAO;uBANxB,GAAG,EAAE,KAAG,GAAG;CAqB7B,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM;;;UAUrD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;CAC9B;AAED,QAAA,MAAM,YAAY,GAAI,SAAS,OAAO;;wBAGF,OAAO;uBANxB,GAAG,EAAE,KAAG,GAAG;CAqB7B,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM;oBAGhC,OAAO;;UAO5B,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/policy.js CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
4
-
5
3
  const createPolicy = (options)=>{
6
4
  const { name = 'unnamed', validator, handler } = options;
7
5
  const wrappedValidator = (config)=>{
@@ -21,7 +19,7 @@ const createPolicy = (options)=>{
21
19
  };
22
20
  const createPolicyContext = (type, ctx)=>{
23
21
  return Object.assign({
24
- is: fp.eq(type),
22
+ is: (otherType)=>type === otherType,
25
23
  get type () {
26
24
  return type;
27
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sources":["../src/policy.ts"],"sourcesContent":["import { eq } from 'lodash/fp';\n\ninterface Options {\n name: string;\n validator?(config: unknown): void;\n handler(...args: any[]): any;\n}\n\nconst createPolicy = (options: Options) => {\n const { name = 'unnamed', validator, handler } = options;\n\n const wrappedValidator = (config: unknown) => {\n if (validator) {\n try {\n validator(config);\n } catch {\n throw new Error(`Invalid config passed to \"${name}\" policy.`);\n }\n }\n };\n\n return {\n name,\n validator: wrappedValidator,\n handler,\n };\n};\n\nconst createPolicyContext = (type: string, ctx: object) => {\n return Object.assign(\n {\n is: eq(type),\n get type() {\n return type;\n },\n },\n ctx\n );\n};\n\nexport { createPolicy, createPolicyContext };\n"],"names":["createPolicy","options","name","validator","handler","wrappedValidator","config","Error","createPolicyContext","type","ctx","Object","assign","is","eq"],"mappings":";;;;AAQA,MAAMA,eAAe,CAACC,OAAAA,GAAAA;IACpB,MAAM,EAAEC,OAAO,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGH,OAAAA;AAEjD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,QAAA,IAAIH,SAAAA,EAAW;YACb,IAAI;gBACFA,SAAAA,CAAUG,MAAAA,CAAAA;AACZ,YAAA,CAAA,CAAE,OAAM;AACN,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,0BAA0B,EAAEL,IAAAA,CAAK,SAAS,CAAC,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLA,QAAAA,IAAAA;QACAC,SAAAA,EAAWE,gBAAAA;AACXD,QAAAA;AACF,KAAA;AACF;AAEA,MAAMI,mBAAAA,GAAsB,CAACC,IAAAA,EAAcC,GAAAA,GAAAA;IACzC,OAAOC,MAAAA,CAAOC,MAAM,CAClB;AACEC,QAAAA,EAAAA,EAAIC,KAAAA,CAAGL,IAAAA,CAAAA;AACP,QAAA,IAAIA,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA;KACF,EACAC,GAAAA,CAAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"policy.js","sources":["../src/policy.ts"],"sourcesContent":["interface Options {\n name: string;\n validator?(config: unknown): void;\n handler(...args: any[]): any;\n}\n\nconst createPolicy = (options: Options) => {\n const { name = 'unnamed', validator, handler } = options;\n\n const wrappedValidator = (config: unknown) => {\n if (validator) {\n try {\n validator(config);\n } catch {\n throw new Error(`Invalid config passed to \"${name}\" policy.`);\n }\n }\n };\n\n return {\n name,\n validator: wrappedValidator,\n handler,\n };\n};\n\nconst createPolicyContext = (type: string, ctx: object) => {\n return Object.assign(\n {\n is: (otherType: unknown) => type === otherType,\n get type() {\n return type;\n },\n },\n ctx\n );\n};\n\nexport { createPolicy, createPolicyContext };\n"],"names":["createPolicy","options","name","validator","handler","wrappedValidator","config","Error","createPolicyContext","type","ctx","Object","assign","is","otherType"],"mappings":";;AAMA,MAAMA,eAAe,CAACC,OAAAA,GAAAA;IACpB,MAAM,EAAEC,OAAO,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGH,OAAAA;AAEjD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,QAAA,IAAIH,SAAAA,EAAW;YACb,IAAI;gBACFA,SAAAA,CAAUG,MAAAA,CAAAA;AACZ,YAAA,CAAA,CAAE,OAAM;AACN,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,0BAA0B,EAAEL,IAAAA,CAAK,SAAS,CAAC,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLA,QAAAA,IAAAA;QACAC,SAAAA,EAAWE,gBAAAA;AACXD,QAAAA;AACF,KAAA;AACF;AAEA,MAAMI,mBAAAA,GAAsB,CAACC,IAAAA,EAAcC,GAAAA,GAAAA;IACzC,OAAOC,MAAAA,CAAOC,MAAM,CAClB;QACEC,EAAAA,EAAI,CAACC,YAAuBL,IAAAA,KAASK,SAAAA;AACrC,QAAA,IAAIL,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA;KACF,EACAC,GAAAA,CAAAA;AAEJ;;;;;"}
package/dist/policy.mjs CHANGED
@@ -1,5 +1,3 @@
1
- import { eq } from 'lodash/fp';
2
-
3
1
  const createPolicy = (options)=>{
4
2
  const { name = 'unnamed', validator, handler } = options;
5
3
  const wrappedValidator = (config)=>{
@@ -19,7 +17,7 @@ const createPolicy = (options)=>{
19
17
  };
20
18
  const createPolicyContext = (type, ctx)=>{
21
19
  return Object.assign({
22
- is: eq(type),
20
+ is: (otherType)=>type === otherType,
23
21
  get type () {
24
22
  return type;
25
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy.mjs","sources":["../src/policy.ts"],"sourcesContent":["import { eq } from 'lodash/fp';\n\ninterface Options {\n name: string;\n validator?(config: unknown): void;\n handler(...args: any[]): any;\n}\n\nconst createPolicy = (options: Options) => {\n const { name = 'unnamed', validator, handler } = options;\n\n const wrappedValidator = (config: unknown) => {\n if (validator) {\n try {\n validator(config);\n } catch {\n throw new Error(`Invalid config passed to \"${name}\" policy.`);\n }\n }\n };\n\n return {\n name,\n validator: wrappedValidator,\n handler,\n };\n};\n\nconst createPolicyContext = (type: string, ctx: object) => {\n return Object.assign(\n {\n is: eq(type),\n get type() {\n return type;\n },\n },\n ctx\n );\n};\n\nexport { createPolicy, createPolicyContext };\n"],"names":["createPolicy","options","name","validator","handler","wrappedValidator","config","Error","createPolicyContext","type","ctx","Object","assign","is","eq"],"mappings":";;AAQA,MAAMA,eAAe,CAACC,OAAAA,GAAAA;IACpB,MAAM,EAAEC,OAAO,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGH,OAAAA;AAEjD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,QAAA,IAAIH,SAAAA,EAAW;YACb,IAAI;gBACFA,SAAAA,CAAUG,MAAAA,CAAAA;AACZ,YAAA,CAAA,CAAE,OAAM;AACN,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,0BAA0B,EAAEL,IAAAA,CAAK,SAAS,CAAC,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLA,QAAAA,IAAAA;QACAC,SAAAA,EAAWE,gBAAAA;AACXD,QAAAA;AACF,KAAA;AACF;AAEA,MAAMI,mBAAAA,GAAsB,CAACC,IAAAA,EAAcC,GAAAA,GAAAA;IACzC,OAAOC,MAAAA,CAAOC,MAAM,CAClB;AACEC,QAAAA,EAAAA,EAAIC,EAAAA,CAAGL,IAAAA,CAAAA;AACP,QAAA,IAAIA,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA;KACF,EACAC,GAAAA,CAAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"policy.mjs","sources":["../src/policy.ts"],"sourcesContent":["interface Options {\n name: string;\n validator?(config: unknown): void;\n handler(...args: any[]): any;\n}\n\nconst createPolicy = (options: Options) => {\n const { name = 'unnamed', validator, handler } = options;\n\n const wrappedValidator = (config: unknown) => {\n if (validator) {\n try {\n validator(config);\n } catch {\n throw new Error(`Invalid config passed to \"${name}\" policy.`);\n }\n }\n };\n\n return {\n name,\n validator: wrappedValidator,\n handler,\n };\n};\n\nconst createPolicyContext = (type: string, ctx: object) => {\n return Object.assign(\n {\n is: (otherType: unknown) => type === otherType,\n get type() {\n return type;\n },\n },\n ctx\n );\n};\n\nexport { createPolicy, createPolicyContext };\n"],"names":["createPolicy","options","name","validator","handler","wrappedValidator","config","Error","createPolicyContext","type","ctx","Object","assign","is","otherType"],"mappings":"AAMA,MAAMA,eAAe,CAACC,OAAAA,GAAAA;IACpB,MAAM,EAAEC,OAAO,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGH,OAAAA;AAEjD,IAAA,MAAMI,mBAAmB,CAACC,MAAAA,GAAAA;AACxB,QAAA,IAAIH,SAAAA,EAAW;YACb,IAAI;gBACFA,SAAAA,CAAUG,MAAAA,CAAAA;AACZ,YAAA,CAAA,CAAE,OAAM;AACN,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,0BAA0B,EAAEL,IAAAA,CAAK,SAAS,CAAC,CAAA;AAC9D,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,OAAO;AACLA,QAAAA,IAAAA;QACAC,SAAAA,EAAWE,gBAAAA;AACXD,QAAAA;AACF,KAAA;AACF;AAEA,MAAMI,mBAAAA,GAAsB,CAACC,IAAAA,EAAcC,GAAAA,GAAAA;IACzC,OAAOC,MAAAA,CAAOC,MAAM,CAClB;QACEC,EAAAA,EAAI,CAACC,YAAuBL,IAAAA,KAASK,SAAAA;AACrC,QAAA,IAAIL,IAAAA,CAAAA,GAAO;YACT,OAAOA,IAAAA;AACT,QAAA;KACF,EACAC,GAAAA,CAAAA;AAEJ;;;;"}
@@ -1,3 +1,9 @@
1
+ import _ from 'lodash';
1
2
  declare const keysDeep: (obj: object, path?: string[]) => string[];
2
- export { keysDeep };
3
+ /**
4
+ * Sets a property without changing the input. Copies containers on the updated path and
5
+ * preserves references to unrelated values, including the value being assigned.
6
+ */
7
+ declare const set: <T extends object>(object: T, path: _.PropertyPath, value: unknown) => T;
8
+ export { keysDeep, set };
3
9
  //# sourceMappingURL=objects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/primitives/objects.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAM,MAAM,EAAO,KAAG,MAAM,EAOpD,CAAC;AAER,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/primitives/objects.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,QAAA,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAM,MAAM,EAAO,KAAG,MAAM,EAOpD,CAAC;AAER;;;GAGG;AACH,QAAA,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,YAAY,EAAE,OAAO,OAAO,KAAG,CAG9E,CAAC;AAEJ,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC"}
@@ -12,6 +12,11 @@ const keysDeep = (obj, path = [])=>!___default.default.isObject(obj) ? [
12
12
  ...path,
13
13
  key
14
14
  ])), []);
15
+ /**
16
+ * Sets a property without changing the input. Copies containers on the updated path and
17
+ * preserves references to unrelated values, including the value being assigned.
18
+ */ const set = (object, path, value)=>___default.default.setWith(___default.default.clone(object), path, value, (current)=>___default.default.isObject(current) ? ___default.default.clone(current) : undefined);
15
19
 
16
20
  exports.keysDeep = keysDeep;
21
+ exports.set = set;
17
22
  //# sourceMappingURL=objects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"objects.js","sources":["../../src/primitives/objects.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst keysDeep = (obj: object, path: string[] = []): string[] =>\n !_.isObject(obj)\n ? [path.join('.')]\n : _.reduce(\n obj,\n (acc, next, key) => _.concat(acc, keysDeep(next, [...path, key])),\n [] as string[]\n );\n\nexport { keysDeep };\n"],"names":["keysDeep","obj","path","_","isObject","join","reduce","acc","next","key","concat"],"mappings":";;;;;;;;AAEA,MAAMA,QAAAA,GAAW,CAACC,GAAAA,EAAaC,IAAAA,GAAiB,EAAE,GAChD,CAACC,kBAAAA,CAAEC,QAAQ,CAACH,GAAAA,CAAAA,GACR;AAACC,QAAAA,IAAAA,CAAKG,IAAI,CAAC,GAAA;AAAK,KAAA,GAChBF,kBAAAA,CAAEG,MAAM,CACNL,GAAAA,EACA,CAACM,GAAAA,EAAKC,IAAAA,EAAMC,GAAAA,GAAQN,kBAAAA,CAAEO,MAAM,CAACH,GAAAA,EAAKP,SAASQ,IAAAA,EAAM;AAAIN,YAAAA,GAAAA,IAAAA;AAAMO,YAAAA;AAAI,SAAA,CAAA,CAAA,EAC/D,EAAE;;;;"}
1
+ {"version":3,"file":"objects.js","sources":["../../src/primitives/objects.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst keysDeep = (obj: object, path: string[] = []): string[] =>\n !_.isObject(obj)\n ? [path.join('.')]\n : _.reduce(\n obj,\n (acc, next, key) => _.concat(acc, keysDeep(next, [...path, key])),\n [] as string[]\n );\n\n/**\n * Sets a property without changing the input. Copies containers on the updated path and\n * preserves references to unrelated values, including the value being assigned.\n */\nconst set = <T extends object>(object: T, path: _.PropertyPath, value: unknown): T =>\n _.setWith(_.clone(object), path, value, (current) =>\n _.isObject(current) ? _.clone(current) : undefined\n );\n\nexport { keysDeep, set };\n"],"names":["keysDeep","obj","path","_","isObject","join","reduce","acc","next","key","concat","set","object","value","setWith","clone","current","undefined"],"mappings":";;;;;;;;AAEA,MAAMA,QAAAA,GAAW,CAACC,GAAAA,EAAaC,IAAAA,GAAiB,EAAE,GAChD,CAACC,kBAAAA,CAAEC,QAAQ,CAACH,GAAAA,CAAAA,GACR;AAACC,QAAAA,IAAAA,CAAKG,IAAI,CAAC,GAAA;AAAK,KAAA,GAChBF,kBAAAA,CAAEG,MAAM,CACNL,GAAAA,EACA,CAACM,GAAAA,EAAKC,IAAAA,EAAMC,GAAAA,GAAQN,kBAAAA,CAAEO,MAAM,CAACH,GAAAA,EAAKP,SAASQ,IAAAA,EAAM;AAAIN,YAAAA,GAAAA,IAAAA;AAAMO,YAAAA;AAAI,SAAA,CAAA,CAAA,EAC/D,EAAE;AAGV;;;IAIA,MAAME,GAAAA,GAAM,CAAmBC,MAAAA,EAAWV,IAAAA,EAAsBW,QAC9DV,kBAAAA,CAAEW,OAAO,CAACX,kBAAAA,CAAEY,KAAK,CAACH,SAASV,IAAAA,EAAMW,KAAAA,EAAO,CAACG,OAAAA,GACvCb,kBAAAA,CAAEC,QAAQ,CAACY,OAAAA,CAAAA,GAAWb,kBAAAA,CAAEY,KAAK,CAACC,OAAAA,CAAAA,GAAWC,SAAAA;;;;;"}
@@ -6,6 +6,10 @@ const keysDeep = (obj, path = [])=>!___default.isObject(obj) ? [
6
6
  ...path,
7
7
  key
8
8
  ])), []);
9
+ /**
10
+ * Sets a property without changing the input. Copies containers on the updated path and
11
+ * preserves references to unrelated values, including the value being assigned.
12
+ */ const set = (object, path, value)=>___default.setWith(___default.clone(object), path, value, (current)=>___default.isObject(current) ? ___default.clone(current) : undefined);
9
13
 
10
- export { keysDeep };
14
+ export { keysDeep, set };
11
15
  //# sourceMappingURL=objects.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"objects.mjs","sources":["../../src/primitives/objects.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst keysDeep = (obj: object, path: string[] = []): string[] =>\n !_.isObject(obj)\n ? [path.join('.')]\n : _.reduce(\n obj,\n (acc, next, key) => _.concat(acc, keysDeep(next, [...path, key])),\n [] as string[]\n );\n\nexport { keysDeep };\n"],"names":["keysDeep","obj","path","_","isObject","join","reduce","acc","next","key","concat"],"mappings":";;AAEA,MAAMA,QAAAA,GAAW,CAACC,GAAAA,EAAaC,IAAAA,GAAiB,EAAE,GAChD,CAACC,UAAAA,CAAEC,QAAQ,CAACH,GAAAA,CAAAA,GACR;AAACC,QAAAA,IAAAA,CAAKG,IAAI,CAAC,GAAA;AAAK,KAAA,GAChBF,UAAAA,CAAEG,MAAM,CACNL,GAAAA,EACA,CAACM,GAAAA,EAAKC,IAAAA,EAAMC,GAAAA,GAAQN,UAAAA,CAAEO,MAAM,CAACH,GAAAA,EAAKP,SAASQ,IAAAA,EAAM;AAAIN,YAAAA,GAAAA,IAAAA;AAAMO,YAAAA;AAAI,SAAA,CAAA,CAAA,EAC/D,EAAE;;;;"}
1
+ {"version":3,"file":"objects.mjs","sources":["../../src/primitives/objects.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst keysDeep = (obj: object, path: string[] = []): string[] =>\n !_.isObject(obj)\n ? [path.join('.')]\n : _.reduce(\n obj,\n (acc, next, key) => _.concat(acc, keysDeep(next, [...path, key])),\n [] as string[]\n );\n\n/**\n * Sets a property without changing the input. Copies containers on the updated path and\n * preserves references to unrelated values, including the value being assigned.\n */\nconst set = <T extends object>(object: T, path: _.PropertyPath, value: unknown): T =>\n _.setWith(_.clone(object), path, value, (current) =>\n _.isObject(current) ? _.clone(current) : undefined\n );\n\nexport { keysDeep, set };\n"],"names":["keysDeep","obj","path","_","isObject","join","reduce","acc","next","key","concat","set","object","value","setWith","clone","current","undefined"],"mappings":";;AAEA,MAAMA,QAAAA,GAAW,CAACC,GAAAA,EAAaC,IAAAA,GAAiB,EAAE,GAChD,CAACC,UAAAA,CAAEC,QAAQ,CAACH,GAAAA,CAAAA,GACR;AAACC,QAAAA,IAAAA,CAAKG,IAAI,CAAC,GAAA;AAAK,KAAA,GAChBF,UAAAA,CAAEG,MAAM,CACNL,GAAAA,EACA,CAACM,GAAAA,EAAKC,IAAAA,EAAMC,GAAAA,GAAQN,UAAAA,CAAEO,MAAM,CAACH,GAAAA,EAAKP,SAASQ,IAAAA,EAAM;AAAIN,YAAAA,GAAAA,IAAAA;AAAMO,YAAAA;AAAI,SAAA,CAAA,CAAA,EAC/D,EAAE;AAGV;;;IAIA,MAAME,GAAAA,GAAM,CAAmBC,MAAAA,EAAWV,IAAAA,EAAsBW,QAC9DV,UAAAA,CAAEW,OAAO,CAACX,UAAAA,CAAEY,KAAK,CAACH,SAASV,IAAAA,EAAMW,KAAAA,EAAO,CAACG,OAAAA,GACvCb,UAAAA,CAAEC,QAAQ,CAACY,OAAAA,CAAAA,GAAWb,UAAAA,CAAEY,KAAK,CAACC,OAAAA,CAAAA,GAAWC,SAAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/primitives/strings.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,QAAA,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,UAAS,OAAO,CAAC,OAA4B,WACvD,CAAC;AAEzB,QAAA,MAAM,oBAAoB,GAAI,MAAM,MAAM,WAAsC,CAAC;AAEjF,QAAA,MAAM,oBAAoB,GAAI,OAAO,MAAM,WAKvC,CAAC;AAEL,QAAA,MAAM,aAAa,GAAI,GAAG,OAAO,MAAM,EAAE,WAMxC,CAAC;AAEF,QAAA,MAAM,OAAO,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,YAA4B,CAAC;AACpE,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,YAAsC,CAAC;AACzE,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,YAAkD,CAAC;AACrF,QAAA,MAAM,iBAAiB,GAAI,OAAO,MAAM,YAAyB,CAAC;AAElE,QAAA,MAAM,MAAM,GAAI,OAAO,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,WAW/C,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,WAAqB,CAAC;AAExD,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,GACP,CAAC"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/primitives/strings.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAE5C,QAAA,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,UAAS,OAAO,CAAC,OAA4B,WACvD,CAAC;AAEzB,QAAA,MAAM,oBAAoB,GAAI,MAAM,MAAM,WAAsC,CAAC;AAEjF,QAAA,MAAM,oBAAoB,GAAI,OAAO,MAAM,WAKvC,CAAC;AAEL,QAAA,MAAM,aAAa,GAAI,GAAG,OAAO,MAAM,EAAE,WAMxC,CAAC;AAEF,QAAA,MAAM,OAAO,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,YAA4B,CAAC;AACpE,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,YAAsC,CAAC;AACzE,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,YAAkD,CAAC;AACrF,QAAA,MAAM,iBAAiB,GAAI,OAAO,MAAM,YAAyB,CAAC;AAElE,QAAA,MAAM,MAAM,GAAI,OAAO,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,WAO/C,CAAC;AAEF,QAAA,MAAM,WAAW,GAAI,OAAO,MAAM,WAAqB,CAAC;AAExD,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,iBAAiB,EACjB,MAAM,GACP,CAAC"}
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  var _ = require('lodash');
4
- var fp = require('lodash/fp');
5
4
  var slugify = require('@sindresorhus/slugify');
6
5
 
7
6
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -29,14 +28,11 @@ const isCamelCase = (value)=>/^[a-z][a-zA-Z0-9]+$/.test(value);
29
28
  const isKebabCase = (value)=>/^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);
30
29
  const startsWithANumber = (value)=>/^[0-9]/.test(value);
31
30
  const joinBy = (joint, ...args)=>{
32
- const trim = fp.trimChars(joint);
33
- const trimEnd = fp.trimCharsEnd(joint);
34
- const trimStart = fp.trimCharsStart(joint);
35
31
  return args.reduce((url, path, index)=>{
36
32
  if (args.length === 1) return path;
37
- if (index === 0) return trimEnd(path);
38
- if (index === args.length - 1) return url + joint + trimStart(path);
39
- return url + joint + trim(path);
33
+ if (index === 0) return ___default.default.trimEnd(path, joint);
34
+ if (index === args.length - 1) return url + joint + ___default.default.trimStart(path, joint);
35
+ return url + joint + ___default.default.trim(path, joint);
40
36
  }, '');
41
37
  };
42
38
  const toKebabCase = (value)=>_.kebabCase(value);
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sources":["../../src/primitives/strings.ts"],"sourcesContent":["import _, { kebabCase } from 'lodash';\nimport { trimChars, trimCharsEnd, trimCharsStart } from 'lodash/fp';\nimport slugify from '@sindresorhus/slugify';\n\nconst nameToSlug = (name: string, options: slugify.Options = { separator: '-' }) =>\n slugify(name, options);\n\nconst nameToCollectionName = (name: string) => slugify(name, { separator: '_' });\n\nconst toRegressedEnumValue = (value: string) =>\n slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n\nconst getCommonPath = (...paths: string[]) => {\n const [segments, ...otherSegments] = paths.map((it) => _.split(it, '/'));\n return _.join(\n _.takeWhile(segments, (str, index) => otherSegments.every((it) => it[index] === str)),\n '/'\n );\n};\n\nconst isEqual = (a: unknown, b: unknown) => String(a) === String(b);\nconst isCamelCase = (value: string) => /^[a-z][a-zA-Z0-9]+$/.test(value);\nconst isKebabCase = (value: string) => /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);\nconst startsWithANumber = (value: string) => /^[0-9]/.test(value);\n\nconst joinBy = (joint: string, ...args: string[]) => {\n const trim = trimChars(joint);\n const trimEnd = trimCharsEnd(joint);\n const trimStart = trimCharsStart(joint);\n\n return args.reduce((url, path, index) => {\n if (args.length === 1) return path;\n if (index === 0) return trimEnd(path);\n if (index === args.length - 1) return url + joint + trimStart(path);\n return url + joint + trim(path);\n }, '');\n};\n\nconst toKebabCase = (value: string) => kebabCase(value);\n\nexport {\n nameToSlug,\n nameToCollectionName,\n getCommonPath,\n isEqual,\n isCamelCase,\n isKebabCase,\n toKebabCase,\n toRegressedEnumValue,\n startsWithANumber,\n joinBy,\n};\n"],"names":["nameToSlug","name","options","separator","slugify","nameToCollectionName","toRegressedEnumValue","value","decamelize","lowercase","getCommonPath","paths","segments","otherSegments","map","it","_","split","join","takeWhile","str","index","every","isEqual","a","b","String","isCamelCase","test","isKebabCase","startsWithANumber","joinBy","joint","args","trim","trimChars","trimEnd","trimCharsEnd","trimStart","trimCharsStart","reduce","url","path","length","toKebabCase","kebabCase"],"mappings":";;;;;;;;;;;AAIA,MAAMA,UAAAA,GAAa,CAACC,IAAAA,EAAcC,OAAAA,GAA2B;IAAEC,SAAAA,EAAW;AAAI,CAAC,GAC7EC,yBAAQH,IAAAA,EAAMC,OAAAA;AAEhB,MAAMG,oBAAAA,GAAuB,CAACJ,IAAAA,GAAiBG,wBAAAA,CAAQH,IAAAA,EAAM;QAAEE,SAAAA,EAAW;AAAI,KAAA;AAE9E,MAAMG,oBAAAA,GAAuB,CAACC,KAAAA,GAC5BH,wBAAAA,CAAQG,KAAAA,EAAO;QACbC,UAAAA,EAAY,KAAA;QACZC,SAAAA,EAAW,KAAA;QACXN,SAAAA,EAAW;AACb,KAAA;AAEF,MAAMO,aAAAA,GAAgB,CAAC,GAAGC,KAAAA,GAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAU,GAAGC,aAAAA,CAAc,GAAGF,KAAAA,CAAMG,GAAG,CAAC,CAACC,EAAAA,GAAOC,kBAAAA,CAAEC,KAAK,CAACF,EAAAA,EAAI,GAAA,CAAA,CAAA;AACnE,IAAA,OAAOC,mBAAEE,IAAI,CACXF,mBAAEG,SAAS,CAACP,UAAU,CAACQ,GAAAA,EAAKC,QAAUR,aAAAA,CAAcS,KAAK,CAAC,CAACP,EAAAA,GAAOA,EAAE,CAACM,KAAAA,CAAM,KAAKD,GAAAA,CAAAA,CAAAA,EAChF,GAAA,CAAA;AAEJ;AAEA,MAAMG,UAAU,CAACC,CAAAA,EAAYC,CAAAA,GAAeC,MAAAA,CAAOF,OAAOE,MAAAA,CAAOD,CAAAA;AACjE,MAAME,WAAAA,GAAc,CAACpB,KAAAA,GAAkB,qBAAA,CAAsBqB,IAAI,CAACrB,KAAAA;AAClE,MAAMsB,WAAAA,GAAc,CAACtB,KAAAA,GAAkB,iCAAA,CAAkCqB,IAAI,CAACrB,KAAAA;AAC9E,MAAMuB,iBAAAA,GAAoB,CAACvB,KAAAA,GAAkB,QAAA,CAASqB,IAAI,CAACrB,KAAAA;AAE3D,MAAMwB,MAAAA,GAAS,CAACC,KAAAA,EAAe,GAAGC,IAAAA,GAAAA;AAChC,IAAA,MAAMC,OAAOC,YAAAA,CAAUH,KAAAA,CAAAA;AACvB,IAAA,MAAMI,UAAUC,eAAAA,CAAaL,KAAAA,CAAAA;AAC7B,IAAA,MAAMM,YAAYC,iBAAAA,CAAeP,KAAAA,CAAAA;AAEjC,IAAA,OAAOC,IAAAA,CAAKO,MAAM,CAAC,CAACC,KAAKC,IAAAA,EAAMrB,KAAAA,GAAAA;AAC7B,QAAA,IAAIY,IAAAA,CAAKU,MAAM,KAAK,CAAA,EAAG,OAAOD,IAAAA;QAC9B,IAAIrB,KAAAA,KAAU,CAAA,EAAG,OAAOe,OAAAA,CAAQM,IAAAA,CAAAA;QAChC,IAAIrB,KAAAA,KAAUY,KAAKU,MAAM,GAAG,GAAG,OAAOF,GAAAA,GAAMT,QAAQM,SAAAA,CAAUI,IAAAA,CAAAA;QAC9D,OAAOD,GAAAA,GAAMT,QAAQE,IAAAA,CAAKQ,IAAAA,CAAAA;IAC5B,CAAA,EAAG,EAAA,CAAA;AACL;AAEA,MAAME,WAAAA,GAAc,CAACrC,KAAAA,GAAkBsC,WAAAA,CAAUtC,KAAAA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"strings.js","sources":["../../src/primitives/strings.ts"],"sourcesContent":["import _, { kebabCase } from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nconst nameToSlug = (name: string, options: slugify.Options = { separator: '-' }) =>\n slugify(name, options);\n\nconst nameToCollectionName = (name: string) => slugify(name, { separator: '_' });\n\nconst toRegressedEnumValue = (value: string) =>\n slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n\nconst getCommonPath = (...paths: string[]) => {\n const [segments, ...otherSegments] = paths.map((it) => _.split(it, '/'));\n return _.join(\n _.takeWhile(segments, (str, index) => otherSegments.every((it) => it[index] === str)),\n '/'\n );\n};\n\nconst isEqual = (a: unknown, b: unknown) => String(a) === String(b);\nconst isCamelCase = (value: string) => /^[a-z][a-zA-Z0-9]+$/.test(value);\nconst isKebabCase = (value: string) => /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);\nconst startsWithANumber = (value: string) => /^[0-9]/.test(value);\n\nconst joinBy = (joint: string, ...args: string[]) => {\n return args.reduce((url, path, index) => {\n if (args.length === 1) return path;\n if (index === 0) return _.trimEnd(path, joint);\n if (index === args.length - 1) return url + joint + _.trimStart(path, joint);\n return url + joint + _.trim(path, joint);\n }, '');\n};\n\nconst toKebabCase = (value: string) => kebabCase(value);\n\nexport {\n nameToSlug,\n nameToCollectionName,\n getCommonPath,\n isEqual,\n isCamelCase,\n isKebabCase,\n toKebabCase,\n toRegressedEnumValue,\n startsWithANumber,\n joinBy,\n};\n"],"names":["nameToSlug","name","options","separator","slugify","nameToCollectionName","toRegressedEnumValue","value","decamelize","lowercase","getCommonPath","paths","segments","otherSegments","map","it","_","split","join","takeWhile","str","index","every","isEqual","a","b","String","isCamelCase","test","isKebabCase","startsWithANumber","joinBy","joint","args","reduce","url","path","length","trimEnd","trimStart","trim","toKebabCase","kebabCase"],"mappings":";;;;;;;;;;AAGA,MAAMA,UAAAA,GAAa,CAACC,IAAAA,EAAcC,OAAAA,GAA2B;IAAEC,SAAAA,EAAW;AAAI,CAAC,GAC7EC,yBAAQH,IAAAA,EAAMC,OAAAA;AAEhB,MAAMG,oBAAAA,GAAuB,CAACJ,IAAAA,GAAiBG,wBAAAA,CAAQH,IAAAA,EAAM;QAAEE,SAAAA,EAAW;AAAI,KAAA;AAE9E,MAAMG,oBAAAA,GAAuB,CAACC,KAAAA,GAC5BH,wBAAAA,CAAQG,KAAAA,EAAO;QACbC,UAAAA,EAAY,KAAA;QACZC,SAAAA,EAAW,KAAA;QACXN,SAAAA,EAAW;AACb,KAAA;AAEF,MAAMO,aAAAA,GAAgB,CAAC,GAAGC,KAAAA,GAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAU,GAAGC,aAAAA,CAAc,GAAGF,KAAAA,CAAMG,GAAG,CAAC,CAACC,EAAAA,GAAOC,kBAAAA,CAAEC,KAAK,CAACF,EAAAA,EAAI,GAAA,CAAA,CAAA;AACnE,IAAA,OAAOC,mBAAEE,IAAI,CACXF,mBAAEG,SAAS,CAACP,UAAU,CAACQ,GAAAA,EAAKC,QAAUR,aAAAA,CAAcS,KAAK,CAAC,CAACP,EAAAA,GAAOA,EAAE,CAACM,KAAAA,CAAM,KAAKD,GAAAA,CAAAA,CAAAA,EAChF,GAAA,CAAA;AAEJ;AAEA,MAAMG,UAAU,CAACC,CAAAA,EAAYC,CAAAA,GAAeC,MAAAA,CAAOF,OAAOE,MAAAA,CAAOD,CAAAA;AACjE,MAAME,WAAAA,GAAc,CAACpB,KAAAA,GAAkB,qBAAA,CAAsBqB,IAAI,CAACrB,KAAAA;AAClE,MAAMsB,WAAAA,GAAc,CAACtB,KAAAA,GAAkB,iCAAA,CAAkCqB,IAAI,CAACrB,KAAAA;AAC9E,MAAMuB,iBAAAA,GAAoB,CAACvB,KAAAA,GAAkB,QAAA,CAASqB,IAAI,CAACrB,KAAAA;AAE3D,MAAMwB,MAAAA,GAAS,CAACC,KAAAA,EAAe,GAAGC,IAAAA,GAAAA;AAChC,IAAA,OAAOA,IAAAA,CAAKC,MAAM,CAAC,CAACC,KAAKC,IAAAA,EAAMf,KAAAA,GAAAA;AAC7B,QAAA,IAAIY,IAAAA,CAAKI,MAAM,KAAK,CAAA,EAAG,OAAOD,IAAAA;AAC9B,QAAA,IAAIf,UAAU,CAAA,EAAG,OAAOL,kBAAAA,CAAEsB,OAAO,CAACF,IAAAA,EAAMJ,KAAAA,CAAAA;QACxC,IAAIX,KAAAA,KAAUY,IAAAA,CAAKI,MAAM,GAAG,CAAA,EAAG,OAAOF,GAAAA,GAAMH,KAAAA,GAAQhB,kBAAAA,CAAEuB,SAAS,CAACH,IAAAA,EAAMJ,KAAAA,CAAAA;AACtE,QAAA,OAAOG,GAAAA,GAAMH,KAAAA,GAAQhB,kBAAAA,CAAEwB,IAAI,CAACJ,IAAAA,EAAMJ,KAAAA,CAAAA;IACpC,CAAA,EAAG,EAAA,CAAA;AACL;AAEA,MAAMS,WAAAA,GAAc,CAAClC,KAAAA,GAAkBmC,WAAAA,CAAUnC,KAAAA;;;;;;;;;;;;;"}
@@ -1,5 +1,4 @@
1
1
  import ___default, { kebabCase } from 'lodash';
2
- import { trimChars, trimCharsEnd, trimCharsStart } from 'lodash/fp';
3
2
  import slugify from '@sindresorhus/slugify';
4
3
 
5
4
  const nameToSlug = (name, options = {
@@ -22,14 +21,11 @@ const isCamelCase = (value)=>/^[a-z][a-zA-Z0-9]+$/.test(value);
22
21
  const isKebabCase = (value)=>/^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);
23
22
  const startsWithANumber = (value)=>/^[0-9]/.test(value);
24
23
  const joinBy = (joint, ...args)=>{
25
- const trim = trimChars(joint);
26
- const trimEnd = trimCharsEnd(joint);
27
- const trimStart = trimCharsStart(joint);
28
24
  return args.reduce((url, path, index)=>{
29
25
  if (args.length === 1) return path;
30
- if (index === 0) return trimEnd(path);
31
- if (index === args.length - 1) return url + joint + trimStart(path);
32
- return url + joint + trim(path);
26
+ if (index === 0) return ___default.trimEnd(path, joint);
27
+ if (index === args.length - 1) return url + joint + ___default.trimStart(path, joint);
28
+ return url + joint + ___default.trim(path, joint);
33
29
  }, '');
34
30
  };
35
31
  const toKebabCase = (value)=>kebabCase(value);
@@ -1 +1 @@
1
- {"version":3,"file":"strings.mjs","sources":["../../src/primitives/strings.ts"],"sourcesContent":["import _, { kebabCase } from 'lodash';\nimport { trimChars, trimCharsEnd, trimCharsStart } from 'lodash/fp';\nimport slugify from '@sindresorhus/slugify';\n\nconst nameToSlug = (name: string, options: slugify.Options = { separator: '-' }) =>\n slugify(name, options);\n\nconst nameToCollectionName = (name: string) => slugify(name, { separator: '_' });\n\nconst toRegressedEnumValue = (value: string) =>\n slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n\nconst getCommonPath = (...paths: string[]) => {\n const [segments, ...otherSegments] = paths.map((it) => _.split(it, '/'));\n return _.join(\n _.takeWhile(segments, (str, index) => otherSegments.every((it) => it[index] === str)),\n '/'\n );\n};\n\nconst isEqual = (a: unknown, b: unknown) => String(a) === String(b);\nconst isCamelCase = (value: string) => /^[a-z][a-zA-Z0-9]+$/.test(value);\nconst isKebabCase = (value: string) => /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);\nconst startsWithANumber = (value: string) => /^[0-9]/.test(value);\n\nconst joinBy = (joint: string, ...args: string[]) => {\n const trim = trimChars(joint);\n const trimEnd = trimCharsEnd(joint);\n const trimStart = trimCharsStart(joint);\n\n return args.reduce((url, path, index) => {\n if (args.length === 1) return path;\n if (index === 0) return trimEnd(path);\n if (index === args.length - 1) return url + joint + trimStart(path);\n return url + joint + trim(path);\n }, '');\n};\n\nconst toKebabCase = (value: string) => kebabCase(value);\n\nexport {\n nameToSlug,\n nameToCollectionName,\n getCommonPath,\n isEqual,\n isCamelCase,\n isKebabCase,\n toKebabCase,\n toRegressedEnumValue,\n startsWithANumber,\n joinBy,\n};\n"],"names":["nameToSlug","name","options","separator","slugify","nameToCollectionName","toRegressedEnumValue","value","decamelize","lowercase","getCommonPath","paths","segments","otherSegments","map","it","_","split","join","takeWhile","str","index","every","isEqual","a","b","String","isCamelCase","test","isKebabCase","startsWithANumber","joinBy","joint","args","trim","trimChars","trimEnd","trimCharsEnd","trimStart","trimCharsStart","reduce","url","path","length","toKebabCase","kebabCase"],"mappings":";;;;AAIA,MAAMA,UAAAA,GAAa,CAACC,IAAAA,EAAcC,OAAAA,GAA2B;IAAEC,SAAAA,EAAW;AAAI,CAAC,GAC7EC,QAAQH,IAAAA,EAAMC,OAAAA;AAEhB,MAAMG,oBAAAA,GAAuB,CAACJ,IAAAA,GAAiBG,OAAAA,CAAQH,IAAAA,EAAM;QAAEE,SAAAA,EAAW;AAAI,KAAA;AAE9E,MAAMG,oBAAAA,GAAuB,CAACC,KAAAA,GAC5BH,OAAAA,CAAQG,KAAAA,EAAO;QACbC,UAAAA,EAAY,KAAA;QACZC,SAAAA,EAAW,KAAA;QACXN,SAAAA,EAAW;AACb,KAAA;AAEF,MAAMO,aAAAA,GAAgB,CAAC,GAAGC,KAAAA,GAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAU,GAAGC,aAAAA,CAAc,GAAGF,KAAAA,CAAMG,GAAG,CAAC,CAACC,EAAAA,GAAOC,UAAAA,CAAEC,KAAK,CAACF,EAAAA,EAAI,GAAA,CAAA,CAAA;AACnE,IAAA,OAAOC,WAAEE,IAAI,CACXF,WAAEG,SAAS,CAACP,UAAU,CAACQ,GAAAA,EAAKC,QAAUR,aAAAA,CAAcS,KAAK,CAAC,CAACP,EAAAA,GAAOA,EAAE,CAACM,KAAAA,CAAM,KAAKD,GAAAA,CAAAA,CAAAA,EAChF,GAAA,CAAA;AAEJ;AAEA,MAAMG,UAAU,CAACC,CAAAA,EAAYC,CAAAA,GAAeC,MAAAA,CAAOF,OAAOE,MAAAA,CAAOD,CAAAA;AACjE,MAAME,WAAAA,GAAc,CAACpB,KAAAA,GAAkB,qBAAA,CAAsBqB,IAAI,CAACrB,KAAAA;AAClE,MAAMsB,WAAAA,GAAc,CAACtB,KAAAA,GAAkB,iCAAA,CAAkCqB,IAAI,CAACrB,KAAAA;AAC9E,MAAMuB,iBAAAA,GAAoB,CAACvB,KAAAA,GAAkB,QAAA,CAASqB,IAAI,CAACrB,KAAAA;AAE3D,MAAMwB,MAAAA,GAAS,CAACC,KAAAA,EAAe,GAAGC,IAAAA,GAAAA;AAChC,IAAA,MAAMC,OAAOC,SAAAA,CAAUH,KAAAA,CAAAA;AACvB,IAAA,MAAMI,UAAUC,YAAAA,CAAaL,KAAAA,CAAAA;AAC7B,IAAA,MAAMM,YAAYC,cAAAA,CAAeP,KAAAA,CAAAA;AAEjC,IAAA,OAAOC,IAAAA,CAAKO,MAAM,CAAC,CAACC,KAAKC,IAAAA,EAAMrB,KAAAA,GAAAA;AAC7B,QAAA,IAAIY,IAAAA,CAAKU,MAAM,KAAK,CAAA,EAAG,OAAOD,IAAAA;QAC9B,IAAIrB,KAAAA,KAAU,CAAA,EAAG,OAAOe,OAAAA,CAAQM,IAAAA,CAAAA;QAChC,IAAIrB,KAAAA,KAAUY,KAAKU,MAAM,GAAG,GAAG,OAAOF,GAAAA,GAAMT,QAAQM,SAAAA,CAAUI,IAAAA,CAAAA;QAC9D,OAAOD,GAAAA,GAAMT,QAAQE,IAAAA,CAAKQ,IAAAA,CAAAA;IAC5B,CAAA,EAAG,EAAA,CAAA;AACL;AAEA,MAAME,WAAAA,GAAc,CAACrC,KAAAA,GAAkBsC,SAAAA,CAAUtC,KAAAA;;;;"}
1
+ {"version":3,"file":"strings.mjs","sources":["../../src/primitives/strings.ts"],"sourcesContent":["import _, { kebabCase } from 'lodash';\nimport slugify from '@sindresorhus/slugify';\n\nconst nameToSlug = (name: string, options: slugify.Options = { separator: '-' }) =>\n slugify(name, options);\n\nconst nameToCollectionName = (name: string) => slugify(name, { separator: '_' });\n\nconst toRegressedEnumValue = (value: string) =>\n slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n\nconst getCommonPath = (...paths: string[]) => {\n const [segments, ...otherSegments] = paths.map((it) => _.split(it, '/'));\n return _.join(\n _.takeWhile(segments, (str, index) => otherSegments.every((it) => it[index] === str)),\n '/'\n );\n};\n\nconst isEqual = (a: unknown, b: unknown) => String(a) === String(b);\nconst isCamelCase = (value: string) => /^[a-z][a-zA-Z0-9]+$/.test(value);\nconst isKebabCase = (value: string) => /^([a-z][a-z0-9]*)(-[a-z0-9]+)*$/.test(value);\nconst startsWithANumber = (value: string) => /^[0-9]/.test(value);\n\nconst joinBy = (joint: string, ...args: string[]) => {\n return args.reduce((url, path, index) => {\n if (args.length === 1) return path;\n if (index === 0) return _.trimEnd(path, joint);\n if (index === args.length - 1) return url + joint + _.trimStart(path, joint);\n return url + joint + _.trim(path, joint);\n }, '');\n};\n\nconst toKebabCase = (value: string) => kebabCase(value);\n\nexport {\n nameToSlug,\n nameToCollectionName,\n getCommonPath,\n isEqual,\n isCamelCase,\n isKebabCase,\n toKebabCase,\n toRegressedEnumValue,\n startsWithANumber,\n joinBy,\n};\n"],"names":["nameToSlug","name","options","separator","slugify","nameToCollectionName","toRegressedEnumValue","value","decamelize","lowercase","getCommonPath","paths","segments","otherSegments","map","it","_","split","join","takeWhile","str","index","every","isEqual","a","b","String","isCamelCase","test","isKebabCase","startsWithANumber","joinBy","joint","args","reduce","url","path","length","trimEnd","trimStart","trim","toKebabCase","kebabCase"],"mappings":";;;AAGA,MAAMA,UAAAA,GAAa,CAACC,IAAAA,EAAcC,OAAAA,GAA2B;IAAEC,SAAAA,EAAW;AAAI,CAAC,GAC7EC,QAAQH,IAAAA,EAAMC,OAAAA;AAEhB,MAAMG,oBAAAA,GAAuB,CAACJ,IAAAA,GAAiBG,OAAAA,CAAQH,IAAAA,EAAM;QAAEE,SAAAA,EAAW;AAAI,KAAA;AAE9E,MAAMG,oBAAAA,GAAuB,CAACC,KAAAA,GAC5BH,OAAAA,CAAQG,KAAAA,EAAO;QACbC,UAAAA,EAAY,KAAA;QACZC,SAAAA,EAAW,KAAA;QACXN,SAAAA,EAAW;AACb,KAAA;AAEF,MAAMO,aAAAA,GAAgB,CAAC,GAAGC,KAAAA,GAAAA;AACxB,IAAA,MAAM,CAACC,QAAAA,EAAU,GAAGC,aAAAA,CAAc,GAAGF,KAAAA,CAAMG,GAAG,CAAC,CAACC,EAAAA,GAAOC,UAAAA,CAAEC,KAAK,CAACF,EAAAA,EAAI,GAAA,CAAA,CAAA;AACnE,IAAA,OAAOC,WAAEE,IAAI,CACXF,WAAEG,SAAS,CAACP,UAAU,CAACQ,GAAAA,EAAKC,QAAUR,aAAAA,CAAcS,KAAK,CAAC,CAACP,EAAAA,GAAOA,EAAE,CAACM,KAAAA,CAAM,KAAKD,GAAAA,CAAAA,CAAAA,EAChF,GAAA,CAAA;AAEJ;AAEA,MAAMG,UAAU,CAACC,CAAAA,EAAYC,CAAAA,GAAeC,MAAAA,CAAOF,OAAOE,MAAAA,CAAOD,CAAAA;AACjE,MAAME,WAAAA,GAAc,CAACpB,KAAAA,GAAkB,qBAAA,CAAsBqB,IAAI,CAACrB,KAAAA;AAClE,MAAMsB,WAAAA,GAAc,CAACtB,KAAAA,GAAkB,iCAAA,CAAkCqB,IAAI,CAACrB,KAAAA;AAC9E,MAAMuB,iBAAAA,GAAoB,CAACvB,KAAAA,GAAkB,QAAA,CAASqB,IAAI,CAACrB,KAAAA;AAE3D,MAAMwB,MAAAA,GAAS,CAACC,KAAAA,EAAe,GAAGC,IAAAA,GAAAA;AAChC,IAAA,OAAOA,IAAAA,CAAKC,MAAM,CAAC,CAACC,KAAKC,IAAAA,EAAMf,KAAAA,GAAAA;AAC7B,QAAA,IAAIY,IAAAA,CAAKI,MAAM,KAAK,CAAA,EAAG,OAAOD,IAAAA;AAC9B,QAAA,IAAIf,UAAU,CAAA,EAAG,OAAOL,UAAAA,CAAEsB,OAAO,CAACF,IAAAA,EAAMJ,KAAAA,CAAAA;QACxC,IAAIX,KAAAA,KAAUY,IAAAA,CAAKI,MAAM,GAAG,CAAA,EAAG,OAAOF,GAAAA,GAAMH,KAAAA,GAAQhB,UAAAA,CAAEuB,SAAS,CAACH,IAAAA,EAAMJ,KAAAA,CAAAA;AACtE,QAAA,OAAOG,GAAAA,GAAMH,KAAAA,GAAQhB,UAAAA,CAAEwB,IAAI,CAACJ,IAAAA,EAAMJ,KAAAA,CAAAA;IACpC,CAAA,EAAG,EAAA,CAAA;AACL;AAEA,MAAMS,WAAAA,GAAc,CAAClC,KAAAA,GAAkBmC,SAAAA,CAAUnC,KAAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var hooks = require('./hooks.js');
5
5
 
6
6
  /**
@@ -34,7 +34,7 @@ var hooks = require('./hooks.js');
34
34
  state.registry.set(key, item);
35
35
  await state.hooks.didRegister.call({
36
36
  key,
37
- value: fp.cloneDeep(item)
37
+ value: _.cloneDeep(item)
38
38
  });
39
39
  return this;
40
40
  },
@@ -43,12 +43,12 @@ var hooks = require('./hooks.js');
43
43
  const item = this.get(key);
44
44
  await state.hooks.willDelete.call({
45
45
  key,
46
- value: fp.cloneDeep(item)
46
+ value: _.cloneDeep(item)
47
47
  });
48
48
  state.registry.delete(key);
49
49
  await state.hooks.didDelete.call({
50
50
  key,
51
- value: fp.cloneDeep(item)
51
+ value: _.cloneDeep(item)
52
52
  });
53
53
  }
54
54
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-factory.js","sources":["../src/provider-factory.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport {\n createAsyncSeriesHook,\n createAsyncParallelHook,\n AsyncSeriesHook,\n AsyncParallelHook,\n} from './hooks';\n\nexport interface ProviderHooksMap {\n willRegister: AsyncSeriesHook;\n didRegister: AsyncParallelHook;\n willDelete: AsyncParallelHook;\n didDelete: AsyncParallelHook;\n}\n\n/**\n * Creates a new object containing various hooks used by the providers\n */\nconst createProviderHooksMap = (): ProviderHooksMap => ({\n // Register events\n willRegister: createAsyncSeriesHook(),\n didRegister: createAsyncParallelHook(),\n // Delete events\n willDelete: createAsyncParallelHook(),\n didDelete: createAsyncParallelHook(),\n});\n\nexport interface Options {\n throwOnDuplicates?: boolean;\n}\n\ntype Item = Record<string, unknown>;\n\nexport interface Provider<T = unknown> {\n hooks: ProviderHooksMap;\n register(key: string, item: T): Promise<Provider>;\n delete(key: string): Promise<Provider>;\n get(key: string): T | undefined;\n values(): T[];\n keys(): string[];\n has(key: string): boolean;\n size(): number;\n clear(): Promise<Provider<T>>;\n}\n\nexport type ProviderFactory<T> = (options?: Options) => Provider<T>;\n\n/**\n * A Provider factory\n */\nconst providerFactory = <T = Item>(options: Options = {}): Provider<T> => {\n const { throwOnDuplicates = true } = options;\n\n const state = {\n hooks: createProviderHooksMap(),\n registry: new Map<string, T>(),\n };\n\n return {\n hooks: state.hooks,\n\n async register(key: string, item: T) {\n if (throwOnDuplicates && this.has(key)) {\n throw new Error(`Duplicated item key: ${key}`);\n }\n\n await state.hooks.willRegister.call({ key, value: item });\n\n state.registry.set(key, item);\n\n await state.hooks.didRegister.call({ key, value: cloneDeep(item) });\n\n return this;\n },\n\n async delete(key: string) {\n if (this.has(key)) {\n const item = this.get(key);\n\n await state.hooks.willDelete.call({ key, value: cloneDeep(item) });\n\n state.registry.delete(key);\n\n await state.hooks.didDelete.call({ key, value: cloneDeep(item) });\n }\n\n return this;\n },\n\n get(key: string) {\n return state.registry.get(key);\n },\n\n values() {\n return Array.from(state.registry.values());\n },\n\n keys() {\n return Array.from(state.registry.keys());\n },\n\n has(key: string) {\n return state.registry.has(key);\n },\n\n size() {\n return state.registry.size;\n },\n\n async clear() {\n const keys = this.keys();\n\n for (const key of keys) {\n await this.delete(key);\n }\n\n return this;\n },\n };\n};\n\nexport default providerFactory;\n"],"names":["createProviderHooksMap","willRegister","createAsyncSeriesHook","didRegister","createAsyncParallelHook","willDelete","didDelete","providerFactory","options","throwOnDuplicates","state","hooks","registry","Map","register","key","item","has","Error","call","value","set","cloneDeep","delete","get","values","Array","from","keys","size","clear"],"mappings":"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"}
1
+ {"version":3,"file":"provider-factory.js","sources":["../src/provider-factory.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport {\n createAsyncSeriesHook,\n createAsyncParallelHook,\n AsyncSeriesHook,\n AsyncParallelHook,\n} from './hooks';\n\nexport interface ProviderHooksMap {\n willRegister: AsyncSeriesHook;\n didRegister: AsyncParallelHook;\n willDelete: AsyncParallelHook;\n didDelete: AsyncParallelHook;\n}\n\n/**\n * Creates a new object containing various hooks used by the providers\n */\nconst createProviderHooksMap = (): ProviderHooksMap => ({\n // Register events\n willRegister: createAsyncSeriesHook(),\n didRegister: createAsyncParallelHook(),\n // Delete events\n willDelete: createAsyncParallelHook(),\n didDelete: createAsyncParallelHook(),\n});\n\nexport interface Options {\n throwOnDuplicates?: boolean;\n}\n\ntype Item = Record<string, unknown>;\n\nexport interface Provider<T = unknown> {\n hooks: ProviderHooksMap;\n register(key: string, item: T): Promise<Provider>;\n delete(key: string): Promise<Provider>;\n get(key: string): T | undefined;\n values(): T[];\n keys(): string[];\n has(key: string): boolean;\n size(): number;\n clear(): Promise<Provider<T>>;\n}\n\nexport type ProviderFactory<T> = (options?: Options) => Provider<T>;\n\n/**\n * A Provider factory\n */\nconst providerFactory = <T = Item>(options: Options = {}): Provider<T> => {\n const { throwOnDuplicates = true } = options;\n\n const state = {\n hooks: createProviderHooksMap(),\n registry: new Map<string, T>(),\n };\n\n return {\n hooks: state.hooks,\n\n async register(key: string, item: T) {\n if (throwOnDuplicates && this.has(key)) {\n throw new Error(`Duplicated item key: ${key}`);\n }\n\n await state.hooks.willRegister.call({ key, value: item });\n\n state.registry.set(key, item);\n\n await state.hooks.didRegister.call({ key, value: cloneDeep(item) });\n\n return this;\n },\n\n async delete(key: string) {\n if (this.has(key)) {\n const item = this.get(key);\n\n await state.hooks.willDelete.call({ key, value: cloneDeep(item) });\n\n state.registry.delete(key);\n\n await state.hooks.didDelete.call({ key, value: cloneDeep(item) });\n }\n\n return this;\n },\n\n get(key: string) {\n return state.registry.get(key);\n },\n\n values() {\n return Array.from(state.registry.values());\n },\n\n keys() {\n return Array.from(state.registry.keys());\n },\n\n has(key: string) {\n return state.registry.has(key);\n },\n\n size() {\n return state.registry.size;\n },\n\n async clear() {\n const keys = this.keys();\n\n for (const key of keys) {\n await this.delete(key);\n }\n\n return this;\n },\n };\n};\n\nexport default providerFactory;\n"],"names":["createProviderHooksMap","willRegister","createAsyncSeriesHook","didRegister","createAsyncParallelHook","willDelete","didDelete","providerFactory","options","throwOnDuplicates","state","hooks","registry","Map","register","key","item","has","Error","call","value","set","cloneDeep","delete","get","values","Array","from","keys","size","clear"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { cloneDeep } from 'lodash/fp';
1
+ import { cloneDeep } from 'lodash';
2
2
  import { createAsyncParallelHook, createAsyncSeriesHook } from './hooks.mjs';
3
3
 
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provider-factory.mjs","sources":["../src/provider-factory.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport {\n createAsyncSeriesHook,\n createAsyncParallelHook,\n AsyncSeriesHook,\n AsyncParallelHook,\n} from './hooks';\n\nexport interface ProviderHooksMap {\n willRegister: AsyncSeriesHook;\n didRegister: AsyncParallelHook;\n willDelete: AsyncParallelHook;\n didDelete: AsyncParallelHook;\n}\n\n/**\n * Creates a new object containing various hooks used by the providers\n */\nconst createProviderHooksMap = (): ProviderHooksMap => ({\n // Register events\n willRegister: createAsyncSeriesHook(),\n didRegister: createAsyncParallelHook(),\n // Delete events\n willDelete: createAsyncParallelHook(),\n didDelete: createAsyncParallelHook(),\n});\n\nexport interface Options {\n throwOnDuplicates?: boolean;\n}\n\ntype Item = Record<string, unknown>;\n\nexport interface Provider<T = unknown> {\n hooks: ProviderHooksMap;\n register(key: string, item: T): Promise<Provider>;\n delete(key: string): Promise<Provider>;\n get(key: string): T | undefined;\n values(): T[];\n keys(): string[];\n has(key: string): boolean;\n size(): number;\n clear(): Promise<Provider<T>>;\n}\n\nexport type ProviderFactory<T> = (options?: Options) => Provider<T>;\n\n/**\n * A Provider factory\n */\nconst providerFactory = <T = Item>(options: Options = {}): Provider<T> => {\n const { throwOnDuplicates = true } = options;\n\n const state = {\n hooks: createProviderHooksMap(),\n registry: new Map<string, T>(),\n };\n\n return {\n hooks: state.hooks,\n\n async register(key: string, item: T) {\n if (throwOnDuplicates && this.has(key)) {\n throw new Error(`Duplicated item key: ${key}`);\n }\n\n await state.hooks.willRegister.call({ key, value: item });\n\n state.registry.set(key, item);\n\n await state.hooks.didRegister.call({ key, value: cloneDeep(item) });\n\n return this;\n },\n\n async delete(key: string) {\n if (this.has(key)) {\n const item = this.get(key);\n\n await state.hooks.willDelete.call({ key, value: cloneDeep(item) });\n\n state.registry.delete(key);\n\n await state.hooks.didDelete.call({ key, value: cloneDeep(item) });\n }\n\n return this;\n },\n\n get(key: string) {\n return state.registry.get(key);\n },\n\n values() {\n return Array.from(state.registry.values());\n },\n\n keys() {\n return Array.from(state.registry.keys());\n },\n\n has(key: string) {\n return state.registry.has(key);\n },\n\n size() {\n return state.registry.size;\n },\n\n async clear() {\n const keys = this.keys();\n\n for (const key of keys) {\n await this.delete(key);\n }\n\n return this;\n },\n };\n};\n\nexport default providerFactory;\n"],"names":["createProviderHooksMap","willRegister","createAsyncSeriesHook","didRegister","createAsyncParallelHook","willDelete","didDelete","providerFactory","options","throwOnDuplicates","state","hooks","registry","Map","register","key","item","has","Error","call","value","set","cloneDeep","delete","get","values","Array","from","keys","size","clear"],"mappings":"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"}
1
+ {"version":3,"file":"provider-factory.mjs","sources":["../src/provider-factory.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport {\n createAsyncSeriesHook,\n createAsyncParallelHook,\n AsyncSeriesHook,\n AsyncParallelHook,\n} from './hooks';\n\nexport interface ProviderHooksMap {\n willRegister: AsyncSeriesHook;\n didRegister: AsyncParallelHook;\n willDelete: AsyncParallelHook;\n didDelete: AsyncParallelHook;\n}\n\n/**\n * Creates a new object containing various hooks used by the providers\n */\nconst createProviderHooksMap = (): ProviderHooksMap => ({\n // Register events\n willRegister: createAsyncSeriesHook(),\n didRegister: createAsyncParallelHook(),\n // Delete events\n willDelete: createAsyncParallelHook(),\n didDelete: createAsyncParallelHook(),\n});\n\nexport interface Options {\n throwOnDuplicates?: boolean;\n}\n\ntype Item = Record<string, unknown>;\n\nexport interface Provider<T = unknown> {\n hooks: ProviderHooksMap;\n register(key: string, item: T): Promise<Provider>;\n delete(key: string): Promise<Provider>;\n get(key: string): T | undefined;\n values(): T[];\n keys(): string[];\n has(key: string): boolean;\n size(): number;\n clear(): Promise<Provider<T>>;\n}\n\nexport type ProviderFactory<T> = (options?: Options) => Provider<T>;\n\n/**\n * A Provider factory\n */\nconst providerFactory = <T = Item>(options: Options = {}): Provider<T> => {\n const { throwOnDuplicates = true } = options;\n\n const state = {\n hooks: createProviderHooksMap(),\n registry: new Map<string, T>(),\n };\n\n return {\n hooks: state.hooks,\n\n async register(key: string, item: T) {\n if (throwOnDuplicates && this.has(key)) {\n throw new Error(`Duplicated item key: ${key}`);\n }\n\n await state.hooks.willRegister.call({ key, value: item });\n\n state.registry.set(key, item);\n\n await state.hooks.didRegister.call({ key, value: cloneDeep(item) });\n\n return this;\n },\n\n async delete(key: string) {\n if (this.has(key)) {\n const item = this.get(key);\n\n await state.hooks.willDelete.call({ key, value: cloneDeep(item) });\n\n state.registry.delete(key);\n\n await state.hooks.didDelete.call({ key, value: cloneDeep(item) });\n }\n\n return this;\n },\n\n get(key: string) {\n return state.registry.get(key);\n },\n\n values() {\n return Array.from(state.registry.values());\n },\n\n keys() {\n return Array.from(state.registry.keys());\n },\n\n has(key: string) {\n return state.registry.has(key);\n },\n\n size() {\n return state.registry.size;\n },\n\n async clear() {\n const keys = this.keys();\n\n for (const key of keys) {\n await this.delete(key);\n }\n\n return this;\n },\n };\n};\n\nexport default providerFactory;\n"],"names":["createProviderHooksMap","willRegister","createAsyncSeriesHook","didRegister","createAsyncParallelHook","willDelete","didDelete","providerFactory","options","throwOnDuplicates","state","hooks","registry","Map","register","key","item","has","Error","call","value","set","cloneDeep","delete","get","values","Array","from","keys","size","clear"],"mappings":"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"}
package/dist/relations.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var fp = require('lodash/fp');
3
+ var _ = require('lodash');
4
4
  var contentTypes = require('./content-types.js');
5
5
 
6
6
  const MANY_RELATIONS = [
@@ -40,7 +40,7 @@ const constants = {
40
40
  // Valid keys in the `options` property of relations reordering
41
41
  // The value for each key must be a function that returns true if it is a valid value
42
42
  const VALID_RELATION_ORDERING_KEYS = {
43
- strict: fp.isBoolean
43
+ strict: _.isBoolean
44
44
  };
45
45
 
46
46
  exports.VALID_RELATION_ORDERING_KEYS = VALID_RELATION_ORDERING_KEYS;
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash/fp';\nimport type { Attribute, Model } from './types';\n\nimport { isRelationalAttribute } from './content-types';\n\nconst MANY_RELATIONS = ['oneToMany', 'manyToMany'];\n\nexport const getRelationalFields = (contentType: Model) => {\n return Object.keys(contentType.attributes).filter((attributeName) => {\n return contentType.attributes[attributeName].type === 'relation';\n });\n};\n\nexport const isOneToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);\n\nexport const isManyToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToOne = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToMany = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);\n\nexport const isPolymorphic = (attribute: any): any =>\n ['morphOne', 'morphMany', 'morphToOne', 'morphToMany'].includes(attribute.relation);\n\nexport const constants = {\n MANY_RELATIONS,\n};\n\n// Valid keys in the `options` property of relations reordering\n// The value for each key must be a function that returns true if it is a valid value\nexport const VALID_RELATION_ORDERING_KEYS: { [key: string]: (value: any) => boolean } = {\n strict: isBoolean,\n};\n"],"names":["MANY_RELATIONS","getRelationalFields","contentType","Object","keys","attributes","filter","attributeName","type","isOneToAny","attribute","isRelationalAttribute","includes","relation","isManyToAny","isAnyToOne","isAnyToMany","isPolymorphic","constants","VALID_RELATION_ORDERING_KEYS","strict","isBoolean"],"mappings":";;;;;AAKA,MAAMA,cAAAA,GAAiB;AAAC,IAAA,WAAA;AAAa,IAAA;AAAa,CAAA;AAE3C,MAAMC,sBAAsB,CAACC,WAAAA,GAAAA;IAClC,OAAOC,MAAAA,CAAOC,IAAI,CAACF,WAAAA,CAAYG,UAAU,CAAA,CAAEC,MAAM,CAAC,CAACC,aAAAA,GAAAA;AACjD,QAAA,OAAOL,YAAYG,UAAU,CAACE,aAAAA,CAAc,CAACC,IAAI,KAAK,UAAA;AACxD,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,UAAAA,GAAa,CAACC,SAAAA,GACzBC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMC,WAAAA,GAAc,CAACJ,SAAAA,GAC1BC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,YAAA;AAAc,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAME,UAAAA,GAAa,CAACL,SAAAA,GACzBC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMG,WAAAA,GAAc,CAACN,SAAAA,GAC1BC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,WAAA;AAAa,QAAA;AAAa,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAMI,aAAAA,GAAgB,CAACP,SAAAA,GAC5B;AAAC,QAAA,UAAA;AAAY,QAAA,WAAA;AAAa,QAAA,YAAA;AAAc,QAAA;AAAc,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;MAEvEK,SAAAA,GAAY;AACvBlB,IAAAA;AACF;AAEA;AACA;MACamB,4BAAAA,GAA2E;IACtFC,MAAAA,EAAQC;AACV;;;;;;;;;;;"}
1
+ {"version":3,"file":"relations.js","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash';\nimport type { Attribute, Model } from './types';\n\nimport { isRelationalAttribute } from './content-types';\n\nconst MANY_RELATIONS = ['oneToMany', 'manyToMany'];\n\nexport const getRelationalFields = (contentType: Model) => {\n return Object.keys(contentType.attributes).filter((attributeName) => {\n return contentType.attributes[attributeName].type === 'relation';\n });\n};\n\nexport const isOneToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);\n\nexport const isManyToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToOne = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToMany = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);\n\nexport const isPolymorphic = (attribute: any): any =>\n ['morphOne', 'morphMany', 'morphToOne', 'morphToMany'].includes(attribute.relation);\n\nexport const constants = {\n MANY_RELATIONS,\n};\n\n// Valid keys in the `options` property of relations reordering\n// The value for each key must be a function that returns true if it is a valid value\nexport const VALID_RELATION_ORDERING_KEYS: { [key: string]: (value: any) => boolean } = {\n strict: isBoolean,\n};\n"],"names":["MANY_RELATIONS","getRelationalFields","contentType","Object","keys","attributes","filter","attributeName","type","isOneToAny","attribute","isRelationalAttribute","includes","relation","isManyToAny","isAnyToOne","isAnyToMany","isPolymorphic","constants","VALID_RELATION_ORDERING_KEYS","strict","isBoolean"],"mappings":";;;;;AAKA,MAAMA,cAAAA,GAAiB;AAAC,IAAA,WAAA;AAAa,IAAA;AAAa,CAAA;AAE3C,MAAMC,sBAAsB,CAACC,WAAAA,GAAAA;IAClC,OAAOC,MAAAA,CAAOC,IAAI,CAACF,WAAAA,CAAYG,UAAU,CAAA,CAAEC,MAAM,CAAC,CAACC,aAAAA,GAAAA;AACjD,QAAA,OAAOL,YAAYG,UAAU,CAACE,aAAAA,CAAc,CAACC,IAAI,KAAK,UAAA;AACxD,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,UAAAA,GAAa,CAACC,SAAAA,GACzBC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMC,WAAAA,GAAc,CAACJ,SAAAA,GAC1BC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,YAAA;AAAc,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAME,UAAAA,GAAa,CAACL,SAAAA,GACzBC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMG,WAAAA,GAAc,CAACN,SAAAA,GAC1BC,mCAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,WAAA;AAAa,QAAA;AAAa,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAMI,aAAAA,GAAgB,CAACP,SAAAA,GAC5B;AAAC,QAAA,UAAA;AAAY,QAAA,WAAA;AAAa,QAAA,YAAA;AAAc,QAAA;AAAc,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;MAEvEK,SAAAA,GAAY;AACvBlB,IAAAA;AACF;AAEA;AACA;MACamB,4BAAAA,GAA2E;IACtFC,MAAAA,EAAQC;AACV;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- import { isBoolean } from 'lodash/fp';
1
+ import { isBoolean } from 'lodash';
2
2
  import { isRelationalAttribute } from './content-types.mjs';
3
3
 
4
4
  const MANY_RELATIONS = [
@@ -1 +1 @@
1
- {"version":3,"file":"relations.mjs","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash/fp';\nimport type { Attribute, Model } from './types';\n\nimport { isRelationalAttribute } from './content-types';\n\nconst MANY_RELATIONS = ['oneToMany', 'manyToMany'];\n\nexport const getRelationalFields = (contentType: Model) => {\n return Object.keys(contentType.attributes).filter((attributeName) => {\n return contentType.attributes[attributeName].type === 'relation';\n });\n};\n\nexport const isOneToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);\n\nexport const isManyToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToOne = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToMany = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);\n\nexport const isPolymorphic = (attribute: any): any =>\n ['morphOne', 'morphMany', 'morphToOne', 'morphToMany'].includes(attribute.relation);\n\nexport const constants = {\n MANY_RELATIONS,\n};\n\n// Valid keys in the `options` property of relations reordering\n// The value for each key must be a function that returns true if it is a valid value\nexport const VALID_RELATION_ORDERING_KEYS: { [key: string]: (value: any) => boolean } = {\n strict: isBoolean,\n};\n"],"names":["MANY_RELATIONS","getRelationalFields","contentType","Object","keys","attributes","filter","attributeName","type","isOneToAny","attribute","isRelationalAttribute","includes","relation","isManyToAny","isAnyToOne","isAnyToMany","isPolymorphic","constants","VALID_RELATION_ORDERING_KEYS","strict","isBoolean"],"mappings":";;;AAKA,MAAMA,cAAAA,GAAiB;AAAC,IAAA,WAAA;AAAa,IAAA;AAAa,CAAA;AAE3C,MAAMC,sBAAsB,CAACC,WAAAA,GAAAA;IAClC,OAAOC,MAAAA,CAAOC,IAAI,CAACF,WAAAA,CAAYG,UAAU,CAAA,CAAEC,MAAM,CAAC,CAACC,aAAAA,GAAAA;AACjD,QAAA,OAAOL,YAAYG,UAAU,CAACE,aAAAA,CAAc,CAACC,IAAI,KAAK,UAAA;AACxD,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,UAAAA,GAAa,CAACC,SAAAA,GACzBC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMC,WAAAA,GAAc,CAACJ,SAAAA,GAC1BC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,YAAA;AAAc,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAME,UAAAA,GAAa,CAACL,SAAAA,GACzBC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMG,WAAAA,GAAc,CAACN,SAAAA,GAC1BC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,WAAA;AAAa,QAAA;AAAa,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAMI,aAAAA,GAAgB,CAACP,SAAAA,GAC5B;AAAC,QAAA,UAAA;AAAY,QAAA,WAAA;AAAa,QAAA,YAAA;AAAc,QAAA;AAAc,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;MAEvEK,SAAAA,GAAY;AACvBlB,IAAAA;AACF;AAEA;AACA;MACamB,4BAAAA,GAA2E;IACtFC,MAAAA,EAAQC;AACV;;;;"}
1
+ {"version":3,"file":"relations.mjs","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash';\nimport type { Attribute, Model } from './types';\n\nimport { isRelationalAttribute } from './content-types';\n\nconst MANY_RELATIONS = ['oneToMany', 'manyToMany'];\n\nexport const getRelationalFields = (contentType: Model) => {\n return Object.keys(contentType.attributes).filter((attributeName) => {\n return contentType.attributes[attributeName].type === 'relation';\n });\n};\n\nexport const isOneToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'oneToMany'].includes(attribute.relation);\n\nexport const isManyToAny = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['manyToMany', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToOne = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToOne', 'manyToOne'].includes(attribute.relation);\n\nexport const isAnyToMany = (attribute: Attribute) =>\n isRelationalAttribute(attribute) && ['oneToMany', 'manyToMany'].includes(attribute.relation);\n\nexport const isPolymorphic = (attribute: any): any =>\n ['morphOne', 'morphMany', 'morphToOne', 'morphToMany'].includes(attribute.relation);\n\nexport const constants = {\n MANY_RELATIONS,\n};\n\n// Valid keys in the `options` property of relations reordering\n// The value for each key must be a function that returns true if it is a valid value\nexport const VALID_RELATION_ORDERING_KEYS: { [key: string]: (value: any) => boolean } = {\n strict: isBoolean,\n};\n"],"names":["MANY_RELATIONS","getRelationalFields","contentType","Object","keys","attributes","filter","attributeName","type","isOneToAny","attribute","isRelationalAttribute","includes","relation","isManyToAny","isAnyToOne","isAnyToMany","isPolymorphic","constants","VALID_RELATION_ORDERING_KEYS","strict","isBoolean"],"mappings":";;;AAKA,MAAMA,cAAAA,GAAiB;AAAC,IAAA,WAAA;AAAa,IAAA;AAAa,CAAA;AAE3C,MAAMC,sBAAsB,CAACC,WAAAA,GAAAA;IAClC,OAAOC,MAAAA,CAAOC,IAAI,CAACF,WAAAA,CAAYG,UAAU,CAAA,CAAEC,MAAM,CAAC,CAACC,aAAAA,GAAAA;AACjD,QAAA,OAAOL,YAAYG,UAAU,CAACE,aAAAA,CAAc,CAACC,IAAI,KAAK,UAAA;AACxD,IAAA,CAAA,CAAA;AACF;AAEO,MAAMC,UAAAA,GAAa,CAACC,SAAAA,GACzBC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMC,WAAAA,GAAc,CAACJ,SAAAA,GAC1BC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,YAAA;AAAc,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAME,UAAAA,GAAa,CAACL,SAAAA,GACzBC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,UAAA;AAAY,QAAA;AAAY,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEpF,MAAMG,WAAAA,GAAc,CAACN,SAAAA,GAC1BC,sBAAsBD,SAAAA,CAAAA,IAAc;AAAC,QAAA,WAAA;AAAa,QAAA;AAAa,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;AAEtF,MAAMI,aAAAA,GAAgB,CAACP,SAAAA,GAC5B;AAAC,QAAA,UAAA;AAAY,QAAA,WAAA;AAAa,QAAA,YAAA;AAAc,QAAA;AAAc,KAAA,CAACE,QAAQ,CAACF,SAAAA,CAAUG,QAAQ;MAEvEK,SAAAA,GAAY;AACvBlB,IAAAA;AACF;AAEA;AACA;MACamB,4BAAAA,GAA2E;IACtFC,MAAAA,EAAQC;AACV;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sanitize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAM1C,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,MAAM,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACxD;AACD,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,QAAA,MAAM,mBAAmB,GAAI,MAAM,UAAU;;;mBAoHlC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACtB,KAAK,kCAC0B,OAAO;;;;;CA8HjD,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sanitize/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,QAAQ,CAAC;AAKjE,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAI5C,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,MAAM,EAAE,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACxD;AACD,MAAM,WAAW,YAAY;IAC3B,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,QAAA,MAAM,mBAAmB,GAAI,MAAM,UAAU;;;mBAoHlC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UACtB,KAAK,kCAC0B,OAAO;;;;;CA8HjD,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}