backend-manager 5.9.22 → 5.9.23

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.
@@ -231,6 +231,8 @@ npx mgr test user/ admin/ # Multiple paths
231
231
 
232
232
  Use `bem:` or `project:` prefix to filter by source. **Mirror the source path so a test reads like what it tests.** Route tests live under `test/routes/<route-path>/<concern>.js`, mirroring `functions/routes/<route-path>/` — e.g. `functions/routes/write/article/` → `test/routes/write/article/generate.js`, `functions/routes/sponsorship/post.js` → `test/routes/sponsorship/post.js`. Split each route into **one file per concern** under its mirrored dir (`test/routes/sponsorship/post.js`, `.../manual-validation.js`), never one giant `test/test.js`. The runner discovers files by directory, so the split also drives the `project:<path>` filter: `npx mgr test project:routes/write` runs a whole route's tests, `project:routes/write/markdown` runs one concern.
233
233
 
234
+ **The underscore convention:** `_`-prefixed files and directories at any depth under `test/` are excluded from suite discovery. Put shared helpers, fixture data, and non-test support files in `_`-prefixed paths — e.g. `test/_fixtures/`, `test/_helpers/`, `test/routes/_shared-utils.js`. The runner still specifically loads `test/_init.js` as the lifecycle hook. Matches the same convention in EM/BXM/UJM.
235
+
234
236
  ## Test Types
235
237
 
236
238
  > **The runner reads each file's `module.exports` object — it does NOT inject Mocha/Jest globals.** A test file that calls `describe`/`it`/`before`/`beforeEach`/`after` at top level throws `ReferenceError: beforeEach is not defined` and shows as `Failed to load`. There is no global `assert` either — use the `assert` passed into `run({ assert })`. Every test file MUST export one of the shapes below.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backend-manager",
3
- "version": "5.9.22",
3
+ "version": "5.9.23",
4
4
  "description": "Quick tools for developing Firebase functions",
5
5
  "main": "src/manager/index.js",
