@sanity/cli 3.32.0 → 3.34.0
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/lib/_chunks/{cli-Bg_7XTxq.js → cli-DF3zrOjo.js} +4 -4
- package/lib/_chunks/{cli-Bg_7XTxq.js.map → cli-DF3zrOjo.js.map} +1 -1
- package/lib/_chunks/{index-CSUcivnN.js → index-DMlvnCQu.js} +3 -3
- package/lib/_chunks/{index-CSUcivnN.js.map → index-DMlvnCQu.js.map} +1 -1
- package/lib/_chunks/{loadEnv-DhS32YnB.js → loadEnv-F5Jkbv17.js} +3 -3
- package/lib/_chunks/{loadEnv-DhS32YnB.js.map → loadEnv-F5Jkbv17.js.map} +1 -1
- package/lib/_chunks/{node-BtqYuHlp.js → node-D7oypQ6u.js} +2 -2
- package/lib/_chunks/{node-BtqYuHlp.js.map → node-D7oypQ6u.js.map} +1 -1
- package/lib/_chunks/{node-DgDVWBhq.js → node-Dd7W3qt3.js} +2 -2
- package/lib/_chunks/{node-DgDVWBhq.js.map → node-Dd7W3qt3.js.map} +1 -1
- package/lib/_chunks/stegaEncodeSourceMap-QOvbA7yd.js.map +1 -1
- package/lib/_chunks/stegaEncodeSourceMap-__Tf172r.js.map +1 -1
- package/lib/cli.js +2 -2
- package/lib/index.esm.js +1 -1
- package/lib/index.js +1 -1
- package/lib/run.js +1 -1
- package/package.json +5 -5
- package/src/actions/init-project/templates/getStarted.ts +1 -1
- package/src/actions/init-project/templates/shopify.ts +1 -1
- package/src/actions/init-project/templates/shopifyOnline.ts +1 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
'use strict';var _templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5;function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0);}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}));}var chalk$4=require('chalk');var loadEnv=require('./loadEnv-
|
1
|
+
'use strict';var _templateObject,_templateObject2,_templateObject3,_templateObject4,_templateObject5;function _taggedTemplateLiteral(strings,raw){if(!raw){raw=strings.slice(0);}return Object.freeze(Object.defineProperties(strings,{raw:{value:Object.freeze(raw)}}));}var chalk$4=require('chalk');var loadEnv=require('./loadEnv-F5Jkbv17.js');var require$$0$4=require('fs');var nodeMachineId=require('node-machine-id');var require$$0$6=require('os');var path$t=require('path');var require$$1$2=require('module');var telemetry=require('@sanity/telemetry');var require$$0$5=require('child_process');var fs$o=require('fs/promises');var require$$0$9=require('util');var require$$0$a=require('url');var require$$1$4=require('get-it');var require$$2$1=require('get-it/middleware');var require$$0$7=require('constants');var require$$0$8=require('stream');var require$$1$3=require('assert');var require$$3$1=require('events');var require$$6$1=require('http');var semver$2=require('semver');var getCliConfig=require('./getCliConfig-CHu6oVEh.js');var pkgDir=require('pkg-dir');var require$$3$2=require('crypto');var fs$p=require('@sanity/util/fs');var decompress=require('decompress');var validateNpmPackageName=require('validate-npm-package-name');var require$$0$b=require('buffer');var goldenFleece=require('golden-fleece');var journeyConfig=require('./journeyConfig-DRuyNyEK.js');var traverse=require('@babel/traverse');var require$$0$c=require('readline');var tty=require('tty');function _interopDefaultCompat(e){return e&&typeof e==='object'&&'default'in e?e:{default:e};}function _mergeNamespaces(n,m){m.forEach(function(e){e&&typeof e!=='string'&&!Array.isArray(e)&&Object.keys(e).forEach(function(k){if(k!=='default'&&!(k in n)){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k];}});}});});return Object.freeze(n);}var chalk__default=/*#__PURE__*/_interopDefaultCompat(chalk$4);var require$$0__default=/*#__PURE__*/_interopDefaultCompat(require$$0$4);var require$$0__default$2=/*#__PURE__*/_interopDefaultCompat(require$$0$6);var path__default=/*#__PURE__*/_interopDefaultCompat(path$t);var require$$1__default=/*#__PURE__*/_interopDefaultCompat(require$$1$2);var require$$0__default$1=/*#__PURE__*/_interopDefaultCompat(require$$0$5);var fs__default=/*#__PURE__*/_interopDefaultCompat(fs$o);var require$$0__default$5=/*#__PURE__*/_interopDefaultCompat(require$$0$9);var require$$0__default$6=/*#__PURE__*/_interopDefaultCompat(require$$0$a);var require$$1__default$2=/*#__PURE__*/_interopDefaultCompat(require$$1$4);var require$$2__default=/*#__PURE__*/_interopDefaultCompat(require$$2$1);var require$$0__default$3=/*#__PURE__*/_interopDefaultCompat(require$$0$7);var require$$0__default$4=/*#__PURE__*/_interopDefaultCompat(require$$0$8);var require$$1__default$1=/*#__PURE__*/_interopDefaultCompat(require$$1$3);var require$$3__default=/*#__PURE__*/_interopDefaultCompat(require$$3$1);var require$$6__default=/*#__PURE__*/_interopDefaultCompat(require$$6$1);var semver__default=/*#__PURE__*/_interopDefaultCompat(semver$2);var pkgDir__default=/*#__PURE__*/_interopDefaultCompat(pkgDir);var require$$3__default$1=/*#__PURE__*/_interopDefaultCompat(require$$3$2);var decompress__default=/*#__PURE__*/_interopDefaultCompat(decompress);var validateNpmPackageName__default=/*#__PURE__*/_interopDefaultCompat(validateNpmPackageName);var require$$0__default$7=/*#__PURE__*/_interopDefaultCompat(require$$0$b);var traverse__default=/*#__PURE__*/_interopDefaultCompat(traverse);var require$$0__default$8=/*#__PURE__*/_interopDefaultCompat(require$$0$c);var tty__default=/*#__PURE__*/_interopDefaultCompat(tty);var resolveFrom$2={exports:{}};const path$s=path__default.default;const Module=require$$1__default.default;const fs$n=require$$0__default.default;const resolveFrom=(fromDirectory,moduleId,silent)=>{if(typeof fromDirectory!=='string'){throw new TypeError("Expected `fromDir` to be of type `string`, got `".concat(typeof fromDirectory,"`"));}if(typeof moduleId!=='string'){throw new TypeError("Expected `moduleId` to be of type `string`, got `".concat(typeof moduleId,"`"));}try{fromDirectory=fs$n.realpathSync(fromDirectory);}catch(error){if(error.code==='ENOENT'){fromDirectory=path$s.resolve(fromDirectory);}else if(silent){return;}else{throw error;}}const fromFile=path$s.join(fromDirectory,'noop.js');const resolveFileName=()=>Module._resolveFilename(moduleId,{id:fromFile,filename:fromFile,paths:Module._nodeModulePaths(fromDirectory)});if(silent){try{return resolveFileName();}catch(error){return;}}return resolveFileName();};resolveFrom$2.exports=(fromDirectory,moduleId)=>resolveFrom(fromDirectory,moduleId);resolveFrom$2.exports.silent=(fromDirectory,moduleId)=>resolveFrom(fromDirectory,moduleId,true);var resolveFromExports=resolveFrom$2.exports;var resolveFrom$1=/*@__PURE__*/loadEnv.getDefaultExportFromCjs(resolveFromExports);const CliCommand=telemetry.defineTrace({name:"CLI Command Executed",version:1,description:"A CLI command was executed"});var lodash={exports:{}};/**
|
2
2
|
* @license
|
3
3
|
* Lodash <https://lodash.com/>
|
4
4
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
@@ -14997,8 +14997,8 @@ function parse(source,options){var babelOptions=_babel_options_1.default(options
|
|
14997
14997
|
ctor=o.constructor;if(typeof ctor!=='function')return false;// If has modified prototype
|
14998
14998
|
prot=ctor.prototype;if(isObjectObject(prot)===false)return false;// If constructor does not have an Object-specific method
|
14999
14999
|
if(prot.hasOwnProperty('isPrototypeOf')===false){return false;}// Most likely a plain Object
|
15000
|
-
return true;};var isPlainObject=isPlainObject$1;function defaultSortFn(a,b){return a.localeCompare(b);}function sort(src,comparator){var out;if(Array.isArray(src)){return src.map(function(item){return sort(item,comparator);});}if(isPlainObject(src)){out={};Object.keys(src).sort(comparator||defaultSortFn).forEach(function(key){out[key]=sort(src[key],comparator);});return out;}return src;}var deepSortObject=sort;var sortObject=/*@__PURE__*/loadEnv.getDefaultExportFromCjs(deepSortObject);const manifestPropOrder=["name","private","version","description","main","author","license","scripts","keywords","dependencies","devDependencies"];function createPackageManifest(data){const dependencies=data.dependencies?{dependencies:sortObject(data.dependencies)}:{};const devDependencies=data.devDependencies?{devDependencies:sortObject(data.devDependencies)}:{};const pkg={...getCommonManifest(data),main:"package.json",keywords:["sanity"],scripts:{dev:"sanity dev",start:"sanity start",build:"sanity build",deploy:"sanity deploy","deploy-graphql":"sanity graphql deploy"},...dependencies,...devDependencies,prettier:{semi:false,printWidth:100,bracketSpacing:false,singleQuote:true}};return serializeManifest(pkg);}function getCommonManifest(data){const pkg={name:data.name,version:"1.0.0",description:data.description,author:data.author,license:data.license||"UNLICENSED",devDependencies:{}};if(pkg.license==="UNLICENSED"){pkg.private=true;}if(data.gitRemote){pkg.repository={type:"git",url:data.gitRemote};}return pkg;}function serializeManifest(src){const props=manifestPropOrder.concat(Object.keys(src));const ordered=props.reduce((target,prop)=>{const source=src;if(typeof source[prop]!=="undefined"&&typeof target[prop]==="undefined"){target[prop]=source[prop];}return target;},{});return"".concat(JSON.stringify(ordered,null,2),"\n");}const defaultTemplate="\nimport {defineConfig} from 'sanity'\nimport {structureTool} from 'sanity/structure'\nimport {visionTool} from '@sanity/vision'\nimport {schemaTypes} from './schemaTypes'\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [structureTool(), visionTool()],\n\n schema: {\n types: schemaTypes,\n },\n})\n";const defaultVariables={projectName:"Sanity Studio",sourceName:"default",sourceTitle:"Default"};function createStudioConfig(options){const variables={...defaultVariables,...options.variables};if(typeof options.template==="function"){return options.template(variables).trimStart();}const template=(options.template||defaultTemplate).trimStart();const ast=main$4.parse(template,{parser});traverse__default.default(ast,{StringLiteral:{enter(_ref123){let{node}=_ref123;const value=node.value;if(!value.startsWith("%")||!value.endsWith("%")){return;}const variableName=value.slice(1,-1);if(!(variableName in variables)){throw new Error("Template variable '".concat(value,"' not defined"));}node.value=variables[variableName]||"";}}});return main$4.print(ast,{quote:"single"}).code;}const blogTemplate={};const cleanTemplate={};const configTemplate$3="\nimport {defineConfig, isDev} from 'sanity'\nimport {visionTool} from '@sanity/vision'\nimport {structureTool} from 'sanity/structure'\nimport {schemaTypes} from './schemaTypes'\nimport {getStartedPlugin} from './plugins/sanity-plugin-tutorial'\n\nconst devOnlyPlugins = [getStartedPlugin()]\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [structureTool(), visionTool(), ...(isDev ? devOnlyPlugins : [])],\n\n schema: {\n types: schemaTypes,\n },\n})\n\n";const getStartedTemplate={configTemplate:configTemplate$3,typescriptOnly:true,dependencies:{"@sanity/icons":"^2.
|
15001
|
-
"react-icons":"^3.11.0"}};const configTemplate$1="\nimport {defineConfig, isDev} from 'sanity'\n\nimport {structureTool} from 'sanity/structure'\nimport {schemaTypes} from './schemaTypes'\nimport {structure} from './structure'\n\nimport {visionTool} from '@sanity/vision'\nimport {colorInput} from '@sanity/color-input'\nimport {imageHotspotArrayPlugin} from 'sanity-plugin-hotspot-array'\nimport {media, mediaAssetSource} from 'sanity-plugin-media'\nimport {customDocumentActions} from './plugins/customDocumentActions'\n\nconst devOnlyPlugins = [visionTool()]\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [\n structureTool({structure}),\n colorInput(),\n imageHotspotArrayPlugin(),\n customDocumentActions(),\n media(),\n ...(isDev ? devOnlyPlugins : []),\n ],\n\n schema: {\n types: schemaTypes,\n },\n\n form: {\n file: {\n assetSources: (previousAssetSources) => {\n return previousAssetSources.filter((assetSource) => assetSource !== mediaAssetSource)\n },\n },\n image: {\n assetSources: (previousAssetSources) => {\n return previousAssetSources.filter((assetSource) => assetSource === mediaAssetSource)\n },\n },\n },\n})";const shopifyTemplate$1={configTemplate:configTemplate$1,dependencies:{"@sanity/asset-utils":"^1.3.0","@sanity/color-input":"^3.0.2","@sanity/icons":"^2.
|
15000
|
+
return true;};var isPlainObject=isPlainObject$1;function defaultSortFn(a,b){return a.localeCompare(b);}function sort(src,comparator){var out;if(Array.isArray(src)){return src.map(function(item){return sort(item,comparator);});}if(isPlainObject(src)){out={};Object.keys(src).sort(comparator||defaultSortFn).forEach(function(key){out[key]=sort(src[key],comparator);});return out;}return src;}var deepSortObject=sort;var sortObject=/*@__PURE__*/loadEnv.getDefaultExportFromCjs(deepSortObject);const manifestPropOrder=["name","private","version","description","main","author","license","scripts","keywords","dependencies","devDependencies"];function createPackageManifest(data){const dependencies=data.dependencies?{dependencies:sortObject(data.dependencies)}:{};const devDependencies=data.devDependencies?{devDependencies:sortObject(data.devDependencies)}:{};const pkg={...getCommonManifest(data),main:"package.json",keywords:["sanity"],scripts:{dev:"sanity dev",start:"sanity start",build:"sanity build",deploy:"sanity deploy","deploy-graphql":"sanity graphql deploy"},...dependencies,...devDependencies,prettier:{semi:false,printWidth:100,bracketSpacing:false,singleQuote:true}};return serializeManifest(pkg);}function getCommonManifest(data){const pkg={name:data.name,version:"1.0.0",description:data.description,author:data.author,license:data.license||"UNLICENSED",devDependencies:{}};if(pkg.license==="UNLICENSED"){pkg.private=true;}if(data.gitRemote){pkg.repository={type:"git",url:data.gitRemote};}return pkg;}function serializeManifest(src){const props=manifestPropOrder.concat(Object.keys(src));const ordered=props.reduce((target,prop)=>{const source=src;if(typeof source[prop]!=="undefined"&&typeof target[prop]==="undefined"){target[prop]=source[prop];}return target;},{});return"".concat(JSON.stringify(ordered,null,2),"\n");}const defaultTemplate="\nimport {defineConfig} from 'sanity'\nimport {structureTool} from 'sanity/structure'\nimport {visionTool} from '@sanity/vision'\nimport {schemaTypes} from './schemaTypes'\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [structureTool(), visionTool()],\n\n schema: {\n types: schemaTypes,\n },\n})\n";const defaultVariables={projectName:"Sanity Studio",sourceName:"default",sourceTitle:"Default"};function createStudioConfig(options){const variables={...defaultVariables,...options.variables};if(typeof options.template==="function"){return options.template(variables).trimStart();}const template=(options.template||defaultTemplate).trimStart();const ast=main$4.parse(template,{parser});traverse__default.default(ast,{StringLiteral:{enter(_ref123){let{node}=_ref123;const value=node.value;if(!value.startsWith("%")||!value.endsWith("%")){return;}const variableName=value.slice(1,-1);if(!(variableName in variables)){throw new Error("Template variable '".concat(value,"' not defined"));}node.value=variables[variableName]||"";}}});return main$4.print(ast,{quote:"single"}).code;}const blogTemplate={};const cleanTemplate={};const configTemplate$3="\nimport {defineConfig, isDev} from 'sanity'\nimport {visionTool} from '@sanity/vision'\nimport {structureTool} from 'sanity/structure'\nimport {schemaTypes} from './schemaTypes'\nimport {getStartedPlugin} from './plugins/sanity-plugin-tutorial'\n\nconst devOnlyPlugins = [getStartedPlugin()]\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [structureTool(), visionTool(), ...(isDev ? devOnlyPlugins : [])],\n\n schema: {\n types: schemaTypes,\n },\n})\n\n";const getStartedTemplate={configTemplate:configTemplate$3,typescriptOnly:true,dependencies:{"@sanity/icons":"^2.11.0","@sanity/ui":"^2.0.0"}};const configTemplate$2="\nimport {defineConfig} from 'sanity'\nimport {structureTool} from 'sanity/structure'\nimport {visionTool} from '@sanity/vision'\n//import {googleMapsInput} from '@sanity/google-maps-input'\nimport {schemaTypes} from './schemaTypes'\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [\n structureTool(),\n visionTool(),\n //googleMapsInput(),\n ],\n\n schema: {\n types: schemaTypes,\n },\n})\n";const movieTemplate={configTemplate:configTemplate$2,importPrompt:"Add a sampling of sci-fi movies to your dataset on the hosted backend?",datasetUrl:"https://public.sanity.io/moviesdb-2018-03-06.tar.gz",dependencies:{//'@sanity/google-maps-input': '^2.27.0',
|
15001
|
+
"react-icons":"^3.11.0"}};const configTemplate$1="\nimport {defineConfig, isDev} from 'sanity'\n\nimport {structureTool} from 'sanity/structure'\nimport {schemaTypes} from './schemaTypes'\nimport {structure} from './structure'\n\nimport {visionTool} from '@sanity/vision'\nimport {colorInput} from '@sanity/color-input'\nimport {imageHotspotArrayPlugin} from 'sanity-plugin-hotspot-array'\nimport {media, mediaAssetSource} from 'sanity-plugin-media'\nimport {customDocumentActions} from './plugins/customDocumentActions'\n\nconst devOnlyPlugins = [visionTool()]\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [\n structureTool({structure}),\n colorInput(),\n imageHotspotArrayPlugin(),\n customDocumentActions(),\n media(),\n ...(isDev ? devOnlyPlugins : []),\n ],\n\n schema: {\n types: schemaTypes,\n },\n\n form: {\n file: {\n assetSources: (previousAssetSources) => {\n return previousAssetSources.filter((assetSource) => assetSource !== mediaAssetSource)\n },\n },\n image: {\n assetSources: (previousAssetSources) => {\n return previousAssetSources.filter((assetSource) => assetSource === mediaAssetSource)\n },\n },\n },\n})";const shopifyTemplate$1={configTemplate:configTemplate$1,dependencies:{"@sanity/asset-utils":"^1.3.0","@sanity/color-input":"^3.0.2","@sanity/icons":"^2.11.0","@sanity/ui":"^2.0.0","lodash.get":"^4.4.2","pluralize-esm":"^9.0.2","sanity-plugin-hotspot-array":"^1.0.1","sanity-plugin-media":"^2.0.5",slug:"^8.2.2"},devDependencies:{"@portabletext/types":"^2.0.2","@types/lodash.get":"^4.4.7","@types/slug":"^5.0.3"}};const configTemplate="\nimport {shopifyAssets} from 'sanity-plugin-shopify-assets'\nimport {defineConfig, isDev} from 'sanity'\nimport {structureTool} from 'sanity/structure'\nimport {visionTool} from '@sanity/vision'\nimport {shopifyDocumentActions} from './plugins/shopifyDocumentActions'\nimport {schemaTypes} from './schemaTypes'\nimport {structure} from './structure'\nimport {SHOPIFY_STORE_ID} from './constants'\n\nconst devOnlyPlugins = [visionTool()]\n\nexport default defineConfig({\n name: '%sourceName%',\n title: '%projectName%',\n\n projectId: '%projectId%',\n dataset: '%dataset%',\n\n plugins: [\n structureTool({structure}),\n shopifyDocumentActions(),\n shopifyAssets({\n shopifyDomain: SHOPIFY_STORE_ID,\n }),\n ...(isDev ? devOnlyPlugins : []),\n ],\n\n schema: {\n types: schemaTypes,\n },\n})\n";const shopifyTemplate={configTemplate,typescriptOnly:true,dependencies:{"@portabletext/toolkit":"^2.0.1","@sanity/icons":"^2.11.0","@sanity/ui":"^2.0.0","@types/lodash.get":"^4.4.7","lodash.get":"^4.4.2","pluralize-esm":"^9.0.4","sanity-plugin-shopify-assets":"^1.1.0"}};const templates={blog:blogTemplate,clean:cleanTemplate,"get-started":getStartedTemplate,moviedb:movieTemplate,shopify:shopifyTemplate$1,"shopify-online-storefront":shopifyTemplate};async function bootstrapTemplate(opts,context){const{apiClient,cliRoot,output}=context;const templatesDir=path__default.default.join(cliRoot,"templates");const{outputPath,templateName,useTypeScript,packageName,variables}=opts;const{projectId}=variables;const sourceDir=path__default.default.join(templatesDir,templateName);const sharedDir=path__default.default.join(templatesDir,"shared");const template=templates[templateName];if(!template){throw new Error("Template \"".concat(templateName,"\" not defined"));}loadEnv.debug('Copying files from template "%s" to "%s"',templateName,outputPath);let spinner=output.spinner(opts.schemaUrl?"Extracting your Sanity configuration":"Bootstrapping files from template").start();await copy(sourceDir,outputPath,{rename:useTypeScript?toTypeScriptPath:void 0});await copy(path__default.default.join(sharedDir,"gitignore.txt"),outputPath,{rename:()=>".gitignore"});if(useTypeScript){await fs__default.default.copyFile(path__default.default.join(sharedDir,"tsconfig.json"),path__default.default.join(outputPath,"tsconfig.json"));}if(opts.schemaUrl){loadEnv.debug('Fetching and writing remote schema "%s"',opts.schemaUrl);await journeyConfig.getAndWriteJourneySchemaWorker({schemasPath:path__default.default.join(outputPath,"schemaTypes"),useTypeScript,schemaUrl:opts.schemaUrl});}spinner.succeed();spinner=output.spinner("Resolving latest module versions").start();const dependencyVersions=await resolveLatestVersions({...studioDependencies.dependencies,...studioDependencies.devDependencies,...(template.dependencies||{})});spinner.succeed();const dependencies=Object.keys({...studioDependencies.dependencies,...template.dependencies}).reduce((deps,dependency)=>{deps[dependency]=dependencyVersions[dependency];return deps;},{});const devDependencies=Object.keys({...studioDependencies.devDependencies,...template.devDependencies}).reduce((deps,dependency)=>{deps[dependency]=dependencyVersions[dependency];return deps;},{});spinner=output.spinner("Creating default project files").start();const packageManifest=await createPackageManifest({name:packageName,dependencies,devDependencies});const studioConfig=await createStudioConfig({template:template.configTemplate,variables});const cliConfig=await createCliConfig({projectId:variables.projectId,dataset:variables.dataset});const codeExt=useTypeScript?"ts":"js";await Promise.all([writeFileIfNotExists("sanity.config.".concat(codeExt),studioConfig),writeFileIfNotExists("sanity.cli.".concat(codeExt),cliConfig),writeFileIfNotExists("package.json",packageManifest),writeFileIfNotExists(".eslintrc","".concat(JSON.stringify({extends:"@sanity/eslint-config-studio"},null,2),"\n"))]);try{await apiClient({api:{projectId}}).request({method:"PATCH",uri:"/projects/".concat(projectId),body:{metadata:{initialTemplate:"cli-".concat(templateName)}}});}catch(err){let message=typeof err==="string"?err:"<unknown error>";if(err instanceof Error){message=err.message;}loadEnv.debug("Failed to update initial template metadata for project: %s",message);}spinner.succeed();return template;async function writeFileIfNotExists(fileName,content){const filePath=path__default.default.join(outputPath,fileName);try{await fs__default.default.writeFile(filePath,content,{flag:"wx"});}catch(err){if(err.code==="EEXIST"){output.warn("\n".concat(chalk__default.default.yellow("\u26A0")," File \"").concat(filePath,"\" already exists, skipping"));}else{throw err;}}}}function toTypeScriptPath(originalPath){return originalPath.replace(/\.js$/,".ts");}function validateEmptyPath(dir){const checkPath=absolutify(dir);return pathIsEmpty(checkPath)?true:"Given path is not empty";}function absolutify(dir){const pathName=expandHome(dir);return path__default.default.isAbsolute(pathName)?pathName:path__default.default.resolve(process.cwd(),pathName);}function pathIsEmpty(dir){try{const content=require$$0__default.default.readdirSync(dir);return content.length===0;}catch(err){if(err.code==="ENOENT"){return true;}throw err;}}function expandHome(filePath){if(filePath.charCodeAt(0)===126){if(filePath.charCodeAt(1)===43){return path__default.default.join(process.cwd(),filePath.slice(2));}const home=require$$0__default$2.default.homedir();return home?path__default.default.join(home,filePath.slice(1)):filePath;}return filePath;}var pathIsAbsolute={exports:{}};var hasRequiredPathIsAbsolute;function requirePathIsAbsolute(){if(hasRequiredPathIsAbsolute)return pathIsAbsolute.exports;hasRequiredPathIsAbsolute=1;function posix(path){return path.charAt(0)==='/';}function win32(path){// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
|
15002
15002
|
var splitDeviceRe=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;var result=splitDeviceRe.exec(path);var device=result[1]||'';var isUnc=Boolean(device&&device.charAt(1)!==':');// UNC paths are always absolute
|
15003
15003
|
return Boolean(result[2]||isUnc);}pathIsAbsolute.exports=process.platform==='win32'?win32:posix;pathIsAbsolute.exports.posix=posix;pathIsAbsolute.exports.win32=win32;return pathIsAbsolute.exports;}var common={};var hasRequiredCommon;function requireCommon(){if(hasRequiredCommon)return common;hasRequiredCommon=1;common.setopts=setopts;common.ownProp=ownProp;common.makeAbs=makeAbs;common.finish=finish;common.mark=mark;common.isIgnored=isIgnored;common.childrenIgnored=childrenIgnored;function ownProp(obj,field){return Object.prototype.hasOwnProperty.call(obj,field);}var fs=require$$0__default.default;var path=path__default.default;var minimatch=minimatch_1$2;var isAbsolute=requirePathIsAbsolute();var Minimatch=minimatch.Minimatch;function alphasort(a,b){return a.localeCompare(b,'en');}function setupIgnores(self,options){self.ignore=options.ignore||[];if(!Array.isArray(self.ignore))self.ignore=[self.ignore];if(self.ignore.length){self.ignore=self.ignore.map(ignoreMap);}}// ignore patterns are always in dot:true mode.
|
15004
15004
|
function ignoreMap(pattern){var gmatcher=null;if(pattern.slice(-3)==='/**'){var gpattern=pattern.replace(/(\/\*\*)+$/,'');gmatcher=new Minimatch(gpattern,{dot:true});}return{matcher:new Minimatch(pattern,{dot:true}),gmatcher:gmatcher};}function setopts(self,pattern,options){if(!options)options={};// base-matching: just use globstar for that.
|
@@ -17115,4 +17115,4 @@ process.env.NO_UPDATE_NOTIFIER;function runUpdateCheck(options){loadEnv.debug("C
|
|
17115
17115
|
align:"center",borderStyle:"round"};console.error("\n".concat(boxen(message,boxenOpts)));userConfig.set("cliLastUpdateNag",Date.now());}async function getLatestRemote(){if(isDisabled){loadEnv.debug("Running on CI, or explicitly disabled, skipping update check");return false;}const lastUpdated=userConfig.get("cliLastUpdateCheck")||0;if(Date.now()-lastUpdated<TWELVE_HOURS){loadEnv.debug("Less than 12 hours since last check, skipping update check");return userConfig.get("cliHasUpdate")||false;}let latestRemote;try{loadEnv.debug("Checking for latest remote version");latestRemote=await latestVersion(name);loadEnv.debug("Latest remote version is %s",latestRemote);}catch(err){loadEnv.debug("Failed to fetch latest version of ".concat(name," from npm:\n").concat(err.stack));return false;}if(!latestRemote){loadEnv.debug("Failed to fetch latest version of ".concat(name," from npm"));return false;}userConfig.set("cliLastUpdateCheck",Date.now());const diff=semverCompare$1(latestRemote,version);if(diff<=0){loadEnv.debug(diff===0?"No update found":"Remote version older than local");userConfig.delete("cliHasUpdate");return false;}userConfig.set("cliHasUpdate",latestRemote);loadEnv.debug("Update is available (%s)",latestRemote);return latestRemote;}}const sanityEnv=process.env.SANITY_INTERNAL_ENV||"production";const knownEnvs=["development","staging","production"];function wait(ms){return new Promise(resolve=>setTimeout(resolve,ms));}function installProcessExitHack(finalTask){const originalProcessExit=process.exit;process.exit=exitCode=>{finalTask().finally(()=>originalProcessExit(exitCode));};}async function runCli(cliRoot,_ref139){var _cliConfig$config2,_cliConfig$config3,_cliConfig$config4;let{cliVersion}=_ref139;installUnhandledRejectionsHandler();const pkg={name:"@sanity/cli",version:cliVersion};const args=parseArguments();const isInit=args.groupOrCommand==="init"&&args.argsWithoutOptions[0]!=="plugin";const cwd=getCurrentWorkingDirectory();let workDir;try{workDir=isInit?process.cwd():loadEnv.resolveRootDir(cwd);}catch(err){console.error(chalk__default.default.red(err.message));process.exit(1);}loadAndSetEnvFromDotEnvFiles({workDir,cmd:args.groupOrCommand});maybeFixMissingWindowsEnvVar();await runUpdateCheck({pkg,cwd,workDir}).notify();telemetryDisclosure();loadEnv.debug("Reading CLI config from \"".concat(workDir,"\""));const cliConfig=await getCliConfig.getCliConfig(workDir,{forked:true});if(!cliConfig){loadEnv.debug("No CLI config found");}const{logger:telemetry,flush:flushTelemetry}=createTelemetryStore({projectId:cliConfig===null||cliConfig===void 0||(_cliConfig$config2=cliConfig.config)===null||_cliConfig$config2===void 0||(_cliConfig$config2=_cliConfig$config2.api)===null||_cliConfig$config2===void 0?void 0:_cliConfig$config2.projectId,env:process.env});installProcessExitHack(()=>// When process.exit() is called, flush telemetry events first, but wait no more than x amount of ms before exiting process
|
17116
17116
|
Promise.race([wait(2e3),flushTelemetry()]));telemetry.updateUserProperties({deviceId:await nodeMachineId.machineId(),runtimeVersion:process.version,runtime:detectRuntime(),cliVersion:pkg.version,platform:process.platform,cpuArchitecture:process.arch,projectId:cliConfig===null||cliConfig===void 0||(_cliConfig$config3=cliConfig.config)===null||_cliConfig$config3===void 0||(_cliConfig$config3=_cliConfig$config3.api)===null||_cliConfig$config3===void 0?void 0:_cliConfig$config3.projectId,dataset:cliConfig===null||cliConfig===void 0||(_cliConfig$config4=cliConfig.config)===null||_cliConfig$config4===void 0||(_cliConfig$config4=_cliConfig$config4.api)===null||_cliConfig$config4===void 0?void 0:_cliConfig$config4.dataset});const options={cliRoot,workDir,corePath:await getCoreModulePath(workDir,cliConfig),cliConfig,telemetry};warnOnNonProductionEnvironment();warnOnInferredProjectDir(isInit,cwd,workDir);const core=args.coreOptions;const commands=await mergeCommands(baseCommands,options.corePath,{cliVersion,cwd,workDir});if(core.v||core.version){console.log("".concat(pkg.name," version ").concat(pkg.version));process.exit();}if(core.h||core.help){if(args.groupOrCommand){args.argsWithoutOptions.unshift(args.groupOrCommand);}args.groupOrCommand="help";}if(args.groupOrCommand==="logout"){await flushTelemetry();}const cliRunner=getCliRunner(commands);const cliCommandTrace=telemetry.trace(CliCommand,{groupOrCommand:args.groupOrCommand,extraArguments:args.extraArguments,commandArguments:args.argsWithoutOptions.slice(0,10),coreOptions:{help:args.coreOptions.help||void 0,version:args.coreOptions.help||void 0,debug:args.coreOptions.help||void 0},...(!args.groupOrCommand&&{emptyCommand:true})// user did not entry a command
|
17117
17117
|
});cliCommandTrace.start();cliRunner.runCommand(args.groupOrCommand,args,{...options,telemetry:cliCommandTrace.newContext(args.groupOrCommand)}).then(()=>cliCommandTrace.complete()).catch(async err=>{await flushTelemetry();const error=typeof err.details==="string"?err.details:err;console.error("\n".concat(error.stack?neatStack(err):error));cliCommandTrace.error(error);process.exit(1);});}async function getCoreModulePath(workDir,cliConfig){const corePath=resolveFrom$1.silent(workDir,"@sanity/core");const sanityPath=resolveFrom$1.silent(workDir,"sanity/_internal");if(corePath&&sanityPath){const closest=corePath.startsWith(workDir)?corePath:sanityPath;const assumedVersion=closest===corePath?"v2":"v3";console.warn(chalk__default.default.yellow("Both `@sanity/core` AND `sanity` installed - assuming Sanity ".concat(assumedVersion," project.")));return closest;}if(sanityPath){return sanityPath;}if(corePath&&cliConfig&&(cliConfig===null||cliConfig===void 0?void 0:cliConfig.version)<3){return corePath;}const isInstallCommand=process.argv.indexOf("install")===-1;if(cliConfig&&(cliConfig===null||cliConfig===void 0?void 0:cliConfig.version)<3&&!corePath&&!isInstallCommand){const installCmd=await getInstallCommand({workDir});console.warn(chalk__default.default.yellow(["The `@sanity/core` module is not installed in current project","Project-specific commands not available until you run `".concat(installCmd,"`")].join("\n")));}if(cliConfig&&cliConfig.version>=3&&!sanityPath){const installCmd=await getInstallCommand({workDir});console.warn(chalk__default.default.yellow(["The `sanity` module is not installed in current project","Project-specific commands not available until you run `".concat(installCmd,"`")].join("\n")));}return void 0;}function getCurrentWorkingDirectory(){let pwd;try{pwd=process.cwd();}catch(err){if(err.code==="ENOENT"){console.error("[ERR] Could not resolve working directory, does the current folder exist?");process.exit(1);}else{throw err;}}return pwd;}function installUnhandledRejectionsHandler(){process.on("unhandledRejection",reason=>{if(rejectionHasStack(reason)){console.error("Unhandled rejection:",reason.stack);}else{console.error("Unhandled rejection\n",reason);}});}function rejectionHasStack(reason){return Boolean(reason&&typeof reason==="object"&&"stack"in reason&&typeof reason.stack==="string");}function warnOnInferredProjectDir(isInit,cwd,workDir){if(isInit||cwd===workDir){return;}console.log("Not in project directory, assuming context of project at ".concat(workDir));}function warnOnNonProductionEnvironment(){if(sanityEnv==="production"){return;}console.warn(chalk__default.default.yellow(knownEnvs.includes(sanityEnv)?"[WARN] Running in ".concat(sanityEnv," environment mode\n"):"[WARN] Running in ".concat(chalk__default.default.red("UNKNOWN")," \"").concat(sanityEnv,"\" environment mode\n")));}function loadAndSetEnvFromDotEnvFiles(_ref140){let{workDir,cmd}=_ref140;if(require$$0$4.existsSync(path__default.default.join(workDir,"sanity.json"))){loadEnv.debug("sanity.json exists, assuming v2 project and loading .env files using old behavior");const env=process.env.SANITY_ACTIVE_ENV||process.env.NODE_ENV||"development";loadEnv.debug("Loading environment files using %s mode",env);loadEnv.dotenv.config({path:path__default.default.join(workDir,".env.".concat(env))});return;}loadEnv.debug("No sanity.json exists, assuming v3 project and loading .env files using new behavior");const isProdCmd=["build","deploy"].includes(cmd);let mode=process.env.SANITY_ACTIVE_ENV;if(!mode&&(isProdCmd||process.env.NODE_ENV==="production")){mode="production";}else if(!mode){mode="development";}if(mode==="production"&&!isProdCmd){console.warn(chalk__default.default.yellow("[WARN] Running in ".concat(sanityEnv," environment mode\n")));}loadEnv.debug("Loading environment files using %s mode",mode);const studioEnv=loadEnv.loadEnv(mode,workDir,["SANITY_STUDIO_"]);process.env={...process.env,...studioEnv};}function maybeFixMissingWindowsEnvVar(){if(require$$0__default$2.default.platform()==="win32"&&!("SYSTEMROOT"in process.env)&&"SystemRoot"in process.env){process.env.SYSTEMROOT=process.env.SystemRoot;}}exports.getCliVersion=getCliVersion;exports.runCli=runCli;
|
17118
|
-
//# sourceMappingURL=cli-
|
17118
|
+
//# sourceMappingURL=cli-DF3zrOjo.js.map
|