eddev 0.2.0-beta.5 → 0.2.0-beta.52

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 (137) hide show
  1. package/build/build-favicon.d.ts +1 -0
  2. package/build/build-favicon.js +71 -0
  3. package/build/create-serverless-dev-worker.d.ts +3 -0
  4. package/build/create-serverless-dev-worker.js +99 -0
  5. package/build/get-webpack-config.js +26 -11
  6. package/build/manifests/manifest-views.js +1 -1
  7. package/build/reporter.js +0 -109
  8. package/build/serverless/create-next-app.d.ts +2 -0
  9. package/build/serverless/create-next-app.js +326 -86
  10. package/build/state/serverless-state.d.ts +26 -0
  11. package/build/state/serverless-state.js +2 -0
  12. package/build/workers/codegen-worker-script.js +33 -0
  13. package/build/workers/serverless-worker-dev-script.d.ts +1 -0
  14. package/build/workers/serverless-worker-dev-script.js +21 -0
  15. package/cli/build.dev.js +38 -7
  16. package/cli/build.prod.js +13 -1
  17. package/cli/cli.js +26 -18
  18. package/cli/display/components/DevCLIDisplay.d.ts +3 -0
  19. package/cli/display/components/DevCLIDisplay.js +20 -1
  20. package/cli/display/components/ServerlessDisplay.d.ts +9 -0
  21. package/cli/display/components/ServerlessDisplay.js +68 -0
  22. package/components/NextRouter.js +3 -2
  23. package/config/config-schema.d.ts +55 -0
  24. package/config/config-schema.js +19 -0
  25. package/config/create-schema-file.d.ts +1 -0
  26. package/config/create-schema-file.js +20 -0
  27. package/config/get-config.d.ts +39 -0
  28. package/config/get-config.js +32 -0
  29. package/config/index.d.ts +2 -0
  30. package/config/index.js +14 -0
  31. package/config/parse-config.d.ts +25 -0
  32. package/config/parse-config.js +8 -0
  33. package/config/print-zod-errors.d.ts +2 -0
  34. package/config/print-zod-errors.js +14 -0
  35. package/dev-ui/components/BreakpointColumnHeader.d.ts +11 -0
  36. package/dev-ui/components/BreakpointColumnHeader.js +47 -0
  37. package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
  38. package/dev-ui/components/BreakpointIndicator.js +138 -0
  39. package/dev-ui/components/DevUI.d.ts +2 -0
  40. package/dev-ui/components/DevUI.js +28 -0
  41. package/dev-ui/components/Launcher.d.ts +98 -0
  42. package/dev-ui/components/Launcher.js +94 -0
  43. package/dev-ui/components/PanelWrapper.d.ts +8 -0
  44. package/dev-ui/components/PanelWrapper.js +37 -0
  45. package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
  46. package/dev-ui/components/ResponsiveLerpControl.js +177 -0
  47. package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
  48. package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
  49. package/dev-ui/components/atoms/Button.d.ts +47 -0
  50. package/dev-ui/components/atoms/Button.js +67 -0
  51. package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
  52. package/dev-ui/components/atoms/Dropdown.js +50 -0
  53. package/dev-ui/components/atoms/NumberField.d.ts +12 -0
  54. package/dev-ui/components/atoms/NumberField.js +111 -0
  55. package/dev-ui/components/atoms/Spacer.d.ts +42 -0
  56. package/dev-ui/components/atoms/Spacer.js +8 -0
  57. package/dev-ui/components/atoms/Text.d.ts +45 -0
  58. package/dev-ui/components/atoms/Text.js +39 -0
  59. package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
  60. package/dev-ui/components/atoms/ToggleButton.js +41 -0
  61. package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
  62. package/dev-ui/components/atoms/Tooltip.js +66 -0
  63. package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
  64. package/dev-ui/components/panels/PageDataDebugger.js +30 -0
  65. package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
  66. package/dev-ui/components/panels/SpacingEditor.js +88 -0
  67. package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
  68. package/dev-ui/components/panels/TypographyEditor.js +88 -0
  69. package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
  70. package/dev-ui/hooks/useBreakpoint.js +59 -0
  71. package/dev-ui/hooks/usePersistState.d.ts +1 -0
  72. package/dev-ui/hooks/usePersistState.js +36 -0
  73. package/dev-ui/hooks/useStylesheet.d.ts +4 -0
  74. package/dev-ui/hooks/useStylesheet.js +31 -0
  75. package/dev-ui/icons.d.ts +15 -0
  76. package/dev-ui/icons.js +29 -0
  77. package/dev-ui/index.d.ts +1 -0
  78. package/dev-ui/index.js +13 -0
  79. package/dev-ui/loader.d.ts +2 -0
  80. package/dev-ui/loader.js +42 -0
  81. package/dev-ui/panels.d.ts +11 -0
  82. package/dev-ui/panels.js +33 -0
  83. package/dev-ui/theme.d.ts +151 -0
  84. package/dev-ui/theme.js +50 -0
  85. package/entry/Root.d.ts +3 -1
  86. package/entry/Root.js +18 -6
  87. package/hooks/index.d.ts +1 -0
  88. package/hooks/index.js +1 -0
  89. package/hooks/rpc-client.d.ts +3 -0
  90. package/hooks/rpc-client.js +15 -0
  91. package/hooks/useAppData.js +0 -1
  92. package/hooks/useRPC.d.ts +32 -0
  93. package/hooks/useRPC.js +18 -0
  94. package/package.json +19 -8
  95. package/routing/routing.js +1 -1
  96. package/serverless/create-rpc-client.d.ts +20 -0
  97. package/serverless/create-rpc-client.js +20 -0
  98. package/serverless/define-api.d.ts +2 -0
  99. package/serverless/define-api.js +66 -0
  100. package/serverless/define-rpc-router.d.ts +6 -0
  101. package/serverless/define-rpc-router.js +35 -0
  102. package/serverless/error-codes.d.ts +2 -0
  103. package/serverless/error-codes.js +14 -0
  104. package/serverless/index.d.ts +5 -0
  105. package/serverless/index.js +18 -0
  106. package/serverless/rpc-client.d.ts +3 -0
  107. package/serverless/rpc-client.js +15 -0
  108. package/serverless/rpc-provider.d.ts +1 -0
  109. package/serverless/rpc-provider.js +5 -0
  110. package/serverless-template/_utils/PageMeta.tsx +44 -0
  111. package/serverless-template/_utils/ed-config.ts +5 -0
  112. package/serverless-template/_utils/fetch-wordpress-props.ts +40 -8
  113. package/serverless-template/_utils/fetch-wp.ts +16 -0
  114. package/serverless-template/global.d.ts +7 -1
  115. package/serverless-template/next.config.js +73 -53
  116. package/serverless-template/package.json +5 -3
  117. package/serverless-template/pages/404.tsx +12 -0
  118. package/serverless-template/pages/[...slug].tsx +7 -2
  119. package/serverless-template/pages/_app.tsx +32 -12
  120. package/serverless-template/pages/_document.tsx +19 -0
  121. package/serverless-template/pages/api/rest/{[...method].ts → [method].ts} +4 -2
  122. package/serverless-template/pages/api/trpc/[...trpc].ts +26 -0
  123. package/serverless-template/pages/index.tsx +2 -2
  124. package/style/createStitches.d.ts +71 -1
  125. package/style/createStitches.js +151 -45
  126. package/utils/getRepoName.d.ts +2 -2
  127. package/utils/getRepoName.js +14 -52
  128. package/utils/updateEnvFile.d.ts +1 -0
  129. package/utils/updateEnvFile.js +76 -0
  130. package/cli/prepare-next.d.ts +0 -0
  131. package/cli/prepare-next.js +0 -1
  132. package/entry/entry.serverless.dev.d.ts +0 -0
  133. package/entry/entry.serverless.dev.js +0 -2
  134. package/fields/ImageWell.d.ts +0 -8
  135. package/fields/ImageWell.js +0 -64
  136. package/serverless-template/package-lock.json +0 -641
  137. package/serverless-template/pages/api/hello.ts +0 -10
