ultimate-jekyll-manager 0.0.165 → 0.0.167
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/TODO-tracking.md +69 -0
- package/TODO.md +0 -4
- package/dist/assets/js/core/auth.js +1 -0
- package/dist/assets/js/pages/oauth2/index.js +3 -36
- package/dist/assets/js/pages/token/index.js +108 -0
- package/dist/commands/setup.js +1 -1
- package/dist/defaults/dist/_includes/core/foot.html +1 -0
- package/dist/defaults/dist/_layouts/blueprint/auth/token.html +20 -0
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/token.html +42 -0
- package/dist/defaults/dist/pages/auth/token.md +7 -0
- package/dist/gulp/tasks/defaults.js +29 -4
- package/firebase-debug.log +84 -0
- package/package.json +2 -2
package/TODO-tracking.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
TODO
|
|
2
|
+
* Does signup work with BEM 5.0?? keeps ssying cannot resolve user after i sign up and try to go into accout :(
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
FIX ATTRIBUTION
|
|
6
|
+
https://claude.ai/share/bae8e516-e74c-4e77-9a85-e58277908b43
|
|
7
|
+
|
|
8
|
+
i want to also add my own "itm" tags which are set by internal things. can we process those too?
|
|
9
|
+
|
|
10
|
+
// attribution.js - load this on every page
|
|
11
|
+
(function() {
|
|
12
|
+
const params = new URLSearchParams(window.location.search);
|
|
13
|
+
|
|
14
|
+
// Check if this pageview has any attribution params
|
|
15
|
+
const hasAttribution = params.get('fbclid') || params.get('gclid') ||
|
|
16
|
+
params.get('ttclid') || params.get('utm_source');
|
|
17
|
+
|
|
18
|
+
if (hasAttribution) {
|
|
19
|
+
const attribution = {
|
|
20
|
+
fbclid: params.get('fbclid'),
|
|
21
|
+
fbc: getCookie('_fbc'),
|
|
22
|
+
gclid: params.get('gclid'),
|
|
23
|
+
ttclid: params.get('ttclid'),
|
|
24
|
+
utm_source: params.get('utm_source'),
|
|
25
|
+
utm_medium: params.get('utm_medium'),
|
|
26
|
+
utm_campaign: params.get('utm_campaign'),
|
|
27
|
+
utm_content: params.get('utm_content'),
|
|
28
|
+
utm_term: params.get('utm_term'),
|
|
29
|
+
landingPage: window.location.pathname,
|
|
30
|
+
capturedAt: new Date().toISOString(),
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Only save if we don't already have attribution (first-touch)
|
|
34
|
+
if (!localStorage.getItem('attribution')) {
|
|
35
|
+
localStorage.setItem('attribution', JSON.stringify(attribution));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
})();
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
TODO
|
|
42
|
+
fix tiktok pixel events (look at this)
|
|
43
|
+
|
|
44
|
+
Test deletion account flow
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
PROBLEM
|
|
48
|
+
navigatin to https://192.168.86.69:4000/reset?authSignout=true
|
|
49
|
+
|
|
50
|
+
WHILE SIGNED IT signs you out (GOOD) but then it KICKS you back to INDEX (BAD) istead of STAYING O THE PAGE
|
|
51
|
+
|
|
52
|
+
FIX FORM MANAGER
|
|
53
|
+
|
|
54
|
+
FIX TIKTKO PIXELS TRACKING ID NOT CORRECT
|
|
55
|
+
|
|
56
|
+
output: {
|
|
57
|
+
filename: '[name].[contenthash].js',
|
|
58
|
+
sourceMapFilename: '[name].[contenthash].js.map',
|
|
59
|
+
},
|
|
60
|
+
devtool: Manager.isProd() ? 'hidden-source-map' : 'eval-source-map',
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
signout on homepage
|
|
64
|
+
* sign up / singin button does NOT reappear (there is just no button)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
try not to expose Manager??
|
|
68
|
+
|
|
69
|
+
|
package/TODO.md
CHANGED
|
@@ -6,10 +6,6 @@ NEW TODO
|
|
|
6
6
|
- FIx formmanager .getData() it keeps returning an empty object, make it work flawlessyly
|
|
7
7
|
- It keeps testing whether there is a "." every time it reads or writes. just call the getNested and setNested functions and then check for the DOT inside those functions
|
|
8
8
|
- form manager should NOT submit if the button that was clicked is disabled (class or attribute)
|
|
9
|
-
- script that adds some helpful classes to the body or attributes to html maybe like
|
|
10
|
-
* data-device="mobile|tablet|desktop"
|
|
11
|
-
* data-browser="chrome|safari|firefox|edge|opera|other"
|
|
12
|
-
* data-os="windows|macos|linux|android|ios|other"
|
|
13
9
|
|
|
14
10
|
Make an admin dashboard backend
|
|
15
11
|
|
|
@@ -27,6 +27,7 @@ export default function (Manager, options) {
|
|
|
27
27
|
const url = new URL(window.location.href);
|
|
28
28
|
const authReturnUrl = url.searchParams.get('authReturnUrl');
|
|
29
29
|
const authSignout = url.searchParams.get('authSignout');
|
|
30
|
+
const authSource = url.searchParams.get('authSource');
|
|
30
31
|
|
|
31
32
|
// Log
|
|
32
33
|
console.log('[Auth] state changed:', state);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Libraries
|
|
2
|
-
import
|
|
2
|
+
import authorizedFetch from '__main_assets__/js/libs/authorized-fetch.js';
|
|
3
3
|
let webManager = null;
|
|
4
4
|
|
|
5
5
|
// Module
|
|
@@ -67,10 +67,6 @@ async function handleOAuthCallback() {
|
|
|
67
67
|
throw new Error('Missing provider in state');
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if (!stateParsed.authenticationToken) {
|
|
71
|
-
throw new Error('Missing authentication token');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
70
|
if (!stateParsed.serverUrl) {
|
|
75
71
|
throw new Error('Missing server URL');
|
|
76
72
|
}
|
|
@@ -80,7 +76,7 @@ async function handleOAuthCallback() {
|
|
|
80
76
|
$provider.textContent = providerName;
|
|
81
77
|
|
|
82
78
|
// Validate redirect URL
|
|
83
|
-
if (stateParsed.redirectUrl && !isValidRedirectUrl(stateParsed.redirectUrl)) {
|
|
79
|
+
if (stateParsed.redirectUrl && !webManager.isValidRedirectUrl(stateParsed.redirectUrl)) {
|
|
84
80
|
throw new Error('Invalid redirect URL');
|
|
85
81
|
}
|
|
86
82
|
|
|
@@ -101,13 +97,12 @@ async function handleOAuthCallback() {
|
|
|
101
97
|
console.log('Tokenize payload:', payload);
|
|
102
98
|
|
|
103
99
|
// Call server to complete OAuth flow
|
|
104
|
-
const response = await
|
|
100
|
+
const response = await authorizedFetch(stateParsed.serverUrl, {
|
|
105
101
|
method: 'POST',
|
|
106
102
|
timeout: 60000,
|
|
107
103
|
response: 'json',
|
|
108
104
|
tries: 2,
|
|
109
105
|
body: {
|
|
110
|
-
authenticationToken: stateParsed.authenticationToken,
|
|
111
106
|
command: 'user:oauth2',
|
|
112
107
|
payload: payload
|
|
113
108
|
}
|
|
@@ -177,34 +172,6 @@ function showError(message) {
|
|
|
177
172
|
}
|
|
178
173
|
}
|
|
179
174
|
|
|
180
|
-
// Validate redirect URL
|
|
181
|
-
function isValidRedirectUrl(url) {
|
|
182
|
-
try {
|
|
183
|
-
const parsed = new URL(url);
|
|
184
|
-
const current = new URL(window.location.href);
|
|
185
|
-
|
|
186
|
-
// Allow same origin or configured trusted domains
|
|
187
|
-
return parsed.origin === current.origin ||
|
|
188
|
-
isAllowedDomain(parsed.hostname);
|
|
189
|
-
} catch (e) {
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Check if domain is allowed
|
|
195
|
-
function isAllowedDomain(hostname) {
|
|
196
|
-
// Add any trusted domains here
|
|
197
|
-
const allowedDomains = [
|
|
198
|
-
'localhost',
|
|
199
|
-
'127.0.0.1',
|
|
200
|
-
webManager?.config?.brand?.domain
|
|
201
|
-
].filter(Boolean);
|
|
202
|
-
|
|
203
|
-
return allowedDomains.some(domain =>
|
|
204
|
-
hostname === domain || hostname.endsWith('.' + domain)
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
175
|
// Capitalize first letter
|
|
209
176
|
function capitalizeFirstLetter(string) {
|
|
210
177
|
if (!string) return '';
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// This file is required by /token page to generate custom auth tokens for extensions/apps
|
|
2
|
+
import authorizedFetch from '__main_assets__/js/libs/authorized-fetch.js';
|
|
3
|
+
|
|
4
|
+
// Module
|
|
5
|
+
export default function (Manager) {
|
|
6
|
+
// Shortcuts
|
|
7
|
+
const { webManager } = Manager;
|
|
8
|
+
|
|
9
|
+
// DOM elements
|
|
10
|
+
const $status = document.getElementById('token-status');
|
|
11
|
+
const $error = document.getElementById('token-error');
|
|
12
|
+
const $errorMessage = document.getElementById('token-error-message');
|
|
13
|
+
|
|
14
|
+
// Get URL params
|
|
15
|
+
const url = new URL(window.location.href);
|
|
16
|
+
const authReturnUrl = url.searchParams.get('authReturnUrl');
|
|
17
|
+
|
|
18
|
+
// Handle DOM ready
|
|
19
|
+
webManager.dom().ready()
|
|
20
|
+
.then(async () => {
|
|
21
|
+
// Log
|
|
22
|
+
console.log('[Token] Initialized. authReturnUrl:', authReturnUrl);
|
|
23
|
+
|
|
24
|
+
// Validate authReturnUrl if present
|
|
25
|
+
if (authReturnUrl && !webManager.isValidRedirectUrl(authReturnUrl)) {
|
|
26
|
+
showError('Invalid redirect URL');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Wait for auth to be ready and get user
|
|
31
|
+
webManager.auth().listen({ once: true }, async (state) => {
|
|
32
|
+
const user = state.user;
|
|
33
|
+
|
|
34
|
+
// Should not happen since page requires auth, but just in case
|
|
35
|
+
if (!user) {
|
|
36
|
+
showError('Not authenticated. Please sign in first.');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
// Generate custom token
|
|
42
|
+
updateStatus('Generating secure token...');
|
|
43
|
+
const token = await generateCustomToken(webManager);
|
|
44
|
+
|
|
45
|
+
// Update status
|
|
46
|
+
updateStatus('Token generated successfully!');
|
|
47
|
+
|
|
48
|
+
// Handle redirect or URL update
|
|
49
|
+
if (authReturnUrl) {
|
|
50
|
+
// Redirect to return URL with token (for electron/deep links)
|
|
51
|
+
updateStatus('Redirecting...');
|
|
52
|
+
const returnUrl = new URL(authReturnUrl);
|
|
53
|
+
returnUrl.searchParams.set('authToken', token);
|
|
54
|
+
window.location.href = returnUrl.toString();
|
|
55
|
+
} else {
|
|
56
|
+
// Add token to current URL (for browser extensions)
|
|
57
|
+
// Extension background will detect this and close the tab
|
|
58
|
+
url.searchParams.set('authToken', token);
|
|
59
|
+
window.history.replaceState({}, '', url.toString());
|
|
60
|
+
updateStatus('You can close this tab now.');
|
|
61
|
+
}
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.error('[Token] Error generating token:', error);
|
|
64
|
+
showError(error.message || 'Failed to generate token. Please try again.');
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// Generate custom token via backend-manager API
|
|
70
|
+
async function generateCustomToken(webManager) {
|
|
71
|
+
const serverApiURL = `${webManager.getApiUrl()}/backend-manager`;
|
|
72
|
+
|
|
73
|
+
const response = await authorizedFetch(serverApiURL, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
body: {
|
|
76
|
+
command: 'user:create-custom-token',
|
|
77
|
+
payload: {},
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Extract token from response
|
|
82
|
+
const token = response?.data?.token;
|
|
83
|
+
|
|
84
|
+
if (!token) {
|
|
85
|
+
throw new Error('No token received from server');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return token;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Update status message
|
|
92
|
+
function updateStatus(message) {
|
|
93
|
+
if ($status) {
|
|
94
|
+
$status.innerHTML = `<p class="text-muted small">${message}</p>`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Show error message
|
|
99
|
+
function showError(message) {
|
|
100
|
+
if ($error && $errorMessage) {
|
|
101
|
+
$errorMessage.textContent = message;
|
|
102
|
+
$error.classList.remove('d-none');
|
|
103
|
+
}
|
|
104
|
+
if ($status) {
|
|
105
|
+
$status.classList.add('d-none');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
package/dist/commands/setup.js
CHANGED
|
@@ -340,7 +340,7 @@ function install(package, ver, location) {
|
|
|
340
340
|
// Create CNAME
|
|
341
341
|
async function createCname() {
|
|
342
342
|
// Get the CNAME
|
|
343
|
-
const url = config.url || 'https://
|
|
343
|
+
const url = config.url || 'https://ultimate-jekyll.itwcreativeworks.com';
|
|
344
344
|
const host = new URL(url).host
|
|
345
345
|
|
|
346
346
|
// Write to file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
### ALL PAGES ###
|
|
3
|
+
layout: themes/[ site.theme.id ]/frontend/pages/auth/token
|
|
4
|
+
|
|
5
|
+
### REGULAR PAGES ###
|
|
6
|
+
meta:
|
|
7
|
+
title: "Authenticating - {{ site.brand.name }}"
|
|
8
|
+
description: "Generating authentication token for {{ site.brand.name }}."
|
|
9
|
+
breadcrumb: "Token"
|
|
10
|
+
|
|
11
|
+
### WEB MANAGER CONFIG ###
|
|
12
|
+
web_manager:
|
|
13
|
+
auth:
|
|
14
|
+
config:
|
|
15
|
+
policy: "authenticated"
|
|
16
|
+
redirects:
|
|
17
|
+
unauthenticated: "/signup"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
{{ content | uj_content_format }}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
### ALL PAGES ###
|
|
3
|
+
layout: themes/[ site.theme.id ]/frontend/core/cover
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<section class="col-12 col-md-8 col-lg-6 col-xl-5 mw-sm">
|
|
7
|
+
<div class="card border-0 shadow-lg">
|
|
8
|
+
<div class="card-body p-3 p-md-5">
|
|
9
|
+
<!-- Logo -->
|
|
10
|
+
<div class="text-center mb-3">
|
|
11
|
+
<div class="avatar avatar-xl">
|
|
12
|
+
<img src="{{ site.brand.images.brandmark }}?cb={{ site.uj.cache_breaker }}" alt="{{ site.brand.name }} Logo"/>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<!-- Header -->
|
|
17
|
+
<div class="text-center mb-4">
|
|
18
|
+
<h1 class="h3 mb-2">Authenticating...</h1>
|
|
19
|
+
<p class="text-muted">Please wait while we complete your sign in</p>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<!-- Spinner -->
|
|
23
|
+
<div class="text-center mb-4">
|
|
24
|
+
<div class="spinner-border text-primary" role="status">
|
|
25
|
+
<span class="visually-hidden">Loading...</span>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<!-- Status message -->
|
|
30
|
+
<div id="token-status" class="text-center">
|
|
31
|
+
<p class="text-muted small">Generating secure token...</p>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<!-- Error message (hidden by default) -->
|
|
35
|
+
<div id="token-error" class="alert alert-danger d-none" role="alert">
|
|
36
|
+
<strong>Error:</strong> <span id="token-error-message"></span>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</section>
|
|
41
|
+
|
|
42
|
+
{{ content | uj_content_format }}
|
|
@@ -45,15 +45,40 @@ const FILE_MAP = {
|
|
|
45
45
|
skip: (file) => {
|
|
46
46
|
// Get the name
|
|
47
47
|
const name = path.basename(file.name, path.extname(file.name));
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
|
|
49
|
+
// file.destination is relative to project root (e.g., "src/pages")
|
|
50
|
+
// Check if consuming project has equivalent file
|
|
51
|
+
const htmlFilePath = path.join(rootPathProject, file.destination, `${name}.html`);
|
|
52
|
+
const mdFilePath = path.join(rootPathProject, file.destination, `${name}.md`);
|
|
53
|
+
const jsonFilePath = path.join(rootPathProject, file.destination, `${name}.json`);
|
|
54
|
+
const htmlFileExists = jetpack.exists(htmlFilePath);
|
|
55
|
+
const mdFileExists = jetpack.exists(mdFilePath);
|
|
56
|
+
const jsonFileExists = jetpack.exists(jsonFilePath);
|
|
57
|
+
const anyExists = htmlFileExists || mdFileExists || jsonFileExists;
|
|
58
|
+
|
|
59
|
+
// Skip if consuming project has an equivalent file
|
|
60
|
+
return anyExists;
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
'dist/**/*.{html,md,json}': {
|
|
64
|
+
skip: (file) => {
|
|
65
|
+
// Get the name and relative path within dist/
|
|
66
|
+
const name = path.basename(file.name, path.extname(file.name));
|
|
67
|
+
|
|
68
|
+
// file.destination is relative to project root (e.g., "dist/pages")
|
|
69
|
+
// We need to check if consuming project has equivalent in src/
|
|
70
|
+
// e.g., "dist/pages" -> "src/pages"
|
|
71
|
+
const srcPath = file.destination.replace(/^dist\//, 'src/');
|
|
72
|
+
|
|
73
|
+
const htmlFilePath = path.join(rootPathProject, srcPath, `${name}.html`);
|
|
74
|
+
const mdFilePath = path.join(rootPathProject, srcPath, `${name}.md`);
|
|
75
|
+
const jsonFilePath = path.join(rootPathProject, srcPath, `${name}.json`);
|
|
51
76
|
const htmlFileExists = jetpack.exists(htmlFilePath);
|
|
52
77
|
const mdFileExists = jetpack.exists(mdFilePath);
|
|
53
78
|
const jsonFileExists = jetpack.exists(jsonFilePath);
|
|
54
79
|
const anyExists = htmlFileExists || mdFileExists || jsonFileExists;
|
|
55
80
|
|
|
56
|
-
// Skip if
|
|
81
|
+
// Skip if consuming project has an equivalent file in src/
|
|
57
82
|
return anyExists;
|
|
58
83
|
},
|
|
59
84
|
},
|
package/firebase-debug.log
CHANGED
|
@@ -3378,3 +3378,87 @@
|
|
|
3378
3378
|
[debug] [2025-12-14T01:51:07.966Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3379
3379
|
[debug] [2025-12-14T01:51:07.967Z] > 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"]
|
|
3380
3380
|
[debug] [2025-12-14T01:51:07.967Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3381
|
+
[debug] [2025-12-15T04:17:23.666Z] > 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"]
|
|
3382
|
+
[debug] [2025-12-15T04:17:23.667Z] > 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"]
|
|
3383
|
+
[debug] [2025-12-15T04:17:23.668Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3384
|
+
[debug] [2025-12-15T04:17:23.668Z] > 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"]
|
|
3385
|
+
[debug] [2025-12-15T04:17:23.668Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3386
|
+
[debug] [2025-12-15T04:17:23.678Z] > 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"]
|
|
3387
|
+
[debug] [2025-12-15T04:17:23.678Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3388
|
+
[debug] [2025-12-15T04:17:23.669Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3389
|
+
[debug] [2025-12-15T04:17:23.669Z] > 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"]
|
|
3390
|
+
[debug] [2025-12-15T04:17:23.670Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3391
|
+
[debug] [2025-12-15T04:17:23.681Z] > 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"]
|
|
3392
|
+
[debug] [2025-12-15T04:17:23.681Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3393
|
+
[debug] [2025-12-15T04:17:23.758Z] > 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"]
|
|
3394
|
+
[debug] [2025-12-15T04:17:23.758Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3395
|
+
[debug] [2025-12-15T04:17:23.759Z] > 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"]
|
|
3396
|
+
[debug] [2025-12-15T04:17:23.759Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3397
|
+
[debug] [2025-12-15T04:17:23.761Z] > 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"]
|
|
3398
|
+
[debug] [2025-12-15T04:17:23.761Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3399
|
+
[debug] [2025-12-15T04:17:23.762Z] > 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"]
|
|
3400
|
+
[debug] [2025-12-15T04:17:23.762Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3401
|
+
[debug] [2025-12-15T04:17:23.766Z] > 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"]
|
|
3402
|
+
[debug] [2025-12-15T04:17:23.766Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3403
|
+
[debug] [2025-12-15T04:17:23.767Z] > 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"]
|
|
3404
|
+
[debug] [2025-12-15T04:17:23.767Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3405
|
+
[debug] [2025-12-15T04:17:23.768Z] > 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"]
|
|
3406
|
+
[debug] [2025-12-15T04:17:23.768Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3407
|
+
[debug] [2025-12-15T04:17:23.769Z] > 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"]
|
|
3408
|
+
[debug] [2025-12-15T04:17:23.769Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3409
|
+
[debug] [2025-12-15T04:18:53.295Z] > 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"]
|
|
3410
|
+
[debug] [2025-12-15T04:18:53.297Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3411
|
+
[debug] [2025-12-15T04:18:53.297Z] > 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"]
|
|
3412
|
+
[debug] [2025-12-15T04:18:53.297Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3413
|
+
[debug] [2025-12-15T04:18:53.305Z] > 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"]
|
|
3414
|
+
[debug] [2025-12-15T04:18:53.306Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3415
|
+
[debug] [2025-12-15T04:18:53.357Z] > 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"]
|
|
3416
|
+
[debug] [2025-12-15T04:18:53.360Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3417
|
+
[debug] [2025-12-15T04:18:53.360Z] > 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"]
|
|
3418
|
+
[debug] [2025-12-15T04:18:53.361Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3419
|
+
[debug] [2025-12-15T04:18:53.377Z] > 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"]
|
|
3420
|
+
[debug] [2025-12-15T04:18:53.377Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3421
|
+
[debug] [2025-12-15T04:18:53.384Z] > 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"]
|
|
3422
|
+
[debug] [2025-12-15T04:18:53.384Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3423
|
+
[debug] [2025-12-15T04:18:53.385Z] > 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"]
|
|
3424
|
+
[debug] [2025-12-15T04:18:53.385Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3425
|
+
[debug] [2025-12-15T04:18:53.387Z] > 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"]
|
|
3426
|
+
[debug] [2025-12-15T04:18:53.387Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3427
|
+
[debug] [2025-12-15T04:18:53.387Z] > 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"]
|
|
3428
|
+
[debug] [2025-12-15T04:18:53.387Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3429
|
+
[debug] [2025-12-15T04:18:53.452Z] > 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"]
|
|
3430
|
+
[debug] [2025-12-15T04:18:53.452Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3431
|
+
[debug] [2025-12-15T04:18:53.453Z] > 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"]
|
|
3432
|
+
[debug] [2025-12-15T04:18:53.453Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3433
|
+
[debug] [2025-12-15T04:18:53.455Z] > 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"]
|
|
3434
|
+
[debug] [2025-12-15T04:18:53.455Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3435
|
+
[debug] [2025-12-15T04:18:53.455Z] > 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"]
|
|
3436
|
+
[debug] [2025-12-15T04:18:53.455Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3437
|
+
[debug] [2025-12-16T05:17:13.900Z] > 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"]
|
|
3438
|
+
[debug] [2025-12-16T05:17:13.902Z] > 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"]
|
|
3439
|
+
[debug] [2025-12-16T05:17:13.902Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3440
|
+
[debug] [2025-12-16T05:17:13.903Z] > 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"]
|
|
3441
|
+
[debug] [2025-12-16T05:17:13.903Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3442
|
+
[debug] [2025-12-16T05:17:13.915Z] > 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"]
|
|
3443
|
+
[debug] [2025-12-16T05:17:13.915Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3444
|
+
[debug] [2025-12-16T05:17:13.904Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3445
|
+
[debug] [2025-12-16T05:17:13.904Z] > 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"]
|
|
3446
|
+
[debug] [2025-12-16T05:17:13.905Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3447
|
+
[debug] [2025-12-16T05:17:13.920Z] > 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"]
|
|
3448
|
+
[debug] [2025-12-16T05:17:13.920Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3449
|
+
[debug] [2025-12-16T05:17:14.027Z] > 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"]
|
|
3450
|
+
[debug] [2025-12-16T05:17:14.027Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3451
|
+
[debug] [2025-12-16T05:17:14.028Z] > 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"]
|
|
3452
|
+
[debug] [2025-12-16T05:17:14.029Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3453
|
+
[debug] [2025-12-16T05:17:14.036Z] > 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"]
|
|
3454
|
+
[debug] [2025-12-16T05:17:14.036Z] > 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"]
|
|
3455
|
+
[debug] [2025-12-16T05:17:14.036Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3456
|
+
[debug] [2025-12-16T05:17:14.037Z] > 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"]
|
|
3457
|
+
[debug] [2025-12-16T05:17:14.037Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3458
|
+
[debug] [2025-12-16T05:17:14.036Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3459
|
+
[debug] [2025-12-16T05:17:14.037Z] > 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"]
|
|
3460
|
+
[debug] [2025-12-16T05:17:14.037Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3461
|
+
[debug] [2025-12-16T05:17:14.039Z] > 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"]
|
|
3462
|
+
[debug] [2025-12-16T05:17:14.040Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
|
3463
|
+
[debug] [2025-12-16T05:17:14.040Z] > 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"]
|
|
3464
|
+
[debug] [2025-12-16T05:17:14.040Z] > authorizing via signed-in user (ian.wiedenman@gmail.com)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultimate-jekyll-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.167",
|
|
4
4
|
"description": "Ultimate Jekyll dependency manager",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"bugs": {
|
|
54
54
|
"url": "https://github.com/itw-creative-works/ultimate-jekyll/issues"
|
|
55
55
|
},
|
|
56
|
-
"homepage": "https://
|
|
56
|
+
"homepage": "https://ultimate-jekyll.itwcreativeworks.com",
|
|
57
57
|
"noteDeps": {
|
|
58
58
|
"browser-sync": "2.23.7 (6-22-2023): Hard lock because every version after uses socket.io@4.7.0 which uses engine.io@6.5.0 which is incompatible with node 10.15.1 due to TextDecoder() in build process",
|
|
59
59
|
"sharp": "0.23.1 (sometime before 2021ish): Hard lock because later versions had issues. Possibly solved in higher node versions",
|