@constructive-io/graphql-codegen 2.31.0 → 3.0.0

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 (270) hide show
  1. package/README.md +429 -1691
  2. package/cli/index.d.ts +5 -2
  3. package/cli/index.js +98 -581
  4. package/cli/shared.d.ts +35 -0
  5. package/cli/shared.js +106 -0
  6. package/{esm/cli → core}/codegen/barrel.d.ts +1 -1
  7. package/{cli → core}/codegen/barrel.js +1 -4
  8. package/{esm/cli → core}/codegen/index.d.ts +15 -5
  9. package/{cli → core}/codegen/index.js +44 -24
  10. package/{cli → core}/codegen/invalidation.d.ts +2 -2
  11. package/{esm/cli → core}/codegen/mutation-keys.d.ts +2 -2
  12. package/{cli → core}/codegen/orm/client-generator.js +2 -3
  13. package/{esm/cli → core}/codegen/orm/index.d.ts +9 -2
  14. package/{cli → core}/codegen/orm/index.js +3 -2
  15. package/{cli → core}/codegen/query-keys.d.ts +2 -2
  16. package/core/codegen/shared/index.d.ts +39 -0
  17. package/core/codegen/shared/index.js +118 -0
  18. package/core/config/index.d.ts +5 -0
  19. package/core/config/index.js +13 -0
  20. package/core/config/loader.d.ts +18 -0
  21. package/{cli/commands/init.js → core/config/loader.js} +7 -94
  22. package/core/config/resolver.d.ts +46 -0
  23. package/core/config/resolver.js +104 -0
  24. package/core/database/index.d.ts +43 -0
  25. package/core/database/index.js +85 -0
  26. package/core/generate.d.ts +22 -0
  27. package/core/generate.js +192 -0
  28. package/core/index.d.ts +13 -1
  29. package/core/index.js +22 -2
  30. package/{cli → core}/introspect/fetch-schema.js +58 -9
  31. package/core/introspect/source/api-schemas.d.ts +44 -0
  32. package/core/introspect/source/api-schemas.js +122 -0
  33. package/core/introspect/source/database.d.ts +32 -0
  34. package/core/introspect/source/database.js +91 -0
  35. package/core/introspect/source/index.d.ts +112 -0
  36. package/core/introspect/source/index.js +173 -0
  37. package/core/introspect/source/pgpm-module.d.ts +83 -0
  38. package/core/introspect/source/pgpm-module.js +200 -0
  39. package/core/output/index.d.ts +4 -0
  40. package/core/output/index.js +9 -0
  41. package/core/output/writer.d.ts +38 -0
  42. package/core/output/writer.js +156 -0
  43. package/{cli/commands/shared.d.ts → core/pipeline/index.d.ts} +5 -3
  44. package/{cli/commands/shared.js → core/pipeline/index.js} +12 -5
  45. package/{cli → core}/watch/orchestrator.d.ts +25 -3
  46. package/{cli → core}/watch/orchestrator.js +35 -27
  47. package/{cli → core}/watch/types.d.ts +1 -1
  48. package/esm/cli/index.d.ts +5 -2
  49. package/esm/cli/index.js +97 -547
  50. package/esm/cli/shared.d.ts +35 -0
  51. package/esm/cli/shared.js +101 -0
  52. package/{cli → esm/core}/codegen/barrel.d.ts +1 -1
  53. package/esm/{cli → core}/codegen/barrel.js +1 -4
  54. package/{cli → esm/core}/codegen/index.d.ts +15 -5
  55. package/esm/{cli → core}/codegen/index.js +44 -24
  56. package/esm/{cli → core}/codegen/invalidation.d.ts +2 -2
  57. package/{cli → esm/core}/codegen/mutation-keys.d.ts +2 -2
  58. package/esm/{cli → core}/codegen/orm/client-generator.js +2 -3
  59. package/{cli → esm/core}/codegen/orm/index.d.ts +9 -2
  60. package/esm/{cli → core}/codegen/orm/index.js +3 -2
  61. package/esm/{cli → core}/codegen/query-keys.d.ts +2 -2
  62. package/esm/core/codegen/shared/index.d.ts +39 -0
  63. package/esm/core/codegen/shared/index.js +79 -0
  64. package/esm/core/config/index.d.ts +5 -0
  65. package/esm/core/config/index.js +5 -0
  66. package/esm/core/config/loader.d.ts +18 -0
  67. package/esm/core/config/loader.js +71 -0
  68. package/esm/core/config/resolver.d.ts +46 -0
  69. package/esm/core/config/resolver.js +100 -0
  70. package/esm/core/database/index.d.ts +43 -0
  71. package/esm/core/database/index.js +48 -0
  72. package/esm/core/generate.d.ts +22 -0
  73. package/esm/core/generate.js +186 -0
  74. package/esm/core/index.d.ts +13 -1
  75. package/esm/core/index.js +20 -1
  76. package/esm/{cli → core}/introspect/fetch-schema.js +55 -9
  77. package/esm/core/introspect/source/api-schemas.d.ts +44 -0
  78. package/esm/core/introspect/source/api-schemas.js +117 -0
  79. package/esm/core/introspect/source/database.d.ts +32 -0
  80. package/esm/core/introspect/source/database.js +87 -0
  81. package/esm/core/introspect/source/index.d.ts +112 -0
  82. package/esm/core/introspect/source/index.js +154 -0
  83. package/esm/core/introspect/source/pgpm-module.d.ts +83 -0
  84. package/esm/core/introspect/source/pgpm-module.js +194 -0
  85. package/esm/core/output/index.d.ts +4 -0
  86. package/esm/core/output/index.js +4 -0
  87. package/esm/core/output/writer.d.ts +38 -0
  88. package/esm/core/output/writer.js +119 -0
  89. package/esm/{cli/commands/shared.d.ts → core/pipeline/index.d.ts} +5 -3
  90. package/esm/{cli/commands/shared.js → core/pipeline/index.js} +9 -5
  91. package/esm/{cli → core}/watch/orchestrator.d.ts +25 -3
  92. package/esm/{cli → core}/watch/orchestrator.js +35 -27
  93. package/esm/{cli → core}/watch/types.d.ts +1 -1
  94. package/esm/index.d.ts +8 -3
  95. package/esm/index.js +9 -3
  96. package/esm/types/config.d.ts +110 -136
  97. package/esm/types/config.js +23 -148
  98. package/esm/types/index.d.ts +2 -2
  99. package/esm/types/index.js +1 -1
  100. package/index.d.ts +8 -3
  101. package/index.js +18 -8
  102. package/package.json +19 -11
  103. package/types/config.d.ts +110 -136
  104. package/types/config.js +28 -152
  105. package/types/index.d.ts +2 -2
  106. package/types/index.js +3 -3
  107. package/cli/commands/generate-orm.d.ts +0 -53
  108. package/cli/commands/generate-orm.js +0 -292
  109. package/cli/commands/generate.d.ts +0 -66
  110. package/cli/commands/generate.js +0 -431
  111. package/cli/commands/index.d.ts +0 -9
  112. package/cli/commands/index.js +0 -14
  113. package/cli/commands/init.d.ts +0 -35
  114. package/cli/introspect/source/index.d.ts +0 -48
  115. package/cli/introspect/source/index.js +0 -72
  116. package/esm/cli/commands/generate-orm.d.ts +0 -53
  117. package/esm/cli/commands/generate-orm.js +0 -289
  118. package/esm/cli/commands/generate.d.ts +0 -66
  119. package/esm/cli/commands/generate.js +0 -393
  120. package/esm/cli/commands/index.d.ts +0 -9
  121. package/esm/cli/commands/index.js +0 -6
  122. package/esm/cli/commands/init.d.ts +0 -35
  123. package/esm/cli/commands/init.js +0 -158
  124. package/esm/cli/introspect/source/index.d.ts +0 -48
  125. package/esm/cli/introspect/source/index.js +0 -54
  126. /package/{cli → core}/codegen/babel-ast.d.ts +0 -0
  127. /package/{cli → core}/codegen/babel-ast.js +0 -0
  128. /package/{cli → core}/codegen/client.d.ts +0 -0
  129. /package/{cli → core}/codegen/client.js +0 -0
  130. /package/{cli → core}/codegen/custom-mutations.d.ts +0 -0
  131. /package/{cli → core}/codegen/custom-mutations.js +0 -0
  132. /package/{cli → core}/codegen/custom-queries.d.ts +0 -0
  133. /package/{cli → core}/codegen/custom-queries.js +0 -0
  134. /package/{cli → core}/codegen/gql-ast.d.ts +0 -0
  135. /package/{cli → core}/codegen/gql-ast.js +0 -0
  136. /package/{cli → core}/codegen/invalidation.js +0 -0
  137. /package/{cli → core}/codegen/mutation-keys.js +0 -0
  138. /package/{cli → core}/codegen/mutations.d.ts +0 -0
  139. /package/{cli → core}/codegen/mutations.js +0 -0
  140. /package/{cli → core}/codegen/orm/barrel.d.ts +0 -0
  141. /package/{cli → core}/codegen/orm/barrel.js +0 -0
  142. /package/{cli → core}/codegen/orm/client-generator.d.ts +0 -0
  143. /package/{cli → core}/codegen/orm/client.d.ts +0 -0
  144. /package/{cli → core}/codegen/orm/client.js +0 -0
  145. /package/{cli → core}/codegen/orm/custom-ops-generator.d.ts +0 -0
  146. /package/{cli → core}/codegen/orm/custom-ops-generator.js +0 -0
  147. /package/{cli → core}/codegen/orm/input-types-generator.d.ts +0 -0
  148. /package/{cli → core}/codegen/orm/input-types-generator.js +0 -0
  149. /package/{cli → core}/codegen/orm/model-generator.d.ts +0 -0
  150. /package/{cli → core}/codegen/orm/model-generator.js +0 -0
  151. /package/{cli → core}/codegen/orm/query-builder.d.ts +0 -0
  152. /package/{cli → core}/codegen/orm/query-builder.js +0 -0
  153. /package/{cli → core}/codegen/orm/query-builder.ts +0 -0
  154. /package/{cli → core}/codegen/orm/select-types.d.ts +0 -0
  155. /package/{cli → core}/codegen/orm/select-types.js +0 -0
  156. /package/{cli → core}/codegen/queries.d.ts +0 -0
  157. /package/{cli → core}/codegen/queries.js +0 -0
  158. /package/{cli → core}/codegen/query-keys.js +0 -0
  159. /package/{cli → core}/codegen/scalars.d.ts +0 -0
  160. /package/{cli → core}/codegen/scalars.js +0 -0
  161. /package/{cli → core}/codegen/schema-gql-ast.d.ts +0 -0
  162. /package/{cli → core}/codegen/schema-gql-ast.js +0 -0
  163. /package/{cli → core}/codegen/schema-types-generator.d.ts +0 -0
  164. /package/{cli → core}/codegen/schema-types-generator.js +0 -0
  165. /package/{cli → core}/codegen/type-resolver.d.ts +0 -0
  166. /package/{cli → core}/codegen/type-resolver.js +0 -0
  167. /package/{cli → core}/codegen/types.d.ts +0 -0
  168. /package/{cli → core}/codegen/types.js +0 -0
  169. /package/{cli → core}/codegen/utils.d.ts +0 -0
  170. /package/{cli → core}/codegen/utils.js +0 -0
  171. /package/{cli → core}/introspect/fetch-schema.d.ts +0 -0
  172. /package/{cli → core}/introspect/index.d.ts +0 -0
  173. /package/{cli → core}/introspect/index.js +0 -0
  174. /package/{cli → core}/introspect/infer-tables.d.ts +0 -0
  175. /package/{cli → core}/introspect/infer-tables.js +0 -0
  176. /package/{cli → core}/introspect/schema-query.d.ts +0 -0
  177. /package/{cli → core}/introspect/schema-query.js +0 -0
  178. /package/{cli → core}/introspect/source/endpoint.d.ts +0 -0
  179. /package/{cli → core}/introspect/source/endpoint.js +0 -0
  180. /package/{cli → core}/introspect/source/file.d.ts +0 -0
  181. /package/{cli → core}/introspect/source/file.js +0 -0
  182. /package/{cli → core}/introspect/source/types.d.ts +0 -0
  183. /package/{cli → core}/introspect/source/types.js +0 -0
  184. /package/{cli → core}/introspect/transform-schema.d.ts +0 -0
  185. /package/{cli → core}/introspect/transform-schema.js +0 -0
  186. /package/{cli → core}/introspect/transform.d.ts +0 -0
  187. /package/{cli → core}/introspect/transform.js +0 -0
  188. /package/{cli → core}/watch/cache.d.ts +0 -0
  189. /package/{cli → core}/watch/cache.js +0 -0
  190. /package/{cli → core}/watch/debounce.d.ts +0 -0
  191. /package/{cli → core}/watch/debounce.js +0 -0
  192. /package/{cli → core}/watch/hash.d.ts +0 -0
  193. /package/{cli → core}/watch/hash.js +0 -0
  194. /package/{cli → core}/watch/index.d.ts +0 -0
  195. /package/{cli → core}/watch/index.js +0 -0
  196. /package/{cli → core}/watch/poller.d.ts +0 -0
  197. /package/{cli → core}/watch/poller.js +0 -0
  198. /package/{cli → core}/watch/types.js +0 -0
  199. /package/esm/{cli → core}/codegen/babel-ast.d.ts +0 -0
  200. /package/esm/{cli → core}/codegen/babel-ast.js +0 -0
  201. /package/esm/{cli → core}/codegen/client.d.ts +0 -0
  202. /package/esm/{cli → core}/codegen/client.js +0 -0
  203. /package/esm/{cli → core}/codegen/custom-mutations.d.ts +0 -0
  204. /package/esm/{cli → core}/codegen/custom-mutations.js +0 -0
  205. /package/esm/{cli → core}/codegen/custom-queries.d.ts +0 -0
  206. /package/esm/{cli → core}/codegen/custom-queries.js +0 -0
  207. /package/esm/{cli → core}/codegen/gql-ast.d.ts +0 -0
  208. /package/esm/{cli → core}/codegen/gql-ast.js +0 -0
  209. /package/esm/{cli → core}/codegen/invalidation.js +0 -0
  210. /package/esm/{cli → core}/codegen/mutation-keys.js +0 -0
  211. /package/esm/{cli → core}/codegen/mutations.d.ts +0 -0
  212. /package/esm/{cli → core}/codegen/mutations.js +0 -0
  213. /package/esm/{cli → core}/codegen/orm/barrel.d.ts +0 -0
  214. /package/esm/{cli → core}/codegen/orm/barrel.js +0 -0
  215. /package/esm/{cli → core}/codegen/orm/client-generator.d.ts +0 -0
  216. /package/esm/{cli → core}/codegen/orm/client.d.ts +0 -0
  217. /package/esm/{cli → core}/codegen/orm/client.js +0 -0
  218. /package/esm/{cli → core}/codegen/orm/custom-ops-generator.d.ts +0 -0
  219. /package/esm/{cli → core}/codegen/orm/custom-ops-generator.js +0 -0
  220. /package/esm/{cli → core}/codegen/orm/input-types-generator.d.ts +0 -0
  221. /package/esm/{cli → core}/codegen/orm/input-types-generator.js +0 -0
  222. /package/esm/{cli → core}/codegen/orm/model-generator.d.ts +0 -0
  223. /package/esm/{cli → core}/codegen/orm/model-generator.js +0 -0
  224. /package/esm/{cli → core}/codegen/orm/query-builder.d.ts +0 -0
  225. /package/esm/{cli → core}/codegen/orm/query-builder.js +0 -0
  226. /package/esm/{cli → core}/codegen/orm/select-types.d.ts +0 -0
  227. /package/esm/{cli → core}/codegen/orm/select-types.js +0 -0
  228. /package/esm/{cli → core}/codegen/queries.d.ts +0 -0
  229. /package/esm/{cli → core}/codegen/queries.js +0 -0
  230. /package/esm/{cli → core}/codegen/query-keys.js +0 -0
  231. /package/esm/{cli → core}/codegen/scalars.d.ts +0 -0
  232. /package/esm/{cli → core}/codegen/scalars.js +0 -0
  233. /package/esm/{cli → core}/codegen/schema-gql-ast.d.ts +0 -0
  234. /package/esm/{cli → core}/codegen/schema-gql-ast.js +0 -0
  235. /package/esm/{cli → core}/codegen/schema-types-generator.d.ts +0 -0
  236. /package/esm/{cli → core}/codegen/schema-types-generator.js +0 -0
  237. /package/esm/{cli → core}/codegen/type-resolver.d.ts +0 -0
  238. /package/esm/{cli → core}/codegen/type-resolver.js +0 -0
  239. /package/esm/{cli → core}/codegen/types.d.ts +0 -0
  240. /package/esm/{cli → core}/codegen/types.js +0 -0
  241. /package/esm/{cli → core}/codegen/utils.d.ts +0 -0
  242. /package/esm/{cli → core}/codegen/utils.js +0 -0
  243. /package/esm/{cli → core}/introspect/fetch-schema.d.ts +0 -0
  244. /package/esm/{cli → core}/introspect/index.d.ts +0 -0
  245. /package/esm/{cli → core}/introspect/index.js +0 -0
  246. /package/esm/{cli → core}/introspect/infer-tables.d.ts +0 -0
  247. /package/esm/{cli → core}/introspect/infer-tables.js +0 -0
  248. /package/esm/{cli → core}/introspect/schema-query.d.ts +0 -0
  249. /package/esm/{cli → core}/introspect/schema-query.js +0 -0
  250. /package/esm/{cli → core}/introspect/source/endpoint.d.ts +0 -0
  251. /package/esm/{cli → core}/introspect/source/endpoint.js +0 -0
  252. /package/esm/{cli → core}/introspect/source/file.d.ts +0 -0
  253. /package/esm/{cli → core}/introspect/source/file.js +0 -0
  254. /package/esm/{cli → core}/introspect/source/types.d.ts +0 -0
  255. /package/esm/{cli → core}/introspect/source/types.js +0 -0
  256. /package/esm/{cli → core}/introspect/transform-schema.d.ts +0 -0
  257. /package/esm/{cli → core}/introspect/transform-schema.js +0 -0
  258. /package/esm/{cli → core}/introspect/transform.d.ts +0 -0
  259. /package/esm/{cli → core}/introspect/transform.js +0 -0
  260. /package/esm/{cli → core}/watch/cache.d.ts +0 -0
  261. /package/esm/{cli → core}/watch/cache.js +0 -0
  262. /package/esm/{cli → core}/watch/debounce.d.ts +0 -0
  263. /package/esm/{cli → core}/watch/debounce.js +0 -0
  264. /package/esm/{cli → core}/watch/hash.d.ts +0 -0
  265. /package/esm/{cli → core}/watch/hash.js +0 -0
  266. /package/esm/{cli → core}/watch/index.d.ts +0 -0
  267. /package/esm/{cli → core}/watch/index.js +0 -0
  268. /package/esm/{cli → core}/watch/poller.d.ts +0 -0
  269. /package/esm/{cli → core}/watch/poller.js +0 -0
  270. /package/esm/{cli → core}/watch/types.js +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@constructive-io/graphql-codegen",
