Socket
Socket
Sign inDemoInstall

@storybook/csf-tools

Package Overview
Dependencies
67
Maintainers
11
Versions
899
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.0-pr-26875-sha-9077f9e9 to 0.0.0-pr-26884-sha-09b7a3da

2

dist/index.js

@@ -14,3 +14,3 @@ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{ConfigFile:()=>ConfigFile,CsfFile:()=>CsfFile,NoMetaError:()=>NoMetaError,babelParse:()=>babelParse,babelParseExpression:()=>babelParseExpression,babelPrint:()=>babelPrint,enrichCsf:()=>enrichCsf,enrichCsfMeta:()=>enrichCsfMeta,enrichCsfStory:()=>enrichCsfStory,extractDescription:()=>extractDescription,extractSource:()=>extractSource,formatConfig:()=>formatConfig,formatCsf:()=>formatCsf,getStorySortParameter:()=>getStorySortParameter,loadConfig:()=>loadConfig,loadCsf:()=>loadCsf,parserOptions:()=>parserOptions,printConfig:()=>printConfig,printCsf:()=>printCsf,readConfig:()=>readConfig,readCsf:()=>readCsf,writeConfig:()=>writeConfig,writeCsf:()=>writeCsf});module.exports=__toCommonJS(src_exports);var import_fs_extra=__toESM(require("fs-extra")),import_ts_dedent=require("ts-dedent"),t2=__toESM(require("@babel/types")),generate=__toESM(require("@babel/generator")),recast2=__toESM(require("recast")),traverse=__toESM(require("@babel/traverse")),import_csf=require("@storybook/csf");var babelParser=__toESM(require("@babel/parser")),recast=__toESM(require("recast"));function parseWithFlowOrTypescript(source,parserOptions2){let parserPlugins=/^\s*\/\/\s*@flow/.test(source)?["flow"]:["typescript"],mergedParserOptions={...parserOptions2,plugins:[...parserOptions2.plugins??[],...parserPlugins]};return babelParser.parse(source,mergedParserOptions)}var parserOptions={sourceType:"module",plugins:["jsx","decorators-legacy","classProperties"],tokens:!0},babelParse=code=>recast.parse(code,{parser:{parse(source){return parseWithFlowOrTypescript(source,parserOptions)}}}),babelPrint=ast=>recast.print(ast,{quote:"single",trailingComma:!0,tabWidth:2,wrapColumn:80,arrowParensAlways:!0}).code,babelParseExpression=code=>babelParser.parseExpression(code,parserOptions);var t=__toESM(require("@babel/types")),findVarInitialization=(identifier3,program)=>{let init=null,declarations=null;return program.body.find(node=>(t.isVariableDeclaration(node)?declarations=node.declarations:t.isExportNamedDeclaration(node)&&t.isVariableDeclaration(node.declaration)&&(declarations=node.declaration.declarations),declarations&&declarations.find(decl=>t.isVariableDeclarator(decl)&&t.isIdentifier(decl.id)&&decl.id.name===identifier3?(init=decl.init,!0):!1))),init};var logger=console;function parseIncludeExclude(prop){if(t2.isArrayExpression(prop))return prop.elements.map(e=>{if(t2.isStringLiteral(e))return e.value;throw new Error(`Expected string literal: ${e}`)});if(t2.isStringLiteral(prop))return new RegExp(prop.value);if(t2.isRegExpLiteral(prop))return new RegExp(prop.pattern,prop.flags);throw new Error(`Unknown include/exclude: ${prop}`)}function parseTags(prop){if(!t2.isArrayExpression(prop))throw new Error("CSF: Expected tags array");return prop.elements.map(e=>{if(t2.isStringLiteral(e))return e.value;throw new Error("CSF: Expected tag to be string literal")})}var formatLocation=(node,fileName)=>{let{line,column}=node.loc?.start||{};return`${fileName||""} (line ${line}, col ${column})`.trim()},isArgsStory=(init,parent,csf)=>{let storyFn=init;if(t2.isCallExpression(init)){let{callee,arguments:bindArguments}=init;if(t2.isProgram(parent)&&t2.isMemberExpression(callee)&&t2.isIdentifier(callee.object)&&t2.isIdentifier(callee.property)&&callee.property.name==="bind"&&(bindArguments.length===0||bindArguments.length===1&&t2.isObjectExpression(bindArguments[0])&&bindArguments[0].properties.length===0)){let boundIdentifier=callee.object.name,template=findVarInitialization(boundIdentifier,parent);template&&(csf._templates[boundIdentifier]=template,storyFn=template)}}return t2.isArrowFunctionExpression(storyFn)||t2.isFunctionDeclaration(storyFn)?storyFn.params.length>0:!1},parseExportsOrder=init=>{if(t2.isArrayExpression(init))return init.elements.map(item=>{if(t2.isStringLiteral(item))return item.value;throw new Error(`Expected string literal named export: ${item}`)});throw new Error(`Expected array of string literals: ${init}`)},sortExports=(exportByName,order)=>order.reduce((acc,name)=>{let namedExport=exportByName[name];return namedExport&&(acc[name]=namedExport),acc},{}),NoMetaError=class extends Error{constructor(message,ast,fileName){super(import_ts_dedent.dedent`

`)}},ImportDeclaration:{enter({node}){let{source}=node;if(t2.isStringLiteral(source))self.imports.push(source.value);else throw new Error("CSF: unexpected import source")}}}),!self._meta)throw new NoMetaError("missing default export",self._ast,self._fileName);let entries=Object.entries(self._stories);if(self._meta.title=this._makeTitle(self._meta?.title),self._metaAnnotations.play&&(self._meta.tags=[...self._meta.tags||[],"play-fn"]),self._stories=entries.reduce((acc,[key,story])=>{if(!(0,import_csf.isExportStory)(key,self._meta))return acc;let id=story.parameters?.__id??(0,import_csf.toId)(self._meta?.id||self._meta?.title,(0,import_csf.storyNameFromExport)(key)),parameters={...story.parameters,__id:id},{includeStories}=self._meta||{};key==="__page"&&(entries.length===1||Array.isArray(includeStories)&&includeStories.length===1)&&(parameters.docsOnly=!0),acc[key]={...story,id,parameters};let{tags,play}=self._storyAnnotations[key];if(tags){let node=t2.isIdentifier(tags)?findVarInitialization(tags.name,this._ast.program):tags;acc[key].tags=parseTags(node)}return play&&(acc[key].tags=[...acc[key].tags||[],"play-fn"]),acc},{}),Object.keys(self._storyExports).forEach(key=>{(0,import_csf.isExportStory)(key,self._meta)||(delete self._storyExports[key],delete self._storyAnnotations[key])}),self._namedExportsOrder){let unsortedExports=Object.keys(self._storyExports);self._storyExports=sortExports(self._storyExports,self._namedExportsOrder),self._stories=sortExports(self._stories,self._namedExportsOrder);let sortedExports=Object.keys(self._storyExports);if(unsortedExports.length!==sortedExports.length)throw new Error(`Missing exports after sort: ${unsortedExports.filter(key=>!sortedExports.includes(key))}`)}return self}get meta(){return this._meta}get stories(){return Object.values(this._stories)}get indexInputs(){if(!this._fileName)throw new Error(import_ts_dedent.dedent`Cannot automatically create index inputs with CsfFile.indexInputs because the CsfFile instance was created without a the fileName option.
Either add the fileName option when creating the CsfFile instance, or create the index inputs manually.`);return Object.entries(this._stories).map(([exportName,story])=>{let tags=Array.from(new Set([...this._meta?.tags??[],...story.tags??[]]));return{type:"story",importPath:this._fileName,exportName,name:story.name,title:this.meta?.title,metaId:this.meta?.id,tags,metaTags:this.meta?.tags,__id:story.id}})}},loadCsf=(code,options)=>{let ast=babelParse(code);return new CsfFile(ast,options)},formatCsf=(csf,options={sourceMaps:!1})=>{let result=generate.default(csf._ast,options);if(options.sourceMaps)return result;let{code}=result;return code},printCsf=(csf,options={})=>recast2.print(csf._ast,options),readCsf=async(fileName,options)=>{let code=(await import_fs_extra.default.readFile(fileName,"utf-8")).toString();return loadCsf(code,{...options,fileName})},writeCsf=async(csf,fileName)=>{if(!(fileName||csf._fileName))throw new Error("Please specify a fileName for writeCsf");await import_fs_extra.default.writeFile(fileName,printCsf(csf).code)};var import_fs_extra2=__toESM(require("fs-extra")),import_ts_dedent2=__toESM(require("ts-dedent")),t3=__toESM(require("@babel/types")),generate2=__toESM(require("@babel/generator")),traverse2=__toESM(require("@babel/traverse")),recast3=__toESM(require("recast"));var logger2=console,getCsfParsingErrorMessage=({expectedType,foundType,node})=>{let nodeInfo="";if(node)try{nodeInfo=JSON.stringify(node)}catch{}return import_ts_dedent2.default`
Either add the fileName option when creating the CsfFile instance, or create the index inputs manually.`);return Object.entries(this._stories).map(([exportName,story])=>{let tags=[...this._meta?.tags??[],...story.tags??[]];return{type:"story",importPath:this._fileName,exportName,name:story.name,title:this.meta?.title,metaId:this.meta?.id,tags,__id:story.id}})}},loadCsf=(code,options)=>{let ast=babelParse(code);return new CsfFile(ast,options)},formatCsf=(csf,options={sourceMaps:!1})=>{let result=generate.default(csf._ast,options);if(options.sourceMaps)return result;let{code}=result;return code},printCsf=(csf,options={})=>recast2.print(csf._ast,options),readCsf=async(fileName,options)=>{let code=(await import_fs_extra.default.readFile(fileName,"utf-8")).toString();return loadCsf(code,{...options,fileName})},writeCsf=async(csf,fileName)=>{if(!(fileName||csf._fileName))throw new Error("Please specify a fileName for writeCsf");await import_fs_extra.default.writeFile(fileName,printCsf(csf).code)};var import_fs_extra2=__toESM(require("fs-extra")),import_ts_dedent2=__toESM(require("ts-dedent")),t3=__toESM(require("@babel/types")),generate2=__toESM(require("@babel/generator")),traverse2=__toESM(require("@babel/traverse")),recast3=__toESM(require("recast"));var logger2=console,getCsfParsingErrorMessage=({expectedType,foundType,node})=>{let nodeInfo="";if(node)try{nodeInfo=JSON.stringify(node)}catch{}return import_ts_dedent2.default`
CSF Parsing error: Expected '${expectedType}' but found '${foundType}' instead in '${node?.type}'.

@@ -17,0 +17,0 @@ ${nodeInfo}

{
"name": "@storybook/csf-tools",
"version": "0.0.0-pr-26875-sha-9077f9e9",
"version": "0.0.0-pr-26884-sha-09b7a3da",
"description": "Parse and manipulate CSF and Storybook config files",

@@ -45,8 +45,8 @@ "keywords": [

"dependencies": {
"@babel/generator": "^7.23.0",
"@babel/parser": "^7.23.0",
"@babel/traverse": "^7.23.2",
"@babel/types": "^7.23.0",
"@storybook/csf": "^0.1.4",
"@storybook/types": "0.0.0-pr-26875-sha-9077f9e9",
"@babel/generator": "^7.24.4",
"@babel/parser": "^7.24.4",
"@babel/traverse": "^7.24.1",
"@babel/types": "^7.24.0",
"@storybook/csf": "^0.1.7",
"@storybook/types": "0.0.0-pr-26884-sha-09b7a3da",
"fs-extra": "^11.1.0",

@@ -53,0 +53,0 @@ "recast": "^0.23.5",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc