payload 3.0.0-alpha.34 → 3.0.0-alpha.36

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 (41) hide show
  1. package/bin.js +18 -0
  2. package/dist/bin/generateTypes.d.ts.map +1 -1
  3. package/dist/bin/generateTypes.js +1 -10
  4. package/dist/bin/index.d.ts +1 -1
  5. package/dist/bin/index.d.ts.map +1 -1
  6. package/dist/bin/index.js +21 -23
  7. package/dist/bin/migrate.d.ts +7 -1
  8. package/dist/bin/migrate.d.ts.map +1 -1
  9. package/dist/bin/migrate.js +3 -13
  10. package/dist/bin/register/clientExtensions.d.ts +2 -0
  11. package/dist/bin/register/clientExtensions.d.ts.map +1 -0
  12. package/dist/bin/register/clientExtensions.js +13 -0
  13. package/dist/bin/register/index.d.ts +34 -0
  14. package/dist/bin/register/index.d.ts.map +1 -0
  15. package/dist/bin/register/index.js +95 -0
  16. package/dist/bin/register/read-default-tsconfig.d.ts +4 -0
  17. package/dist/bin/register/read-default-tsconfig.d.ts.map +1 -0
  18. package/dist/bin/register/read-default-tsconfig.js +92 -0
  19. package/dist/bin/register/register.d.ts +15 -0
  20. package/dist/bin/register/register.d.ts.map +1 -0
  21. package/dist/bin/register/register.js +92 -0
  22. package/dist/config/createClientConfig.d.ts +1241 -1
  23. package/dist/config/createClientConfig.d.ts.map +1 -1
  24. package/dist/config/createClientConfig.js +98 -50
  25. package/dist/config/find.d.ts +1 -2
  26. package/dist/config/find.d.ts.map +1 -1
  27. package/dist/config/find.js +2 -3
  28. package/dist/config/load.d.ts +3 -1
  29. package/dist/config/load.d.ts.map +1 -1
  30. package/dist/config/load.js +25 -9
  31. package/dist/config/types.d.ts +1 -1
  32. package/dist/config/types.d.ts.map +1 -1
  33. package/dist/config/types.js +1 -1
  34. package/dist/globals/config/sanitize.d.ts.map +1 -1
  35. package/dist/globals/config/sanitize.js +6 -2
  36. package/dist/globals/operations/local/update.d.ts.map +1 -0
  37. package/package.json +7 -3
  38. package/bin.cjs +0 -41
  39. package/dist/config/clientFiles.d.ts +0 -2
  40. package/dist/config/clientFiles.d.ts.map +0 -1
  41. package/dist/config/clientFiles.js +0 -13
