@fairfox/polly 0.71.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/src/client/index.js +2 -2
  2. package/dist/src/client/index.js.map +2 -2
  3. package/dist/src/elysia/index.js +464 -4
  4. package/dist/src/elysia/index.js.map +6 -4
  5. package/dist/src/peer.d.ts +2 -0
  6. package/dist/src/peer.js +468 -4
  7. package/dist/src/peer.js.map +8 -5
  8. package/dist/src/polly-ui/ActionInput.d.ts +12 -2
  9. package/dist/src/polly-ui/ActionSelect.d.ts +36 -0
  10. package/dist/src/polly-ui/Button.d.ts +4 -0
  11. package/dist/src/polly-ui/Cluster.d.ts +36 -0
  12. package/dist/src/polly-ui/Code.d.ts +18 -0
  13. package/dist/src/polly-ui/Surface.d.ts +12 -1
  14. package/dist/src/polly-ui/Text.d.ts +43 -0
  15. package/dist/src/polly-ui/index.css +320 -194
  16. package/dist/src/polly-ui/index.d.ts +5 -1
  17. package/dist/src/polly-ui/index.js +533 -284
  18. package/dist/src/polly-ui/index.js.map +14 -8
  19. package/dist/src/polly-ui/internal/dispatch-action.d.ts +13 -0
  20. package/dist/src/polly-ui/internal/passthrough.d.ts +25 -0
  21. package/dist/src/polly-ui/markdown.js +3 -3
  22. package/dist/src/polly-ui/markdown.js.map +2 -2
  23. package/dist/src/polly-ui/styles.css +345 -194
  24. package/dist/src/polly-ui/theme.css +1 -0
  25. package/dist/src/shared/lib/peer-repo-server.d.ts +18 -0
  26. package/dist/src/shared/lib/sweep-sealed.d.ts +111 -0
  27. package/dist/tools/quality/src/cli.js +6 -2
  28. package/dist/tools/quality/src/cli.js.map +3 -3
  29. package/dist/tools/quality/src/index.js +6 -2
  30. package/dist/tools/quality/src/index.js.map +3 -3
  31. package/dist/tools/test/src/browser/run.js +89 -49
  32. package/dist/tools/test/src/browser/run.js.map +6 -5
  33. package/dist/tools/test/src/browser/runner-core.d.ts +32 -0
  34. package/dist/tools/test/src/e2e-mesh/index.js +193 -171
  35. package/dist/tools/test/src/e2e-mesh/index.js.map +4 -4
  36. package/dist/tools/test/src/visual/index.js +270 -251
  37. package/dist/tools/test/src/visual/index.js.map +5 -5
  38. package/dist/tools/verify/specs/tla/MeshSeed.cfg +27 -0
  39. package/dist/tools/verify/specs/tla/MeshSeed.tla +179 -0
  40. package/dist/tools/verify/specs/tla/README.md +11 -1
  41. package/dist/tools/verify/src/cli.js +136 -51
  42. package/dist/tools/verify/src/cli.js.map +9 -7
  43. package/dist/tools/visualize/src/cli.js +72 -2
  44. package/dist/tools/visualize/src/cli.js.map +5 -5
  45. package/package.json +3 -2
@@ -4456,7 +4456,7 @@ class ArchitectureAnalyzer {
4456
4456
  }
4457
4457
  }
4458
4458
  const handlerExtractor = new HandlerExtractor(this.options.tsConfigPath, contextOverrides.size > 0 ? contextOverrides : undefined);
4459
- const { handlers } = handlerExtractor.extractHandlers();
4459
+ const { handlers, meshOrPeerSignals } = handlerExtractor.extractHandlers();
4460
4460
  const contexts = this.analyzeContexts(entryPoints, handlers);
4461
4461
  const flowAnalyzer = new FlowAnalyzer(this.options.tsConfigPath, handlers, contextOverrides.size > 0 ? contextOverrides : undefined);
4462
4462
  const messageFlows = flowAnalyzer.analyzeFlows();
@@ -4473,6 +4473,7 @@ class ArchitectureAnalyzer {
4473
4473
  contexts,
4474
4474
  messageFlows,
4475
4475
  integrations,
4476
+ ...meshOrPeerSignals.length > 0 ? { meshOrPeerSignals } : {},
4476
4477
  ...adrs.adrs.length > 0 ? { adrs } : {},
4477
4478
  ...repository ? { repository } : {}
4478
4479
  };
@@ -4628,6 +4629,16 @@ var DEFAULT_ELEMENT_STYLES = {
4628
4629
  Container: {
4629
4630
  background: DEFAULT_COLORS.container,
4630
4631
  color: DEFAULT_COLORS.textLight
4632
+ },
4633
+ "Mesh Document": {
4634
+ shape: "Cylinder",
4635
+ background: DEFAULT_COLORS.subscribeHandler,
4636
+ color: DEFAULT_COLORS.textLight
4637
+ },
4638
+ "Peer Document": {
4639
+ shape: "Cylinder",
4640
+ background: DEFAULT_COLORS.queryHandler,
4641
+ color: DEFAULT_COLORS.textDark
4631
4642
  }
4632
4643
  };
