@cmmn/tools 2.2.3 → 3.0.0-alpha-4

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 (205) hide show
  1. package/.swcrc +20 -0
  2. package/dist/bundle/index.js +913 -0
  3. package/dist/bundle/test.js +32 -0
  4. package/dist/esm/bin.js +9 -0
  5. package/dist/esm/bin.js.map +1 -0
  6. package/dist/esm/bundlers/createBundler.js +9 -0
  7. package/dist/esm/bundlers/createBundler.js.map +1 -0
  8. package/dist/esm/bundlers/plugins/minify.js +34 -0
  9. package/dist/esm/bundlers/plugins/minify.js.map +1 -0
  10. package/dist/esm/bundlers/plugins/wasm.js +43 -0
  11. package/dist/esm/bundlers/plugins/wasm.js.map +1 -0
  12. package/dist/esm/bundlers/rolldown-bundler.js +153 -0
  13. package/dist/esm/bundlers/rolldown-bundler.js.map +1 -0
  14. package/dist/esm/bundlers/types.js +3 -0
  15. package/dist/esm/bundlers/types.js.map +1 -0
  16. package/dist/esm/bundlers/vite.builder.js +117 -0
  17. package/dist/esm/bundlers/vite.builder.js.map +1 -0
  18. package/dist/esm/bundlers/vite.bundler.js +56 -0
  19. package/dist/esm/bundlers/vite.bundler.js.map +1 -0
  20. package/dist/esm/commands/bundle.js +102 -0
  21. package/dist/esm/commands/bundle.js.map +1 -0
  22. package/dist/esm/commands/cert.js +26 -0
  23. package/dist/esm/commands/cert.js.map +1 -0
  24. package/dist/esm/commands/ci.js +14 -0
  25. package/dist/esm/commands/ci.js.map +1 -0
  26. package/dist/esm/commands/clean.js +18 -0
  27. package/dist/esm/commands/clean.js.map +1 -0
  28. package/dist/esm/commands/compile.js +60 -0
  29. package/dist/esm/commands/compile.js.map +1 -0
  30. package/dist/esm/commands/deploy.js +61 -0
  31. package/dist/esm/commands/deploy.js.map +1 -0
  32. package/dist/esm/commands/dev.js +37 -0
  33. package/dist/esm/commands/dev.js.map +1 -0
  34. package/dist/esm/commands/format.js +44 -0
  35. package/dist/esm/commands/format.js.map +1 -0
  36. package/dist/esm/commands/gen.js +36 -0
  37. package/dist/esm/commands/gen.js.map +1 -0
  38. package/dist/esm/commands/host.js +21 -0
  39. package/dist/esm/commands/host.js.map +1 -0
  40. package/dist/esm/commands/index.js +12 -0
  41. package/dist/esm/commands/index.js.map +1 -0
  42. package/dist/esm/commands/lint.js +45 -0
  43. package/dist/esm/commands/lint.js.map +1 -0
  44. package/dist/esm/commands/nginx.js +62 -0
  45. package/dist/esm/commands/nginx.js.map +1 -0
  46. package/dist/esm/commands/publish.js +37 -0
  47. package/dist/esm/commands/publish.js.map +1 -0
  48. package/dist/esm/commands/typings.js +66 -0
  49. package/dist/esm/commands/typings.js.map +1 -0
  50. package/dist/esm/commands/version.js +34 -0
  51. package/dist/esm/commands/version.js.map +1 -0
  52. package/dist/esm/dev-server/asset-collection.js +18 -0
  53. package/dist/esm/dev-server/asset-collection.js.map +1 -0
  54. package/dist/esm/dev-server/bundle.json.builder.js +47 -0
  55. package/dist/esm/dev-server/bundle.json.builder.js.map +1 -0
  56. package/dist/esm/dev-server/dependencyServer.js +96 -0
  57. package/dist/esm/dev-server/dependencyServer.js.map +1 -0
  58. package/dist/esm/dev-server/dev-server.js +49 -0
  59. package/dist/esm/dev-server/dev-server.js.map +1 -0
  60. package/dist/esm/dev-server/plugins/minify.js +34 -0
  61. package/dist/esm/dev-server/plugins/minify.js.map +1 -0
  62. package/dist/esm/dev-server/plugins/wasm.js +30 -0
  63. package/dist/esm/dev-server/plugins/wasm.js.map +1 -0
  64. package/dist/esm/dev-server/resolver.js +55 -0
  65. package/dist/esm/dev-server/resolver.js.map +1 -0
  66. package/dist/esm/dev-server/rolldown-dependency-builder.js +150 -0
  67. package/dist/esm/dev-server/rolldown-dependency-builder.js.map +1 -0
  68. package/dist/esm/dev-server/target-runnner.js +72 -0
  69. package/dist/esm/dev-server/target-runnner.js.map +1 -0
  70. package/dist/esm/dev-server/target-web-server.js +78 -0
  71. package/dist/esm/dev-server/target-web-server.js.map +1 -0
  72. package/dist/esm/dev-server/targetServer.js +29 -0
  73. package/dist/esm/dev-server/targetServer.js.map +1 -0
  74. package/dist/esm/dev-server/vite.builder.js +183 -0
  75. package/dist/esm/dev-server/vite.builder.js.map +1 -0
  76. package/dist/esm/dev-server/wasm-resolver.js +25 -0
  77. package/dist/esm/dev-server/wasm-resolver.js.map +1 -0
  78. package/dist/esm/helpers/fastify-compress.js +26 -0
  79. package/dist/esm/helpers/fastify-compress.js.map +1 -0
  80. package/dist/esm/helpers/flags.js +22 -0
  81. package/dist/esm/helpers/flags.js.map +1 -0
  82. package/dist/esm/helpers/getProjects.js +49 -0
  83. package/dist/esm/helpers/getProjects.js.map +1 -0
  84. package/dist/esm/helpers/getTSConfig.js +32 -0
  85. package/dist/esm/helpers/getTSConfig.js.map +1 -0
  86. package/dist/esm/helpers/target.js +230 -0
  87. package/dist/esm/helpers/target.js.map +1 -0
  88. package/dist/esm/helpers/terminal.js +117 -0
  89. package/dist/esm/helpers/terminal.js.map +1 -0
  90. package/dist/esm/helpers/ts-resolve-plugin.js +139 -0
  91. package/dist/esm/helpers/ts-resolve-plugin.js.map +1 -0
  92. package/dist/esm/helpers/watcher.js +35 -0
  93. package/dist/esm/helpers/watcher.js.map +1 -0
  94. package/dist/esm/index.js +5 -0
  95. package/dist/esm/index.js.map +1 -0
  96. package/dist/esm/model/bundle.js +75 -0
  97. package/dist/esm/model/bundle.js.map +1 -0
  98. package/dist/esm/model/flags.js +27 -0
  99. package/dist/esm/model/flags.js.map +1 -0
  100. package/dist/esm/model/monorepo.js +74 -0
  101. package/dist/esm/model/monorepo.js.map +1 -0
  102. package/dist/esm/model/pack.js +134 -0
  103. package/dist/esm/model/pack.js.map +1 -0
  104. package/dist/esm/model/resolver.js +100 -0
  105. package/dist/esm/model/resolver.js.map +1 -0
  106. package/dist/esm/model/target.js +111 -0
  107. package/dist/esm/model/target.js.map +1 -0
  108. package/dist/esm/servers/bundle-server.js +20 -0
  109. package/dist/esm/servers/bundle-server.js.map +1 -0
  110. package/dist/esm/servers/dev-server.js +70 -0
  111. package/dist/esm/servers/dev-server.js.map +1 -0
  112. package/dist/esm/servers/pack-server.js +20 -0
  113. package/dist/esm/servers/pack-server.js.map +1 -0
  114. package/dist/esm/servers/target-runnner.js +80 -0
  115. package/dist/esm/servers/target-runnner.js.map +1 -0
  116. package/dist/esm/servers/vite-dev-server.js +61 -0
  117. package/dist/esm/servers/vite-dev-server.js.map +1 -0
  118. package/dist/esm/specs/dependency-builder-specs.js +164 -0
  119. package/dist/esm/specs/dependency-builder-specs.js.map +1 -0
  120. package/dist/esm/specs/dev-server.specs.js +73 -0
  121. package/dist/esm/specs/dev-server.specs.js.map +1 -0
  122. package/dist/esm/specs/monorepo.specs.js +35 -0
  123. package/dist/esm/specs/monorepo.specs.js.map +1 -0
  124. package/dist/esm/specs/resolver.specs.js +57 -0
  125. package/dist/esm/specs/resolver.specs.js.map +1 -0
  126. package/dist/esm/specs/rolldown.specs.js +278 -0
  127. package/dist/esm/specs/rolldown.specs.js.map +1 -0
  128. package/dist/esm/specs/target-specs.js +108 -0
  129. package/dist/esm/specs/target-specs.js.map +1 -0
  130. package/dist/esm/specs/vite-bundler.specs.js +77 -0
  131. package/dist/esm/specs/vite-bundler.specs.js.map +1 -0
  132. package/dist/esm/test/test.js +30 -0
  133. package/dist/esm/test/test.js.map +1 -0
  134. package/dist/ts.buildinfo +1 -0
  135. package/dist/typings/bin.d.ts +2 -0
  136. package/dist/typings/bundlers/plugins/minify.d.ts +6 -0
  137. package/dist/typings/bundlers/plugins/wasm.d.ts +5 -0
  138. package/dist/typings/bundlers/rolldown-bundler.d.ts +18 -0
  139. package/dist/typings/bundlers/types.d.ts +4 -0
  140. package/dist/typings/bundlers/vite.builder.d.ts +12 -0
  141. package/dist/typings/bundlers/vite.bundler.d.ts +9 -0
  142. package/dist/typings/commands/bundle.d.ts +2 -0
  143. package/dist/typings/commands/cert.d.ts +1 -0
  144. package/dist/typings/commands/clean.d.ts +2 -0
  145. package/dist/typings/commands/compile.d.ts +2 -0
  146. package/dist/typings/commands/dev.d.ts +2 -0
  147. package/dist/typings/commands/format.d.ts +5 -0
  148. package/dist/typings/commands/gen.d.ts +1 -0
  149. package/dist/typings/commands/host.d.ts +1 -0
  150. package/dist/typings/commands/index.d.ts +10 -0
  151. package/dist/typings/commands/lint.d.ts +5 -0
  152. package/dist/typings/commands/nginx.d.ts +6 -0
  153. package/dist/typings/commands/publish.d.ts +2 -0
  154. package/dist/typings/commands/typings.d.ts +4 -0
  155. package/dist/typings/commands/version.d.ts +1 -0
  156. package/dist/typings/helpers/fastify-compress.d.ts +6 -0
  157. package/dist/typings/helpers/getTSConfig.d.ts +11 -0
  158. package/dist/typings/helpers/terminal.d.ts +22 -0
  159. package/dist/typings/helpers/watcher.d.ts +7 -0
  160. package/dist/typings/index.d.ts +4 -0
  161. package/dist/typings/model/bundle.d.ts +34 -0
  162. package/dist/typings/model/flags.d.ts +15 -0
  163. package/dist/typings/model/monorepo.d.ts +18 -0
  164. package/dist/typings/model/pack.d.ts +45 -0
  165. package/dist/typings/model/resolver.d.ts +38 -0
  166. package/dist/typings/model/target.d.ts +27 -0
  167. package/dist/typings/servers/bundle-server.d.ts +10 -0
  168. package/dist/typings/servers/dev-server.d.ts +16 -0
  169. package/dist/typings/servers/pack-server.d.ts +9 -0
  170. package/dist/typings/servers/target-runnner.d.ts +13 -0
  171. package/dist/typings/servers/vite-dev-server.d.ts +18 -0
  172. package/dist/typings/specs/dev-server.specs.d.ts +1 -0
  173. package/dist/typings/specs/monorepo.specs.d.ts +1 -0
  174. package/dist/typings/specs/resolver.specs.d.ts +1 -0
  175. package/dist/typings/specs/rolldown.specs.d.ts +1 -0
  176. package/dist/typings/specs/target-specs.d.ts +1 -0
  177. package/dist/typings/specs/vite-bundler.specs.d.ts +1 -0
  178. package/dist/typings/test/test.d.ts +16 -0
  179. package/{compile → helpers}/tsconfig.json +12 -9
  180. package/node/hooks-dev.js +72 -0
  181. package/node/register-dev.js +3 -0
  182. package/node/register.js +14 -0
  183. package/package.json +51 -40
  184. package/readme.md +2 -2
  185. package/tsconfig.json +14 -0
  186. package/LICENSE +0 -21
  187. package/bin.js +0 -21
  188. package/bundle/bundle.js +0 -46
  189. package/bundle/esbuild.config.js +0 -178
  190. package/bundle/getConfigs.js +0 -62
  191. package/compile/compile.js +0 -53
  192. package/compile/ts-resolve-plugin.js +0 -235
  193. package/compile/typings.d.ts +0 -19
  194. package/gen/component.ts.tpl +0 -16
  195. package/gen/gen.js +0 -27
  196. package/gen/style.less.tpl +0 -3
  197. package/gen/template.ts.tpl +0 -8
  198. package/helpers/getTSConfig.js +0 -19
  199. package/serve/readme.md +0 -8
  200. package/serve/serve.js +0 -109
  201. package/spawn/index.js +0 -81
  202. package/test/index.d.ts +0 -18
  203. package/test/index.js +0 -16
  204. package/test/jest.config.js +0 -32
  205. package/test/pathsToModuleNameMapper.js +0 -46
