ultimate-jekyll-manager 0.0.154 → 0.0.156
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/CLAUDE.md +20 -0
- package/README.md +12 -0
- package/dist/assets/js/core/exit-popup.js +26 -27
- package/dist/defaults/dist/_layouts/blueprint/admin/dashboard/index.html +2 -2
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/categories/category.html +1 -1
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/categories/index.html +1 -1
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/tags/index.html +1 -1
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/tags/tag.html +1 -1
- package/dist/defaults/dist/pages/test/libraries/bootstrap.html +7 -7
- package/dist/defaults/dist/pages/test/libraries/lazy-loading.html +1 -1
- package/dist/gulp/tasks/utils/github-cache.js +7 -2
- package/firebase-debug.log +28 -0
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -319,6 +319,26 @@ Inserts Font Awesome icons:
|
|
|
319
319
|
1. Icon name (string or variable, without "fa-" prefix)
|
|
320
320
|
2. CSS classes (optional, defaults to "fa-3xl")
|
|
321
321
|
|
|
322
|
+
**Available Icon Sizes:**
|
|
323
|
+
- `fa-2xs` - Extra extra small
|
|
324
|
+
- `fa-xs` - Extra small
|
|
325
|
+
- `fa-sm` - Small
|
|
326
|
+
- `fa-md` - Medium (default base size)
|
|
327
|
+
- `fa-lg` - Large
|
|
328
|
+
- `fa-xl` - Extra large
|
|
329
|
+
- `fa-2xl` - 2x extra large
|
|
330
|
+
- `fa-3xl` - 3x extra large
|
|
331
|
+
- `fa-4xl` - 4x extra large
|
|
332
|
+
- `fa-5xl` - 5x extra large
|
|
333
|
+
|
|
334
|
+
**Size Examples:**
|
|
335
|
+
```liquid
|
|
336
|
+
{% uj_icon "check", "fa-sm" %} <!-- Small inline icon -->
|
|
337
|
+
{% uj_icon "star", "fa-lg" %} <!-- Slightly larger -->
|
|
338
|
+
{% uj_icon "rocket", "fa-2xl" %} <!-- Hero/feature icons -->
|
|
339
|
+
{% uj_icon "chart-pie", "fa-4xl" %}<!-- Large placeholder icons -->
|
|
340
|
+
```
|
|
341
|
+
|
|
322
342
|
#### `asset_path` Override
|
|
323
343
|
Override default page-specific CSS/JS path derivation:
|
|
324
344
|
|
package/README.md
CHANGED
|
@@ -355,6 +355,18 @@ prerender_icons:
|
|
|
355
355
|
---
|
|
356
356
|
```
|
|
357
357
|
|
|
358
|
+
**Available Icon Sizes:**
|
|
359
|
+
- `fa-2xs` - Extra extra small
|
|
360
|
+
- `fa-xs` - Extra small
|
|
361
|
+
- `fa-sm` - Small
|
|
362
|
+
- `fa-md` - Medium (default base size)
|
|
363
|
+
- `fa-lg` - Large
|
|
364
|
+
- `fa-xl` - Extra large
|
|
365
|
+
- `fa-2xl` - 2x extra large
|
|
366
|
+
- `fa-3xl` - 3x extra large
|
|
367
|
+
- `fa-4xl` - 4x extra large
|
|
368
|
+
- `fa-5xl` - 5x extra large
|
|
369
|
+
|
|
358
370
|
Icons are automatically rendered in the page HTML and can be retrieved by importing the library function.
|
|
359
371
|
|
|
360
372
|
#### Authorized Fetch Library
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// Libraries
|
|
2
|
+
import merge from 'lodash/merge.js';
|
|
3
|
+
|
|
1
4
|
// Exit Popup Module
|
|
2
5
|
export default function (Manager, options) {
|
|
3
6
|
// Shortcuts
|
|
@@ -23,54 +26,47 @@ export default function (Manager, options) {
|
|
|
23
26
|
setupExitIntentDetection();
|
|
24
27
|
});
|
|
25
28
|
|
|
26
|
-
// Make this available on window object in DEV mode for testing
|
|
27
|
-
/* @dev-only:start */
|
|
28
|
-
{
|
|
29
|
-
window.showExitPopup = showExitPopup;
|
|
30
|
-
}
|
|
31
|
-
/* @dev-only:end */
|
|
32
|
-
|
|
33
29
|
// Register showExitPopup on the UJ library for programmatic access
|
|
34
30
|
// Usage: webManager.uj().showExitPopup()
|
|
35
31
|
if (webManager._ujLibrary) {
|
|
36
32
|
webManager._ujLibrary.showExitPopup = showExitPopup;
|
|
37
33
|
}
|
|
38
34
|
|
|
39
|
-
function updateModalContent($modal) {
|
|
35
|
+
function updateModalContent($modal, effectiveConfig) {
|
|
40
36
|
// Update title
|
|
41
37
|
const $title = $modal.querySelector('.modal-exit-title');
|
|
42
|
-
if ($title &&
|
|
43
|
-
$title.textContent =
|
|
38
|
+
if ($title && effectiveConfig.title) {
|
|
39
|
+
$title.textContent = effectiveConfig.title;
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
// Update main message
|
|
47
43
|
const $message = $modal.querySelector('.modal-exit-message');
|
|
48
|
-
if ($message &&
|
|
49
|
-
$message.textContent =
|
|
44
|
+
if ($message && effectiveConfig.message) {
|
|
45
|
+
$message.textContent = effectiveConfig.message;
|
|
50
46
|
}
|
|
51
47
|
|
|
52
48
|
// Update offer title
|
|
53
49
|
const $offerTitleText = $modal.querySelector('.modal-exit-offer-title-text');
|
|
54
|
-
if ($offerTitleText &&
|
|
55
|
-
$offerTitleText.textContent =
|
|
50
|
+
if ($offerTitleText && effectiveConfig.offerTitle) {
|
|
51
|
+
$offerTitleText.textContent = effectiveConfig.offerTitle;
|
|
56
52
|
}
|
|
57
53
|
|
|
58
54
|
// Update offer description
|
|
59
55
|
const $offerDesc = $modal.querySelector('.modal-exit-offer-description');
|
|
60
|
-
if ($offerDesc &&
|
|
61
|
-
$offerDesc.textContent =
|
|
56
|
+
if ($offerDesc && effectiveConfig.offerDescription) {
|
|
57
|
+
$offerDesc.textContent = effectiveConfig.offerDescription;
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
// Update main button
|
|
65
61
|
const $button = $modal.querySelector('.modal-exit-button');
|
|
66
62
|
const $buttonText = $modal.querySelector('.modal-exit-button-text');
|
|
67
|
-
if ($button &&
|
|
68
|
-
if ($buttonText &&
|
|
69
|
-
$buttonText.textContent =
|
|
63
|
+
if ($button && effectiveConfig.okButton) {
|
|
64
|
+
if ($buttonText && effectiveConfig.okButton.text) {
|
|
65
|
+
$buttonText.textContent = effectiveConfig.okButton.text;
|
|
70
66
|
}
|
|
71
|
-
if (
|
|
67
|
+
if (effectiveConfig.okButton.link) {
|
|
72
68
|
// Add UTM parameters to track exit popup conversions
|
|
73
|
-
const url = new URL(
|
|
69
|
+
const url = new URL(effectiveConfig.okButton.link, window.location.origin);
|
|
74
70
|
url.searchParams.set('itm_source', 'exit-popup');
|
|
75
71
|
url.searchParams.set('itm_medium', 'popup');
|
|
76
72
|
url.searchParams.set('itm_campaign', window.location.pathname);
|
|
@@ -80,8 +76,8 @@ export default function (Manager, options) {
|
|
|
80
76
|
|
|
81
77
|
// Update "Maybe later" link text if configured
|
|
82
78
|
const $dismissLink = $modal.querySelector('.modal-exit-dismiss');
|
|
83
|
-
if ($dismissLink &&
|
|
84
|
-
$dismissLink.textContent =
|
|
79
|
+
if ($dismissLink && effectiveConfig.dismissText) {
|
|
80
|
+
$dismissLink.textContent = effectiveConfig.dismissText;
|
|
85
81
|
}
|
|
86
82
|
|
|
87
83
|
// Remove hidden attribute to make modal available
|
|
@@ -167,10 +163,13 @@ export default function (Manager, options) {
|
|
|
167
163
|
// }, { passive: true });
|
|
168
164
|
}
|
|
169
165
|
|
|
170
|
-
function showExitPopup() {
|
|
166
|
+
function showExitPopup(overrides) {
|
|
167
|
+
// Deep merge overrides with config (without mutating original)
|
|
168
|
+
const effectiveConfig = merge({}, config, overrides);
|
|
169
|
+
|
|
171
170
|
/* @dev-only:start */
|
|
172
171
|
{
|
|
173
|
-
console.log('Showing exit popup:',
|
|
172
|
+
console.log('Showing exit popup:', effectiveConfig.title, 'after', timeSinceLastShown, 'ms since last shown');
|
|
174
173
|
}
|
|
175
174
|
/* @dev-only:end */
|
|
176
175
|
|
|
@@ -187,8 +186,8 @@ export default function (Manager, options) {
|
|
|
187
186
|
return;
|
|
188
187
|
}
|
|
189
188
|
|
|
190
|
-
// Update modal content with
|
|
191
|
-
updateModalContent($modalElement);
|
|
189
|
+
// Update modal content with effectiveConfig
|
|
190
|
+
updateModalContent($modalElement, effectiveConfig);
|
|
192
191
|
|
|
193
192
|
// Check if Bootstrap is available
|
|
194
193
|
if (!window.bootstrap || !window.bootstrap.Modal) {
|
|
@@ -115,7 +115,7 @@ meta:
|
|
|
115
115
|
<div class="card-body">
|
|
116
116
|
<div style="height: 300px; display: flex; align-items: center; justify-content: center;">
|
|
117
117
|
<div class="text-center text-muted">
|
|
118
|
-
{% uj_icon "chart-area", "fa-
|
|
118
|
+
{% uj_icon "chart-area", "fa-4xl mb-3" %}
|
|
119
119
|
<p>Chart will be rendered here</p>
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
@@ -131,7 +131,7 @@ meta:
|
|
|
131
131
|
<div class="card-body">
|
|
132
132
|
<div style="height: 300px; display: flex; align-items: center; justify-content: center;">
|
|
133
133
|
<div class="text-center text-muted">
|
|
134
|
-
{% uj_icon "chart-pie", "fa-
|
|
134
|
+
{% uj_icon "chart-pie", "fa-4xl mb-3" %}
|
|
135
135
|
<p>Pie chart will be rendered here</p>
|
|
136
136
|
</div>
|
|
137
137
|
</div>
|
package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/categories/category.html
CHANGED
|
@@ -125,7 +125,7 @@ hero:
|
|
|
125
125
|
<div class="row justify-content-center">
|
|
126
126
|
<div class="col-lg-6 text-center" data-lazy="@class animation-slide-up">
|
|
127
127
|
<div class="py-5">
|
|
128
|
-
{% uj_icon "file-lines", "fa-
|
|
128
|
+
{% uj_icon "file-lines", "fa-4xl text-muted mb-3" %}
|
|
129
129
|
<h2 class="h4 text-muted">No posts in this category</h2>
|
|
130
130
|
<p class="text-muted">Check back soon for new content.</p>
|
|
131
131
|
<a href="{{ site.url }}/blog/categories" class="btn btn-primary">
|
|
@@ -77,7 +77,7 @@ hero:
|
|
|
77
77
|
<div class="row justify-content-center">
|
|
78
78
|
<div class="col-lg-6 text-center" data-lazy="@class animation-slide-up">
|
|
79
79
|
<div class="py-5">
|
|
80
|
-
{% uj_icon "folder-open", "fa-
|
|
80
|
+
{% uj_icon "folder-open", "fa-4xl text-muted mb-3" %}
|
|
81
81
|
<h2 class="h4 text-muted">No categories yet</h2>
|
|
82
82
|
<p class="text-muted">Check back soon for categorized content.</p>
|
|
83
83
|
<a href="{{ site.url }}/blog" class="btn btn-primary">
|
|
@@ -73,7 +73,7 @@ hero:
|
|
|
73
73
|
<div class="row justify-content-center">
|
|
74
74
|
<div class="col-lg-6 text-center" data-lazy="@class animation-slide-up">
|
|
75
75
|
<div class="py-5">
|
|
76
|
-
{% uj_icon "tags", "fa-
|
|
76
|
+
{% uj_icon "tags", "fa-4xl text-muted mb-3" %}
|
|
77
77
|
<h2 class="h4 text-muted">No tags yet</h2>
|
|
78
78
|
<p class="text-muted">Check back soon for tagged content.</p>
|
|
79
79
|
<a href="{{ site.url }}/blog" class="btn btn-primary">
|
|
@@ -126,7 +126,7 @@ hero:
|
|
|
126
126
|
<div class="row justify-content-center">
|
|
127
127
|
<div class="col-lg-6 text-center" data-lazy="@class animation-slide-up">
|
|
128
128
|
<div class="py-5">
|
|
129
|
-
{% uj_icon "file-lines", "fa-
|
|
129
|
+
{% uj_icon "file-lines", "fa-4xl text-muted mb-3" %}
|
|
130
130
|
<h2 class="h4 text-muted">No posts with this tag</h2>
|
|
131
131
|
<p class="text-muted">Check back soon for new content.</p>
|
|
132
132
|
<a href="{{ site.url }}/blog/tags" class="btn btn-primary">
|
|
@@ -70,7 +70,7 @@ meta:
|
|
|
70
70
|
<div class="col-md-6">
|
|
71
71
|
<div class="card animation-hover-up">
|
|
72
72
|
<div class="card-body text-center">
|
|
73
|
-
{% uj_icon "rocket", "fa-
|
|
73
|
+
{% uj_icon "rocket", "fa-3xl mb-2" %}
|
|
74
74
|
<h5>Hover Up</h5>
|
|
75
75
|
<p class="small">.animation-hover-up</p>
|
|
76
76
|
</div>
|
|
@@ -79,7 +79,7 @@ meta:
|
|
|
79
79
|
<div class="col-md-6">
|
|
80
80
|
<div class="card animation-hover-flex">
|
|
81
81
|
<div class="card-body text-center">
|
|
82
|
-
{% uj_icon "expand", "fa-
|
|
82
|
+
{% uj_icon "expand", "fa-3xl mb-2" %}
|
|
83
83
|
<h5>Hover Zoom</h5>
|
|
84
84
|
<p class="small">.animation-hover-flex</p>
|
|
85
85
|
</div>
|
|
@@ -91,31 +91,31 @@ meta:
|
|
|
91
91
|
<div class="row g-3 align-items-center">
|
|
92
92
|
<div class="col-md-2 text-center">
|
|
93
93
|
<div class="animation-pulse p-3 bg-danger text-light rounded">
|
|
94
|
-
{% uj_icon "heart", "fa-
|
|
94
|
+
{% uj_icon "heart", "fa-2xl" %}
|
|
95
95
|
<p class="mb-0 mt-2">.animation-pulse</p>
|
|
96
96
|
</div>
|
|
97
97
|
</div>
|
|
98
98
|
<div class="col-md-2 text-center">
|
|
99
99
|
<div class="animation-wiggle p-3 bg-warning text-dark rounded">
|
|
100
|
-
{% uj_icon "bell", "fa-
|
|
100
|
+
{% uj_icon "bell", "fa-2xl" %}
|
|
101
101
|
<p class="mb-0 mt-2">.animation-wiggle</p>
|
|
102
102
|
</div>
|
|
103
103
|
</div>
|
|
104
104
|
<div class="col-md-2 text-center">
|
|
105
105
|
<div class="animation-flex p-3 bg-primary text-light rounded">
|
|
106
|
-
{% uj_icon "sync", "fa-
|
|
106
|
+
{% uj_icon "sync", "fa-2xl" %}
|
|
107
107
|
<p class="mb-0 mt-2">.animation-flex</p>
|
|
108
108
|
</div>
|
|
109
109
|
</div>
|
|
110
110
|
<div class="col-md-2 text-center">
|
|
111
111
|
<div class="animation-up-down p-3 bg-success text-light rounded">
|
|
112
|
-
{% uj_icon "arrow-up", "fa-
|
|
112
|
+
{% uj_icon "arrow-up", "fa-2xl" %}
|
|
113
113
|
<p class="mb-0 mt-2">.animation-up-down</p>
|
|
114
114
|
</div>
|
|
115
115
|
</div>
|
|
116
116
|
<div class="col-md-2 text-center">
|
|
117
117
|
<div class="animation-shimmer p-3 bg-gradient-rainbow text-light rounded">
|
|
118
|
-
{% uj_icon "star", "fa-
|
|
118
|
+
{% uj_icon "star", "fa-2xl" %}
|
|
119
119
|
<p class="mb-0 mt-2">.animation-shimmer</p>
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
@@ -42,7 +42,7 @@ meta:
|
|
|
42
42
|
<!-- Spacer to push content below fold -->
|
|
43
43
|
<div class="d-flex align-items-center justify-content-center text-muted vh-100">
|
|
44
44
|
<div class="text-center">
|
|
45
|
-
{% uj_icon "arrow-down", "fa-
|
|
45
|
+
{% uj_icon "arrow-down", "fa-3xl mb-3" %}
|
|
46
46
|
<p class="h4">Scroll down to trigger lazy loading...</p>
|
|
47
47
|
</div>
|
|
48
48
|
</div>
|
|
@@ -102,12 +102,17 @@ class GitHubCache {
|
|
|
102
102
|
this.logger.log(`📂 Extract directory: ${extractDir}`);
|
|
103
103
|
this.logger.log(`📁 Directory contents: ${JSON.stringify(dirContents)}`);
|
|
104
104
|
|
|
105
|
+
// GitHub zipball format: {owner}-{repo}-{sha}
|
|
106
|
+
// Match this pattern to avoid picking up other cache directories (like imagemin, translation)
|
|
107
|
+
const githubZipPattern = new RegExp(`^${this.owner}-${this.repo}-[a-f0-9]+$`, 'i');
|
|
108
|
+
|
|
105
109
|
const extractedRoot = dirContents.find(name => {
|
|
106
110
|
const fullPath = path.join(extractDir, name);
|
|
107
111
|
const isDir = jetpack.exists(fullPath) === 'dir';
|
|
108
112
|
const isNotZip = name !== zipFileName;
|
|
109
|
-
|
|
110
|
-
|
|
113
|
+
const matchesGitHubPattern = githubZipPattern.test(name);
|
|
114
|
+
this.logger.log(` - ${name}: isDir=${isDir}, isNotZip=${isNotZip}, matchesGitHubPattern=${matchesGitHubPattern}`);
|
|
115
|
+
return isNotZip && isDir && matchesGitHubPattern;
|
|
111
116
|
});
|
|
112
117
|
|
|
113
118
|
this.logger.log(`✅ Found extracted root: ${extractedRoot || 'NONE'}`);
|
package/firebase-debug.log
CHANGED
|
@@ -3294,3 +3294,31 @@
|
|
|
3294
3294
|
[debug] [2025-12-11T08:34:28.905Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3295
3295
|
[debug] [2025-12-11T08:34:28.906Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3296
3296
|
[debug] [2025-12-11T08:34:28.906Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3297
|
+
[debug] [2025-12-11T09:13:42.648Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3298
|
+
[debug] [2025-12-11T09:13:42.648Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3299
|
+
[debug] [2025-12-11T09:13:42.650Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3300
|
+
[debug] [2025-12-11T09:13:42.650Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3301
|
+
[debug] [2025-12-11T09:13:42.650Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3302
|
+
[debug] [2025-12-11T09:13:42.658Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3303
|
+
[debug] [2025-12-11T09:13:42.659Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3304
|
+
[debug] [2025-12-11T09:13:42.650Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3305
|
+
[debug] [2025-12-11T09:13:42.650Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3306
|
+
[debug] [2025-12-11T09:13:42.650Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3307
|
+
[debug] [2025-12-11T09:13:42.658Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3308
|
+
[debug] [2025-12-11T09:13:42.659Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3309
|
+
[debug] [2025-12-11T09:13:42.745Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3310
|
+
[debug] [2025-12-11T09:13:42.745Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3311
|
+
[debug] [2025-12-11T09:13:42.746Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3312
|
+
[debug] [2025-12-11T09:13:42.746Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3313
|
+
[debug] [2025-12-11T09:13:42.748Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3314
|
+
[debug] [2025-12-11T09:13:42.748Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3315
|
+
[debug] [2025-12-11T09:13:42.749Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3316
|
+
[debug] [2025-12-11T09:13:42.749Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3317
|
+
[debug] [2025-12-11T09:13:42.751Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3318
|
+
[debug] [2025-12-11T09:13:42.751Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3319
|
+
[debug] [2025-12-11T09:13:42.752Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3320
|
+
[debug] [2025-12-11T09:13:42.752Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3321
|
+
[debug] [2025-12-11T09:13:42.754Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3322
|
+
[debug] [2025-12-11T09:13:42.754Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3323
|
+
[debug] [2025-12-11T09:13:42.755Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
|
|
3324
|
+
[debug] [2025-12-11T09:13:42.755Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|