ultimate-jekyll-manager 1.0.21 → 1.0.22

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/CHANGELOG.md CHANGED
@@ -15,6 +15,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
15
15
  - `Security` in case of vulnerabilities.
16
16
 
17
17
  ---
18
+ ## [1.0.22] - 2026-04-05
19
+ ### Changed
20
+ - Bump web-manager from ^4.1.36 to ^4.1.37
21
+ - Bump dotenv from ^17.4.0 to ^17.4.1
22
+ - Bump html-validate from ^10.11.2 to ^10.11.3
23
+
18
24
  ## [1.0.21] - 2026-04-03
19
25
  ### Fixed
20
26
  - Disable cache breaker on Slapform contact form fetch to prevent appending cache-busting query params to POST request
package/TODO-themes.md ADDED
@@ -0,0 +1,34 @@
1
+ I want you to COMPLETELY REDESIGN CLASSY'S THEME. You are creating a WHIOLE NEW theme for a SaaS website.
2
+
3
+ HTML
4
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-manager/src/defaults/dist/_layouts/themes/classy/frontend/pages
5
+
6
+ INCLUDES
7
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-manager/src/defaults/dist/_includes/themes/classy
8
+
9
+ THEME JS,CSS, ETC
10
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-manager/src/assets/themes/classy
11
+
12
+
13
+ So when you make your NEW theme, you should COPY THIS STRUCTURE, but with your NEW THEME NAME
14
+
15
+ It should primarily be darkmopde, but support light mode as well. THe design should be WARM, MODERN, SIMPLE, BUT PROFESSIONAL.
16
+
17
+ For the purposes of testing this theme, you only need to make the following pages
18
+
19
+ index
20
+ pricing
21
+ signup + signin
22
+ account
23
+
24
+
25
+ Today i want you to build a new theme for our framework, ultimate jekyll.
26
+
27
+ See the consuming project which has the theme set in config
28
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-website/src/_config.yml
29
+
30
+ here is a page that uses the BLUEPRINT
31
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-website/src/pages/index.md
32
+
33
+ WHICH IS THIS
34
+ /Users/ian/Developer/Repositories/ITW-Creative-Works/ultimate-jekyll-manager/src/defaults/dist/_layouts/blueprint/index.html
package/TODO.md CHANGED
@@ -8,9 +8,12 @@ Next, we need to enable a way in the front-end and backend to enable CHANGING PL
8
8
  * what happens if the user is on a trial? can they change plans?
9
9
 
10
10
 
11
+ -------
11
12
 
12
13
 
13
14
 
15
+ -------
16
+
14
17
 
15
18
  NEW TODO
16
19
  - service working failing to load scripts??
@@ -1,8 +1,12 @@
1
1
  // Authorized Fetch - Wrapper for wonderful-fetch with Firebase Authentication
2
2
  import fetch from 'wonderful-fetch';
3
+ import webManager from 'web-manager';
3
4
 
4
5
  /**
5
- * Makes an authorized API request with Firebase token
6
+ * Makes an authorized API request with Firebase token.
7
+ * Automatically extracts usage data from bm-properties response header
8
+ * and updates webManager bindings so data-wm-bind elements stay in sync.
9
+ *
6
10
  * @param {string} url - The API endpoint URL
7
11
  * @param {Object} options - Request options for wonderful-fetch
8
12
  * @returns {Promise} - The response from the API
@@ -31,8 +35,51 @@ export async function authorizedFetch(url, options = {}) {
31
35
  requestOptions.headers['Authorization'] = `Bearer ${idToken}`;
32
36
  }
33
37
 
38
+ // Override to 'complete' so we can always read response headers
39
+ const callerWantsComplete = requestOptions.output === 'complete';
40
+ requestOptions.output = 'complete';
41
+
34
42
  // Make the request using wonderful-fetch
35
- return fetch(url, requestOptions);
43
+ const response = await fetch(url, requestOptions);
44
+
45
+ // Sync usage from bm-properties header into bindings
46
+ _syncUsageFromHeaders(response.headers);
47
+
48
+ // Return full response if caller requested it, otherwise just the body
49
+ return callerWantsComplete ? response : response.body;
50
+ }
51
+
52
+ /**
53
+ * Sync usage data from bm-properties response header into the top-level
54
+ * `usage` bindings key (same key web-manager seeds on auth settle).
55
+ *
56
+ * Merges fresh usage counters + limits so the structure becomes:
57
+ * { credits: { monthly: 5, daily: 2, limit: 100 } }
58
+ */
59
+ function _syncUsageFromHeaders(headers) {
60
+ const bmProps = headers?.['bm-properties'];
61
+ if (!bmProps?.usage) {
62
+ return;
63
+ }
64
+
65
+ const { current, limits } = bmProps.usage;
66
+ if (!current) {
67
+ return;
68
+ }
69
+
70
+ // Get existing usage context and merge fresh data
71
+ const existing = webManager.bindings().getContext().usage || {};
72
+ const usage = { ...existing };
73
+
74
+ for (const key of Object.keys(current)) {
75
+ usage[key] = {
76
+ ...existing[key],
77
+ ...current[key],
78
+ limit: limits?.[key] || 0,
79
+ };
80
+ }
81
+
82
+ webManager.bindings().update({ usage });
36
83
  }
37
84
 
38
85
  // Export default
@@ -3,6 +3,7 @@ import { state, buildBindingsState } from './modules/state.js';
3
3
  import { trackPurchaseIfNeeded } from './modules/tracking.js';
4
4
  import { triggerCelebration } from './modules/celebration.js';
5
5
  import webManager from 'web-manager';
6
+
6
7
  /* Test URL
7
8
  https://localhost:3000/payment/confirmation?orderId=ORD-TRIAL-123&productId=pro&productName=Pro%20Plan&amount=0&currency=USD&frequency=annually&paymentMethod=stripe&trial=true&track=true
8
9
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultimate-jekyll-manager",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "Ultimate Jekyll dependency manager",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -78,7 +78,7 @@
78
78
  "chart.js": "^4.5.1",
79
79
  "cheerio": "^1.2.0",
80
80
  "chrome-launcher": "^1.2.1",
81
- "dotenv": "^17.4.0",
81
+ "dotenv": "^17.4.1",
82
82
  "fast-xml-parser": "^5.5.10",
83
83
  "fs-jetpack": "^5.1.0",
84
84
  "glob": "^13.0.6",
@@ -89,7 +89,7 @@
89
89
  "gulp-responsive-modern": "^1.0.0",
90
90
  "gulp-sass": "^6.0.1",
91
91
  "html-minifier-terser": "^7.2.0",
92
- "html-validate": "^10.11.2",
92
+ "html-validate": "^10.11.3",
93
93
  "itwcw-package-analytics": "^1.0.8",
94
94
  "js-yaml": "^4.1.1",
95
95
  "json5": "^2.2.3",
@@ -104,7 +104,7 @@
104
104
  "sass": "^1.99.0",
105
105
  "spellchecker": "^3.7.1",
106
106
  "through2": "^4.0.2",
107
- "web-manager": "^4.1.36",
107
+ "web-manager": "^4.1.37",
108
108
  "webpack": "^5.105.4",
109
109
  "wonderful-fetch": "^2.0.4",
110
110
  "wonderful-version": "^1.3.2",