payload 3.0.0-beta.30 → 3.0.0-beta.31
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/admin/RichText.d.ts +4 -3
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/elements/Cell.d.ts +1 -0
- package/dist/admin/elements/Cell.d.ts.map +1 -1
- package/dist/admin/elements/Tab.d.ts +1 -0
- package/dist/admin/elements/Tab.d.ts.map +1 -1
- package/dist/admin/elements/WithServerSideProps.d.ts +1 -0
- package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -1
- package/dist/admin/forms/Error.d.ts +1 -0
- package/dist/admin/forms/Error.d.ts.map +1 -1
- package/dist/admin/forms/FieldTypes.d.ts +1 -0
- package/dist/admin/forms/FieldTypes.d.ts.map +1 -1
- package/dist/admin/forms/Label.d.ts +1 -0
- package/dist/admin/forms/Label.d.ts.map +1 -1
- package/dist/admin/views/types.d.ts +3 -2
- package/dist/admin/views/types.d.ts.map +1 -1
- package/dist/admin/views/types.js.map +1 -1
- package/dist/bin/loader/index.d.ts.map +1 -1
- package/dist/bin/loader/index.js +1 -8
- package/dist/bin/loader/index.js.map +1 -1
- package/dist/bin/loader/read-default-tsconfig.d.ts +25 -0
- package/dist/bin/loader/read-default-tsconfig.d.ts.map +1 -1
- package/dist/bin/loader/read-default-tsconfig.js +25 -1
- package/dist/bin/loader/read-default-tsconfig.js.map +1 -1
- package/dist/collections/config/client.d.ts +1 -0
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/types.d.ts +1 -0
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +2 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +3 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +12 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/exports/node.d.ts +2 -0
- package/dist/exports/node.d.ts.map +1 -1
- package/dist/exports/node.js +2 -0
- package/dist/exports/node.js.map +1 -1
- package/dist/fields/config/client.d.ts +1 -0
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/types.d.ts +6 -0
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/validations.d.ts +1 -0
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +2 -2
- package/dist/fields/validations.js.map +1 -1
- package/dist/uploads/getBaseFields.js +1 -1
- package/dist/uploads/getBaseFields.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +5 -1
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/configToJSONSchema.spec.js +96 -0
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
- package/package.json +3 -2
|
@@ -2,6 +2,7 @@ import { sanitizeConfig } from '../config/sanitize.js';
|
|
|
2
2
|
import { configToJSONSchema } from './configToJSONSchema.js';
|
|
3
3
|
describe('configToJSONSchema', ()=>{
|
|
4
4
|
it('should handle optional arrays with required fields', async ()=>{
|
|
5
|
+
// @ts-expect-error
|
|
5
6
|
const config = {
|
|
6
7
|
collections: [
|
|
7
8
|
{
|
|
@@ -63,6 +64,101 @@ describe('configToJSONSchema', ()=>{
|
|
|
63
64
|
type: 'object'
|
|
64
65
|
});
|
|
65
66
|
});
|
|
67
|
+
it('should handle tabs and named tabs with required fields', async ()=>{
|
|
68
|
+
// @ts-expect-error
|
|
69
|
+
const config = {
|
|
70
|
+
collections: [
|
|
71
|
+
{
|
|
72
|
+
fields: [
|
|
73
|
+
{
|
|
74
|
+
type: 'tabs',
|
|
75
|
+
tabs: [
|
|
76
|
+
{
|
|
77
|
+
label: 'unnamedTab',
|
|
78
|
+
fields: [
|
|
79
|
+
{
|
|
80
|
+
type: 'text',
|
|
81
|
+
name: 'fieldInUnnamedTab'
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
label: 'namedTab',
|
|
87
|
+
name: 'namedTab',
|
|
88
|
+
fields: [
|
|
89
|
+
{
|
|
90
|
+
type: 'text',
|
|
91
|
+
name: 'fieldInNamedTab'
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
label: 'namedTabWithRequired',
|
|
97
|
+
name: 'namedTabWithRequired',
|
|
98
|
+
fields: [
|
|
99
|
+
{
|
|
100
|
+
type: 'text',
|
|
101
|
+
name: 'fieldInNamedTab',
|
|
102
|
+
required: true
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
slug: 'test',
|
|
110
|
+
timestamps: false
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
};
|
|
114
|
+
const sanitizedConfig = await sanitizeConfig(config);
|
|
115
|
+
const schema = configToJSONSchema(sanitizedConfig, 'text');
|
|
116
|
+
expect(schema?.definitions?.test).toStrictEqual({
|
|
117
|
+
additionalProperties: false,
|
|
118
|
+
properties: {
|
|
119
|
+
id: {
|
|
120
|
+
type: 'string'
|
|
121
|
+
},
|
|
122
|
+
fieldInUnnamedTab: {
|
|
123
|
+
type: [
|
|
124
|
+
'string',
|
|
125
|
+
'null'
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
namedTab: {
|
|
129
|
+
additionalProperties: false,
|
|
130
|
+
type: 'object',
|
|
131
|
+
properties: {
|
|
132
|
+
fieldInNamedTab: {
|
|
133
|
+
type: [
|
|
134
|
+
'string',
|
|
135
|
+
'null'
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
required: []
|
|
140
|
+
},
|
|
141
|
+
namedTabWithRequired: {
|
|
142
|
+
additionalProperties: false,
|
|
143
|
+
type: 'object',
|
|
144
|
+
properties: {
|
|
145
|
+
fieldInNamedTab: {
|
|
146
|
+
type: 'string'
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
required: [
|
|
150
|
+
'fieldInNamedTab'
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
required: [
|
|
155
|
+
'id',
|
|
156
|
+
'namedTabWithRequired'
|
|
157
|
+
],
|
|
158
|
+
title: 'Test',
|
|
159
|
+
type: 'object'
|
|
160
|
+
});
|
|
161
|
+
});
|
|
66
162
|
});
|
|
67
163
|
|
|
68
164
|
//# sourceMappingURL=configToJSONSchema.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/configToJSONSchema.spec.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\nimport { sanitizeConfig } from '../config/sanitize.js'\nimport { configToJSONSchema } from './configToJSONSchema.js'\n\ndescribe('configToJSONSchema', () => {\n it('should handle optional arrays with required fields', async () => {\n const config: Config = {\n collections: [\n {\n fields: [\n {\n name: 'someRequiredField',\n type: 'array',\n fields: [\n {\n name: 'someRequiredField',\n required: true,\n type: 'text',\n },\n ],\n },\n ],\n slug: 'test',\n timestamps: false,\n },\n ],\n }\n\n const sanitizedConfig = await sanitizeConfig(config)\n const schema = configToJSONSchema(sanitizedConfig, 'text')\n\n expect(schema?.definitions?.test).toStrictEqual({\n additionalProperties: false,\n properties: {\n id: {\n type: 'string',\n },\n someRequiredField: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n type: ['string', 'null'],\n },\n someRequiredField: {\n type: 'string',\n },\n },\n required: ['someRequiredField'],\n type: 'object',\n },\n type: ['array', 'null'],\n },\n },\n required: ['id'],\n title: 'Test',\n type: 'object',\n })\n })\n})\n"],"names":["sanitizeConfig","configToJSONSchema","describe","it","config","collections","fields","name","type","required","slug","timestamps","sanitizedConfig","schema","expect","definitions","test","toStrictEqual","additionalProperties","properties","id","someRequiredField","items","title"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/configToJSONSchema.spec.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\nimport { sanitizeConfig } from '../config/sanitize.js'\nimport { configToJSONSchema } from './configToJSONSchema.js'\n\ndescribe('configToJSONSchema', () => {\n it('should handle optional arrays with required fields', async () => {\n // @ts-expect-error\n const config: Config = {\n collections: [\n {\n fields: [\n {\n name: 'someRequiredField',\n type: 'array',\n fields: [\n {\n name: 'someRequiredField',\n required: true,\n type: 'text',\n },\n ],\n },\n ],\n slug: 'test',\n timestamps: false,\n },\n ],\n }\n\n const sanitizedConfig = await sanitizeConfig(config)\n const schema = configToJSONSchema(sanitizedConfig, 'text')\n\n expect(schema?.definitions?.test).toStrictEqual({\n additionalProperties: false,\n properties: {\n id: {\n type: 'string',\n },\n someRequiredField: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n type: ['string', 'null'],\n },\n someRequiredField: {\n type: 'string',\n },\n },\n required: ['someRequiredField'],\n type: 'object',\n },\n type: ['array', 'null'],\n },\n },\n required: ['id'],\n title: 'Test',\n type: 'object',\n })\n })\n\n it('should handle tabs and named tabs with required fields', async () => {\n // @ts-expect-error\n const config: Config = {\n collections: [\n {\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'unnamedTab',\n fields: [\n {\n type: 'text',\n name: 'fieldInUnnamedTab',\n },\n ],\n },\n {\n label: 'namedTab',\n name: 'namedTab',\n fields: [\n {\n type: 'text',\n name: 'fieldInNamedTab',\n },\n ],\n },\n {\n label: 'namedTabWithRequired',\n name: 'namedTabWithRequired',\n fields: [\n {\n type: 'text',\n name: 'fieldInNamedTab',\n required: true,\n },\n ],\n },\n ],\n },\n ],\n slug: 'test',\n timestamps: false,\n },\n ],\n }\n\n const sanitizedConfig = await sanitizeConfig(config)\n const schema = configToJSONSchema(sanitizedConfig, 'text')\n\n expect(schema?.definitions?.test).toStrictEqual({\n additionalProperties: false,\n properties: {\n id: {\n type: 'string',\n },\n fieldInUnnamedTab: {\n type: ['string', 'null'],\n },\n namedTab: {\n additionalProperties: false,\n type: 'object',\n properties: {\n fieldInNamedTab: {\n type: ['string', 'null'],\n },\n },\n required: [],\n },\n namedTabWithRequired: {\n additionalProperties: false,\n type: 'object',\n properties: {\n fieldInNamedTab: {\n type: 'string',\n },\n },\n required: ['fieldInNamedTab'],\n },\n },\n required: ['id', 'namedTabWithRequired'],\n title: 'Test',\n type: 'object',\n })\n })\n})\n"],"names":["sanitizeConfig","configToJSONSchema","describe","it","config","collections","fields","name","type","required","slug","timestamps","sanitizedConfig","schema","expect","definitions","test","toStrictEqual","additionalProperties","properties","id","someRequiredField","items","title","tabs","label","fieldInUnnamedTab","namedTab","fieldInNamedTab","namedTabWithRequired"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5DC,SAAS,sBAAsB;IAC7BC,GAAG,sDAAsD;QACvD,mBAAmB;QACnB,MAAMC,SAAiB;YACrBC,aAAa;gBACX;oBACEC,QAAQ;wBACN;4BACEC,MAAM;4BACNC,MAAM;4BACNF,QAAQ;gCACN;oCACEC,MAAM;oCACNE,UAAU;oCACVD,MAAM;gCACR;6BACD;wBACH;qBACD;oBACDE,MAAM;oBACNC,YAAY;gBACd;aACD;QACH;QAEA,MAAMC,kBAAkB,MAAMZ,eAAeI;QAC7C,MAAMS,SAASZ,mBAAmBW,iBAAiB;QAEnDE,OAAOD,QAAQE,aAAaC,MAAMC,aAAa,CAAC;YAC9CC,sBAAsB;YACtBC,YAAY;gBACVC,IAAI;oBACFZ,MAAM;gBACR;gBACAa,mBAAmB;oBACjBC,OAAO;wBACLJ,sBAAsB;wBACtBC,YAAY;4BACVC,IAAI;gCACFZ,MAAM;oCAAC;oCAAU;iCAAO;4BAC1B;4BACAa,mBAAmB;gCACjBb,MAAM;4BACR;wBACF;wBACAC,UAAU;4BAAC;yBAAoB;wBAC/BD,MAAM;oBACR;oBACAA,MAAM;wBAAC;wBAAS;qBAAO;gBACzB;YACF;YACAC,UAAU;gBAAC;aAAK;YAChBc,OAAO;YACPf,MAAM;QACR;IACF;IAEAL,GAAG,0DAA0D;QAC3D,mBAAmB;QACnB,MAAMC,SAAiB;YACrBC,aAAa;gBACX;oBACEC,QAAQ;wBACN;4BACEE,MAAM;4BACNgB,MAAM;gCACJ;oCACEC,OAAO;oCACPnB,QAAQ;wCACN;4CACEE,MAAM;4CACND,MAAM;wCACR;qCACD;gCACH;gCACA;oCACEkB,OAAO;oCACPlB,MAAM;oCACND,QAAQ;wCACN;4CACEE,MAAM;4CACND,MAAM;wCACR;qCACD;gCACH;gCACA;oCACEkB,OAAO;oCACPlB,MAAM;oCACND,QAAQ;wCACN;4CACEE,MAAM;4CACND,MAAM;4CACNE,UAAU;wCACZ;qCACD;gCACH;6BACD;wBACH;qBACD;oBACDC,MAAM;oBACNC,YAAY;gBACd;aACD;QACH;QAEA,MAAMC,kBAAkB,MAAMZ,eAAeI;QAC7C,MAAMS,SAASZ,mBAAmBW,iBAAiB;QAEnDE,OAAOD,QAAQE,aAAaC,MAAMC,aAAa,CAAC;YAC9CC,sBAAsB;YACtBC,YAAY;gBACVC,IAAI;oBACFZ,MAAM;gBACR;gBACAkB,mBAAmB;oBACjBlB,MAAM;wBAAC;wBAAU;qBAAO;gBAC1B;gBACAmB,UAAU;oBACRT,sBAAsB;oBACtBV,MAAM;oBACNW,YAAY;wBACVS,iBAAiB;4BACfpB,MAAM;gCAAC;gCAAU;6BAAO;wBAC1B;oBACF;oBACAC,UAAU,EAAE;gBACd;gBACAoB,sBAAsB;oBACpBX,sBAAsB;oBACtBV,MAAM;oBACNW,YAAY;wBACVS,iBAAiB;4BACfpB,MAAM;wBACR;oBACF;oBACAC,UAAU;wBAAC;qBAAkB;gBAC/B;YACF;YACAA,UAAU;gBAAC;gBAAM;aAAuB;YACxCc,OAAO;YACPf,MAAM;QACR;IACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.31",
|
|
4
4
|
"description": "Node, React, Headless CMS and Application Framework built on Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"admin panel",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"scmp": "2.1.0",
|
|
97
97
|
"ts-essentials": "7.0.3",
|
|
98
98
|
"uuid": "^9.0.1",
|
|
99
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
99
|
+
"@payloadcms/translations": "3.0.0-beta.31"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
102
102
|
"@monaco-editor/react": "4.5.1",
|
|
@@ -132,6 +132,7 @@
|
|
|
132
132
|
"get-port": "5.1.1",
|
|
133
133
|
"graphql-http": "^1.22.0",
|
|
134
134
|
"mini-css-extract-plugin": "1.6.2",
|
|
135
|
+
"next": "^14.3.0-canary.7",
|
|
135
136
|
"nodemon": "3.0.3",
|
|
136
137
|
"object.assign": "4.1.4",
|
|
137
138
|
"object.entries": "1.1.6",
|