whop 1.0.4 → 1.0.5
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.
- checksums.yaml +4 -4
- data/README.md +6 -1
- data/lib/whop/iframe_helper.rb +26 -1
- data/lib/whop/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ba25e2187ff6be4ded65c7b7a17cc1d3ab7d450a962929fbc4f487042f51481e
|
|
4
|
+
data.tar.gz: 88877e474fc48d922a48f0876b2c754f2dcc7cae7ee1b81bc44ad3a233ba16ec
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ac76a99d56ef1a6555d9d07b44470a0f0811ae0729b57b56762c99ef435c06489bc0504787dfe4f18b1af83bf6d9942337f9e26cf24f5538e31e3d731e9e328
|
|
7
|
+
data.tar.gz: b67aad3ba1659706a4ba9a09c94c998bd78569ff577f8b208d5f76265e4c0617142a88de68a3a7ebedb313f06164e7e2329f703996caaa300f450a9f64e48a22
|
data/README.md
CHANGED
|
@@ -118,13 +118,18 @@ curl -i -X POST http://localhost:3000/whop/webhooks \
|
|
|
118
118
|
## Using the client
|
|
119
119
|
# Frontend (iframe) helper
|
|
120
120
|
|
|
121
|
-
Add the SDK tags in your layout head:
|
|
121
|
+
Add the SDK tags in your layout head (includes UMD + ESM fallback and turbo:load re-init):
|
|
122
122
|
|
|
123
123
|
```erb
|
|
124
124
|
<%= extend(Whop::IframeHelper) && whop_iframe_sdk_tags %>
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
Ensure your CSP allows Whop domains; the installer adds `config/initializers/whop_iframe.rb` with sensible defaults (script/connect/frame to unpkg.com, esm.sh, whop.com/*).
|
|
128
|
+
If you prefer not to expose `WHOP_APP_ID` to the layout, add it to body:
|
|
129
|
+
|
|
130
|
+
```erb
|
|
131
|
+
<body data-whop-app-id="<%= ENV['WHOP_APP_ID'] %>">
|
|
132
|
+
```
|
|
128
133
|
|
|
129
134
|
|
|
130
135
|
```ruby
|
data/lib/whop/iframe_helper.rb
CHANGED
|
@@ -44,7 +44,32 @@ module Whop
|
|
|
44
44
|
})();
|
|
45
45
|
JS
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
# ESM fallback: if iframeSdk wasn't created by UMD, import from esm.sh and init on DOM load and Turbo
|
|
48
|
+
module_bootstrap = <<~JS
|
|
49
|
+
(function(){
|
|
50
|
+
function _init() {
|
|
51
|
+
try {
|
|
52
|
+
if (window.iframeSdk) return;
|
|
53
|
+
var appId = document.body && document.body.dataset && document.body.dataset.whopAppId || #{resolved_app_id.to_s.strip.empty? ? '""' : ERB::Util.html_escape(resolved_app_id).inspect};
|
|
54
|
+
if (!appId) return;
|
|
55
|
+
import("https://esm.sh/@whop/iframe@latest").then(function(mod){
|
|
56
|
+
var create = mod && (mod.createSdk || mod.default && mod.default.createSdk);
|
|
57
|
+
if (typeof create === "function" && !window.iframeSdk) {
|
|
58
|
+
window.iframeSdk = create({ appId: appId });
|
|
59
|
+
}
|
|
60
|
+
}).catch(function(){});
|
|
61
|
+
} catch(e) {}
|
|
62
|
+
}
|
|
63
|
+
if (document.readyState === "loading") {
|
|
64
|
+
document.addEventListener("DOMContentLoaded", _init);
|
|
65
|
+
} else {
|
|
66
|
+
_init();
|
|
67
|
+
}
|
|
68
|
+
window.addEventListener && window.addEventListener("turbo:load", _init);
|
|
69
|
+
})();
|
|
70
|
+
JS
|
|
71
|
+
|
|
72
|
+
html = %Q(<script src="https://unpkg.com/@whop/iframe@latest"#{nonce_attr}></script>\n<script#{nonce_attr}>#{init.strip}</script>\n<script type="module"#{nonce_attr}>#{module_bootstrap.strip}</script>)
|
|
48
73
|
html.respond_to?(:html_safe) ? html.html_safe : html
|
|
49
74
|
end
|
|
50
75
|
end
|
data/lib/whop/version.rb
CHANGED