3
- "version": "2.31.0",
4
- "description": "CLI-based GraphQL SDK generator for PostGraphile endpoints with React Query hooks",
3
+ "version": "3.0.0",
4
+ "description": "GraphQL SDK generator for Constructive databases with React Query hooks",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "postgraphile",
@@ -35,19 +35,19 @@
35
35
  "scripts": {
36
36
  "clean": "makage clean",
37
37
  "prepack": "npm run build",
38
- "copy:ts": "makage copy src/cli/codegen/orm/query-builder.ts dist/cli/codegen/orm --flat",
38
+ "copy:ts": "makage copy src/core/codegen/orm/query-builder.ts dist/core/codegen/orm --flat",
39
39
  "build": "makage build && npm run copy:ts",
40
40
  "build:dev": "makage build --dev && npm run copy:ts",
41
41
  "dev": "ts-node ./src/index.ts",
42
42
  "lint": "eslint . --fix",
43
- "fmt": "prettier --write .",
44
- "fmt:check": "prettier --check .",
43
+ "fmt": "oxfmt --write .",
44
+ "fmt:check": "oxfmt --check .",
45
45
  "test": "jest --passWithNoTests",
46
46
  "test:watch": "jest --watch",
47
- "example:codegen:sdk": "tsx src/cli/index.ts generate --config examples/multi-target.config.ts",
48
- "example:codegen:orm": "tsx src/cli/index.ts generate-orm --config examples/multi-target.config.ts",
49
- "example:codegen:sdk:schema": "node dist/cli/index.js generate --schema examples/example.schema.graphql --output examples/output/generated-sdk-schema",
50
- "example:codegen:orm:schema": "node dist/cli/index.js generate-orm --schema examples/example.schema.graphql --output examples/output/generated-orm-schema",
47
+ "example:codegen:sdk": "tsx src/cli/index.ts --config examples/multi-target.config.ts --react-query",
48
+ "example:codegen:orm": "tsx src/cli/index.ts --config examples/multi-target.config.ts --orm",
49
+ "example:codegen:sdk:schema": "node dist/cli/index.js --schema-file examples/example.schema.graphql --output examples/output/generated-sdk-schema --react-query",
50
+ "example:codegen:orm:schema": "node dist/cli/index.js --schema-file examples/example.schema.graphql --output examples/output/generated-orm-schema --orm",
51
51
  "example:sdk": "tsx examples/react-hooks-sdk-test.tsx",
52
52
  "example:orm": "tsx examples/orm-sdk-test.ts",
53
53
  "example:sdk:typecheck": "tsc --noEmit --jsx react --esModuleInterop --skipLibCheck --moduleResolution node examples/react-hooks-sdk-test.tsx"
@@ -56,16 +56,24 @@
56
56
  "@0no-co/graphql.web": "^1.1.2",
57
57
  "@babel/generator": "^7.28.6",
58
58
  "@babel/types": "^7.28.6",
59
+ "@constructive-io/graphql-server": "^3.0.0",
59
60
  "@constructive-io/graphql-types": "^2.14.0",
60
61
  "@inquirerer/utils": "^3.2.0",
62
+ "@pgpmjs/core": "^5.0.0",
61
63
  "ajv": "^8.17.1",
64
+ "deepmerge": "^4.3.1",
62
65
  "find-and-require-package-json": "^0.9.0",
63
66
  "gql-ast": "^2.6.0",
64
67
  "graphql": "15.10.1",
65
68
  "inflekt": "^0.3.0",
66
69
  "inquirerer": "^4.4.0",
67
70
  "jiti": "^2.6.1",
68
- "prettier": "^3.7.4"
71
+ "oxfmt": "^0.26.0",
72
+ "pg-cache": "^2.0.0",
73
+ "pg-env": "^1.3.0",
74
+ "pgsql-client": "^2.0.0",
75
+ "pgsql-seed": "^1.0.0",
76
+ "undici": "^7.19.0"
69
77
  },