@@ -0,0 +1,80 @@
1
+ import { spawn } from "node:child_process";
2
+ import { Watcher } from "../helpers/watcher.js";
3
+ import { PackServer } from "./pack-server.js";
4
+ import { ChangeEvent } from "../model/pack.js";
5
+ import { createProxyMiddleware } from "http-proxy-middleware";
6
+ export class TargetRunner extends PackServer {
7
+ static{
8
+ this.port = 9010;
9
+ }
10
+ handle(req, reply) {
11
+ return Promise.resolve(undefined);
12
+ }
13
+ async register(app) {
14
+ if (!app.use) await app.register(await import("@fastify/express"));
15
+ const proxy = createProxyMiddleware({
16
+ target: `http://127.0.0.1:${this.port}`,
17
+ changeOrigin: true,
18
+ pathFilter: (path, req)=>{
19
+ return !req['upgrade'];
20
+ }
21
+ });
22
+ const wsProxy = createProxyMiddleware({
23
+ target: `ws://127.0.0.1:${this.port}`,
24
+ changeOrigin: true
25
+ });
26
+ await app.use(this.pack.publicPath, async (req, res, next)=>{
27
+ if (req.url.endsWith('?resolve')) {
28
+ return res.type('application/javascript').send(`export default "${this.pack.publicPath}"`);
29
+ }
30
+ await (this.cp ??= this.runServer());
31
+ proxy(req, res, next);
32
+ });
33
+ app.server.on('upgrade', async (req, socket, head)=>{
34
+ if (req.url?.startsWith(this.pack.publicPath)) {
35
+ await (this.cp ??= this.runServer());
36
+ wsProxy.upgrade(req, socket, head);
37
+ }
38
+ });
39
+ this.pack.log(`proxy to ${this.port}`);
40
+ this.pack.addEventListener('change', async (e)=>{
41
+ const cp = await this.cp;
42
+ if (!cp) return;
43
+ if (cp.connected) cp.disconnect();
44
+ cp.kill();
45
+ this.pack.log(`Stopping due to change...`);
46
+ this.cp = null;
47
+ });
48
+ this.watcher.watchTarget(this.pack);
49
+ this.pack.addEventListener('file', (e)=>{
50
+ this.pack.dispatchEvent(new ChangeEvent({
51
+ type: 'full-reload',
52
+ triggeredBy: e.files
53
+ }, this.pack.name));
54
+ });
55
+ }
56
+ async runServer() {
57
+ this.pack.log('starting...');
58
+ const [command, ...params] = this.pack.packageJson.scripts.run// .replace('@cmmn/tools/import', '@cmmn/tools/import-dev')
59
+ .split(' ');
60
+ const cp = spawn(command, params, {
61
+ env: {
62
+ ...process.env,
63
+ PORT: this.port.toString()
64
+ },
65
+ cwd: this.pack.rootDir,
66
+ stdio: 'pipe'
67
+ });
68
+ cp.stderr.pipe(process.stderr);
69
+ cp.stdout.pipe(process.stdout);
70
+ await new Promise((res)=>cp.stdout.on('data', (e)=>{
71
+ if (e?.includes(`http://127.0.0.1:${this.port}`)) res();
72
+ }));
73
+ return cp;
74
+ }
75
+ constructor(...args){
76
+ super(...args), this.port = TargetRunner.port++, this.watcher = new Watcher();
77
+ }
78
+ }
79
+
80
+ //# sourceMappingURL=target-runnner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/servers/target-runnner.ts"],"names":["spawn","Watcher","PackServer","ChangeEvent","createProxyMiddleware","TargetRunner","port","handle","req","reply","Promise","resolve","undefined","register","app","use","proxy","target","changeOrigin","pathFilter","path","wsProxy","pack","publicPath","res","next","url","endsWith","type","send","cp","runServer","server","on","socket","head","startsWith","upgrade","log","addEventListener","e","connected","disconnect","kill","watcher","watchTarget","dispatchEvent","triggeredBy","files","name","command","params","packageJson","scripts","run","split","env","process","PORT","toString","cwd","rootDir","stdio","stderr","pipe","stdout","includes"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { Target } from "../model/target.js";
2
+ import { ChangeEvent } from "../model/pack.js";
3
+ import { createServer } from "vite";
4
+ import { PackServer } from "./pack-server.js";
5
+ import { ViteBuilder } from "../bundlers/vite.builder.js";
6
+ export class ViteDevelopmentServer extends PackServer {
7
+ constructor(target, monorepo){
8
+ super(target), this.target = target, this.monorepo = monorepo, this.wsPrefix = '/@ws', this.viteBuilder = new ViteBuilder(this.target, this.monorepo.resolver, this.monorepo.flags);
9
+ }
10
+ async handle(request, reply) {
11
+ if (request.url.startsWith(this.pack.publicPath + '/' + this.wsPrefix)) return;
12
+ reply.type(this.getMimeType(request.url));
13
+ if (request.url.endsWith('?resolve')) {
14
+ return reply.type('application/javascript').send(`export default ${JSON.stringify(request.url.split('?')[0])}`);
15
+ }
16
+ const devServer = await (this.devServerRequest ??= this.createServer(request.server.server));
17
+ return new Promise((resolve)=>{
18
+ devServer.middlewares(request.raw, reply.raw, resolve);
19
+ });
20
+ }
21
+ async createServer(server) {
22
+ const config = await this.viteBuilder.getConfig();
23
+ const viteServer = await createServer({
24
+ ...config,
25
+ server: {
26
+ hmr: this.monorepo.flags.production ? false : {
27
+ server: server,
28
+ path: this.wsPrefix
29
+ },
30
+ ws: this.monorepo.flags.production ? false : undefined,
31
+ fs: {
32
+ strict: false
33
+ },
34
+ allowedHosts: [
35
+ this.monorepo.root.https?.host,
36
+ this.target.https?.host,
37
+ ...this.target.reactions.map((x)=>x instanceof Target ? x.https?.host : '')
38
+ ].filter((x)=>x)
39
+ }
40
+ });
41
+ this.target.log(`Start dev server`);
42
+ this.enhanceWebSocket(viteServer);
43
+ return viteServer;
44
+ }
45
+ /**
46
+ * Emit event on ws and proxies events from dependent dev-servers
47
+ */ enhanceWebSocket(server) {
48
+ const emitChange = server.ws.send;
49
+ server.ws.send = (payload)=>{
50
+ // if (this.target.isExcluded("")) return;
51
+ this.target.log('change');
52
+ this.target.dispatchEvent(new ChangeEvent(payload, this.target.packageJson.name));
53
+ };
54
+ this.target.addEventListener('change', (e)=>{
55
+ this.target.log('change');
56
+ emitChange.call(server.ws, e.payload);
57
+ });
58
+ }
59
+ }
60
+
61
+ //# sourceMappingURL=vite-dev-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/servers/vite-dev-server.ts"],"names":["Target","ChangeEvent","createServer","PackServer","ViteBuilder","ViteDevelopmentServer","target","monorepo","wsPrefix","viteBuilder","resolver","flags","handle","request","reply","url","startsWith","pack","publicPath","type","getMimeType","endsWith","send","JSON","stringify","split","devServer","devServerRequest","server","Promise","resolve","middlewares","raw","config","getConfig","viteServer","hmr","production","path","ws","undefined","fs","strict","allowedHosts","root","https","host","reactions","map","x","filter","log","enhanceWebSocket","emitChange","payload","dispatchEvent","packageJson","name","addEventListener","e","call"],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import { _ as _ts_add_disposable_resource } from "@swc/helpers/_/_ts_add_disposable_resource";
2
+ import { _ as _ts_dispose_resources } from "@swc/helpers/_/_ts_dispose_resources";
3
+ import { describe, test } from "node:test";
4
+ import { RolldownDependencyBuilder } from "../dev-server/rolldown-dependency-builder.js";
5
+ import { fileURLToPath } from "node:url";
6
+ import path, { join } from "node:path";
7
+ import fs, { writeFile, rm } from "node:fs/promises";
8
+ import { expect } from "expect";
9
+ import * as crypto from "node:crypto";
10
+ const DependencyBuilderSpecs = RolldownDependencyBuilder;
11
+ describe('dependencyBuilder', async function dependencyBuilder() {
12
+ await test('as-is', async function asIs() {
13
+ const env = {
14
+ stack: [],
15
+ error: void 0,
16
+ hasError: false
17
+ };
18
+ try {
19
+ const text = 'export const a = 1';
20
+ const file = _ts_add_disposable_resource(env, await createTemporaryFile(text), true);
21
+ const builder = new DependencyBuilderSpecs([], '/@base');
22
+ const res = await builder.build(file.path, true);
23
+ expect(res['']).toMatch(/export \{.*a.*}/);
24
+ } catch (e) {
25
+ env.error = e;
26
+ env.hasError = true;
27
+ } finally{
28
+ const result = _ts_dispose_resources(env);
29
+ if (result) await result;
30
+ }
31
+ });
32
+ await test('external', async function external() {
33
+ const env = {
34
+ stack: [],
35
+ error: void 0,
36
+ hasError: false
37
+ };
38
+ try {
39
+ const text = 'export const a = 1';
40
+ const fileA = _ts_add_disposable_resource(env, await createTemporaryFile(text), true);
41
+ const fileB = _ts_add_disposable_resource(env, await createTemporaryFile(`import { a } from '${fileA.fileName}'; export const b = a + 1;`), true);
42
+ const builder = new DependencyBuilderSpecs([
43
+ fileA.fileName
44
+ ], '/@base');
45
+ const res = await builder.build(fileB.path, true);
46
+ expect(res['']).toMatch(/export \{.*b.*}/);
47
+ expect(res['']).toMatch(/import \{.*a.*} from "\/@base/);
48
+ } catch (e) {
49
+ env.error = e;
50
+ env.hasError = true;
51
+ } finally{
52
+ const result = _ts_dispose_resources(env);
53
+ if (result) await result;
54
+ }
55
+ });
56
+ await test('wasm', async function wasm() {
57
+ const env = {
58
+ stack: [],
59
+ error: void 0,
60
+ hasError: false
61
+ };
62
+ try {
63
+ const wasm = _ts_add_disposable_resource(env, await createTemporaryFile('0ABCF1', 'wasm'), true);
64
+ const file = _ts_add_disposable_resource(env, await createTemporaryFile(`
65
+ import wasm from '${wasm.fileName}';
66
+ export { wasm };
67
+ `), true);
68
+ const builder = new DependencyBuilderSpecs([], '/@base');
69
+ const res = await builder.build(file.path, true);
70
+ expect(res['']).not.toBeUndefined();
71
+ } catch (e) {
72
+ env.error = e;
73
+ env.hasError = true;
74
+ } finally{
75
+ const result = _ts_dispose_resources(env);
76
+ if (result) await result;
77
+ }
78
+ });
79
+ await test('loro-crdt', async function wasm() {
80
+ const builder = new DependencyBuilderSpecs([], '/@base');
81
+ const res = await builder.build('loro-crdt', true);
82
+ expect(res['']).not.toBeUndefined();
83
+ });
84
+ await test('commonjs', async function commonjs() {
85
+ const env = {
86
+ stack: [],
87
+ error: void 0,
88
+ hasError: false
89
+ };
90
+ try {
91
+ const file = _ts_add_disposable_resource(env, await createTemporaryFile(`
92
+ module.exports = { x: 2 };
93
+ exports.a = 1;
94
+ module.exports.c = 3;
95
+ `, 'cjs'), true);
96
+ const builder = new DependencyBuilderSpecs([], 'base');
97
+ const res = await builder.build(file.path, false);
98
+ expect(res['']).not.toBeNull();
99
+ expect(res['']).toMatch(/export \{.*a.*}/);
100
+ expect(res['']).toMatch(/export \{.*c.*}/);
101
+ expect(res['']).toMatch(/export \{.*default.*}/);
102
+ } catch (e) {
103
+ env.error = e;
104
+ env.hasError = true;
105
+ } finally{
106
+ const result = _ts_dispose_resources(env);
107
+ if (result) await result;
108
+ }
109
+ });
110
+ await test('commonjs-dynamic-require', async function commonjsRequire() {
111
+ const env = {
112
+ stack: [],
113
+ error: void 0,
114
+ hasError: false
115
+ };
116
+ try {
117
+ const a = _ts_add_disposable_resource(env, await createTemporaryFile(`
118
+ exports.a = 'A_EXPORT_CONST';
119
+ `, 'cjs'), true);
120
+ const b = _ts_add_disposable_resource(env, await createTemporaryFile(`
121
+ exports.b = 1;
122
+ exports.getA = function dynamicRequire(){
123
+ exports.a = require('${a.fileName}');
124
+ }
125
+ `, 'cjs'), true);
126
+ const builder = new DependencyBuilderSpecs([
127
+ a.fileName
128
+ ], '/@base');
129
+ const res = await builder.build(b.path, false);
130
+ expect(res['']).not.toBeUndefined();
131
+ expect(res['']).not.toContain('A_EXPORT_CONST');
132
+ expect(res['']).toMatch(/import.*\/@base/);
133
+ } catch (e) {
134
+ env.error = e;
135
+ env.hasError = true;
136
+ } finally{
137
+ const result = _ts_dispose_resources(env);
138
+ if (result) await result;
139
+ }
140
+ });
141
+ });
142
+ async function createTemporaryFile(content, ext = 'js', fileName = `./${crypto.randomBytes(8).toString('hex')}.${ext}`) {
143
+ const path = join(import.meta.dirname, fileName);
144
+ await writeFile(path, content, 'utf-8');
145
+ return {
146
+ fileName,
147
+ path,
148
+ [Symbol.asyncDispose]: ()=>rm(path)
149
+ };
150
+ }
151
+ async function getPackageJSON(pkg) {
152
+ const resolved = import.meta.resolve(pkg);
153
+ const file = fileURLToPath(resolved);
154
+ let dir = path.dirname(file);
155
+ while(true){
156
+ const packageJsonText = await fs.readFile(path.resolve(dir, 'package.json'), {
157
+ encoding: 'utf-8'
158
+ }).catch(()=>null);
159
+ if (packageJsonText) return JSON.parse(packageJsonText);
160
+ dir = path.resolve(dir, '..');
161
+ }
162
+ }
163
+
164
+ //# sourceMappingURL=dependency-builder-specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/specs/dependency-builder-specs.ts"],"names":["describe","test","RolldownDependencyBuilder","fileURLToPath","path","join","fs","writeFile","rm","expect","crypto","DependencyBuilderSpecs","dependencyBuilder","asIs","text","file","createTemporaryFile","builder","res","build","toMatch","external","fileA","fileB","fileName","wasm","not","toBeUndefined","commonjs","toBeNull","commonjsRequire","a","b","toContain","content","ext","randomBytes","toString","dirname","Symbol","asyncDispose","getPackageJSON","pkg","resolved","resolve","dir","packageJsonText","readFile","encoding","catch","JSON","parse"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { describe, test } from "node:test";
2
+ import { Target } from "../model/target.js";
3
+ import { Flags } from "../model/flags.js";
4
+ import { expect } from "expect";
5
+ import { DevServer } from "../dev-server/dev-server";
6
+ import { TargetWebServer } from "../dev-server/target-web-server";
7
+ describe('dev-server', async function target() {
8
+ const targets = await Target.readTargets(process.cwd(), new Flags([
9
+ '--prod'
10
+ ]));
11
+ const devServer = new DevServer(targets);
12
+ devServer.depServer.url = 'https://example.server';
13
+ for (let targetServer of devServer.targetServers){
14
+ targetServer.url = devServer.depServer.url;
15
+ }
16
+ function getBundle(pkg) {
17
+ const targetServer = devServer.targetServers.find((x)=>x.target.packageJson.name == pkg);
18
+ if (targetServer instanceof TargetWebServer) {
19
+ return targetServer.getBundleJson();
20
+ }
21
+ }
22
+ describe('@cmmn/core', async function() {
23
+ const bundle = await getBundle('@cmmn/core');
24
+ await test('assets', function() {
25
+ expect(bundle.assets).toHaveLength(1);
26
+ expect(bundle.assets[0].path).toBe('index.js');
27
+ });
28
+ });
29
+ describe('@cmmn/examples-client', async function() {
30
+ const bundle = await getBundle('@cmmn/examples-client');
31
+ await test('assets', function() {
32
+ const assets = bundle.assets.map((x)=>x.path);
33
+ expect(assets).toContain('index.js');
34
+ expect(assets).toContain('index.html');
35
+ expect(assets).toContain('manifest.json');
36
+ expect(assets).toContain('icon.svg');
37
+ expect(assets.find((x)=>x.endsWith('.wasm'))).toBeUndefined();
38
+ });
39
+ await test('deps', function() {
40
+ const deps = Object.fromEntries(bundle.deps.map((x)=>[
41
+ x.baseURI,
42
+ x.path
43
+ ]));
44
+ expect(deps[`${devServer.depServer.url}/_/@cmmn/ui/`]).toBe('');
45
+ expect(deps[`${devServer.depServer.url}/_/@cmmn/react/`]).toBe('');
46
+ expect(deps[`${devServer.depServer.url}/_/@id/react/`]).toBe('');
47
+ expect(deps[`${devServer.depServer.url}/_/@id/react/jsx-runtime/`]).toBe('');
48
+ });
49
+ });
50
+ describe('react', ()=>testPackage('react', [
51
+ /^$/
52
+ ]));
53
+ describe('loro-crdt', ()=>testPackage('loro-crdt/bundler', [
54
+ /^$/,
55
+ /^@_\/.*/,
56
+ /^@_\/.*/,
57
+ /^@_\/.*/
58
+ ]));
59
+ async function testPackage(pkg, assets) {
60
+ const bundle = await devServer.depServer.getBundle(pkg);
61
+ const json = JSON.parse(bundle['@_/bundle.json']);
62
+ await test('assets', async function() {
63
+ expect(json.assets).toHaveLength(assets.length);
64
+ for(let i = 0; i < json.assets.length; i++){
65
+ let asset = json.assets[i];
66
+ expect(asset.path).toMatch(assets[i]);
67
+ expect(await devServer.depServer.getAsset(pkg + '/' + asset.path)).not.toBeNull();
68
+ }
69
+ });
70
+ }
71
+ });
72
+
73
+ //# sourceMappingURL=dev-server.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/specs/dev-server.specs.ts"],"names":["describe","test","Target","Flags","expect","DevServer","TargetWebServer","target","targets","readTargets","process","cwd","devServer","depServer","url","targetServer","targetServers","getBundle","pkg","find","x","packageJson","name","getBundleJson","bundle","assets","toHaveLength","path","toBe","map","toContain","endsWith","toBeUndefined","deps","Object","fromEntries","baseURI","testPackage","json","JSON","parse","length","i","asset","toMatch","getAsset","not","toBeNull"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { describe, test } from "node:test";
2
+ import { Monorepo } from "../model/monorepo.js";
3
+ import { expect } from "expect";
4
+ import { Flags } from "../model/flags.js";
5
+ describe('monorepo', async ()=>{
6
+ const flags = new Flags([
7
+ '--prod'
8
+ ]);
9
+ const monorepo = await Monorepo.load(flags);
10
+ await test('root', async ()=>{
11
+ expect(monorepo.root.name).toBe('@cmmn/framework');
12
+ expect(monorepo.root.entries).toHaveLength(1);
13
+ });
14
+ await test('sync', async ()=>{
15
+ const target = monorepo.get('@cmmn/sync');
16
+ expect(target.entries).toHaveLength(2);
17
+ expect(target.deps).toHaveLength(2);
18
+ expect(target.deps.map((x)=>x.name)).toContain('@cmmn/core');
19
+ expect(target.deps.map((x)=>x.name)).toContain('loro-crdt');
20
+ });
21
+ await test('core', async ()=>{
22
+ const target = monorepo.get('@cmmn/core');
23
+ expect(target.entries).toHaveLength(1);
24
+ expect(target.deps).toHaveLength(2);
25
+ expect(target.deps.map((x)=>x.name)).toContain('uuidv7');
26
+ expect(target.deps.map((x)=>x.name)).toContain('throttle-debounce');
27
+ });
28
+ await test('@libp2p/identify', async ()=>{
29
+ const target = monorepo.get('@libp2p/identify');
30
+ expect(target.rootDir).toMatch(/@libp2p\/identify$/);
31
+ expect(target.entries).toHaveLength(1);
32
+ });
33
+ });
34
+
35
+ //# sourceMappingURL=monorepo.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/specs/monorepo.specs.ts"],"names":["describe","test","Monorepo","expect","Flags","flags","monorepo","load","root","name","toBe","entries","toHaveLength","target","get","deps","map","x","toContain","rootDir","toMatch"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,YAAY;AACzC,SAAQC,QAAQ,QAAO,uBAAoB;AAC3C,SAAQC,MAAM,QAAO,SAAS;AAC9B,SAAQC,KAAK,QAAO,oBAAiB;AAErCJ,SAAS,YAAY;IACjB,MAAMK,QAAQ,IAAID,MAAM;QAAC;KAAS;IAClC,MAAME,WAAW,MAAMJ,SAASK,IAAI,CAACF;IACrC,MAAMJ,KAAK,QAAQ;QACfE,OAAOG,SAASE,IAAI,CAACC,IAAI,EAAEC,IAAI,CAAC;QAChCP,OAAOG,SAASE,IAAI,CAACG,OAAO,EAAEC,YAAY,CAAC;IAC/C;IACA,MAAMX,KAAK,QAAQ;QACf,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;QACpCT,OAAOU,OAAOE,IAAI,EAAEH,YAAY,CAAC;QACjCT,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;QAC/Cf,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;IACnD;IAEA,MAAMjB,KAAK,QAAQ;QACf,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;QACpCT,OAAOU,OAAOE,IAAI,EAAEH,YAAY,CAAC;QACjCT,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;QAC/Cf,OAAOU,OAAOE,IAAI,CAACC,GAAG,CAACC,CAAAA,IAAKA,EAAER,IAAI,GAAGS,SAAS,CAAC;IACnD;IAEA,MAAMjB,KAAK,oBAAoB;QAC3B,MAAMY,SAASP,SAASQ,GAAG,CAAC;QAC5BX,OAAOU,OAAOM,OAAO,EAAEC,OAAO,CAAC;QAC/BjB,OAAOU,OAAOF,OAAO,EAAEC,YAAY,CAAC;IACxC;AACJ"}
@@ -0,0 +1,57 @@
1
+ import { describe, test } from "node:test";
2
+ import { Monorepo } from "../model/monorepo.js";
3
+ import { expect } from "expect";
4
+ import { Flags } from "../model/flags.js";
5
+ describe('resolver', async ()=>{
6
+ const monorepo = await Monorepo.load();
7
+ await test('core', async ()=>{
8
+ const resolved = monorepo.resolver.resolveId('@cmmn/core');
9
+ expect(resolved.id).toBe('/_/@cmmn/core/index.ts');
10
+ expect(resolved.pack.name).toBe('@cmmn/core');
11
+ expect(resolved.path).toBe('index.ts');
12
+ });
13
+ await test('sync', async ()=>{
14
+ const resolved = monorepo.resolver.resolveId('@cmmn/sync');
15
+ expect(resolved.id).toBe('/_/@cmmn/sync/index.ts');
16
+ expect(resolved.pack.name).toBe('@cmmn/sync');
17
+ expect(resolved.path).toBe('index.ts');
18
+ const storage = monorepo.resolver.resolveId('@cmmn/sync/storage');
19
+ expect(storage).not.toBeUndefined();
20
+ });
21
+ });
22
+ describe('resolver-deps', async ()=>{
23
+ const monorepo = await Monorepo.load();
24
+ await test('loro-crdt', async ()=>{
25
+ const resolved = monorepo.resolver.resolveId('loro-crdt');
26
+ expect(resolved.id).toBe('/_/loro-crdt/index.js');
27
+ expect(resolved.pack.name).toBe('loro-crdt');
28
+ expect(resolved.path).toBe('index.js');
29
+ });
30
+ await test('react', async ()=>{
31
+ const resolved = monorepo.resolver.resolveId('react');
32
+ expect(resolved.id).toBe('/_/react/index.js');
33
+ expect(resolved.pack.name).toBe('react');
34
+ expect(resolved.path).toBe('index.js');
35
+ });
36
+ });
37
+ describe('resolver-prod', async ()=>{
38
+ const monorepo = await Monorepo.load(new Flags([
39
+ '--prod'
40
+ ]));
41
+ await test('core', async ()=>{
42
+ const resolved = monorepo.resolver.resolveId('@cmmn/core');
43
+ expect(resolved.id).toBe('/_/@cmmn/core/index.js');
44
+ expect(resolved.pack.name).toBe('@cmmn/core');
45
+ expect(resolved.path).toBe('index.js');
46
+ });
47
+ await test('sync', async ()=>{
48
+ const resolved = monorepo.resolver.resolveId('@cmmn/sync');
49
+ expect(resolved.id).toBe('/_/@cmmn/sync/index.js');
50
+ expect(resolved.pack.name).toBe('@cmmn/sync');
51
+ expect(resolved.path).toBe('index.js');
52
+ const storage = monorepo.resolver.resolveId('@cmmn/sync/storage');
53
+ expect(storage.id).toBe('/_/@cmmn/sync/storage.js');
54
+ });
55
+ });
56
+
57
+ //# sourceMappingURL=resolver.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/mnt/dev/cmmn/tools/specs/resolver.specs.ts"],"names":["describe","test","Monorepo","expect","Flags","monorepo","load","resolved","resolver","resolveId","id","toBe","pack","name","path","storage","not","toBeUndefined"],"mappings":"AAAA,SAAQA,QAAQ,EAAEC,IAAI,QAAO,YAAY;AACzC,SAAQC,QAAQ,QAAO,uBAAoB;AAC3C,SAAQC,MAAM,QAAO,SAAS;AAC9B,SAAQC,KAAK,QAAO,oBAAiB;AAErCJ,SAAS,YAAY;IACjB,MAAMK,WAAW,MAAMH,SAASI,IAAI;IAEpC,MAAML,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;QAC3B,MAAMI,UAAUV,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC5CN,OAAOY,SAASC,GAAG,CAACC,aAAa;IACrC;AAEJ;AAEAjB,SAAS,iBAAiB;IACtB,MAAMK,WAAW,MAAMH,SAASI,IAAI;IAEpC,MAAML,KAAK,aAAa;QACpB,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,SAAS;QAChB,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;AAEJ;AAEAX,SAAS,iBAAiB;IACtB,MAAMK,WAAW,MAAMH,SAASI,IAAI,CAAC,IAAIF,MAAM;QAAC;KAAS;IAEzD,MAAMH,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;IAC/B;IAEA,MAAMV,KAAK,QAAQ;QACf,MAAMM,WAAWF,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC7CN,OAAOI,SAASG,EAAE,EAAEC,IAAI,CAAC;QACzBR,OAAOI,SAASK,IAAI,CAACC,IAAI,EAAEF,IAAI,CAAC;QAChCR,OAAOI,SAASO,IAAI,EAAEH,IAAI,CAAC;QAC3B,MAAMI,UAAUV,SAASG,QAAQ,CAACC,SAAS,CAAC;QAC5CN,OAAOY,QAAQL,EAAE,EAAEC,IAAI,CAAC;IAC5B;AAGJ"}