6
6
  "files": [
@@ -255,6 +255,7 @@
255
255
  "5tb.in",
256
256
  "5x25.com",
257
257
  "5y.loseyourip.com",
258
+ "5yaochu.top",
258
259
  "5ymail.com",
259
260
  "60minutemail.com",
260
261
  "628868.xyz",
@@ -1106,6 +1107,7 @@
1106
1107
  "borged.net",
1107
1108
  "borged.org",
1108
1109
  "bosakun.com",
1110
+ "boscharena.dev",
1109
1111
  "bot.cd",
1110
1112
  "bot.nu",
1111
1113
  "botasky.eu.cc",
@@ -1292,6 +1294,7 @@
1292
1294
  "cbasosbr.top",
1293
1295
  "cbdol.mx",
1294
1296
  "cbes.net",
1297
+ "cbsbada.com",
1295
1298
  "cbty.ru",
1296
1299
  "cbty.store",
1297
1300
  "cbvl.co.uk",
@@ -2060,6 +2063,7 @@
2060
2063
  "egg5233.com",
2061
2064
  "egg5233.one",
2062
2065
  "eggbanjos.org",
2066
+ "eggso.click",
2063
2067
  "eggur.com",
2064
2068
  "egirl.help",
2065
2069
  "egvoo.com",
@@ -2482,6 +2486,7 @@
2482
2486
  "firstaidtrainingschool.co.uk",
2483
2487
  "firstlawyer.org",
2484
2488
  "fisdom.vip",
2489
+ "fitbloomlab.com",
2485
2490
  "fitnesrezink.ru",
2486
2491
  "fivemail.de",
2487
2492
  "fivermail.com",
@@ -2526,6 +2531,7 @@
2526
2531
  "footard.com",
2527
2532
  "foothilltoy.site",
2528
2533
  "for4u.net",
2534
+ "forapps.space",
2529
2535
  "foreastate.com",
2530
2536
  "forecastertests.com",
2531
2537
  "foreskin.cf",
@@ -2752,6 +2758,7 @@
2752
2758
  "geteit.com",
2753
2759
  "getfun.men",
2754
2760
  "getgptcode.com",
2761
+ "getmail.my.id",
2755
2762
  "getmail1.com",
2756
2763
  "getmailfree.cc",
2757
2764
  "getmails.eu",
@@ -3561,6 +3568,7 @@
3561
3568
  "ixx.io",
3562
3569
  "iya.fr.nf",
3563
3570
  "iysqv.com",
3571
+ "izhowto.com",
3564
3572
  "izunasan.my.id",
3565
3573
  "izunasuite.biz.id",
3566
3574
  "j-p.us",
@@ -3796,6 +3804,7 @@
3796
3804
  "kisoq.com",
3797
3805
  "kissgy.com",
3798
3806
  "kisstwink.com",
3807
+ "kitap.az",
3799
3808
  "kitnastar.com",
3800
3809
  "kiwkiw.shop",
3801
3810
  "kjkszpjcompany.com",
@@ -4418,6 +4427,7 @@
4418
4427
  "maswae.world",
4419
4428
  "matamuasu.ga",
4420
4429
  "matchpol.net",
4430
+ "matjoa.com",
4421
4431
  "matmayer.com",
4422
4432
  "matra.site",
4423
4433
  "max-mail.org",
@@ -5483,6 +5493,7 @@
5483
5493
  "pozima.rest",
5484
5494
  "pp-n6.top",
5485
5495
  "pp7rvv.com",
5496
+ "ppdf.cc",
5486
5497
  "ppedu.pp.ua",
5487
5498
  "ppetw.com",
5488
5499
  "ppoo.ccwu.cc",
@@ -5749,6 +5760,7 @@
5749
5760
  "reusable.email",
5750
5761
  "reusecomputers.site",
5751
5762
  "reverendneedham.co.uk",
5763
+ "reviewfood.vn",
5752
5764
  "revolvingdoorhoax.org",
5753
5765
  "rexabot.com",
5754
5766
  "rexmoo.ccwu.cc",
@@ -5757,6 +5769,7 @@
5757
5769
  "rezato.com",
5758
5770
  "rf.gd",
5759
5771
  "rfc822.org",
5772
+ "rfods.tech",
5760
5773
  "rfzpnrbpv.top",
5761
5774
  "rgbeastcomputers.site",
5762
5775
  "rhalmshouse.church",
@@ -6007,6 +6020,7 @@
6007
6020
  "shieldedmail.com",
6008
6021
  "shieldemail.com",
6009
6022
  "shiftmail.com",
6023
+ "shiita12.com",
6010
6024
  "shipfromto.com",
6011
6025
  "shiphazmat.org",
6012
6026
  "shipping-regulations.com",
@@ -6717,6 +6731,7 @@
6717
6731
  "tidaksuka.cfd",
6718
6732
  "tidewick.org",
6719
6733
  "tidissajiiu.com",
6734
+ "tidylifehub.com",
6720
6735
  "tiendadezapasok.com",
6721
6736
  "tiffincrane.com",
6722
6737
  "tigrisstem.org",
@@ -7596,6 +7611,7 @@
7596
7611
  "yaloo.fr.nf",
7597
7612
  "yamail.win",
7598
7613
  "yanet.me",
7614
+ "yangzhai.xyz",
7599
7615
  "yannmail.win",
7600
7616
  "yanxuan.eu.cc",
7601
7617
  "yapped.net",
@@ -2,5 +2,5 @@
2
2
  "env": {
3
3
  "TEST_EXTENDED_MODE": ""
4
4
  },
5
- "updatedAt": "2026-06-28T20:42:04.980Z"
5
+ "updatedAt": "2026-06-30T01:53:26.779Z"
6
6
  }
@@ -2,7 +2,11 @@ WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
2
2
  WARNING: sun.misc.Unsafe::objectFieldOffset has been called by akka.util.Unsafe (file:/Users/ian/.cache/firebase/emulators/firebase-database-emulator-v4.11.2.jar)
3
3
  WARNING: Please consider reporting this to the maintainers of class akka.util.Unsafe
4
4
  WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
