@fjell/registry 4.4.10 → 4.4.13

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 (41) hide show
  1. package/MIGRATION_SUMMARY.md +200 -0
  2. package/dist/Registry.cjs +36 -3
  3. package/dist/Registry.js +36 -3
  4. package/dist/RegistryStats.cjs +200 -0
  5. package/dist/RegistryStats.d.ts +103 -0
  6. package/dist/RegistryStats.js +196 -0
  7. package/dist/index.cjs +229 -2
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +2 -1
  11. package/dist/types.d.ts +7 -0
  12. package/docs/README.md +5 -5
  13. package/docs/docs.config.ts +110 -0
  14. package/docs/index.html +1 -1
  15. package/docs/package.json +2 -4
  16. package/docs/public/api.md +527 -0
  17. package/docs/public/package.json +65 -0
  18. package/docs/src/index.css +1 -7
  19. package/docs/src/main.tsx +4 -2
  20. package/docs/src/types.d.ts +10 -0
  21. package/examples/README.md +19 -0
  22. package/examples/registry-statistics-example.ts +264 -0
  23. package/package.json +8 -7
  24. package/docs/memory-data/scaling-10-instances.json +0 -526
  25. package/docs/memory-data/scaling-100-instances.json +0 -526
  26. package/docs/memory-data/scaling-1000-instances.json +0 -276
  27. package/docs/memory-data/scaling-10000-instances.json +0 -126
  28. package/docs/memory-data/scaling-20-instances.json +0 -526
  29. package/docs/memory-data/scaling-200-instances.json +0 -526
  30. package/docs/memory-data/scaling-2000-instances.json +0 -276
  31. package/docs/memory-data/scaling-50-instances.json +0 -526
  32. package/docs/memory-data/scaling-500-instances.json +0 -276
  33. package/docs/memory-data/scaling-5000-instances.json +0 -126
  34. package/docs/memory-overhead.svg +0 -120
  35. package/docs/memory.md +0 -430
  36. package/docs/src/App.css +0 -1175
  37. package/docs/src/App.test.tsx +0 -50
  38. package/docs/src/App.tsx +0 -583
  39. package/docs/timing-range.svg +0 -174
  40. package/docs/timing.md +0 -483
  41. package/docs/tsconfig.node.json +0 -13
