@package-verse/esmpack 1.0.29 → 1.0.32

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.
@@ -0,0 +1,30 @@
1
+ export default class Queue {
2
+ constructor() {
3
+ this.head = 0;
4
+ this.tail = 0;
5
+ this.store = new Map();
6
+ }
7
+ peek() {
8
+ return this.store.get(this.head);
9
+ }
10
+ enqueue(item) {
11
+ this.store.set(this.tail, item);
12
+ this.tail++;
13
+ }
14
+ dequeue() {
15
+ const { head, tail } = this;
16
+ const size = tail - head;
17
+ if (size <= 0) {
18
+ return void 0;
19
+ }
20
+ const item = this.store.get(head);
21
+ this.store.delete(head);
22
+ this.head++;
23
+ if (this.head === this.tail) {
24
+ this.head = 0;
25
+ this.tail = 0;
26
+ }
27
+ return item;
28
+ }
29
+ }
30
+ //# sourceMappingURL=Queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/core/Queue.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,OAAO,KAAK;IAA1B;QAEI,SAAI,GAAG,CAAC,CAAC;QACT,SAAI,GAAG,CAAC,CAAC;QAET,UAAK,GAAiB,IAAI,GAAG,EAAE,CAAC;IA2BpC,CAAC;IAzBG,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,OAAO,CAAC,IAAO;QAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAEM,OAAO;QACV,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzB,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ"}
@@ -0,0 +1,69 @@
1
+ import Queue from "./Queue.js";
2
+ const sleep = (n) => new Promise((r) => setTimeout(r, n));
3
+ export default class TaskManager {
4
+ constructor() {
5
+ this.rateLimit = 10;
6
+ this.running = new Set();
7
+ this.waiting = new Queue();
8
+ }
9
+ queueRun(fx) {
10
+ const pr = new Promise((resolve, reject) => {
11
+ this.waiting.enqueue({ resolve, reject, fx });
12
+ });
13
+ // this is to prevent uncaught promise error.
14
+ // eslint-disable-next-line no-console
15
+ pr.catch((error) => console.error(error));
16
+ this.processQueue();
17
+ return pr;
18
+ }
19
+ wait() {
20
+ return new Promise((resolve) => {
21
+ this.runAfterEnd(resolve);
22
+ });
23
+ }
24
+ processQueue() {
25
+ for (;;) {
26
+ if (this.running.size >= this.rateLimit) {
27
+ return;
28
+ }
29
+ const t = this.waiting.dequeue();
30
+ if (!t) {
31
+ return;
32
+ }
33
+ const { fx, resolve, reject } = t;
34
+ this.running.add(fx);
35
+ fx().then((r) => {
36
+ this.running.delete(fx);
37
+ setTimeout(() => this.processQueue(), 1);
38
+ resolve(r);
39
+ }, (e) => {
40
+ this.running.delete(fx);
41
+ setTimeout(() => this.processQueue(), 1);
42
+ reject(e);
43
+ });
44
+ }
45
+ }
46
+ /**
47
+ * You can queue this function that will be
48
+ * executed after all pending fetch tasks
49
+ * are finished
50
+ * @param fx any function
51
+ */
52
+ runAfterEnd(fx) {
53
+ (async () => {
54
+ for (;;) {
55
+ await sleep(100);
56
+ if (this.running.size > 0) {
57
+ continue;
58
+ }
59
+ await sleep(10);
60
+ if (this.running.size > 0) {
61
+ continue;
62
+ }
63
+ break;
64
+ }
65
+ fx();
66
+ })().catch(console.error);
67
+ }
68
+ }
69
+ //# sourceMappingURL=TaskManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskManager.js","sourceRoot":"","sources":["../../src/core/TaskManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,OAAO,OAAO,WAAW;IAAhC;QAEW,cAAS,GAAG,EAAE,CAAC;QAEd,YAAO,GAAa,IAAI,GAAG,EAAE,CAAC;QAE9B,YAAO,GAAmC,IAAI,KAAK,EAAE,CAAC;IA6ElE,CAAC;IA3EU,QAAQ,CAAK,EAAiC;QAEjD,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,sCAAsC;QACtC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,OAAO,EAAiB,CAAC;IAC7B,CAAC;IAEM,IAAI;QACP,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAES,YAAY;QAClB,SAAQ,CAAC;YACL,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,OAAO;YACX,CAAC;YAED,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACL,OAAO;YACX,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAErB,EAAE,EAAE,CAAC,IAAI,CACL,CAAC,CAAC,EAAE,EAAE;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzC,OAAO,CAAC,CAAC,CAAC,CAAC;YACf,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;gBACF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,CAAC,CACJ,CAAC;QAEN,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,EAAa;QAC5B,CAAC,KAAK,IAAI,EAAE;YACR,SAAQ,CAAC;gBACL,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBACD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxB,SAAS;gBACb,CAAC;gBACD,MAAM;YACV,CAAC;YACD,EAAE,EAAE,CAAC;QACT,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CAEJ"}
@@ -0,0 +1,9 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ export default function hasPackDecorator(filePath) {
4
+ return /((@Pack)|("@web-atoms\/core\/dist\/Pack\.js"))/mu.test(readFileSync(filePath, "utf-8"));
5
+ }
6
+ export async function hasPackDecoratorAsync(filePath) {
7
+ return /((@Pack)|("@web-atoms\/core\/dist\/Pack\.js"))/mu.test(await readFile(filePath, "utf-8"));
8
+ }
9
+ //# sourceMappingURL=hasPackDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasPackDecorator.js","sourceRoot":"","sources":["../../src/core/hasPackDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,QAAgB;IACrD,OAAO,kDAAkD,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACxD,OAAO,kDAAkD,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACtG,CAAC"}
@@ -1,58 +1,76 @@
1
1
  import path from "path";