5
- 13:42:13.900 [NamespaceSystem-akka.actor.default-dispatcher-5] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
6
- 13:42:14.004 [main] INFO com.firebase.server.forge.App$ - Listening at 127.0.0.1:9000
7
- 13:42:23.201 [Thread-0] INFO com.firebase.server.forge.App$ - Attempting graceful shutdown.
8
- 13:42:23.204 [Thread-0] INFO com.firebase.server.forge.App$ - Graceful shutdown complete.
5
+ 18:53:34.244 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
6
+ 18:53:34.346 [main] INFO com.firebase.server.forge.App$ - Listening at 127.0.0.1:9000
7
+ 18:53:44.206 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - demo-backend-manager-default-rtdb successfully activated FBKV (SurveyIdle(0)) wait: 74ms, init: 0ms
8
+ 18:53:44.243 [NamespaceSystem-blocking-namespace-operation-dispatcher-6] INFO com.firebase.core.namespace.StateManager - Namespace demo-backend-manager-default-rtdb status Active to Active
9
+ 18:53:55.860 [Thread-0] INFO com.firebase.server.forge.App$ - Attempting graceful shutdown.
10
+ 18:53:55.865 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.Terminator$Terminator - 1 actors left to terminate: demo-backend-manager-default-rtdb
11
+ 18:53:55.869 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - stopped namespace actor for demo-backend-manager-default-rtdb
12
+ 18:53:55.872 [Thread-0] INFO com.firebase.server.forge.App$ - Graceful shutdown complete.
@@ -2,7 +2,7 @@ WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
2
2
  WARNING: sun.misc.Unsafe::allocateMemory has been called by io.netty.util.internal.PlatformDependent0$2 (file:/Users/ian/.cache/firebase/emulators/cloud-firestore-emulator-v1.21.0.jar)
3
3
  WARNING: Please consider reporting this to the maintainers of class io.netty.util.internal.PlatformDependent0$2
4
4
  WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release
5
- Jun 28, 2026 1:42:12 PM com.google.cloud.datastore.emulator.firestore.websocket.WebSocketServer start
5
+ Jun 29, 2026 6:53:32 PM com.google.cloud.datastore.emulator.firestore.websocket.WebSocketServer start
6
6
  INFO: Started WebSocket server on ws://127.0.0.1:9150
7
7
 
8
8
  API endpoint: http://127.0.0.1:8080
@@ -20,5 +20,95 @@ If you are running a Firestore in Datastore Mode project, run:
20
20
  Note: Support for Datastore Mode is in preview. If you encounter any bugs please file at https://github.com/firebase/firebase-tools/issues.
21
21
  Dev App Server is now running.
22
22
 
