@graphcommerce/next-config 9.0.4-canary.0 → 9.0.4-canary.10

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 (61) hide show
  1. package/CHANGELOG.md +28 -8
  2. package/__tests__/commands/copyFiles.ts +8 -5
  3. package/__tests__/config/utils/__snapshots__/mergeEnvIntoConfig.ts.snap +0 -905
  4. package/__tests__/config/utils/mergeEnvIntoConfig.ts +21 -3
  5. package/__tests__/config/utils/replaceConfigInString.ts +0 -1
  6. package/__tests__/interceptors/findPlugins.ts +270 -272
  7. package/__tests__/interceptors/generateInterceptors.ts +1 -0
  8. package/__tests__/utils/resolveDependenciesSync.ts +45 -44
  9. package/dist/generated/config.js +110 -116
  10. package/dist/index.js +3359 -26
  11. package/package.json +34 -8
  12. package/src/commands/codegen.ts +3 -3
  13. package/src/commands/copyFiles.ts +14 -7
  14. package/src/config/commands/generateConfig.ts +17 -6
  15. package/src/config/demoConfig.ts +0 -1
  16. package/src/config/loadConfig.ts +3 -9
  17. package/src/config/utils/mergeEnvIntoConfig.ts +9 -9
  18. package/src/generated/config.ts +305 -245
  19. package/src/interceptors/Visitor.ts +1 -1
  20. package/src/interceptors/findOriginalSource.ts +1 -1
  21. package/src/interceptors/generateInterceptor.ts +0 -2
  22. package/src/interceptors/parseStructure.ts +3 -3
  23. package/src/interceptors/writeInterceptors.ts +1 -1
  24. package/src/utils/resolveDependenciesSync.ts +44 -7
  25. package/src/withGraphCommerce.ts +30 -42
  26. package/tsconfig.json +1 -1
  27. package/__tests__/config/utils/rewriteLegancyEnv.ts +0 -78
  28. package/dist/commands/codegen.js +0 -18
  29. package/dist/commands/copyFiles.js +0 -292
  30. package/dist/config/commands/exportConfig.js +0 -16
  31. package/dist/config/commands/generateConfig.js +0 -57
  32. package/dist/config/demoConfig.js +0 -52
  33. package/dist/config/index.js +0 -19
  34. package/dist/config/loadConfig.js +0 -62
  35. package/dist/config/utils/configToImportMeta.js +0 -39
  36. package/dist/config/utils/diff.js +0 -33
  37. package/dist/config/utils/exportConfigToEnv.js +0 -31
  38. package/dist/config/utils/mergeEnvIntoConfig.js +0 -184
  39. package/dist/config/utils/replaceConfigInString.js +0 -12
  40. package/dist/config/utils/rewriteLegacyEnv.js +0 -115
  41. package/dist/interceptors/InterceptorPlugin.js +0 -108
  42. package/dist/interceptors/RenameVisitor.js +0 -19
  43. package/dist/interceptors/Visitor.js +0 -1414
  44. package/dist/interceptors/commands/codegenInterceptors.js +0 -22
  45. package/dist/interceptors/extractExports.js +0 -159
  46. package/dist/interceptors/findOriginalSource.js +0 -103
  47. package/dist/interceptors/findPlugins.js +0 -68
  48. package/dist/interceptors/generateInterceptor.js +0 -219
  49. package/dist/interceptors/generateInterceptors.js +0 -56
  50. package/dist/interceptors/parseStructure.js +0 -84
  51. package/dist/interceptors/swc.js +0 -15
  52. package/dist/interceptors/writeInterceptors.js +0 -44
  53. package/dist/utils/PackagesSort.js +0 -7
  54. package/dist/utils/TopologicalSort.js +0 -87
  55. package/dist/utils/isMonorepo.js +0 -47
  56. package/dist/utils/packageRoots.js +0 -31
  57. package/dist/utils/resolveDependenciesSync.js +0 -78
  58. package/dist/utils/resolveDependency.js +0 -70
  59. package/dist/utils/sig.js +0 -34
  60. package/dist/withGraphCommerce.js +0 -162
  61. package/src/config/utils/rewriteLegacyEnv.ts +0 -125