@@ -10,6 +10,25 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
13
32
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
33
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
34
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -57,67 +76,164 @@ var glob_promise_1 = __importDefault(require("glob-promise"));
57
76
  var child_process_1 = require("child_process");
58
77
  var fs_1 = require("fs");
59
78
  var manifest_blocks_1 = require("../manifests/manifest-blocks");
60
- var promises_1 = require("fs/promises");
61
79
  var manifest_views_1 = require("../manifests/manifest-views");
80
+ var getRepoName_1 = require("../../utils/getRepoName");
81
+ var updateEnvFile_1 = require("../../utils/updateEnvFile");
82
+ function requireConfig(dir) {
83
+ var configPath = (0, path_1.resolve)(dir, "ed.config.json");
84
+ return require(configPath);
85
+ }
62
86
  function createNextApp(opts) {
87
+ var _a;
63
88
  return __awaiter(this, void 0, void 0, function () {
64
- var serverlessDirectory;
65
- return __generator(this, function (_a) {
66
- switch (_a.label) {
89
+ var isVercel, serverlessDirectory, sendSignal, repoName, assetPaths, port;
90
+ return __generator(this, function (_b) {
91
+ switch (_b.label) {
67
92
  case 0:
68
- serverlessDirectory = (0, path_1.resolve)(opts.baseDirectory, ".serverless");
69
- // Clean first
70
- return [4 /*yield*/, clean(serverlessDirectory)
71
- // Copy the template folder
72
- ];
93
+ isVercel = process.env.VERCEL;
94
+ serverlessDirectory = isVercel ? opts.baseDirectory : (0, path_1.resolve)(opts.baseDirectory, ".serverless");
95
+ sendSignal = opts.sendSignal || (function () { });
96
+ sendSignal({ code: "preparing" });
97
+ repoName = (0, getRepoName_1.getRepoName)(opts.baseDirectory);
98
+ if (!!isVercel) return [3 /*break*/, 2];
99
+ return [4 /*yield*/, clean(serverlessDirectory)];
73
100
  case 1:
74
- // Clean first
75
- _a.sent();
76
- // Copy the template folder
77
- return [4 /*yield*/, copyTemplate(serverlessDirectory)
78
- // Update package.json
79
- ];
80
- case 2:
81
- // Copy the template folder
82
- _a.sent();
101
+ _b.sent();
102
+ _b.label = 2;
103
+ case 2:
104
+ // Copy the template folder
105
+ return [4 /*yield*/, copyTemplate(serverlessDirectory)
83
106
  // Update package.json
84
- return [4 /*yield*/, updatePackagesFile(opts.baseDirectory, serverlessDirectory)
85
- // Update packages
86
- // TODO: On vercel, can we maybe just symlink or copy node_modules?
87
- ];
107
+ ];
88
108
  case 3:
89
- // Update package.json
90
- _a.sent();
91
- // Update packages
92
- // TODO: On vercel, can we maybe just symlink or copy node_modules?
93
- return [4 /*yield*/, updatePackages(serverlessDirectory)
94
- // Symlink important files and directories
95
- ];
109
+ // Copy the template folder
110
+ _b.sent();
111
+ if (!isVercel) return [3 /*break*/, 5];
112
+ return [4 /*yield*/, updatePackagesFile((0, path_1.resolve)(__dirname, "../../serverless-template"), opts.baseDirectory, opts.baseDirectory)];
96
113
  case 4:
97
- // Update packages
98
- // TODO: On vercel, can we maybe just symlink or copy node_modules?
99
- _a.sent();
100
- // Symlink important files and directories
101
- return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory)
102
- // Create manifests
103
- ];
104
- case 5:
105
- // Symlink important files and directories
106
- _a.sent();
107
- // Create manifests
108
- initManifests(serverlessDirectory, opts.dev);
109
- if (!opts.dev) return [3 /*break*/, 7];
110
- return [4 /*yield*/, runScript(serverlessDirectory, "dev")];
114
+ _b.sent();
115
+ return [3 /*break*/, 7];
116
+ case 5: return [4 /*yield*/, updatePackagesFile((0, path_1.resolve)(__dirname, "../../serverless-template"), opts.baseDirectory, serverlessDirectory)];
111
117
  case 6:
112
- _a.sent();
113
- return [3 /*break*/, 9];
118
+ _b.sent();
119
+ _b.label = 7;
114
120
  case 7:
115
- if (!opts.build) return [3 /*break*/, 9];
116
- return [4 /*yield*/, runScript(serverlessDirectory, "build")];
121
+ assetPaths = ((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.themeAssets) || [];
122
+ if (!!isVercel) return [3 /*break*/, 14];
123
+ // Sync important files during development, as they change
124
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, [
125
+ "blocks/**/*",
126
+ "components/**/*",
127
+ "hooks/**/*",
128
+ "queries/**/*",
129
+ ".env",
130
+ "views/**/*",
131
+ "theme.css.tsx",
132
+ "types.graphql.ts",
133
+ "types.views.ts",
134
+ "types.blocks.ts",
135
+ "types.api.ts",
136
+ "utils/**/*",
137
+ "ed.config.json",
138
+ ])
139
+ // Also sync APIs into the APIs folder
140
+ ];
117
141
  case 8:
118
- _a.sent();
119
- _a.label = 9;
120
- case 9: return [2 /*return*/];
142
+ // Sync important files during development, as they change
143
+ _b.sent();
144
+ // Also sync APIs into the APIs folder
145
+ return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "apis"), ["**/*.{tsx,ts,js,jsx}"])];
146
+ case 9:
147
+ // Also sync APIs into the APIs folder
148
+ _b.sent();
149
+ return [4 /*yield*/, syncAPIProxies((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "pages/api"))
150
+ // Sync the public folder
151
+ ];
152
+ case 10:
153
+ _b.sent();
154
+ if (!assetPaths.length) return [3 /*break*/, 12];
155
+ return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
156
+ case 11:
157
+ _b.sent();
158
+ _b.label = 12;
159
+ case 12:
160
+ // Sync favicon
161
+ return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])];
162
+ case 13:
163
+ // Sync favicon
164
+ _b.sent();
165
+ return [3 /*break*/, 19];
166
+ case 14:
167
+ if (!assetPaths.length) return [3 /*break*/, 16];
168
+ return [4 /*yield*/, copyFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
169
+ case 15:
170
+ _b.sent();
171
+ _b.label = 16;
172
+ case 16:
173
+ // Sync favicon
174
+ return [4 /*yield*/, copyFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])
175
+ // Write APIs proxy code
176
+ ];
177
+ case 17:
178
+ // Sync favicon
179
+ _b.sent();
180
+ // Write APIs proxy code
181
+ return [4 /*yield*/, writeAPIProxies((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "pages/api"))
182
+ // Remove pages/api/trpc directory if no _rpc is found
183
+ ];
184
+ case 18:
185
+ // Write APIs proxy code
186
+ _b.sent();
187
+ // Remove pages/api/trpc directory if no _rpc is found
188
+ console.log({
189
+ index: (0, path_1.join)(opts.baseDirectory, "apis/_rpc/index.ts"),
190
+ rpc: (0, path_1.join)(opts.baseDirectory, "apis/_rpc.ts"),
191
+ });
192
+ if (!(0, fs_1.existsSync)((0, path_1.join)(opts.baseDirectory, "apis/_rpc/index.ts")) &&
193
+ !(0, fs_1.existsSync)((0, path_1.join)(opts.baseDirectory, "apis/_rpc.ts"))) {
194
+ // removeSync(join(serverlessDirectory, "pages/api/trpc"))
195
+ }
196
+ _b.label = 19;
197
+ case 19:
198
+ // Create manifests
199
+ return [4 /*yield*/, initManifests(serverlessDirectory, opts.dev)
200
+ // Update packages
201
+ ];
202
+ case 20:
203
+ // Create manifests
204
+ _b.sent();
205
+ if (!!isVercel) return [3 /*break*/, 22];
206
+ sendSignal({ code: "packaging" });
207
+ return [4 /*yield*/, updatePackages(serverlessDirectory)];
208
+ case 21:
209
+ _b.sent();
210
+ _b.label = 22;
211
+ case 22:
212
+ sendSignal({ code: "compiling" });
213
+ if (!opts.dev) return [3 /*break*/, 25];
214
+ return [4 /*yield*/, getPort(3000)
215
+ // Write the endpoint URL to .env
216
+ ];
217
+ case 23:
218
+ port = _b.sent();
219
+ // Write the endpoint URL to .env
220
+ (0, updateEnvFile_1.updateEnvFile)({
221
+ DEBUG_SERVERLESS_ENDPOINT: "http://localhost:".concat(port),
222
+ }, opts.baseDirectory);
223
+ sendSignal({ code: "url", url: "http://127.0.0.1:".concat(port) });
224
+ // await devNext(serverlessDirectory, port)
225
+ return [4 /*yield*/, runScript(serverlessDirectory, ["dev", "--port", String(port)])];
226
+ case 24:
227
+ // await devNext(serverlessDirectory, port)
228
+ _b.sent();
229
+ return [3 /*break*/, 27];
230
+ case 25:
231
+ if (!opts.build) return [3 /*break*/, 27];
232
+ return [4 /*yield*/, runScript(serverlessDirectory, ["build"])];
233
+ case 26:
234
+ _b.sent();
235
+ _b.label = 27;
236
+ case 27: return [2 /*return*/];
121
237
  }
