backend-manager 5.9.15 → 5.9.17

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backend-manager",
3
- "version": "5.9.15",
3
+ "version": "5.9.17",
4
4
  "description": "Quick tools for developing Firebase functions",
5
5
  "main": "src/manager/index.js",
6
6
  "files": [
@@ -2,25 +2,11 @@ const BaseCommand = require('./base-command');
2
2
  const chalk = require('chalk').default;
3
3
  const powertools = require('node-powertools');
4
4
  const attachLogFile = require('../utils/attach-log-file');
5
- const { execSync } = require('child_process');
6
- const { homedir } = require('os');
7
5
  const path = require('path');
8
6
  const jetpack = require('fs-jetpack');
9
7
 
10
8
  const DEFAULT_REGION = 'us-central1';
11
9
 
12
- function gcloudExec(cmd, options = {}) {
13
- const env = { ...process.env };
14
- env.PATH = `${path.join(homedir(), 'google-cloud-sdk', 'bin')}:${env.PATH}`;
15
-
16
- return execSync(cmd, {
17
- encoding: 'utf8',
18
- timeout: options.timeout || 30000,
19
- stdio: ['pipe', 'pipe', 'pipe'],
20
- env,
21
- });
22
- }
23
-
24
10
  class DeployCommand extends BaseCommand {
25
11
  async execute() {
26
12
  const self = this.main;
@@ -63,8 +49,8 @@ class DeployCommand extends BaseCommand {
63
49
  * runtime transition. Without it, HTTP requests get a 403 at the IAM level
64
50
  * before BEM's application-level auth (backendManagerKey) can run.
65
51
  *
66
- * Dynamically discovers all deployed functions and fixes any HTTP-triggered
67
- * function missing the allUsers invoker binding.
52
+ * Dynamically discovers all deployed functions via gcloud and fixes any
53
+ * HTTP-triggered function missing the allUsers invoker binding.
68
54
  */
69
55
  async ensurePublicInvoker() {
70
56
  const projectId = this.getProjectId();
@@ -77,13 +63,12 @@ class DeployCommand extends BaseCommand {
77
63
  let httpFunctions;
78
64
 
79
65
  try {
80
- const output = gcloudExec(
66
+ const output = await powertools.execute(
81
67
  `gcloud functions list --project ${projectId} --regions ${DEFAULT_REGION} --format="json(name,httpsTrigger)"`,
68
+ { log: false },
82
69
  );
83
70
 
84
- const allFunctions = JSON.parse(output);
85
-
86
- httpFunctions = allFunctions
71
+ httpFunctions = JSON.parse(output)
87
72
  .filter((fn) => fn.httpsTrigger)
88
73
  .map((fn) => fn.name.split('/').pop());
89
74
  } catch {
@@ -101,9 +86,9 @@ class DeployCommand extends BaseCommand {
101
86
 
102
87
  for (const fnName of httpFunctions) {
103
88
  try {
104
- const policyOutput = gcloudExec(
89
+ const policyOutput = await powertools.execute(
105
90
  `gcloud functions get-iam-policy ${fnName} --project ${projectId} --region ${DEFAULT_REGION} --format=json`,
106
- { timeout: 15000 },
91
+ { log: false },
107
92
  );
108
93
 
109
94
  const policy = JSON.parse(policyOutput);
@@ -117,8 +102,9 @@ class DeployCommand extends BaseCommand {
117
102
  continue;
118
103
  }
119
104
 
120
- gcloudExec(
105
+ await powertools.execute(
121
106
  `gcloud functions add-iam-policy-binding ${fnName} --project ${projectId} --region ${DEFAULT_REGION} --member="allUsers" --role="roles/cloudfunctions.invoker"`,
107
+ { log: false },
122
108
  );
123
109
 
124
110
  this.log(` ${chalk.green('✓')} Set public invoker on ${chalk.cyan(fnName)}`);
@@ -0,0 +1,26 @@
1
+ const BaseTest = require('./base-test');
2
+ const powertools = require('node-powertools');
3
+
4
+ class GcloudCliTest extends BaseTest {
5
+ getName() {
6
+ return 'gcloud CLI is installed (required by deploy)';
7
+ }
8
+
9
+ getWarning() {
10
+ return [
11
+ 'gcloud CLI is not installed.',
12
+ 'Install with: https://cloud.google.com/sdk/docs/install',
13
+ ];
14
+ }
15
+
16
+ async run() {
17
+ try {
18
+ await powertools.execute('gcloud --version', { log: false });
19
+ return true;
20
+ } catch (error) {
21
+ return 'warn';
22
+ }
23
+ }
24
+ }
25
+
26
+ module.exports = GcloudCliTest;
@@ -10,6 +10,7 @@ const NvmrcVersionTest = require('./nvmrc-version');
10
10
  const FirebaseCLITest = require('./firebase-cli');
11
11
  const FirebaseAuthTest = require('./firebase-auth');
12
12
  const JavaInstalledTest = require('./java-installed');
13
+ const GcloudCliTest = require('./gcloud-cli');
13
14
  const FunctionsPackageTest = require('./functions-package');
14
15
  const FirebaseAdminTest = require('./firebase-admin');
15
16
  const FirebaseFunctionsTest = require('./firebase-functions');
@@ -56,6 +57,7 @@ function getTests(context) {
56
57
  new FirebaseCLITest(context),
57
58
  new FirebaseAuthTest(context),
58
59
  new JavaInstalledTest(context),
60
+ new GcloudCliTest(context),
59
61
  new FunctionsPackageTest(context),
60
62
  new FirebaseAdminTest(context),
61
63
  new FirebaseFunctionsTest(context),
@@ -222,6 +222,7 @@ async function harvest(assistant, entry, admin, provider, Manager) {
222
222
  id: postId++,
223
223
  author: entry.author,
224
224
  postPath: entry.postPath,
225
+ source: resolved.trackingData?.url || null,
225
226
  }).catch((e) => e);
226
227
  if (uploadedPost instanceof Error) {
227
228
  assistant.error('harvest(): Error uploading post to blog', uploadedPost);
@@ -130,7 +130,7 @@ function blocksToPost(json) {
130
130
  * @param {string} [args.postPath='ghostii'] - Sub-folder under _posts/{year}/
131
131
  * @returns {Promise<object>} { post, url, slug, path } — `url` is the public blog URL
132
132
  */
133
- async function publishArticle(assistant, { brand, article, id, author, postPath }) {
133
+ async function publishArticle(assistant, { brand, article, id, author, postPath, source }) {
134
134
  const baseUrl = (brand.brand.url || '').replace(/^https?:\/\//, '').replace(/\/$/, '');
135
135
  const apiUrl = `https://api.${baseUrl}`;
136
136
 
@@ -159,6 +159,7 @@ async function publishArticle(assistant, { brand, article, id, author, postPath
159
159
  categories: article.categories,
160
160
  tags: article.keywords,
161
161
  postPath: postPath || 'ghostii',
162
+ source: source || null,
162
163
  githubUser: brand.github.user,
163
164
  githubRepo: brand.github.repo,
164
165
  },
@@ -87,6 +87,7 @@ module.exports = async ({ assistant, Manager, user, settings, analytics }) => {
87
87
  settings.tags = settings.tags;
88
88
  settings.categories = settings.categories;
89
89
  settings.layout = settings.layout;
90
+ settings.source = settings.source || null;
90
91
  settings.date = moment(settings.date || now).subtract(1, 'days').format('YYYY-MM-DD');
91
92
  settings.id = settings.id || Math.round(new Date(now).getTime() / 1000);
92
93
  settings.directory = `src/_posts/${moment(now).format('YYYY')}/${settings.postPath}`;
@@ -10,6 +10,7 @@ post:
10
10
  id: { id }
11
11
  tags: { tags }
12
12
  categories: { categories }
13
+ source: {source}
13
14
  ---
14
15
 
15
16
  { body }
@@ -100,6 +100,7 @@ module.exports = async ({ assistant, Manager, settings, analytics }) => {
100
100
  id: parsed.post.id,
101
101
  tags: parsed.post.tags,
102
102
  categories: parsed.post.categories,
103
+ source: parsed.post.source || null,
103
104
 
104
105
  // Derived
105
106
  headerImageURL: `${url.origin}/assets/images/blog/post-${parsed.post.id}/${filename}.jpg`,
@@ -2,5 +2,5 @@
2
2
  "env": {
3
3
  "TEST_EXTENDED_MODE": ""
4
4
  },
5
- "updatedAt": "2026-06-26T04:48:40.374Z"
5
+ "updatedAt": "2026-06-27T00:05:42.330Z"
6
6
  }
@@ -2,11 +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
- 21:48:49.365 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
6
- 21:48:49.461 [main] INFO com.firebase.server.forge.App$ - Listening at 127.0.0.1:9000
7
- 21:48:59.683 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - demo-backend-manager-default-rtdb successfully activated FBKV (SurveyIdle(0)) wait: 76ms, init: 0ms
8
- 21:48:59.719 [NamespaceSystem-blocking-namespace-operation-dispatcher-6] INFO com.firebase.core.namespace.StateManager - Namespace demo-backend-manager-default-rtdb status Active to Active
9
- 21:49:11.203 [Thread-0] INFO com.firebase.server.forge.App$ - Attempting graceful shutdown.
10
- 21:49:11.207 [NamespaceSystem-akka.actor.default-dispatcher-5] INFO com.firebase.core.namespace.Terminator$Terminator - 1 actors left to terminate: demo-backend-manager-default-rtdb
11
- 21:49:11.211 [NamespaceSystem-akka.actor.default-dispatcher-5] INFO com.firebase.core.namespace.NamespaceActor - stopped namespace actor for demo-backend-manager-default-rtdb
12
- 21:49:11.214 [Thread-0] INFO com.firebase.server.forge.App$ - Graceful shutdown complete.
5
+ 17:05:48.613 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
6
+ 17:05:48.710 [main] INFO com.firebase.server.forge.App$ - Listening at 127.0.0.1:9000
7
+ 17:05:58.279 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - demo-backend-manager-default-rtdb successfully activated FBKV (SurveyIdle(0)) wait: 70ms, init: 0ms
8
+ 17:05:58.314 [NamespaceSystem-blocking-namespace-operation-dispatcher-6] INFO com.firebase.core.namespace.StateManager - Namespace demo-backend-manager-default-rtdb status Active to Active
9
+ 17:06:10.472 [Thread-0] INFO com.firebase.server.forge.App$ - Attempting graceful shutdown.
10
+ 17:06:10.477 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.Terminator$Terminator - 1 actors left to terminate: demo-backend-manager-default-rtdb
11
+ 17:06:10.480 [NamespaceSystem-akka.actor.default-dispatcher-4] INFO com.firebase.core.namespace.NamespaceActor - stopped namespace actor for demo-backend-manager-default-rtdb
12
+ 17:06:10.483 [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 25, 2026 9:48:48 PM com.google.cloud.datastore.emulator.firestore.websocket.WebSocketServer start
5
+ Jun 26, 2026 5:05:47 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,115 +20,115 @@ 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 25, 2026 9:48:58 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
23
+ Jun 26, 2026 5:05:57 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
24
24
  INFO: Detected non-HTTP/2 connection.
25
- Jun 25, 2026 9:48:59 PM io.grpc.netty.TcpMetrics loadEpollInfo
25
+ Jun 26, 2026 5:05:57 PM io.grpc.netty.TcpMetrics loadEpollInfo
26
26
  INFO: Epoll available during static init of TcpMetrics:false
27
- Jun 25, 2026 9:48:59 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
27
+ Jun 26, 2026 5:05:57 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
28
28
  INFO: Detected HTTP/2 connection.
29
- Jun 25, 2026 9:49:00 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
29
+ Jun 26, 2026 5:05:59 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
30
30
  INFO: Detected HTTP/2 connection.
31
- Jun 25, 2026 9:49:00 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
31
+ Jun 26, 2026 5:05:59 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
32
32
  INFO: Detected HTTP/2 connection.
33
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
33
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
34
34
  INFO: Detected HTTP/2 connection.
35
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
35
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
36
36
  INFO: Detected HTTP/2 connection.
37
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
37
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
38
38
  INFO: Detected HTTP/2 connection.
39
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
39
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
40
40
  INFO: Detected HTTP/2 connection.
41
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
41
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
42
42
  INFO: Detected HTTP/2 connection.
43
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
43
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
44
44
  INFO: Detected HTTP/2 connection.
45
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
45
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
46
46
  INFO: Detected HTTP/2 connection.
47
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
47
+ Jun 26, 2026 5:06:08 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
48
48
  INFO: Detected HTTP/2 connection.
49
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
49
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
50
50
  INFO: Detected HTTP/2 connection.
51
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
51
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
52
52
  INFO: Detected HTTP/2 connection.
53
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
53
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
54
54
  INFO: Detected HTTP/2 connection.
55
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
55
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
56
56
  INFO: Detected HTTP/2 connection.
57
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
57
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
58
58
  INFO: Detected HTTP/2 connection.
59
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
59
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
60
60
  INFO: Detected HTTP/2 connection.
61
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
61
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
62
62
  INFO: Detected HTTP/2 connection.
63
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
63
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
64
64
  INFO: Detected HTTP/2 connection.
65
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
65
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
66
66
  INFO: Detected HTTP/2 connection.
67
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
67
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
68
68
  INFO: Detected HTTP/2 connection.
69
- Jun 25, 2026 9:49:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
69
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
70
70
  INFO: Detected HTTP/2 connection.
71
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
71
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
72
72
  INFO: Detected HTTP/2 connection.
73
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
73
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
74
74
  INFO: Detected HTTP/2 connection.
75
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
75
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
76
76
  INFO: Detected HTTP/2 connection.
77
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
77
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
78
78
  INFO: Detected HTTP/2 connection.
79
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
79
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
80
80
  INFO: Detected HTTP/2 connection.
81
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
81
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
82
82
  INFO: Detected HTTP/2 connection.
83
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
83
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
84
84
  INFO: Detected HTTP/2 connection.
85
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
85
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
86
86
  INFO: Detected HTTP/2 connection.
87
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
87
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
88
88
  INFO: Detected HTTP/2 connection.
89
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
89
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
90
90
  INFO: Detected HTTP/2 connection.
91
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
91
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
92
92
  INFO: Detected HTTP/2 connection.
93
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
93
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
94
94
  INFO: Detected HTTP/2 connection.
95
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
95
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
96
96
  INFO: Detected HTTP/2 connection.
97
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
97
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
98
98
  INFO: Detected HTTP/2 connection.
99
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
99
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
100
100
  INFO: Detected HTTP/2 connection.
101
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
101
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
102
102
  INFO: Detected HTTP/2 connection.
103
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
103
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
104
104
  INFO: Detected HTTP/2 connection.
105
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
105
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
106
106
  INFO: Detected HTTP/2 connection.
107
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
107
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
108
108
  INFO: Detected HTTP/2 connection.
109
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
109
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
110
110
  INFO: Detected HTTP/2 connection.
111
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
111
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
112
112
  INFO: Detected HTTP/2 connection.
113
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
113
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
114
114
  INFO: Detected HTTP/2 connection.
115
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
115
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
116
116
  INFO: Detected HTTP/2 connection.
117
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
117
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
118
118
  INFO: Detected HTTP/2 connection.
119
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
119
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
120
120
  INFO: Detected HTTP/2 connection.
121
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
121
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
122
122
  INFO: Detected HTTP/2 connection.
123
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
123
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
124
124
  INFO: Detected HTTP/2 connection.
125
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
125
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
126
126
  INFO: Detected HTTP/2 connection.
127
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
127
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
128
128
  INFO: Detected HTTP/2 connection.
129
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
129
+ Jun 26, 2026 5:06:09 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
130
130
  INFO: Detected HTTP/2 connection.
131
- Jun 25, 2026 9:49:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
131
+ Jun 26, 2026 5:06:10 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
132
132
  INFO: Detected HTTP/2 connection.
133
133
  *** shutting down gRPC server since JVM is shutting down
134
134
  *** 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 25, 2026 9:48:52 PM com.google.cloud.pubsub.testing.v1.Main main
3
+ Jun 26, 2026 5:05:51 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,9 +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 25, 2026 9:48:53 PM com.google.cloud.pubsub.testing.v1.Main main
12
+ Jun 26, 2026 5:05:52 PM com.google.cloud.pubsub.testing.v1.Main main
13
13
  INFO: Server started, listening on 8085
14
- Jun 25, 2026 9:48:59 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
14
+ Jun 26, 2026 5:05:58 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
15
15
  INFO: Detected HTTP/2 connection.
16
16
  *** shutting down gRPC server since JVM is shutting down
17
17
  *** server shut down