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.
@@ -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 fetch from 'wonderful-fetch';
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 fetch(stateParsed.serverUrl, {
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
+ }
@@ -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://template.itwcreativeworks.com';
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
@@ -91,6 +91,7 @@
91
91
  <!-- Configuration -->
92
92
  <script type="text/javascript">
93
93
  var Configuration = {
94
+ runtime: "web",
94
95
  environment: "{{ jekyll.environment }}",
95
96
  buildTime: {{ site.uj.cache_breaker }},
96
97
  brand: {{ page.resolved.brand | jsonify }},
@@ -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 }}
@@ -0,0 +1,7 @@
1
+ ---
2
+ ### ALL PAGES ###
3
+ layout: blueprint/auth/token
4
+ permalink: /token
5
+
6
+ ### REGULAR PAGES ###
7
+ ---
@@ -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
- const htmlFilePath = path.join(file.destination, `${name}.html`);
49
- const mdFilePath = path.join(file.destination, `${name}.md`);
50
- const jsonFilePath = path.join(file.destination, `${name}.json`);
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 any of the files exist
81
+ // Skip if consuming project has an equivalent file in src/
57
82
  return anyExists;
58
83
  },
59
84
  },
@@ -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.165",
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://template.itwcreativeworks.com",
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",