70
78
  "peerDependencies": {
71
79
  "@tanstack/react-query": "^5.0.0",
@@ -91,5 +99,5 @@
91
99
  "tsx": "^4.21.0",
92
100
  "typescript": "^5.9.3"
93
101
  },
94
- "gitHead": "57fdad16730e5a09c033ac218c8674e7599db7da"
102
+ "gitHead": "390f4dd57fc158554518ec454bf2a4856d550552"
95
103
  }
package/types/config.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * SDK Configuration types
3
3
  */
4
+ import type { PgConfig } from 'pg-env';
4
5
  /**
5
6
  * Entity relationship definition for cascade invalidation
6
7
  */
@@ -56,21 +57,84 @@ export interface QueryKeyConfig {
56
57
  */
57
58
  generateMutationKeys?: boolean;
58
59
  }
60
+ /**
61
+ * PGPM module configuration for ephemeral database creation
62
+ */
63
+ export interface PgpmConfig {
64
+ /**
65
+ * Path to a PGPM module directory
66
+ * Creates an ephemeral database, deploys the module, and introspects
67
+ */
68
+ modulePath?: string;
69
+ /**
70
+ * Path to a PGPM workspace directory
71
+ * Must be used together with `moduleName`
72
+ */
73
+ workspacePath?: string;
74
+ /**
75
+ * Name of the module within the PGPM workspace
76
+ * Must be used together with `workspacePath`
77
+ */
78
+ moduleName?: string;
79
+ }
80
+ /**
81
+ * Database configuration for direct database introspection
82
+ */
83
+ export interface DbConfig {
84
+ /**
85
+ * PostgreSQL connection configuration
86
+ * Falls back to environment variables (PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE)
87
+ * via @pgpmjs/env when not specified
88
+ */
89
+ config?: Partial<PgConfig>;
90
+ /**
91
+ * PGPM module configuration for ephemeral database creation
92
+ * When specified, creates an ephemeral database from the module
93
+ */
94
+ pgpm?: PgpmConfig;
95
+ /**
96
+ * PostgreSQL schemas to introspect
97
+ * Mutually exclusive with `apiNames`
98
+ * @example ['public', 'app_public']
99
+ */
100
+ schemas?: string[];
101
+ /**
102
+ * API names to resolve schemas from
103
+ * Queries services_public.api_schemas to automatically determine schemas
104
+ * Mutually exclusive with `schemas`
105
+ * @example ['my_api']
106
+ */
107
+ apiNames?: string[];
108
+ /**
109
+ * Keep the ephemeral database after introspection (for debugging)
110
+ * Only applies when using pgpm
111
+ * @default false
112
+ */
113
+ keepDb?: boolean;
114
+ }
59
115
  /**
60
116
  * Target configuration for graphql-codegen
61
117
  * Represents a single schema source and output destination.
118
+ *
119
+ * Source options (choose one):
120
+ * - endpoint: GraphQL endpoint URL for live introspection
121
+ * - schemaFile: Path to GraphQL schema file (.graphql)
122
+ * - db: Database configuration for direct introspection or PGPM module
62
123
  */