122
238
  });
123
239
  });
@@ -152,17 +268,15 @@ function copyTemplate(targetFolder) {
152
268
  switch (_a.label) {
153
269
  case 0:
154
270
  sourceFolder = (0, path_1.resolve)(__dirname, "../../serverless-template");
155
- console.log("Copying from", sourceFolder, "to", targetFolder);
156
271
  (0, fs_extra_1.mkdirp)(targetFolder);
157
272
  return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, "**/*.*"))];
158
273
  case 1:
159
274
  files = _a.sent();
160
275
  return [4 /*yield*/, Promise.all(files.map(function (src) {
276
+ if (src.includes("package.json"))
277
+ return null;
161
278
  var dest = src.replace(sourceFolder, targetFolder);
162
279
  return (0, fs_extra_1.copy)(src, dest);
163
- // return new Promise((resolve) => {
164
- // console.log("Copy", src, "to", dest)
165
- // })
166
280
  }))];
167
281
  case 2:
168
282
  _a.sent();
@@ -189,61 +303,149 @@ function updatePackages(dir) {
189
303
  });
190
304
  });
191
305
  }
192
- function updatePackagesFile(sourceFolder, targetFolder) {
306
+ function updatePackagesFile(templateFolder, appFolder, outDirectory) {
193
307
  return __awaiter(this, void 0, void 0, function () {
194
- var sourcePackageFile, targetPackageFile, sourcePackage, targetPackage, mergedPackage;
308
+ var sourcePackageFile, targetPackageFile, outPackageFile, sourcePackage, targetPackage, mergedPackage;
195
309
  return __generator(this, function (_a) {
196
- sourcePackageFile = (0, path_1.resolve)(sourceFolder, "package.json");
197
- targetPackageFile = (0, path_1.resolve)(targetFolder, "package.json");
310
+ sourcePackageFile = (0, path_1.resolve)(templateFolder, "package.json");
311
+ targetPackageFile = (0, path_1.resolve)(appFolder, "package.json");
312
+ outPackageFile = (0, path_1.resolve)(outDirectory, "package.json");
198
313
  sourcePackage = require(sourcePackageFile);
199
314
  targetPackage = require(targetPackageFile);
200
- mergedPackage = __assign(__assign({}, targetPackage), { dependencies: __assign(__assign({}, (sourcePackage.dependencies || {})), (targetPackage.dependencies || {})), devDependencies: __assign(__assign({}, (sourcePackage.devDependencies || {})), (targetPackage.devDependencies || {})) });
201
- (0, fs_extra_1.writeJSON)(targetPackageFile, mergedPackage, {
315
+ mergedPackage = __assign(__assign({}, sourcePackage), { dependencies: __assign(__assign({}, (sourcePackage.dependencies || {})), (targetPackage.dependencies || {})), devDependencies: __assign(__assign({}, (sourcePackage.devDependencies || {})), (targetPackage.devDependencies || {})) });
316
+ (0, fs_extra_1.writeJSON)(outPackageFile, mergedPackage, {
202
317
  spaces: 2,
203
318
  });
204
319
  return [2 /*return*/];
205
320
  });
206
321
  });
207
322
  }
208
- function syncFiles(sourceFolder, targetFolder) {
323
+ function writeAPIProxies(sourceFolder, targetFolder) {
209
324
  return __awaiter(this, void 0, void 0, function () {
210
- var links;
325
+ var files;
211
326
  return __generator(this, function (_a) {
212
327
  switch (_a.label) {
213
- case 0:
214
- links = [
215
- "blocks",
216
- "components",
217
- "hooks",
218
- "queries",
219
- ".env",
220
- "views",
221
- "theme.css.tsx",
222
- "types.graphql.ts",
223
- "types.views.ts",
224
- "types.blocks.ts",
225
- "utils",
226
- ];
227
- return [4 /*yield*/, Promise.all(links.map(function (file) {
228
- var src = (0, path_1.resolve)(sourceFolder, file);
229
- var dest = (0, path_1.resolve)(targetFolder, file);
230
- if ((0, fs_1.existsSync)(src)) {
231
- return (0, fs_extra_1.copy)(src, dest);
232
- }
328
+ case 0: return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.join)(sourceFolder, "**/*.{tsx,ts,js}"))];
329
+ case 1:
330
+ files = _a.sent();
331
+ return [4 /*yield*/, Promise.all(files.map(function (file) {
332
+ var name = file.replace(sourceFolder, "");
333
+ var outputPath = (0, path_1.join)(targetFolder, name);
334
+ if (name.includes("_rpc"))
335
+ return;
336
+ (0, fs_extra_1.ensureFileSync)((0, path_1.join)(outputPath));
337
+ return (0, fs_extra_1.writeFile)(outputPath, "import handler from \"".concat(file, "\"; export default handler;"));
233
338
  }))];
339
+ case 2:
340
+ _a.sent();
341
+ return [2 /*return*/];
342
+ }
343
+ });
344
+ });
345
+ }
346
+ function syncAPIProxies(sourceFolder, targetFolder) {
347
+ return __awaiter(this, void 0, void 0, function () {
348
+ return __generator(this, function (_a) {
349
+ return [2 /*return*/, syncFiles(sourceFolder, targetFolder, ["**/*"], function (inputPath) {
350
+ if (inputPath.includes("_rpc"))
351
+ return null;
352
+ return "import handler from \"".concat(inputPath.replace(/\.(ts|js)x?$/, ""), "\"; export default handler;");
353
+ })];
354
+ });
355
+ });
356
+ }
357
+ function copyFiles(sourceFolder, targetFolder, patterns) {
358
+ return __awaiter(this, void 0, void 0, function () {
359
+ var files;
360
+ return __generator(this, function (_a) {
361
+ switch (_a.label) {
362
+ case 0: return [4 /*yield*/, Promise.all(patterns.map(function (pattern) { return (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, pattern)); }))];
234
363
  case 1:
364
+ files = (_a.sent()).flat();
365
+ // Replace sourceFolder in each path, and copy to target folder
366
+ return [4 /*yield*/, Promise.all(files.map(function (file) {
367
+ var stat = (0, fs_1.statSync)(file);
368
+ if (!stat.isDirectory()) {
369
+ return (0, fs_extra_1.copy)(file, file.replace(sourceFolder, targetFolder));
370
+ }
371
+ }))];
372
+ case 2:
373
+ // Replace sourceFolder in each path, and copy to target folder
235
374
  _a.sent();
236
375
  return [2 /*return*/];
237
376
  }
238
377
  });
239
378
  });
240
379
  }
241
- function runScript(dir, script) {
380
+ function syncFiles(sourceFolder, targetFolder, patterns, proxy) {
381
+ return __awaiter(this, void 0, void 0, function () {
382
+ var _this = this;
383
+ return __generator(this, function (_a) {
384
+ return [2 /*return*/, new Promise(function (ready) { return __awaiter(_this, void 0, void 0, function () {
385
+ var chokidar;
386
+ return __generator(this, function (_a) {
387
+ switch (_a.label) {
388
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("chokidar")); })];
389
+ case 1:
390
+ chokidar = (_a.sent()).default;
391
+ chokidar
392
+ .watch(patterns, {
393
+ cwd: sourceFolder,
394
+ })
395
+ .on("add", function (path) {
396
+ if (proxy) {
397
+ var output = proxy((0, path_1.relative)(targetFolder, (0, path_1.join)(sourceFolder, path)), (0, path_1.join)(targetFolder, path));
398
+ if (typeof output === "string") {
399
+ (0, fs_extra_1.ensureFileSync)((0, path_1.join)(targetFolder, path));
400
+ (0, fs_extra_1.writeFile)((0, path_1.join)(targetFolder, path), output);
401
+ }
402
+ }
403
+ else {
404
+ (0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
405
+ }
406
+ })
407
+ .on("unlink", function (path) {
408
+ (0, fs_extra_1.remove)((0, path_1.join)(targetFolder, path));
409
+ })
410
+ .on("change", function (path) {
411
+ if (!proxy) {
412
+ (0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
413
+ }
414
+ })
415
+ .on("ready", function () {
416
+ ready(undefined);
417
+ });
418
+ return [2 /*return*/];
419
+ }
420
+ });
421
+ }); })];
422
+ });
423
+ });
424
+ }
425
+ // async function devNext(dir: string, port: number) {
426
+ // const { createServer } = await import("http")
427
+ // const { parse } = await import("url")
428
+ // const { default: next } = await import("next")
429
+ // const app = next({
430
+ // dev: true,
431
+ // dir: dir,
432
+ // minimalMode: true,
433
+ // customServer: true,
434
+ // port: port,
435
+ // })
436
+ // const handle = app.getRequestHandler()
437
+ // app.prepare().then(() => {
438
+ // createServer((req, res) => {
439
+ // handle(req, res, parse(req.url || "", true))
440
+ // }).listen(app.port)
441
+ // })
442
+ // }
443
+ function runScript(dir, args) {
242
444
  var _a, _b;
243
445
  return __awaiter(this, void 0, void 0, function () {
244
446
  var proc;
245
447
  return __generator(this, function (_c) {
246
- proc = (0, child_process_1.spawn)("yarn", [script], {
448
+ proc = (0, child_process_1.spawn)("yarn", args, {
247
449
  cwd: dir,
248
450
  });
249
451
  (_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
@@ -269,7 +471,7 @@ function initManifests(dir, dev) {
269
471
  isServerless: true,
270
472
  onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
271
473
  return __generator(this, function (_a) {
272
- (0, promises_1.writeFile)((0, path_1.resolve)(dir, "manifest_blocks.ts"), manifest);
474
+ (0, fs_extra_1.writeFile)((0, path_1.resolve)(dir, "manifest_blocks.ts"), manifest);
273
475
  return [2 /*return*/];
274
476
  });
275
477
  }); },
@@ -282,7 +484,7 @@ function initManifests(dir, dev) {
282
484
  isServerless: true,
283
485
  onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
284
486
  return __generator(this, function (_a) {
285
- (0, promises_1.writeFile)((0, path_1.resolve)(dir, "manifest_views.ts"), manifest);
487
+ (0, fs_extra_1.writeFile)((0, path_1.resolve)(dir, "manifest_views.ts"), manifest);
286
488
  return [2 /*return*/];
287
489
  });
288
490
  }); },
@@ -296,3 +498,41 @@ function initManifests(dir, dev) {
296
498
  });
297
499
  });
298
500
  }
501
+ function getPort(port) {
502
+ if (port === void 0) { port = 3000; }
503
+ return __awaiter(this, void 0, void 0, function () {
504
+ var createServer;
505
+ var _this = this;
506
+ return __generator(this, function (_a) {
507
+ switch (_a.label) {
508
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("net")); })];
509
+ case 1:
510
+ createServer = (_a.sent()).createServer;
511
+ return [4 /*yield*/, new Promise(function (resolve) {
512
+ var server = createServer();
513
+ server.listen(port, "127.0.0.1");
514
+ server.on("listening", function () {
515
+ server.once("close", function () {
516
+ resolve(port);
517
+ });
518
+ server.close();
519
+ });
520
+ server.on("error", function () { return __awaiter(_this, void 0, void 0, function () {
521
+ var _a;
522
+ return __generator(this, function (_b) {
523
+ switch (_b.label) {
524
+ case 0:
525
+ _a = resolve;
526
+ return [4 /*yield*/, getPort(port + 1)];
527
+ case 1:
528
+ _a.apply(void 0, [_b.sent()]);
529
+ return [2 /*return*/];
530
+ }
531
+ });
532
+ }); });
533
+ })];
534
+ case 2: return [2 /*return*/, _a.sent()];
535
+ }
536
+ });
537
+ });
538
+ }
@@ -0,0 +1,26 @@
1
+ export declare type ServerlessStatus = "starting" | "packaging" | "preparing" | "compiling" | "success" | "waiting" | "error";
2
+ export declare type ServerlessState = {
3
+ title: string;
4
+ status: ServerlessStatus;
5
+ statusLabel?: string;
6
+ duration?: number;
7
+ log?: string;
8
+ url?: string;
9
+ };
10
+ export declare type ServerlessSignal = {
11
+ code: "packaging";
12
+ } | {
13
+ code: "preparing";
14
+ } | {
15
+ code: "compiling";
16
+ } | {
17
+ code: "finished";
18
+ duration: number;
19
+ } | {
20
+ code: "error";
21
+ } | {
22
+ code: "log";
23
+ } | {
24
+ code: "url";
25
+ url: string;
26
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -150,6 +150,7 @@ function beginWork(opts) {
150
150
  schemaDescription: false,
151
151
  specifiedByUrl: true,
152
152
  });
