payload 3.0.0-beta.29 → 3.0.0-beta.30

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.
@@ -8,7 +8,7 @@ export async function generateTypes(config) {
8
8
  logger.info('Compiling TS types for Collections and Globals...');
9
9
  const jsonSchema = configToJSONSchema(config, config.db.defaultIDType);
10
10
  const declare = `declare module 'payload' {\n export interface GeneratedTypes extends Config {}\n}`;
11
- const declareWithTSIgnoreError = `declare module 'payload' {\n // @ts-ignore \n export interface GeneratedTypes extends Config {}\n}`;
11
+ const declareWithTSIgnoreError = `declare module 'payload' {\n // @ts-ignore \n export interface GeneratedTypes extends Config {}\n}`;
12
12
  let compiled = await compile(jsonSchema, 'Config', {
13
13
  bannerComment: '/* tslint:disable */\n/* eslint-disable */\n/**\n* This file was automatically generated by Payload.\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n* and re-run `payload generate:types` to regenerate this file.\n*/',
14
14
  style: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bin/generateTypes.ts"],"sourcesContent":["import fs from 'fs'\nimport { compile } from 'json-schema-to-typescript'\n\nimport type { SanitizedConfig } from '../config/types.js'\n\nimport { configToJSONSchema } from '../utilities/configToJSONSchema.js'\nimport Logger from '../utilities/logger.js'\n\nexport async function generateTypes(config: SanitizedConfig): Promise<void> {\n const logger = Logger()\n const outputFile = process.env.PAYLOAD_TS_OUTPUT_PATH || config.typescript.outputFile\n\n logger.info('Compiling TS types for Collections and Globals...')\n\n const jsonSchema = configToJSONSchema(config, config.db.defaultIDType)\n\n const declare = `declare module 'payload' {\\n export interface GeneratedTypes extends Config {}\\n}`\n const declareWithTSIgnoreError = `declare module 'payload' {\\n // @ts-ignore \\n export interface GeneratedTypes extends Config {}\\n}`\n\n let compiled = await compile(jsonSchema, 'Config', {\n bannerComment:\n '/* tslint:disable */\\n/* eslint-disable */\\n/**\\n* This file was automatically generated by Payload.\\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\\n* and re-run `payload generate:types` to regenerate this file.\\n*/',\n style: {\n singleQuote: true,\n },\n // Generates code for $defs that aren't referenced by the schema. Reason:\n // If a field defines an interfaceName, it should be included in the generated types\n // even if it's not used by another type. Reason: the user might want to use it in their own code.\n unreachableDefinitions: true,\n })\n\n if (config.typescript.declare !== false) {\n if (config.typescript.declare?.ignoreTSError) {\n compiled += `\\n\\n${declareWithTSIgnoreError}`\n } else {\n compiled += `\\n\\n${declare}`\n }\n }\n fs.writeFileSync(outputFile, compiled)\n logger.info(`Types written to ${outputFile}`)\n}\n"],"names":["fs","compile","configToJSONSchema","Logger","generateTypes","config","logger","outputFile","process","env","PAYLOAD_TS_OUTPUT_PATH","typescript","info","jsonSchema","db","defaultIDType","declare","declareWithTSIgnoreError","compiled","bannerComment","style","singleQuote","unreachableDefinitions","ignoreTSError","writeFileSync"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,SAASC,OAAO,QAAQ,4BAA2B;AAInD,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,OAAOC,YAAY,yBAAwB;AAE3C,OAAO,eAAeC,cAAcC,MAAuB;IACzD,MAAMC,SAASH;IACf,MAAMI,aAAaC,QAAQC,GAAG,CAACC,sBAAsB,IAAIL,OAAOM,UAAU,CAACJ,UAAU;IAErFD,OAAOM,IAAI,CAAC;IAEZ,MAAMC,aAAaX,mBAAmBG,QAAQA,OAAOS,EAAE,CAACC,aAAa;IAErE,MAAMC,UAAU,CAAC,kFAAkF,CAAC;IACpG,MAAMC,2BAA2B,CAAC,kGAAkG,CAAC;IAErI,IAAIC,WAAW,MAAMjB,QAAQY,YAAY,UAAU;QACjDM,eACE;QACFC,OAAO;YACLC,aAAa;QACf;QACA,yEAAyE;QACzE,oFAAoF;QACpF,kGAAkG;QAClGC,wBAAwB;IAC1B;IAEA,IAAIjB,OAAOM,UAAU,CAACK,OAAO,KAAK,OAAO;QACvC,IAAIX,OAAOM,UAAU,CAACK,OAAO,EAAEO,eAAe;YAC5CL,YAAY,CAAC,IAAI,EAAED,yBAAyB,CAAC;QAC/C,OAAO;YACLC,YAAY,CAAC,IAAI,EAAEF,QAAQ,CAAC;QAC9B;IACF;IACAhB,GAAGwB,aAAa,CAACjB,YAAYW;IAC7BZ,OAAOM,IAAI,CAAC,CAAC,iBAAiB,EAAEL,WAAW,CAAC;AAC9C"}
1
+ {"version":3,"sources":["../../src/bin/generateTypes.ts"],"sourcesContent":["import fs from 'fs'\nimport { compile } from 'json-schema-to-typescript'\n\nimport type { SanitizedConfig } from '../config/types.js'\n\nimport { configToJSONSchema } from '../utilities/configToJSONSchema.js'\nimport Logger from '../utilities/logger.js'\n\nexport async function generateTypes(config: SanitizedConfig): Promise<void> {\n const logger = Logger()\n const outputFile = process.env.PAYLOAD_TS_OUTPUT_PATH || config.typescript.outputFile\n\n logger.info('Compiling TS types for Collections and Globals...')\n\n const jsonSchema = configToJSONSchema(config, config.db.defaultIDType)\n\n const declare = `declare module 'payload' {\\n export interface GeneratedTypes extends Config {}\\n}`\n const declareWithTSIgnoreError = `declare module 'payload' {\\n // @ts-ignore \\n export interface GeneratedTypes extends Config {}\\n}`\n\n let compiled = await compile(jsonSchema, 'Config', {\n bannerComment:\n '/* tslint:disable */\\n/* eslint-disable */\\n/**\\n* This file was automatically generated by Payload.\\n* DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\\n* and re-run `payload generate:types` to regenerate this file.\\n*/',\n style: {\n singleQuote: true,\n },\n // Generates code for $defs that aren't referenced by the schema. Reason:\n // If a field defines an interfaceName, it should be included in the generated types\n // even if it's not used by another type. Reason: the user might want to use it in their own code.\n unreachableDefinitions: true,\n })\n\n if (config.typescript.declare !== false) {\n if (config.typescript.declare?.ignoreTSError) {\n compiled += `\\n\\n${declareWithTSIgnoreError}`\n } else {\n compiled += `\\n\\n${declare}`\n }\n }\n fs.writeFileSync(outputFile, compiled)\n logger.info(`Types written to ${outputFile}`)\n}\n"],"names":["fs","compile","configToJSONSchema","Logger","generateTypes","config","logger","outputFile","process","env","PAYLOAD_TS_OUTPUT_PATH","typescript","info","jsonSchema","db","defaultIDType","declare","declareWithTSIgnoreError","compiled","bannerComment","style","singleQuote","unreachableDefinitions","ignoreTSError","writeFileSync"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,SAASC,OAAO,QAAQ,4BAA2B;AAInD,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,OAAOC,YAAY,yBAAwB;AAE3C,OAAO,eAAeC,cAAcC,MAAuB;IACzD,MAAMC,SAASH;IACf,MAAMI,aAAaC,QAAQC,GAAG,CAACC,sBAAsB,IAAIL,OAAOM,UAAU,CAACJ,UAAU;IAErFD,OAAOM,IAAI,CAAC;IAEZ,MAAMC,aAAaX,mBAAmBG,QAAQA,OAAOS,EAAE,CAACC,aAAa;IAErE,MAAMC,UAAU,CAAC,kFAAkF,CAAC;IACpG,MAAMC,2BAA2B,CAAC,oGAAoG,CAAC;IAEvI,IAAIC,WAAW,MAAMjB,QAAQY,YAAY,UAAU;QACjDM,eACE;QACFC,OAAO;YACLC,aAAa;QACf;QACA,yEAAyE;QACzE,oFAAoF;QACpF,kGAAkG;QAClGC,wBAAwB;IAC1B;IAEA,IAAIjB,OAAOM,UAAU,CAACK,OAAO,KAAK,OAAO;QACvC,IAAIX,OAAOM,UAAU,CAACK,OAAO,EAAEO,eAAe;YAC5CL,YAAY,CAAC,IAAI,EAAED,yBAAyB,CAAC;QAC/C,OAAO;YACLC,YAAY,CAAC,IAAI,EAAEF,QAAQ,CAAC;QAC9B;IACF;IACAhB,GAAGwB,aAAa,CAACjB,YAAYW;IAC7BZ,OAAOM,IAAI,CAAC,CAAC,iBAAiB,EAAEL,WAAW,CAAC;AAC9C"}
@@ -24,6 +24,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
24
24
  custom?: Record<string, any>;
25
25
  description?: import("../../admin/types.js").Description;
26
26
  disableBulkEdit?: boolean;
27
+ disableListColumn?: boolean;
28
+ disableListFilter?: boolean;
27
29
  disabled?: boolean;
28
30
  hidden?: boolean;
29
31
  position?: "sidebar";
@@ -85,6 +87,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
85
87
  custom?: Record<string, any>;
86
88
  description?: import("../../admin/types.js").Description;
87
89
  disableBulkEdit?: boolean;
90
+ disableListColumn?: boolean;
91
+ disableListFilter?: boolean;
88
92
  disabled?: boolean;
89
93
  hidden?: boolean;
90
94
  position?: "sidebar";
@@ -136,6 +140,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
136
140
  custom?: Record<string, any>;
137
141
  description?: import("../../admin/types.js").Description;
138
142
  disableBulkEdit?: boolean;
143
+ disableListColumn?: boolean;
144
+ disableListFilter?: boolean;
139
145
  disabled?: boolean;
140
146
  hidden?: boolean;
141
147
  position?: "sidebar";
@@ -205,6 +211,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
205
211
  custom?: Record<string, any>;
206
212
  description?: import("../../admin/types.js").Description;
207
213
  disableBulkEdit?: boolean;
214
+ disableListColumn?: boolean;
215
+ disableListFilter?: boolean;
208
216
  disabled?: boolean;
209
217
  hidden?: boolean;
210
218
  position?: "sidebar";
@@ -235,6 +243,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
235
243
  custom?: Record<string, any>;
236
244
  description?: import("../../admin/types.js").Description;
237
245
  disableBulkEdit?: boolean;
246
+ disableListColumn?: boolean;
247
+ disableListFilter?: boolean;
238
248
  disabled?: boolean;
239
249
  hidden?: boolean;
240
250
  position?: "sidebar";
@@ -289,6 +299,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
289
299
  custom?: Record<string, any>;
290
300
  description?: import("../../admin/types.js").Description;
291
301
  disableBulkEdit?: boolean;
302
+ disableListColumn?: boolean;
303
+ disableListFilter?: boolean;
292
304
  disabled?: boolean;
293
305
  hidden?: boolean;
294
306
  position?: "sidebar";
@@ -340,6 +352,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
340
352
  custom?: Record<string, any>;
341
353
  description?: import("../../admin/types.js").Description;
342
354
  disableBulkEdit?: boolean;
355
+ disableListColumn?: boolean;
356
+ disableListFilter?: boolean;
343
357
  disabled?: boolean;
344
358
  hidden?: boolean;
345
359
  position?: "sidebar";
@@ -393,6 +407,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
393
407
  custom?: Record<string, any>;
394
408
  description?: import("../../admin/types.js").Description;
395
409
  disableBulkEdit?: boolean;
410
+ disableListColumn?: boolean;
411
+ disableListFilter?: boolean;
396
412
  disabled?: boolean;
397
413
  hidden?: boolean;
398
414
  position?: "sidebar";
@@ -441,6 +457,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
441
457
  custom?: Record<string, any>;
442
458
  description?: import("../../admin/types.js").Description;
443
459
  disableBulkEdit?: boolean;
460
+ disableListColumn?: boolean;
461
+ disableListFilter?: boolean;
444
462
  disabled?: boolean;
445
463
  hidden?: boolean;
446
464
  position?: "sidebar";
@@ -511,6 +529,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
511
529
  custom?: Record<string, any>;
512
530
  description?: import("../../admin/types.js").Description;
513
531
  disableBulkEdit?: boolean;
532
+ disableListColumn?: boolean;
533
+ disableListFilter?: boolean;
514
534
  disabled?: boolean;
515
535
  hidden?: boolean;
516
536
  position?: "sidebar";
@@ -544,6 +564,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
544
564
  custom?: Record<string, any>;
545
565
  description?: import("../../admin/types.js").Description;
546
566
  disableBulkEdit?: boolean;
567
+ disableListColumn?: boolean;
568
+ disableListFilter?: boolean;
547
569
  disabled?: boolean;
548
570
  hidden?: boolean;
549
571
  position?: "sidebar";
@@ -603,6 +625,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
603
625
  custom?: Record<string, any>;
604
626
  description?: import("../../admin/types.js").Description;
605
627
  disableBulkEdit?: boolean;
628
+ disableListColumn?: boolean;
629
+ disableListFilter?: boolean;
606
630
  disabled?: boolean;
607
631
  hidden?: boolean;
608
632
  position?: "sidebar";
@@ -662,6 +686,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
662
686
  custom?: Record<string, any>;
663
687
  description?: import("../../admin/types.js").Description;
664
688
  disableBulkEdit?: boolean;
689
+ disableListColumn?: boolean;
690
+ disableListFilter?: boolean;
665
691
  disabled?: boolean;
666
692
  hidden?: boolean;
667
693
  position?: "sidebar";
@@ -706,6 +732,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
706
732
  custom?: Record<string, any>;
707
733
  description?: import("../../admin/types.js").Description;
708
734
  disableBulkEdit?: boolean;
735
+ disableListColumn?: boolean;
736
+ disableListFilter?: boolean;
709
737
  disabled?: boolean;
710
738
  hidden?: boolean;
711
739
  position?: "sidebar";
@@ -759,6 +787,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
759
787
  custom?: Record<string, any>;
760
788
  description?: import("../../admin/types.js").Description;
761
789
  disableBulkEdit?: boolean;
790
+ disableListColumn?: boolean;
791
+ disableListFilter?: boolean;
762
792
  disabled?: boolean;
763
793
  hidden?: boolean;
764
794
  position?: "sidebar";
@@ -822,6 +852,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
822
852
  custom?: Record<string, any>;
823
853
  description?: import("../../admin/types.js").Description;
824
854
  disableBulkEdit?: boolean;
855
+ disableListColumn?: boolean;
856
+ disableListFilter?: boolean;
825
857
  disabled?: boolean;
826
858
  hidden?: boolean;
827
859
  position?: "sidebar";
@@ -885,6 +917,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
885
917
  custom?: Record<string, any>;
886
918
  description?: import("../../admin/types.js").Description;
887
919
  disableBulkEdit?: boolean;
920
+ disableListColumn?: boolean;
921
+ disableListFilter?: boolean;
888
922
  disabled?: boolean;
889
923
  hidden?: boolean;
890
924
  position?: "sidebar";
@@ -946,6 +980,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
946
980
  custom?: Record<string, any>;
947
981
  description?: import("../../admin/types.js").Description;
948
982
  disableBulkEdit?: boolean;
983
+ disableListColumn?: boolean;
984
+ disableListFilter?: boolean;
949
985
  disabled?: boolean;
950
986
  hidden?: boolean;
951
987
  position?: "sidebar";
@@ -1007,6 +1043,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1007
1043
  custom?: Record<string, any>;
1008
1044
  description?: import("../../admin/types.js").Description;
1009
1045
  disableBulkEdit?: boolean;
1046
+ disableListColumn?: boolean;
1047
+ disableListFilter?: boolean;
1010
1048
  disabled?: boolean;
1011
1049
  hidden?: boolean;
1012
1050
  position?: "sidebar";
@@ -1083,6 +1121,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1083
1121
  custom?: Record<string, any>;
1084
1122
  description?: import("../../admin/types.js").Description;
1085
1123
  disableBulkEdit?: boolean;
1124
+ disableListColumn?: boolean;
1125
+ disableListFilter?: boolean;
1086
1126
  disabled?: boolean;
1087
1127
  hidden?: boolean;
1088
1128
  position?: "sidebar";
@@ -1162,6 +1202,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1162
1202
  custom?: Record<string, any>;
1163
1203
  description?: import("../../admin/types.js").Description;
1164
1204
  disableBulkEdit?: boolean;
1205
+ disableListColumn?: boolean;
1206
+ disableListFilter?: boolean;
1165
1207
  disabled?: boolean;
1166
1208
  hidden?: boolean;
1167
1209
  position?: "sidebar";
@@ -1221,6 +1263,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1221
1263
  custom?: Record<string, any>;
1222
1264
  description?: import("../../admin/types.js").Description;
1223
1265
  disableBulkEdit?: boolean;
1266
+ disableListColumn?: boolean;
1267
+ disableListFilter?: boolean;
1224
1268
  disabled?: boolean;
1225
1269
  hidden?: boolean;
1226
1270
  position?: "sidebar";
@@ -1280,6 +1324,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1280
1324
  custom?: Record<string, any>;
1281
1325
  description?: import("../../admin/types.js").Description;
1282
1326
  disableBulkEdit?: boolean;
1327
+ disableListColumn?: boolean;
1328
+ disableListFilter?: boolean;
1283
1329
  disabled?: boolean;
1284
1330
  hidden?: boolean;
1285
1331
  position?: "sidebar";
@@ -1328,6 +1374,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1328
1374
  condition?: import("../../fields/config/types.js").Condition<any, any>;
1329
1375
  custom?: Record<string, any>;
1330
1376
  disableBulkEdit?: boolean;
1377
+ disableListColumn?: boolean;
1378
+ disableListFilter?: boolean;
1331
1379
  position?: string;
1332
1380
  width?: string;
1333
1381
  };
@@ -1353,6 +1401,8 @@ export declare const createClientFieldConfig: ({ field: incomingField, t, }: {
1353
1401
  custom?: Record<string, any>;
1354
1402
  description?: import("../../admin/types.js").Description;
1355
1403
  disableBulkEdit?: boolean;
1404
+ disableListColumn?: boolean;
1405
+ disableListFilter?: boolean;
1356
1406
  disabled?: boolean;
1357
1407
  hidden?: boolean;
1358
1408
  position?: "sidebar";
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/fields/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC,CAAA;AAE7F,MAAM,MAAM,yBAAyB,GACjC,QAAQ,GACR,eAAe,GACf,OAAO,GACP,MAAM,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC,CAAA;AAEtF,MAAM,MAAM,8BAA8B,GAAG,MAAM,IAAI,CACrD,SAAS,CAAC,OAAO,CAAC,EAClB,YAAY,GAAG,WAAW,GAAG,aAAa,CAC3C,CAAA;AAED,eAAO,MAAM,uBAAuB,iCAGjC;IACD,KAAK,EAAE,KAAK,CAAA;IACZ,CAAC,EAAE,SAAS,CAAA;CACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEA,CAAA;AAED,eAAO,MAAM,wBAAwB,mBAGlC;IACD,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,KAAK,EAAkE,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/fields/config/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAQvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAgB1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBAoCV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAsBf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAiBnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAgBhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA4BhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAuBtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA2BhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAajB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAYnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAYhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBA+BvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBA+CjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAsBnB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAyBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAqBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/fields/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAIrB,eAAO,MAAM,wBAAwB,uBAQvB,CAAA;AAEd,eAAO,MAAM,eAAe,uBAkB1B,CAAA;AAEF,eAAO,MAAM,SAAS,uBAoCV,CAAA;AAEZ,eAAO,MAAM,OAAO,uBAKlB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAsBf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAiBnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAgBhB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,IAAI,uBAYf,CAAA;AAEF,eAAO,MAAM,MAAM,uBAgCjB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA4BhB,CAAA;AAEF,eAAO,MAAM,GAAG,uBAId,CAAA;AAEF,eAAO,MAAM,WAAW,uBAuBtB,CAAA;AAeF,eAAO,MAAM,IAAI,uBAQf,CAAA;AAEF,eAAO,MAAM,KAAK,uBAShB,CAAA;AAEF,eAAO,MAAM,KAAK,uBA2BhB,CAAA;AAEF,eAAO,MAAM,MAAM,uBAajB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAYnB,CAAA;AAEF,eAAO,MAAM,KAAK,uBAYhB,CAAA;AAEF,eAAO,MAAM,YAAY,uBA+BvB,CAAA;AAEF,eAAO,MAAM,MAAM,uBA+CjB,CAAA;AAEF,eAAO,MAAM,QAAQ,uBAsBnB,CAAA;AAEF,eAAO,MAAM,IAAI,uBAyBf,CAAA;AAEF,eAAO,MAAM,EAAE,uBAqBb,CAAA;AAEF,QAAA,MAAM,WAAW,6BAyBH,CAAA;AAEd,eAAe,WAAW,CAAA"}
@@ -15,6 +15,8 @@ export const baseAdminFields = joi.object().keys({
15
15
  joi.string()
16
16
  ]), joi.function()),
17
17
  disableBulkEdit: joi.boolean().default(false),
18
+ disableListColumn: joi.boolean().default(false),
19
+ disableListFilter: joi.boolean().default(false),
18
20
  disabled: joi.boolean().default(false),
19
21
  hidden: joi.boolean().default(false),
20
22
  initCollapsed: joi.boolean().default(false),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { componentSchema } from '../../config/shared/componentSchema.js'\n\nexport const baseAdminComponentFields = joi\n .object()\n .keys({\n Cell: componentSchema,\n Description: componentSchema,\n Field: componentSchema,\n Filter: componentSchema,\n })\n .default({})\n\nexport const baseAdminFields = joi.object().keys({\n className: joi.string(),\n components: baseAdminComponentFields,\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function()),\n disableBulkEdit: joi.boolean().default(false),\n disabled: joi.boolean().default(false),\n hidden: joi.boolean().default(false),\n initCollapsed: joi.boolean().default(false),\n position: joi.string().valid('sidebar'),\n readOnly: joi.boolean().default(false),\n style: joi.object().unknown(),\n width: joi.string(),\n})\n\nexport const baseField = joi\n .object()\n .keys({\n access: joi.object().keys({\n create: joi.func(),\n read: joi.func(),\n update: joi.func(),\n }),\n admin: baseAdminFields.default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n hidden: joi.boolean().default(false),\n hooks: joi\n .object()\n .keys({\n afterChange: joi.array().items(joi.func()).default([]),\n afterRead: joi.array().items(joi.func()).default([]),\n beforeChange: joi.array().items(joi.func()).default([]),\n beforeDuplicate: joi.array().items(joi.func()).default([]),\n beforeValidate: joi.array().items(joi.func()).default([]),\n })\n .default(),\n index: joi.boolean().default(false),\n label: joi\n .alternatives()\n .try(\n joi.func(),\n joi.object().pattern(joi.string(), [joi.string()]),\n joi.string(),\n joi.valid(false),\n ),\n localized: joi.boolean().default(false),\n required: joi.boolean().default(false),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()).default(false),\n unique: joi.boolean().default(false),\n validate: joi.func(),\n })\n .default()\n\nexport const idField = baseField.keys({\n name: joi.string().valid('id'),\n type: joi.string().valid('text', 'number'),\n localized: joi.invalid(true),\n required: joi.not(false, 0).default(true),\n})\n\nexport const text = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('text').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n maxLength: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n minLength: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const number = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('number').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n beforeInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n }),\n placeholder: joi.string(),\n step: joi.number(),\n }),\n defaultValue: joi\n .alternatives()\n .try(\n joi.number(),\n joi.func(),\n joi.array().when('hasMany', { not: true, then: joi.forbidden() }),\n ),\n hasMany: joi.boolean().default(false),\n max: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const textarea = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('textarea').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n rows: joi.number(),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const email = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('email').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const code = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('code').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n language: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const json = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('json').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n }),\n defaultValue: joi.alternatives().try(joi.array(), joi.object()),\n jsonSchema: joi.object().unknown(),\n})\n\nexport const select = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('select').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isClearable: joi.boolean().default(false),\n isSortable: joi.boolean().default(false),\n }),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi\n .alternatives()\n .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const radio = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('radio').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n layout: joi.string().valid('vertical', 'horizontal'),\n }),\n defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .required(),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const row = baseField.keys({\n type: joi.string().valid('row').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n})\n\nexport const collapsible = baseField.keys({\n type: joi.string().valid('collapsible').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema.optional(),\n })\n .default({}),\n })\n .default({}),\n fields: joi.array().items(joi.link('#field')),\n label: joi.alternatives().conditional('admin.components.RowLabel', {\n is: joi.exist(),\n otherwise: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function())\n .required(),\n then: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function())\n .optional(),\n }),\n})\n\nconst tab = baseField.keys({\n name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }),\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .when('name', { is: joi.not(), then: joi.required() }),\n localized: joi.boolean(),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()),\n})\n\nexport const tabs = baseField.keys({\n type: joi.string().valid('tabs').required(),\n admin: baseAdminFields.keys({\n description: joi.forbidden(),\n }),\n fields: joi.forbidden(),\n localized: joi.forbidden(),\n tabs: joi.array().items(tab).required(),\n})\n\nexport const group = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('group').required(),\n admin: baseAdminFields.keys({\n hideGutter: joi.boolean().default(true),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n interfaceName: joi.string(),\n})\n\nexport const array = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('array').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema,\n })\n .default({}),\n isSortable: joi.boolean(),\n })\n .default({}),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const upload = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('upload').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n maxDepth: joi.number(),\n relationTo: joi.string().required(),\n})\n\nexport const checkbox = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('checkbox').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.boolean(), joi.func()),\n})\n\nexport const point = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('point').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()),\n})\n\nexport const relationship = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('relationship').required(),\n admin: baseAdminFields.keys({\n allowCreate: joi.boolean().default(true),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isSortable: joi.boolean().default(false),\n sortOptions: joi.alternatives().conditional(joi.ref('...relationTo'), {\n is: joi.string(),\n otherwise: joi.object().pattern(joi.string(), joi.string()),\n then: joi.string(),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use maxRows instead.' }),\n maxDepth: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use minRows instead.' }),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())),\n})\n\nexport const blocks = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('blocks').required(),\n admin: baseAdminFields\n .keys({\n isSortable: joi.boolean(),\n })\n .default({}),\n blocks: joi\n .array()\n .items(\n joi.object({\n slug: joi.string().required(),\n admin: joi.object().keys({\n custom: joi.object().pattern(joi.string(), joi.any()),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n graphQL: joi.object().keys({\n singularName: joi.string(),\n }),\n imageAltText: joi.string(),\n imageURL: joi.string(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n }),\n )\n .required(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const richText = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('richText').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func(), joi.object()),\n editor: joi\n .object()\n .keys({\n CellComponent: componentSchema.optional(),\n FieldComponent: componentSchema.optional(),\n afterReadPromise: joi.func().optional(),\n outputSchema: joi.func().optional(),\n populationPromise: joi.func().optional(),\n validate: joi.func().required(),\n })\n .unknown(),\n maxDepth: joi.number(),\n})\n\nexport const date = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('date').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n date: joi.object({\n displayFormat: joi.string(),\n maxDate: joi.date(),\n maxTime: joi.date(),\n minDate: joi.date(),\n minTime: joi.date(),\n monthsToShow: joi.number(),\n overrides: joi.object().unknown(),\n pickerAppearance: joi.string(),\n timeFormat: joi.string(),\n timeIntervals: joi.number(),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const ui = joi.object().keys({\n name: joi.string().required(),\n type: joi.string().valid('ui').required(),\n admin: joi\n .object()\n .keys({\n components: joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n })\n .default({}),\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n position: joi.string().valid('sidebar'),\n width: joi.string(),\n })\n .default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n})\n\nconst fieldSchema = joi\n .alternatives()\n .try(\n text,\n number,\n textarea,\n email,\n code,\n json,\n select,\n group,\n array,\n row,\n collapsible,\n tabs,\n radio,\n relationship,\n checkbox,\n upload,\n richText,\n blocks,\n date,\n point,\n ui,\n )\n .id('field')\n\nexport default fieldSchema\n"],"names":["joi","componentSchema","baseAdminComponentFields","object","keys","Cell","Description","Field","Filter","default","baseAdminFields","className","string","components","condition","func","custom","pattern","any","description","alternatives","try","function","disableBulkEdit","boolean","disabled","hidden","initCollapsed","position","valid","readOnly","style","unknown","width","baseField","access","create","read","update","admin","hooks","afterChange","array","items","afterRead","beforeChange","beforeDuplicate","beforeValidate","index","label","localized","required","saveToJWT","unique","validate","idField","name","type","invalid","not","text","autoComplete","Error","Label","afterInput","beforeInput","placeholder","rtl","defaultValue","hasMany","maxLength","number","maxRows","when","is","then","forbidden","minLength","minRows","otherwise","step","max","min","textarea","rows","email","code","editorOptions","language","json","jsonSchema","select","isClearable","isSortable","dbName","allow","enumName","options","value","radio","layout","row","fields","link","collapsible","RowLabel","optional","conditional","exist","tab","interfaceName","tabs","group","hideGutter","labels","plural","singular","upload","filterOptions","maxDepth","relationTo","checkbox","point","relationship","allowCreate","sortOptions","ref","warning","message","blocks","slug","graphQL","singularName","imageAltText","imageURL","richText","editor","CellComponent","FieldComponent","afterReadPromise","outputSchema","populationPromise","date","displayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","overrides","pickerAppearance","timeFormat","timeIntervals","ui","fieldSchema","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { componentSchema } from '../../config/shared/componentSchema.js'\n\nexport const baseAdminComponentFields = joi\n .object()\n .keys({\n Cell: componentSchema,\n Description: componentSchema,\n Field: componentSchema,\n Filter: componentSchema,\n })\n .default({})\n\nexport const baseAdminFields = joi.object().keys({\n className: joi.string(),\n components: baseAdminComponentFields,\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function()),\n disableBulkEdit: joi.boolean().default(false),\n disableListColumn: joi.boolean().default(false),\n disableListFilter: joi.boolean().default(false),\n disabled: joi.boolean().default(false),\n hidden: joi.boolean().default(false),\n initCollapsed: joi.boolean().default(false),\n position: joi.string().valid('sidebar'),\n readOnly: joi.boolean().default(false),\n style: joi.object().unknown(),\n width: joi.string(),\n})\n\nexport const baseField = joi\n .object()\n .keys({\n access: joi.object().keys({\n create: joi.func(),\n read: joi.func(),\n update: joi.func(),\n }),\n admin: baseAdminFields.default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n hidden: joi.boolean().default(false),\n hooks: joi\n .object()\n .keys({\n afterChange: joi.array().items(joi.func()).default([]),\n afterRead: joi.array().items(joi.func()).default([]),\n beforeChange: joi.array().items(joi.func()).default([]),\n beforeDuplicate: joi.array().items(joi.func()).default([]),\n beforeValidate: joi.array().items(joi.func()).default([]),\n })\n .default(),\n index: joi.boolean().default(false),\n label: joi\n .alternatives()\n .try(\n joi.func(),\n joi.object().pattern(joi.string(), [joi.string()]),\n joi.string(),\n joi.valid(false),\n ),\n localized: joi.boolean().default(false),\n required: joi.boolean().default(false),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()).default(false),\n unique: joi.boolean().default(false),\n validate: joi.func(),\n })\n .default()\n\nexport const idField = baseField.keys({\n name: joi.string().valid('id'),\n type: joi.string().valid('text', 'number'),\n localized: joi.invalid(true),\n required: joi.not(false, 0).default(true),\n})\n\nexport const text = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('text').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n maxLength: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n minLength: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const number = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('number').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n beforeInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n }),\n placeholder: joi.string(),\n step: joi.number(),\n }),\n defaultValue: joi\n .alternatives()\n .try(\n joi.number(),\n joi.func(),\n joi.array().when('hasMany', { not: true, then: joi.forbidden() }),\n ),\n hasMany: joi.boolean().default(false),\n max: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const textarea = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('textarea').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n rows: joi.number(),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const email = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('email').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const code = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('code').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n language: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const json = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('json').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n }),\n defaultValue: joi.alternatives().try(joi.array(), joi.object()),\n jsonSchema: joi.object().unknown(),\n})\n\nexport const select = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('select').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isClearable: joi.boolean().default(false),\n isSortable: joi.boolean().default(false),\n }),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi\n .alternatives()\n .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const radio = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('radio').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n layout: joi.string().valid('vertical', 'horizontal'),\n }),\n defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()),\n enumName: joi.alternatives().try(joi.string(), joi.func()),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .required(),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const row = baseField.keys({\n type: joi.string().valid('row').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n})\n\nexport const collapsible = baseField.keys({\n type: joi.string().valid('collapsible').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema.optional(),\n })\n .default({}),\n })\n .default({}),\n fields: joi.array().items(joi.link('#field')),\n label: joi.alternatives().conditional('admin.components.RowLabel', {\n is: joi.exist(),\n otherwise: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function())\n .required(),\n then: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), joi.function())\n .optional(),\n }),\n})\n\nconst tab = baseField.keys({\n name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }),\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .when('name', { is: joi.not(), then: joi.required() }),\n localized: joi.boolean(),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()),\n})\n\nexport const tabs = baseField.keys({\n type: joi.string().valid('tabs').required(),\n admin: baseAdminFields.keys({\n description: joi.forbidden(),\n }),\n fields: joi.forbidden(),\n localized: joi.forbidden(),\n tabs: joi.array().items(tab).required(),\n})\n\nexport const group = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('group').required(),\n admin: baseAdminFields.keys({\n hideGutter: joi.boolean().default(true),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n interfaceName: joi.string(),\n})\n\nexport const array = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('array').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema,\n })\n .default({}),\n isSortable: joi.boolean(),\n })\n .default({}),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const upload = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('upload').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n maxDepth: joi.number(),\n relationTo: joi.string().required(),\n})\n\nexport const checkbox = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('checkbox').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.boolean(), joi.func()),\n})\n\nexport const point = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('point').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()),\n})\n\nexport const relationship = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('relationship').required(),\n admin: baseAdminFields.keys({\n allowCreate: joi.boolean().default(true),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isSortable: joi.boolean().default(false),\n sortOptions: joi.alternatives().conditional(joi.ref('...relationTo'), {\n is: joi.string(),\n otherwise: joi.object().pattern(joi.string(), joi.string()),\n then: joi.string(),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use maxRows instead.' }),\n maxDepth: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use minRows instead.' }),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())),\n})\n\nexport const blocks = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('blocks').required(),\n admin: baseAdminFields\n .keys({\n isSortable: joi.boolean(),\n })\n .default({}),\n blocks: joi\n .array()\n .items(\n joi.object({\n slug: joi.string().required(),\n admin: joi.object().keys({\n custom: joi.object().pattern(joi.string(), joi.any()),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n graphQL: joi.object().keys({\n singularName: joi.string(),\n }),\n imageAltText: joi.string(),\n imageURL: joi.string(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n }),\n )\n .required(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const richText = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('richText').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func(), joi.object()),\n editor: joi\n .object()\n .keys({\n CellComponent: componentSchema.optional(),\n FieldComponent: componentSchema.optional(),\n afterReadPromise: joi.func().optional(),\n outputSchema: joi.func().optional(),\n populationPromise: joi.func().optional(),\n validate: joi.func().required(),\n })\n .unknown(),\n maxDepth: joi.number(),\n})\n\nexport const date = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('date').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n date: joi.object({\n displayFormat: joi.string(),\n maxDate: joi.date(),\n maxTime: joi.date(),\n minDate: joi.date(),\n minTime: joi.date(),\n monthsToShow: joi.number(),\n overrides: joi.object().unknown(),\n pickerAppearance: joi.string(),\n timeFormat: joi.string(),\n timeIntervals: joi.number(),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const ui = joi.object().keys({\n name: joi.string().required(),\n type: joi.string().valid('ui').required(),\n admin: joi\n .object()\n .keys({\n components: joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n })\n .default({}),\n condition: joi.func(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n position: joi.string().valid('sidebar'),\n width: joi.string(),\n })\n .default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n})\n\nconst fieldSchema = joi\n .alternatives()\n .try(\n text,\n number,\n textarea,\n email,\n code,\n json,\n select,\n group,\n array,\n row,\n collapsible,\n tabs,\n radio,\n relationship,\n checkbox,\n upload,\n richText,\n blocks,\n date,\n point,\n ui,\n )\n .id('field')\n\nexport default fieldSchema\n"],"names":["joi","componentSchema","baseAdminComponentFields","object","keys","Cell","Description","Field","Filter","default","baseAdminFields","className","string","components","condition","func","custom","pattern","any","description","alternatives","try","function","disableBulkEdit","boolean","disableListColumn","disableListFilter","disabled","hidden","initCollapsed","position","valid","readOnly","style","unknown","width","baseField","access","create","read","update","admin","hooks","afterChange","array","items","afterRead","beforeChange","beforeDuplicate","beforeValidate","index","label","localized","required","saveToJWT","unique","validate","idField","name","type","invalid","not","text","autoComplete","Error","Label","afterInput","beforeInput","placeholder","rtl","defaultValue","hasMany","maxLength","number","maxRows","when","is","then","forbidden","minLength","minRows","otherwise","step","max","min","textarea","rows","email","code","editorOptions","language","json","jsonSchema","select","isClearable","isSortable","dbName","allow","enumName","options","value","radio","layout","row","fields","link","collapsible","RowLabel","optional","conditional","exist","tab","interfaceName","tabs","group","hideGutter","labels","plural","singular","upload","filterOptions","maxDepth","relationTo","checkbox","point","relationship","allowCreate","sortOptions","ref","warning","message","blocks","slug","graphQL","singularName","imageAltText","imageURL","richText","editor","CellComponent","FieldComponent","afterReadPromise","outputSchema","populationPromise","date","displayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","overrides","pickerAppearance","timeFormat","timeIntervals","ui","fieldSchema","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -104,6 +104,16 @@ type Admin = {
104
104
  custom?: Record<string, any>;
105
105
  description?: Description;
106
106
  disableBulkEdit?: boolean;
107
+ /**
108
+ * Shows / hides fields from appearing in the list view column selector.
109
+ * @type boolean
110
+ */
111
+ disableListColumn?: boolean;
112
+ /**
113
+ * Shows / hides fields from appearing in the list view filter options.
114
+ * @type boolean
115
+ */
116
+ disableListFilter?: boolean;
107
117
  disabled?: boolean;
108
118
  hidden?: boolean;
109
119
  position?: 'sidebar';
@@ -365,6 +375,16 @@ export type UIField = {
365
375
  /** Extension point to add your custom data. Available in server and client. */
366
376
  custom?: Record<string, any>;
367
377
  disableBulkEdit?: boolean;
378
+ /**
379
+ * Shows / hides fields from appearing in the list view column selector.
380
+ * @type boolean
381
+ */
382
+ disableListColumn?: boolean;
383
+ /**
384
+ * Shows / hides fields from appearing in the list view filter options.
385
+ * @type boolean
386
+ */
387
+ disableListFilter?: boolean;
368
388
  position?: string;
369
389
  width?: string;
370
390
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/config/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-use-before-define */\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { CSSProperties } from 'react'\n\n//eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode)\nimport type React from 'react'\n\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type {\n ConditionalDateProps,\n Description,\n DescriptionComponent,\n ErrorProps,\n LabelProps,\n RowLabel,\n RowLabelComponent,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { CustomComponent, LabelFunction } from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext, Where } from '../../types/index.js'\nimport type { ClientFieldConfig } from './client.js'\n\nexport type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<T>\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: SanitizedGlobalConfig | null\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: T\n overrideAccess?: boolean\n /** The document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: T\n /** The sibling data of the document before changes being applied, only in `beforeChange` and `afterChange` hook. */\n previousSiblingDoc?: T\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange` and `beforeValidate` hooks. */\n previousValue?: P\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequestWithData\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<S>\n /** The value of the field. */\n value?: P\n}\n\nexport type FieldHook<T extends TypeWithID = any, P = any, S = any> = (\n args: FieldHookArgs<T, P, S>,\n) => P | Promise<P>\n\nexport type FieldAccess<T extends TypeWithID = any, P = any, U = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<T>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: T\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequestWithData<U>\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<P>\n}) => Promise<boolean> | boolean\n\nexport type Condition<T extends TypeWithID = any, P = any> = (\n data: Partial<T>,\n siblingData: Partial<P>,\n { user }: { user: PayloadRequestWithData['user'] },\n) => boolean\n\nexport type FilterOptionsProps<T = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: T\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: string\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequestWithData['user']>\n}\n\nexport type FilterOptions<T = any> =\n | ((options: FilterOptionsProps<T>) => Promise<Where | boolean> | Where | boolean)\n | Where\n | null\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: DescriptionComponent\n Field?: CustomComponent\n Filter?: React.ComponentType<any>\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n disabled?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: string\n}\n\nexport type Labels = {\n plural: LabelFunction | Record<string, string> | string\n singular: LabelFunction | Record<string, string> | string\n}\n\nexport type BaseValidateOptions<TData, TSiblingData> = {\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n req: PayloadRequestWithData\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<\n TData,\n TSiblingData\n> &\n TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: TValue,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig>,\n) => Promise<string | true> | string | true\n\nexport type ClientValidate = Omit<Validate, 'req'>\n\nexport type OptionObject = {\n label: LabelFunction | Record<string, string> | string\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: LabelFunction | Record<string, string> | false | string\n localized?: boolean\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n unique?: boolean\n validate?: Validate\n}\n\nexport type NumberField = FieldBase & {\n admin?: Admin & {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n }\n /** Maximum value accepted. Used in the default `validation` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validation` function. */\n min?: number\n type: 'number'\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type TextField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'text'\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type EmailField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n }\n type: 'email'\n}\n\nexport type TextareaField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'textarea'\n}\n\nexport type CheckboxField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n }\n type: 'checkbox'\n}\n\nexport type DateField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n }\n type: 'date'\n}\n\nexport type GroupField = Omit<FieldBase, 'required' | 'validation'> & {\n admin?: Admin & {\n hideGutter?: boolean\n }\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n}\n\nexport type RowAdmin = Omit<Admin, 'description'>\n\nexport type RowField = Omit<FieldBase, 'admin' | 'label' | 'name'> & {\n admin?: RowAdmin\n fields: Field[]\n type: 'row'\n}\n\nexport type CollapsibleField = Omit<FieldBase, 'label' | 'name'> & {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: Admin & {\n components: {\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n }\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: Admin & {\n initCollapsed?: boolean\n }\n label: Required<FieldBase['label']>\n }\n )\n\nexport type TabsAdmin = Omit<Admin, 'description'>\n\ntype TabBase = Omit<FieldBase, 'required' | 'validation'> & {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n}\n\nexport type NamedTab = TabBase & {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n}\n\nexport type UnnamedTab = Omit<TabBase, 'name'> & {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n}\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT'> & {\n admin?: TabsAdmin\n tabs: Tab[]\n type: 'tabs'\n}\n\nexport type TabAsField = Tab & {\n name?: string\n type: 'tab'\n}\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n Filter?: React.ComponentType<any>\n }\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n disableBulkEdit?: boolean\n position?: string\n width?: string\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UploadField = FieldBase & {\n admin?: {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n }\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n relationTo: string\n type: 'upload'\n}\n\ntype CodeAdmin = Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n editorOptions?: EditorProps['options']\n language?: string\n}\n\nexport type CodeField = Omit<FieldBase, 'admin'> & {\n admin?: CodeAdmin\n maxLength?: number\n minLength?: number\n type: 'code'\n}\n\ntype JSONAdmin = Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n editorOptions?: EditorProps['options']\n}\n\nexport type JSONField = Omit<FieldBase, 'admin'> & {\n admin?: JSONAdmin\n jsonSchema?: Record<string, unknown>\n type: 'json'\n}\n\nexport type SelectField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n isClearable?: boolean\n isSortable?: boolean\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n}\n\ntype SharedRelationshipProperties = FieldBase & {\n filterOptions?: FilterOptions\n hasMany?: boolean\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n }\n )\n\ntype RelationshipAdmin = Admin & {\n allowCreate?: boolean\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n isSortable?: boolean\n}\nexport type PolymorphicRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: { [collectionSlug: string]: string }\n }\n relationTo: string[]\n}\nexport type SingleRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: string\n }\n relationTo: string\n}\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type ValueWithRelation = {\n relationTo: string\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue =\n | (number | string)[]\n | ValueWithRelation\n | ValueWithRelation[]\n | (number | string)\n\nexport type RichTextField<\n Value extends object = any,\n AdapterProps = any,\n ExtraProperties = object,\n> = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n }\n editor?:\n | RichTextAdapter<Value, AdapterProps, AdapterProps>\n | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & ExtraProperties\n\nexport type ArrayField = FieldBase & {\n admin?: Admin & {\n components?: {\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n}\n\nexport type RadioField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n layout?: 'horizontal' | 'vertical'\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n}\n\nexport type Block = {\n admin?: {\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\n\nexport type BlockField = FieldBase & {\n admin?: Admin & {\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n }\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n}\n\nexport type PointField = FieldBase & {\n type: 'point'\n}\n\nexport type Field =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UIField\n | UploadField\n\nexport type FieldAffectingData =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type NonPresentationalField =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type FieldWithPath = Field & {\n path?: string\n}\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldPresentationalOnly = UIField\n\nexport type FieldWithMany = RelationshipField | SelectField\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\n\nexport function fieldHasSubFields(field: ClientFieldConfig | Field): field is FieldWithSubFields {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType(field: Field): field is ArrayField {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType(field: Field): field is BlockField {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType(field: Field): field is GroupField {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany(field: Field): field is FieldWithMany {\n return field.type === 'select' || field.type === 'relationship'\n}\n\nexport function fieldHasMaxDepth(field: Field): field is FieldWithMaxDepth {\n return (\n (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly(\n field: ClientFieldConfig | Field | TabAsField,\n): field is UIField {\n return field.type === 'ui'\n}\n\nexport function fieldAffectsData(\n field: ClientFieldConfig | Field | TabAsField,\n): field is FieldAffectingData {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName(tab: Tab): tab is NamedTab {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,qDAAqD,GACrD,uCAAuC,GA8kBvC,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AA8MA,OAAO,SAASC,kBAAkBC,KAAgC;IAChE,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBAAiBF,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBAAiBH,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBAAiBJ,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBAAkBZ,KAAY;IAC5C,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK;AACnD;AAEA,OAAO,SAASY,iBAAiBb,KAAY;IAC3C,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,cAAa,KAAM,OAAOD,MAAMc,QAAQ,KAAK;AAE5F;AAEA,OAAO,SAASC,0BACdf,KAA6C;IAE7C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,iBACdhB,KAA6C;IAE7C,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASiB,WAAWC,GAAQ;IACjC,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBnB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMoB,SAAS;AAChD"}
1
+ {"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-use-before-define */\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { CSSProperties } from 'react'\n\n//eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode)\nimport type React from 'react'\n\nimport type { RichTextAdapter, RichTextAdapterProvider } from '../../admin/RichText.js'\nimport type {\n ConditionalDateProps,\n Description,\n DescriptionComponent,\n ErrorProps,\n LabelProps,\n RowLabel,\n RowLabelComponent,\n} from '../../admin/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { CustomComponent, LabelFunction } from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { DocumentPreferences } from '../../preferences/types.js'\nimport type { Operation, PayloadRequestWithData, RequestContext, Where } from '../../types/index.js'\nimport type { ClientFieldConfig } from './client.js'\n\nexport type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<T>\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: SanitizedGlobalConfig | null\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: T\n overrideAccess?: boolean\n /** The document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: T\n /** The sibling data of the document before changes being applied, only in `beforeChange` and `afterChange` hook. */\n previousSiblingDoc?: T\n /** The previous value of the field, before changes, only in `beforeChange`, `afterChange` and `beforeValidate` hooks. */\n previousValue?: P\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequestWithData\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<S>\n /** The value of the field. */\n value?: P\n}\n\nexport type FieldHook<T extends TypeWithID = any, P = any, S = any> = (\n args: FieldHookArgs<T, P, S>,\n) => P | Promise<P>\n\nexport type FieldAccess<T extends TypeWithID = any, P = any, U = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<T>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: T\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `payload` object to interface with the payload API */\n req: PayloadRequestWithData<U>\n /**\n * Immediately adjacent data to this field. For example, if this is a `group` field, then `siblingData` will be the other fields within the group.\n */\n siblingData?: Partial<P>\n}) => Promise<boolean> | boolean\n\nexport type Condition<T extends TypeWithID = any, P = any> = (\n data: Partial<T>,\n siblingData: Partial<P>,\n { user }: { user: PayloadRequestWithData['user'] },\n) => boolean\n\nexport type FilterOptionsProps<T = any> = {\n /**\n * An object containing the full collection or global document currently being edited.\n */\n data: T\n /**\n * The `id` of the current document being edited. `id` is undefined during the `create` operation.\n */\n id: number | string\n /**\n * The collection `slug` to filter against, limited to this field's `relationTo` property.\n */\n relationTo: string\n /**\n * An object containing document data that is scoped to only fields within the same parent of this field.\n */\n siblingData: unknown\n /**\n * An object containing the currently authenticated user.\n */\n user: Partial<PayloadRequestWithData['user']>\n}\n\nexport type FilterOptions<T = any> =\n | ((options: FilterOptionsProps<T>) => Promise<Where | boolean> | Where | boolean)\n | Where\n | null\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: CustomComponent\n Description?: DescriptionComponent\n Field?: CustomComponent\n Filter?: React.ComponentType<any>\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n description?: Description\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n disabled?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: string\n}\n\nexport type Labels = {\n plural: LabelFunction | Record<string, string> | string\n singular: LabelFunction | Record<string, string> | string\n}\n\nexport type BaseValidateOptions<TData, TSiblingData> = {\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n preferences: DocumentPreferences\n req: PayloadRequestWithData\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<\n TData,\n TSiblingData\n> &\n TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = object,\n> = (\n value: TValue,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig>,\n) => Promise<string | true> | string | true\n\nexport type ClientValidate = Omit<Validate, 'req'>\n\nexport type OptionObject = {\n label: LabelFunction | Record<string, string> | string\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n /**\n * Runs before a document is duplicated to prevent errors in unique fields or return null to use defaultValue.\n */\n beforeDuplicate?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: LabelFunction | Record<string, string> | false | string\n localized?: boolean\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n unique?: boolean\n validate?: Validate\n}\n\nexport type NumberField = FieldBase & {\n admin?: Admin & {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n }\n /** Maximum value accepted. Used in the default `validation` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validation` function. */\n min?: number\n type: 'number'\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type TextField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'text'\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type EmailField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n }\n type: 'email'\n}\n\nexport type TextareaField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'textarea'\n}\n\nexport type CheckboxField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n }\n type: 'checkbox'\n}\n\nexport type DateField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n afterInput?: CustomComponent[]\n beforeInput?: CustomComponent[]\n }\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n }\n type: 'date'\n}\n\nexport type GroupField = Omit<FieldBase, 'required' | 'validation'> & {\n admin?: Admin & {\n hideGutter?: boolean\n }\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n}\n\nexport type RowAdmin = Omit<Admin, 'description'>\n\nexport type RowField = Omit<FieldBase, 'admin' | 'label' | 'name'> & {\n admin?: RowAdmin\n fields: Field[]\n type: 'row'\n}\n\nexport type CollapsibleField = Omit<FieldBase, 'label' | 'name'> & {\n fields: Field[]\n type: 'collapsible'\n} & (\n | {\n admin: Admin & {\n components: {\n RowLabel: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n }\n label?: Required<FieldBase['label']>\n }\n | {\n admin?: Admin & {\n initCollapsed?: boolean\n }\n label: Required<FieldBase['label']>\n }\n )\n\nexport type TabsAdmin = Omit<Admin, 'description'>\n\ntype TabBase = Omit<FieldBase, 'required' | 'validation'> & {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n}\n\nexport type NamedTab = TabBase & {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n}\n\nexport type UnnamedTab = Omit<TabBase, 'name'> & {\n interfaceName?: never\n /**\n * Can be either:\n * - A string, which will be used as the tab's label.\n * - An object, where the key is the language code and the value is the label.\n */\n label:\n | {\n [selectedLanguage: string]: string\n }\n | LabelFunction\n | string\n localized?: never\n}\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT'> & {\n admin?: TabsAdmin\n tabs: Tab[]\n type: 'tabs'\n}\n\nexport type TabAsField = Tab & {\n name?: string\n type: 'tab'\n}\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: CustomComponent\n Field: CustomComponent\n Filter?: React.ComponentType<any>\n }\n condition?: Condition\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n disableBulkEdit?: boolean\n /**\n * Shows / hides fields from appearing in the list view column selector.\n * @type boolean\n */\n disableListColumn?: boolean\n /**\n * Shows / hides fields from appearing in the list view filter options.\n * @type boolean\n */\n disableListFilter?: boolean\n position?: string\n width?: string\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UploadField = FieldBase & {\n admin?: {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n }\n filterOptions?: FilterOptions\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n relationTo: string\n type: 'upload'\n}\n\ntype CodeAdmin = Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n editorOptions?: EditorProps['options']\n language?: string\n}\n\nexport type CodeField = Omit<FieldBase, 'admin'> & {\n admin?: CodeAdmin\n maxLength?: number\n minLength?: number\n type: 'code'\n}\n\ntype JSONAdmin = Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n editorOptions?: EditorProps['options']\n}\n\nexport type JSONField = Omit<FieldBase, 'admin'> & {\n admin?: JSONAdmin\n jsonSchema?: Record<string, unknown>\n type: 'json'\n}\n\nexport type SelectField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n isClearable?: boolean\n isSortable?: boolean\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n hasMany?: boolean\n options: Option[]\n type: 'select'\n}\n\ntype SharedRelationshipProperties = FieldBase & {\n filterOptions?: FilterOptions\n hasMany?: boolean\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'relationship'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n }\n )\n\ntype RelationshipAdmin = Admin & {\n allowCreate?: boolean\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n isSortable?: boolean\n}\nexport type PolymorphicRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: { [collectionSlug: string]: string }\n }\n relationTo: string[]\n}\nexport type SingleRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: string\n }\n relationTo: string\n}\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type ValueWithRelation = {\n relationTo: string\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue =\n | (number | string)[]\n | ValueWithRelation\n | ValueWithRelation[]\n | (number | string)\n\nexport type RichTextField<\n Value extends object = any,\n AdapterProps = any,\n ExtraProperties = object,\n> = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n }\n editor?:\n | RichTextAdapter<Value, AdapterProps, AdapterProps>\n | RichTextAdapterProvider<Value, AdapterProps, AdapterProps>\n /**\n * Sets a maximum population depth for this field, regardless of the remaining depth when this field is reached.\n *\n * {@link https://payloadcms.com/docs/getting-started/concepts#field-level-max-depth}\n */\n maxDepth?: number\n type: 'richText'\n} & ExtraProperties\n\nexport type ArrayField = FieldBase & {\n admin?: Admin & {\n components?: {\n RowLabel?: RowLabelComponent\n } & Admin['components']\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n}\n\nexport type RadioField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: CustomComponent<ErrorProps>\n Label?: CustomComponent<LabelProps>\n }\n layout?: 'horizontal' | 'vertical'\n }\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n /**\n * Customize the DB enum name\n */\n enumName?: DBIdentifierName\n options: Option[]\n type: 'radio'\n}\n\nexport type Block = {\n admin?: {\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n }\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\n\nexport type BlockField = FieldBase & {\n admin?: Admin & {\n initCollapsed?: boolean\n /**\n * Disable drag and drop sorting\n */\n isSortable?: boolean\n }\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n}\n\nexport type PointField = FieldBase & {\n type: 'point'\n}\n\nexport type Field =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UIField\n | UploadField\n\nexport type FieldAffectingData =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type NonPresentationalField =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type FieldWithPath = Field & {\n path?: string\n}\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldPresentationalOnly = UIField\n\nexport type FieldWithMany = RelationshipField | SelectField\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\n\nexport function fieldHasSubFields(field: ClientFieldConfig | Field): field is FieldWithSubFields {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType(field: Field): field is ArrayField {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType(field: Field): field is BlockField {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType(field: Field): field is GroupField {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany(field: Field): field is FieldWithMany {\n return field.type === 'select' || field.type === 'relationship'\n}\n\nexport function fieldHasMaxDepth(field: Field): field is FieldWithMaxDepth {\n return (\n (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly(\n field: ClientFieldConfig | Field | TabAsField,\n): field is UIField {\n return field.type === 'ui'\n}\n\nexport function fieldAffectsData(\n field: ClientFieldConfig | Field | TabAsField,\n): field is FieldAffectingData {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName(tab: Tab): tab is NamedTab {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,qDAAqD,GACrD,uCAAuC,GAkmBvC,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AA8MA,OAAO,SAASC,kBAAkBC,KAAgC;IAChE,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBAAiBF,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBAAiBH,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBAAiBJ,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBAAkBZ,KAAY;IAC5C,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK;AACnD;AAEA,OAAO,SAASY,iBAAiBb,KAAY;IAC3C,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,cAAa,KAAM,OAAOD,MAAMc,QAAQ,KAAK;AAE5F;AAEA,OAAO,SAASC,0BACdf,KAA6C;IAE7C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,iBACdhB,KAA6C;IAE7C,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASiB,WAAWC,GAAQ;IACjC,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBnB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMoB,SAAS;AAChD"}
@@ -38,6 +38,8 @@ declare const _default: {
38
38
  custom?: Record<string, any>;
39
39
  description?: import("../admin/types.js").Description;
40
40
  disableBulkEdit?: boolean;
41
+ disableListColumn?: boolean;
42
+ disableListFilter?: boolean;
41
43
  disabled?: boolean;
42
44
  hidden?: boolean;
43
45
  position?: "sidebar";
@@ -1 +1 @@
1
- {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkDzE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CA8BlE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CA6BtE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAgEvF,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CASvE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkB5D,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAWtE,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC7E,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKnE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKlE,CAAA;AA0HD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmBnE,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CAuElB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmCnE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAYjE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAqB5F,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
1
+ {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,mBAAmB,CAAA;AAK1B,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkDzE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CA8BlE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAShE,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CA6BtE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAgEvF,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CASvE,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAkB5D,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAWtE,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC7E,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKnE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAKlE,CAAA;AAkID,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmBnE,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CACjC,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,iBAAiB,CAuElB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAmCnE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAYjE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAqB5F,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
@@ -1,4 +1,6 @@
1
1
  import Ajv from 'ajv';
2
+ import ObjectIdImport from 'bson-objectid';
3
+ const ObjectId = ObjectIdImport.default || ObjectIdImport;
2
4
  import { isNumber } from '../utilities/isNumber.js';
3
5
  import { isValidID } from '../utilities/isValidID.js';
4
6
  export const text = (value, { hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, req: { payload: { config }, t }, required })=>{
@@ -274,8 +276,12 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
274
276
  }
275
277
  const valueIDs = [];
276
278
  values.forEach((val)=>{
277
- if (typeof val === 'object' && val?.value) {
278
- valueIDs.push(val.value);
279
+ if (typeof val === 'object') {
280
+ if (val?.value) {
281
+ valueIDs.push(val.value);
282
+ } else if (ObjectId.isValid(val)) {
283
+ valueIDs.push(new ObjectId(val).toHexString());
284
+ }
279
285
  }
280
286
  if (typeof val === 'string' || typeof val === 'number') {
281
287
  valueIDs.push(val);
@@ -323,6 +329,9 @@ const validateFilterOptions = async (value, { id, data, filterOptions, relationT
323
329
  if (typeof val === 'string' || typeof val === 'number') {
324
330
  requestedID = val;
325
331
  }
332
+ if (typeof val === 'object' && ObjectId.isValid(val)) {
333
+ requestedID = new ObjectId(val).toHexString();
334
+ }
326
335
  }
327
336
  if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {
328
337
  collection = val.relationTo;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\nimport ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n if (typeof options?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object') {\n if (val?.value) {\n valueIDs.push(val.value)\n } else if (ObjectId.isValid(val)) {\n valueIDs.push(new ObjectId(val).toHexString())\n }\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n\n if (typeof val === 'object' && ObjectId.isValid(val)) {\n requestedID = new ObjectId(val).toHexString()\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","ObjectIdImport","ObjectId","default","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","isValid","toHexString","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAiBtD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,EA+K1E,CAAA"}
1
+ {"version":3,"file":"getBaseFields.d.ts","sourceRoot":"","sources":["../../src/uploads/getBaseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAiBtD,KAAK,OAAO,GAAG;IACb,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,mBAAmB,2BAA4B,OAAO,KAAG,KAAK,EAoL1E,CAAA"}
@@ -98,11 +98,14 @@ export const getBaseUploadFields = ({ collection, config })=>{
98
98
  ...url,
99
99
  hooks: {
100
100
  afterRead: [
101
- ({ data })=>generateURL({
101
+ ({ data, value })=>{
102
+ if (value) return value;
103
+ return generateURL({
102
104
  collectionSlug: collection.slug,
103
105
  config,
104
106
  filename: data?.filename
105
- })
107
+ });
108
+ }
106
109
  ]
107
110
  }
108
111
  },
@@ -135,7 +138,8 @@ export const getBaseUploadFields = ({ collection, config })=>{
135
138
  ...url,
136
139
  hooks: {
137
140
  afterRead: [
138
- ({ data })=>{
141
+ ({ data, value })=>{
142
+ if (value) return value;
139
143
  const sizeFilename = data?.sizes?.[size.name]?.filename;
140
144
  if (sizeFilename) {
141
145
  return `${config.serverURL}${config.routes.api}/${collection.slug}/file/${sizeFilename}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/getBaseFields.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type { Field } from '../fields/config/types.js'\nimport type { UploadConfig } from './types.js'\n\nimport { mimeTypeValidator } from './mimeTypeValidator.js'\n\ntype GenerateURLArgs = {\n collectionSlug: string\n config: Config\n filename?: string\n}\nconst generateURL = ({ collectionSlug, config, filename }: GenerateURLArgs) => {\n if (filename) {\n return `${config.serverURL || ''}${config.routes.api || ''}/${collectionSlug}/file/${filename}`\n }\n return undefined\n}\n\ntype Options = {\n collection: CollectionConfig\n config: Config\n}\n\nexport const getBaseUploadFields = ({ collection, config }: Options): Field[] => {\n const uploadOptions: UploadConfig = typeof collection.upload === 'object' ? collection.upload : {}\n\n const mimeType: Field = {\n name: 'mimeType',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'MIME Type',\n }\n\n const thumbnailURL: Field = {\n name: 'thumbnailURL',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n hooks: {\n afterRead: [\n ({ originalDoc }) => {\n const adminThumbnail =\n typeof collection.upload !== 'boolean' ? collection.upload?.adminThumbnail : undefined\n\n if (typeof adminThumbnail === 'function') {\n return adminThumbnail({ doc: originalDoc })\n }\n\n if (\n typeof adminThumbnail === 'string' &&\n 'sizes' in originalDoc &&\n originalDoc.sizes?.[adminThumbnail]?.filename\n ) {\n return generateURL({\n collectionSlug: collection.slug,\n config,\n filename: originalDoc.sizes?.[adminThumbnail].filename as string,\n })\n }\n\n return null\n },\n ],\n },\n label: 'Thumbnail URL',\n }\n\n const width: Field = {\n name: 'width',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:width'),\n }\n\n const height: Field = {\n name: 'height',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:height'),\n }\n\n const filesize: Field = {\n name: 'filesize',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:fileSize'),\n }\n\n const filename: Field = {\n name: 'filename',\n type: 'text',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n readOnly: true,\n },\n index: true,\n label: ({ t }) => t('upload:fileName'),\n unique: true,\n }\n\n const url: Field = {\n name: 'url',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'URL',\n }\n\n let uploadFields: Field[] = [\n {\n ...url,\n hooks: {\n afterRead: [\n ({ data }) =>\n generateURL({\n collectionSlug: collection.slug,\n config,\n filename: data?.filename,\n }),\n ],\n },\n },\n thumbnailURL,\n filename,\n mimeType,\n filesize,\n width,\n height,\n ]\n\n if (uploadOptions.mimeTypes) {\n mimeType.validate = mimeTypeValidator(uploadOptions.mimeTypes)\n }\n\n if (uploadOptions.imageSizes) {\n uploadFields = uploadFields.concat([\n {\n name: 'sizes',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: uploadOptions.imageSizes.map((size) => ({\n name: size.name,\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: [\n {\n ...url,\n hooks: {\n afterRead: [\n ({ data }) => {\n const sizeFilename = data?.sizes?.[size.name]?.filename\n\n if (sizeFilename) {\n return `${config.serverURL}${config.routes.api}/${collection.slug}/file/${sizeFilename}`\n }\n\n return null\n },\n ],\n },\n },\n width,\n height,\n mimeType,\n filesize,\n {\n ...filename,\n unique: false,\n },\n ],\n label: size.name,\n })),\n label: ({ t }) => t('upload:Sizes'),\n },\n ])\n }\n return uploadFields\n}\n"],"names":["mimeTypeValidator","generateURL","collectionSlug","config","filename","serverURL","routes","api","undefined","getBaseUploadFields","collection","uploadOptions","upload","mimeType","name","type","admin","hidden","readOnly","label","thumbnailURL","hooks","afterRead","originalDoc","adminThumbnail","doc","sizes","slug","width","t","height","filesize","disableBulkEdit","index","unique","url","uploadFields","data","mimeTypes","validate","imageSizes","concat","fields","map","size","sizeFilename"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/uploads/getBaseFields.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type { Field } from '../fields/config/types.js'\nimport type { UploadConfig } from './types.js'\n\nimport { mimeTypeValidator } from './mimeTypeValidator.js'\n\ntype GenerateURLArgs = {\n collectionSlug: string\n config: Config\n filename?: string\n}\nconst generateURL = ({ collectionSlug, config, filename }: GenerateURLArgs) => {\n if (filename) {\n return `${config.serverURL || ''}${config.routes.api || ''}/${collectionSlug}/file/${filename}`\n }\n return undefined\n}\n\ntype Options = {\n collection: CollectionConfig\n config: Config\n}\n\nexport const getBaseUploadFields = ({ collection, config }: Options): Field[] => {\n const uploadOptions: UploadConfig = typeof collection.upload === 'object' ? collection.upload : {}\n\n const mimeType: Field = {\n name: 'mimeType',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'MIME Type',\n }\n\n const thumbnailURL: Field = {\n name: 'thumbnailURL',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n hooks: {\n afterRead: [\n ({ originalDoc }) => {\n const adminThumbnail =\n typeof collection.upload !== 'boolean' ? collection.upload?.adminThumbnail : undefined\n\n if (typeof adminThumbnail === 'function') {\n return adminThumbnail({ doc: originalDoc })\n }\n\n if (\n typeof adminThumbnail === 'string' &&\n 'sizes' in originalDoc &&\n originalDoc.sizes?.[adminThumbnail]?.filename\n ) {\n return generateURL({\n collectionSlug: collection.slug,\n config,\n filename: originalDoc.sizes?.[adminThumbnail].filename as string,\n })\n }\n\n return null\n },\n ],\n },\n label: 'Thumbnail URL',\n }\n\n const width: Field = {\n name: 'width',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:width'),\n }\n\n const height: Field = {\n name: 'height',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:height'),\n }\n\n const filesize: Field = {\n name: 'filesize',\n type: 'number',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: ({ t }) => t('upload:fileSize'),\n }\n\n const filename: Field = {\n name: 'filename',\n type: 'text',\n admin: {\n disableBulkEdit: true,\n hidden: true,\n readOnly: true,\n },\n index: true,\n label: ({ t }) => t('upload:fileName'),\n unique: true,\n }\n\n const url: Field = {\n name: 'url',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'URL',\n }\n\n let uploadFields: Field[] = [\n {\n ...url,\n hooks: {\n afterRead: [\n ({ data, value }) => {\n if (value) return value\n\n return generateURL({\n collectionSlug: collection.slug,\n config,\n filename: data?.filename,\n })\n },\n ],\n },\n },\n thumbnailURL,\n filename,\n mimeType,\n filesize,\n width,\n height,\n ]\n\n if (uploadOptions.mimeTypes) {\n mimeType.validate = mimeTypeValidator(uploadOptions.mimeTypes)\n }\n\n if (uploadOptions.imageSizes) {\n uploadFields = uploadFields.concat([\n {\n name: 'sizes',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: uploadOptions.imageSizes.map((size) => ({\n name: size.name,\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: [\n {\n ...url,\n hooks: {\n afterRead: [\n ({ data, value }) => {\n if (value) return value\n\n const sizeFilename = data?.sizes?.[size.name]?.filename\n\n if (sizeFilename) {\n return `${config.serverURL}${config.routes.api}/${collection.slug}/file/${sizeFilename}`\n }\n\n return null\n },\n ],\n },\n },\n width,\n height,\n mimeType,\n filesize,\n {\n ...filename,\n unique: false,\n },\n ],\n label: size.name,\n })),\n label: ({ t }) => t('upload:Sizes'),\n },\n ])\n }\n return uploadFields\n}\n"],"names":["mimeTypeValidator","generateURL","collectionSlug","config","filename","serverURL","routes","api","undefined","getBaseUploadFields","collection","uploadOptions","upload","mimeType","name","type","admin","hidden","readOnly","label","thumbnailURL","hooks","afterRead","originalDoc","adminThumbnail","doc","sizes","slug","width","t","height","filesize","disableBulkEdit","index","unique","url","uploadFields","data","value","mimeTypes","validate","imageSizes","concat","fields","map","size","sizeFilename"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAKA,SAASA,iBAAiB,QAAQ,yBAAwB;AAO1D,MAAMC,cAAc,CAAC,EAAEC,cAAc,EAAEC,MAAM,EAAEC,QAAQ,EAAmB;IACxE,IAAIA,UAAU;QACZ,OAAO,CAAC,EAAED,OAAOE,SAAS,IAAI,GAAG,EAAEF,OAAOG,MAAM,CAACC,GAAG,IAAI,GAAG,CAAC,EAAEL,eAAe,MAAM,EAAEE,SAAS,CAAC;IACjG;IACA,OAAOI;AACT;AAOA,OAAO,MAAMC,sBAAsB,CAAC,EAAEC,UAAU,EAAEP,MAAM,EAAW;IACjE,MAAMQ,gBAA8B,OAAOD,WAAWE,MAAM,KAAK,WAAWF,WAAWE,MAAM,GAAG,CAAC;IAEjG,MAAMC,WAAkB;QACtBC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,MAAMC,eAAsB;QAC1BN,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAG,OAAO;YACLC,WAAW;gBACT,CAAC,EAAEC,WAAW,EAAE;oBACd,MAAMC,iBACJ,OAAOd,WAAWE,MAAM,KAAK,YAAYF,WAAWE,MAAM,EAAEY,iBAAiBhB;oBAE/E,IAAI,OAAOgB,mBAAmB,YAAY;wBACxC,OAAOA,eAAe;4BAAEC,KAAKF;wBAAY;oBAC3C;oBAEA,IACE,OAAOC,mBAAmB,YAC1B,WAAWD,eACXA,YAAYG,KAAK,EAAE,CAACF,eAAe,EAAEpB,UACrC;wBACA,OAAOH,YAAY;4BACjBC,gBAAgBQ,WAAWiB,IAAI;4BAC/BxB;4BACAC,UAAUmB,YAAYG,KAAK,EAAE,CAACF,eAAe,CAACpB;wBAChD;oBACF;oBAEA,OAAO;gBACT;aACD;QACH;QACAe,OAAO;IACT;IAEA,MAAMS,QAAe;QACnBd,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEU,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAMC,SAAgB;QACpBhB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEU,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAME,WAAkB;QACtBjB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO,CAAC,EAAEU,CAAC,EAAE,GAAKA,EAAE;IACtB;IAEA,MAAMzB,WAAkB;QACtBU,MAAM;QACNC,MAAM;QACNC,OAAO;YACLgB,iBAAiB;YACjBf,QAAQ;YACRC,UAAU;QACZ;QACAe,OAAO;QACPd,OAAO,CAAC,EAAEU,CAAC,EAAE,GAAKA,EAAE;QACpBK,QAAQ;IACV;IAEA,MAAMC,MAAa;QACjBrB,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,IAAIiB,eAAwB;QAC1B;YACE,GAAGD,GAAG;YACNd,OAAO;gBACLC,WAAW;oBACT,CAAC,EAAEe,IAAI,EAAEC,KAAK,EAAE;wBACd,IAAIA,OAAO,OAAOA;wBAElB,OAAOrC,YAAY;4BACjBC,gBAAgBQ,WAAWiB,IAAI;4BAC/BxB;4BACAC,UAAUiC,MAAMjC;wBAClB;oBACF;iBACD;YACH;QACF;QACAgB;QACAhB;QACAS;QACAkB;QACAH;QACAE;KACD;IAED,IAAInB,cAAc4B,SAAS,EAAE;QAC3B1B,SAAS2B,QAAQ,GAAGxC,kBAAkBW,cAAc4B,SAAS;IAC/D;IAEA,IAAI5B,cAAc8B,UAAU,EAAE;QAC5BL,eAAeA,aAAaM,MAAM,CAAC;YACjC;gBACE5B,MAAM;gBACNC,MAAM;gBACNC,OAAO;oBACLC,QAAQ;gBACV;gBACA0B,QAAQhC,cAAc8B,UAAU,CAACG,GAAG,CAAC,CAACC,OAAU,CAAA;wBAC9C/B,MAAM+B,KAAK/B,IAAI;wBACfC,MAAM;wBACNC,OAAO;4BACLC,QAAQ;wBACV;wBACA0B,QAAQ;4BACN;gCACE,GAAGR,GAAG;gCACNd,OAAO;oCACLC,WAAW;wCACT,CAAC,EAAEe,IAAI,EAAEC,KAAK,EAAE;4CACd,IAAIA,OAAO,OAAOA;4CAElB,MAAMQ,eAAeT,MAAMX,OAAO,CAACmB,KAAK/B,IAAI,CAAC,EAAEV;4CAE/C,IAAI0C,cAAc;gDAChB,OAAO,CAAC,EAAE3C,OAAOE,SAAS,CAAC,EAAEF,OAAOG,MAAM,CAACC,GAAG,CAAC,CAAC,EAAEG,WAAWiB,IAAI,CAAC,MAAM,EAAEmB,aAAa,CAAC;4CAC1F;4CAEA,OAAO;wCACT;qCACD;gCACH;4BACF;4BACAlB;4BACAE;4BACAjB;4BACAkB;4BACA;gCACE,GAAG3B,QAAQ;gCACX8B,QAAQ;4BACV;yBACD;wBACDf,OAAO0B,KAAK/B,IAAI;oBAClB,CAAA;gBACAK,OAAO,CAAC,EAAEU,CAAC,EAAE,GAAKA,EAAE;YACtB;SACD;IACH;IACA,OAAOO;AACT,EAAC"}
@@ -2,6 +2,7 @@
2
2
  import type express from 'express';
3
3
  import type serveStatic from 'serve-static';
4
4
  import type { ResizeOptions, Sharp } from 'sharp';
5
+ import type { TypeWithID } from '../collections/config/types.js';
5
6
  import type { PayloadRequestWithData } from '../types/index.js';
6
7
  export type FileSize = {
7
8
  filename: null | string;
@@ -86,6 +87,7 @@ export type UploadConfig = {
86
87
  /** Options for original upload file only. For sizes, set each formatOptions individually. */
87
88
  formatOptions?: ImageUploadFormatOptions;
88
89
  handlers?: ((req: PayloadRequestWithData, args: {
90
+ doc: TypeWithID;
89
91
  params: {
90
92
  collection: string;
91
93
  filename: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/uploads/types.ts"],"sourcesContent":["import type express from 'express'\nimport type serveStatic from 'serve-static'\nimport type { ResizeOptions, Sharp } from 'sharp'\n\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nexport type FileSize = {\n filename: null | string\n filesize: null | number\n height: null | number\n mimeType: null | string\n width: null | number\n}\n\nexport type FileSizes = {\n [size: string]: FileSize\n}\n\nexport type FileData = {\n filename: string\n filesize: number\n height: number\n mimeType: string\n sizes: FileSizes\n tempFilePath?: string\n url?: string\n width: number\n}\n\nexport type ProbedImageSize = {\n height: number\n width: number\n}\n\n/**\n * Params sent to the sharp toFormat() function\n * @link https://sharp.pixelplumbing.com/api-output#toformat\n */\nexport type ImageUploadFormatOptions = {\n format: Parameters<Sharp['toFormat']>[0]\n options?: Parameters<Sharp['toFormat']>[1]\n}\n\n/**\n * Params sent to the sharp trim() function\n * @link https://sharp.pixelplumbing.com/api-resize#trim\n */\nexport type ImageUploadTrimOptions = Parameters<Sharp['trim']>[0]\n\nexport type ImageSize = Omit<ResizeOptions, 'withoutEnlargement'> & {\n /**\n * @deprecated prefer position\n */\n crop?: string // comes from sharp package\n formatOptions?: ImageUploadFormatOptions\n name: string\n trimOptions?: ImageUploadTrimOptions\n /**\n * When an uploaded image is smaller than the defined image size, we have 3 options:\n *\n * `undefined | false | true`\n *\n * 1. `undefined` [default]: uploading images with smaller width AND height than the image size will return null\n * 2. `false`: always enlarge images to the image size\n * 3. `true`: if the image is smaller than the image size, return the original image\n */\n withoutEnlargement?: ResizeOptions['withoutEnlargement']\n}\n\nexport type GetAdminThumbnail = (args: { doc: Record<string, unknown> }) => false | null | string\n\nexport type UploadConfig = {\n /**\n * The adapter to use for uploads.\n */\n adapter?: string\n /**\n * Represents an admin thumbnail, which can be either a React component or a string.\n * - If a string, it should be one of the image size names.\n * - If a React component, register a function that generates the thumbnail URL using the `useAdminThumbnail` hook.\n **/\n adminThumbnail?: GetAdminThumbnail | string\n crop?: boolean\n disableLocalStorage?: boolean\n /**\n * Accepts existing headers and can filter/modify them.\n *\n * Useful for adding custom headers to fetch from external providers.\n */\n externalFileHeaderFilter?: (headers: Record<string, string>) => Record<string, string>\n filesRequiredOnCreate?: boolean\n focalPoint?: boolean\n /** Options for original upload file only. For sizes, set each formatOptions individually. */\n formatOptions?: ImageUploadFormatOptions\n handlers?: ((\n req: PayloadRequestWithData,\n args: { params: { collection: string; filename: string } },\n ) => Promise<Response> | Response)[]\n imageSizes?: ImageSize[]\n mimeTypes?: string[]\n resizeOptions?: ResizeOptions\n staticDir?: string\n staticOptions?: serveStatic.ServeStaticOptions<express.Response<any, Record<string, any>>>\n trimOptions?: ImageUploadTrimOptions\n}\n\nexport type SanitizedUploadConfig = UploadConfig & {\n staticDir: UploadConfig['staticDir']\n}\n\nexport type File = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n}\n\nexport type FileToSave = {\n buffer: Buffer\n path: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AAqHA,WAGC"}
1
+ {"version":3,"sources":["../../src/uploads/types.ts"],"sourcesContent":["import type express from 'express'\nimport type serveStatic from 'serve-static'\nimport type { ResizeOptions, Sharp } from 'sharp'\n\nimport type { TypeWithID } from '../collections/config/types.js'\nimport type { PayloadRequestWithData } from '../types/index.js'\n\nexport type FileSize = {\n filename: null | string\n filesize: null | number\n height: null | number\n mimeType: null | string\n width: null | number\n}\n\nexport type FileSizes = {\n [size: string]: FileSize\n}\n\nexport type FileData = {\n filename: string\n filesize: number\n height: number\n mimeType: string\n sizes: FileSizes\n tempFilePath?: string\n url?: string\n width: number\n}\n\nexport type ProbedImageSize = {\n height: number\n width: number\n}\n\n/**\n * Params sent to the sharp toFormat() function\n * @link https://sharp.pixelplumbing.com/api-output#toformat\n */\nexport type ImageUploadFormatOptions = {\n format: Parameters<Sharp['toFormat']>[0]\n options?: Parameters<Sharp['toFormat']>[1]\n}\n\n/**\n * Params sent to the sharp trim() function\n * @link https://sharp.pixelplumbing.com/api-resize#trim\n */\nexport type ImageUploadTrimOptions = Parameters<Sharp['trim']>[0]\n\nexport type ImageSize = Omit<ResizeOptions, 'withoutEnlargement'> & {\n /**\n * @deprecated prefer position\n */\n crop?: string // comes from sharp package\n formatOptions?: ImageUploadFormatOptions\n name: string\n trimOptions?: ImageUploadTrimOptions\n /**\n * When an uploaded image is smaller than the defined image size, we have 3 options:\n *\n * `undefined | false | true`\n *\n * 1. `undefined` [default]: uploading images with smaller width AND height than the image size will return null\n * 2. `false`: always enlarge images to the image size\n * 3. `true`: if the image is smaller than the image size, return the original image\n */\n withoutEnlargement?: ResizeOptions['withoutEnlargement']\n}\n\nexport type GetAdminThumbnail = (args: { doc: Record<string, unknown> }) => false | null | string\n\nexport type UploadConfig = {\n /**\n * The adapter to use for uploads.\n */\n adapter?: string\n /**\n * Represents an admin thumbnail, which can be either a React component or a string.\n * - If a string, it should be one of the image size names.\n * - If a React component, register a function that generates the thumbnail URL using the `useAdminThumbnail` hook.\n **/\n adminThumbnail?: GetAdminThumbnail | string\n crop?: boolean\n disableLocalStorage?: boolean\n /**\n * Accepts existing headers and can filter/modify them.\n *\n * Useful for adding custom headers to fetch from external providers.\n */\n externalFileHeaderFilter?: (headers: Record<string, string>) => Record<string, string>\n filesRequiredOnCreate?: boolean\n focalPoint?: boolean\n /** Options for original upload file only. For sizes, set each formatOptions individually. */\n formatOptions?: ImageUploadFormatOptions\n handlers?: ((\n req: PayloadRequestWithData,\n args: { doc: TypeWithID; params: { collection: string; filename: string } },\n ) => Promise<Response> | Response)[]\n imageSizes?: ImageSize[]\n mimeTypes?: string[]\n resizeOptions?: ResizeOptions\n staticDir?: string\n staticOptions?: serveStatic.ServeStaticOptions<express.Response<any, Record<string, any>>>\n trimOptions?: ImageUploadTrimOptions\n}\n\nexport type SanitizedUploadConfig = UploadConfig & {\n staticDir: UploadConfig['staticDir']\n}\n\nexport type File = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n}\n\nexport type FileToSave = {\n buffer: Buffer\n path: string\n}\n"],"names":[],"rangeMappings":"","mappings":"AAsHA,WAGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-beta.29",
3
+ "version": "3.0.0-beta.30",
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.29"
99
+ "@payloadcms/translations": "3.0.0-beta.30"
100
100
  },
101
101
  "devDependencies": {
102
102
  "@monaco-editor/react": "4.5.1",