4633
4644
  var DEFAULT_RELATIONSHIP_STYLES = {
@@ -4749,6 +4760,9 @@ class StructurizrDSLGenerator {
4749
4760
  for (const [contextType, contextInfo] of Object.entries(this.analysis.contexts)) {
4750
4761
  parts.push(this.generateContainer(contextType, contextInfo));
4751
4762
  }
4763
+ const meshDocs = this.generateMeshDocuments();
4764
+ if (meshDocs)
4765
+ parts.push(meshDocs);
4752
4766
  parts.push(this.generateContainerRelationships());
4753
4767
  parts.push(" }");
4754
4768
  return parts.join(`
@@ -4769,6 +4783,45 @@ class StructurizrDSLGenerator {
4769
4783
  return parts.join(`
4770
4784
  `);
4771
4785
  }
4786
+ generateMeshDocuments() {
4787
+ const signals = this.analysis.meshOrPeerSignals ?? [];
4788
+ if (signals.length === 0)
4789
+ return "";
4790
+ const parts = [];
4791
+ const seen = new Set;
4792
+ for (const sig of signals) {
4793
+ if (seen.has(sig.key))
4794
+ continue;
4795
+ seen.add(sig.key);
4796
+ const kindLabel = sig.kind === "mesh" ? "Mesh Document" : "Peer Document";
4797
+ const description = `${kindLabel} — deriveDocumentId('${sig.key}')`;
4798
+ parts.push(` ${this.meshDocId(sig.key)} = container "${this.escape(sig.key)}" "${this.escape(description)}" "$${sig.kind}State" {`);
4799
+ parts.push(` tags "${kindLabel}"`);
4800
+ parts.push(" }");
4801
+ }
4802
+ return parts.join(`
4803
+ `);
4804
+ }
4805
+ meshDocId(key) {
4806
+ return `mesh_doc_${this.toId(key)}`;
4807
+ }
4808
+ contextForFilePath(filePath) {
4809
+ const contextKeys = Object.keys(this.analysis.contexts);
4810
+ if (contextKeys.length === 1)
4811
+ return contextKeys[0];
4812
+ let best;
4813
+ for (const [context, info] of Object.entries(this.analysis.contexts)) {
4814
+ const entry = info.entryPoint;
4815
+ if (!entry)
4816
+ continue;
4817
+ const dir = entry.slice(0, entry.lastIndexOf("/") + 1);
4818
+ if (dir.length > 0 && filePath.includes(dir)) {
4819
+ if (!best || dir.length > best.length)
4820
+ best = { context, length: dir.length };
4821
+ }
4822
+ }
4823
+ return best?.context;
4824
+ }
4772
4825
  generateComponents(contextType, contextInfo) {
4773
4826
  const parts = [];
4774
4827
  const componentDefs = this.buildComponentDefinitionsFromHandlers(contextInfo, contextType);
@@ -5089,9 +5142,26 @@ class StructurizrDSLGenerator {
5089
5142
  parts.push(...this.generateUserRelationships());
5090
5143
  parts.push(...this.generateMessageFlowRelationships());
5091
5144
  parts.push(...this.generateExternalAPIRelationships());
5145
+ parts.push(...this.generateMeshRelationships());
5092
5146
  return parts.join(`
5093
5147
  `);
5094
5148
  }
5149
+ generateMeshRelationships() {
5150
+ const signals = this.analysis.meshOrPeerSignals ?? [];
5151
+ const parts = [];
5152
+ const seen = new Set;
5153
+ for (const sig of signals) {
5154
+ const context = this.contextForFilePath(sig.filePath);
5155
+ if (!context)
5156
+ continue;
5157
+ const edgeKey = `${context}->${sig.key}`;
5158
+ if (seen.has(edgeKey))
5159
+ continue;
5160
+ seen.add(edgeKey);
5161
+ parts.push(` extension.${context} -> extension.${this.meshDocId(sig.key)} "syncs ${this.escape(sig.key)}"`);
5162
+ }
5163
+ return parts;
5164
+ }
5095
5165
  generateUserRelationships() {
5096
5166
  const parts = [];
5097
5167
  const uiContexts = ["popup", "options", "devtools"];
@@ -6290,4 +6360,4 @@ main().catch((_error) => {
6290
6360
  process.exit(1);
6291
6361
  });
6292
6362
 
6293
- //# debugId=76D47496DA7C4C5D64756E2164756E21
6363
+ //# debugId=D0F61C41F83644F864756E2164756E21