payload 3.90.1 → 3.91.0-internal.07e4582
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/bin.js +3 -14
- package/dist/auth/endpoints/refresh.d.ts.map +1 -1
- package/dist/auth/endpoints/refresh.js +4 -6
- package/dist/auth/endpoints/refresh.js.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +15 -0
- package/dist/bin/index.js.map +1 -1
- package/dist/bin/index.spec.js +54 -0
- package/dist/bin/index.spec.js.map +1 -0
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +54 -6
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/database/createSchemaBuildContext.d.ts +12 -0
- package/dist/database/createSchemaBuildContext.d.ts.map +1 -0
- package/dist/database/createSchemaBuildContext.js +24 -0
- package/dist/database/createSchemaBuildContext.js.map +1 -0
- package/dist/database/createSchemaBuildContext.spec.js +146 -0
- package/dist/database/createSchemaBuildContext.spec.js.map +1 -0
- package/dist/exports/internal.d.ts +2 -0
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +1 -0
- package/dist/exports/internal.js.map +1 -1
- package/dist/exports/shared.d.ts +1 -1
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +1 -1
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.js +3 -3
- package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.spec.js +22 -0
- package/dist/fields/baseFields/slug/generateSlug.spec.js.map +1 -0
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +4 -3
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/queues/utilities/updateJob.d.ts.map +1 -1
- package/dist/queues/utilities/updateJob.js +15 -0
- package/dist/queues/utilities/updateJob.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +1 -0
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.js +22 -4
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/dist/utilities/formatAdminURL.spec.js +98 -2
- package/dist/utilities/formatAdminURL.spec.js.map +1 -1
- package/dist/utilities/getNextJsHMRURL.d.ts.map +1 -1
- package/dist/utilities/getNextJsHMRURL.js +4 -2
- package/dist/utilities/getNextJsHMRURL.js.map +1 -1
- package/dist/utilities/getNextJsHMRURL.spec.js +11 -0
- package/dist/utilities/getNextJsHMRURL.spec.js.map +1 -1
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/handleEndpoints.js +5 -3
- package/dist/utilities/handleEndpoints.js.map +1 -1
- package/lexicalLoader.mjs +26 -0
- package/package.json +5 -4
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { describe, expect, test, vi } from 'vitest';
|
|
2
|
+
import { createSchemaBuildContext } from './createSchemaBuildContext.js';
|
|
3
|
+
describe('createSchemaBuildContext', ()=>{
|
|
4
|
+
test('should build once for the same definition identity and variant', ()=>{
|
|
5
|
+
const context = createSchemaBuildContext();
|
|
6
|
+
const definition = {};
|
|
7
|
+
const artifact = {};
|
|
8
|
+
const build = vi.fn(()=>artifact);
|
|
9
|
+
const first = context.getOrCreate({
|
|
10
|
+
build,
|
|
11
|
+
definition,
|
|
12
|
+
cacheKey: 'block:hero'
|
|
13
|
+
});
|
|
14
|
+
const second = context.getOrCreate({
|
|
15
|
+
build,
|
|
16
|
+
definition,
|
|
17
|
+
cacheKey: 'block:hero'
|
|
18
|
+
});
|
|
19
|
+
expect(first).toBe(artifact);
|
|
20
|
+
expect(second).toBe(artifact);
|
|
21
|
+
expect(build).toHaveBeenCalledOnce();
|
|
22
|
+
});
|
|
23
|
+
test('should build separate artifacts for separate variants', ()=>{
|
|
24
|
+
const context = createSchemaBuildContext();
|
|
25
|
+
const definition = {};
|
|
26
|
+
const live = context.getOrCreate({
|
|
27
|
+
build: ()=>({
|
|
28
|
+
variant: 'live'
|
|
29
|
+
}),
|
|
30
|
+
definition,
|
|
31
|
+
cacheKey: 'block:hero'
|
|
32
|
+
});
|
|
33
|
+
const version = context.getOrCreate({
|
|
34
|
+
build: ()=>({
|
|
35
|
+
variant: 'version'
|
|
36
|
+
}),
|
|
37
|
+
definition,
|
|
38
|
+
cacheKey: 'block:hero-version'
|
|
39
|
+
});
|
|
40
|
+
expect(live).not.toBe(version);
|
|
41
|
+
});
|
|
42
|
+
test('should build a fresh artifact when caching is disabled', ()=>{
|
|
43
|
+
const context = createSchemaBuildContext({
|
|
44
|
+
isCacheEnabled: false
|
|
45
|
+
});
|
|
46
|
+
const definition = {};
|
|
47
|
+
const build = vi.fn(()=>({}));
|
|
48
|
+
const first = context.getOrCreate({
|
|
49
|
+
build,
|
|
50
|
+
definition,
|
|
51
|
+
cacheKey: 'block:hero'
|
|
52
|
+
});
|
|
53
|
+
const second = context.getOrCreate({
|
|
54
|
+
build,
|
|
55
|
+
definition,
|
|
56
|
+
cacheKey: 'block:hero'
|
|
57
|
+
});
|
|
58
|
+
expect(first).not.toBe(second);
|
|
59
|
+
expect(build).toHaveBeenCalledTimes(2);
|
|
60
|
+
});
|
|
61
|
+
test('should not merge equal definitions with different object identities', ()=>{
|
|
62
|
+
const context = createSchemaBuildContext();
|
|
63
|
+
const first = context.getOrCreate({
|
|
64
|
+
build: ()=>({
|
|
65
|
+
source: 'first'
|
|
66
|
+
}),
|
|
67
|
+
definition: {
|
|
68
|
+
slug: 'hero'
|
|
69
|
+
},
|
|
70
|
+
cacheKey: 'block:hero'
|
|
71
|
+
});
|
|
72
|
+
const second = context.getOrCreate({
|
|
73
|
+
build: ()=>({
|
|
74
|
+
source: 'second'
|
|
75
|
+
}),
|
|
76
|
+
definition: {
|
|
77
|
+
slug: 'hero'
|
|
78
|
+
},
|
|
79
|
+
cacheKey: 'block:hero'
|
|
80
|
+
});
|
|
81
|
+
expect(first).not.toBe(second);
|
|
82
|
+
});
|
|
83
|
+
test('should not share artifacts between contexts', ()=>{
|
|
84
|
+
const definition = {};
|
|
85
|
+
const firstContext = createSchemaBuildContext();
|
|
86
|
+
const secondContext = createSchemaBuildContext();
|
|
87
|
+
const first = firstContext.getOrCreate({
|
|
88
|
+
build: ()=>({
|
|
89
|
+
context: 'first'
|
|
90
|
+
}),
|
|
91
|
+
definition,
|
|
92
|
+
cacheKey: 'block:hero'
|
|
93
|
+
});
|
|
94
|
+
const second = secondContext.getOrCreate({
|
|
95
|
+
build: ()=>({
|
|
96
|
+
context: 'second'
|
|
97
|
+
}),
|
|
98
|
+
definition,
|
|
99
|
+
cacheKey: 'block:hero'
|
|
100
|
+
});
|
|
101
|
+
expect(first).not.toBe(second);
|
|
102
|
+
});
|
|
103
|
+
test('should retry after a builder throws', ()=>{
|
|
104
|
+
const context = createSchemaBuildContext();
|
|
105
|
+
const definition = {};
|
|
106
|
+
const artifact = {};
|
|
107
|
+
const build = vi.fn();
|
|
108
|
+
build.mockImplementationOnce(()=>{
|
|
109
|
+
throw new Error('build failed');
|
|
110
|
+
});
|
|
111
|
+
build.mockReturnValueOnce(artifact);
|
|
112
|
+
expect(()=>context.getOrCreate({
|
|
113
|
+
build,
|
|
114
|
+
cacheKey: 'block:hero',
|
|
115
|
+
definition
|
|
116
|
+
})).toThrow('build failed');
|
|
117
|
+
expect(context.getOrCreate({
|
|
118
|
+
build,
|
|
119
|
+
cacheKey: 'block:hero',
|
|
120
|
+
definition
|
|
121
|
+
})).toBe(artifact);
|
|
122
|
+
expect(build).toHaveBeenCalledTimes(2);
|
|
123
|
+
});
|
|
124
|
+
test('should reset artifacts when cleared', ()=>{
|
|
125
|
+
const context = createSchemaBuildContext();
|
|
126
|
+
const definition = {};
|
|
127
|
+
const first = context.getOrCreate({
|
|
128
|
+
build: ()=>({
|
|
129
|
+
build: 1
|
|
130
|
+
}),
|
|
131
|
+
definition,
|
|
132
|
+
cacheKey: 'block:hero'
|
|
133
|
+
});
|
|
134
|
+
context.clear();
|
|
135
|
+
const second = context.getOrCreate({
|
|
136
|
+
build: ()=>({
|
|
137
|
+
build: 2
|
|
138
|
+
}),
|
|
139
|
+
definition,
|
|
140
|
+
cacheKey: 'block:hero'
|
|
141
|
+
});
|
|
142
|
+
expect(second).not.toBe(first);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=createSchemaBuildContext.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/database/createSchemaBuildContext.spec.ts"],"sourcesContent":["import { describe, expect, test, vi } from 'vitest'\n\nimport { createSchemaBuildContext } from './createSchemaBuildContext.js'\n\ndescribe('createSchemaBuildContext', () => {\n test('should build once for the same definition identity and variant', () => {\n const context = createSchemaBuildContext<object>()\n const definition = {}\n const artifact = {}\n const build = vi.fn(() => artifact)\n\n const first = context.getOrCreate({\n build,\n definition,\n cacheKey: 'block:hero',\n })\n const second = context.getOrCreate({\n build,\n definition,\n cacheKey: 'block:hero',\n })\n\n expect(first).toBe(artifact)\n expect(second).toBe(artifact)\n expect(build).toHaveBeenCalledOnce()\n })\n\n test('should build separate artifacts for separate variants', () => {\n const context = createSchemaBuildContext<object>()\n const definition = {}\n\n const live = context.getOrCreate({\n build: () => ({ variant: 'live' }),\n definition,\n cacheKey: 'block:hero',\n })\n const version = context.getOrCreate({\n build: () => ({ variant: 'version' }),\n definition,\n cacheKey: 'block:hero-version',\n })\n\n expect(live).not.toBe(version)\n })\n\n test('should build a fresh artifact when caching is disabled', () => {\n const context = createSchemaBuildContext<object>({ isCacheEnabled: false })\n const definition = {}\n const build = vi.fn(() => ({}))\n\n const first = context.getOrCreate({\n build,\n definition,\n cacheKey: 'block:hero',\n })\n const second = context.getOrCreate({\n build,\n definition,\n cacheKey: 'block:hero',\n })\n\n expect(first).not.toBe(second)\n expect(build).toHaveBeenCalledTimes(2)\n })\n\n test('should not merge equal definitions with different object identities', () => {\n const context = createSchemaBuildContext<object>()\n const first = context.getOrCreate({\n build: () => ({ source: 'first' }),\n definition: { slug: 'hero' },\n cacheKey: 'block:hero',\n })\n const second = context.getOrCreate({\n build: () => ({ source: 'second' }),\n definition: { slug: 'hero' },\n cacheKey: 'block:hero',\n })\n\n expect(first).not.toBe(second)\n })\n\n test('should not share artifacts between contexts', () => {\n const definition = {}\n const firstContext = createSchemaBuildContext<object>()\n const secondContext = createSchemaBuildContext<object>()\n const first = firstContext.getOrCreate({\n build: () => ({ context: 'first' }),\n definition,\n cacheKey: 'block:hero',\n })\n const second = secondContext.getOrCreate({\n build: () => ({ context: 'second' }),\n definition,\n cacheKey: 'block:hero',\n })\n\n expect(first).not.toBe(second)\n })\n\n test('should retry after a builder throws', () => {\n const context = createSchemaBuildContext<object>()\n const definition = {}\n const artifact = {}\n const build = vi.fn<() => object>()\n build.mockImplementationOnce(() => {\n throw new Error('build failed')\n })\n build.mockReturnValueOnce(artifact)\n\n expect(() => context.getOrCreate({ build, cacheKey: 'block:hero', definition })).toThrow(\n 'build failed',\n )\n expect(context.getOrCreate({ build, cacheKey: 'block:hero', definition })).toBe(artifact)\n expect(build).toHaveBeenCalledTimes(2)\n })\n\n test('should reset artifacts when cleared', () => {\n const context = createSchemaBuildContext<object>()\n const definition = {}\n const first = context.getOrCreate({\n build: () => ({ build: 1 }),\n definition,\n cacheKey: 'block:hero',\n })\n\n context.clear()\n\n const second = context.getOrCreate({\n build: () => ({ build: 2 }),\n definition,\n cacheKey: 'block:hero',\n })\n\n expect(second).not.toBe(first)\n })\n})\n"],"names":["describe","expect","test","vi","createSchemaBuildContext","context","definition","artifact","build","fn","first","getOrCreate","cacheKey","second","toBe","toHaveBeenCalledOnce","live","variant","version","not","isCacheEnabled","toHaveBeenCalledTimes","source","slug","firstContext","secondContext","mockImplementationOnce","Error","mockReturnValueOnce","toThrow","clear"],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.
|
|
3
3
|
*/
|
|
4
4
|
export { applyUserReadAccess } from '../auth/applyUserReadAccess.js';
|
|
5
|
+
export { createSchemaBuildContext } from '../database/createSchemaBuildContext.js';
|
|
6
|
+
export type { SchemaBuildContext } from '../database/createSchemaBuildContext.js';
|
|
5
7
|
export { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js';
|
|
6
8
|
export { assertClientUploadAllowed, assertClientUploadFileSize, } from '../uploads/assertClientUploadAllowed.js';
|
|
7
9
|
export { createClientUploadReceipt, verifyClientUploadReceipt, } from '../uploads/clientUploadReceipt.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/exports/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/exports/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EACV,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAA;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAA;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA"}
|
package/dist/exports/internal.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.
|
|
3
3
|
*/ export { applyUserReadAccess } from '../auth/applyUserReadAccess.js';
|
|
4
|
+
export { createSchemaBuildContext } from '../database/createSchemaBuildContext.js';
|
|
4
5
|
export { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js';
|
|
5
6
|
export { assertClientUploadAllowed, assertClientUploadFileSize } from '../uploads/assertClientUploadAllowed.js';
|
|
6
7
|
export { createClientUploadReceipt, verifyClientUploadReceipt } from '../uploads/clientUploadReceipt.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/internal.ts"],"sourcesContent":["/**\n * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.\n */\n\nexport { applyUserReadAccess } from '../auth/applyUserReadAccess.js'\nexport { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js'\nexport {\n assertClientUploadAllowed,\n assertClientUploadFileSize,\n} from '../uploads/assertClientUploadAllowed.js'\nexport {\n createClientUploadReceipt,\n verifyClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport type {\n ClientUploadReceipt,\n SignedClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport { getExternalFile } from '../uploads/getExternalFile.js'\nexport { isSvgMimeType, isXmlMimeType } from '../uploads/getFileTypeIdentity.js'\nexport { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js'\nexport { getSafeFileName } from '../uploads/getSafeFilename.js'\nexport { parseRangeHeader } from '../uploads/parseRangeHeader.js'\nexport { UPLOAD_CONTENT_SECURITY_POLICY } from '../uploads/uploadContentSecurityPolicy.js'\nexport { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js'\nexport { sanitizePermissions } from '../utilities/sanitizePermissions.js'\n"],"names":["applyUserReadAccess","assertClientUploadAccess","assertClientUploadAllowed","assertClientUploadFileSize","createClientUploadReceipt","verifyClientUploadReceipt","getExternalFile","isSvgMimeType","isXmlMimeType","getRangeRequestInfo","getSafeFileName","parseRangeHeader","UPLOAD_CONTENT_SECURITY_POLICY","getEntityPermissions","sanitizePermissions"],"mappings":"AAAA;;CAEC,GAED,SAASA,mBAAmB,QAAQ,iCAAgC;AACpE,SAASC,wBAAwB,QAAQ,yCAAwC;AACjF,SACEC,yBAAyB,EACzBC,0BAA0B,QACrB,0CAAyC;AAChD,SACEC,yBAAyB,EACzBC,yBAAyB,QACpB,oCAAmC;AAK1C,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,aAAa,EAAEC,aAAa,QAAQ,oCAAmC;AAChF,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,gBAAgB,QAAQ,iCAAgC;AACjE,SAASC,8BAA8B,QAAQ,4CAA2C;AAC1F,SAASC,oBAAoB,QAAQ,4DAA2D;AAChG,SAASC,mBAAmB,QAAQ,sCAAqC"}
|
|
1
|
+
{"version":3,"sources":["../../src/exports/internal.ts"],"sourcesContent":["/**\n * Modules exported here are not part of the public API and are subject to change without notice and without a major version bump.\n */\n\nexport { applyUserReadAccess } from '../auth/applyUserReadAccess.js'\nexport { createSchemaBuildContext } from '../database/createSchemaBuildContext.js'\nexport type { SchemaBuildContext } from '../database/createSchemaBuildContext.js'\nexport { assertClientUploadAccess } from '../uploads/assertClientUploadAccess.js'\nexport {\n assertClientUploadAllowed,\n assertClientUploadFileSize,\n} from '../uploads/assertClientUploadAllowed.js'\nexport {\n createClientUploadReceipt,\n verifyClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport type {\n ClientUploadReceipt,\n SignedClientUploadReceipt,\n} from '../uploads/clientUploadReceipt.js'\nexport { getExternalFile } from '../uploads/getExternalFile.js'\nexport { isSvgMimeType, isXmlMimeType } from '../uploads/getFileTypeIdentity.js'\nexport { getRangeRequestInfo } from '../uploads/getRangeRequestInfo.js'\nexport { getSafeFileName } from '../uploads/getSafeFilename.js'\nexport { parseRangeHeader } from '../uploads/parseRangeHeader.js'\nexport { UPLOAD_CONTENT_SECURITY_POLICY } from '../uploads/uploadContentSecurityPolicy.js'\nexport { getEntityPermissions } from '../utilities/getEntityPermissions/getEntityPermissions.js'\nexport { sanitizePermissions } from '../utilities/sanitizePermissions.js'\n"],"names":["applyUserReadAccess","createSchemaBuildContext","assertClientUploadAccess","assertClientUploadAllowed","assertClientUploadFileSize","createClientUploadReceipt","verifyClientUploadReceipt","getExternalFile","isSvgMimeType","isXmlMimeType","getRangeRequestInfo","getSafeFileName","parseRangeHeader","UPLOAD_CONTENT_SECURITY_POLICY","getEntityPermissions","sanitizePermissions"],"mappings":"AAAA;;CAEC,GAED,SAASA,mBAAmB,QAAQ,iCAAgC;AACpE,SAASC,wBAAwB,QAAQ,0CAAyC;AAElF,SAASC,wBAAwB,QAAQ,yCAAwC;AACjF,SACEC,yBAAyB,EACzBC,0BAA0B,QACrB,0CAAyC;AAChD,SACEC,yBAAyB,EACzBC,yBAAyB,QACpB,oCAAmC;AAK1C,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,aAAa,EAAEC,aAAa,QAAQ,oCAAmC;AAChF,SAASC,mBAAmB,QAAQ,oCAAmC;AACvE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,gBAAgB,QAAQ,iCAAgC;AACjE,SAASC,8BAA8B,QAAQ,4CAA2C;AAC1F,SAASC,oBAAoB,QAAQ,4DAA2D;AAChG,SAASC,mBAAmB,QAAQ,sCAAqC"}
|
package/dist/exports/shared.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export { extractID } from '../utilities/extractID.js';
|
|
|
29
29
|
export { expandOwnDottedKey, hasUnsupportedFieldPathSegment, setOwnProperty, } from '../utilities/fieldPath.js';
|
|
30
30
|
export { flattenAllFields } from '../utilities/flattenAllFields.js';
|
|
31
31
|
export { flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js';
|
|
32
|
-
export { formatAdminURL } from '../utilities/formatAdminURL.js';
|
|
32
|
+
export { formatAdminURL, stripTrailingSlash } from '../utilities/formatAdminURL.js';
|
|
33
33
|
export { formatLabels, toWords } from '../utilities/formatLabels.js';
|
|
34
34
|
export { getBestFitFromSizes } from '../utilities/getBestFitFromSizes.js';
|
|
35
35
|
export { getDataByPath } from '../utilities/getDataByPath.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/exports/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,GACb,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6DAA6D,CAAA;AACnG,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AAEpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oCAAoC,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAA;AAEpF,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,cAAc,0BAA0B,CAAA;AAExC,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,GACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAA;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,gDAAgD,CAAA;AAE3F,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,WAAW,EACX,8BAA8B,GAC/B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAE3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,0CAA0C,GAC3C,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,SAAS,EACT,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,cAAc,GACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/exports/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/exports/shared.js
CHANGED
|
@@ -27,7 +27,7 @@ export { extractID } from '../utilities/extractID.js';
|
|
|
27
27
|
export { expandOwnDottedKey, hasUnsupportedFieldPathSegment, setOwnProperty } from '../utilities/fieldPath.js';
|
|
28
28
|
export { flattenAllFields } from '../utilities/flattenAllFields.js';
|
|
29
29
|
export { flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js';
|
|
30
|
-
export { formatAdminURL } from '../utilities/formatAdminURL.js';
|
|
30
|
+
export { formatAdminURL, stripTrailingSlash } from '../utilities/formatAdminURL.js';
|
|
31
31
|
export { formatLabels, toWords } from '../utilities/formatLabels.js';
|
|
32
32
|
export { getBestFitFromSizes } from '../utilities/getBestFitFromSizes.js';
|
|
33
33
|
export { getDataByPath } from '../utilities/getDataByPath.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/shared.ts"],"sourcesContent":["export {\n generateCookie,\n generateExpiredPayloadCookie,\n generatePayloadCookie,\n getCookieExpiration,\n parseCookies,\n} from '../auth/cookies.js'\n\nexport { getLoginOptions } from '../auth/getLoginOptions.js'\nexport { addSessionToUser, removeExpiredSessions } from '../auth/sessions.js'\nexport { getFromImportMap } from '../bin/generateImportMap/utilities/getFromImportMap.js'\nexport { parsePayloadComponent } from '../bin/generateImportMap/utilities/parsePayloadComponent.js'\nexport { defaults as collectionDefaults } from '../collections/config/defaults.js'\nexport {\n BASE_36_DIGITS,\n generateKeyBetween,\n generateNKeysBetween,\n} from '../config/orderable/fractional-indexing.js'\n\nexport { serverProps } from '../config/types.js'\n\nexport { isNestedRelationshipQuery } from '../database/isNestedRelationshipQuery.js'\n\nexport { type Slugify } from '../fields/baseFields/slug/index.js'\n\nexport { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js'\n\nexport {\n fieldAffectsData,\n fieldHasMaxDepth,\n fieldHasSubFields,\n fieldIsArrayType,\n fieldIsBlockType,\n fieldIsGroupType,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n fieldIsPresentationalOnly,\n fieldIsSidebar,\n fieldIsVirtual,\n fieldShouldBeLocalized,\n fieldSupportsMany,\n groupHasName,\n optionIsObject,\n optionIsValue,\n optionsAreObjects,\n tabHasName,\n valueIsValueWithRelation,\n} from '../fields/config/types.js'\nexport { getFieldPaths } from '../fields/getFieldPaths.js'\n\nexport * from '../fields/validations.js'\n\nexport type {\n FolderBreadcrumb,\n FolderDocumentItemKey,\n FolderEnabledColection,\n FolderInterface,\n FolderOrDocument,\n GetFolderDataResult,\n Subfolder,\n} from '../folders/types.js'\nexport { buildFolderWhereConstraints } from '../folders/utils/buildFolderWhereConstraints.js'\nexport { formatFolderOrDocumentItem } from '../folders/utils/formatFolderOrDocumentItem.js'\n\nexport { PREFERENCE_KEYS } from '../preferences/keys.js'\n\nexport { validOperators, validOperatorSet } from '../types/constants.js'\nexport { formatFilesize } from '../uploads/formatFilesize.js'\nexport {\n getSanitizedUploadFilename,\n isSvgUpload,\n isXmlUpload,\n uploadRequiresServerValidation,\n} from '../uploads/getFileTypeIdentity.js'\nexport { isImage } from '../uploads/isImage.js'\nexport { appendUploadSelectFields } from '../utilities/appendUploadSelectFields.js'\n\nexport { applyLocaleFiltering } from '../utilities/applyLocaleFiltering.js'\n\nexport { combineWhereConstraints } from '../utilities/combineWhereConstraints.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n deepCopyObjectSimpleWithoutReactComponents,\n} from '../utilities/deepCopyObject.js'\n\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from '../utilities/deepMerge.js'\n\nexport { extractID } from '../utilities/extractID.js'\n\nexport {\n expandOwnDottedKey,\n hasUnsupportedFieldPathSegment,\n setOwnProperty,\n} from '../utilities/fieldPath.js'\nexport { flattenAllFields } from '../utilities/flattenAllFields.js'\nexport { flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js'\nexport { formatAdminURL } from '../utilities/formatAdminURL.js'\n\nexport { formatLabels, toWords } from '../utilities/formatLabels.js'\nexport { getBestFitFromSizes } from '../utilities/getBestFitFromSizes.js'\nexport { getDataByPath } from '../utilities/getDataByPath.js'\nexport { getFieldPermissions } from '../utilities/getFieldPermissions.js'\n\nexport { getObjectDotNotation } from '../utilities/getObjectDotNotation.js'\n\nexport { getSafeRedirect } from '../utilities/getSafeRedirect.js'\n\nexport { getSelectMode } from '../utilities/getSelectMode.js'\n\nexport { getSiblingData } from '../utilities/getSiblingData.js'\n\nexport { getUniqueListBy } from '../utilities/getUniqueListBy.js'\n\nexport {\n getAutosaveInterval,\n getVersionsMax,\n hasAutosaveEnabled,\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n hasScheduledPublishEnabled,\n} from '../utilities/getVersionsConfig.js'\n\nexport { isNextBuild } from '../utilities/isNextBuild.js'\n\nexport { isNumber } from '../utilities/isNumber.js'\n\nexport { isPlainObject } from '../utilities/isPlainObject.js'\n\nexport {\n isReactClientComponent,\n isReactComponentOrFunction,\n isReactServerComponentOrFunction,\n} from '../utilities/isReactComponent.js'\n\nexport {\n hoistQueryParamsToAnd,\n mergeListSearchAndWhere,\n} from '../utilities/mergeListSearchAndWhere.js'\n\nexport { reduceFieldsToValues } from '../utilities/reduceFieldsToValues.js'\n\nexport { sanitizeFilename } from '../utilities/sanitizeFilename.js'\n\nexport { sanitizeUrl } from '../utilities/sanitizeUrl.js'\n\nexport { sanitizeUserDataForEmail } from '../utilities/sanitizeUserDataForEmail.js'\n\nexport { setsAreEqual } from '../utilities/setsAreEqual.js'\n\nexport { slugify } from '../utilities/slugify.js'\n\nexport { toKebabCase } from '../utilities/toKebabCase.js'\n\nexport {\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from '../utilities/transformColumnPreferences.js'\n\nexport { transformWhereQuery } from '../utilities/transformWhereQuery.js'\nexport { unflatten } from '../utilities/unflatten.js'\nexport { validateMimeType } from '../utilities/validateMimeType.js'\nexport { validateWhereQuery } from '../utilities/validateWhereQuery.js'\nexport { wait } from '../utilities/wait.js'\nexport { wordBoundariesRegex } from '../utilities/wordBoundariesRegex.js'\nexport { versionDefaults } from '../versions/defaults.js'\n\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["generateCookie","generateExpiredPayloadCookie","generatePayloadCookie","getCookieExpiration","parseCookies","getLoginOptions","addSessionToUser","removeExpiredSessions","getFromImportMap","parsePayloadComponent","defaults","collectionDefaults","BASE_36_DIGITS","generateKeyBetween","generateNKeysBetween","serverProps","isNestedRelationshipQuery","defaultTimezones","fieldAffectsData","fieldHasMaxDepth","fieldHasSubFields","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","fieldIsPresentationalOnly","fieldIsSidebar","fieldIsVirtual","fieldShouldBeLocalized","fieldSupportsMany","groupHasName","optionIsObject","optionIsValue","optionsAreObjects","tabHasName","valueIsValueWithRelation","getFieldPaths","buildFolderWhereConstraints","formatFolderOrDocumentItem","PREFERENCE_KEYS","validOperators","validOperatorSet","formatFilesize","getSanitizedUploadFilename","isSvgUpload","isXmlUpload","uploadRequiresServerValidation","isImage","appendUploadSelectFields","applyLocaleFiltering","combineWhereConstraints","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","extractID","expandOwnDottedKey","hasUnsupportedFieldPathSegment","setOwnProperty","flattenAllFields","flattenTopLevelFields","formatAdminURL","formatLabels","toWords","getBestFitFromSizes","getDataByPath","getFieldPermissions","getObjectDotNotation","getSafeRedirect","getSelectMode","getSiblingData","getUniqueListBy","getAutosaveInterval","getVersionsMax","hasAutosaveEnabled","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","hasScheduledPublishEnabled","isNextBuild","isNumber","isPlainObject","isReactClientComponent","isReactComponentOrFunction","isReactServerComponentOrFunction","hoistQueryParamsToAnd","mergeListSearchAndWhere","reduceFieldsToValues","sanitizeFilename","sanitizeUrl","sanitizeUserDataForEmail","setsAreEqual","slugify","toKebabCase","transformColumnsToPreferences","transformColumnsToSearchParams","transformWhereQuery","unflatten","validateMimeType","validateWhereQuery","wait","wordBoundariesRegex","versionDefaults","deepMergeSimple"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/exports/shared.ts"],"sourcesContent":["export {\n generateCookie,\n generateExpiredPayloadCookie,\n generatePayloadCookie,\n getCookieExpiration,\n parseCookies,\n} from '../auth/cookies.js'\n\nexport { getLoginOptions } from '../auth/getLoginOptions.js'\nexport { addSessionToUser, removeExpiredSessions } from '../auth/sessions.js'\nexport { getFromImportMap } from '../bin/generateImportMap/utilities/getFromImportMap.js'\nexport { parsePayloadComponent } from '../bin/generateImportMap/utilities/parsePayloadComponent.js'\nexport { defaults as collectionDefaults } from '../collections/config/defaults.js'\nexport {\n BASE_36_DIGITS,\n generateKeyBetween,\n generateNKeysBetween,\n} from '../config/orderable/fractional-indexing.js'\n\nexport { serverProps } from '../config/types.js'\n\nexport { isNestedRelationshipQuery } from '../database/isNestedRelationshipQuery.js'\n\nexport { type Slugify } from '../fields/baseFields/slug/index.js'\n\nexport { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js'\n\nexport {\n fieldAffectsData,\n fieldHasMaxDepth,\n fieldHasSubFields,\n fieldIsArrayType,\n fieldIsBlockType,\n fieldIsGroupType,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n fieldIsPresentationalOnly,\n fieldIsSidebar,\n fieldIsVirtual,\n fieldShouldBeLocalized,\n fieldSupportsMany,\n groupHasName,\n optionIsObject,\n optionIsValue,\n optionsAreObjects,\n tabHasName,\n valueIsValueWithRelation,\n} from '../fields/config/types.js'\nexport { getFieldPaths } from '../fields/getFieldPaths.js'\n\nexport * from '../fields/validations.js'\n\nexport type {\n FolderBreadcrumb,\n FolderDocumentItemKey,\n FolderEnabledColection,\n FolderInterface,\n FolderOrDocument,\n GetFolderDataResult,\n Subfolder,\n} from '../folders/types.js'\nexport { buildFolderWhereConstraints } from '../folders/utils/buildFolderWhereConstraints.js'\nexport { formatFolderOrDocumentItem } from '../folders/utils/formatFolderOrDocumentItem.js'\n\nexport { PREFERENCE_KEYS } from '../preferences/keys.js'\n\nexport { validOperators, validOperatorSet } from '../types/constants.js'\nexport { formatFilesize } from '../uploads/formatFilesize.js'\nexport {\n getSanitizedUploadFilename,\n isSvgUpload,\n isXmlUpload,\n uploadRequiresServerValidation,\n} from '../uploads/getFileTypeIdentity.js'\nexport { isImage } from '../uploads/isImage.js'\nexport { appendUploadSelectFields } from '../utilities/appendUploadSelectFields.js'\n\nexport { applyLocaleFiltering } from '../utilities/applyLocaleFiltering.js'\n\nexport { combineWhereConstraints } from '../utilities/combineWhereConstraints.js'\nexport {\n deepCopyObject,\n deepCopyObjectComplex,\n deepCopyObjectSimple,\n deepCopyObjectSimpleWithoutReactComponents,\n} from '../utilities/deepCopyObject.js'\n\nexport {\n deepMerge,\n deepMergeWithCombinedArrays,\n deepMergeWithReactComponents,\n deepMergeWithSourceArrays,\n} from '../utilities/deepMerge.js'\n\nexport { extractID } from '../utilities/extractID.js'\n\nexport {\n expandOwnDottedKey,\n hasUnsupportedFieldPathSegment,\n setOwnProperty,\n} from '../utilities/fieldPath.js'\nexport { flattenAllFields } from '../utilities/flattenAllFields.js'\nexport { flattenTopLevelFields } from '../utilities/flattenTopLevelFields.js'\nexport { formatAdminURL, stripTrailingSlash } from '../utilities/formatAdminURL.js'\nexport { formatLabels, toWords } from '../utilities/formatLabels.js'\nexport { getBestFitFromSizes } from '../utilities/getBestFitFromSizes.js'\nexport { getDataByPath } from '../utilities/getDataByPath.js'\nexport { getFieldPermissions } from '../utilities/getFieldPermissions.js'\n\nexport { getObjectDotNotation } from '../utilities/getObjectDotNotation.js'\n\nexport { getSafeRedirect } from '../utilities/getSafeRedirect.js'\n\nexport { getSelectMode } from '../utilities/getSelectMode.js'\n\nexport { getSiblingData } from '../utilities/getSiblingData.js'\n\nexport { getUniqueListBy } from '../utilities/getUniqueListBy.js'\n\nexport {\n getAutosaveInterval,\n getVersionsMax,\n hasAutosaveEnabled,\n hasDraftsEnabled,\n hasDraftValidationEnabled,\n hasLocalizeStatusEnabled,\n hasScheduledPublishEnabled,\n} from '../utilities/getVersionsConfig.js'\n\nexport { isNextBuild } from '../utilities/isNextBuild.js'\n\nexport { isNumber } from '../utilities/isNumber.js'\n\nexport { isPlainObject } from '../utilities/isPlainObject.js'\n\nexport {\n isReactClientComponent,\n isReactComponentOrFunction,\n isReactServerComponentOrFunction,\n} from '../utilities/isReactComponent.js'\n\nexport {\n hoistQueryParamsToAnd,\n mergeListSearchAndWhere,\n} from '../utilities/mergeListSearchAndWhere.js'\n\nexport { reduceFieldsToValues } from '../utilities/reduceFieldsToValues.js'\n\nexport { sanitizeFilename } from '../utilities/sanitizeFilename.js'\n\nexport { sanitizeUrl } from '../utilities/sanitizeUrl.js'\n\nexport { sanitizeUserDataForEmail } from '../utilities/sanitizeUserDataForEmail.js'\n\nexport { setsAreEqual } from '../utilities/setsAreEqual.js'\n\nexport { slugify } from '../utilities/slugify.js'\n\nexport { toKebabCase } from '../utilities/toKebabCase.js'\n\nexport {\n transformColumnsToPreferences,\n transformColumnsToSearchParams,\n} from '../utilities/transformColumnPreferences.js'\n\nexport { transformWhereQuery } from '../utilities/transformWhereQuery.js'\nexport { unflatten } from '../utilities/unflatten.js'\nexport { validateMimeType } from '../utilities/validateMimeType.js'\nexport { validateWhereQuery } from '../utilities/validateWhereQuery.js'\nexport { wait } from '../utilities/wait.js'\nexport { wordBoundariesRegex } from '../utilities/wordBoundariesRegex.js'\nexport { versionDefaults } from '../versions/defaults.js'\n\nexport { deepMergeSimple } from '@payloadcms/translations/utilities'\n"],"names":["generateCookie","generateExpiredPayloadCookie","generatePayloadCookie","getCookieExpiration","parseCookies","getLoginOptions","addSessionToUser","removeExpiredSessions","getFromImportMap","parsePayloadComponent","defaults","collectionDefaults","BASE_36_DIGITS","generateKeyBetween","generateNKeysBetween","serverProps","isNestedRelationshipQuery","defaultTimezones","fieldAffectsData","fieldHasMaxDepth","fieldHasSubFields","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","fieldIsPresentationalOnly","fieldIsSidebar","fieldIsVirtual","fieldShouldBeLocalized","fieldSupportsMany","groupHasName","optionIsObject","optionIsValue","optionsAreObjects","tabHasName","valueIsValueWithRelation","getFieldPaths","buildFolderWhereConstraints","formatFolderOrDocumentItem","PREFERENCE_KEYS","validOperators","validOperatorSet","formatFilesize","getSanitizedUploadFilename","isSvgUpload","isXmlUpload","uploadRequiresServerValidation","isImage","appendUploadSelectFields","applyLocaleFiltering","combineWhereConstraints","deepCopyObject","deepCopyObjectComplex","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","deepMerge","deepMergeWithCombinedArrays","deepMergeWithReactComponents","deepMergeWithSourceArrays","extractID","expandOwnDottedKey","hasUnsupportedFieldPathSegment","setOwnProperty","flattenAllFields","flattenTopLevelFields","formatAdminURL","stripTrailingSlash","formatLabels","toWords","getBestFitFromSizes","getDataByPath","getFieldPermissions","getObjectDotNotation","getSafeRedirect","getSelectMode","getSiblingData","getUniqueListBy","getAutosaveInterval","getVersionsMax","hasAutosaveEnabled","hasDraftsEnabled","hasDraftValidationEnabled","hasLocalizeStatusEnabled","hasScheduledPublishEnabled","isNextBuild","isNumber","isPlainObject","isReactClientComponent","isReactComponentOrFunction","isReactServerComponentOrFunction","hoistQueryParamsToAnd","mergeListSearchAndWhere","reduceFieldsToValues","sanitizeFilename","sanitizeUrl","sanitizeUserDataForEmail","setsAreEqual","slugify","toKebabCase","transformColumnsToPreferences","transformColumnsToSearchParams","transformWhereQuery","unflatten","validateMimeType","validateWhereQuery","wait","wordBoundariesRegex","versionDefaults","deepMergeSimple"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ const slugify = ({ customSlugify, data, req, valueToSlugify })=>{
|
|
|
17
17
|
*/ export const generateSlug = ({ slugFieldName, slugify: customSlugify, useAsSlug })=>async ({ collection, data, global, operation, originalDoc, req, value: isChecked })=>{
|
|
18
18
|
if (operation === 'create') {
|
|
19
19
|
if (data) {
|
|
20
|
-
data[slugFieldName] = slugify({
|
|
20
|
+
data[slugFieldName] = await slugify({
|
|
21
21
|
customSlugify,
|
|
22
22
|
data,
|
|
23
23
|
req,
|
|
@@ -36,7 +36,7 @@ const slugify = ({ customSlugify, data, req, valueToSlugify })=>{
|
|
|
36
36
|
if (!hasAutosaveEnabled(collection || global)) {
|
|
37
37
|
// We can generate the slug at this point
|
|
38
38
|
if (data) {
|
|
39
|
-
data[slugFieldName] = slugify({
|
|
39
|
+
data[slugFieldName] = await slugify({
|
|
40
40
|
customSlugify,
|
|
41
41
|
data,
|
|
42
42
|
req,
|
|
@@ -53,7 +53,7 @@ const slugify = ({ customSlugify, data, req, valueToSlugify })=>{
|
|
|
53
53
|
if (data) {
|
|
54
54
|
// If the fallback is an empty string, we want the slug to return to `null`
|
|
55
55
|
// This will ensure that live preview conditions continue to run as expected
|
|
56
|
-
data[slugFieldName] = data?.[useAsSlug] ? slugify({
|
|
56
|
+
data[slugFieldName] = data?.[useAsSlug] ? await slugify({
|
|
57
57
|
customSlugify,
|
|
58
58
|
data,
|
|
59
59
|
req,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/baseFields/slug/generateSlug.ts"],"sourcesContent":["import type { PayloadRequest } from '../../../types/index.js'\nimport type { FieldHook } from '../../config/types.js'\nimport type { SlugFieldArgs, Slugify } from './index.js'\n\nimport { hasAutosaveEnabled } from '../../../utilities/getVersionsConfig.js'\nimport { slugify as defaultSlugify } from '../../../utilities/slugify.js'\nimport { countVersions } from './countVersions.js'\n\ntype HookArgs = {\n slugFieldName: NonNullable<SlugFieldArgs['name']>\n} & Pick<SlugFieldArgs, 'slugify'> &\n Required<Pick<SlugFieldArgs, 'useAsSlug'>>\n\nconst slugify = ({\n customSlugify,\n data,\n req,\n valueToSlugify,\n}: {\n customSlugify?: Slugify\n data: Record<string, unknown>\n req: PayloadRequest\n valueToSlugify?: string\n}) => {\n if (customSlugify) {\n return customSlugify({ data, req, valueToSlugify })\n }\n\n return defaultSlugify(valueToSlugify)\n}\n\n/**\n * This is a `BeforeChange` field hook used to auto-generate the `slug` field.\n * See `slugField` for more details.\n */\nexport const generateSlug =\n ({ slugFieldName, slugify: customSlugify, useAsSlug }: HookArgs): FieldHook =>\n async ({ collection, data, global, operation, originalDoc, req, value: isChecked }) => {\n if (operation === 'create') {\n if (data) {\n data[slugFieldName] = slugify({\n customSlugify,\n data,\n req,\n // Ensure user-defined slugs are not overwritten during create\n // Use a generic falsy check here to include empty strings\n valueToSlugify: data?.[slugFieldName] || data?.[useAsSlug],\n })\n }\n\n return Boolean(!data?.[slugFieldName])\n }\n\n if (operation === 'update') {\n // Early return to avoid additional processing\n if (!isChecked) {\n return false\n }\n\n if (!hasAutosaveEnabled(collection || global!)) {\n // We can generate the slug at this point\n if (data) {\n data[slugFieldName] = slugify({\n customSlugify,\n data,\n req,\n valueToSlugify: data?.[useAsSlug],\n })\n }\n\n return Boolean(!data?.[slugFieldName])\n } else {\n // If we're publishing, we can avoid querying as we can safely assume we've exceeded the version threshold (2)\n const isPublishing = data?._status === 'published'\n\n // Ensure the user can take over the generated slug themselves without it ever being overridden back\n const userOverride = data?.[slugFieldName] !== originalDoc?.[slugFieldName]\n\n if (!userOverride) {\n if (data) {\n // If the fallback is an empty string, we want the slug to return to `null`\n // This will ensure that live preview conditions continue to run as expected\n data[slugFieldName] = data?.[useAsSlug]\n ? slugify({\n customSlugify,\n data,\n req,\n valueToSlugify: data?.[useAsSlug],\n })\n : null\n }\n }\n\n if (isPublishing || userOverride) {\n return false\n }\n\n // Important: ensure `countVersions` is not called unnecessarily often\n // That is why this is buried beneath all these conditions\n const versionCount = await countVersions({\n collectionSlug: collection?.slug,\n globalSlug: global?.slug,\n parentID: originalDoc?.id,\n req,\n })\n\n if (versionCount <= 2) {\n return true\n } else {\n return false\n }\n }\n }\n }\n"],"names":["hasAutosaveEnabled","slugify","defaultSlugify","countVersions","customSlugify","data","req","valueToSlugify","generateSlug","slugFieldName","useAsSlug","collection","global","operation","originalDoc","value","isChecked","Boolean","isPublishing","_status","userOverride","versionCount","collectionSlug","slug","globalSlug","parentID","id"],"mappings":"AAIA,SAASA,kBAAkB,QAAQ,0CAAyC;AAC5E,SAASC,WAAWC,cAAc,QAAQ,gCAA+B;AACzE,SAASC,aAAa,QAAQ,qBAAoB;AAOlD,MAAMF,UAAU,CAAC,EACfG,aAAa,EACbC,IAAI,EACJC,GAAG,EACHC,cAAc,EAMf;IACC,IAAIH,eAAe;QACjB,OAAOA,cAAc;YAAEC;YAAMC;YAAKC;QAAe;IACnD;IAEA,OAAOL,eAAeK;AACxB;AAEA;;;CAGC,GACD,OAAO,MAAMC,eACX,CAAC,EAAEC,aAAa,EAAER,SAASG,aAAa,EAAEM,SAAS,EAAY,GAC/D,OAAO,EAAEC,UAAU,EAAEN,IAAI,EAAEO,MAAM,EAAEC,SAAS,EAAEC,WAAW,EAAER,GAAG,EAAES,OAAOC,SAAS,EAAE;QAChF,IAAIH,cAAc,UAAU;YAC1B,IAAIR,MAAM;gBACRA,IAAI,CAACI,cAAc,
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/baseFields/slug/generateSlug.ts"],"sourcesContent":["import type { PayloadRequest } from '../../../types/index.js'\nimport type { FieldHook } from '../../config/types.js'\nimport type { SlugFieldArgs, Slugify } from './index.js'\n\nimport { hasAutosaveEnabled } from '../../../utilities/getVersionsConfig.js'\nimport { slugify as defaultSlugify } from '../../../utilities/slugify.js'\nimport { countVersions } from './countVersions.js'\n\ntype HookArgs = {\n slugFieldName: NonNullable<SlugFieldArgs['name']>\n} & Pick<SlugFieldArgs, 'slugify'> &\n Required<Pick<SlugFieldArgs, 'useAsSlug'>>\n\nconst slugify = ({\n customSlugify,\n data,\n req,\n valueToSlugify,\n}: {\n customSlugify?: Slugify\n data: Record<string, unknown>\n req: PayloadRequest\n valueToSlugify?: string\n}) => {\n if (customSlugify) {\n return customSlugify({ data, req, valueToSlugify })\n }\n\n return defaultSlugify(valueToSlugify)\n}\n\n/**\n * This is a `BeforeChange` field hook used to auto-generate the `slug` field.\n * See `slugField` for more details.\n */\nexport const generateSlug =\n ({ slugFieldName, slugify: customSlugify, useAsSlug }: HookArgs): FieldHook =>\n async ({ collection, data, global, operation, originalDoc, req, value: isChecked }) => {\n if (operation === 'create') {\n if (data) {\n data[slugFieldName] = await slugify({\n customSlugify,\n data,\n req,\n // Ensure user-defined slugs are not overwritten during create\n // Use a generic falsy check here to include empty strings\n valueToSlugify: data?.[slugFieldName] || data?.[useAsSlug],\n })\n }\n\n return Boolean(!data?.[slugFieldName])\n }\n\n if (operation === 'update') {\n // Early return to avoid additional processing\n if (!isChecked) {\n return false\n }\n\n if (!hasAutosaveEnabled(collection || global!)) {\n // We can generate the slug at this point\n if (data) {\n data[slugFieldName] = await slugify({\n customSlugify,\n data,\n req,\n valueToSlugify: data?.[useAsSlug],\n })\n }\n\n return Boolean(!data?.[slugFieldName])\n } else {\n // If we're publishing, we can avoid querying as we can safely assume we've exceeded the version threshold (2)\n const isPublishing = data?._status === 'published'\n\n // Ensure the user can take over the generated slug themselves without it ever being overridden back\n const userOverride = data?.[slugFieldName] !== originalDoc?.[slugFieldName]\n\n if (!userOverride) {\n if (data) {\n // If the fallback is an empty string, we want the slug to return to `null`\n // This will ensure that live preview conditions continue to run as expected\n data[slugFieldName] = data?.[useAsSlug]\n ? await slugify({\n customSlugify,\n data,\n req,\n valueToSlugify: data?.[useAsSlug],\n })\n : null\n }\n }\n\n if (isPublishing || userOverride) {\n return false\n }\n\n // Important: ensure `countVersions` is not called unnecessarily often\n // That is why this is buried beneath all these conditions\n const versionCount = await countVersions({\n collectionSlug: collection?.slug,\n globalSlug: global?.slug,\n parentID: originalDoc?.id,\n req,\n })\n\n if (versionCount <= 2) {\n return true\n } else {\n return false\n }\n }\n }\n }\n"],"names":["hasAutosaveEnabled","slugify","defaultSlugify","countVersions","customSlugify","data","req","valueToSlugify","generateSlug","slugFieldName","useAsSlug","collection","global","operation","originalDoc","value","isChecked","Boolean","isPublishing","_status","userOverride","versionCount","collectionSlug","slug","globalSlug","parentID","id"],"mappings":"AAIA,SAASA,kBAAkB,QAAQ,0CAAyC;AAC5E,SAASC,WAAWC,cAAc,QAAQ,gCAA+B;AACzE,SAASC,aAAa,QAAQ,qBAAoB;AAOlD,MAAMF,UAAU,CAAC,EACfG,aAAa,EACbC,IAAI,EACJC,GAAG,EACHC,cAAc,EAMf;IACC,IAAIH,eAAe;QACjB,OAAOA,cAAc;YAAEC;YAAMC;YAAKC;QAAe;IACnD;IAEA,OAAOL,eAAeK;AACxB;AAEA;;;CAGC,GACD,OAAO,MAAMC,eACX,CAAC,EAAEC,aAAa,EAAER,SAASG,aAAa,EAAEM,SAAS,EAAY,GAC/D,OAAO,EAAEC,UAAU,EAAEN,IAAI,EAAEO,MAAM,EAAEC,SAAS,EAAEC,WAAW,EAAER,GAAG,EAAES,OAAOC,SAAS,EAAE;QAChF,IAAIH,cAAc,UAAU;YAC1B,IAAIR,MAAM;gBACRA,IAAI,CAACI,cAAc,GAAG,MAAMR,QAAQ;oBAClCG;oBACAC;oBACAC;oBACA,8DAA8D;oBAC9D,0DAA0D;oBAC1DC,gBAAgBF,MAAM,CAACI,cAAc,IAAIJ,MAAM,CAACK,UAAU;gBAC5D;YACF;YAEA,OAAOO,QAAQ,CAACZ,MAAM,CAACI,cAAc;QACvC;QAEA,IAAII,cAAc,UAAU;YAC1B,8CAA8C;YAC9C,IAAI,CAACG,WAAW;gBACd,OAAO;YACT;YAEA,IAAI,CAAChB,mBAAmBW,cAAcC,SAAU;gBAC9C,yCAAyC;gBACzC,IAAIP,MAAM;oBACRA,IAAI,CAACI,cAAc,GAAG,MAAMR,QAAQ;wBAClCG;wBACAC;wBACAC;wBACAC,gBAAgBF,MAAM,CAACK,UAAU;oBACnC;gBACF;gBAEA,OAAOO,QAAQ,CAACZ,MAAM,CAACI,cAAc;YACvC,OAAO;gBACL,8GAA8G;gBAC9G,MAAMS,eAAeb,MAAMc,YAAY;gBAEvC,oGAAoG;gBACpG,MAAMC,eAAef,MAAM,CAACI,cAAc,KAAKK,aAAa,CAACL,cAAc;gBAE3E,IAAI,CAACW,cAAc;oBACjB,IAAIf,MAAM;wBACR,2EAA2E;wBAC3E,4EAA4E;wBAC5EA,IAAI,CAACI,cAAc,GAAGJ,MAAM,CAACK,UAAU,GACnC,MAAMT,QAAQ;4BACZG;4BACAC;4BACAC;4BACAC,gBAAgBF,MAAM,CAACK,UAAU;wBACnC,KACA;oBACN;gBACF;gBAEA,IAAIQ,gBAAgBE,cAAc;oBAChC,OAAO;gBACT;gBAEA,sEAAsE;gBACtE,0DAA0D;gBAC1D,MAAMC,eAAe,MAAMlB,cAAc;oBACvCmB,gBAAgBX,YAAYY;oBAC5BC,YAAYZ,QAAQW;oBACpBE,UAAUX,aAAaY;oBACvBpB;gBACF;gBAEA,IAAIe,gBAAgB,GAAG;oBACrB,OAAO;gBACT,OAAO;oBACL,OAAO;gBACT;YACF;QACF;IACF,EAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { generateSlug } from './generateSlug.js';
|
|
3
|
+
describe('generateSlug', ()=>{
|
|
4
|
+
it('should await a custom async slugify function', async ()=>{
|
|
5
|
+
const data = {
|
|
6
|
+
title: 'Async Slug'
|
|
7
|
+
};
|
|
8
|
+
const hook = generateSlug({
|
|
9
|
+
slugFieldName: 'slug',
|
|
10
|
+
slugify: async ({ valueToSlugify })=>String(valueToSlugify).toLowerCase().replace(' ', '-'),
|
|
11
|
+
useAsSlug: 'title'
|
|
12
|
+
});
|
|
13
|
+
await hook({
|
|
14
|
+
data,
|
|
15
|
+
operation: 'create',
|
|
16
|
+
req: {}
|
|
17
|
+
});
|
|
18
|
+
expect(data.slug).toBe('async-slug');
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=generateSlug.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/baseFields/slug/generateSlug.spec.ts"],"sourcesContent":["import type { PayloadRequest } from '../../../types/index.js'\n\nimport { describe, expect, it } from 'vitest'\n\nimport { generateSlug } from './generateSlug.js'\n\ndescribe('generateSlug', () => {\n it('should await a custom async slugify function', async () => {\n const data: Record<string, unknown> = {\n title: 'Async Slug',\n }\n const hook = generateSlug({\n slugFieldName: 'slug',\n slugify: async ({ valueToSlugify }) => String(valueToSlugify).toLowerCase().replace(' ', '-'),\n useAsSlug: 'title',\n })\n\n await hook({\n data,\n operation: 'create',\n req: {} as PayloadRequest,\n } as Parameters<typeof hook>[0])\n\n expect(data.slug).toBe('async-slug')\n })\n})\n"],"names":["describe","expect","it","generateSlug","data","title","hook","slugFieldName","slugify","valueToSlugify","String","toLowerCase","replace","useAsSlug","operation","req","slug","toBe"],"mappings":"AAEA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,YAAY,QAAQ,oBAAmB;AAEhDH,SAAS,gBAAgB;IACvBE,GAAG,gDAAgD;QACjD,MAAME,OAAgC;YACpCC,OAAO;QACT;QACA,MAAMC,OAAOH,aAAa;YACxBI,eAAe;YACfC,SAAS,OAAO,EAAEC,cAAc,EAAE,GAAKC,OAAOD,gBAAgBE,WAAW,GAAGC,OAAO,CAAC,KAAK;YACzFC,WAAW;QACb;QAEA,MAAMP,KAAK;YACTF;YACAU,WAAW;YACXC,KAAK,CAAC;QACR;QAEAd,OAAOG,KAAKY,IAAI,EAAEC,IAAI,CAAC;IACzB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,wBAAwB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cACnE,SAAS,KACd,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"findVersionByID.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/findVersionByID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAY/D,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAA;AAEnD,eAAO,MAAM,wBAAwB,GAAU,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,cACnE,SAAS,KACd,OAAO,CAAC,CAAC,CA+IX,CAAA"}
|
|
@@ -22,6 +22,10 @@ export const findVersionByIDOperation = async (args)=>{
|
|
|
22
22
|
if (accessResults === false) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
|
+
const isValidID = typeof id === 'string' && id.length > 0 || typeof id === 'number' && Number.isFinite(id);
|
|
26
|
+
if (!isValidID) {
|
|
27
|
+
throw new NotFound(req.t);
|
|
28
|
+
}
|
|
25
29
|
const hasWhereAccess = typeof accessResults === 'object';
|
|
26
30
|
const select = sanitizeSelect({
|
|
27
31
|
fields: buildVersionGlobalFields(payload.config, globalConfig, true),
|
|
@@ -46,9 +50,6 @@ export const findVersionByIDOperation = async (args)=>{
|
|
|
46
50
|
// /////////////////////////////////////
|
|
47
51
|
// Find by ID
|
|
48
52
|
// /////////////////////////////////////
|
|
49
|
-
if (!findGlobalVersionsArgs.where?.and?.[0]?.id) {
|
|
50
|
-
throw new NotFound(req.t);
|
|
51
|
-
}
|
|
52
53
|
const { docs: results } = await payload.db.findGlobalVersions(findGlobalVersionsArgs);
|
|
53
54
|
if (!results || results?.length === 0) {
|
|
54
55
|
if (!disableErrors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/findVersionByID.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { FindGlobalVersionsArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js'\nimport { getQueryDraftsSelect } from '../../versions/drafts/getQueryDraftsSelect.js'\n\nexport type Arguments = {\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n globalConfig: SanitizedGlobalConfig\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n} & Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findVersionByIDOperation = async <T extends TypeWithVersion<T> = any>(\n args: Arguments,\n): Promise<T> => {\n const {\n id,\n currentDepth,\n depth,\n disableErrors,\n globalConfig,\n overrideAccess,\n populate,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, globalConfig.access.readVersions)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResults === false) {\n return null!\n }\n\n const hasWhereAccess = typeof accessResults === 'object'\n\n const select = sanitizeSelect({\n fields: buildVersionGlobalFields(payload.config, globalConfig, true),\n forceSelect: getQueryDraftsSelect({ select: globalConfig.forceSelect }),\n select: incomingSelect,\n versions: true,\n })\n\n const findGlobalVersionsArgs: FindGlobalVersionsArgs = {\n global: globalConfig.slug,\n limit: 1,\n locale: locale!,\n req,\n select,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/findVersionByID.ts"],"sourcesContent":["import type { FindOptions } from '../../collections/operations/local/find.js'\nimport type { FindGlobalVersionsArgs } from '../../database/types.js'\nimport type { PayloadRequest, PopulateType, SelectType } from '../../types/index.js'\nimport type { TypeWithVersion } from '../../versions/types.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { executeAccess } from '../../auth/executeAccess.js'\nimport { combineQueries } from '../../database/combineQueries.js'\nimport { Forbidden, NotFound } from '../../errors/index.js'\nimport { afterRead } from '../../fields/hooks/afterRead/index.js'\nimport { deepCopyObjectSimple } from '../../utilities/deepCopyObject.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\nimport { sanitizeSelect } from '../../utilities/sanitizeSelect.js'\nimport { buildVersionGlobalFields } from '../../versions/buildGlobalFields.js'\nimport { getQueryDraftsSelect } from '../../versions/drafts/getQueryDraftsSelect.js'\n\nexport type Arguments = {\n currentDepth?: number\n depth?: number\n disableErrors?: boolean\n globalConfig: SanitizedGlobalConfig\n id: number | string\n overrideAccess?: boolean\n populate?: PopulateType\n req: PayloadRequest\n showHiddenFields?: boolean\n} & Pick<FindOptions<string, SelectType>, 'select'>\n\nexport const findVersionByIDOperation = async <T extends TypeWithVersion<T> = any>(\n args: Arguments,\n): Promise<T> => {\n const {\n id,\n currentDepth,\n depth,\n disableErrors,\n globalConfig,\n overrideAccess,\n populate,\n req: { fallbackLocale, locale, payload },\n req,\n select: incomingSelect,\n showHiddenFields,\n } = args\n\n try {\n // /////////////////////////////////////\n // Access\n // /////////////////////////////////////\n\n const accessResults = !overrideAccess\n ? await executeAccess({ id, disableErrors, req }, globalConfig.access.readVersions)\n : true\n\n // If errors are disabled, and access returns false, return null\n if (accessResults === false) {\n return null!\n }\n\n const isValidID =\n (typeof id === 'string' && id.length > 0) || (typeof id === 'number' && Number.isFinite(id))\n\n if (!isValidID) {\n throw new NotFound(req.t)\n }\n\n const hasWhereAccess = typeof accessResults === 'object'\n\n const select = sanitizeSelect({\n fields: buildVersionGlobalFields(payload.config, globalConfig, true),\n forceSelect: getQueryDraftsSelect({ select: globalConfig.forceSelect }),\n select: incomingSelect,\n versions: true,\n })\n\n const findGlobalVersionsArgs: FindGlobalVersionsArgs = {\n global: globalConfig.slug,\n limit: 1,\n locale: locale!,\n req,\n select,\n where: combineQueries({ id: { equals: id } }, accessResults),\n }\n\n // /////////////////////////////////////\n // Find by ID\n // /////////////////////////////////////\n\n const { docs: results } = await payload.db.findGlobalVersions(findGlobalVersionsArgs)\n if (!results || results?.length === 0) {\n if (!disableErrors) {\n if (!hasWhereAccess) {\n throw new NotFound(req.t)\n }\n if (hasWhereAccess) {\n throw new Forbidden(req.t)\n }\n }\n\n return null!\n }\n\n // Clone the result - it may have come back memoized\n let result: any = deepCopyObjectSimple(results[0])\n\n if (!result.version) {\n result.version = {}\n }\n\n // Patch globalType onto version doc\n result.version.globalType = globalConfig.slug\n\n // /////////////////////////////////////\n // beforeRead - Collection\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.beforeRead?.length) {\n for (const hook of globalConfig.hooks.beforeRead) {\n result =\n (await hook({\n context: req.context,\n doc: result.version,\n global: globalConfig,\n overrideAccess,\n req,\n })) || result.version\n }\n }\n\n // /////////////////////////////////////\n // afterRead - Fields\n // /////////////////////////////////////\n\n result.version = await afterRead({\n collection: null,\n context: req.context,\n currentDepth,\n depth: depth!,\n doc: result.version,\n draft: undefined!,\n fallbackLocale: fallbackLocale!,\n global: globalConfig,\n locale: locale!,\n overrideAccess: overrideAccess!,\n populate,\n req,\n select: typeof select?.version === 'object' ? select.version : undefined,\n showHiddenFields: showHiddenFields!,\n })\n\n // /////////////////////////////////////\n // afterRead - Global\n // /////////////////////////////////////\n\n if (globalConfig.hooks?.afterRead?.length) {\n for (const hook of globalConfig.hooks.afterRead) {\n result.version =\n (await hook({\n context: req.context,\n doc: result.version,\n global: globalConfig,\n overrideAccess,\n query: findGlobalVersionsArgs.where,\n req,\n })) || result.version\n }\n }\n\n return result\n } catch (error: unknown) {\n await killTransaction(req)\n throw error\n }\n}\n"],"names":["executeAccess","combineQueries","Forbidden","NotFound","afterRead","deepCopyObjectSimple","killTransaction","sanitizeSelect","buildVersionGlobalFields","getQueryDraftsSelect","findVersionByIDOperation","args","id","currentDepth","depth","disableErrors","globalConfig","overrideAccess","populate","req","fallbackLocale","locale","payload","select","incomingSelect","showHiddenFields","accessResults","access","readVersions","isValidID","length","Number","isFinite","t","hasWhereAccess","fields","config","forceSelect","versions","findGlobalVersionsArgs","global","slug","limit","where","equals","docs","results","db","findGlobalVersions","result","version","globalType","hooks","beforeRead","hook","context","doc","collection","draft","undefined","query","error"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateJob.d.ts","sourceRoot":"","sources":["../../../src/queues/utilities/updateJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"updateJob.d.ts","sourceRoot":"","sources":["../../../src/queues/utilities/updateJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAKvE,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,KAAK,SAAS,GAAG;IACf,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,KAAK,WAAW,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAA;AAEpD;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,4BAKxD;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,EAC/B,EAAE,EACF,IAAI,EACJ,KAAK,EACL,kBAAkB,EAClB,KAAK,EAAE,QAAQ,EACf,GAAG,EACH,SAAS,EACT,IAAI,EACJ,KAAK,EAAE,QAAQ,GAChB,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CA4ErC"}
|
|
@@ -20,6 +20,21 @@ import { getCurrentDate } from './getCurrentDate.js';
|
|
|
20
20
|
}
|
|
21
21
|
} : whereArg;
|
|
22
22
|
if (depth || req.payload.config?.jobs?.runHooks) {
|
|
23
|
+
if (id && data.log && '$push' in data.log) {
|
|
24
|
+
const job = await req.payload.findByID({
|
|
25
|
+
id,
|
|
26
|
+
collection: jobsCollectionSlug,
|
|
27
|
+
depth: 0,
|
|
28
|
+
req
|
|
29
|
+
});
|
|
30
|
+
data = {
|
|
31
|
+
...data,
|
|
32
|
+
log: [
|
|
33
|
+
...job.log ?? [],
|
|
34
|
+
data.log.$push
|
|
35
|
+
]
|
|
36
|
+
};
|
|
37
|
+
}
|
|
23
38
|
const result = await req.payload.update({
|
|
24
39
|
id,
|
|
25
40
|
collection: jobsCollectionSlug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/queues/utilities/updateJob.ts"],"sourcesContent":["import type { ManyOptions } from '../../collections/operations/local/update.js'\nimport type { UpdateJobsArgs } from '../../database/types.js'\nimport type { Job } from '../../index.js'\nimport type { PayloadRequest, Sort, Where } from '../../types/index.js'\n\nimport { jobAfterRead, jobsCollectionSlug } from '../config/collection.js'\nimport { getCurrentDate } from './getCurrentDate.js'\n\ntype BaseArgs = {\n data: Partial<Job>\n depth?: number\n disableTransaction?: boolean\n limit?: number\n req: PayloadRequest\n returning?: boolean\n}\n\ntype ArgsByID = {\n id: number | string\n limit?: never\n sort?: never\n where?: never\n}\n\ntype ArgsWhere = {\n id?: never\n limit?: number\n sort?: Sort\n where: Where\n}\n\ntype RunJobsArgs = (ArgsByID | ArgsWhere) & BaseArgs\n\n/**\n * Convenience method for updateJobs by id\n */\nexport async function updateJob(args: ArgsByID & BaseArgs) {\n const result = await updateJobs(args)\n if (result) {\n return result[0]\n }\n}\n\n/**\n * Helper for updating jobs in the most performant way possible.\n * Handles deciding whether it can used direct db methods or not, and if so,\n * manually runs the afterRead hook that populates the `taskStatus` property.\n */\nexport async function updateJobs({\n id,\n data,\n depth,\n disableTransaction,\n limit: limitArg,\n req,\n returning,\n sort,\n where: whereArg,\n}: RunJobsArgs): Promise<Job[] | null> {\n const limit = id ? 1 : limitArg\n const where = id ? { id: { equals: id } } : whereArg\n\n if (depth || req.payload.config?.jobs?.runHooks) {\n const result = await req.payload.update({\n id,\n collection: jobsCollectionSlug,\n data,\n depth,\n disableTransaction,\n limit,\n req,\n where,\n } as ManyOptions<any, any>)\n if (returning === false || !result) {\n return null\n }\n return result.docs as Job[]\n }\n\n const jobReq = {\n transactionID:\n req.payload.db.name !== 'mongoose'\n ? ((await req.payload.db.beginTransaction()) as string)\n : undefined,\n }\n\n if (typeof data.updatedAt === 'undefined') {\n // Ensure updatedAt date is always updated\n data.updatedAt = getCurrentDate().toISOString()\n }\n\n const args: UpdateJobsArgs = id\n ? {\n id,\n data,\n req: jobReq,\n returning,\n }\n : {\n data,\n limit,\n req: jobReq,\n returning,\n sort,\n where: where as Where,\n }\n\n const updatedJobs: Job[] | null = await req.payload.db.updateJobs(args)\n\n if (req.payload.db.name !== 'mongoose' && jobReq.transactionID) {\n await req.payload.db.commitTransaction(jobReq.transactionID)\n }\n\n if (returning === false || !updatedJobs?.length) {\n return null\n }\n\n return updatedJobs.map((updatedJob) => {\n return jobAfterRead({\n config: req.payload.config,\n doc: updatedJob,\n })\n })\n}\n"],"names":["jobAfterRead","jobsCollectionSlug","getCurrentDate","updateJob","args","result","updateJobs","id","data","depth","disableTransaction","limit","limitArg","req","returning","sort","where","whereArg","equals","payload","config","jobs","runHooks","
|
|
1
|
+
{"version":3,"sources":["../../../src/queues/utilities/updateJob.ts"],"sourcesContent":["import type { ManyOptions } from '../../collections/operations/local/update.js'\nimport type { UpdateJobsArgs } from '../../database/types.js'\nimport type { Job, JobLog } from '../../index.js'\nimport type { PayloadRequest, Sort, Where } from '../../types/index.js'\n\nimport { jobAfterRead, jobsCollectionSlug } from '../config/collection.js'\nimport { getCurrentDate } from './getCurrentDate.js'\n\ntype BaseArgs = {\n data: Partial<Job>\n depth?: number\n disableTransaction?: boolean\n limit?: number\n req: PayloadRequest\n returning?: boolean\n}\n\ntype ArgsByID = {\n id: number | string\n limit?: never\n sort?: never\n where?: never\n}\n\ntype ArgsWhere = {\n id?: never\n limit?: number\n sort?: Sort\n where: Where\n}\n\ntype RunJobsArgs = (ArgsByID | ArgsWhere) & BaseArgs\n\n/**\n * Convenience method for updateJobs by id\n */\nexport async function updateJob(args: ArgsByID & BaseArgs) {\n const result = await updateJobs(args)\n if (result) {\n return result[0]\n }\n}\n\n/**\n * Helper for updating jobs in the most performant way possible.\n * Handles deciding whether it can used direct db methods or not, and if so,\n * manually runs the afterRead hook that populates the `taskStatus` property.\n */\nexport async function updateJobs({\n id,\n data,\n depth,\n disableTransaction,\n limit: limitArg,\n req,\n returning,\n sort,\n where: whereArg,\n}: RunJobsArgs): Promise<Job[] | null> {\n const limit = id ? 1 : limitArg\n const where = id ? { id: { equals: id } } : whereArg\n\n if (depth || req.payload.config?.jobs?.runHooks) {\n if (id && data.log && '$push' in data.log) {\n const job = await req.payload.findByID({\n id,\n collection: jobsCollectionSlug,\n depth: 0,\n req,\n })\n\n data = { ...data, log: [...(job.log ?? []), data.log.$push as JobLog] }\n }\n\n const result = await req.payload.update({\n id,\n collection: jobsCollectionSlug,\n data,\n depth,\n disableTransaction,\n limit,\n req,\n where,\n } as ManyOptions<any, any>)\n if (returning === false || !result) {\n return null\n }\n return result.docs as Job[]\n }\n\n const jobReq = {\n transactionID:\n req.payload.db.name !== 'mongoose'\n ? ((await req.payload.db.beginTransaction()) as string)\n : undefined,\n }\n\n if (typeof data.updatedAt === 'undefined') {\n // Ensure updatedAt date is always updated\n data.updatedAt = getCurrentDate().toISOString()\n }\n\n const args: UpdateJobsArgs = id\n ? {\n id,\n data,\n req: jobReq,\n returning,\n }\n : {\n data,\n limit,\n req: jobReq,\n returning,\n sort,\n where: where as Where,\n }\n\n const updatedJobs: Job[] | null = await req.payload.db.updateJobs(args)\n\n if (req.payload.db.name !== 'mongoose' && jobReq.transactionID) {\n await req.payload.db.commitTransaction(jobReq.transactionID)\n }\n\n if (returning === false || !updatedJobs?.length) {\n return null\n }\n\n return updatedJobs.map((updatedJob) => {\n return jobAfterRead({\n config: req.payload.config,\n doc: updatedJob,\n })\n })\n}\n"],"names":["jobAfterRead","jobsCollectionSlug","getCurrentDate","updateJob","args","result","updateJobs","id","data","depth","disableTransaction","limit","limitArg","req","returning","sort","where","whereArg","equals","payload","config","jobs","runHooks","log","job","findByID","collection","$push","update","docs","jobReq","transactionID","db","name","beginTransaction","undefined","updatedAt","toISOString","updatedJobs","commitTransaction","length","map","updatedJob","doc"],"mappings":"AAKA,SAASA,YAAY,EAAEC,kBAAkB,QAAQ,0BAAyB;AAC1E,SAASC,cAAc,QAAQ,sBAAqB;AA2BpD;;CAEC,GACD,OAAO,eAAeC,UAAUC,IAAyB;IACvD,MAAMC,SAAS,MAAMC,WAAWF;IAChC,IAAIC,QAAQ;QACV,OAAOA,MAAM,CAAC,EAAE;IAClB;AACF;AAEA;;;;CAIC,GACD,OAAO,eAAeC,WAAW,EAC/BC,EAAE,EACFC,IAAI,EACJC,KAAK,EACLC,kBAAkB,EAClBC,OAAOC,QAAQ,EACfC,GAAG,EACHC,SAAS,EACTC,IAAI,EACJC,OAAOC,QAAQ,EACH;IACZ,MAAMN,QAAQJ,KAAK,IAAIK;IACvB,MAAMI,QAAQT,KAAK;QAAEA,IAAI;YAAEW,QAAQX;QAAG;IAAE,IAAIU;IAE5C,IAAIR,SAASI,IAAIM,OAAO,CAACC,MAAM,EAAEC,MAAMC,UAAU;QAC/C,IAAIf,MAAMC,KAAKe,GAAG,IAAI,WAAWf,KAAKe,GAAG,EAAE;YACzC,MAAMC,MAAM,MAAMX,IAAIM,OAAO,CAACM,QAAQ,CAAC;gBACrClB;gBACAmB,YAAYzB;gBACZQ,OAAO;gBACPI;YACF;YAEAL,OAAO;gBAAE,GAAGA,IAAI;gBAAEe,KAAK;uBAAKC,IAAID,GAAG,IAAI,EAAE;oBAAGf,KAAKe,GAAG,CAACI,KAAK;iBAAW;YAAC;QACxE;QAEA,MAAMtB,SAAS,MAAMQ,IAAIM,OAAO,CAACS,MAAM,CAAC;YACtCrB;YACAmB,YAAYzB;YACZO;YACAC;YACAC;YACAC;YACAE;YACAG;QACF;QACA,IAAIF,cAAc,SAAS,CAACT,QAAQ;YAClC,OAAO;QACT;QACA,OAAOA,OAAOwB,IAAI;IACpB;IAEA,MAAMC,SAAS;QACbC,eACElB,IAAIM,OAAO,CAACa,EAAE,CAACC,IAAI,KAAK,aAClB,MAAMpB,IAAIM,OAAO,CAACa,EAAE,CAACE,gBAAgB,KACvCC;IACR;IAEA,IAAI,OAAO3B,KAAK4B,SAAS,KAAK,aAAa;QACzC,0CAA0C;QAC1C5B,KAAK4B,SAAS,GAAGlC,iBAAiBmC,WAAW;IAC/C;IAEA,MAAMjC,OAAuBG,KACzB;QACEA;QACAC;QACAK,KAAKiB;QACLhB;IACF,IACA;QACEN;QACAG;QACAE,KAAKiB;QACLhB;QACAC;QACAC,OAAOA;IACT;IAEJ,MAAMsB,cAA4B,MAAMzB,IAAIM,OAAO,CAACa,EAAE,CAAC1B,UAAU,CAACF;IAElE,IAAIS,IAAIM,OAAO,CAACa,EAAE,CAACC,IAAI,KAAK,cAAcH,OAAOC,aAAa,EAAE;QAC9D,MAAMlB,IAAIM,OAAO,CAACa,EAAE,CAACO,iBAAiB,CAACT,OAAOC,aAAa;IAC7D;IAEA,IAAIjB,cAAc,SAAS,CAACwB,aAAaE,QAAQ;QAC/C,OAAO;IACT;IAEA,OAAOF,YAAYG,GAAG,CAAC,CAACC;QACtB,OAAO1C,aAAa;YAClBoB,QAAQP,IAAIM,OAAO,CAACC,MAAM;YAC1BuB,KAAKD;QACP;IACF;AACF"}
|
|
@@ -29,5 +29,6 @@ type FormatURLArgs = ({
|
|
|
29
29
|
apiRoute: NonNullable<Config['routes']>['api'];
|
|
30
30
|
} & BaseFormatURLArgs);
|
|
31
31
|
export declare const formatAdminURL: (args: FormatURLArgs) => string;
|
|
32
|
+
export declare const stripTrailingSlash: (path: string) => string;
|
|
32
33
|
export {};
|
|
33
34
|
//# sourceMappingURL=formatAdminURL.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;GAMG;AACH,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAE7B,KAAK,aAAa,GACd,CAAC;IACC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAC/C,GAAG,iBAAiB,CAAC,CAAA;AAE1B,eAAO,MAAM,cAAc,SAAU,aAAa,KAAG,MAyBpD,CAAA"}
|
|
1
|
+
{"version":3,"file":"formatAdminURL.d.ts","sourceRoot":"","sources":["../../src/utilities/formatAdminURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;;;;GAMG;AACH,KAAK,iBAAiB,GAAG;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAE7B,KAAK,aAAa,GACd,CAAC;IACC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,GAAG,iBAAiB,CAAC,GACtB,CAAC;IACC,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAC/C,GAAG,iBAAiB,CAAC,CAAA;AAE1B,eAAO,MAAM,cAAc,SAAU,aAAa,KAAG,MAyBpD,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAMjD,CAAA"}
|
|
@@ -7,16 +7,34 @@ export const formatAdminURL = (args)=>{
|
|
|
7
7
|
path && path
|
|
8
8
|
].filter(Boolean);
|
|
9
9
|
const pathname = segments.join('') || '/';
|
|
10
|
-
const pathnameWithBase = (basePath + pathname)
|
|
10
|
+
const pathnameWithBase = stripTrailingSlash(basePath + pathname) || '/';
|
|
11
11
|
const includeBasePath = includeBasePathArg ?? (adminRoute ? false : true);
|
|
12
12
|
if (relative || !serverURL) {
|
|
13
13
|
if (includeBasePath && basePath) {
|
|
14
|
-
return pathnameWithBase;
|
|
14
|
+
return applyTrailingSlash(pathnameWithBase);
|
|
15
15
|
}
|
|
16
|
-
return pathname;
|
|
16
|
+
return applyTrailingSlash(pathname);
|
|
17
17
|
}
|
|
18
18
|
const serverURLObj = new URL(serverURL);
|
|
19
|
-
return new URL(pathnameWithBase, serverURLObj.origin).toString();
|
|
19
|
+
return applyTrailingSlash(new URL(pathnameWithBase, serverURLObj.origin).toString());
|
|
20
|
+
};
|
|
21
|
+
export const stripTrailingSlash = (path)=>{
|
|
22
|
+
if (path.length > 1 && path.endsWith('/')) {
|
|
23
|
+
return path.slice(0, -1);
|
|
24
|
+
}
|
|
25
|
+
return path;
|
|
26
|
+
};
|
|
27
|
+
const applyTrailingSlash = (url)=>{
|
|
28
|
+
if (process.env.NEXT_TRAILING_SLASH !== 'true') {
|
|
29
|
+
return url;
|
|
30
|
+
}
|
|
31
|
+
const queryIndex = url.search(/[?#]/);
|
|
32
|
+
const pathPart = queryIndex === -1 ? url : url.slice(0, queryIndex);
|
|
33
|
+
const queryPart = queryIndex === -1 ? '' : url.slice(queryIndex);
|
|
34
|
+
if (pathPart.endsWith('/')) {
|
|
35
|
+
return url;
|
|
36
|
+
}
|
|
37
|
+
return `${pathPart}/${queryPart}`;
|
|
20
38
|
};
|
|
21
39
|
|
|
22
40
|
//# sourceMappingURL=formatAdminURL.js.map
|