Skip to content

Commit 698736e

Browse files
Docs: add integrity to importmap configuration
1 parent 7f53421 commit 698736e

File tree

7 files changed

+45
-10
lines changed

7 files changed

+45
-10
lines changed

build/generate-sri.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ const files = [
3636
{
3737
file: 'dist/js/bootstrap.bundle.min.js',
3838
configPropertyName: 'js_bundle_hash'
39+
},
40+
{
41+
file: 'node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js',
42+
configPropertyName: 'floating_ui_esm_hash'
43+
},
44+
{
45+
file: 'node_modules/vanilla-calendar-pro/index.mjs',
46+
configPropertyName: 'vanilla_calendar_pro_esm_hash'
3947
}
4048
]
4149

config.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,16 @@ download:
3434

3535
cdn:
3636
# See https://www.srihash.org for info on how to generate the hashes
37-
css: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/css/bootstrap.min.css"
38-
css_hash: "sha384-TDmpFhAO5TwSQwPF95I/odgwpTUuv0aaVm9/0fL7b+kKe7hFBp/+9cBCMkydgGOi"
39-
js: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/js/bootstrap.min.js"
40-
js_hash: "sha384-Php492snRLTR5p+hMyxpV6gYwp1avWXn4AaX31MgANrvsjr9Dpodl3Nw60L7Pewl"
41-
js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/js/bootstrap.bundle.min.js"
42-
js_bundle_hash: "sha384-I2J4jlw924JZXHU9un9Mcuixq/rKhd5A8/B1NQ6ifPAiBFacZjwNcec8d6L38jQv"
43-
floating_ui_esm: "https://cdn.jsdelivr.net/npm/@floating-ui/dom@1.7.6/dist/floating-ui.dom.esm.min.js"
44-
vanilla_calendar_pro_esm: "https://cdn.jsdelivr.net/npm/vanilla-calendar-pro@3.1.0/index.mjs"
37+
css: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/css/bootstrap.min.css"
38+
css_hash: "sha384-TDmpFhAO5TwSQwPF95I/odgwpTUuv0aaVm9/0fL7b+kKe7hFBp/+9cBCMkydgGOi"
39+
js: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/js/bootstrap.min.js"
40+
js_hash: "sha384-Php492snRLTR5p+hMyxpV6gYwp1avWXn4AaX31MgANrvsjr9Dpodl3Nw60L7Pewl"
41+
js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@6.0.0-alpha1/dist/js/bootstrap.bundle.min.js"
42+
js_bundle_hash: "sha384-I2J4jlw924JZXHU9un9Mcuixq/rKhd5A8/B1NQ6ifPAiBFacZjwNcec8d6L38jQv"
43+
floating_ui_esm: "https://cdn.jsdelivr.net/npm/@floating-ui/dom@1.7.6/dist/floating-ui.dom.esm.js"
44+
floating_ui_esm_hash: "sha384-xovEHHpm3FhkiFUAGz5wPlJL39EW6cK9oRkwHaIjtGaw0nF5RtjHWV6oJB+tNbc2"
45+
vanilla_calendar_pro_esm: "https://cdn.jsdelivr.net/npm/vanilla-calendar-pro@3.1.0/index.mjs"
46+
vanilla_calendar_pro_esm_hash: "sha384-5quhKh5ILxed/sN+sno/4zf+ksFY5P4ekIM5SnguE49mgszu8obwGevh7IUEV3rm"
4547

4648
anchors:
4749
min: 2

site/src/content/docs/customize/rtl.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ Here's a modified RTL starter template:
9999
"imports": {
100100
"@floating-ui/dom": "[[config:cdn.floating_ui_esm]]",
101101
"vanilla-calendar-pro": "[[config:cdn.vanilla_calendar_pro_esm]]"
102+
},
103+
"integrity": {
104+
"[[config:cdn.floating_ui_esm]]": "[[config:floating_ui_esm_hash]]",
105+
"[[config:cdn.vanilla_calendar_pro_esm]]": "[[config:vanilla_calendar_pro_esm_hash]]"
102106
}
103107
}
104108
</script>

