payload 3.0.0-beta.105 → 3.0.0-beta.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  2. package/dist/bin/generateImportMap/iterateConfig.js +4 -1
  3. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  4. package/dist/bin/loadEnv.d.ts.map +1 -1
  5. package/dist/bin/loadEnv.js +9 -6
  6. package/dist/bin/loadEnv.js.map +1 -1
  7. package/dist/collections/operations/duplicate.d.ts.map +1 -1
  8. package/dist/collections/operations/duplicate.js +10 -2
  9. package/dist/collections/operations/duplicate.js.map +1 -1
  10. package/dist/config/find.d.ts +4 -0
  11. package/dist/config/find.d.ts.map +1 -1
  12. package/dist/config/find.js +18 -25
  13. package/dist/config/find.js.map +1 -1
  14. package/dist/config/types.d.ts +4 -0
  15. package/dist/config/types.d.ts.map +1 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
  18. package/dist/fields/baseFields/baseIDField.js +5 -0
  19. package/dist/fields/baseFields/baseIDField.js.map +1 -1
  20. package/dist/fields/config/sanitize.d.ts.map +1 -1
  21. package/dist/fields/config/sanitize.js +0 -19
  22. package/dist/fields/config/sanitize.js.map +1 -1
  23. package/dist/fields/hooks/beforeChange/index.d.ts +1 -3
  24. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  25. package/dist/fields/hooks/beforeChange/index.js +1 -3
  26. package/dist/fields/hooks/beforeChange/index.js.map +1 -1
  27. package/dist/fields/hooks/beforeChange/promise.d.ts +1 -2
  28. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  29. package/dist/fields/hooks/beforeChange/promise.js +2 -18
  30. package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
  31. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +1 -2
  32. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  33. package/dist/fields/hooks/beforeChange/traverseFields.js +1 -2
  34. package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
  35. package/dist/fields/hooks/beforeDuplicate/index.d.ts +19 -0
  36. package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -0
  37. package/dist/fields/hooks/beforeDuplicate/index.js +25 -0
  38. package/dist/fields/hooks/beforeDuplicate/index.js.map +1 -0
  39. package/dist/fields/hooks/beforeDuplicate/promise.d.ts +18 -0
  40. package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -0
  41. package/dist/fields/hooks/beforeDuplicate/promise.js +300 -0
  42. package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -0
  43. package/dist/fields/hooks/beforeDuplicate/runHook.d.ts +3 -0
  44. package/dist/fields/hooks/beforeDuplicate/runHook.d.ts.map +1 -0
  45. package/dist/fields/hooks/beforeDuplicate/runHook.js +6 -0
  46. package/dist/fields/hooks/beforeDuplicate/runHook.js.map +1 -0
  47. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts +18 -0
  48. package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -0
  49. package/dist/fields/hooks/beforeDuplicate/traverseFields.js +21 -0
  50. package/dist/fields/hooks/beforeDuplicate/traverseFields.js.map +1 -0
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
  56. package/dist/utilities/dependencies/getDependencies.js +23 -22
  57. package/dist/utilities/dependencies/getDependencies.js.map +1 -1
  58. package/dist/utilities/findUp.d.ts +19 -0
  59. package/dist/utilities/findUp.d.ts.map +1 -0
  60. package/dist/utilities/findUp.js +102 -0
  61. package/dist/utilities/findUp.js.map +1 -0
  62. package/dist/utilities/telemetry/index.d.ts.map +1 -1
  63. package/dist/utilities/telemetry/index.js +9 -10
  64. package/dist/utilities/telemetry/index.js.map +1 -1
  65. package/package.json +3 -4
  66. package/dist/fields/baseFields/baseBeforeDuplicateArrays.d.ts +0 -6
  67. package/dist/fields/baseFields/baseBeforeDuplicateArrays.d.ts.map +0 -1
  68. package/dist/fields/baseFields/baseBeforeDuplicateArrays.js +0 -15
  69. package/dist/fields/baseFields/baseBeforeDuplicateArrays.js.map +0 -1
  70. package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts +0 -3
  71. package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts.map +0 -1
  72. package/dist/fields/hooks/beforeChange/beforeDuplicate.js +0 -6
  73. package/dist/fields/hooks/beforeChange/beforeDuplicate.js.map +0 -1