63
124
  export interface GraphQLSDKConfigTarget {
64
125
  /**
65
126
  * GraphQL endpoint URL for live introspection
66
- * Either endpoint or schema must be provided
67
127
  */
68
128
  endpoint?: string;
69
129
  /**
70
130
  * Path to GraphQL schema file (.graphql) for file-based generation
71
- * Either endpoint or schema must be provided
72
131
  */
73
- schema?: string;
132
+ schemaFile?: string;
133
+ /**
134
+ * Database configuration for direct database introspection or PGPM module
135
+ * Use db.schemas or db.apiNames to specify which schemas to introspect
136
+ */
137
+ db?: DbConfig;
74
138
  /**
75
139
  * Headers to include in introspection requests
76
140
  */
@@ -88,6 +152,8 @@ export interface GraphQLSDKConfigTarget {
88
152
  include?: string[];
89
153
  /** Tables to exclude (glob patterns supported) */
90
154
  exclude?: string[];
155
+ /** System-level tables to always exclude (can be overridden to [] to disable) */
156
+ systemExclude?: string[];
91
157
  };
92
158
  /**
93
159
  * Query operation filtering (for ALL queries from __schema introspection)
@@ -96,8 +162,10 @@ export interface GraphQLSDKConfigTarget {
96
162
  queries?: {
97
163
  /** Query names to include - defaults to ['*'] */
98
164
  include?: string[];
99
- /** Query names to exclude - defaults to ['_meta', 'query'] */
165
+ /** Query names to exclude */
100
166
  exclude?: string[];
167
+ /** System-level queries to always exclude (defaults to ['_meta', 'query'], can be overridden to [] to disable) */
168
+ systemExclude?: string[];
101
169
  };
