@cedarjs/internal 0.6.1-next.0 → 0.7.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 (127) hide show
  1. package/dist/ast.d.ts.map +1 -1
  2. package/dist/ast.js +28 -64
  3. package/dist/build/api.js +22 -56
  4. package/dist/cjs/ast.d.ts +26 -0
  5. package/dist/cjs/ast.d.ts.map +1 -0
  6. package/dist/cjs/ast.js +201 -0
  7. package/dist/cjs/build/api.d.ts +6 -0
  8. package/dist/cjs/build/api.d.ts.map +1 -0
  9. package/dist/cjs/build/api.js +109 -0
  10. package/dist/cjs/cliLogger.d.ts +11 -0
  11. package/dist/cjs/cliLogger.d.ts.map +1 -0
  12. package/dist/cjs/cliLogger.js +36 -0
  13. package/dist/cjs/dev.d.ts +2 -0
  14. package/dist/cjs/dev.d.ts.map +1 -0
  15. package/dist/cjs/dev.js +41 -0
  16. package/dist/cjs/files.d.ts +56 -0
  17. package/dist/cjs/files.d.ts.map +1 -0
  18. package/dist/cjs/files.js +230 -0
  19. package/dist/cjs/generate/clientPreset.d.ts +17 -0
  20. package/dist/cjs/generate/clientPreset.d.ts.map +1 -0
  21. package/dist/cjs/generate/clientPreset.js +85 -0
  22. package/dist/cjs/generate/generate.d.ts +10 -0
  23. package/dist/cjs/generate/generate.d.ts.map +1 -0
  24. package/dist/cjs/generate/generate.js +91 -0
  25. package/dist/cjs/generate/graphqlCodeGen.d.ts +16 -0
  26. package/dist/cjs/generate/graphqlCodeGen.d.ts.map +1 -0
  27. package/dist/cjs/generate/graphqlCodeGen.js +346 -0
  28. package/dist/cjs/generate/graphqlSchema.d.ts +8 -0
  29. package/dist/cjs/generate/graphqlSchema.d.ts.map +1 -0
  30. package/dist/cjs/generate/graphqlSchema.js +154 -0
  31. package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.d.ts +7 -0
  32. package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -0
  33. package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.js +65 -0
  34. package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts +9 -0
  35. package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -0
  36. package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.js +84 -0
  37. package/dist/cjs/generate/possibleTypes.d.ts +36 -0
  38. package/dist/cjs/generate/possibleTypes.d.ts.map +1 -0
  39. package/dist/cjs/generate/possibleTypes.js +106 -0
  40. package/dist/cjs/generate/templates/all-currentUser.d.ts.template +30 -0
  41. package/dist/cjs/generate/templates/api-globImports.d.ts.template +9 -0
  42. package/dist/cjs/generate/templates/api-globalContext.d.ts.template +7 -0
  43. package/dist/cjs/generate/templates/api-scenarios.d.ts.template +10 -0
  44. package/dist/cjs/generate/templates/api-test-globals.d.ts.template +5 -0
  45. package/dist/cjs/generate/templates/mirror-cell.d.ts.template +13 -0
  46. package/dist/cjs/generate/templates/mirror-directoryNamedModule.d.ts.template +5 -0
  47. package/dist/cjs/generate/templates/web-routerRoutes.d.ts.template +20 -0
  48. package/dist/cjs/generate/templates/web-routesPages.d.ts.template +13 -0
  49. package/dist/cjs/generate/templates/web-test-globals.d.ts.template +7 -0
  50. package/dist/cjs/generate/templates.d.ts +6 -0
  51. package/dist/cjs/generate/templates.d.ts.map +1 -0
  52. package/dist/cjs/generate/templates.js +68 -0
  53. package/dist/cjs/generate/trustedDocuments.d.ts +3 -0
  54. package/dist/cjs/generate/trustedDocuments.d.ts.map +1 -0
  55. package/dist/cjs/generate/trustedDocuments.js +95 -0
  56. package/dist/cjs/generate/typeDefinitions.d.ts +30 -0
  57. package/dist/cjs/generate/typeDefinitions.d.ts.map +1 -0
  58. package/dist/cjs/generate/typeDefinitions.js +369 -0
  59. package/dist/cjs/generate/types.d.ts +6 -0
  60. package/dist/cjs/generate/types.d.ts.map +1 -0
  61. package/dist/cjs/generate/types.js +16 -0
  62. package/dist/cjs/generate/watch.d.ts +3 -0
  63. package/dist/cjs/generate/watch.d.ts.map +1 -0
  64. package/dist/cjs/generate/watch.js +124 -0
  65. package/dist/cjs/gql.d.ts +14 -0
  66. package/dist/cjs/gql.d.ts.map +1 -0
  67. package/dist/cjs/gql.js +108 -0
  68. package/dist/cjs/index.d.ts +11 -0
  69. package/dist/cjs/index.d.ts.map +1 -0
  70. package/dist/cjs/index.js +49 -0
  71. package/dist/cjs/jsx.d.ts +16 -0
  72. package/dist/cjs/jsx.d.ts.map +1 -0
  73. package/dist/cjs/jsx.js +101 -0
  74. package/dist/cjs/jsxAttributeValue.d.ts +2 -0
  75. package/dist/cjs/jsxAttributeValue.d.ts.map +1 -0
  76. package/dist/cjs/jsxAttributeValue.js +129 -0
  77. package/dist/cjs/package.json +1 -0
  78. package/dist/cjs/project.d.ts +8 -0
  79. package/dist/cjs/project.d.ts.map +1 -0
  80. package/dist/cjs/project.js +82 -0
  81. package/dist/cjs/routes.d.ts +42 -0
  82. package/dist/cjs/routes.d.ts.map +1 -0
  83. package/dist/cjs/routes.js +111 -0
  84. package/dist/cjs/ts2js.d.ts +40 -0
  85. package/dist/cjs/ts2js.d.ts.map +1 -0
  86. package/dist/cjs/ts2js.js +159 -0
  87. package/dist/cjs/validateSchema.d.ts +14 -0
  88. package/dist/cjs/validateSchema.d.ts.map +1 -0
  89. package/dist/cjs/validateSchema.js +194 -0
  90. package/dist/cliLogger.js +4 -28
  91. package/dist/dev.js +4 -38
  92. package/dist/files.d.ts.map +1 -1
  93. package/dist/files.js +46 -95
  94. package/dist/generate/clientPreset.js +17 -39
  95. package/dist/generate/generate.js +14 -39
  96. package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
  97. package/dist/generate/graphqlCodeGen.js +49 -79
  98. package/dist/generate/graphqlSchema.d.ts.map +1 -1
  99. package/dist/generate/graphqlSchema.js +26 -59
  100. package/dist/generate/plugins/rw-typescript-resolvers/index.d.ts +4 -3
  101. package/dist/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -1
  102. package/dist/generate/plugins/rw-typescript-resolvers/index.js +11 -35
  103. package/dist/generate/plugins/rw-typescript-resolvers/visitor.js +10 -31
  104. package/dist/generate/possibleTypes.js +19 -53
  105. package/dist/generate/templates.d.ts.map +1 -1
  106. package/dist/generate/templates.js +14 -42
  107. package/dist/generate/trustedDocuments.js +13 -48
  108. package/dist/generate/typeDefinitions.d.ts +2 -2
  109. package/dist/generate/typeDefinitions.d.ts.map +1 -1
  110. package/dist/generate/typeDefinitions.js +83 -123
  111. package/dist/generate/types.js +0 -16
  112. package/dist/generate/watch.js +55 -63
  113. package/dist/gql.js +16 -42
  114. package/dist/index.d.ts +8 -8
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +13 -47
  117. package/dist/jsx.d.ts.map +1 -1
  118. package/dist/jsx.js +7 -40
  119. package/dist/jsxAttributeValue.js +2 -26
  120. package/dist/project.js +21 -58
  121. package/dist/routes.d.ts +1 -1
  122. package/dist/routes.d.ts.map +1 -1
  123. package/dist/routes.js +12 -48
  124. package/dist/ts2js.d.ts +1 -1
  125. package/dist/ts2js.js +33 -73
  126. package/dist/validateSchema.js +19 -47
  127. package/package.json +91 -31
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var typeDefinitions_exports = {};
30
+ __export(typeDefinitions_exports, {
31
+ generateMirrorCell: () => generateMirrorCell,
32
+ generateMirrorCells: () => generateMirrorCells,
33
+ generateMirrorDirectoryNamedModule: () => generateMirrorDirectoryNamedModule,
34
+ generateMirrorDirectoryNamedModules: () => generateMirrorDirectoryNamedModules,
35
+ generateTypeDefCurrentUser: () => generateTypeDefCurrentUser,
36
+ generateTypeDefGlobImports: () => generateTypeDefGlobImports,
37
+ generateTypeDefGlobalContext: () => generateTypeDefGlobalContext,
38
+ generateTypeDefRouterPages: () => generateTypeDefRouterPages,
39
+ generateTypeDefRouterRoutes: () => generateTypeDefRouterRoutes,
40
+ generateTypeDefScenarios: () => generateTypeDefScenarios,
41
+ generateTypeDefTestMocks: () => generateTypeDefTestMocks,
42
+ generateTypeDefs: () => generateTypeDefs,
43
+ generateViteClientTypesDirective: () => generateViteClientTypesDirective,
44
+ mirrorPathForCell: () => mirrorPathForCell,
45
+ mirrorPathForDirectoryNamedModules: () => mirrorPathForDirectoryNamedModules
46
+ });
47
+ module.exports = __toCommonJS(typeDefinitions_exports);
48
+ var import_fs = __toESM(require("fs"), 1);
49
+ var import_path = __toESM(require("path"), 1);
50
+ var import_source_map = require("source-map");
51
+ var import_project_config = require("@cedarjs/project-config");
52
+ var import_ast = require("../ast.js");
53
+ var import_files = require("../files.js");
54
+ var import_gql = require("../gql.js");
55
+ var import_jsx = require("../jsx.js");
56
+ var import_graphqlCodeGen = require("./graphqlCodeGen.js");
57
+ var import_templates = require("./templates.js");
58
+ const generateTypeDefs = async () => {
59
+ const { typeDefFiles: gqlApiTypeDefFiles, errors: apiErrors } = await (0, import_graphqlCodeGen.generateTypeDefGraphQLApi)();
60
+ const { typeDefFiles: gqlWebTypeDefFiles, errors: webErrors } = await (0, import_graphqlCodeGen.generateTypeDefGraphQLWeb)();
61
+ return {
62
+ typeDefFiles: [
63
+ ...generateMirrorDirectoryNamedModules(),
64
+ ...generateMirrorCells(),
65
+ ...generateTypeDefRouterPages(),
66
+ ...generateTypeDefCurrentUser(),
67
+ ...generateTypeDefRouterRoutes(),
68
+ ...generateTypeDefGlobImports(),
69
+ ...generateTypeDefGlobalContext(),
70
+ ...generateTypeDefScenarios(),
71
+ ...generateTypeDefTestMocks(),
72
+ ...generateStubStorybookTypes(),
73
+ ...generateViteClientTypesDirective(),
74
+ ...gqlApiTypeDefFiles,
75
+ ...gqlWebTypeDefFiles
76
+ ],
77
+ errors: [...apiErrors, ...webErrors]
78
+ };
79
+ };
80
+ const generateMirrorDirectoryNamedModules = () => {
81
+ const rwjsPaths = (0, import_project_config.getPaths)();
82
+ return (0, import_files.findDirectoryNamedModules)().map(
83
+ (p) => generateMirrorDirectoryNamedModule(p, rwjsPaths)
84
+ );
85
+ };
86
+ const mirrorPathForDirectoryNamedModules = (p, rwjsPaths = (0, import_project_config.getPaths)()) => {
87
+ return [
88
+ import_path.default.join(
89
+ rwjsPaths.generated.types.mirror,
90
+ import_path.default.relative(rwjsPaths.base, import_path.default.dirname(p))
91
+ ),
92
+ "index.d.ts"
93
+ ];
94
+ };
95
+ const generateMirrorDirectoryNamedModule = (p, rwjsPaths = (0, import_project_config.getPaths)()) => {
96
+ const [mirrorDir, typeDef] = mirrorPathForDirectoryNamedModules(p, rwjsPaths);
97
+ import_fs.default.mkdirSync(mirrorDir, { recursive: true });
98
+ const typeDefPath = import_path.default.join(mirrorDir, typeDef);
99
+ const { name } = import_path.default.parse(p);
100
+ (0, import_templates.writeTemplate)(
101
+ "templates/mirror-directoryNamedModule.d.ts.template",
102
+ typeDefPath,
103
+ { name }
104
+ );
105
+ if (p.startsWith(rwjsPaths.web.src)) {
106
+ try {
107
+ const fileContents = (0, import_ast.fileToAst)(p);
108
+ const defaultExportLocation = (0, import_ast.getDefaultExportLocation)(fileContents) ?? {
109
+ line: 1,
110
+ column: 0
111
+ };
112
+ const map = new import_source_map.SourceMapGenerator({
113
+ file: "index.d.ts"
114
+ });
115
+ map.addMapping({
116
+ generated: {
117
+ line: 4,
118
+ column: 0
119
+ },
120
+ source: import_path.default.relative(import_path.default.dirname(typeDefPath), p),
121
+ original: defaultExportLocation
122
+ });
123
+ import_fs.default.writeFileSync(
124
+ `${typeDefPath}.map`,
125
+ JSON.stringify(map.toJSON(), void 0, 2)
126
+ );
127
+ } catch (error) {
128
+ console.error(
129
+ "Couldn't generate a definition map for directory named module at path:",
130
+ p
131
+ );
132
+ console.error(error);
133
+ }
134
+ }
135
+ return typeDefPath;
136
+ };
137
+ const generateMirrorCells = () => {
138
+ const rwjsPaths = (0, import_project_config.getPaths)();
139
+ return (0, import_files.findCells)().map((p) => generateMirrorCell(p, rwjsPaths));
140
+ };
141
+ const mirrorPathForCell = (p, rwjsPaths = (0, import_project_config.getPaths)()) => {
142
+ const mirrorDir = import_path.default.join(
143
+ rwjsPaths.generated.types.mirror,
144
+ import_path.default.relative(rwjsPaths.base, import_path.default.dirname(p))
145
+ );
146
+ import_fs.default.mkdirSync(mirrorDir, { recursive: true });
147
+ return [mirrorDir, "index.d.ts"];
148
+ };
149
+ const generateMirrorCell = (p, rwjsPaths = (0, import_project_config.getPaths)()) => {
150
+ const [mirrorDir, typeDef] = mirrorPathForCell(p, rwjsPaths);
151
+ import_fs.default.mkdirSync(mirrorDir, { recursive: true });
152
+ const typeDefPath = import_path.default.join(mirrorDir, typeDef);
153
+ const { name } = import_path.default.parse(p);
154
+ const fileContents = (0, import_ast.fileToAst)(p);
155
+ const cellQuery = (0, import_ast.getCellGqlQuery)(fileContents);
156
+ if (cellQuery) {
157
+ const gqlDoc = (0, import_gql.parseGqlQueryToAst)(cellQuery)[0];
158
+ (0, import_templates.writeTemplate)("templates/mirror-cell.d.ts.template", typeDefPath, {
159
+ name,
160
+ queryResultType: `${gqlDoc?.name}`,
161
+ queryVariablesType: `${gqlDoc?.name}Variables`
162
+ });
163
+ } else {
164
+ (0, import_templates.writeTemplate)("templates/mirror-cell.d.ts.template", typeDefPath, {
165
+ name,
166
+ queryResultType: "any",
167
+ queryVariablesType: "any"
168
+ });
169
+ }
170
+ try {
171
+ const exportedComponents = (0, import_ast.getNamedExports)(fileContents);
172
+ const successComponent = exportedComponents.find(
173
+ (x) => x.name === "Success"
174
+ );
175
+ if (successComponent === void 0) {
176
+ throw new Error("No Success component found");
177
+ }
178
+ const map = new import_source_map.SourceMapGenerator({
179
+ file: "index.d.ts"
180
+ });
181
+ map.addMapping({
182
+ generated: {
183
+ line: 12,
184
+ column: 0
185
+ },
186
+ source: import_path.default.relative(import_path.default.dirname(typeDefPath), p),
187
+ original: successComponent.location
188
+ });
189
+ import_fs.default.writeFileSync(
190
+ `${typeDefPath}.map`,
191
+ JSON.stringify(map.toJSON(), void 0, 2)
192
+ );
193
+ } catch (error) {
194
+ console.error("Couldn't generate a definition map for cell at path:", p);
195
+ console.error(error);
196
+ }
197
+ return typeDefPath;
198
+ };
199
+ const writeTypeDefIncludeFile = (template, values = {}) => {
200
+ const rwjsPaths = (0, import_project_config.getPaths)();
201
+ const typeDefPath = import_path.default.join(
202
+ rwjsPaths.generated.types.includes,
203
+ template.replace(".template", "")
204
+ );
205
+ const templateFilename = import_path.default.join("templates", template);
206
+ (0, import_templates.writeTemplate)(templateFilename, typeDefPath, values);
207
+ return [typeDefPath];
208
+ };
209
+ const generateTypeDefRouterRoutes = () => {
210
+ const ast = (0, import_ast.fileToAst)((0, import_project_config.getPaths)().web.routes);
211
+ let hasRootRoute = false;
212
+ const routes = (0, import_jsx.getJsxElements)(ast, "Route").filter((x) => {
213
+ const isValidRoute = typeof x.props?.path !== "undefined" && typeof x.props?.name !== "undefined";
214
+ if (isValidRoute && x.props.path === "/") {
215
+ hasRootRoute = true;
216
+ }
217
+ return isValidRoute;
218
+ });
219
+ try {
220
+ const typeDefPath = import_path.default.join(
221
+ (0, import_project_config.getPaths)().generated.types.includes,
222
+ "web-routerRoutes.d.ts"
223
+ );
224
+ const map = new import_source_map.SourceMapGenerator({
225
+ file: "web-routerRoutes.d.ts"
226
+ });
227
+ const startLine = 7;
228
+ for (let i = 0; i < routes.length; i++) {
229
+ map.addMapping({
230
+ generated: {
231
+ line: startLine + i,
232
+ column: 4
233
+ },
234
+ source: import_path.default.relative(import_path.default.dirname(typeDefPath), (0, import_project_config.getPaths)().web.routes),
235
+ original: routes[i].location
236
+ });
237
+ }
238
+ import_fs.default.writeFileSync(
239
+ `${typeDefPath}.map`,
240
+ JSON.stringify(map.toJSON(), void 0, 2)
241
+ );
242
+ } catch (error) {
243
+ console.error(
244
+ "Couldn't generate a definition map for web-routerRoutes.d.ts:"
245
+ );
246
+ console.error(error);
247
+ }
248
+ if (!hasRootRoute) {
249
+ routes.push({
250
+ name: "splashPage route",
251
+ location: { line: -1, column: -1 },
252
+ props: {
253
+ path: "/",
254
+ name: "home"
255
+ }
256
+ });
257
+ }
258
+ return writeTypeDefIncludeFile("web-routerRoutes.d.ts.template", { routes });
259
+ };
260
+ const generateTypeDefRouterPages = () => {
261
+ const pages = (0, import_project_config.processPagesDir)();
262
+ try {
263
+ const typeDefPath = import_path.default.join(
264
+ (0, import_project_config.getPaths)().generated.types.includes,
265
+ "web-routesPages.d.ts"
266
+ );
267
+ const map = new import_source_map.SourceMapGenerator({
268
+ file: "web-routesPages.d.ts"
269
+ });
270
+ const startLine = pages.length + 5;
271
+ for (let i = 0; i < pages.length; i++) {
272
+ const fileContents = (0, import_ast.fileToAst)(pages[i].path);
273
+ const defaultExportLocation = (0, import_ast.getDefaultExportLocation)(fileContents) ?? {
274
+ line: 1,
275
+ column: 0
276
+ };
277
+ map.addMapping({
278
+ generated: {
279
+ line: startLine + i,
280
+ column: 0
281
+ },
282
+ source: import_path.default.relative(import_path.default.dirname(typeDefPath), pages[i].path),
283
+ original: defaultExportLocation
284
+ });
285
+ }
286
+ import_fs.default.writeFileSync(
287
+ `${typeDefPath}.map`,
288
+ JSON.stringify(map.toJSON(), void 0, 2)
289
+ );
290
+ } catch (error) {
291
+ console.error(
292
+ "Couldn't generate a definition map for web-routesPages.d.ts:"
293
+ );
294
+ console.error(error);
295
+ }
296
+ return writeTypeDefIncludeFile("web-routesPages.d.ts.template", { pages });
297
+ };
298
+ const generateTypeDefCurrentUser = () => {
299
+ return writeTypeDefIncludeFile("all-currentUser.d.ts.template");
300
+ };
301
+ const generateTypeDefScenarios = () => {
302
+ return writeTypeDefIncludeFile("api-scenarios.d.ts.template");
303
+ };
304
+ const generateTypeDefTestMocks = () => {
305
+ return [
306
+ writeTypeDefIncludeFile("api-test-globals.d.ts.template"),
307
+ writeTypeDefIncludeFile("web-test-globals.d.ts.template")
308
+ ].flat();
309
+ };
310
+ const generateTypeDefGlobImports = () => {
311
+ return writeTypeDefIncludeFile("api-globImports.d.ts.template");
312
+ };
313
+ const generateTypeDefGlobalContext = () => {
314
+ return writeTypeDefIncludeFile("api-globalContext.d.ts.template");
315
+ };
316
+ const generateViteClientTypesDirective = () => {
317
+ const viteClientDirective = `/// <reference types="vite/client" />`;
318
+ const redwoodProjectPaths = (0, import_project_config.getPaths)();
319
+ const viteClientDirectivePath = import_path.default.join(
320
+ redwoodProjectPaths.generated.types.includes,
321
+ "web-vite-client.d.ts"
322
+ );
323
+ import_fs.default.writeFileSync(viteClientDirectivePath, viteClientDirective);
324
+ return [viteClientDirectivePath];
325
+ };
326
+ function generateStubStorybookTypes() {
327
+ const stubStorybookTypesFileContent = `declare module '@storybook/react' {
328
+ export type Meta<T = any> = any
329
+ export type StoryObj<T = any> = any
330
+ }
331
+ `;
332
+ const redwoodProjectPaths = (0, import_project_config.getPaths)();
333
+ const packageJson = JSON.parse(
334
+ import_fs.default.readFileSync(
335
+ import_path.default.join(redwoodProjectPaths.base, "package.json"),
336
+ "utf-8"
337
+ )
338
+ );
339
+ const hasCliStorybookVite = Object.keys(
340
+ packageJson["devDependencies"]
341
+ ).includes("@cedarjs/cli-storybook-vite");
342
+ if (hasCliStorybookVite) {
343
+ return [];
344
+ }
345
+ const stubStorybookTypesFilePath = import_path.default.join(
346
+ redwoodProjectPaths.generated.types.includes,
347
+ "web-storybook.d.ts"
348
+ );
349
+ import_fs.default.writeFileSync(stubStorybookTypesFilePath, stubStorybookTypesFileContent);
350
+ return [stubStorybookTypesFilePath];
351
+ }
352
+ // Annotate the CommonJS export names for ESM import in node:
353
+ 0 && (module.exports = {
354
+ generateMirrorCell,
355
+ generateMirrorCells,
356
+ generateMirrorDirectoryNamedModule,
357
+ generateMirrorDirectoryNamedModules,
358
+ generateTypeDefCurrentUser,
359
+ generateTypeDefGlobImports,
360
+ generateTypeDefGlobalContext,
361
+ generateTypeDefRouterPages,
362
+ generateTypeDefRouterRoutes,
363
+ generateTypeDefScenarios,
364
+ generateTypeDefTestMocks,
365
+ generateTypeDefs,
366
+ generateViteClientTypesDirective,
367
+ mirrorPathForCell,
368
+ mirrorPathForDirectoryNamedModules
369
+ });
@@ -0,0 +1,6 @@
1
+ export interface GeneratedFile {
2
+ filename: string;
3
+ content: string;
4
+ hooks: string;
5
+ }
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/generate/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/generate/watch.ts"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
18
+ // If the importer is in node compatibility mode or this is not an ESM
19
+ // file that has been converted to a CommonJS file using a Babel-
20
+ // compatible transform (i.e. "__esModule" has not been set), then set
21
+ // "default" to the CommonJS "module.exports" for node compatibility.
22
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
23
+ mod
24
+ ));
25
+ var import_fs = __toESM(require("fs"), 1);
26
+ var import_path = __toESM(require("path"), 1);
27
+ var import_ansis = __toESM(require("ansis"), 1);
28
+ var import_chokidar = __toESM(require("chokidar"), 1);
29
+ var import_project_config = require("@cedarjs/project-config");
30
+ var import_cliLogger = require("../cliLogger.js");
31
+ var import_files = require("../files.js");
32
+ var import_routes = require("../routes.js");
33
+ var import_clientPreset = require("./clientPreset.js");
34
+ var import_generate = require("./generate.js");
35
+ var import_graphqlCodeGen = require("./graphqlCodeGen.js");
36
+ var import_graphqlSchema = require("./graphqlSchema.js");
37
+ var import_typeDefinitions = require("./typeDefinitions.js");
38
+ const rwjsPaths = (0, import_project_config.getPaths)();
39
+ const watcher = import_chokidar.default.watch("(web|api)/src/**/*.{ts,js,jsx,tsx}", {
40
+ persistent: true,
41
+ ignored: ["node_modules", ".redwood"],
42
+ ignoreInitial: true,
43
+ cwd: rwjsPaths.base,
44
+ awaitWriteFinish: true
45
+ });
46
+ const action = {
47
+ add: "Created",
48
+ unlink: "Deleted",
49
+ change: "Modified"
50
+ };
51
+ let routesWarningMessage = "";
52
+ process.stdin.on("data", async (data) => {
53
+ const str = data.toString().trim().toLowerCase();
54
+ if (str === "g" || str === "rs") {
55
+ (0, import_cliLogger.cliLogger)("Re-creating TypeScript definitions and GraphQL schemas");
56
+ await (0, import_generate.generate)();
57
+ }
58
+ });
59
+ watcher.on("ready", async () => {
60
+ const start = Date.now();
61
+ (0, import_cliLogger.cliLogger)("Generating full TypeScript definitions and GraphQL schemas");
62
+ const { files, errors } = await (0, import_generate.generate)();
63
+ (0, import_cliLogger.cliLogger)(`Done.`);
64
+ import_cliLogger.cliLogger.debug(`
65
+ Created ${files.length} in ${Date.now() - start} ms`);
66
+ if (errors.length > 0) {
67
+ for (const { message, error } of errors) {
68
+ console.error(message);
69
+ console.error(error);
70
+ console.log();
71
+ }
72
+ }
73
+ routesWarningMessage = (0, import_routes.warningForDuplicateRoutes)();
74
+ if (routesWarningMessage) {
75
+ console.warn(routesWarningMessage);
76
+ }
77
+ }).on("all", async (eventName, p) => {
78
+ import_cliLogger.cliLogger.trace(
79
+ `File system change: ${import_ansis.default.magenta(eventName)} ${import_ansis.default.dim(p)}`
80
+ );
81
+ if (!["add", "change", "unlink"].includes(eventName)) {
82
+ return;
83
+ }
84
+ const eventTigger = eventName;
85
+ const absPath = import_path.default.join(rwjsPaths.base, p);
86
+ const start = Date.now();
87
+ const finished = (type) => import_cliLogger.cliLogger.debug(
88
+ action[eventTigger],
89
+ type + ":",
90
+ import_ansis.default.dim(p),
91
+ import_ansis.default.dim.italic(Date.now() - start + " ms")
92
+ );
93
+ if (absPath.includes("Cell") && (0, import_files.isCellFile)(absPath)) {
94
+ await (0, import_graphqlCodeGen.generateTypeDefGraphQLWeb)();
95
+ await (0, import_clientPreset.generateClientPreset)();
96
+ if (eventName === "unlink") {
97
+ import_fs.default.unlinkSync((0, import_typeDefinitions.mirrorPathForCell)(absPath, rwjsPaths)[0]);
98
+ } else {
99
+ (0, import_typeDefinitions.generateMirrorCell)(absPath, rwjsPaths);
100
+ }
101
+ finished("Cell");
102
+ } else if (absPath === rwjsPaths.web.routes) {
103
+ (0, import_typeDefinitions.generateTypeDefRouterRoutes)();
104
+ routesWarningMessage = (0, import_routes.warningForDuplicateRoutes)();
105
+ finished("Routes");
106
+ } else if (absPath.includes("Page") && (0, import_files.isPageFile)(absPath)) {
107
+ (0, import_typeDefinitions.generateTypeDefRouterPages)();
108
+ finished("Page");
109
+ } else if ((0, import_files.isDirectoryNamedModuleFile)(absPath)) {
110
+ if (eventName === "unlink") {
111
+ import_fs.default.unlinkSync((0, import_typeDefinitions.mirrorPathForDirectoryNamedModules)(absPath, rwjsPaths)[0]);
112
+ } else {
113
+ (0, import_typeDefinitions.generateMirrorDirectoryNamedModule)(absPath, rwjsPaths);
114
+ }
115
+ finished("Directory named module");
116
+ } else if ((0, import_files.isGraphQLSchemaFile)(absPath)) {
117
+ await (0, import_graphqlSchema.generateGraphQLSchema)();
118
+ await (0, import_graphqlCodeGen.generateTypeDefGraphQLApi)();
119
+ finished("GraphQL Schema");
120
+ }
121
+ if (routesWarningMessage) {
122
+ console.warn(routesWarningMessage);
123
+ }
124
+ });
@@ -0,0 +1,14 @@
1
+ import type { DocumentNode, OperationTypeNode } from 'graphql';
2
+ interface Operation {
3
+ operation: OperationTypeNode;
4
+ name: string | undefined;
5
+ fields: (string | Field)[];
6
+ }
7
+ interface Field {
8
+ string: (string | Field)[];
9
+ }
10
+ export declare const parseGqlQueryToAst: (gqlQuery: string) => Operation[];
11
+ export declare const parseDocumentAST: (document: DocumentNode) => Operation[];
12
+ export declare const listQueryTypeFieldsInProject: () => Promise<string[]>;
13
+ export {};
14
+ //# sourceMappingURL=gql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../src/gql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EAIZ,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAMhB,UAAU,SAAS;IACjB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,MAAM,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;CAC3B;AAED,UAAU,KAAK;IACb,MAAM,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAA;CAC3B;AAED,eAAO,MAAM,kBAAkB,aAAc,MAAM,gBAGlD,CAAA;AAED,eAAO,MAAM,gBAAgB,aAAc,YAAY,gBAoBtD,CAAA;AAgCD,eAAO,MAAM,4BAA4B,yBA8BxC,CAAA"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var gql_exports = {};
20
+ __export(gql_exports, {
21
+ listQueryTypeFieldsInProject: () => listQueryTypeFieldsInProject,
22
+ parseDocumentAST: () => parseDocumentAST,
23
+ parseGqlQueryToAst: () => parseGqlQueryToAst
24
+ });
25
+ module.exports = __toCommonJS(gql_exports);
26
+ var import_code_file_loader = require("@graphql-tools/code-file-loader");
27
+ var import_load = require("@graphql-tools/load");
28
+ var import_graphql = require("graphql");
29
+ var import_graphql_server = require("@cedarjs/graphql-server");
30
+ var import_project_config = require("@cedarjs/project-config");
31
+ const parseGqlQueryToAst = (gqlQuery) => {
32
+ const ast = (0, import_graphql.parse)(gqlQuery);
33
+ return parseDocumentAST(ast);
34
+ };
35
+ const parseDocumentAST = (document) => {
36
+ const operations = [];
37
+ (0, import_graphql.visit)(document, {
38
+ OperationDefinition(node) {
39
+ const fields = [];
40
+ node.selectionSet.selections.forEach((field) => {
41
+ fields.push(getFields(field));
42
+ });
43
+ operations.push({
44
+ operation: node.operation,
45
+ name: node.name?.value,
46
+ fields
47
+ });
48
+ }
49
+ });
50
+ return operations;
51
+ };
52
+ const getFields = (field) => {
53
+ if (!field.selectionSet) {
54
+ return field.name.value;
55
+ } else {
56
+ const obj = {
57
+ [field.name.value]: []
58
+ };
59
+ const lookAtFieldNode = (node) => {
60
+ node.selectionSet?.selections.forEach((subField) => {
61
+ switch (subField.kind) {
62
+ case import_graphql.Kind.FIELD:
63
+ obj[field.name.value].push(getFields(subField));
64
+ break;
65
+ case import_graphql.Kind.FRAGMENT_SPREAD:
66
+ break;
67
+ case import_graphql.Kind.INLINE_FRAGMENT:
68
+ lookAtFieldNode(subField);
69
+ }
70
+ });
71
+ };
72
+ lookAtFieldNode(field);
73
+ return obj;
74
+ }
75
+ };
76
+ const listQueryTypeFieldsInProject = async () => {
77
+ try {
78
+ const schemaPointerMap = {
79
+ [(0, import_graphql.print)(import_graphql_server.rootSchema.schema)]: {},
80
+ "graphql/**/*.sdl.{js,ts}": {},
81
+ "directives/**/*.{js,ts}": {},
82
+ "subscriptions/**/*.{js,ts}": {}
83
+ };
84
+ const mergedSchema = await (0, import_load.loadSchema)(schemaPointerMap, {
85
+ loaders: [
86
+ new import_code_file_loader.CodeFileLoader({
87
+ noRequire: true,
88
+ pluckConfig: {
89
+ globalGqlIdentifierName: "gql"
90
+ }
91
+ })
92
+ ],
93
+ cwd: (0, import_project_config.getPaths)().api.src,
94
+ assumeValidSDL: true
95
+ });
96
+ const queryTypeFields = mergedSchema.getQueryType()?.getFields();
97
+ return Object.keys(queryTypeFields ?? {});
98
+ } catch (e) {
99
+ console.error(e);
100
+ return [];
101
+ }
102
+ };
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ listQueryTypeFieldsInProject,
106
+ parseDocumentAST,
107
+ parseGqlQueryToAst
108
+ });
@@ -0,0 +1,11 @@
1
+ export * from '@cedarjs/project-config';
2
+ export * from './ts2js.js';
3
+ export * from './dev.js';
4
+ export * from './routes.js';
5
+ export * from './files.js';
6
+ export { generate } from './generate/generate.js';
7
+ export { buildApi } from './build/api.js';
8
+ export * from './validateSchema.js';
9
+ export * from '@cedarjs/babel-config';
10
+ export { listQueryTypeFieldsInProject } from './gql.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA"}