@@ -0,0 +1,102 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Synchronously walks up parent directories until a condition is met and/or one of the file names within the fileNames array is found.
5
+ */ export function findUpSync({ condition, dir, fileNames }) {
6
+ const { root } = path.parse(dir);
7
+ while(true){
8
+ if (fileNames?.length) {
9
+ let found = false;
10
+ for (const fileName of fileNames){
11
+ const filePath = path.join(dir, fileName);
12
+ const exists = pathExistsAndIsAccessibleSync(filePath);
13
+ if (exists) {
14
+ if (!condition) {
15
+ return filePath;
16
+ }
17
+ found = true;
18
+ break;
19
+ }
20
+ }
21
+ if (!found) {
22
+ dir = path.dirname(dir) // Move up one directory level.
23
+ ;
24
+ continue;
25
+ }
26
+ }
27
+ const result = condition(dir);
28
+ if (result === true) {
29
+ return dir;
30
+ }
31
+ if (typeof result === 'string' && result?.length) {
32
+ return result;
33
+ }
34
+ if (dir === root) {
35
+ return null // Reached the root directory without a match.
36
+ ;
37
+ }
38
+ dir = path.dirname(dir) // Move up one directory level.
39
+ ;
40
+ }
41
+ }
42
+ /**
43
+ * Asynchronously walks up parent directories until a condition is met and/or one of the file names within the fileNames array is found.
44
+ */ export async function findUp({ condition, dir, fileNames }) {
45
+ const { root } = path.parse(dir);
46
+ while(true){
47
+ if (fileNames?.length) {
48
+ let found = false;
49
+ for (const fileName of fileNames){
50
+ const filePath = path.resolve(dir, fileName);
51
+ const exists = await pathExistsAndIsAccessible(filePath);
52
+ if (exists) {
53
+ if (!condition) {
54
+ return filePath;
55
+ }
56
+ found = true;
57
+ break;
58
+ }
59
+ }
60
+ if (!found) {
61
+ dir = path.dirname(dir) // Move up one directory level.
62
+ ;
63
+ continue;
64
+ }
65
+ }
66
+ const result = await condition(dir);
67
+ if (result === true) {
68
+ return dir;
69
+ }
70
+ if (typeof result === 'string' && result?.length) {
71
+ return result;
72
+ }
73
+ if (dir === root) {
74
+ return null // Reached the root directory without a match.
75
+ ;
76
+ }
77
+ dir = path.dirname(dir) // Move up one directory level.
78
+ ;
79
+ }
80
+ }
81
+ // From https://github.com/sindresorhus/path-exists/blob/main/index.js
82
+ // fs.accessSync is preferred over fs.existsSync as it's usually a good idea
83
+ // to check if the process has permission to read/write to a file before doing so.
84
+ // Also see https://github.com/nodejs/node/issues/39960
85
+ export function pathExistsAndIsAccessibleSync(path) {
86
+ try {
87
+ fs.accessSync(path);
88
+ return true;
89
+ } catch {
90
+ return false;
91
+ }
92
+ }
93
+ export async function pathExistsAndIsAccessible(path) {
94
+ try {
95
+ await fs.promises.access(path);
96
+ return true;
97
+ } catch {
98
+ return false;
99
+ }
100
+ }
101
+
102
+ //# sourceMappingURL=findUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/findUp.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\n\n/**\n * Synchronously walks up parent directories until a condition is met and/or one of the file names within the fileNames array is found.\n */\nexport function findUpSync({\n condition,\n dir,\n fileNames,\n}: {\n condition?: (dir: string) => boolean | Promise<boolean | string> | string\n dir: string\n fileNames?: string[]\n}): null | string {\n const { root } = path.parse(dir)\n\n while (true) {\n if (fileNames?.length) {\n let found = false\n for (const fileName of fileNames) {\n const filePath = path.join(dir, fileName)\n const exists = pathExistsAndIsAccessibleSync(filePath)\n if (exists) {\n if (!condition) {\n return filePath\n }\n found = true\n break\n }\n }\n if (!found) {\n dir = path.dirname(dir) // Move up one directory level.\n continue\n }\n }\n const result = condition(dir)\n if (result === true) {\n return dir\n }\n if (typeof result === 'string' && result?.length) {\n return result\n }\n if (dir === root) {\n return null // Reached the root directory without a match.\n }\n dir = path.dirname(dir) // Move up one directory level.\n }\n}\n\n/**\n * Asynchronously walks up parent directories until a condition is met and/or one of the file names within the fileNames array is found.\n */\nexport async function findUp({\n condition,\n dir,\n fileNames,\n}: {\n condition?: (dir: string) => boolean | Promise<boolean | string> | string\n dir: string\n fileNames?: string[]\n}): Promise<null | string> {\n const { root } = path.parse(dir)\n\n while (true) {\n if (fileNames?.length) {\n let found = false\n for (const fileName of fileNames) {\n const filePath = path.resolve(dir, fileName)\n const exists = await pathExistsAndIsAccessible(filePath)\n if (exists) {\n if (!condition) {\n return filePath\n }\n found = true\n break\n }\n }\n if (!found) {\n dir = path.dirname(dir) // Move up one directory level.\n continue\n }\n }\n const result = await condition(dir)\n if (result === true) {\n return dir\n }\n if (typeof result === 'string' && result?.length) {\n return result\n }\n if (dir === root) {\n return null // Reached the root directory without a match.\n }\n dir = path.dirname(dir) // Move up one directory level.\n }\n}\n\n// From https://github.com/sindresorhus/path-exists/blob/main/index.js\n// fs.accessSync is preferred over fs.existsSync as it's usually a good idea\n// to check if the process has permission to read/write to a file before doing so.\n// Also see https://github.com/nodejs/node/issues/39960\nexport function pathExistsAndIsAccessibleSync(path: string) {\n try {\n fs.accessSync(path)\n return true\n } catch {\n return false\n }\n}\n\nexport async function pathExistsAndIsAccessible(path: string) {\n try {\n await fs.promises.access(path)\n return true\n } catch {\n return false\n }\n}\n"],"names":["fs","path","findUpSync","condition","dir","fileNames","root","parse","length","found","fileName","filePath","join","exists","pathExistsAndIsAccessibleSync","dirname","result","findUp","resolve","pathExistsAndIsAccessible","accessSync","promises","access"],"mappings":"AAAA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AAEvB;;CAEC,GACD,OAAO,SAASC,WAAW,EACzBC,SAAS,EACTC,GAAG,EACHC,SAAS,EAKV;IACC,MAAM,EAAEC,IAAI,EAAE,GAAGL,KAAKM,KAAK,CAACH;IAE5B,MAAO,KAAM;QACX,IAAIC,WAAWG,QAAQ;YACrB,IAAIC,QAAQ;YACZ,KAAK,MAAMC,YAAYL,UAAW;gBAChC,MAAMM,WAAWV,KAAKW,IAAI,CAACR,KAAKM;gBAChC,MAAMG,SAASC,8BAA8BH;gBAC7C,IAAIE,QAAQ;oBACV,IAAI,CAACV,WAAW;wBACd,OAAOQ;oBACT;oBACAF,QAAQ;oBACR;gBACF;YACF;YACA,IAAI,CAACA,OAAO;gBACVL,MAAMH,KAAKc,OAAO,CAACX,KAAK,+BAA+B;;gBACvD;YACF;QACF;QACA,MAAMY,SAASb,UAAUC;QACzB,IAAIY,WAAW,MAAM;YACnB,OAAOZ;QACT;QACA,IAAI,OAAOY,WAAW,YAAYA,QAAQR,QAAQ;YAChD,OAAOQ;QACT;QACA,IAAIZ,QAAQE,MAAM;YAChB,OAAO,KAAK,8CAA8C;;QAC5D;QACAF,MAAMH,KAAKc,OAAO,CAACX,KAAK,+BAA+B;;IACzD;AACF;AAEA;;CAEC,GACD,OAAO,eAAea,OAAO,EAC3Bd,SAAS,EACTC,GAAG,EACHC,SAAS,EAKV;IACC,MAAM,EAAEC,IAAI,EAAE,GAAGL,KAAKM,KAAK,CAACH;IAE5B,MAAO,KAAM;QACX,IAAIC,WAAWG,QAAQ;YACrB,IAAIC,QAAQ;YACZ,KAAK,MAAMC,YAAYL,UAAW;gBAChC,MAAMM,WAAWV,KAAKiB,OAAO,CAACd,KAAKM;gBACnC,MAAMG,SAAS,MAAMM,0BAA0BR;gBAC/C,IAAIE,QAAQ;oBACV,IAAI,CAACV,WAAW;wBACd,OAAOQ;oBACT;oBACAF,QAAQ;oBACR;gBACF;YACF;YACA,IAAI,CAACA,OAAO;gBACVL,MAAMH,KAAKc,OAAO,CAACX,KAAK,+BAA+B;;gBACvD;YACF;QACF;QACA,MAAMY,SAAS,MAAMb,UAAUC;QAC/B,IAAIY,WAAW,MAAM;YACnB,OAAOZ;QACT;QACA,IAAI,OAAOY,WAAW,YAAYA,QAAQR,QAAQ;YAChD,OAAOQ;QACT;QACA,IAAIZ,QAAQE,MAAM;YAChB,OAAO,KAAK,8CAA8C;;QAC5D;QACAF,MAAMH,KAAKc,OAAO,CAACX,KAAK,+BAA+B;;IACzD;AACF;AAEA,sEAAsE;AACtE,4EAA4E;AAC5E,kFAAkF;AAClF,uDAAuD;AACvD,OAAO,SAASU,8BAA8Bb,IAAY;IACxD,IAAI;QACFD,GAAGoB,UAAU,CAACnB;QACd,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA,OAAO,eAAekB,0BAA0BlB,IAAY;IAC1D,IAAI;QACF,MAAMD,GAAGqB,QAAQ,CAACC,MAAM,CAACrB;QACzB,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAK7D,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,IAAI,GAAG,MAAM,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,yBAAyB,EAAE,IAAI,GAAG,MAAM,CAAA;IACxC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,cAAc,GAAG,cAAc,GAAG,eAAe,CAAA;AAEtD,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAID,eAAO,MAAM,SAAS,uBAA8B,IAAI,KAAG,OAAO,CAAC,IAAI,CAyCtE,CAAA;AAiED,eAAO,MAAM,iBAAiB,gBAAiB,WAAW,KAAG,MAE5D,CAAA;AAED,eAAO,MAAM,mBAAmB,YACrB,OAAO,KACf,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,2BAA2B,GAAG,qBAAqB,CAcjF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAM7D,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,IAAI,GAAG,MAAM,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,yBAAyB,EAAE,IAAI,GAAG,MAAM,CAAA;IACxC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,cAAc,GAAG,cAAc,GAAG,eAAe,CAAA;AAEtD,KAAK,IAAI,GAAG;IACV,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAID,eAAO,MAAM,SAAS,uBAA8B,IAAI,KAAG,OAAO,CAAC,IAAI,CAyCtE,CAAA;AAmED,eAAO,MAAM,iBAAiB,gBAAiB,WAAW,KAAG,MAE5D,CAAA;AAED,eAAO,MAAM,mBAAmB,YACrB,OAAO,KACf,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,2BAA2B,GAAG,qBAAqB,CAcjF,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import { execSync } from 'child_process';
2
2
  import ciInfo from 'ci-info';