23
+ Jun 29, 2026 6:53:43 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
24
+ INFO: Detected non-HTTP/2 connection.
25
+ Jun 29, 2026 6:53:43 PM io.grpc.netty.TcpMetrics loadEpollInfo
26
+ INFO: Epoll available during static init of TcpMetrics:false
27
+ Jun 29, 2026 6:53:43 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
28
+ INFO: Detected HTTP/2 connection.
29
+ Jun 29, 2026 6:53:45 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
30
+ INFO: Detected HTTP/2 connection.
31
+ Jun 29, 2026 6:53:45 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
32
+ INFO: Detected HTTP/2 connection.
33
+ Jun 29, 2026 6:53:53 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
34
+ INFO: Detected HTTP/2 connection.
35
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
36
+ INFO: Detected HTTP/2 connection.
37
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
38
+ INFO: Detected HTTP/2 connection.
39
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
40
+ INFO: Detected HTTP/2 connection.
41
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
42
+ INFO: Detected HTTP/2 connection.
43
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
44
+ INFO: Detected HTTP/2 connection.
45
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
46
+ INFO: Detected HTTP/2 connection.
47
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
48
+ INFO: Detected HTTP/2 connection.
49
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
50
+ INFO: Detected HTTP/2 connection.
51
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
52
+ INFO: Detected HTTP/2 connection.
53
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
54
+ INFO: Detected HTTP/2 connection.
55
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
56
+ INFO: Detected HTTP/2 connection.
57
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
58
+ INFO: Detected HTTP/2 connection.
59
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
60
+ INFO: Detected HTTP/2 connection.
61
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
62
+ INFO: Detected HTTP/2 connection.
63
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
64
+ INFO: Detected HTTP/2 connection.
65
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
66
+ INFO: Detected HTTP/2 connection.
67
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
68
+ INFO: Detected HTTP/2 connection.
69
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
70
+ INFO: Detected HTTP/2 connection.
71
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
72
+ INFO: Detected HTTP/2 connection.
73
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
74
+ INFO: Detected HTTP/2 connection.
75
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
76
+ INFO: Detected HTTP/2 connection.
77
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
78
+ INFO: Detected HTTP/2 connection.
79
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
80
+ INFO: Detected HTTP/2 connection.
81
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
82
+ INFO: Detected HTTP/2 connection.
83
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
84
+ INFO: Detected HTTP/2 connection.
85
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
86
+ INFO: Detected HTTP/2 connection.
87
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
88
+ INFO: Detected HTTP/2 connection.
89
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
90
+ INFO: Detected HTTP/2 connection.
91
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
92
+ INFO: Detected HTTP/2 connection.
93
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
94
+ INFO: Detected HTTP/2 connection.
95
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
96
+ INFO: Detected HTTP/2 connection.
97
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
98
+ INFO: Detected HTTP/2 connection.
99
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
100
+ INFO: Detected HTTP/2 connection.
101
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
102
+ INFO: Detected HTTP/2 connection.
103
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
104
+ INFO: Detected HTTP/2 connection.
105
+ Jun 29, 2026 6:53:54 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
106
+ INFO: Detected HTTP/2 connection.
107
+ Jun 29, 2026 6:53:55 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
108
+ INFO: Detected HTTP/2 connection.
109
+ Jun 29, 2026 6:53:55 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
110
+ INFO: Detected HTTP/2 connection.
111
+ Jun 29, 2026 6:53:55 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
112
+ INFO: Detected HTTP/2 connection.
23
113
  *** shutting down gRPC server since JVM is shutting down
24
114
  *** server shut down
@@ -1,6 +1,6 @@
1
1
  This is the Google Pub/Sub fake.
2
2
  Implementation may be incomplete or differ from the real system.
3
- Jun 28, 2026 1:42:17 PM com.google.cloud.pubsub.testing.v1.Main main
3
+ Jun 29, 2026 6:53:37 PM com.google.cloud.pubsub.testing.v1.Main main
4
4
  INFO: IAM integration is disabled. IAM policy methods and ACL checks are not supported
5
5
  SLF4J(W): No SLF4J providers were found.
6
6
  SLF4J(W): Defaulting to no-operation (NOP) logger implementation
@@ -9,7 +9,9 @@ WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
9
9
  WARNING: sun.misc.Unsafe::allocateMemory has been called by io.netty.util.internal.PlatformDependent0$2 (file:/Users/ian/.cache/firebase/emulators/pubsub-emulator-0.8.33/pubsub-emulator/lib/cloud-pubsub-emulator-0.8.33-all.jar)
10
10
  WARNING: Please consider reporting this to the maintainers of class io.netty.util.internal.PlatformDependent0$2
11
11
  WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release
12
- Jun 28, 2026 1:42:17 PM com.google.cloud.pubsub.testing.v1.Main main
12
+ Jun 29, 2026 6:53:37 PM com.google.cloud.pubsub.testing.v1.Main main
13
13
  INFO: Server started, listening on 8085
14
+ Jun 29, 2026 6:53:43 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
15
+ INFO: Detected HTTP/2 connection.
14
16
  *** shutting down gRPC server since JVM is shutting down
15
17
  *** server shut down
@@ -464,13 +464,9 @@ class TestRunner {
464
464
  const items = jetpack.list(dir) || [];
465
465
 
466
466
  for (const item of items) {
467
- // Skip _legacy directory
468
- if (item === '_legacy') {
469
- continue;
470
- }
471
-
472
- // Skip the _init.js lifecycle hook — it's run by setupAccounts(), not as a test.
473
- if (item === '_init.js') {
467
+ // Skip _-prefixed files and directories (fixtures, helpers, internal data).
468
+ // Matches EM/BXM/UJM convention — `test/_fixtures/`, `test/_helpers/`, etc.
469
+ if (item.startsWith('_')) {
474
470
  continue;
475
471
  }
476
472