@danielx/civet 0.7.14 → 0.7.15

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.
package/dist/astro.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
package/dist/browser.js CHANGED
@@ -38,9 +38,9 @@ var Civet = (() => {
38
38
  ));
39
39
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
40
40
 
41
- // ../Hera/dist/machine.js
41
+ // node_modules/@danielx/hera/dist/machine.js
42
42
  var require_machine = __commonJS({
43
- "../Hera/dist/machine.js"(exports, module) {
43
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
44
44
  "use strict";
45
45
  var __defProp2 = Object.defineProperty;
46
46
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
package/dist/civet CHANGED
@@ -98,11 +98,7 @@ You can override this behavior via: --civet rewriteCivetImports=.ext
98
98
  var encoding = "utf8";
99
99
  function parseArgs(args) {
100
100
  const options = {};
101
- Object.defineProperty(options, "run", {
102
- get: function() {
103
- return !(this.ast || this.compile || this.typecheck || this.emitDeclaration);
104
- }
105
- });
101
+ const isRun = () => !(options.ast || options.compile || options.typecheck || options.emitDeclaration);
106
102
  const filenames = [];
107
103
  let scriptArgs = [];
108
104
  let i = 0;
@@ -208,7 +204,7 @@ function parseArgs(args) {
208
204
  if (arg.startsWith("-") && arg !== "-") {
209
205
  console.error(`Invalid command-line argument: ${arg}`);
210
206
  errors++;
211
- } else if (options.run) {
207
+ } else if (options.run = isRun()) {
212
208
  endOfArgs(i);
213
209
  } else {
214
210
  filenames.push(arg);
@@ -220,6 +216,7 @@ function parseArgs(args) {
220
216
  if (errors) {
221
217
  process.exit(Math.min(255, errors));
222
218
  }
219
+ options.run = isRun();
223
220
  return { filenames, scriptArgs, options };
224
221
  }
225
222
  async function* readFiles(filenames) {
@@ -457,7 +454,8 @@ async function cli() {
457
454
  ...options
458
455
  };
459
456
  }
460
- if (!filenames.length) {
457
+ const typescript = options.typecheck || options.emitDeclaration;
458
+ if (!(filenames.length || typescript)) {
461
459
  if (process.stdin.isTTY) {
462
460
  options.repl = true;
463
461
  } else {
@@ -465,7 +463,7 @@ async function cli() {
465
463
  filenames = ["-"];
466
464
  }
467
465
  }
468
- if (options.typecheck || options.emitDeclaration) {
466
+ if (typescript) {
469
467
  const unpluginOptions = {
470
468
  ...options,
471
469
  ts: options.js ? "civet" : "preserve",
@@ -645,7 +643,7 @@ async function cli() {
645
643
  emitFile({ source, fileName }) {
646
644
  return import_promises.default.writeFile(fileName, source);
647
645
  }
648
- });
646
+ }, !filenames.length);
649
647
  } catch (error) {
650
648
  let ref1;
651
649
  if (ref1 = error.message.match(/Aborting build because of (\d+) TypeScript diagnostic/)) {
package/dist/config.js CHANGED
@@ -38,40 +38,51 @@ module.exports = __toCommonJS(config_exports);
38
38
  var import_path = __toESM(require("path"));
39
39
  var import_promises = __toESM(require("fs/promises"));
40
40
  var import_main = require("./main.js");
41
- var configFileNames = /* @__PURE__ */ new Set([
42
- "\u{1F408}.json",
43
- "\u{1F408}.civet",
44
- "civetconfig.json",
45
- "civetconfig.civet",
46
- "civet.config.json",
47
- "civet.config.civet",
48
- "package.json",
49
- "package.yaml"
50
- ]);
41
+ var configNames = [
42
+ "\u{1F408}",
43
+ "civetconfig",
44
+ "civet.config",
45
+ "package"
46
+ ];
47
+ var configExtensions = [
48
+ ".civet",
49
+ ".js",
50
+ ".yaml",
51
+ ".yml",
52
+ ".json"
53
+ ];
54
+ var configDir = ".config";
51
55
  async function findInDir(dirPath) {
52
- for (const entryName of await import_promises.default.readdir(dirPath)) {
53
- const entryPath = import_path.default.join(dirPath, entryName);
54
- if (entryName === ".config" && await (async () => {
55
- try {
56
- return (await import_promises.default.stat(entryPath)).isDirectory();
57
- } catch (e) {
58
- return;
59
- }
60
- })()) {
61
- const found = await findInDir(entryPath);
62
- if (found) {
63
- return found;
64
- }
56
+ const entries = new Set(await import_promises.default.readdir(dirPath));
57
+ const pathFor = (name) => import_path.default.join(dirPath, name);
58
+ if (entries.has(configDir) && await (async () => {
59
+ try {
60
+ return (await import_promises.default.stat(pathFor(configDir))).isDirectory();
61
+ } catch (e) {
62
+ return;
65
63
  }
66
- const name = entryName.replace(/^\./, "");
67
- if (configFileNames.has(name) && await (async () => {
68
- try {
69
- return (await import_promises.default.stat(entryPath)).isFile();
70
- } catch (e) {
71
- return;
64
+ })()) {
65
+ const found = await findInDir(pathFor(configDir));
66
+ if (found) {
67
+ return found;
68
+ }
69
+ }
70
+ for (let i = 0, len = configNames.length; i < len; i++) {
71
+ const configName = configNames[i];
72
+ for (let i1 = 0, len1 = configExtensions.length; i1 < len1; i1++) {
73
+ const extension = configExtensions[i1];
74
+ for (let ref = ["." + configName + extension, configName + extension], i2 = 0, len2 = ref.length; i2 < len2; i2++) {
75
+ const entry = ref[i2];
76
+ if (entries.has(entry) && await (async () => {
77
+ try {
78
+ return (await import_promises.default.stat(pathFor(entry))).isFile();
79
+ } catch (e) {
80
+ return;
81
+ }
82
+ })()) {
83
+ return pathFor(entry);
84
+ }
72
85
  }
73
- })()) {
74
- return entryPath;
75
86
  }
76
87
  }
77
88
  return;
@@ -89,39 +100,49 @@ async function findConfig(startDir) {
89
100
  }
90
101
  return;
91
102
  }
92
- async function loadConfig(path2) {
93
- const config = await import_promises.default.readFile(path2, "utf8");
103
+ async function loadConfig(pathname) {
104
+ const config = await import_promises.default.readFile(pathname, "utf8");
94
105
  let data = {};
95
- if (path2.endsWith(".json")) {
106
+ if (pathname.endsWith(".json")) {
107
+ let json;
96
108
  try {
97
- const json = JSON.parse(config);
98
- data = json.civetConfig ?? json;
109
+ json = JSON.parse(config);
99
110
  } catch (e) {
100
- throw new Error(`Error parsing JSON config file ${path2}: ${e}`);
111
+ throw new Error(`Error parsing JSON config file ${pathname}: ${e}`);
101
112
  }
102
- } else if (/\.ya?ml$/.test(path2)) {
113
+ if ("civetConfig" in json) {
114
+ data = json.civetConfig;
115
+ } else if (import_path.default.basename(pathname).startsWith("package")) {
116
+ return {};
117
+ } else {
118
+ data = json;
119
+ }
120
+ } else if (/\.ya?ml$/.test(pathname)) {
103
121
  try {
104
122
  const { default: YAML } = await import("yaml");
105
123
  const yaml = YAML.parse(config);
106
124
  data = yaml.civetConfig ?? yaml;
107
125
  } catch (e) {
108
- throw new Error(`Error parsing YAML config file ${path2}: ${e}`);
126
+ throw new Error(`Error parsing YAML config file ${pathname}: ${e}`);
109
127
  }
110
128
  } else {
111
129
  let js;
112
- try {
113
- js = (0, import_main.compile)(config, {
114
- js: true,
115
- sync: true
116
- });
117
- } catch (e) {
118
- throw new Error(`Error compiling Civet config file ${path2}: ${e}`);
130
+ if (pathname.endsWith(".civet")) {
131
+ try {
132
+ js = await (0, import_main.compile)(config, {
133
+ js: true
134
+ });
135
+ } catch (e) {
136
+ throw new Error(`Error compiling Civet config file ${pathname}: ${e}`);
137
+ }
138
+ } else {
139
+ js = config;
119
140
  }
120
141
  try {
121
142
  const exports2 = await import(`data:text/javascript,${encodeURIComponent(js)}`);
122
143
  data = exports2?.default;
123
144
  } catch (e) {
124
- throw new Error(`Error running Civet config file ${path2}: ${e}`);
145
+ throw new Error(`Error running Civet config file ${pathname}: ${e}`);
125
146
  }
126
147
  }
127
148
  if (!(data != null && typeof data === "object" && !Array.isArray(data))) {
package/dist/esbuild.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
package/dist/main.js CHANGED
@@ -30,9 +30,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  ));
31
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
32
 
33
- // ../Hera/dist/machine.js
33
+ // node_modules/@danielx/hera/dist/machine.js
34
34
  var require_machine = __commonJS({
35
- "../Hera/dist/machine.js"(exports2, module2) {
35
+ "node_modules/@danielx/hera/dist/machine.js"(exports2, module2) {
36
36
  "use strict";
37
37
  var __defProp2 = Object.defineProperty;
38
38
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
package/dist/main.mjs CHANGED
@@ -28,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  mod
29
29
  ));
30
30
 
31
- // ../Hera/dist/machine.js
31
+ // node_modules/@danielx/hera/dist/machine.js
32
32
  var require_machine = __commonJS({
33
- "../Hera/dist/machine.js"(exports, module) {
33
+ "node_modules/@danielx/hera/dist/machine.js"(exports, module) {
34
34
  "use strict";
35
35
  var __defProp2 = Object.defineProperty;
36
36
  var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
package/dist/rollup.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
@@ -68,6 +68,7 @@ var rawPlugin = (options = {}, meta) => {
68
68
  let rootDir = process.cwd();
69
69
  let esbuildOptions;
70
70
  let configErrors;
71
+ let configFileNames;
71
72
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
72
73
  const getFormatHost = (sys) => {
73
74
  return {
@@ -82,6 +83,16 @@ var rawPlugin = (options = {}, meta) => {
82
83
  enforce: "pre",
83
84
  async buildStart() {
84
85
  if (transformTS || options.ts === "tsc") {
86
+ let mogrify2 = function(key) {
87
+ if (key in config && Array.isArray(config[key])) {
88
+ config[key] = config[key].map((item) => {
89
+ if (typeof item !== "string")
90
+ return item;
91
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
92
+ });
93
+ }
94
+ };
95
+ var mogrify = mogrify2;
85
96
  const ts = await tsPromise;
86
97
  const civetConfigPath = "config" in options ? options.config : await findInDir(process.cwd());
87
98
  if (civetConfigPath) {
@@ -103,12 +114,20 @@ var rawPlugin = (options = {}, meta) => {
103
114
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
104
115
  throw error;
105
116
  }
117
+ mogrify2("files");
118
+ const system = { ...ts.sys };
119
+ const { readDirectory: systemReadDirectory } = system;
120
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
121
+ extensions = [...extensions ?? [], ".civet"];
122
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
123
+ };
106
124
  const configContents = ts.parseJsonConfigFileContent(
107
125
  config,
108
- ts.sys,
126
+ system,
109
127
  process.cwd()
110
128
  );
111
129
  configErrors = configContents.errors;
130
+ configFileNames = configContents.fileNames;
112
131
  compilerOptions = {
113
132
  ...configContents.options,
114
133
  target: ts.ScriptTarget.ESNext,
@@ -122,11 +141,15 @@ var rawPlugin = (options = {}, meta) => {
122
141
  fsMap = /* @__PURE__ */ new Map();
123
142
  }
124
143
  },
125
- async buildEnd() {
144
+ async buildEnd(useConfigFileNames = false) {
126
145
  if (transformTS) {
127
146
  const ts = await tsPromise;
128
147
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
129
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
148
+ const {
149
+ fileExists: systemFileExists,
150
+ readFile: systemReadFile,
151
+ readDirectory: systemReadDirectory
152
+ } = system;
130
153
  system.fileExists = (filename) => {
131
154
  if (!filename.endsWith(".civet.tsx"))
132
155
  return systemFileExists(filename);
@@ -134,6 +157,7 @@ var rawPlugin = (options = {}, meta) => {
134
157
  return true;
135
158
  return systemFileExists(filename.slice(0, -4));
136
159
  };
160
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
137
161
  system.readFile = (filename, encoding = "utf-8") => {
138
162
  if (path.basename(filename) === "package.json") {
139
163
  let recurse2 = function(node) {
@@ -152,7 +176,7 @@ var rawPlugin = (options = {}, meta) => {
152
176
  }
153
177
  };
154
178
  var recurse = recurse2;
155
- const json = systemReadFile(filename);
179
+ const json = systemReadFile(filename, encoding);
156
180
  if (!json)
157
181
  return json;
158
182
  const parsed = JSON.parse(json);
@@ -161,7 +185,7 @@ var rawPlugin = (options = {}, meta) => {
161
185
  return modified ? JSON.stringify(parsed) : json;
162
186
  }
163
187
  if (!filename.endsWith(".civet.tsx"))
164
- return systemReadFile(filename);
188
+ return systemReadFile(filename, encoding);
165
189
  if (fsMap.has(filename))
166
190
  return fsMap.get(filename);
167
191
  const civetFilename = filename.slice(0, -4);
@@ -183,8 +207,9 @@ var rawPlugin = (options = {}, meta) => {
183
207
  compilerOptions,
184
208
  ts
185
209
  );
210
+ host.compilerHost.getDirectories = system.getDirectories;
186
211
  const program = ts.createProgram({
187
- rootNames: [...fsMap.keys()],
212
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
188
213
  options: compilerOptions,
189
214
  host: host.compilerHost
190
215
  });
package/dist/unplugin.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
package/dist/vite.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
package/dist/webpack.js CHANGED
@@ -101,6 +101,7 @@ var rawPlugin = (options = {}, meta) => {
101
101
  let rootDir = process.cwd();
102
102
  let esbuildOptions;
103
103
  let configErrors;
104
+ let configFileNames;
104
105
  const tsPromise = transformTS || options.ts === "tsc" ? import("typescript").then((m) => m.default) : null;
105
106
  const getFormatHost = (sys) => {
106
107
  return {
@@ -115,6 +116,16 @@ var rawPlugin = (options = {}, meta) => {
115
116
  enforce: "pre",
116
117
  async buildStart() {
117
118
  if (transformTS || options.ts === "tsc") {
119
+ let mogrify2 = function(key) {
120
+ if (key in config && Array.isArray(config[key])) {
121
+ config[key] = config[key].map((item) => {
122
+ if (typeof item !== "string")
123
+ return item;
124
+ return item.replace(/\.civet\b(?!\.)/g, ".civet.tsx");
125
+ });
126
+ }
127
+ };
128
+ var mogrify = mogrify2;
118
129
  const ts = await tsPromise;
119
130
  const civetConfigPath = "config" in options ? options.config : await (0, import_config.findInDir)(process.cwd());
120
131
  if (civetConfigPath) {
@@ -136,12 +147,20 @@ var rawPlugin = (options = {}, meta) => {
136
147
  console.error(ts.formatDiagnostic(error, getFormatHost(ts.sys)));
137
148
  throw error;
138
149
  }
150
+ mogrify2("files");
151
+ const system = { ...ts.sys };
152
+ const { readDirectory: systemReadDirectory } = system;
153
+ system.readDirectory = (path2, extensions, excludes, includes, depth) => {
154
+ extensions = [...extensions ?? [], ".civet"];
155
+ return systemReadDirectory(path2, extensions, excludes, includes, depth).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
156
+ };
139
157
  const configContents = ts.parseJsonConfigFileContent(
140
158
  config,
141
- ts.sys,
159
+ system,
142
160
  process.cwd()
143
161
  );
144
162
  configErrors = configContents.errors;
163
+ configFileNames = configContents.fileNames;
145
164
  compilerOptions = {
146
165
  ...configContents.options,
147
166
  target: ts.ScriptTarget.ESNext,
@@ -155,11 +174,15 @@ var rawPlugin = (options = {}, meta) => {
155
174
  fsMap = /* @__PURE__ */ new Map();
156
175
  }
157
176
  },
158
- async buildEnd() {
177
+ async buildEnd(useConfigFileNames = false) {
159
178
  if (transformTS) {
160
179
  const ts = await tsPromise;
161
180
  const system = tsvfs.createFSBackedSystem(fsMap, process.cwd(), ts);
162
- const { fileExists: systemFileExists, readFile: systemReadFile } = system;
181
+ const {
182
+ fileExists: systemFileExists,
183
+ readFile: systemReadFile,
184
+ readDirectory: systemReadDirectory
185
+ } = system;
163
186
  system.fileExists = (filename) => {
164
187
  if (!filename.endsWith(".civet.tsx"))
165
188
  return systemFileExists(filename);
@@ -167,6 +190,7 @@ var rawPlugin = (options = {}, meta) => {
167
190
  return true;
168
191
  return systemFileExists(filename.slice(0, -4));
169
192
  };
193
+ system.readDirectory = (path2) => systemReadDirectory(path2).map((name) => name.endsWith(".civet") ? name + ".tsx" : name);
170
194
  system.readFile = (filename, encoding = "utf-8") => {
171
195
  if (import_path.default.basename(filename) === "package.json") {
172
196
  let recurse2 = function(node) {
@@ -185,7 +209,7 @@ var rawPlugin = (options = {}, meta) => {
185
209
  }
186
210
  };
187
211
  var recurse = recurse2;
188
- const json = systemReadFile(filename);
212
+ const json = systemReadFile(filename, encoding);
189
213
  if (!json)
190
214
  return json;
191
215
  const parsed = JSON.parse(json);
@@ -194,7 +218,7 @@ var rawPlugin = (options = {}, meta) => {
194
218
  return modified ? JSON.stringify(parsed) : json;
195
219
  }
196
220
  if (!filename.endsWith(".civet.tsx"))
197
- return systemReadFile(filename);
221
+ return systemReadFile(filename, encoding);
198
222
  if (fsMap.has(filename))
199
223
  return fsMap.get(filename);
200
224
  const civetFilename = filename.slice(0, -4);
@@ -216,8 +240,9 @@ var rawPlugin = (options = {}, meta) => {
216
240
  compilerOptions,
217
241
  ts
218
242
  );
243
+ host.compilerHost.getDirectories = system.getDirectories;
219
244
  const program = ts.createProgram({
220
- rootNames: [...fsMap.keys()],
245
+ rootNames: useConfigFileNames ? configFileNames : [...fsMap.keys()],
221
246
  options: compilerOptions,
222
247
  host: host.compilerHost
223
248
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@danielx/civet",
3
3
  "type": "commonjs",
4
- "version": "0.7.14",
4
+ "version": "0.7.15",
5
5
  "description": "CoffeeScript style syntax for TypeScript",
6
6
  "main": "dist/main.js",
7
7
  "module": "dist/main.mjs",