3
3
  import { randomBytes } from 'crypto';
4
- import { findUp } from 'find-up';
5
4
  import fs from 'fs';
6
5
  import path from 'path';
7
6
  import { fileURLToPath } from 'url';
7
+ import { findUp } from '../findUp.js';
8
8
  import { Conf } from './conf/index.js';
9
9
  import { oneWayHash } from './oneWayHash.js';
10
10
  let baseEvent = null;
@@ -89,18 +89,17 @@ const getPackageJSON = async ()=>{
89
89
  // Old logic
90
90
  const filename = fileURLToPath(import.meta.url);
91
91
  const dirname = path.dirname(filename);
92
- packageJSONPath = await findUp('package.json', {
93
- cwd: dirname
92
+ packageJSONPath = await findUp({
93
+ dir: dirname,
94
+ fileNames: [
95
+ 'package.json'
96
+ ]
94
97
  });
95
- const jsonContent = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'));
96
- return {
97
- packageJSON: jsonContent,
98
- packageJSONPath
99
- };
100
98
  }
101
- const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'));
99
+ const jsonContentString = await fs.promises.readFile(packageJSONPath, 'utf-8');
100
+ const jsonContent = JSON.parse(jsonContentString);
102
101
  return {
103
- packageJSON,
102
+ packageJSON: jsonContent,
104
103
  packageJSONPath
105
104
  };
106
105
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ciInfo from 'ci-info'\nimport { randomBytes } from 'crypto'\nimport { findUp } from 'find-up'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\n\nimport { Conf } from './conf/index.js'\nimport { oneWayHash } from './oneWayHash.js'\n\nexport type BaseEvent = {\n ciName: null | string\n dbAdapter: string\n emailAdapter: null | string\n envID: string\n isCI: boolean\n locales: string[]\n localizationDefaultLocale: null | string\n localizationEnabled: boolean\n nodeEnv: string\n nodeVersion: string\n payloadVersion: string\n projectID: string\n uploadAdapters: string[]\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args = {\n event: TelemetryEvent\n payload: Payload\n}\n\nlet baseEvent: BaseEvent | null = null\n\nexport const sendEvent = async ({ event, payload }: Args): Promise<void> => {\n try {\n const { packageJSON, packageJSONPath } = await getPackageJSON()\n\n // Only generate the base event once\n if (!baseEvent) {\n baseEvent = {\n ciName: ciInfo.isCI ? ciInfo.name : null,\n envID: getEnvID(),\n isCI: ciInfo.isCI,\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadVersion: getPayloadVersion(packageJSON),\n projectID: getProjectID(payload, packageJSON),\n ...getLocalizationInfo(payload),\n dbAdapter: payload.db.name,\n emailAdapter: payload.email?.name || null,\n uploadAdapters: payload.config.upload.adapters,\n }\n }\n\n if (process.env.PAYLOAD_TELEMETRY_DEBUG) {\n payload.logger.info({\n event: { ...baseEvent, ...event, packageJSONPath },\n msg: 'Telemetry Event',\n })\n return\n }\n\n if (payload.config.telemetry !== false) {\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n }\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (payload: Payload, packageJSON: PackageJSON): string => {\n const projectID =\n getGitID(payload) ||\n getPackageJSONID(payload, packageJSON) ||\n payload.config.serverURL ||\n process.cwd()\n return oneWayHash(projectID, payload.secret)\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPackageJSON = async (): Promise<{\n packageJSON?: PackageJSON\n packageJSONPath: string\n}> => {\n let packageJSONPath = path.resolve(process.cwd(), 'package.json')\n\n if (!fs.existsSync(packageJSONPath)) {\n // Old logic\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n packageJSONPath = await findUp('package.json', { cwd: dirname })\n const jsonContent: PackageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'))\n return { packageJSON: jsonContent, packageJSONPath }\n }\n\n const packageJSON: PackageJSON = JSON.parse(fs.readFileSync(packageJSONPath, 'utf-8'))\n return { packageJSON, packageJSONPath }\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n\nexport const getLocalizationInfo = (\n payload: Payload,\n): Pick<BaseEvent, 'locales' | 'localizationDefaultLocale' | 'localizationEnabled'> => {\n if (!payload.config.localization) {\n return {\n locales: [],\n localizationDefaultLocale: null,\n localizationEnabled: false,\n }\n }\n\n return {\n locales: payload.config.localization.localeCodes,\n localizationDefaultLocale: payload.config.localization.defaultLocale,\n localizationEnabled: true,\n }\n}\n"],"names":["execSync","ciInfo","randomBytes","findUp","fs","path","fileURLToPath","Conf","oneWayHash","baseEvent","sendEvent","event","payload","packageJSON","packageJSONPath","getPackageJSON","ciName","isCI","name","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadVersion","getPayloadVersion","projectID","getProjectID","getLocalizationInfo","dbAdapter","db","emailAdapter","email","uploadAdapters","config","upload","adapters","PAYLOAD_TELEMETRY_DEBUG","logger","info","msg","telemetry","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","getGitID","getPackageJSONID","serverURL","cwd","secret","originBuffer","stdio","timeout","String","trim","resolve","existsSync","filename","url","dirname","jsonContent","parse","readFileSync","dependencies","localization","locales","localizationDefaultLocale","localizationEnabled","localeCodes","defaultLocale"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ciInfo from 'ci-info'\nimport { randomBytes } from 'crypto'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\n\nimport { findUp } from '../findUp.js'\nimport { Conf } from './conf/index.js'\nimport { oneWayHash } from './oneWayHash.js'\n\nexport type BaseEvent = {\n ciName: null | string\n dbAdapter: string\n emailAdapter: null | string\n envID: string\n isCI: boolean\n locales: string[]\n localizationDefaultLocale: null | string\n localizationEnabled: boolean\n nodeEnv: string\n nodeVersion: string\n payloadVersion: string\n projectID: string\n uploadAdapters: string[]\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args = {\n event: TelemetryEvent\n payload: Payload\n}\n\nlet baseEvent: BaseEvent | null = null\n\nexport const sendEvent = async ({ event, payload }: Args): Promise<void> => {\n try {\n const { packageJSON, packageJSONPath } = await getPackageJSON()\n\n // Only generate the base event once\n if (!baseEvent) {\n baseEvent = {\n ciName: ciInfo.isCI ? ciInfo.name : null,\n envID: getEnvID(),\n isCI: ciInfo.isCI,\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadVersion: getPayloadVersion(packageJSON),\n projectID: getProjectID(payload, packageJSON),\n ...getLocalizationInfo(payload),\n dbAdapter: payload.db.name,\n emailAdapter: payload.email?.name || null,\n uploadAdapters: payload.config.upload.adapters,\n }\n }\n\n if (process.env.PAYLOAD_TELEMETRY_DEBUG) {\n payload.logger.info({\n event: { ...baseEvent, ...event, packageJSONPath },\n msg: 'Telemetry Event',\n })\n return\n }\n\n if (payload.config.telemetry !== false) {\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n }\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (payload: Payload, packageJSON: PackageJSON): string => {\n const projectID =\n getGitID(payload) ||\n getPackageJSONID(payload, packageJSON) ||\n payload.config.serverURL ||\n process.cwd()\n return oneWayHash(projectID, payload.secret)\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPackageJSON = async (): Promise<{\n packageJSON?: PackageJSON\n packageJSONPath: string\n}> => {\n let packageJSONPath = path.resolve(process.cwd(), 'package.json')\n\n if (!fs.existsSync(packageJSONPath)) {\n // Old logic\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n packageJSONPath = await findUp({\n dir: dirname,\n fileNames: ['package.json'],\n })\n }\n\n const jsonContentString = await fs.promises.readFile(packageJSONPath, 'utf-8')\n const jsonContent: PackageJSON = JSON.parse(jsonContentString)\n return { packageJSON: jsonContent, packageJSONPath }\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n\nexport const getLocalizationInfo = (\n payload: Payload,\n): Pick<BaseEvent, 'locales' | 'localizationDefaultLocale' | 'localizationEnabled'> => {\n if (!payload.config.localization) {\n return {\n locales: [],\n localizationDefaultLocale: null,\n localizationEnabled: false,\n }\n }\n\n return {\n locales: payload.config.localization.localeCodes,\n localizationDefaultLocale: payload.config.localization.defaultLocale,\n localizationEnabled: true,\n }\n}\n"],"names":["execSync","ciInfo","randomBytes","fs","path","fileURLToPath","findUp","Conf","oneWayHash","baseEvent","sendEvent","event","payload","packageJSON","packageJSONPath","getPackageJSON","ciName","isCI","name","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadVersion","getPayloadVersion","projectID","getProjectID","getLocalizationInfo","dbAdapter","db","emailAdapter","email","uploadAdapters","config","upload","adapters","PAYLOAD_TELEMETRY_DEBUG","logger","info","msg","telemetry","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","getGitID","getPackageJSONID","serverURL","cwd","secret","originBuffer","stdio","timeout","String","trim","resolve","existsSync","filename","url","dirname","dir","fileNames","jsonContentString","promises","readFile","jsonContent","parse","dependencies","localization","locales","localizationDefaultLocale","localizationEnabled","localeCodes","defaultLocale"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-beta.105",
3
+ "version": "3.0.0-beta.107",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -80,8 +80,7 @@
80
80
  "console-table-printer": "2.11.2",
81
81
  "dataloader": "2.2.2",
82
82
  "deepmerge": "4.3.1",
83
- "file-type": "17.1.6",
84
- "find-up": "7.0.0",
83
+ "file-type": "19.3.0",
85
84
  "get-tsconfig": "^4.7.2",
86
85
  "http-status": "1.6.2",
87
86
  "image-size": "^1.1.1",
@@ -96,7 +95,7 @@
96
95
  "ts-essentials": "10.0.2",
97
96
  "tsx": "4.19.1",
98
97
  "uuid": "10.0.0",
99
- "@payloadcms/translations": "3.0.0-beta.105"
98
+ "@payloadcms/translations": "3.0.0-beta.107"
100
99
  },
101
100
  "devDependencies": {
102
101
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",
@@ -1,6 +0,0 @@
1
- import type { FieldHook } from '../config/types.js';
2
- /**
3
- * Arrays and Blocks need to clear ids beforeDuplicate
4
- */
5
- export declare const baseBeforeDuplicateArrays: FieldHook;
6
- //# sourceMappingURL=baseBeforeDuplicateArrays.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseBeforeDuplicateArrays.d.ts","sourceRoot":"","sources":["../../../src/fields/baseFields/baseBeforeDuplicateArrays.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAInD;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAQvC,CAAA"}
@@ -1,15 +0,0 @@
1
- import ObjectIdImport from 'bson-objectid';
2
- const ObjectId = ObjectIdImport.default || ObjectIdImport;
3
- /**
4
- * Arrays and Blocks need to clear ids beforeDuplicate
5
- */ export const baseBeforeDuplicateArrays = ({ value })=>{
6
- if (value) {
7
- value = value.map((item)=>{
8
- item.id = new ObjectId().toHexString();
9
- return item;
10
- });
11
- return value;
12
- }
13
- };
14
-
15
- //# sourceMappingURL=baseBeforeDuplicateArrays.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/fields/baseFields/baseBeforeDuplicateArrays.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\n\nimport type { FieldHook } from '../config/types.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n/**\n * Arrays and Blocks need to clear ids beforeDuplicate\n */\nexport const baseBeforeDuplicateArrays: FieldHook = ({ value }) => {\n if (value) {\n value = value.map((item) => {\n item.id = new ObjectId().toHexString()\n return item\n })\n return value\n }\n}\n"],"names":["ObjectIdImport","ObjectId","default","baseBeforeDuplicateArrays","value","map","item","id","toHexString"],"mappings":"AAAA,OAAOA,oBAAoB,gBAAe;AAI1C,MAAMC,WAAYD,eAAeE,OAAO,IACtCF;AACF;;CAEC,GACD,OAAO,MAAMG,4BAAuC,CAAC,EAAEC,KAAK,EAAE;IAC5D,IAAIA,OAAO;QACTA,QAAQA,MAAMC,GAAG,CAAC,CAACC;YACjBA,KAAKC,EAAE,GAAG,IAAIN,WAAWO,WAAW;YACpC,OAAOF;QACT;QACA,OAAOF;IACT;AACF,EAAC"}
@@ -1,3 +0,0 @@
1
- import type { FieldHookArgs } from '../../config/types.js';
2
- export declare const beforeDuplicate: (args: FieldHookArgs) => Promise<any>;
3
- //# sourceMappingURL=beforeDuplicate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"beforeDuplicate.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeChange/beforeDuplicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,eAAO,MAAM,eAAe,SAAgB,aAAa,iBAIlC,CAAA"}
@@ -1,6 +0,0 @@
1
- export const beforeDuplicate = async (args)=>await args.field.hooks.beforeDuplicate.reduce(async (priorHook, currentHook)=>{
2
- await priorHook;
3
- return await currentHook(args);
4
- }, Promise.resolve());
5
-
6
- //# sourceMappingURL=beforeDuplicate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/fields/hooks/beforeChange/beforeDuplicate.ts"],"sourcesContent":["import type { FieldHookArgs } from '../../config/types.js'\n\nexport const beforeDuplicate = async (args: FieldHookArgs) =>\n await args.field.hooks.beforeDuplicate.reduce(async (priorHook, currentHook) => {\n await priorHook\n return await currentHook(args)\n }, Promise.resolve())\n"],"names":["beforeDuplicate","args","field","hooks","reduce","priorHook","currentHook","Promise","resolve"],"mappings":"AAEA,OAAO,MAAMA,kBAAkB,OAAOC,OACpC,MAAMA,KAAKC,KAAK,CAACC,KAAK,CAACH,eAAe,CAACI,MAAM,CAAC,OAAOC,WAAWC;QAC9D,MAAMD;QACN,OAAO,MAAMC,YAAYL;IAC3B,GAAGM,QAAQC,OAAO,IAAG"}