@storybook/telemetry 7.0.0-alpha.46 → 7.0.0-alpha.48

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.d.ts CHANGED
@@ -910,7 +910,6 @@ interface CoreCommon_StoryIndex {
910
910
  interface CoreCommon_StoryIndexer {
911
911
  test: RegExp;
912
912
  indexer: (fileName: string, options: CoreCommon_IndexerOptions) => Promise<CoreCommon_StoryIndex>;
913
- addDocsTemplate?: boolean;
914
913
  }
915
914
  /**
916
915
  * Options for TypeScript usage within Storybook.
@@ -971,9 +970,10 @@ declare type DocsOptions = {
971
970
  */
972
971
  defaultName?: string;
973
972
  /**
974
- * Should we generate a docs entry per CSF file?
973
+ * Should we generate a docs entry per CSF file with the `docsPage` tag?
974
+ * Set to 'automatic' to generate an entry irrespective of tag.
975
975
  */
976
- docsPage?: boolean;
976
+ docsPage?: boolean | 'automatic';
977
977
  /**
978
978
  * Only show doc entries in the side bar (usually set with the `--docs` CLI flag)
979
979
  */
@@ -1111,14 +1111,12 @@ declare type StorybookMetadata = {
1111
1111
  storybookVersion: string;
1112
1112
  generatedAt?: number;
1113
1113
  language: 'typescript' | 'javascript';
1114
- framework: {
1114
+ framework?: {
1115
1115
  name: string;
1116
1116
  options?: any;
1117
1117
  };
1118
- builder?: {
1119
- name: string;
1120
- options?: Record<string, any>;
1121
- };
1118
+ builder?: string;
1119
+ renderer?: string;
1122
1120
  monorepo?: MonorepoType;
1123
1121
  packageManager?: {
1124
1122
  type: PM;
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var se=Object.create;var d=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var ye=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var me=(e,t)=>{for(var r in t)d(e,r,{get:t[r],enumerable:!0})},C=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of ce(t))!pe.call(e,a)&&a!==r&&d(e,a,{get:()=>t[a],enumerable:!(n=ie(t,a))||n.enumerable});return e};var p=(e,t,r)=>(r=e!=null?se(ye(e)):{},C(t||!e||!e.__esModule?d(r,"default",{value:e,enumerable:!0}):r,e)),le=e=>C(d({},"__esModule",{value:!0}),e);var be={};me(be,{computeStorybookMetadata:()=>U,getStorybookMetadata:()=>E,metaFrameworks:()=>D,sanitizeAddonName:()=>T,telemetry:()=>ke});module.exports=le(be);var I=require("@storybook/client-logger");var z=p(require("read-pkg-up")),h=require("detect-package-manager"),m=require("@storybook/core-common");var F=p(require("path")),x=async e=>{let t=Object.keys(e);return Promise.all(t.map(S))},S=async e=>{try{let t=require(F.default.join(e,"package.json"));return{name:e,version:t.version}}catch{return{name:e,version:null}}};var g=p(require("fs-extra")),u=p(require("path")),W=require("@storybook/core-common"),L={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},Y=()=>{let e=(0,W.getProjectRoot)();if(!e)return;let r=Object.keys(L).find(a=>{let s=u.default.join(e,L[a]);return g.default.existsSync(s)});if(r)return r;if(!g.default.existsSync(u.default.join(e,"package.json")))return;let n=g.default.readJsonSync(u.default.join(e,"package.json"));if(n!=null&&n.workspaces)return"Workspaces"};var v=require("path");function _(e){return e.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function O(e,t=v.sep){if(!e)return e;let r=process.cwd().split(t);for(;r.length>1;){let n=r.join(t),a=new RegExp(_(n),"g");e=e.replace(a,"$SNIP");let s=r.join(t+t),c=new RegExp(_(s),"g");e=e.replace(c,"$SNIP"),r.pop()}return e}function k(e,t=v.sep){e=JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)));let r=O(JSON.stringify(e),t);return JSON.parse(r)}var D={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"svelte-kit"},fe=e=>{let t=["angular","ember","html","preact","react","server","svelte","vue","vue3","webComponents"].map(r=>`${r}Options`);for(let r of t)if(r in e)return e[r]},T=e=>O(e).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),U=async({packageJson:e,mainConfig:t})=>{var $,V;let r={generatedAt:new Date().getTime(),builder:{name:"webpack5"},hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},n={...e==null?void 0:e.dependencies,...e==null?void 0:e.devDependencies,...e==null?void 0:e.peerDependencies},a=Object.keys(n).find(o=>!!D[o]);if(a){let{version:o}=await S(a);r.metaFramework={name:D[a],packageName:a,version:o}}let s=Y();s&&(r.monorepo=s);try{let o=await(0,h.detect)({cwd:(0,m.getProjectRoot)()}),i=await(0,h.getNpmVersion)(o);r.packageManager={type:o,version:i}}catch{}if(r.hasCustomBabel=!!t.babel,r.hasCustomWebpack=!!t.webpackFinal,r.hasStaticDirs=!!t.staticDirs,t.typescript&&(r.typescriptOptions=t.typescript),($=t.core)!=null&&$.builder){let{builder:o}=t.core;r.builder={name:typeof o=="string"?o:o.name,options:typeof o=="string"?void 0:(o==null?void 0:o.options)??void 0}}t.refs&&(r.refCount=Object.keys(t.refs).length),t.features&&(r.features=t.features);let c={};t.addons&&t.addons.forEach(o=>{let i,B;typeof o=="string"?i=T(o):(B=o.options,i=T(o.name)),c[i]={options:B,version:void 0}}),(await x(c)).forEach(({name:o,version:i})=>{c[o].version=i});let l=Object.keys(c),y=Object.keys(n).filter(o=>o.includes("storybook")&&!l.includes(o)).reduce((o,i)=>({...o,[i]:{version:void 0}}),{});(await x(y)).forEach(({name:o,version:i})=>{y[o].version=i});let oe=n.typescript?"typescript":"javascript",ne=!!n["eslint-plugin-storybook"],j=(0,m.getStorybookInfo)(e),ae=((V=y[j.frameworkPackage])==null?void 0:V.version)||j.version;return{...r,storybookVersion:ae,language:oe,storybookPackages:y,framework:{name:j.framework,options:fe(t)},addons:c,hasStorybookEslint:ne}},b,E=async e=>{var a;if(b)return b;let{packageJson:t={}}=z.default.sync({cwd:process.cwd(),normalize:!1})||{},r=(e||(0,m.getStorybookConfiguration)(((a=t==null?void 0:t.scripts)==null?void 0:a.storybook)||"","-c","--config-dir"))??".storybook",n=(0,m.loadMainConfig)({configDir:r});return b=await U({mainConfig:n,packageJson:t}),b};var Z=p(require("isomorphic-unfetch")),J=p(require("fetch-retry")),R=require("nanoid");var G=p(require("path")),K=require("child_process"),Q=require("@storybook/core-common");var H=require("crypto"),q=e=>{let t=(0,H.createHash)("sha256");return t.update("storybook-telemetry-salt"),t.update(e),t.digest("hex")};var P,X=()=>{if(P)return P;let e;try{let t=(0,Q.getProjectRoot)(),r=G.default.relative(t,process.cwd()),n=(0,K.execSync)("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});e=`${String(n).trim()}${r}`,P=q(e)}catch{}return P};var de="https://storybook.js.org/event-log",ge=(0,J.default)(Z.default),w=[],ue=(0,R.nanoid)();async function ee(e,t={retryDelay:1e3,immediate:!1}){let{payload:r,metadata:n,...a}=e,s=t.stripMetadata?{}:{anonymousId:X(),inCI:Boolean(process.env.CI)},c=(0,R.nanoid)(),A={...a,eventId:c,sessionId:ue,metadata:n,payload:r,context:s},l;try{l=ge(de,{method:"POST",body:JSON.stringify(A),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:y=>2**y*(typeof(t==null?void 0:t.retryDelay)=="number"&&!Number.isNaN(t==null?void 0:t.retryDelay)?t.retryDelay:1e3)}),w.push(l),t.immediate?await Promise.all(w):await l}catch{}finally{w=w.filter(y=>y!==l)}}var M=p(require("chalk")),N=require("@storybook/core-common"),te="telemetry-notification-date",f=console,re=async()=>{await N.cache.get(te,null)||(N.cache.set(te,Date.now()),f.log(),f.log(`${M.default.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),f.log("This information is used to shape Storybook's roadmap and prioritize features."),f.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),f.log(M.default.cyan("https://storybook.js.org/telemetry")),f.log())};var ke=async(e,t={},r={})=>{var a;e!=="boot"&&await re();let n={eventType:e,payload:t};try{r!=null&&r.stripMetadata||(n.metadata=await E(r==null?void 0:r.configDir))}catch(s){n.payload.metadataErrorMessage=k(s).message,r!=null&&r.enableCrashReports&&(n.payload.metadataError=k(s))}finally{let{error:s}=n.payload;s&&(n.payload.error=k(s)),(!n.payload.error||(r==null?void 0:r.enableCrashReports))&&((a=process.env)!=null&&a.STORYBOOK_TELEMETRY_DEBUG&&(I.logger.info(`
2
- [telemetry]`),I.logger.info(JSON.stringify(n,null,2))),await ee(n,r))}};0&&(module.exports={computeStorybookMetadata,getStorybookMetadata,metaFrameworks,sanitizeAddonName,telemetry});
1
+ "use strict";var ye=Object.create;var u=Object.defineProperty;var pe=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,le=Object.prototype.hasOwnProperty;var de=(e,t)=>{for(var o in t)u(e,o,{get:t[o],enumerable:!0})},F=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of me(t))!le.call(e,n)&&n!==o&&u(e,n,{get:()=>t[n],enumerable:!(r=pe(t,n))||r.enumerable});return e};var p=(e,t,o)=>(o=e!=null?ye(fe(e)):{},F(t||!e||!e.__esModule?u(o,"default",{value:e,enumerable:!0}):o,e)),ge=e=>F(u({},"__esModule",{value:!0}),e);var xe={};de(xe,{computeStorybookMetadata:()=>q,getStorybookMetadata:()=>M,metaFrameworks:()=>O,sanitizeAddonName:()=>R,telemetry:()=>Pe});module.exports=ge(xe);var C=require("@storybook/client-logger");var J=p(require("read-pkg-up")),P=require("detect-package-manager"),m=require("@storybook/core-common");var L=p(require("path")),j=async e=>{let t=Object.keys(e);return Promise.all(t.map(v))},v=async e=>{try{let t=await D(e);return{name:e,version:t.version}}catch{return{name:e,version:null}}},D=async e=>require(L.default.join(e,"package.json"));var k=p(require("fs-extra")),b=p(require("path")),Y=require("@storybook/core-common"),W={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},_=()=>{let e=(0,Y.getProjectRoot)();if(!e)return;let o=Object.keys(W).find(n=>{let s=b.default.join(e,W[n]);return k.default.existsSync(s)});if(o)return o;if(!k.default.existsSync(b.default.join(e,"package.json")))return;let r=k.default.readJsonSync(b.default.join(e,"package.json"));if(r!=null&&r.workspaces)return"Workspaces"};var T=require("path");function z(e){return e.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function E(e,t=T.sep){if(!e)return e;let o=process.cwd().split(t);for(;o.length>1;){let r=o.join(t),n=new RegExp(z(r),"g");e=e.replace(n,"$SNIP");let s=o.join(t+t),f=new RegExp(z(s),"g");e=e.replace(f,"$SNIP"),o.pop()}return e}function h(e,t=T.sep){e=JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)));let o=E(JSON.stringify(e),t);return JSON.parse(o)}var ue=["html","react","svelte","vue3","preact","server","vue","web-components","angular","ember"],ke=["builder-webpack5","builder-vite"];function U(e,t){let{name:o="",version:r,dependencies:n,devDependencies:s,peerDependencies:f}=e,c={[o]:r,...n,...s,...f};return t.map(y=>`@storybook/${y}`).find(y=>c[y])}async function H(e){let{framework:t}=e;if(!t)return{};let o=typeof t=="string"?{name:t}:t,r=await D(o.name),n=U(r,ke),s=U(r,ue);return{framework:o,builder:n,renderer:s}}var O={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"svelte-kit"},R=e=>E(e).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),q=async({packageJson:e,mainConfig:t})=>{var B;let o={generatedAt:new Date().getTime(),hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},r={...e==null?void 0:e.dependencies,...e==null?void 0:e.devDependencies,...e==null?void 0:e.peerDependencies},n=Object.keys(r).find(a=>!!O[a]);if(n){let{version:a}=await v(n);o.metaFramework={name:O[n],packageName:n,version:a}}let s=_();s&&(o.monorepo=s);try{let a=await(0,P.detect)({cwd:(0,m.getProjectRoot)()}),i=await(0,P.getNpmVersion)(a);o.packageManager={type:a,version:i}}catch{}o.hasCustomBabel=!!t.babel,o.hasCustomWebpack=!!t.webpackFinal,o.hasStaticDirs=!!t.staticDirs,t.typescript&&(o.typescriptOptions=t.typescript);let f=await H(t);t.refs&&(o.refCount=Object.keys(t.refs).length),t.features&&(o.features=t.features);let c={};t.addons&&t.addons.forEach(a=>{let i,V;typeof a=="string"?i=R(a):(V=a.options,i=R(a.name)),c[i]={options:V,version:void 0}}),(await j(c)).forEach(({name:a,version:i})=>{c[a].version=i});let l=Object.keys(c),g=Object.keys(r).filter(a=>a.includes("storybook")&&!l.includes(a)).reduce((a,i)=>({...a,[i]:{version:void 0}}),{});(await j(g)).forEach(({name:a,version:i})=>{g[a].version=i});let se=r.typescript?"typescript":"javascript",ie=!!r["eslint-plugin-storybook"],$=(0,m.getStorybookInfo)(e),ce=((B=g[$.frameworkPackage])==null?void 0:B.version)||$.version;return{...o,...f,storybookVersion:ce,language:se,storybookPackages:g,addons:c,hasStorybookEslint:ie}},w,M=async e=>{var n;if(w)return w;let{packageJson:t={}}=J.default.sync({cwd:process.cwd(),normalize:!1})||{},o=(e||(0,m.getStorybookConfiguration)(((n=t==null?void 0:t.scripts)==null?void 0:n.storybook)||"","-c","--config-dir"))??".storybook",r=(0,m.loadMainConfig)({configDir:o});return w=await q({mainConfig:r,packageJson:t}),w};var te=p(require("isomorphic-unfetch")),oe=p(require("fetch-retry")),N=require("nanoid");var Q=p(require("path")),X=require("child_process"),Z=require("@storybook/core-common");var G=require("crypto"),K=e=>{let t=(0,G.createHash)("sha256");return t.update("storybook-telemetry-salt"),t.update(e),t.digest("hex")};var x,ee=()=>{if(x)return x;let e;try{let t=(0,Z.getProjectRoot)(),o=Q.default.relative(t,process.cwd()),r=(0,X.execSync)("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});e=`${String(r).trim()}${o}`,x=K(e)}catch{}return x};var be="https://storybook.js.org/event-log",he=(0,oe.default)(te.default),S=[],we=(0,N.nanoid)();async function re(e,t={retryDelay:1e3,immediate:!1}){let{payload:o,metadata:r,...n}=e,s=t.stripMetadata?{}:{anonymousId:ee(),inCI:Boolean(process.env.CI)},f=(0,N.nanoid)(),c={...n,eventId:f,sessionId:we,metadata:r,payload:o,context:s},y;try{y=he(be,{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:l=>2**l*(typeof(t==null?void 0:t.retryDelay)=="number"&&!Number.isNaN(t==null?void 0:t.retryDelay)?t.retryDelay:1e3)}),S.push(y),t.immediate?await Promise.all(S):await y}catch{}finally{S=S.filter(l=>l!==y)}}var I=p(require("chalk")),A=require("@storybook/core-common"),ne="telemetry-notification-date",d=console,ae=async()=>{await A.cache.get(ne,null)||(A.cache.set(ne,Date.now()),d.log(),d.log(`${I.default.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),d.log("This information is used to shape Storybook's roadmap and prioritize features."),d.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),d.log(I.default.cyan("https://storybook.js.org/telemetry")),d.log())};var Pe=async(e,t={},o={})=>{var n;e!=="boot"&&await ae();let r={eventType:e,payload:t};try{o!=null&&o.stripMetadata||(r.metadata=await M(o==null?void 0:o.configDir))}catch(s){r.payload.metadataErrorMessage=h(s).message,o!=null&&o.enableCrashReports&&(r.payload.metadataError=h(s))}finally{let{error:s}=r.payload;s&&(r.payload.error=h(s)),(!r.payload.error||(o==null?void 0:o.enableCrashReports))&&((n=process.env)!=null&&n.STORYBOOK_TELEMETRY_DEBUG&&(C.logger.info(`
2
+ [telemetry]`),C.logger.info(JSON.stringify(r,null,2))),await re(r,o))}};0&&(module.exports={computeStorybookMetadata,getStorybookMetadata,metaFrameworks,sanitizeAddonName,telemetry});
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var v=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,o)=>(typeof require!="undefined"?require:t)[o]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var i={};import{logger as L}from"@storybook/client-logger";import q from"read-pkg-up";import{detect as G,getNpmVersion as K}from"detect-package-manager";import{loadMainConfig as Q,getStorybookInfo as X,getStorybookConfiguration as Z,getProjectRoot as ee}from"@storybook/core-common";import U from"path";var b=async e=>{let t=Object.keys(e);return Promise.all(t.map(h))},h=async e=>{try{let t=v(U.join(e,"package.json"));return{name:e,version:t.version}}catch{return{name:e,version:null}}};import P from"fs-extra";import w from"path";import{getProjectRoot as H}from"@storybook/core-common";var O={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},D=()=>{let e=H();if(!e)return;let o=Object.keys(O).find(s=>{let y=w.join(e,O[s]);return P.existsSync(y)});if(o)return o;if(!P.existsSync(w.join(e,"package.json")))return;if(P.readJsonSync(w.join(e,"package.json"))?.workspaces)return"Workspaces"};import{sep as E}from"path";function T(e){return e.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function j(e,t=E){if(!e)return e;let o=process.cwd().split(t);for(;o.length>1;){let n=o.join(t),s=new RegExp(T(n),"g");e=e.replace(s,"$SNIP");let y=o.join(t+t),c=new RegExp(T(y),"g");e=e.replace(c,"$SNIP"),o.pop()}return e}function f(e,t=E){e=JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)));let o=j(JSON.stringify(e),t);return JSON.parse(o)}var R={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"svelte-kit"},te=e=>{let t=["angular","ember","html","preact","react","server","svelte","vue","vue3","webComponents"].map(o=>`${o}Options`);for(let o of t)if(o in e)return e[o]},M=e=>j(e).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),oe=async({packageJson:e,mainConfig:t})=>{let o={generatedAt:new Date().getTime(),builder:{name:"webpack5"},hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},n={...e?.dependencies,...e?.devDependencies,...e?.peerDependencies},s=Object.keys(n).find(r=>!!R[r]);if(s){let{version:r}=await h(s);o.metaFramework={name:R[s],packageName:s,version:r}}let y=D();y&&(o.monorepo=y);try{let r=await G({cwd:ee()}),a=await K(r);o.packageManager={type:r,version:a}}catch{}if(o.hasCustomBabel=!!t.babel,o.hasCustomWebpack=!!t.webpackFinal,o.hasStaticDirs=!!t.staticDirs,t.typescript&&(o.typescriptOptions=t.typescript),t.core?.builder){let{builder:r}=t.core;o.builder={name:typeof r=="string"?r:r.name,options:typeof r=="string"?void 0:r?.options??void 0}}t.refs&&(o.refCount=Object.keys(t.refs).length),t.features&&(o.features=t.features);let c={};t.addons&&t.addons.forEach(r=>{let a,S;typeof r=="string"?a=M(r):(S=r.options,a=M(r.name)),c[a]={options:S,version:void 0}}),(await b(c)).forEach(({name:r,version:a})=>{c[r].version=a});let m=Object.keys(c),p=Object.keys(n).filter(r=>r.includes("storybook")&&!m.includes(r)).reduce((r,a)=>({...r,[a]:{version:void 0}}),{});(await b(p)).forEach(({name:r,version:a})=>{p[r].version=a});let W=n.typescript?"typescript":"javascript",Y=!!n["eslint-plugin-storybook"],k=X(e),_=p[k.frameworkPackage]?.version||k.version;return{...o,storybookVersion:_,language:W,storybookPackages:p,framework:{name:k.framework,options:te(t)},addons:c,hasStorybookEslint:Y}},d,N=async e=>{if(d)return d;let{packageJson:t={}}=q.sync({cwd:process.cwd(),normalize:!1})||{},o=(e||Z(t?.scripts?.storybook||"","-c","--config-dir"))??".storybook",n=Q({configDir:o});return d=await oe({mainConfig:n,packageJson:t}),d};import ie from"isomorphic-unfetch";import ce from"fetch-retry";import{nanoid as J}from"nanoid";import ne from"path";import{execSync as se}from"child_process";import{getProjectRoot as ae}from"@storybook/core-common";import{createHash as re}from"crypto";var I=e=>{let t=re("sha256");return t.update("storybook-telemetry-salt"),t.update(e),t.digest("hex")};var g,A=()=>{if(g)return g;let e;try{let t=ae(),o=ne.relative(t,process.cwd()),n=se("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});e=`${String(n).trim()}${o}`,g=I(e)}catch{}return g};var pe="https://storybook.js.org/event-log",ye=ce(ie),u=[],me=J();async function $(e,t={retryDelay:1e3,immediate:!1}){let{payload:o,metadata:n,...s}=e,y=t.stripMetadata?{}:{anonymousId:A(),inCI:Boolean(i.CI)},c=J(),x={...s,eventId:c,sessionId:me,metadata:n,payload:o,context:y},m;try{m=ye(pe,{method:"POST",body:JSON.stringify(x),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:p=>2**p*(typeof t?.retryDelay=="number"&&!Number.isNaN(t?.retryDelay)?t.retryDelay:1e3)}),u.push(m),t.immediate?await Promise.all(u):await m}catch{}finally{u=u.filter(p=>p!==m)}}import V from"chalk";import{cache as B}from"@storybook/core-common";var C="telemetry-notification-date",l=console,F=async()=>{await B.get(C,null)||(B.set(C,Date.now()),l.log(),l.log(`${V.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),l.log("This information is used to shape Storybook's roadmap and prioritize features."),l.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),l.log(V.cyan("https://storybook.js.org/telemetry")),l.log())};var Ke=async(e,t={},o={})=>{e!=="boot"&&await F();let n={eventType:e,payload:t};try{o?.stripMetadata||(n.metadata=await N(o?.configDir))}catch(s){n.payload.metadataErrorMessage=f(s).message,o?.enableCrashReports&&(n.payload.metadataError=f(s))}finally{let{error:s}=n.payload;s&&(n.payload.error=f(s)),(!n.payload.error||o?.enableCrashReports)&&(i?.STORYBOOK_TELEMETRY_DEBUG&&(L.info(`
2
- [telemetry]`),L.info(JSON.stringify(n,null,2))),await $(n,o))}};export{oe as computeStorybookMetadata,N as getStorybookMetadata,R as metaFrameworks,M as sanitizeAddonName,Ke as telemetry};
1
+ var T=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,o)=>(typeof require!="undefined"?require:t)[o]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var i={};import{logger as z}from"@storybook/client-logger";import ee from"read-pkg-up";import{detect as te,getNpmVersion as oe}from"detect-package-manager";import{loadMainConfig as re,getStorybookInfo as ne,getStorybookConfiguration as ae,getProjectRoot as se}from"@storybook/core-common";import K from"path";var h=async e=>{let t=Object.keys(e);return Promise.all(t.map(w))},w=async e=>{try{let t=await P(e);return{name:e,version:t.version}}catch{return{name:e,version:null}}},P=async e=>T(K.join(e,"package.json"));import x from"fs-extra";import S from"path";import{getProjectRoot as Q}from"@storybook/core-common";var E={Nx:"nx.json",Turborepo:"turbo.json",Lerna:"lerna.json",Rush:"rush.json",Lage:"lage.config.json"},O=()=>{let e=Q();if(!e)return;let o=Object.keys(E).find(a=>{let s=S.join(e,E[a]);return x.existsSync(s)});if(o)return o;if(!x.existsSync(S.join(e,"package.json")))return;if(x.readJsonSync(S.join(e,"package.json"))?.workspaces)return"Workspaces"};import{sep as M}from"path";function R(e){return e.replace(/[-[/{}()*+?.\\^$|]/g,"\\$&")}function j(e,t=M){if(!e)return e;let o=process.cwd().split(t);for(;o.length>1;){let r=o.join(t),a=new RegExp(R(r),"g");e=e.replace(a,"$SNIP");let s=o.join(t+t),m=new RegExp(R(s),"g");e=e.replace(m,"$SNIP"),o.pop()}return e}function d(e,t=M){e=JSON.parse(JSON.stringify(e,Object.getOwnPropertyNames(e)));let o=j(JSON.stringify(e),t);return JSON.parse(o)}var X=["html","react","svelte","vue3","preact","server","vue","web-components","angular","ember"],Z=["builder-webpack5","builder-vite"];function N(e,t){let{name:o="",version:r,dependencies:a,devDependencies:s,peerDependencies:m}=e,p={[o]:r,...a,...s,...m};return t.map(y=>`@storybook/${y}`).find(y=>p[y])}async function J(e){let{framework:t}=e;if(!t)return{};let o=typeof t=="string"?{name:t}:t,r=await P(o.name),a=N(r,Z),s=N(r,X);return{framework:o,builder:a,renderer:s}}var I={next:"Next","react-scripts":"CRA",gatsby:"Gatsby","@nuxtjs/storybook":"nuxt","@nrwl/storybook":"nx","@vue/cli-service":"vue-cli","@sveltejs/kit":"svelte-kit"},A=e=>j(e).replace(/\/dist\/.*/,"").replace(/\.[mc]?[tj]?s[x]?$/,"").replace(/\/register$/,"").replace(/\/manager$/,"").replace(/\/preset$/,""),ie=async({packageJson:e,mainConfig:t})=>{let o={generatedAt:new Date().getTime(),hasCustomBabel:!1,hasCustomWebpack:!1,hasStaticDirs:!1,hasStorybookEslint:!1,refCount:0},r={...e?.dependencies,...e?.devDependencies,...e?.peerDependencies},a=Object.keys(r).find(n=>!!I[n]);if(a){let{version:n}=await w(a);o.metaFramework={name:I[a],packageName:a,version:n}}let s=O();s&&(o.monorepo=s);try{let n=await te({cwd:se()}),c=await oe(n);o.packageManager={type:n,version:c}}catch{}o.hasCustomBabel=!!t.babel,o.hasCustomWebpack=!!t.webpackFinal,o.hasStaticDirs=!!t.staticDirs,t.typescript&&(o.typescriptOptions=t.typescript);let m=await J(t);t.refs&&(o.refCount=Object.keys(t.refs).length),t.features&&(o.features=t.features);let p={};t.addons&&t.addons.forEach(n=>{let c,D;typeof n=="string"?c=A(n):(D=n.options,c=A(n.name)),p[c]={options:D,version:void 0}}),(await h(p)).forEach(({name:n,version:c})=>{p[n].version=c});let f=Object.keys(p),g=Object.keys(r).filter(n=>n.includes("storybook")&&!f.includes(n)).reduce((n,c)=>({...n,[c]:{version:void 0}}),{});(await h(g)).forEach(({name:n,version:c})=>{g[n].version=c});let U=r.typescript?"typescript":"javascript",H=!!r["eslint-plugin-storybook"],v=ne(e),q=g[v.frameworkPackage]?.version||v.version;return{...o,...m,storybookVersion:q,language:U,storybookPackages:g,addons:p,hasStorybookEslint:H}},u,C=async e=>{if(u)return u;let{packageJson:t={}}=ee.sync({cwd:process.cwd(),normalize:!1})||{},o=(e||ae(t?.scripts?.storybook||"","-c","--config-dir"))??".storybook",r=re({configDir:o});return u=await ie({mainConfig:r,packageJson:t}),u};import fe from"isomorphic-unfetch";import le from"fetch-retry";import{nanoid as V}from"nanoid";import pe from"path";import{execSync as ye}from"child_process";import{getProjectRoot as me}from"@storybook/core-common";import{createHash as ce}from"crypto";var $=e=>{let t=ce("sha256");return t.update("storybook-telemetry-salt"),t.update(e),t.digest("hex")};var k,B=()=>{if(k)return k;let e;try{let t=me(),o=pe.relative(t,process.cwd()),r=ye("git config --local --get remote.origin.url",{timeout:1e3,stdio:"pipe"});e=`${String(r).trim()}${o}`,k=$(e)}catch{}return k};var ge="https://storybook.js.org/event-log",de=le(fe),b=[],ue=V();async function F(e,t={retryDelay:1e3,immediate:!1}){let{payload:o,metadata:r,...a}=e,s=t.stripMetadata?{}:{anonymousId:B(),inCI:Boolean(i.CI)},m=V(),p={...a,eventId:m,sessionId:ue,metadata:r,payload:o,context:s},y;try{y=de(ge,{method:"POST",body:JSON.stringify(p),headers:{"Content-Type":"application/json"},retries:3,retryOn:[503,504],retryDelay:f=>2**f*(typeof t?.retryDelay=="number"&&!Number.isNaN(t?.retryDelay)?t.retryDelay:1e3)}),b.push(y),t.immediate?await Promise.all(b):await y}catch{}finally{b=b.filter(f=>f!==y)}}import L from"chalk";import{cache as W}from"@storybook/core-common";var Y="telemetry-notification-date",l=console,_=async()=>{await W.get(Y,null)||(W.set(Y,Date.now()),l.log(),l.log(`${L.magenta.bold("attention")} => Storybook now collects completely anonymous telemetry regarding usage.`),l.log("This information is used to shape Storybook's roadmap and prioritize features."),l.log("You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:"),l.log(L.cyan("https://storybook.js.org/telemetry")),l.log())};var nt=async(e,t={},o={})=>{e!=="boot"&&await _();let r={eventType:e,payload:t};try{o?.stripMetadata||(r.metadata=await C(o?.configDir))}catch(a){r.payload.metadataErrorMessage=d(a).message,o?.enableCrashReports&&(r.payload.metadataError=d(a))}finally{let{error:a}=r.payload;a&&(r.payload.error=d(a)),(!r.payload.error||o?.enableCrashReports)&&(i?.STORYBOOK_TELEMETRY_DEBUG&&(z.info(`
2
+ [telemetry]`),z.info(JSON.stringify(r,null,2))),await F(r,o))}};export{ie as computeStorybookMetadata,C as getStorybookMetadata,I as metaFrameworks,A as sanitizeAddonName,nt as telemetry};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/telemetry",
3
- "version": "7.0.0-alpha.46",
3
+ "version": "7.0.0-alpha.48",
4
4
  "description": "Telemetry logging for crash reports and usage statistics",
5
5
  "keywords": [
6
6
  "storybook"
@@ -42,8 +42,8 @@
42
42
  "prep": "../../../scripts/prepare/bundle.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@storybook/client-logger": "7.0.0-alpha.46",
46
- "@storybook/core-common": "7.0.0-alpha.46",
45
+ "@storybook/client-logger": "7.0.0-alpha.48",
46
+ "@storybook/core-common": "7.0.0-alpha.48",
47
47
  "chalk": "^4.1.0",
48
48
  "detect-package-manager": "^2.0.1",
49
49
  "fetch-retry": "^5.0.2",
@@ -64,5 +64,5 @@
64
64
  ],
65
65
  "platform": "node"
66
66
  },
67
- "gitHead": "c64b5be851ed2affac56e1daaac3f453fbe6f230"
67
+ "gitHead": "b58a29b785462f8a8b711b6bb2d7223fd6dc17fd"
68
68
  }