102
170
  /**
103
171
  * Mutation operation filtering (for ALL mutations from __schema introspection)
@@ -108,6 +176,8 @@ export interface GraphQLSDKConfigTarget {
108
176
  include?: string[];
109
177
  /** Mutation names to exclude */
110
178
  exclude?: string[];
179
+ /** System-level mutations to always exclude (can be overridden to [] to disable) */
180
+ systemExclude?: string[];
111
181
  };
112
182
  /**
113
183
  * Fields to exclude globally from all tables
@@ -141,34 +211,18 @@ export interface GraphQLSDKConfigTarget {
141
211
  skipQueryField?: boolean;
142
212
  };
143
213
  /**
144
- * ORM client generation options
145
- * When set, generates a Prisma-like ORM client in addition to or instead of React Query hooks
146
- */
147
- orm?: {
148
- /**
149
- * Output directory for generated ORM client
150
- * @default './generated/orm'
151
- */
152
- output?: string;
153
- /**
154
- * Whether to import shared types from hooks output or generate standalone
155
- * When true, ORM types.ts will re-export from ../graphql/types
156
- * @default true
157
- */
158
- useSharedTypes?: boolean;
159
- };
214
+ * Whether to generate ORM client
215
+ * When enabled, generates a Prisma-like ORM client to {output}/orm
216
+ * @default false
217
+ */
218
+ orm?: boolean;
160
219
  /**
161
- * React Query integration options
162
- * Controls whether React Query hooks are generated
220
+ * Whether to generate React Query hooks
221
+ * When enabled, generates React Query hooks to {output}/hooks
222
+ * When false, only standalone fetch functions are generated (no React dependency)
223
+ * @default false
163
224
  */
164
- reactQuery?: {
165
- /**
166
- * Whether to generate React Query hooks (useQuery, useMutation)
167
- * When false, only standalone fetch functions are generated (no React dependency)
168
- * @default false
169
- */
170
- enabled?: boolean;
171
- };
225
+ reactQuery?: boolean;
172
226
  /**
173
227
  * Query key generation configuration
174
228
  * Controls how query keys are structured for cache management
@@ -179,24 +233,31 @@ export interface GraphQLSDKConfigTarget {
179
233
  * When enabled via CLI --watch flag, the CLI will poll the endpoint for schema changes
180
234
  */
181
235
  watch?: WatchConfig;
182
- }
183
- /**
184
- * Multi-target configuration for graphql-codegen
185
- */
186
- export interface GraphQLSDKMultiConfig {
187
236
  /**
188
- * Shared defaults applied to every target
237
+ * Authorization header value (convenience option, also available in headers)
238
+ */
239
+ authorization?: string;
240
+ /**
241
+ * Enable verbose output
242
+ * @default false
243
+ */
244
+ verbose?: boolean;
245
+ /**
246
+ * Dry run - don't write files, just show what would be generated
247
+ * @default false
189
248
  */
190
- defaults?: GraphQLSDKConfigTarget;
249
+ dryRun?: boolean;
191
250
  /**
192
- * Named target configurations
251
+ * Skip custom operations (only generate table CRUD)
252
+ * @default false
193
253
  */
194
- targets: Record<string, GraphQLSDKConfigTarget>;
254
+ skipCustomOperations?: boolean;
195
255
  }
