@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.
- package/dist/async.js +2 -2
- package/dist/async.js.map +1 -1
- package/dist/async.mjs +1 -1
- package/dist/async.mjs.map +1 -1
- package/dist/content-types.d.ts.map +1 -1
- package/dist/content-types.js +8 -9
- package/dist/content-types.js.map +1 -1
- package/dist/content-types.mjs +6 -7
- package/dist/content-types.mjs.map +1 -1
- package/dist/convert-query-params.d.ts.map +1 -1
- package/dist/convert-query-params.js +33 -34
- package/dist/convert-query-params.js.map +1 -1
- package/dist/convert-query-params.mjs +23 -24
- package/dist/convert-query-params.mjs.map +1 -1
- package/dist/format-yup-error.js +3 -3
- package/dist/format-yup-error.js.map +1 -1
- package/dist/format-yup-error.mjs +1 -1
- package/dist/format-yup-error.mjs.map +1 -1
- package/dist/hooks.js +3 -3
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.mjs +2 -2
- package/dist/hooks.mjs.map +1 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +15 -18
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.mjs +15 -18
- package/dist/pagination.mjs.map +1 -1
- package/dist/policy.d.ts +1 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +1 -3
- package/dist/policy.js.map +1 -1
- package/dist/policy.mjs +1 -3
- package/dist/policy.mjs.map +1 -1
- package/dist/primitives/objects.d.ts +7 -1
- package/dist/primitives/objects.d.ts.map +1 -1
- package/dist/primitives/objects.js +5 -0
- package/dist/primitives/objects.js.map +1 -1
- package/dist/primitives/objects.mjs +5 -1
- package/dist/primitives/objects.mjs.map +1 -1
- package/dist/primitives/strings.d.ts.map +1 -1
- package/dist/primitives/strings.js +3 -7
- package/dist/primitives/strings.js.map +1 -1
- package/dist/primitives/strings.mjs +3 -7
- package/dist/primitives/strings.mjs.map +1 -1
- package/dist/provider-factory.js +4 -4
- package/dist/provider-factory.js.map +1 -1
- package/dist/provider-factory.mjs +1 -1
- package/dist/provider-factory.mjs.map +1 -1
- package/dist/relations.js +2 -2
- package/dist/relations.js.map +1 -1
- package/dist/relations.mjs +1 -1
- package/dist/relations.mjs.map +1 -1
- package/dist/sanitize/index.d.ts.map +1 -1
- package/dist/sanitize/index.js +8 -8
- package/dist/sanitize/index.js.map +1 -1
- package/dist/sanitize/index.mjs +7 -7
- package/dist/sanitize/index.mjs.map +1 -1
- package/dist/sanitize/sanitizers.js +10 -10
- package/dist/sanitize/sanitizers.js.map +1 -1
- package/dist/sanitize/sanitizers.mjs +4 -4
- package/dist/sanitize/sanitizers.mjs.map +1 -1
- package/dist/sanitize/visitors/remove-disallowed-fields.js +4 -4
- package/dist/sanitize/visitors/remove-disallowed-fields.js.map +1 -1
- package/dist/sanitize/visitors/remove-disallowed-fields.mjs +3 -3
- package/dist/sanitize/visitors/remove-disallowed-fields.mjs.map +1 -1
- package/dist/sanitize/visitors/remove-restricted-fields.js +2 -2
- package/dist/sanitize/visitors/remove-restricted-fields.js.map +1 -1
- package/dist/sanitize/visitors/remove-restricted-fields.mjs +2 -2
- package/dist/sanitize/visitors/remove-restricted-fields.mjs.map +1 -1
- package/dist/sanitize/visitors/remove-restricted-relations.js +9 -9
- package/dist/sanitize/visitors/remove-restricted-relations.js.map +1 -1
- package/dist/sanitize/visitors/remove-restricted-relations.mjs +4 -4
- package/dist/sanitize/visitors/remove-restricted-relations.mjs.map +1 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +3 -3
- package/dist/security.js.map +1 -1
- package/dist/security.mjs +3 -3
- package/dist/security.mjs.map +1 -1
- package/dist/set-creator-fields.d.ts +4 -1
- package/dist/set-creator-fields.d.ts.map +1 -1
- package/dist/set-creator-fields.js +7 -4
- package/dist/set-creator-fields.js.map +1 -1
- package/dist/set-creator-fields.mjs +7 -4
- package/dist/set-creator-fields.mjs.map +1 -1
- package/dist/traverse/factory.js +8 -8
- package/dist/traverse/factory.js.map +1 -1
- package/dist/traverse/factory.mjs +8 -8
- package/dist/traverse/factory.mjs.map +1 -1
- package/dist/traverse/query-fields.js +7 -7
- package/dist/traverse/query-fields.js.map +1 -1
- package/dist/traverse/query-fields.mjs +3 -3
- package/dist/traverse/query-fields.mjs.map +1 -1
- package/dist/traverse/query-filters.js +12 -12
- package/dist/traverse/query-filters.js.map +1 -1
- package/dist/traverse/query-filters.mjs +7 -7
- package/dist/traverse/query-filters.mjs.map +1 -1
- package/dist/traverse/query-populate.d.ts.map +1 -1
- package/dist/traverse/query-populate.js +21 -21
- package/dist/traverse/query-populate.js.map +1 -1
- package/dist/traverse/query-populate.mjs +12 -12
- package/dist/traverse/query-populate.mjs.map +1 -1
- package/dist/traverse/query-sort.d.ts.map +1 -1
- package/dist/traverse/query-sort.js +16 -16
- package/dist/traverse/query-sort.js.map +1 -1
- package/dist/traverse/query-sort.mjs +6 -6
- package/dist/traverse/query-sort.mjs.map +1 -1
- package/dist/traverse-entity.d.ts.map +1 -1
- package/dist/traverse-entity.js +18 -18
- package/dist/traverse-entity.js.map +1 -1
- package/dist/traverse-entity.mjs +16 -16
- package/dist/traverse-entity.mjs.map +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +5 -5
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/index.mjs +3 -3
- package/dist/validate/index.mjs.map +1 -1
- package/dist/validate/utils.d.ts +2 -1
- package/dist/validate/utils.d.ts.map +1 -1
- package/dist/validate/utils.js +4 -4
- package/dist/validate/utils.js.map +1 -1
- package/dist/validate/utils.mjs +4 -4
- package/dist/validate/utils.mjs.map +1 -1
- package/dist/validate/validators.d.ts.map +1 -1
- package/dist/validate/validators.js +17 -9
- package/dist/validate/validators.js.map +1 -1
- package/dist/validate/validators.mjs +14 -6
- package/dist/validate/validators.mjs.map +1 -1
- package/dist/validate/visitors/throw-disallowed-fields.js +4 -4
- package/dist/validate/visitors/throw-disallowed-fields.js.map +1 -1
- package/dist/validate/visitors/throw-disallowed-fields.mjs +3 -3
- package/dist/validate/visitors/throw-disallowed-fields.mjs.map +1 -1
- package/dist/validate/visitors/throw-restricted-fields.js +2 -2
- package/dist/validate/visitors/throw-restricted-fields.js.map +1 -1
- package/dist/validate/visitors/throw-restricted-fields.mjs +2 -2
- package/dist/validate/visitors/throw-restricted-fields.mjs.map +1 -1
- package/dist/validate/visitors/throw-restricted-relations.js +6 -6
- package/dist/validate/visitors/throw-restricted-relations.js.map +1 -1
- package/dist/validate/visitors/throw-restricted-relations.mjs +2 -2
- package/dist/validate/visitors/throw-restricted-relations.mjs.map +1 -1
- package/dist/validators.js +3 -3
- package/dist/validators.js.map +1 -1
- package/dist/validators.mjs +3 -3
- package/dist/validators.mjs.map +1 -1
- package/dist/yup.d.ts.map +1 -1
- package/dist/yup.js +2 -3
- package/dist/yup.js.map +1 -1
- package/dist/yup.mjs +3 -4
- package/dist/yup.mjs.map +1 -1
- package/package.json +4 -4
package/dist/pagination.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 =
|
|
43
|
-
const useOffsetPagination =
|
|
44
|
-
const ensureValidValues =
|
|
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 =
|
|
67
|
+
const pageArgs = args.pageSize == null ? omit(args, [
|
|
68
68
|
'pageSize'
|
|
69
|
-
]
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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
|
package/dist/pagination.mjs.map
CHANGED
|
@@ -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:
|
|
12
|
+
is: (otherType: unknown) => boolean;
|
|
13
13
|
readonly type: string;
|
|
14
14
|
} & object;
|
|
15
15
|
export { createPolicy, createPolicyContext };
|
package/dist/policy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"
|
|
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:
|
|
22
|
+
is: (otherType)=>type === otherType,
|
|
25
23
|
get type () {
|
|
26
24
|
return type;
|
|
27
25
|
}
|
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sources":["../src/policy.ts"],"sourcesContent":["
|
|
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:
|
|
20
|
+
is: (otherType)=>type === otherType,
|
|
23
21
|
get type () {
|
|
24
22
|
return type;
|
|
25
23
|
}
|
package/dist/policy.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.mjs","sources":["../src/policy.ts"],"sourcesContent":["
|
|
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
|
-
|
|
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":"
|
|
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":"
|
|
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
|
|
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
|
|
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;;;;"}
|
package/dist/provider-factory.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
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:
|
|
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:
|
|
46
|
+
value: _.cloneDeep(item)
|
|
47
47
|
});
|
|
48
48
|
state.registry.delete(key);
|
|
49
49
|
await state.hooks.didDelete.call({
|
|
50
50
|
key,
|
|
51
|
-
value:
|
|
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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-factory.mjs","sources":["../src/provider-factory.ts"],"sourcesContent":["import { cloneDeep } from 'lodash
|
|
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
|
|
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:
|
|
43
|
+
strict: _.isBoolean
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
exports.VALID_RELATION_ORDERING_KEYS = VALID_RELATION_ORDERING_KEYS;
|
package/dist/relations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash
|
|
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;;;;;;;;;;;"}
|
package/dist/relations.mjs
CHANGED
package/dist/relations.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.mjs","sources":["../src/relations.ts"],"sourcesContent":["import { isBoolean } from 'lodash
|
|
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,
|
|
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"}
|