@@ -1,276 +0,0 @@
1
- {
2
- "instanceCount": 500,
3
- "iterations": 25,
4
- "timestamp": "2025-07-21T04:04:10.994Z",
5
- "measurements": [
6
- {
7
- "instanceCount": 500,
8
- "memoryPerInstance": 1787.12,
9
- "time": 2.8286659999999983
10
- },
11
- {
12
- "instanceCount": 500,
13
- "memoryPerInstance": 1762.24,
14
- "time": 0.9755840000000262
15
- },
16
- {
17
- "instanceCount": 500,
18
- "memoryPerInstance": 1724.816,
19
- "time": 1.0627079999999864
20
- },
21
- {
22
- "instanceCount": 500,
23
- "memoryPerInstance": 1724.608,
24
- "time": 8.717332999999996
25
- },
26
- {
27
- "instanceCount": 500,
28
- "memoryPerInstance": 200,
29
- "time": 12.503207999999972
30
- },
31
- {
32
- "instanceCount": 500,
33
- "memoryPerInstance": 4448.64,
34
- "time": 1.8530420000000163
35
- },
36
- {
37
- "instanceCount": 500,
38
- "memoryPerInstance": 4436.272,
39
- "time": 1.7925000000000182
40
- },
41
- {
42
- "instanceCount": 500,
43
- "memoryPerInstance": 1724.736,
44
- "time": 0.7665409999999611
45
- },
46
- {
47
- "instanceCount": 500,
48
- "memoryPerInstance": 1724.72,
49
- "time": 0.9456250000000068
50
- },
51
- {
52
- "instanceCount": 500,
53
- "memoryPerInstance": 1788.416,
54
- "time": 1.1142909999999802
55
- },
56
- {
57
- "instanceCount": 500,
58
- "memoryPerInstance": 1693.104,
59
- "time": 4.946624999999983
60
- },
61
- {
62
- "instanceCount": 500,
63
- "memoryPerInstance": 1692.848,
64
- "time": 3.979916000000003
65
- },
66
- {
67
- "instanceCount": 500,
68
- "memoryPerInstance": 7797.104,
69
- "time": 7.217999999999961
70
- },
71
- {
72
- "instanceCount": 500,
73
- "memoryPerInstance": 200,
74
- "time": 14.558333000000005
75
- },
76
- {
77
- "instanceCount": 500,
78
- "memoryPerInstance": 1704,
79
- "time": 0.49295799999998735
80
- },
81
- {
82
- "instanceCount": 500,
83
- "memoryPerInstance": 1692.832,
84
- "time": 0.6254169999999704
85
- },
86
- {
87
- "instanceCount": 500,
88
- "memoryPerInstance": 1692.928,
89
- "time": 0.4435839999999871
90
- },
91
- {
92
- "instanceCount": 500,
93
- "memoryPerInstance": 1692.8,
94
- "time": 0.43574999999998454
95
- },
96
- {
97
- "instanceCount": 500,
98
- "memoryPerInstance": 1692.944,
99
- "time": 0.43154200000003584
100
- },
101
- {
102
- "instanceCount": 500,
103
- "memoryPerInstance": 1692.864,
104
- "time": 0.4289580000000228
105
- },
106
- {
107
- "instanceCount": 500,
108
- "memoryPerInstance": 1693.072,
109
- "time": 0.4292080000000169
110
- },
111
- {
112
- "instanceCount": 500,
113
- "memoryPerInstance": 1692.96,
114
- "time": 0.44283300000000736
115
- },
116
- {
117
- "instanceCount": 500,
118
- "memoryPerInstance": 1692.928,
119
- "time": 0.43095900000002985
120
- },
121
- {
122
- "instanceCount": 500,
123
- "memoryPerInstance": 1693.04,
124
- "time": 0.4316249999999968
125
- },
126
- {
127
- "instanceCount": 500,
128
- "memoryPerInstance": 1693.136,
129
- "time": 0.43054200000000264
130
- }
131
- ],
132
- "stats": {
133
- "instanceCount": 500,
134
- "iterations": 25,
135
- "memoryPerInstance": {
136
- "min": 200,
137
- "max": 7797.104,
138
- "average": 2053.5251200000002,
139
- "stdDev": 1464.4414695892851
140
- },
141
- "time": {
142
- "min": 0.4289580000000228,
143
- "max": 14.558333000000005,
144
- "average": 2.7314299199999983,
145
- "stdDev": 3.85714531575635
146
- },
147
- "status": "PASS",
148
- "measurements": [
149
- {
150
- "instanceCount": 500,
151
- "memoryPerInstance": 1787.12,
152
- "time": 2.8286659999999983
153
- },
154
- {
155
- "instanceCount": 500,
156
- "memoryPerInstance": 1762.24,
157
- "time": 0.9755840000000262
158
- },
159
- {
160
- "instanceCount": 500,
161
- "memoryPerInstance": 1724.816,
162
- "time": 1.0627079999999864
163
- },
164
- {
165
- "instanceCount": 500,
166
- "memoryPerInstance": 1724.608,
167
- "time": 8.717332999999996
168
- },
169
- {
170
- "instanceCount": 500,
171
- "memoryPerInstance": 200,
172
- "time": 12.503207999999972
173
- },
174
- {
175
- "instanceCount": 500,
176
- "memoryPerInstance": 4448.64,
177
- "time": 1.8530420000000163
178
- },
179
- {
180
- "instanceCount": 500,
181
- "memoryPerInstance": 4436.272,
182
- "time": 1.7925000000000182
183
- },
184
- {
185
- "instanceCount": 500,
186
- "memoryPerInstance": 1724.736,
187
- "time": 0.7665409999999611
188
- },
189
- {
190
- "instanceCount": 500,
191
- "memoryPerInstance": 1724.72,
192
- "time": 0.9456250000000068
193
- },
194
- {
195
- "instanceCount": 500,
196
- "memoryPerInstance": 1788.416,
197
- "time": 1.1142909999999802
198
- },
199
- {
200
- "instanceCount": 500,
201
- "memoryPerInstance": 1693.104,
202
- "time": 4.946624999999983
203
- },
204
- {
205
- "instanceCount": 500,
206
- "memoryPerInstance": 1692.848,
207
- "time": 3.979916000000003
208
- },
209
- {
210
- "instanceCount": 500,
211
- "memoryPerInstance": 7797.104,
212
- "time": 7.217999999999961
213
- },
214
- {
215
- "instanceCount": 500,
216
- "memoryPerInstance": 200,
217
- "time": 14.558333000000005
218
- },
219
- {
220
- "instanceCount": 500,
221
- "memoryPerInstance": 1704,
222
- "time": 0.49295799999998735
223
- },
224
- {
225
- "instanceCount": 500,
226
- "memoryPerInstance": 1692.832,
227
- "time": 0.6254169999999704
228
- },
229
- {
230
- "instanceCount": 500,
231
- "memoryPerInstance": 1692.928,
232
- "time": 0.4435839999999871
233
- },
234
- {
235
- "instanceCount": 500,
236
- "memoryPerInstance": 1692.8,
237
- "time": 0.43574999999998454
238
- },
239
- {
240
- "instanceCount": 500,
241
- "memoryPerInstance": 1692.944,
242
- "time": 0.43154200000003584
243
- },
244
- {
245
- "instanceCount": 500,
246
- "memoryPerInstance": 1692.864,
247
- "time": 0.4289580000000228
248
- },
249
- {
250
- "instanceCount": 500,
251
- "memoryPerInstance": 1693.072,
252
- "time": 0.4292080000000169
253
- },
254
- {
255
- "instanceCount": 500,
256
- "memoryPerInstance": 1692.96,
257
- "time": 0.44283300000000736
258
- },
259
- {
260
- "instanceCount": 500,
261
- "memoryPerInstance": 1692.928,
262
- "time": 0.43095900000002985
263
- },
264
- {
265
- "instanceCount": 500,
266
- "memoryPerInstance": 1693.04,
267
- "time": 0.4316249999999968
268
- },
269
- {
270
- "instanceCount": 500,
271
- "memoryPerInstance": 1693.136,
272
- "time": 0.43054200000000264
273
- }
274
- ]
275
- }
276
- }
@@ -1,126 +0,0 @@
1
- {
2
- "instanceCount": 5000,
3
- "iterations": 10,
4
- "timestamp": "2025-07-21T04:04:11.417Z",
5
- "measurements": [
6
- {
7
- "instanceCount": 5000,
8
- "memoryPerInstance": 1367.7664,
9
- "time": 11.006999999999948
10
- },
11
- {
12
- "instanceCount": 5000,
13
- "memoryPerInstance": 4022.1504,
14
- "time": 12.535582999999974
15
- },
16
- {
17
- "instanceCount": 5000,
18
- "memoryPerInstance": 1285.8032,
19
- "time": 12.387000000000057
20
- },
21
- {
22
- "instanceCount": 5000,
23
- "memoryPerInstance": 1333.2048,
24
- "time": 11.867875000000026
25
- },
26
- {
27
- "instanceCount": 5000,
28
- "memoryPerInstance": 4401.4608,
29
- "time": 18.025957999999946
30
- },
31
- {
32
- "instanceCount": 5000,
33
- "memoryPerInstance": 1349.5808,
34
- "time": 20.464250000000106
35
- },
36
- {
37
- "instanceCount": 5000,
38
- "memoryPerInstance": 1344.7248,
39
- "time": 21.743416000000025
40
- },
41
- {
42
- "instanceCount": 5000,
43
- "memoryPerInstance": 1676.208,
44
- "time": 12.463124999999991
45
- },
46
- {
47
- "instanceCount": 5000,
48
- "memoryPerInstance": 1342.3008,
49
- "time": 20.61658299999999
50
- },
51
- {
52
- "instanceCount": 5000,
53
- "memoryPerInstance": 1343.2816,
54
- "time": 21.48870899999997
55
- }
56
- ],
57
- "stats": {
58
- "instanceCount": 5000,
59
- "iterations": 10,
60
- "memoryPerInstance": {
61
- "min": 1285.8032,
62
- "max": 4401.4608,
63
- "average": 1946.64816,
64
- "stdDev": 1140.3145853663393
65
- },
66
- "time": {
67
- "min": 11.006999999999948,
68
- "max": 21.743416000000025,
69
- "average": 16.259949900000002,
70
- "stdDev": 4.3284388841466805
71
- },
72
- "status": "PASS",
73
- "measurements": [
74
- {
75
- "instanceCount": 5000,
76
- "memoryPerInstance": 1367.7664,
77
- "time": 11.006999999999948
78
- },
79
- {
80
- "instanceCount": 5000,
81
- "memoryPerInstance": 4022.1504,
82
- "time": 12.535582999999974
83
- },
84
- {
85
- "instanceCount": 5000,
86
- "memoryPerInstance": 1285.8032,
87
- "time": 12.387000000000057
88
- },
89
- {
90
- "instanceCount": 5000,
91
- "memoryPerInstance": 1333.2048,
92
- "time": 11.867875000000026
93
- },
94
- {
95
- "instanceCount": 5000,
96
- "memoryPerInstance": 4401.4608,
97
- "time": 18.025957999999946
98
- },
99
- {
100
- "instanceCount": 5000,
101
- "memoryPerInstance": 1349.5808,
102
- "time": 20.464250000000106
103
- },
104
- {
105
- "instanceCount": 5000,
106
- "memoryPerInstance": 1344.7248,
107
- "time": 21.743416000000025
108
- },
109
- {
110
- "instanceCount": 5000,
111
- "memoryPerInstance": 1676.208,
112
- "time": 12.463124999999991
113
- },
114
- {
115
- "instanceCount": 5000,
116
- "memoryPerInstance": 1342.3008,
117
- "time": 20.61658299999999
118
- },
119
- {
120
- "instanceCount": 5000,
121
- "memoryPerInstance": 1343.2816,
122
- "time": 21.48870899999997
123
- }
124
- ]
125
- }
126
- }
@@ -1,120 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <svg width="1200" height="800" xmlns="http://www.w3.org/2000/svg">
3
- <style>
4
- .axis { stroke: #333; stroke-width: 1; }
5
- .grid { stroke: #ddd; stroke-width: 0.5; }
6
- .label { font-family: Arial, sans-serif; font-size: 14px; fill: #333; }
7
- .title { font-family: Arial, sans-serif; font-size: 16px; font-weight: bold; fill: #333; }
8
- .subtitle { font-family: Arial, sans-serif; font-size: 12px; fill: #666; }
9
- .per-instance { stroke: #3498db; stroke-width: 3; fill: none; }
10
- .per-instance-dot { fill: #3498db; }
11
- .legend { font-family: Arial, sans-serif; font-size: 12px; fill: #333; }
12
- .axis-title { font-family: Arial, sans-serif; font-size: 16px; font-weight: bold; fill: #333; }
13
- .metadata-section { font-family: Arial, sans-serif; font-size: 14px; font-weight: bold; fill: #444; }
14
- .metadata-label { font-family: Arial, sans-serif; font-size: 10px; fill: #666; }
15
- .metadata-value { font-family: Arial, sans-serif; font-size: 10px; fill: #333; }
16
- </style>
17
-
18
- <!-- Background -->
19
- <rect width="1200" height="800" fill="white"/>
20
-
21
- <!-- Title -->
22
- <text x="600" y="25" text-anchor="middle" class="title">Memory Efficiency Per Instance</text>
23
- <text x="600" y="45" text-anchor="middle" class="subtitle">Average memory overhead per registry instance across different scale sizes</text>
24
-
25
- <!-- Plot area -->
26
- <g transform="translate(110,60)">
27
-
28
- <!-- Grid lines (Y-axis - memory in KB) -->
29
- <line x1="0" y1="344.5968259745526" x2="990" y2="344.5968259745526" class="grid"/>
30
- <text x="-10" y="348.5968259745526" text-anchor="end" class="label">2KB</text>
31
- <line x1="0" y1="148.4097749337363" x2="990" y2="148.4097749337363" class="grid"/>
32
- <text x="-10" y="152.4097749337363" text-anchor="end" class="label">5KB</text>
33
- <line x1="0" y1="0" x2="990" y2="0" class="grid"/>
34
- <text x="-10" y="4" text-anchor="end" class="label">10KB</text>
35
- <line x1="0" y1="0" x2="0" y2="460" class="grid"/>
36
- <text x="0" y="480" text-anchor="middle" class="label">10</text>
37
- <line x1="99.33989856911381" y1="0" x2="99.33989856911381" y2="460" class="grid"/>
38
- <text x="99.33989856911381" y="480" text-anchor="middle" class="label">20</text>
39
- <line x1="230.6601014308862" y1="0" x2="230.6601014308862" y2="460" class="grid"/>
40
- <text x="230.6601014308862" y="480" text-anchor="middle" class="label">50</text>
41
- <line x1="330" y1="0" x2="330" y2="460" class="grid"/>
42
- <text x="330" y="480" text-anchor="middle" class="label">100</text>
43
- <line x1="429.3398985691138" y1="0" x2="429.3398985691138" y2="460" class="grid"/>
44
- <text x="429.3398985691138" y="480" text-anchor="middle" class="label">200</text>
45
- <line x1="560.6601014308862" y1="0" x2="560.6601014308862" y2="460" class="grid"/>
46
- <text x="560.6601014308862" y="480" text-anchor="middle" class="label">500</text>
47
- <line x1="660" y1="0" x2="660" y2="460" class="grid"/>
48
- <text x="660" y="480" text-anchor="middle" class="label">1k</text>
49
- <line x1="759.3398985691139" y1="0" x2="759.3398985691139" y2="460" class="grid"/>
50
- <text x="759.3398985691139" y="480" text-anchor="middle" class="label">2k</text>
51
- <line x1="890.6601014308862" y1="0" x2="890.6601014308862" y2="460" class="grid"/>
52
- <text x="890.6601014308862" y="480" text-anchor="middle" class="label">5k</text>
53
- <line x1="990" y1="0" x2="990" y2="460" class="grid"/>
54
- <text x="990" y="480" text-anchor="middle" class="label">10k</text>
55
- <!-- Y-axis -->
56
- <line x1="0" y1="0" x2="0" y2="460" class="axis"/>
57
-
58
- <!-- X-axis -->
59
- <line x1="0" y1="460" x2="990" y2="460" class="axis"/>
60
-
61
- <!-- Axis labels -->
62
- <text x="495" y="510" text-anchor="middle" class="axis-title">Instance Count - Log Scale</text>
63
- <text transform="rotate(-90,-70,230)" x="-70" y="230" text-anchor="middle" class="axis-title">Memory Usage (KB)</text>
64
- <path d="M 0 250.78578577238122 L 99.33989856911381 275.4368165087373 L 230.6601014308862 302.8847437800938 L 330 329.7254216692126 L 429.3398985691138 317.3838255384124 L 560.6601014308862 344.01997498373333 L 660 345.867686714848 L 759.3398985691139 359.97551438289184 L 890.6601014308862 355.4639184055187 L 990 412.22272389292004" class="per-instance"/>
65
- <circle cx="0" cy="250.78578577238122" r="4" class="per-instance-dot"/>
66
- <circle cx="99.33989856911381" cy="275.4368165087373" r="4" class="per-instance-dot"/>
67
- <circle cx="230.6601014308862" cy="302.8847437800938" r="4" class="per-instance-dot"/>
68
- <circle cx="330" cy="329.7254216692126" r="4" class="per-instance-dot"/>
69
- <circle cx="429.3398985691138" cy="317.3838255384124" r="4" class="per-instance-dot"/>
70
- <circle cx="560.6601014308862" cy="344.01997498373333" r="4" class="per-instance-dot"/>
71
- <circle cx="660" cy="345.867686714848" r="4" class="per-instance-dot"/>
72
- <circle cx="759.3398985691139" cy="359.97551438289184" r="4" class="per-instance-dot"/>
73
- <circle cx="890.6601014308862" cy="355.4639184055187" r="4" class="per-instance-dot"/>
74
- <circle cx="990" cy="412.22272389292004" r="4" class="per-instance-dot"/>
75
- <!-- Legend -->
76
- <g transform="translate(20, 20)">
77
- <rect x="0" y="0" width="190" height="60" fill="white" stroke="#ccc" stroke-width="1"/>
78
-
79
- <!-- Memory Per Instance Legend -->
80
- <text x="10" y="20" class="legend" font-weight="bold">Memory Per Instance</text>
81
- <line x1="10" y1="30" x2="40" y2="30" class="per-instance"/>
82
- <circle cx="25" cy="30" r="3" class="per-instance-dot"/>
83
- <text x="45" y="34" class="legend">Average Performance</text>
84
- </g>
85
-
86
- </g>
87
-
88
- <!-- Test Metadata Section - match timing chart layout exactly -->
89
- <g transform="translate(50, 620)">
90
- <!-- Left Column: System Information -->
91
- <g transform="translate(20, 20)">
92
- <text x="0" y="0" class="metadata-section">System Information</text>
93
-
94
- <text x="0" y="25" class="metadata-label">Test Date:</text>
95
- <text x="150" y="25" class="metadata-value">2025-07-21</text>
96
-
97
- <text x="0" y="45" class="metadata-label">Package Version:</text>
98
- <text x="150" y="45" class="metadata-value">@fjell/registry v4.4.7</text>
99
-
100
- <text x="0" y="65" class="metadata-label">Node.js Version:</text>
101
- <text x="150" y="65" class="metadata-value">v22.0.0 (darwin arm64)</text>
102
-
103
- <text x="0" y="85" class="metadata-label">Platform:</text>
104
- <text x="150" y="85" class="metadata-value">darwin arm64</text>
105
-
106
- <text x="0" y="105" class="metadata-label">Compiler:</text>
107
- <text x="150" y="105" class="metadata-value">TypeScript + Vite</text>
108
- </g>
109
-
110
- <!-- Right Column: Test Notes -->
111
- <g transform="translate(400, 20)">
112
- <text x="0" y="0" class="metadata-section">Test Notes</text>
113
- <text x="0" y="25" class="metadata-label">• Memory measurements use Node.js process.memoryUsage() with heap precision</text>
114
- <text x="0" y="42" class="metadata-label">• Each test includes garbage collection to minimize measurement variance</text>
115
- <text x="0" y="59" class="metadata-label">• Logging is mocked during memory tests to eliminate overhead</text>
116
- <text x="0" y="76" class="metadata-label">• Tests verify memory efficiency and consistency across instance counts</text>
117
- <text x="0" y="93" class="metadata-label">• Statistical analysis ensures reliable performance measurements</text>
118
- </g>
119
- </g>
120
- </svg>