site/src/content/docs/getting-started/install.mdx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ If you prefer to include Floating UI and Vanilla Calendar Pro separately instead
9797
"imports": {
9898
"@floating-ui/dom": "[[config:cdn.floating_ui_esm]]",
9999
"vanilla-calendar-pro": "[[config:cdn.vanilla_calendar_pro_esm]]"
100+
},
101+
"integrity": {
102+
"[[config:cdn.floating_ui_esm]]": "[[config:cdn.floating_ui_esm_hash]]",
103+
"[[config:cdn.vanilla_calendar_pro_esm]]": "[[config:cdn.vanilla_calendar_pro_esm_hash]]"
100104
}
101105
}
102106
</script>
@@ -108,8 +112,14 @@ If you prefer to include Floating UI and Vanilla Calendar Pro separately instead
108112
| --- | --- |
109113
| CSS | [`[[config:cdn.css]]`]([[config:cdn.css]]) |
110114
| JS bundle (with Floating UI and Vanilla Calendar Pro) | [`[[config:cdn.js_bundle]]`]([[config:cdn.js_bundle]]) |
115+
| Floating UI ESM | [`[[config:cdn.floating_ui_esm]]`]([[config:cdn.floating_ui_esm]]) |
116+
| Vanilla Calendar Pro ESM | [`[[config:cdn.vanilla_calendar_pro_esm]]`]([[config:cdn.vanilla_calendar_pro_esm]]) |
111117
</BsTable>
112118

119+
<Callout>
120+
JS Delivr also provides a minified ESM version of Floating UI, but it can't be used with the integrity attribute.
121+
</Callout>
122+
113123
### Using CDNs
114124

115125
You can also use the CDN to fetch any of our additional builds.

site/src/content/docs/getting-started/javascript.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,12 @@ Using ESM in the browser requires full paths or an [import map](https://develope
8484
"imports": {
8585
"@floating-ui/dom": "[[config:cdn.floating_ui_esm]]",
8686
"vanilla-calendar-pro": "[[config:cdn.vanilla_calendar_pro_esm]]",
87-
"bootstrap": "https://cdn.jsdelivr.net/npm/bootstrap@[[config:current_version]]/dist/js/bootstrap.min.js"
87+
"bootstrap": "[[config:cdn.js]]"
88+
},
89+
"integrity": {
90+
"[[config:cdn.floating_ui_esm]]": "[[config:cdn.floating_ui_esm_hash]]",
91+
"[[config:cdn.vanilla_calendar_pro_esm]]": "[[config:cdn.vanilla_calendar_pro_esm_hash]]"
92+
"[[config:cdn.js]]": "[[config:cdn.js_hash]]"
8893
}
8994
}
9095
</script>

site/src/content/docs/guides/quickstart.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ Get started using Bootstrap in seconds by including our production-ready CSS and
5151
"imports": {
5252
"@floating-ui/dom": "[[config:cdn.floating_ui_esm]]",
5353
"vanilla-calendar-pro": "[[config:cdn.vanilla_calendar_pro_esm]]"
54+
},
55+
"integrity": {
56+
"[[config:cdn.floating_ui_esm]]": "[[config:cdn.floating_ui_esm_hash]]",
57+
"[[config:cdn.vanilla_calendar_pro_esm]]": "[[config:cdn.vanilla_calendar_pro_esm_hash]]"
5458
}
5559
}
5660
</script>

site/src/libs/config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ const configSchema = z.object({
2828
js_bundle: z.string().url(),
2929
js_bundle_hash: z.string(),
3030
floating_ui_esm: z.string().url(),
31-
vanilla_calendar_pro_esm: z.string().url()
31+
floating_ui_esm_hash: z.string(),
32+
vanilla_calendar_pro_esm: z.string().url(),
33+
vanilla_calendar_pro_esm_hash: z.string()
3234
}),
3335
current_version: zVersionSemver,
3436
current_ruby_version: zVersionSemver,

0 commit comments

Comments
 (0)