196
256
  /**
197
257
  * Main configuration type for graphql-codegen
258
+ * This is the same as GraphQLSDKConfigTarget - we keep the alias for clarity.
198
259
  */
199
- export type GraphQLSDKConfig = GraphQLSDKConfigTarget | GraphQLSDKMultiConfig;
260
+ export type GraphQLSDKConfig = GraphQLSDKConfigTarget;
200
261
  /**
201
262
  * Watch mode configuration options
202
263
  *
@@ -226,117 +287,30 @@ export interface WatchConfig {
226
287
  */
227
288
  clearScreen?: boolean;
228
289
  }
229
- /**
230
- * Resolved watch configuration with defaults applied
231
- */
232
- export interface ResolvedWatchConfig {
233
- pollInterval: number;
234
- debounce: number;
235
- touchFile: string | null;
236
- clearScreen: boolean;
237
- }
238
- /**
239
- * Resolved query key configuration with defaults applied
240
- */
241
- export interface ResolvedQueryKeyConfig {
242
- style: 'flat' | 'hierarchical';
243
- relationships: Record<string, EntityRelationship>;
244
- generateScopedKeys: boolean;
245
- generateCascadeHelpers: boolean;
246
- generateMutationKeys: boolean;
247
- }
248
- /**
249
- * Resolved configuration with defaults applied
250
- */
251
- export interface ResolvedConfig {
252
- /**
253
- * GraphQL endpoint URL (empty string if using schema file)
254
- */
255
- endpoint: string;
256
- /**
257
- * Path to GraphQL schema file (null if using endpoint)
258
- */
259
- schema: string | null;
260
- headers: Record<string, string>;
261
- output: string;
262
- tables: {
263
- include: string[];
264
- exclude: string[];
265
- };
266
- queries: {
267
- include: string[];
268
- exclude: string[];
269
- };
270
- mutations: {
271
- include: string[];
272
- exclude: string[];
273
- };
274
- excludeFields: string[];
275
- hooks: {
276
- queries: boolean;
277
- mutations: boolean;
278
- queryKeyPrefix: string;
279
- };
280
- postgraphile: {
281
- schema: string;
282
- };
283
- codegen: {
284
- maxFieldDepth: number;
285
- skipQueryField: boolean;
286
- };
287
- orm: {
288
- output: string;
289
- useSharedTypes: boolean;
290
- } | null;
291
- reactQuery: {
292
- enabled: boolean;
293
- };
294
- queryKeys: ResolvedQueryKeyConfig;
295
- watch: ResolvedWatchConfig;
296
- }
297
290
  /**
298
291
  * Default watch configuration values
299
292
  */
300
- export declare const DEFAULT_WATCH_CONFIG: ResolvedWatchConfig;
293
+ export declare const DEFAULT_WATCH_CONFIG: WatchConfig;
301
294
  /**
302
295
  * Default query key configuration values
303
296
  */
304
- export declare const DEFAULT_QUERY_KEY_CONFIG: ResolvedQueryKeyConfig;
297
+ export declare const DEFAULT_QUERY_KEY_CONFIG: QueryKeyConfig;
305
298
  /**
306
299
  * Default configuration values
307
300
  */
308
- export declare const DEFAULT_CONFIG: Omit<ResolvedConfig, 'endpoint' | 'schema'>;
309
- /**
310
- * Default ORM configuration values
311
- */
312
- export declare const DEFAULT_ORM_CONFIG: {
313
- output: string;
314
- useSharedTypes: boolean;
315
- };
301
+ export declare const DEFAULT_CONFIG: GraphQLSDKConfigTarget;
316
302
  /**
317
303
  * Helper function to define configuration with type checking
318
304
  */
319
305
  export declare function defineConfig(config: GraphQLSDKConfig): GraphQLSDKConfig;
320
306
  /**
321
- * Resolved target configuration helper
322
- */
323
- export interface ResolvedTargetConfig {
324
- name: string;
325
- config: ResolvedConfig;
326
- }
327
- /**
328
- * Type guard for multi-target configs
329
- */
330
- export declare function isMultiConfig(config: GraphQLSDKConfig): config is GraphQLSDKMultiConfig;
331
- /**
332
- * Merge two target configs (defaults + overrides)
307
+ * Merge two configs (base + overrides).
308
+ * Uses deepmerge with array replacement strategy - when a user specifies
309
+ * an array like include: ['users'], it replaces the default ['*'] entirely.
333
310
  */
334
311
  export declare function mergeConfig(base: GraphQLSDKConfigTarget, overrides: GraphQLSDKConfigTarget): GraphQLSDKConfigTarget;
335
312
  /**
336
- * Resolve configuration by applying defaults
337
- */
338
- export declare function resolveConfig(config: GraphQLSDKConfig): ResolvedConfig;
339
- /**
340
- * Resolve all targets in a multi-target config
313
+ * Get configuration options by merging defaults with user config.
314
+ * Similar to getEnvOptions pattern from @pgpmjs/env.
341
315
  */
342
- export declare function resolveConfigTargets(config: GraphQLSDKMultiConfig): ResolvedTargetConfig[];
316
+ export declare function getConfigOptions(overrides?: GraphQLSDKConfigTarget): GraphQLSDKConfigTarget;
package/types/config.js CHANGED
@@ -2,20 +2,28 @@
2
2
  /**
3
3
  * SDK Configuration types
4
4
  */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
5
8
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_ORM_CONFIG = exports.DEFAULT_CONFIG = exports.DEFAULT_QUERY_KEY_CONFIG = exports.DEFAULT_WATCH_CONFIG = void 0;
9
+ exports.DEFAULT_CONFIG = exports.DEFAULT_QUERY_KEY_CONFIG = exports.DEFAULT_WATCH_CONFIG = void 0;
7
10
  exports.defineConfig = defineConfig;
8
- exports.isMultiConfig = isMultiConfig;
9
11
  exports.mergeConfig = mergeConfig;