@@ -0,0 +1,92 @@
1
+ import { transform, transformSync } from '@swc-node/core';
2
+ import { SourcemapMap, installSourceMapSupport } from '@swc-node/sourcemap-support';
3
+ import { getTsconfig } from 'get-tsconfig';
4
+ import { platform } from 'os';
5
+ import { resolve } from 'path';
6
+ import { addHook } from 'pirates';
7
+ import * as ts from 'typescript';
8
+ import { tsCompilerOptionsToSwcConfig } from './read-default-tsconfig.js';
9
+ const DEFAULT_EXTENSIONS = [
10
+ '.js',
11
+ '.jsx',
12
+ '.es6',
13
+ '.es',
14
+ '.mjs',
15
+ '.ts',
16
+ '.tsx'
17
+ ];
18
+ const PLATFORM = platform();
19
+ const injectInlineSourceMap = ({ code, filename, map })=>{
20
+ if (map) {
21
+ SourcemapMap.set(filename, map);
22
+ const base64Map = Buffer.from(map, 'utf8').toString('base64');
23
+ const sourceMapContent = `//# sourceMappingURL=data:application/json;charset=utf-8;base64,${base64Map}`;
24
+ return `${code}\n${sourceMapContent}`;
25
+ }
26
+ return code;
27
+ };
28
+ export function compile(sourcecode, filename, options, async = false) {
29
+ if (filename.endsWith('.d.ts')) {
30
+ return '';
31
+ }
32
+ if (options.files && options.files.length) {
33
+ if (PLATFORM === 'win32' && options.files.every((file)=>filename !== resolve(process.cwd(), file))) {
34
+ return sourcecode;
35
+ }
36
+ if (PLATFORM !== 'win32' && options.files.every((file)=>!filename.endsWith(file))) {
37
+ return sourcecode;
38
+ }
39
+ }
40
+ if (options && typeof options.fallbackToTs === 'function' && options.fallbackToTs(filename)) {
41
+ delete options.fallbackToTs;
42
+ const { outputText, sourceMapText } = ts.transpileModule(sourcecode, {
43
+ compilerOptions: options,
44
+ fileName: filename
45
+ });
46
+ return injectInlineSourceMap({
47
+ code: outputText,
48
+ filename,
49
+ map: sourceMapText
50
+ });
51
+ }
52
+ let swcRegisterConfig;
53
+ if (process.env.SWCRC) {
54
+ // when SWCRC environment variable is set to true it will use swcrc file
55
+ swcRegisterConfig = {
56
+ swc: {
57
+ swcrc: true
58
+ }
59
+ };
60
+ } else {
61
+ swcRegisterConfig = tsCompilerOptionsToSwcConfig(options, filename);
62
+ }
63
+ if (async) {
64
+ return transform(sourcecode, filename, swcRegisterConfig).then(({ code, map })=>{
65
+ return injectInlineSourceMap({
66
+ code,
67
+ filename,
68
+ map
69
+ });
70
+ });
71
+ } else {
72
+ const { code, map } = transformSync(sourcecode, filename, swcRegisterConfig);
73
+ return injectInlineSourceMap({
74
+ code,
75
+ filename,
76
+ map
77
+ });
78
+ }
79
+ }
80
+ export function register(options = {}, hookOpts = {}) {
81
+ const locatedConfig = getTsconfig();
82
+ const tsconfig = locatedConfig.config.compilerOptions;
83
+ options = tsconfig;
84
+ // options.module = ts.ModuleKind.CommonJS
85
+ installSourceMapSupport();
86
+ return addHook((code, filename)=>compile(code, filename, options), {
87
+ exts: DEFAULT_EXTENSIONS,
88
+ ...hookOpts
89
+ });
90
+ }
91
+
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaW4vcmVnaXN0ZXIvcmVnaXN0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPcHRpb25zIH0gZnJvbSAnQHN3Yy1ub2RlL2NvcmUnXG5cbmltcG9ydCB7IHRyYW5zZm9ybSwgdHJhbnNmb3JtU3luYyB9IGZyb20gJ0Bzd2Mtbm9kZS9jb3JlJ1xuaW1wb3J0IHsgU291cmNlbWFwTWFwLCBpbnN0YWxsU291cmNlTWFwU3VwcG9ydCB9IGZyb20gJ0Bzd2Mtbm9kZS9zb3VyY2VtYXAtc3VwcG9ydCdcbmltcG9ydCB7IGdldFRzY29uZmlnIH0gZnJvbSAnZ2V0LXRzY29uZmlnJ1xuaW1wb3J0IHsgcGxhdGZvcm0gfSBmcm9tICdvcydcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgYWRkSG9vayB9IGZyb20gJ3BpcmF0ZXMnXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0J1xuXG5pbXBvcnQgeyB0c0NvbXBpbGVyT3B0aW9uc1RvU3djQ29uZmlnIH0gZnJvbSAnLi9yZWFkLWRlZmF1bHQtdHNjb25maWcuanMnXG5cbmNvbnN0IERFRkFVTFRfRVhURU5TSU9OUyA9IFsnLmpzJywgJy5qc3gnLCAnLmVzNicsICcuZXMnLCAnLm1qcycsICcudHMnLCAnLnRzeCddXG5jb25zdCBQTEFURk9STSA9IHBsYXRmb3JtKClcblxuY29uc3QgaW5qZWN0SW5saW5lU291cmNlTWFwID0gKHtcbiAgY29kZSxcbiAgZmlsZW5hbWUsXG4gIG1hcCxcbn06IHtcbiAgY29kZTogc3RyaW5nXG4gIGZpbGVuYW1lOiBzdHJpbmdcbiAgbWFwOiBzdHJpbmcgfCB1bmRlZmluZWRcbn0pOiBzdHJpbmcgPT4ge1xuICBpZiAobWFwKSB7XG4gICAgU291cmNlbWFwTWFwLnNldChmaWxlbmFtZSwgbWFwKVxuICAgIGNvbnN0IGJhc2U2NE1hcCA9IEJ1ZmZlci5mcm9tKG1hcCwgJ3V0ZjgnKS50b1N0cmluZygnYmFzZTY0JylcbiAgICBjb25zdCBzb3VyY2VNYXBDb250ZW50ID0gYC8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwke2Jhc2U2NE1hcH1gXG4gICAgcmV0dXJuIGAke2NvZGV9XFxuJHtzb3VyY2VNYXBDb250ZW50fWBcbiAgfVxuICByZXR1cm4gY29kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShcbiAgc291cmNlY29kZTogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMgJiB7IGZhbGxiYWNrVG9Ucz86IChmaWxlbmFtZTogc3RyaW5nKSA9PiBib29sZWFuIH0sXG4pOiBzdHJpbmdcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUoXG4gIHNvdXJjZWNvZGU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zICYgeyBmYWxsYmFja1RvVHM/OiAoZmlsZW5hbWU6IHN0cmluZykgPT4gYm9vbGVhbiB9LFxuICBhc3luYzogZmFsc2UsXG4pOiBzdHJpbmdcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGUoXG4gIHNvdXJjZWNvZGU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zICYgeyBmYWxsYmFja1RvVHM/OiAoZmlsZW5hbWU6IHN0cmluZykgPT4gYm9vbGVhbiB9LFxuICBhc3luYzogdHJ1ZSxcbik6IFByb21pc2U8c3RyaW5nPlxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGlsZShcbiAgc291cmNlY29kZTogc3RyaW5nLFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMgJiB7IGZhbGxiYWNrVG9Ucz86IChmaWxlbmFtZTogc3RyaW5nKSA9PiBib29sZWFuIH0sXG4gIGFzeW5jOiBib29sZWFuLFxuKTogUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21waWxlKFxuICBzb3VyY2Vjb2RlOiBzdHJpbmcsXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyAmIHsgZmFsbGJhY2tUb1RzPzogKGZpbGVuYW1lOiBzdHJpbmcpID0+IGJvb2xlYW4gfSxcbiAgYXN5bmMgPSBmYWxzZSxcbikge1xuICBpZiAoZmlsZW5hbWUuZW5kc1dpdGgoJy5kLnRzJykpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuICBpZiAob3B0aW9ucy5maWxlcyAmJiAob3B0aW9ucy5maWxlcyBhcyBzdHJpbmdbXSkubGVuZ3RoKSB7XG4gICAgaWYgKFxuICAgICAgUExBVEZPUk0gPT09ICd3aW4zMicgJiZcbiAgICAgIChvcHRpb25zLmZpbGVzIGFzIHN0cmluZ1tdKS5ldmVyeSgoZmlsZSkgPT4gZmlsZW5hbWUgIT09IHJlc29sdmUocHJvY2Vzcy5jd2QoKSwgZmlsZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gc291cmNlY29kZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBQTEFURk9STSAhPT0gJ3dpbjMyJyAmJlxuICAgICAgKG9wdGlvbnMuZmlsZXMgYXMgc3RyaW5nW10pLmV2ZXJ5KChmaWxlKSA9PiAhZmlsZW5hbWUuZW5kc1dpdGgoZmlsZSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gc291cmNlY29kZVxuICAgIH1cbiAgfVxuICBpZiAob3B0aW9ucyAmJiB0eXBlb2Ygb3B0aW9ucy5mYWxsYmFja1RvVHMgPT09ICdmdW5jdGlvbicgJiYgb3B0aW9ucy5mYWxsYmFja1RvVHMoZmlsZW5hbWUpKSB7XG4gICAgZGVsZXRlIG9wdGlvbnMuZmFsbGJhY2tUb1RzXG4gICAgY29uc3QgeyBvdXRwdXRUZXh0LCBzb3VyY2VNYXBUZXh0IH0gPSB0cy50cmFuc3BpbGVNb2R1bGUoc291cmNlY29kZSwge1xuICAgICAgY29tcGlsZXJPcHRpb25zOiBvcHRpb25zLFxuICAgICAgZmlsZU5hbWU6IGZpbGVuYW1lLFxuICAgIH0pXG4gICAgcmV0dXJuIGluamVjdElubGluZVNvdXJjZU1hcCh7IGNvZGU6IG91dHB1dFRleHQsIGZpbGVuYW1lLCBtYXA6IHNvdXJjZU1hcFRleHQgfSlcbiAgfVxuXG4gIGxldCBzd2NSZWdpc3RlckNvbmZpZzogT3B0aW9uc1xuICBpZiAocHJvY2Vzcy5lbnYuU1dDUkMpIHtcbiAgICAvLyB3aGVuIFNXQ1JDIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byB0cnVlIGl0IHdpbGwgdXNlIHN3Y3JjIGZpbGVcbiAgICBzd2NSZWdpc3RlckNvbmZpZyA9IHtcbiAgICAgIHN3Yzoge1xuICAgICAgICBzd2NyYzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN3Y1JlZ2lzdGVyQ29uZmlnID0gdHNDb21waWxlck9wdGlvbnNUb1N3Y0NvbmZpZyhvcHRpb25zLCBmaWxlbmFtZSlcbiAgfVxuXG4gIGlmIChhc3luYykge1xuICAgIHJldHVybiB0cmFuc2Zvcm0oc291cmNlY29kZSwgZmlsZW5hbWUsIHN3Y1JlZ2lzdGVyQ29uZmlnKS50aGVuKCh7IGNvZGUsIG1hcCB9KSA9PiB7XG4gICAgICByZXR1cm4gaW5qZWN0SW5saW5lU291cmNlTWFwKHsgY29kZSwgZmlsZW5hbWUsIG1hcCB9KVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBjb2RlLCBtYXAgfSA9IHRyYW5zZm9ybVN5bmMoc291cmNlY29kZSwgZmlsZW5hbWUsIHN3Y1JlZ2lzdGVyQ29uZmlnKVxuICAgIHJldHVybiBpbmplY3RJbmxpbmVTb3VyY2VNYXAoeyBjb2RlLCBmaWxlbmFtZSwgbWFwIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyKG9wdGlvbnM6IFBhcnRpYWw8dHMuQ29tcGlsZXJPcHRpb25zPiA9IHt9LCBob29rT3B0cyA9IHt9KSB7XG4gIGNvbnN0IGxvY2F0ZWRDb25maWcgPSBnZXRUc2NvbmZpZygpXG4gIGNvbnN0IHRzY29uZmlnID0gbG9jYXRlZENvbmZpZy5jb25maWcuY29tcGlsZXJPcHRpb25zIGFzIHVua25vd24gYXMgdHMuQ29tcGlsZXJPcHRpb25zXG4gIG9wdGlvbnMgPSB0c2NvbmZpZ1xuICAvLyBvcHRpb25zLm1vZHVsZSA9IHRzLk1vZHVsZUtpbmQuQ29tbW9uSlNcbiAgaW5zdGFsbFNvdXJjZU1hcFN1cHBvcnQoKVxuICByZXR1cm4gYWRkSG9vaygoY29kZSwgZmlsZW5hbWUpID0+IGNvbXBpbGUoY29kZSwgZmlsZW5hbWUsIG9wdGlvbnMpLCB7XG4gICAgZXh0czogREVGQVVMVF9FWFRFTlNJT05TLFxuICAgIC4uLmhvb2tPcHRzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybSIsInRyYW5zZm9ybVN5bmMiLCJTb3VyY2VtYXBNYXAiLCJpbnN0YWxsU291cmNlTWFwU3VwcG9ydCIsImdldFRzY29uZmlnIiwicGxhdGZvcm0iLCJyZXNvbHZlIiwiYWRkSG9vayIsInRzIiwidHNDb21waWxlck9wdGlvbnNUb1N3Y0NvbmZpZyIsIkRFRkFVTFRfRVhURU5TSU9OUyIsIlBMQVRGT1JNIiwiaW5qZWN0SW5saW5lU291cmNlTWFwIiwiY29kZSIsImZpbGVuYW1lIiwibWFwIiwic2V0IiwiYmFzZTY0TWFwIiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwic291cmNlTWFwQ29udGVudCIsImNvbXBpbGUiLCJzb3VyY2Vjb2RlIiwib3B0aW9ucyIsImFzeW5jIiwiZW5kc1dpdGgiLCJmaWxlcyIsImxlbmd0aCIsImV2ZXJ5IiwiZmlsZSIsInByb2Nlc3MiLCJjd2QiLCJmYWxsYmFja1RvVHMiLCJvdXRwdXRUZXh0Iiwic291cmNlTWFwVGV4dCIsInRyYW5zcGlsZU1vZHVsZSIsImNvbXBpbGVyT3B0aW9ucyIsImZpbGVOYW1lIiwic3djUmVnaXN0ZXJDb25maWciLCJlbnYiLCJTV0NSQyIsInN3YyIsInN3Y3JjIiwidGhlbiIsInJlZ2lzdGVyIiwiaG9va09w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