@@ -1,125 +0,0 @@
1
- import cloneDeep from 'lodash/cloneDeep'
2
- import type { GraphCommerceConfig } from '../../generated/config'
3
- import type { ApplyResult, ZodNode } from './mergeEnvIntoConfig'
4
- import { mergeEnvIntoConfig } from './mergeEnvIntoConfig'
5
-
6
- export function rewriteLegacyEnv(
7
- schema: ZodNode,
8
- env: Record<string, string | undefined>,
9
- config: Partial<GraphCommerceConfig> = {},
10
- ) {
11
- const clonedEnv: Record<string, string | undefined> = cloneDeep(env)
12
- const applied: ApplyResult = []
13
-
14
- function renamedTo(to: string) {
15
- return (envVar: string, envValue: string) => {
16
- applied.push({
17
- warning: [`should be renamed to ${to}='${envValue}'`],
18
- envVar,
19
- envValue,
20
- })
21
- clonedEnv[to] = envValue
22
- }
23
- }
24
-
25
- function notUsed() {
26
- return (envVar: string, envValue: string) => {
27
- applied.push({
28
- warning: ['should be removed'],
29
- envVar,
30
- envValue,
31
- })
32
- }
33
- }
34
-
35
- const parsers: Record<string, (key: string, value: string) => void> = {
36
- MAGENTO_ENDPOINT: renamedTo('GC_MAGENTO_ENDPOINT'),
37
- GRAPHCMS_URL: renamedTo('GC_HYGRAPH_ENDPOINT'),
38
- NEXT_PUBLIC_GRAPHQL_ENDPOINT: notUsed(),
39
- IMAGE_DOMAINS: (envVar: string, envValue: string) => {
40
- applied.push({
41
- warning: [
42
- 'should be removed: will automatically add the Magento/Hygraph URL. For more advanced configurations, see: https://nextjs.org/docs/api-reference/next/image#configuration-options',
43
- ],
44
- envVar,
45
- envValue,
46
- })
47
- },
48
- NEXT_PUBLIC_LOCALE_STORES: (envVar: string, envValue: string) => {
49
- const parsed = JSON.parse(envValue) as Record<string, string>
50
-
51
- applied.push({
52
- warning: ['env variable is is modified, rewritten to GC_STOREFRONT.'],
53
- envVar,
54
- envValue,
55
- })
56
-
57
- clonedEnv.GC_STOREFRONT = JSON.stringify(
58
- Object.entries(parsed).map(([locale, magentoStoreCode], index) => {
59
- if (!config.storefront) config.storefront = []
60
- config.storefront[index] = { ...config.storefront[index], locale, magentoStoreCode }
61
- return { locale, magentoStoreCode }
62
- }),
63
- )
64
- },
65
- NEXT_PUBLIC_SITE_URL: renamedTo('GC_CANONICAL_BASE_URL'),
66
- NEXT_PUBLIC_GTM_ID: renamedTo('GC_GOOGLE_TAGMANAGER_ID'),
67
- NEXT_PUBLIC_GOOGLE_ANALYTICS: (envVar: string, envValue: string) => {
68
- if (envValue.startsWith('{')) {
69
- const parsed = JSON.parse(envValue) as Record<string, string>
70
-
71
- clonedEnv.GC_GOOGLE_ANALYTICS_ID = 'enabled'
72
- if (!config.storefront) config.storefront = []
73
- config.storefront.forEach((storefront, index) => {
74
- if (parsed[storefront.locale]) {
75
- clonedEnv[`GC_STOREFRONT_${index}_GOOGLE_ANALYTICS_ID`] = parsed[storefront.locale]
76
- }
77
- })
78
-
79
- applied.push({
80
- warning: ['should be rewritten to GC_STOREFRONT_*_GOOGLE_ANALYTICS_ID'],
81
- envVar,
82
- envValue,
83
- })
84
-
85
- return
86
- }
87
- renamedTo('GC_GOOGLE_ANALYTICS_ID')
88
- },
89
- NEXT_PUBLIC_GOOGLE_RECAPTCHA_V3_SITE_KEY: renamedTo('GC_GOOGLE_RECAPTCHA_KEY'),
90
- NEXT_PUBLIC_DISPLAY_INCL_TAX: (envVar: string, envValue: string) => {
91
- const inclTax = envValue.split(',').map((i) => i.trim())
92
-
93
- if (!config.storefront) config.storefront = []
94
- config.storefront.forEach((storefront, index) => {
95
- if (!inclTax.includes(storefront.locale)) return
96
- clonedEnv[`GC_STOREFRONT_${index}_CART_DISPLAY_PRICES_INCL_TAX`] = '1'
97
- })
98
-
99
- applied.push({
100
- warning: ['env variable is renamed, move to configuration: cartDisplayPricesInclTax'],
101
- envVar,
102
- envValue,
103
- })
104
- clonedEnv.GC_DISPLAY_PRICES_INCL_TAX = envValue
105
- },
106
- PREVIEW_SECRET: renamedTo('GC_PREVIEW_SECRET'),
107
- DEMO_MAGENTO_GRAPHCOMMERCE: renamedTo('GC_DEMO_MODE'),
108
- }
109
-
110
- if (env.SKIP_MIGRATION === '1' || env.SKIP_MIGRATION === 'true') {
111
- return mergeEnvIntoConfig(schema, config, clonedEnv)
112
- }
113
-
114
- Object.entries(env).forEach(([key, value]) => {
115
- if (value === undefined) return
116
- try {
117
- parsers[key]?.(key, value)
118
- } catch (e) {
119
- console.error(`Error parsing ${key}`, e)
120
- }
121
- })
122
-
123
- const [newConfig, envApplied] = mergeEnvIntoConfig(schema, config, clonedEnv)
124
- return [newConfig, [...applied, ...envApplied] as ApplyResult] as const
125
- }