10
- exports.resolveConfig = resolveConfig;
11
- exports.resolveConfigTargets = resolveConfigTargets;
12
+ exports.getConfigOptions = getConfigOptions;
13
+ const deepmerge_1 = __importDefault(require("deepmerge"));
14
+ /**
15
+ * Array merge strategy that replaces arrays (source wins over target).
16
+ * This ensures that when a user specifies include: ['users'], it replaces
17
+ * the default ['*'] rather than merging to ['*', 'users'].
18
+ */
19
+ const replaceArrays = (_target, source) => source;
12
20
  /**
13
21
  * Default watch configuration values
14
22
  */
15
23
  exports.DEFAULT_WATCH_CONFIG = {
16
24
  pollInterval: 3000,
17
25
  debounce: 800,
18
- touchFile: null,
26
+ touchFile: undefined,
19
27
  clearScreen: true,
20
28
  };
21
29
  /**
@@ -32,19 +40,23 @@ exports.DEFAULT_QUERY_KEY_CONFIG = {
32
40
  * Default configuration values
33
41
  */
34
42
  exports.DEFAULT_CONFIG = {
43
+ endpoint: '',
35
44
  headers: {},
36
45
  output: './generated/graphql',
37
46
  tables: {
38
47
  include: ['*'],
39
48
  exclude: [],
49
+ systemExclude: [],
40
50
  },
41
51
  queries: {
42
52
  include: ['*'],
43
- exclude: ['_meta', 'query'], // Internal PostGraphile queries
53
+ exclude: [],
54
+ systemExclude: ['_meta', 'query'], // Internal PostGraphile queries
44
55
  },
45
56
  mutations: {
46
57
  include: ['*'],
47
58
  exclude: [],
59
+ systemExclude: [],
48
60
  },
49
61
  excludeFields: [],
50
62
  hooks: {
@@ -59,20 +71,11 @@ exports.DEFAULT_CONFIG = {
59
71
  maxFieldDepth: 2,
60
72
  skipQueryField: true,
61
73
  },
62
- orm: null, // ORM generation disabled by default
63
- reactQuery: {
64
- enabled: true, // React Query hooks enabled by default for generate command
65
- },
74
+ orm: false,
75
+ reactQuery: false,
66
76
  queryKeys: exports.DEFAULT_QUERY_KEY_CONFIG,
67
77
  watch: exports.DEFAULT_WATCH_CONFIG,
68
78
  };
69
- /**
70
- * Default ORM configuration values
71
- */
72
- exports.DEFAULT_ORM_CONFIG = {
73
- output: './generated/orm',
74
- useSharedTypes: true,
75
- };
76
79
  /**
77
80
  * Helper function to define configuration with type checking
78
81
  */
@@ -80,144 +83,17 @@ function defineConfig(config) {
80
83
  return config;
81
84
  }
82
85
  /**
83
- * Type guard for multi-target configs
84
- */
85
- function isMultiConfig(config) {
86
- const targets = config.targets;
87
- return typeof targets === 'object' && targets !== null;
88
- }
89
- /**
90
- * Merge two target configs (defaults + overrides)
86
+ * Merge two configs (base + overrides).
87
+ * Uses deepmerge with array replacement strategy - when a user specifies
88
+ * an array like include: ['users'], it replaces the default ['*'] entirely.
91
89
  */
92
90
  function mergeConfig(base, overrides) {
93
- const headers = base.headers || overrides.headers
94
- ? { ...(base.headers ?? {}), ...(overrides.headers ?? {}) }
95
- : undefined;
96
- const tables = base.tables || overrides.tables
97
- ? { ...(base.tables ?? {}), ...(overrides.tables ?? {}) }
98
- : undefined;
99
- const queries = base.queries || overrides.queries
100
- ? { ...(base.queries ?? {}), ...(overrides.queries ?? {}) }
101
- : undefined;
102
- const mutations = base.mutations || overrides.mutations
103
- ? { ...(base.mutations ?? {}), ...(overrides.mutations ?? {}) }
104
- : undefined;
105
- const hooks = base.hooks || overrides.hooks
106
- ? { ...(base.hooks ?? {}), ...(overrides.hooks ?? {}) }
107
- : undefined;
108
- const postgraphile = base.postgraphile || overrides.postgraphile
109
- ? { ...(base.postgraphile ?? {}), ...(overrides.postgraphile ?? {}) }
110
- : undefined;
111
- const codegen = base.codegen || overrides.codegen
112
- ? { ...(base.codegen ?? {}), ...(overrides.codegen ?? {}) }
113
- : undefined;
114
- const orm = base.orm || overrides.orm
115
- ? { ...(base.orm ?? {}), ...(overrides.orm ?? {}) }
116
- : undefined;
117
- const reactQuery = base.reactQuery || overrides.reactQuery
118
- ? { ...(base.reactQuery ?? {}), ...(overrides.reactQuery ?? {}) }
119
- : undefined;
120
- const queryKeys = base.queryKeys || overrides.queryKeys
121
- ? {
122
- ...(base.queryKeys ?? {}),
123
- ...(overrides.queryKeys ?? {}),
124
- relationships: {
125
- ...(base.queryKeys?.relationships ?? {}),
126
- ...(overrides.queryKeys?.relationships ?? {}),
127
- },
128
- }
129
- : undefined;
130
- const watch = base.watch || overrides.watch
131
- ? { ...(base.watch ?? {}), ...(overrides.watch ?? {}) }
132
- : undefined;
133
- return {
134
- ...base,
135
- ...overrides,
136
- headers,
137
- tables,
138
- queries,
139
- mutations,
140
- hooks,
141
- postgraphile,
142
- codegen,
143
- orm,
144
- reactQuery,
145
- queryKeys,
146
- watch,
147
- };
148
- }
149
- /**
150
- * Resolve configuration by applying defaults
151
- */
152
- function resolveConfig(config) {
153
- if (isMultiConfig(config)) {
154
- throw new Error('Multi-target config cannot be resolved with resolveConfig(). Use resolveConfigTargets().');
155
- }
156
- return {
157
- endpoint: config.endpoint ?? '',
158
- schema: config.schema ?? null,
159
- headers: config.headers ?? exports.DEFAULT_CONFIG.headers,
160
- output: config.output ?? exports.DEFAULT_CONFIG.output,
161
- tables: {
162
- include: config.tables?.include ?? exports.DEFAULT_CONFIG.tables.include,
163
- exclude: config.tables?.exclude ?? exports.DEFAULT_CONFIG.tables.exclude,
164
- },
165
- queries: {
166
- include: config.queries?.include ?? exports.DEFAULT_CONFIG.queries.include,
167
- exclude: config.queries?.exclude ?? exports.DEFAULT_CONFIG.queries.exclude,
168
- },
169
- mutations: {
170
- include: config.mutations?.include ?? exports.DEFAULT_CONFIG.mutations.include,
171
- exclude: config.mutations?.exclude ?? exports.DEFAULT_CONFIG.mutations.exclude,
172
- },
173
- excludeFields: config.excludeFields ?? exports.DEFAULT_CONFIG.excludeFields,
174
- hooks: {
175
- queries: config.hooks?.queries ?? exports.DEFAULT_CONFIG.hooks.queries,
176
- mutations: config.hooks?.mutations ?? exports.DEFAULT_CONFIG.hooks.mutations,
177
- queryKeyPrefix: config.hooks?.queryKeyPrefix ?? exports.DEFAULT_CONFIG.hooks.queryKeyPrefix,
178
- },
179
- postgraphile: {
180
- schema: config.postgraphile?.schema ?? exports.DEFAULT_CONFIG.postgraphile.schema,
181
- },
182
- codegen: {
183
- maxFieldDepth: config.codegen?.maxFieldDepth ?? exports.DEFAULT_CONFIG.codegen.maxFieldDepth,
184
- skipQueryField: config.codegen?.skipQueryField ?? exports.DEFAULT_CONFIG.codegen.skipQueryField,
185
- },
186
- orm: config.orm
187
- ? {
188
- output: config.orm.output ?? exports.DEFAULT_ORM_CONFIG.output,
189
- useSharedTypes: config.orm.useSharedTypes ?? exports.DEFAULT_ORM_CONFIG.useSharedTypes,
190
- }
191
- : null,
192
- reactQuery: {
193
- enabled: config.reactQuery?.enabled ?? exports.DEFAULT_CONFIG.reactQuery.enabled,
194
- },
195
- queryKeys: {
196
- style: config.queryKeys?.style ?? exports.DEFAULT_QUERY_KEY_CONFIG.style,
197
- relationships: config.queryKeys?.relationships ??
198
- exports.DEFAULT_QUERY_KEY_CONFIG.relationships,
199
- generateScopedKeys: config.queryKeys?.generateScopedKeys ??
200
- exports.DEFAULT_QUERY_KEY_CONFIG.generateScopedKeys,
201
- generateCascadeHelpers: config.queryKeys?.generateCascadeHelpers ??
202
- exports.DEFAULT_QUERY_KEY_CONFIG.generateCascadeHelpers,
203
- generateMutationKeys: config.queryKeys?.generateMutationKeys ??
204
- exports.DEFAULT_QUERY_KEY_CONFIG.generateMutationKeys,
205
- },
206
- watch: {
207
- pollInterval: config.watch?.pollInterval ?? exports.DEFAULT_WATCH_CONFIG.pollInterval,
208
- debounce: config.watch?.debounce ?? exports.DEFAULT_WATCH_CONFIG.debounce,
209
- touchFile: config.watch?.touchFile ?? exports.DEFAULT_WATCH_CONFIG.touchFile,
210
- clearScreen: config.watch?.clearScreen ?? exports.DEFAULT_WATCH_CONFIG.clearScreen,
211
- },
212
- };
91
+ return (0, deepmerge_1.default)(base, overrides, { arrayMerge: replaceArrays });
213
92
  }
214
93
  /**
215
- * Resolve all targets in a multi-target config
94
+ * Get configuration options by merging defaults with user config.
95
+ * Similar to getEnvOptions pattern from @pgpmjs/env.
216
96
  */
217
- function resolveConfigTargets(config) {
218
- const defaults = config.defaults ?? {};
219
- return Object.entries(config.targets).map(([name, target]) => ({
220
- name,
221
- config: resolveConfig(mergeConfig(defaults, target)),
222
- }));
97
+ function getConfigOptions(overrides = {}) {
98
+ return (0, deepmerge_1.default)(exports.DEFAULT_CONFIG, overrides, { arrayMerge: replaceArrays });
223
99
  }
package/types/index.d.ts CHANGED
@@ -5,5 +5,5 @@ export type { CleanTable, CleanField, CleanFieldType, CleanRelations, CleanBelon
5
5
  export type { PageInfo, ConnectionResult, QueryOptions, OrderByItem, FilterOperator, FieldFilter, RelationalFilter, Filter, } from './query';
6
6
  export type { MutationOptions, CreateInput, UpdateInput, DeleteInput, MutationResult, } from './mutation';
7
7
  export type { SimpleFieldSelection, FieldSelectionPreset, FieldSelection, SelectionOptions, } from './selection';
8
- export type { GraphQLSDKConfig, GraphQLSDKConfigTarget, GraphQLSDKMultiConfig, ResolvedConfig, ResolvedTargetConfig, } from './config';
9
- export { defineConfig, resolveConfig, resolveConfigTargets, DEFAULT_CONFIG, } from './config';
8
+ export type { GraphQLSDKConfig, GraphQLSDKConfigTarget, } from './config';
9
+ export { defineConfig, getConfigOptions, mergeConfig, DEFAULT_CONFIG, } from './config';
package/types/index.js CHANGED
@@ -3,9 +3,9 @@
3
3
  * Type exports for @constructive-io/graphql-codegen
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_CONFIG = exports.resolveConfigTargets = exports.resolveConfig = exports.defineConfig = void 0;
6
+ exports.DEFAULT_CONFIG = exports.mergeConfig = exports.getConfigOptions = exports.defineConfig = void 0;
7
7
  var config_1 = require("./config");
8
8
  Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_1.defineConfig; } });
9
- Object.defineProperty(exports, "resolveConfig", { enumerable: true, get: function () { return config_1.resolveConfig; } });
10
- Object.defineProperty(exports, "resolveConfigTargets", { enumerable: true, get: function () { return config_1.resolveConfigTargets; } });
9
+ Object.defineProperty(exports, "getConfigOptions", { enumerable: true, get: function () { return config_1.getConfigOptions; } });
10
+ Object.defineProperty(exports, "mergeConfig", { enumerable: true, get: function () { return config_1.mergeConfig; } });
11
11
  Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return config_1.DEFAULT_CONFIG; } });