153
+ processSchema(schema);
153
154
  hash = JSON.stringify(schema);
154
155
  if (hash !== lastSchemaHash) {
155
156
  lastSchemaHash = hash;
@@ -162,6 +163,8 @@ function beginWork(opts) {
162
163
  }
163
164
  });
164
165
  }); };
166
+ // Create RPC/API types
167
+ (0, promises_1.writeFile)(Path.join(opts.baseDirectory, "types.api.ts"), "\n import type { router, createContext } from \"./apis/_rpc\"\n import { createReactQueryHooks } from \"@trpc/react\"\n export {}\n \n const createQueryHooks = () => createReactQueryHooks<typeof router>()\n \n declare global {\n type RPCUse = ReturnType<typeof createQueryHooks>\n type RPCRouter = typeof router\n type RPCContextType = Awaited<ReturnType<typeof createContext>>\n type RPCClient = ReturnType<RPCUse[\"createClient\"]>\n type RPCUseQuery = RPCUse[\"useQuery\"]\n type RPCUseMutation = RPCUse[\"useMutation\"]\n type RPCUseInfiniteQuery = RPCUse[\"useInfiniteQuery\"]\n }\n\n declare global {\n namespace NodeJS {\n interface Process {\n // @ts-ignore\n browser: boolean\n dev: boolean\n admin: boolean\n serverless: boolean\n }\n }\n }\n \n ");
165
168
  regenerate = debounce(100, function () { return __awaiter(_this, void 0, void 0, function () {
166
169
  var startTime, hasChanged, err_1, documentSets, parseErrors, _loop_1, _a, _b, _i, key, generates, errors, _c, _d, _e, file, base, config, output, err_2;
167
170
  var _this = this;
@@ -575,4 +578,34 @@ function debounce(wait, fn) {
575
578
  };
576
579
  return debounced;
577
580
  }
581
+ function processSchema(schema) {
582
+ var walkFields = function (fields) { };
583
+ var updateFieldType = function (fieldType) {
584
+ var _a;
585
+ if (fieldType.kind === "LIST") {
586
+ if (((_a = fieldType.ofType) === null || _a === void 0 ? void 0 : _a.kind) !== "NON_NULL") {
587
+ fieldType.ofType = {
588
+ kind: "NON_NULL",
589
+ name: null,
590
+ ofType: fieldType.ofType,
591
+ };
592
+ }
593
+ }
594
+ };
595
+ var updateType = function (type) {
596
+ if (typeof type.type === "object" && type.type) {
597
+ updateFieldType(type.type);
598
+ }
599
+ if (type.fields) {
600
+ for (var _i = 0, _a = type.fields; _i < _a.length; _i++) {
601
+ var field = _a[_i];
602
+ updateType(field);
603
+ }
604
+ }
605
+ };
606
+ for (var _i = 0, _a = schema.__schema.types; _i < _a.length; _i++) {
607
+ var type = _a[_i];
608
+ updateType(type);
609
+ }
610
+ }
578
611
  beginWork(worker_threads_1.workerData);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var worker_threads_1 = require("worker_threads");
4
+ var create_next_app_1 = require("../serverless/create-next-app");
5
+ var sendSignal = function (sig) {
6
+ if (worker_threads_1.parentPort) {
7
+ worker_threads_1.parentPort.postMessage(sig);
8
+ }
9
+ };
10
+ function beginWork() {
11
+ process.on("uncaughtException", function (err) {
12
+ sendSignal({ code: "error" });
13
+ });
14
+ (0, create_next_app_1.createNextApp)({
15
+ baseDirectory: process.cwd(),
16
+ build: false,
17
+ dev: true,
18
+ sendSignal: sendSignal,
19
+ });
20
+ }
21
+ beginWork();