@firebase/util 1.11.0-firebase-studio-sdk-integration.927daddb8 → 1.11.0-firebase-studio-sdk-integration.a528caf5f
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/dist/index.cjs.js +125 -60
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm2017.js +125 -60
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.node.cjs.js +125 -60
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/node-esm/index.node.esm.js +125 -60
- package/dist/node-esm/index.node.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -671,6 +671,41 @@ class Deferred {
|
|
|
671
671
|
}
|
|
672
672
|
}
|
|
673
673
|
|
|
674
|
+
/**
|
|
675
|
+
* @license
|
|
676
|
+
* Copyright 2025 Google LLC
|
|
677
|
+
*
|
|
678
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
679
|
+
* you may not use this file except in compliance with the License.
|
|
680
|
+
* You may obtain a copy of the License at
|
|
681
|
+
*
|
|
682
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
683
|
+
*
|
|
684
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
685
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
686
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
687
|
+
* See the License for the specific language governing permissions and
|
|
688
|
+
* limitations under the License.
|
|
689
|
+
*/
|
|
690
|
+
/**
|
|
691
|
+
* Checks whether host is a cloud workstation or not.
|
|
692
|
+
* @public
|
|
693
|
+
*/
|
|
694
|
+
function isCloudWorkstation(host) {
|
|
695
|
+
return host.endsWith('.cloudworkstations.dev');
|
|
696
|
+
}
|
|
697
|
+
/**
|
|
698
|
+
* Makes a fetch request to the given server.
|
|
699
|
+
* Mostly used for forwarding cookies in Firebase Studio.
|
|
700
|
+
* @public
|
|
701
|
+
*/
|
|
702
|
+
async function pingServer(endpoint) {
|
|
703
|
+
const result = await fetch(endpoint, {
|
|
704
|
+
credentials: 'include'
|
|
705
|
+
});
|
|
706
|
+
return result.ok;
|
|
707
|
+
}
|
|
708
|
+
|
|
674
709
|
/**
|
|
675
710
|
* @license
|
|
676
711
|
* Copyright 2021 Google LLC
|
|
@@ -743,6 +778,7 @@ function getOrCreateEl(id) {
|
|
|
743
778
|
}
|
|
744
779
|
return { created, element: parentDiv };
|
|
745
780
|
}
|
|
781
|
+
let previouslyDismissed = false;
|
|
746
782
|
/**
|
|
747
783
|
* Updates Emulator Banner. Primarily used for Firebase Studio
|
|
748
784
|
* @param name
|
|
@@ -752,10 +788,16 @@ function getOrCreateEl(id) {
|
|
|
752
788
|
function updateEmulatorBanner(name, isRunningEmulator) {
|
|
753
789
|
if (typeof window === 'undefined' ||
|
|
754
790
|
typeof document === 'undefined' ||
|
|
755
|
-
|
|
791
|
+
!isCloudWorkstation(window.location.host) ||
|
|
792
|
+
emulatorStatus[name] === isRunningEmulator ||
|
|
793
|
+
emulatorStatus[name] || // If already set to use emulator, can't go back to prod.
|
|
794
|
+
previouslyDismissed) {
|
|
756
795
|
return;
|
|
757
796
|
}
|
|
758
797
|
emulatorStatus[name] = isRunningEmulator;
|
|
798
|
+
function prefixedId(id) {
|
|
799
|
+
return `__firebase__banner__${id}`;
|
|
800
|
+
}
|
|
759
801
|
const bannerId = '__firebase__banner';
|
|
760
802
|
const summary = getEmulatorSummary();
|
|
761
803
|
const showError = summary.prod.length > 0;
|
|
@@ -765,40 +807,98 @@ function updateEmulatorBanner(name, isRunningEmulator) {
|
|
|
765
807
|
element.remove();
|
|
766
808
|
}
|
|
767
809
|
}
|
|
810
|
+
function setupBannerStyles(bannerEl) {
|
|
811
|
+
bannerEl.style.display = 'flex';
|
|
812
|
+
bannerEl.style.background = '#7faaf0';
|
|
813
|
+
bannerEl.style.position = 'absolute';
|
|
814
|
+
bannerEl.style.bottom = '5px';
|
|
815
|
+
bannerEl.style.left = '5px';
|
|
816
|
+
bannerEl.style.padding = '.5em';
|
|
817
|
+
bannerEl.style.borderRadius = '5px';
|
|
818
|
+
bannerEl.style.alignContent = 'center';
|
|
819
|
+
}
|
|
820
|
+
function setupIconStyles(prependIcon, iconId) {
|
|
821
|
+
prependIcon.setAttribute('width', '24');
|
|
822
|
+
prependIcon.setAttribute('id', iconId);
|
|
823
|
+
prependIcon.setAttribute('height', '24');
|
|
824
|
+
prependIcon.setAttribute('viewBox', '0 0 24 24');
|
|
825
|
+
prependIcon.setAttribute('fill', 'none');
|
|
826
|
+
prependIcon.style.marginLeft = '-6px';
|
|
827
|
+
}
|
|
828
|
+
function setupCloseBtn() {
|
|
829
|
+
const closeBtn = document.createElement('span');
|
|
830
|
+
closeBtn.style.cursor = 'pointer';
|
|
831
|
+
closeBtn.style.paddingLeft = '5px';
|
|
832
|
+
closeBtn.innerHTML = ' ×';
|
|
833
|
+
closeBtn.onclick = () => {
|
|
834
|
+
previouslyDismissed = true;
|
|
835
|
+
tearDown();
|
|
836
|
+
};
|
|
837
|
+
return closeBtn;
|
|
838
|
+
}
|
|
839
|
+
function setupLinkStyles(learnMoreLink, learnMoreId) {
|
|
840
|
+
learnMoreLink.setAttribute('id', learnMoreId);
|
|
841
|
+
learnMoreLink.innerText = 'Learn more';
|
|
842
|
+
learnMoreLink.href =
|
|
843
|
+
'http://firebase.google.com/docs/studio/deploy-app#emulator ';
|
|
844
|
+
learnMoreLink.setAttribute('target', '__blank');
|
|
845
|
+
learnMoreLink.style.paddingLeft = '5px';
|
|
846
|
+
}
|
|
847
|
+
function setupOpenExternal(svgElement, id) {
|
|
848
|
+
svgElement.setAttribute('viewBox', '0 0 16 16');
|
|
849
|
+
svgElement.setAttribute('fill', 'none');
|
|
850
|
+
svgElement.setAttribute('id', id);
|
|
851
|
+
svgElement.style.width = '16px';
|
|
852
|
+
svgElement.style.marginLeft = '4px';
|
|
853
|
+
svgElement.innerHTML = `<path fill-rule="evenodd" clip-rule="evenodd" d="M12.6667 12.6667H3.33333V3.33333H8V2H3.33333C2.59333 2 2 2.6 2 3.33333V12.6667C2 13.4 2.59333 14 3.33333 14H12.6667C13.4 14 14 13.4 14 12.6667V8H12.6667V12.6667ZM9.33333 2V3.33333H11.7267L5.17333 9.88667L6.11333 10.8267L12.6667 4.27333V6.66667H14V2H9.33333Z" fill="#212121"/>`;
|
|
854
|
+
}
|
|
768
855
|
function setupDom() {
|
|
769
856
|
const banner = getOrCreateEl(bannerId);
|
|
770
|
-
const
|
|
771
|
-
|
|
857
|
+
const firebaseTextId = prefixedId('text');
|
|
858
|
+
const firebaseText = document.getElementById(firebaseTextId) || document.createElement('span');
|
|
859
|
+
const learnMoreId = prefixedId('learnmore');
|
|
860
|
+
const learnMoreLink = document.getElementById(learnMoreId) ||
|
|
861
|
+
document.createElement('a');
|
|
862
|
+
const prependIconId = prefixedId('preprendIcon');
|
|
863
|
+
const prependIcon = document.getElementById(prependIconId) ||
|
|
864
|
+
document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
865
|
+
const openExternalIconId = prefixedId('openexternal');
|
|
866
|
+
const openExternalIcon = document.getElementById(openExternalIconId) ||
|
|
867
|
+
document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
772
868
|
if (banner.created) {
|
|
773
869
|
// update styles
|
|
774
870
|
const bannerEl = banner.element;
|
|
775
|
-
bannerEl
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
bannerEl.
|
|
781
|
-
bannerEl.style.borderRadius = '5px';
|
|
782
|
-
bannerEl.style.alignContent = 'center';
|
|
783
|
-
const closeBtn = document.createElement('span');
|
|
784
|
-
closeBtn.style.cursor = 'pointer';
|
|
785
|
-
closeBtn.style.paddingLeft = '5px';
|
|
786
|
-
closeBtn.innerHTML = ' ×';
|
|
787
|
-
closeBtn.onclick = () => {
|
|
788
|
-
tearDown();
|
|
789
|
-
};
|
|
790
|
-
bannerEl.appendChild(firebaseText);
|
|
791
|
-
bannerEl.appendChild(closeBtn);
|
|
871
|
+
setupBannerStyles(bannerEl);
|
|
872
|
+
setupLinkStyles(learnMoreLink, learnMoreId);
|
|
873
|
+
setupOpenExternal(openExternalIcon, openExternalIconId);
|
|
874
|
+
const closeBtn = setupCloseBtn();
|
|
875
|
+
setupIconStyles(prependIcon, prependIconId);
|
|
876
|
+
bannerEl.append(prependIcon, firebaseText, learnMoreLink, openExternalIcon, closeBtn);
|
|
792
877
|
document.body.appendChild(bannerEl);
|
|
793
878
|
}
|
|
794
879
|
if (showError) {
|
|
795
|
-
|
|
796
|
-
|
|
880
|
+
firebaseText.innerText = `Not using emulated backend.`;
|
|
881
|
+
prependIcon.innerHTML = `<g clip-path="url(#clip0_6013_33858)">
|
|
882
|
+
<path d="M4.8 17.6L12 5.6L19.2 17.6H4.8ZM6.91667 16.4H17.0833L12 7.93333L6.91667 16.4ZM12 15.6C12.1667 15.6 12.3056 15.5444 12.4167 15.4333C12.5389 15.3111 12.6 15.1667 12.6 15C12.6 14.8333 12.5389 14.6944 12.4167 14.5833C12.3056 14.4611 12.1667 14.4 12 14.4C11.8333 14.4 11.6889 14.4611 11.5667 14.5833C11.4556 14.6944 11.4 14.8333 11.4 15C11.4 15.1667 11.4556 15.3111 11.5667 15.4333C11.6889 15.5444 11.8333 15.6 12 15.6ZM11.4 13.6H12.6V10.4H11.4V13.6Z" fill="#212121"/>
|
|
883
|
+
</g>
|
|
884
|
+
<defs>
|
|
885
|
+
<clipPath id="clip0_6013_33858">
|
|
886
|
+
<rect width="24" height="24" fill="white"/>
|
|
887
|
+
</clipPath>
|
|
888
|
+
</defs>`;
|
|
797
889
|
}
|
|
798
890
|
else {
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
891
|
+
prependIcon.innerHTML = `<g clip-path="url(#clip0_6083_34804)">
|
|
892
|
+
<path d="M11.4 15.2H12.6V11.2H11.4V15.2ZM12 10C12.1667 10 12.3056 9.94444 12.4167 9.83333C12.5389 9.71111 12.6 9.56667 12.6 9.4C12.6 9.23333 12.5389 9.09444 12.4167 8.98333C12.3056 8.86111 12.1667 8.8 12 8.8C11.8333 8.8 11.6889 8.86111 11.5667 8.98333C11.4556 9.09444 11.4 9.23333 11.4 9.4C11.4 9.56667 11.4556 9.71111 11.5667 9.83333C11.6889 9.94444 11.8333 10 12 10ZM12 18.4C11.1222 18.4 10.2944 18.2333 9.51667 17.9C8.73889 17.5667 8.05556 17.1111 7.46667 16.5333C6.88889 15.9444 6.43333 15.2611 6.1 14.4833C5.76667 13.7056 5.6 12.8778 5.6 12C5.6 11.1111 5.76667 10.2833 6.1 9.51667C6.43333 8.73889 6.88889 8.06111 7.46667 7.48333C8.05556 6.89444 8.73889 6.43333 9.51667 6.1C10.2944 5.76667 11.1222 5.6 12 5.6C12.8889 5.6 13.7167 5.76667 14.4833 6.1C15.2611 6.43333 15.9389 6.89444 16.5167 7.48333C17.1056 8.06111 17.5667 8.73889 17.9 9.51667C18.2333 10.2833 18.4 11.1111 18.4 12C18.4 12.8778 18.2333 13.7056 17.9 14.4833C17.5667 15.2611 17.1056 15.9444 16.5167 16.5333C15.9389 17.1111 15.2611 17.5667 14.4833 17.9C13.7167 18.2333 12.8889 18.4 12 18.4ZM12 17.2C13.4444 17.2 14.6722 16.6944 15.6833 15.6833C16.6944 14.6722 17.2 13.4444 17.2 12C17.2 10.5556 16.6944 9.32778 15.6833 8.31667C14.6722 7.30555 13.4444 6.8 12 6.8C10.5556 6.8 9.32778 7.30555 8.31667 8.31667C7.30556 9.32778 6.8 10.5556 6.8 12C6.8 13.4444 7.30556 14.6722 8.31667 15.6833C9.32778 16.6944 10.5556 17.2 12 17.2Z" fill="#212121"/>
|
|
893
|
+
</g>
|
|
894
|
+
<defs>
|
|
895
|
+
<clipPath id="clip0_6083_34804">
|
|
896
|
+
<rect width="24" height="24" fill="white"/>
|
|
897
|
+
</clipPath>
|
|
898
|
+
</defs>`;
|
|
899
|
+
firebaseText.innerText = 'Using emulated backend';
|
|
900
|
+
}
|
|
901
|
+
firebaseText.setAttribute('id', firebaseTextId);
|
|
802
902
|
}
|
|
803
903
|
if (document.readyState === 'loading') {
|
|
804
904
|
window.addEventListener('DOMContentLoaded', setupDom);
|
|
@@ -2200,41 +2300,6 @@ function getModularInstance(service) {
|
|
|
2200
2300
|
}
|
|
2201
2301
|
}
|
|
2202
2302
|
|
|
2203
|
-
/**
|
|
2204
|
-
* @license
|
|
2205
|
-
* Copyright 2025 Google LLC
|
|
2206
|
-
*
|
|
2207
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2208
|
-
* you may not use this file except in compliance with the License.
|
|
2209
|
-
* You may obtain a copy of the License at
|
|
2210
|
-
*
|
|
2211
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2212
|
-
*
|
|
2213
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
2214
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2215
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2216
|
-
* See the License for the specific language governing permissions and
|
|
2217
|
-
* limitations under the License.
|
|
2218
|
-
*/
|
|
2219
|
-
/**
|
|
2220
|
-
* Checks whether host is a cloud workstation or not.
|
|
2221
|
-
* @public
|
|
2222
|
-
*/
|
|
2223
|
-
function isCloudWorkstation(host) {
|
|
2224
|
-
return host.endsWith('.cloudworkstations.dev');
|
|
2225
|
-
}
|
|
2226
|
-
/**
|
|
2227
|
-
* Makes a fetch request to the given server.
|
|
2228
|
-
* Mostly used for forwarding cookies in Firebase Studio.
|
|
2229
|
-
* @public
|
|
2230
|
-
*/
|
|
2231
|
-
async function pingServer(endpoint) {
|
|
2232
|
-
const result = await fetch(endpoint, {
|
|
2233
|
-
credentials: 'include'
|
|
2234
|
-
});
|
|
2235
|
-
return result.ok;
|
|
2236
|
-
}
|
|
2237
|
-
|
|
2238
2303
|
exports.CONSTANTS = CONSTANTS;
|
|
2239
2304
|
exports.DecodeBase64StringError = DecodeBase64StringError;
|
|
2240
2305
|
exports.Deferred = Deferred;
|