2
2
  import { Babel } from "../parser/babel.js";
3
- import packageMap from "./packageMap.js";
3
+ import { packageInfo } from "../serve/send/packageInfo.js";
4
+ import TaskManager from "../core/TaskManager.js";
4
5
  /**
5
6
  * File Packer must do following tasks...
6
7
  * 1. Create import-map based on the package.json
7
8
  * 2. Replace all non js imports ...
8
9
  *
9
10
  * For App.js following packed scripts will be generated.
10
- * 1. App.packed.js <-- a packed module referencing all modules
11
- * 2. App.loader.js <-- a loader JS that will add import map and it will load `App.packed.js` with
12
- * import.
11
+ * 1. App.pack.js will be generated
12
+ * 2. This will install import-map
13
+ * 3. Import map must add fully qualified url with version
14
+ * 3. And it will add module preloader
15
+ * 4. And it will load fully qualified App.js
13
16
  */
14
17
  export default class FilePacker {
15
- constructor(root, src, prefix) {
18
+ constructor(root, resolve) {
16
19
  this.root = root;
17
- this.src = src;
18
- this.prefix = prefix;
19
- this.cssImports = [];
20
- this.jsonImports = [];
21
- this.pathImports = [];
22
- // empty
23
- // let us make src relative to the root if an absolute path was supplied
24
- if (path.isAbsolute(this.src)) {
25
- this.src = path.relative(this.root, this.src);
26
- }
27
- this.absoluteSrc = path.resolve(this.root, this.src);
20
+ this.resolve = resolve;
21
+ this.imports = [];
22
+ this.done = new Set();
23
+ this.tm = new TaskManager();
28
24
  }
29
- async pack() {
30
- // resolve package.json
31
- this.modules = await packageMap(this.root);
32
- const resolve = (url, sourceFile) => this.resolve(url, sourceFile);
25
+ async pack({ file, root = this.root, packageName = packageInfo.name, moduleUrl = this.moduleUrl(file, packageName, root) }) {
26
+ if (!this.done.has(moduleUrl)) {
27
+ this.imports.push(moduleUrl);
28
+ }
29
+ this.done.add(moduleUrl);
30
+ const fileDir = path.dirname(file);
31
+ const resolve = (url, sourceFile) => {
32
+ if (!url.endsWith(".js")) {
33
+ return url;
34
+ }
35
+ url = this.resolve(url, sourceFile);
36
+ if (url.startsWith(".")) {
37
+ const dependencyFile = path.join(fileDir, url);
38
+ url = path.relative(root, dependencyFile).replaceAll("\\", "/");
39
+ url = `${packageName}/${url}`;
40
+ if (this.done.has(url)) {
41
+ return url;
42
+ }
43
+ this.tm.queueRun(() => this.pack({ file: dependencyFile, root, packageName, moduleUrl: url }));
44
+ }
45
+ else {
46
+ if (this.done.has(url)) {
47
+ return url;
48
+ }
49
+ const dependencyFile = this.root + "/node_modules/" + url;
50
+ const tokens = url.split("/");
51
+ let packageName = tokens.shift();
52
+ if (packageName.startsWith("@")) {
53
+ packageName += tokens.shift();
54
+ }
55
+ const rootFolder = this.root + "/node_modules/" + packageName;
56
+ this.tm.queueRun(() => this.pack({
57
+ file: dependencyFile,
58
+ root: rootFolder,
59
+ packageName,
60
+ moduleUrl: url
61
+ }));
62
+ }
63
+ return url;
64
+ };
33
65
  // we don't need the code
34
66
  await Babel.transformAsync({
35
- file: path.join(this.root, this.src),
67
+ file,
36
68
  resolve,
37
69
  dynamicResolve: resolve
38
70
  });
39
71
  }
40
- resolve(url, sourceFile) {
41
- const moduleUrl = this.moduleUrl(url, sourceFile);
42
- if (url.endsWith(".css")) {
43
- this.cssImports.push(moduleUrl);
44
- return url;
45
- }
46
- if (url.endsWith(".json")) {
47
- this.jsonImports.push(moduleUrl);
48
- return url;
49
- }
50
- if (!url.endsWith(".js")) {
51
- }
52
- return url;
53
- }
54
- moduleUrl(url, sourceFile) {
55
- return url;
72
+ moduleUrl(file, packageName = packageInfo.name, root = this.root) {
73
+ return packageName + "/" + path.relative(root, file).replaceAll("\\", "/");
56
74
  }
57
75
  }
58
76
  //# sourceMappingURL=FilePacker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilePacker.js","sourceRoot":"","sources":["../../src/pack/FilePacker.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,UAA2B,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAY3B,YACoB,IAAY,EACZ,GAAW,EACX,MAAc;QAFd,SAAI,GAAJ,IAAI,CAAQ;QACZ,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QATzB,eAAU,GAAG,EAAE,CAAC;QAEhB,gBAAW,GAAG,EAAE,CAAC;QAEjB,gBAAW,GAAG,EAAE,CAAC;QAOtB,QAAQ;QACR,wEAAwE;QACxE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI;QAEN,uBAAuB;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAEnE,yBAAyB;QACzB,MAAM,KAAK,CAAC,cAAc,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YACpC,OAAO;YACP,cAAc,EAAE,OAAO;SAC1B,CAAC,CAAC;IAGP,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,UAAkB;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAElD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,OAAO,GAAG,CAAC;QACf,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAE3B,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,UAAkB;QAIrC,OAAO,GAAG,CAAC;IACf,CAAC;CACJ"}
1
+ {"version":3,"file":"FilePacker.js","sourceRoot":"","sources":["../../src/pack/FilePacker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default class RewriteJS {
2
+ constructor() {
3
+ }
4
+ }
5
+ //# sourceMappingURL=RewriteJS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RewriteJS.js","sourceRoot":"","sources":["../../src/pack/RewriteJS.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,SAAS;IAE1B;IAEA,CAAC;CAEJ"}
package/dist/pack/pack.js CHANGED
@@ -1,2 +1,70 @@
1
- export {};
1
+ import { opendir, writeFile } from "node:fs/promises";
2
+ import { fileArgument, ProcessOptions } from "../ProcessArgs.js";
3
+ import path, { join, parse, relative } from "node:path";
4
+ import TaskManager from "../core/TaskManager.js";
5
+ import { hasPackDecoratorAsync } from "../core/hasPackDecorator.js";
6
+ import { Babel } from "../parser/babel.js";
7
+ import { existsSync } from "node:fs";
8
+ import FilePacker from "./FilePacker.js";
9
+ async function processJS({ fullPath, relativePath }) {
10
+ const resolve = (url, sourceFile) => {
11
+ if (!url.startsWith(".")) {
12
+ return url;
13
+ }
14
+ if (url.endsWith(".js")) {
15
+ return url;
16
+ }
17
+ if (!sourceFile) {
18
+ sourceFile = fullPath;
19
+ }
20
+ const dir = path.dirname(fullPath);
21
+ const absoluteSourcePath = path.resolve(dir, path.dirname(sourceFile));
22
+ const referencedAbsolutePath = path.join(absoluteSourcePath, url);
23
+ if (existsSync(referencedAbsolutePath)) {
24
+ const relative = path.relative(dir, referencedAbsolutePath).replaceAll("\\", "/");
25
+ return relative;
26
+ }
27
+ return url;
28
+ };
29
+ // rewrite non JS imports
30
+ const code = await Babel.transformAsync({
31
+ file: fullPath,
32
+ resolve
33
+ });
34
+ await writeFile(fullPath, code, "utf-8");
35
+ if (fullPath.endsWith(".pack.js")) {
36
+ return;
37
+ }
38
+ if (await hasPackDecoratorAsync(fullPath)) {
39
+ // need to create a packed file...
40
+ console.log(`Packing ${fullPath}`);
41
+ const fp = new FilePacker(ProcessOptions.cwd, resolve);
42
+ const moduleUrl = fp.moduleUrl(fullPath);
43
+ fp.done.add(moduleUrl);
44
+ await fp.pack({ file: fullPath });
45
+ await fp.tm.wait();
46
+ const packed = fp.imports.map((x) => `import "${x}";`).join("\n");
47
+ const main = `${packed}
48
+ import app from "${moduleUrl}";
49
+ ESMPack.render(app);
50
+ `;
51
+ const { dir, name } = parse(fullPath);
52
+ await writeFile(`${dir}/${name}.pack.js`, main, "utf-8");
53
+ }
54
+ }
55
+ const dir = await opendir(fileArgument
56
+ ? join(ProcessOptions.cwd, fileArgument)
57
+ : ProcessOptions.cwd, { recursive: true });
58
+ const tm = new TaskManager();
59
+ for await (const { name, parentPath } of dir) {
60
+ if (!name.endsWith(".js")) {
61
+ continue;
62
+ }
63
+ const fullPath = join(parentPath, name);
64
+ const relativePath = relative(ProcessOptions.cwd, fullPath);
65
+ tm.queueRun(() => processJS({ fullPath, relativePath }));
66
+ }
67
+ tm.runAfterEnd(() => {
68
+ console.log(`Done`);
69
+ });
2
70
  //# sourceMappingURL=pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/pack/pack.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/pack/pack.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export class Babel {
11
11
  const result = transformSync(code, p);
12
12
  return result.code;
13
13
  }
14
- static async transformAsync({ file, resolve, dynamicResolve }) {
14
+ static async transformAsync({ file, resolve, dynamicResolve = void 0 }) {
15
15
  const presets = Babel.prepareOptions(file, dynamicResolve, resolve);
16
16
  const p = { ...presets, filename: file };
17
17
  const code = await readFile(file, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"babel.js","sourceRoot":"","sources":["../../src/parser/babel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"babel.js","sourceRoot":"","sources":["../../src/parser/babel.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,8 @@ export default function WebServer(req, res) {
14
14
  if (!pathname) {
15
15
  // send list...
16
16
  res.writeHead(301, {
17
- "location": "/node_modules/@package-verse/esmpack/App.html"
17
+ "location": "/node_modules/@package-verse/esmpack/App.html",
18
+ "cache-control": "no-cache,no-store"
18
19
  });
19
20
  res.end();
20
21
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"WebServer.js","sourceRoot":"","sources":["../../src/serve/WebServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebServer.js","sourceRoot":"","sources":["../../src/serve/WebServer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { readdirSync, readFileSync, statSync } from "node:fs";
1
+ import { readdirSync, statSync } from "node:fs";
2
2
  import { join, relative } from "node:path";
3
3
  import { ProcessOptions } from "../../ProcessArgs.js";
4
+ import hasPackDecorator from "../../core/hasPackDecorator.js";
4
5
  export default function sendFileList(url, req, res) {
5
6
  const packed = /yes|true/i.test(url.searchParams.get("packed"));
6
7
  const search = url.searchParams.get("search") || "";
@@ -12,7 +13,8 @@ export default function sendFileList(url, req, res) {
12
13
  && !d.parentPath.replaceAll("\\", "/").includes("node_modules/")
13
14
  && (search ? d.name.toLowerCase().includes(search.toLowerCase()) : true))
14
15
  .map((d) => {
15
- const fullPath = relative(ProcessOptions.cwd, join(d.parentPath, d.name)).replaceAll("\\", "/");
16
+ const filePath = join(d.parentPath, d.name);
17
+ const fullPath = relative(ProcessOptions.cwd, filePath).replaceAll("\\", "/");
16
18
  let size = 0, mtime = new Date();
17
19
  try {
18
20
  const s = statSync(fullPath);
@@ -20,7 +22,7 @@ export default function sendFileList(url, req, res) {
20
22
  mtime = s.mtime;
21
23
  }
22
24
  catch { }
23
- const isPacked = /\@Pack/.test(readFileSync(fullPath, "utf-8"));
25
+ const isPacked = hasPackDecorator(filePath);
24
26
  return { name: d.name, dir: d.parentPath, fullPath, isPacked, size, mtime };
25
27
  })
26
28
  .filter((x) => packed ? x.isPacked : true)
@@ -34,7 +36,7 @@ export default function sendFileList(url, req, res) {
34
36
  const text = JSON.stringify(entries);
35
37
  res.writeHead(200, {
36
38
  "Content-Type": "text/json",
37
- "cache-control": "no-cache"
39
+ "cache-control": "no-cache,no-store"
38
40
  });
39
41
  res.end(text);
40
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sendFileList.js","sourceRoot":"","sources":["../../../src/serve/send/sendFileList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendFileList.js","sourceRoot":"","sources":["../../../src/serve/send/sendFileList.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export default function sendJS(filePath, req, res) {
41
41
  text += `\n//# sourceMappingURL=${base}.map`;
42
42
  res.writeHead(200, {
43
43
  "content-type": "text/javascript",
44
- "cache-control": "no-cache"
44
+ "cache-control": "no-cache,no-store"
45
45
  });
46
46
  res.end(text);
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sendJS.js","sourceRoot":"","sources":["../../../src/serve/send/sendJS.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,QAAgB,EAAE,GAAoB,EAAE,GAAmB;IAEtF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;QAEhD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAG,CAAC,UAAU,EAAE,CAAC;YACb,UAAU,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,8BAA8B;QAE9B,+DAA+D;QAC/D,qCAAqC;QACrC,wCAAwC;QACxC,yCAAyC;QACzC,+CAA+C;QAC/C,QAAQ;QAER,2BAA2B;QAC3B,sCAAsC;QACtC,kCAAkC;QAClC,YAAY;QACZ,QAAQ;QAER,kBAAkB;QAClB,IAAI;QAGJ,kCAAkC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClF,kCAAkC;YAClC,+BAA+B;YAC/B,IAAI;YACJ,OAAO,QAAQ,CAAC;QACpB,CAAC;QAGD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAGF,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAC,CAAC,CAAC;IAEhF,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAI,IAAI,0BAA0B,IAAI,MAAM,CAAC;IAE7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACf,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,UAAU;KAC9B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"sendJS.js","sourceRoot":"","sources":["../../../src/serve/send/sendJS.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,QAAgB,EAAE,GAAoB,EAAE,GAAmB;IAEtF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;QAEhD,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC;QACf,CAAC;QAED,IAAG,CAAC,UAAU,EAAE,CAAC;YACb,UAAU,GAAG,QAAQ,CAAC;QAC1B,CAAC;QAED,8BAA8B;QAE9B,+DAA+D;QAC/D,qCAAqC;QACrC,wCAAwC;QACxC,yCAAyC;QACzC,+CAA+C;QAC/C,QAAQ;QAER,2BAA2B;QAC3B,sCAAsC;QACtC,kCAAkC;QAClC,YAAY;QACZ,QAAQ;QAER,kBAAkB;QAClB,IAAI;QAGJ,kCAAkC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClF,kCAAkC;YAClC,+BAA+B;YAC/B,IAAI;YACJ,OAAO,QAAQ,CAAC;QACpB,CAAC;QAGD,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IAGF,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAC,CAAC,CAAC;IAEhF,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAI,IAAI,0BAA0B,IAAI,MAAM,CAAC;IAE7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACf,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,mBAAmB;KAEvC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@package-verse/esmpack",
3
- "version": "1.0.29",
3
+ "version": "1.0.32",
4
4
  "description": "ESM Pack Packer and Web Server with PostCSS and ESM Loader",
5
5
  "homepage": "https://github.com/package-verse/esmpack#readme",
6
6
  "bugs": {
@@ -0,0 +1,34 @@
1
+
2
+ export default class Queue<T> {
3
+
4
+ head = 0;
5
+ tail = 0;
6
+
7
+ store: Map<any,any> = new Map();
8
+
9
+ peek() {
10
+ return this.store.get(this.head);
11
+ }
12
+
13
+ public enqueue(item: T) {
14
+ this.store.set(this.tail, item);
15
+ this.tail++;
16
+ }
17
+
18
+ public dequeue() {
19
+ const { head, tail } = this;
20
+ const size = tail - head;
21
+ if (size <= 0) {
22
+ return void 0;
23
+ }
24
+ const item = this.store.get(head);
25
+ this.store.delete(head);
26
+ this.head++;
27
+ if (this.head === this.tail) {
28
+ this.head = 0;
29
+ this.tail = 0;
30
+ }
31
+ return item;
32
+ }
33
+
34
+ }
@@ -0,0 +1,88 @@
1
+ import Queue from "./Queue.js";
2
+
3
+ const sleep = (n) => new Promise((r) => setTimeout(r, n));
4
+
5
+ export default class TaskManager {
6
+
7
+ public rateLimit = 10;
8
+
9
+ private running: Set<any> = new Set();
10
+
11
+ private waiting: Queue<{ resolve, reject, fx }> = new Queue();
12
+
13
+ public queueRun<TR>(fx: (... a: any[]) => Promise<TR>): Promise<TR> {
14
+
15
+ const pr = new Promise((resolve, reject) => {
16
+ this.waiting.enqueue({ resolve, reject, fx });
17
+ });
18
+
19
+ // this is to prevent uncaught promise error.
20
+ // eslint-disable-next-line no-console
21
+ pr.catch((error) => console.error(error));
22
+
23
+ this.processQueue();
24
+
25
+ return pr as Promise<TR>;
26
+ }
27
+
28
+ public wait() {
29
+ return new Promise<void>((resolve) => {
30
+ this.runAfterEnd(resolve);
31
+ });
32
+ }
33
+
34
+ protected processQueue() {
35
+ for(;;) {
36
+ if (this.running.size >= this.rateLimit) {
37
+ return;
38
+ }
39
+
40
+ const t = this.waiting.dequeue();
41
+ if (!t) {
42
+ return;
43
+ }
44
+
45
+ const { fx, resolve, reject } = t;
46
+
47
+ this.running.add(fx);
48
+
49
+ fx().then(
50
+ (r) => {
51
+ this.running.delete(fx);
52
+ setTimeout(() => this.processQueue(), 1);
53
+ resolve(r);
54
+ },
55
+ (e) => {
56
+ this.running.delete(fx);
57
+ setTimeout(() => this.processQueue(), 1);
58
+ reject(e);
59
+ }
60
+ );
61
+
62
+ }
63
+ }
64
+
65
+ /**
66
+ * You can queue this function that will be
67
+ * executed after all pending fetch tasks
68
+ * are finished
69
+ * @param fx any function
70
+ */
71
+ public runAfterEnd(fx: () => any) {
72
+ (async () => {
73
+ for(;;) {
74
+ await sleep(100);
75
+ if (this.running.size > 0) {
76
+ continue;
77
+ }
78
+ await sleep(10);
79
+ if (this.running.size > 0) {
80
+ continue;
81
+ }
82
+ break;
83
+ }
84
+ fx();
85
+ })().catch(console.error);
86
+ }
87
+
88
+ }
@@ -0,0 +1,10 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+
4
+ export default function hasPackDecorator(filePath: string) {
5
+ return /((@Pack)|("@web-atoms\/core\/dist\/Pack\.js"))/mu.test(readFileSync(filePath, "utf-8"));
6
+ }
7
+
8
+ export async function hasPackDecoratorAsync(filePath: string) {
9
+ return /((@Pack)|("@web-atoms\/core\/dist\/Pack\.js"))/mu.test(await readFile(filePath, "utf-8"));
10
+ }